Árvore de decisão vs. KNN


13

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?


2
KNN NÃO é supervisionado. Talvez a resposta estivesse pensando em k-means?

2
O aprendizado da árvore de decisão também não é supervisionado. en.wikipedia.org/wiki/Supervised_learning .
Valentas

Respostas:


8

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.


Esclarecimento: Clustering, mas um cluster de tamanho k único em torno de um determinado vetor de entrada. Não é necessariamente verdade que todos os recursos devem ser numéricos. Por exemplo, você pode usar a semelhança de Jaccard para definir uma distância em que os recursos são nominais.

10
Na verdade, ambos são supervisionados. Supervisionado significa apenas que o aluno tem acesso a um conjunto de treinamento rotulado. Algoritmos não supervisionados fazem coisas como agrupamento, não previsão de rótulo.
Jordan A

1
Você também pode classificar com KNN baseada estritamente na maioria dos seus vizinhos K
Jekaterina Kokatjuhha

3
-1 knne k-meanssão algoritmos diferentes, e esta resposta infelizmente (e erroneamente) perde esses dois procedimentos. knnnão é supervisionado nem usado para agrupar! Veja Q: Diferente kNN e kMean
SebNag 27/10/17

@SebNag, é justo dizer que a seção "Vizinhos não supervisionados" do sci-kit learn está realmente apenas falando sobre o k-means disfarçado? scikit-learn.org/stable/modules/neighbors.html Parece que essa seção usa knn, mas apenas com uma medida de distância de algum tipo para determinar clusters sem conhecimento de etiqueta. Ou seja, isso soa como k-means.
Frikster

7

Classificadores 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: -

  1. 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.

  2. 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.

  3. 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.

  4. 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 :

A taxa de erro de Bayes é análoga ao erro irredutível


4

Do Python Machine Learning de Sebastian Raschka :

A principal vantagem de uma abordagem baseada em memória [o KNN] é que o classificador se adapta imediatamente à medida que coletamos novos dados de treinamento. No entanto, a desvantagem é que a complexidade computacional para classificar novas amostras cresce linearmente com o número de amostras no conjunto de dados de treinamento no pior cenário - a menos que o conjunto de dados tenha muito poucas dimensões (recursos) e o algoritmo tenha sido implementado usando dados eficientes estruturas como árvores KD. JH Friedman, JL Bentley e RA Finkel. Um algoritmo para encontrar as melhores correspondências no tempo esperado logarítmico. Transações da ACM em software matemático (TOMS), 3 (3): 209–226, 1977. Além disso, não podemos descartar amostras de treinamento, pois nenhuma etapa de treinamento está envolvida. Portanto, o espaço de armazenamento pode se tornar um desafio se estivermos trabalhando com grandes conjuntos de dados.

A árvore de decisão, no entanto, pode classificar rapidamente novos exemplos. Você está apenas executando uma série de comparações booleanas.


2

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):
tipos de árvores de decisão A partir daqui: http://www.simafore.com/blog/bid/62482/2-main-differences-between-classification-and-regression-trees

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.