Trilha machine learning: Algoritmo de árvore de decisão
Anteriormente vimos que dentro do aprendizado de máquina, podemos ter algoritmos de aprendizado supervisionado e não supervisionado, e dentro dos supervisionados temos aqueles que podem ser usados para regressão (previsão) ou classificação (separação).
Hoje vamos conhecer o algoritmo chamado árvore de decisão, que é um dos algoritmos de classificação mais conhecidos e com certeza já deve ter ouvido falar dele por aí, então vamos lá conhecer esse recurso melhor.
A árvore é construída por meio da divisão dos dados e agrupados com base em características que eles tem em comum, quanto mais homogêneo é um grupo, mais assertivo é o resultado. Cada nó interno da árvore representa uma condição de divisão, enquanto as folhas representam as decisões ou rótulos finais.
A árvore é construída usando os atributos que melhor separam cada grupo, isso para casos de classificação. Para a predição, os dados percorrem a árvore seguindo as condições até alcançar uma folha, onde é atribuído um rótulo ou valor previsto.
O algoritmo de árvore de decisão é super simples de entender, se você conhece os dados consegue fazer isso manualmente pra ter noção de como ele funciona; ele pode ainda entender e trabalhar bem com dados complexos e dados não lineares, em comparação com outros algoritmos esse é o que menos tende a ter problemas com os outliers. Mas como qualquer outro algoritmo, ele também tem suas desvantagens, conjuntos muito pequenos ou árvores muito profundas são propensas ao overfitting (sobreajuste), é um algoritmo bem sensível, qualquer variação nos dados de treinamento pode afetar no momento do teste.
Vamos ver alguns exemplos do seu uso:
Classificação:
Suponha que temos um conjunto de dados com informações sobre e-mails rotulados como "spam" ou "não spam". Podemos anotar características que incluem palavras-chave, comprimento do e-mail, se tem muitos links, muitas imagens... Com base nessas características o algoritmo de decisão teria o "poder" de separar nossos e-mails em "spam" e "não-spam".
Se pensar bem isso é o que já fazemos hoje, quando acessamos o aplicativo de e-mail, e classificamos um e-mail como spam, estamos fazendo nada mais do que indicar o que é um spam, e com base naquelas características todos os próximos e-mails serão selecionados, separados e enviados para a pasta destinada.
Previsão:
Em um conjunto de dados com informações sobre casas, como tamanho, número de quartos, número de banheiros, localização e preço de venda... Com uma de árvore de decisão, podemos criar um modelo que prevê o preço de venda de uma casa com base nessas características. O modelo aprenderá padrões nos dados de treinamento como por exemplo, uma casa com três quartos e dois banheiros, será mais cara do que uma com dois quartos e um banheiro, e se baseando nessas associações ele poderá fazer previsões sobre o preço de venda de outras casas.
Agora a parte mais legal, a aplicação, hoje vamos usar um conjunto de dados bem comum, conhecido como Iris, ele é composto por três tipos de lírio, o lírio setosa, o lírio versicolor e o lírio virginica, ele contempla a largura e comprimento das pétalas e sépalas das flores e com base nelas podemos realizar nossa classificação. O conjunto de dados é pequeno, contém 150 dados mas isso é o suficiente para nosso exemplo, e podemos carregá-lo diretamente da biblioteca Scikit-learn do Python.
Notebooks abertos e vamos lá!


Comentários
Postar um comentário