Эта статья поможет вам понять еще один алгоритм машинного обучения без учителя для решения проблем кластеризации. Давай начнем.

Вступление

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

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

После того, как у нас есть эти k новых центроидов, необходимо выполнить новую привязку между теми же точками набора данных и ближайшим новым центром. Был создан цикл. В результате этого цикла мы можем заметить, что k центров меняют свое положение шаг за шагом, пока не перестанут происходить изменения или, другими словами, центры больше не будут перемещаться. Наконец, этот алгоритм направлен на минимизацию целевой функции, известной как функция квадрата ошибок, определяемая следующим образом:

  • '|| xi - vj ||' - евклидово расстояние между xi и vj.
  • ci - количество точек данных в ith кластере.
  • c - количество кластерных центров.

Действие к-средств

Пусть
X = [x1, x2, x3, …… .., xn] будет набором точек данных, а
V = [v1, v2, ……., Vc] будет набором центры.

  1. Произвольно выберите центры кластеров ‘c’.
  2. Рассчитайте расстояние между каждой точкой данных и центрами кластеров.
  3. Назначьте точку данных центру кластера, расстояние от которого до центра кластера является минимальным из всех центров кластера.
  4. Пересчитайте новый центр кластера, используя следующую формулу:

где ci представляет количество точек данных в кластере ith.

5. Пересчитайте расстояние между каждой точкой данных и новыми полученными центрами кластеров.

6. Если ни одна точка данных не была переназначена, остановитесь, в противном случае повторите шаг 3.

Мы также можем использовать «метод локтя», чтобы найти «нет». кластеров. (даже если мы это уже знаем), это просто для визуальной проверки. Ниже приведен пример.

Реализация

Реализация использования k-средних в GoogleColab (python) с помощью sklearn.

Преимущества

  1. Алгоритм k-средних является быстрым, надежным и более простым для понимания по сравнению с несколькими другими алгоритмами кластеризации.
  2. Это относительно эффективно: O (tknd), где n - нет. объектов, k нет. кластеров, d - нет. размеров каждого объекта, а t - без итераций. Обычно k, t, d ‹< n.
  3. Дает лучший результат, когда наборы данных различны или хорошо отделены друг от друга.

Недостатки

  1. Меры евклидова расстояния могут неравномерно взвешивать основные факторы.
  2. Алгоритм обучения обеспечивает локальные оптимумы квадратичной функции ошибок.
  3. Случайный выбор центра кластера не может привести к плодотворному результату.
  4. Применимо, только когда определено среднее значение, т. Е. Не подходит для категориальных данных.
  5. Невозможно обработать зашумленные данные и выбросы .
  6. Алгоритм не работает для набора нелинейных данных.
  7. Алгоритм обучения требует априорного указания количества кластерных центров.

Приложения

Алгоритмы K-средних могут использоваться в различных приложениях, таких как сегментация рынка, кластеризация документов, сегментация изображений и т. Д.

Обычно цель кластерного анализа:

  1. Получите четкое представление о структуре данных, с которыми мы имеем дело.
  2. Кластеризация и прогнозирование того, где будут построены разные модели для разных подгрупп, если мы считаем, что поведение разных подгрупп сильно варьируется.

Заключение

Кластеризация Kmeans - один из самых популярных алгоритмов кластеризации, и обычно это первое, что практикующие применяют при решении задач кластеризации, чтобы получить представление о структуре набора данных. Цель средств - сгруппировать точки данных в отдельные неперекрывающиеся подгруппы. Однако он страдает, поскольку геометрические формы кластеров отклоняются от форм. Более того, он также не узнает количество кластеров из данных и требует, чтобы оно было предварительно определено.

Вы можете связаться со мной по адресу:

LinkedIn: https://www.linkedin.com/in/manmohan-dogra-4a6655169/

GitHub: https://github.com/immohann

Twitter: https://twitter.com/immohann