Кластеризация
Кластеризация — это разбиение объектов на группы без заранее известных правильных ответов.
В классификации мы заранее знаем классы объектов: например, бульдог и спаниель. В кластеризации таких ответов нет. Модель получает только признаки объектов и сама пытается найти структуру в данных.
Поэтому кластеризацию относят к обучению без учителя.
Что такое кластер
Заголовок раздела «Что такое кластер»Кластер — это группа похожих объектов.
Например, если у нас есть точки на плоскости, алгоритм может найти несколько плотных групп точек. Объекты внутри одной группы похожи друг на друга, а объекты из разных групп отличаются.
|
|
На левой картинке видно, что точки образуют несколько групп. Кластеризация как раз и состоит в выделении таких групп похожих объектов.
На правой картинке кластеризация уже выполнена: точки, относящиеся к одному кластеру, выделены одним цветом.
Черные точки — выбросы: они не относятся ни к одному найденному кластеру.
Точки на изображениях построены программой:
uses MLABC, PlotML;
begin var centers := 3; var (X, y) := Datasets.MakeBlobs( n := 600, centers := centers, clusterStd := 0.6, seed := 1 );
var xs := X.Col(0); var ys := X.Col(1);
Plot.Points(xs, ys, y, size := 4); Plot.Point(3, 3, Colors.Black, 6); Plot.Point(-4, 0, Colors.Black, 6);Plot.HideAxesAndGrid();end.Точки на плоскости — удобный учебный пример, но кластеризовать можно не только точки по их положению.
Можно кластеризовать любые объекты по разным признакам: форме, цвету, размеру, весу, цене, поведению пользователя и т.д.
Например, одни и те же фрукты можно разбить на группы по-разному:
- по форме: яблоки отдельно, груши отдельно;
- по цвету: зелёные отдельно, жёлтые отдельно;
- по двум признакам сразу (четыре кластера): зелёные большие, зелёные маленькие, жёлтые большие и жёлтые маленькие.
То, какие кластеры будут найдены, зависит от того, какие признаки мы используем для описания объектов.
Где используется кластеризация
Заголовок раздела «Где используется кластеризация»Кластеризацию используют, когда нужно найти скрытую структуру в данных:
- разделить пользователей на группы по поведению;
- найти похожие товары;
- сгруппировать документы по темам;
- обнаружить необычные объекты и выбросы;
- изучить данные перед построением модели классификации или регрессии.
Что значит похожие объекты
Заголовок раздела «Что значит похожие объекты»Большинство алгоритмов кластеризации используют расстояние между объектами.
Если два объекта расположены близко друг к другу в пространстве признаков, алгоритм считает их похожими. Если далеко — непохожими.
Именно поэтому для кластеризации особенно важно масштабирование признаков. Если один признак измеряется в тысячах, а другой в единицах, первый признак может почти полностью определять расстояние.
Основные алгоритмы
Заголовок раздела «Основные алгоритмы»В ML PascalABC.NET для кластеризации важны два базовых подхода:
- KMeans — делит данные на заранее заданное число кластеров;
- DBSCAN — ищет плотные области и может находить шумовые точки.
KMeans проще и обычно изучается первым. DBSCAN полезен, когда кластеры имеют сложную форму или когда важно выделить выбросы.