收藏 分享(赏)

模糊K-均值算法及其matlab实现.doc

上传人:精品资料 文档编号:10002022 上传时间:2019-09-26 格式:DOC 页数:4 大小:160KB
下载 相关 举报
模糊K-均值算法及其matlab实现.doc_第1页
第1页 / 共4页
模糊K-均值算法及其matlab实现.doc_第2页
第2页 / 共4页
模糊K-均值算法及其matlab实现.doc_第3页
第3页 / 共4页
模糊K-均值算法及其matlab实现.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、模糊 K-均值算法及其 matlab 实现模糊 K-均值算法由 K-均值算法派生而来。 K-均值算法在聚类过程中,每次得到的结果虽然不一定是预期的结果,但类别之间的边界是明确的,聚类中心根据各类当前具有的样本进行修改。模糊 K-均值算法在聚类过程中,每次得到的类别边界仍是模糊的,每类聚类中心的修改都需要用到所有样本,此外聚类准则也体现了模糊性。模糊 K-均值算法聚类的结果仍是模糊集合,但是如果实际问题希望有一个明确的界限,也可以对结果进行去模糊化,通过一定的规则将模糊聚类转化为确定性分类。模糊 K-均值算法基本思想是首先设定一些类及每个样本对各类的隶属度; 然后通过迭代,不断调整隶属度至收敛。

2、收敛条件是隶属度的变化量小于规定的阈值。具体步骤如下:(1) 确定模式类数 K, ,N 为样本个数。1(2) 根据先验知识确定样本从属于各类的隶属度 ,建立初始隶属度矩阵0ij,其中 i 为类别编号、矩阵的行号,j 为样本编号、矩阵的列号。 表示第0ijU ij个元素对第 个类的隶属度。对隶属度矩阵的第 列而言,它表示第 个元素分别对各模j j j式类的隶属度,因此矩阵的每列元素之和为 1。(3) 求各类的聚类中心 ,L 为迭代次数。iZ11,2;2Nmijjji ijjLiKmXZ式中,参数 ,是一个控制聚类结果模糊程度的参数。可以看出各聚类中心的计算必须2m用到全部的 N 个样本,这是与一

3、般(非模糊) K-均值算法的区别之一。在一般(非模糊)K-均值算法中,某一类的聚类中心仅由该类样本决定,不涉及其他类。(4) 计算新的隶属度矩阵 U(L+1),矩阵元素计算如下:,211()ijKijmpLd,2,1,2,2iKjNm 式中, 是第 L 次迭代完成时,第 j 个样本到第 i 类聚类中心 的距离。为避免分母ijd iLZ为零,特别的若 ,则0ij 1,10ij pjLLpi可见, 越大, 越小。ijdij(5) 回到(3)求聚类中心,重复至收敛。收敛条件:,其中 为规定的参数。,max1ijijijL当算法收敛时,就得到了各类的聚类中心以及表示个样本对各类隶属程度的隶属度矩阵,模

4、糊聚类到此结束。这时,准则函数21()|KNmij jiijJLXZ达到最小。(6) 根据隶属度矩阵 U(L+1)进行聚类,按照隶属原则进行划分,即若 1ax0,1,2ij pjKjN则 类。jiX例 设有 4 个二维样本,分别是, , ,T10,T20,1XT3,1T43,2X去参数 ,利用模糊 K-均值算法把它们聚为两类。2m解:(1)根据要求 N=4,K=2。(2)根据先验知识确定初始隶属度矩阵 0.98.7011239U1234X2由 U(0)可知,倾向于 , , 为一类, 为一类。1234X(3) 计算聚类中心 、 ,取 m=2,有0Z22221 3.9.80.7.110 0.759

5、22222.3.9010Z .841(4) 计算新的隶属度矩阵 U(1)。取 m=2,分别计算 ,以 为例有()ij3X22213(.7)(.59).4d841073得13213 0.125.4.73d23231 .80()514d类似地,可得到 U(1)中其它元素,有.9.2.0.1()0889ij若满足收敛条件 ,则迭代结束,否则返回(3)计算聚类中心。,max1ijijijL假设此时满足收敛条件,迭代结束,则根据 U(1)进行聚类。, ,121()122()121,X, ,23341434Matlab 代码实现如下:function y=fuzzy_Kmeans(X,k,m,U,e)k=

6、2; %自定义 k 个类中心数X=0 0;0 1;3 1;3 2;%样本U=0.9 0.8 0.7 0.1;0.1 0.2 0.3 0.9; %隶属度初始值% load fisheriris;X=meas;M,N=size(X);U=1/k*ones(k,M);U(1,1)=U(1,1)-0.1;U(k,1)=U(k,1)+0.1;%Iris 测试数据集,目的是让 U 的值不全为 1/k %初始化m=2; %控制模糊程度的参数e=0.0001; %达到收敛时最小误差UL=membership(U,X,m); %求隶属度err=abs(UL-U); %误差while(max(err(1,:)e)

7、 %收敛条件没达到要求,则继续迭代temp=UL; %保存先前的隶属度UL=membership(UL,X,m); %更新隶属度err=abs(UL-temp); %更新误差endUL %输出最终的隶属度矩阵%通过最终所获得的隶属度矩阵,判断样本所属类别class=cell(k,1); %初始化类样本 classfor i=1:size(X,1); MAX,index=max(UL(:,i);classindex=cat(1,classindex,i);endcelldisp(class);%显示 Kmeans 聚类结果%子函数部分function y=membership(U0,X,m)%U

8、0 初始隶属度矩阵,X 为需聚类样本, m 为控制聚类结果的模糊程度,y 为返回的新的隶属度classNum=size(U0,1); %求出类别数for i=1:classNumU0(i,:)=U0(i,:).m; %隶属度各值平方endZ=zeros(classNum,size(X,2);%聚类中心初始化for i=1:classNumfor j=1:size(X,1) Z(i,:)=Z(i,:)+U0(i,j)*X(j,:);endZ(i,:)=Z(i,:)/sum(U0(i,:); %计算聚类中心endfor i=1:size(X,1)for j=1:size(Z,1)d(i,j)=dist(X(i,:),Z(j,:)(2/(m-1);%求距离endendm,n=size(d);u=zeros(m,n);%新的隶属度初始化for i=1:mfor j=1:nfor k=1:nu(i,j)=u(i,j)+d(i,j)/d(i,k);endu(i,j)=1/u(i,j); %由隶属度更新公式endendy=u;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报