Quando e come utilizzare StandardScaler?
Quando le caratteristiche di un dato set di dati fluttuano in modo significativo all'interno dei loro intervalli o sono registrate in varie unità di misura, StandardScaler entra in gioco.
I dati vengono ridimensionati a una varianza di 1 dopo che la media è stata ridotta a 0 tramite StandardScaler. Ma quando si determina la media empirica dei dati e la deviazione standard, i valori anomali presenti nei dati hanno un impatto significativo che riduce lo spettro dei valori caratteristici.
esempio di sottostringa in Java
Molti algoritmi di machine learning potrebbero riscontrare problemi a causa di queste variazioni nelle funzionalità iniziali. Per gli algoritmi che calcolano la distanza, ad esempio, se una qualsiasi delle caratteristiche del set di dati ha valori con intervalli ampi o completamente diversi, quella particolare caratteristica del set di dati controllerà il calcolo della distanza.
La funzione StandardScaler di sklearn si basa sulla teoria secondo cui le variabili del set di dati i cui valori si trovano in intervalli diversi non hanno un contributo uguale ai parametri di adattamento del modello e alla funzione di addestramento e possono persino portare a distorsioni nelle previsioni fatte con quel modello.
Pertanto, prima di includere le funzionalità nel modello di machine learning, dobbiamo normalizzare i dati (μ = 0, σ = 1). La standardizzazione nell'ingegneria delle funzionalità viene comunemente utilizzata per affrontare questo potenziale problema.
Standardizzazione utilizzando Sklearn
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
Eliminando la media dalle caratteristiche e ridimensionandole alla varianza unitaria, le caratteristiche vengono standardizzate utilizzando questa funzione.
La formula per calcolare il punteggio standard di una caratteristica è z = (x - u) / s, dove u è la media della caratteristica di addestramento (o zero se with_mean = False) e s è la deviazione standard del campione (o uno se with_std = False ).
Calcolando le statistiche pertinenti sulle funzionalità nel set di training, la centratura e il ridimensionamento vengono applicati in modo indipendente a ciascuna funzionalità. Quindi, per l'utilizzo con campioni successivi utilizzando transform(), il metodo fit() memorizza la media e la deviazione standard.
parametri:
Attributi:
Metodi della classe StandardScaler
fit(X[, y, peso_campione]) | Questo metodo calcola la media e la deviazione standard da utilizzare successivamente per ridimensionare i dati. |
fit_transform(X[, y]) | Questo metodo si adatta ai parametri dei dati e quindi li trasforma. |
get_feature_names_out([input_features]) | Questo metodo ottiene i nomi delle funzionalità per la trasformazione. |
get_params([profondo]) | Questo metodo fornisce i parametri del particolare stimatore. |
trasformazione_inversa(X[, copia]) | Riduce la dimensione dei dati per adattarli alla forma originale. |
adattamento_parziale(X[, y, peso_campione]) | La media e la deviazione standard su X vengono calcolate online per il successivo ridimensionamento. |
set_param(**param) | Questo metodo viene utilizzato per impostare il valore dei parametri dello stimatore. |
trasformazione(X[, copia]) | Questo metodo trasforma i dati utilizzando parametri già archiviati nella classe. |
Esempio di StandardScaler
Innanzitutto importeremo le librerie richieste. Per utilizzare la funzione StandardScaler, dobbiamo importare la libreria Sklearn.
Quindi caricheremo il set di dati dell'iride. Possiamo importare il set di dati IRIS dalla libreria sklearn.datasets.
Creeremo un oggetto della classe StandardScaler.
Separare le caratteristiche indipendenti e quelle di destinazione.
Utilizzeremo il metodo fittransform() per implementare la trasformazione nel set di dati.
Sintassi:
object_ = StandardScaler() object_.fit_transform(features)
Inizialmente abbiamo creato un'istanza del metodo StandardScaler() seguendo la sintassi menzionata sopra. Inoltre, standardizziamo i dati utilizzando fit_transform() insieme all'oggetto fornito.
Codice
# 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_)
Produzione
[[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]