Sto sperimentando la classificazione dei dati in gruppi. Sono abbastanza nuovo su questo argomento e sto cercando di capire l'output di alcune analisi.
Utilizzando esempi tratti da Quick-R , Rvengono suggeriti diversi pacchetti. Ho provato a usare due di questi pacchetti ( fpcusando la kmeansfunzione e mclust). Un aspetto di questa analisi che non capisco è il confronto dei risultati.
# comparing 2 cluster solutions
library(fpc)
cluster.stats(d, fit1$cluster, fit2$cluster)
Ho letto le parti pertinenti del fpc manuale e non sono ancora chiaro su cosa dovrei puntare. Ad esempio, questo è il risultato del confronto tra due diversi approcci di clustering:
$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
La mia domanda principale qui è capire meglio come interpretare i risultati di questo confronto tra cluster.
In precedenza, avevo chiesto di più sull'effetto del ridimensionamento dei dati e sul calcolo di una matrice di distanza. Tuttavia, Mariana Soffer ha risposto chiaramente e sto solo riorganizzando la mia domanda per sottolineare che sono interessato all'interpretazione del mio output, che è un confronto tra due diversi algoritmi di clustering.
Parte precedente della domanda : se sto eseguendo qualsiasi tipo di clustering, devo sempre ridimensionare i dati? Ad esempio, sto usando la funzione dist()sul mio set di dati in scala come input per la cluster.stats()funzione, tuttavia non capisco perfettamente cosa sta succedendo. Ho letto dist() qui e afferma che:
questa funzione calcola e restituisce la matrice di distanza calcolata utilizzando la misura della distanza specificata per calcolare le distanze tra le righe di una matrice di dati.
.