Panoramica degli strumenti AI

// obiettivi di apprendimento
Spiegare perché Python è diventato il linguaggio standard per l’AI/ML e confrontarlo con le alternative (R, Julia, C++)
Usare Google Colab per creare un notebook, eseguire celle di codice e markdown, montare Google Drive e abilitare il runtime GPU
Orientarsi nello stack Python per l’AI: sapere a cosa servono NumPy, Pandas, Matplotlib, Scikit-learn, TensorFlow/Keras, PyTorch e HuggingFace
Trovare e caricare dataset pubblici da Kaggle, UCI ML Repository e HuggingFace Datasets per iniziare a sperimentare
🎬
Video
Setup Colab, primo notebook, import librerie e hello world ML
Guarda →
📄
Slides
Mappa stack Python AI, shortcut Jupyter, decision tree librerie
Scarica →
⚗️
Lab
Notebook Colab: setup librerie, carica CSV, esplora dataset Iris, 3 grafici
GitHub →
🔗
Risorse
Cheatsheet Jupyter, Kaggle, UCI Repository, HuggingFace Datasets
Vedi →

Perché Python per l’AI?

Potremmo fare AI in quasi qualunque linguaggio. Allora perché il 90%+ dei paper, dei corsi, dei job posting e delle librerie AI usano Python? Non è perché Python sia il più veloce — anzi, è lento rispetto a C++ o Julia. Il motivo è una combinazione di fattori storici, pratici e di ecosistema che si sono auto-rinforzati nel tempo.

📦
ECOSISTEMA LIBRERIE

NumPy, SciPy, Pandas, Matplotlib, Scikit-learn, TensorFlow, PyTorch — tutte le librerie di riferimento sono scritte in Python. Aggiungerne una nuova significa entrare automaticamente in un ecosistema coerente e interoperabile.

🔬
NOTEBOOK INTERATTIVI

Jupyter Notebook (2014) ha rivoluzionato la ricerca: codice, output, grafici e testo formattato nello stesso documento. Questo flusso di lavoro esplorativo è diventato lo standard in data science e ML. Non esiste equivalente altrettanto maturo in altri linguaggi.

VELOCITÀ ≠ LENTEZZA

Python è lento come interprete, ma le librerie critiche (NumPy, TensorFlow, PyTorch) sono scritte in C/C++/CUDA. Python fa da “colla” leggera tra operazioni ottimizzate. La lentezza non tocca i calcoli numerici pesanti.

Python vs alternative: quando usare cosa

LinguaggioPunti di forza nell’AIQuando preferirloQuando evitarlo
PythonEcosistema AI completo, notebook, community enorme, prototipazione rapidaQuasi sempre — ricerca, prototipazione, produzione MLSistemi embedded con vincoli di memoria e latenza critici
RStatistica classica, visualizzazione (ggplot2), bioinformaticaAnalisi statistica pura, pubblicazioni scientifiche in medicinaDeep learning, sistemi in produzione, applicazioni web
JuliaVelocità nativa, calcolo scientifico ad alte prestazioniSimulazioni numeriche intensive, ricerca scientifica computazionaleEcosistema AI/ML ancora immaturo rispetto a Python
C++ / CUDAMassima performance, controllo hardware, GPU low-levelInferenza in produzione ottimizzata, kernel custom per GPUPrototipazione, ricerca, tutto ciò che richiede flessibilità

Jupyter Notebook e Google Colab

Il Jupyter Notebook (Project Jupyter, ex IPython Notebook) è il formato standard per la data science interattiva. Un notebook è un documento JSON (.ipynb) che contiene una sequenza di celle: ogni cella può essere codice Python eseguibile o testo formattato in Markdown. Gli output — testo, tabelle, grafici — sono salvati inline nel file.

// struttura di un notebook
[Markdown] # Titolo sezione
Testo formattato, equazioni LaTeX, immagini linkate
[Code] import pandas as pd …
Codice Python eseguito dal kernel. Output — testo, tabelle, grafici — appare sotto.
[Output] ← generato automaticamente
DataFrame, grafico matplotlib, messaggio di errore — tutto salvato nel .ipynb

Google Colab — Jupyter nel browser, GPU gratis

Google Colaboratory (Colab) è un servizio Google che ospita Jupyter Notebook nel cloud, accessibile da browser senza installare nulla. Il vantaggio chiave: accesso gratuito a GPU NVIDIA (T4, A100 a pagamento) e TPU per accelerare il training — hardware che su un PC consumer costerebbe migliaia di euro.

