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

Посмотрим на простоту здесь:

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

Победитель - это просто неудачник, который попробовал еще раз. Продолжайте пытаться.

Что такое кластеризация?

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

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

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

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

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

На сегодняшний день существует более 100 алгоритмов кластеризации.
Некоторые из наиболее часто используемых алгоритмов - это k-среднее, Иерархический, 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. Максимальное расстояние: евклидово расстояние между двумя точками данных в двух наиболее удаленных друг от друга кластерах.
  • Сосредоточьтесь на центроидном расстоянии прямо сейчас!

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

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

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

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

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

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

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

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

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

  • K-Means является итеративным по своей природе, и его легко реализовать.

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

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

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

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

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

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

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

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

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

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

Как рассчитать центроид кластера?

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

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

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

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

  • Оценка силуэта: используется для изучения расстояния между результирующими кластерами. На графике силуэта отображается степень близости каждой точки в одном кластере к точкам в соседних кластерах. C лизните здесь для полного объяснения метода.

K-средства против иерархии

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

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

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

Сноски

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

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

Соавторы: Нишант Радж и Пранджал Ханделвал