Как интерпретировать коэффициент силуэта из кластеризации K-средних?

Я практикую кластеризацию K-Means с использованием пакета sklearn. Я работаю с образцом набора данных о покупках, который состоит из того, сколько каждый покупатель потратил в каждой категории товаров (например, продукты питания, мода, цифровые товары и т. д.).

Есть 42 функции, то есть 42 категории элементов, которые я использовал для ввода в K-Means. Когда я проверил коэффициент силуэта для k в диапазоне от 2 до 50, результат выглядит следующим образом:

Результат

For n_clusters=2, The Silhouette Coefficient is 0.296883351294 
For n_clusters=3, The Silhouette Coefficient is 0.429716008727
For n_clusters=4, The Silhouette Coefficient is 0.5379833453
For n_clusters=5, The Silhouette Coefficient is 0.640200087198
For n_clusters=6, The Silhouette Coefficient is 0.720988889121
For n_clusters=7, The Silhouette Coefficient is 0.754509135746
For n_clusters=8, The Silhouette Coefficient is 0.824498184042
For n_clusters=9, The Silhouette Coefficient is 0.859505132529
For n_clusters=10, The Silhouette Coefficient is 0.886719390512
For n_clusters=11, The Silhouette Coefficient is 0.909094073152
For n_clusters=12, The Silhouette Coefficient is 0.924484657787
For n_clusters=13, The Silhouette Coefficient is 0.935920328988
For n_clusters=14, The Silhouette Coefficient is 0.941202266924
For n_clusters=15, The Silhouette Coefficient is 0.944696312832
For n_clusters=16, The Silhouette Coefficient is 0.94973283735
For n_clusters=17, The Silhouette Coefficient is 0.953130541493
For n_clusters=18, The Silhouette Coefficient is 0.956455183621
For n_clusters=19, The Silhouette Coefficient is 0.959253033224
For n_clusters=20, The Silhouette Coefficient is 0.962360042108
For n_clusters=21, The Silhouette Coefficient is 0.964250208432
For n_clusters=22, The Silhouette Coefficient is 0.967326417612
For n_clusters=23, The Silhouette Coefficient is 0.969331109452
For n_clusters=24, The Silhouette Coefficient is 0.971127562002
For n_clusters=25, The Silhouette Coefficient is 0.972261973972
For n_clusters=26, The Silhouette Coefficient is 0.9734445716
For n_clusters=27, The Silhouette Coefficient is 0.974238560202
For n_clusters=28, The Silhouette Coefficient is 0.97488260729
For n_clusters=29, The Silhouette Coefficient is 0.97531193231
For n_clusters=30, The Silhouette Coefficient is 0.974524792419
For n_clusters=31, The Silhouette Coefficient is 0.975612314038
For n_clusters=32, The Silhouette Coefficient is 0.975737449165
For n_clusters=33, The Silhouette Coefficient is 0.976396323376
For n_clusters=34, The Silhouette Coefficient is 0.977655049988
For n_clusters=35, The Silhouette Coefficient is 0.977653124893
For n_clusters=36, The Silhouette Coefficient is 0.977692656935
For n_clusters=37, The Silhouette Coefficient is 0.977631627533
For n_clusters=38, The Silhouette Coefficient is 0.978547753839
For n_clusters=39, The Silhouette Coefficient is 0.978886776953
For n_clusters=40, The Silhouette Coefficient is 0.979381767137
For n_clusters=41, The Silhouette Coefficient is 0.9796349521
For n_clusters=42, The Silhouette Coefficient is 0.979461929477
For n_clusters=43, The Silhouette Coefficient is 0.980920963377
For n_clusters=44, The Silhouette Coefficient is 0.980129624336
For n_clusters=45, The Silhouette Coefficient is 0.981374785468
For n_clusters=46, The Silhouette Coefficient is 0.980656482976
For n_clusters=47, The Silhouette Coefficient is 0.982323770297
For n_clusters=48, The Silhouette Coefficient is 0.982538183341
For n_clusters=49, The Silhouette Coefficient is 0.982842003856

Я не знаю, как использовать этот результат. Мне кажется, что s становится все больше по мере того, как я продвигаюсь вперед. Я делаю это правильно? или мне следует попробовать другой метод оценки кластера?


person 2D_    schedule 18.06.2017    source источник


Ответы (1)


Силуэт точки измеряет, насколько точка похожа на свой кластер по сравнению со следующим ближайшим кластером. Это отношение расстояний до центров кластеров, нормализованное таким образом, что «1» является полным совпадением с его кластером, а «-1» — полным несоответствием.

(Примечание: использование кластерных центров может быть связано с кластеризацией k-средних.)

Силуэт кластера — это средний силуэт всех его членов. На практике это означает, что большее число означает, что кластер «отделен» от других кластеров.

Я думаю о силуэтах как об измерении плотности точек вдоль границы кластера. Когда силуэт высокий, то граница имеет очень мало точек. Это то, что вам нужно - хорошо разделенные кластеры.

При использовании k-средних небольшие кластеры «выбросов» обычно имеют большие силуэты. Часто более крупные скопления имеют плотные границы. Вам было бы интересно посмотреть на размер, а также на силуэт.

person Gordon Linoff    schedule 18.06.2017
comment
Спасибо. Итак, для результата, который я получил, 49 кластеров лучше, чем 2 кластера. А это значит, что с 49-кластером он более отделен от других кластеров. Я прав? - person 2D_; 18.06.2017
comment
@2D_ . . . Ну, вы должны оценивать кластеры по-разному. Если у вас есть отдельный кластер для каждой точки, то я думаю, что силуэты будут выглядеть довольно хорошо (я не уверен на 100%, что происходит в вырожденном случае). Более важно: полезны ли кластеры? - person Gordon Linoff; 18.06.2017
comment
Ты прав. Я думаю, вы можете быть правы. Я, конечно, не хочу слишком много кластеров. Я рассмотрю кластеры и определяю, какое число имеет наибольший смысл. Спасибо! - person 2D_; 19.06.2017