matlab 实现模糊C均值聚类

1. 原理

模糊c均值算法步骤:

1. 设定聚类数目c和加权指数b:

2. 初始化各个聚类中心m

3. 重复下面的运算,直到各个样本的隶属度值稳定:用当前的聚类中心根据下式计算隶属度函数:

用当前的隶属度函数按下式更新计算各类聚类中心:

当模糊C均值算法收敛时,就得到了各类的聚类中心和各个样本对于各类的隶属度值,从而完成了模糊聚类划分

Matlab中模糊c均值聚类函数(b=2):

[Center,U,obj_fcn]=fcm(data,cluster_n)

data:要聚类的数据集合,每一行为一个样本;

cluster_n:聚类数;

Center:最终的聚类中心矩阵,每一行为聚类中心的坐标值;

U:最终的模糊分区矩阵;

obj_fcn:在迭代过程中的目标函数值。

2. 过程

2.1 数据集合并及可视化

 

将MALE.txt和FEMALE.txt文件合并成一个data.txt文件,在matlab中导入data文件并绘制样本点分布:

图1 初始样本点分布图

2.2 模糊c均值聚类

调用MATLAB中模糊c均值聚类函数fcm实现聚类,初始设置聚类簇的个数为2,求出每个样本的最大隶属度,然后找出分别属于两类样本的点并绘制图像:

程序如上图所示,运行后聚类结果如下:

图2 迭代过程中目标函数值

可以看出目标函数值在迭代中是不断减小的

图3 聚类结果

图4 簇为2聚类结果样本点分布

为了能够寻找到更合理的聚类数目,接下来分别进行3类、4类、5类聚类

图5 簇个数为3

图6 簇个数为4

图7 簇个数为5

3. 结果与分析

在上述实验过程中,我们成功实现了模糊c均值聚类,因为数据集是由两类样本合成的所以初始聚类簇的个数设置为2,结果如图4所示,然后从图中可以发现聚类效果似乎并非最佳,于是后续又增大了簇的个数进行多次实验,如图5到图7所示,通过观察可知聚类个数为4时或许会更加合理。在实验迭代的过程中可以了解到这种聚类的方式主要是通过优化目标函数然后得到每个样本点对所有类中心的隶属度,从而决定样本点的类属以达到自动对样本数据进行聚类的目的。同时我也通过改变聚类个数的方式去寻找更加合理的类别数。但是实验中还缺少对于聚类优劣的描述,可以通过一些聚类指标来对实验进行进一步优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/513006.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成原理之机器:计算机系统的基本概念

计算机组成原理之机器 笔记来源:哈尔滨工业大学计算机组成原理(哈工大刘宏伟) Chapter1:计算机系统的基本概念 1.1 计算机系统简介 从物理构成的角度对计算机系统分层 计算机组成原理主要关注微体系结构(Mirco-arc…

分享77个Html杂七杂八模板,总有一款适合您

分享77个Html杂七杂八模板,总有一款适合您 77个Html杂七杂八模板下载链接:https://pan.baidu.com/s/1-RyIKaxdCu3dbnlMFMwviw?pwd8888 提取码:8888 学习知识费力气,收集整理更不易。知识付费甚欢喜,为咱码农谋福…

已经连接过github远程库,如何再次推送及删除远程库的内容

基于上次将文件推送到已经建好的github远程库上,此篇文章主要介绍如何再次推送文件去直接已经连接过的远程库,以此如何删除远程库中不想要的文件。 一、推送文件到远程库 1.将所需推送的文件拉入本地库所建的文件夹下:{ex:JVM相…

080|为什么阿里的价值观值得你关注?

在阿里巴巴20周年年会现场,万众瞩目之下,马云和张勇完成了阿里巴巴董事长职务的交接。 不过你也知道,这次接棒在一年前就已经公布了,在年会上只是一个仪式。在20周年年会过后,我找到了互联网圈的资深媒体人阳淼&#…

(3)(3.2) MAVLink2数据包签名(安全)

文章目录 前言 1 配置 2 使用 3 MAVLink协议说明 前言 ArduPilot 和任务计划器能够通过使用加密密钥添加数据包签名,为空中 MAVLink 传输增加安全性。这并不加密数据,只是控制自动驾驶仪是否响应 MAVLink 命令。 当自动驾驶仪处于激活状态时&#x…

Mybatis-Plus——04,自动填充时间(新注解)

自动填充(新注解) 一、数据库添加两个字段二、实体类字段属性上增加注解三、编写填充器四、查看结果4.1 插入结果4.2 修改结果 五、同步修改5.1实体类属性改成 INSERT_UPDATE5.2 在填充器的方法这里加上 updateTime5.3 查看结果————————创作不易…

DHCP自动获取IP地址实验(思科)

华为设备参考:DHCP自动获取IP地址实验(华为) 一,实验目的 路由器搭载DHCP,让PC通过DHCP自动获取IP地址 二,不划分vlan 实验拓扑 配置命令 Switch Switch>enable Switch#configure terminal Switch(c…

基于协同过滤的旅游推荐系统设计与实现

基于协同过滤的旅游推荐系统设计与实现 在当今旅游业蓬勃发展的背景下,人们对于旅游体验的需求日益增加,如何为用户提供更加个性化、精准的旅游推荐成为了旅游行业的一个重要课题。为解决这一问题,我们设计并实现了一个基于协同过滤的旅游推…

8个优秀的CSS实践,开发web应用

HTML面试题部分 1.H5的新特性有哪些 2.Label的作用是什么?是怎么用的? 3.HTML5的form如何关闭自动完成功能 4.dom如何实现浏览器内多个标签页之间的通信? 5.实现不使用 border 画出1px高的线,在不同浏览器的标准模式与怪异模式下都 能保持一…

【JavaSE】面向对象——多态性

多态性 多态性的概念 所谓多态性,理解为一个事物的多种形态。具体点就是去完成某个动作时,不同的对象会产生不同的状态。 多态性的好处 多态在Java中指的是父类的引用指向子类的对象,或者可以说是子类的对象赋给父类的引用。这样在我们的…

Tomcat概念、安装及相关文件介绍

目录 一、web技术 1、C/S架构与B/S架构 1.1 http协议与C/S架构 1.2 http协议与B/S架构 2、前端三大核心技术 2.1 HTML(Hypertext Markup Language) 2.2 css(Cascading Style Sheets) 2.3 JavaScript 3、同步和异步 4、…

学习JAVA的第十三天(基础)

目录 API之Arrays 将数组变成字符串 二分查找法查找元素 拷贝数组 填充数组 排序数组 Lambda表达式 集合的进阶 单列集合 体系结构 Collection API之Arrays 操作数组的工具类 将数组变成字符串 //将数组变成字符串char[] arr {a,b,c,d,e};System.out.println(Arra…