Para muitos projetos de aprendizado de máquina que realizamos, começamos com o classificador k vizinho mais próximo. Este é um classificador inicial ideal, pois geralmente temos tempo suficiente para calcular todas as distâncias e o número de parâmetros é limitado (k, distância métrica e ponderação)
No entanto, isso geralmente tem o efeito de mantermos o classificador knn, pois mais adiante no projeto não há espaço para alternar para outro classificador. O que seria um bom motivo para tentar um novo classificador. Os óbvios são restrições de memória e tempo, mas há casos em que outro classificador pode realmente melhorar a precisão?
Respostas:
O k-NN generaliza em um sentido muito restritivo. Simplesmente usa anteriores de suavidade (ou suposição de continuidade). Essa suposição implica que os padrões que estão próximos no espaço de recurso provavelmente pertencem à mesma classe. Nenhuma regularidade funcional na distribuição de padrões pode ser recuperada pelo k-NN.
Portanto, requer amostras de treinamento representativas, que podem ser extremamente grandes, especialmente em casos de espaços de características altamente dimensionais. Pior, essas amostras podem estar indisponíveis. Conseqüentemente, ele não pode aprender invariantes. Se os padrões puderem ser submetidos a algumas transformações sem alterar seus rótulos, e a amostra de treinamento não contiver padrões transformados de todas as maneiras admissíveis, o k-NN nunca reconhecerá padrões transformados que não foram apresentados durante o treinamento. Isso é verdade, por exemplo, para imagens deslocadas ou giradas, se elas não estiverem representadas de alguma forma invariável antes de executar o k-NN. O k-NN não pode sequer abstrair de recursos irrelevantes.
Outro exemplo um tanto artificial está a seguir. Imagine esse padrão pertencente a diferentes classes distribuídas periodicamente (por exemplo, de acordo com seno - se for menor que 0, os padrões pertencerão a uma classe e, se for maior, os padrões pertencerão a outra classe). O conjunto de treinamento é finito. Portanto, ele estará localizado em uma região finita. Fora desta região, o erro de reconhecimento será de 50%. Pode-se imaginar a regressão logística com funções básicas periódicas que terão um desempenho muito melhor neste caso. Outros métodos serão capazes de aprender outras regularidades na distribuição de padrões e extrapolar bem.
Portanto, se alguém suspeitar que o conjunto de dados disponível não é representativo e a invariância a algumas transformações de padrões deve ser alcançada, esse é o caso, no qual se deve ir além do k-NN.
fonte
Se você se restringir à complexidade computacional, as árvores de decisão (Quinal, 1986) são difíceis de superar (especialmente quando uma estrutura oferece conversão direta do modelo DT para várias
if
instruções - como o Accord.NET ).Para dados de alta dimensão, a noção de distância, na qual se baseia o k-NN, se torna inútil (Kriegel, Kröger, Zimek, 2009) (também: artigo da Wikipedia ). Portanto, outros classificadores, como SVM (Corter, Vapnik, 1995) ou Random Forests (Breiman, 2001) , podem ter um desempenho melhor.
Referências:
Kriegel, Hans-Peter; Kröger, Pares; Zimek, Arthur (2009), "Agrupando dados de alta dimensão: uma pesquisa sobre cluster de subespaço, cluster baseado em padrões e clustering de correlação", ACM Transactions on Knowledge Discovery from Data (Nova York, NY: ACM) 3 (1): 1–58
Cortes, Corinna; e Vapnik, Vladimir N .; "Redes de vetores de suporte", Machine Learning, 20, 1995
Leo Breiman. 2001. Florestas aleatórias. Mach. Aprender. 45, 1 (outubro de 2001), 5-32.
JR Quinlan. 1986. Indução de árvores de decisão. Mach. Aprender. 1, 1 (março de 1986), 81-106.
fonte
kNN é útil para grandes amostras de dados
No entanto, suas desvantagens são:
Geralmente, só é eficaz se os dados de treinamento forem grandes e o treinamento for muito rápido.
fonte