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?