X-means:一种针对聚类个数的K-means算法改进

合集下载

k-means算法

k-means算法

k-means算法k-means算法是无监督学习领域最为经典的算法之一。

接触聚类算法,首先需要了解k-means算法的实现原理和步骤。

本文将对k-means算法的基本原理和实现实例进行分析。

希望对喜欢机器学习的童鞋们,有一定的帮助和启发。

首先看看wiki上对k-means算法的基本阐述。

k-means clustering is a method of vectorquantization, originally from signalprocessing, that is popular for clusteranalysis in data mining. k-means clusteringaims to partition n observations into kclusters in which each observation belongs tothe cluster with the nearest mean, serving asa prototype of the cluster.可以看出,k-means算法就是将 n 个数据点进行聚类分析,得到 k 个聚类,使得每个数据点到聚类中心的距离最小。

而实际上,这个问题往往是NP-hard的,以此有许多启发式的方法求解,从而避开局部最小值。

值得注意的是,k-means算法往往容易和k-nearest neighbor classifier(k-NN)算法混淆。

后者是有监督学习的分类(回归)算法,主要是用来判定数据点属于哪个类别中心的。

A simple example for k-means clusteringk-means算法有很多应用:•图像分割(Image Segmentation)•基因分割数据聚类分析(Clustering GeneSegementation Data)•新闻聚类分析(News Article Clustering)•语言聚类分析(Clustering Languages)•物种分析(Species Clustering)•异常检测(Anomaly Detection)•\cdots数学描述给定数据集 X=\{x^{(1)},x^{(2)},\cdots,x^{(n)}\} ,其中每个数据样本 x^{(i)}\in \mathbb{R}^d . k-mean算法旨在将 n 个数据点划分为 k(k\leq n) 个聚类集合\bm{S}=\{S_1,S_2,\cdots,S_k\} ,使得每个聚类集合中的样本点与聚类中心的距离平方和最小(WCSS, within-cluster sum of squares),i.e. 方差最小。

K-MEANS算法(K均值算法)

K-MEANS算法(K均值算法)

k-means 算法一.算法简介k -means 算法,也被称为k -平均或k -均值,是一种得到最广泛使用的聚类算法。

它是将各个聚类子集内的所有数据样本的均值作为该聚类的代表点,算法的主要思想是通过迭代过程把数据集划分为不同的类别,使得评价聚类性能的准则函数达到最优,从而使生成的每个聚类内紧凑,类间独立。

这一算法不适合处理离散型属性,但是对于连续型具有较好的聚类效果。

二.划分聚类方法对数据集进行聚类时包括如下三个要点:(1)选定某种距离作为数据样本间的相似性度量k-means 聚类算法不适合处理离散型属性,对连续型属性比较适合。

因此在计算数据样本之间的距离时,可以根据实际需要选择欧式距离、曼哈顿距离或者明考斯距离中的一种来作为算法的相似性度量,其中最常用的是欧式距离。

下面我给大家具体介绍一下欧式距离。

假设给定的数据集 ,X 中的样本用d 个描述属性A 1,A 2…A d 来表示,并且d 个描述属性都是连续型属性。

数据样本x i =(x i1,x i2,…x id ), x j =(x j1,x j2,…x jd )其中,x i1,x i2,…x id 和x j1,x j2,…x jd 分别是样本x i 和x j 对应d 个描述属性A 1,A 2,…A d 的具体取值。

样本xi 和xj 之间的相似度通常用它们之间的距离d(x i ,x j )来表示,距离越小,样本x i 和x j 越相似,差异度越小;距离越大,样本x i 和x j 越不相似,差异度越大。

欧式距离公式如下:(2)选择评价聚类性能的准则函数k-means 聚类算法使用误差平方和准则函数来评价聚类性能。

给定数据集X ,其中只包含描述属性,不包含类别属性。

假设X 包含k 个聚类子集X 1,X 2,…X K ;{}|1,2,...,m X x m total ==(),i j d x x =各个聚类子集中的样本数量分别为n 1,n 2,…,n k ;各个聚类子集的均值代表点(也称聚类中心)分别为m 1,m 2,…,m k 。

基于视觉词袋模型提取胶痕特征的卷烟真伪鉴别

基于视觉词袋模型提取胶痕特征的卷烟真伪鉴别

包装工程第44卷第15期·252·PACKAGING ENGINEERING2023年8月基于视觉词袋模型提取胶痕特征的卷烟真伪鉴别李郸1,马慧宇1,李海燕1,王春琼1,张轲1,张榆锋2,廖泽容3(1.云南省烟草质量监督检测站,昆明650104;2.云南大学信息学院,昆明650500;3.昆明医科大学康复学院,昆明650500)摘要:目的为快速准确地鉴别多品牌卷烟真伪,提出一种基于视觉词袋模型提取烟盒胶痕图像特征的鉴别方法。

方法首先,利用自主设计的多光源胶痕采集装置获取烟盒内部的胶痕图像,通过图像处理技术去除原始图像的部分背景后得到胶痕图像样本;然后,从胶痕图像样本中提取尺度不变特征转换(SIFT)特征,并用K-Means算法对特征聚类生成视觉词典;再依据视觉词典的视觉单词直方图特征集对胶痕图像进行训练分类,从而达到鉴别卷烟真伪的目的。

结果以10种真品包装机型生产的烟盒胶痕图像以及假冒烟盒胶痕图像为对象,烟盒样品涉及64个卷烟品牌,对360张胶痕图像分类测试,得到真伪识别率为97.22%,每个样本平均鉴别时间为0.05 s。

