Classificazione dell'albero decisionale

classificazione
albero decisionale
modello di previsione

Aggiornato su September 24, 202497 minuti a leggere

Classificazione dell'albero decisionale cover image

Introduzione

Gli alberi decisionali (DT) sono un metodo di apprendimento supervisionato non parametrico utilizzato per la classificazione e la regressione. L'obiettivo è creare un modello che preveda il valore di una variabile target apprendendo semplici regole decisionali dedotte dalle caratteristiche dei dati.

Entropia

L'obiettivo della formazione è trovare le migliori suddivisioni nei nodi per trovare l'albero più ottimale. Le suddivisioni vengono effettuate utilizzando alcuni criteri come: Entropia.

Esistono molte definizioni di entropia come:

  • L'entropia corrisponde alla quantità di informazioni contenute in una fonte di informazione.

  • L'entropia può anche essere vista come la casualità o la misurazione della sorpresa in un insieme.

  • L'entropia è una metrica che misura l'imprevedibilità o l'impurità nel sistema.

entropy

Negli alberi decisionali considereremo l'entropia come la misura della purezza all'interno di un nodo. L'obiettivo del modello dell'albero decisionale è ridurre l'entropia dei nodi ad ogni divisione:

entropy_reductioin

Pertanto, vogliamo massimizzare la differenza tra l'entropia del nodo genitore e l'entropia dei nodi figli. Questa differenza è chiamata guadagno di informazioni.

L'Entropia HH di un insieme XX è matematicamente formulata come segue:

H(X)=_xXp(x)logp(x)H(X) = - \sum\limits\_{x \in X} p(x) \log p(x)

Guadagno di informazioni

Il guadagno di informazioni è la differenza tra l'entropia del nodo genitore e la somma ponderata delle entropie dei nodi figli, e quindi può essere formulato come segue:

IG(Y,X)=H(Y)xunique(X)P(xX)×H(YX=x)IG(Y, X) = H(Y) - \sum_{x \in unique(X)} P(x|X) \times H(Y | X = x)

=H(Y)xunique(X)X.count(x)len(X)×H(Y[X==x])= H(Y) - \sum_{x \in unique(X)} \frac{X.count(x)}{len(X)} \times H(Y[X == x])

Dove:

  • H(.)H(.) è l'entropia.

  • YY è la popolazione prima della divisione, rappresenta il nodo genitore.

  • XX è la variabile che vogliamo utilizzare per la suddivisione.

  • xx è un valore univoco di X.

  • Y[X==x]Y[X==x] è una lista divisa con solo valori xx.

facciamo un esempio corretto:

entropy_reductioin

Calcoleremo il guadagno di informazioni quando dividiamo il nodo genitore utilizzando i valori di X:

IG(parent,X)=H(parent)xunique(X)P(xX)×H(parentX=x)IG(parent, X) = H(parent) - \sum_{x \in unique(X)} P(x|X) \times H(parent | X = x)

\

Innanzitutto, calcoliamo l'entropia del nodo genitore:

H(parent)=P(Y=Blue)×logP(Y=Blue)P(Y=Yellow)×logP(Y=Yellow)H(parent) = - P(Y=Blue) \times \log P(Y=Blue) - P(Y=Yellow) \times \log P(Y=Yellow)

=1121×log(1121)1021×log(1021)=0.3= - \frac{11}{21} \times \log(\frac{11}{21}) - \frac{10}{21} \times \log(\frac{10}{21}) = 0.3

\

Quindi, calcoleremo la probabilità interna di ciascun nodo figlio dopo la divisione utilizzando i valori univoci di X:

unique(X)=[Circle,Square]unique(X) = [Circle, Square]

_xunique(X)P(xX)×H(YX=x)=P(SquareX)×H(YX=Square)\sum\_{x \in unique(X)} P(x|X) \times H(Y | X = x) = P(Square|X) \times H(Y | X = Square)

+P(CircleX)×H(YX=Circle)+ P(Circle|X) \times H(Y | X = Circle)

=921×H(YX=Square)+1221×H(YX=Circle)= \frac{9}{21} \times H(Y | X = Square) + \frac{12}{21} \times H(Y | X = Circle)

