2017-01-06 12 views
0

Я работаю над проблемой, которая требует использования KMeans отдельно на ~ 125 различных наборах данных. Поэтому я хочу математически вычислить «оптимальный» K для каждого соответствующего набора данных. Однако метрика оценки продолжает уменьшаться с более высокими значениями K.Оценка оценки KMeans не сходится. Это нормальное поведение или нет?

Для образца набора данных есть 50K строк и 8 столбцов. Используя sklearn's calinski-harabaz score, я повторяю различные значения K, чтобы найти оптимальный/минимальный балл. Однако мой код достиг k = 5600, и показатель calinski-harabaz все еще снижался!

Что-то странное, похоже, происходит. Не работает ли метрика? Могут ли мои данные быть испорчены (см. Мой question about normalizing rows after PCA)? Есть ли другой/лучший способ математически сходиться на «оптимальном» K? Или я должен заставить себя вручную выбрать постоянную K по всем наборам данных?

Любые дополнительные перспективы были бы полезны Спасибо!

ответ

1

СУЩНОСТЬ

метрика уменьшается с каждым увеличением K; это настоятельно указывает на то, что у вас нет естественной кластеризации в наборе данных.

ОБСУЖДЕНИЕ

CH оценки зависит от соотношения между внутри- и межкластерными плотностей. Для относительно плавного распределения точек каждое увеличение в K даст вам кластеры, которые немного более плотные, с немного более низкой плотностью между ними. Попробуйте решетку точек: измените радиус и сделайте вычисления вручную; вы увидите, как это работает. В крайнем конце, K = n: каждая точка представляет собой собственный кластер с бесконечной плотностью и плотностью между кластерами.

ДРУГИЕ METRICS

Возможно, самая простая метрика сумм квадратов, которые уже часть кластерных вычислений. Суммируйте квадраты расстояний от центроида, разделите на n-1 (n = совокупность групп), а затем добавьте/усредните их по всем кластерам.

Я ищу конкретную бумагу, в которой обсуждаются метрики для этой самой проблемы; если я смогу найти ссылку, я обновлю этот ответ.

N.B. С любой метрикой, которую вы выбираете (как и в случае с CH), неспособность найти локальный минимум предполагает, что данные действительно не имеют естественной кластеризации.

ЧТО ДЕЛАТЬ СЛЕДУЮЩЕЕ?

Извлечь ваши данные в той или иной форме вы можете визуализировать. Если вы см. Естественную кластеризацию, посмотрите на характеристики; как вы можете это видеть, но алгебра (метрики) не может? Сформулируйте метрику, которая подчеркивает различия, которые вы воспринимаете.

Я знаю, это усилие похожее на проблему, которую вы пытаетесь автоматизировать. Добро пожаловать в исследование. :-)

+0

Действительно, в моих наборах данных не было естественной группировки. Оптимальное значение K было 1, фактически. Максимальный балл CH был, когда K = 2 (т. Е. Минимальный K пытался) по всей доске, и когда я заставил K = 1, это дало наилучшие результаты для моего набора данных. Как я уже упоминал в другом комментарии, я попробовал другой метод, который нашел K на основе того, когда вторая производная BIC упала ниже определенного пользовательского порога. Это также дало значимые результаты, но не так хорошо, как при K = 1. Интересно ... больше смотреть, но спасибо тонну за то, что помогли мне продумать это! – Chris

+0

Рад помочь. Я хихикаю результатами ... это набор данных, который играет в игры с вашей головой. :-) – Prune

2

Я ничего не знаю о баллах калински-харабаза, но некоторые показатели метрики будут монотонно увеличиваться/уменьшаться относительно увеличения K. Например, средняя квадратичная ошибка для линейной регрессии всегда будет уменьшаться каждый раз, когда a новая модель добавлена ​​к модели, поэтому были разработаны другие оценки, которые добавляют штрафы за все большее число функций.

Существует вее ry good answer here, который хорошо охватывает баллы CH. Простой метод, который обычно хорошо работает для этих показателей монотонного подсчета, заключается в том, чтобы построить K по сравнению с оценкой и выбрать K, где оценка больше не улучшает «много». Это очень субъективно, но все же может дать хорошие результаты.

+0

Спасибо за это, Тед. В ссылке, которую вы поделили, - и на сайте склеарна - в ней упоминается, что «лучший» балл ЧМ на самом деле является максимальным (не минимальным, что я ошибочно принял в моем вопросе выше). Тем не менее, я реализовал код, который оптимизировал значение K, основываясь на том, где он падает ниже пользовательского порога для 2-й производной оценки BIC. Это дало хорошие результаты, но CH max был более эффективным в моем наборе данных. – Chris

0

Проблема с моим вопросом в том, что «лучший» показатель Калински-Харабаза является максимальным, тогда как мой вопрос предполагает, что «лучший» был минимальным. Он вычисляется путем анализа соотношения между кластерной дисперсией и дисперсией внутри кластера, предыдущего/числителя, который вы хотите максимизировать, последнего/знаменателя, который вы хотите свести к минимуму. Как оказалось, в этом наборе данных «лучший» балл CH был с двумя кластерами (минимальный доступный для сравнения). Я на самом деле побежал с K = 1, и это также принесло хорошие результаты. Как предположила Пруне, в наборе данных не существует естественной группировки.

 Смежные вопросы

  • Нет связанных вопросов^_^