So normalisieren sie daten in python


In der Statistik und beim maschinellen Lernen normalisieren wir Variablen häufig so, dass der Wertebereich zwischen 0 und 1 liegt.

Der häufigste Grund für die Normalisierung von Variablen liegt darin, dass wir eine Art multivariate Analyse durchführen (dh wir möchten die Beziehung zwischen mehreren Prädiktorvariablen und einer Antwortvariablen verstehen) und möchten, dass jede Variable gleichermaßen zur Analyse beiträgt.

Wenn Variablen auf unterschiedlichen Skalen gemessen werden, tragen sie häufig nicht gleichermaßen zur Analyse bei. Wenn beispielsweise die Werte einer Variablen zwischen 0 und 100.000 liegen und die Werte einer anderen Variablen zwischen 0 und 100, wird der Variablen mit dem größeren Bereich in der Analyse ein höheres Gewicht zugewiesen.

Durch die Standardisierung der Variablen können wir sicher sein, dass jede Variable gleichermaßen zur Analyse beiträgt.

Um Werte zwischen 0 und 1 zu normalisieren, können wir die folgende Formel verwenden:

x norm = (x i – x min ) / (x max – x min )

Gold:

  • x- Norm : der i-te normalisierte Wert im Datensatz
  • x i : der i-te Wert des Datensatzes
  • x max : Der Mindestwert im Datensatz
  • x min : Der Maximalwert im Datensatz

Die folgenden Beispiele zeigen, wie man eine oder mehrere Variablen in Python normalisiert.

Beispiel 1: Normalisieren Sie ein NumPy-Array

Der folgende Code zeigt, wie alle Werte in einem NumPy-Array normalisiert werden:

 import numpy as np 

#create NumPy array
data = np. array ([[13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71]])

#normalize all values in array
data_norm = (data - data. min ())/ (data. max () - data. min ())

#view normalized values
data_norm

array([[0. , 0.05172414, 0.10344828, 0.15517241, 0.17241379,
        0.43103448, 0.5862069, 0.74137931, 0.77586207, 0.86206897,
        0.89655172, 0.98275862, 1. ]])

Jeder der Werte im normalisierten Array liegt jetzt zwischen 0 und 1.

Beispiel 2: Normalisieren Sie alle Variablen in Pandas DataFrame

Der folgende Code zeigt, wie alle Variablen in einem Pandas-DataFrame normalisiert werden:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#normalize values in every column
df_norm = (df-df. min ())/ (df. max () - df. min ())

#view normalized DataFrame
df_norm

        points assists rebounds
0 0.764706 0.125 0.857143
1 0.000000 0.375 0.428571
2 0.176471 0.375 0.714286
3 0.117647 0.625 0.142857
4 0.411765 1.000 0.142857
5 0.647059 0.625 0.000000
6 0.764706 0.625 0.571429
7 1.000000 0.000 1.000000

Jeder der Werte in jeder Spalte liegt jetzt zwischen 0 und 1.

Beispiel 3: Normalisieren Sie bestimmte Variablen in Pandas DataFrame

Der folgende Code zeigt, wie eine bestimmte Variable in einem Pandas-DataFrame normalisiert wird:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

define columns to normalize
x = df. iloc [:,0:2]

#normalize values in first two columns only
df. iloc [:,0:2] = (xx. min ())/ (x. max () - x. min ())

#view normalized DataFrame
df

	points assists rebounds
0 0.764706 0.125 11
1 0.000000 0.375 8
2 0.176471 0.375 10
3 0.117647 0.625 6
4 0.411765 1.000 6
5 0.647059 0.625 5
6 0.764706 0.625 9
7 1.000000 0.000 12

Beachten Sie, dass nur die Werte in den ersten beiden Spalten normalisiert sind.

Zusätzliche Ressourcen

Die folgenden Tutorials bieten zusätzliche Informationen zur Datennormalisierung:

So normalisieren Sie Daten zwischen 0 und 1
So normalisieren Sie Daten zwischen 0 und 100
Standardisierung oder Normalisierung: Was ist der Unterschied?

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert