Что такое кластеризация: Обзор алгоритмов кластеризации данных / Хабр

Содержание

Обзор алгоритмов кластеризации данных / Хабр

Приветствую!

В своей дипломной работе я проводил обзор и сравнительный анализ алгоритмов кластеризации данных. Подумал, что уже собранный и проработанный материал может оказаться кому-то интересен и полезен.
О том, что такое кластеризация, рассказал sashaeve в статье «Кластеризация: алгоритмы k-means и c-means». Я частично повторю слова Александра, частично дополню. Также в конце этой статьи интересующиеся могут почитать материалы по ссылкам в списке литературы.

Так же я постарался привести сухой «дипломный» стиль изложения к более публицистическому.

Понятие кластеризации

Кластеризация (или кластерный анализ) — это задача разбиения множества объектов на группы, называемые кластерами. Внутри каждой группы должны оказаться «похожие» объекты, а объекты разных группы должны быть как можно более отличны. Главное отличие кластеризации от классификации состоит в том, что перечень групп четко не задан и определяется в процессе работы алгоритма.

Применение кластерного анализа в общем виде сводится к следующим этапам:

  1. Отбор выборки объектов для кластеризации.
  2. Определение множества переменных, по которым будут оцениваться объекты в выборке. При необходимости – нормализация значений переменных.
  3. Вычисление значений меры сходства между объектами.
  4. Применение метода кластерного анализа для создания групп сходных объектов (кластеров).
  5. Представление результатов анализа.

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

Итак, как же определять «похожесть» объектов? Для начала нужно составить вектор характеристик для каждого объекта — как правило, это набор числовых значений, например, рост-вес человека. Однако существуют также алгоритмы, работающие с качественными (т.н. категорийными) характеристиками.

После того, как мы определили вектор характеристик, можно провести нормализацию, чтобы все компоненты давали одинаковый вклад при расчете «расстояния». В процессе нормализации все значения приводятся к некоторому диапазону, например, [-1, -1] или [0, 1].

Наконец, для каждой пары объектов измеряется «расстояние» между ними — степень похожести. Существует множество метрик, вот лишь основные из них:

  1. Евклидово расстояние
    Наиболее распространенная функция расстояния. Представляет собой геометрическим расстоянием в многомерном пространстве:

  2. Квадрат евклидова расстояния
    Применяется для придания большего веса более отдаленным друг от друга объектам. Это расстояние вычисляется следующим образом:

  3. Расстояние городских кварталов (манхэттенское расстояние)
    Это расстояние является средним разностей по координатам. В большинстве случаев эта мера расстояния приводит к таким же результатам, как и для обычного расстояния Евклида. Однако для этой меры влияние отдельных больших разностей (выбросов) уменьшается (т.к. они не возводятся в квадрат). Формула для расчета манхэттенского расстояния:

  4. Расстояние Чебышева
    Это расстояние может оказаться полезным, когда нужно определить два объекта как «различные», если они различаются по какой-либо одной координате. Расстояние Чебышева вычисляется по формуле:

  5. Степенное расстояние
    Применяется в случае, когда необходимо увеличить или уменьшить вес, относящийся к размерности, для которой соответствующие объекты сильно отличаются. Степенное расстояние вычисляется по следующей формуле:
    ,
    где r и p – параметры, определяемые пользователем. Параметр p ответственен за постепенное взвешивание разностей по отдельным координатам, параметр r ответственен за прогрессивное взвешивание больших расстояний между объектами. Если оба параметра – r и p — равны двум, то это расстояние совпадает с расстоянием Евклида.

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

Для себя я выделил две основные классификации алгоритмов кластеризации.
  1. Иерархические и плоские.
    Иерархические алгоритмы (также называемые алгоритмами таксономии) строят не одно разбиение выборки на непересекающиеся кластеры, а систему вложенных разбиений. Т.о. на выходе мы получаем дерево кластеров, корнем которого является вся выборка, а листьями — наиболее мелкие кластера.
    Плоские алгоритмы строят одно разбиение объектов на кластеры.
  2. Четкие и нечеткие.
    Четкие (или непересекающиеся) алгоритмы каждому объекту выборки ставят в соответствие номер кластера, т.е. каждый объект принадлежит только одному кластеру. Нечеткие (или пересекающиеся) алгоритмы каждому объекту ставят в соответствие набор вещественных значений, показывающих степень отношения объекта к кластерам. Т.е. каждый объект относится к каждому кластеру с некоторой вероятностью.

Объединение кластеров

В случае использования иерархических алгоритмов встает вопрос, как объединять между собой кластера, как вычислять «расстояния» между ними. Существует несколько метрик:
  1. Одиночная связь (расстояния ближайшего соседа)
    В этом методе расстояние между двумя кластерами определяется расстоянием между двумя наиболее близкими объектами (ближайшими соседями) в различных кластерах. Результирующие кластеры имеют тенденцию объединяться в цепочки.
  2. Полная связь (расстояние наиболее удаленных соседей)
    В этом методе расстояния между кластерами определяются наибольшим расстоянием между любыми двумя объектами в различных кластерах (т.е. наиболее удаленными соседями). Этот метод обычно работает очень хорошо, когда объекты происходят из отдельных групп. Если же кластеры имеют удлиненную форму или их естественный тип является «цепочечным», то этот метод непригоден.
  3. Невзвешенное попарное среднее
    В этом методе расстояние между двумя различными кластерами вычисляется как среднее расстояние между всеми парами объектов в них. Метод эффективен, когда объекты формируют различные группы, однако он работает одинаково хорошо и в случаях протяженных («цепочечного» типа) кластеров.
  4. Взвешенное попарное среднее
    Метод идентичен методу невзвешенного попарного среднего, за исключением того, что при вычислениях размер соответствующих кластеров (т.е. число объектов, содержащихся в них) используется в качестве весового коэффициента. Поэтому данный метод должен быть использован, когда предполагаются неравные размеры кластеров.
  5. Невзвешенный центроидный метод
    В этом методе расстояние между двумя кластерами определяется как расстояние между их центрами тяжести.
  6. Взвешенный центроидный метод (медиана)
    Этот метод идентичен предыдущему, за исключением того, что при вычислениях используются веса для учета разницы между размерами кластеров. Поэтому, если имеются или подозреваются значительные отличия в размерах кластеров, этот метод оказывается предпочтительнее предыдущего.

Обзор алгоритмов

Алгоритмы иерархической кластеризации

Среди алгоритмов иерархической кластеризации выделяются два основных типа: восходящие и нисходящие алгоритмы. Нисходящие алгоритмы работают по принципу «сверху-вниз»: в начале все объекты помещаются в один кластер, который затем разбивается на все более мелкие кластеры. Более распространены восходящие алгоритмы, которые в начале работы помещают каждый объект в отдельный кластер, а затем объединяют кластеры во все более крупные, пока все объекты выборки не будут содержаться в одном кластере. Таким образом строится система вложенных разбиений. Результаты таких алгоритмов обычно представляют в виде дерева – дендрограммы. Классический пример такого дерева – классификация животных и растений.

Для вычисления расстояний между кластерами чаще все пользуются двумя расстояниями: одиночной связью или полной связью (см. обзор мер расстояний между кластерами).

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

Алгоритмы квадратичной ошибки

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

где cj — «центр масс» кластера j (точка со средними значениями характеристик для данного кластера).

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

  1. Случайно выбрать k точек, являющихся начальными «центрами масс» кластеров.
  2. Отнести каждый объект к кластеру с ближайшим «центром масс».
  3. Пересчитать «центры масс» кластеров согласно их текущему составу.
  4. Если критерий остановки алгоритма не удовлетворен, вернуться к п. 2.

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

К недостаткам данного алгоритма можно отнести необходимость задавать количество кластеров для разбиения.

Нечеткие алгоритмы

Наиболее популярным алгоритмом нечеткой кластеризации является алгоритм c-средних (c-means). Он представляет собой модификацию метода k-средних. Шаги работы алгоритма:
  1. Выбрать начальное нечеткое разбиение n объектов на k кластеров путем выбора матрицы принадлежности U размера n x k.
  2. Используя матрицу U, найти значение критерия нечеткой ошибки:
    ,
    где ck — «центр масс» нечеткого кластера k:
    .
  3. Перегруппировать объекты с целью уменьшения этого значения критерия нечеткой ошибки.
  4. Возвращаться в п. 2 до тех пор, пока изменения матрицы U не станут незначительными.

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

Суть таких алгоритмов заключается в том, что выборка объектов представляется в виде графа G=(V, E), вершинам которого соответствуют объекты, а ребра имеют вес, равный «расстоянию» между объектами. Достоинством графовых алгоритмов кластеризации являются наглядность, относительная простота реализации и возможность вносения различных усовершенствований, основанные на геометрических соображениях. Основными алгоритмам являются алгоритм выделения связных компонент, алгоритм построения минимального покрывающего (остовного) дерева и алгоритм послойной кластеризации.
Алгоритм выделения связных компонент

В алгоритме выделения связных компонент задается входной параметр R и в графе удаляются все ребра, для которых «расстояния» больше R. Соединенными остаются только наиболее близкие пары объектов. Смысл алгоритма заключается в том, чтобы подобрать такое значение R, лежащее в диапазон всех «расстояний», при котором граф «развалится» на несколько связных компонент. Полученные компоненты и есть кластеры.

Для подбора параметра R обычно строится гистограмма распределений попарных расстояний. В задачах с хорошо выраженной кластерной структурой данных на гистограмме будет два пика – один соответствует внутрикластерным расстояниям, второй – межкластерным расстояния. Параметр R подбирается из зоны минимума между этими пиками. При этом управлять количеством кластеров при помощи порога расстояния довольно затруднительно.

