机器学习day18聚类算法评价

聚类算法评估

假设没有外部标签数据,我们怎么评价不同聚类算法的优劣?

非监督学习往往没有标注数据,这是模型,算法的设计直接影响最终的输出和模型的性能。为了评估不同的聚类算法,我们可以从簇下手。

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

  • 以密度定义的数据簇,这类数据集合呈现和周围数据簇明显不同的密度,或稠密,也可能稀疏。当数据簇不规则或者相互盘绕,由噪声,离群点,这是一般使用密度的簇定义。

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

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

每种情况都需要不同的评估方法,比如K均值聚类可以使用平方误差和来评估。
聚类评估的认识是估计在数据集上进行聚类的可行性,以及聚类方法产生结果的质量,这一过程又分为三个子任务。

  1. 估计聚类趋势
    这一步是检测数据分布中是否存在非随机的簇结构,如果数据根据就是随机的,那么聚类的结果毫无意义。我们可以通过增加聚类类别的数量,如果数据是基本随机的,即不存在合适的簇结构,那么聚类误差随聚类类别数量增加而变化的幅度不大,也就找不到一个合适的K对应数据的真实簇数。

  2. 判定数据簇数
    确定聚类趋势之后,我们需要找到与真实数据分布最吻合的簇数,据此判定聚类结果的质量。

  3. 测定聚类质量
    给定预设的簇数,不同的聚类算法将其输出不同的结果,我们需要判定聚类结果的质量。一般采用下面的指标。

  • 轮廓系数,给定一个点p,该点的轮廓系数定义为

  • image.png

  • 其中a(p)是点p与同一簇的其他点之间的平均距离,b(p)是点p与另一个不同簇的点之间的最小平均距离。a(p)反应了所属簇的数据紧凑程度,b(p)反应的是该簇与其他临近簇的分离程度。b(p)越大,a(p)越小,对应的聚类质量越好,因此我们将所有点对应的轮廓系数s(p)求平均值来度量聚类结果的质量。

  • 均方差标准偏差,用来衡量聚类结果的紧凑程度,定义如下

  • image.png其中
  • 代表第i个簇,

  • 是该簇的中心,

  • 代表属于第i簇的一个样本点,

  • 为第i个簇的样本数量,P为样本点对应的向量维数。RMSSTD可以看成一个归一化的标准差。

  • image.png
  • ,通常NC

  • ,因此

  • 是一个接近点的总数的数,可以看成常数。

  • image.png
  • R方,略

  • 改进Hubert图片统计,略


猜你喜欢

转载自blog.51cto.com/15069488/2578573