Comprendere il Machine Learning con un semplice esempio

Sentiamo parlare spesso di intelligenza artificiale e Machine Learning, ma hai realmente idea di cosa sia e di quanto possa esserti utile come sviluppatore? Ogni programmatore approccia a questa metodologia di sviluppo con molta diffidenza e difficoltà. In questa guida voglio rompere definitivamente questo muro di diffidenza e farti capire, con un semplice esempio pratico, quanto possa esserti utile avere quel giusto grado di conoscenza, che questo tipo di approccio allo sviluppo merita, per creare algoritmi in grado di apprendere imitando l’intelligenza umana.

Prima di iniziare voglio farti una premessa, il Machine Learning è molto utilizzato ma considera che è solo una parte dell’intelligenza artificiale. Il grande mondo che circonda l’intelligenza artificiale include non solo il Machine Learning ma tanto altro ancora.


LEGGI ANCHE: 3 modi per mettere in sicurezza Windows 10


1. Cos’è il Machine Learning?

Senza saperlo, quando utilizzi i social media, oppure, quando partecipi a un sondaggio, e quindi, ogni volta che qualcuno recupera dei dati proponendoti delle domande a cui rispondere, alla base c’è sempre il Machine Learning per effettuare delle valutazioni sui dati raccolti. 

Mi spiego meglio, i dati raccolti da un eventuale sondaggio vengono raccolti in file di Excel, niente di più semplice. Questo file viene sempre dato in pasto ad un algoritmo di Machine Learning, utilizzato per decidere e auto-apprendere la logica e il ragionamento da mettere in atto per restituire il risultato cercato dallo sviluppatore sulla base dei dati che utilizza, esattamente come farebbe la mente umana.

Lo so mi rendo conto quanto sia complesso e cavilloso spiegare cos’è il Machine Learning e quanto possa essere utile. Ma dedicami solo 5 minuti del tuo preziosissimo tempo perché sono convinto che con l’esempio che sto per proporti capirai perfettamente cos’è il Machine Learning, anzi, sono sicuro che lo utilizzerai nel tuo prossimo algoritmo.

2. Cosa serve per implementare il Machine Learning

Arriviamo al dunque, innanzitutto per implementare il nostro primo algoritmo di Machine Learning abbiamo bisogno di un linguaggio di programmazione e di una libreria, molto sofisticata, che include tutto il software necessario per implementare il Machine Learning.

Come linguaggio di programmazione sarebbe meglio utilizzare Python. Perchè Python? Beh, innanzitutto, oltre ad essere un linguaggio gratuito, per cui non devi spendere neanche un centesimo per implementare il tuo primo algoritmo decisionale, è corredato di due importanti librerie, anch’esse gratuite, Pandas e scikit-learn, con le quali potrai implementare il tuo primo modello di intelligenza artificiale. Conoscerai uno dei meccanismi più utilizzati del Machine Learning, il Decision Tree.

3. Installazione di Python

Come ti ho anticipato al paragrafo precedente, abbiamo la necessità di installare Python, un linguaggio, gratuito e interpretato, adatto per eseguire script immediatamente senza la necessità di compilare il sorgente e produrre un eseguibile. Python è la scelta giusta quando hai la necessità di provare script al volo.

L’operazione di installazione di Python è semplicissima, basta recarsi su questa pagina web e cliccare sul pulsante Download Python.

download python

La home page di Python si predispone al download della versione richiesta dal sistema operativo utilizzato dal computer in uso. Per quanto riguarda il mio caso, la home page di Python mi propone il download della versione adatta per un Mac.

Terminato il download di Python non ti resta che eseguire il pacchetto di installazione e procedere con l’installazione del linguaggio. Quindi, spunta la voce Add Python to Path e scegli l’installazione personalizzata del linguaggio, (vedi figura).

installazione personalizzata python

A questo punto verifica che tutte le caselle di selezione siano spuntate, specialmente quella che fa riferimento al modulo pip, e clicca sul pulsante Next, procedi portando a termine l’installazione dell’interprete Python cliccando sul pulsante accetta se proposto.

impostazione installazione python

Nel caso in cui riscontrassi delle difficoltà durante l’installazione potrai avvalerti di questo breve video tutorial e seguire passo-passo la procedura di installazione di Python.

Come installare Python

4. Installazione delle librerie Pandas e scikit-learn

Adesso, terminata l’installazione di Python, devi aprire il terminale, oppure, la console dei comandi del tuo sistema operativo e digitare il comando python + INVIO.

machine learning

Ora, se ricordi, abbiamo bisogno di due librerie, Pandas e scikit-learn, ci serviranno per gestire il file Excel con i dati e inizializzare la tua prima macchina decisionale.

Prima di procedere però, devi verificare la corretta installazione del modulo pip, quindi, digita da terminale il seguente comando:

pip --version

Se nell’output fornito dal precedente comando non fosse incluso il numero di versione allora bisogna procedere manualmente all’installazione. A tal proposito, per installare manualmente il modulo pip, devi recarti su questa pagina web dove potrai copiare e successivamente incollare all’interno della console dei comandi, le istruzioni appropriate per il tuo sistema operativo e installare definitivamente il modulo sul tuo computer. Dopo aver installato il modulo pip, sempre da terminale, devi digitare i seguenti comandi:

pip install pandas
pip install scikit-learn
machine learning

Ora, Python, Pandas e scikit-learn sono correttamente installati, adesso possiamo procedere con la preparazione del file Excel contenente i dati da dare in pasto alla tua macchina decisionale.

5. Preparazione dei dati di input per il Machine Learning