结论提出的方法采集胶痕图像简便、真伪鉴别效率和准确率高,并适用于多种卷烟品牌。

为提高真伪卷烟鉴别效率、准确率和通用性提供了技术支持。

关键词:卷烟真伪鉴别;视觉词袋模型;胶痕图像;视觉单词直方图中图分类号:TP391 文献标识码:A 文章编号:1001-3563(2023)15-0252-08DOI:10.19554/ki.1001-3563.2023.15.033Cigarette Authenticity Identification Based on Visual Word BagModel to Extract Features of Glue MarksLI Dan1, MA Hui-yu1, LI Hai-yan1, WANG Chun-qiong1, ZHANG Ke1, ZHANG Yu-feng2, LIAO Ze-rong3(1. Yunnan Tobacco Quality Supervision and Testing Station, Kunming 650104, China; 2. School of Information, YunnanUniversity, Kunming 650500, China; 3. School of Rehabilitation, Kunming Medical University, Kunming 650500, China)ABSTRACT: The work aims to propose a method based on visual word bag model to extract the features of plastic marks in cigarette packets to quickly and accurately identify the authenticity of multi-brand cigarettes. Firstly, a self-designed multi-light source glue mark acquisition device was used to obtain the glue mark image inside the cigarette packet, and the glue mark image sample was obtained after removing part of the background of the original image by image processing technology. Then, scale invariant Feature conversion (SIFT) features were extracted from the glue mark image samples, and K-Means algorithm was used to cluster the features to generate a visual dictionary. Then, according to the visual word histogram feature set of the visual dictionary, the glue mark images were trained and classified, so as to identify the au-thenticity of cigarette. In this paper, 10 samples of authentic cigarette packets and counterfeit cigarette packets of 64 cig-arette brands were taken as the objects. The classification test of 360 cigarette packet images showed that the authenticity recognition rate was 97.22%, and the average identification time of each sample was less than 0.05 s. The above method is收稿日期:2023−04−19基金项目:中国烟草总公司云南省公司科技计划重大项目(2022530000241036);国家自然科学基金(6226010174);云南省科技厅基础研究计划(202201AY070001-035)作者简介:李郸(1992—),男,硕士,工程师,主要研究方向为卷烟真伪鉴别。

基于LDA改进的K-means算法在短文本聚类中的研究

基于LDA改进的K-means算法在短文本聚类中的研究