Алгоритм минимального покрывающего дерева

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

Путём удаления связи, помеченной CD, с длиной равной 6 единицам (ребро с максимальным расстоянием), получаем два кластера: {A, B, C} и {D, E, F, G, H, I}. Второй кластер в дальнейшем может быть разделён ещё на два кластера путём удаления ребра EF, которое имеет длину, равную 4,5 единицам.

Послойная кластеризация

Алгоритм послойной кластеризации основан на выделении связных компонент графа на некотором уровне расстояний между объектами (вершинами). Уровень расстояния задается порогом расстояния c. Например, если расстояние между объектами , то .

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

,

где Gt = (V, Et) — граф на уровне сt,
,
сt – t-ый порог расстояния,
m – количество уровней иерархии,
G0 = (V, o), o – пустое множество ребер графа, получаемое при t0 = 1,
Gm = G, то есть граф объектов без ограничений на расстояние (длину ребер графа), поскольку tm = 1.

Посредством изменения порогов расстояния {с0, …, сm}, где 0 = с0 < с1 < …< сm = 1, возможно контролировать глубину иерархии получаемых кластеров. Таким образом, алгоритм послойной кластеризации способен создавать как плоское разбиение данных, так и иерархическое.

Сравнение алгоритмов

Вычислительная сложность алгоритмов
Алгоритм кластеризации Вычислительная сложность
Иерархический O(n2)
k-средних O(nkl), где k – число кластеров, l – число итераций
c-средних
Выделение связных компонент зависит от алгоритма
Минимальное покрывающее дерево O(n2 log n)
Послойная кластеризация O(max(n, m)), где m < n(n-1)/2

Сравнительная таблица алгоритмов
Алгоритм кластеризации Форма кластеров Входные данные Результаты
Иерархический Произвольная Число кластеров или порог расстояния для усечения иерархии Бинарное дерево кластеров
k-средних Гиперсфера Число кластеров Центры кластеров
c-средних Гиперсфера Число кластеров, степень нечеткости Центры кластеров, матрица принадлежности
Выделение связных компонент Произвольная Порог расстояния R Древовидная структура кластеров
Минимальное покрывающее дерево Произвольная Число кластеров или порог расстояния для удаления ребер Древовидная структура кластеров
Послойная кластеризация Произвольная Последовательность порогов расстояния Древовидная структура кластеров с разными уровнями иерархии

Немного о применении

В своей работе мне нужно было из иерархических структур (деревьев) выделять отдельные области. Т.е. по сути необходимо было разрезать исходное дерево на несколько более мелких деревьев. Поскольку ориентированное дерево – это частный случай графа, то естественным образом подходят алгоритмы, основанными на теории графов.

В отличие от полносвязного графа, в ориентированном дереве не все вершины соединены ребрами, при этом общее количество ребер равно n–1, где n – число вершин. Т.е. применительно к узлам дерева, работа алгоритма выделения связных компонент упростится, поскольку удаление любого количества ребер «развалит» дерево на связные компоненты (отдельные деревья). Алгоритм минимального покрывающего дерева в данном случае будет совпадать с алгоритмом выделения связных компонент – путем удаления самых длинных ребер исходное дерево разбивается на несколько деревьев. При этом очевидно, что фаза построения самого минимального покрывающего дерева пропускается.

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

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

Список литературы

1. Воронцов К.В. Алгоритмы кластеризации и многомерного шкалирования. Курс лекций. МГУ, 2007.
2. Jain A., Murty M., Flynn P. Data Clustering: A Review. // ACM Computing Surveys. 1999. Vol. 31, no. 3.
3. Котов А., Красильников Н. Кластеризация данных. 2006.
3. Мандель И. Д. Кластерный анализ. — М.: Финансы и Статистика, 1988.
4. Прикладная статистика: классификация и снижение размерности. / С.А. Айвазян, В.М. Бухштабер, И.С. Енюков, Л.Д. Мешалкин — М.: Финансы и статистика, 1989.
5. Информационно-аналитический ресурс, посвященный машинному обучению, распознаванию образов и интеллектуальному анализу данных — www.machinelearning.ru
6. Чубукова И.А. Курс лекций «Data Mining», Интернет-университет информационных технологий — www.intuit.ru/department/database/datamining
Обзор алгоритмов кластеризации числовых пространств данных / ХабрЗадача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.

В этой статье приведён краткий обзор методов кластеризации числовых пространств данных. Она будет полезна тем, кто только начинает изучать Data Mining и кластерный анализ и поможет сориентироваться в многообразии современных алгоритмов кластеризации и получить о них общее представление. Статья не претендует на полноту изложения материала, напротив, описание алгоритмов в ней максимально упрощено. Для более подробного изучения того или иного алгоритма рекомендуется использовать научную работу, в которой он был представлен (см. список литературы в конце статьи).

Методы разбиения

Наиболее известные представители этого семейства методов – алгоритмы k-means[1] и k-medoids[2]. Они принимают входной параметр k и разбивают пространство данных на k кластеров таких, что между объектами одного кластера сходство максимально, а между объектами разных кластеров минимально. Сходство измеряется по отношению к некоторому центру кластера как дистанция от рассматриваемого объекта до центра. Основное различие между этими методами заключается в способе определения центра кластера.

В алгоритме k-means сходство рассматривается по отношению к центру масс кластера – среднему значению координат объектов кластера в пространстве данных. Сначала произвольно выбираются k объектов, каждый из которых является прототипом кластера и представляет его центр масс. Затем для каждого из оставшихся объектов выполняется присоединение к тому кластеру, с которым сходство больше. После этого центр масс каждого кластера вычисляется заново. Для каждого полученного разбиения рассчитывается некоторая оценочная функция, значения которой на каждом шаге образуют сходящейся ряд. Процесс продолжается до тех пор, пока указанный ряд не сойдётся к своему предельному значению. Иными словами, перемещение объектов из кластера в кластер заканчивается тогда, когда с каждой итерацией кластеры будут оставаться неизменными. Минимизация оценочной функции позволяет сделать результирующие кластеры настолько компактными и раздельными, насколько это возможно. Метод k-means хорошо работает, когда кластеры представляют собой значительно разделённые между собой компактные «облака». Он эффективен для обработки больших объёмов данных, однако не применим для обнаружения кластеров невыпуклой формы или сильно различающегося размера. Более того, метод очень чувствителен к шуму и обособленным точкам пространства, поскольку даже малое количество таких точек может существенно влиять на вычисление центра масс кластера.

Чтобы сократить влияние шума и обособленных точек пространства на результат кластеризации, алгоритм k-medoids, в отличие от k-means, использует для представления центра кластера не центр масс, а представительный объект – один из объектов кластера. Как и в методе k-means, сначала произвольным образом выбирается k представительных объектов. Каждый из оставшихся объектов объединяется в кластер с ближайшим представительным объектом. Затем итеративно для каждого представительного объекта производится его замена произвольным непредставительным объектом пространства данных. Процесс замены продолжается до тех пор, пока улучшается качество результирующих кластеров. Качество кластеризации определяется суммой отклонений между каждым объектом и представительным объектом соответствующего кластера, которую метод стремится минимизировать.То есть, итерации продолжаются до тех пор, пока в каждом кластере его представительный объект не станет медоидом – наиболее близким к центру кластера объектом. Алгоритм плохо масштабируем для обработки больших объёмов данных, но эту проблему решает дополняющий метод k-medoids алгоритм CLARANS [3]. Для кластеризации многомерных пространств на основе CLARANS построен алгоритм PROCLUS [4].

Иерархические методы

Общая идея методов данной группы заключается в последовательной иерархической декомпозиции множества объектов. В зависимости от направления построения иерархии различают дивизимный и агломеративный методы. В случае агломеративного метода (снизу вверх) процесс декомпозиции начитается с того, что каждый объект представляет собой самостоятельный кластер. Затем на каждой итерации пары близлежащих кластеров последовательно объединяются в общий кластер. Итерации продолжаются до тех пор, пока все объекты не будут объединены в один кластер или пока не выполнится некоторое условие остановки. Дивизимный метод (сверху вниз) напротив, подразумевает, что на начальном этапе все объекты объединены в единый кластер. На каждой итерации он разделяется на более мелкие до тех пор, пока каждый объект не окажется в отдельном кластере или не будет выполнено условие остановки. В качестве условия остановки можно использовать пороговое число кластеров, которое необходимо получить, однако обычно используется пороговое значение расстояния между кластерами.

Основная проблема иерархических методов заключается в сложности определения условия остановки таким образом, чтобы выделить «естественные» кластеры и в то же время не допустить их разбиения. Еще одна проблема иерархических методов кластеризации заключается в выборе точки разделения или слияния кластеров. Этот выбор критичен, поскольку после разделения или слияния кластеров на каждом последующем шаге метод будет оперировать только вновь образованными кластерами, поэтому неверный выбор точки слияния или разделения на каком-либо шаге может привести к некачественной кластеризации. Кроме того, иерархические методы не могут быть применены к большим наборам данных, потому как решение о разделении или слиянии кластеров требует анализа большого количества объектов и кластеров, что ведёт к большой вычислительной сложности метода. Примерами алгоритмов, основанных на иерархическом методе являются BIRCH[5] и CHAMELEON[6].

Плотностные методы

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

Алгоритм DBSCAN [7] – один из первых алгоритмов кластеризации плотностным методом. В основе этого алгоритма лежит несколько определений:

  • ε-окрестностью объекта называется окрестность радиуса ε некоторого объекта.
  • Корневым объектом называется объект, ε-окрестность которого содержит не менее некоторого минимального числа MinPts объектов.
  • Объект p непосредственно плотно-достижим из объекта q если p находится в ε-окрестности q и q является корневым объектом.
  • Объект p плотно-достижим из объекта q при заданных ε и MinPts, если существует последовательность объектов p1, …, pn, где p1 = q и pn = p, такая что pi+1 непосредственно плотно достижим из pi, 1 ≤ i ≤ n.
  • Объект p плотно-соединён с объектом q при заданных ε и MinPts, если существует объект o такой, что p и q плотно-достижимы из o.

