Prima di iniziare a sviluppare modelli di Machine learning e a elaborare previsioni è fondamentale prendere confidenza con il proprio dataset. Spesso i dati che dobbiamo usare
sono organizzati in tabelle composte da molte colonne ognuna delle quali rappresentante un singolo aspetto del campione da studiare. E' interessante capire come i valori si distribuiscano
e come le singole colonne si pongano in rapporto tra loro.
Un importante contributo perviene già da librerie come Pandas e NumPy
che con le loro funzionalità di trasformazione, semplificazione, raggruppamento ma anche a carattere matematico-statistico permettono di evidenziare le principali caratteristiche delle
distribuzioni.
Di sicuro, un contributo fondamentale proviene però dalle librerie grafiche. Con esse è possibile rappresentare con punti, linee, colori e varie forme le caratteristiche dei dati
e ciò risulta indubbiamente molto più eloquente rispetto a valori numerici. Inoltre, i grafici hanno il principale pregio di essere comprensibili anche a chi non ha fatto della Data Science una professione
come dirigenti, commerciali o imprenditori per i quali una visualizzazione dei dati può risultare comunque molto comoda.
Grafici in Python
Python dispone di molte librerie in questo ambito che possono offrire funzionalità diverse, vari modi di interazione e approcci grafici più o meno elaborati. Introduciamo
qui le due con cui prenderemo confidenza prima di iniziare a lavorare ad algoritmi di Machine Learning e reti neurali:
- Matplotlib è una libreria fondamentale non solo perchè è protagonista della Data Science in Python da molti anni ma anche
perchè fa da "motore" per molti altri strumenti. Come dichiara il messaggio che accoglie il visitatore nella homepage, è una libreria che permette di realizzare grafici statici, animati ed interattivi
permettendo quindi all'utente di porsi in vari modi di fronte alla rappresentazione. Se c'è qualcosa che sicuramente la contraddistingue è la sua ricchezza di funzionalità. Sul sito del progetto
esiste una pagina dedicata appositamente agli esempi dove si vede per quanti tipi di rappresentazione si può optare in MatplotlibOgnuno di questi esempi può essere esplorato infatti una volta selezionato si viene rimandati in un'altra pagina dove si trova codice Python e spiegazioni per poterlo sviluppare.
- Seaborn è una libreria più moderna che sfrutta Matplotlib come motore ma con un tocco grafico più accattivante ed una sintassi
che mira a essere ancora più snella. Anche per questo strumento abbiamo a disposizione una Gallery dove si potrà vedere
quante tipologie di visualizzazione ci sono a disposizione e come implementarle nei propri programmi.
Abbiamo citato queste librerie in quanto sono le più famose e sfruttate negli ambienti di ricerca nonchè le più comunemente integrate nei
notebook anche di ambiente Cloud come Google Colab.
Tuttavia, esistono molte altre piattaforme interessanti in questo ambito come - solo per citarne un paio - plotly e
bokeh, due progetti di grande rilievo e continuamente curati e aggiornati da creatori e community
Tipologie di grafici
Da qui in poi nella guida vedremo diverse tipologie di grafico sia per studiarle in sè stesse sia per impiegarle in esplorazioni dati e valutazioni. Le librerie citate
offrono molte visualizzazioni diverse dei dataset ma non tutte sono ugualmente rilevanti. Ad esempio, il cosiddetto grafico a torta che mostra un cerchio suddiviso in spicchi trova sicuramente
più spazio in riunioni di marketing visto il suo forte impatto comunicativo piuttosto che in una ricerca di Machine Learning dove viene più comunemente apprezzato uno
scatter plot che mostra l distribuzione di valori a mezzo di punti oppure un istogramma che suddivide i valori in "classi" mostrando le zone di maggiore o minore densità.
Altri aspetti su cui ci concetreremo saranno le modalità di rappresentazione ed in particolare:
- rappresentazione di più grafici nella stessa area, molto utile per mettere a confronto, ad esempio, una sequenza di valori con la loro media oppure con un
benchmark che ne rappresenti un andamento tipo; - più grafici disposti in una sorta di matrice dove verranno collocati per righe e colonne. L'apporto maggiore di una strutturazione di questo genere consiste nel poter confrontare
visivamente l'andamento di più serie di valori ed il contributo interpretativo di più rappresentazioni. In proposito, sarà infatti importante decidere come collocare tali grafici nella griglia che definiremo verificando se la
comparazione più chiara si potrà avere procedendo per colonne o per righe e come collocarli l'uno in relazione degli altri.
Nelle prossime lezioni, entreremo nei dettagli pratici di Matplotlib e Seaborn vedendole al lavoro entrambe.