Machine Learning: Classificação via árvores de decisão e florestas
O caso
Mais uma vez, um problema de classificação usando a clássica base de dados Iris que todos conhecem (disponível em: https://archive.ics.uci.edu/ml/datasets/iris)
Desta vez, a proposta é usar árvores de decisão para classificar o problema e estender o código também a Random Forests
Os desafios do caso:
- implementação manual do algoritmo para a árvore de decisão, incluindo a geração da árvore. Implemento manualmente justamente para entender melhor a matemática por trás do algoritmo e saber consertá-lo / aperfeiçoá-lo caso precise.
- Extensão do código para classificação usando Random Forests. Também implementando manualmente.
Documentação
O projeto foi feito em Python, versão 3.7.0
Foram usadas as bibliotecas:
- math
- random
- csv
O projeto foi feito no pycharm, então, clonar este repositório e abri-lo como um novo projeto na referida IDE deve ser o bastante para sua reprodução.
Próximos passos
-
Por mais que esteja comentado, reconheço que o código precisa de uma refatoração, seja para reescrever alguns métodos de forma mais sucinta, seja para ajudar na legibilidade do código.
-
Muitas funções foram implementadas do zero, mas existem bibliotecas que já implementam as soluções aqui geradas. Enquanto considero que há notáveis vantagens em implementar o algoritmo do zero, também reconheço que o uso de bibliotecas e funções pode facilitar bastante a resolução do problema de forma confiável.