Vai al contenuto principale

Machine Learning automatizzato con Auto-Keras

Scopri l’automated machine learning e come realizzarlo con auto-keras.
Aggiornato 29 set 2026  · 11 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Oggi il termine machine learning non è affatto raro: realtà come DataCamp, Coursera, Udacity e molte altre lavorano costantemente per rendere l’educazione al machine learning più efficiente e accessibile a tutti. Grazie alle loro piattaforme, iniziare in questo campo è davvero semplice anche senza grandi prerequisiti. Tuttavia, l’espressione Automated Machine Learning sta facendo sempre più notizia nei forum dedicati alla Data Science. Molte organizzazioni come Google, H2O.ai, ecc. stanno facendo un lavoro notevole in quest’area. Non è un argomento così comune rispetto al Machine Learning in generale. Dal momento che il machine learning riguarda di per sé l’automazione, è naturale che la prima domanda che viene in mente sia: "Si può automatizzare anche il machine learning?"

In questo tutorial troverai le risposte a molte domande di questo tipo.

Iniziamo.

Capire una pipeline standard di Machine Learning

Quando, da Data Scientist, affronti un problema, il tuo flusso di lavoro tipico somiglia a questo:

  1. Raccolta dei dati
  2. Preprocessing dei dati
  3. Inizializzazione di un modello di machine learning potenzialmente adatto al problema
  4. Training del modello
  5. Test del modello
  6. Regolazione dei parametri del modello
  7. Nuovo test del modello
  8. Comunicazione dei risultati

Il secondo passaggio, Preprocessing dei dati, è molto ampio perché è in sostanza una delle attività più dispendiose in termini di tempo dell’intera pipeline: include molte sotto-attività come Data Cleaning, Data Transformation, Feature Selection, ecc. I passaggi dal 3 al 7 riguardano un singolo modello di machine learning. Un buon professionista non si ferma certo a un solo modello: proverà diversi modelli per confrontarne i risultati e decidere infine il migliore per il problema. Ed ecco un altro insieme di attività molto impegnative in termini di tempo: decidere quale modello scegliere?

La seguente citazione sul processo di debugging in un compito di machine learning è quanto mai calzante ed è fondamentale tenerla a mente:

"Il debugging per il machine learning avviene in due casi: 1) il tuo algoritmo non funziona, oppure 2) il tuo algoritmo non funziona abbastanza bene.[...] Raramente un algoritmo funziona al primo tentativo, ed è quindi qui che finisce per essere spesa la maggior parte del tempo nella costruzione degli algoritmi." - S. Zayd Enam

A questo punto dovresti avere un’idea di massima di un tipico compito di ingegneria del machine learning. In definitiva dovrai decidere quale modello è il migliore per il problema che hai tra le mani e spiegare anche perché lo è. A volte ti troverai in situazioni in cui le possibilità da provare sono tantissime e la scadenza è vicina. Colto il punto? Vediamo oltre.

Come si può automatizzare la pipeline di Machine Learning?

Proseguiamo partendo dall’idea di dover scegliere il modello migliore in una situazione in cui il numero di possibilità e la scadenza sono inversamente proporzionali.

All’inizio di questo tutorial ti sei imbattuto nella domanda "Si può automatizzare anche il machine learning?". Non è affatto una domanda sciocca. Persino Sebastian Raschka, in un’intervista, ha descritto l’Automated Machine Learning come "l’automazione dell’automatizzare l’automazione".

Rivedi il punto 5 del flusso di lavoro standard che hai appena esaminato: Regolare gli iperparametri del modello. Mettiamo che tu abbia finito di preparare i dati e abbia appena inizializzato un classificatore $X$. Supponiamo che $X$ preveda 5 iperparametri diversi. Dovrai quindi provare lo stesso classificatore $X$ con differenti insiemi di valori degli iperparametri, il che non è affatto banale da eseguire. E ora arriva la parte più problematica: dopo aver provato varie combinazioni, scopri che i risultati non sono abbastanza buoni. Decidi quindi di testare altri quattro classificatori (ognuno con 6 iperparametri diversi). Riesci a immaginare quanto tempo possa richiedere? E se anche dopo questo non ottenessi risultati soddisfacenti? L’indagine su cosa non va sarebbe un altro processo estremamente dispendioso.

