聚类FCM算法

来源:互联网 发布:视频相片制作软件 编辑:程序博客网 时间:2024/06/05 16:55

聚类FCM算法


个人博客,想要搭建个人博客的可以进来看看: http://www.ioqian.top/

在科研生活中,学习算法的时间不是很多,毕竟不是主要搞算法的,但是作为读研狗毕竟还是要毕业写论文的,算法还是要慢慢积累。
学习算法的目的很清晰,主要分为三点:一是扩展知识面,在这个AI如此火爆的年代,搞技术的出去别人聊AI要能听得懂,明白一些算法的思路才可以和别人正常交流;二是活跃思维,学习算法的创新点,锻炼大脑;三是学习解决问题的方法,码农工作中有的问题也需要高逼格的算法。
在科研过程中,每个人自己主攻方向,但是其他的方向都是有必要了解的,当然没必要花费太多的时间,拿算法来看,专门搞算法的算法大牛可能优化一种算法需要几个月去不断尝试,但是对于我来说,花半天时间看看博客,论文综述了解思路就可以了,知道这个算法干嘛的,抽象为什么数学问题,怎么解决完全够了。最后说一句,学过的东西都是有用的,行业都有共性,思路很重要。

参考博客:
http://blog.csdn.net/on2way/article/details/47087201 公式推导
http://www.cnblogs.com/ybjourney/p/4735335.html matlab版本实现
http://blog.csdn.net/cuifengqinghan/article/details/52725242 java版本有可视化界面

下面介绍我们的FCM算法,大致分为下面3个部分,有了下面的三个问题思路会很清晰

  • FCM算法是什么,用来做什么?
  • FCM的数学模型,如何求解数学模型?
  • FCM的编码实现?

1. FCM简介

FCM算法,模糊C均值(Fuzzy C-means)算法,是基于目标函数的模糊聚类算法,主要用于数据的聚类分析。

      模糊就是这个算法的重点和特点,模糊就是不确定的。拿人来举例子,人的年龄,一个人20岁就是20岁,18岁就是18岁所以人的年龄是确定的;人的外貌是不确定的,一个人漂亮不漂亮没办法直接给出一个确定的答复,只能说0.8分漂亮,0.2分不漂亮,这就是模糊。模糊有一个重要的感念隶属度,一般用u表示,表示一个样本属于这种结果的程度,漂亮不漂亮的问题就可以这样描述了

模糊隶属度感念

      看了上图,只需要明白怎么表示隶属度就可以了,其中i代表了样本,a,b代表2中分类,一个样本属于不同分类点的求和等于1(0.8+0.2=1),这个很好想的。最后不要问为什么用Uai表示而不是Uia

Fcm算法的优点是什么?
      传统的聚类分析是把每个元素严格的划分到一个类中,属于硬划分。模糊聚类分析将聚类生成的每个簇均看做模糊集合,通过隶属度来确定聚类关系,是一种柔性划分,得到元素属于各个簇的不确定性程度,使得聚类结果更加准确灵活,因此,模糊聚类分析逐渐成为聚类分析的主流。

2.FCM的属性模型

具体的推导公式看<<参考博客1>>

现在提出一个具体的问题,我们有数据集X,有n个数据,要把这些数据化成c类,每个类都有一个对应的中心C,每个样本j属于某一类i的隶属度为uij,所以我们可以得到一个目标函数J(1)和约束条件(2),我们要做的就是求取目标函数的极值?

此处输入图片的描述

上述公式中各个符合的意义
- J     代表了目标函数
- c     最后聚合的分类数目
- n     数据集中的数据个数
- uij     样本j属于类i的隶属度
- xj     数据集j的位置
- Ci     类i的中心位置
- m     结合代码发现取(2-6)都可以,是样本的轻缓程度

我们可以发现公式(1)就是由样本的隶属度与样本到类中心的欧氏距离相城组成,公式(2)就是说一个样本属于所有类的隶属度之和为1,公式(1)的物理意义就是当分类

如何解决这个非线性规划问题?
      采用拉格朗日乘数法把约束条件拿到目标函数中去,再把得到的公式分别对Uij,Ci求导数,利用约束条件消减就可以得到下列的结论

此处输入图片的描述

此处输入图片的描述

      上面两个公式是算法的关键

  • Uij        物理意义是Uij越大,表示点j到i之外的类中心的距离乘积越大,就是远离其他类中心而靠近i类中心,也和隶属度的意义一致
  • Ci       本质上是对样本点加权平均,当i类中心确定后,首先将所有点到该类的隶属度u求和,隶属度除以这个和就是所占的比重乘以xj就是这个点对于这个类i的贡献值

3.FCM的编码

上面的最后两个公式Uij和ci公式中互相包含,所以我们可以随便给一个赋值,然后开始迭代,用U算C,再用C算U…,结束条件可以是迭代多少次或者两次迭代后J值变化小于一个误差

FCM算法的一般步骤为:
**1.确定分类数c,指数m的值,迭代次数(防止达不到所需精度时停止迭代)
2.随机产生Uij,归一化(因为约束条件(2))
—开始循环迭代指定次数
3.根据U计算聚类中心C的位置
4.再根据C去计算U
5.计算目标函数J的大小和上一次迭代J的大小进行,小于要求精度就退出迭代,否则退出迭代
—迭代次数达到要求或者两次J之差小于精度要求
6,计算每个点到所有类Uij的最大值来决定这个点属于哪个类,标识**

具体的代码实现由Matlab的版本<<参考博客2>>和Java可视化版本<<参考博客3>>

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 14岁眼皮很松怎么办啊 ps存不了psd格式怎么办 花草上有白色物怎么办 ps抠出来有白边头发怎么办 脸上结痂掉了有红印怎么办 海棠花瓣干枯怎么办茎变软 微信上的图片打不开怎么办 口红吊兰老掉叶子怎么办 翠叶竹芋叶子卷怎么办 牙有龋齿垫底以后酸怎么办 事业单位辞职请示30天不批怎么办 孕早期吃了油菜怎么办 实体店买到翻新苹果手机怎么办 太阳花叶子蔫了怎么办 刚摘下来的多肉怎么办 购车4s不给合同怎么办 橙光游戏2.0商城怎么办 飞羽花卷叶了怎么办 孔雀竹芋叶子发黄卷曲怎么办 孔雀竹芋叶子黄了卷了怎么办 飞羽竹芋叶尖黄怎么办 十七岁还是胸小怎么办 英雄联盟连接不上服务器怎么办 彩叶草叶子蔫了怎么办 家里种葱老是死怎么办 非洲菊生虫子了怎么办 多肉的花剪下来怎么办 结石痛怎么办怎么止疼 喝玫瑰花茶胃疼怎么办 卡地亚戒指掉色怎么办 苹果8plus掉电快怎么办 苹果8plus耗电快怎么办 卡地亚戒指划痕怎么办 苹果手机玫瑰金掉色怎么办 14k玫瑰金掉色怎么办 卡地亚手镯掉色怎么办 手机掉油漆里了怎么办 黄金戴久了变黑怎么办 玫瑰金褪色不亮了怎么办 黄金带久了不亮怎么办 玉石带久了不亮怎么办