Для поиска кластеров алгоритм DBSCAN проверяет ε-окрестность каждого объекта. Если ε-окрестность объекта p содержит больше точек чем MinPts, то создаётся новый кластер с корневым объектом p. Затем DBSCAN итеративно собирает объекты непосредственно плотно-достижимые из корневых объектов, которые могут привести к объединению нескольких плотно-достижимых кластеров. Процесс завершается, когда ни к одному кластеру не может быть добавлено ни одного нового объекта.

Хотя, в отличие от методов разбиения, DBSCAN не требует заранее указывать число получаемых кластеров, требуется указание значений параметров ε и MinPts, которые непосредственно влияют на результат кластеризации. Оптимальные значения этих параметров сложно определить, особенно для многомерных пространств данных. Кроме того, распределение данных в таких пространствах часто несимметрично, что не позволяет использовать для их кластеризации глобальные параметры плотности. Для кластеризации многомерных пространств данных на базе DBSCAN был создан алгоритм SUBCLU [8].

Сетевые методы

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

Алгоритм CLIQUE [9], адаптированный под кластеризацию данных высокой размерности, является одним из классических сетевых алгоритмов. Метод основан на том предположении, что если в многомерном пространстве данных распределение объектов не равномерно – встречаются регионы плотности и разрежения, то проекция региона плотности в подпространство с меньшей размерностью будет частью региона плотности в этом подпространстве. Алгоритм CLIQUE производит кластеризацию многомерного пространства данных следующим образом: пространство данных разбивается на не пересекающиеся ячейки фиксированного размера, среди них идентифицируются плотные ячейки – такие, плотность объектов данных в которых превышает заданное пороговое значение. Далее из найденных ячеек формируется пространство, в котором могут существовать плотные ячейки большей размерности. Процесс начинается с одномерных пространств (описанная процедура выполняется для каждого измерения) с последующим переходом к подпространствам более высокой размерности.

Этот алгоритм масштабируем для обработки большого количества данных, однако при большом количестве измерений число рассматриваемых комбинаций растёт нелинейно, следовательно, требуется использовать эвристики для сокращения количества рассматриваемых комбинаций. Кроме того, получаемый результат очень сильно зависит от выбора размера ячейки и порогового значения плотности объектов в ячейке. Это является большой проблемой, поскольку одни и те же значения этих параметров используются при рассмотрении всех комбинаций измерений. Эту проблему решает алгоритм MAFIA [10], работающий по схожему принципу, но использующий адаптивный размер ячеек при разбиении подпространств.

Модельные методы

Методы этого семейства предполагают, что имеется некоторая математическая модель кластера в пространстве данных и стремятся максимизировать сходство этой модели и имеющихся данных. Часто при этом используется аппарат математической статистики.

Алгоритм EM [11] основан на предположении, что исследуемое множество данных может быть смоделировано с помощью линейной комбинации многомерных нормальных распределений. Его целью является оценка параметров распределения, которые максимизируют функцию правдоподобия, используемую в качестве меры качества модели. Иными словами, предполагается, что данные в каждом кластере подчиняются определенному закону распределения, а именно, нормальному распределению. С учетом этого предположения можно определить оптимальные параметры закона распределения – математическое ожидание и дисперсию, при которых функция правдоподобия максимальна. Таким образом, мы предполагаем, что любой объект принадлежит ко всем кластерам, но с разной вероятностью. Тогда задача будет заключаться в «подгонке» совокупности распределений к данным, а затем в определении вероятностей принадлежности объекта к каждому кластеру. Очевидно, что объект должен быть отнесен к тому кластеру, для которого данная вероятность выше.

Алгоритм EM прост и лёгок в реализации, не чувствителен к изолированным объектам и быстро сходится при удачной инициализации. Однако он требует для инициализации указания количества кластеров k, что подразумевает наличие априорных знаний о данных. Кроме того, при неудачной инициализации сходимость алгоритма может оказаться медленной или может быть получен некачественный результат.
Очевидно, что подобные алгоритмы не применимы к пространствам с высокой размерностью, поскольку в этом случае крайне сложно предположить математическую модель распределения данных в этом пространстве.

Концептуальная кластеризация

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

Алгоритм COBWEB [12] – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: P(Ai = vij|Ck), где Ai = vij – пара атрибут-значение, Ck – класс концепта.
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.
Однако COBWEB имеет ряд ограничений. Во-первых, он предполагает, что распределения вероятностей значений различных атрибутов статистически независимы друг от друга. Однако это предположение не всегда верно, потому как часто между значениями атрибутов существует корреляция. Во-вторых, вероятностное представление кластеров делает очень сложным их обновление, особенно в том случае, когда атрибуты имеют большое число возможных значений. Это вызвано тем, что сложность алгоритма зависит не только от количества атрибутов, но и от количества их возможных значений.

Список литературы

  1. MacQueen, J. Some methods for classification and analysis of multivariate observations/ J. MacQueen // In Proc. 5th Berkeley Symp. Оn Math. Statistics and Probability, 1967. -С.281-297.
  2. Kaufman, L. Clustering by means of Medoids, in Statistical Data Analysis Based on the l–Norm and Related Methods / L. Kaufman, P.J. Rousseeuw, Y. Dodge, 1987. -С.405-416.
  3. Ng, R.T. Efficient and Effective Clustering Methods for Spatial Data Mining / R.T. Ng, J. Han // Proc. 20th Int. Conf. on Very Large Data Bases. Morgan Kaufmann Publishers, San Francisco, CA, 1994. -С.144-155.
  4. Aggarwal, C.C. Fast Algorithms for Projected Clustering / C.C. Aggarwal, C. Procopiuc // In Proc. ACM SIGMOD Int. Conf. on Management of Data, Philadelphia, PA, 1999. 12 с.
  5. Zhang, T. BIRCH: An Efficient Data Clustering Method for Very Large Databases / T. Zhang, R. Ramakrishnan, M. Linvy // In Proc. ACM SIGMOD Int. Conf. on Management of Data. ACM Press, New York, 1996. -С.103-114.
  6. Karypis, G. CHAMELEON: A Hierarchical Clustering Algorithm Using Dynamic Modeling / G. Karypis, E.-H. Han, V. Kumar // Journal Computer Volume 32 Issue 8. IEEE Computer Society Press Los Alamitos, CA, 1999. -С.68-75
  7. Ester, M. A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise / M. Ester, H.-P. Kriegel, J. Sander, X. Xu // In Proc. ACM SIGMOD Int. Conf. on Management of Data, Portland, OR, 1996. –С. 226-231.
  8. Kailing, K. Density-Connected Subspace Clustering for High-Dimensional Data / K. Kailing, H.-P. Kriegel, P. Kröger // In Proceedings of the 4th SIAM International Conference on Data Mining (SDM), 2004. -С.246-257.
  9. Agrawal, R. Automatic Subspace Clustering of High Dimensional Data for Data Mining Applications / R. Agrawal, J. Gehrke, D. Gunopulos, P. Raghavan // In Proc. ACM SIGMOD Int. Conf. on Management of Data, Seattle, Washington, 1998. -С.94-105.
  10. Nagesh, H. MAFIA: Efficient and Scalable Subspace Clustering for Very Large Data Sets / H. Nagesh, S. Goil, A. Choudhary // Technical Report Number CPDC-TR-9906-019, Center for Parallel and Distributed Computing, Northwestern University, 1999. 20 с.
  11. Demster, A. Maximum Likelihood from Incomplete Data via the EM Algorithm /A.P. Demster, N.M. Laird, D.B. Rubin //JOURNAL OF THE ROYAL STATISTICAL SOCIETY, SERIES B, Vol. 39, No. 1, 1977. -С.1-38.
  12. Fisher, D.H. Knowledge acquisition via incremental conceptual clustering / D.H. Fisher // Machine Learning 2, 1987. -С.139-172.
расскажи мне, что ты покупаешь, и я скажу кто ты / Блог компании datawiz.io / Хабр

Задача Datawiz.io: провести кластеризацию клиентов программы лояльности в ритейле.

Кластеризация — это метод поиска закономерностей, предназначенный для разбиения совокупности объектов на однородные группы (кластеры) или поиска существующих структур в данных.

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

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

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

Решение: Machine Learning позволяет пойти от обратного, от личных предпочтений — к персоне. Мы в Datawiz.io используем кластеризацию как метод группирования клиентов по данным о их поведении – покупках, банковских транзакциях, кредитных историях.

Для кластеризации массива данных (чеки, данные по программах лояльности) мы используем алгоритм K-means. Он хорошо масштабируется и оптимизируется под Hadoop.

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

Итак, пошагово.

1. Clean Datа.


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

2. Формируем матрицу с входными данными.


Важно: Результаты кластеризации очень зависят от периода времени, по которому она проводится. Если выберем кроткий период — увидим текущие тренды.

Например, проведя кластеризацию перед Новым годом, увидим кластеры, которые не видны на длительном промежутке времени. (Скажем, кластер “Любители “Оливье” и “Селедки под шубой”). Кластеризация за длительный период позволит увидеть картину в целом, то есть клиентов со стабильным поведением (“лайфстайл”). “Студенты”, “Домохозяйки”, “Пенсионеры” и т.д.

