Normalisieren eine Liste von Zahlen in Python

Fariba Laiq 30 Januar 2023
  1. Die Formel für die Normalisierung
  2. Normalisieren eine Liste von Zahlen mit der Funktion MinMaxScaler in Python sklearn
  3. Normalisieren eine Liste von Zahlen manuell in Python
Normalisieren eine Liste von Zahlen in Python

Normalisierung bedeutet, dass gegebene Daten in eine andere Skala umgewandelt werden. Wir skalieren Daten so neu, dass sie zwischen zwei Werte fallen. Meistens werden Daten zwischen 0 und 1 neu skaliert. Wir skalieren die Daten für einen anderen Zweck neu. Algorithmen für maschinelles Lernen sind beispielsweise besser, wenn die Datensatzwerte klein sind.

Nehmen wir an, wir haben eine Liste {1,2,3} und nach der Normalisierung der Skala von 0 und 1 wird die Liste {0, 0.5, 1} sein. Wir können unsere Daten auch auf eine andere Skala normalisieren. Sagen wir zwischen 2 und 6. Wenn wir also die Liste {1,2,3} nach der Normalisierung haben, wird es {2,4,6} sein.

Die Formel für die Normalisierung

Verstehen, wie Normalisierung funktioniert. Wir werden uns seine Formel ansehen. Wir subtrahieren von jeder Zahl den Mindestwert und dividieren ihn durch den Bereich, also: max-min. In der Ausgabe erhalten wir also den normalisierten Wert dieser bestimmten Zahl.

$$ X_{norm} = {x-x_{min}\over x_{max}-x_{min}} $$

Wir können zwei Methoden verwenden, um eine Liste zu normalisieren. Entweder können wir die eingebaute Funktion verwenden, die im Vorverarbeitungsmodul des sklearn-Pakets verfügbar ist. Oder wir können unsere Logik dafür entwickeln, die nach der gleichen Formel wie oben beschrieben funktioniert.

Normalisieren eine Liste von Zahlen mit der Funktion MinMaxScaler in Python sklearn

Eine eingebaute Methode namens MinMaxScaler() ist im preprocessing-Modul des sklearn-Pakets verfügbar. Wir erstellen ein 1D NumPy-Array und übergeben es an die Funktion. Um diese Funktion nutzen zu können, müssen die Pakete NumPy und sklearn installiert sein.

Beispielcode:

# python 3.x
import numpy as np
from sklearn import preprocessing

list = np.array([6, 1, 0, 2, 7, 3, 8, 1, 5]).reshape(-1, 1)
print("Original List:", list)
scaler = preprocessing.MinMaxScaler()
normalizedlist = scaler.fit_transform(list)
print("Normalized List:", normalizedlist)

Ausgabe:

Original List: [[6]
 [1]
 [0]
 [2]
 [7]
 [3]
 [8]
 [1]
 [5]]
Normalized List: [[0.75 ]
 [0.125]
 [0.   ]
 [0.25 ]
 [0.875]
 [0.375]
 [1.   ]
 [0.125]
 [0.625]]

Nehmen wir nun an, wir möchten unseren Bereich für die Normalisierung angeben. Dazu geben wir unseren Bereich in MinMaxScaler() an. Wenn wir den Bereich nicht angeben, sind es standardmäßig 0 und 1. Aber wir können unseren Bereich für die Skalierung definieren. In diesem Beispiel geben wir den Bereich 0 und 3 an.

Beispielcode:

# python 3.x
import numpy as np
from sklearn import preprocessing

list = np.array([6, 1, 0, 2, 7, 3, 8, 1, 5]).reshape(-1, 1)
print("Original List:", list)
scaler = preprocessing.MinMaxScaler(feature_range=(0, 3))
normalizedlist = scaler.fit_transform(list)
print("Normalized List:", normalizedlist)

Ausgabe:

Original List: [[6]
 [1]
 [0]
 [2]
 [7]
 [3]
 [8]
 [1]
 [5]]
Normalized List: [[2.25 ]
 [0.375]
 [0.   ]
 [0.75 ]
 [2.625]
 [1.125]
 [3.   ]
 [0.375]
 [1.875]]

Normalisieren eine Liste von Zahlen manuell in Python

Wir können die Zahlenliste auch manuell normalisieren, indem wir den vollständigen Code dafür schreiben, der nach der gleichen Formel funktioniert, wie oben für die Normalisierung beschrieben.

Beispielcode:

list = [6, 1, 0, 2, 7, 3, 8, 1, 5]
print("Original List:", list)
xmin = min(list)
xmax = max(list)
for i, x in enumerate(list):
    list[i] = (x - xmin) / (xmax - xmin)
print("Normalized List:", list)

Ausgabe:

Original List: [6, 1, 0, 2, 7, 3, 8, 1, 5]
Normalized List: [0.75, 0.125, 0.0, 0.25, 0.875, 0.375, 1.0, 0.125, 0.625]
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Verwandter Artikel - Python List