原文地址:【阅读原文】
在之前的文章中已经介绍了四大类聚类方法及其典型的算法实现,那么,现在我们所需要做的就是聚类评估。聚类评估的主要任务包括:
-
估计聚类趋势:简言之就是数据集上存在非随机结构,通俗地讲就是数据集不能是随机的,否则聚类则无意义。
-
确定数据集中的簇数:这个好理解就是估计聚类数目K了,大多数聚类方法都需要提前制定簇数目K。
-
测定聚类质量:对聚类结果进行评价。
一、估计聚类趋势
如果数据集内部呈均匀分布,那么聚类将不具有现实意义了。因此,聚类要求数据集非均匀分布。
图1:分布均匀的数据集
霍普金斯统计量:检验空间分布的变量的空间随机性
给定数据集D,它可以看作随机变量o的一个样本,我们想要确定,在多大程度上不同于数据空间中的均匀分布。步骤如下:
- Step 1:均匀从D中取n个样本点p_1, p_2, …, p_n。求样本点p_i的最近邻距离:
- Step 2:均匀从D中取n个样本点q_1, q_2, …,q_n。求样本点q_i的最近邻距离:
- Step 3:计算霍普金斯统计量H:
- 若数据集D是分布均匀的,则H约等于0.5;
- 若数据集D是高度倾斜的,则H约等于0;
- 若H大于0.5,则数据集D很可能不具有明显的簇。
二、确定簇数
确定数据集中“正确的”簇数是重要的,不仅因为像k-均值这样的聚类算法需要这种参数,而且因为合适的簇数可以控制适当的聚类分析粒度。这可以看作在聚类分析的可压缩性与准确性之间寻找好的平衡点。
方法一:经验方法。对于n个样本点的数据集,聚类簇数应为sqrt(n/2),而每个簇中的样本点在期望条件下是sqrt(2n)。
方法二:肘方法。基于如下观察:增加簇数有助于降低每个簇的簇内方差之和。这是因为有更多的簇可以捕获更细的数据对象簇,簇中对象之间更为相似。然而如果形成太多的簇,则降低簇内方差和的边缘效应可能下降,因为把一个凝聚的簇分裂成两个簇引起,簇内方差和的稍微降低。因此,一种选择正确的簇数的启发式方法,,使用簇内方差和关于簇数的曲线的拐点。
严格地说,给定k>0,我们可以使用一种像k-均值这样的算法对数据集聚类,并计算簇内方差和var(k)。然后,我们绘制var关于k的曲线。曲线的第一个(或最显著的)拐点暗示“正确的”簇数。
方法三:交叉检验法。交叉验证是一种常用于分类的技术。首先,把给定的数据集D划分成m个部分。然后,使用m-1个部分建立一个聚类模型,并使用剩下的一部分检验聚类的质量。
三、聚类评估标准
聚类评估主要分内在方法和外在方法,请点击聚类评估标准访问查看。
参考文献
[1] Jiawei Han, Micheline Kamber & Jian Pei. Data Miining Concepts and Techniques (Third Edition).
[2] 范明,孟小峰译. 数据挖掘:概念和技术(第三版).
