基于密度的优化初始聚类中心Kmeans算法研究AET

关键词:聚类;K-means算法;密度;聚类中心;噪声点

0引言

本文提出一种基于密度优化初始聚类中心的方法,使其尽可能有代表性地反映数据的分布特征。利用数据集样本的点密度,对样本集划分高低密度集,选取高密度集合中的k个相距较远、密度最大的样本作为初始聚类中心,避免初始聚类中心位于同一类簇的缺陷,同时对噪声点进行单独处理,减小其对聚类结果的影响。

K-means算法是基于划分的聚类算法之一,基本思想[6]是:从包含n个对象的数据集中随机选取k个样本点作为初始聚类中心,对于剩下的每个对象,计算其与各个聚类中心的距离,将它分配到最近的聚类,并重新计算聚类中心,再将所有的样本点依据最近距离原则分配到相应的聚类簇中,不断地迭代直到分配稳定,即聚类误差平方和E收敛。

K-means算法简单,且适用于大规模数据量,但初始聚类中心的选取直接影响算法的聚类结果,算法的迭代次数依赖于初始聚类中心和实际聚类中心的偏差,因此,选取一组合适的初始聚类中心非常重要[7]。很多国内外学者从不同角度对该算法聚类中心的选取进行了改进。陆林华[8]对遗传算法进行优化,将遗传算法的全局搜索能力与K-means算法的局部搜索能力相结合;KAUFMANL等[9]提出一种启发式方法,估计数据点的局部密度,并以此启发选择初始聚类中心;袁方等[10]提出给予样本相似度和通过合适权值来初始化聚类的方法;HuangJ[11]提出一种变量自动加权方法,ALSABTI[12]利用k-d树结构改进K-means算法;汪中[5]等人采用密度敏感的相似性度量计算数据对象的密度,启发式地生成初始聚类中心;韩凌波[13]等人通过计算每个数据对象的密度参数选取k个处于高密度分布的点作为初始聚类中心;赖玉霞[14]等人采用聚类对象分布密度方法,选择相互距离最远的k个处于高密度区域的点作为初始聚类中心;王赛芳[15]等人通过计算点密度来选取初始聚类中心。

2基于密度改进的K-means算法

传统的K-means算法对初始聚类中心敏感,聚类结果随不同的初始中心而波动。随机选取的初始聚类中心有可能是一些孤立点或噪声点,或者不同类簇的初始聚类中心位于同一个类簇,导致聚类结果可能偏离样本的真实分布,得到错误的聚类结果,使聚类的收敛速度缓慢甚至难以收敛。选取相距较远的样本作为初始聚类中心,可避免初始聚类中心位于同一类簇的缺陷,但对噪声点敏感;参考文献[11-12]解决了噪声点的问题,但由于涉及到密度调节系数或噪声调节系数,聚类结果直接依赖于参数的选择。主观性强,如果参数选择不好,聚类结果将变得很差。

针对上述局限性,本文提出一种基于点密度优化初始聚类中心选取的方式。在样本点空间中,一般认为高密度区域的点会被低密度区域的点分割,而噪声点往往处于低密度区域。同时,在以欧氏距离作为相似性度量标准的情况下,相互距离远的k个样本点往往比随机选取更具有代表性。因此,在划分出含有噪声点的低密度区域后,本文在高密度区域选取k个相互距离超过某阈值,且密度最大的样本点作为初始聚类中心,即改进K-means算法中的随机选取初始聚类中心。

2.1基本定义