基于LDA改进的K-means算法在短文本聚类中的研究冯靖;莫秀良;王春东【摘要】在短文本聚类的过程中,常发现特征词的稀疏性质、高维空间处理的复杂性.由于微博的内容长度限制和特征稀疏性,特征向量的高维度被执行,导致模糊聚类结果.本文使用了Latent Dirichlet Allocation主题模型,对训练数据进行建模,并将主题术语扩展原始微博的特征,从而丰富了聚类文本特征,提高聚类效果.实验结合K-means和Canopy聚类算法对文本数据进行处理,提出了LKC算法,弥补了K-means算法对初始聚类中心点选取的敏感性,结果实现了更高的精度和聚类F1-measure的测量值.F1值提高了10%,准确度提高了2%.%In the process of short text clustering,the sparse nature of the characteristic words,the complexity of the high-dimensional space processing are often found.Due to the content length limitation of the micro blog and its feature sparsity,the high dimensionality of feature vectors is performed,resulted in obscured clustering results.A Latent Dirichlet Allocation (LDA)theme model is proposed to the training data,and extend the subject term into the characteristics of the original micro blog,such that to enrich the category features to improve the clustering consequent.Our experiment combines K-means and Canopy clustering algorithm to process the text data and the results achieve higher accuracy and F1-measure.The F1 value improved by 10%,and the accuracy improved by 2%.【期刊名称】《天津理工大学学报》【年(卷),期】2018(034)003【总页数】5页(P7-11)【关键词】短文本;LDA;K-means聚类;Canopy聚类【作者】冯靖;莫秀良;王春东【作者单位】天津理工大学计算机科学与工程学院天津市智能计算及软件新技术重点实验室,天津300384;天津理工大学计算机科学与工程学院天津市智能计算及软件新技术重点实验室,天津300384;天津理工大学计算机科学与工程学院天津市智能计算及软件新技术重点实验室,天津300384【正文语种】中文【中图分类】TP391.1自媒体时代[1],除了新奇的交流体验,微博也产生了大量的冗余或无用的短文本内容.微博数据在舆情监控方面得到广泛的应用,它在舆情信息工作中扮演着不可忽视的角色.传统的K-means算法能够有效地处理大数据集而被广泛使用,但对于微博短文本聚类时通常存在以下局限:(1)聚类的数目和聚类的初始中心点的选取比较敏感.(2)微博的表达非常口语化,语法的使用不规范,通常使用图像、视频、链接和其他多媒体技术.因此,数据收集和预处理过程变得更具挑战性.(3)针对短文本特征关键词词频过低,使用传统的向量空间模型Vector Space Model 模型会陷入维度过高,产生大量的0值,从而不能真实的描述文本.目前,针对短文本特征信息少,只有少量的字可以被分析使用的特性,国内外对短文本聚类[2-3]已经进行了比较深入的研究,文献[4]提出通过结合语义改进K-means短文本聚类算法,通过语义集合表示短文本缓解了短文本特征关键词的稀疏性问题.但是文中语义距离的计算忽略了上下文语境,语义距离的计算不够精确.文献[5]提出一种结合上下文语义的短文本聚类算法,首先通过发现词语间共现关系引入上下文语义信息对传统的TF-IDF权重计算进行修改然后进一步结合潜在语义分析方法降维到潜在语义空间完成短文本聚类,改善了短文本特征不足及特征高维稀疏问题.文献[6]提出基于语义特征选取与改进K均值算法的文本聚类,在对文本进行预处理过程采用语义特征选择进行优化,且改进K-means初始聚类个数,减少了整个聚类算法的时间,提高聚类精度.文献[7]构造了一种针对中文网络短文本的特征表示,构建动态网络,用其支持聚类,可以获得满意的聚类结果.由于短文本,固有的缺陷,为了解决短长度、弱信号和小特征的问题,文献[8]中提出了一种用于短文本分类的语义词典方法.从文本中提取主题是具有挑战性的,文献[9]提出了一种通用框架,可以通过创建lager伪文档的原始文档来创建短文本的主题建模.在最初的实验过程中使用原始的TF-IDF计算权重值发现其并不适用于微博短文本,这种方法没有考虑到文字背后的语义关联,可能在两个文档共同出现的单词很少甚至没有,但两个文档是相似的.考虑到传统主题模型在处理大规模文本时存在的局限性,本文使用LDA主题模型做文本特征抽取,其有效解决了文本挖掘中的特征稀疏等问题.1 聚类算法描述1.1 K-means算法K-means[10]算法是一种top-down的思想,它首先要解决的问题是,确定cluster数量,也就是K的取值.在确定了K后,再来进行数据的聚类.其具体实现过程如下所陈述:输入:待聚类文本数N,聚类数目k,最大迭代次数Stepmax,迭代终止条件m. 输出:k个聚类和迭代次数.1)从N个待聚类的文本选择K个聚类质心点为初始质心,例如c[0]=data[0],...c[k-1]=data[k-1];将data[0]...data[n],分别与 c[0]...c[k-1]比较,若与 c[i]差值最少,就标记为i;2)Repeat.把剩下的点分配到最近的质量中心,形成k团.重新计算每个集群的质心,直到集群中心的质点没有变化或达到最大迭代次数.基于不同的算法,可以利用不同的指标来确定聚类算法的优缺点.对于文本聚类,K-means算法简单有效.但传统的K-means算法对初始聚类中心敏感,结果不同.它很容易进入局部最优,此外,它对噪声和异常值很敏感.因此,本文提出了一种基于LDA主题模型和canopy-kmeans算法的短文本聚类算法.1.2 Latent Dirichlet Allocation模型本文使用LDA文本主题空间模型,对文本特征进行抽取.LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,包含特征词、隐含主题和文档三层结构. 图1 LDA主题模型三层结构图Fig.1 Three-tier structure diagram of LDA theme model在判断文档相关性的时候需要考虑到文档的语义,而语义挖掘的利器是主题模型,LDA[11]就是其中一种比较有效的模型.它可以将文档集中每篇文档的主题以概率分布的形式给出,从而通过分析一些文档抽取出它们的主题(分布)出来后,便可以根据主题(分布)进行主题聚类或文本分类.LDA是一种非监督机器学习技术,可以用来识别大规模文档集或语料库中潜藏的主题信息.本文中利用LDA模型代替传统的VSM模型来提取隐藏的微博主题信息,并进行聚类分析.其有向概率图如下所示:图2 LDA概率图Fig.2 Latent dirichlet allocation model图2中,参数α反映出文本集中不同隐含主题间的相对强弱关系,参数β则代表主题自身的概率分布.z表示隐含主题,w表示词表的每个词,即观察值,θ代表文本-主题概率分布.对于给定的文本集D,包含M个文档,T个主题,而每个文档d中又包含N个词.LDA的主要工作是根据给定的一篇文档,推测其主题分布.LDA定义生成任意一个文本dj的过程陈述如下:1)选择一个N,N表示整个文档集中不同词语的个数;2)选择一个θ,θ是主题分布所服从的多项分布的参数;3)对于文档找那个的每一个词wn:(1)选择一个主题zn;(2)在选定主题zn后,在该主题对应的词分布中选择一个单词 wn,它的概率是p(w|zn,β).1.3 相似度判定文本聚类的相似度计算使用余弦距离,假设三角形的三条边为a、b和c,边所对应的三个角为A、B和C,那么角A的余弦为:如果将三角形的边当成向量对待,则公式等价于:其中<b,c>是向量的内积,|b||c|是向量长度乘积.文本X和文本Y经过结构化处理后对应向量分别是:X1,X2,...X1000和 Y1,Y2,...,Y1000,则两文本间的余弦距离就可以用这两向量的余弦值来表示:在文本相似度判定中,由于文本特征向量定义的特殊性,其cosθ范围为[0,1],即如果cosθ越接近于1时,两个文本越相似;当cosθ等于1时,则这两个文本是完全重复的;cosθ越小,则两个文本相关度越低.余弦相似度适用于短文本,用余弦距离计算文本的相似度首先基于词频统计的,根据公式(4)也可以看出,该距离的计算难度是随着文本的增多而增大的,因为文本变多,维度也随着提高了. 1.4 LKC聚类算法实现过程任何基于文本的系统都需要文档的一些表示,并且适当的表示取决于要执行任务的种类.聚类[12]是通过合适的策略把相似的对象聚到一个集合,该集合中的对象在某个方面有着相似的属性.本文选用K-Means method结合Canopymethod[13].K-Means是经典的基于原型的目标函数聚类方法,它试图找到最小的一组普通误差标准函数.但其初始K值的选择是随机性的,这会影响到后续实验聚类的结果.所以第一阶段首先使用Canopy算法选择合适的K个点作为初始质心,并排除与大部分数据点相差甚远的数据点.本文LKC聚类算法实验流程如下:图3 聚类算法流程图Fig.3 The flow chart of LKC clusteing alorithm2 实验结果及评价2.1 数据准备实验数据来自微博200万情感短文本.0到3分别对应不同类别的感情,0代表喜悦,1代表愤怒,2代表厌恶,3代表低落.在实验过程中,把这四类情感倾向分为两大类,0为积极,1、2和3为消极.实验中会对文本数据预处理主要使用Python进行文本预处理,包括文本分词,过滤停用词,词频统计,特征选择,文本表示等.中文文本一般需要用分词算法完成分词,它是没有类似英文空格的边界标志,不能像西方语言那样可以根据空格和标点符号完成分词.文本分词是一个处理的关键,词是最小的能够独立运用的语言单位,它的定义非常抽象且不可计算.网上已有许多开放的分词引擎,例如 BosonNLP、IKAnalyzer、NLPIR、SCWS、结巴分词、盘古分词等多款分词系统.停用词(Stop Words),最简单的如汉语中的“啊”、“的”、“啦”等词,它们没有具体的意义,不能体现文本所表示的内容,但几乎在所有文本中都出现,如果在聚类中考虑这些词,那么文本之间的相似性不能表现出内容的相似性,而是一些无意义的相似性,这不是我们所希望的.为此我们建立一个中文停止词词表,通过这个词表去掉短文本中的停用词.使用十分广泛,甚至过于频繁的一些单词,如果分词前就把停用词剔除,会导致分词不准.所以本文在分词后再根据停用词表把字符串中的停用词删掉.2.2 评价标准采用F1值和准确率(Accuracy)来衡量聚类算法的有效性.其中F1的值又取决于精确率(Precision,Pr)、召回率(Recall,Re).精确率和召回率的计算公式如下:式(5)中:nj表示识别出的个体 j的总数;ni表示测试集中存在的个体总数;nij 表示正确识别的个体总数.F1-measure的值可以定义为(参数β=1时):准确率(Accuracy)指在一定实验条件下多次测定的平均值与真值相符合的程度.2.3 实验结果与分析为了充分验证本文改进算法的有效性,重复抽取数据进行实验,在一定程度上缓解了短文本表征中固有的高维度高稀疏性问题.为了降低实验的误差,对数据进行多次重复性实验.表1是取自迭代次数为300时的11次试验结果,因为每次的数据选取都是随机的,排除了与平均值相差较大的几个数据点.表1 两种算法运行结果对比表Tab.1 Comparison results of two algorithms实验序号标准K-means算法改进算法F1值 Acc F1值 Acc 1 0.550 7 0.533 0 0.625 8 0.511 5 2 0.551 6 0.530 4 0.626 5 0.512 6 3 0.552 1 0.530 7 0.625 3 0.510 4 4 0.553 1 0.530 1 0.625 1 0.511 2 5 0.553 5 0.529 6 0.623 6 0.508 56 0.552 5 0.529 3 0.6227 0.507 1 7 0.549 1 0.532 9 0.6238 0.5079 8 0.5537 0.530 1 0.628 1 0.512 3 9 0.552 4 0.530 3 0.625 6 0.510 9 10 0.553 5 0.5296 0.624 3 0.510 4 11 0.552 2 0.529 6 0.626 3 0.512 8平均值 0.552 2 0.530 5 0.625 1 0.510 5通过图4可以清晰的看出,相对于标准的K-means聚类算法,本文提出的改进的算法在F1-measure值上有明显的提高.从图4中可以看出,第8次重复性实验的结果中F1值为0.6281,较为理想.图4中F1值整体走势相对平缓,证明了基于LDA主题模型改进的K-means聚类算法在短文本数据处理上有一定的可行性. 图4 F1-measure值对比图Fig.4 Comparison diagram of F1-measure value 通过图5可以清晰的看出,本文算法在准确率上较标准的K-means聚类算法有明显的提高.其中在第6次实验中,精确率为0.507 1结果比较优秀.但是,从整体来看,本文改进算法的精确率走势不是特别稳定.由此可见,改进算法在精确率的稳定性上有待提高.图5 Acc值对比图Fig.5 Comparison diagram of Accuracy value图6和图7数值为迭代次数50到400的对比图,其中不同的迭代次数都进行20次重复实验取其平均值,为确保数据的准确性.通过图6和图7可以清晰看出,标准K-means算法和本文改进算法在不同迭代次数时,其F1-measure值和精确率均较标准算法有所提高.经过实验验证本文改进的算法在迭代次数为300时,F1-measure为0.625和精确率为0.51达到最优解.其中在迭代次数为200时,精确率为0.529 8与标准算法相差很少.图6 不同迭代次数F1值对比Fig.6 Comparison of F1values for different iterations图7 不同迭代次数Acc对比Fig.7 Comparison of Accuracy values for different iterations3 结论K-means的时间复杂度是线性的O(n*k*t),其中n为数据对象,k为指定的类别数,t为迭代次数上限,算法简单且收敛速度快,所以更适用于处理大规模文本.但是也存在对噪声和离群点敏感,容易达到局部最优等缺点.实验结果证明,改进的算法虽然在F1值和精确率上较传统算法均有所提高,但是稳定性较差.为了确保实验的准确性,进行了多次重复实验,每次实验数据从38万条数据里随机挑取10%的数据进行实验.在未来的工作中,将使用MapReduce框架来实现K-means 聚类算法.参考文献:[1]Pääkkönen P,Jokitulppo J.Quality management architecture for social media data[J].Journal of Big Data,2017,4(1):6.[2] Xu J,Xu B,Wang P,et al.Self-Taught convolutional neural networks for short text clustering[J].Neural Netw,2017,88:22-31. [3] Sun J G,Liu J,Zhao LY.Clustering algorithms research[J].Journal of Software,2008,19(1):48-61.[4]邱云飞,赵彬,林明明,等.结合语义改进的K-means短文本聚类算法[J].计算机工程与应用,2016,52(19):78-83.[5]张群,王红军,王伦文.一种结合上下文语义的短文本聚类算法[J].计算机科学,2016,43(S2):443-446.[6]何晓亮,宋威,梁久桢,等.基于语义特征选取与改进k均值算法的文本聚类研究[M].重庆:《计算机科学》杂志社,2012.[7]贺涛,曹先彬,谭辉.基于免疫的中文网络短文本聚类算法[J].自动化学报,2009,35(7):896-902.[8] Tang H J,Yan D F,Tian Y.Semantic dictionary based method for short text classification[J].Journal of China Universities of Posts and Telecommunications,2013,20(13):15-19.[9] Bicalho P,Pita M,Pedrosa G,et al.A general framework to expand short text for topic modeling[J].Information Sciences,2017,393(C):66-81.[10] Bai L,Cheng X,Liang J,et al.Fast density clustering strategies based on the k-means algorithm[J].Pattern Recognition,2017,71:375-386.[11] Sun Y.The collocation model based on LDA[C]//International Conference on Electronics and Information Engineering.SPIE:Bellingham WA,2015.[12] Liu Y,Li Z,Xiong H,et al.Understanding of Internal Clustering Validation Measures[C]//IEEE International Conference on Data Mining.IEEE:Piseataway,2010:911-916.[13] Zhao Q.Efficient algorithm of canopy-kmean based on hadoop platform[J].Electronic Science and Technology.2014,27(02):29-31.。

