查看原文
其他

无监督聚类问题中,如何决定簇的最优数量?

2017-06-04 三川 AI研习社

AI 科技评论按:聚类问题有一大经典难题:没有数据集的真实分类情况,我们怎么才能知道数据簇的最优数目?

本文会谈谈解决该问题的两种流行方法:elbow method(肘子法)和 silhouette method。

在监督学习里,某特定数据集的类(class)的数量,在一开始就是知道的——每个数据实例,都被标记归属于某个类。最坏的情况下,我们还可以盘查类属性( class attribute),计算其中包含的独特元素。

但在无监督学习里,类属性或者明确的类成员划分是不存在的。想想也是,无监督学习的一个主要形式,就是数据聚类它的目标是通过最小化不同类之间的实例相似度、最大化同个类中的实例相似度,来进行大致的类成员划分。

众所周知,聚类问题有一个很大的技术难题——不管是以什么形式,开发者需要在一开始,就给出无标记数据集中的类的数目。足够幸运的话,你或许事先就知道数据的 ground truth——类的真实数目。但情况并不会总是如此。譬如说,或许数据中不存在定义明确的类(簇)。而无监督学习本来的意义,便是探索数据,找出使簇、类得数目达到最优的结构。

这就回到了文章开头的问题:不知道  ground truth 的情况下,怎么才能知道数据簇的最优数目是多少?这方面,倒是已经林林总总有相当多的处理方法。本文会讨论其中应用极广泛的两种方法。第一种,是 Elbow Method。

  Elbow Method

elbow method 是上手首选,由于能通过可视化便利地解释、验证,它的用处很大。它用关于簇数目的函数来解释方差(k-means 里的 k)。它会绘制出能被 k 解释的方差的比例。第一批的 N 个簇应当会为解释方差添加大量信息。但是,有些 k 最终值会导致少得多的信息增量。这时,数据图会有明显的角度。该角度就是簇的最优数量。

AI 科技评论提醒,有一点应该是不言而喻、无须解释的:为了按照不同的簇数量绘制方差,需要对不同数目的簇进行测试。在绘制、比较结果之后,必须要有该聚类方法的成功、完整地迭代。

  Silhouette Method

Silhouette method 会衡量对象和所属簇之间的相似度——即内聚性(cohesion)。当把它与其他簇做比较,就称为分离性(separation)。该对比通过 silhouette 值来实现,后者在 [-1, 1] 范围内。Silhouette 值接近 1,说明对象与所属簇之间有密切联系;反之则接近 -1。若某模型中的一个数据簇,生成的基本是比较高的 silhouette 值,说明该模型是合适、可接受的。

延伸阅读:最知名的5个机器学习框架,知道一个说明你入门了



 研习社特供福利  ID:OKweiwu

关注 AI 研习社后,回复【1】获取

【千G神经网络/AI/大数据、教程、论文!】
百度云盘地址!



  TensorFlow & 神经网络算法高级应用班

“TensorFlow & 神经网络算法高级应用班” 开课啦!

ThoughtWorks 大牛教你玩转 TF,点击图片抵达课程详细介绍~

课程链接:mooc.ai(点击阅读原文抵达)

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存