Quais são as principais diferenças entre os meios K e os vizinhos K mais próximos?

86

Eu sei que o k-means não é supervisionado e é usado para agrupar etc, e que o k-NN é supervisionado. Mas eu queria saber diferenças concretas entre os dois?

nsc010
fonte
1
Uma comparação concisa: baoqiang.org/?p=579
Franck Dernoncourt

Respostas:

106

Estes são métodos completamente diferentes. O fato de ambos terem a letra K em seu nome é uma coincidência.

K-means é um algoritmo de agrupamento que tenta particionar um conjunto de pontos em conjuntos K (agrupamentos), de modo que os pontos em cada agrupamento tendem a estar próximos um do outro. Não é supervisionado porque os pontos não têm classificação externa.

K vizinhos mais próximos é um algoritmo de classificação (ou regressão) que, para determinar a classificação de um ponto, combina a classificação dos K ​​pontos mais próximos. É supervisionado porque você está tentando classificar um ponto com base na classificação conhecida de outros pontos.

Bit a bit
fonte
6
Eu acho que há mais semelhança do que esse cara está dando crédito. Ambos usam métodos de distância para agrupar e classificar entradas, respectivamente. É frequentemente por isso que eles são ensinados juntos e por que questões de dimensionalidade são discutidas em relação a eles. Vários métodos de distância podem ser aplicados a ambos. De fato, existem muitas semelhanças.
eljusticiero67
@ eljusticiero67 é claro que eles são usados ​​para classificar entradas, isso é mencionado pelo OP. E a maioria dos métodos clássicos de aprendizado são baseados em distância, portanto, isso também não é surpreendente. Observe que o OP estava interessado nas diferenças. Também entendi como se OP estivesse implicando que poderia haver similaridade devido ao K nos dois nomes.
Bitwise
12

Conforme observado por Bitwise em sua resposta , k-means é um algoritmo de agrupamento. Se se trata de k-vizinhos mais próximos (k-NN), a terminologia é um pouco confusa:

  • no contexto da classificação, é um algoritmo de classificação, como também observado na resposta acima mencionada

  • em geral, é um problema , para o qual existem várias soluções (algoritmos)

Portanto, no primeiro contexto, dizer "classificador k-NN" pode realmente significar vários algoritmos concretos subjacentes que resolvem o problema do k-NN, e seu resultado é interpretado para a finalidade da classificação.

Essas são duas coisas diferentes, mas você pode achar interessante que o algoritmo k-means seja um dos vários métodos possíveis para solucionar o problema do k-NN (Marius Muja e David G. Lowe, "Vizinhos mais próximos aproximados com configuração automática de algoritmo" , em Conferência Internacional sobre Teoria e Aplicações da Visão Computacional (VISAPP'09), 2009 PDF )

BartoszKP
fonte
0

Você pode ter um k-means supervisionado. Você pode criar centróides (como em k-means) com base nos dados rotulados. Nada para você. Se você quiser melhorar isso, o espaço euclidiano e a distância euclidiana podem não fornecer os melhores resultados. Você precisará escolher seu espaço (poderia ser o espaço Riemanniano, por exemplo) e definir a distância entre os pontos (e até definir um "ponto"). Os dois últimos são tópicos de pesquisa e também dependem do tipo (propriedades) de dados (sinal) que você possui.

Anton Andreev
fonte
-2

O K-means pode criar as informações do cluster para nós vizinhos, enquanto o KNN não pode encontrar o cluster para um determinado nó vizinho.

Rti
fonte
-2

k Os meios podem ser usados ​​como a fase de treinamento antes do knn ser implantado no estágio de classificação real. K significa cria as classes representadas pelo centróide e pelo rótulo da classe das amostras pertencentes a cada classe. O knn usa esses parâmetros e o número k para classificar uma nova amostra invisível e atribuí-la a uma das k classes criadas pelo algoritmo K significa

mohatef
fonte