【问题标题】:Silhouette plot in RR中的剪影图
【发布时间】:2016-03-04 03:00:50
【问题描述】:

我有一组数据,其中包含: 项目、关联簇、轮廓系数。如有必要,我可以使用更多信息进一步扩充此数据集。

我想在 R 中生成轮廓图。我遇到了麻烦,因为我遇到的示例使用内置的 kmeans(或相关)聚类函数并绘制结果。我想绕过这一步并为我自己的聚类算法生成绘图,但我最终无法为绘图函数提供正确的参数。

谢谢。

编辑

数据集示例https://pastebin.mozilla.org/8853427

我尝试的是加载数据集并使用基于https://stat.ethz.ch/R-manual/R-devel/library/cluster/html/silhouette.html 的各种参数将其传递给plot 函数

【问题讨论】:

  • 请提供您的一些数据和您尝试过的代码
  • 这里是创建reproducible example in R的方法。它使其他人更容易帮助您。

标签: r


【解决方案1】:

cluster 包中的函数 silhouette 可以为您绘制绘图。它只需要一个集群成员向量(由您选择的任何算法生成)和一个相异矩阵(最好使用与生成集群相同的矩阵)。例如:

library (cluster)
library (vegan)
data(varespec)
dis = vegdist(varespec)
res = pam(dis,3) # or whatever your choice of clustering algorithm is
sil = silhouette (res$clustering,dis) # or use your cluster vector
windows() # RStudio sometimes does not display silhouette plots correctly
plot(sil)

编辑:对于 k-means(使用平方欧几里得距离)

library (vegan)
library (cluster)
data(varespec)
dis = dist(varespec)^2
res = kmeans(varespec,3)
sil = silhouette (res$cluster, dis)
windows() 
plot(sil)

【讨论】:

  • 您能详细介绍一下代码吗? dis 将包含什么 res 将包含什么?
  • dis 将是类dist 的距离/相异矩阵。有关详细信息,请参阅?vegdistres 在这种情况下是 pam 的结果对象(围绕中心点进行分区);在这个clustering 中是一个向量,其中包含每个样本已分配到的集群的标识。无论您使用什么算法,都需要从结果中提取集群成员向量。您希望使用哪种方法?
  • 数据已经使用 Kmeans 进行了聚类。并计算出轮廓系数。一旦我有机会测试它并看到它有效,我会立即接受你的回答。
猜你喜欢
  • 2021-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-13
  • 2015-11-04
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
相关资源
最近更新 更多