Например, ритейлер хочет провести кластеризацию по программе лояльности за полгода.
У магазина есть чеки Васи, который за полгода купил 1 хлеб, 2 молока и 1 батон; и чеки Оли — она купила 3 хлеба, 5 молока и 2 батона за полгода и т.д.

Значит матрица для этого ритейлера будет выглядеть так:

Для ритейлера в среднем, features = 15 тыс. SKU, а samples = 60 тыс. клиентов.

Возьмем каждого отдельно клиента, например Васю со всеми его чеками за полгода. В зависимости от количества вхождений всех товаров по всех его чеках, разместим Васю (и других) на графике, где:

количество осей = количеству товаров (features),

количество точек = количеству клиентов (samples), участвующих в программе лояльности.

Наглядное (и очень схематичное:) изображение:

Но выглядеть результат кластеризации алгоритмом k-means будет так:

Также можно проводить кластеризацию по разных уровнях категоризации товаров (feature reduction), тогда матрица будет выглядеть так:

После того, как матрица сформирована, можно переходить к выбору количества кластеров.

3. Выбираем оптимальное количество кластеров.


Количество кластеров мы выбираем экспериментальным путем, исходя из собственного опыта. Малое количество кластеров будет малоэффективно и не информативно, потому что в таком случае мы получаем один-два “мегакластера”, куда будет входить 98% клиентов и несколько бесполезных маленьких кластеров.

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

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

4. Проводим кластеризацию.


Выбираем алгоритм K-means (или Affinity Propagation), используем Python библиотеку scikit-learn, на вход даем получившуюся матрицу, запускаем кластеризацию.

5. Анализируем результаты кластеризации.


Результатом работы алгоритма является маркировка всех клиентов программы лояльности, в зависимости от их поведения/покупки. Клиенты с одинаковыми поведенческими характеристиками попадают в один кластер.

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

Итак, мы провели кластеризацию по программе лояльности для ритейлера за полгода, с количеством кластеров 75. Рассмотрим, как распределились по кластерам покупатели, и какие товары предпочитают в тех или иных кластерах:

— В “Кластер 1” попало 45% клиентов за этот период. Лидерами продаж по товарам здесь стали: масло, бананы, яйца, молоко, батон, сметана.

— В “Кластере 2” оказалось 12% клиентов. Здесь популярнее остальных уже несколько видов хлеба и сметаны, бананы и непродовольственные товары.

— Пять последующих кластеров уже не такие большие, в каждый из них входят лишь по 2-3% клиентов. (В общей сложности в эти кластеры попали 12% клиентов за выбранный период). Здесь предпочтения клиентов весьма интересны, например: молочные продукты+фрукты, печенье+йогурты\сырки, йогурты\десерты+хлопья, курица+пиво+корм для кошек.

— Оставшиеся 31% покупателей рассеяны по 68 кластерам. в которые входят 0,1-2% клиентов. Также кластер может быть очень маленьким и состоять из 1-2 человек. Чем может быть интересен такой кластер? Читайте в кейсах в конце статьи.

При кластеризации алгоритм выявляет нестандартное поведение клиента. Выявить такое поведение поможет анализ отдельных “фич”(характеристик и особенностей) каждого отдельного кластера.

6. Анализируем характеристики каждого кластера.


  • Название кластера. Можно просто пронумеровать кластеры, а можно присвоить им названия, в зависимости от поведенческих особенностей внутри каждого кластера — от “Домохозяек”, “Холостяков”, “Бизнесменов” до “Клуба любителей кошек”:)
  • Оборот кластера. Позволяет определить кластеры, приносящие наибольший доход.
  • Доля кластера в обороте. В процентном соотношении от общего оборота по кластеризации за выбранный период.
  • Количество клиентов в кластере.
  • Количество новых клиентов в кластере. (Впервые воспользовались дисконтной картой за выбранный период кластеризации).
  • Количество мужчин и женщин в кластере в процентном соотношении. Позволяет выявить типичные мужские и типичные женские покупки, помимо очевидных.
  • Общее количество чеков в кластере.
  • Количество чеков на одного клиента в кластере. Позволяет отследить сколько раз возвращался клиент за выбранный период кластеризации.
  • Среднее количество товаров в чеке.
  • Средняя стоимость чека. Позволяет определить, в каком кластере продаются самые дорогие товары.

Проанализировав характеристики каждого кластера и с их помощью определив персону покупателя, можно переходить к персонализированной рассылке.

7. Проводим персонализированную рассылку по каждому кластеру.

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

Зная, что и какой группе людей предлагать, компании смогут избежать метода “ковровой бомбардировки” при sms или e-mail рассылке. Предлагая клиентам только нужные им товары (не забывая про сопутствующие), можно добиться гораздо большего отклика и конверсии в покупку.

Рассмотрим несколько кейсов от Datawiz.io.

Повышение эффективности промо-рассылок с помощью кластеризации.
В результате кластеризации клиентов одной из сети магазинов мы получили 75 кластеров. Для примера рассмотрим три из них: “молодая семья”, “студент” и “пенсионер”.
— Клиенты кластера “молодая семья” были наиболее восприимчивы к предложениям по покупке подгузников, детского питания, фруктов и молока;
— “студентам” предложили скидки на продукты группы фастфуд и пиво;
— а “пенсионерам” на крупы и овощи.
В следствии такой рассылки конверсия в покупку увеличилась на 14,5 %.

Продвижение нового продукта.
Вариант 1. Чтобы узнать кому будет интересен новый продукт, мы сделали рассылку по всех клиентах программы лояльности. По результатах отклика узнали персону покупателя, которой необходимо маркетировать новый продукт. Далее, отследили нужных нам покупателей в кластерах. Провели рассылку уже только по интересующих нас кластерах.

Вариант 2. Компания не захотела проводить рассылку по всех клиентах, так как база весьма обширна. Поэтому мы создали гипотезу, каким кластерам клиентов этот продукт интересен. Из всех интересующих нас кластеров мы взяли рандомно по 1% клиентов и провели по ним тестовую рассылку. С теми кластерами, которые показали наивысшую конверсию в покупку после тестовой рассылки, и работали в дальнейшем, предлагая новый продукт всему кластеру.

Нестандартное поведение клиента.
Мы провели кластеризацию для магазина одной из сети. Алгоритм выдал кластер, в котором было всего 2 клиента. Но внимание привлекла сумма оборота по этому кластеру за небольшой период. Казалось бы, ну покупают люди много разнообразных продуктов и товаров.

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

Вопрос: может сотрудники таким образом склоняли клиентов к покупке? или зарабатывали себе дисконтные баллы? или продавали товар по полной стоимости, а разницу присваивали, то есть, мошенничали?

Вместо вывода.


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

Кластеризация · Loginom Wiki

Синонимы: Сегментация, Segmentation

Разделы: Бизнес-задачи, Алгоритмы

Loginom: Кластеризация (обработчик), EM Кластеризация (обработчик)

Решения: Loginom Customer Segmentation

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

Кластеризация

Формальная постановка задачи кластеризации выглядит следующим образом:

Пусть заданы множества объектов X=(x1,x2,…,xn) и номеров (имен, меток) кластеров Y=(y1,y2,…,yk). Для X определена некоторая функция расстояния между объектами D(x,x′), например, метрика L2. Кроме этого, имеется конечная выборка обучающих примеров Xm=(x1,x2,…,xm) из множества X, которую требуется разбить на Xm непересекающиеся подмножества (кластеры) так, чтобы каждое из них состояло бы только из элементов, близких по метрике D. При этом каждому объекту xi из множества Xm присваивается номер кластера yj.

Тогда задача будет заключаться в поиске функции f, которая любому объекту x из множества X ставит в соответствие номер кластера y из множества Y, которое само по себе бывает известно заранее. Однако в большинстве случаев приходится определять оптимальное число кластеров исходя из особенностей решаемой задачи.

Кластеризация позволяет добиться следующих целей:

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

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

введение, обзор инструментов и Волосяные Шары / Блог компании DCA (Data-Centric Alliance) / ХабрПривет, Хабр! В нашей работе часто возникает потребность в выделении сообществ (кластеров) разных объектов: пользователей, сайтов, продуктовых страниц интернет-магазинов. Польза от такой информации весьма многогранна – вот лишь несколько областей практического применения качественных кластеров:
  1. Выделение сегментов пользователей для проведения таргетированных рекламных кампаний.
  2. Использование кластеров в качестве предикторов («фичей») в персональных рекомендациях (в content-based методах или как дополнительная информация в коллаборативной фильтрации).
  3. Снижение размерности в любой задаче машинного обучения, где в качестве фичей выступают страницы или домены, посещенные пользователем.
  4. Сличение товарных URL между различными интернет-магазинами с целью выявления среди них групп, соответствующих одному и тому же товару.
  5. Компактная визуализация — человеку будет проще воспринимать структуру данных.

С точки зрения машинного обучения получение подобных связанных групп выглядит как типичная задача кластеризации. Однако не всегда нам бывают легко доступны фичи наблюдений, в пространстве которых можно было бы искать кластеры. Контентые или семантические фичи достаточно трудоемки в получении, как и интеграция разных источников данных, откуда эти фичи можно было бы достать. Зато у нас есть DMP под названием Facetz.DCA, где на поверхности лежат факты посещений пользователями страниц. Из них легко получить количество посещений сайтов, как каждого в отдельности, так и совместных посещений для каждой пары сайтов. Этой информации уже достаточно для построения графов веб-доменов или продуктовых страниц. Теперь задачу кластеризации можно сформулировать как задачу выделения сообществ в полученных графах.

