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

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

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

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

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

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

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

Elbow Method

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

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

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

Silhouette Method

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

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




====================================分割线================================

本文作者:三川
本文转自雷锋网禁止二次转载, 原文链接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值