Розуміння порівнянь результатів кластеризації


13

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

За допомогою прикладів Quick-R пропонується кілька Rпакетів. Я спробував використовувати два з цих пакетів ( fpcза допомогою kmeansфункції та mclust). Один із аспектів цього аналізу, який я не розумію, - це порівняння результатів.

# comparing 2 cluster solutions
library(fpc)
cluster.stats(d, fit1$cluster, fit2$cluster)

Я прочитав відповідні частини fpc посібника і досі не розумію, на що я повинен прагнути. Наприклад, це результат порівняння двох різних підходів кластеризації:

$n
[1] 521

$cluster.number
[1] 4

$cluster.size
[1] 250 119  78  74

$diameter
[1]  5.278162  9.773658 16.460074  7.328020

$average.distance
[1] 1.632656 2.106422 3.461598 2.622574

$median.distance
[1] 1.562625 1.788113 2.763217 2.463826

$separation
[1] 0.2797048 0.3754188 0.2797048 0.3557264

$average.toother
[1] 3.442575 3.929158 4.068230 4.425910

$separation.matrix
          [,1]      [,2]      [,3]      [,4]
[1,] 0.0000000 0.3754188 0.2797048 0.3557264
[2,] 0.3754188 0.0000000 0.6299734 2.9020383
[3,] 0.2797048 0.6299734 0.0000000 0.6803704
[4,] 0.3557264 2.9020383 0.6803704 0.0000000

$average.between
[1] 3.865142

$average.within
[1] 1.894740

$n.between
[1] 91610

$n.within
[1] 43850

$within.cluster.ss
[1] 1785.935

$clus.avg.silwidths
         1          2          3          4 
0.42072895 0.31672350 0.01810699 0.23728253 

$avg.silwidth
[1] 0.3106403

$g2
NULL

$g3
NULL

$pearsongamma
[1] 0.4869491

$dunn
[1] 0.01699292

$entropy
[1] 1.251134

$wb.ratio
[1] 0.4902123

$ch
[1] 178.9074

$corrected.rand
[1] 0.2046704

$vi
[1] 1.56189

Моє основне питання тут - краще зрозуміти, як інтерпретувати результати цього кластерного порівняння.


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

Попередня частина запитання : Якщо я роблю будь-який тип кластеризації, чи слід завжди масштабувати дані? Наприклад, я використовую функцію dist()на своєму масштабованому наборі даних як вхід до cluster.stats()функції, проте я не повністю розумію, що відбувається. Я читав dist() тут про це, і в ньому сказано, що:

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


Шукаєте подальші роз'яснення чи ви незадоволені відповіддю @ mariana? Я думаю, це стосується вашого першого запитання (2-й §). Якщо це так, можливо, ви повинні оновити своє запитання, щоб люди зрозуміли, чому ви ставите винагороду за це питання.
chl

@chl Я оновлю його, щоб було зрозуміліше. Я просто шукаю вказівки щодо інтерпретації порівнянь кластеризації, оскільки не розумію, що означає вихід. Відповідь @ mariana була дуже корисною для пояснення деяких термінів, пов'язаних із цим методом.
знаменитий

Відповіді:


13

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

  1. Наприклад, чим більший діаметр кластера, тим гірший кластер, тому що точки, що належать кластеру, більше розсіяні.
  2. Чим вище середня відстань кожної кластеризації, тим гірший метод кластеризації. (Припустимо, що середня відстань - це середня відстань від кожної точки кластера до центру кластера.)

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

  • міжкластерна відстань (чим вище, тим краще - підсумок відстані між різними центроїдами кластера)
  • внутрішньо-кластерна відстань (чим нижче, тим краще - підсумок відстані між членами кластера до центру кластера)

Щоб краще зрозуміти вищезазначені показники, перевірте це .

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

Давайте продовжимо питання, які ви задали:

  1. Щодо даних масштабування: Так, ви завжди повинні масштабувати дані для кластеризації, інакше різні масштаби різних розмірів (змінних) матимуть різний вплив на кластеризацію даних, чим вище значення в змінній, тим більше впливає ця змінна буде в тому, як здійснюється кластеризація, хоча насправді всі вони повинні мати однаковий вплив (якщо тільки з якоїсь дивної причини ви цього не хочете).
  2. Функції відстані обчислюють усі відстані від однієї точки (екземпляра) до іншої. Найпоширеніша міра відстані - Евклідова, тому, припустимо, ви хочете виміряти відстань від екземпляра 1 до екземпляра 2 (припустимо, у вас є лише 2 екземпляри заради простоти). Припустимо також, що кожен екземпляр має 3 значення (x1, x2, x3), I1=0.3, 0.2, 0.5і I2=0.3, 0.3, 0.4так, евклідові відстані від I1 та I2 будуть: sqrt((0.3-0.2)^2+(0.2-0.3)^2+(0.5-0.4)^2)=0.17значить, матриця відстані призведе до:

        i1    i2
    i1  0     0.17
    i2  0.17  0
    

Зауважте, що матриця відстані завжди симетрична.

Формула відстані Евкліда - не єдина. Існує багато інших відстаней, які можна використати для обчислення цієї матриці. Перевірте, наприклад, у Вікіпедії Відстань на Manhattain та як її обчислити. В кінці сторінки Вікіпедії для евклідової відстані (де ви також можете перевірити її формулу) ви можете перевірити, які ще відстані існують.


Дякую за дуже вичерпну відповідь - це дуже корисно.
селеній

Я дуже радий, що це було корисно для вас.
mariana soffer

@marianasoffer Посилання на сторінку Стенфорда не працює. Оновіть його або зробіть його доступним. Дякую
Герман Зубник

7

Я вважаю, що найкращим показником якості кластеризації є припущення щодо кластера, як це дало Зеєгер у навчанні з міченими та неозначеними даними :

Наприклад, припустимо X = Rd та обгрунтованість «кластерного припущення», а саме, що дві точки x, x повинні мати однакову мітку t, якщо між ними в X є шлях, який проходить лише через регіони відносно високого P (x ).

Так, це зводить всю ідею центроїдів і центрів. Зрештою, це досить довільні поняття, якщо задуматися над тим, що ваші дані можуть лежати в нелінійному підскладі простору, в якому ви фактично працюєте.

Ви можете легко побудувати синтетичний набір даних, коли моделі сумішей розбиваються. Наприклад , цей: коло в межах хмари.

Короткий огляд: Я б міг оцінити якість алгоритму кластеризації мінімальним чином. Найкращий алгоритм кластеризації - це той, який мінімізує максимальну відстань точки до найближчого сусі того ж кластера, в той час як максимальний відстань точки до найближчого сусіда від іншого кластера.

Можливо, вас також зацікавить непараметричний алгоритм теоретичної кластеризації інформації .


Як мені взяти участь у вивченні кластерної форми, використовуючи підхід minimax? Мій рівень кластеризації є дуже базовим, тому на даний момент я просто намагаюся зрозуміти, як порівняти два різних підходи кластеризації.
celenius

Не могли б ви поділитися кодом R для доданої фігури?
Андрій

@Andrej Моя здогадка - хмара Гаусса ( x<-rnorm(N);rnorm(N)->y) розділена на 3 частини r (з них видалено одну).

Я не знаю практичного алгоритму, який би відповідав цій мірі якості. Напевно, ви все ще хочете використовувати K-Means та ін. Але якщо вищезазначений показник руйнується, ви знаєте, що дані, які ви переглядаєте, ще не підходять для цього алгоритму.
bayerj

@Andrej Я не використовую R (приходить від ML, а не статистики :), але те, що пропонує mbq, здається, добре.
байерж
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.