Забегая вперед, скажу, что сообщества веб-доменов нам уже удалось применить с большой пользой в рекламных RTB-кампаниях. Классическая проблема, с которой сталкиваются трейдеры — это необходимость лавировать между точностью таргетирования и объемом сегмента. С одной стороны, грубый таргетинг по социально-демографическим признакам слишком широк и неэффективен. С другой стороны, хитрые тематические сегменты зачастую слишком узки, и изменения порогов вероятности в классификаторах не способны расширить сегмент до необходимого объема (скажем, до нескольких десятков миллионов кук). В то же время, люди, часто посещающие домены из одного кластера, образуют хорошие сегменты как раз для таких широкоохватных кампаний.

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

Многим из вас, вероятно, приходилось кластеризовать данные, но, вероятно, большинство, как и мы, никогда не кластеризовали граф. Главная особенность кластеризации графов — это отсутствие фичей наблюдений. У нас нет расстояния между двумя произвольными точками в пространстве, потому что нет самого пространства, нет нормы, и невозможно определить расстояние. Вместо этого, у нас есть метаданные рёбер (в идеале, для каждой пары вершин). Если имеется «вес» ребра, то его можно интерпретировать как расстояние (или, наоборот, как схожесть), и тогда у нас определены расстояния для каждой пары вершин.

Многие из алгоритмов кластеризации в евклидовом пространстве подходят и для графов, так как для этих алгоритмов требуется лишь знать расстояние между наблюдениями, а не между произвольными «точками в пространстве». Некоторые требуют именно пространство фичей и для графов не годятся (например, k-means). С другой стороны, у графов есть много своих уникальных свойств, которые тоже можно использовать: компоненты связности, локальные скопления рёбер, места зацикливания информационных потоков и др.

Обзор инструментов


К настоящему моменту люди изобрели огромное количество методов кластеризации графов — каждый со своими преимуществами и косяками. В одном из следующих постов разберем подробнее некоторые алгоритмы и их свойства. А пока считаем полезным поделиться ссылками на открытые инструменты для анализа графов, где уже реализовано что-то для кластеризации и нахождения сообществ.
  1. Очень модный и развивающийся нынче GraphX. Его нужно было написать первым элементом в списке, но как таковых готовых алгоритмов кластеризации там пока нет (версия 1.4.1). Есть подсчет треугольников и связных компонент, что, вкупе с стандартными операциями над Spark RDD, можно использовать для написания своих алгоритмов. Пока что у GraphX есть апи только для scala, что также может усложнить его использование.
  2. Библиотека для Apache Giraph под названием Okapi использует несколько алгоритмов, в том числе достаточно новый алгоритм собственной разработки под названием Spinner, основанный на label propagation. Giraph — это надстройка над Hadoop, предназначенная для обработки графов. В ней почти нет машинного обучения, и для компенсации этого в компании Telefonica и был создан Okapi. Вероятно, сейчас Giraph выглядит уже не так перспективно на фоне GraphX, но сам алгоритм Spinner хорошо ложится и на парадигму Spark. Про Spinner можно прочитать здесь.
  3. Библиотека graph-tool для питона содержит несколько новейших алгоритмов кластеризации и очень быстро работает. Мы использовали её для сличения URL, соответствующих одному и тому же товару. Все, что можно, распараллелено по ядрам процессора, и для локальных вычислений (графы размером до пары сотен тысяч узлов) это самый быстрый вариант.
  4. Gephi — известный инструмент, который мы обошли вниманием, возможно, незаслуженно. Долгое время Gephi практически не развивался, зато у него появились хорошие плагины, в том числе для выделения сообществ. В последнее время проект вновь ожил и ожидается версия 0.9
  5. GraphLab Create. Это питоновская обертка над C++, позволяющая прогонять машинное обучение как локально, так и распределенно (на Yarn). Кластеризации графов там все ещё нет, только нахождение k-ядер.
  6. Хваленый networkX, несмотря на обилие алгоритмов, не умеет кластеризовать графы, но только анализировать связные компоненты и клики. Вдобавок он намного медленнее graph-tool, и по части визуализации уступает тому же graph-tool и gephi.
  7. Реализация алгоритма марковской кластеризации (MCL) от его изобретателя. Автор снизил сложность обычного MCL в худшем случае с до , где — число узлов, а — максимальная степень узла, и обижается, когда алгоритм MCL называют немасштабируемым.Также он добавил фишки для регулировки числа кластеров. Однако у MCL было несколько других серьезных проблем, и непонятно, решены ли они. Например, проблема нестабильности размера кластеров (наш небольшой эксперимент выдал одну гигантскую связную компоненту и много маленьких кластерочков по 2-3 узла, но, возможно, мы не нашли нужную ручку). Последняя новость на сайте датируется 2012 годом, что не очень хорошо.
  8. Разные реализации одного из самых популярных алгоритмов Louvain: для C, для Python, ещё для Python. Классическая статья про этот алгоритм: ссылка.
  9. Сайт, посвященный алгоритму Infomap и его модификациям, от авторов метода. Как и везде, есть открытый код. Помимо хорошей поддержки и документации, есть изумительные демки, иллюстрирующие работу алгоритма: вот и вот. Узнать, как работает алгоритм, можно здесь.
  10. Пакет для R под названием igraph. В нем реализовано довольно много алгоритмов кластеризации, но мы не можем сказать ничего конкретного о них, поскольку не изучали пакет.

Если цель — провести воспроизводимый эксперимент на небольших данных, а не выкатывать в продакшн готовый продукт, то среди всего вышеперечисленного лучшими вариантами являются, на наш взгляд, graph-tool (пункт 3), Gephi (пункт 4) или Infomap (пункт 9).

Наши эксперименты


А теперь мы расскажем, как мы формировали графы доменов Рунета и окрестностей, и покажем картинки с результатами их кластеризации. В следующей части нашего цикла статей будет описан алгоритм, с помощью которого были получены приведенные ниже картинки. Это модифицированный k-medoids, который мы в лучших традициях велосипедирования написали на корневом питоне, и с помощью которого удалось на удивление хорошо решить некоторые задачи. Часть информации из этого и следующего поста, а также описание некоторых других алгоритмов, есть в презентации, которую я рассказывал на newprolab в digital october этой весной:

Данные


Первая задача — кластеризация веб-доменов. Из DMP мы берем данные о посещениях пользователями различных доменов, и на их основе строим граф, где в качестве узлов выступают домены, а в качестве рёбер — аффинити между доменами. Аффинити (он же лифт) между доменами и — это выборочная оценка того, насколько события «посещение юзером домена » и «посещение юзером домена » близки к независимости. Если — общее количество рассматриваемых юзеров, а — количество юзеров, посетивших , то:
Чтобы избавиться от шумов, нужно отфильтровать домены со слишком маленьким числом посещений, а также рёбра с низким аффинити. Практика показывает, что достаточно порога в 15-20 по посещениям и 20-25 по аффинити. При более высоком пороге по аффинити в результате появляется слишком много изолированных вершин.

Подобный способ построения графа позволяет увидеть в данных довольно четкую структуру «сообществ» доменов. Одна из интересных его особенностей состоит в том, что самые крупные домены (поисковики, социальные сети, некоторые крупные магазины и новостные сайты), как правило, не имеют очень «толстых» рёбер ни с одной другой вершиной. Это приводит к тому, что эти домены находятся на отшибе и часто остаются изолированными вершинами, не попадая ни в один из кластеров. Мы считаем это плюсом, так как совместное посещение vk.com и какого-нибудь узкоспециализированного сайта действительно мало что говорит о их связи друг с другом.

Надо сказать, что получить и отфильтровать данные, построить граф и посчитать по нему разные матрицы — задача намного более ресурсоемкая, чем получение самих кластеров. Некоторые этапы (в частности, вычисление попарной схожести) удалось распараллелить с помощью пакета pathos (pathos.multiprocessing). В отличие от стандартного питоновского пакета multiprocessing, он не испытывает проблем с сериализацией, поскольку использует dill вместо pickle. Синтаксис у него абсолютно идентичен стандартному multiprocessing. Здесь можно почитать про dill.

Визуализация


Пришло время показать немного картинок с графами (как они получились, мы расскажем в следующей части). Известно, что networkX не предназначен для визуализации графов, и что для этой цели лучше обращаться к d3.js, gephi или graph-tool. Мы слишком поздно узнали об этом, и вопреки здравому смыслу, все равно продолжили мужественно рисовать картинки в networkX. Получился не то чтобы чистый мёд (в частности, не удалось настроить взаимное отталкивание узлов и неперекрывающиеся надписи), но мы как могли старались и выжали все что можно из возможностей networkX. Во всех картинках диаметр кружочка (домена) соответствует его посещаемости, толщина ребра соответствует аффинити, цвет кружочка означает принадлежность домена кластеру. Цвет ребра означает принадлежность обеих вершин данному кластеру, серый цвет соответствует рёбрам, соединяющим вершины из разных кластеров.

Комментарии к кластерам на примере одного из графов


Не очень большой граф из 1285 доменов:

На картинке нарисован его разреженный вариант: большая часть рёбер удалена по методу local sparsification (он будет описан в следующей части), из-за чего группировка в сообщества выглядит более отчетливо, и смягчается эффект «Большого Волосяного Шара». Кластеров всего 18. Полный размер картинки (в png).

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

В один огромный кластер под номером 17 (розовый) попало много чего — от сайтов по ведению беременности внизу и медицинских сайтов в центре, до мешанины из прогнозов погоды, женских форумов и журналов в верхней части кластера. К «юго-западу» от него расположен кулинарный кластер (номер 4):

К «юго-востоку» от семейного кластера — недвижимость + поиск работы (объединились в один кластер номер 2):

К «югу» от кластера 17 расположилась очень плохо размеченная область. Так, алгоритму не удалось выделить сообщество туристических доменов (они разбросаны по разным сообществам), а в кластер кулинарии попал сайт про оружие.

