4 метода кластеризации данных на Python
Описаны четыре популярных метода обучения без учителя для кластеризации данных с соответствующими примерами программного кода на Python.
Обучение без учителя (unsupervised learning, неконтролируемое обучение) – класс методов машинного обучения для поиска шаблонов в наборе данных. Данные, получаемые на вход таких алгоритмов обычно не размечены, то есть передаются только входные переменные X без соответствующих меток y. Если в контролируемом обучении (обучении с учителем, supervised learning) система пытается извлечь уроки из предыдущих примеров, то в обучении без учителя – система старается самостоятельно найти шаблоны непосредственно из приведенного примера.
На левой части изображения представлен пример контролируемого обучения: здесь для того, чтобы найти лучшую функцию, соответствующую представленным точкам, используется метод регрессии. В то же время при неконтролируемом обучении входные данные разделяются на основе представленных характеристик, а предсказание свойств основывается на том, какому кластеру принадлежит пример.
Методы кластеризации данных являются одним из наиболее популярных семейств машинного обучения без учителя. Рассмотрим некоторые из них подробнее.
- Feature (Особенности): входная переменная, используемая для создания прогнозов.
- Predictions (Прогнозы): выходные данные модели при наличии входного примера.
- Example (Пример): строка набора данных. Пример обычно содержит один или несколько объектов.
- Label (Метки): результат функции.
Для составления прогнозов воспользуемся классическим набором данных ирисов Фишера. Датасет представляет набор из 150 записей с пятью атрибутами в следующем порядке: длина чашелистика (sepal length), ширина чашелистика (sepal width), длина лепестка (petal length), ширина лепестка (petal width) и класс, соответствующий одному из трех видов: Iris Setosa, Iris Versicolor или Iris Virginica, обозначенных соответственно 0, 1, 2. Наш алгоритм должен принимать четыре свойства одного конкретного цветка и предсказывать, к какому классу (виду ириса) он принадлежит. Имеющиеся в наборе данных метки можно использовать для оценки качества предсказания.
Для решения задач кластеризации данных в этой статье мы используем Python, библиотеку scikit-learn для загрузки и обработки набора данных и matplotlib для визуализации. Ниже представлен программный код для исследования исходного набора данных.
# Импортируем библиотеки from sklearn import datasets import matplotlib.pyplot as plt # Загружаем набор данных iris_df = datasets.load_iris() # Методы, доступные для набора данных print(dir(iris_df)) # Признаки print(iris_df.feature_names) # Метки print(iris_df.target) # Имена меток print(iris_df.target_names) # Разделение набора данных x_axis = iris_df.data[:, 0] # Sepal Length y_axis = iris_df.data[:, 1] # Sepal Width # Построение plt.xlabel(iris_df.feature_names[0]) plt.ylabel(iris_df.feature_names[1]) plt.scatter(x_axis, y_axis, c=iris_df.target) plt.show()
В результате запуска программы вы увидим следующие текст и изображение.
['DESCR', 'data', 'feature_names', 'target', 'target_names'] ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'] [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2] ['setosa' 'versicolor' 'virginica']
На диаграмме фиолетовым цветом обозначен вид Setosa, зеленым – Versicolor и желтым – Virginica. При построении были взяты лишь два признака. Вы можете проанализировать как разделяются классы при других комбинациях параметров.
Цель кластеризации данных состоит в том, чтобы выделить группы примеров с похожими чертами и определить соответствие примеров и кластеров. При этом исходно у нас нет примеров такого разбиения. Это аналогично тому, как если бы в приведенном наборе данных у нас не было меток, как на рисунке ниже.
Наша задача – используя все имеющиеся данные, предсказать соответствие объектов выборки их классам, сформировав таким образом кластеры.
Наиболее популярным алгоритмом кластеризации данных является метод k-средних. Это итеративный алгоритм кластеризации, основанный на минимизации суммарных квадратичных отклонений точек кластеров от центроидов (средних координат) этих кластеров.
Первоначально выбирается желаемое количество кластеров. Поскольку нам известно, что в нашем наборе данных есть 3 класса, установим параметр модели
Теперь случайным образом из входных данных выбираются три элемента выборки, в соответствие которым ставятся три кластера, в каждый из которых теперь включено по одной точке, каждая при этом является центроидом этого кластера.
Далее ищем ближайшего соседа текущего центроида. Добавляем точку к соответствующему кластеру и пересчитываем положение центроида с учетом координат новых точек. Алгоритм заканчивает работу, когда координаты каждого центроида перестают меняться. Центроид каждого кластера в результате представляет собой набор значений признаков, описывающих усредненные параметры выделенных классов.
# Импортируем библиотеки from sklearn import datasets from sklearn.cluster import KMeans # Загружаем набор данных iris_df = datasets.load_iris() # Описываем модель model = KMeans(n_clusters=3) # Проводим моделирование model.fit(iris_df.data) # Предсказание на единичном примере predicted_label = model.predict([[7.2, 3.5, 0.8, 1.6]]) # Предсказание на всем наборе данных all_predictions = model.predict(iris_df.data) # Выводим предсказания print(predicted_label) print(all_predictions)
Результат:
[1] [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 2 2 2 2 0 2 2 2 2 2 2 0 0 2 2 2 2 0 2 0 2 0 2 2 0 0 2 2 2 2 2 0 2 2 2 2 0 2 2 2 0 2 2 2 0 2 2 0]
При выводе данных нужно понимать, что алгоритм не знает ничего о нумерации классов, и числа 0, 1, 2 – это лишь номера кластеров, определенных в результате работы алгоритма. Так как исходные точки выбираются случайным образом, вывод будет несколько меняться от одного запуска к другому.
Характерной особенностью набора данных ирисов Фишера является то, что один класс (Setosa) легко отделяется от двух остальных. Это заметно и в приведенном примере.
Иерархическая кластеризация, как следует из названия, представляет собой алгоритм, который строит иерархию кластеров. Этот алгоритм начинает работу с того, что каждому экземпляру данных сопоставляется свой собственный кластер. Затем два ближайших кластера объединяются в один и так далее, пока не будет образован один общий кластер.
Результат иерархической кластеризации может быть представлен с помощью дендрограммы. Рассмотрим этот тип кластеризации на примере данных для различных видов зерна.
# Импортируем библиотеки from scipy.cluster.hierarchy import linkage, dendrogram import matplotlib.pyplot as plt import pandas as pd # Создаем датафрейм seeds_df = pd.read_csv( "http://qps.ru/jNZUT") # Исключаем информацию об образцах зерна, сохраняем для дальнейшего использования varieties = list(seeds_df.pop('grain_variety')) # Извлекаем измерения как массив NumPy samples = seeds_df.values # Реализация иерархической кластеризации при помощи функции linkage mergings = linkage(samples, method='complete') # Строим дендрограмму, указав параметры удобные для отображения dendrogram(mergings, labels=varieties, leaf_rotation=90, leaf_font_size=6, ) plt.show()
Можно видеть, что в результате иерархической кластеризации данных естественным образом произошло разбиение на три кластера, обозначенных на рисунке различным цветом. При этом исходно число кластеров не задавалось.
- Иерархическая кластеризация хуже подходит для кластеризации больших объемов данных в сравнении с методом k-средних. Это объясняется тем, что временная сложность алгоритма линейна для метода k-средних (O(n)) и квадратична для метода иерархической кластеризации (O(n2))
- В кластеризации при помощи метода k-средних алгоритм начинает построение с произвольного выбора начальных точек, поэтому, результаты, генерируемые при многократном запуске алгоритма, могут отличаться. В то же время в случае иерархической кластеризации результаты воспроизводимы.
- Из центроидной геометрии построения метода k-средних следует, что метод хорошо работает, когда форма кластеров является гиперсферической (например, круг в 2D или сфера в 3D).
- Метод k-средних более чувствителен к зашумленным данным, чем иерархический метод.
Метод t-SNE (t-distributed stochastic neighbor embedding) представляет собой один из методов обучения без учителя, используемых для визуализации, например, отображения пространства высокой размерности в двух- или трехмерное пространство. t-SNE расшифровывается как распределенное стохастическое соседнее вложение.
Метод моделирует каждый объект пространства высокой размерности в двух- или трехкоординатную точку таким образом, что близкие по характеристикам элементы данных в многомерном пространстве (например, датасете с большим числом столбцов) проецируются в соседние точки, а разнородные объекты с большей вероятностью моделируются точками, далеко отстоящими друг от друга. Математическое описание работы метода можно найти здесь.
Вернемся к примеру с ирисами и посмотрим, как произвести моделирование по этому методу при помощи библиотеки sklearn.
# Импорт библиотек from sklearn import datasets from sklearn.manifold import TSNE import matplotlib.pyplot as plt # Загрузка датасета iris_df = datasets.load_iris() # Определяем модель и скорость обучения model = TSNE(learning_rate=100) # Обучаем модель transformed = model.fit_transform(iris_df.data) # Представляем результат в двумерных координатах x_axis = transformed[:, 0] y_axis = transformed[:, 1] plt.scatter(x_axis, y_axis, c=iris_df.target) plt.show()
В этом случае каждый экземпляр представлен четырьмя координатами – таким образом, при отображении признаков на плоскость размерность пространства понижается с четырех до двух.
DBSCAN (Density-Based Spatial Clustering of Applications with Noise, плотностной алгоритм пространственной кластеризации с присутствием шума) – популярный алгоритм кластеризации, используемый в анализе данных в качестве одной из замен метода k-средних.
Метод не требует предварительных предположений о числе кластеров, но нужно настроить два других параметра: eps и min_samples. Данные параметры – это соответственно максимальное расстояние между соседними точками и минимальное число точек в окрестности (количество соседей), когда можно говорить, что эти экземпляры данных образуют один кластер. В scikit-learn есть соответствующие значения параметров по умолчанию, но, как правило, их приходится настраивать самостоятельно.
# Импортируем библиотеки from sklearn.datasets import load_iris import matplotlib.pyplot as plt from sklearn.cluster import DBSCAN from sklearn.decomposition import PCA # Загружаем датасет iris = load_iris() # Определяем модель dbscan = DBSCAN() # Обучаем dbscan.fit(iris.data) # Уменьшаем размерность при помощи метода главных компонент pca = PCA(n_components=2).fit(iris.data) pca_2d = pca.transform(iris.data) # Строим в соответствии с тремя классами for i in range(0, pca_2d.shape[0]): if dbscan.labels_[i] == 0: c1 = plt.scatter(pca_2d[i, 0], pca_2d[i, 1], c='r', marker='+') elif dbscan.labels_[i] == 1: c2 = plt.scatter(pca_2d[i, 0], pca_2d[i, 1], c='g', marker='o') elif dbscan.labels_[i] == -1: c3 = plt.scatter(pca_2d[i, 0], pca_2d[i, 1], c='b', marker='*') plt.legend([c1, c2, c3], ['Кластер 1', 'Кластер 2', 'Шум']) plt.title('DBSCAN нашел 2 кластера и шум') plt.show()
Об устройстве алгоритма простыми словами и о математической подноготной можно прочитать в этой статье.
Источник
Кластеризация | BaseGroup Labs
Кластеризация, которую иногда называют «сегментацией», подразумевает выделение из исходного множества данных групп объектов со схожими свойствами и часто выступает первым шагом при анализе данных. Разбиение на группы позволяет упростить работу с данными, после кластеризации применяются другие методы, для каждой группы строится отдельная модель.
Примеры применения
Сегментация и построение профилей клиентов. С помощью кластеризации можно выделить сегменты с группами «похожих» объектов. Данный алгоритм дает возможность выделить характерные признаки и персональные предпочтения клиентов, оценить наиболее и наименее доходные или активные сегменты. Это позволяет решить задачи разработки маркетинговых акций, направленных на определенные сегменты клиентов, повышает эффективность работы с ними.
Выявление целевой аудитории – наиболее ценной, перспективной, влиятельной группы потребителей, на которую, в первую очередь, будет направлена маркетинговая стратегия. Позволяет решить задачи разработки рекламного сообщения и подбора медиаканалов для его размещения, позиционирования, выбора товарного ассортимента и каналов дистрибуции… Концентрация усилий на целевой аудитории обеспечит максимизацию прибыли в сегменте.
Каннибализация товаров: продукты, находящиеся в одной рыночной нише, «поедают» друг друга, то есть конкурируют за потребителя между собой. Алгоритм дает возможность выделять товары, находящиеся в «зоне риска», прогнозировать эффект каннибализации и управлять им.
Анализ миграции клиентов – перемещение клиентов между поставщиками товаров и услуг, причиной которой является изменение их запросов со временем. Рассматриваемые алгоритмы позволяют прогнозировать миграцию клиентов, визуализировать ее, оценить изменение их ценности для компании, определить причину миграции. В результате происходит укрепление отношений с ценными клиентами и противодействие оттоку.
Описание алгоритма
В Deductor Studio подобный класс задач реализуется посредством алгоритма k-means и его разновидности g-means.
К наиболее простым и эффективным алгоритмам кластеризации относится k-means. Он состоит из четырех шагов.
- Задается число кластеров k, которое должно быть сформировано из объектов исходной выборки.
- Случайным образом выбирается k записей, которые будут служить начальными центрами кластеров. Начальные точки, из которых потом вырастает кластер, часто называют «семенами». Каждая такая запись представляет собой своего рода «эмбрион» кластера, состоящий только из одного элемента.
- Для каждой записи исходной выборки определяется ближайший к ней центр кластера.
- Производится вычисление центроидов — центров тяжести кластеров. Это делается путем определения среднего для значения каждого признака всех записей в кластере. Затем старые центры кластеров смещаются в его центроид. Таким образом, центроиды становятся новыми центрами кластеров для следующей итерации алгоритма.
Остановка алгоритма производится, когда границы кластеров и расположение центроидов перестает изменяться, то есть на каждой итерации в каждом кластере остается один и тот же набор записей. Алгоритм k-means обычно находит набор стабильных кластеров за несколько десятков итераций.
Одним из недостатков k-means является отсутствие ясного критерия для выбора оптимального числа кластеров. Чтобы решить данную проблему, было разработано большое количество алгоритмов, в том числе алгоритм g-means, позволяющий производить автоматический выбор оптимального числа кластеров на основании гауссовского (нормального) закона распределения, откуда и название алгоритма.
Подробную информацию о методах кластеризации можно получить в статье «Алгоритмы кластеризации на службе Data Mining».
Как работает многомерная кластеризация—ArcGIS Pro
Когда мы смотрим на мир вокруг нас, мы автоматически организуем, группируем, дифференцируем и классифицируем то, что видим, чтобы лучше понять окружающие нас объекты. Такой тип ментальной классификации необходим для обучения и понимания. Аналогично для лучшего изучения данных можно использовать инструмент Многомерная кластеризация. Используя число создаваемых кластеров, инструмент ищет решение, в котором все объекты в каждом кластере максимально похожи, а сами группы максимально отличаются друг от друга. Сходство объектов основано на наборе атрибутов, указываемых для параметра Поля анализа, а кластеры создаются методом k-средних.
Подсказка:
Кластеризация, группировка и классификация — одни из самых часто используемых.методов машинного обучения. Инструмент Многомерная классификация использует методы обработки «без обучения» для нахождения естественных кластеров ваших данных. Эти методы классификации называются классификацией «без обучения», так как не требуют набора классифицированных заранее объектов для «тренировки» алгоритма в целях дальнейшего поиска кластеров в ваших данных.
Хотя существуют сотни алгоритмов кластерного анализа, все из них классифицируются как NP-трудные. Это означает, что единственный способ гарантировать, что решение идеально максимизирует сходства в группе и различия между группами – перепробовать все возможные комбинации объектов, которые требуется сгруппировать. Хотя этого можно добиться при небольшом количестве объектов, задача быстро становится трудноразрешимой.
При этом не только нельзя найти оптимальное решение, но также нельзя определить алгоритм группировки, который будет работать лучше всего для всех возможных типов данных и сценариев. Кластеры бывают разных форм, размеров и плотностей. Атрибуты могут содержать данные с различными диапазонами, симметрией, непрерывностью и единицами измерений. Это объясняет, почему за последние 50 лет было разработано столько разных алгоритмов кластеризации. Эти инструменты следует рассматривать как исследовательский инструмент, позволяющий узнать больше о структурах в ваших данных.
Возможное применение
Некоторые способы использования этого инструмента перечислены ниже:
- Предположим, что у вас есть образцы сальмонеллы из ферм в вашей области. К атрибутам относятся тип/класс, расположение, а также дата и время. Чтобы лучше понять, как бактерии передаются и распространяются, можно использовать инструмент Многомерная кластеризация, чтобы разбить образцы на отдельные «вспышки». Хотя сам по себе анализ не является пространственным, по мере распространения эпидемия вы можете обнаружить в ваших результатах и пространственные закономерности. После определения кластеров можно использовать другие инструменты анализа пространственных шаблонов, такие как Эллипс стандартных отклонений, Усредненный центр или Ближайший объект для анализа каждой вспышки.
- Если вы собрали данные о наблюдении животных, чтобы лучше понять территорию их обитания, то и здесь инструмент Многомерная кластеризация может оказаться полезным. Знания о том, где и когда собираются стаи лосося, например, могут помочь в проектировании защищенных областей для обеспечения успешного нереста.
- Группируя клиентов на основе покупательских предпочтений, демографических характеристик, закономерностей перемещения или других поведенческих атрибутов, можно создать эффективную маркетинговую стратегию для продукции вашей компании.
Входные данные
Инструмент берет точечные, линейные или полигональные Входные объекты, путь к Выходным объектам, одно или несколько Полей анализа и целочисленное значение создаваемого Числа кластеров. Имеется также несколько дополнительных параметров, в том числе Метод инициализации и Выходная таблица оценки оптимального количества кластеров.
Поля анализа
Выберите числовые поля, которые отражают относительные, интервальные или порядковые системы измерений. Хотя номинальные данные могут быть представлены с помощью бинарных переменных, это обычно не работает, как и другие числовые типы переменных. Например, можно создать переменную Rural и назначить каждому объекту (например, каждому смежному кварталу переписи) значение 1, если это сельский объект, или значение 0, если это городской объект. Хороший пример использования этой переменной – это количество или доля площади сельскохозяйственных земель, связанная с каждым объектом.
Значения Полей анализа стандартизированы инструментом, так как переменные с большими диапазонами значений (в которых данные сильно растянуты относительно среднего) будут иметь большее влияние на кластеры, чем переменные с небольшими диапазонами значений. Стандартизация значений атрибутов включает z-трансформацию, где средняя величина всех значений вычитается из каждого значения и делится на стандартное отклонение, вычисленное для всех значений. Стандартизация помещает все эти атрибуты на одни весы, даже когда они представлены совершенно разными типами чисел: коэффициентами (от 0 до 1,0), численностью население (значение свыше 1 миллиона) и расстояниями (например, километрами).
Необходимо выбрать переменные, которые, по вашему мнению, будут отличать один кластер объектов от другого. Предположим, вы хотите сгруппировать школьные округа по успеваемости учеников в стандартных тестах. Вы можете выбрать поля анализа, такие как общие оценки по тестам, результаты для каждого предмета, например математика или литература, процент учеников, получивших минимальную оценку по тесту, и т. д. При запуске вами инструмента Многомерная кластеризация для каждой переменной вычисляется значение R2 и передается в окно сообщений. В сводных данных ниже, школьные округа сгруппированы на основе баллов учеников, набранных при тестировании, процента взрослых, которые не окончили среднюю школу, затрат на каждого ученика и среднего соотношение числа учеников и учителей. Обратите внимание, что у переменной TestScores самое большое значение R2. Это означает, что данная переменная наиболее эффективно разделяет школьные округа на кластеры. Значение R2 отражает, в какой степени вариация в исходных данных TestScores была сохранена в процессе группировки. Чем больше R2 для конкретной переменной, тем лучше переменная различает ваши объекты.
Более подробно:
R2 вычисляется следующим образом:
(TSS – ESS) / TSS
Где TSS – общая сумма квадратов, а ESS – объясненная сумма квадратов. TSS вычисляется за счет возведения в квадрат и суммирования отклонений от глобального среднего значения для переменной. ESS вычисляется одинаково, только отклонения применяются по группам: каждое значение вычитается из среднего значения для группы, которой оно принадлежит, а затем возводится в квадрат и суммируется.
Число кластеров
Иногда вы можете знать наиболее подходящее для ответа на ваш вопрос и проблему и можете ввести значение параметра Число кластеров. Но во многих случаях критерий для выбора точного числа кластеров не доступен. Вместо этого вам нужно получить число, которое лучше всего позволяет классифицировать сходства и различия объектов. В этой ситуации можно установить отметку Число кластеров и позволить инструменту Многомерная кластеризация оценить эффективность деления объектов на 2, 3, 4 и до 30 групп. Эффективность группировки измеряется с помощью псевдо-F-статистики Калински-Харабаза, которая является отношением вариации между кластерами к вариации внутри кластера: Другими словами, то отношение схожести объектов внутри группы к различию объектов между группами:
Метод кластеризации
Инструмент Многомерная кластеризация использует алгоритм K-средних по умолчанию. Цель этого алгоритма – разделить объекты так, чтобы различия между объектами внутри кластера были минимальными для всех кластеров. Так как алгоритм является NP-трудным, для группировки объектов используется «жадная эвристика». «Жадный» алгоритм всегда сводится к локальному минимуму, но не всегда находит глобальный (оптимальный) минимум.
Алгоритм K-средних сначала определяет источники, которые используются для формирования каждого кластера. Соответственно число начальных объектов всегда равно Числу кластеров. Первый начальный объект выбирается произвольно. При выборе оставшихся начальных значений (хотя случайный компонент также используется) применяется взвешивание, которое отдает предпочтение объектам, наиболее отдаленным от существующего набора начальных объектов (эта часть алгоритма называется K-средних ++). Из-за применения случайного компонента при поиске исходных объектов при выборе опции Оптимизированные расположения начальных объектов или Случайные расположения начальных объектов для параметра Метод инициализации могут возникать различные результаты кластеризации при нескольких запусках инструмента.
После определения исходных объектов все объекты назначаются ближайшему исходному объекту (в пространстве данных). Для каждого кластера объектов вычисляется центр данных, а каждый объект назначается ближайшему центру. Процесс вычисления центра данных для каждого кластера и назначения объектов ближайшему центру продолжается до стабилизации кластеров (возможно до 100 итераций).
Подобно алгоритму K-средних К-медоиды определяют исходные объекты, вокруг которых и формируются кластеры. Каждый исходный объект – существующий объект во Входных объектах. Эти исходные объекты называются – медоиды. Остальные объекты назначаются ближайшему медоиду (ближайшему в пространстве данных). Таким образом выполняется начальная кластеризация. Вычисляется сумма расстояний (в пространстве данных) между медоидами и объектами – не медоидами. Для рамках вычисления внутри каждого кластера медоид меняется местами с каждым объектом – не медоидом, и замет рассчитывается сумма расстояний (в пространстве данных) между каждым медоидом и не медоидом. Если при замене сумма расстояний увеличивается, замена отменяется, в противном случае замененный объект становится новым медоидом. Процесс поиска нового медоида и переназначения объектов ближайшему медоиду выполняется до тех пор, пока участники кластеров не будут определены окончательно.
K-средние и K-медоиды – два алгоритма вычисления кластеризации, которые, в общем, выдают схожие результаты. Но метод К-медоидов более чувствителен к шуму и выбросам у Входных объектов. Алгоритм K-средних, как правило, выполняется быстрее K-медоидов и применяется для больших наборов данных.
Выходные данные
Число выходных объектов, создаваемых инструментом Многомерная кластеризация. Сообщения можно просмотреть на панели Геообработка, поместив курсор на индикатор прогресса, щелкнув кнопку индикатора прогресса инструмента либо развернув раздел сообщений в нижней части панели Геообработка. Вы можете получить доступ к сообщениям для выполненного ранее инструмента Многомерная кластеризация из панели История геообработки.
Результатом работы инструмента Многомерная кластеризация по умолчанию является новый выходной класс объектов, содержащий поля, используемые в анализе, а также новое целочисленное поле CLUSTER_ID, содержащее информацию о том, какому кластеру каждый объект принадлежит. Этот выходной класс объектов добавляется в таблицу содержания с уникальной цветовой схемой отображения, которая применяется к полю CLUSTER_ID. Поле IS_SEED показывает, какие объекты использовались как начальные точки для наращивания кластеров.
Пример результата выполнения инструмента Многомерная кластеризацияВыходные данные диаграммы инструмента Многомерная кластеризация
Для суммирования созданных кластеров создается несколько типов диаграмм. Ящичковые диаграммы применяются для показа информации как о каждом из кластеров, так и о каждой переменной анализа. Ниже показано изображение, которое поможет вам анализировать ящичковые диаграммы и их суммарные значения для каждого Поля анализа и созданного кластера: минимальное значение данных, 1й квартиль, глобальная срединное значение, 3й квартиль, максимальное значение данных, и выбросы в данных (значения, меньшие или большие умноженного на 1.5 значения межквартильного размаха). Остановите курсор на ящичковой диаграмме, чтобы увидеть эти значения, а также значение межквартильного размаха. Все отметки, не попадающие в верхний или нижний ящичек (не находящиеся между минимумом и максимумом), представляют собой выбросы в данных.
Более подробно:
Межквартильный размах (IQR) – разность между 3м и 1м квартилем. Нижние выбросы – это значения меньше 1,5*IQR (Q1-1,5*IQR), а верхние выбросы – это значения больше 1,5*IQR (Q3+1,5*IQR). Выбросы отображаются на ящичковых диаграммах как символы точек.
В параллельной ящичковой диаграмме представлена сводка по кластерам и переменным в них. К примеру, инструмент Многомерная кластеризация был запущен на переписных участках для создания четырех кластеров. На показанном ниже изображении кластер 2 (красный) соответствует участкам с арендной платой выше среднего, в сравнении с другими кластерами, высочайшими значениями домовладений женщин с детьми (FHH_CHILD), высочайшими значениями количества жилых помещений (HSE_UNITS) и самыми высокими значениями количества детей возрастом до 5 лет. Кластер 4 (золотисто-желтый) соответствует участкам с высокими средними значениями арендной платы, достаточно низким числом домовладений женщин с детьми и достаточно высоким количеством жилых помещений. Кластер 3 (зеленый) соответствует участкам с самым низким числом домовладений женщин с детьми, самыми низкими значениями количества детей возрастом до 5 лет, минимальным числом жилых помещений и невысоким уровнем арендной платы (но выше, чем в кластере 1). Остановите курсор над каждым узлом средних линий, чтобы увидеть среднее значение кластера для каждого Поля анализа.
После изучения основной информации об анализе с параллельными ящичковыми диаграммами вы можете изучить ящичковые диаграммы каждого кластера для каждой переменной, выбрав Рядом на вкладке Серии панели Свойства диаграммы. В этом представлении данных легко увидеть, у какой группы наибольший и наименьший диапазон значений для каждой переменной. Для каждой переменной каждого кластера будет создана ящичковая диаграмма, и вы сможете увидеть, как связаны значения всех кластеров между собой. Поместите курсор над ящичковой диаграммой каждой переменной, чтобы увидеть минимальное, максимально и среднее значение для каждой переменной каждого кластера. На показанной ниже диаграмме вы увидите, что Кластер 4 (золотистый) характеризуется высочайшими значениями переменной MEDIANRENT и содержит участки с диапазоном значений от 354 до 813.
Также создается столбчатая диаграмма, показывающая число объектов в кластерах. При выборе каждого столбца будет также выбраны объекты на карте, что может вам помочь для выполнения последующего анализа.
Если вы оставляете пустым параметр Число кластеров, инструмент вычислит оптимальное для ваших данных количество кластеров. Если вы укажете путь для Выходной таблицы оценки числа кластеров, будет создана диаграмма с вычисленными значениями Псевдо-F-статистики. Высочайший пик графика – это наибольшая F-статистика, указывающая наиболее эффективное число групп для различения указанных объектов и переменных. На следующем графике F-статистика, связанная с четырьмя группами, имеет наибольшее значение. Пять групп с большим значением псевдо-F-статистики также будут хорошим выбором.
График Псевдо-F-статистики для оценки оптимального числа кластеровРекомендации
Хотя существует тенденция для включения максимально возможного числа Полей анализа, при использовании инструмента Многомерная кластеризация лучше начать с одной переменной. Результаты намного легче интерпретировать при меньшем числе полей анализа. Также легче определить, какие переменные лучше разделяют группы при меньшем количестве полей.
Во многих ситуациях вы запустите инструмент Многомерная кластеризация несколько раз в поисках оптимального Числа кластеров, наиболее эффективного сочетания Полей анализа, которые наилучшим образом объединяют ваши объекты в кластеры.
Если инструмент возвращает число 30 в качестве оптимального числа кластеров, обратите внимание на диаграмму F-статистики. Выбор числа кластеров и интерпретация графика F-статистики — особое умение, и вполне возможно, что меньшее число кластеров больше подойдет для вашего анализа.
Дополнительные источники
Jain, A. K. 2009. «Data Clustering: 50 years beyond K-Means.» Pattern Recognition Letters.
Hinde, A., T. Whiteway, R. Ruddick, and A. D. Heap. 2007. «Морские пейзажи австралийской границы и прилегающего морского дна: Методология нажатия клавиш» in Geoscience Australia, Record 2007/10, 58pp.
Отзыв по этому разделу?
Как работает Кластеризация на основе плотности—ArcGIS Pro
Параметр инструмента Кластеризация на основе плотности Метод кластеризации предлагает три опции для поиска кластеров в точечных данных:
Этот инструмент принимает на входе Входные точечные объекты, путь к Выходным объектам и значение минимального числа объектов, которые будут считаться кластером. В зависимости от Метода кластеризации могут быть дополнительные параметры, как, например, показано ниже.
Минимальное число объектов на кластер
Этот параметр определяет минимальное количество объектов, которые могут быть сгруппированы в кластер. Например, если у вас несколько различных кластеров размером от 0 до 100 точек и вы выберете Минимальное количество объектов для кластера равным 20, все кластеры размером менее 20 будут либо считаться шумом (так как не формируются в кластер подходящего размера), либо будут слиты с соседними кластерами, чтобы минимальное количество объектов было соблюдено. Напротив, задав значение Минимального числа объектов в кластере меньше, чем предполагаемый вами размер наименьшего значимого кластера, вы можете добиться разбиения этих кластеров на меньшие. Другими словами, чем меньше Минимальное число объектов в кластере, тем больше кластеров будет обнаружено. Чем больше Минимальное число объектов в кластере, тем меньше кластеров будет обнаружено.
Подсказка:
Идеальное значение Минимального числа объектов в кластере зависит от того, чего вы пытаетесь добиться и в чем цель вашего анализа. Оно должно соответствовать минимальному размеру, который будет считаться значимым кластером. Увеличение Минимального числа объектов в кластере может привести к слиянию некоторых небольших кластеров.
Параметр Минимальное число объектов в кластере также является очень значимым для вычисления кластерного расстояния, которое применяется всеми тремя методами нахождения кластеров. Концептуально кластерное расстояние для каждой точки — это дистанция, требуемая для достижения каждой точкой заданного минимального числа объектов. Если выбрано большое значение Минимального числа объектов в кластере, соответственно, и кластерное расстояние будет большим. Если выбрано маленькое значение Минимального числа объектов в кластере, то и кластерное расстояние будет небольшим. Кластерное расстояние связано с параметром Расстояние поиска, использующимся методами Заданное расстояние (DBSCAN) и Многомасштабный (OPTICS).
Показано кластерное расстояние, т.е. Расстояние от заданного объекта, необходимое для создания кластера с минимальным числом объектом, равным 4 (включая данный объект).
Расстояние поиска (DBSCAN и OPTICS)
Для метода Заданное расстояние (DBSCAN) в случае, если Минимальное число объектов в кластере не может быть найдено в пределах Расстояния поиска от конкретной точки, такая точка помечается, как основная точка и включается в кластер вместе со всеми точками в пределах кластерного расстояния. Граничная точка — это точка, которая находится в пределах расстояния поиска от точки кластера, но сама не имеет минимального количества объектов в пределах расстояния поиска. Каждый результирующий кластер состоит из основных и граничных точек, где основные точки имеют тенденцию попадать в середину кластера, а граничные точки на внешнюю часть. Если точка не имеет минимального количества объектов в пределах расстояния поиска и не находится в пределах расстояния поиска другой основной точки (другими словами, это не основная точка и не граничная точка), она помечается как точка шума и не входит ни в один кластер.
Показана кластеризация минимум четырех объектов на кластер. У основной точки есть четыре соседа в пределах расстояния поиска (включая себя). Граничная точка имеет только три объекта в пределах расстояния поиска, но она является соседом основной точки, поэтому она включена в кластер. У точки шума нет четырех объектов в пределах расстояния поиска, и она не является соседом основной точки, поэтому не включается в кластер.
Для метода Мультимасштабный (OPTICS) значение Расстояние поиска, рассматривается, как максимальное расстояние, сравниваемое с кластерным расстоянием. Метод Мультимасштабный (OPTICS) использует концепцию максимально достижимого расстояния, являющегося расстоянием от точки до ее ближайшего соседа, еще не появлявшегося в поиске. (Помните: OPTICS i — упорядоченный алгоритм, начинающий работу с объекта с минимальным ID и переходит от этой точки к следующей точке для создания графика. Порядок точек влияет на результаты его работы.) Метод Многомасштабный (OPTICS) будет проверять все соседние расстояния в пределах заданного Расстояния поиска, сравнивая каждое из них с кластерным расстоянием. Если какое-то расстояние окажется меньше кластерного, то объекту присваивается это кластерное расстояние в качестве достижимого. Если все расстояния оказываются большими, чем кластерное расстояние, наименьшее из них считается достижимым. Когда в пределах расстояния поиска больше нет точек, процесс перезапускается с новой точки, которая ранее не появлялась в поиске. В каждой итерации пересчитываются и сортируются расстояния достижимости. Наименьшее из расстояний используется для определения конечного расстояния достижимости каждой точки. Эти расстояния достижимости затем используются для создания графика достижимости, являющегося упорядоченным графиком расстояний достижимости, который применим для определения кластеров.
Если были проверены все объекты, находящиеся в пределах кластерного расстояния, объекту присваивается Расстояние достижимости, равное наименьшему расстоянию между выбранным объектом и другими объектами в пределах допуска Расстояние поиска.
Для обоих методов, Заданное расстояние (DBSCAN) и Мультимасштабный (OPTICS), по умолчанию Расстоянием поиска является наибольшее значение кластерного расстояния, найденное в наборе данных, исключая те, которые попадают в верхние 1% (т.е., исключая наивысшие значения кластерного расстояния).
Кластеризация в пространстве и времени (DBSCAN и OPTICS)
В двух методах кластеризации время каждой точки может быть указано в параметре Поле времени. Если задано, то инструмент будет искать кластеры точек, которые находятся близко друг к другу в пространстве и времени. Параметр Интервал времени поиска аналогичен расстоянию поиска и используется для определения основных точек, граничных точек и точек шума пространственно-временных кластеров.
Для метода Заданное расстояние (DBSCAN), при поиске участников кластера, Минимальное число объектов на кластер должно быть найдено в значениях Расстояние поиска и Интервал времени поиска, чтобы быть центральной точкой пространственно-временного кластера.
На следующем изображении расстояние поиска составляет 1 милю, интервал времени поиска 3 дня, а минимальное количество объектов 4. Точка P является основной, потому что есть четыре точки в пределах расстояния поиска и временного интервала (включая саму себя). Точка Q является граничной, потому что есть только три точки в пределах расстояния поиска и временного интервала, но эта точка находится в пределах расстояния поиска и временного интервала от основной точки кластера (точка с отметкой времени 1/5/2021). Точки C и D являются точками шума, потому что они не являются ни основными, ни граничными точками кластера, а все другие точки (включая P и Q) образуют единый кластер.
Для метода Мультимасштабный (OPTICS) все точки за пределами Интервала времени поиска будут исключены, при этом для точки вычисляется ее кластерное расстояние, ищутся все расстояния до соседей в рамках указанного значения Расстояние поиска и вычисляется расстояние достижимости.
На следующем изображении расстояние поиска составляет 2 мили, интервал времени поиска 3 дня, а минимальное количество объектов 4. Кластерное расстояние для точки P вычисляется с пропуском точки q3, поскольку она находится за пределами интервала времени поиска. В этом случае кластерное расстояние для P равно расстоянию достижимости для P.
На следующем изображении показано вычисление расстояния достижимости, когда некоторые соседние точки уже были просмотрены. Точки q1, q2 и q4 были пропущены, потому что они были ранее просмотрены, а точки q3 и q5 были пропущены, потому что они находятся за пределами окна временного поиска.
График достижимости (OPTICS)
После того как будут вычислены все расстояния достижимости набора данных, создается график достижимости, упорядочивающий расстояния и показывающий кластерную структуру точек.
Понижения графика означают, что между точками небольшое расстояние. То есть эти участки соответствуют кластерам точек. Чем более плотным является кластер, тем меньше будут расстояния достижимости и тем глубже будет впадина на графике (например, розовый кластер — самый плотный в показанном выше примере). У менее плотных кластеров большие расстояния доступности и более высокие области на графике (например, темно-зеленый кластер — наименее плотный в показанном выше примере). Пики отображают расстояния, необходимые для перемещения от кластера к кластеру либо от кластера до шума и снова до кластера — в зависимости от конфигурации набора точек.
Расстояния достижимости от пиков и впадин на графике достижимости. Когда между точками большие расстояния, в графике достижимости образуются пики.
Плоские области появляются, если Расстояние поиска меньше наибольшего кластерного расстояния. Ключевым моментом использования метода кластеризации OPTICS является способ определения кластеров на графике достижимости, контролирующийся параметром Чувствительность кластера.
Чувствительность кластера
Параметр Чувствительность кластера определяют, как форма пиков (и уклон, и высота) на графике достижимости будет использоваться для разделения кластеров. Очень высокое значение Чувствительности кластера (близкое к 100) приведет к рассмотрению даже минимального пика в качестве разделения между кластерами, в результате чего будет получено очень большое их количество. Очень низкая Чувствительность кластера (близкое к 0) будет рассматривать в качестве границ для кластеров только наиболее крутые и высокие пики, что приводит к меньшему количеству кластеров.
Низкая Чувствительность кластера против Высокой Чувствительности кластера
По умолчанию Чувствительность кластера вычисляется, как допуск, при котором при добавлении новых кластеров не появляется дополнительной информации, вычисляется, как Дивергенция Кулбака-Лейблера между исходным графиком достижимости и сглаженным графиком достижимости, полученным после кластеризации.
Python алгоритмы: Кластеризация данных
Он в корне отличается от иерархической кластеризации, поскольку ему нужно заранее указать, сколько кластеров генерировать. Алгоритм определяет размеры кластеров исходя из структуры данных.
Кластеризация методом K-средних начинается с выбора k случайно расположенных центроидов (точек, представляющих центр кластера). Каждому элементу назначается ближайший центроид. После того как назначение выполнено, каждый центроид перемещается в точку, рассчитываемую как среднее по всем приписанным к нему элементам. Затем назначение выполняется снова. Эта процедура повторяется до тех пор, пока назначения не прекратят изменяться.
На первом шаге случайно размещены два центроида (изображены темными кружками). На втором шаге каждый элемент приписан к ближайшему центроиду. В данном случае A и B приписаны к верхнему центроиду, а C, D и E – к нижнему. На третьем шаге каждый центроид перемещен в точку, рассчитанную как среднее по всем приписанным к нему элементам. После пересчета назначений оказалось, что C теперь ближе к верхнему центроиду, а D и E – по-прежнему ближе к нижнему. Окончательный результат достигается, когда A, B и C помещены в один кластер, а D и E – в другой.
В данном методе, ОЧЕНЬ важен выбор центроидов, т.к. в конечном итоге все точки к ним стянутся, но если все 4 будут очень близкие цвета и из них будут состоять большие области, то в конечном итоге вы и получите приблизительно одинаковые центры. Таким образом центроиды должны быть максимально разнесены (желательно равномерно и равноудаленно).
Для большего понимания приведу пример. Давайте рассмотрим такую картинку.
Чтобы решить поставленную задачу в такой, монотонной четко разделенной картинке, достаточно написать небольшой код:
def k_cluster_by_area(points, k=4): clusters_by_area = {} for point in points: clusters_by_area[point] = clusters_by_area.setdefault(point, 0) + 1 sorted_x = sorted(clusters_by_area.items(), key=operator.itemgetter(1)) return sorted_x[-k:]
Тут мы просто посчитали, сколько раз, какой цвет встречается, отсортировали и вывели k результатов. Этот метод можно применить к любому изображению, работает достаточно быстро, но есть НО! А именно, мы не получим ТОНАЛЬНОСТЬ картинки! Однако, как я писал выше, в нашей задаче важны центры, вот эту задачу и решает этот код!) Мы берем самые популярные цвета, за изначальные центры кластеров, а потом они постепенно мутируют) На самом деле, желательно брать не просто первые k, а посчитать все комбанации расстояний и выбрать k по макс расстояниям, чтобы центры не оказались рядом (например 2 оттенка серого). Но мне влом и вы сделаете это сами)
Надеюсь, стало яснее. Таким образом, как найти изначальные центры кластеров нам известно, осталось только свести все пиксели в эти точки. А теперь сам код:
def k_cluster(img, distance=euclidean, k=4): points = get_points(img) clusters = {} # центры кластеры cluster_centers = k_cluster_by_area(points, k) for cluster_center in cluster_centers: # avg_sum_coords - список сумм r, g, b координат всех пикселей кластера # count_points - кол-во пикселей в кластере # какие конкретно пиксели в кластере не запоминаем в целях экономии памяти и времени clusters[cluster_center] = {'avg_sum_coords':list(cluster_center), 'count_points':1} while len(points): # находим ближайшие точки к центрам кластеров bestmatches = {} for point in points: # расстояние каждой точки до каждого центра кластера for cluster_center in clusters: d = distance(cluster_center, point) if not bestmatches: bestmatches = {'distance':d, 'point': point, 'cluster_center': cluster_center} if d < bestmatches['distance']: bestmatches = {'distance': d, 'point': point, 'cluster_center': cluster_center} # перекидываем ближайшие точки в соответствующий кластер bestmatch = bestmatches['point'] cluster_center = bestmatches['cluster_center'] points2 = [] new_points = [] for point in points: if point == bestmatch: new_points.append(point) else: points2.append(point) points = points2[:] # меняем центр кластера print clusters.keys(), len(points) r_avg, g_avg, b_avg = 0, 0, 0 cluster_avg_coord = clusters[cluster_center]['avg_sum_coords'] new_points_len = len(new_points) clusters[cluster_center]['count_points'] += new_points_len claster_count_points = clusters[cluster_center]['count_points'] cluster_avg_coord[0] += bestmatch[0]*new_points_len cluster_avg_coord[1] += bestmatch[1]*new_points_len cluster_avg_coord[2] += bestmatch[2]*new_points_len new_center = cluster_avg_coord[0]/claster_count_points, cluster_avg_coord[1]/claster_count_points, cluster_avg_coord[2]/claster_count_points # если новый центр кластера отличается от предыдущего if not new_center in clusters: clusters[new_center] = clusters.pop(cluster_center) return clusters.keys()
Работает это дело не быстро ;(, поэтому я советую сжимать картинку, хотя бы до разрешения 100 на 100.
Понятно, что идея не нова и сравнить вы можете, например с данным сайтом http://design-seeds.com
Давайте разберем пример. С указанного выше сайта взяли картинку и их разбиение на цвета. Здесь можно заметить, что их задача — это выбрать основные центровые цвета, что немного отличается от нашей задачи, но все же.
Пример с сайта |
7 раз |
4 раза |
4 раза |
4 раза |
5 раз |
Кластеризация (кластерный анализ): что это такое
Кластеризация — это разбиение множества объектов на подмножества (кластеры) по заданному критерию. Каждый кластер включает максимально схожие между собой объекты. Представим переезд: нужно разложить по коробкам вещи по категориям (кластерам) — например одежда, посуда, декор, канцелярия, книги. Так удобнее перевозить и раскладывать предметы в новом жилье. Процесс сбора вещей по коробкам и будет кластеризацией.
Критерии кластеризации определяет человек, а не алгоритм, — этим она отличается от классификации. Этот метод машинного обучения (Machine Learning) часто применяют в различных неструктурированных данных — например если нужно автоматически разбить коллекцию изображений на мини-группы по цветам.
Визуализация кластеризацииКластерный анализ применяют в разных сферах:
- в маркетинге — для сегментирования клиентов, конкурентов, исследования рынка;
- медицине — для кластеризации симптомов, заболеваний, препаратов;
- биологии — для классификации животных и растений;
- социологии — для разбиения респондентов на однородные группы;
- компьютерных науках — для группировки результатов при поиске сайтов, файлов и других объектов.
Объект описывается при помощи набора характеристик. Признаки бывают числовые и категориальные. Например, можно кластеризовать группу покупателей на основе их покупок в интернет-магазине. В качестве входных данных будут средний чек, возраст, количество покупок в месяц, любимая категория покупок и другие критерии.
Это симметричная таблица, где по строкам и столбцам расположены объекты, а на пересечении — расстояние между ними: например, таблица с расстояниями между отелями в разных городах. Такой способ может помочь выделить кластеры отелей, которые сгруппированы в одной и той же локации.
Курс
Machine Learning
Освойте самую востребованную технологию искусственного интеллекта. Дополнительная скидка 5% по промокоду BLOG.
Узнать больше
Кластеризация актуальна, если исходная выборка слишком большая. В результате от каждого кластера остается по одному типичному представителю. Количество кластеров может быть любым — здесь важно обеспечить максимальное сходство объектов внутри каждой группы.
Разбиение объектов на кластеры позволяет добавить дополнительный признак каждому объекту. Так, если в результате кластерного анализа выявилось, что определенный покупатель относится к первому кластеру, и мы знаем, что первый кластер — это кластер людей, которые тратят большое количество денег на покупки по средам, то можно сказать, что это покупатель приобретает продукты в основном по средам.
В этом случае выделяют нетипичные объекты, не подходящие ни к одному сформированному кластеру. Интересны отдельные объекты, которые не вписываются ни в одну из сформированных групп.
Общепринятой классификации методов нет, но есть несколько групп подходов.
1. Вероятностный подход. В рамках него предполагается, что каждый из объектов относится к одному из классов.
- EM-алгоритм применяется для нахождения оценок максимального правдоподобия параметров вероятностных моделей (если есть зависимость от скрытых переменных).
- K-средних — алгоритм минимизирует суммарное квадратичное отклонение точек кластеров от их центров.
- Алгоритмы семейства FOREL основаны на идее объединения объектов в один кластер в областях их максимальной концентрации.
2. Подходы с учетом систем искусственного интеллекта. Большая условная группа методов, разнится с методической точки зрения.
- Метод нечеткой кластеризации C-средних предполагает разбиение имеющегося множества элементов на определенное число нечетких множеств. Метод является усовершенствованным вариантом К-средних.
- Нейронная сеть Кохонена — класс нейронных сетей со слоем Кохонена, состоящим из линейных формальных нейронов.
- Генетический алгоритм — алгоритм поиска, применяемый для решения задач оптимизации и моделирования с помощью случайного подбора, вариации и комбинирования искомых параметров. Используются механизмы, аналогичные естественному отбору в природе.
4. Иерархический подход. Предполагает наличие вложенных групп — кластеров разного порядка. Выделяются агломеративные и дивизионные (объединительные и разделяющие) алгоритмы. В зависимости от количества признаков могут выделяться политетические (используют при сравнении нескольких признаков одновременно) и монотетические (используют при применении одного признака) методы классификации.
В кластеризации имеют дело с множеством объектов (X) и множеством номеров кластеров (Y). Задана функция расстояния между объектами (p). Нужно разбить обучающую выборку на кластеры, так чтобы каждый кластер состоял из объектов, близких по метрике p, а объекты разных кластеров существенно отличались. При этом каждому объекту приписывается номер кластера y(i).
Алгоритм кластеризации — это функция, которая любому объекту X ставит в соответствие номер кластера Y.
Курс
Data Science с нуля
Вы получите достаточную математическую подготовку и опыт программирования на Python, чтобы решать задачи машинного обучения.
- 8 проектов в портфолио;
- соревнования на Kaggle;
- помощь в трудоустройстве.
Узнать больше
Промокод BLOG +5% скидки
Группировка пользователей методами кластеризации данных
Время прочтения: 6 мин.Данные не только не всегда очевидно указывают на определенную группу, порой непонятно даже сколько таких групп. Для решения подобного рода проблем существует целый класс задач машинного обучения — кластеризация. Данный класс задач относится к категории unsupervised learning, то есть обучение без размеченных данных, поэтому является очень ценным в условиях, когда исследование только начинается. Эта статья посвящена решению проблемы группировки пользователей по собранной статистике методами кластеризации.
Возьмем для примера данные пользователей, которые заходили на сайт компании и кликали на ссылки. При помощи подходящего link tracker посчитаем количество кликов по тем или иным элементам сайта за определенное время от каждого зарегистрированного пользователя, просуммируем, например, по неделям и пронормируем на среднее. Для примера рассмотрим сгенерированный датасет.
Начнем с генерации сета, имитирующего поведение трех групп пользователей, кликающих по 5 ссылкам с 1000 разных аккаунтов. Для этого воспользуемся методом make_blobs из пакета sklearn.
from sklearn.datasets import make_blobs
import numpy as np
data, pregenerated= make_blobs(1000,n_features=5,cluster_std=4)
В массив data будут записаны пять фич, каждая из которых является суммой трех гауссиан с центрами в трех разных точках, которые и являются кластерами. Имена этих заранее известных кластеров записаны в переменной pregenerated. Построим фичи друг относительно друга:
from pandas.plotting import scatter_matrix
import pandas as pd
scatter_matrix(pd.DataFrame(data), alpha=0.2, figsize=(6, 6), )
pd.Series(pregenerated).value_counts()
Видно, что по фичам ничего невозможно понять — даже сколько там кластеров. Это весьма похоже на реальные данные. Преобразуем массив данных в датасет и назовем фичи так, как будто это и есть реальные данные.
result_df = pd.DataFrame(data)
result_df.columns = ["каталог","доставка","о нас","реклама","адреса"]
result_df["группа"] = pregenerated
result_df.head()
Далее понаблюдаем, как даже самый базовый метод кластеризации легко справляется с задачей группировки данных. Прогоним полученный датасет через популярную модель для кластеризации — k-means. Ее главный минус в том, что нужно знать заранее количество кластеров. Обычно это решается либо эмпирически, либо моделями способными на поиск количества кластеров, таких как DBSCAN. У нас же количество кластеров известно заранее.
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3).fit(data)
Для валидации построим распределение как изначальных, так и предсказанных кластеров.
result_df["предсказанные"] = kmeans.labels_
print(result_df["группа"].value_counts())
print(result_df["предсказанные"].value_counts())
result_df.head()
0 334
2 333
1 333
Name: группа, dtype: int64
0 341
1 333
2 326
Name: предсказанные, dtype: int64
Поскольку мы заранее знали к какому кластеру принадлежит тот или иной пользователь — мы ведь их сами создавали — есть возможность проверить насколько хорошо справился k-means со своей задачей. В соответствии с вышеприведенной частью датасета переназначим найденные алгоритмом кластеры и сравним их с сгенерированными:
temp = result_df["предсказанные"].map({2:0,0:1,1:2}) - result_df["группа"]
temp.value_counts(normalize=True)
0 0.971
-1 0.018
1 0.011
dtype: float64
Впечатляющее качество распознавания! К сожалению, в реальных данных этой информации как правило нет, а если есть, то это уже supervised learning и изначально нужно было решать задачу классификации, а не кластеризации. Проблему сложности восприятия табличных данных о кластерах принято решать графически при помощи dimensional reduction, что позволяет все фичи ужать до двух, x и y, и построить их на графике. Существует много алгоритмов dr, мы покажем один из самых популярных из-за своей красоты t-sne.
from matplotlib import pyplot as plt
from sklearn.manifold import TSNE
tsne_df = TSNE(n_components=2,perplexity=20).fit_transform(data)
result_df["tsneX"] = tsne_df[:,0]
result_df["tsneY"] = tsne_df[:,1]
plt.scatter(result_df["tsneX"], result_df["tsneY"],s=2,)
plt.savefig("blobs_gray.jpg",dpi=1200,transparent=True)
Как мы видим, пять фич сжались до двух, чтобы уместиться на плоскости. Кроме того, точки разделились на несколько различимых взглядом агломератов. Для проверки выделим точки справа по координатам и посмотрим какие из изначально созданных групп пользователей в него входят.
result_df[(result_df['tsneX']>15) & (result_df['tsneY']<5)]["группа"].value_counts()
0 325
1 19
Name: группа, dtype: int64
Действительно, соответствует сгенерированному кластеру с кодом 0.
Если бы это были реальные данные, мы бы многое поняли о пользователях из этого графика — во первых группы пользователей действительно есть, их как минимум две, во вторых — все пользователи пользуются всеми ссылками, просто с разной интенсивностью, ведь кластеры связаны. Чтобы извлечь больше выводов из этого графика, можно добавить в него больше внешней информации. Проще всего изменению поддаются цвет точек, их фон и размер. Красить точки и фон лучше в категориальные фичи, размер же отведен для численных. В данном примере у нас нет никаких категориальных фич, кроме, собственно, кластеров к которым принадлежат точки. Покрасим точки на графике в цвета согласно известным нам заранее группам пользователей, для валидации. Этой информации у модели не было.
def colorer(row,column):
if row[column] == 1:
return "Green"
if row[column] == 2:
return "Brown"
return "Magenta"
result_df["цвет"] = result_df.apply(colorer,axis = 1,column = "группа")
plt.scatter(result_df["tsneX"], result_df["tsneY"],s=2,c=list(result_df['цвет']))
plt.savefig("blobs_colored.jpg",dpi=1200,transparent=True)
Метод t-sne сумел отделить фиолетовый кластер от двух других. В реальной ситуации в качестве цвета обычно выступает собранная помимо статистики переходов по ссылкам эвристика, например user agent их браузера, или их участие/неучастие в опросе, или проведенное на странице время. Бывает так, что кластеры видны плохо и выводы делать трудно. Для визуального определения помимо цвета можно использовать размер точек, делая более важные точки больше. При анализе поведения пользователей одной из самых важных для визуализации фич является активность.
Для примера сгенерируем ее при помощи случайных чисел, зависящих от номера кластера
result_df["активность"] = np.random.randint(1,10, len(result_df))*(result_df["группа"]+0.1)
plt.scatter(result_df["tsneX"], result_df["tsneY"],s=list(result_df['активность']),c=list(result_df['цвет']))
plt.savefig("blobs_size.jpg",dpi=1200,transparent=True)
Видно, что в фиолетовый кластер входили самые неактивные пользователи, а в коричневый — самые активные. При этом случайные вбросы фиолетового цвета в зеленый стали менее видны, и это плюс, ведь нам важнее поведение активных пользователей, нежели чем неактивных.
Параметр размера также можно использовать для создания фона под картинкой, добавляя второй scatter на тот же график, с большим размером точки s и низкой прозрачностью alpha
result_df["фон"] = result_df.apply(colorer,axis = 1,column = "предсказанные")
plt.scatter(result_df["tsneX"], result_df["tsneY"],s = 100, c=list(result_df['фон'])
,marker = "o",alpha = 0.05)
plt.scatter(result_df["tsneX"], result_df["tsneY"],s=list(result_df['активность']),c=list(result_df['цвет']))
plt.savefig("blobs_background.jpg",dpi=1200,transparent=True)
Использование фона очень полезно, если есть возможность эвристически распределить пользователей в другие группы, не связанные с поведением, например на фон можно поместить категорию размера города для каждой точки.
На этом этап построения графиков заканчивается, и начинается анализ результатов, включающий демонстрацию графика коллегам, поиск скрытых в нем инсайдов и многого другого, выходящего за рамки статьи. Совокупность вышеперечисленных подходов применима к любым неразмеченным данным, и была успешно использована для выявления интереса (и отсутствия интереса) к продуктам среди посетителей определенного сайта. Подобное исследование может дать пищу для размышлений в рамках выполнения обязанностей аналитиков, маркетологов и аудиторов.
Код можно скачать по ссылке https://github.com/RomanKrekhno/table_recognition_example/blob/master/clustering%20example.ipynb
Что такое кластеризация и как она работает? | KNIME
Что такое кластеризация?
Давайте сразу перейдем к делу и для объяснения взглянем на диаграмму рассеяния. Как вы могли заметить, кажется, что точки данных сгруппированы в отдельные группы (рис. 1).
Рис. 1. Диаграмма разброса данных примераЧтобы сделать это очевидным, мы показываем те же данные, но теперь точки данных окрашены в цвет (рис. 2). Эти точки концентрируются в разных группах или кластерах, потому что их координаты близки друг к другу.В этом примере пространственные координаты представляют собой два числовых объекта, и их пространственная близость может быть интерпретирована как их сходство с точки зрения их характеристик. Реально говоря, у нас может быть много функций в нашем наборе данных, но идея близости (= подобия) все еще применима даже в пространстве более высоких измерений. Более того, нет ничего необычного в наблюдении кластеров в реальных данных, представляющих разные группы точек данных со схожими характеристиками.
Рис. 2. Диаграмма разброса данных примера, с разными кластерами, обозначенными разными цветами.Кластеризация относится к алгоритмам для обнаружения таких кластеров в немаркированных данных.Точки данных, принадлежащие одному кластеру, обладают схожими характеристиками, тогда как точки данных из разных кластеров не похожи друг на друга. Идентификация таких кластеров приводит к сегментации точек данных на несколько отдельных групп. Поскольку группы идентифицируются на основе самих данных, в отличие от известных целевых классов, кластеризация рассматривается как обучение без учителя.
Как вы уже видели, кластеризация может идентифицировать (ранее неизвестные) группы в данных. Относительно однородные точки данных, принадлежащие одному кластеру, могут быть суммированы одним представителем кластера, что позволяет сократить объем данных.Кластеризацию также можно использовать для выявления необычных наблюдений, отличных от других кластеров, таких как выбросы и шумы.
Кластеры, сформированные разными методами кластеризации, могут иметь разные характеристики (рисунок 3). Кластеры могут иметь разную форму, размер и плотность. Кластеры могут образовывать иерархию (например, кластер C формируется путем слияния кластеров A и B). Кластеры могут не пересекаться, соприкасаться или перекрываться. Теперь давайте посмотрим, как кластеры с разными свойствами создаются разными алгоритмами кластеризации.В частности, мы даем обзор трех методов кластеризации: кластеризация k-средних, иерархическая кластеризация и DBSCAN.
Рис. 3. Кластеры с разными характеристиками.Как работает кластеризация?
Кластеризация k-средних
Кластеризацияk-средних, пожалуй, самый популярный алгоритм кластеризации. Это метод разделения, разделяющий пространство данных на K отдельных кластеров. Он начинается со случайно выбранных K центров кластеров (рис. 4, слева), а все точки данных назначаются ближайшим центрам кластеров (рис. 4, справа).Затем центры кластеров пересчитываются как центроиды вновь образованных кластеров. Точки данных переназначаются ближайшим центрам кластеров, которые мы только что пересчитали. Этот процесс, назначение точек данных центрам кластеров и повторный расчет центров кластеров, повторяется до тех пор, пока центры кластеров не перестанут двигаться (рисунок 5).
Рис. 4. Случайно выбранные K центров кластеров (слева) и результирующие кластеры (справа). Рис. 5. Центры кластеров итеративно пересчитываются до тех пор, пока они не перестанут двигаться (gif).Кластеры, образованные с помощью кластеризации k-средних, имеют тенденцию быть похожими по размеру. Причем кластеры имеют выпуклую форму. Кластеризация k-средних известна своей чувствительностью к выбросам. Также на результаты кластеризации может сильно повлиять выбор начальных центров кластеров.
Иерархическая кластеризация
Алгоритм иерархической кластеризации работает путем итеративного соединения ближайших точек данных для формирования кластеров. Первоначально все точки данных отключены друг от друга; каждая точка данных рассматривается как отдельный кластер.Затем две ближайшие точки данных соединяются, образуя кластер. Затем две ближайшие ближайшие точки данных (или кластеры) соединяются, чтобы сформировать больший кластер. И так далее. Процесс повторяется для формирования постепенно увеличивающихся кластеров и продолжается до тех пор, пока все точки данных не будут соединены в один кластер (рисунок 6).
Рис. 6. Дендрограмма (слева), полученная в результате иерархической кластеризации. По мере увеличения порогового расстояния образуются более крупные кластеры. Кластеры обозначены разными цветами на диаграмме рассеяния (справа), а также на дендрограмме.Иерархическая кластеризация формирует иерархию кластеров, описанную на диаграмме, известной как дендрограмма (рисунок 6, слева). Дендрограмма описывает, какие точки данных / кластеры связаны на каком расстоянии, начиная от отдельных точек данных внизу до одного большого кластера наверху. Чтобы получить раздел кластера с определенным количеством кластеров, можно просто применить порог отсечения на определенном расстоянии на дендрограмме, создав желаемое количество кластеров (рисунок 7).
Рис. 7. Шесть кластеров формируются при пороге отсечки 1.0.Форма кластеров, образованных иерархической кластеризацией, зависит от того, как рассчитывается расстояние между кластерами. В методе одиночной связи расстояние между кластерами измеряется двумя ближайшими точками между двумя кластерами (рисунок 8, слева). Этот метод имеет тенденцию создавать хорошо разделенные кластеры (рис. 8, в центре и справа). С другой стороны, в методе полной связи расстояние рассчитывается как самые дальние точки между двумя кластерами (рис. 9, слева).Полученные кластеры имеют тенденцию быть компактными по размеру, но не обязательно хорошо разделенными (рис. 9, в середине и справа). В методе средней связи расстояние между кластерами рассчитывается как расстояние между центрами тяжести между двумя кластерами. Этот подход представляет собой компромисс между методами одиночной и полной связи.
Рис. 8. Расчет расстояния в методе одинарной навески (слева). Этот метод создает хорошо разделенные кластеры (средний и правый). Рис. 9. Расчет расстояния в методе полной навески (слева).Этот метод создает компактные кластеры (средний и правый).DBSCAN
DBSCAN означает пространственную кластеризацию приложений с шумом на основе плотности. Это метод кластеризации на основе плотности, группирующий плотные облака точек данных в кластеры. Любые изолированные точки считаются не частью кластеров и рассматриваются как шумы. Алгоритм DBSCAN начинается со случайного выбора начальной точки. Если в окрестности этой точки находится достаточно большое количество точек, то эти точки считаются частью того же кластера, что и начальная точка.Затем исследуются окрестности вновь добавленных точек. Если в этих окрестностях есть точки данных, то эти точки также добавляются в кластер. Этот процесс повторяется до тех пор, пока в этот конкретный кластер не перестанут быть добавлены точки. Затем в качестве отправной точки для другого кластера случайным образом выбирается другая точка, и процесс формирования кластера повторяется до тех пор, пока не перестанут быть доступны точки данных для назначения кластерам (рисунок 10). Если точки данных не находятся в окрестности каких-либо других точек данных, такие точки данных считаются шумами.Кластеры любой формы могут быть сформированы с помощью алгоритма DBSCAN (рисунок 11).
Рис. 10. Процесс формирования кластера с помощью алгоритма DBSCAN. Рис. 11. Примеры кластеров, формируемых DBSCAN.узлов кластеризации в KNIME Analytics Platform
Три описанных выше алгоритма кластеризации, k-среднее, иерархическая кластеризация и DBSCAN, доступны на платформах KNIME Analytics как узлы k-средних, иерархической кластеризации и DBSCAN соответственно. Эти узлы запускают алгоритм кластеризации и назначают метки кластера точкам данных.Вот пример рабочего процесса Кластеризация смоделированных кластеризованных данных с помощью этих методов кластеризации (рисунок 12). Вы можете загрузить этот рабочий процесс из KNIME Hub, чтобы попробовать себя.
Рис. 12. Пример рабочего процесса — кластеризация на смоделированных кластерных данных — реализация трех алгоритмов кластеризации.В качестве примера смоделированный набор кластеризованных данных с самого начала (рис. 1) анализируется с помощью трех алгоритмов кластеризации. Результирующие кластеры показаны на рисунке 13. Поскольку алгоритмы кластеризации работают с немаркированными данными, метки кластерам назначаются произвольно.Следует отметить, что мы устанавливаем количество кластеров K = 6 в k-средних и иерархической кластеризации, хотя в реалистичном сценарии такая информация недоступна. Как вы можете видеть в этом примере, эти три метода создают очень похожие кластеры.
Рис. 13. Кластеры, обнаруженные в моделируемых данных с помощью кластеризации k-средних (вверху справа), иерархической кластеризации (внизу слева) и DBSCAN (внизу справа). Исходные данные (вверху слева) также показаны в качестве справочных.Однако в реальном наборе данных не все алгоритмы кластеризации работают одинаково.В следующем примере данные радужной оболочки глаза (состоящие из 3 классов радужной оболочки и 4 числовых характеристик) анализируются с помощью тех же алгоритмов. Рабочий процесс «Кластеризация данных радужки» доступен в KNIME Hub по адресу https://kni.me/w/zZheoPIKtcJ8rTJb. В этом наборе данных есть две основные концентрации точек данных с явным разрывом между ними (рис. 14, вверху слева). Я называю их верхним и нижним облаками. Поскольку кластеризация k-средних имеет тенденцию создавать выпуклые кластеры одинакового размера, она разделяет верхнее облако примерно посередине (рис. 14, вверху справа).Что касается иерархической кластеризации, мы используем метод средней связи, отдавая предпочтение как компактным, так и хорошо разделенным кластерам. Поскольку в верхнем облаке нет видимого разрыва, оно разделено на один компактный кластер и один более крупный кластер (рис. 14, внизу слева). Результаты k-средних и иерархической кластеризации обусловлены тем фактом, что мы устанавливаем K = 3 в обоих методах. Что касается метода DBSCAN, верхнее облако идентифицируется как единый кластер (рисунок 14, справа внизу).
Рис. 14. Кластеры, обнаруженные в данных радужной оболочки с помощью кластеризации k-средних (вверху справа), иерархической кластеризации (внизу слева) и DBSCAN (внизу справа).Исходные данные (вверху слева) также показаны в качестве справочных.Заключение
Представленные здесь методы являются лишь несколькими примерами алгоритмов кластеризации. Есть много других алгоритмов кластеризации. Как вы уже видели, разные алгоритмы кластеризации создают разные типы кластеров. Как и во многих алгоритмах машинного обучения, не существует единого алгоритма кластеризации, который мог бы работать во всех сценариях, определяя кластеры любой формы, размера или плотности, которые могут быть непересекающимися, касающимися или перекрывающимися.Поэтому важно выбрать алгоритм, который находит тип кластеров, которые вы ищете в своих данных.
Кластеризация в машинном обучении — GeeksforGeeks
Введение в кластеризацию
По сути, это тип метода обучения без учителя . Метод обучения без учителя — это метод, при котором мы извлекаем ссылки из наборов данных, состоящих из входных данных без помеченных ответов. Как правило, он используется как процесс для поиска значимой структуры, объясняющих лежащих в основе процессов, генеративных функций и группировок, присущих набору примеров.
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции машинного обучения с помощью базового курса по машинному обучению по приемлемой для студентов цене и будьте готовы к работе в отрасли.
Кластеризация — это задача разделения совокупности или точек данных на несколько групп, чтобы точки данных в тех же группах были более похожи на другие точки данных в той же группе и отличались от точек данных в других группах. По сути, это набор объектов на основе сходства и несходства между ними.
Например, — точки данных на графике ниже, сгруппированные вместе, можно классифицировать в одну группу. Мы можем различать кластеры, и мы можем определить, что на картинке ниже есть 3 кластера.
Необязательно, чтобы кластеры были сферическими. Например:
DBSCAN: Пространственная кластеризация приложений с шумом на основе плотности
Эти точки данных группируются с использованием базовой концепции, согласно которой точка данных находится в пределах заданного ограничения от центра кластера.Для вычисления выбросов используются различные дистанционные методы и приемы.
Почему кластеризация?
Кластеризация очень важна, поскольку она определяет внутреннюю группировку среди имеющихся немаркированных данных. Нет критериев хорошей кластеризации. Каковы критерии, которые он может использовать для удовлетворения своих потребностей, зависит от пользователя. Например, мы могли бы быть заинтересованы в поиске представителей однородных групп (сокращение данных), в поиске «естественных кластеров» и описании их неизвестных свойств («естественные» типы данных), в поиске полезных и подходящих группировок («полезных» классов данных). или в поиске необычных объектов данных (обнаружение выбросов).Этот алгоритм должен делать некоторые предположения, которые составляют сходство точек, и каждое предположение должно создавать разные и одинаково допустимые кластеры.
Методы кластеризации:
- Методы, основанные на плотности: Эти методы рассматривают кластеры как плотную область, имеющую некоторые сходства и отличия от нижней плотной области пространства. Эти методы обладают хорошей точностью и способностью объединить два кластера. Пример DBSCAN (Пространственная кластеризация приложений с шумом на основе плотности) , OPTICS (Точки упорядочивания для определения структуры кластеризации) и т. Д.
- Иерархические методы: Кластеры, сформированные этим методом, образуют древовидную структуру, основанную на иерархии. Новые кластеры формируются из ранее сформированного. Он разделен на две категории:
- Агломеративный (восходящий подход )
- Делительный (нисходящий подход )
примеров CURE (кластеризация с использованием представителей), BIRCH (сбалансированная итеративная) Уменьшение кластеризации и использования иерархий) и т. Д.
- Методы разделения: Эти методы разделяют объекты на k кластеров, и каждый раздел образует один кластер. Этот метод используется для оптимизации функции подобия объективных критериев, например, когда расстояние является основным параметром. Пример K-средних, CLARANS (кластеризация больших приложений на основе случайного поиска) и т. Д.
- Сеточные методы: In В этом методе пространство данных формируется в виде конечного числа ячеек, которые образуют сетчатую структуру.Все операции кластеризации, выполняемые на этих сетках, выполняются быстро и не зависят от количества объектов данных, например STING (статистическая информационная сетка), волновой кластер, CLIQUE (кластеризация в поисках) и т. Д.
Алгоритмы кластеризации:
K Алгоритм кластеризации средств — это простейший алгоритм обучения без учителя, который решает проблему кластеризации. Алгоритм K-средних разделяет n наблюдений на k кластеров, где каждое наблюдение принадлежит кластеру, а ближайшее среднее значение служит прототипом кластера.
Приложения кластеризации в различных областях
- Маркетинг: Его можно использовать для характеристики и выявления клиентских сегментов в маркетинговых целях.
- Биология: Может использоваться для классификации различных видов растений и животных.
- Библиотеки: Используется для группирования различных книг на основе тем и информации.
- Страхование: Он используется для подтверждения клиентов, их политики и выявления мошенничества.
Городское планирование: Он используется для создания групп домов и изучения их стоимости на основе их географического положения и других имеющихся факторов.
Исследования землетрясений: Изучая районы, пострадавшие от землетрясения, мы можем определить опасные зоны.
Ссылки:
Wiki
Иерархическая кластеризация
Ijarcs
matteucc
analyticsvidhya
knowm
Кластеризация | Типы кластеризации
Обзор
- Узнайте о кластеризации, одном из самых популярных методов неконтролируемой классификации
- Разделение данных на кластеры может производиться на основе центроидов, распределений, плотностей и т. Д.
- Познакомьтесь с K-средствами и иерархической кластеризацией и разницей между двумя
Введение
Сталкивались ли вы с ситуацией, когда директор по маркетингу компании говорит вам: «Помогите мне лучше понять наших клиентов, чтобы мы могли лучше продавать им нашу продукцию!»
Я сделал, и аналитик во мне совершенно не знал, что делать! Я привык получать конкретные проблемы, результат которых можно предсказать для различных наборов условий.Но я понятия не имел, что делать в этом случае. Если бы человек попросил меня рассчитать жизненную ценность (LTV) или склонность к перекрестным продажам, я бы не моргнул. Но мне этот вопрос казался очень широким.
Обычно это первая реакция, когда вы впервые сталкиваетесь с проблемой обучения без учителя! Вы не ищете конкретной информации о явлении, но вам нужны структуры с данными, не привязанные к конкретному результату.
Метод выявления похожих групп данных в наборе данных называется кластеризацией. Это один из самых популярных методов в науке о данных. Субъекты каждой группы сравнительно более похожи на объекты этой группы, чем субъекты других групп. В этой статье я познакомлю вас с типами кластеризации, различными алгоритмами кластеризации и сравнением двух наиболее часто используемых методов кластеризации.
Приступим.
Примечание: Чтобы узнать больше о кластеризации и других алгоритмах машинного обучения (как с учителем, так и без него), посетите следующие курсы:
Содержание
- Обзор
- Типы кластеризации
- Типы алгоритмов кластеризации
- K Кластеризация средств
- Иерархическая кластеризация
- Разница между K-средним и иерархической кластеризацией
- Приложения кластеризации
- Улучшение алгоритмов контролируемого обучения с помощью кластеризации
1.Обзор
Кластеризация — это задача разделения совокупности или точек данных на несколько групп таким образом, чтобы точки данных в тех же группах были более похожи на другие точки данных в той же группе, чем точки в других группах. Проще говоря, цель состоит в том, чтобы разделить группы со схожими характеристиками и распределить их по кластерам.
Давайте разберемся в этом на примере. Предположим, вы возглавляете пункт проката и хотите понять предпочтения своих клиентов, чтобы расширить свой бизнес.Можете ли вы изучить детали каждого клиента и разработать уникальную бизнес-стратегию для каждого из них? Точно нет. Но что вы можете сделать, так это сгруппировать всех своих клиентов в, скажем, 10 групп на основе их покупательских привычек и использовать отдельную стратегию для клиентов в каждой из этих 10 групп. И это то, что мы называем кластеризацией.
Теперь мы понимаем, что такое кластеризация. Давайте посмотрим на типы кластеризации.
2. Типы кластеризации
В общих чертах кластеризацию можно разделить на две подгруппы:
- Жесткая кластеризация: При жесткой кластеризации каждая точка данных либо полностью принадлежит кластеру, либо нет.Например, в приведенном выше примере каждый покупатель помещен в одну группу из 10 групп.
- Мягкая кластеризация : В мягкой кластеризации вместо помещения каждой точки данных в отдельный кластер назначается вероятность или вероятность того, что эта точка данных находится в этих кластерах. Например, из приведенного выше сценария каждому покупателю назначается вероятность попасть в любой из 10 кластеров розничного магазина.
3. Типы алгоритмов кластеризации
Поскольку задача кластеризации является субъективной, средств, которые можно использовать для достижения этой цели, предостаточно.Каждая методология следует своему набору правил для определения «сходства » между точками данных. На самом деле известно более 100 алгоритмов кластеризации. Но мало кто из алгоритмов пользуется популярностью, давайте рассмотрим их подробнее:
- Модели взаимодействия: Как следует из названия, эти модели основаны на представлении о том, что точки данных, расположенные ближе в пространстве данных, имеют большее сходство друг с другом, чем точки данных, расположенные дальше. В этих моделях можно использовать два подхода.В первом подходе они начинают с классификации всех точек данных в отдельные кластеры, а затем агрегируют их по мере уменьшения расстояния. Во втором подходе все точки данных классифицируются как один кластер, а затем разделяются по мере увеличения расстояния. Также выбор функции расстояния субъективен. Эти модели очень легко интерпретировать, но им не хватает масштабируемости для обработки больших наборов данных. Примерами таких моделей являются алгоритм иерархической кластеризации и его варианты.
- Центроидные модели: Это итерационные алгоритмы кластеризации, в которых понятие сходства выводится из близости точки данных к центроиду кластеров.Алгоритм кластеризации K-средних — популярный алгоритм, который попадает в эту категорию. В этих моделях нет. количество кластеров, требуемых в конце, должно быть упомянуто заранее, поэтому важно заранее знать набор данных. Эти модели выполняются итеративно для поиска локальных оптимумов.
- Модели распределения: Эти модели кластеризации основаны на представлении о том, насколько вероятно, что все точки данных в кластере принадлежат одному и тому же распределению (например: нормальный, гауссовский).Эти модели часто страдают от переобучения. Популярным примером этих моделей является алгоритм максимизации ожидания, который использует многомерные нормальные распределения.
- Модели плотности: Эти модели ищут в пространстве данных области с различной плотностью точек данных в пространстве данных. Он изолирует различные регионы с разной плотностью и назначает точки данных в этих регионах в одном кластере. Популярными примерами моделей плотности являются DBSCAN и OPTICS.
Теперь я подробно расскажу вам о двух наиболее популярных алгоритмах кластеризации — кластеризации K-средств и иерархической кластеризации. Давайте начнем.
4. Кластеризация средств K
K означает итеративный алгоритм кластеризации, который направлен на поиск локальных максимумов на каждой итерации. Этот алгоритм работает в следующие 5 шагов:
- Укажите желаемое количество кластеров K: Давайте выберем k = 2 для этих 5 точек данных в 2-D пространстве.
- Случайным образом назначьте каждую точку данных кластеру: давайте назначим три точки в кластере 1, показанные красным цветом, и две точки в кластере 2, показанные серым цветом.
- Вычислить центроиды кластера: Центроид точек данных в красном кластере показан с помощью красного креста, а точки в сером кластере — с помощью серого креста.
- Переназначьте каждую точку ближайшему центроиду кластера: обратите внимание, что только точка данных внизу назначается красному кластеру, даже если он ближе к центроиду серого кластера. Таким образом, мы назначаем эту точку данных серому кластеру .
- Пересчитайте центроиды кластера: Теперь повторно вычислите центроиды для обоих кластеров.
- Повторяйте шаги 4 и 5 до тех пор, пока улучшения не станут возможными. Точно так же мы будем повторять 4 шага th и 5 th , пока не достигнем глобального оптимума. Когда больше не будет переключения точек данных между двумя кластерами для двух последовательных повторов. Это будет означать завершение алгоритма, если не указано явно.
Вот окно живого кодирования, в котором вы можете опробовать алгоритм K-средних с помощью библиотеки scikit-learn.
5. Иерархическая кластеризация
Иерархическая кластеризация, как следует из названия, представляет собой алгоритм, который строит иерархию кластеров. Этот алгоритм начинается со всех точек данных, назначенных собственному кластеру. Затем два ближайших кластера объединяются в один кластер. В конце концов, этот алгоритм завершается, когда остается только один кластер.
Результаты иерархической кластеризации можно показать с помощью дендрограммы. Дендрограмму можно интерпретировать как:
Внизу мы начинаем с 25 точек данных, каждая из которых назначена отдельным кластерам.Затем два ближайших кластера объединяются, пока не останется только один кластер наверху. Высота на дендрограмме, на которой два кластера объединяются, представляет собой расстояние между двумя кластерами в пространстве данных.
Решение нет. кластеров, которые могут лучше всего отображать различные группы, можно выбрать, наблюдая за дендрограммой. Лучший выбор из числа нет. кластеров нет. вертикальных линий на дендрограмме, вырезанных горизонтальной линией, которая может пересекать максимальное расстояние по вертикали, не пересекая кластер.
В приведенном выше примере лучший выбор нет. кластеров будет 4, поскольку красная горизонтальная линия на дендрограмме ниже покрывает максимальное вертикальное расстояние AB.
Две важные вещи, которые вы должны знать об иерархической кластеризации:
- Этот алгоритм был реализован выше с использованием подхода снизу вверх. Также можно использовать нисходящий подход, начиная со всех точек данных, назначенных в одном кластере, и рекурсивно выполняя разбиения, пока каждой точке данных не будет назначен отдельный кластер.
- Решение об объединении двух кластеров принимается на основании близости этих кластеров. Есть несколько показателей для определения близости двух кластеров:
- Евклидово расстояние: || a-b || 2 = √ (Σ (a i -b i ))
- Квадратное евклидово расстояние: || a-b || 2 2 = Σ ((a i -b i ) 2 )
- Манхэттенское расстояние: || a-b || 1 = Σ | a i -b i |
- Максимальное расстояние: || a-b || INFINITY = макс. i | a i -b i |
- Расстояние Махаланобиса: √ ((a-b) T S -1 (-b)) {где, s: ковариационная матрица}
6.Разница между K-средним и иерархической кластеризацией
- Иерархическая кластеризация не может хорошо обрабатывать большие данные, но кластеризация K-средств может. Это связано с тем, что временная сложность K Means линейна, то есть O (n), в то время как сложность иерархической кластеризации квадратична, то есть O (n 2 ).
- В кластеризации K-средних, поскольку мы начинаем со случайного выбора кластеров, результаты, полученные при многократном запуске алгоритма, могут отличаться. Пока результаты воспроизводимы в иерархической кластеризации.
- K Средство работает хорошо, когда форма кластеров является гипер-сферической (например, круг в 2D, сфера в 3D).
- K означает, что для кластеризации требуется предварительное знание K, т. Е. Нет. кластеров, на которые вы хотите разделить данные. Но вы можете остановиться на любом количестве кластеров, которое сочтете подходящим для иерархической кластеризации, интерпретируя дендрограмму .
7. Приложения кластеризации
Clustering имеет большое количество. приложений, разбросанных по разным доменам.Вот некоторые из самых популярных приложений кластеризации:
- Рекомендации двигателей
- Сегментация рынка
- Анализ социальных сетей
- Группировка результатов поиска
- Медицинская визуализация
- Сегментация изображения
- Обнаружение аномалий
8. Улучшение алгоритмов контролируемого обучения с помощью кластеризации
Кластеризация — это подход машинного обучения без учителя, но можно ли его использовать для повышения точности алгоритмов машинного обучения с учителем, а также путем кластеризации точек данных в похожие группы и использования этих меток кластера в качестве независимых переменных в алгоритме машинного обучения с учителем? Давайте разберемся.
Давайте проверим влияние кластеризации на точность нашей модели для задачи классификации, используя 3000 наблюдений со 100 предикторами данных о запасах, чтобы предсказать, пойдет ли цена вверх или вниз с помощью R. Этот набор данных содержит 100 независимых переменных от X1 до X100 представляет профиль акции и одну конечную переменную Y с двумя уровнями: 1 для роста цены акции и -1 для падения цены акции.
Набор данных доступен здесь: Скачать
Давайте сначала попробуем применить randomforest без кластеризации.
# загрузка необходимых библиотекБиблиотека
('randomForest') библиотека ("Метрики") # установить случайное начальное число набор. Семян (101) # загрузка набора данных данные <-read.csv ("train.csv", stringsAsFactors = T) # проверка размеров данных тусклый (данные) ## [1] 3000 101 # определение переменной результата как фактора данные $ Y <-as.factor (данные $ Y) # разделение набора данных на поезд и тест поезд <-данные [1: 2000,] test <-data [2001: 3000,] #applying randomForest model_rf <-randomForest (Y ~., данные = поезд) preds <-predict (object = model_rf, test [, - 101]) таблица (пред.) ## пред ## -1 1 ## 453 547 # проверка точности auc (пред., тест $ Y) ## [1] 0,4522703
Итак, получаем точность 0,45. Теперь давайте создадим пять кластеров на основе значений независимых переменных, используя кластеризацию k-средних, и повторно применим случайный лес.
# прочесывание и тренировка все <-rbind (поезд, тест) # создание 5 кластеров с помощью K- означает кластеризацию Кластер <- kmeans (all [, - 101], 5) # добавление кластеров в набор данных в качестве независимой переменной. all $ cluster <-as.factor (кластер $ cluster) # разделение набора данных на поезд и тест поезд <-все [1: 2000,] тест <-all [2001: 3000,] #applying randomforest model_rf <-randomForest (Y ~., Данные = поезд) preds2 <-predict (object = model_rf, test [, - 101]) таблица (предс2) ## preds2 ## -1 1 ## 548 452 auc (preds2, test $ Y) ## [1] 0,5345908
Ух! В приведенном выше примере, несмотря на то, что окончательная точность оставляет желать лучшего, кластеризация дала нашей модели значительный прирост по сравнению с точностью, равной 0.От 45 до немного выше 0,53.
Это показывает, что кластеризация действительно может быть полезна для задач машинного обучения с учителем.
Конечные ноты
В этой статье мы обсудили различные способы выполнения кластеризации. Он находит применения для обучения без учителя в большом количестве. доменов. Вы также увидели, как с помощью кластеризации можно повысить точность управляемого алгоритма машинного обучения.
Хотя кластеризацию легко реализовать, вам необходимо позаботиться о некоторых важных аспектах, таких как обработка выбросов в ваших данных и обеспечение того, чтобы каждый кластер имел достаточную популяцию.Эти аспекты кластеризации подробно рассматриваются в этой статье.
Вам понравилось читать эту статью? Поделитесь своими взглядами в разделе комментариев ниже.
Есть опыт в машинном обучении / больших данных / науке о данных? Продемонстрируйте свои знания и помогите сообществу Analytics Vidhya, разместив свой блог.
СвязанныеКластеризация данных: 50 лет после K-средних
https://doi.org/10.1016/j.patrec.2009.09.011 Получение прав и контентаАннотация
Организация данных в разумные группы - один из самых фундаментальных способов понимания и обучение.Например, общая схема научной классификации помещает организмы в систему ранжированных таксонов: домен, царство, тип, класс и т. Д. Кластерный анализ - это формальное исследование методов и алгоритмов группировки или кластеризации объектов в соответствии с измеренными или воспринимаемые внутренние характеристики или сходство. Кластерный анализ не использует метки категорий, которые помечают объекты предшествующими идентификаторами, то есть метками классов. Отсутствие информации о категориях отличает кластеризацию данных (обучение без учителя) от классификации или дискриминантного анализа (обучение с учителем).Цель кластеризации - найти структуру данных, и поэтому она носит исследовательский характер. Кластеризация имеет долгую и богатую историю в различных областях науки. Один из самых популярных и простых алгоритмов кластеризации, К-средних, был впервые опубликован в 1955 году. Несмотря на то, что К-средние были предложены более 50 лет назад и с тех пор были опубликованы тысячи алгоритмов кластеризации, К-средние являются до сих пор широко используется. Это говорит о сложности разработки алгоритма кластеризации общего назначения и некорректно поставленной проблеме кластеризации.Мы даем краткий обзор кластеризации, резюмируем хорошо известные методы кластеризации, обсуждаем основные проблемы и ключевые вопросы при разработке алгоритмов кластеризации и указываем на некоторые из новых и полезных направлений исследований, включая полууправляемую кластеризацию, ансамблевую кластеризацию, одновременный выбор функций. во время кластеризации данных и крупномасштабной кластеризации данных.
Ключевые слова
Кластеризация данных
Дилемма пользователя
Исторические события
Перспективы кластеризации
Премия King-Sun Fu
Рекомендуемые статьи Цитирующие статьи (0)
Полный текстCopyright © 2009 Elsevier B.V. Все права защищены.
Рекомендуемые статьи
Цитирующие статьи
Алгоритмы кластеризации | Кластеризация в машинном обучении | Разработчики Google
Давайте быстро рассмотрим типы алгоритмов кластеризации и когда следует выбирать каждый из них.
При выборе алгоритма кластеризации следует учитывать, масштабируется до вашего набора данных. Наборы данных в машинном обучении могут иметь миллионы примеры, но не все алгоритмы кластеризации эффективно масштабируются.2) \) алгоритмы не практично, когда количество примеров исчисляется миллионами. Этот курс фокусируется на алгоритм k-средних , который имеет сложность \ (O (n) \), что означает, что алгоритм линейно масштабируется с \ (п \).
Типы кластеризации
Существует несколько подходов к кластеризации. Для получения исчерпывающего списка см. Комплексный обзор алгоритмов кластеризации Сюй Д. и Тиан Ю. Энн. Данные. Sci. (2015) 2: 165. Каждый подход подходит лучше всего. к определенному распределению данных.Ниже приводится краткое обсуждение четырех распространенных подходы с упором на кластеризацию на основе центроидов с использованием k-средних.
Кластеризация на основе центроидов
Кластеризация на основе центроидов организует данные в неиерархические кластеры, в отличие от иерархической кластеризации, определенной ниже. k-средство является самым широко используемый алгоритм кластеризации на основе центроидов. Алгоритмы на основе центроидов эффективен, но чувствителен к начальным условиям и выбросам. Этот курс фокусируется на на k-средних, потому что это эффективная, действенная и простая кластеризация алгоритм.
Рисунок 1: Пример кластеризации на основе центроидов.Кластеризация на основе плотности
Кластеризация на основе плотности объединяет области с высокой плотностью в кластеры. Это позволяет создавать распределения произвольной формы при условии, что плотные области могут быть связанный. Эти алгоритмы испытывают трудности с данными различной плотности и высокие габариты. Кроме того, по замыслу эти алгоритмы не назначают выбросы кластеры.
Рисунок 2: Пример кластеризации на основе плотности.Кластеризация на основе распределения
Этот подход к кластеризации предполагает, что данные состоят из распределений, например Гауссовские распределения . В На рисунке 3 алгоритм, основанный на распределении, группирует данные в три гауссовских раздачи. По мере удаления от центра раздачи вероятность того, что точка принадлежит распределению, уменьшается. Группы показывают это уменьшение вероятности. Когда вы не знаете тип раздачи в ваши данные, вам следует использовать другой алгоритм.
Рисунок 3: Пример кластеризации на основе распределения.Иерархическая кластеризация
Иерархическая кластеризация создает дерево кластеров. Иерархическая кластеризация, неудивительно, что он хорошо подходит для иерархических данных, таких как таксономии. Видеть Сравнение 61 секвенированной Escherichia coli Геномы Оксана Лукьянченко, Труди Вассенаар и Дэйв Уссери для примера. В Кроме того, еще одним преимуществом является то, что любое количество кластеров может быть выбрано обрезка дерева на нужном уровне.
Рис. 4. Пример иерархического дерева с кластерами животных. Ключевые термины:Подготовить данные | Кластеризация в машинном обучении | Разработчики Google
в то время как подготовка данных и разработка функций для машины Учебный курс охватывает общую подготовку данных, в этом курсе рассматривается подготовка к кластеризации.
При кластеризации вы вычисляете сходство между двумя примерами, комбинируя все данные функций для этих примеров в числовое значение.Комбинированная функция data требует, чтобы данные имели одинаковый масштаб. В этом разделе рассматривается нормализация, преобразование и создание квантилей, а также обсуждается, почему квантили являются лучшим выбором по умолчанию для преобразования любого распределения данных. Иметь выбор по умолчанию позволяет преобразовывать данные без проверки распределение данных.
Нормализация данных
Вы можете преобразовать данные для нескольких объектов в один и тот же масштаб путем нормализации данные. В частности, нормализация хорошо подходит для обработки большинства Распределение общих данных, гауссовский алгоритм Распределение .По сравнению с квантили, нормализация требует значительно меньше данных для расчета. Нормализовать данные, вычислив их z-показатель следующим образом:
\ [x '= (x- \ mu) / \ sigma \\ \ begin {align *} \ text {где:} \ quad \ mu & = \ text {среднее} \\ \ sigma & = \ text {стандартное отклонение} \\ \ end {выровнять *} \]
Давайте посмотрим на сходство примеров с нормализацией и без нее. В На рисунке 1 видно, что красный цвет больше похож на синий, чем на желтый. Однако объекты на осях x и y имеют разный масштаб.Следовательно, наблюдаемое сходство может быть артефактом немасштабированных данных. После нормализация с использованием z-значения, все функции имеют одинаковую шкалу. Теперь ты находишь этот красный на самом деле больше похож на желтый. Таким образом, после нормализации данных вы можете более точно рассчитать сходство.
Рисунок 1. Сравнение данных функций до и после нормализации.Таким образом, примените нормализацию, если выполняется одно из следующих условий:
- Ваши данные распределены по Гауссу.
- В вашем наборе данных недостаточно данных для создания квантилей.
Использование преобразования журнала
Иногда набор данных соответствует степени . распределение по закону , которое объединяет данные в нижний предел. На рисунке 2 красный цвет ближе к желтому, чем к синему.
Рисунок 2: Распределение по степенному закону.Обработайте степенное распределение с помощью преобразования журнала. На рисунке 3 логарифмическое преобразование создает более плавное распределение, а красный цвет ближе к синему, чем желтый.
Рисунок 3: Нормальное (гауссово) распределение.Использование квантилей
Нормализация и преобразования журналов адресуют определенные распределения данных. Что, если данные не соответствуют гауссовскому или степенному распределению? Есть ли генерал подход, применимый к любому распределению данных?
Попробуем препроцессировать этот дистрибутив.
Рисунок 4. Неклассифицируемый дистрибутив до предварительной обработки.Интуитивно понятно, что если между двумя примерами есть только несколько примеров, то эти два примера похожи независимо от их ценности.И наоборот, если два примера содержат много примеров между ними, тогда два примера меньше похожий. Таким образом, сходство между двумя примерами уменьшается по мере того, как количество примеров между ними увеличивается.
Нормализация данных просто воспроизводит распределение данных, потому что нормализация - это линейное преобразование. Применение преобразования журнала не отражает ваша интуиция относительно того, как работает сходство, как показано на рисунке 5 ниже.
Рисунок 5: Распределение после преобразования журнала.Вместо этого разделите данные на интервалы, каждый из которых содержит равные количество примеров. Эти границы интервалов называются квантилями .
Преобразуйте данные в квантили, выполнив следующие шаги:
- Определите количество интервалов.
- Определите интервалы так, чтобы каждый интервал имел равное количество Примеры.
- Замените каждый пример индексом интервала, в который он попадает.
- Приведите индексы к тому же диапазону, что и другие данные функций, путем масштабирования значения индекса равны [0,1].
После преобразования данных в квантили сходство между двумя examples обратно пропорционален количеству примеров между этими двумя Примеры. Или, математически, где «x» - это любой пример в наборе данных:
- \ (sim (A, B) \ приблизительно 1 - | \ text {prob} [x> A] - \ text {prob} [x> B] | \)
- \ (sim (A, B) \ приблизительно 1 - | \ text {quantile} (A) - \ text {quantile} (B) | \)
Квантили - лучший выбор по умолчанию для преобразования данных.Однако для создания квантили, которые являются надежными индикаторами основного распределения данных, вы нужно много данных. Как правило, для создания квантилей \ (n \) вы должны есть не менее \ (10n \) примеров. Если у вас недостаточно данных, придерживайтесь нормализация.
Проверьте свое понимание
Для следующих вопросов предположим, что у вас достаточно данных для создания квантилей.
Первый вопрос
Как бы вы обработали это распределение данных?
Создайте квантили.
Правильно. Поскольку распределение не соответствует стандартное распределение данных, вам следует вернуться к создание квантилей.
Нормализовать.
Обычно данные нормализуются, если:- Распределение данных гауссово.
- Вы понимаете, что представляют собой данные, и это говорит вам что данные не должны преобразовываться нелинейно. Как результат, вы избегаете квантилей и вместо этого выбираете нормализацию.
Лог-преобразование.
Не лучший выбор, потому что это не идеальный степенной закон распределение.
Вопрос второй
Как бы вы обработали это распределение данных?
Нормализовать.
Правильно.Это распределение Гаусса.
Создайте квантили.
Неправильно. Поскольку это распределение Гаусса, предпочтительным преобразование - это нормализация.
Лог-преобразование.
Неправильно. Применяйте логарифмическое преобразование только к степенным распределениям.
Отсутствующие данные
Если в вашем наборе данных есть примеры с отсутствующими значениями для определенной функции, но такие примеры встречаются редко, тогда вы можете удалить эти примеры.Если такие примеры происходят часто, у нас есть возможность полностью удалить эту функцию, или предсказать недостающие значения из других примеров с помощью машины модель обучения. Например, вы можете вывести недостающие числовые данные, используя модель регрессии, обученная на существующих данных функций.
Примечание: Проблема отсутствия данных не является специфической для кластеризации. Однако в контролируемое обучение, вы можете просто присвоить "неизвестное" значение особенность. Однако вы не можете использовать «неизвестное» значение при проектировании измерить сходство, потому что у вас нет возможности количественно оценить сходство между "неизвестно" и любое известное значение. Ключевые термины:Кластеризация в машинном обучении
Целью обучения без учителя является обнаружение скрытых закономерностей в любых данных без метки. Одним из подходов к обучению без учителя является кластеризация. В этом руководстве мы обсудим кластеризацию, ее типы и несколько алгоритмов для поиска кластеров в данных. Кластеризация группирует точки данных на основе их сходства. Каждая группа называется кластером и содержит точки данных с высоким и низким сходством с точками данных в других кластерах.Короче говоря, точки данных кластера больше похожи друг на друга, чем на точки данных других кластеров. Цель кластеризации - разделить набор точек данных таким образом, чтобы похожие элементы попадали в один и тот же кластер, а разные точки данных попадали в разные кластеры. Далее в этом руководстве мы обсудим идеи о том, как выбрать разные метрики сходства между точками данных и использовать их в разных алгоритмах кластеризации.
Кластеризация имеет решающее значение во многих областях исследований биоинформатики, таких как анализ немаркированных данных, которые могут быть профилями экспрессии генов, биомедицинскими изображениями и т. Д.Например, кластеризация часто используется в анализе экспрессии генов для поиска групп генов со сходными паттернами экспрессии, которые могут обеспечить полезное понимание функций и регуляции генов, клеточных процессов и так далее. Для получения дополнительной информации, пожалуйста, обратитесь к ссылкам 1 и 2.
Мы представляем точку наблюдения / выборки / данных как n-мерный вектор, и многие такие точки данных составляют набор данных. Чтобы показать пример, давайте предположим, что набор данных, показанный на рисунке 1, содержит много выборок, и каждая выборка имеет два измерения каждая:
Рисунок 1: Пример данных перед кластеризациейКластеризация выявляет следующие три группы, обозначенные разными цветами:
Рисунок 2: Пример данных после кластеризацииКластеризация разделена на две подгруппы в зависимости от назначения точек данных кластерам:
Hard: Каждая точка данных назначена ровно одному кластеру.Одним из примеров является кластеризация k-средних.
Мягкий: каждой точке данных назначается вероятность или вероятность нахождения в кластере. Одним из примеров является алгоритм максимизации ожидания (EM).
Повестка дня
В этом уроке мы рассмотрим:
- Типы алгоритмов кластеризации
- Меры расстояния кластеризации
- Различные подходы к кластеризации
- Иерархическая кластеризация
- Кластеризация K-средних
- Кластеризация DBSCAN
- Применение алгоритмов кластеризации к нескольким наборам данных
- Визуализация наборов данных
- Найдите кластеры
- Визуализировать кластеры
- Заключение
Существует множество алгоритмов кластеризации данных, которые используют разные способы для установления сходства между точками данных.Алгоритмы кластеризации можно в общих чертах разделить на множество категорий, таких как модель связности, модель центроида, модель плотности, модель распределения, групповая модель, модель на основе графа и так далее. Некоторые из них обсуждаются ниже:
Модель связности: эта модель присваивает большее сходство точкам данных, которые находятся ближе в одном или многомерном пространстве, чем те точки, которые находятся дальше. Существует два подхода: во-первых, он классифицирует все точки данных в разные кластеры, а затем объединяет точки данных в зависимости от расстояний между ними.Во-вторых, он классифицирует все точки данных в один кластер, а затем разделяет их на разные кластеры по мере увеличения расстояния. Эта модель проста для понимания, но имеет проблемы с обработкой больших наборов данных. Один из примеров - иерархическая кластеризация и ее варианты.
Центроидная модель: это итеративный алгоритм кластеризации, в котором сходство основано на близости точки данных к центроидам кластеров. Кластеризация K-средних является одним из примеров этой модели.Перед запуском требуется несколько кластеров, а затем точки данных итеративно разделяются на эти кластеры. Следовательно, чтобы использовать k-means, пользователи должны получить некоторые предварительные знания о наборе данных.
Модель плотности: эта модель ищет плотные области в одном или многомерном пространстве (с большим количеством точек данных в небольшой области). Популярным примером модели плотности является DBSCAN.
В этом руководстве мы рассмотрим три алгоритма кластеризации - иерархическую кластеризацию, k-средних, DBSCAN и сравнение этих методов.Далее мы обсудим их параметры и способы их применения для поиска кластеров в наборе данных цветов ириса и некоторых других наборах данных.
Кластеризация группирует похожие точки данных и требует метрики или меры для вычисления степени сходства или несходства точек данных. Два основных типа мер - это расстояние и сходство. Чем меньше расстояние между двумя объектами, тем они больше похожи друг на друга. Более того, тип меры расстояния зависит от проблемы, и одна мера может не работать со всеми видами проблем.
Многие алгоритмы кластеризации используют меры расстояния для определения сходства или несходства между любой парой точек данных. Допустимая мера расстояния должна быть симметричной и получать свое минимальное значение (обычно ноль) в случае идентичных точек данных. Посредством вычисления расстояния или (несходства) между каждой парой наблюдений получается матрица несходства или расстояния.
Выбор меры расстояния имеет решающее значение при кластеризации. Он определяет, как вычисляется подобие двух элементов (x, y)
, поскольку оно влияет на форму кластеров.Классические меры расстояния - это евклидово и манхэттенское расстояния. Для наиболее распространенных алгоритмов кластеризации мера расстояния по умолчанию - евклидова. Если выбрано евклидово расстояние, то наблюдения, имеющие большие величины соответствующих характеристик, будут сгруппированы вместе. То же самое справедливо и для наблюдений с низкими величинами соответствующих характеристик. На рисунке 3 мы группируем ячейки, используя евклидово расстояние и их матрицу расстояний.
вопрос Вопросы
- Почему по диагонали в приведенном выше примере матрицы расстояний есть нули?
- Есть ли в этой матрице симметрия?
раствор Раствор
- Расстояние от точки до самой себя равно нулю.
- Расстояние между точкой a и точкой b такое же, как расстояние между точкой b и точкой a с использованием метрики евклидова расстояния.
Существуют и другие меры несходства, такие как расстояния на основе корреляции, которые широко используются для анализа данных экспрессии генов. Расстояние, основанное на корреляции, считает два объекта похожими, если их характеристики сильно коррелированы, даже если наблюдаемые значения могут быть далеки друг от друга с точки зрения евклидова расстояния.Расстояние между двумя объектами равно 0, когда они идеально коррелированы. Корреляция Пирсона весьма чувствительна к выбросам. Это не имеет значения при кластеризации образцов, потому что корреляция превышает тысячи генов. Однако важно знать о возможном влиянии выбросов. Это можно смягчить, используя корреляцию Спирмена вместо корреляции Пирсона.
Иерархическая кластеризация
Иерархическая кластеризация создает иерархию кластеров.Он начинается со всех точек данных, назначенных собственным кластерам. Затем два ближайших кластера объединяются в один и тот же кластер. В конце алгоритм завершается, когда остается только один кластер.
Ниже приведены шаги, которые выполняются во время иерархической кластеризации:
Вначале каждая точка данных в наборе данных обрабатывается как кластер, что означает, что у нас есть
N
кластеров в начале алгоритма для набора данных размеромN
.Расстояние между всеми точками вычисляется, и две ближайшие друг к другу точки объединяются в новый кластер.
Затем точка, ближайшая к кластеру, сформированному на шаге 2, будет объединена с кластером.
Шаги 2 и 3 повторяются до тех пор, пока не будет создан один большой кластер.
Наконец, этот большой кластер делится на K малых кластеров с помощью дендрограмм.
Давайте теперь посмотрим, как дендрограммы помогают в иерархической кластеризации.
Рисунок 4: Иерархическая кластеризацияВсе точки данных выбираются внизу, и каждая из них назначается отдельному кластеру. Затем два ближайших кластера объединяются, пока наверху не останется только один кластер. По сформированной таким образом дендрограмме расстояние между двумя кластерами может быть определено путем вычисления высоты, на которой два кластера объединяются.
Посмотрев на дендрограмму, можно увидеть кластеры, показывающие различные группы наилучшим образом.Оптимальное количество кластеров - это количество вертикальных линий в дендрограмме, разрезанных горизонтальной линией, которая может пересекать максимальное расстояние по вертикали, не пересекая кластер.
В приведенном выше примере наилучшим выбором количества кластеров будет 4, поскольку красная горизонтальная линия на дендрограмме ниже покрывает максимальное вертикальное расстояние AB. Подробнее читайте здесь.
Рисунок 5: Иерархическая кластеризацияВ этом описанном выше алгоритме используется восходящий подход.Также можно использовать нисходящий подход, начиная со всех точек данных, назначенных в одном кластере, и рекурсивно выполняя разбиения до тех пор, пока каждой точке данных не будет назначен отдельный кластер. Решение об объединении двух кластеров принимается исходя из близости этих кластеров.
На первом этапе мы должны загрузить набор данных радужной оболочки и два других набора данных, которые будут использоваться в конце руководства.
hands_on Практическое занятие: загрузка данных
Импортировать галактику - загрузить файл
iris.csv
из Zenodo или из библиотеки данныхhttps://zenodo.org/record/3813447/files/iris.csv https://zenodo.org/record/3813447/files/circles.csv https://zenodo.org/record/3813447/files/moon.csv
Совет: импорт по ссылкамСовет: Импорт данных из библиотеки данныхВ качестве альтернативы выгрузке данных с URL-адреса или с вашего компьютера файлы также могли быть доступны из общей библиотеки данных :
- Перейти в Shared данные (верхняя панель), затем Библиотеки данных
- Перейдите в нужную папку, как указано вашим инструктором
- Выберите нужные файлы
- Нажмите кнопку В историю вверху и выберите в качестве наборов данных из раскрывающееся меню
- Во всплывающем окне выберите историю, в которую вы хотите импортировать файлы (или создать новую)
- Нажмите Импорт
Переименуйте galaxy-закрашивайте наборы данных в
iris
,круги
иmoon
соответственно.Совет: переименование набора данных
- Щелкните значок карандаша галактики карандаша для набора данных, чтобы изменить его атрибуты
- На центральной панели измените поле Имя
- Нажмите кнопку Сохранить
Проверьте тип данных
- Щелкните элемент истории, чтобы развернуть его и получить дополнительную информацию.
- Тип данных набора данных радужной оболочки должен быть
csv
.- Измените galaxy-карандашом тип данных , если отличается от
csv
.
- Вариант 1. Типы данных могут быть определены автоматически
- Вариант 2: Типы данных можно задать вручную
Совет: Определение типа данных (формат файла)
- Щелкните значок карандаша галактики карандаша для набора данных, чтобы отредактировать его атрибуты
- На центральной панели щелкните значок galaxy-chart-select -data Типы данных вкладка вверху
- Нажмите кнопку Определить тип данных , чтобы Galaxy попытался определить его автоматически.
Совет: изменение типа данных
- Щелкните значок карандаша галактики карандаша для набора данных, чтобы отредактировать его атрибуты
- На центральной панели щелкните galaxy-chart-select-data Datatypes вкладка вверху
- Выберите
csv
- Нажмите кнопку Сохранить
Наша цель - разделить похожие цветы на разные группы (Рисунок 6).Мы знаем, что у нас есть 3 видов цветков ириса (разноцветный, вирджиника, сетоза) с 50 образцов для каждого. Эти виды очень похожи друг на друга, как показано на рисунке ниже.
Рисунок 6: 3 вида цветков ирисаВ нашем наборе данных для каждого цветка измерены следующие характеристики: длина лепестка, ширина лепестка, длина чашелистика, ширина чашелистика
На рисунке 7 показана дендрограмма этих данных.
Рисунок 7: Иерархическая кластеризация данных радужки Мы применим иерархическую кластеризацию к набору данных радужки, чтобы найти кластеры на основе двух характеристик (цветов) - длины и ширины чашелистника. Подсказка : Найдите инструмент Числовая кластеризация
в разделе инструментов Статистика
.
hands_on Практическое занятие: иерархическая кластеризация
- Инструмент числовой кластеризации со следующими параметрами кластеризации:
- «Выберите формат входных данных» :
Табличный формат (табличный, txt)
- файл параметров «Файл данных с числовыми значениями» :
iris
- param-check «Содержит ли набор данных заголовок» :
Да
- param-select «Выберите способ выбора данных по столбцу» :
Все столбцы, ЗА ИСКЛЮЧЕНИЕМ некоторых по именам заголовков столбцов
- param-text «Имя (имена) заголовка типа» :
Виды
- param-select «Алгоритм кластеризации» :
Иерархическая агломеративная кластеризация
- В «Дополнительные параметры»
- param-text «Количество кластеров» :
2
- param-select «Affinity» :
Евклидово
- param-select «Связь» :
отделение
- Переименуйте созданный файл в
Иерархическая кластеризация
Если вы посмотрите таблицу результатов, вы увидите, что последний столбец - это метка для каждого кластера, и, как вы видите, все образцы сетоса сгруппированы в один кластер, а два других вида (versicolor и virginica) сгруппированы во втором кластере.Из рисунка 6 видно, что versicolor и virginica больше похожи друг на друга.
Визуализировать иерархическую кластеризацию
Результирующую кластеризацию кандидатов можно визуализировать с помощью диаграммы рассеяния с инструментом ggplot2
. Каждый образец имеет цветовую кодировку на основе его кластеризации для этого образца.
Давайте визуализируем результаты кластеризации, чтобы увидеть, как были созданы группы. Подсказка : Найдите диаграмму рассеяния с помощью инструмента ggplot2
в разделе инструмента График / отображение данных
.
hands_on Практическое занятие: визуализация результатов иерархической кластеризацииРисунок 8: Иерархическая диаграмма разброса кластеризации
- Диаграмма рассеяния с помощью инструмента ggplot2 со следующими параметрами:
- файл параметров «Входной набор табличных данных» : Иерархическая кластеризация
- «Столбец для построения по оси x» :
1
- «Столбец для построения по оси Y» :
2
- «Заголовок заголовка» :
Иерархическая кластеризация в данных радужной оболочки
- «Этикетка для оси x» :
Длина чаши
- «Этикетка для оси Y» :
Ширина сепаратора
- В «Дополнительные параметры» :
- «Параметры точки данных» :
Параметры точки, определяемые пользователем
- «относительный размер точек» :
2.0
- «Построение нескольких групп» :
Нанесение нескольких групп данных на один график
- «столбец, различающий разные группы» :
6
- «Цветовые схемы для различения групп» :
Набор 2 - предопределенная цветовая палитра
- В «Параметры вывода» :
- param-text «ширина вывода» :
7.0
- param-text «Высота вывода» :
5.0
- param-text «dpi вывода» :
175.0
- Вид galaxy-eye получившийся график
- Переименовать в
Иерархическая диаграмма рассеяния
Кластеризация K-средних
Кластеризация K-средних - это наиболее часто используемый алгоритм машинного обучения без учителя для разделения заданного набора данных на набор из k кластеров, где k представляет собой количество групп, предварительно заданное пользователем.При кластеризации k-средних каждый кластер представлен своим центром или центроидом, который соответствует среднему значению точек, назначенных кластеру. Основная идея кластеризации k-средних состоит в том, чтобы определить кластеры и их центроиды таким образом, чтобы минимизировать общую вариацию внутри кластера.
K-means популярен благодаря своей скорости и масштабируемости. Доступно множество вариантов алгоритма k-средних, таких как алгоритм Ллойда, алгоритмы k-средних и так далее. Стандартный алгоритм определяет общую вариацию внутри кластера как сумму квадратов евклидовых расстояний между элементами и соответствующим центроидом.K - гиперпараметр алгоритма, а алгоритм k-средних можно резюмировать следующим образом:
Укажите количество создаваемых кластеров (k) (указывается пользователями).
Выбрать k точек данных случайным образом из набора данных в качестве начальных центров кластера или средних значений.
Присвойте каждой точке данных ближайший центроид на основе евклидова расстояния между точкой данных и ее центроидом.
Для каждого из k кластеров обновите центроид кластера, вычислив новые средние значения всех точек данных в кластере.
Итеративно минимизируйте итог в сумме квадратов: повторяйте шаги 3 и 4, пока назначения кластера не перестанут меняться или не будет достигнуто максимальное количество итераций.
Параметры, которые минимизируют функцию стоимости, изучаются посредством итеративного процесса назначения точек данных кластерам и последующего перемещения кластеров. Ограничение для алгоритма k-средних состоит в том, что набор данных должен быть непрерывным.
hands_on Практическое занятие: кластеризация K-средних
- Инструмент числовой кластеризации со следующими параметрами кластеризации:
- «Выберите формат входных данных» :
Табличный формат (табличный, txt)
- файл параметров «Файл данных с числовыми значениями» :
iris
- param-check «Содержит ли набор данных заголовок» :
Да
- param-select «Выберите способ выбора данных по столбцу» :
Все столбцы, ЗА ИСКЛЮЧЕНИЕМ некоторых по именам заголовков столбцов
- param-text «Имя (имена) заголовка типа» :
Виды
- param-select «Алгоритм кластеризации» :
KMeans
- В «Дополнительные параметры»
- param-text «Количество кластеров» :
2
- Переименуйте сгенерированный файл в
Кластеризация k-средних
Визуализировать кластеризацию k-средних
hands_on Практическое занятие: визуализация результата кластеризации k-среднихРисунок 9: График разброса кластеризации K-средних
- Диаграмма рассеяния с помощью инструмента ggplot2 со следующими параметрами:
- файл параметров «Входной табличный набор данных» : Кластеризация k-средних
- «Столбец для построения по оси x» :
1
- «Столбец для построения по оси Y» :
2
- «Заголовок заголовка» :
Кластеризация K-средних в данных радужной оболочки
- «Этикетка для оси x» :
Длина чаши
- «Этикетка для оси Y» :
Ширина сепаратора
- В «Дополнительные параметры» :
- «Параметры точки данных» :
Параметры точки, определяемые пользователем
- «относительный размер точек» :
2.0
- «Построение нескольких групп» :
Нанесение нескольких групп данных на один график
- «столбец, различающий разные группы» :
6
- «Цветовые схемы для различения групп» :
Набор 2 - предопределенная цветовая палитра
- В «Параметры вывода» :
- param-text «ширина вывода» :
7.0
- param-text «Высота вывода» :
5.0
- param-text «dpi вывода» :
175.0
- Вид galaxy-eye получившийся график
- Переименовать в
Диаграмма рассеяния k-средних
вопрос ВопросКак правильно выбрать количество ожидаемых кластеров (k)?
раствор РастворОсновная трудность, возникающая при использовании k-средних, - это выбор количества кластеров.Предлагаются разные методы решения этой проблемы. Здесь мы предлагаем простое решение. Идея состоит в том, чтобы вычислить кластеризацию k-средних с использованием различных значений кластеров k. Затем строится внутренняя сумма квадратов в соответствии с количеством кластеров. Расположение изгиба (изгиба) на графике обычно рассматривается как индикатор соответствующего количества кластеров.
Рисунок 10: Оптимальное количество кластеровГрафик выше представляет дисперсию внутри кластеров. Он уменьшается с увеличением k, но его можно рассматривать как изгиб (или «колено») при k = 4.Этот изгиб указывает на то, что дополнительные кластеры после четвертого не имеют большого значения.
вопрос ВопросыВ чем разница между методами k-средних и иерархической кластеризацией
раствор Раствор
Иерархическая кластеризация затрудняет правильную обработку больших объемов данных, но кластеризация k-средних - может. Это связано с тем, что временная сложность (варианта Ллойда) k-средних является линейной (O (nkdi), n = количество точек данных, k = количество кластеров, d = размеры точек данных и i = количество итераций), в то время как время -сложность оптимальной иерархической кластеризации квадратична (O (n2)).
K-means хорошо работает, когда кластеры имеют сферическую форму (например, круг в 2D, сфера в 3D). Но когда кластеры имеют произвольную геометрическую форму, производительность ухудшается.
Кластеризация K-средних требует предварительного знания количества кластеров. Он не узнает количество кластеров из данных. Но для иерархической кластеризации это не обязательно.
Кластеризация DBSCAN
DBSCAN (Пространственная кластеризация приложений с шумом на основе плотности) - популярный алгоритм кластеризации, который находит кластеры как области с высокой плотностью, за которыми следуют области с низкой плотностью.Кластеры, обнаруженные с помощью DBSCAN, могут иметь любую форму, в отличие от k-средних, которое хорошо работает, если кластеры имеют сферическую форму. Центральным компонентом алгоритма DBSCAN являются образцы керна, которые присутствуют в областях с высокой плотностью. Таким образом, кластер представляет собой набор близких друг к другу образцов керна (измеренных с помощью некоторой меры расстояния) и набор неосновных образцов, которые близки к образцам керна (но сами не являются образцами керна). В алгоритме DBSCAN есть два важных параметра: min_samples,
- это количество выборок в окрестности для точки, которая будет считаться базовой точкой, и eps
- это максимальное расстояние (между двумя выборками) для выборки, которая будет считаться по соседству с другим.Более высокое значение min_samples
или меньшее значение eps указывает на более высокую плотность, необходимую для формирования кластера. В DBSCAN не требуется указывать количество кластеров в данных априори, в отличие от k-средних.
hands_on Практическое занятие: кластеризация DBSCAN
- Инструмент числовой кластеризации со следующими параметрами кластеризации:
- «Выберите формат входных данных» :
Табличный формат (табличный, txt)
- файл параметров «Файл данных с числовыми значениями» :
iris
- param-check «Содержит ли набор данных заголовок» :
Да
- param-select «Выберите способ выбора данных по столбцу» :
Все столбцы, ЗА ИСКЛЮЧЕНИЕМ некоторых по именам заголовков столбцов
- param-text «Имя (имена) заголовка типа» :
Виды
- param-select «Алгоритм кластеризации» :
DBSCAN
- Переименуйте сгенерированный файл в
DBSCAN clustering
Визуализировать кластеризацию DBSCAN
hands_on Практическое занятие: визуализация результата кластеризации DBSCANРисунок 11: Диаграмма разброса кластеризации DBSCAN
- Диаграмма рассеяния с помощью инструмента ggplot2 со следующими параметрами:
- файл параметров «Входной табличный набор данных» : Кластеризация DBSCAN
- «Столбец для построения по оси x» :
1
- «Столбец для построения по оси Y» :
2
- «Заголовок заголовка» :
Кластеризация DBSCAN в данных радужной оболочки
- «Этикетка для оси x» :
Длина чаши
- «Этикетка для оси Y» :
Ширина сепаратора
- В «Дополнительные параметры» :
- «Параметры точки данных» :
Параметры точки, определяемые пользователем
- «относительный размер точек» :
2.0
- «Построение нескольких групп» :
Нанесение нескольких групп данных на один график
- «столбец, различающий разные группы» :
6
- «Цветовые схемы для различения групп» :
Набор 2 - предопределенная цветовая палитра
- В «Параметры вывода» :
- param-text «ширина вывода» :
7.0
- param-text «Высота вывода» :
5.0
- param-text «dpi вывода» :
175.0
- Вид galaxy-eye полученный график:
- Переименовать в
Диаграмма рассеяния DBSCAN
Вы также заметите, что зеленые точки (коэффициент = -1) на графике не содержатся в каком-либо кластере.DBSCAN не обязательно классифицирует каждую точку данных и поэтому очень хорошо работает с обработкой выбросов в наборе данных.
вопрос ВопросКак мы можем оценить результаты кластеризации?
раствор РастворКластеризация - это алгоритм обучения без учителя; нет никаких ярлыков или оснований для сравнения с кластерами. Тем не менее, мы все еще можем оценить производительность алгоритма, используя внутренние меры.Существует показатель эффективности для оценки кластеризации, который называется коэффициентом силуэта. Это мера компактности и разделения кластеров. Он увеличивается по мере повышения качества кластеров; он велик для компактных кластеров, которые расположены далеко друг от друга, и мал для больших перекрывающихся кластеров. Коэффициент силуэта рассчитывается для каждого экземпляра; для набора экземпляров он рассчитывается как среднее значение индивидуальной оценки по выборке.
Мы можем применить те же шаги к другим наборам данных, таким как наборы данных moon
и circle
(уже импортированы), которые генерируются с использованием методов scikit-learn.
Визуализировать наборы данных
hands_on Практическое занятие: визуализация диаграммы разброса данныхРисунок 12: Точечная диаграмма наборов данных кругов и луны
Диаграмма рассеяния с помощью инструмента ggplot2 со следующими параметрами:
Совет: выберите несколько наборов данных
- Нажмите файлов параметров Несколько наборов данных
- Выберите несколько файлов, удерживая нажатой клавишу Ctrl (или КОМАНДА ) и щелкая интересующие файлы
- файл параметров «Входной набор табличных данных» :
круги
илуна
как несколько наборов данных- «Столбец для построения по оси x» :
1
- «Столбец для построения по оси Y» :
2
- «Название участка» :
Точечная диаграмма
- «Этикетка для оси x» :
X
- «Ярлык оси Y» :
Y
- В «Параметры вывода» :
- param-text «ширина вывода» :
7.0
- param-text «Высота вывода» :
5.0
- param-text «dpi вывода» :
175.0
Вид galaxy-eye итоговые графики
Найти кластеры
Теперь вы можете находить кластеры в этих наборах данных, используя вышеупомянутые алгоритмы.
hands_on Практическое занятие: иерархическая кластеризация кругов и наборов данных луны
Инструмент числовой кластеризации со следующими параметрами кластеризации:
Совет: выберите несколько наборов данных
- Нажмите файлов параметров Несколько наборов данных
- Выберите несколько файлов, удерживая нажатой клавишу Ctrl (или КОМАНДА ) и щелкая интересующие файлы
- «Выберите формат входных данных» :
Табличный формат (табличный, txt)
- файл параметров «Файл данных с числовыми значениями» :
круги
илуна
как несколько наборов данных- param-check «Содержит ли набор данных заголовок» :
Да
- param-select «Выберите способ выбора данных по столбцу» :
Все столбцы
- param-select «Алгоритм кластеризации» :
Иерархическая агломеративная кластеризация
- В «Расширенный вариант»
- param-text «Количество кластеров» :
2
- param-select «Affinity» :
Евклидово
- param-select «Связь» :
отделение
Переименуйте сгенерированные файлы в
круговую иерархическую кластеризацию
илунную иерархическую кластеризацию
соответственно
Визуализировать кластеры
Затем вы можете визуализировать результаты кластеризации, используя следующие шаги:
hands_on Практическое занятие: визуализируйте результаты иерархической кластеризации на кругах и наборах данных луны.
Диаграмма рассеяния с помощью инструмента ggplot2 со следующими параметрами:
Совет: выберите несколько наборов данных
- Нажмите файлов параметров Несколько наборов данных
- Выберите несколько файлов, удерживая нажатой клавишу Ctrl (или КОМАНДА ) и щелкая интересующие файлы
- файл параметров «Входной табличный набор данных» :
круговая иерархическая кластеризация
ииерархическая кластеризация луны
как несколько наборов данных- «Столбец для построения по оси x» :
1
- «Столбец для построения по оси Y» :
2
- «Название участка» :
Иерархическая кластеризация
- «Этикетка для оси x» :
X
- «Ярлык оси Y» :
Y
- В «Дополнительные параметры» :
- «Параметры точки данных» :
Параметры точки, определяемые пользователем
- «относительный размер точек» :
2.0
- «Построение нескольких групп» :
Нанесение нескольких групп данных на один график
- «столбец, различающий разные группы» :
3
- «Цветовые схемы для различения групп» :
Набор 2 - предопределенная цветовая палитра
- В «Параметры вывода» :
- param-text «ширина вывода» :
7.0
- param-text «Высота вывода» :
5.0
- param-text «dpi вывода» :
175.0
- Вид galaxy-eye итоговые графики
- Переименуйте сгенерированные файлы в
Диаграмма рассеяния кругов
иГрафик рассеяния Луны
соответственно
Вы можете применить два других алгоритма (k-средних и DBSCAN) к наборам данных луны и кругов таким же образом, как описано выше.В алгоритме k-средних используйте k = 2
, а для алгоритма DBSCAN параметры не должны быть параметрами по умолчанию, которые использовались ранее. Они должны быть установлены следующим образом: для набора данных кругов (максимальное расстояние соседства = 0,2
и минимальная плотность точек ядра = 5
) и для набора данных луны (максимальное расстояние соседства = 0,3
и минимальная плотность точек ядра = 4
). Вы можете увидеть диаграммы разброса результатов кластеризации для всех трех алгоритмов кластеризации на рисунках 13 и 14.
В этом руководстве мы обсудили 3 алгоритма кластеризации, которые используются для обнаружения структур или закономерностей в немаркированных данных. Вы узнали об иерархических алгоритмах, алгоритмах k-средних и DBSCAN. Выполнив шаги, указанные для каждого инструмента кластеризации, мы узнали, как выполнять кластеризацию и визуализировать результаты с помощью инструментов кластеризации и построения графиков, соответственно, в Galaxy. Есть много других подходов к кластеризации, которые можно опробовать на этих наборах данных, чтобы узнать, как они работают и как они сравниваются с 3 алгоритмами кластеризации, описанными в этом руководстве.С помощью этих алгоритмов также можно анализировать различные наборы данных. Алгоритмы кластеризации имеют некоторые параметры, которые можно изменять при выполнении анализа, чтобы увидеть, влияют ли они на кластеризацию или нет. При использовании алгоритмов кластеризации нам необходимо позаботиться о некоторых важных аспектах, таких как обработка выбросов в данных и обеспечение того, чтобы каждый кластер имел достаточную популяцию. Некоторые препроцессоры данных также можно использовать для очистки наборов данных.
Ключевые моментыЕсть вопросы по этому руководству? Посетите страницу часто задаваемых вопросов по теме «Статистика и машинное обучение», чтобы узнать, указан ли там ваш вопрос.Если нет, задайте свой вопрос на канале GTN Gitter или Справочный форум Galaxy
Используя методы кластеризации, кластеры внутри набора данных рисуются с использованием иерархии, k-средних и DBSCAN
Для каждого алгоритма кластеризации количество кластеров и их соответствующие гиперпараметры должны быть оптимизированы на основе набора данных
- Фишер Р. А., 1936 Использование множественных измерений в таксономических задачах . Анналы евгеники 7: 179–188. 10.1111 / j.1469-1809.1936.tb02137.x https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1469-1809.1936.tb02137.x
Вы использовали этот материал в качестве инструктора? Не стесняйтесь оставлять отзывы о том, как все прошло.
Использовали ли вы этот материал как ученик или студент? Нажмите на форму ниже, чтобы оставить отзыв.
- Алиреза Хантеймоори, Ануп Кумар, 2021 год Кластеризация в машинном обучении (учебные материалы Galaxy) . https://training.galaxyproject.org/training-material/topics/statistics/tutorials/clustering_machinelearning/tutorial.html в Интернете; доступ СЕГОДНЯ
- Batut et al., 2018 Тренинг по анализу данных для биологических сообществ Клеточные системы 10.1016 / j.cels.2018.05.012
детали BibTeXПоздравляем с успешным завершением этого урока! .@misc {statistics-clustering_machinelearning, author = "Алиреза Хантеймоори и Ануп Кумар", title = "Кластеризация в машинном обучении (учебные материалы Galaxy)", год = "2021", month = "03", день = "12" url = "\ url {https: //training.galaxyproject.org / training-material / themes / statistics / tutorials / clustering_machinelearning / tutorial.html} ", note = "[Онлайн; доступ СЕГОДНЯ]" } @article {Batut_2018, doi = {10.1016 / j.cels.2018.05.012}, url = {https://doi.org/10.1016%2Fj.cels.2018.05.012}, год = 2018, месяц = {июн}, publisher = {Elsevier {BV}}, объем = {6}, число = {6}, pages = {752–758.e1}, author = {B {\ '{e}} r {\' {e}} славный Батут и Саския Хильтеманн, Андреа Баньякани, Даннон Бейкер, Вивек Бхардвадж, Клеменс Бланк, Энтони Бретодо и Лорейн Брилле-Гу {\ '{e} } Гуен и Мартин {\ v {C}} Эч, Джон Чилтон, Дэйв Клементс, Оливия Доппельт-Азеруал, Аника Эркслебен, Мэллори Энн Фриберг, Саймон Глэдман, Юри Хугстрат, Ханс-Рудольф Хотц, Торстен Хуварт, Пратик Джагтап и Дельфин Лариви {\ `{e}} re и Гильдас Ле Коргий {\ '{e}}, и Томас Манке, и Фабьен Марей, и Фидель Рам {\' {\ i}} рез, и Девон Райан, и Флориан Кристоф Сиглох, и Никола Соранцо, и Иоахим Вольф и Паванкумар Видем, Маркус Вольфьен, Айсанцзян Вубули, Дилмурат Юсуф, Джеймс Тейлор, Рольф Бакофен, Антон Некрутенко и Бьёрн Грюнинг}, title = {Тренинг по анализу данных для биологии, проводимый сообществом}, journal = {Cell Systems} }