Как получить оптимальный номер кластера, используя метод локтя для Java?

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

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

2 ответа

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

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

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

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

Для более подробной информации, прочитайте документацию по этой теме.

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

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

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

Способы поиска кластеров:

1- Силуэтный метод:

Используя разделение и сцепление или просто применяя реализованный метод, оптимальное количество кластеров - это кластеры с максимальным коэффициентом силуэта. * диапазон коэффициента силуэта от [-1,1] и 1 - лучшее значение. Пример метода силуэта с помощью scikit-learn.

2- Метод локтя (вы можете использовать метод локтя автоматически)

Метод локтя - это график между количеством кластеров и средней квадратной суммой расстояний. Для автоматического применения в python существует библиотека Kneed in python для обнаружения колена на графике.Коленный репозиторий

Другие вопросы по тегам