È da questo problema che nasce l’idea stessa dell’Automated Machine Learning.

"Se occorre costruire numerosi modelli di machine learning, usando una varietà di algoritmi e molteplici configurazioni di iperparametri, allora la costruzione dei modelli può essere automatizzata, così come il confronto delle prestazioni e dell’accuratezza." - KDNuggets

Ora è chiaro perché il termine Automated Machine Learning stia attirando tanta attenzione nei forum di educazione alla Data Science. Approfondiremo l’argomento nella prossima sezione.

Introduzione all’Automated Machine Learning

La messa a punto degli iperparametri per diversi modelli di machine learning è anch’essa un’operazione che può richiedere molto tempo. In termini più informatici, il tuning degli iperparametri è un processo di ricerca che, in questo caso, può essere estremamente esaustivo. E se potessimo automatizzare questo processo? Ecco, in sostanza è ciò che fa l’automated machine learning. "L’automated machine learning è una soluzione diretta alla carenza di data scientist, poiché può aumentare drasticamente le prestazioni e la produttività dei data scientist accelerando i cicli di lavoro, migliorando l’accuratezza dei modelli e, in ultima analisi, persino sostituendo la necessità dei data scientist." -Automated Machine Learning for Internet of Things

Ora hai abbastanza elementi sull’automated machine learning e sei pronto a vederlo in azione. Prima, però, vediamo alcune delle librerie Python più usate per farlo.

Librerie Python per l’Automated Machine Learning

Esistono molte librerie Python per eseguire l’automated machine learning. Tutte puntano più o meno allo stesso obiettivo: automatizzare il processo di machine learning. Ecco alcune tra le più utilizzate:

Ognuna di queste librerie adotta un proprio approccio per affrontare il processo di "automazione dell’automatizzare l’automazione". In questo tutorial userai Auto-Keras. Allora, perché aspettare? Facciamolo.

Introduzione ad Auto-keras

"Auto-Keras è una libreria software open source per l’automated machine learning." (Fonte) È sviluppata dal DATA Lab della Texas A&M University e da contributori della community. Secondo il sito ufficiale di auto-keras: "L’obiettivo finale di questo automated machine learning è fornire strumenti di deep learning facilmente accessibili a esperti di dominio con competenze limitate in data science o machine learning. Auto-Keras offre funzioni per cercare automaticamente architetture e iperparametri di modelli di deep learning."

Logo di AutoKeras

Fonte: Auto-Keras

Per installare auto-keras esegui il seguente comando.

Nota: attualmente Auto-Keras è compatibile solo con: Python 3.6.

!pip install autokeras

Ora che hai installato correttamente Auto-Keras, è il momento di una rapida implementazione.

Un caso d’uso di AutoML con Auto-keras

Per questo case study userai il popolarissimo dataset MNIST. keras include già questo dataset, quindi non devi scaricarlo a parte. Inizierai caricando il modulo ImageClassifier di auto-keras. Caricherai anche il dataset MNIST dal modulo keras.

from keras.datasets import mnist
from autokeras import ImageClassifier

Hai caricato il dataset MNIST dal modulo keras.datasets e importato ImageClassifier da auto-keras. Ora separerai il dataset in train e test split.

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(x_train.shape + (1,)) # (1,) denotes the channles which is 1 in this case
x_test = x_test.reshape(x_test.shape + (1,)) # (1,) denotes the channles which is 1 in this case
Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz
11493376/11490434 [==============================] - 1s 0us/step

Hai separato train e test e ora effettuerai il fit di ImageClassifier con x_train e y_train. Testerai le prestazioni su x_test e y_test.

