Big Data e Predictive Analytics: due casi di studio per due competition

 In Big Data, Machine Learning, Predictive Analytics

Chi non ha visto, almeno una volta, un documentario dove si mostra la naturale attitudine dei cuccioli nel giocare alla lotta? Sfidandosi tra di loro, gli animali affinano le tecniche di combattimento e misurano le loro forze: si preparano alle difficoltà della vita. Anche l’uomo, fin da piccolo, impara nel gioco a misurarsi con gli altri: testa le proprie competenze e affronta i propri limiti o, semplicemente, mostra al gruppo le proprie capacità. Crescendo, le sfide si trovano nella quotidianità di tutti i giorni, nello sport come nel lavoro. L’appagamento che si prova nel vincere una sfida e il senso di orgoglio di essere riconosciuto dal gruppo come punto di riferimento riscatta ogni sforzo. Senza contare che la competizione apporta un benefico effetto adrenalinico che ci carica di entusiasmo e permette di sfidare i propri limiti e di raggiungere nuovi traguardi.

Qui di seguito il resoconto di due casi di studio legati a Big Data e Predictive Analytics, tratti da due competizioni a cui BitBang ha partecipato e che ci hanno permesso di confermare le competenze sia nel campo dell’integrazione dei sistemi e organizzazione delle banche dati (con Bluemix di IBM e HP Vertica Database Server), sia nel campo dell’analisi dati e della visualizzazione dei risultati (con IBM Watson Analytics, H2O e DistributedR).

IBM Competition – Big Data for Social Good Challenge

L’obiettivo della competition era quello di creare la migliore Data Visualization per spiegare le causalità degli agenti in un fenomeno di natura sociale. Ogni partecipante poteva scegliere in autonomia il fenomeno sociale che preferiva studiare, cercando tra tutti i dataset open source disponibili in rete. Per l’integrazione dei dati era necessario usare la distribuzione Hadoop di IBM Bluemix.

Londra si prestava molto bene come background culturale in cui analizzare le influenze tra situazioni economiche-sociali (come la criminalità, il prezzo delle case, ecc.) e i fattori socio-demografici (come la distribuzione per età della popolazione, il numero di occupati attivi, l’assenteismo ingiustificato a scuola, ecc.).

Si è sviluppato il progetto in tutte le fasi: dall’integrazione dei dati, alle analisi delle dipendenze, fino alla visualizzazione dei risultati.

Decision Tree per l'individuazione dei fattori significativamente influenti sulla criminalità

Decision Tree per l’individuazione dei fattori significativamente influenti sulla criminalità

L’HDFS di Bluemix è stato un ottimo terreno dove caricare le tabelle dati e creare le relazioni. Su Bluemix è stato possibile fruire agevolmente di strumenti come: Workbooks, Big Sheets e query Big SQL al fine di ottenere la migliore struttura e granularità per le analisi e le successive visualizzazioni.

IBM propone, per l’analisi dati, il pacchetto Watson Analytics. Watson, come l’indispensabile braccio destro di Sherlock Holmes, aiuta ad indagare sulle relazioni tra i fattori guidando l’utente nella formulazione delle domande obiettivo. Basandosi su algoritmi di intelligenza artificiale, è in grado di analizzare i dati e visualizzare, in modo efficace, le correlazioni tra di essi.

London Vizualization

Distribuzione dei crimini rispetto ad alcuni indicatori demografici

Lo scopo è di aiutare l’utente a navigare i risultati e mettere a fuoco i primi insight. Chi l’avrebbe mai detto che il prezzo di vendita è maggiormente correlato con la densità abitativa rispetto al tasso di criminalità del quartiere?

Dopo aver individuato con IBM Watson Analytics le relazioni più significative tra i dati, era necessario trovare una modalità di visualizzazione che illustrasse con estrema facilità le relazioni tra i dati e che contribuisse a creare un valore aggiunto alle informazioni. Collegando Tableau direttamente al repository creato in Hadoop di Bluemix, è stato possibile rappresentare in modo intuitivo e facilmente fruibile, su mappe di calore per singoli distretti di Londra, le relazioni tra reati, prezzo degli alloggi e fattori socio-demografici, con una visione dinamica nel tempo e nello spazio.

