FCM算法的matlab程序

1.采用iris数据库

iris_data.txt

5.1 3.5 1.4 0.2

4.9 3 1.4 0.2

4.7 3.2 1.3 0.2

4.6 3.1 1.5 0.2

5 3.6 1.4 0.2

5.4 3.9 1.7 0.4

4.6 3.4 1.4 0.3

5 3.4 1.5 0.2

4.4 2.9 1.4 0.2

4.9 3.1 1.5 0.1

5.4 3.7 1.5 0.2

4.8 3.4 1.6 0.2

4.8 3 1.4 0.1

4.3 3 1.1 0.1

5.8 4 1.2 0.2

5.7 4.4 1.5 0.4

5.4 3.9 1.3 0.4

5.1 3.5 1.4 0.3

5.7 3.8 1.7 0.3

5.1 3.8 1.5 0.3

5.4 3.4 1.7 0.2

5.1 3.7 1.5 0.4

4.6 3.6 1 0.2

5.1 3.3 1.7 0.5

4.8 3.4 1.9 0.2

5 3 1.6 0.2

5 3.4 1.6 0.4

5.2 3.5 1.5 0.2

5.2 3.4 1.4 0.2

4.7 3.2 1.6 0.2

4.8 3.1 1.6 0.2

5.4 3.4 1.5 0.4

5.2 4.1 1.5 0.1

5.5 4.2 1.4 0.2

4.9 3.1 1.5 0.2

5 3.2 1.2 0.2

5.5 3.5 1.3 0.2

4.9 3.6 1.4 0.1

4.4 3 1.3 0.2

5.1 3.4 1.5 0.2

5 3.5 1.3 0.3

4.5 2.3 1.3 0.3

4.4 3.2 1.3 0.2

5 3.5 1.6 0.6

5.1 3.8 1.9 0.4

4.8 3 1.4 0.3

5.1 3.8 1.6 0.2

4.6 3.2 1.4 0.2

5.3 3.7 1.5 0.2

5 3.3 1.4 0.2

7 3.2 4.7 1.4

6.4 3.2 4.5 1.5

6.9 3.1 4.9 1.5

5.5 2.3 4 1.3

6.5 2.8 4.6 1.5

5.7 2.8 4.5 1.3

6.3 3.3 4.7 1.6

4.9 2.4 3.3 1

6.6 2.9 4.6 1.3

5.2 2.7 3.9 1.4

5 2 3.5 1

5.9 3 4.2 1.5

6 2.2 4 1

6.1 2.9 4.7 1.4

5.6 2.9 3.6 1.3

6.7 3.1 4.4 1.4

5.6 3 4.5 1.5

5.8 2.7 4.1 1

6.2 2.2 4.5 1.5

5.6 2.5 3.9 1.1

5.9 3.2 4.8 1.8

6.1 2.8 4 1.3

6.3 2.5 4.9 1.5

6.1 2.8 4.7 1.2

6.4 2.9 4.3 1.3

6.6 3 4.4 1.4

6.8 2.8 4.8 1.4

6.7 3 5 1.7

6 2.9 4.5 1.5

5.7 2.6 3.5 1

5.5 2.4 3.8 1.1

5.5 2.4 3.7 1

5.8 2.7 3.9 1.2

6 2.7 5.1 1.6

5.4 3 4.5 1.5

6 3.4 4.5 1.6

6.7 3.1 4.7 1.5

6.3 2.3 4.4 1.3

5.6 3 4.1 1.3

5.5 2.5 4 1.3

5.5 2.6 4.4 1.2

6.1 3 4.6 1.4

5.8 2.6 4 1.2

5 2.3 3.3 1

5.6 2.7 4.2 1.3

5.7 3 4.2 1.2

5.7 2.9 4.2 1.3

6.2 2.9 4.3 1.3

5.1 2.5 3 1.1

5.7 2.8 4.1 1.3

6.3 3.3 6 2.5

5.8 2.7 5.1 1.9

7.1 3 5.9 2.1

6.3 2.9 5.6 1.8

6.5 3 5.8 2.2

7.6 3 6.6 2.1

4.9 2.5 4.5 1.7

7.3 2.9 6.3 1.8

6.7 2.5 5.8 1.8

7.2 3.6 6.1 2.5

6.5 3.2 5.1 2

6.4 2.7 5.3 1.9

6.8 3 5.5 2.1

5.7 2.5 5 2

5.8 2.8 5.1 2.4

6.4 3.2 5.3 2.3

6.5 3 5.5 1.8

7.7 3.8 6.7 2.2

7.7 2.6 6.9 2.3

6 2.2 5 1.5

6.9 3.2 5.7 2.3

5.6 2.8 4.9 2

7.7 2.8 6.7 2

6.3 2.7 4.9 1.8

