Blog

La nostra raccolta di articoli e approfondimenti tecnici

Video

Una raccolta di video dai nostri eventi, webinar e molto altro

Use case

Una raccolta dei nostri Casi di successo

1. L’hackaton

Ad inizio Dicembre, la nota piattaforma di data lakehousing (nonchè partner Seacom) Dremio ha indetto una competizione sotto forma di Hackaton riguardante la lega statunitense di football (NFL). L’obiettivo era quello di predire i vincitori di:

  • American Football Conference (AFC)
  • National Football Conference (NFC)
  • Super Bowl

Nello specifico, i partecipanti avrebbero dovuto utilizzare un dataset relativo alle partite, giocatori e giocate per addestrare un modello di AI ed effettuare le predizione sopra riportate. Insieme ad esse era richiesto di importare tutti i dati utilizzati in Dremio e di produrre alcune visualizzazioni e dashboard ad essi relativi usando Superset. Il risultato finale di tutto questo processo sarebbe dovuto essere un breve video illustrativo in cui i partecipanti avrebbero spiegato le scelte effettuate e i risultati ottenuti, lato Data visualization e lato predizioni.
Il nostro team, composto da Domenico D’Orsi, Andrea Nuzzo, Nicola Pagni, Lorenzo Pasco e Riccardo Toti, ha accolto questa sfida e si è messo al lavoro.

Prima di proseguire, è però necessario un piccolo cappello introduttivo sulle due piattaforme principalmente utilizzate nel corso di questa challenge, ovvero come anticipato Dremio e Superset.

1.1 Dremio

Dremio è una piattaforma data lakehouse che esegue query SQL sui data lake senza trasferire i dati in warehouse tradizionali. Con il suo motore ottimizzato, accelera le analisi riducendo tempi e costi.

Supporta diverse fonti dati (S3, Azure Data Lake, database relazionali) senza ETL complessi, offrendo virtualizzazione e integrazione con BI tools come Tableau, Power BI e Superset, rendendolo ideale per analisi in tempo reale di grandi volumi di dati.

L’integrazione con Apache Iceberg è un punto di forza, offrendo versioning di dati e metadati tramite file catalog per tracciare le modifiche agli schemi. Questo semplifica la gestione del lakehouse, rendendo Dremio particolarmente efficace per dataset scalabili.

 

1.2 Superset

Superset è una piattaforma open-source di data exploration e data visualization il quale integra un’ampia varietà di database e sorgenti di dati. Ciò permette la creazione di dashboard e visualizzazione tramite un approccio no-code, rendendo Superset estremamente intuitivo e funzionale per lo scopo, con oltre 40 tipi di visualizzazioni pre-buildate e numerosi plugin, nonché uno strumento leggero ed altamente scalabile che permette di estrarre preziosi insight sui propri dati senza richiedere un ulteriore ingestion layer.

Esempio di visualizzazioni di Superset

2. Ingestione dati e visualizzazione

2.1 Ingestione e aggregazione

Il primo step è stato quello di importare tutti i dati all’interno di Dremio, operazione non immediata a causa dell’incompatibilità tra alcune colonne relative a dei timestamps del dataset originale.

Una volta sistemata questa incompatibilità, si è potuto generare i PDS partendo dai .csv per ciascuno dei file a nostra disposizione, arricchiti con dati aggiuntivi presi dalla piattaforma Kaggle. Gli stessi PDS sono poi stati convertiti in Iceberg tables con la classica suddivisione in tre layer semantici:

  • Staging: tutte le query SELECT * dalle IcebergTables al branch main. Sono presenti piccole modifiche, ad esempio è stato assegnato il tipo corretto alle colonne in base a quelle presenti nei file CSV. VDS principali: team_data contenente le informazioni sulla conference, vittorie al super bowl e coordinate dello stadio e plays_extended il quale raccoglie informazioni come lanciatore e ricevitore delle giocate delle partite
  • Business: alcune modifiche sui VDS e varie join. In questa fase sono state create alcune reflection. VDS principale: game_stats nel quale possiamo vedere punti ottenuti, concessi e attesi, probabilità di vittoria ed altri dati relativi alle partite giocate
  • Application: i VDS pronti per essere visualizzati, con alcune aggregazioni. VDS principale: season_stats la quale è sostanzialmente analoga a game_stats ma questa volta aggregando i dati per ciascun team
