Kiedy i jak używać StandardScaler?
Gdy cechy danego zbioru danych znacznie oscylują w swoich zakresach lub są zapisane w różnych jednostkach miary, na scenę wkracza StandardScaler.
Dane są skalowane do wariancji 1 po zmniejszeniu średniej do 0 za pomocą narzędzia StandardScaler. Jednak przy wyznaczaniu średniej empirycznej danych i odchylenia standardowego, obecne w danych wartości odstające mają istotny wpływ, który zawęża spektrum wartości charakterystycznych.
klasa ciągów Java
Wiele algorytmów uczenia maszynowego może napotkać problemy ze względu na różnice w funkcjach początkowych. Na przykład w przypadku algorytmów obliczających odległość, jeśli którakolwiek z cech zbioru danych ma wartości o dużych lub całkowicie różnych zakresach, ta konkretna cecha zbioru danych będzie kontrolować obliczanie odległości.
Funkcja StandardScaler sklearn opiera się na teorii, że zmienne zbioru danych, których wartości mieszczą się w różnych zakresach, nie mają równego udziału w parametrach dopasowania modelu i funkcji szkoleniowej, a nawet mogą prowadzić do błędu w przewidywaniach dokonanych za pomocą tego modelu.
Dlatego przed włączeniem funkcji do modelu uczenia maszynowego musimy znormalizować dane (µ = 0, σ = 1). Aby rozwiązać ten potencjalny problem, powszechnie stosuje się standaryzację w inżynierii cech.
Standaryzacja przy użyciu Sklearn
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
Eliminując średnią z cech i skalując je do wariancji jednostkowej, cechy są standaryzowane przy użyciu tej funkcji.
Wzór na obliczenie wyniku standardowego cechy to z = (x - u) / s, gdzie u to średnia cechy uczącej (lub zero, jeśli with_mean = False), a s to odchylenie standardowe próbki (lub jeden, jeśli with_std = False ).
aktor Zeenat Aman
Obliczając odpowiednie statystyki dotyczące cech w zbiorze uczącym, centrowanie i skalowanie są stosowane niezależnie do każdej cechy. Następnie, do wykorzystania w późniejszych próbkach przy użyciu funkcji transform(), metoda fit() przechowuje średnią i odchylenie standardowe.
Parametry:
Atrybuty:
Metody klasy StandardScaler
fit(X[, y, waga_próbki]) | Ta metoda oblicza średnią i odchylenie standardowe do późniejszego wykorzystania do skalowania danych. |
fit_transform(X[, y]) | Ta metoda dopasowuje parametry danych, a następnie je przekształca. |
get_feature_names_out([input_features]) | Ta metoda uzyskuje nazwy funkcji dla transformacji. |
get_params([głęboko]) | Metoda ta podaje parametry konkretnego estymatora. |
transformacja_odwrotna(X[, kopia]) | Zmniejsza rozmiar danych, aby dopasować je do ich oryginalnej formy. |
częściowe_fit(X[, y, waga_próbki]) | Średnia i odchylenie standardowe na X są obliczane online w celu późniejszego skalowania. |
set_params(**parametry) | Metodą tą określa się wartości parametrów estymatora. |
transform(X[, kopia]) | Ta metoda przekształca dane przy użyciu parametrów już przechowywanych w klasie. |
Przykład StandardScalera
Najpierw zaimportujemy wymagane biblioteki. Aby skorzystać z funkcji StandardScaler musimy zaimportować bibliotekę Sklearn.
wybierz wielostołowy sql
Następnie załadujemy zbiór danych tęczówki. Możemy zaimportować zbiór danych IRIS z biblioteki sklearn.datasets.
Stworzymy obiekt klasy StandardScaler.
Oddzielenie cech niezależnych od docelowych.
Do zaimplementowania transformacji do zbioru danych użyjemy metody fit transform().
Składnia:
object_ = StandardScaler() object_.fit_transform(features)
Początkowo zbudowaliśmy instancję metody StandardScaler() zgodnie ze składnią wspomnianą powyżej. Dodatkowo standaryzujemy dane za pomocą funkcji fit_transform() wraz z dostarczonym obiektem.
stlc
Kod
# 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_)
Wyjście
[[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]