Scikit Learn: методы кластеризации и сравнение
Scikit-learn — это метод машинного обучения Python, основанный на SciPy, выпущенный под лицензией BSD из 3 пунктов.
Дэвид Курнапо запустил этот проект как Google Summer of Code в 2007 году, и с тех пор в него внесли свой вклад множество людей. Список основных участников можно увидеть на странице «О нас», и в настоящее время за его поддержание отвечает группа волонтеров.
Scikit-learn в основном встроен в Python и в значительной степени зависит от NumPy для высокоскоростных операций с массивами и линейной алгебры. Кроме того, для повышения производительности некоторые ключевые алгоритмы написаны на Cython. Оболочка Cython вокруг LIBSVM реализует машины опорных векторов; аналогичная оболочка вокруг LIBLINEAR реализует линейные машины опорных векторов и логистическую регрессию. В таких случаях может быть невозможно реализовать эти методы только с помощью Python.
Многие другие библиотеки Python, такие как SciPy, Matplotlib, Plotly для построения графиков, фреймы данных Pandas, NumPy для векторизации массивов и т. д., хорошо работают с Scikit-learn. В этой статье мы узнаем все о кластеризации SkLearn.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Узнайте все, что вам нужно знать о данных! Программа последипломного образования в области инженерии данныхИзучите курс
Что такое кластеризация?
Кластеризация — это неконтролируемые методы машинного обучения, используемые для обнаружения шаблонов ассоциаций и сходств в выборках данных. Затем образцы группируются в группы на основе высокой степени сходства. Кластеризация важна, поскольку она обеспечивает внутреннюю группировку текущих немаркированных данных.
Его можно определить как «Метод сортировки точек данных в разные кластеры на основе их сходства. Объекты с возможным сходством сохраняются в группе с небольшим сходством или без него».
Это достигается путем выявления сопоставимых закономерностей в немаркированном наборе данных, таких как активность, размер, цвет и форма, и их категоризации в соответствии с наличием или отсутствием этих закономерностей. Алгоритм не контролируется и работает с немаркированным набором данных, поскольку это метод обучения без учителя.
После применения метода кластеризации каждой группе или кластеру присваивается идентификатор кластера, который система ML может использовать для облегчения обработки огромных и сложных наборов данных.
В библиотеке Scikit-learn есть функция sklearn.cluster, которая может кластеризовать немаркированные данные.
Теперь, когда мы понимаем кластеризацию, давайте рассмотрим типы методов кластеризации в SkLearn.
Методы кластеризации
Некоторые из методов кластеризации, которые являются частью обучения Sci-kit, следующие:
Этот подход в основном используется для поиска пятен в выборке с гладкой плотностью. Он итеративно распределяет точки данных по кластерам, перемещая точки в точки данных с более высокой плотностью. Он автоматически устанавливает количество кластеров, а не полагается на параметр, называемый пропускной способностью, для определения размера поиска по региону.
sklearn.cluster — это реализация того же самого Scikit-learn.
Чтобы выполнить кластеризацию среднего сдвига, нам нужно использовать модуль MeanShift.
В KMeans центроиды вычисляются и повторяются, пока не будет найден лучший центроид. Это требует указания количества кластеров, предполагая, что они уже известны. Основная концепция этого алгоритма заключается в кластеризации данных путем уменьшения критериев инерции, которые делят выборки на n групп с равными дисперсиями. «K» представляет количество кластеров, обнаруженных данным методом.
Пакет sklearn.cluster поставляется с Scikit-learn.
Чтобы кластеризовать данные с помощью K-Means, используйте модуль KMeans. Выборочный вес параметра позволяет sklearn.cluster вычислять центры кластеров и значения инерции. Чтобы придать дополнительный вес некоторым образцам, используйте модуль KMeans.
Этот алгоритм создает вложенные кластеры путем последовательного слияния или разделения кластеров. Дерево или дендрограмма представляют эту кластерную иерархию. Его можно разделить на две категории:
- Агломеративные иерархические алгоритмы рассматривают каждую точку данных как отдельный кластер в этом типе иерархического алгоритма. Затем он агломерирует пары кластеров один за другим. В этом случае используется метод «снизу вверх».
- В этом иерархическом методе алгоритмы разделительной иерархии рассматривают все точки данных как один большой кластер. Разбиение одного большого кластера на несколько маленьких с использованием нисходящего метода влечет за собой процесс кластеризации.
Для реализации этого Sci-kit Learn использует sklearn.cluster.
Чтобы выполнить агломеративную иерархическую кластеризацию, используйте модуль AgglomerativeClustering.
BIRCH означает сбалансированное итеративное сокращение и кластеризацию с иерархиями. Это инструмент для выполнения иерархической кластеризации огромных наборов данных. Для данных данных он создает дерево под названием CFT, что означает «Дерево характеристик».
Преимущество CFT заключается в том, что узлы данных, известные как узлы CF (характеристики), хранят необходимую информацию для кластеризации, что устраняет необходимость хранить полные входные данные в памяти.
Мы используем sklearn.cluster, чтобы реализовать то же самое в кластере Scikit-learn.
Кластеризация BIRCH осуществляется с помощью модуля Birch.
Перед кластеризацией этот подход выполняет уменьшение размерности в меньшем количестве измерений, используя собственные значения или спектр матрицы сходства данных. При наличии значительного количества кластеров такой подход не рекомендуется.
sklearn.cluster используется в Sci-kit Learning.
Чтобы выполнить спектральную кластеризацию, используйте модуль SpectralClustering.
В этом алгоритме используется идея «передачи сообщений» между отдельными парами выборок до тех пор, пока она не сходится. Нет необходимости указывать количество кластеров перед запуском алгоритма. Временная сложность алгоритма порядка O(N2T), что является его основным недостатком.
В Scikit-learn мы используем sklearn.cluster.
Чтобы выполнить AffinityPropagation, используйте модуль AffinityPropagation. Кластеризация распространения.
ОПТИКА означает «Точки заказа для определения структуры кластеризации». В пространственных данных этот метод также находит кластеры на основе плотности. Его основная рабочая логика аналогична логике DBSCAN.
Организуя точки базы данных таким образом, что ближайшие в пространстве точки становятся соседями в порядке, это устраняет существенный недостаток алгоритма DBSCAN — проблему распознавания значимых кластеров в данных изменяющейся плотности.
sklearn.cluster — это кластер обучения Scikit.
Для выполнения кластеризации OPTICS используйте модуль OPTICS.
DBSCAN или пространственная кластеризация приложений с шумом на основе плотности — это подход, основанный на интуитивно понятных понятиях «кластеров» и «шума». В нем говорится, что кластеры имеют более низкую плотность с плотными областями в пространстве данных, разделенными областями точек данных с более низкой плотностью.
sklearn.cluster используется при реализации кластеров в Scikit-learn.
Кластеризация DBSCAN выполняется с помощью модуля DBSCAN. Этот алгоритм использует два важных параметра для определения плотности, а именно min_samples и eps.
Чем больше значение параметра в выборках или чем ниже значение параметра eps, тем выше плотность точек данных, необходимых для формирования кластера.
Овладейте наукой о данных и разблокируйте роли высшего уровня с помощью магистерской программы Data ScientistНачните обучение
Сравнение методов кластеризации на основе параметров, масштабируемости и метрики
Давайте сравним методы кластеризации Sklearn, чтобы получить более четкое представление о каждом из них. Сравнение суммировано в таблице ниже:
С Нет. | Название алгоритма | Параметры | Используемая метрика | Масштабируемость |
1. | Средний сдвиг | Пропускная способность | Расстояние между точками | Не масштабируется и имеет n образцов |
2. | Иерархическая кластеризация | Номера кластеров или порог расстояния | Расстояние между точками | Большие n выборок и большие n кластеров |
3. | БЕРЕЗА | Коэффициент ветвления и порог | Евклидово расстояние между точками | Большие n выборок и большие n кластеров |
4. | Спектральная кластеризация | Номера кластеров | График расстояния | Небольшой уровень масштабируемости с n кластерами и средний уровень масштабируемости с n выборками. |
5. | Распространение сходства | Демпфирование | График расстояния | Он не масштабируем и имеет n образцов. |
6. | K-средние | Номера кластеров | Расстояние между точками | Очень большие n выборок |
7. | ОПТИКА | Минимальное членство в кластере | Расстояние между точками | Большие n кластеров и очень большие n выборки |
8. | DBSCAN | Размер квартала. | Средние n кластеров и очень большие n выборки | Расстояние до ближайшей точки |
- Склеарн линейная регрессия
- Модели регрессии Sklearn
- Склеарн СВМ
- Деревья решений SkLearn
Стохастический градиентный спуск в SKLearn
Освойте кластеризацию Sklearn прямо сейчас
Кластеризация Sklearn является важным аспектом ее применения в машинном обучении, статистике и т. д. Она состоит из методов машинного обучения без учителя, а именно:
- Средний сдвиг
- KMeans
- Иерархическая кластеризация
- БЕРЕЗА
- Спектральная кластеризация
- Распространение сходства
- ОПТИКА
- DBSCAN
Чтобы максимально эффективно использовать эти концепции, необходимо рассмотреть возможность углубленного изучения этих тем.
Чтобы получить опыт в области науки о данных и стать сертифицированным экспертом, рассмотрите возможность пройти сертификацию по науке о данных Simplilearn прямо сейчас! Присоединяйтесь к программе по науке о данных сегодня, чтобы освоить кластеризацию Sklearn и другие передовые инструменты и навыки обработки данных в течение 12 месяцев.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)