Esempio di Data lineage
Schema riassuntivo del processo di ingestione dei dati

2.2 Visualizzazione dati

Come anticipato, uno degli aspetti più cruciali dell’hackaton era quello di importare i dati e produrre alcune visualizzazioni significative in Superset. L’approccio per cui si è optato è stato quello di suddividere le visualizzazioni in tre sottosezioni: Team analytics, Player analytics e Predictions, di cui di seguito alcuni esempi per ciascuna.

Team analytics 1: distribuzione geografica dei vincitori del superbowl
Team analytics 2: pie chart indicativo delle vittorie del super bowl per squadra
Players analytics: word cloud dei giocatori maggiormente proni ad infortuni. Ad un nome più grande corrisponde un numero di infortuni maggiore
Predictions: le nostre previsioni per la vittoria delle rispettive conferences e del super bowl

3. Modelli di ML e predizioni

Parallelamente alle operazioni sui dati, abbiamo lavorato alle predizioni mediante uso di modelli di Machine Learning. Lo step preliminare è stata un’operazione di feature aggregation ed extraction in maniera tale da ottenere un dataset con attributi significativi per i nostri scopi. Una volta fatto ciò, è seguita la fase di addestramento dei nostri modelli con il classico train-test split.

3.1 Metodo ensemble

Il primo approccio proposto è un cosiddetto metodo ensemble, il quale prevede l’addestramento di vari modelli, diversi da loro in questo caso, le cui predizioni vengono poi aggregate in vari modi.

I modelli impiegati in questo primo approccio sono:

  • Random forest
  • Gradient Boosting
  • Light GBM
  • Multi-layer perceptron
  • Support vector machine

Questo modello ensembled è stato addestrato separatamente sui dati relativi alle due conference ed infine sui dati complessivi, in maniera tale da poter effettuare predizioni maggiormente accurate sui vincitori delle conference stesse e del super bowl. Una volta fittato il modello, siamo passati al testing in inferenza estrapolando le seguenti predizioni finali: Kansas city Chiefs vincitori della AFC, Philadelphia Eagles vincitori della NFC, con gli stessi Eagles vincitori dello stesso Super Bowl.

3.2 Deep neural network

L’altro approccio impiegato, invece, fa uso di una Deep neural network come modello.

L’architettura impiegata, non avendo un dataset particolarmente esteso, è molto semplice, composta da tre layer lineari ReLU come funzione di attivazione. Inoltre abbiamo utilizzato due teste differenti per le predizioni: la prima per predire la posizione finale all’interno della conference e la relativa vittoria, mentre la seconda è stata impiegata per calcolare un fattore di forza della squadra che indicasse la probabilità di vittoria finale nel Super Bowl.

In maniera coerente con il modello ensembled, la rete neurale ha predetto identicamente i vincitori di conference e del Super Bowl.

4. Conclusioni

La conclusione di questo percorso è stata la produzione di un video in cui abbiamo spiegato, parlando a turno, ciò che abbiamo prodotto ed i risultati finali ottenuti. Questo breve video è il culmine del nostro lavoro, sinergico ed appassionato, dove abbiamo dovuto non solo impiegare le nostre skill tecniche ma anche conoscere e approfondire uno sport lontano da noi sia geograficamente che culturalmente.

Nell’evento finale del Super Bowl si sono imposti nettamente i Philadelphia Eagles sui Kansas City Chiefs, in accordo alle predizioni dei nostri modelli.