Classificação da árvore de decisão

classificação
árvore de decisão
modelo de previsão
Classificação da árvore de decisão cover image

Introdução

Árvores de decisão (DTs) são um método de aprendizagem supervisionado não paramétrico usado para classificação e regressão. O objetivo é criar um modelo que preveja o valor de uma variável alvo, aprendendo regras de decisão simples inferidas a partir dos recursos dos dados.

Entropia

O objetivo do treinamento é encontrar as melhores divisões nos nós para encontrar a árvore ideal. As divisões são feitas usando alguns critérios como: Entropia.

Existem muitas definições de entropia, como:

  • A entropia corresponde à quantidade de informação contida numa fonte de informação.

  • A entropia também pode ser vista como a aleatoriedade ou a medição da surpresa num conjunto.

  • A entropia é uma métrica que mede a imprevisibilidade ou impureza do sistema.

entropy

Nas árvores de decisão, consideraremos a entropia como a medida da pureza dentro de um nó. O objetivo do modelo de árvore de decisão é reduzir a entropia dos nós em cada divisão:

entropy_reductioin

Assim, queremos maximizar a diferença entre a entropia do nó pai e a entropia dos nós filhos. Essa diferença é chamada de Ganho de informação.

A Entropia HH de um conjunto XX é formulada matematicamente da seguinte forma:

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

Ganho de informações

Ganho de informação é a diferença entre a entropia do nó pai e a soma ponderada das entropias dos nós filhos e, portanto, pode ser formulado da seguinte forma:

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])

onde:

  • H(.)H(.) é a entropia.

  • YY é a população anterior à divisão, representa o nó pai.

  • XX é a variável que queremos usar para a divisão.

  • xx é um valor único de X.

  • Y[X==x]Y[X==x] é uma lista dividida com apenas valores xx.

vamos dar um exemplo adequado:

entropy_reductioin

Vamos calcular o ganho de informação quando dividimos o nó pai usando os valores de 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)

\

Primeiro, calculamos a entropia do nó pai:

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

\

Em seguida, calcularemos a probabilidade interna de cada nó filho após a divisão usando os valores únicos de 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)

Como:

  • H(YX=Square)H(Y | X = Square) : representa a entropia do primeiro nó filho.

  • H(YX=Circle)H(Y | X = Circle) : representa a entropia do segundo nó filho.

\

Começamos com o primeiro nó filho:

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 então o segundo nó filho:

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

\

Por fim, substituímos as entropias na fórmula de Ganho de Informação:

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

\

\

Conforme afirmado anteriormente, o objetivo de uma divisão de nó é maximizar o ganho de informação e, assim, minimizar a entropia no nó filho resultante. Para fazer isso, precisamos tentar dividir o nó com diferentes conjuntos de entradas X1,X2,,XnX_1, X_2, \ldots, Xn e mantemos apenas a divisão que maximiza o ganho de informação:

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

Quando parar de dividir

A divisão de nós nas árvores de decisão é recursiva, portanto deve haver um critério que possamos usar para interromper a divisão. Estes são alguns dos critérios mais implementados:

  • Quando o nó é puro: H(nó) = 0. É inútil dividir ainda mais o nó.

  • Número máximo de profundidade: Podemos definir uma profundidade máxima que o modelo pode atingir, isso significa que mesmo que o nó não seja puro a divisão é interrompida.

  • Número mínimo de amostras por nó: Também podemos definir um número mínimo NN de amostras por nó. Se o número de amostras por nó for igual a NN então paramos de dividir mesmo que o nó não seja puro.

Ao final do treinamento (a divisão), cada nó que depende do final da árvore de decisão é chamado de “Folha”, pois não é raiz de nenhuma subárvore. Cada folha representará o rendimento da classe com maior número de amostras.

Conclusão

A árvore de decisão é um dos algoritmos de aprendizado de máquina mais famosos devido à sua eficiência, experiência intuitiva e implementação simples. Este algoritmo pode ainda ser usado com variáveis ​​numéricas independentes (árvore de decisão gaussiana) e também pode ser estendido para resolver tarefas de regressão.


Career Services background pattern

Serviços de carreira

Contact Section background image

Vamos manter-nos em contacto

Code Labs Academy © 2024 Todos os direitos reservados.