-
Tecniche di Data Mining per la Classificazione – Alberi di Decisione
Con il processo di data mining si esplora e si analizza una grande quantità di dati (database molto grandi) con l’obiettivo di ricavare delle informazioni di interesse che sono implicite nei dati. Si utilizzando le tecniche di data mining per scoprire correlazioni tra i dati (regole di associazione), per creare dei classificatori che predicono il valore di una variabile (es. alberi di decisione, reti neurali) oppure per suddividere dei dati che non conosciamo a priori, in gruppi con caratteristiche simili (clustering). Queste sono solo alcune delle tecniche di data mining disponibili in letteratura e saranno quelle trattate a grandi linee in questo articolo.
Classificazione
Con la tecnica di classificazione si apprende un modello per fare una predizione su valore di una variabile. A differenza di altre tecniche, come il clustering, la classificazione richiede la conoscenza a priori dei dati ed è una tecnica supervisionata.
Nella classificazione disponiamo di un insieme di record chiamato “training set” che contiene un attributo speciale che è l’etichetta di classe. L’etichetta di classe rappresenta la categoria a cui quel record appartiene. A partire da questo insieme costruiamo un “modello” delle “categorie e/o classi” che ci permetta di assegnare a queste classi nuovi record che sono sprovviste dell’etichetta di classe, con la massima accuratezza.
Il modello serve quindi a riconoscere e assegnare la categoria corretta ai nuovi record privi di etichetta.Per validare il modello si usa un pezzo del training set, che si chiama test setche in pratica sono dei record del training set a cui è stata volutamente rimossa l’”etichetta di classe” con lo scopo di valutare come si comporta il classificatore che ho appena creato, cioè se predice la classe corretta. Il test set si usa per valutare l’accuratezza del modello stesso. Quindi apprendo il modello dai dati del training set e poi lo valido con i dati del test set, perché tanto io so quale sarà l’etichetta corretta poiché l’ho rimossa e così posso fare dei confronti.
Per “accuratezza” si intende il numero di record classificati corettamente dal modello rispetto al totale dei record classificati.Per validare un modello ci sono diverse tecniche: matrice di confusione, matrice costi e misure di richiamo/precisione.
La classificazione ha diversi campi di applicazione:
- Direct Marketing: strategia di promozione mirata (Es. voglio promuovere un nuovo telefono cellulare e voglio trovare i clienti che è più probabile che lo comprino).
- Riconoscimento delle Frodi
- Customer Attrition
- Medicina – Predire il decorso tumorale
- Analisi dei testi
- Concessioni di credito
- Stipulazione Contratti
- Valutazione del rischio in una compagnia di assicurazione
- etc
Esempio di Classificazione
Nella figura è riportato un esempio di classificatore che cerca di predire se una persona sta evadendo il fisco (cheat – barare) nella propria denuncia dei redditi.
Il training set è composto da un data set costituito da attributi di vario tipo (Tid – Transaction ID, Refund che significa “se ha richiesto un rimborso”, Marital Status (stato civile) – Taxable Income (entrate tassabili) e poi Cheat (Sta Barando). Cheat è l’etichetta di classe che il classificatore vuole predire. In questo caso il classificatore si dice booleano perché Cheat può valere solo “Si” oppure “No”.Dal training set il classificatore apprende il modello. Successivamente prende una porzione del training set, rimuove l’etichetta di classe e li utilizza come dati di test. Tali record saranno dati in pasto al motore del modello che genererà la sua predizione. Si confronta il valore predetto con quello reale per capire quanto è accurato il modello.
Tecniche di Classificazione
- Classificazione basate su Alberi di Decisione
- Classificazione basata su Regole
- Classificazione Associativa
- Classificazione Bayesiana
- Classificazione Instance Based
Slide di Riferimento
Le slide di riferimento prese per questo articolo sono “Data Mining – Classification: Basic Concepts, Decision Trees, and Model Evaluation – Lecture Notes for Chapter 4 – Introduction to Data Mining by Tan, Steinbach, Kumar” e sono scaricabili a questo link.
Alberi di decisione
L’albero di decisione è un modello utilizzato per la classificazione che viene costruito analizzando i vari attributi che descrivono i record che stiamo processando. Grazie ad un test sul valore di un attributo, possiamo suddividere i dati, navigando l’albero dalla radice fino a giungere ad una foglia che è l’etichetta di classe. Gli archi rappresentano il risultato del test sull’attributo.
Nei nodi interni dell’albero si testa una condizione su un attributo di un record. Le foglie dell’albero contengono le etichette di classe.
In figura è riportato un possibile albero di decisione che può essere implementato per predire il problema dell’evasione del fisco proposto prima.

Esempio di funzionamento del modello per classificare un nuovo record
Vediamo come funziona il sistema per un nuovo record da classificare privo di etichetta di classe:
Il nuovo record da classificare è quello che nella figura si chiama “Test Data” e contiene come attributi:
- Refund: no (non ha chiesto un rimborso)
- Marital Status: Married (Stato civile – Sposato)
- Taxable Income: 30K (Entrate Tassabili: 30K)
Questo soggetto sta cercando di evedare il fisco?? Come vedete l’etichetta “Cheat” è “?”
Si parte dalla radice in cui si fa il test sul valore dell’attributo “Refund“, il quale vale “no” e di conseguenza si prosegue sul ramo di destra.

A questo punto si effettua un test sull’attributo “Marital Status” e siccome vale “Married” si prende di nuovo il ramo di destra.

Siamo giunti su un nodo foglia, in cui l’etichetta di classe è “No“. Quindi il soggetto non sta cercando di evadere il fisco.

Come si costruisce un albero di decisione
Il problema è che il punto di partenza è rappresentato dai dati del training set, quindi da questi bisogna riuscire a trovare un criterio che riesca a ricavare/indurre un albero “buono”. Il che non è proprio immediato perché è possibile fare tantissimi alberi a partire da un training set. Ad esempio, rispetto a quello proposto si potrebbe decidere di usare come primo attributo di test (radice) Marital Status e poi dividere per Refund ed infine per Taxable Income. L’esempio del nuovo albero è riportato in figura:

Provare tutto lo spazio di soluzioni, in genere è una soluzione computazionalmente non fattibile a meno che il data set non sia davvero piccolo.
Allora come si fa?
Esistono diversi algoritmi per indurre un albero dal training set:- Hunt’s Algorithm
- CART
- ID3, C4.5
- SLIQ,SPRINT
Ad esempio l’algoritmo di Hunt (è il più semplice) lavora con una strategia greedy poiché sceglie l’attributo che localmente in quel nodo mi crea delle partizioni più pure in base alla porzione di training set rimasta. Con partizioni pure si intendono le partizioni che contengono tutti record della stessa classe.
Solo sul nodo radice sceglie l’attributo migliore rispetto a quelli che ha a disposizione. Praticamente prende il training set ed iterativamente lo partiziona costruendo l’albero.Rimane ancora il problema di capire quando un nodo è puro. Per questo scopo sono stati introdotti degli indici di impurità:
- GINI INDEX
- ENTROPIA
- ERRORE DI CLASSIFICAZIONE
Vantaggi Alberi di Decisione
- Sono facili da costruire.
- La classificazione è veloce
- Il modello generato è interpretaile
- L’accuratezza è buona se il data set non è troppo complesso
Svantagi Alberi di Decisione
Possono soffrire del fenomeno dell’overfitting che si verifica quando si creano alberi molto complessi (profondi) che cercano di separare il più possibile elementi di classi differenti. Il classificatore diventa troppo specializzato, è necessario semplificare l’albero con delle tecniche di pre-pruning o post-pruning.
Weka: Waikato Environment for Knowledge Analysis
WEKA è un ambiente software interamente scritto in Java. Un semplice metodo per utilizzare questo software consiste nell’applicare dei metodi di apprendimento automatici (learning methods) ad un set di dati (dataset), e analizzarne il risultato. È possibile attraverso questi metodi, avere quindi una previsione dei nuovi comportamenti dei dati.
Con WEKA potete utilizzare algoritmi di data mining e machine learning realizzati in java:
- Preprocessing
- Classificazione – tramite Albero di decisione J48
- Clustering
- Regole di associazione
Gli algoritmi possono essere eseguiti:
- Tramite linea di comando
- Tramite GUI
- Tramite chiamate all’interno di codice java
Sito del progetto: http://www.cs.waikato.ac.nz/ml/weka/
1 Responses to “Tecniche di Data Mining per la Classificazione – Alberi di Decisione”
Lascia un Commento
The trackbacks and pingpacks:
Link consigliati
Categorie
- Actionscript 3 – Trucchi e Segreti (9)
- Algoritmi e Programmazione Avanzata (3)
- Analisi di Basi di Dati (10)
- Assembler 8086 (2)
- Base di dati (1)
- Codifiche (1)
- Data Mining (4)
- E-learning (4)
- Flash (9)
- Grafica 3D (1)
- HTML5 (1)
- Intelligenza Artificiale (1)
- Lego Mindstorms NXT (6)
- Linguaggio C++ (1)
- Linux (8)
- Microsoft Office (7)
- news (1)
- Objective C (4)
- PHP (9)
- Progetti Politecnico (11)
- Programmazione ad Oggetti (Java) (1)
- Programmazione in C (16)
- Realtà Aumentata (1)
- Red5 (6)
- Seminari (3)
- SEO (3)
- Server (3)
- Sicurezza dei Sistemi Informatici (17)
- Siti Amici (1)
- Strategia e Innovazione (19)
- Tecnologie delle Basi di Dati (2)
- Utilità (11)
- web design (2)
Articoli Recenti
- Come creare una UILabel da codice senza utilizzare Interface Builder in Objective-c
- Tool per testare il codice PHP online
- LMS – An Elearning Platform with Online activation and 5 free users forever
- LMS – Piattaforma di E-learning gratis per i primi 5 utenti….
- Gli Active Record di Yii: un design pattern per rappresentare le tabelle del database in un modo orientato agli oggetti.
- Come creare un pulsante dinamicamente in Objective-c – Iphone SDK
- Actionscript 3 versus Objective-C: vediamo le principali differenze a livello di sintassi del codice
- Firewall: IP Tables un esempio su Linux
- Una piccola introduzione al framework php Yii (Yes It Is!) – installazione e creazione di una semplice applicazione web 2.0
- NetBeans IDE: JVM Creation Failed vediamo come risolverlo
- I sistemi esperti basati su regole
- I protocolli in Objective C sono molto simili alle interfacce di Java
- 19 – Strategia e Innovazione – Benefici della diversificazione: matrice BGC
- 18 – Strategia e Innovazione – Scelta del tempo di ingresso nel mercato – I FIRST MOVER
- 17 – Strategia e Innovazione – I mercati “WINNER TAKE ALL”
Tags
Acrobat Writer Gratis
Actionscript 3
addEventListener
API disegno flash
appunti del corso di strategia e innovazione
AS3
Audio Streaming
Cancellare un'immagine da un PDF
cicli ed iterazioni in c
context free grammar
esercitazioni svolte in linguaggio c
esercitazioni svolte sui trigger oracle
esercizi svolti assembler 8086
eventi in actionscript 2
eventi in actionscript 3
file system linux
Formati Video HTML5
forward-chaining
gestione della memoria dinamica in c
gestione delle liste in c
getURL
Guida Visual Basic For Application - VBA
HTML5
indicizzare un sito sui motori
jflex
LEGO MINDSTORMS NXT 2.0 - BLUETOOTH - C#
linguaggi e traduttori
Modificare un file PDF
moveTo
navigateToURL
Oracle Database 10g Express Edition
Primo programma in c
programmare robot
root
scelte ed alternative in c
setChildIndex
streaming real time
swapDepths
TextField buttonMode
vettori in c
video in as2
video in as3
Video Streaming
XML
XMLList
