• Как работает система рекомендаций?
  • Как компания выбирает место для своего нового магазина, чтобы получить максимальную прибыль?

Это алгоритм обучения без учителя, который группирует заданные данные таким образом, что точки данных с похожим поведением объединяются в одну группу.

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

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

Типы кластеризации

На сегодняшний день существует более 100 алгоритмов кластеризации.
Некоторыми из наиболее часто используемых являются k-Means, Hierarchical, DBSCAN и OPTICS. Два из них были рассмотрены здесь:

1. Иерархическая кластеризация

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

Название говорит само за себя, иерархическая кластеризация формирует иерархию кластеров, которую можно изучить, визуализируя дендограмму.

Как измерить близость точек?

  • Евклидово расстояние: ||a-b||2 = √(Σ(ai-bi))
  • Квадрат евклидова расстояния: ||a-b||22 = Σ((ai-bi)²)
  • Манхэттенское расстояние: ||a-b||¹ = Σ|ai-bi|
  • Максимальное расстояние:||a-b||^inf = maxi|ai-bi|
  • Расстояние Махаланобиса: √((a-b)T S-1 (-b)) {где s : ковариационная матрица}

Как рассчитать расстояние между двумя кластерами?

  1. Центроидное расстояние: евклидово расстояние между средним значением точек данных в двух кластерах.
  2. Минимальное расстояние: евклидово расстояние между двумя точками данных в двух ближайших друг к другу кластерах.
  3. Максимальное расстояние: евклидово расстояние между двумя точками данных в двух кластерах, наиболее удаленных друг от друга.
  • Сосредоточьтесь на Centroid Distance прямо сейчас!

Объяснение алгоритма

  1. Пусть будет N точек данных. Во-первых, эти N точки данных назначаются N различным кластерам с одной точкой данных в каждом кластере.
  2. Затем две точки данных с минимальным евклидовым расстояниемe между ними объединяются в один кластер.
  3. Затем два кластера с минимальным расстоянием между центрами объединяются в один кластер.
  4. Этот процесс повторяется до тех пор, пока не останется один кластер, что формирует иерархию кластеров.

Сколько кластеров сформировать?

  1. Визуализация дендрограммы. Лучший выбор из нет. кластеров нет. вертикальных линий, которые могут быть разделены горизонтальной линией, которая может пересекать максимальное расстояние по вертикали, не пересекаясь с другим кластером.
    Например, в приведенном ниже случае лучший выбор для нет. кластеров будет 4.
  2. Интуиция и предварительное знание набора данных.

Хороший кластерный анализ

  • Точки данных в одном кластере имеют схожий профиль. Статистически проверьте стандартное отклонение для каждой входной переменной в каждом кластере. Идеальное разделение в случае кластерного анализа достигается редко. Следовательно, даже расстояние в одно стандартное отклонение между двумя средними значениями кластера считается хорошим разделением.
  • Хорошее распределение точек данных по кластерам: для этого требования нет стандартов. Но безопасным диапазоном для каждого кластера можно считать минимум 5% и максимум 35% от общей численности населения.

Кластеризация K-средних

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

Окончательные кластеры зависят от начальной конфигурации центроидов. Таким образом, они должны быть инициализированы как можно дальше друг от друга.

  • K-Means носит итеративный характер и проста в реализации.

Объяснение алгоритма

  • Пусть будет N точек данных. Сначала в нашем наборе данных инициализируется Kцентроидов, представляющих Kразличных кластеров.

  • Теперь каждая из N точек данных назначается ближайшему центроиду в наборе данных и объединяется с этим центроидом как единый кластер. Таким образом, каждая точка данных присваивается одному из центроидов.

  • Затем пересчитываются K центроидов кластера, и снова каждая из N точек данных назначается ближайшему центроиду. .

  • Шаг 3 повторяется до тех пор, пока дальнейшее улучшение не станет возможным.

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

Этот алгоритм направлен на минимизацию целевой функции:

Он представляет собой минимизированную сумму евклидова расстояния всех точек данных от центроида кластера.

Как инициализировать центроиды K?

  1. Forgy: случайное назначение K центроидных точек в нашем наборе данных.
  2. Случайное разбиение: случайное назначение каждой точки данных кластеру, а затем переход к оценке позиций центроидов каждого кластера.
  3. KMeans++: используется для небольших наборов данных.
  4. Canopy Clustering: неконтролируемый алгоритм предварительной кластеризации, используемый в качестве шага предварительной обработки для K-средних или любой иерархической кластеризации. Это помогает ускорить операции кластеризации больших наборов данных.

Как рассчитать центр тяжести кластера?

Просто среднее значение всех точек данных в этом кластере.

Как найти значение K для набора данных?

В кластеризации K-средних значение Kдолжно быть указано заранее. Его можно определить любым из следующих методов:

  • Метод локтя. Кластеризация набора данных выполняется для различных значений и SSE (сумма квадратов ошибок) рассчитывается для каждого значения K.
    Затем строится график между K и SSE. Сформированный участок принимает форму руки. На графике есть точка, где SSE незначительно уменьшается с увеличением K. Это представлено локтем руки и выбрано в качестве значения K. (ОПТИМАЛЬНО)

  • Silhouette Score: используется для изучения расстояния между результирующими кластерами. График силуэта отображает меру того, насколько близка каждая точка в одном кластере к точкам в соседних кластерах. Щелкните здесь для полного объяснения метода.

К-средние против иерархических

  1. Для больших данных K-средних лучше!
    Временная сложность K-средних линейна, а сложность иерархической кластеризации — линейна. квадратичный.
  2. Результаты воспроизводятся в Hierarchical, а не в K-Means, поскольку они зависят от инициализации центроидов.
  3. K-Means требует предварительных и надлежащих знаний о наборе данных для указания K. В Иерархический мы можем выбрать нет. кластеров путем интерпретации дендрограммы.

использованная литература

  1. Блог AV о кластеризации
  2. Блог на K-Means Ахил Гупта
  3. Машинное обучение Python Себастьяна Рашки

Сноски

Вы становитесь богаче день ото дня. 7 закончилось, еще 5 впереди!
Начните подавать заявки на стажировку. Вы можете качать интервью. Просто придерживайтесь 12A12D.

Спасибо за чтение. :)
И, ❤, если это было хорошим чтением. Наслаждайтесь!

Соавторы: Ахил Гупта и Нишант Радж