Как получить оптимальный номер кластера, используя метод локтя для Java? - PullRequest
1 голос
/ 12 июня 2019

Я использую haifengl/smile, и мне нужно получить оптимальный номер кластера.

Я использую CLARANS, где мне нужно указать количество кластеров для создания.Я думаю, что, может быть, есть какое-то решение для сортировки, например, от 2 до 10 кластеров, просмотра наилучшего результата и выбора количества кластеров с наилучшим результатом.Как это можно сделать методом локтя?

Ответы [ 2 ]

2 голосов
/ 17 июня 2019

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

  • Gap Statistic - сравнивает итоговое значение внутрикластерного отклонения для разных значений k с их ожидаемыми значениями при нулевом эталонном распределении данных.

  • Метод силуэта Оптимальным числом кластеров k является тот, который максимизирует средний силуэт в диапазоне возможных значений для k.

  • Метод суммы квадратов

Подробнее см. Документацию sklearn по этому вопросу.

1 голос
/ 12 июня 2019

Метод локтя не является автоматическим.

Вы вычисляете баллы для желаемого диапазона k, строите график, а затем визуально пытаетесь найти «локоть» - который может работать или не работать.

Поскольку x и y не имеют «правильного» отношения друг к другу, имейте в виду, что интерпретация графика (и любая геометрическая попытка автоматизировать это) зависят от масштабирования графика и по своей природе субъективны. В конце концов, концепция «локтя», скорее всего, ошибочна и не звучит в этой форме. Я предпочел бы искать более продвинутые меры, в которых вы можете утверждать о максимуме или минимуме, хотя некоторые понятия «значительно лучше k» были бы желательны.

...