Ridimensionamento delle feature: normalizzazione e standardizzazione
MinMaxScaler, StandardScaler, RobustScaler: quando utilizzare ciascuno e perché è importante.
Ridimensionamento delle feature: normalizzazione e standardizzazione è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.
Perché scalare le feature?
Molti algoritmi sono sensibili all'AMPIEZZA delle feature. Una feature compresa tra 0 e 1.000.000 dominerà una compresa tra 0 e 1 nei modelli basati su distanza o gradiente. La scalatura porta le feature su intervalli confrontabili.
Chi ha bisogno della scalatura
La scalatura è importante per KNN, SVM, k-means, PCA e per i modelli basati sulla discesa del gradiente, come la regressione lineare o logistica e le reti neurali. I modelli basati su alberi (random forest, gradient boosting) sono invarianti rispetto alla scala e non ne hanno bisogno.
Normalizzazione: MinMaxScaler
La normalizzazione min-max riscalibra ogni feature su un intervallo fisso, di solito da 0 a 1, usando (x - min) / (max - min). Preserva la forma della distribuzione.
from sklearn.preprocessing import MinMaxScaler
import numpy as np
X = np.array([[10.0], [20.0], [30.0], [40.0]])
scaler = MinMaxScaler()
print(scaler.fit_transform(X).ravel()) # [0. 0.333 0.667 1.]Standardizzazione: StandardScaler
La standardizzazione assegna a ogni feature media zero e varianza unitaria usando (x - mean) / std. Il risultato è uno z-score: i valori sono centrati, ma non limitati a un intervallo.
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
Xs = scaler.fit_transform(X)
print(Xs.ravel())
print(Xs.mean(), Xs.std()) # ~0 and ~1MinMax vs Standard
Usi MinMax quando serve un intervallo limitato (ad esempio per i pixel delle immagini o gli input di una rete neurale). Usi Standard quando l'algoritmo presuppone dati approssimativamente centrati intorno a zero (PCA, SVM, modelli lineari). MinMax è più sensibile agli outlier.
RobustScaler per gli outlier
RobustScaler si centra sulla MEDIANA e scala in base all'IQR. Poiché entrambi resistono agli outlier, è la scelta corretta quando i valori estremi distorcerebbero gli altri scaler.
from sklearn.preprocessing import RobustScaler
Xo = np.array([[1.0], [2.0], [3.0], [4.0], [100.0]])
print(RobustScaler().fit_transform(Xo).ravel())fit vs transform
Gli scaler APPRENDONO i parametri in fit (il minimo e il massimo, oppure la media e la deviazione standard) e li APPLICANO in transform. fit_transform esegue entrambe le operazioni in una sola chiamata.
scaler = StandardScaler()
scaler.fit(X) # learns mean and std
Xs = scaler.transform(X) # applies themLa regola d'oro: eseguire fit solo sui dati di addestramento
Esegua sempre fit sull'insieme di ADDESTRAMENTO, quindi applichi solo transform all'insieme di test usando i parametri appresi. Eseguire il fit sui dati di test fa trapelare nel modello informazioni che li riguardano.
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test) # transform only!Perché non eseguire fit sui dati di test
Se scala i dati usando statistiche che includono l'insieme di test, la valutazione utilizza informazioni che non dovrebbe avere: si tratta di data leakage. Il risultato sono stime delle prestazioni ottimistiche e inaffidabili.
Trasformazione inversa
Gli scaler possono invertire l'operazione con inverse_transform, utile per riconvertire le predizioni scalate nelle unità originali quando si riportano i risultati.
original = scaler.inverse_transform(X_train_scaled)
# recovers the pre-scaled valuesScalare il target
Nella classificazione, di solito si scalano le FEATURE, non il target. Nella regressione si può scalare anche il target, ma occorre ricordarsi di applicare la trasformazione inversa alle predizioni prima di riportare gli errori.
Verifica rapida
Metta alla prova le proprie conoscenze sulla scalatura.
Riepilogo
Strumenti per la scalatura:
- La scalatura è importante per i modelli basati su distanza o gradiente; gli alberi la ignorano
MinMaxScaler-> intervallo limitato 0..1;StandardScaler-> media zero, varianza unitariaRobustScalerusa mediana e IQR, risultando robusto agli outlier- Esegua sempre
fit_transformsui dati di addestramento e solotransformsui dati di test (per evitare il leakage)
Domande Frequenti
La lezione «Ridimensionamento delle feature: normalizzazione e standardizzazione» è gratuita?
Sì — il testo completo di «Ridimensionamento delle feature: normalizzazione e standardizzazione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.
Cosa imparerò in «Ridimensionamento delle feature: normalizzazione e standardizzazione»?
MinMaxScaler, StandardScaler, RobustScaler: quando utilizzare ciascuno e perché è importante. Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Ridimensionamento delle feature: normalizzazione e standardizzazione»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?
Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Rilevamento e rimozione degli outlier
- Codifica delle variabili categoriche
- Ridimensionamento delle feature: normalizzazione e standardizzazione
- Creazione di pipeline di preprocessing