一种基于遗传算法的Kmeans聚类算法

一种基于遗传算法的Kmeans聚类算法

一种基于遗传算法的K-means聚类算法一种基于遗传算法的K-means聚类算法摘要:传统K-means算法对初始聚类中心的选取和样本的输入顺序非常敏感,容易陷入局部最优。

针对上述问题,提出了一种基于遗传算法的K-means聚类算法GKA,将K-means算法的局部寻优能力与遗传算法的全局寻优能力相结合,通过多次选择、交叉、变异的遗传操作,最终得到最优的聚类数和初始质心集,克服了传统K-means 算法的局部性和对初始聚类中心的敏感性。

关键词:遗传算法;K-means;聚类聚类分析是一个无监督的学习过程,是指按照事物的某些属性将其聚集成类,使得簇间相似性尽量小,簇内相似性尽量大,实现对数据的分类[1]。

聚类分析是数据挖掘技术的重要组成部分,它既可以作为独立的数据挖掘工具来获取数据库中数据的分布情况,也可以作为其他数据挖掘算法的预处理步骤。

聚类分析已成为数据挖掘主要的研究领域,目前已被广泛应用于模式识别、图像处理、数据分析和客户关系管理等领域中。

K-means算法是聚类分析中一种基本的划分方法,因其算法简单、理论可靠、收敛速度快、能有效处理较大数据而被广泛应用,但传统的K-means算法对初始聚类中心敏感,容易受初始选定的聚类中心的影响而过早地收敛于局部最优解,因此亟需一种能克服上述缺点的全局优化算法。

遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化搜索算法。

在进化过程中进行的遗传操作包括编码、选择、交叉、变异和适者生存选择。

它以适应度函数为依据,通过对种群个体不断进行遗传操作实现种群个体一代代地优化并逐渐逼近最优解。

鉴于遗传算法的全局优化性,本文针对应用最为广泛的K-means方法的缺点,提出了一种基于遗传算法的K-means聚类算法GKA(Genetic K-means Algorithm),以克服传统K-means算法的局部性和对初始聚类中心的敏感性。

用遗传算法求解聚类问题,首先要解决三个问题:(1)如何将聚类问题的解编码到个体中;(2)如何构造适应度函数来度量每个个体对聚类问题的适应程度,即如果某个个体的编码代表良好的聚类结果,则其适应度就高;反之,其适应度就低。

K-均值聚类算法

K-均值聚类算法
3.确定中心: 用各个聚类的中心向量作为新的中心;
4.重复分组和确定中心的步骤,直至算法收敛;
2.算法实现
输入:簇的数目k和包含n个对象的数据库。 输出:k个簇,使平方误差准则最小。
算法步骤:
1.为每个聚类确定一个初始聚类中心,这样就有K 个初始 聚类中心。
2.将样本集中的样本按照最小距离原则分配到最邻近聚类
给定数据集X,其中只包含描述属性,不包含 类别属性。假设X包含k个聚类子集X1,X2,„XK;各 个聚类子集中的样本数量分别为n1,n2,„,nk;各个 聚类子集的均值代表点(也称聚类中心)分别为m1, m2,„,mk。
3.算法实例
则误差平方和准则函数公式为:
k
2
E p mi
i 1 pX i
单个方差分别为
E1 0 2.52 2 22 2.5 52 2 22 12.5 E2 13.15
总体平均误差是: E E1 E2 12.5 13.15 25.65 由上可以看出,第一次迭代后,总体平均误差值52.25~25.65, 显著减小。由于在两次迭代中,簇中心不变,所以停止迭代过程, 算法停止。
示为三维向量(分别对应JPEG图像中的红色、绿色 和蓝色通道) ; 3. 将图片分割为合适的背景区域(三个)和前景区域 (小狗); 4. 使用K-means算法对图像进行分割。
2 015/8/8
Hale Waihona Puke 分割后的效果注:最大迭代次数为20次,需运行多次才有可能得到较好的效果。
2 015/8/8
例2:
2 015/8/8
Ox y 102 200 3 1.5 0 450 552
数据对象集合S见表1,作为一个 聚类分析的二维样本,要求的簇的数 量k=2。

