[VIDEO] Il tuo primo script di Machine Learning

[

Interessato a capire come funziona il Machine Learning da un punto di vista pratico?
Vediamo lo script minimale, l’Hello World  che ti permetterà di partire e intraprendere un percorso che ti porterà alla costruzione della IA che conquisterà il mondo.

Per partire ti serve il mitico linguaggio python e la libreria open source scikit-learn.
Segue un video tutorial e il dettaglio delle fasi coinvolte con gli snippet di codice. Prova a implementare lo script con calma senza fare copia-incolla.

Le fasi da seguire sono queste:

  1. Caricare i dati: il Machine Learning supervisionato viene fatto a partire da un tabellone di dati dove ogni riga contiene un esempio. Ogni esempio è dato dalle features, ossia le informazioni di input aka variabili indipendenti, e dal target, ossia l’output desiderato aka variabile dipendente.
    iris_dataset = datasets.load_iris()
    print iris_dataset['DESCR']
    X = iris_dataset.data
    y = iris_dataset.target
  2. Elaborare le features: Scalare le features, aggiungerne di nuove, gestire  i valori mancanti. Questo è il cuore del Machine Learning, dove entra in gioco la creatività e l’esperienza. La chiave per ottenere buoni risultati è partire da tanti dati di buona qualità, ma spesso i dati sono pochi e/o sporchi. Nel nostro Hello World vogliamo capire la struttura generale di un progetto e lasciamo questa parte per la prossima volta.
  3. Separare train e test: I dati vanno separati in (almeno) 2 tronconi, uno sarà usato per l’addestramento del modello e l’altro per testare il modello su dati che non sono stati usati durante l’addestramento. Questa procedura di validazione ci permette di capire se il modello ha effettivamente generalizzato i dati e trovato dei pattern utili o se ha semplicemente imparato gli esempi a memoria.
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4)
    
  4. Costruire il modello: tutte le librerie di machine/deep learning più importanti sono a oggetti e seguono una API molto simile. Si instanzia una classe che prende il nome di un algoritmo di addestramento, l’istanza della classe è il modello (inizialmente non addestrato). Tutte le classi mettono a disposizione i metodi per addestrare e testare il modello, tramite i metodi fit e predict.
    model = DecisionTreeClassifier()
  5. Addestrare il modello: istanziato il modello chiamiamo il metodo fit e gli passiamo i dati di training, già separati tra le feature X_train e le risposte desiderate y_train.
    model.fit(X_train, y_train)
  6. Ottenere le predizioni: dopo l’apprendimento il modello viene interrogato passandogli solo le features e raccogliendo le sue risposte. Lo facciamo sia per i dati di training che per quelli di test, chiamando i risultati rispettivamente predicted_train e predicted_test.
    predicted_train = model.predict(X_train)
    predicted_test  = model.predict(X_test)
  7. Misurare le prestazioni: le prestazioni sono misurate confrontando le risposte desiderate, cioè quelle che avevamo nei dati, con le risposte offerte dal modello. Si utilizzano misure diverse a seconda se il modello sia un classificatore (output a categorie) o un regressore (output numerico), ma in tutti i casi le misure prendono in input risposte desiderate e risposte predette. Misuriamo l’accuratezza sia sui dati di training che sui dati di test.
    print('Train accuracy')
    print( accuracy_score(y_train, predicted_train) )
    print('Test accuracy')
    print( accuracy_score(y_test, predicted_test) )
  8. Analisi dell’errore: In questo esempio hello world non entriamo nel merito di come si approfondiscono gli errori del modello e come si visualizzano e riparano. Nella pratica del machine learning dopo aver indagato sugli errori si ritorna al punto 2 e si va avanti fino all’ottenimento di prestazioni decenti.

Questo era il tuo primo script di Machine Learning in python. Da qui ci sono diverse cose che puoi fare:

  • leggere gli altri articoli sul tema che trovi qui su ItalianCoders
  • guardare i video del Pollo Watzlawick su Youtube
  •  in generale, ti conviene scegliere un dataset su un argomento di interesse e sperimentare su quello. Fare grafici esplorativi, statistiche descrittive e modelli di machine learning è più semplice se i dati che maneggi nascondono risposte alla tua curiosità.

A proposito di me

Piero Savastano

Piero viene dal mondo della ricerca sull'intelligenza artificiale bioispirata. Al momento è un data scientist freelance, versato sulla visualizzazione dati e il machine learning per il web.
Lo trovi su YouTube col Pollo Watzlawick con i tutorial sul machine learning, e sul sito personale o su Linkedin.
Crede nella curiosità e nella creatività.

Di Piero Savastano

Gli articoli più letti

Articoli recenti

Commenti recenti