如何快速上手FCM,无疑是理论公式推导结合实战程序,话不多说,直接进入正题。

1 理论公式推导

1.1 目标函数构建





1.2 隶属度公式推导



1.3 聚类中心公式推导


2 MATLAB实例代码

文件运行需要iris.txt文件。
数据传送门:https://www.ilovematlab.cn/thread-597980-1-1.html

clear;clc;close all;
%FCM--模糊c均值聚类--Fuzzy C-means--实例%% 1.数据与参数输入
iris=load('iris.txt');
rawiris=iris(:,1:4);
c=3;                %聚类数
m=1.5;              %模糊指标
Max=1000;           %最大迭代次数
tol=1e-3;           %精度%% 2.数据归一化
[nrow,ncol]=size(rawiris);
normdata=zeros(nrow,ncol);
for i=1:ncolfor j=1:nrownormdata(j,i)=(rawiris(j,i)-std(rawiris(:,i)))/mean(rawiris(:,i));end
end%% 3.FCM聚类分析
%   3.1 初始化隶属度矩阵
u=rand(c,nrow);
for j=1:nrowu(:,j) = u(:,j)./sum(u(:,j));    %每个点的隶属度和为1
end
%   3.2 初始化聚类中心
v=repmat(max(normdata,[],1),c,1).*rand(c,ncol);
for i=1:cv(i,:)=sum((normdata(:,:).*repmat(u(i,:)'.^m,1,ncol)),1)./sum(u(i,:).^m);  %聚类中心更新公式
end
%   3.3 聚类
v_old=v;
delta=1e4;
k=0;
while  (k<Max && delta>tol)for i = 1:cfor j = 1:nrowu(i, j) = 1/sum((euclidean(normdata(j, :), v(i, :))./euclidean(normdata(j, :), v)).^(2/(m-1)));endendfor i = 1:cv(i, :) = sum((normdata(:, :).*repmat(u(i, :)'.^m, 1, ncol)), 1)./sum(u(i, :).^m);endv_new = v;delta = max(max(abs(v_new-v_old)));v_old = v;k = k+1;
end
prediction = zeros(1, nrow);
for i=1:nrow[M,prediction(i)]=max(u(:,i));
end

此外,还需要调用euclidean函数:

function [d] = euclidean(x, Y)
S = size(Y);
d = sum((repmat(x, [S(1),1])-Y).^2, 2);
d = sqrt(d);
end

3 参考资料

[1] https://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CMFD&dbname=CMFD201702&filename=1017156656.nh&v=MjA4MTJGeXZsVTc3TlZGMjZHYks5R05mSnFaRWJQSVI4ZVgxTHV4WVM3RGgxVDNxVHJXTTFGckNVUjdxZll1Wm0=
[2] https://github.com/HosseinAbedi/FCM

FCM模糊C均值聚类分析(Fuzzy C-means)公式推导与MATLAB程序相关推荐

  1. 聚类分析(二)k-means及matlab程序

    1.介绍 k-means是一种常见的基于划分的聚类算法.划分方法的基本思想是:给定一个有N个元组或者记录的数据集,将数据集依据样本之间的距离进行迭代分裂,划分为K个簇,其中每个簇至少包含一条实验数据. ...

  2. FCM 模糊C均值聚类算法

    首先FCM在图像分割领域有很多应用,FCM算法我觉得主要是两个部分,一个是模糊理论,一个是C/Kmean算法,这两者在数学家手中完美的结合. 下面切入整体,我也是为了温故才写的这篇博客,如有错误或者瑕 ...

  3. 基于FCM模糊C均值聚类算法的MATLAB仿真

    目录 1.算法仿真效果 2.MATLAB源码 3.算法概述 4.部分参考文献 1.算法仿真效果 matlab2022a仿真结果如下: 2.MATLAB源码 %*********************

  4. 基于FCM模糊C均值的数据聚类算法matlab仿真

    目录 1.算法仿真效果 2.MATLAB源码 3.算法概述 4.部分参考文献 1.算法仿真效果 matlab2022a仿真结果如下:

  5. 【机器学习】模糊认知图(Fuzzy Cognitive Map, FCM)概念介绍

    关于模糊认知图的背景 模糊认知图(Fuzzy Cognitive Map, FCM)是一种软计算的方法,是由模糊逻辑和神经网络相结合的产物.FCM与神经网络.图论等领域都有密切联系,正因为其强大的直观 ...

  6. 非局部相似性 matlab,非局部均值滤波(NLM)和MATLAB程序详解视频教程保持图像细节...

    [内容简介]<非局部均值滤波与应用和MATLAB程序详解视频>共6章28节视频,总学时698分钟,合11.6小时.主要内容包括:非局部均值滤波类算法入门,基于滤波参数自适应的非局部均值滤波 ...

  7. 模糊C均值聚类(Fuzzy C-means)算法(FCM)

    一.FCM算法简介 1.模糊集理论 L.A.Zadeh在1965年最早提出模糊集理论,在该理论中,针对传统的硬聚类算法其隶属度值非0即1的严格隶属关系,使用模糊集合理论,将原隶属度扩展为 0 到 1 ...

  8. 聚类算法及python实现——模糊C均值(FCM)

    聚类算法及python实现--模糊C均值(FCM) 模糊C和K均值的区别 K均值:硬聚类,隶属度只有0和1,基于"类内误差平方和最小化"原则 模糊C:模糊聚类,隶属度取值为[0,1 ...

  9. Fuzzy C-Means Clustering(模糊C均值)

    别看了 有错的 我懒得改了 强推https://www.bilibili.com/video/BV18J411a7yY?t=591 看完你还不会那我也没办法了 \ 算法原理   模糊c-均值聚类算法 ...

最新文章

  1. linux 设置代理 安装jdk mysql tomcat redis hadoop
  2. HDU1272_并查集
  3. QT的QGraphicsLineItem类的使用
  4. C++struct和class区别
  5. 外部工具连接SaaS模式云数仓MaxCompute 实战—— 数据库管理工具篇
  6. Asp.net MVC 的一些总结(二)——图片显示
  7. MySQL5.7 常用系统表大全
  8. typecho 去掉index.php,Typecho设置伪静态去掉url中的index.php
  9. 自动驾驶——图像识别的学习笔记
  10. 删除链表中相邻重复元素
  11. python误差修正模型_在Python中实现Johansen Test for Cointegration
  12. 基于胜任力模型的项目经理岗位培训需求分析研究
  13. Gensim库的使用——Word2vec模型(一)模型的简单介绍与加载预训练的模型进行测试
  14. Overleaf 硕士毕业论文参考文献格式设置
  15. juniper设备配置syslog日志发送到远程日志服务器
  16. Unity Shader-法线贴图(Normal)及其原理
  17. 免费服务器推荐1:无限自由
  18. 组合数问题(NOIP2016提高组Day2T1)
  19. 六种不同型号的电灯泡
  20. 对不起,我轻视了google的公关能力

热门文章

  1. centos命令源码获取
  2. 突出核心素养,探寻一轮新路
  3. 艾司博讯:怎么看拼多多商家发货地址
  4. 如果外网访问不了ip主机记得关防火墙!血的教训
  5. seq2seq翻译任务代码详细分析
  6. 微软升级Live Messenger服务,用DotMSN的兄弟们注意了!!!
  7. element 封装上传图片,上传头像组件
  8. 简单的防止Windows自动锁屏的VBS脚本
  9. 关于界面不能预览的问题
  10. idea显示方法参数 Show parameter name hints