聚类算法评估
假设没有外部标签数据,我们怎么评价不同聚类算法的优劣?
非监督学习往往没有标注数据,这是模型,算法的设计直接影响最终的输出和模型的性能。为了评估不同的聚类算法,我们可以从簇下手。
- 以中心定义的数据簇,这类数据集体倾向于球形分布,中心往往被定义为质心,即此数据簇所有点的平均值。集合中数据到中心的距离相比到其他簇中心的距离更近。
- 以密度定义的数据簇,这类数据集合呈现和周围数据簇明显不同的密度,或稠密,也可能稀疏。当数据簇不规则或者相互盘绕,由噪声,离群点,这是一般使用密度的簇定义。
- 以连通定义的簇,这类数据集合中的数据点和数据点之间有连接关系,整个数据簇表现为图结构,该定义对不规则的形状或者缠绕的数据簇有效
- 以概念定义的数据簇,这类数据集合中的所有数据点具有某种共同的性质。
每种情况都需要不同的评估方法,比如K均值聚类可以使用平方误差和来评估。 聚类评估的认识是估计在数据集上进行聚类的可行性,以及聚类方法产生结果的质量,这一过程又分为三个子任务。
- 估计聚类趋势 这一步是检测数据分布中是否存在非随机的簇结构,如果数据根据就是随机的,那么聚类的结果毫无意义。我们可以通过增加聚类类别的数量,如果数据是基本随机的,即不存在合适的簇结构,那么聚类误差随聚类类别数量增加而变化的幅度不大,也就找不到一个合适的K对应数据的真实簇数。
- 判定数据簇数 确定聚类趋势之后,我们需要找到与真实数据分布最吻合的簇数,据此判定聚类结果的质量。
- 测定聚类质量
给定预设的簇数,不同的聚类算法将其输出不同的结果,我们需要判定聚类结果的质量。一般采用下面的指标。
- 轮廓系数,给定一个点p,该点的轮廓系数定义为
其中a(p)是点p与同一簇的其他点之间的平均距离,b(p)是点p与另一个不同簇的点之间的最小平均距离。a(p)反应了所属簇的数据紧凑程度,b(p)反应的是该簇与其他临近簇的分离程度。b(p)越大,a(p)越小,对应的聚类质量越好,因此我们将所有点对应的轮廓系数s(p)求平均值来度量聚类结果的质量。
- 均方差标准偏差,用来衡量聚类结果的紧凑程度,定义如下
其中
代表第i个簇,
是该簇的中心,
代表属于第i簇的一个样本点,
为第i个簇的样本数量,P为样本点对应的向量维数。RMSSTD可以看成一个归一化的标准差。
,通常NC
,因此
是一个接近点的总数的数,可以看成常数。
- R方,略
- 改进Hubert
统计,略