FCM算法研究(一)
- FCM算法来源
聚类方法是一种研究数据结构的推导工具,可用于无监督模式识别技术、数据挖掘技术等。一般将聚类分为层次聚类和划分聚类。层次聚类算法产生一个嵌套聚类的层次,算法最多包含N步,在第t步,执行的操作就是在前t-1步的聚类基础上生成新聚类。划分聚类是基于目标函数的一种聚类方法。另一方面,可以将聚类分成hard和fuzzy两种聚类类型。这两种聚类方式均是基于隶属度来描述的。隶属度的概念是从模糊集理论中引申出来的,简单的应用就是性别问题,一个人的性别只能是男(0)和女(1),没有介于0-1之间的第三种或者第几种性别。传统的硬聚类隶属度只有0和 1两个值,也就是说一个样本只能属于一个类。而模糊聚类的隶属度取值介于[0-1]。
模糊聚类可以分为3个分支:(a)基于模糊关系[1];(b)基于模糊规则学习[2];(c)基于目标函数最优。FCM 算法在1981年由Bezdek提出[3]。显然,FCM是属于基于目标函数最优的聚类方法。
2. 算法思想
假定数据集为X,如果把这些数据划分成c类的话,那么对应的就有c个类中心为C,每个样本j属于某一类i的隶属度为uij,那么定义一个FCM目标函数(1)及其约束条件(2)如下所示:
我们想要得到min{J(U,V)},
为了求有约束条件下目标函数的极值,我们得利用拉格朗日乘子法构造新的函数
其中 称为Lagrange乘子,
对F函数求极值得最优化条件如下:
极值条件式6解得必要条件如下:
那么,FCM算法流程为:
1.设定聚类数目c和参数m
2.给出初始隶属度矩阵U(0)
3.利用式8计算新的聚类中心Vj
4.利用式7计算新的隶属度矩阵
5.用一个矩阵范数比较两次迭代之间隶属度矩阵,如果‖U(k+1)-U(k)‖<=e 则停止迭代。
3. 算法实例
使用rand函数生成一个100*2的数据,利用FCM结果可得到
这里隶属度初始化是随机的,满足约束条件就ok,但是相对的会对结果有一定的影响。
4. 参考文献
[1] Guoyao, F.: Optimization methods for fuzzy clustering. Fuzzy Sets Syst. 93, 301–309 (1998)
[2] Ravi, V., Zimmermann, H.J.: Fuzzy rule based classification with feature selector and modified threshold accepting. Eur. J. Oper. Res. 123, 16–28 (2000)
[3] Bezdek, J.C.: Pattern Recognition with Fuzzy Objective Function Algorithms. Plenum Press,New York (1981)
FCM算法研究(一)相关推荐
- fcm算法c语言实现,基于特征权重的FCM算法研究及应用
摘要: 模糊C-均值(FCM)聚类算法是非监督模式识别中应用范围最广泛的算法之一.但是传统的FCM算法中,设定样本的各维特征对分类效果的贡献水平是相同的.在实际中,由于特征提取不够完善,使得特征矢量中 ...
- 基于FCM算法优化的图像分割研究(附源代码)
摘要: 图像分割是指把图像分解成各具特性的区域并提取出有用目标的技术, 它是由图像处理到图像分析的一个关键步骤, 已在诸如计算机视觉.图像编码.模式识别和医学图像分析等很多领域有着实际的应用.根据图像 ...
- FCM算法实现Python(简洁版)
FCM算法 关于聚类的所有项目都放到了这个上面 https://github.com/Sean16SYSU/MachineLearningImplement/tree/master/Clusterin ...
- 【论文翻译】聚类算法研究
论文题目:聚类算法研究 论文来源:聚类算法研究 翻译人:BDML@CQUT实验室 聚类算法研究 孙吉贵 , 刘 杰 , 赵连宇 Clustering Algorithms Research SUN J ...
- 详解FCM算法原理及应用
(一)原理部分 模糊C均值(Fuzzy C-means)算法简称FCM算法,是一种基于目标函数的模糊聚类算法,主要用于数据的聚类分析.理论成熟,应用广泛,是一种优秀的聚类算法.本文关于FCM算法 ...
- 【图像分割】基于matlab形态学重建和过滤改进FCM算法(FRFCM)的图像分割【含Matlab源码 085期】
⛄一.简介 首先,通过引入形态学重构操作将图像的局部空间信息纳入FRFCM中,以保证抗噪性和图像细节保留.其次,基于局部空间邻居和聚类中心内像素之间距离的成员资格分区的修改被仅依赖于成员资格分区的空间 ...
- 经典算法研究系列:二、Dijkstra 算法初探
经典算法研究系列:二.Dijkstra 算法初探 July 二零一一年一月 ====================== 本文主要参考:算法导论 第二版.维基百科. 写的不好之处,还望见谅. 本 ...
- fcm算法的MATLAB实现,FCM算法的matlab程序(初步)
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 ...
- 基于图机器学习的微生物网络关系预测算法研究
龙亚辉预答辩公告 浏览次数:410日期:2021-03-19编辑:院研究生秘书 预答辩公告 论文题目 基于图机器学习的微生物网络关系预测算法研究 答辩人 龙亚辉 指导教师 骆嘉伟 答辩委员会 主席 王 ...
- 多倍体单体型组装算法研究
多倍体单体型组装算法研究 喻昕 [摘要]:人类已知的疾病都与基因有着直接或者间接的联系,研究不同个体间基因序列的差异对于了解人类的遗传,以及预防疾病等方面都有着重要的作用.SNP是单核苷酸多态性, ...
最新文章
- 阿里大佬分享API网关在微服务架构中的应用
- NGUI全面实践教程(大学霸内部资料)
- qpython3下载-QPython3
- python数字的鲁棒输入_请教关于python的手写数字识别神经网络问题~~~~
- 分布式入门,怎样用PyTorch实现多GPU分布式训练
- 野人与传教士过河java_传教士和野人过河(经典MC问题)
- 【Linux小技巧】开启关闭蜂鸣声
- [导入]身份验证方面的问题
- 高精度加法(A+BProblemII)
- flask如何查询mysql_如何从Flask应用中的MySQL查询返回数据?
- JavaWeb教程———Ajax
- 分区助手合并移动硬盘分区后,无法访问的解决方法
- mf4350d驱动下载linux,佳能MF4350d打印机驱动
- 【上班摸鱼系列】文字选择类游戏:《职员默示录 - 启》末日丧尸爆发,你,是什么下场!?...
- tsconfig.json文件配置参数的注解
- 附加支付和统筹支付_上海市医疗保险,请问账户支付和统筹支付是什...
- 键盘录入一个字符串,统计该字符串中的大写字母、小写字母、数字字符和其他字符分别有多少个 例如,键盘录入abcABCD12345!@#$%,输出结果为:小写字母有3个,大写字母有4个,数字字符有5个,
- js中call()与apply()方法
- 制作Linux登录欢迎界面
- 计算机原理-ACC 等14个指令缩写