I termini Machine Learning e Intelligenza Artificiale stanno diventando sempre più comuni. Ne sentiamo parlare continuamente in televisione, sui giornali e soprattutto sui social, sia in quelli specifici per il mondo del lavoro come LinkedIn, ma anche su Facebook e Instagram. Ti sei mai chiesto quanto sia difficile risolvere problemi tramite questi algoritmi? Sicuramente è impossibile dare una risposta univoca a questa domanda: la ricerca e lo sviluppo stanno facendo passi da gigante ad una velocità incredibile. L’intelligenza artificiale sta entrando sempre di più nella vita di tutti i giorni e sta realizzando traguardi che fino a qualche tempo fa sembravano confinati alla fantascienza: pensiamo ad esempio all’obiettivo di realizzare automobili a guida completamente autonoma.
Con questo articolo vogliamo farvi toccare con mano come si utilizza il linguaggio di programmazione Python per risolvere problemi di analisi dei dati e fare previsioni con tecniche di machine learning. Certamente non arriveremo in pochi minuti a saper progettare un sistema di guida autonomo, ma quanto descritto nelle prossime righe ci darà un paradigma di programmazione utile per approcciarci ad una vasta classe di problemi che trovano riscontro in molte applicazioni quotidiane. I problemi di cui ci occuperemo sono detti di “classificazione supervisionata”. Il nostro obiettivo sarà predire il valore di una determinata variabile target (ad esempio il giudizio sulla qualità di un vino) a partire da altre variabili descrittive (come la presenza di componenti chimici, il ph, la densità, eccetera) e da un insieme già classificato (una lista di vini di cui si conosce già il giudizio espresso e le variabili descrittive). Da questo link potete scaricare dei file d’esempio proprio sull’argomento in questione! Troviamo una lista di circa 1600 vini bianchi con undici variabili descrittive e un giudizio di qualità. Il nostro programma vuole “imparare” autonomamente a predire tale giudizio di qualità per i vini che saranno esaminati in futuro.
Per iniziare dobbiamo importare il file. Tramite la libreria Pandas, sarà molto semplice. Se non è già nel vostro kit, installatela con il comando:
pip install pandas
Ed in seguito importatela in uno script python:
import pandas as pd
data=pandas.read_csv("C:\\...\\Desktop\\winequality-white.csv", header=0, sep=';')
Guardiamo le prime righe con il comando data.head()
from pycaret.classification import *
Eventualmente ricordiamoci preliminarmente di installarla con pip install pycaret.setup = setup(data, target = 'quality' )

Confermiamo le impostazioni di default con il tasto invio. A questo punto scegliamo un algoritmo di classificazione, ad esempio il K-Nearest Neighbours. Pycaret ci permette di utilizzare con profitto questi algoritmi, anche senza conoscerne nel dettaglio il funzionamento. Tuttavia per padroneggiare seriamente queste tecniche ed utilizzarle anche in ambito lavorativo è importante conoscere la teoria sottostante gli algoritmi. A questo link trovi il corso di Python per il machine learning proposto dal centro di formazione informatica Yimp – La Scuola dei dati. Possiamo ora creare il modello di machine learning in due passaggi
knn = create_model('knn')
Knn_final = finalize_model(knn)
A questo punto possiamo già predire un nuovo valore! Creiamo un file che non abbia la colonna quality e lo importiamolo come prima con pandas 
newData = pd.read_csv("C:\\Users..\\Desktop\\NewFile.csv", header=0, sep=';')
E prediciamo la variabile quality con questo semplice comando:
predict_model(Knn_final, data = newData)

E così il nostro primo programma che implementa un algoritmo di machine learning per l’analisi dei dati è stato completato!