FunzioneCome si faNote
Nuovo notebookcolab.research.google.com → File → New notebookSalvato automaticamente su Google Drive
Runtime GPURuntime → Change runtime type → T4 GPUGratuito con limiti di ore/giorno; Colab Pro per più ore
Mount Google Drivefrom google.colab import drive; drive.mount('/content/drive')Accedi ai file di Drive come se fossero locali
Installare pacchetti!pip install nome_pacchettoIl ! esegue comandi shell; la sessione è temporanea
Caricare file localifrom google.colab import files; files.upload()Oppure trascina il file nel pannello di sinistra
Eseguire cellaShift+EnterEsegue e sposta al cursore alla cella successiva
Nuova cella codiceCtrl+M poi B (below)A per above, B per below
// attenzione: sessioni temporanee

In Colab, la sessione del runtime dura al massimo ~12 ore e le variabili vengono azzerate dopo l’inattività. I file salvati su /content/ vengono persi al termine della sessione: salva sempre su Google Drive o scarica i file importanti. Il codice del notebook resta salvato su Drive.

Lo stack Python per l’AI — la mappa completa

Lo stack AI Python è suddiviso in livelli: dalle operazioni numeriche di base, passando per la manipolazione dati, fino alle librerie specializzate per ML e DL. Capire quale livello fa cosa evita di usare uno strumento al posto sbagliato.

LIVELLO 5
APPLICAZIONI SPECIFICHE
HuggingFace Transformers LangChain OpenCV NLTK / spaCy
LIVELLO 4
DEEP LEARNING
TensorFlow 2 / Keras PyTorch JAX
LIVELLO 3
ML CLASSICO
Scikit-learn XGBoost LightGBM Statsmodels
LIVELLO 2
DATI E VISUALIZZAZIONE
Pandas Matplotlib Seaborn Plotly
LIVELLO 1
FONDAMENTA NUMERICA
NumPy SciPy Python stdlib

Schede rapide delle librerie principali

NumPy — 1.x/2.x
import numpy as np

Array N-dimensionali ad alte performance. Sostituisce i loop Python con operazioni vettoriali ottimizzate in C. È la fondamenta di quasi tutto lo stack AI: Pandas, Scikit-learn e i tensor di PyTorch/TF sono tutti costruiti sopra array NumPy o concetti compatibili.

Pandas — 2.x
import pandas as pd

DataFrame tabellari (come Excel, ma programmabile). Carica CSV, JSON, Excel, SQL. Permette filtraggio, aggregazione (groupby), join tra tabelle, gestione valori mancanti. Il punto di partenza per qualunque analisi dati.

Matplotlib + Seaborn
import matplotlib.pyplot as plt / import seaborn as sns

Matplotlib è la libreria di visualizzazione di base: controllo totale ma verbosa. Seaborn è un layer ad alto livello su Matplotlib: grafici statistici belli con poche righe di codice. Scatterplot, boxplot, heatmap correlazione — tutto pronto in 2-3 righe.

Scikit-learn — 1.x
from sklearn.linear_model import LinearRegression

Il toolkit standard per il ML classico. Implementa decine di algoritmi (regressione, classificazione, clustering, riduzione dimensionalità) con un’API coerente: fit(), predict(), transform(). Include anche Pipeline, cross-validation e GridSearchCV.

TensorFlow 2 / Keras
import tensorflow as tf / from tensorflow import keras

Framework DL di Google. Keras (ora integrato in TF2) offre un’API ad alto livello per costruire reti neurali con poche righe. Ottimo per deployment in produzione (TensorFlow Serving, TensorFlow Lite per mobile). Molto usato in ambito enterprise.

PyTorch — 2.x
import torch / import torch.nn as nn

Framework DL di Meta. Dynamic computation graph — il grafo si costruisce durante l’esecuzione, rendendo il debug più intuitivo. Preferito nella ricerca accademica. È la base di HuggingFace Transformers. In forte crescita rispetto a TensorFlow.

// consiglio pratico: non imparare tutto insieme

Inizia con NumPy + Pandas + Matplotlib + Scikit-learn. Questi coprono il 90% dei problemi di ML classico. Aggiungi TensorFlow o PyTorch solo quando ti avvicini alle reti neurali. HuggingFace Transformers arriva solo quando vuoi usare modelli pre-addestrati. Lo stack si costruisce progressivamente — ogni livello dipende dai precedenti.

Primo notebook: il tuo “hello world” dell’AI

Un classico primo esperimento è addestrare un classificatore sul dataset Iris, che contiene 150 misurazioni di petali e sepali di 3 specie di iris. Con Scikit-learn, l’intera pipeline richiede meno di 20 righe.

# Importa le librerie necessarie
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

