Em quais casos é melhor usar uma árvore de decisão e outros casos um KNN?
Por que usar um deles em certos casos? E o outro em diferentes casos? (Observando sua funcionalidade, não o algoritmo)
Alguém tem algumas explicações ou referências sobre isso?
machine-learning
data-mining
decision-trees
gchavez1
fonte
fonte
Respostas:
Eles servem a propósitos diferentes.
O KNN não é supervisionado, a Decision Tree (DT) é supervisionada. (O KNN é um aprendizado supervisionado, enquanto o K-means não é supervisionado, acho que essa resposta causa alguma confusão. ) O KNN é usado para agrupamento, o DT para classificação ( ambos são usados para classificação ) .
O KNN determina bairros, portanto, deve haver uma métrica de distância. Isso implica que todos os recursos devem ser numéricos. As métricas de distância podem ser efetuadas por escalas variadas entre atributos e também pelo espaço de alta dimensão.
A DT, por outro lado, prevê uma classe para um determinado vetor de entrada. Os atributos podem ser numéricos ou nominais.
Portanto, se você quiser encontrar exemplos semelhantes, use o KNN. Se você quiser classificar exemplos, poderá usar o DT.
fonte
knn
ek-means
são algoritmos diferentes, e esta resposta infelizmente (e erroneamente) perde esses dois procedimentos.knn
não é supervisionado nem usado para agrupar! Veja Q: Diferente kNN e kMeanClassificadores como Decision Tree, Bayesian, Back-propagation, Support Vector Machine estão na categoria "Eager Learners" , porque primeiro constroem um modelo de classificação no conjunto de dados de treinamento antes de serem capazes de realmente classificar uma observação [invisível] do conjunto de dados de teste . O modelo aprendido agora está "ansioso" (leia com fome) para classificar observações não vistas anteriormente, daí o nome.
O classificador baseado em KNN, no entanto, não cria nenhum modelo de classificação. Aprende diretamente com as instâncias de treinamento (observações). Ele inicia o processamento dos dados somente após receber uma observação de teste para classificação. Assim, o KNN se enquadra na categoria de abordagens "Lazy Learner" .
Com base nas diferenças fundamentais acima, podemos concluir o seguinte: -
Como o KNN realiza um aprendizado no local, ele exige pesquisas freqüentes no banco de dados, portanto, pode ser computacionalmente caro. O Classificador de Árvore de Decisão não requer tais pesquisas, pois possui o modelo de classificação em memória pronto.
Como o KNN realiza um aprendizado baseado em instâncias, um K bem ajustado pode modelar espaços de decisão complexos com limites de decisão arbitrariamente complicados, que não são facilmente modelados por outros alunos "ansiosos", como o Decision Trees.
Os alunos "ansiosos" trabalham em lotes, modelando um grupo de observações de treinamento por vez. Portanto, eles não são adequados para aprendizado incremental. Mas o KNN naturalmente oferece suporte ao aprendizado incremental (fluxos de dados), pois é um aprendiz baseado em instância.
Além disso, o classificador KNN fornece taxas de erro de teste mais próximas às do classificador bayesiano (o padrão-ouro). Conforme citado no ISLR :
fonte
Do Python Machine Learning de Sebastian Raschka :
A árvore de decisão, no entanto, pode classificar rapidamente novos exemplos. Você está apenas executando uma série de comparações booleanas.
fonte
Eu acrescentaria que as árvores de decisão podem ser usadas para tarefas de classificação e regressão. A DT, por outro lado, prevê que uma classe na resposta aceita seria mais específica descrevendo as árvores de Classificação, que tecnicamente é um subtipo do conceito genérico de DT. Uma referência (ignorando as camadas inferiores que discutem implementações específicas):
A partir daqui: http://www.simafore.com/blog/bid/62482/2-main-differences-between-classification-and-regression-trees
fonte