聚类分析方法(三)
目录
- 五、聚类的质量评价
- (一)簇的数目估计
- (二)外部质量评价
- (三)内部质量评价
- 六、离群点挖掘
- (一)相关问题概述
- (二)基于距离的方法
- (三)基于相对密度的方法
- 七、其它聚类方法
五、聚类的质量评价
聚类分析是将一个数据集分解成若于个子集,每个子集称为一个簇,所有子集形成的集合称为该对象集的一个聚类。一个好的聚类算法应该产生高质量的簇和高质量的聚类,即簇内相似度总体最高,同时簇间相似度总体最低。鉴于许多聚类算法,包括 k k k-平均算法, DBSCAN算法等都要求用户事先指定聚类中簇的数目 k k k,因此,下面首先讨论k的简单估计方法。
(一)簇的数目估计
许多聚类算法,比如 k k k-平均算法,甚至DIANA算法等,都需要事先指定簇的数目 k k k,并且 k k k的取值会极大地影响聚类的质量,然而事先确定簇的数目 k k k并非易事。我们可以先考虑两种极端情况。
(1)把整个数据集 S S S当作一个簇,即令 k = 1 k=1 k=1,这样做看上去既简单又方便,但这种聚类分析结果没有任何价值。
(2)把数据集 S S S的每个对象当作一个簇,即令 k = ∣ S ∣ = n k=|S|=n k=∣S∣=n,这样就产生了最为细粒度的聚类。因此,每个簇都不存在簇内差异,簇内相似度就达到最高。但这种聚类并不能为 S S S提供任何关于 S S S的概括性描述。
由此可知,簇的数目 k k k至少应该满足 2 ≤ k ≤ n − 1 2≤k≤n-1 2≤k≤n−1,但簇数 k k k具体取什么值最为恰当仍然是含糊不清的。
一般认为, k k k的取值可以通过数据集分布的形状和尺度,以及用户要求的聚类分辨率来进行估计,且学者们已经有许多不同的估计方法,比如肘方法 (elbow method),交叉验证法以及基于信息论的方法等。
一种简单而常用的 k k k值经验估计方法认为,对于具有 n n n个对象的数据集,其聚类的簇数 k k k取 n 2 \begin{aligned}\sqrt\frac{n}{2}\end{aligned} 2n 为宜。这时,在平均期望情况下每个簇大约有 2 n \sqrt{2n} 2n 个对象。在此基础上,还有人提出了进一步附加限制,即簇数 k