Я експериментую з класифікацією даних на групи. Я досить новачок у цій темі, і намагаюся зрозуміти результат деяких аналізів.
За допомогою прикладів 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()
тут про це, і в ньому сказано, що:
ця функція обчислює і повертає вичислену матрицю відстані, використовуючи вказану міру відстані для обчислення відстаней між рядками матриці даних.