Ad esempio:

  • H(YX=Square)H(Y | X = Square) : rappresenta l'entropia del primo nodo figlio.

  • H(YX=Circle)H(Y | X = Circle) : rappresenta l'entropia del secondo nodo figlio.

\

Iniziamo con il primo nodo figlio:

H(YX=Square)=P(Y=BlueX=Square)×logP(Y=BlueX=Square)H(Y | X = Square) = - P(Y=Blue | X = Square) \times \log P(Y=Blue| X = Square)

P(Y=YellowX=Square)×logP(Y=YellowX=Square)- P(Y=Yellow| X = Square) \times \log P(Y=Yellow| X = Square)

=79×log7929×log29=0.23= - \frac{7}{9} \times \log\frac{7}{9} - \frac{2}{9} \times \log\frac{2}{9} = 0.23

\

E poi il secondo nodo figlio:

H(YX=Circle)=P(Y=BlueX=Circle)×logP(Y=BlueX=Circle)H(Y | X = Circle) = - P(Y=Blue | X = Circle) \times \log P(Y=Blue| X = Circle)

P(Y=YellowX=Circle)×logP(Y=YellowX=Circle)- P(Y=Yellow| X = Circle) \times \log P(Y=Yellow| X = Circle)

=412×log412812×log812=0.28= - \frac{4}{12} \times \log\frac{4}{12} - \frac{8}{12} \times \log\frac{8}{12} = 0.28

\

Infine, sostituiamo le entropie nella formula del guadagno di informazioni:

IG(parent,X)=H(parent)xunique(X)P(xX)×H(parentX=x)IG(parent, X) = H(parent) - \sum_{x \in unique(X)} P(x|X) \times H(parent | X = x)

=0.3921×0.231221×0.28=0.041= 0.3 - \frac{9}{21} \times 0.23 - \frac{12}{21} \times 0.28 = 0.041

\

\

Come affermato in precedenza, l'obiettivo della suddivisione di un nodo è massimizzare il guadagno di informazioni e quindi ridurre al minimo l'entropia nel nodo figlio risultante. Per fare ciò, dobbiamo provare a dividere il nodo con diversi set di input X1,X2,,XnX_1, X_2, \ldots, Xn e manteniamo solo la divisione che massimizza il guadagno di informazioni:

X\*=argmaxXiIG(Y,Xi)X^{\*} = \underset{X_i}{\operatorname{argmax}} IG(Y, X_i)

Quando smettere di dividere

La suddivisione dei nodi negli alberi decisionali è ricorsiva, quindi deve esserci un criterio che possiamo utilizzare per interrompere la suddivisione. Questi alcuni dei criteri più implementati:

  • Quando il nodo è puro: H(nodo) = 0. È inutile dividere ulteriormente il nodo.

  • Numero massimo di profondità: Possiamo impostare una profondità massima che il modello può raggiungere, significa che anche se il nodo non è puro la scissione viene interrotta.

  • Numero minimo di campioni per nodo: Possiamo anche impostare un numero minimo NN di campioni per nodo. Se il numero di campioni per nodo è pari a NN allora interrompiamo la suddivisione anche se il nodo non è puro.

Alla fine dell'addestramento (la suddivisione), ogni nodo che si basa sulla fine dell'albero decisionale viene chiamato "Foglia", perché non è la radice di nessun sottoalbero. Ogni foglia rappresenterà la classe con il maggior numero di campioni.

Conclusione

L'albero decisionale è uno degli algoritmi di machine learning più famosi grazie alla sua efficienza, al suo background intuitivo e alla sua semplice implementazione. Questo algoritmo può essere ulteriormente utilizzato con variabili numeriche indipendenti (albero decisionale gaussiano) e può essere esteso anche per risolvere compiti di regressione.

Prendi in considerazione una carriera tecnologica: scopri di più sui bootcamp online di CLA

Career Services background pattern

Servizi per le carriere

Contact Section background image

Rimaniamo in contatto

Code Labs Academy © 2025 Tutti i diritti riservati.