K均值改进聚类.pptVIP

  • 2
  • 0
  • 约6.91千字
  • 约 21页
  • 2019-04-30 发布于江苏
  • 举报
基于取样思想的改进C均值聚类 目 录 C-均值算法的缺陷分析 改进C均值算法的分析 matlab编程所用到函数介绍 matlab算法程序介绍 结果分析 结论 一. C-均值算法的缺陷分析 1.聚类个数C需要预先给定 有的算法是通过类的自动合并和分裂,得到较为合理的类型数目C,例如用ISODATA算法,得到初始的聚类数目C。然后运用C均值算法进行聚类分析。 聚类数目C值的确定也可根据方差分析理论,F统计量来确定最佳分类数,并应用模糊划分嫡来验证最佳分类数的正确性。 一. C-均值算法的缺陷分析 2.算法对初值敏感 在 C-means 算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果,这也成为 C-means算法的一个主要问题。对于该问题的解决,许多算法采用遗传算法进行初始化,以内部聚类准则作为评价指标。 一. C-均值算法的缺陷分析 3.局部极小解的问题 聚类问题本质是一个优化问题的,这就是通过一种迭代运算使得系统的目标函数达到一个极小值。但是这个目标函数在状态空间中不是一个非凸函数,它有许多极小值,其中只有一个是全局极小值,而其他的都是局部极小值。求解的目标是得到全局最小值,而不是其它的局部极小值。这也是目前一些聚类算法,经常会遇到的总是,常会在求解过程中陷入局部最优,而得不到全局最优。 二.改进C均值算法的分析 在K均值算法中,选择不同的初始聚类中心会产生不同的聚类结果且有不同的准确率,此方法就是如何找到与数据在空间分布上尽可能一致的初始聚类中心。对数据进行划分,最根本的目的是使一个聚类中的对象是相似的,而不同聚类中的对象是不相似的。如果用距离表示对象之间的相似性程度,相似对象之间的距离比不相似对象之间的距离要小。如果能够寻找到K个初始中心,它们分别代表了相似程度较大的数据集合,那么就找到了与数据在空间分布上相一致的初始聚类中心。 二.改进C均值算法的分析 目前,初始聚类中心选取的方法有很多种,在此仅介绍两种: 1.基于最小距离的初始聚类中心选取法 (1) 计算数据对象两两之间的距离; (2) 找出距离最近的两个数据对象,形成一个数据对象集合A1 ,并将它们从总的数据集合U中删除; (3) 计算A1 中每一个数据对象与数据对象集合U 中每一个样本的距离,找出在U中与A1 中最近的数据对象,将它并入集合A1 并从U 中删除, 直到A1 中的数据对象个数到达一定阈值; (4) 再从U中找到样本两两间距离最近的两个数据对象构成A2 ,重复上面的过程,直到形成k个对象集合; (5) 最后对k个对象集合分别进行算术平均,形成k个初始聚类中心。 二.改进C均值算法的分析 2.基于取样思想的改进C均值算法 基于以上对C均值算法的分析,我提出自己的改进算法。首先采用对所给的样本数据进行K-means算法进行聚类,产生一组聚类中心。然后将这组聚类中心作为初始聚类中心,在采用n次K-means算法进行聚类。然后判断两次聚类得到的中心是否一致,直到一致则结束聚类。在此,也可以在第一步中,对样本数据采用K-means算法进行n次聚类运算,每次产生一组聚类中心,对n组聚类中心进行算术平均,从而得到c组初始聚类中心。 三.matlab编程所用到函数介绍 1.[IDX,C] = kmeans(data,k) IDX:聚类结果 C:聚类中心 k:分类个数 data:要聚类的数据集合,每一行为一个样本。 三.matlab编程所用到函数介绍 mean函数 函数原型:mean(A,dim) 参数: A 待求解均值的矩阵 dim 默认dim=1,就会求每一列的均值;当dim=2时,就会求每一行的均值。 四.matlab算法程序介绍 程序主要包括两部分,一个聚类中心的提取,另一个是重新进行聚类划分。 %计算初始聚类中心 clc; clear; %使用c-均值得到初始分类 function yy=Kmeans2(); data=xlsread(‘E:\ 模式识别数据\data)%载入数据 [IDX,C] = kmeans(data,4); C y=[1:59]; z=[data,IDX]; x=[z;y]; %初始聚类中心的提取 %kmeans初始算得的聚类中心在矩阵C中 x1=[];x2=[];x3=[];x4=[]; for i =1:59 四.matlab算法程序介绍 if x(4,i)==1 x1=[x1,x(:,i)]; elseif x(4,i)==2 x2=[x2,x(:,i

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档