Кластеризация — различия между версиями
(Major: cluster analysis definition added) |
(Images added) |
||
Строка 23: | Строка 23: | ||
Решение задачи кластеризации объективно неоднозначно по ряду причин: | Решение задачи кластеризации объективно неоднозначно по ряду причин: | ||
* не существует однозначного критерия качества кластеризации. Известен ряд алгоритмов, осуществляющих разумную кластеризацию "по построению", однако все они могут давать разные результаты. Следовательно, для определения качества кластеризации и оценки выделенных кластеров необходим эксперт предметной области. | * не существует однозначного критерия качества кластеризации. Известен ряд алгоритмов, осуществляющих разумную кластеризацию "по построению", однако все они могут давать разные результаты. Следовательно, для определения качества кластеризации и оценки выделенных кластеров необходим эксперт предметной области. | ||
− | * число кластеров, как правило, заранее не известно и выбирается по субъективным критериям. Даже если алгоритм не требует изначального знания о числе классов, конкретные реализации зачастую требуют ввести этот параметр. | + | * число кластеров, как правило, заранее не известно и выбирается по субъективным критериям. Даже если алгоритм не требует изначального знания о числе классов, конкретные реализации зачастую требуют ввести этот параметр<ref>[https://scikit-learn.org/0.20/modules/clustering.html scikit-learn {{---}} Clustering]</ref>. |
* результат кластеризации существенно зависит от метрики. Однако существует ряд рекомендаций по выбору для определенных классов задач. | * результат кластеризации существенно зависит от метрики. Однако существует ряд рекомендаций по выбору для определенных классов задач. | ||
Строка 46: | Строка 46: | ||
* Иерархические алгоритмы кластеризации. Упорядочивание данных путем создания иерархии вложенных кластеров. | * Иерархические алгоритмы кластеризации. Упорядочивание данных путем создания иерархии вложенных кластеров. | ||
+ | == Иерархическая кластеризация == | ||
+ | === Пример === | ||
+ | |||
+ | {| class="wikitable" | ||
+ | | style="text-align:center;" colspan = 4 |Дендрограммы кластеризации ирисов Фишера<ref>[https://ru.wikipedia.org/wiki/%D0%98%D1%80%D0%B8%D1%81%D1%8B_%D0%A4%D0%B8%D1%88%D0%B5%D1%80%D0%B0 Википедия {{---}} Ирисы Фишера]</ref> в зависимости от функции расстояния между кластерами | ||
+ | |- | ||
+ | | style="padding:5px;" |[[Файл:hierarchy_min.png|270px|Расстояние минимума.]] | ||
+ | | style="padding:5px;" |[[Файл:hierarchy_max.png|270px|Расстояние максимума.]] | ||
+ | | style="padding:5px;" |[[Файл:hierarchy_avg.png|270px|Расстояние среднего.]] | ||
+ | | style="padding:5px;" |[[Файл:hierarchy_ward.png|270px|Расстояние Уорда.]] | ||
+ | |- | ||
+ | | style="text-align:center;" | Расстояние минимума | ||
+ | | style="text-align:center;" | Расстояние максимума | ||
+ | | style="text-align:center;" | Расстояние среднего | ||
+ | | style="text-align:center;" | Расстояние Уорда | ||
+ | |} | ||
+ | |||
+ | Лучше всего с задачей справился алгоритм с использованием расстояния Уорда. Он точно выделил класс ''Iris setosa'' и заметно отделили вид ''Iris virginica'' от ''Iris versicolor''. | ||
+ | |||
+ | == Примечания == | ||
+ | <references/> | ||
== Источники информации == | == Источники информации == | ||
Строка 53: | Строка 74: | ||
* [http://www.machinelearning.ru/wiki/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F MachineLearning {{---}} Кластеризация] | * [http://www.machinelearning.ru/wiki/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F MachineLearning {{---}} Кластеризация] | ||
* [https://ru.wikipedia.org/wiki/%D0%98%D0%B5%D1%80%D0%B0%D1%80%D1%85%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F Википедия {{---}} Иерархическая кластеризация] | * [https://ru.wikipedia.org/wiki/%D0%98%D0%B5%D1%80%D0%B0%D1%80%D1%85%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F Википедия {{---}} Иерархическая кластеризация] | ||
+ | * [https://docs.scipy.org/doc/scipy/reference/cluster.hierarchy.html Scipy Documentation {{---}} Hierarchical clustering (scipy.cluster.hierarchy)] | ||
+ | * [http://www.machinelearning.ru/wiki/images/c/ca/Voron-ML-Clustering.pdf К.В.Воронцов Лекции по алгоритмам кластеризации и многомерного шкалирования] | ||
[[Категория: Машинное обучение]] | [[Категория: Машинное обучение]] |
Версия 23:34, 17 декабря 2018
Кластеризация (англ. cluster analysis) — задача группировки множества объектов на подмножества (кластеры) таким образом, чтобы объекты из одного кластера были более похожи друг на друга, чем на объекты из других кластеров по какому-либо критерию.
Задача кластеризации относится к классу задач обучения без учителя.
Содержание
Постановка задачи кластеризации
Пусть
— множество объектов, — множество идентификаторов (меток) кластеров. На множестве задана функция расстояния между объектами . Дана конечная обучающая выборка объектов . Необходимо разбить выборку на подмножества (кластеры), то есть каждому объекту сопоставить метку , таким образом чтобы объекты внутри каждого кластера были близки относительно метрики , а объекты из разных кластеров значительно различались.
Определение: |
Алгоритм кластеризации — это функция | , которая любому объекту ставит в соответствие идентификатор кластера .
Множество
в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.Кластеризация (обучение без учителя) отличается от классификации (обучения с учителем) тем, что метки объектов из обучающей выборки
изначально не заданы, и даже может быть неизвестно само множество .Решение задачи кластеризации объективно неоднозначно по ряду причин:
- не существует однозначного критерия качества кластеризации. Известен ряд алгоритмов, осуществляющих разумную кластеризацию "по построению", однако все они могут давать разные результаты. Следовательно, для определения качества кластеризации и оценки выделенных кластеров необходим эксперт предметной области.
- число кластеров, как правило, заранее не известно и выбирается по субъективным критериям. Даже если алгоритм не требует изначального знания о числе классов, конкретные реализации зачастую требуют ввести этот параметр[1].
- результат кластеризации существенно зависит от метрики. Однако существует ряд рекомендаций по выбору для определенных классов задач.
Типология задач кластеризации
Типы входных данных
- Признаковое описание объектов. Каждый объект описывается набором своих характеристик, называемых признаками (англ. features). Признаки могут быть как числовыми, так и нечисловыми.
- Матрица расстояний между объектами. Каждый объект описывается расстоянием до всех объектов из обучающей выборки.
Вычисление матрицы расстояний по признаковому описанию объектов может быть выполнено бесконечным числом способов в зависимости от определения метрики между объектами. Выбор метрики зависит от обучающей выборки и поставленной задачи.
Цели кластеризации
- Классификация объектов. Попытка понять зависимости между объектами путем выявления их кластерной структуры. Разбиение выборки на группы схожих объектов упрощает дальнейшую обработку данных и принятие решений, позволяет применить к каждому кластеру свой метод анализа (стратегия «разделяй и властвуй»). В данном случае стремятся уменьшить число кластеров для выявления наиболее общих закономерностей.
- Сжатие данных. Можно сократить размер исходной выборки, взяв один или несколько наиболее типичных представителей каждого кластера. Здесь важно наиболее точно очертить границы каждого кластера, их количество не является важным критерием.
- Обнаружение новизны (обнаружение шума). Выделение объектов, которые не подходят по критериям ни в один кластер. Обнаруженные объекты в дальнейшем обрабатывают отдельно.
Методы кластеризации
- Графовые алгоритмы кластеризации. Наиболее примитивный класс алгоритмов. В настоящее время практически не применяется на практике.
- Вероятностные алгоритмы кластеризации. Каждый объект из обучающей выборки относится к каждому из кластеров с определенной степенью вероятности.
- Алгоритм средних (англ. means)
- EM-алгоритм
- Иерархические алгоритмы кластеризации. Упорядочивание данных путем создания иерархии вложенных кластеров.
Иерархическая кластеризация
Пример
Дендрограммы кластеризации ирисов Фишера[2] в зависимости от функции расстояния между кластерами | |||
Расстояние минимума | Расстояние максимума | Расстояние среднего | Расстояние Уорда |
Лучше всего с задачей справился алгоритм с использованием расстояния Уорда. Он точно выделил класс Iris setosa и заметно отделили вид Iris virginica от Iris versicolor.