Preparazione dei dati per il machine learning in Python
I modelli di machine learning imparano dai numeri, e imparano meglio quando le feature hanno scale simili. Normalizzazione e standardizzazione riscalano i dati, e la moltiplicazione di matrici è il modo in cui i modelli combinano molte feature insieme.
Il concetto in parole semplici
I modelli di machine learning imparano dai numeri, e imparano meglio quando le feature hanno scale simili. Normalizzazione e standardizzazione riscalano i dati, e la moltiplicazione di matrici è il modo in cui i modelli combinano molte feature insieme.
Riscala le feature con la normalizzazione min-max e la standardizzazione z-score, e moltiplica le matrici a mano.
Idee chiave
- Feature con scale molto diverse fanno sì che i numeri grandi dominino il modello.
- Min-max mantiene i valori tra 0 e 1; gli z-score conservano la forma ma la centrano su 0.
- Calcola i valori di scaling sui dati di addestramento e riusali per i dati nuovi.
- Un prodotto di matrici A × B richiede che le colonne di A siano tante quante le righe di B.
Quando si usa?
- Capire cosa succede dentro le reti neurali e le librerie di IA.
- Imparare l'idea prima di implementarla nelle sfide corrispondenti.
- Prepararti a corsi di machine learning, colloqui e progetti.
Guardalo in azione
Trascina x5 per creare un valore anomalo e confronta come reagiscono min-max e z-score. Punta una cella di A·B per vedere quale riga e quale colonna usa.
Codice di esempio
import statistics
heights = [150, 160, 170, 180, 190]
# Min-max scaling squeezes values into the range 0..1.
low, high = min(heights), max(heights)
print("min-max:", [round((h - low) / (high - low), 2) for h in heights])
# Z-score standardization centres values on 0 with a spread of 1.
mean = statistics.mean(heights)
std = statistics.pstdev(heights)
print("z-scores:", [round((h - mean) / std, 2) for h in heights])
# Matrix multiplication: each output is a row of A dotted with a column of B.
A = [[1, 2], [3, 4]]
B = [[5, 6], [7, 8]]
product = [[sum(A[i][k] * B[k][j] for k in range(2)) for j in range(2)] for i in range(2)]
print("A x B:", product)
Output previsto
min-max: [0.0, 0.25, 0.5, 0.75, 1.0]
z-scores: [-1.41, -0.71, 0.0, 0.71, 1.41]
A x B: [[19, 22], [43, 50]]
Come funziona
Lo scaling min-max porta l'altezza minima a 0 e quella massima a 1. Gli z-score sottraggono la media e dividono per la deviazione standard, così i valori sono centrati su 0. Nel prodotto di matrici ogni cella è una riga di A moltiplicata elemento per elemento per una colonna di B e poi sommata.
Modifica i valori ed esegui il programma nel compilatore Python online CodeUtility senza installare Python.
Esercizi pratici
Modifica gli input e verifica i casi limite prima di usare dataset più grandi.
- Cambia gli input o i pesi e prevedi l'output prima di eseguire.
- Stampa i valori intermedi per seguire ogni passo del calcolo.
- Risolvi le sfide collegate qui sotto per implementare l'idea da solo.
Esercitati con una sfida
Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.
- Moltiplicazione di matrici Moltiplica due matrici, l'operazione dietro ogni strato di una rete neurale. Facile
- Normalizzazione min-max Riscala una variabile in modo che il valore minimo diventi 0 e il massimo 1. Facile
- Standardizzazione z-score Centra una variabile in 0 e scalala a una deviazione standard di 1. Facile