6.7 3.3 5.7 2.1

7.2 3.2 6 1.8

6.2 2.8 4.8 1.8

6.1 3 4.9 1.8

6.4 2.8 5.6 2.1

7.2 3 5.8 1.6

7.4 2.8 6.1 1.9

7.9 3.8 6.4 2

6.4 2.8 5.6 2.2

6.3 2.8 5.1 1.5

6.1 2.6 5.6 1.4

7.7 3 6.1 2.3

6.3 3.4 5.6 2.4

6.4 3.1 5.5 1.8

6 3 4.8 1.8

6.9 3.1 5.4 2.1

6.7 3.1 5.6 2.4

6.9 3.1 5.1 2.3

5.8 2.7 5.1 1.9

6.8 3.2 5.9 2.3

6.7 3.3 5.7 2.5

6.7 3 5.2 2.3

6.3 2.5 5 1.9

6.5 3 5.2 2

6.2 3.4 5.4 2.3

5.9 3 5.1 1.8

View Code

2.matlab源程序

function label_1=My_FCM(K)

%输入K:聚类数

%输出:label_1:聚的类, para_miu_new:模糊聚类中心μ,responsivity:模糊隶属度

format long

eps=1e-5; %定义迭代终止条件的eps

alpha=2; %模糊加权指数,[1,+无穷)

max_iter=100; %最大迭代次数

fitness=zeros(max_iter,1);

data=dlmread('E:\www.cnblogs.comkailugaji\data\iris\iris_data.txt');

%----------------------------------------------------------------------------------------------------

%对data做最大-最小归一化处理

[data_num,~]=size(data);

X=(data-ones(data_num,1)*min(data))./(ones(data_num,1)*(max(data)-min(data)));

[X_num,X_dim]=size(X);

%----------------------------------------------------------------------------------------------------

%随机初始化模糊隶属度矩阵

responsivity=rand(X_num,K); %初始化模糊隶属度矩阵,X_num*K

temp=sum(responsivity,2); %把responsivity每一行加起来,把K类加起来,N*1的矩阵

responsivity=responsivity./(temp*ones(1,K)); %保证每行(每类)加起来为1

% ----------------------------------------------------------------------------------------------------

% FCM算法

for t=1:max_iter

%更新聚类中心K*X_dim