В небольшой кластер 15 (красный) попали, в основном, юридические сайты:

К «северо-западу» от «семейной» части расположены наиболее четкие кластеры. По всей видимости, браузерами посетителей этих сайтов никто больше не пользуется (и это логично, исходя из тематик кластеров). Во-первых, бросаются в глаза два плотных кластера: российские (номер 16, кирпичный) и украинские (номер 12, синий) новостные сайты, причем последний намного плотнее, хоть и меньше по размеру. Можно заметить также, что меняется ангажированность сайтов вдоль российского кластера:

К «северо-востоку» от новостных сайтов располагаются фильмы, сериалы и онлайн-кинотеатры (серый и желтый кластеры под номерами 3 и 8). Между кластерами фильмов и кластером украинских новостей как переходная зона расположен кластер порнографии.

Ещё восточнее расположен кластер номер 1 — весь казахский интернет. Рядом с ним — автомобильные сайты (кластер 6, сиреневый) и российские спортивные сайты (они влились к остальным новостям в кластер 16).

Далее к югу расположен кластер мультфильмов и детских игр (номер 10, болотный), а также тесно связанные с ним школьные кластера словарей, онлайн-решебников и рефератов: крупный российский (номер 5, персиковый) и совсем небольшой украинский (номер 0, зеленый). В кластер номер 0 также попали украинские сайты всех тематик, кроме новостей (их оказалось совсем немного). Школьные кластеры на «юге» плавно переходят в главный женский кластер номер 17.

Последнее, что можно тут отметить — кластер книг, расположенный на отшибе в «восточной» части картинки:

Изменения за год


Вот так выглядит тот же самый граф, только нарисованный без прореживания:


Полный размер.

А вот так выглядит приблизительно аналогичный граф, построенный за почти год до предыдущего. В нем 12 кластеров:

Полный размер.

Как можно заметить, за это время структура в целом осталась прежней (новостные сайты, крупный женский кластер, крупная разреженная область развлекательных сайтов разной направленности). Из различий можно отметить окончательное исчезновения кластера с музыкой за это время. Вероятно, за это время люди для нахождения музыки почти перестали пользоваться специализированными сайтами, чаще обращаясь к соцсетям и набирающим обороты сервисам вроде Spotify. Разделяемость всего графа на сообщества в целом возросла, и количество осмысленных кластеров удалось довести с 12 до 18. Причины этого, скорее всего, кроются не в изменении поведения пользователей, а просто в изменении наших источников данных и механизма сбора данных.

Если мы увеличим выборку пользователей и оставим на прежнем уровне фильтры на минимальное количество посещений домена и пары доменов, а также минимальное аффинити для формирования ребра, мы получим более крупный граф. Ниже представлен такой граф из 10121 вершины и 30 кластеров. Как видно, силовой алгоритм рисования из networkx уже не очень-то справляется и выдает довольно путаную картинку. Тем не менее, некоторые паттерны можно проследить и в таком виде. Количество рёбер уменьшено с полутора миллионов до 40000 с помощью такого же метода разрежения (local sparsification). PNG-файл занимает 80 Мб, поэтому просьба смотреть в полном размере здесь.

На визуализации не удалось как следует выделить структуру сообществ (мешанина в центре), но в действительности кластера получились не менее осмысленными, чем в случае 1285 доменов.

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

Вот несколько примеров новых сообществ. На самом отшибе выделился испанский кластер, так как мы что-то видим оттуда:

Недалеко от него, ближе к основному скоплению точек, располагается азербайджанский кластер (номер 2) и грузинский (номер 4):

Появился узбекско-таджикский кластер, а также белорусский (номер 16) — внутри основной массы доменов, рядом с «российским новостным» и «украинским неновостным» сообществами:

В следующем посте будет описание алгоритма:

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

Готовы ответить на ваши вопросы в комментариях. Stay tuned!

алгоритмы k-means и c-means / Хабр

Добрый день!

Как и обещал, продолжаю серию публикаций о технологии Data Mining. Сегодня хочу рассказать о двух алгоритмах кластеризации (k-means и c-means), описать преимущества и недостатки, дать некоторые рекомендации по их использованию. Итак, поехали…

Кластеризация — это разделение множества входных векторов на группы (кластеры) по степени «схожести» друг на друга.

Кластеризация в Data Mining приобретает ценность тогда, когда она выступает одним из этапов анализа данных, построения законченного аналитического решения. Аналитику часто легче выделить группы схожих объектов, изучить их особенности и построить для каждой группы отдельную модель, чем создавать одну общую модель для всех данных. Таким приемом постоянно пользуются в маркетинге, выделяя группы клиентов, покупателей, товаров и разрабатывая для каждой из них отдельную стратегию (Википедия).

Меры расстояний

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

Есть множество мер расстояния, рассмотрим несколько из них:

Евклидово расстояние — наиболее распространенное расстояние. Оно является геометрическим расстоянием в многомерном пространстве.

Квадрат евклидова расстояния. Иногда может возникнуть желание возвести в квадрат стандартное евклидово расстояние, чтобы придать большие веса более отдаленным друг от друга объектам.

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

Расстояние Чебышева. Это расстояние может оказаться полезным, когда желают определить два объекта как «различные», если они различаются по какой-либо одной координате (каким-либо одним измерением).

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

Выбор расстояния (критерия схожести) лежит полностью на исследователе. При выборе различных мер результаты кластеризации могут существенно отличаться.

Алгоритм k-means (k-средних)

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

Проблемы алгоритма k-means:
* необходимо заранее знать количество кластеров. Мной было предложено метод определения количества кластеров, который основывался на нахождении кластеров, распределенных по некоему закону (в моем случае все сводилось к нормальному закону). После этого выполнялся классический алгоритм k-means, который давал более точные результаты.
* алгоритм очень чувствителен к выбору начальных центров кластеров. Классический вариант подразумевает случайный выбор класторов, что очень часто являлось источником погрешности. Как вариант решения, необходимо проводить исследования объекта для более точного определения центров начальных кластеров. В моем случае на начальном этапе предлагается принимать в качестве центов самые отдаленные точки кластеров.
* не справляется с задачей, когда объект принадлежит к разным кластерам в равной степени или не принадлежит ни одному.

Материалы по теме:
* Википедия — K-means
* Introduction to K-means
* Описание функции kmeans в Matlab Statistics Toolbox
* K-means — Interactive demo (Java)

Нечеткий алгоритм кластеризации с-means

С последней проблемой k-means успешно справляется алгоритм с-means. Вместо однозначного ответа на вопрос к какому кластеру относится объект, он определяет вероятность того, что объект принадлежит к тому или иному кластеру. Таким образом, утверждение «объект А принадлежит к кластеру 1 с вероятностью 90%, к кластеру 2 — 10% » верно и более удобно.

Классический пример с-means — т.н. «бабочка» (butterfly):

Как видно, точка с координатами (3,2) в равной степени принадлежит как первому так и второму кластеру.

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

Ссылки по теме:
* Формальное описание алгоритма и реализация на C#
* Fuzzy c-means clustering
* Fuzzy C-means cluster analysis

P.S. Я не описывал математические принципы алгоритмов, с ними легко можно ознакомиться по представленным ссылкам.

Спасибо за внимание!

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

Добавлено в закладки: 0

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

В каждом кластере объекты схожи, а меж различными кластерами существуют явные отличия. Главная цель, которую данный анализ преследует – выявить схожие объекты в исследуемой выборке.

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

Рассмотрим, более детально, что значит анализ кластерный. Кластерный анализ (англ. cluster analysis) — статистическая многомерная процедура, которая выполняет сбор данных, которые содержат информацию о выборе объектов, и потом упорядочивающая объекты в однородные сравнительно группы. Задачу кластеризации относят к статистической обработке и к широкому классу задач обучения без учителя.

Большая часть исследователей склоняется к тому, что термин «кластерный анализ» (англ. cluster — гроздь, сгусток, пучок) впервые был предложен математиком Трионом Р. В появился ряд терминов, которые принято в настоящее время считать синонимами термина «кластерный анализ»: ботриология, автоматическая классификация.

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

Условия и задачи

Кластерный анализ исполняет такие главные задачи:

  • Изучение концептуальных полезных схем группирования объектов.
  • Разработка классификации или типологии.
  • Порождение гипотез на основании исследования данных.
  • Проверка исследования или гипотез для определения, действительно ли группы (типы), выделенные каким-либо методом, есть в имеющихся данных.

Вне зависимости от предмета изучения использование кластерного анализа предусматривает следующие стадии:

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

Можно встретить описание двух фундаментальных требований, которые предъявляются к данным — полнота и однородность . Однородность требует, чтобы все кластеризуемые сущности были одинаковой природы, описываться похожим набором свойств. Когда кластерному анализу предшествует факторный анализ, то выборка в «ремонте» не нуждается — изложенные требования исполняются автоматически непосредственно процедурой факторного моделирования (есть ещё одно достоинство — z-стандартизация без отрицательных последствий для выборки; если её непосредственно проводить для кластерного анализа, она может за собой повлечь уменьшение чёткости разделения групп). Иначе выборку необходимо корректировать.

Типология задач кластеризации

Виды входных данных

  • Признаковое описание объектов. Каждый объект описывают набором собственных характеристик, которые называются признаками. Признаки могут быть нечисловыми или числовыми.
  • Матрица расстояний меж объектами. Каждый объект описывают расстояниями до всех других объектов метрического пространства.
  • Матрица сходства меж объектами. Учитывают степень сходства объекта с прочими объектами выборки в метрическом пространстве. Сходство тут дополняет различие (расстояние) меж объектами до 1.

