Candidatevi ai nostri nuovi coorti part-time di Data Science & AI e Cybersecurity

Classificazione dell'albero decisionale

classificazione
albero decisionale
modello di previsione
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 fa affidamento 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.


Career Services background pattern

Servizi per le carriere

Contact Section background image

Rimaniamo in contatto

Code Labs Academy © 2024 Tutti i diritti riservati.