# Instantiate the ImageClassifier class
clf = ImageClassifier(verbose=True, augment=False)
# Fit the train set to the image classifier
clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
# Summarize the results
y = clf.evaluate(x_test, y_test)
print(y * 100)

È semplice come vedi sopra. Bastano 4–5 righe di codice per un esperimento rapido. In realtà non è poi così rapido: il codice richiede un tempo considerevole per l’esecuzione. Una configurazione adeguata per esperimenti di Deep Learning ti aiuterà senza dubbio. Anche Google Colab è un ottimo punto di partenza.

Ora vediamo meglio i parametri usati nel codice. Faremo riferimento alla documentazione di auto-keras; di seguito i punti rilevanti:

  • In ImageClassifier():
    • verbose: booleano che indica se stampare a output il processo di ricerca.
    • augment: booleano che indica se è necessario effettuare data augmentation. Se non definito, usa il valore di Constant.DATA_AUGMENTATION, che è True per impostazione predefinita.
  • Nel metodo fit():
    • time_limit: il limite di tempo per la ricerca in secondi.
  • final_fit(): training finale dopo aver trovato la migliore architettura.
    • retrain: booleano che indica se re-inizializzare i pesi del modello.

Auto-keras è una libreria in evoluzione ed è ancora in versione pre-release. Secondo il sito ufficiale, supporta i seguenti moduli principali:

  • supervised: la classe base per tutti i task supervisionati.
  • bayesian: un GaussianProcessRegressor per l’ottimizzazione bayesiana.
  • search: classe base di tutti i searcher. Ogni searcher può sovrascrivere la propria funzione di ricerca per implementare la propria strategia.
  • graph: classe che rappresenta il grafo dell’architettura neurale di un modello Keras. Estrae il grafo dell’architettura da un modello Keras. Ogni nodo del grafo è un tensore intermedio tra layer. Ogni layer è un arco del grafo. In particolare, più archi possono riferirsi allo stesso layer (ad es. il layer Add somma due tensori in un unico tensore, perciò è collegato a due archi).
  • preprocessor: classe che può formattare i dati. Fornisce metodi per trasformare le etichette di classificazione dei dati in un vettore.
  • model_trainer: classe usata per addestrare il modello. Può addestrare un modello Pytorch con i data loader forniti. Metric, loss_function e modello devono essere compatibili tra loro. Vedi i dettagli negli Attributi.

Note finali

Sei arrivato alla fine. In questo tutorial hai rivisto il processo del machine learning in generale e hai visto come possa essere automatizzato. Hai dato un’occhiata alle librerie disponibili per l’AutoML. Hai usato auto-keras per capire che tipo di astrazione ad alto livello offre e quanto sia facile da usare.

Questo tutorial potrebbe farti pensare che l’AutoML, una volta a prova di errore, possa sostituire molti data scientist. Davvero? Ripensaci. L’AutoML libera i data scientist dal peso del processo iterativo di selezione del modello migliore per un problema. In questo modo, ci si può concentrare di più sui dati, che sono l’aspetto più essenziale. Questa intervista a Randy Olson offre spunti interessanti sull’argomento. Dagli un’occhiata e non ti sentirai demotivato. Se mai dovessi dubitare del lavoro di un professionista del machine learning, leggi questo post.

Il campo dell’automated machine learning sta davvero facendo progressi. Per esempio, NAS, acronimo di Neural Architecture Search, è un algoritmo che cerca la migliore architettura di rete neurale. Di seguito alcuni link a risorse che mostrano casi d’uso all’avanguardia dell’AutoML:

Alcune fonti utilizzate:

Se vuoi approfondire il Deep Learning, segui il corso "Deep Learning in Python" di DataCamp e dai un’occhiata al nostro corso Introduction to Deep Learning in Python.

Argomenti
Machine Learning
Python

Scopri di più su Python e Machine Learning

Corso

Machine Learning con modelli ad alberi in Python

5 ore
119.8K
In questo corso imparerai come usare modelli basati su alberi e insiemi per la regressione e la classificazione usando scikit-learn.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

Mostra AltroMostra Altro