Wann und wie verwendet man StandardScaler?
Wenn die Merkmale des gegebenen Datensatzes innerhalb ihrer Bereiche erheblich schwanken oder in verschiedenen Maßeinheiten aufgezeichnet werden, kommt StandardScaler ins Spiel.
Die Daten werden auf eine Varianz von 1 skaliert, nachdem der Mittelwert über StandardScaler auf 0 reduziert wurde. Bei der Bestimmung des empirischen Mittelwerts der Daten und der Standardabweichung haben jedoch in den Daten vorhandene Ausreißer einen erheblichen Einfluss, der das Spektrum der charakteristischen Werte verringert.
Bei vielen Algorithmen für maschinelles Lernen können aufgrund dieser Variationen in den Startfunktionen Probleme auftreten. Wenn beispielsweise bei Algorithmen, die Entfernungen berechnen, eines der Features des Datensatzes Werte mit großen oder völlig unterschiedlichen Bereichen aufweist, steuert dieses bestimmte Feature des Datensatzes die Entfernungsberechnung.
osi-Referenzmodell in der Vernetzung
Die StandardScaler-Funktion von sklearn basiert auf der Theorie, dass die Variablen des Datensatzes, deren Werte in unterschiedlichen Bereichen liegen, nicht den gleichen Beitrag zu den Anpassungsparametern und der Trainingsfunktion des Modells leisten und sogar zu einer Verzerrung der mit diesem Modell getroffenen Vorhersagen führen können.
Bevor wir die Features in das Modell des maschinellen Lernens einbeziehen, müssen wir daher die Daten normalisieren (µ = 0, σ = 1). Um dieses potenzielle Problem anzugehen, wird häufig eine Standardisierung im Feature-Engineering eingesetzt.
Standardisierung mit Sklearn
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
Durch Eliminieren des Mittelwerts aus den Merkmalen und deren Skalierung auf die Einheitsvarianz werden Merkmale mithilfe dieser Funktion standardisiert.
Die Formel zur Berechnung der Standardbewertung eines Features lautet z = (x – u) / s, wobei u der Mittelwert des Trainingsfeatures ist (oder Null, wenn with_mean = False) und s die Standardabweichung der Stichprobe ist (oder eins, wenn with_std = False). ).
Durch die Berechnung der relevanten Statistiken zu den Features im Trainingssatz werden Zentrierung und Skalierung unabhängig auf jedes Feature angewendet. Anschließend speichert die fit()-Methode zur Verwendung mit späteren Stichproben mithilfe von transform() den Mittelwert und die Standardabweichung.
if else-Schleife in Java
Parameter:
Attribute:
Methoden der StandardScaler-Klasse
fit(X[, y, Beispielgewicht]) | Diese Methode berechnet den Mittelwert und die Standardabweichung, die später zur Skalierung der Daten verwendet werden. |
fit_transform(X[, y]) | Diese Methode passt die Parameter der Daten an und transformiert sie dann. |
get_feature_names_out([input_features]) | Diese Methode ruft die Feature-Namen für die Transformation ab. |
get_params([tief]) | Diese Methode gibt die Parameter des jeweiligen Schätzers an. |
inverse_transform(X[, kopieren]) | Es reduziert die Größe der Daten, um sie an ihre ursprüngliche Form anzupassen. |
partielle_fit(X[, y, Beispielgewicht]) | Der Mittelwert und die Standardabweichung von X werden zur späteren Skalierung online berechnet. |
set_params(**params) | Mit dieser Methode wird der Wert der Parameter des Schätzers festgelegt. |
transform(X[, kopieren]) | Diese Methode transformiert die Daten mithilfe von Parametern, die bereits in der Klasse gespeichert sind. |
Beispiel für StandardScaler
Zunächst importieren wir die benötigten Bibliotheken. Um die StandardScaler-Funktion verwenden zu können, müssen wir die Sklearn-Bibliothek importieren.
Dann laden wir den Iris-Datensatz. Wir können den IRIS-Datensatz aus der Bibliothek sklearn.datasets importieren.
Wir erstellen ein Objekt der StandardScaler-Klasse.
Trennung der unabhängigen und Zielfunktionen.
saure Eigenschaften
Wir werden die Methode fit transform() verwenden, um die Transformation in den Datensatz zu implementieren.
Syntax:
object_ = StandardScaler() object_.fit_transform(features)
Wir haben zunächst eine Instanz der StandardScaler()-Methode nach der oben genannten Syntax erstellt. Darüber hinaus standardisieren wir die Daten, indem wir fit_transform() zusammen mit dem bereitgestellten Objekt verwenden.
Code
# Python program to standardize the data # Importing the required library from sklearn.preprocessing import StandardScaler from sklearn.datasets import load_iris # Loading the dataset X, Y = load_iris(return_X_y = True) # Printing 3 rows of original data print(X[:3, :]) # Creating an object of the StandardScaler class std_scaler = StandardScaler() # Printing 3 rows of the transformed data print(std_scaler.fit_transform(X)[:3, :]) print(std_scaler.mean_)
Ausgabe
[[5.1 3.5 1.4 0.2] [4.9 3. 1.4 0.2] [4.7 3.2 1.3 0.2]] [[-0.90068117 1.01900435 -1.34022653 -1.3154443 ] [-1.14301691 -0.13197948 -1.34022653 -1.3154443 ] [-1.38535265 0.32841405 -1.39706395 -1.3154443 ]] [5.84333333 3.05733333 3.758 1.19933333]