Я экспериментирую с классификацией данных по группам. Я довольно новичок в этой теме, и пытаюсь понять вывод некоторых из анализа.
Используя примеры из 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
Мой основной вопрос здесь состоит в том, чтобы лучше понять, как интерпретировать результаты этого кластерного сравнения.
Ранее я спрашивал больше о влиянии масштабирования данных и вычисления матрицы расстояний. Однако Мариана Соферфер ответила на это четко, и я просто реорганизую свой вопрос, чтобы подчеркнуть, что меня интересует интерпретация моего вывода, представляющего собой сравнение двух разных алгоритмов кластеризации.
Предыдущая часть вопроса : если я делаю кластеризацию любого типа, всегда ли мне нужно масштабировать данные? Например, я использую функцию dist()
в моем масштабированном наборе данных в качестве входных данных для cluster.stats()
функции, однако я не до конца понимаю, что происходит. Я читал о dist()
здесь, и это заявляет, что:
эта функция вычисляет и возвращает матрицу расстояний, вычисленную с использованием указанной меры расстояния, чтобы вычислить расстояния между строками матрицы данных.