Як визначити кількість кластерів у кластеризації K-засобів?


19

Чи є спосіб визначити оптимальне число кластера чи мені просто спробувати різні значення та перевірити коефіцієнти помилок, щоб визначити найкраще значення?


1
@berkay Як визначити показник помилок для цього непідконтрольного методу? (чи ви маєте на увазі всередині СС?)
chl

@chl, я можу використовувати суму помилок у квадраті для всіх кластерів або загальну точність (у цьому випадку я знаю мітки класів.)
berkay

3
@berkay Простий алгоритм пошуку кластерів № - це обчислити середній WSS за 20 запусків k-засобів на збільшенні кількості кластерів (починаючи з 2 і закінчуючи скажімо 9 або 10), і зберегти рішення, яке має мінімальний WSS для цього набору кластерів. Інший метод - статистика прогалини . Але якщо ви вже маєте мітки примірників, то чому ви намагаєтесь непідтримувати метод?
chl

@chl дякую, гарне запитання, ми можемо здогадатися про кластери залежно від особливостей ідентифікації, я аналізую нові характеристики вторгнення, імітацію юридичних застосувань.
Беркай

2
Я відповів на подібне запитання, використовуючи півдесятка методів (використовуючи R) тут: stackoverflow.com/a/15376462/1036500
Бен

Відповіді:


8

Я використовую метод - використовувати CCC (Критерії кубічної кластеризації). Я шукаю, щоб CCC збільшився до максимуму, оскільки я збільшував кількість кластерів на 1, а потім спостерігаю, коли CCC починає знижуватися. У цей момент я беру кількість кластерів на (локальному) максимумі. Це було б аналогічно використанню сюжетного опису для вибору кількості основних компонентів.


Технічний звіт SAS A-108 Критерій кубічної кластеризації ( pdf )

= кількість спостережень n k = число в кластері k= кількість змінних q = кількість кластерів X = n × p матриця даних M = q × p матриця кластера означає= кластерний показник (якщо прок.в кластері, 0 в іншому випадку) n
nkk
Z z i k = 1 i kp
q
Xn×p
Mq×p
Zzik=1ik

Припустимо, кожна змінна має значення 0: ,
M = ( Z Z ) - 1 Z XZZ=diag(n1,,nq)M=(ZZ)1ZX

T X X S S B M Z Z M S S W T - BSS (загальна) матриця = = (між кластерами) матриця = = (в межах кластерів) матриця = =TXX
SSBMZZM
SSWTB

R2=1trace(W)trace(T)
(слід = сума діагональних елементів)

Складіть стовпці в один довгий стовпець. Регрес на добуток Kronecker з з матрицею ідентичності Обчислити для цієї регресії - те самеX
Zp×p
R2R2

Ідея CCC полягає в тому, щоб порівняти отриманий для заданого набору кластерів з ви отримаєте, кластеризуючи рівномірно розподілений набір точок у мірному просторі.R2R2p


2
Окрім CCC є й інші критерії. Погляньте на Визначення кількості кластерів у наборі даних , щоб побачити основні.
Вінсент Лабатут
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.