(完整版)X-means:一种针对聚类个数的K-means算法改进

(完整版)X-means:一种针对聚类个数的K-means算法改进

X-means:一种针对聚类个数的K-means算法改进摘要尽管K-means很受欢迎,但是他有不可避免的三个缺点:1、它的计算规模是受限的。

2、它的聚类个数K必须是由用户手动指定的。

3、它的搜索是基于局部极小值的。

在本文中,我们引入了前两种问题的解决办法,而针对最后一个问题,我们提出了一种局部补救的措施。

根据先前有关算法改进的工作,我们引入了一种根据BIC(Bayesian Information Criterion)或者AIC(Akaike information criterion)得分机制而确定聚类个数的算法,本文的创新点包括:两种新的利用充分统计量的方式,还有一种有效地测试方法,这种方法在K-means算法中可以用来筛选最优的子集。

通过这样的方式可以得到一种快速的、基于统计学的算法,这种算法可以实现输出聚类个数以及他们的参量值。

实验表明,这种技术可以更科学的找出聚类个数K值,比利用不同的K值而重复使用K-means算法更快速。

1、介绍K-means算法在处理量化数据中已经用了很长时间了,它的吸引力主要在于它很简单,并且算法是局部最小化收敛的。

但是它有三点不可避免的缺点:首先,它在完成每次迭代的过程中要耗费大量的时间,并且它所能处理的数据量也是很少的。

第二,聚类个数K值必须由用户自身来定义。

第三,当限定了一个确定的K值时,K-means算法往往比一个动态K值的算法表现的更差。

我们要提供针对这些问题的解决办法,通过嵌入树型的数据集以及将节点存储为充分统计变量的方式来大幅度提高算法的计算速度。

确定中心的分析算法要考虑到泰森多边形边界的几何中心,并且在估计过程的任何地方都不能存在近似的方法。

另外还有一种估计方法,“黑名单”,这个列表中将会包含那些需要在指定的区域内被考虑的图心。

这种方法不仅在准确度上以及处理数据的规模上都表现的非常好,而这个快速算法在X-means 聚类算法当中充当了结构算法的作用,通过它可以很快的估计K值。

一种基于改进的GMM算法的数据丢失预测模型

一种基于改进的GMM算法的数据丢失预测模型

一种基于改进的GMM 算法的数据丢失预测模型王晖1,姜春茂2(1.哈尔滨师范大学计算机科学与信息工程学院,黑龙江哈尔滨150025;2.福建工程学院计算机科学与数学学院,福建福州350118)摘要:随着云平台上运行任务的数量急剧增加,任务失败的概率也随之增加,数据的丢失是任务失败的主要原因。

如果在任务运行前判断出是否可能发生丢失以及其丢失类型,那么就可以提前采取措施避免或减少损失。

该模型基于谷歌在2019年发布的最新云集群数据,对任务的数据丢失问题进行了深入的研究,针对不同任务属性探究其与数据丢失的相关性,并选用了GMM (Gaussian Mixed Model )算法并将其改进来建立数据丢失预测模型。

经过多种聚类算法的实验比较,改进后的GMM 模型表现出极好的适应性和准确性,能够精准且迅速地在任务运行前判断其发生数据丢失的可能性以及判断其丢失类型。

最后根据预测出的不同数据丢失类型,给出了一定的建议。

关键词:谷歌云集群;任务失败;数据丢失预测;Gaussian Mixed Model 中图分类号:TP301.6文献标识码:A 文章编号:2096-9759(2023)03-0028-07A loss prediction model based on an improved GMM algorithmWANG Hui 1,JIANG Chunmao 2(1.College of Computer Science and Information Engineering,Harbin Normal University,Harbin Heilongjiang 150025,China;2.College of Computer Science and Mathematics,Fujian University of Technology,Fuzhou Fujian,350118,China )Abstract:As the number of tasks running on the cloud platform increases dramatically,the probability of task failure also increases.The loss of data is the main reason for task failure.If the possibility of loss and its type is determined before the task is run,then measures can be taken in advance to avoid or reduce the loss.Based on the latest cloud cluster data released by Google in 2019,this model conducts in-depth research on the problem of task data loss,and explores its correlation with data loss for different task attributes.And the GMM (Gaussian Mixed Model )algorithm was selected and improved to establish a data loss prediction model.After the experimental comparison of various clustering algorithms,the improved GMM model shows excellent adaptability and accuracy,and can accurately and quickly judge the possibility of data loss and the type of loss before the task runs.Finally,according to the different types of data loss predicted,some suggestions are given.Key words:Google Cloud Cluster ;Task failed ;Data Loss Prediction ;Gaussian Mixed?Model0引言随着社会的发展,现如今信息数据几乎呈指数增长。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

X-means:一种针对聚类个数的K-means算法改进摘要尽管K-means很受欢迎,但是他有不可避免的三个缺点:1、它的计算规模是受限的。

