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

Звучит слишком сложно? Давайте разберем оба алгоритма на простые термины и отметим различия.

Оглавление

· Что такое ближайший сосед K (KNN)?
Визуализация алгоритма KNN
Работа алгоритма KNN
· Что такое K означает кластеризацию?
K означает визуализацию алгоритма
Работа K означает алгоритм
· K означает кластеризацию и K ближайшего соседа: в чем разница?
· Вывод< br /> · Часто задаваемые вопросы

Что такое ближайший сосед K (KNN)?

Судя по названию, в KNN мы ищем определенное количество точек (k), которые являются ближайшими соседями к определенной точке с точки зрения расстояния. Это контролируемый алгоритм обучения, означающий, что все «соседи» являются помеченными входами.

Визуализация алгоритма KNN

Представьте, что у вас есть несколько точек, каждая из которых принадлежит определенному классу. Для простоты предположим, что есть два класса: A и B, поэтому каждая точка принадлежит либо к классу A, либо к B. Все точки имеют определенные значения признаков.

Например,

Если класс A — это класс кофейных кружек, а B — класс чайных чашек, то они будут иметь некоторые отличительные особенности. Например, рост, вес и т. д. Теперь другая питьевая посуда имеет специфические особенности и может принадлежать только к одному из двух классов.

Но как мы узнаем, к какому классу он принадлежит? Вот тут-то и приходит на помощь KNN!

Работа алгоритма KNN

Возвращаясь к нашей аналогии с точкой, мы можем выполнить следующие шаги, чтобы выяснить, принадлежит ли новая точка классу A или B.

  1. Постройте все точки на графике, где оси представляют собой функции. В нашем примере осями будут рост и вес, а все точки будут построены на основе значений их признаков.
  2. Найдите евклидово расстояние всех точек классов A и B с новой точкой.
  3. Теперь объединим все расстояния в один массив и отсортируем все расстояния в порядке возрастания.
  4. Выберите любое значение k, скажем, 3, и выберите три верхних значения из массива расстояний.
  5. Проанализируйте категорию каждой ценности и примите решение на основе большинства голосов. Например, если k равно 3, из наименьших трех значений расстояния, если 2 принадлежит расстоянию от точек класса B, то класс B является ответом.

Итак, вот как мы выполняем классификацию, используя K ближайших соседей.

Теперь давайте поговорим об алгоритме кластеризации K означает. И тогда мы можем увидеть контраст между ними.

Что такое K означает кластеризацию?

Судя по названию, в этом алгоритме мы ищем «k» групп, называемых кластерами. Это алгоритм обучения без учителя, что означает, что ни одна из точек не помечена, и мы пытаемся сгруппировать их, чтобы дать каждой группе метку.

K означает визуализацию алгоритма

Представьте, что у вас есть несколько баллов. Предположим, что существует два класса: A и B, поэтому каждая точка принадлежит либо A, либо B. Все точки имеют определенные значения признаков. Но здесь нам нужно выяснить, какая точка к какому классу относится.

Например,

Предположим, некоторые питьевые принадлежности имеют разный вес и высоту. Нет, мы хотим разделить их на два класса: кофейные кружки и чайные чашки.

Но как мы узнаем, какая посуда к какому классу принадлежит? Вот здесь нам и нужен алгоритм K означает!

Работа K означает алгоритм

Возвращаясь к нашей аналогии с точками, мы можем выполнить следующие шаги, чтобы определить, какие точки принадлежат классу A, а какие — классу B.

  1. Случайным образом выберите значение для k. Это указывает, сколько кластеров мы хотим создать. Например, если я хочу разделить точки на 3 класса, мы примем k за 3.
  2. Выберите любое количество k точек в качестве центроидов кластеров.
  3. Рассчитайте расстояние каждой точки данных с центроидами и назначьте точку данных ближайшему кластеру на основе расстояния с центроидом.
  4. Теперь определите среднее значение всех точек в каждом кластере отдельно; это будут наши новые центроиды.
  5. Повторите шаги 3 и 4. Повторяйте до тех пор, пока не возникнет ошибка от 1 до 2% для значения центроида двух последовательных итераций.

После достижения сходимости точки разбиваются на k кластеров.

Итак, вернемся к нашему первоначальному вопросу.

K означает кластеризацию и K ближайшего соседа: в чем разница?

Разница между k ближайшим соседом и k средними значениями очевидна.

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

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

Вывод

Вопрос о выборе между K ближайшего соседа и K средним всегда будет зависеть от типа доступных входных данных и намерения использования алгоритма. Надеюсь, статья прояснит разницу и облегчит выбор.

Часто задаваемые вопросы

Что означает буква «k» в букве «k»?

В k означает, что кластеризация k относится к количеству кластеров, которые необходимо создать.

Что такое «k» в слове «k ближайшего соседа»?

В k ближайших соседей k относится к количеству соседей, на основе которого должно быть принято решение о классификации.

Как выбрать значение k из k ближайшего соседа?

K может быть любым значением, большим единицы, но предпочтительно, чтобы значение k было нечетным числом. Причина в том, чтобы исключить возможность связи между классами. Также общепринятой практикой является выбор k от 3 до 10 на основе доступных точек данных.

Как выбрать значение k?

K может иметь любое значение больше единицы, но предпочтительнее брать меньшее значение k, поскольку оно обеспечивает лучшую кластеризацию. Обычно k принимают от 2 до 10 в зависимости от размера набора данных.