В современной науке используется несколько алгоритмов обработки для входных данных. Анализ при помощи сравнения объектов, учитывая признаки, (наиболее распространённый в биологических науках) называется Q-видом анализа, а при сравнении признаков, на основании объектов — R-видом анализа. Есть попытки использовать гибридные типы анализа (к примеру, RQ-анализ), но эта методология ещё не разработана должным образом.

Цели кластеризации

  • Понимание данных при помощи выявления кластерной структуры. Разбиение выборки на группы похожих объектов дает возможность упростить обработку данных в дальнейшем и принятие решений, к каждому кластеру применяя собственный метод анализа (стратегия «разделяй и властвуй»).
  • Сжатие данных. Когда исходная выборка сильно большая, то можно её сократить, оставив от каждого кластера по одному самому типичному представителю.
  • Обнаружение новизны (англ. novelty detection). Выделяют нетипичные объекты, которые не получается ни к одному из кластеров присоединить.

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

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

Способы кластеризации

Общепринятой классификации способов кластеризации нет, однако возможно выделить некоторые группы подходов (некоторые способы возможно отнести сразу к нескольким группам и потому предлагают рассматривать эту типизацию в качестве некоторого приближения к реальной классификации способов кластеризации):

  1. Вероятностный подход. Предполагают, что каждый рассматриваемый объект относят к одному из k классов. Некоторые авторы (к примеру, А. И. Орлов) полагают, что эта группа совсем не относится к кластеризации и противопоставляют её «дискриминации», то есть выбору отнесения объектов к одной известной группе (обучающим выборкам).
    • Дискриминантный анализ
    • K-medians
    • K-средних (K-means)
    • Алгоритмы семейства FOREL
    • EM-алгоритм
  2. Подходы на основании систем искусственного интеллекта: условная группа, так как способов весьма много и они весьма различны методически.
    • Генетический алгоритм
    • Нейронная сеть Кохонена
    • Метод нечеткой кластеризации C-средних
  3. Логический подход. Построение дендрограммы производится при помощи дерева решений.
  4. Теоретико-графовый подход.
    • Графовые алгоритмы кластеризации
  5. Иерархический подход. Предполагают наличие вложенных групп (кластеров разного порядка). В свою очередь алгоритмы подразделяются на объединительные (агломеративные) и разделяющие (дивизивные). По числу признаков порой выделяют политетические и монотетические способы классификации.
    • Таксономия или дивизивная иерархическая кластеризация. Задачи кластеризации рассматривают в числовой таксономии.
  6. Прочие способы, которые не вошли в прошлые группы.
    • Ансамбль кластеризаторов
    • Статистические алгоритмы кластеризации
    • Алгоритм, который основан на способе просеивания
    • Алгоритмы семейства KRAB
    • DBSCAN и др.

Подходы 4 и 5 порой объединяют под названием геометрического или структурного подхода, который обладает большей формализованностью понятия близости. Невзирая на большие различия меж перечисленными способами все они опираются на начальную «гипотезу компактности»: в пространстве объектов все близкие объекты относятся к одному кластеру, а все разные объекты должны соответственно находиться в разных кластерах.

Формальная постановка задачи кластеризации

Пусть х  — множество объектов, номеров (меток, имён) кластеров. Задана функция расстояния меж объектами. Есть конечная обучающая выборка объектов. Необходимо разбить выборку на непересекающиеся подмножества, которые называются кластерами, так, чтобы каждый кластер включал в себя объекты, близкие по метрике, а объекты различных кластеров значительно отличались. Каждому объекту при этом приписывают номер кластера.

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

Кластеризация (обучение без учителя) от классификации (обучения с учителем) отличается тем, что метки исходных объектов вначале не заданы, и может быть даже неизвестно непосредственно множество .

Решение задачи кластеризации неоднозначно принципиально, и тому есть несколько причин (как считают некоторые):

  • не существует однозначно наилучшего критерия качества кластеризации. Известен ряд эвристических критериев и ряд алгоритмов, которые не имеют выраженного чётко критерия, однако осуществляющих довольно разумную кластеризацию «по построению». Все они могут дать различные результаты. Следовательно, для того, чтобы определить качество кластеризации необходим эксперт предметной области, который сможет оценить осмысленность процесса выделения кластеров.
  • количество кластеров обычно заранее неизвестно и устанавливается соответственно с некоторыми субъективными критериями. Это справедливо лишь для способов дискриминации, так как в способах кластеризации выделение кластеров происходит за счёт формализованного подхода на основании мер близости.
  • Итог кластеризации в значительной степени зависит от метрики, выбор которой обычно также субъективен и его определяет эксперт. Но необходимо заметить, что есть некоторые рекомендации к выбору мер близости для разных задач.

Использование

В биологии

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

В сфере экологии широко применяют для выделения однородных пространственно групп сообществ, организмов и так далее. Реже методы кластерного анализа применяют для исследования во времени сообществ. Гетерогенность структуры сообществ вызывает появление нетривиальных методов кластерного анализа (к примеру, метод Чекановского).

В общем, необходимо заметить, что исторически так сложилось, что в биологии в качестве мер близости чаще применяются меры сходства, а не расстояния (различия).

В социологии

Анализируя результаты социологических исследований советуется осуществлять анализ способами агломеративного иерархического семейства, а именно способом Уорда, при котором в кластерах оптимизируют минимальную дисперсию, в результате создаются кластеры приблизительно одинаковых размеров. Способ Уорда наиболее удачным является для анализа социологических данных. Как мера отличия лучше квадратичное евклидово расстояние, которое дает возможность увеличить контрастность кластеров. Главным результатом иерархического кластерного анализа является «сосульчатая диаграмма» или дендрограмма. Исследователи при её интерпретации сталкиваются с проблемой аналогичного рода, что и толкование итогов факторного анализа — отсутствие однозначных критериев для выделения кластеров. Как главные, рекомендуется применять два метода — визуальный анализ дендрограммы и сравнение итогов кластеризации, которая выполнена разными методами.

Визуальный анализ дендрограммы предусматривает «обрезание» дерева на оптимальном уровне сходства элементов выборки. «Виноградную ветвь» (терминология Олдендерфера М. С. и Блэшфилда Р. К.) целесообразно «обрезать» на отметке 5 шкалы Rescaled Distance Cluster Combine, тогда будет достигнут 80 % уровень сходства. Когда выделение кластеров по данной метке затрудняется (на ней происходит слияние нескольких маленьких кластеров в один большой), то можно другую метку выбрать. Такую методику предлагает Олдендерфер и Блэшфилд.

Тогда появляется вопрос устойчивости принятого кластерного решения. По сути, проверку устойчивости кластеризации сводят к проверке её достоверности. Тут есть эмпирическое правило — устойчивая типология сберегается при изменении способов кластеризации. Итоги кластерного иерархическогоанализа возможно проверять кластерным итеративным анализом по методу k-средних. Когда сравниваемые классификации групп респондентов имеют долю совпадений больше 70 % (больше 2/3 совпадений), кластерное решение принимают.

Проверить адекватность решения, не вызывая помощь другого типа анализа, нельзя. В теоретическом плане, по крайней мере, данная проблема не решена. В классической работе Блэшфилда и Олдендерфера «Кластерный анализ» детально рассматриваются и в результате отвергаются добавочные пять способов проверки устойчивости:

  1. методы Монте-Карло весьма сложны и доступны лишь опытным математикам;
  2. тесты значимости (дисперсионный анализ) — дают всегда значимый результат;
  3. кофенетическая корреляция — не советуется и в использовании ограниченна;
  4. тесты значимости для внешних признаков являются пригодными лишь для повторных измерений;
  5. методика случайных (повторных) выборок, что всё-таки не доказывает обоснованность решения.

В информатике

  • Кластеризация итогов поиска — применяется для «интеллектуальной» группировки итогов при поиске веб-сайтов, файлов, прочих объектов, предоставляя пользователю возможность для быстрой навигации, исключения заведомо менее релевантного подмножества и выбора более релевантного — что может увеличить юзабилити интерфейса в сравнении с выводом в виде простого списка, который сортируется по релевантности.
    • Clusty — поисковая кластеризующая машина компании Vivísimo
    • Nigma — поисковая российская система с автоматической кластеризацией итогов
    • Quintura — визуальная кластеризация, как облака ключевых слов
  • Сегментация изображений — кластеризацию можно использовать для разбиения цифрового изображения на отдельные области для распознавания объектов и обнаружения границ.
  • Интеллектуальный анализ данных — кластеризация в Data Mining имеет ценность тогда, когда она выступает одним из стадий анализа данных, построения завершившегося аналитического решения. Аналитику зачастую легче выделить группы похожих объектов, изучить их особенности и для каждой группы построить отдельную модель, нежели создавать для всех данных одну общую модель. Таким приемом пользуются постоянно в маркетинге, выделяя группы товаров, покупателей, клиентов и разрабатывая отдельную стратегию для каждой из них.

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

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

Кластеризация — это группировка определенного набора объектов на основе их характеристик, агрегирование их в соответствии с их сходством. Что касается интеллектуального анализа данных, эта методология разделяет данные с помощью специального алгоритма соединения, наиболее подходящего для анализа требуемой информации.

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

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

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

Алгоритмы кластеризации в интеллектуальном анализе данных

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

На базе Centroid

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

Распределенная на основе

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

На основе подключения

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

Плотность на основе

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

Кластерный анализ основные приложения

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

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

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

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

Эта статья первоначально появилась здесь. Переиздано с разрешения. Подавайте жалобы на нарушение авторских прав здесь.

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