设给定含有n个样本点的数据集合X={xi|xi∈R,i=1,2,…,n},k个聚类类别Cj(j=1,2,…,k,k

定义1任意两个样本点间的欧氏距离

定义2聚类中心(每个聚类簇的样本点的均值)

定义3聚类误差平方和

聚类误差平方和是数据集所有对象与它所在簇的聚类中心的平方误差的总和。聚类误差平方和越大,说明对象与聚类中心的距离越大,簇内的相似度越低,反之亦然。聚类误差平方和应尽可能小,从而使生成的结果簇尽可能紧凑和独立。

定义4点密度

对数据集X中的样本点x,以x为圆心,r(r>0)为半径的球域内所包含的样本点的个数称为x的密度,记为D(x),即

D(x)=|{p|y(x,p)≤r,p∈X}|(4)

式中,y(x,p)表示样本点x与p的距离。通过比较,本文选择以欧氏距离作为距离度量,即y(x,p)=d(x,p),r为设定的距离阈值。D(x)越大,样本点所处区域密度越高。

定义5噪声点

对于数据集X中的样本点x,若D(x)<琢MD(x),则称x为噪声点。其中,MD(x)为所有样本点的密度平均值,即

2.2初始聚类中心的优化算法

基于密度优化初始聚类中心的基本思想是:首先计算样本集中每个样本点的密度D(x),并通过与整个样本集平均密度MD(x)的比较,将其划分给高密度集M或低密度集N。选取集合M中密度最大的样本点作为第一个初始聚类中心nc1,将其从集合M中剔除;接着从集合M中选取与nc1距离超过距离阈值r,且密度最大的点作为第二个初始聚类中心nc2,以此类推,直到选取了k个初始聚类中心。

基于密度优化初始聚类中心算法的具体步骤如下:

输入:聚类簇的数目k以及包含n个对象的数据集X

输出:初始聚类中心集合nc,高密度集M和低密度集N

(1)根据式(1),计算样本集两两样本点间的距离,构造距离矩阵D;

(2)根据式(4)和式(5),计算样本集中每个样本点的密度D(x),以及整个样本集的平均密度MD(x);

(3)根据MD(x),对样本点进行划分,依次归类进高密度集M或低密度集N;

(4)选取M中密度最大的样本点作为第一个初始聚类中心nc1,并将其放入集合nc中,即nc=nc∪{nc1};

(5)选取下一个初始聚类中心nc2,并将其放入集合nc中,即nc=nc∪{nc2}。其中,nc2应满足:①d(nc1,nc2)≥r;②D(nc2)=max{D(x)|x∈X-nc};

(6)重复步骤(5),直到选取k个初始聚类中心。

2.3噪声点的处理

聚类过程中,本文将数据样本划分为高密度集和低密度集,其中,低密度集就是噪声点集合。选取完k个初始聚类中心后,首先对集合M中的样本点进行K-means聚类,得到k个聚类和k个聚类中心。接着依据最小距离原则,将集合N中的噪声点分配到各个聚类中,完成所有样本点的分配聚类。由于避免了噪声点对聚类过程的参与,减少了其对聚类中心的影响,改善了聚类效果。

3实验结果与分析

3.1数据集描述及参数设定

UCI数据集是国际上专门用来测试机器学习、数据挖掘算法的公共数据库,库中的数据都有确定的分类,因此可以用准确率来直观地反映聚类算法的质量。在此,本文选择数据库中的Iris、Wine、Balance-scale、Hayes-roth以及New-thyroid5组数据作为测试数据,如表1。

3.2实验结果

由表2聚类准确率的比较可知,在Iris数据集上,本文算法的聚类准确率与参考文献[14]中的算法一致,高于传统K-means算法和参考文献[5,12];在Wine数据集上,本文算法的准确率略低于参考文献[5],但高于参考文献[12,14]及传统K-means;在Hayes-roth数据集上,本文算法的聚类准确率与参考文献[12]一致,高于参考文献[5、14]及传统算法;而在其他数据集上,文本算法的聚类准确率高于其他四种算法。由此可见,本文算法相较于其他算法,聚类准确性更高。

4结束语

K-means算法应用广泛,但由于其过分依赖于初始化,聚类结果随初始中心的变化而波动,难以保证优良的性能。本文基于密度,有效改进了初始中心点的选取,克服了传统算法敏感且聚类效果容易陷入局部最优的缺陷,同时在一定程度上避免了噪声数据对聚类结果的影响。实验结果证明,该算法能大大提高聚类的准确性。

参考文献

[1]毛国君,段立娟,王实,等.数据挖掘原理与算法[M].北京:清华大学出版社,2005.

[2]朱明.数据挖掘[M].合肥:中国科学技术大学出版社,2002.

[3]HanJiawei,KAMBERM.数据挖掘概念与技术[M].范明,孟小峰,译.北京:机械工业出版社,2000.

[4]谢娟英,郭文娟.基于样本空间分布密度的初始聚类中心优化K-均值算法[J].计算机应用研究,2012,29(3):888-890.

[5]汪中,刘贵全,陈恩红.一种优化初始中心点的K-means算法[J].模式识别与人工智能,2009,22(2):300-302.

[6]莫锦萍,陈琴,马琳,等.一种新的K-Means蚁群聚类算法[J].广西科学学院学报,2008,24(4):284-286.

[7]柯良文,王靖.基于用户相似度迁移的协同过滤推荐算法[J].微型机与应用,2014,33(14):71-74.

[8]陆林华,王波.一种改进的遗传聚类算法[J].计算机工程与应用,2007,43(21):170-172.

[9]KAUFMANL,ROUSSEEUWPJ.Findinggroupsindata:allintro-ductiontoclusteranalysis[M].NewYork:Wileys,1990.

[10]袁方,孟增辉,于戈.对K-means聚类算法的改进[J].计算机工程与应用,2004,40(36):177-178,232.

[11]HUANGJZ,NGMK,HONGQIALLGR,etal.AutomatedvariableweightinginK-meanstypeclustering[J].IEEETransonPatternAnalysisandMachineIntelligence,2005,27(5):657-668.

[12]ALSABTIK,RANKAS,SINGHV.AnefficientK-meansclusteringalgorithm[C].IPPS/SPDPWorkshoponHighPerformanceDataMining.Orlando,Florida,1998:9-15.

[13]韩凌波,王强,蒋正峰,等.一种改进的K-means初始聚类中心选取算法[J].计算机工程与应用,2010,46(17):150-152.

[14]赖玉霞,刘建平.K-means算法的初始聚类中心的优化[J].计算机工程与应用,2008,44(10):147-149.

[15]王赛芳,戴芳,王万斌,等.基于初始聚类中心优化的K-均值算法[J].计算机工程与科学,2010,32(10):105-107.

THE END
1.协同过滤——推荐系统算法原理在探讨推荐算法原理之前,先说一个概念:协同过滤(Collaborative Filtering)。 协同过滤一般是在海量的用户中发掘出一小部分和你品位比较类似的,在协同过滤中,这些用户成为邻居,然后根据他们喜欢的其他东西组织成一个排序的目录作为推荐给你。 为了方便了解,举个简单的例子。最近新上映了10部电影,你不知道看哪一部,问你...https://www.jianshu.com/p/de1ae0e88b27
2.通过社交网络关系的图卷积协同过滤实现的产品推荐方法基于用户的协同过滤算法原理是利用其相似用户对该物品的所有评分的加权平均值,以此来 预测用户对某项物品的未知评分,而基于物品的协同过滤算法是预测用户对某项物品的评分是基 于用户对相似物品的平均评分。基于邻域的cf方法的关键问题是计算相似度和如何加权汇总评 分。 https://www.xjishu.com/zhuanli/55/202111235556.html
3.人工智能基础与应用宋楚平课后习题答案(30页)A.提高数据处理速度 B.节省存储空间 C.方便算法计算 D.形成商品交易矩阵 二、亮一亮 1.协同过滤推荐与关联规则推荐的区别是什么?他们各自适用在哪些场合?参考答案:协同过滤 (Collaborative filtering),是指通过收集群体用户的偏好信息,自动化预测(过滤)个体用户可能感兴趣的内容。协同过滤基于如下基本假设:如果一个人...https://max.book118.com/html/2021/0824/8011073132003137.shtm
1.协同过滤算法原理51CTO博客已为您找到关于协同过滤算法原理的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及协同过滤算法原理问答内容。更多协同过滤算法原理相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。https://blog.51cto.com/topic/780fa7612181653.html
2.协同过滤算法原理介绍基于用户的协同过滤协同过滤算法原理介绍 协同过滤推荐算法是诞生最早,并且较为著名的推荐算法。主要的功能是预测和推荐。算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法(user-based collaboratIve filtering),和基于物品的...https://blog.csdn.net/shenxiaoming77/article/details/51217289
3.Python利用遗传算法探索迷宫出路实例深究python使用遗传算法解决迷宫问题涉及将上述原理应用到迷宫的搜索过程中。基于迷宫的二维数组表示,个体编码将是代表路径的序列。适应度函数将评估路径的有效性和质量,即路径是否能成功走出迷宫。选择、交叉和变异操作将在不断迭代中产生出下一代更优秀的路径,最终找到出路。 结合遗传算法的基本原理和迷宫问题的特点,可以设计一个...https://www.jb51.net/python/310407cm8.htm
4.平台算法的概述与原理.pptx算法优化原理03平台算法分类与比较03依据算法原理平台算法还可以根据其算法原理进行分类,例如基于内容的推荐算法、协同过滤推荐算法等。01依据算法功能平台算法可以根据其功能进行分类,例如推荐算法、排序算法、匹配算法等。02依据应用场景平台算法也可以根据其应用场景进行分类,例如电商平台的推荐算法、社交平台的匹配算法等。https://m.renrendoc.com/paper/302579979.html
5.王沛然从控制走向训导:通用人工智能的“直觉”与治理路径不管是梯度下降算法、反向传播算法,还是协同过滤算法,其实都是一套清晰的规则,“算法=逻辑+控制”。由此梳理算法、模型、参数等概念及其关系。算法是一组方法或步骤,用于实现某种特定的任务或解决某个问题。模型是在算法使用数据进行训练后输出的文件,通常是具有特定流程和结构的计算机程序。参数是模型中需要训练和优化...https://www.thepaper.cn/newsDetail_forward_25330840?commTag=true
6.推荐算法理论(一):协同过滤腾讯云开发者社区所以这篇文章主要是详细介绍这两种方法,从基本思想到原理,最后再进行一个编程的例子实战。 主要内容如下: 基于用户的协同协同过滤 基于物品的协同过滤算法 应用场景及存在问题分析 1. 基于用户的协同过滤 基于用户的协同过滤(UserCF)可以追溯到1993年, 可以说是非常早的一种算法了, 这种算法的思想其实比较简单,当一...https://cloud.tencent.com/developer/article/1981069