Negli ultimi mesi Dataiku ha puntato molto sullo sviluppo del prodotto rilasciando a luglio una release 11.0 e a fine ottobre la release 11.1.0. In BNova ci siamo presi del tempo per studiare bene e testare le nuove funzionalità e adesso siamo pronti per condividere con voi le nostre considerazioni.

Partiamo dicendo che entrambe le release strizzano l’occhio alle figure più tecniche perché tra le novità più importanti vediamo ad esempio un’integrazione della piattaforma con i più comuni strumenti per lo sviluppo del codice (che andremo a vedere nel dettaglio più avanti) e che non è la sola ad andare in questa direzione. Ad esempio, è ora possibile esportare direttamente i modelli DSS in codice Python, per l’utilizzo in qualsiasi ambiente Python al di fuori della piattaforma Dataiku.

Altro elemento importante, che indica una scelta strategica della corporate è sicuramente l’indirizzo verso una governance facilitata dei processi di elaborazione del dato e della data quality in generale. Nella nuova versione è infatti possibile generare automaticamente la documentazione relativa al flusso. Si tratta di un’attività fondamentale soprattutto nei settori maggiormente regolamentati, dove viene esplicitamente richiesto di documentare i flussi al momento della creazione e dopo ogni modifica per la tracciabilità.

Ma vediamo adesso nel dettaglio le nuove features.

Novità introdotte con la release 11.0

  1. Visual time-series forecasting: con questa nuova funzionalità di fatto viene reso possibile effettuare il training e l’applicazione di un modello per la predizione di serie temporali attraverso l’utilizzo di strumenti nativi di Dataiku. Di fatto viene coperta tutta un’area di analisi possibili, il mondo delle time series, che in precedenza non era copribile con gli strumenti nativi. Ricordo che questa operazione in precedenza era disponibile solo tramite un plugin esterno.
  2. Code Studios (visual studio code, Jupyter Lab ed RStudio): con questa nuova funzionalità di fatto viene resa possibile un’integrazione della piattaforma con i più comuni strumenti per lo sviluppo del codice (i cosiddetti IDE, ossia quelle piattaforme dove gli sviluppatori vanno a scrivere il codice e dove possono utilizzare tutte le funzionalità di debug che esse mettono a disposizione). In questo modo un profilo estremamente tecnico può lavorare in maniera code-based (come magari è abituato a fare) direttamente sul suo IDE ma rimanendo comunque dentro la piattaforma Dataiku. Ciò consente un miglior coinvolgimento nelle attività e nei progetti di figure strettamente tecniche abituate a lavorare sviluppando del codice. Gli IDE attualmente integrabili sono:
    • – Visual studio code (probabilmente il miglior IDE in circolazione utilizzato tipicamente per svariati linguaggi come Java, Python, ecc…).
    • – Jupyter Lab (tipicamente utilizzato per Python)
    • – RStudio (tipicamente utilizzando per sviluppare in linguaggio R).
  3. Governance dei bundle nel govern node: questa nuova funzionalità riguarda esplicitamente il govern node di dataiku. Consente di sottoporre ad una qualche policy di governance (la cui definizione e implementazione è lasciata interamente all’utente) i bundle di progetto creati per il rilascio in produzione.
  4. Generazione automatica della documentazione del flusso: nei settori regolamentati, spesso è necessario documentare i flussi, al momento della creazione e dopo ogni modifica per la tracciabilità. Questo è spesso noioso e con costi in termini di tempo e risorse importanti. DSS offre la possibilità di generare automaticamente un documento DOCX da un flusso, che documenta l’intero flusso, inclusi i dataset e recipes.
    È possibile utilizzare il flow document generator per creare la documentazione associata a un progetto. Genererà al volo un file Microsoft Word™ .docx che fornisce informazioni relative ai seguenti oggetti del flusso:
    • – Dataset
    • – Recipes
    • – Managed Folders
    • – Modelli salvati
    • – Model evaluation store
    • – Labeling task
  5. Nuova tabella pivot per la data visualization: lo strumento esisteva già ma è stato fortemente rivisto e migliorato, ora è possibile mostrare dimensioni di analisi multiple sia sulle righe che sulle colonne e supporta anche il calcolo dei subtotali. È anche consentito l’export su excel.

Novità introdotte con la release 11.1.0

  1. Python export models: È ora possibile esportare direttamente i modelli DSS in codice Python, per l’utilizzo in qualsiasi ambiente Python al di fuori di DSS. Ciò si aggiunge alla possibile esportazione in Java già preesistente, per l’utilizzo in qualsiasi ambiente Java al di fuori di DSS, e alla possibilità di esportare il modello in PMML che rappresenta lo standard di rappresentazione dei modelli.
  2. Model comparisons per times series: viene resa disponibile la possibilità di mettere a confronto due o più modelli predittivi per quanto riguarda le times series, così come avviene già per i normali modelli predittivi di attributi categorici. In questo modo è molto più semplice per il data scientist avere l’evidenza circa:
    • – Le differenti performance dei modelli dal punto di vista qualitativo (di fatto nella stessa schermata ho, uno accanto all’altro, le metriche di valutazione di ciascun modello messo a confronto).
    • – Le diverse impostazioni di re-sampling dei dati magari utilizzate nei diversi modelli.
    • – I diversi algoritmi usati per generare i modelli predittivi.
    • – I diversi dettagli sul training dei modelli.
  3. Supporto per R 4: Dataiku adesso supporta la nuova versione del linguaggio R.
  4. Computer vision: aggiunta dell’interactive scoring per Image classification and Object detection. In generale le funzionalità di interactive scoring, esistenti già per i modelli predittivi classici, hanno come obiettivo quello di chiarire a tutti gli Stakeholders (data scientist compreso) il comportamento del modello in oggetto attraverso la simulazione di ipotetici scenari. Sono di fatto delle vere e proprie what-if analysis che mostrano come risponderebbe il modello in occorrenza di determinati scenari simulati ad hoc.  Questa tipologia di funzionalità è ora disponibile anche per quanto riguarda modelli di Object detection e image classification.  
  5. Stratified sampling for Machine Learning models: viene reso possibile effettuare un sampling del dataset, al fine di addestrare un modello, che mantenga l’originale distribuzione dei valori nel campo target. In questo modo vengono evitate le eventuali distorsioni di campionamento durante la convalida del modello. Facciamo un esempio pratico: sto cercando di allenare un modello per la previsione di un attributo categorico true/false; il mio dataset storico contiene x% di valori a true e y% di valori a false. Nel momento in cui vado ad effettuare il training del modello divido il mio dataset storico in 2 parti: training set e test set. Il primo lo uso per l’addestramento e il secondo per la valutazione. Con il sampling stratificato sono certo che sia il training set che il test set avranno esattamente x% di valori true e y% di valori a false. Cosa che non potrei garantire ad esempio con un samplig randomico correndo il rischio di avere delle distorsioni di campionamento in fase di valutazione.
  6. Aggiunta della possibilità di usare le treemap e le kpi chart per la data visualization: le treemap chart, in particolare, vanno a rendere più chiara la visualizzazione di dati organizzati in una qualche maniera gerarchica, le kpi chart consentono invece una migliore visualizzazione di dati aggregati in forma di singoli numeri come tipicamente accade nei contesti in cui è necessario valutare delle performance. Il comune denominatore di entrambi è da ricercare nel rafforzamento ulteriore di quello che può essere definito come l’aspetto comunicativo dei risultati, fase essenziale di un qualsiasi processo di analisi che si rispetti.

Questa è la panoramica delle funzionalità che a mio avviso sono più rilevanti nella nuova versione di Dataiku e che danno una direzione abbastanza chiara dei next steps della roadmap del prodotto.

Emiliano Fuccio
Data Scientist @BNova