Per approfondire, leggi il post dedicato alla competition e consulta la dashboard completa, pubblicata sul sito di Tableau.

Kaggle Competition – March Madness

Negli Stati Uniti con March Madness viene identificato il periodo in cui si disputa la fase finale del Torneo universitario di pallacanestro. Inizia durante il mese di marzo, al termine della Regular Season, e viene seguito in maniera quasi ossessiva da parte di tutti gli americani: semplici tifosi, ex allievi degli atenei, atleti professionisti, senza dimenticare i domiciliati alla Casa Bianca (come noto, Barack Obama è solito fornire le sue previsioni per la fase finale del torneo NCAA).

In occasione della March Madness di quest’anno, Kaggle e HP hanno deciso di indire una competition di Predictive Analytics per sfidare i partecipanti nel prevedere i possibili risultati del Torneo NCAA. Ogni sfidante aveva a disposizione un set di dati storici che tenesse conto di informazioni sui risultati e sulle performance delle squadre a partire dalla stagione 84-85.

La sfida, esattamente come il campionato universitario, era costituita da due fasi:

  1. Creazione del modello previsionale basandosi sulle ultime quattro stagioni di campionato, da candidare entro la stagione regolare (ovvero entro i primi di marzo).
  2. Consolidamento del modello previsionale definito in fase 1, applicandolo ai dati della stagione regolare 14-15.

Essendo la competition sponsorizzata da HP, per la gestione dei dati storici e la conseguente manipolazione, è stato usato HP Vertica Database Server, piattaforma cluster-based e column-oriented per la gestione di grandi quantità di dati.

Aggiungendo informazione ai dati di origine è possibile migliorare il modello previsionale. Per cui, utilizzando le competenze disponibili in letteratura per il calcolo di indicatori sulle performance di giocatori e squadre, BitBang ha individuato alcuni KPI in grado di misurare la probabilità di vittoria di una squadra. I dati originari (vittorie/sconfitte negli scontri diretti del passato) incrementati dei KPI calcolati sono stati tutti efficacemente gestiti in HP Vertica Database Server.

Per capire quale tool si comportasse meglio nella definizione del modello previsionale abbiamo pensato di fare una piccola competition (interna alla competition!) confrontando tra loro: H2O e Distributed R.  H2O, già utilizzato in altre competition indette da Kaggle, è stato preso come riferimento per la fase 1, ovvero quella di individuazione del modello, mentre Distributed R (libreria in grado di collegare un ambiente R con HP Vertica, sfruttando il calcolo distribuito) è stato scelto per realizzare il processo previsionale della fase 2 per elaborare una considerevole mole di dati. I modelli statistici erano analoghi.

Workflow

Workflow della fase di modeling

I due strumenti di analytics hanno restituito risultati concordanti e pertanto sono state effettuate le due candidature richieste basandosi sullo stesso modello, la differenza era data solo in termini di volumi di dati: la prima ha tenuto conto della sola stagione 14-15, mentre la seconda ha considerato i dati di tutti gli ultimi e 5 i campionati.

La competition si è conclusa posizionandoci 145esimi su 341. Non abbiamo vinto, ma il posizionamento entro la prima metà della classifica è un segnale importante sulla metodologia applicata.

Per approfondire, leggi l’articolo completo sulla competition.

Insomma, le competition sono un ottimo sistema per fortificare le competenze sui nuovi tool ancora in fase di sviluppo. Molte competition permettono di scaricare e utilizzare strumenti ancora in versione alfa o la prima pubblicazione della versione beta. In questo modo possiamo testare non solo il tool specifico, ma anche le soluzioni che permettono l’ottimale integrazione con gli ambienti maggiormente consolidati nel mercato.

Interesse per l’innovazione e capacità organizzative, questi sono gli ingredienti base per vincere le sfide tecnologiche. Quindi, alla prossima competition e… che vinca il migliore!