FCM聚类算法介绍(共6页).doc

上传人:飞****2 文档编号:13476081 上传时间:2022-04-29 格式:DOC 页数:6 大小:63.50KB
返回 下载 相关 举报
FCM聚类算法介绍(共6页).doc_第1页
第1页 / 共6页
FCM聚类算法介绍(共6页).doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《FCM聚类算法介绍(共6页).doc》由会员分享,可在线阅读,更多相关《FCM聚类算法介绍(共6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上FCM聚类算法介绍FCM算法是一种基于划分的聚类算法,它的思想就是使得被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小。模糊C均值算法是普通C均值算法的改进,普通C均值算法对于数据的划分是硬性的,而FCM则是一种柔性的模糊划分。在介绍FCM具体算法之前我们先介绍一些模糊集合的基本知识。6.1.1 模糊集基本知识21首先说明隶属度函数的概念。隶属度函数是表示一个对象x隶属于集合A的程度的函数,通常记做A(x),其自变量范围是所有可能属于集合A的对象(即集合A所在空间中的所有点),取值范围是0,1,即0=A(x)1。对于m,它是一个控制算法的柔性的参数,如果m

2、过大,则聚类效果会很次,而如果m过小则算法会接近HCM聚类算法。算法的输出是C个聚类中心点向量和C*N的一个模糊划分矩阵,这个矩阵表示的是每个样本点属于每个类的隶属度。根据这个划分矩阵按照模糊集合中的最大隶属原则就能够确定每个样本点归为哪个类。聚类中心表示的是每个类的平均特征,可以认为是这个类的代表点。从算法的推导过程中我们不难看出,算法对于满足正态分布的数据聚类效果会很好,另外,算法对孤立点是敏感的。clear all;load iris_tr;load iris_te;H=1;% m为要生成的族的数目m=3;% num(n)为第n类的记录条数for n=1:m num(n)=0;endro

3、ws,cols=size(IRIS_training_data);for I=1:rows if IRIS_training_data(I,6)=1 IRIS_training_data(I,5)=2; end if IRIS_training_data(I,7)=1 IRIS_training_data(I,5)=3; endendnew_iris=IRIS_training_data(:,1:5);% 对test进行观察式学习分类test=IRIS_training_data(:,1:4);%随机选择三条连续记录作为初始的三个类for I=1:mc(I)=floor(rand(1)*75)

4、+1;endfor J=1:m for I=1:4 classJ(I)=test(c(J),I); endendwhile H=1 for I=1:rows for K=1:m d(K)=sqrt(classK(1)-test(I,1)2+(classK(2)-test(I,2)2+(classK(3)-test(I,3)2+(classK(4)-test(I,4)2); end y,t=min(d); num(t)=num(t)+1; test(I,5)=t; for J=1:4 last_classt=classt; classt(J)=(test(I,J)+classt(J)*num(t

5、)/(num(t)+1); end end% 判断结束条件是否满足for K=1:m d(K)=sqrt(last_classK(1)-classK(1)2+(last_classK(2)-classK(2)2+(last_classK(3)-classK(3)2+(last_classK(4)-classK(4)2);endy,t=max(d);if y0.0001; break;endend% 与实际的分类对比计算出预测的正确率for I=1:m class11(I)=0; class21(I)=0; class31(I)=0;endfor I=1:3:rows if test(I,5)=

6、1 class11(1)=class11(1)+1; elseif test(I,5)=2 class11(2)=class11(2)+1; else class11(3)=class11(3)+1; end right_num,t=max(class11);endfor I=2:3:rows if test(I,5)=1 class21(1)=class21(1)+1; elseif test(I,5)=2 class21(2)=class21(2)+1; else class21(3)=class21(3)+1; endendright_num=right_num+max(class21); for I=3:3:rows if test(I,5)=1 class31(1)=class31(1)+1; elseif test(I,5)=2 class31(2)=class31(2)+1; else class31(3)=class31(3)+1; endend right_num=right_num+max(class31);right_num=(right_num/rows)*100;disp(sprintf(利用k_means给iris数据集分类的正确率为:%d%,right_num);专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