如何评估两个非监督学习算法的优劣

410 阅读4分钟

常见数据簇的特点:

以中心定义的数据簇:这类数据集合倾向于球形分布,通常中心被定义为质心,即此数据簇中所有点的平均值。集合中的数据到中心的距离相比到其它簇中心的距离更近;

以密度定义的数据簇:这类数据集合呈现和周围数据簇明显不同的密度,或稠密或稀疏。当数据簇不规则或互相盘绕,并且有噪声和离群点时,常常使用基于密度的簇定义;

以连通定义的数据簇:这类数据集合中的数据点和数据点之间有连接关系,整个数据簇表现为图结构,该定义对不规则形状或者缠绕的的数据簇有效;

以概念定义的数据簇:这类数据集合中的所有数据点具有某种共同性质。

常见的聚类算法的特点:

划分聚类:将数据对象划分成互不重叠的数据簇,其中每个数据点恰在一个数据簇中;

层次聚类:数据簇可以具有子簇,具有多个(嵌套)子簇的数据簇可以表示为树状结构;

模糊聚类:每个数据点均以0~1的隶属权值属于某个数据簇;

完全/不完全聚类:是否对所有数据点都指派一个数据簇。

由于数据以及需求的多样性,没有一种算法能够适应所有的数据类型、簇和应用,似乎每种情况都可能需要一种不同的评估度量。例如,K均值聚类通常需要用SSE (Sum of Square Error) 来评估,但是基于密度的数据簇可以不必是球形,SSE则完全失效。在许多情况下,判断聚类算法结果的好坏最终强烈依赖主观解释。尽管如此,聚类算法的评估还是必须的,它是聚类分析中重要部分之一 。

对聚类算法优劣的评估通常可以总结为对以下五个方面的分析:

辨识数据中是否存在非随机簇结构的能力;

辨识数据中正确数据簇的能力;

评估数据被正确聚类的能力;

辨识两个数据簇之间优劣的能力;

评估与客观数据集之间的差异;

聚类评估的任务是估计在数据集上进行聚类的可行性,以及聚类方法产生结果的质量。这一过程又分为三个子任务。

(1)估计聚类趋势

这一步骤是检测数据分布中是否存在非随机的簇结构。如果数据是基本随机的,那么聚类的结果也是毫无意义的。我们可以观察聚类误差是否随聚类类别数量的增加而单调变化,如果数据是基本随机的,即不存在非随机簇结构,那么聚 类误差随聚类类别数量增加而变化的幅度应该较不显著,并且也找不到一个合适的K对应数据的真实簇数。

(2)判定数据簇数

确定聚类趋势之后,我们需要找到与真实数据分布最为吻合的簇数,据此判定聚类结果的质量。数据簇数的判定方法有很多,例如手肘法和Gap Statistic方 法。需要说明的是,用于评估的最佳数据簇数可能与程序输出的簇数是不同的。 例如,有些聚类算法可以自动地确定数据的簇数,但可能与我们通过其他方法确 定的最优数据簇数有所差别。

(3)测定聚类质量

给定预设的簇数,不同的聚类算法将输出不同的结果,如何判定哪个聚类结 果的质量更高呢?在无监督的情况下,我们可以通过考察簇的分离情况和簇的紧 凑情况来评估聚类的效果。定义评估指标可以展现面试者实际解决和分析问题的 能力。事实上测量指标可以有很多种,以下列出了几种常用的度量指标。

轮廓系数

均方根标准偏差(Root-mean-square standard deviation,RMSSTD) 用来衡量聚结果的同质性,即紧凑程度。

R方(R-Square):可以用来衡量聚类的差异度

改进的HubertΓ统计 通过数据对的不一致性来评估聚类的差异。