Când și cum să utilizați StandardScaler?
Când caracteristicile setului de date dat fluctuează semnificativ în intervalele lor sau sunt înregistrate în diferite unități de măsură, StandardScaler intră în imagine.
Datele sunt scalate la o varianță de 1 după ce media este redusă la 0 prin StandardScaler. Dar atunci când se determină media empirică a datelor și abaterea standard, valorile aberante prezente în date au un impact semnificativ care reduce spectrul valorilor caracteristice.
Mulți algoritmi de învățare automată pot întâmpina probleme din cauza acestor variații ale caracteristicilor de pornire. Pentru algoritmii care calculează distanța, de exemplu, dacă oricare dintre caracteristicile setului de date au valori cu intervale mari sau complet diferite, acea caracteristică specială a setului de date va controla calculul distanței.
Funcția StandardScaler a lui sklearn se bazează pe teoria conform căreia variabilele setului de date ale căror valori se află în intervale diferite nu au o contribuție egală la parametrii de potrivire ai modelului și la funcția de antrenament și pot duce chiar la părtinire în predicțiile făcute cu modelul respectiv.
converti un șir într-un număr întreg
Prin urmare, înainte de a include caracteristicile în modelul de învățare automată, trebuie să normalizăm datele (µ = 0, σ = 1). Standardizarea în ingineria caracteristicilor este folosită în mod obișnuit pentru a rezolva această problemă potențială.
java împărțiți șirul după delimitator
Standardizarea folosind Sklearn
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
Prin eliminarea mediei din caracteristici și scalarea acestora la variația unității, caracteristicile sunt standardizate folosind această funcție.
Formula pentru calcularea scorului standard al unei caracteristici este z = (x - u) / s, unde u este media caracteristicii de antrenament (sau zero dacă with_mean = False) și s este abaterea standard a eșantionului (sau una dacă with_std = False ).
Prin calcularea statisticilor pertinente asupra caracteristicilor din setul de antrenament, centrarea și scalarea sunt aplicate independent fiecărei caracteristici. Apoi, pentru utilizarea cu mostre ulterioare folosind transform(), metoda fit() stochează media și abaterea standard.
Parametri:
Atribute:
Metode ale clasei StandardScaler
potrivire(X[, y, greutate_eșantion]) | Această metodă calculează media și abaterea standard pentru a le utiliza ulterior pentru scalarea datelor. |
potrivire_transforma(X[, y]) | Această metodă se potrivește parametrilor datelor și apoi le transformă. |
get_feature_names_out([input_features]) | Această metodă obține numele caracteristicilor pentru transformare. |
get_params([deep]) | Această metodă oferă parametrii unui anumit estimator. |
transformare_inversa(X[, copie]) | Reduce dimensiunea datelor pentru a se potrivi cu forma inițială. |
partial_fit(X[, y, sample_weight]) | Media și abaterea standard pe X sunt calculate online pentru scalare ulterioară. |
set_params(**params) | Această metodă este utilizată pentru a seta valoarea parametrilor estimatorului. |
transform(X[, copie]) | Această metodă transformă datele utilizând parametrii deja stocați în clasă. |
Exemplu de StandardScaler
În primul rând, vom importa bibliotecile necesare. Pentru a folosi funcția StandardScaler, trebuie să importam biblioteca Sklearn.
Apoi vom încărca setul de date iris. Putem importa setul de date IRIS din biblioteca sklearn.datasets.
Vom crea un obiect din clasa StandardScaler.
Separarea caracteristicilor independente și țintă.
sunt exemple model
Vom folosi metoda fit transform() pentru a implementa transformarea în setul de date.
Sintaxă:
object_ = StandardScaler() object_.fit_transform(features)
Am construit inițial o instanță a metodei StandardScaler() urmând sintaxa menționată mai sus. În plus, standardizăm datele utilizând fit_transform() împreună cu obiectul furnizat.
Cod
numele produselor de machiaj
# 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_)
Ieșire
[[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]