Желаете ли вы продвигать продукты своего клиента лучше для конкретной аудитории? Если да, то кластеризация для вас. Я имею в виду, что вам нужно лучше понять концепцию обучения без контроля и кластеризации в машинном обучении. Что это лучший способ? Изучите кластеризацию и ее алгоритмы с помощью соответствующих примеров и реальных приложений. Сегодня в этом уроке по кластерному машинному обучению мы обсудим то же самое.Краткое содержание этого урока —

  • Что такое кластеризация?
  • Почему кластеризация в машинном обучении?
  • Типы алгоритмов кластеризации в машинном обучении
  • Примеры кластеризации
  • Приложения кластеризации

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

what is clustering

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

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

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

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

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

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

Пример кластеризации — Точки данных, которые сгруппированы вместе, находятся в группах, которые содержат сходные данные.Затем мы можем далее различать эти кластеры посредством идентификации трех кластеров, как показано ниже —

Clustering tutorial in ML

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

Почему кластеризация?

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

Подождите! Вы проверяли в режиме реального времени приложения машинного обучения?

Типы алгоритмов кластеризации

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

  • Кластеризация на основе секционирования
  • Иерархическая кластеризация
  • Кластеризация на основе модели
  • Плотная кластеризация
  • Нечеткая кластеризация

what is clustering in machine learning

Тип кластеризации Алгоритм подразделяет данные на подмножество из k групп. Эти k групп или кластеров должны быть предварительно определены. Он разделяет данные на кластеры, удовлетворяя этим двум требованиям. Во-первых, каждая группа должна состоять как минимум из одной точки.Во-вторых, каждая точка должна принадлежать ровно одной группе. K-Means Clustering — самый популярный метод кластеризации с разделением.

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

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

3. Модели на основе плотности

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

4. Кластеризация на основе моделей

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

5. Нечеткая кластеризация

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

Проект обучения трендовым машинам — Сегментация клиентов с использованием ML

Приложения кластеризации

Некоторые из популярных приложений кластеризации в машинном обучении —

1. Алгоритм кластеризации для идентификации раковых клеток

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

2. Алгоритм кластеризации в поисковых системах

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

3. Алгоритм кластеризации в беспроводных сетях

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

4. Кластеризация для сегментации клиентов

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

Резюме

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

Вам понравилась статья? Поделитесь своим мнением с нами через комментарии.

Понимание кластеризации K-средних с примерами

K-Means — один из важнейших алгоритмов Машинное обучение Сертификация Обучение . В этом блоге мы разберем алгоритм кластеризации K-Means с помощью примеров.

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

Задача состоит в том, чтобы определить местоположение этих аварийных подразделений, чтобы охватить весь регион. Вот когда на помощь приходит K-означает Clustering!

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

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

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

Кластеризация — это разделение точек данных на однородные классы или кластеры:

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

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

Применение кластеризации:

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

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

  • Кластеризация помогает маркетологам улучшить свою клиентскую базу и работать в целевых областях. Он помогает группировать людей (в соответствии с различными критериями, такими как готовность, покупательная способность и т. Д.), Основываясь на их сходстве во многих отношениях, связанных с рассматриваемым продуктом.
  • Кластеризация помогает в идентификации групп домов на основе их стоимости, типа и географического местоположения.
  • Кластеризация используется для изучения землетрясения. На основе областей, пострадавших от землетрясения в регионе, кластеризация может помочь проанализировать следующее вероятное место, где может произойти землетрясение.

Алгоритмы кластеризации:

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

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

Что такое кластеризация K-средних?

K-means (Macqueen, 1967) — один из самых простых алгоритмов обучения без контроля, который решает известную проблему кластеризации. Кластеризация K-средних — это метод векторного квантования, изначально основанный на обработке сигналов, который популярен для кластерного анализа в интеллектуальном анализе данных.

K-означает кластеризация — Пример 1:

Сеть пиццерий хочет открыть свои центры доставки по всему городу.Как вы думаете, будут ли возможные проблемы?

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

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

Метод кластеризации K-средних:

Если задано k, алгоритм K-средних можно выполнить в следующих шагах:

  • Разделение объектов на k непустых подмножеств
  • Идентификация центроидов кластера (среднее точка) текущего раздела.
  • Назначение каждой точки определенному кластеру
  • Вычислить расстояния от каждой точки и выделить точки для кластера, где расстояние от центроида минимально.
  • После перераспределения точек найдите центр тяжести нового кластера.

Пошаговый процесс:

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

K — алгоритм кластеризации | K означает пример в Python | Алгоритмы машинного обучения | Edureka

В видео вы узнаете о концепции кластеризации K-Means и ее реализации с использованием Python.

Аналогично, для открытия больничных отделений:

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

Вот еще один пример для вас, попробуйте найти решение, основанное на вашем понимании кластеризации K-средних.

Кластеризация K-средних — Пример 2:

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

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

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

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

Математическая формулировка для алгоритма K-средних:

D = { x 1 , x 2 ,…, x i ,…, x m } à набор данных m записей

x i = (x i1 , x i2 ,…, x в ) à каждая запись является n-мерным вектором

Поиск центров кластеров, которые минимизируют искажения:

Решение можно найти, задав частную производную искажения w.к.т. каждый центр кластера к нулю.

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

Это идеальное значение k для созданных кластеров.

Related Post:

Применение кластеризации в науке о данных Использование примеров в реальном времени.

кластеров ясно объяснил. Определение кластеризации может быть … | Pawan Jain

Интуитивно понятное и информативное руководство по кластеризации и алгоритмам кластеризации

Pawan Jain

Вы сталкивались с ситуацией, когда ваш друг говорит вам: «Помогите мне понять наших друзей в социальной сети, чтобы мы могли понять наших лучших друзей!»

А ты будешь как «Подожди, что это и зачем нам это делать?»

«Это кластеризация, и она станет моей следующей исследовательской статьей», — ответил друг и начал объяснять о кластеризации.

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

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

С учетом набора данных, о котором вы ничего не знаете, алгоритм кластеризации может обнаруживать группы объектов, где средние расстояния между членами каждого кластера ближе, чем к элементам в других кластерах, например:

Пример кластеризации

Что такое Разница между кластеризацией и классификацией

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

Например, если вы построили классификатор фруктов, он сказал бы: «Это апельсин, это яблоко», на основании того, что вы показали ему примеры яблок и апельсинов.

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

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

. Объяснение различий между кластеризацией и классификацией.

Кластеризация может быть разделена на две подгруппы:

  • Жесткая кластеризация: Это , предназначенное для группировки элементов данных таким образом, что каждый фрагмент назначается только одному кластеру. , Например, мы хотим, чтобы алгоритм прочитал все твиты и определил, является ли твит положительным или отрицательным твитом.
  • Soft Clustering : Иногда нам не нужен двоичный ответ.Мягкая кластеризация заключается в группировании элементов данных таким образом, чтобы объект мог существовать в нескольких кластерах.

Ниже приведены некоторые другие методы формирования кластеров

Кластеризация DBSCAN

На основе плотности

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

Иерархическая основа

В этих методах мы строим кластеры как древовидную структуру на основе иерархии.У них есть две категории, а именно: агломеративный (восходящий подход) и делительный (нисходящий подход). Ex. Кластеризация с использованием представителей (CURE), Сбалансированная итеративная редукционная кластеризация с использованием иерархий (BIRCH) и т. Д.

Кластеризация K-Means

На базе Centroid

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

на основе сетки,

В этих способах кластеры образуют сетчатую структуру.Преимущество этих методов заключается в том, что все операции кластеризации, выполняемые в этих сетках, выполняются быстро и не зависят от количества объектов данных. Ex. Сетка статистической информации (STING), кластеризация в квесте (CLIQUE).

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

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

Каковы критерии сравнения алгоритмов кластеризации

Теперь хороший алгоритм кластеризации направлен на создание кластеров, чьи:

  • Схожесть внутри кластера (данные, которые присутствуют внутри кластера, похожи друг на друга)
  • Межкластерное сходство меньше (каждый кластер содержит информацию, которая не похожа на другую)

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

Анализ силуэта

Анализ силуэта можно использовать для изучения расстояния разноса между результирующими кластерами.

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

Анализ силуэта

Предположим, у вас есть набор точек; каждый из них представляет документ некоторого класса. Например, вы точно знаете, что это «инженерный вопрос», «научный вопрос», «философский вопрос».Но вы не знаете, что есть что, и не можете получить ярлыки для набора данных в разумные сроки.

Итак, вы запускаете k-средних (алгоритм кластеризации) с k = 3 (для числа классов), и в результате вы получаете:

  • Три центроида для каждого кластера (центроид является точкой, которая представляет собой идеальный элемент кластера)
  • Три подмножества исходного набора, каждое подмножество соответствует своему кластеру

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

Мы можем найти кластеризацию полезной в следующих областях:

Сегментация клиентов : Разделение клиентов на группы / сегменты таким образом, что каждый сегмент клиентов состоит из клиентов с похожими характеристиками рынка — ценообразование, лояльность, поведение расходов и т. Д.Некоторые из переменных сегментации могут быть, например, количество предметов, купленных на продажу, средняя стоимость транзакции, общее количество транзакций.

Создание NewsFeeds : K-средства можно использовать для группировки статей по их сходству — он может разделять документы на непересекающиеся кластеры.

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

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

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

Анализ социальной сети

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

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

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

Другие алгоритмы кластеризации для изучения

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

Если вы хотите изучить какой-либо конкретный алгоритм кластеризации.

  *  Для понимания кластеризации DBSCAN:  Лучшие практики кластеризации DBSCAN   *  Для концепции кластеризации BIRCH :   Кластеризация BIRCH ясно объяснено   *  Для иерархии Heirarchial:  Иерархическая кластеризация  * для GME Ясно Лучшие практики :   Лучшие практики кластеризации: модель гауссовой смеси (GMM)  

Спасибо за чтение.Не стесняйтесь оставаться на связи для большего!

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *