Як інтерпретувати задум силуету?


34

Я намагаюся використовувати силуетний графік, щоб визначити кількість кластерів у моєму наборі даних. З огляду на набір даних Train , я використав наступний код matlab

Train_data = full(Train);  
Result = [];  
for num_of_cluster = 1:20  
    centroid = kmeans(Train_data,num_of_cluster,'distance','sqeuclid');  
    s = silhouette(Train_data,centroid,'sqeuclid');  
    Result = [ Result; num_of_cluster mean(s)];  
end  
plot( Result(:,1),Result(:,2),'r*-.');`

Отриманий графік наведений нижче із xaxis як кількість кластера та середнє значення середнього значення силуету .

Як я інтерпретую цей графік? Як я можу визначити кількість кластера з цього?

введіть тут опис зображення


Щоб визначити кількість кластерів, див. Метод мінімального розміщуваного дерева (MST) у візуалізації-програмне забезпечення-для кластеризації .
denis

@Learner: Чи вбудована функція силуету в деякій бібліотеці? Якщо ні, чи можете ви опублікувати це у своєму запитанні, якщо ви не заперечуєте?
Легенда

@Legend: Доступний у панелі інструментів статистики Matlab.
Учень

@Learner: Ooops ... я думав, що ти використовуєш Python :) Дякуємо, що повідомили про це.
Легенда

1
+1 за показ коду! Крім того, оскільки максимальне середнє значення вашого силуету виникає при k = 2, ви можете перевірити, чи ваші дані кластеризовані, що можна зробити за допомогою статистики розриву (інша посилання ).
Franck Dernoncourt

Відповіді:


41

Відповідь Сергія містить критичний момент, який полягає в тому, що коефіцієнт силуету кількісно визначає досягнуту якість кластеризації - тому слід вибрати кількість кластерів, що максимально збільшує коефіцієнт силуету.


Довга відповідь полягає в тому, що найкращий спосіб оцінити результати ваших зусиль з кластеризації - це почати з фактичного вивчення - інспекції людини - сформованих кластерів та визначення визначення на основі розуміння того, що представляють дані, що представляє кластер, і чого планується кластеризація.

Існує численні кількісні методи оцінки результатів кластеризації, які слід використовувати як інструменти, з повним розумінням обмежень. Вони, як правило, мають досить інтуїтивний характер, і тому мають природну привабливість (як проблеми кластеризації взагалі).

Приклади: маса кластера / радіус / щільність, згуртованість або поділ між кластерами тощо. Ці поняття часто поєднуються, наприклад, відношення поділу до згуртованості повинно бути великим, якщо кластеринг був успішним.

Спосіб вимірювання кластеризації визначається типом використовуваних алгоритмів кластеризації. Наприклад, вимірювання якості повного алгоритму кластеризації (в якому всі точки розміщуються в кластери) може сильно відрізнятися від вимірювання якості алгоритму нечіткої кластеризації на основі порогових показників (в якому деяку точку можна залишити не кластеризованою як "шум" ).


Коефіцієнт силуету - одна з таких мір. Він працює наступним чином:

Для кожної точки p спочатку знайдіть середню відстань між p та всіма іншими точками в одному кластері (це міра згуртованості, назвіть це A). Потім знайдіть середню відстань між p і всіма точками в найближчому кластері (це міра відокремлення від найближчого іншого кластера, назвіть його B). Коефіцієнт силуету для p визначається як різниця між B і A, поділена на більший з двох (max (A, B)).

Ми оцінюємо коефіцієнт кластера кожної точки і з цього можемо отримати «загальний» середній коефіцієнт кластера.

Інтуїтивно ми намагаємось виміряти простір між кластерами. Якщо згуртованість кластера хороша (A невелика) і розділення кластерів добре (B велике), чисельник буде великим і т.д.

Я побудував тут приклад, щоб продемонструвати це графічно.

Коефіцієнт кластеризації Результати кластеризації для nclusters = 2: 5

На цих ділянках однакові дані викладаються п'ять разів; кольори позначають кластери, створені за допомогою k-засобів кластеризації, з k = 1,2,3,4,5. Тобто я змусив алгоритм кластеризації розділити дані на 2 кластери, потім 3 і так далі, і пофарбував графік відповідно.

Графік силуету показує, що коефіцієнт силуету був найвищим, коли k = 3, припускаючи, що це оптимальна кількість кластерів. У цьому прикладі нам пощастило, що ми зможемо візуалізувати дані, і ми можемо погодитися, що дійсно три кластери найкраще фіксують сегментацію цього набору даних.

Якби нам не вдалося візуалізувати дані, можливо, через більш високу розмірність, сюжетний силует все-таки дасть нам пропозицію. Однак, я сподіваюсь, що моя дещо затята відповідь тут також вказує на те, що це «пропозиція» може бути дуже недостатнім або просто неправильним у певних сценаріях.


5
Дякую за детальну відповідь, і особливо сюжети дуже корисні. Однак я не зовсім зрозумів, як the average silhouette witdh "suggestion" could be very insufficient or just plain wrong in certain scenarios.ти стверджуєш.
Жубарб

10

Ознайомтеся з інструментальним інструментом для аналізу платформи кластера (CVAP) та деякими матеріалами (посиланнями) з CVAP:

Індекс силуету (загальний середній силует) більший показник Силует вказує на кращу якість результату кластеризації [Chen et al. 2002]

  • Н. Большакова, Ф. Азуадже. 2003. Методи перевірки кластерів для даних експресії геному, обробка сигналів. V.83. N4, С.825-833.
  • Е. Димитріаду, С. Дольнікар, А. Вайнгессель. Розгляд індексів для визначення кількості кластера у наборах даних двійкових даних. Психометріка, 67 (1): 137-160, 2002.

Ви також можете перевірити цей (простий) Інструмент для оцінки кількості кластерів

Просто подивіться приклади обох наборів інструментів (Ви також можете використовувати інші методи перевірки кластерів)


6

Я сьогодні розглядав те саме, що знайшов тут тлумачення . Це має логічний сенс, але я не впевнений, чи можемо ми сліпо застосувати інтерпретацію для наших наборів даних. Підсумовуючи, що ця стаття говорить про наступне:

0.71-1.0
A strong structure has been found

0.51-0.70
A reasonable structure has been found

0.26-0.50
The structure is weak and could be artificial. Try additional methods of data analysis.

< 0.25
No substantial structure has been found

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


4
Лише зауваження історії, таблиця спочатку походить від Sewell, Grandville та PJ Rousseau. "Пошук груп у даних: вступ до кластерного аналізу." (1990). img546.imageshack.us/img546/4523/cnfg.png (можливо, опублікований раніше в одній із статей авторів)
Франк Дернонкурт

Посилання у відповіді більше не доступне. Чи можете ви надати ще одну довідку?
BajajG

Ось посилання на статтю з веб-архіву: web.archive.org/web/20111002220803/http://www.unesco.org:80/…
Юстас

1

Якщо ви намагаєтесь вибрати кількість кластерів для непідконтрольного навчання, можливо, ви можете спробувати зробити щось на кшталт-

http://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_silhouette_analysis.html

Вони використовують більше, ніж просто середній бал силуету (вони використовують розподіл), але це має сенс. Здається, що віддають перевагу менші кластери, але, можливо, ви можете спробувати це з деякими згенерованими даними та подивитися, чи працює?

Ви також можете перевірити цей документ

http://www.sciencedirect.com/science/article/pii/0377042787901257

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