Есть ли способ определить оптимальное число кластеров или я должен просто попробовать разные значения и проверить частоту появления ошибок, чтобы выбрать лучшее значение?
R
) здесь: stackoverflow.com/a/15376462/1036500
Есть ли способ определить оптимальное число кластеров или я должен просто попробовать разные значения и проверить частоту появления ошибок, чтобы выбрать лучшее значение?
R
) здесь: stackoverflow.com/a/15376462/1036500
Ответы:
Метод, который я использую, заключается в использовании CCC (Критерии кубической кластеризации). Я ищу, чтобы CCC увеличивался до максимума, когда я увеличивал количество кластеров на 1, а затем наблюдал, когда CCC начинает уменьшаться. В этот момент я беру количество кластеров в (локальный) максимум. Это было бы похоже на использование scree-графика для выбора количества главных компонентов.
Технический отчет SAS A-108 Критерий кубической кластеризации ( pdf )
= количество наблюдений n k = число в кластере k p = количество переменных q = количество кластеров X = n × p матрица данных M = q × p матрица кластеров означает Z = индикатор кластера ( z i k = 1, если obs . я в кластере к , 0противном случае)
Предположим, что каждая переменная имеет среднее значение 0:
, M = ( Z ′ Z ) - 1 Z ′ X
(общая) матрица = T = X ′ X S S (между кластерами) матрица = B = M ′ Z ′ Z M S S (внутри кластеров) матрица = W = T - B
(trace = сумма диагональных элементов)
Стек столбцы в один длинный столбец.
Регресс наКронекер продуктизсединичной матрицей
Computeдля этой регрессии -же
p × p R 2 R 2
Идея CCC состоит в том, чтобы сравнить вы получаете для данного набора кластеров, с вы получите, кластеризовав равномерно распределенный набор точек в мерном пространстве.R 2 p