Concetti di IA in Python

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

Esegui codice →
main.py
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.

  1. Cambia gli input o i pesi e prevedi l'output prima di eseguire.
  2. Stampa i valori intermedi per seguire ogni passo del calcolo.
  3. Risolvi le sfide collegate qui sotto per implementare l'idea da solo.
Esegui nell’IDE Python →

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.

Tutte le sfide