内容简介:无监督聚类问题中,如何决定簇的最优数量?
雷锋网 (公众号:雷锋网) 按:聚类问题有一大经典难题:没有数据集的真实分类情况,我们怎么才能知道数据簇的最优数目?
本文会谈谈解决该问题的两种流行方法: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 值,说明该模型是合适、可接受的。
via kdnuggets ;雷锋网编译
人工智能之神经网络特训班
20年清华大学神经网络授课导师,带你系统学习人工智能之神经网络!
一站式深入了解深度学习的发展现状、基本原理和主要方法。
课程链接:http://www.mooc.ai/course/65
相关文章:
雷锋网版权文章,未经授权禁止转载。详情见 转载须知 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 字符串的长度,是字符数量,还是字节数量?
- Java并发 -- 线程数量
- kafka增加topic的备份数量
- 来,控制一下 Goroutine 的并发数量
- 控制 Goroutine 的并发数量的方式
- 线程池最佳线程数量到底要如何配置?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。