Машинное обучение, Data Science

Кластеризация: что это такое и когда ее использовать?

Полное руководство по K-средним, K-средним ++ и DBSCAN.

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

Таблица содержания

1. К-средние

Знакомство с K-means

⦁ Как работают K-средства?

⦁ Научно-техническая реализация K-means

⦁ Плюсы и минусы K-средних

2. K-средство ++

⦁ Как работает k-means ++?

⦁ Научно-техническая реализация K-means ++

3. DBSCAN

  • Как работает DBSCAN?
  • Псевдокод для DBSCAN
  • Научная реализация DBSCAN
  • Плюсы и минусы DBSCAN

K-средние

Введение в K-means

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

Конечная цель K-средних - кластеризация, давайте углубимся в кластеризацию.

Иногда нам просто нужно систематизировать данные, и тут в игру вступает кластеризация. Его можно использовать как для помеченных, так и для немаркированных данных.

Все слышали о Netflix и его нескончаемой компиляции контента.

Контент хорошо организован по разным жанрам, таким как комедия, драма, триллер и т. Д.

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

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

Именно так работает K-means.

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

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

Как работают К-средства?

«К» в К-средних обозначает количество кластеров. Этот алгоритм должен сходиться к решению после нескольких итераций.

Цель: разделить данные между некоторым количеством «K» кластеров.

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

Функция стоимости:

где m = все точки

K = все кластеры

wik = 1 для точки данных, если ith принадлежит кластеру k;

в противном случае wik = 0.

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

Это задача минимизации, состоящая из двух частей:

Сначала мы минимизируем J w.r.t. wik и лечить μk исправлено. Затем мы минимизируем J относительно μk и лечить wik исправлено.

  1. E-step: мы различаем J по сравнению с другими. сначала wik и обновите назначения кластера (E-step).

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

2. M-шаг: Затем мы дифференцируем J по сравнению с μk и повторно вычислите центроиды после кластерных назначений из предыдущего шага.

Вкратце, сначала мы получим wik, используя E-step, и он классифицирует точку как 0 или 1. Если wik = 1, мы перейдем к M-step и, используя μk, мы получим среднее значение всех точек, чтобы получить обновленный кластерный центр.

Научная реализация K-means

Чтобы указать количество кластеров, есть два метода:

  1. Прямой метод: просто нанесите точки данных и посмотрите, подскажет ли он.
  2. Значение инерции. Идея хорошей кластеризации заключается в небольшом значении инерции и небольшом количестве кластеров.

Величина инерции обратно пропорциональна количеству кластеров. Итак, здесь есть компромисс. Практическое правило: точка изгиба на графике инерции является оптимальным выбором, поскольку после этого изменение значения инерции не имеет значения.

Плюсы и минусы K-means

Плюсы:

  1. Легко реализовать.
  2. Масштабируемость для больших данных
  3. Обеспечьте конвергенцию.

Минусы:

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

K-означает ++

Введение в K-means ++

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

K-средство ++ избегает этого препятствия, выбирая центроиды, которые статистически близки к реальным центрам.

Sci-kit learn по умолчанию использует k-means ++.

Реализация Sci-kit для K-means ++

Но K-means ++ по-прежнему не подходит для нелинейных точек данных.

DBSCAN (Пространственная кластеризация приложений с шумом на основе плотности)

Введение в DBSCAN

DBSCAN - это решение для кластеризации нелинейных точек данных.

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

Он начинается с исследования небольшой области, если плотность этой области «достаточно приличная», она рассматривается как часть кластера и исследует соседей, чтобы увеличить пространственную область кластера.

Работает по одному правилу: если расстояние соседа ‹пороговое расстояние, то оно добавляется в семейство.

Псевдокод для DBSCAN

  1. Найдите все соседние точки в eps и для каждой неназначенной точки ядра создайте новый кластер.
  2. Рекурсивно найдите все точки, связанные плотностью, и добавьте их в тот же кластер, что и центральная точка (центроид).
  3. Повторите процесс для неназначенного соседа.

Реализация Sci-kit

Допустимые параметры:

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

minPoints: минимальное количество точек для образования плотной области, например если мы установим для параметра minPoints значение 8, то нам понадобится как минимум 8 точек, чтобы сформировать плотную область (кластер).

Плюсы и минусы DBSCAN

Плюсы DBSCAN:

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

Минусы DBSCAN:

  • DBSCAN борется с кластерами одинаковой плотности .
  • DBSCAN неэффективен с данными высокой размерности.
  • Медленнее, чем K-средних.

Заключение

Надеюсь, эта статья поможет вам лучше понять кластеризацию, а также поможет вам в ее практическом использовании.

Как всегда, большое спасибо за чтение, и, пожалуйста, поделитесь этой статьей, если вы нашли ее полезной!

Не стесняйтесь подключаться:

LinkedIn ~ https://www.linkedin.com/in/dakshtrehan/

Instagram ~ https://www.instagram.com/_daksh_trehan_/

Github ~ https://github.com/dakshtrehan

Следите за дальнейшими блогами по машинному обучению / глубокому обучению.

Средний ~ https://medium.com/@dakshtrehan

Хотите узнать больше?





















Ваше здоровье!