Appunti personali sul linguaggio Python

StandardScaler su Scikit-learn

Per elaborare la riduzione in scala dei dati dell'insieme di training e di test, nel modulo scikit-learn di python posso usare la classe StandardScaler().

Cos'è la riduzione di scala? La riduzione di scala standardizza la serie di valori. La standardizzazione è un metodo di riduzione di scala che trasforma una serie di valori in una distribuzione normale standard con media uguale a zero e devianza standard uguale a uno.

Un esempio pratico

Ho un insieme di training ( X_train ) e un insieme di test ( X_test ). Inizialmente, i due insiemi contengono i valori originali degli attributi.

esempio di insieme di training e di test

Per standardizzarli richiamo la classe StandardScaler.

  1. from sklearn.preprocessing import StandardScaler
  2. sc = StandardScaler()
  3. sc.fit(X_train)
  4. X_train_std = sc.transform(X_train)
  5. X_test_std = sc.transform(X_test)

Nella riga 1 carico il modulo ScandardScaler da sklearn.

Nella riga 2 richiamo la classe StandardScaler(), inizializzo un oggetto e lo assegno alla variabile sc.

Nella riga 3 uso il metodo fit() per stimare la media del campione e la deviazione standard dell'insieme di training (X_train).

Nella riga 4 uso il metodo transform() standardizzare i dati dell'insieme di training (X_train) usando i parametro appena calcolati dal metodo fit. Poi salvo il risultato nella variabile X_train_std.

Cos'è la standardizzazione? La standardizzazione consiste nel sottrarre la media (μ) da ogni valore (x) del vettore e dividere la differenza per la devianza standard (σ).
la formula della standardizzazione per la riduzione di scala

Nella riga 5 applico di nuovo il metodo transform()con gli stessi parametri anche all'insieme di test (X_test) per renderlo omogeneo e confrontabile con l'insieme di training. Poi salvo il risultato nella variabile X_test_std.

I dati standardizzati

Lo script crea due nuovi insiemi di training ( X_train_std ) e di test ( X_test_std ) con i dati standardizzati.

i dati standardizzati ( esempio )

A questo punto, dopo la standardizzazione, avvio l'algoritmo di addestramento direttamente sui dati standardizzati dell'insieme di training ( X_train_std).

Infine, verifico l'accuratezza del modello usando i dati standardizzati dell'insieme di test (X_test_std).

Perché?

Le performance del processo di learning sono generalmente superiori quando l'algoritmo lavora su dati standardizzati.

Esempio. Ho usato il perceptron su dati normali del dataset Iris ottenendo il 57% di accuratezza. Lo stesso processo sui dati standardizzati ha raggiunto il 97% di accuratezza a parità di iperparametri. C'è quindi un bel vantaggio.



Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

Questo sito utilizza cookie tecnici. Sono presenti alcuni cookie di terzi ( Gooogle, Facebook ) per la personalizzazione degli annunci pubblicitari. Cliccando su OK, scorrendo la pagina o proseguendo la navigazione in altra maniera acconsenti all’uso dei cookie.

Per ulteriori informazioni o per revocare il consenso fai riferimento alla Privacy del sito.
knowledge base

Libri di approfondimento

Scikit-learn

  1. Cos'è sklearn
  2. Come installare sklearn
  3. Un esempio di machine learning
  4. Come usare i datasets didattici di scikit-learn
  5. Come rappresentare le regioni decisionali
  6. La vettorizzazione delle categorie
  7. StandardScaler ( riduzione di scala )
  8. L'analisi degli errori del classificatore
  9. L'analisi degli errori del regressore
  10. Perceptron
  11. La regressione lineare
  12. Decision Tree Classifier
  13. k-NN (k Nearest Neighbors)
  14. MLPClassifier