温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
常用
内部
评价
指标
对比
分析
付春龍
2023.4电脑编程技巧与维护1概述聚类是机器学习中无监督学习的重要内容。聚类是一种根据数据特征和相似性将数据集分组为多个集合(簇)的主动方法。同一个簇中的对象具有较高的相似性,不同簇中的对象具有较高的异质性1。根据聚类算法采用的不同策略,将其分为划分聚类、密度聚类、层次聚类、网格聚类和模型聚类5大类2。近年来,聚类被划分为层次聚类和分区聚类两大类,其中,层次聚类细分为分裂式层次聚类和凝聚式层次聚类,分区聚类细分为图论聚类、子空间聚类、基于密度的聚类、基于模型的聚类、基于搜索的聚类、平方误差聚类、杂项聚类、混合模型分离聚类和模糊聚类3。聚类算法目前广泛应用于人工智能、医学、金融、城市发展、隐私保护、营销、工业制造、航空和汽车系统领域3,EL GZEL等4人使用K-means聚类算法对全球受自然灾害的影响,进行聚类及聚类评价指标的分析。一个好的聚类算法可以将具有相似特征的样本数据划分为同一类,可以将具有不同特征的数据划分为不同的类,那么评价聚类结果的好坏就显得尤为重要。评价聚类效果的好坏称为有效性指标(Validity Evaluation)。常用的聚类有效性指标分为两大类:内部指标和外部指标。其中,内部指标不需要任何外部信息,根据聚类结果便可以计算得出:外部指标会事先给出各数据的标签5。对于聚类算法的性能,可以通过9个属性进行评价。这些属性是构成评估任何聚类算法性能的重要标准6。内部指标是在聚类算法自身产生的结果基础上评价聚类质量的指标,其优点是独立于真实标签之外,适用于无法获取真实标签的聚类问题;而外部指标则需要将已知的真实标签作为评价依据,其优点是更加直观,但需要有已知标签作为前提。在很多应用场景中,数据集是没有标签的,那么评价聚类结果的性能只能依靠内部指标。因此,内部指标的应用场景具有一般性。在聚类算法中有很多聚类方法可供选择,由于实际数据集的成分和结构是复杂的,还没有一种可以适用于所有类型数据的聚类方法。因此,在应用聚类算法时,选择适合输入数据集的聚类算法是关键。此外,聚类评价的重要性已被证明与算法本身同样重要。由于缺乏统一的评价原则,研究人员可能会不确定在哪些情况下应该使用哪种评价指标7。研究表明,现有的聚类有效性指标不可能在所有数据集上都能表现出良好的性能8,因此对内部指标特点的研究在正确评价聚类结果方面有重要意义。2聚类评价指标聚类评价指标是用于评估聚类算法效果的度量方法,簇内对象的相似性越高且簇间对象的相似度越低,则聚类效果越好。常用的聚类有效性指标主要分为内部指标和外部指标两大类。借助内部指标通过数据自身的分布特征便可以评价聚类效果的优劣,不需要标签;使用外部指标需要提前知道数据的标签,但在很多现实场景中外部指标是很难获得的,因此内部指标更具有一般性,使用的场景更加广泛。评价聚类效果的好坏主要依常用聚类内部评价指标的对比分析付春龍,盛腾*(四川大学锦江学院,四川 眉山620860)摘要:聚类算法是人工智能领域的重要组成部分,选择合适的聚类评价指标对于聚类结果的正确评估具有重要意义。选择常用的 3 个聚类内部评价指标在不同分布数据集下的不同算法聚类结果进行对比实验,基于极差比和变异系数对聚类评价指标的波动性进行对比。实验结果表明,Silhouette Coefficien(SC)指数值波动最小;Davies-Bouldin(DB)指数值波动最大。评价指标在各数据集中的聚类性能排名方面,SC 指数和 Calinski-Harabasz(CH)指数具有一致性。这 3 个指标在团状数据集上聚类效果最好;在同心圆数据集上聚类效果最差。通过对聚类评价指标在数据集上相关性的分析发现,每个聚类评价指标对不同数据集具有特定的倾向性。关键词:聚类;性能评价指标;相关性分析;Scikit-learn 学习工具基金项目:四川大学锦江学院2022年青年教师科研基金项目“基于矩不变量的数字水印研究”(项目编号:QNJJ-2022-A04)。作者简介:付春龍,男,硕士,研究方向为人工智能、机器学习;盛腾,男,通信作者,硕士,研究方向为数据挖掘、人工智能。3DOI:10.16184/prg.2023.04.0012023.4电脑编程技巧与维护据簇内紧密度和簇间分离度两个量。其中,簇内紧密度用于度量同一类中不同样本之间的紧密关系、紧密关系通常用于度量类内样本最大距离、簇内样本平均距离及簇内样本点到簇中心的距离;簇间分离度用于度量不同类之间的差异;差异关系通常用簇间最小距离和簇间中心点距离来度量9。常用的内部指标包括SC指数、CH指数、DB指数8,对这3个指标的详细介绍如下。(1)SC指数是结合了簇内样本紧密度和簇间样本分离度的聚类评价指标,其取值范围为-1,1,取值越大说明聚类效果越好。SC指标的定义如公式(1)公式(3)所示:(1)(2)(3)其中,x、y为样本点;C为簇;k为簇的个数;ni为簇i中的样本点个数;de(x,y)为样本点x与y的欧氏距离。(2)CH指数是基于簇内方差和簇间方差之比的聚类评价指标,其取值范围为0,+,取值越大说明聚类效果越好。CH指标的定义如公式(4)所示:(4)其中,;x为簇i的质心;u为所有簇的质心集合。(3)DB指数是基于簇内紧密度与簇间分离度之比函数最大值均值的聚类评价指标,其取值范围为0,+,取值越小说明聚类效果越好。DB指标的定义如公式(5)公式(6)所示:(5)(6)3实验3.1实验数据实验中采用了6个模拟小数据集(toy dataset),这些小数据集均来自Scikit-learn官网11,每个数据集具有不同的分布特性。根据生成规则和形状,这些数据集可以分为同心圆数据集(noisy_circles)、互嵌的弯月形数据集(noisy_moons)、随机生成的高斯分布数据集(var-ied)、各向异性高斯分布数据集(aniso)、球形数据集(blobs)和均匀分布数据集(no_structure)。每个数据集均包含500个样本点,可以在sklearn.datasets模块中实现生成这些数据集的函数。构建数据集的关键代码及参数如下。import numpy as npfrom sklearn import datasetsnp.random.seed(0)noisy_circles=datasets.make_circles(n_sam-ples=500,factor=.5,noise=.05)noisy_moons=datasets.make_moons(n_sam-ples=500,noise=.05)varied=datasets.make_blobs(n_samples=500,cluster_std=1.0,2.5,0.5,random_state=170)X,y=datasets.make_blobs(n_samples=500,ran-dom_state=170)aniso=(np.dot(X,0.6,-0.6,-0.4,0.8),y)blobs=datasets.make_blobs(n_samples=500,random_state=8)no_structure=np.random.rand(500,2)3.2聚类算法在不同数据集上的性能指标实验中选用了比较主流的7个聚类算法:MiniBatchK-Means、DBSCAN、AffinityPropagation、Ward、Spectral、OPTICS、GaussianMixture。采用3.1中的模拟数据集,使 用 的 聚 类 评 价 指 标 分 别 为CH、DB、SC。利 用sklearn.cluster模块中的聚类模型、sklearn.metrics模块中的评价指标和matplotlib.pyplot模块中的绘图函数。不同数据集上不同算法的聚类性能评价指标如图1所示。图1不同数据集上不同算法的聚类性能评价指标42023.4电脑编程技巧与维护图2SC在不同数据集上的相关系数热力图图3CH在不同数据集上的相关系数热力图为了更好地分析各指标的特点,对图1中得到的各聚类指标在不同数据集上进行统计分析,如表1所示。为了避免单个算法对聚类结果的影响,对所有算法在每个数据集上的聚类结果求平均值。其中,mean表示这7个算法在某个数据集上的聚类结果的聚类性能指数平均值;rank表示指标在各数据集聚类结果中的排名(注:DB的值是越小越好,SC和CH的值越大越好)。其中,聚类性能效果最好的是团状数据集(blobs),效果最差的是同心圆数据集(noisy_circles);可以发现SC和CH的排名完全一致,说明二者在评价聚类性能方面具有一致性,然而DB与另外两个指标具有一定的差异性,但3个指标在排名最高的和排名最低的数据集完全一致。为了更好地分析聚类评价指标的波动性,使用极差比(CR)和变异系数(CV)来分析聚类性能指标的波动性和离散程度。其中,CR=最大值/最小值;变异系数(CV)=标准差/均值。通过表1可以计算得出这3个聚类评价指标的CR和CV,其计算结果如表2所示。从表1中可以得出,SC在各数据集上的平均值mean变化相对较小。从表2中可以发现,SC的CR仅为3.22,CV为0.42,这说明SC指标波动性比较小且相对平稳;在表1中因为CH的取值本身较大,所以mean较大,从表2中发现CH的CR为58.36,CV为1.76,CH的波动性介于SC和DB指标之间;在表2中可以发现DB的CR和CV都是最大的,这说明该指标非常灵敏,波动性最强。最后发现这3个指标的波动性由强到弱分别是DB、CH和SC。3.3数据集相关性分析可以将研究不同数据集的相关性转化为研究聚类评价指标在不同数据集上的相关性。采用Pearson相关系数,它是一种衡量两个连续变量之间线性关系强度和方向的统计指标,其计算公式如公式(7)所示:r=Cov(X,Y)/(SD(X)SD(Y)(7)其中,Cov为协方差;SD为标准差。对于实验中选用的7个算法,分别对6个数据集上的聚类结果采用SC评价指标,可以得到6组SC指标值。对这6组SC指标进行相关性分析,得到如图2所示的SC的相关系数热力图,同理可以得到CH在不同数据集上的相关系数热力图,如图3所示。DB在不同数据集上的相关系数热力图,如图4所示。实验结果表明,在图2中,使用SC评价在数据集noisy_circles与数据集blobs和no_structure具有强烈的正相关,与数据集varied和aniso具有强烈的负相关,其中,相关系数最强的是数据集blobs和数据集no_structure;在图3中数据集noisy_moons和varied具有强烈的负相关;在图4中数据集noisy_moons和no_structure具有强烈的负相关。从图2图4中可以发现,这3个热力图差异较大,这说明使用不同聚类评价指标在同样的数据集中,其相关系数差异很大,每个聚类评价指标对数据的分布具有特定的倾向性。DatasetsSCCHDBmeanrankmeanrankmeanranknoisy_circles0.246158.13699.866noisy_moons0.414475.9340.912varied0.5321 069.0921.374aniso0.463876.3532.145blobs0.7719 227.9210.541no_structure0.295285.0150.913表1聚类评价指标的统计分析DatasetsSCCHDBCR3.2258.36184.38CV0.421.762.29表2聚类评价指标的CR和CVnoisy_circlesnoisy_moonsvariedanisoblobsno_structurenoisy_circlesnoisy_moonsvariedanisoblobsno_structure10.71-0.97-0.960.970.940.711-0.850.580.590.51-0.97-0.8510.88-0.92-0.870.881-0.58-0.96-0.97-0.99-0.92-