Adesso, sappiamo con certezza che la nostra macchina decisionale riceverà in ingresso i dati da un file Excel, chiamato in gergo Training Set. A questo punto, crea sul tuo desktop una cartella, che conterrà lo script scritto in Python. Successivamente crea un file, al suo interno, con estensione py che chiamerai modello.py. Inoltre, anche il file Excel, contenente i dati da processare, sarà presente sempre nella stessa cartella del file modello.py.

Creata la cartella e il file Excel vuoto di nome modelli.csv, devi popolarlo con dei dati. Beh, tranquillo adesso viene il bello. La struttura del file e i dati che inserirai all’interno del foglio di calcolo dipenderanno esclusivamente da cosa vuoi far valutare alla macchina decisionale.

Tanto per rendere le cose estremamente semplici, ho deciso di far valutare alla macchina decisionale quali sono i modelli di cellulare preferiti in base ad una determinata fascia di età. Ad esempio, noi daremo in input, all’algoritmo di Machine Learning, l’età e l’algoritmo decisionale ci dirà qual è il modello preferito in quella fascia specifica di età.

Quindi, il file Excel conterrà due colonne, gli anni e le marche di cellulari. Quindi, all’interno di questo file, ci sarà un’enorme quantità di dati con questa struttura:

Machine learning il Training set

Logicamente più dati inserirai all’interno del file Excel più precisa sarà la valutazione che farà la macchina decisionale e l’algoritmo di Decision Tree. Ora, passiamo ai fatti, voglio farti una domanda: “Senza sfruttare il Machine Learning, ma le tue sole conoscenze da sviluppatore, che algoritmo avresti messo a punto per ottenere il risultato che la macchina decisionale ci darà sulla base dei dati presenti all’interno del file di Excel?” Beh, in tutta onestà penso che passeresti tantissime notti insonni prima di arrivare ad un risultato coerente. Ad ogni modo, vediamo come con pochissime righe di codice e grazie alle due librerie precedentemente installate il nostro albero decisionale ci restituirà un risultato coerente e attendibile.

6. Implementazione dell’algoritmo di Intelligenza Artificiale

Finalmente ci siamo, apri un editor di testo qualunque, e apri il file modello.py, copia e incolla al suo interno questo codice:

# importazione librerie pandas e scikit-learn
from pandas import read_csv
from sklearn.tree import DecisionTreeClassifier
# scrive l’intero file di excel all’interno della variabile dati
dati = read_csv(‘modelli.csv’)
# scrive l’intero contenuto della colonna anni all’interno della variabile anni
anni = dati[‘anni’]
# scrive l’intero contenuto della colonna marche all’interno della variabile marche
marche = dati[‘marche’]
# istanzia l’albero decisionale
valutazione = DecisionTreeClassifier()
# popola l’albero decisionale con i dati in input e output
valutazione.fit(anni.values, marche.values)
# l’albero decisionale valuta una previsione, cioè, restituisce la 
# marca di cellulare preferita da un individuo di 14 anni
previsione = valutazione.predict([14])
# stampa il risultato della previsione
print(previsione)

Il codice Python, contenuto all’interno dello script, rappresenta uno dei sistemi più utilizzati in ambito Machine Learning. Quello che devi osservare è che, con pochissime istruzioni e tramite il Machine Learning, è stato possibile valutare una previsione sulla base dei dati forniti all’albero decisionale. Nel caso in cui il parametro fornito al metodo predict non fosse presente nel file di Excel, l’albero decisionale ritornerebbe comunque una previsione, la più attendibile possibile, fatta sulla base dei dati forniti in input.

Ciò che mi affascina, è il meccanismo utilizzato dal Machine Learning per apprendere. Ma, “come fa ad apprendere un algoritmo di Machine Learning?” In sostanza, se dai un’occhiata al codice più approfondita, avrai senz’altro notato che l’albero decisionale viene alimentato non solo da dati di input, in questo caso gli anni, ma anche dai dati di output, in questo caso le marche di telefonini. Per cui, il nostro algoritmo è già a conoscenza delle eventuali soluzioni. Tutto qua, a questo punto si tratta solo di effettuare delle decisioni sulle soluzioni offerte all’albero decisionale ed estrarre quelle più coerenti con la tua richiesta.

7. Avviare la macchina decisionale

Una volta salvato il file, modello.py, non ti resta che eseguirlo cliccando con il tasto destro del mouse sul file modello.py. Ora, non ti rimane che selezionare la voce del menu Apri con -> Python Launcher.

Puoi eseguire lo script, cliccando con il tasto destro del mouse sul file “modello.py. Seleziona la voce Edit With Idle -> Edit with Idle x.xx (64 bit).

edit with idle python

Dopo l’apertura dell’ambiente di sviluppo integrato per Python, Idle Python, non ti resta che premere il tasto funzione F5 per eseguire lo script.

machine learning

Il risultato della previsione, restituito dall’elaborazione dello script, è questo:

machine learning - il risultato della previsione

Ora, crea un tuo Training set e prova a effettuare previsioni diverse modificando opportunamente il file modello.py sulla base di differenti parametri forniti. Leggi attentamente il contenuto del file modello.py e, soprattutto, i commenti contenuti al suo interno. Ti renderai conto di quanto sia semplice mettere in moto meccanismi di elaborazione molto complessi con questo sistema. Per cui, modifica opportunamente i dati all’interno del tuo Training set e prova a effettuare altre elaborazioni con dati differenti.


LEGGI ANCHE: Come creare un software gestionale gratis con SQL Server e NodeJS


Antonio Lamorgese

Amministratore di rete e sviluppatore. Dopo anni di esperienza nel settore, ho ideato un sistema di gestione dati MYSQL in PHP senza scrivere una sola riga di codice. Scopri di più....