Как получить оптимальный номер кластера, используя метод локтя для 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 для обнаружения колена на графике.Коленный репозиторий