• Non ci sono risultati.

2.5 Alberi Decisionali

2.5.1 Nozioni di base

Analizzeremo adesso i concetti di base sugli alberi decisionali per la clas- sificazione di dati tabulari, limitandoci alle nozioni che serviranno per questo lavoro di tesi.

Consideriamo la Figura 2.5, dove abbiamo rappresentato la tabella usata come esempio, presa da [17]. Questo dataset contiene informazioni riguardo

TID Home Owner Marital Status Income Defaulted 1 yes Single 125K no 2 no Married 100K no 3 no Single 70K no 4 yes Married 120K no 5 no Divorced 95K yes 6 no Married 60K no 7 yes Divorced 220K no 8 no Single 85K yes 9 no Married 75K no 10 no Single 90K yes

Figura 2.5: Tabella d’esempio T1

lo stato civile, il possesso o meno di una casa e il reddito, dati utili a stabilire se gli individui siano o meno debitori insolventi, dividendoli in due oppurtune classi. L’ultima colonna indica appunto l’attributo di classe, che prevede due possibili valori: no e yes. Per esempio, il record 5 ha classe yes. Quando non c’`e incertezza questo dataset pu`o essere usato per costruire un classificatore (albero decisionale) che potr`a poi prendere altri record in input e assegnarli ad una delle due classi predefinite3.

Un albero decisionale per la classificazione ha due tipi di nodi, come illustrato in Figura 2.6. I nodi interni (a sinistra nella figura) corrispondono ad un attributo della tabella di input usato per partizionare i record associati a quel nodo in accordo col loro valore di quell’attributo. Nell’esempio, tutti i record che hanno valore yes nell’attributo Home Owner apparterranno al sotto-albero di sinistra. Sulla destra della figura `e invece illustrato un nodo foglia, che indica la classe associata a tale foglia e la percentuale di record che appartengono a ciascuna delle classi. In aggiunta indicheremo il numero

3

Generalmente una parte dei dati viene usata per costruire il classificatore e una parte per testare la sua accuratezza, ma questo non `e rilevante nella nostra discussione.

Figura 2.6: Nodi di un albero decisionale: interno e foglia

di record che appartengono ad ogni nodo: nell’esempio, 5.

L’algoritmo base usato per costruire un albero decisionale `e molto sem- plice ed efficiente, ma potrebbe non fornire la soluzione migliore (che `e invece un problema NP):

1. Parti con un singolo nodo rappresentante tutti i record nel dataset. 2. Scegli un attributo e dividi i record in base al loro valore di questo

attributo.

3. Ripeti la divisione in tutti i nuovi nodi, finch´e un criterio di stop non viene soddisfatto.

Questa procedura `e conosciuta come algoritmo di Hunt e chiaramente ci sono molti modi di implementarla. Definiremo adesso le opzioni adottate in questo lavoro, indicheremo i punti non tenuti in considerazione perch´e non direttamente interessati alla gestione dell’incertezza e forniremo un esempio di costruzione di un albero a cui dopo aggiungeremo incertezza. I tre aspetti che devono essere decisi per implementare l’algoritmo sono:

• Come partizionare i record successivamente alla scelta dell’attributo di split.

• Come scegliere l’attributo di split. • Quando fermarsi.

Partizionamento

In questo esempio abbiamo due attributi categorici (Home Owner e Marital Status, rispettivamente binario e ternario), e un attributo continuo. In que- sto lavoro assumiamo che ogni attributo possa essere diviso in un numero di figli predefinito, perci`o, per l’attributo continuo, useremo una procedura di discretizzazione per dividere i record in un numero finito di classi e nell’e- sempio considereremo due split con valori ≤ 80 e > 80. Non verranno fornite ulteriori indicazioni sulla scelta di questa soglia, poich´e non rilevante alla discussione. Tuttavia, negli esempi seguenti, assumeremo che questa soglia sia fissata per un dato attributo.

Scelta dell’attributo di split

Una volte deciso come dividere i record, dobbiamo scegliere l’attributo di split: tale decisione `e un problema chiave in un algoritmo induttivo per la costruzione di un albero decisionale. Ogni passo del processo costruttivo dell’albero necessita l’individuazione di un attributo per dividere l’insieme di dati in sottoinsiemi pi`u piccoli: per fare ci`o useremo una funzione molto comune (tra tutte le possibili) per misurare la bont`a della scelta. Intuitiva- mente, se tutti i record appartengono ad una sola classe il nodo che risulter`a avr`a un alto valore di confidenza, cosa che invece non succede quanto i record sono equamente distribuiti tra tutte le classi.

Sia p(ci|n) la percentuale di record che appartengono alla classe ci nel

nodo n. L’entropia al nodo n `e definita come:

E(n) = X

tutte le classi

−p(ci|n) log2p(ci|n) (2.1)

una somma pesata dell’entropia su tutti i nodi appena creati, definendo il suo livello di impurit`a [17]. Sia N il numero totale di record associati al genitore e sia Ni il numero di record associati all’iesimo figlio dopo il partizionamento.

L’impurit`a di un nodo di split S con figli n0, . . . , nk `e definita come:

I(S) = X

i∈[0,k]

Ni

N E(ni) (2.2)

Come esempio si pu`o considerare la tabella T1, dove possiamo scegliere come attributo di split Possiede Casa, Stato Maritale o Reddito. Queste tre alternative sono illustrate in Figura 2.7 e le loro impurit`a sono, da sinistra a destra: 3 10(−0 log20 − 1 log21) + 7 10(−.43 log2.43 − .57 log2.57) = .69 4 10(−.5 log2.5 − .5 log2.5) + 4 10(−0 log20 − 1 log21) + + 2 10(−.5 log2.5 − .5 log2.5) = .6 3 10(−0 log20 − 1 log21) + 7 10(−.43 log2.43 − .57 log2.57) = .69

Figura 2.7: Attributi di split alternativi per il dataset T1

Da questi valori appare chiaro che lo split meno impuro sia quello effettua- to sull’attributo Stato Maritale. A questo punto possiamo ricorsivamente

dividere i tre nuovi nodi finch´e non soddisferemo la condizione di arresto. Condizione di arresto

Fermare la crescita dell’albero `e molto importante per ridurne la dimen- sione ed incrementarne la leggibilit`a, argomenti che non tratteremo qui. Negli esempi successivi useremo le seguenti condizioni di arresto:

Un nodo viene processato se tutti i seguenti predicati sono verificati: 1. Esiste un nuovo attributo di split.

2. Il nodo contiene pi`u di due record.

3. Non ci sono classi che hanno almeno il 75% dei record.

Notare che la condizione dei due record e la soglia del 75% sono arbitrarie e usate solamente come esempio.

Per concludere il nostro esempio, in Figura 2.8 abbiamo rappresentato i due successivi passi del processo di costruzione dell’albero, omettendo il calcolo dell’impurit`a.

Documenti correlati