- Courses
- Sistemi autonomi 2016/2017
- Projects
- Machine Learning as a Service: Experiments with Java and R through PMML
Machine Learning as a Service: Experiments with Java and R through PMML
Machine Learning as a Service: Experiments with Java and R through PMML
Author
Abstract
Un sistema con lo scopo di effettuare predizioni su eventi sconosciuti o futuri si basa sui 'modelli predittivi'; questi modelli sono costruiti attraverso l'analisi di dati storici e attuali. Nel mondo clinico, questi modelli trovano relazioni tra molti fattori che permettono la valutazione del rischio potenziale associato a determinate condizioni del paziente.
Solitamente in un sistema si preferisce generare un modello da zero, modificandolo ogni volta che viene inserito un nuovo dato. Quando questo non è possibile la miglior soluzione è quella di prendere un modello pre-costruito e utilizzarlo. I modelli predittivi possono essere costruiti utilizzando diversi linguaggi di programmazione, ma questo pone il vincolo che un modello creato con un determinato linguaggio può essere utilizzato solo attraverso lo stesso linguaggio. In questo modo la interoperabilità tra sistemi differenti risulta molto difficile. Per ovviare a questo problema sono stati sviluppati dei formati di rappresentazione dei modelli in grado di essere condivisi da sistemi eterogenei: PFA (in JSON) e PMML (in XML).
Il sistema sviluppato permette, attraverso una semplice GUI, di convertire un modello costruito con linguaggio R in un modello PMML. Successivamente il modello può essere applicato a dei dati (file CSV) forniti dall'utente e il risultato può essere validato confrontando l'output della valutazione del modello R corrispondente.
Repository: Qualora non fosse più disponibile, potrete trovarlo negli allegati.
References
- R (ambiente sviluppo): https://www.r-project.org/about.html
- RStudio (IDE): https://www.rstudio.com/
- caret (regression + classification package): http://topepo.github.io/caret/ (ma va bene qualunque modello di qualunque package sia traducibile in pmml)
- jpmml-r (libreria Java per conversione modelli .rds in .pmml): https://github.com/jpmml/jpmml-r
- Pentaho plugin per Weka (per parsing .pmml in Weka): http://wiki.pentaho.com/display/DATAMINING/PMML+Support+in+Weka (il plugin in quella pagina non c’è, penso sia nella distribuzione Weka...)
- jpmml-model (libreria Java per marshalling/unmarshalling modelli pmml): https://github.com/jpmml/jpmml-model
- jpmml-evaluator (libreria Java per la valutazione e la validazione di modelli PMML): https://github.com/jpmml/jpmml-evaluator
Outcome