【问题标题】:R implementation cluster analysisR实现聚类分析
【发布时间】:2015-01-03 19:42:50
【问题描述】:

我正在实施一些聚类分析算法,尤其是聚类验证。交叉验证、外部索引、内部索引、相对索引等方法很少。我正在尝试实现一个内部索引下的算法。

内部索引 - 基于数据的内在内容。它用于在不考虑外部信息的情况下衡量聚类结构的好坏。 我的兴趣是Silhouette Coefficient

s(i) = b(i) - a(i) / max{a(i), b(i)}

为了更清楚,假设我有以下多模型分布:

  library(mixtools)
  wait = faithful$waiting
  mixmdl = normalmixEM(wait)
  plot(mixmdl,which=2)
  lines(density(wait), lty=2, lwd=2)

我们看到有两个集群,截止标记在 68 左右。这里没有标签数据,因此没有基础事实来进行交叉验证(无监督)。所以我们需要一种机制来评估集群。在这种情况下,我们从可视化中知道有两个集群,但是我们如何清楚地表明两个分布实际上属于集群。根据我在维基百科上红色的内容,Silhouette 为我们提供了验证。

我想实现一个方法(它实现了 Silhouette),以便在我的示例中它的等待值的 ar 列表,在这种情况下为 2 的集群数,以及作为模型的模型并返回平均值 s(i) .

我已经开始了,但真的不知道如何前进

Silhouette = function(rList, num_clusters, model) {

}

我的列表摘要如下所示:

               Length Class  Mode   
clust_A         416014 -none- numeric
clust_B         72737 -none- numeric
clust_C          6078 -none- numeric

myList$clust_A 将返回属于该集群的点

    [1]   13  880  497 1864  392   55 1130  248  437   37   62  153   60  117
   [15]   22  106   71 1026  446 1558   23   56  287  402   46 1506  115 2700
   [29]   67  134   48  536   41  506 1098   33   30  280  225   16   25   17
   [43]   63 1762  477  174   98   76  157  698   47  312   40    3  198  621
   [57]   15   34  226  657   48  110   23  250   14   32  137  272   26  257
   [71]  270  133 1734   78  134    8    5  225  187  166   35   15   94 2825
   [85]    2    8   94   89   54   91   77   17  106 1397   16   25   16  103

问题是我认为现有的库不接受这种类型的数据结构。

【问题讨论】:

  • 是的,尝试按照示例进行操作,但没有成功
  • 好吧,显示您尝试的代码并准确描述它是如何失败的会更容易。
  • @MrFlick 我有数字列表,但 api 需要一个 data.frame
  • 所以你不知道如何将列表变成data.frame?那是你的问题吗?你的意思是“列表”还是“向量”(它们在 R 中是不同的)?再次,准确显示您尝试过的代码。

标签: r algorithm machine-learning cluster-analysis


【解决方案1】:

Silhouette 假设所有聚类具有相同的方差。

恕我直言,将此度量与 EM 聚类一起使用是没有意义的。

【讨论】:

  • 您能否详细说明或提供一些阅读材料。如果 K-Means 对 k-means 有益,那么它就是 EM,为什么它对其他 EM 不利
  • 完整的 EM 考虑了差异。 Silhouette 没有考虑方差,因此没有方差的解决方案将比具有不同方差的具有个聚类的解决方案得分更高。尝试其中一半的点为 N(0,1) 而另一半为 N(10,10) 分布的数据集。最有可能的是,EM 解决方案会更合适,但轮廓会说它更糟。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
  • 2019-01-27
  • 2013-02-28
  • 2018-10-22
  • 1970-01-01
相关资源
最近更新 更多