# 1. Carica il dataset (150 esempi, 4 feature, 3 classi)
iris = load_iris()
X, y = iris.data, iris.target

# 2. Split train/test (80% train, 20% test)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# 3. Addestra il modello
model = DecisionTreeClassifier(max_depth=3)
model.fit(X_train, y_train)   # ← qui avviene l'apprendimento

# 4. Valuta sul test set (dati mai visti)
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuratezza: {accuracy:.2%}")  # → ~96.67%
// cosa sta succedendo in queste 20 righe

Riga 13 — train_test_split: separa i dati in un set di addestramento e uno di test. Il modello non vedrà mai i dati di test durante il training — servono solo per misurare le performance reali. Il random_state=42 garantisce riproducibilità (stesso split ogni volta). Riga 17 — model.fit(): è qui che avviene il Machine Learning: il Decision Tree analizza X_train e y_train, costruisce l’albero di decisione che minimizza l’impurità. Riga 20 — model.predict(): applica il modello addestrato a dati nuovi.

Dataset pubblici: dove trovare i dati

Un modello ML è buono quanto i dati su cui viene addestrato. La buona notizia: esistono migliaia di dataset pubblici, gratuiti e già puliti, perfetti per imparare e sperimentare.

🏆
KAGGLE — kaggle.com/datasets

La piattaforma più popolare per data science. Contiene migliaia di dataset scaricabili, competizioni con premi in denaro e notebook pubblici (soluzioni degli altri da studiare). Registrazione gratuita. Usa la Kaggle API per scaricare dataset direttamente in Colab: !kaggle datasets download -d username/dataset-name. Ottimo per dataset “sporchi” realistici.

🎓
UCI ML REPOSITORY — archive.ics.uci.edu

Il repository storico dell’University of California Irvine: oltre 650 dataset usati in pubblicazioni scientifiche dal 1987. Dati “classici” come Iris, Wine, Breast Cancer, Adult Income. Citabili nelle ricerche, con descrizione dettagliata delle feature. Ideale per sperimentare algoritmi.

🤗
HUGGING FACE DATASETS — huggingface.co/datasets

Oltre 50.000 dataset per NLP, CV e audio. Caricamento in una riga: from datasets import load_dataset; ds = load_dataset("imdb"). Integrazione nativa con PyTorch e TensorFlow. Perfetto per NLP — contiene IMDB, Wikipedia, CommonCrawl e molti altri corpora testuali.

🔍
GOOGLE DATASET SEARCH — datasetsearch.research.google.com

Motore di ricerca Google dedicato ai dataset. Aggrega dataset da migliaia di repository (governo, accademia, aziende). Utile quando cerchi dati su un dominio specifico (es. “air quality Italy”) senza sapere dove trovarli.

Decision tree: quale libreria usare?

Hai già dati strutturati (tabelle)?
✓ SÌProblema di classificazione o regressione?
Scikit-learn (LogReg, RandomForest, SVM, Decision Tree)
✓ Dataset >100k righe, accuracy criticaXGBoost / LightGBM
✗ NOTipo di dato?
Immagini / videoPyTorch + torchvision oppure TensorFlow/Keras
TestoHuggingFace Transformers (modelli pre-addestrati)
AudioHuggingFace + Whisper oppure librosa
Ambiente / giocoGymnasium + Stable-Baselines3
Regola generale: inizia sempre con Scikit-learn. Aggiungi complessità solo quando necessario.
📌 Riepilogo — Punti chiave
  • Python domina l’AI non perché sia veloce, ma perché le librerie C/C++ ottimizzate si usano tramite wrapper Python semplici, e l’ecosistema si è auto-rinforzato nel tempo.
  • Google Colab è il punto di partenza ideale: Jupyter nel browser, GPU gratuita, nessuna installazione. Salva sempre i file su Drive — le sessioni sono temporanee.
  • Lo stack AI si costruisce a livelli: NumPy → Pandas/Matplotlib → Scikit-learn → TensorFlow/PyTorch → HuggingFace. Impara ogni livello prima di passare al successivo.
  • Scikit-learn copre il 90% dei task di ML classico con un’API coerente: fit(), predict(), transform(). È il punto di partenza per chiunque.
  • Dataset pubblici: Kaggle per dataset realistici e competizioni, UCI per dataset accademici classici, HuggingFace Datasets per NLP e CV, Google Dataset Search per ricerche tematiche.
  • Questo completa il Modulo 1 di AI Livello 1. Il prossimo modulo affronta la matematica necessaria: algebra lineare, calcolo, probabilità e statistica — le fondamenta teoriche su cui tutto il resto si costruisce.

Lascia un commento