Machine Learning: Imparare dai Dati
Come gli algoritmi imparano
📌Il Processo di Apprendimento
significa che l'algoritmo impara dai dati senza essere programmato esplicitamente. Il processo base è questo: riceve i dati, produce una previsione iniziale, misura l'errore, aggiorna i parametri e ripete il ciclo molte volte. Dopo molte iterazioni, il modello non "conosce" davvero i dati: apprende pattern utili e migliora la capacità di generalizzare su esempi nuovi. In un prodotto reale il valore nasce da un ciclo rapido di esperimento, misurazione e miglioramento: senza metriche stai solo facendo una demo, non costruendo un sistema affidabile. Nota pratica: prima del deploy testa il modello su dati mai visti. Per migliorare risultati reali servono anche , tuning di , buon e lettura corretta di .
Takeaway: conta il modello che generalizza meglio, non quello più complesso.
🖼️ Infografica
In arrivoIl ciclo fondamentale del Machine Learning: dati in input, previsione del modello, calcolo errore, aggiornamento pesi. Schema visuale che mostra la differenza tra modello che memorizza (overfitting) e modello che generalizza, con il concetto di train/test split.
media/ch04-machine-learning/sec-01/infographic.png
📌Overfitting e Underfitting
: quando l'algoritmo memorizza i dati di invece di apprendere pattern generali. È come studiare gli esami passati a memoria e andare in crisi quando cambiano le domande.
: quando il modello è troppo semplice per catturare i pattern rilevanti.
Segnale pratico rapido: score alto + validation score basso = ; training e validation entrambi bassi = . La sfida è trovare equilibrio tra semplicità e capacità di generalizzare su dati nuovi. Nota pratica: valuta sempre il modello su dati mai visti, non solo su quelli di .
Takeaway: scegli il modello che regge meglio nel reale, non quello che "brilla" solo in .
🎬 Video
In arrivoSpiegazione visiva di overfitting e underfitting con curve di training e validation loss. Come riconoscere i segnali diagnostici: gap crescente tra train e val, bias elevato, e le strategie di mitigazione (regularization, dropout, early stopping).
media/ch04-machine-learning/sec-02/video.mp4
🚀Caso reale
Nel forecasting delle vendite, un modello lineare può battere modelli più complessi quando i dati sono pochi, puliti e relativamente stabili nel tempo. In pratica non scegli il modello più sofisticato, ma quello che mantiene performance stabili sui dati nuovi del tuo scenario reale.
🖼️ Infografica
In arrivoFramework decisionale in 3 passi per scegliere il modello giusto: dimensione dataset, complessità del pattern, vincoli di interpretabilità. Mostra quando un modello semplice (LR) batte uno complesso (RF) e come il contesto business guida la scelta tecnica.
media/ch04-machine-learning/sec-03/infographic.png
🛠️Production Warning + Task
Warning: ottimizzare solo l' può nascondere errori gravi, soprattutto quando alcune classi sono rare ma importanti.
Task (20 min): scegli due metriche aggiuntive — ad esempio e per classificazione, oppure MAE e MAPE per regressione — e spiega in quale scenario reale le useresti al posto dell'.
🎙️ Podcast
In arrivoPerché ottimizzare solo l'accuracy è pericoloso: il podcast esplora scenari reali in cui un'accuracy alta nasconde fallimenti gravi (classi rare, sbilanciamento, errori asimmetrici). Guida lo studente nella scelta di metriche complementari: precision e recall per classificazione, MAE e MAPE per regressione. Collega con overfitting (CH4 sec-2) e con la scelta strategica del modello in CH9. Takeaway operativo: la metrica giusta dipende dal costo degli errori nel tuo contesto specifico.
media/ch04-machine-learning/sec-04/podcast.mp3
ML Workflow Pratico — 5 Step
Impara facendo. Scarica il lab e la guida, poi segui gli step.
📋 Setup
Obiettivo del Laboratorio:
Imparerai il ciclo di vita completo di un modello di Machine Learning usando dati reali (i prezzi delle case in California). Non è solo teoria: prenderai dei dati grezzi, allenerai due modelli diversi e misurerai in dollari veri quant'è l'errore delle tue predizioni.
- Usare Pandas per esplorare un dataset da 20.640 righe
- Il concetto fondamentale di split Training vs Test
- Confrontare un modello semplice (Linear Regression) con uno complesso (Random Forest)
- Leggere le metriche d'errore (MAE e R²) e tracciare un grafico
Prerequisiti:
- ✅ Python 3.7+ (scarica da python.org)
- ✅ pip (incluso in Python)
Comandi di avvio:
# 1. Estrai lo ZIP e accedi
$ cd ml-lab-01-regression/
# 2. Installa dipendenze
$ pip install -r requirements.txt
# 3. Esegui il lab
$ python main.py
💡 Tip: Se pip install fallisce, prova pip3 o usa un virtual environment.
Carica i Dati
Legge il dataset California Housing (20k case con prezzi reali) che userai per il training.
Carica i Dati — Codice
python
📁 main.py (righe 28-32)
Carica il dataset e costruisce features (X) e target prezzo (y) in formato Pandas — la base strutturata per tutto il workflow ML.
🎯 Prova: Stampa X.head() — quante righe? Quante colonne? Poi verifica se i dati sono pronti per la validation.
Dividi Training e Test
Split 80% training / 20% validation.
Dividi Training e Test — Codice
python
📁 main.py (righe 35-38)
Divide il dataset: 80% per il training, 20% per il test — il principio fondamentale di ogni valutazione ML affidabile.
🎯 Prova: Cambia test_size a 0.1 — vedi MAE migliorare?
Allena il Modello
Crea 2 modelli: Linear Regression + Random Forest, poi confronta la capacità di generalization.
Allena il Modello — Codice
python
📁 main.py (righe 41-48)
Istanzia e addestra due modelli sullo stesso training set: Linear Regression (lineare, veloce) vs Random Forest (ensemble, più potente).
🎯 Prova: Cambia n_estimators e confronta velocità/accuratezza: è più veloce?
Valuta Performance
Misura MAE e R² su training e validation per scovare overfitting.
Valuta Performance — Codice
python
📁 main.py (righe 51-60)
Calcola MAE e R² su training e test per misurare l'errore in dollari e rilevare overfitting dal gap tra le due metriche.
🎯 Prova: Se test_mae >> train_mae → overfitting! Confronta anche RMSE.
Visualizza Risultati
Grafico scatter: previsioni vs realtà. Se i punti si allineano alla diagonale, il modello ha buona generalization.
Visualizza Risultati — Codice
python
📁 main.py (righe 63-71)
Grafico scatter previsioni vs realtà — più i punti si avvicinano alla diagonale, migliore è la generalizzazione del modello.
🎯 Prova: Confronta il grafico dei due modelli: chi ha dispersione minore e MAE più basso?
🎯 Punti Chiave
- •Il modello impara cercando pattern nei dati
- •Overfitting = memorizzazione (non generalizzazione)
- •Underfitting = modello troppo semplice
- •La validazione è cruciale
- •Learning outcome: distinguere overfitting/underfitting e scegliere una metrica adeguata
💬 Discussione in Aula
- •Come potremmo testare se un modello sta soffrendo di overfitting?
- •In quali situazioni reali è più rischioso l'overfitting vs underfitting?
- •Se un algoritmo impiega 1000 cicli per imparare, cosa succede al ciclo 1001?
Media del Capitolo
2/3 prontiGli slot con media reale non sono più placeholder; gli altri restano placeholder finché non carichiamo i file.
🎙️ Podcast
In arrivoPodcast del Capitolo 4: ciclo di apprendimento ML, trappola dell accuracy, come scegliere precision vs recall in base al costo degli errori, e decisioni architetturali per modelli che generalizzano davvero in produzione.
Durata target: 10-15 min
Path previsto: media/ch04-machine-learning/podcast.mp3
🧠 Quiz del Capitolo
1. Qual è il primo step corretto in qualsiasi workflow ML?