2、它的聚类个数K必须是由用户手动指定的。

3、它的搜索是基于局部极小值的。

在本文中,我们引入了前两种问题的解决办法,而针对最后一个问题,我们提出了一种局部补救的措施。

根据先前有关算法改进的工作,我们引入了一种根据BIC(Bayesian Information Criterion)或者AIC(Akaike information criterion)得分机制而确定聚类个数的算法,本文的创新点包括:两种新的利用充分统计量的方式,还有一种有效地测试方法,这种方法在K-means算法中可以用来筛选最优的子集。

通过这样的方式可以得到一种快速的、基于统计学的算法,这种算法可以实现输出聚类个数以及他们的参量值。

实验表明,这种技术可以更科学的找出聚类个数K值,比利用不同的K值而重复使用K-means算法更快速。

1、介绍K-means算法在处理量化数据中已经用了很长时间了,它的吸引力主要在于它很简单,并且算法是局部最小化收敛的。

但是它有三点不可避免的缺点:首先,它在完成每次迭代的过程中要耗费大量的时间,并且它所能处理的数据量也是很少的。

第二,聚类个数K值必须由用户自身来定义。

第三,当限定了一个确定的K值时,K-means算法往往比一个动态K值的算法表现的更差。

我们要提供针对这些问题的解决办法,通过嵌入树型的数据集以及将节点存储为充分统计变量的方式来大幅度提高算法的计算速度。

确定中心的分析算法要考虑到泰森多边形边界的几何中心,并且在估计过程的任何地方都不能存在近似的方法。

另外还有一种估计方法,“黑名单”,这个列表中将会包含那些需要在指定的区域内被考虑的图心。

这种方法不仅在准确度上以及处理数据的规模上都表现的非常好,而这个快速算法在X-means 聚类算法当中充当了结构算法的作用,通过它可以很快的估计K值。

这个算法在每次使用K-means算法之后进行,来决定一个簇是否应该为了更好的适应这个数据集而被分开。

决定的依据是BIC得分。

在本文中,我们阐述了“黑名单”方法如何对现有的几何中心计算BIC 得分,并且这些几何中心所产生的子类花费不能比一个单纯的K-means聚类算法更高。

更进一步的,我们还通过缓存状态信息以及估计是否需要重新计算的方法来改善估计方法。

我们已经用X-means算法进行了实验,验证了它的确比猜K值更加科学有效。

X-means 算法可以在人造的或者是真实数据中表现的更好,通过BIC得分机制。

它的运行速度也是比K-means更快的。

2、定义我们首先描述简单的K-means算法应该考虑哪些因素。

通过K-means可以把一定量的数据集分为K个数据子集,这K个数据子集分别围绕着K个聚类中心。

这种算法保持着K个聚类中心不变,并且通过迭代不断调整这K个聚类中心。

在第一次迭代开始之前,K个聚类中心都是随机选取的,算法当聚类中心不再变化的时候返回最佳的结果,在每一次迭代中,算法都要进行如下的动作:1、对于每一个节点向量,找到距离它最近的聚类中心,归入此类。

2、重新评估每一个图心的位置,对于每一个图心,必须是簇的质心。

K-means聚类算法通过局部最小化每个向量到对应图心的距离来实现聚类。

同时,它处理真实数据时是非常慢的。

许多情况下,真实的数据不能直接用K-means进行聚类,而要经过二次抽样筛选之后再进行聚类。

Ester曾经提出了一种可以从树形数据中获得平衡的抽样数据的方法。

Ng和Han曾经提出了一种可以指导概率空间对输入向量的检索模拟模型。

Zhang则提出了一种基于充分统计学的树形模型。

可以被用来异常识别以及快速计算。

然而,这种聚类器是近似的,并且要依靠许多的近似值。

要注意虽然刚开始聚类的聚类中心是随便选取的,但是对于K-means算法来说,这K个聚类中心是实实在在确定了的。

如果你选取了不科学的聚类中心,就有可能影响到最后的聚类结果以及算法的效率。

Bradley和Fayyad讨论了通过二次抽样和平滑数据的方法来更加科学的选取聚类中心。

在本文的剩余部分,我们将会用u j来表示第J个质心,用i表示距离向量i最近的聚类质心,例如说,u i表示在迭代中距离i最近的聚类质心。

D表示输入的数据节点,而D i表示所有距离u i最近的节点集。

R为D中节点的个数,R i为D i中节点的个数。

分布数量是M,高斯协方差矩阵为∑=diag(σ∗σ)3、K值的估计到目前为止,我们所描述的算法是K-means聚类算法的相关步骤,K值是由用户确定的,我们现在要描述X-means算法如何确定K值,通过BIC得分的优劣,通过聚类算法我们不仅仅要得到一些比较合理的聚类中心还要得到一个合理的K值。

首先,我们描述整个确定K值的过程,不要太在意算法的细节。

接下来,我们推导出适用于不同统计模型的测试集。

再然后,我们回到高层的算法描述,显示算法是如何利用黑名单的思想将大量的数据存储在树形的数据集中。

3.1 模型检索本质上,算法的运行过程主要是先给定一个聚类个数的下限,然后不停的用K-means算法进行迭代,直到达到最好的BIC得分的结果,然后返回聚类结果。

迭代算法中主要包括以下动作:X-means:1、改变参数2、改变结构3、如果K大于最高限定的K值则返回结果,否则回到第一步对参数的改变过程很简单,就是传统的K-means收敛的过程。

