Nella versione 5 di RapidMiner Studio è stata introdotta l’estensione “R Extension” che permette di integrare RapidMiner con R Statistics, un ambiente di sviluppo per l’analisi statistica di dati.
L’estensione mette a disposizione una vista che replica l’ambiente R in RapidMiner e diversi operatori da sfruttare nei processi, anche se molto spesso l’integrazione di tali operatori risulta complessa e laboriosa.

Nella versione 6.4 i preesistenti operatori sono stati dichiarati deprecati ed è stata introdotta una nuova estensione, “R Scripting”, il cui obiettivo è quello di semplificare l’integrazione tra i due software grazie alla presenza di un unico operatore: “Execute R”.
Tale operatore agisce come una funzione: riceve una serie di input, elabora uno script R e restituisce un solo output.

In questo articolo vogliamo presentare un case study in cui mostriamo come sfruttare l’estensione “R Scripting” in un processo RapidMiner.

Abbiamo analizzato un dataset contenente informazioni sui vini rossi costituito da 11 variabili indipendenti e una variabile target “quality” che fornisce un indice di qualità del vino e assume valori discreti compresi tra 3 e 8.

Per scaricare il dataset utilizzato clicca qui.

Scopo dell’analisi è la costruzione di un modello di classificazione che consenta di predire la variabile target, la qualità dei vini, sulla base dei valori assunti dalle altre variabili del dataset.

RvsRM_processo1

Per costruire il nostro modello abbiamo eseguito alcune operazioni di preprocessing:

  • Lettura e normalizzazione delle variabili eccetto la variabile target
  • Discretizzazione della variabile target in due classi: bad se l’indice di qualità è minore o uguale a 5, good altrimenti
  • Assegnazione del ruolo di label alla variabile target
  • Analisi della matrice di correlazione delle variabili, volta ad eliminare variabili correlate che possono inficiare sulla classificazione conducendo a previsioni errate o poco precise
  • Individuazione e rimozione di eventuali outliers.

Per la classificazione abbiamo scelto il metodo K-NN (K Nearest Neighbors) con valore di k pari a 10 e ne abbiamo valutato le performance tramite l’operatore Cross-Validation, ottenendo un’accuratezza del 75,52%.

ConfusionMatrix1

Nella costruzione di un modello di classificazione efficace ed efficiente, oltre alla rimozione di outliers e di variabili correlate, spesso è necessario attribuire un ‘peso’ alle variabili: non tutti gli attributi di un dataset hanno la stessa influenza nelle previsioni sulla variabile label.
In datasets con un numero elevato di attributi, gli attributi meno rilevanti potrebbero rallentare il processo di apprendimento: rimuoverli può migliorare le prestazioni e semplificare il modello senza inficiarne l’accuratezza.

A tale scopo abbiamo implementato in RapidMiner un processo di Variable Selection in cui abbiamo sfruttato un modello di regressione lineare e usato i t-test con alpha=0.001 per selezionare le variabili più significative nella descrizione della variabile target.

RvsRM_processo2

Il modello ottenuto grazie alla selezione delle variabili restringe il numero di covariate da 11 a 6, come illustra l’immagine seguente:

t_test

Abbiamo eseguito la stessa operazione usando l’operatore “Execute R” in un processo RapidMiner,

RvsRM_processo3

e abbiamo salvato rispettivamente il p-value del test per la significatività di ciascuna covariata e i coefficienti della retta di regressione lineare, analoghi a quelli del processo precedente.

p_value

Una volta individuate le variabili significative, abbiamo filtrato quelle non significative dal processo di allenamento del modello K-NN ottenendo un’accuratezza del 75,27%.

ConfusionMatrix2

Come si può notare, nonostante abbiamo dimezzato il numero di variabili l’accuratezza complessiva del modello è rimasta quasi invariata.

Questa considerazione è interessante nel caso di datasets con un numero elevato di attributi: restringere il numero di variabili riesce a ridurre in maniera considerevole i costi da sostenere, sia in termini di complessità del modello che di tempi di esecuzione dei processi.

Nel caso analizzato la selezione delle variabili è stata eseguita a posteriori, modificando il processo iniziale in base ai risultati ottenuti dalla Variable Selection. È possibile tuttavia sfruttare gli operatori “Optimize Selection (Brute Force)” e “Select by Weights” per selezionare gli attributi che ottimizzano un certo indicatore di performance, per esempio la Cross-Validation, generando un processo che automatizzi la rimozione degli attributi poco significativi.

RvsRM_processo4

Questo nuovo processo porta ad un livello di accuratezza del modello analogo ai casi precedenti, 74,20%, ma ha un tempo computazionale molto superiore (si passa dai pochi secondi ai due minuti).

ConfusionMatrix3