Sistemi per la gestione di basi di dati Esercitazione #6 – Rapid Miner Utilizzare alcuni algoritmi di classificazione per analizzare un dataset reale utilizzando il tool di machine learning RapidMiner. Dataset Il dataset Utenti (Utenti.xls, disponibile all’indirizzo http://dbdmg.polito.it/wordpress/teaching/sistemi-perla-gestione-di-basi-di-dati) contiene dati di censimento riguardanti gli utenti che hanno presentato una richiesta di assistenza per un certo servizio. Ogni record corrisponde ad una richiesta di servizio da parte di un utente. Il dataset contiene 32.000 richieste contenenti sia le informazioni personali dell’utente che ha effettuato la richiesta sia la classe di appartenenza del servizio richiesto (“Basic” o “Premium”). L’etichetta di classe è riportata come ultimo attributo di ogni record. Ogni record è caratterizzato dalla seguente lista di attributi. (1) Age (2) Workclass (3) FlnWgt (4) Education record (5) Education-num (6) Marital status (7) Occupation (8) Relationship (9) Race (10) Sex (11) Capital Gain (12) Capital loss (13) Hours per week (14) Native country (15) Service class (class) Contesto Negli Stati Uniti un fornitore di servizi fornisce servizi di tipo “Basic” e “Premium”. Un’analista è interessato a prevedere la classe di servizio richiesta da nuovi utenti. Utilizzare due algoritmi di classificazione (Decision Trees e Naïve Bayes) per effettuare l’analisi. Il dataset Utenti è utilizzato per addestrare e validare le prestazioni di ogni algoritmo di classificazione. Obiettivo L’obiettivo di questa esercitazione è generare alcuni modelli di classificazione e validarli mediante il tool RapidMiner. Due differenti processi di RapidMiner dovranno essere sviluppati per costruire classificatori basati su Decision Tree e Naïve Bayes. Per ogni algoritmo testare e confrontare le prestazioni di alcune configurazioni modificando i parametri di input. Creare un processo di Cross Validazione (10-fold) per validare ogni modello di classificazione. Analizzare i risultati per selezionare le migliori impostazioni di configurazione di ogni classificatore. Domande Rispondere alle seguenti domande: - - - Quale attributo è maggiormente discriminante per la predizione della classe? Il classificatore genera partizioni pure? Cosa si evince confrontando le diverse configurazioni del Decision Tree? Qual è l’impatto dei parametri di input (criterio, maximum gain, maximum depth) sulle caratteristiche del modello generato? Confrontare la matrice di confusione ottenuta con diverse configurazioni del Decision Tree. Quali sono i range dei valori per i parametri di input maximum gain e maximum depth che consentono di ottenere la migliore accuratezza media? Quale criterio genera il modello di classificazione mediamente più accurato? Confrontare il classificatore Decision Tree con Naïve Bayes in termini di accuratezza, precisione media pesata rispetto alle cardinalità delle classi (weighted mean precision), richiamo medio pesato rispetto alle cardinalità delle classi (weighted mean recall) e tempo di esecuzione. Quale classificatore ha un comportamento medio migliore? Passi richiesti per lo svolgimento dell’esercitazione Installazione del programma - - Copiare e decomprimere l’archivio compresso di RapidMiner disponibile nella cartella condivisa raggiungibile al path: Linux: smb://cclix1/corsi/dbdmg/ Windows: \\cclix1\corsi\dbdmg\ Eseguire lo script RapidMinerGUI.bat (in Windows) o RapidMinerGUI (in Linux) disponibile nella directory “script” per lanciare l’interfaccia grafica di RapidMiner. Costruzione del processo di analisi - Creare un nuovo processo di Rapid Miner Costruire il flusso di analisi trascinando gli operatori disponibili sulla barra alla sinistra dello spazio di lavoro. Figura 1. Operatori - Per gestire l’esecuzione utilizzare i bottoni Start/Stop/Pause. Per analizzare i risultati cambiare la prospettiva in results. Figura 2. Pulsanti di Esecuzione e Cambio prospettiva - Analizzare il contenuto del dataset Utenti disponibile in formato Excel. Importare il dataset nel processo di analisi utilizzando l’operatore “Read Excel”. Utilizzare il Data Import Wizard per importare correttamente i dati. Indentificare il ruolo dell’attributo “Service” come “label” durante la procedura di import (Step 4). Includere nel flusso di analisi il classificatore “Decision Tree”. Il processo di data mining generato dovrebbe essere simile a quello riportato in Figura 3. Figura 3. Processo di analisi basato sul classificatore Decision Tree - - Eseguire il processo ed analizzare il modello generato. Nella prospettiva process Overview cambiare la configurazione del Decision tree. In particolare, modificare i valori assegnati ai parametri di input (criterion, minimal gain, and maximum depth) e analizzarne l’impatto sul modello generato. Modificare il flusso del processo per effettuare una 10-fold Cross Validation. In particolare, nel processo principale includere il blocco “X-Validation” al posto del blocco Decision Tree. Figura 5. Processo di validazione: 10-Fold Cross Validation - Effettuare un doppio click sull’operatore X-Validation e creare un processo nidificato simile a quello mostrato in Figura 6. Figura 6. Validation subprocess. - Eseguire il processo di validazione. Spostarsi alla prospettiva “Results overview” e analizzare la matrice di confusione generata dal processo di validazione. Disabilitare temporaneamente l’operatore Decision Tree (click destro sul box dell’operatore) e sostituirlo con il classificatore Naïve Bayes (Kernel), oppure creare un nuovo processo di analisi. Confrontare le performance del classificatore Naïve Bayes (Kernel) con quello Decision Tree in termini di accuratezza, precisione media pesata rispetto alle cardinalità delle classi (weighted mean precision), richiamo medio pesato rispetto alle cardinalità delle classi (weighted mean recall) e tempo di esecuzione (valori inferiti dalla matrice di confusione).