Каковы основные различия между K-средних и K-ближайшими соседями?

86

Я знаю, что k-means не контролируется и используется для кластеризации и т. Д., А k-NN контролируется. Но я хотел узнать конкретные различия между ними?

nsc010
источник
1
Краткое сравнение: baoqiang.org/?p=579
Франк Дернонкур

Ответы:

106

Это совершенно разные методы. Тот факт, что они оба имеют букву K в своем названии, является совпадением.

K-means - это алгоритм кластеризации, который пытается разбить набор точек на K наборов (кластеров) так, чтобы точки в каждом кластере были ближе друг к другу. Это без присмотра, потому что точки не имеют внешней классификации.

K-ближайшие соседи - это алгоритм классификации (или регрессии), который для определения классификации точек объединяет классификацию K ближайших точек. Это контролируется, потому что вы пытаетесь классифицировать точку на основе известной классификации других точек.

побитовое
источник
6
Я думаю, что есть больше сходства, чем этот парень дает кредит. Они оба используют дистанционные методы для кластеризации и классификации входов соответственно. Это часто, почему они преподаются вместе, и почему вопросы размерности обсуждаются в связи с ними. Различные методы расстояния могут быть применены к обоим. На самом деле есть много общего.
eljusticiero67
@ eljusticiero67 Конечно, они используются для классификации входов, это упоминается OP. И большинство классических методов обучения основаны на расстоянии, так что это тоже не удивительно. Обратите внимание, что ОП интересовали различия. Также я понял, что OP подразумевает, что может быть сходство из-за K в обоих именах.
поразрядно
12

Как отметил Bitwise в своем ответе , k-means является алгоритмом кластеризации. Если речь идет о k-ближайших соседях (k-NN), терминология немного нечеткая:

  • в контексте классификации это алгоритм классификации, как также отмечено в вышеупомянутом ответе

  • в общем случае это проблема , для которой существуют различные решения (алгоритмы)

Таким образом, в первом контексте выражение «классификатор k-NN» может фактически означать различные базовые конкретные алгоритмы, которые решают проблему k-NN, и их результат интерпретируется для целей классификации.

Это две разные вещи, но вам может показаться интересным, что алгоритм k-средних является одним из возможных методов решения проблемы k-NN (Мариус Муджа и Дэвид Дж. Лоу, «Быстрые приближенные ближайшие соседи с автоматической настройкой алгоритма» , в Международная конференция по теории компьютерного зрения и приложениям (VISAPP'09), 2009 PDF )

BartoszKP
источник
0

Вы можете иметь контролируемые K-средства. Вы можете построить центроиды (как в k-средних) на основе ваших помеченных данных. Ничто не останавливает тебя. Если вы хотите улучшить это, евклидово пространство и евклидово расстояние могут не дать вам наилучших результатов. Вам нужно будет выбрать ваше пространство (например, римановым) и определить расстояние между точками (и даже определить «точку»). Последние два являются темами исследований, и они также зависят от типа (свойств) данных (сигнала), которыми вы располагаете.

Антон Андреев
источник
-2

K-means может создать информацию о кластере для соседних узлов, в то время как KNN не может найти кластер для данного соседнего узла.

Rti
источник
-2

k Средства могут использоваться в качестве фазы обучения перед развертыванием knn на фактической стадии классификации. K означает создает классы, представленные центроидом и меткой класса образцов, принадлежащих каждому классу. knn использует эти параметры, а также число k, чтобы классифицировать невидимый новый образец и назначить его одному из k классов, созданных алгоритмом K средних

mohatef
источник