Un progetto di Machine Learning può essere suddiviso in una serie di fasi che, sommariamente, possono
essere così descritte:
- raccolta dati
Questi possono essere ottenuti in varie modalità: accedendo a dataset,
pubblicamente disponibili, acquisendoli mediante fonti private o ricavandoli in maniera automatizzata; - organizzazione dei dati
"pulizia" dove si verifica la qualità dei dati e la necessità di operare alcune formattazioni, trasformazioni o
ottimizzazioni ma anche dove i dati vengono integrati con altre fonti disponibili nonché immagazzinati
eventualmente in supporti più idonei al loro utilizzo; - esplorazione
molto interessante fatta di statistiche, visualizzazioni di grafici, proiezioni, tutte attività volte a comprendere
aspetti salienti del fenomeno da studiare attraverso le caratteristiche matematiche dei dati che lo rappresentano; - preparazione all'apprendimento
esplorati possiamo passare alla loro predisposizione per l'apprendimento automatico. Qui ci si occupa di preprocessing
(rielaborazione dei dati per ottimizzare alcune loro proprietà statistiche), selezione delle features
(comprendere quali aspetti tra i dati raccolti sono più significativi per comprendere il fenomeno) e trasformazione (convertire
la forma dei dati in maniera che siano utilizzabili dagli algoritmi di apprendimento); - apprendimento
le nostre indicazioni, studierà i dati preparati e ne individuerà al meglio le regole interne; - validazione del modello e testing
attendibilità, mettendolo alla prova con dati di test; - previsione
su dati nuovi. - è uno dei linguaggi più usati al mondo;
- ha attorno a sé una delle community di programmatori più popolose e attive esistenti;
- ha una sintassi molto concisa ma al contempo espressiva;
- è ricco di funzionalità;
- su di esso si basa un ecosistema per la Data Science di grandissimo valore.
- libreria matematica
per la gestione di funzioni matematiche e statistiche, dotata di proprie strutture dati
adatte allo scopo ed in grado di offrire ottime prestazioni. In questo, la scelta preferenziale ricade
su NumPy
offre già molte funzionalità con i suoi moduli math, statistics e le strutture dati ma per un contesto come il
Machine Learning è indispensabile qualcosa di studiato ad hoc; - libreria di elaborazione dati
Pandas
per la gestione dei dataset (DataFrame e Series), molte funzioni, capacità grafiche ma anche interazione con i principali sistemi di
dati come file CSV
fogli di Microsoft Excel e database SQL - libreria per grafici
visualizzare le distribuzioni dei dati.
Allo scopo, sarà importante padroneggiare due librerie in particolare: Matplotlib
Seaborn - librerie per il Machine Learning
: per affrontare le vere e proprie fasi di Intelligenza Artificiale ci affideremo
a tre ottimi strumenti: scikit-learn Tensorflow
Keras - ambienti di sviluppo
Data Science ma in questo ambito, per migliorare la produttività e la condisibivilità del proprio lavoro, si ricorre spesso ai
notebook Jupyter
certa fama tra i data scientist anche l'ambiente di sviluppo Spyder IDE
scientifica.
Questa descrizione degli step di un progetto di Machine Learning è una buona approssimazione del
lavoro dei data scientist ma in realtà ognuna di queste fasi è caratterizzate da una serie di ulteriori task con
specifici obiettivi. Per fare tutto ciò servono gli strumenti giusti pertanto prima di proseguire nella
guida ci soffermiamo per comprendere bene cosa la cassetta degli attrezzi del professionista dovrebbe contenere.
Linguaggi: perchè proprio Python?
Il Machine Learning potrebbe essere praticato con vari linguaggi di programmazione e ne esistono
diversi ottimi. Pensiamo al C++ con cui
è stata scritta buona parte dell'Informatica esistente, Java
ottimo linguaggio alla base di molti strumenti NoSQL e per Big Data ma anche R
linguaggio idoneo anche a chi non è un programmatore di natura o alternative più recenti come
il linguaggio Julia. Si tratta di tutte soluzioni
di assoluto rilievo, ricche di strumenti e caratterizzate da ottime prestazioni ma nel nostro caso, per questa
guida, abbiamo adottato un linguaggio leader nel settore: Python.
I motivi per cui Python si rivela un'ottima scelta sono molti:
Proprio di questo ecosistema faremo grande uso pertanto, prima di passare alla fase della sua predisposizione, è importante
capire le tipologie di strumenti di cui conviene dotarsi.
Quali strumenti?
Gli strumenti di seguito elencati saranno il pane quotidiano del data scientist e sarà fondamentale
averli installati e configurati per le nostre esigenze: