R vs Knime vs Azure Machine Learning

Pubblicato il 16/05/2016 da Stefano Cazzella in Analytics,Business Intelligence

I processi di digital transformation in atto in molti (tutti) settori di mercato stanno facendo crescere la febbre per il così detto “new oil”: i big data. Nell’ambito di tali processi di digitalizzazione svolge un ruolo sempre più centrale l’adozione di tecniche e tecnologie di machine learning per trasformare in business value la sempre crescente molte di dati a disposizione di imprese e istituzioni (argomento che merita maggiori approfondimenti; in tanto può valere la pena leggere questo best seller).

Prova ne è il proliferare di soluzioni di machine learning (molte offerte in modalità PaaS) che contribuiscono a “democratizzare” l’uso di tali tecnologie, ampliando la platea degli addetti ai lavori e aspiranti data scientist.

È quindi interessante mettere a confronto approcci tradizionali basati sull’utilizzo di ambienti di programmazione statistica come R (che richiede skill tecnici di tipo specialistico) con soluzioni di più immediato utilizzo, come Knime o Azure Machine Learning (la piattaforma cloud di ML targata Microsoft), che presentano una barriera all’ingresso decisamente inferiore (non fosse altro per gli ambienti visuali con cui si opera).

R Studio

R Studio

Knime

Knime

Azure Machine Learning Studio

Azure ML Studio

Per mettere alla prova le tre soluzioni, ho identificato un caso di studio basato su un data set reale preso in prestito da uno dei tanti contest proposti da Kaggle. Nella fattispecie l’obbieittivo era quello di addestrare un classificatore binario a partire da un training set di circa 144.000 occorrenze, ciascuna caratterizzata da 131 features (prevalentemente numeriche), con una certa abbondanza di valori nulli.

Il confronto invece è stato focalizzato sull’accuratezza dei modelli che è stato possibile addestrare utilizzando degli algoritmi disponibili per le diverse piattaforme in modalità out-of-the-box, ossia senza operare particolari configurazioni o attività di data preparation o feature engignering. In pratica si è trattato di verificare l’efficacia degli algoritmi disponibili sule diverse piattaforme (misurati con la medesima metrica – Log Loss – proposta dal contest) applicandoli ai dati con un processo elementare che non richiedesse particolari effort preparatori o conoscenze specialistiche.

La tabella seguente riassume i risultati dello studio di caso.

Piattaforma Algoritmo Log Loss
R Gradient boosting (xgbost library) 0.46815
Azure ML Two-class boosted decision tree + hyperparameter tuning 0.46769
Azure ML Two-class boosted decision tree 0.51372
Knime Random forest 0.53182
Benchmark – Primo classificato al contest Kaggle 0.42233

I risultati mostrati non vogliono fornire una valutazione di qualità delle piattaforme, quanto piuttosto rappresentare come (o meglio quanto) soluzioni out-of-the-box possano fornire risultati analoghi ad alternative tecnicamente più complesse.

Resta da dire che il vincitore del contest ha ottenuto risultati decisamente superiori e che tali risultati sono stati conseguiti utilizzando R e in particolare la medesima libreria usata nello studio di caso. Va anche sottolineato come il principale elemento distintivo della soluzione vincente sia stato proprio un approfondito lavoro preliminare di feature engineering e data discovery. Ciò a testimonianza del fatto che la prima differenza sostanziale nel determinare la qualità di un modello previsionale la fa proprio il processo (e le competenze necessarie ad attuarlo).

Nessun commento »

RSS feed for comments on this post. TrackBack URL

Lascia un commento