Tópicos
Decision Trees são técnicas de aprendizagem supervisionada, podendo ser utilizadas para diferentes tipos de problemas.
Classificação
Como o objetivo aqui é prever uma classe, o objetivo passa por ter as folhas o mais puras possível, isto é, com uma só classe.
A impureza pode ser medida segundo alguns fatores:
- Gini
- Entropia
- Ganho de informação
Durante a criação da árvore, a expansão pode cair em dois casos:
- Se o nó seguinte possui um grau de pureza menor (ou seja, é mais impuro) não expandimos por aí e o mesmo torna-se uma folha da árvore;
- Se o nó seguinte é sinal de uma melhoria (é mais puro), continuamos
Idealmente, chegamos a nós com uma impureza igual a 0, onde será indubitável a escolha da classe para a previsão.
Regressão
Neste caso, o objetivo passa por minimizarmos o erro. Na maioria dos casos, utilizamos a soma do quadrado dos erros (SSR).
Cuidados a ter
Prunning
Caso deixemos a árvore crescer até à sua máxima profundidade, a probabilidade do modelo ficar overfitted aos dados de treino é grande.
Existem, então, duas ocasiões onde podemos aplicar uma poda na árvore.
- Pre-prunning: definimos qual o número mínimo de samples (linhas) necessárias para que ocorra um split (
min_sample_split
); definimos qual o número mínimo de samples (linhas) necessárias para que um nó se transforme numa folha (min_sample_leaf
) - Post-prunning: definimos qual a profundidade máxima da árvore manualmente (
max_depth
)
Vantagens
- Configuração simples
- Não necessita que normalizemos os dados, ou façamos scaling
- Missing values não afetam o processo de construção da decision tree
Desvantagens
- Inadequado para problemas com muitas features
- Podem existir réplicas de subárvores, ou seja, com o mesmo tipo de decisão
- Envolve, por norma, bastante tempo de treino