Il CART e gli alberi decisionali come gli algoritmi funzionano attraverso il partizionamento ricorsivo del set di addestramento al fine di ottenere sottoinsiemi il più puri possibile per una data classe target. Ogni nodo dell'albero è associato a un particolare insieme di record che è diviso da un test specifico su una funzione. Ad esempio, una prova su un attributo continuo A può essere indotta dal test A ≤ x . L'insieme dei record T viene quindi partizionato in due sottoinsiemi che conducono al ramo sinistro dell'albero e a quello destro.TAA≤xT
Tl={t∈T:t(A)≤x}
e
Tr={t∈T:t(A)>x}
Allo stesso modo, una caratteristica categorica può essere utilizzata per indurre divisioni in base ai suoi valori. Ad esempio, se B = { b 1 , ... , b k } ogni ramo i può essere indotto dal test B = b i .BB={b1,…,bk}iB=bi
La fase di divisione dell'algoritmo ricorsivo per indurre l'albero decisionale tiene conto di tutte le possibili divisioni per ciascuna caratteristica e cerca di trovare la migliore in base a una misura di qualità scelta: il criterio di divisione. Se il set di dati viene indotto nel seguente schema
A1,…,Am,C
dove sono attributi e C è la classe target, tutte le suddivisioni dei candidati vengono generate e valutate dal criterio di suddivisione. Le suddivisioni su attributi continui e quelli categoriali vengono generate come descritto sopra. La selezione della migliore divisione viene di solito effettuata mediante misure di impurità. L'impurità del nodo padre deve essere ridotta della divisione . Sia ( E 1 , E 2 , … , E k ) una divisione indotta sull'insieme dei record E , un criterio di divisione che utilizza la misura di impurità I ( ⋅ ) è:AjC(E1,E2,…,Ek)EI(⋅)
Δ=I(E)−∑i=1k|Ei||E|I(Ei)
Le misure standard di impurità sono l'entropia di Shannon o l'indice Gini. Più specificamente, CART utilizza l'indice Gini definito per l'insieme come segue. Sia p j la frazione dei record in E di classe c j p j = | { t ∈ E : t [ C ] = c j } |EpjEcj
quindi
Gini(E)=1- Q ∑ j=1p 2 j
doveQ
pj=|{t∈E:t[C]=cj}||E|
Gini(E)=1−∑j=1Qp2j
Q è il numero di classi.
Porta a un'impurità 0 quando tutti i record appartengono alla stessa classe.
Per fare un esempio, diciamo che abbiamo una serie di classe binario di record dove la distribuzione classe è ( 1 / 2 , 1 / 2 ) - La seguente è una buona spaccatura per TT(1/2,1/2)T
Tl(1,0)Tr(0,1)TlTr|Tl|/|T|=|Tr|/|T|=1/2Δ
Δ=1−1/22−1/22−0−0=1/2
Δ
Δ=1−1/22−1/22−1/2(1−(3/4)2−(1/4)2)−1/2(1−(1/4)2−(3/4)2)=1/2−1/2(3/8)−1/2(3/8)=1/8
La prima divisione verrà selezionata come migliore suddivisione e quindi l'algoritmo procede in modo ricorsivo.
È facile classificare una nuova istanza con un albero decisionale, infatti è sufficiente seguire il percorso dal nodo radice a una foglia. Un record è classificato con la classe di maggioranza della foglia che raggiunge.
Diciamo che vogliamo classificare il quadrato su questa figura
A,B,CCAB
Un possibile albero decisionale indotto potrebbe essere il seguente:
È chiaro che il quadrato del record verrà classificato dall'albero decisionale come un cerchio dato che il record cade su una foglia etichettata con cerchi.
In questo esempio di giocattolo l'accuratezza sul set di addestramento è del 100% perché nessun record è classificato male dall'albero. Sulla rappresentazione grafica del set di allenamento sopra possiamo vedere i confini (linee tratteggiate grigie) che l'albero usa per classificare le nuove istanze.
C'è molta letteratura sugli alberi delle decisioni, volevo solo scrivere un'introduzione abbozzata. Un'altra famosa implementazione è C4.5.