miu_up=(responsivity'.^(alpha))*X; %μ的分子部分

para_miu=miu_up./((sum(responsivity.^(alpha)))'*ones(1,X_dim));

%欧氏距离,计算(X-para_miu)^2=X^2+para_miu^2-2*para_miu*X',矩阵大小为X_num*K

distant=(sum(X.*X,2))*ones(1,K)+ones(X_num,1)*(sum(para_miu.*para_miu,2))'-2*X*para_miu';

%目标函数值

fitness(t)=sum(sum(distant.*(responsivity.^(alpha))));

%更新隶属度矩阵X_num*K

R_up=distant.^(-1/(alpha-1)); %隶属度矩阵的分子部分

responsivity=R_up./(sum(R_up,2)*ones(1,K));

%[responsivity,para_miu,fitness(t)]=FuzzyCM(X,responsivity,K,alpha);

if t>1 %改成while不行

if abs(fitness(t)-fitness(t-1))

break;

end

end

end

%iter=t; %实际迭代次数

[~,label_1]=max(responsivity,[],2);

3.结果

>> label_1=My_FCM(3)

label_1 =

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

2

3

2

3

3

3

2

3

3

3

3

3

3

3

3

3

3

3

3

3

3

3

3

3

3

3

3

2

3

3

3

3

3

3

3

3

2

3

3

3

3

3

3

3

3

3

3

3

3

3

2

3

2

2

2

2

3

2

2

2

2

2

2

3

2

2

2

2

2

3

2

3

2

3

2

2

3

2

2

2

2

2

2

3

3

2

2

2

3

2

2

2

3

2

2

2

2

2

2

3

4.注意

由于初始化模糊隶属度矩阵是随机的,所以每次出现的结果并不一样,如果答案与上述不一致,很正常,可以设置迭代次数,求精度。如有不对之处,望指正。

fcm算法的MATLAB实现,FCM算法的matlab程序(初步)相关推荐

  1. 【图像分割】基于模糊聚类FCM和改进的模糊聚类算法实现CT图像分割matlab代码

    1 简介 医学影像分割的基本目标是将图像分割成不同的解剖组织,从而可以从背景中提取出感兴趣区域.因为图像的低分辨率和弱对比度,实现医学影像分割是一件具有挑战的任务.而且,这个任务由于噪声和伪阴影变得更 ...

  2. sum idx i matlab,聚类——FCM的matlab程序

    聚类--FCM的matlab程序 在聚类--FCM文章中已介绍了FCM算法的理论知识,现在用matlab进行实现. 1.matlab程序 FCM_main.m function [ave_acc_FC ...

  3. m基于K-means聚类算法和神经网络的模糊控制器设计matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 聚类就是按照某个特定标准把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同 ...

  4. matlab kfcm,KFCM算法MATLAB

    KFCM算法MATLAB matlab 2020-11-18 下载地址 https://www.codedown123.com/51200.html 分别用kmeans.fcm.kfcm实现图像分割 ...

  5. 【ELM回归预测】基于matlab粒子群算法优化ELM回归预测【含Matlab源码 036期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [优化预测]基于matlab粒子群算法优化ELM神经网络预测[含Matlab源码 036期] 二.粒子群算法及ELM简介 1 粒子群算法简 ...

  6. 【图像分割】基于matlab Kmean聚类分水岭、oust、粒子群算法优化脂肪肝图像分割【含Matlab源码 2277期】

    ⛄一.粒子群算法自适应多阈值图像分割简介 FCM聚类算法是一种局部搜索算法,对初始值较为敏感,容易陷入局部极小值而不能得到全局最优解.PSO算法是一种基于群体的具有全局寻优能力的优化方法.本文将FCM ...

  7. Matlab人脸检测算法详解

    这是一个Matlab人脸检测算法详解 前言 人脸检测结果 算法详解 源代码解析 所调用函数解析 bwlabel(BW,n) regionprops rectangle 总结 前言 目前主流的人脸检测与 ...

  8. 贝叶斯网络结构学习之K2算法(基于FullBNT-1.0.4的MATLAB实现)

    题目:贝叶斯网络结构学习之K2算法(基于FullBNT-1.0.4的MATLAB实现) 有关贝叶斯网络结构学习的一基本概念可以参考:贝叶斯网络结构学习方法简介 有关函数输入输出参数的解释可以参考:贝叶 ...

  9. 粒子群算法matlab多元,进化算法之粒子群算法和Matlab实现(多维)

    前面一篇文章介绍了遗传算法,这里再介绍一种进化算法,称为粒子群算法.同遗传算法类似,粒子群算法也是仿照了自然界的生物现象得到的.这种现象就是鸟群在某个未知空间内寻找食物这一思想. 鸟群通过自身经验和种 ...

  10. matlab在电力行业中的仿真技术-MATLAB基于EKF算法估计电动汽车蓄电池的SOC

    前言 关于本文的代码请参加,有兴趣的小伙伴可自行订阅. matlab电力系统仿真-MATLAB基于EKF算法估计电动汽车蓄电池的SOC 电动汽车(EV)是未来汽车的一大发展方向.动力锂电池组是电动汽车 ...

最新文章

  1. 数据结构-冒泡排序过程
  2. JAV实现跳台阶问题(《剑指offer》)
  3. 线性代数:第三章 矩阵的初等变换与线性方程组(1)矩阵的初等变换 矩阵的秩
  4. keil5图标变成白色_keil5菜单栏图标错乱怎么办? keil5菜单栏快捷图标错位的解决办法...
  5. 2108 ACM 向量积 凹凸
  6. 从 github 执行 git clone 一个大的项目时提示 error: RPC failed
  7. 怎么调处vs2010的MSDN帮助文档
  8. 彻底搞定C指针-函数名与函数指针[转]
  9. java web 保护_java web项目请求控制及简单漏洞防范
  10. 记一次Cassandra Java堆外内存排查经历
  11. logisticregression参数_通俗地说逻辑回归【Logistic regression】算法(二)sklearn逻辑回归实战...
  12. 使用Task简化Silverlight调用Wcf
  13. 关于爬虫数据的解析器设计
  14. 如何将堆栈跟踪转换为字符串?
  15. 如何处理计算机显示器故障,显示器突然黑屏怎么办?教你这样操作,轻松解决黑屏问题!...
  16. python多进程程序之间交换数据的两种办法--Queue和Pipe
  17. 项目经理,别让猴子跳回背上!
  18. #ifdef 支持Mac #ifndef 支持Windows #if defined (Q_OS_WIN) 应该可以再两个系统通用
  19. mut a:T 和a:mut T的区别
  20. axio.js封装和环境配置

热门文章

  1. Go 知识点(07)— 对已经关闭通道进行读写
  2. dataframe,python,numpy 问题索引2
  3. 一篇文章告诉你标准化和归一化的区别?
  4. Attention is all your need 谷歌的超强特征提取网络——Transformer
  5. tf.contrib.layers.xavier_initializer
  6. 机器学习——标准化/归一化的目的、作用和场景
  7. TVM性能评估分析(五)
  8. Mobileye独创性创新
  9. 2021年大数据ELK(五):Elasticsearch中的核心概念
  10. 2021年大数据ZooKeeper(四):ZooKeeper的shell操作