第二步中改变结构式算法的核心步骤,通过将一个大的聚类一分为二,然后决定新的质心应该出现的地方,我们要通过BIC得分来决定是否对聚类进行分割。

分裂观点1:第一个想法是先选择一个重心,然后再它附近再产生一个重心,然后评价是否两个重心的情况下聚类表现的更好,如果是则分割聚类,如果不是则返回上一步。

这个过程需要在X-means算法聚类的整个过程中反复出现,直到返回最佳的聚类结果,算法的时间复杂度为O(K max)。

但是如果没有得到BIC得分的提高应该怎么办呢,我们就必须对每一个聚类中心都采取这种方式进行处理,所以每一次都需要调用一次K-means算法,也就是说我们在加一个聚类中心的时候需要运行很多次K-means,耗费了太多时间。

分裂观点2:将一个完整的簇分为两个部分,第二个想法用于SPLITLOOP系统,实现高斯混合模型识别。

通过一些启发式的标准来简单的分割完整簇。

分割他们时要调用K-means 算法并且计算分割后的成绩是否比分割之前更好,如果更好的话就返回分割之后的结果,这是一个比较大的改善,因为通过这种方法进行聚类的时间复杂度只有O(Log k)。

不断的改善数据结构,直到X-means算法结束,但是这种思想的问题在于:什么样的启发机制用来分割聚类呢?还有图心应该拥有多大的规模呢?是图心决定了图结构的变化吗?如果只有一个或者是两个簇需要被分割,其他都不需要的话这种算法仍然是科学的吗?我们的解决办法同时考虑了想法一和想法二的优点,同时还避免了他们的缺点,并且我们的解决办法可以在很短时间内实现。

我们将通过一个例子来解释。

图1展示了拥有三个图心的一个稳定的K-means聚类。

每一个图心所拥有的区域边界也在图中展示出来了,对这个图的结构改进的过程如下:首先将每一个簇分为两个孩子簇(图2)。

他们是被距离质心相反方向的两个向量的连线分割开来的。

然后对于每一个父亲簇都运行一次K=2的K-means聚类算法,两个孩子类都要与对方争夺父亲类的聚类区域。

图3表示了三个簇分别的分为两个孩子类的过程。

图4表示所有的簇都已经分为了两个孩子类。

在这个时候,模型的测试机制会对每一对子类进行测试,测试内容包括:两个子类的建模过程是否有证据支撑?还有两个子类是否是由父类平均分配的。

下一节我们会涉及如何用这样的测试集来测试K-means。

根据测试出的结果,删除不符合标准的父亲类以及他们的后代,只有通过了这个过程的父亲类以及他们的孩子类才能留存下来。

另外一方面,没有被现有的图心描述好到的空间将会在增加图心的过程中获得更多的关注。

图5显示了图4经过这种处理之后的情况。

因此我们的搜索空间覆盖了所有的2k种可能的分割设置,并且每个区域的分割是由BIC 得分来确定的。

与上述的想法1以及想法2比较,这种思路可以使得我们自动选择我们的聚类个数的增加量时非常少还是非常多。

通过实际操作我们发现,K-means聚类运行两个聚类个数的时候是对局部最小化准则最不敏感的。

我们在最高限制K值下面将会不断的进行参数改善以及框架改善来得到一个更加科学的K值。

3.2 BIC得分假设我们已经有了一个数据集D以及一些可供选择的模型M j,不同的模型对应了不同的K值。

我们如何才能选择最好的K值呢?我们将要用到后验概率来给模型进行打分。

我们的所有模型都被K-means算法设定。

为了按照统一的标准来设定后验概率,我们使用了以下公式:在这个公式当中l j(D)表示数据针对于第j个模型的对数似然函数,并且取极大似然函数值,p j是模型M j中的参数数量,这个也被叫做Schwarz标准。

这些变化之后的极大似然函数估计要在同一个高斯假设下:节点概率为:节点的对数似然函数为对于n属于1到K中间的数值时,只关注D n数据集中属于n个图心的点,并且插入最大似然函数的估计值。

参数P j就是就是简单的的鞥与K-1个类别的概率、M.K个累心的坐标以及方差的估计值。

为了把这一个图心的公式延伸到所有图心上,我们设定节点的似然函数为节点对于所有图心的相对似然函数值,并且将R替代为所有列入考虑的节点向量。

我们在X-means确定最好的模型时全局的使用BIC公式,而局部的使用图心分割测试。

3.3加速到目前为止,X-means可以用在之前的小型数据上,但是我们都忽略了X-means聚类算法的主要特点,那就是它可以使用在大型数据的分析当中。

对K-means算法的加速:我们以一个简单的K-means算法迭代开始,任务是最终确定哪一个节点属于哪一个质心,通过这种迭代,我们可以计算出所有的质心,并且确定属于节点都是属于哪一个给定的质心,同时确定质心的确定位置。

得出结果之后,我们立刻就会发现,对于一个节点数据集的质心分配与对于一个单独的节点的中心分配过程是一样的,因为我们又足够的数据量作为支撑。

显然,这样做可以节省很多的计算资源,所需要占用的资源往往不比证明一个点的归属问题多多少。

既然kd-tree结构强加了一个分层的数据结构给数据,那么我们就可以很容易的计算它的节点的统计数据在建立他们的时候,对这些节点做一个局部的自然选择。

每一个kd-tree代表一个点集。

这个树形结构同样也有边界,即一个可以包括数据集中所有点的矩形。

另外,这种树形结构有两个指针向量,向量表示每一个父亲节点都被分为了两个子节点。

相关文档
最新文档