Простота точной кластеризации руководство kscorer по автоматическому выбору оптимальных кластеров K-means

Простота и точность кластеризации руководство kscorer по автоматическому выбору оптимальных кластеров K-means

Kscorer упрощает процесс кластеризации и предлагает практический подход к анализу данных с помощью продвинутой оценки и параллелизации

Создано DALL-E-2 по описанию автора

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

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

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

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

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

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

Без проблем, эти техники включают:

  • Снижение размерности. Перед применением алгоритма кластеризации может быть полезно выполнить анализ главных компонент (PCA) на данных. Это снизит влияние данных и приведет к более надежному процессу кластеризации.
  • Косинусное сходство. Существует простой способ использования (примерно) косинусных расстояний в K-средних с помощью применения Евклидовой нормализации к данным. Так что вам не надо предварительно рассчитывать матрицу расстояний, как при выполнении агломеративной кластеризации.
  • Множество метрик. Для определения оптимального количества кластеров следует полагаться на многометрическую оценку вместо единой метрики.
  • Выборка данных. Чтобы решить проблемы с потреблением ресурсов и улучшить результаты кластеризации, можно получить случайные выборки из данных для выполнения операций кластеризации и оценки метрик. Усреднение результатов из нескольких итераций может снизить влияние случайных факторов и дать более последовательные результаты.

Этот рабочий процесс иллюстрируется ниже.

Изображение автора

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

Теперь давайте углубимся немного

Однажды я услышал утверждение дата-саентиста на конференции: «В основном, вы можете делать все, что хотите, лишь бы вы знали, что делаете». © Alex2006

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

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

Кроме того, существует фундаментальная связь между кластеризацией K-средних и PCA, исследуемая в статье Динга и Хе «Кластеризация K-средних с помощью метода главных компонент». Хотя изначально они служат разным целям, эти техники в конечном счете направлены на эффективное представление данных с минимизацией ошибок восстановления. PCA стремится представить векторы данных в виде комбинации сокращенного числа собственных векторов. В то же время, кластеризация K-средних стремится представить векторы данных в виде комбинации векторов центроидов кластеров. Оба подхода стремятся минимизировать среднеквадратическую ошибку восстановления.

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

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

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

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

Расчет на языке Python для индекса, используемого в пакете, имеет следующий вид:

  • Байесовский информационный критерий (BIC). BIC служит дополнительной и, в некотором смысле, независимой метрикой. В то время как K-средние не предлагают прямую вероятностную модель, BIC может помочь оценить распределение данных после применения модели K-средних. Этот подход обеспечивает более всестороннюю оценку качества кластера.

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

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

Практика с kscorer

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

Дальше мы разделим наш набор данных на тренировочное и тестовое подмножества и подгоним модель для обнаружения оптимального числа кластеров. Модель автоматически найдет оптимальное число кластеров от 3 до 15. Это можно легко сделать следующим образом:

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

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

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

И, наконец, свежая интерактивная перспектива наших данных.

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