Ich kann die Seite von StandardScaler
in der Dokumentation von nicht verstehen sklearn
.
Kann mir jemand das in einfachen Worten erklären?
python
machine-learning
scikit-learn
scaling
standardized
nitinvijay23
quelle
quelle
each value in the dataset will have the sample mean value subtracted
-- das ist nicht wahr. Der Mittelwert JEDES Merkmals / jeder Spalte wird von den Werten der jeweiligen Spalte abgezogen. Dies erfolgt spaltenweise. Es gibt keinesample mean value subtracted
- siehe meine Antwort untenIntro: Ich gehe davon aus, dass Sie eine Matrix haben,
X
in der jede Zeile / Zeile eine Stichprobe / Beobachtung und jede Spalte eine Variable / ein Merkmal ist (dies istsklearn
übrigens die erwartete Eingabe für jede ML-Funktion -X.shape
sollte es sein[number_of_samples, number_of_features]
).Kern der Methode : Die Hauptidee ist zu normalisieren / standardisiert dh
μ = 0
undσ = 1
Ihre Funktionen / Variablen / SpaltenX
, einzeln , bevor jede Maschine Lernmodell anwenden.StandardScaler()
wird normalisiert die Merkmale dh jede Spalte von X, EINZELN , so dass jede Spalte / Feature / Variabel wirdμ = 0
undσ = 1
.PS: Ich finde die am besten bewertete Antwort auf dieser Seite falsch. Ich zitiere "Für jeden Wert im Datensatz wird der Stichprobenmittelwert abgezogen" - Dies ist weder wahr noch richtig.
Siehe auch: Wie und warum Sie Ihre Daten standardisieren: Ein Python-Tutorial
Beispiel:
Stellen Sie sicher, dass der Mittelwert jedes Features (Spalte) 0 ist:
Stellen Sie sicher, dass der Standard für jedes Feature (Spalte) 1 ist:
Die Mathematik:
UPDATE 08/2019 : Nach Eingabe der Eingabeparameter
with_mean
undwith_std
zuFalse
/ habeTrue
ich hier eine Antwort gegeben: StandardScaler-Unterschied zwischen "with_std = False oder True" und "with_mean = False oder True"quelle
[1.15, 1.15]
wenn ich als Pandas rechnepd.DataFrame(scaled_data).std(0)
?pd.DataFrame(scaled_data)[0]
bekomme ich eine Reihe mitName: 0, dtype: float64
und Werten[-1.0, 1.0, -1.0, 1.0]
. Entschuldigung für die FormatierungStandardScaler
der Algorithmus für maschinelles Lernen dadurch schneller wird oder ob genauere Entscheidungen getroffen werden oder etwas anderes?Wie man es berechnet:
Hier können Sie mehr lesen:
quelle
StandardScaler führt die Aufgabe der Standardisierung aus . Normalerweise enthält ein Datensatz Variablen mit unterschiedlichem Maßstab. Beispielsweise enthält ein Mitarbeiterdatensatz eine AGE-Spalte mit Werten auf der Skala 20-70 und eine SALARY-Spalte mit Werten auf der Skala 10000-80000 .
Da sich diese beiden Spalten im Maßstab unterscheiden, sind sie standardisiert, um beim Erstellen eines Modells für maschinelles Lernen einen gemeinsamen Maßstab zu haben.
quelle
Dies ist nützlich, wenn Sie Daten vergleichen möchten, die verschiedenen Einheiten entsprechen. In diesem Fall möchten Sie die Einheiten entfernen. Um dies auf konsistente Weise für alle Daten zu tun, transformieren Sie die Daten so, dass die Varianz einheitlich ist und der Mittelwert der Reihe 0 ist.
quelle
Die obigen Antworten sind großartig, aber ich brauchte ein einfaches Beispiel, um einige Bedenken auszuräumen, die ich in der Vergangenheit hatte. Ich wollte sicherstellen, dass tatsächlich jede Spalte einzeln behandelt wird. Ich bin jetzt beruhigt und kann nicht finden, welches Beispiel mich beunruhigt hat. Alle Spalten ARE separat skaliert , wie oben von denen beschrieben.
CODE
AUSGABE
quelle
Im Folgenden wird anhand eines einfachen Arbeitsbeispiels erläutert, wie die Standardisierungsberechnung funktioniert. Der theoretische Teil ist bereits in anderen Antworten gut erklärt.
Berechnung
Wie Sie in der Ausgabe sehen können, ist der Mittelwert [6. , 2,5] und die Standardabweichung beträgt [1,41421356, 0,8660254].
Daten sind (0,1) Position ist 2 Standardisierung = (2 - 2,5) / 0,8660254 = -0,57735027
Daten in (1,0) Position sind 4 Standardisierung = (4-6) / 1,41421356 = -1,414
Ergebnis nach Standardisierung
Überprüfen Sie den Mittelwert und die Standardabweichung nach der Standardisierung
Hinweis: -2.77555756e-17 liegt sehr nahe bei 0.
Verweise
Vergleichen Sie die Auswirkungen verschiedener Skalierer auf Daten mit Ausreißern
Was ist der Unterschied zwischen Normalisierung und Standardisierung?
Der Mittelwert der mit sklearn StandardScaler skalierten Daten ist nicht Null
quelle
Nach dem Anwenden
StandardScaler()
hat jede Spalte in X einen Mittelwert von 0 und eine Standardabweichung von 1.Formeln werden von anderen auf dieser Seite aufgelistet.
Begründung: Einige Algorithmen erfordern Daten, die so aussehen (siehe sklearn-Dokumente ).
quelle