Работя по проект за копаене на текст/клъстериране и се опитвам да създам таблица, която съдържа брой клъстери като редове и 6 колони, представляващи следните 6 показателя: макс.диаметър, мин.разделяне, средно.в рамките,средно.между, ср.silwidth,dunn.
Трябва да създам таблиците за 3 метода - kmeans, pam и hclust.
Успях да създам нещо за kmeans
dtm0.90Dist = dist(dtm0.90)
foreachcluster = function(k) {
kmeans.result = kmeans(dtm0.90, k);
kmeans.stats = cluster.stats(dtm0.90Dist,kmeans.result$cluster);
c(kmeans.stats$min.separation, kmeans.stats$max.diameter,
kmeans.stats$average.within, kmeans.stats$avearge.between,
kmeans.stats$avg.silwidth, kmeans.stats$dunn)
}
rbind(foreachcluster(2), foreachcluster(3), foreachcluster(4), foreachcluster(5),
foreachcluster(6), foreachcluster(7),foreachcluster(8))
и получавам следния изход
[,1] [,2] [,3] [,4] [,5]
[1,] 3.162278 30.19934 5.831550 0.5403872 0.10471348
[2,] 2.236068 28.37252 5.006058 0.3923446 0.07881104
[3,] 1.000000 28.37252 4.995478 0.2496066 0.03524537
[4,] 1.000000 26.40076 4.387212 0.2633338 0.03787770
[5,] 1.000000 26.40076 4.353248 0.2681947 0.03787770
[6,] 1.000000 26.40076 4.163757 0.1633954 0.03787770
[7,] 1.000000 26.40076 4.128927 0.2676423 0.03787770
Имам нужда от подобен изход за методите hclust и pam, но за живота си не мога да накарам същата функция да работи за нито един от двата метода
Добре, така че успях да направя функцията за HCLUST
forhclust=function(k){dfDist = dist(dtm0.90);
hclust.result = hclust(dfDist);
hclust.cluster = (cutree(hclust.result, k));
cluster.stats(dfDist,hclust.cluster);c(cluster.stats$min.separation)}
Но получавам грешка, когато стартирам това
Error in cluster.stats$min.separation :
object of type 'closure' is not subsettable
Това, от което се нуждая, е да отпечата изход "min.separation".
Наистина бих оценил цялата помощ и може би някои насоки за разбиране защо подходът ми се проваля в hclust.
Също така, има ли добър източник, който може да обясни функционирането и прилагането на тези методи, стъпка по стъпка, в детайли?
Благодаря ти