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时或许会更加合理。在实验迭代的过程中可以了解到这种聚类的方式主要是通过优化目标函数然后得到每个样本点对所有类中心的隶属度,从而决定样本点的类属以达到自动对样本数据进行聚类的目的。同时我也通过改变聚类个数的方式去寻找更加合理的类别数。但是实验中还缺少对于聚类优劣的描述,可以通过一些聚类指标来对实验进行进一步优化。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

fastApi笔记12-OAuth2 实现密码哈希与 Bearer JWT 令牌验证

JWT JWT(Json Web Token)是一种可以跨域的认证方案 jwt由三部分构成: 头部header:头部包含算法和token类型 核载payload:这部分用来保存自定义信息 签名signature:使用header和payload以及提供的秘钥,用header指定…

12c 32k strings新特性 varchar2/nvarchar2 32K

12c 32k strings新特性 varchar2/nvarchar2 32K 1、查看 SQL> show parameter MAX_STRING_SIZENAME TYPE VALUE ------------------------------------ ----------- ------------------------------ max_string_size …

Rust 开发的高性能 Python 包管理工具,可替换 pip、pip-tools 和 virtualenv

最近,我在 Python 潮流周刊 中分享了一个超级火爆的项目,这还不到一个月,它在 Github 上已经拿下了 8K star 的亮眼成绩,可见其受欢迎程度极高!国内还未见有更多消息,我趁着周末把一篇官方博客翻译出来了&a…

12:Logstash|Web日志实时分析

Logstash|Web日志实时分析 logstashlogstash工作结构安装Logstash编写logstash配置文件步骤一:codec类插件插件帮助手册Logstash input插件步骤一:file模块插件filter grok插件Web日志实时分析部署beats与filebeat步骤一:filter grok模块插件logstash 一个数据采集、加工处…

基于巨控GRM561/562/563Y西门子1200PLC发邮件

巨控GRM560,GRM600系列同比之前的GRM530,除短信,微信,电话语音播报增加了邮件发送功能,简单介绍一下PLC发邮件。 1在博途中建立好DB块 2.打开GRMDEV6,新建工程,做好数据采集,这里以DB4.D0&#…

Day17:信息打点-APP资产知识产权应用监控静态提取动态抓包动态调试

目录 案例1:名称获取APP信息(爱企查/小蓝本/七麦/点点) 案例2:URL网站备案查APP 案例3:APP提取信息-静态分析 案例3:APP提取信息-动态抓包 案例4:APP提取信息-动态调试 思维导图 章节知识…

JavaWeb03-HTTP协议,Tomcat,Servlet

目录 一、HTTP协议 1.概述 2.特点 3.请求数据格式 (1)请求行 (2)请求头 (3)请求体 (4)常见请求头 (5)GET和POST请求区别 4.响应数据格式 &#xf…

Python一些可能用的到的函数系列125 FSM工具transitions

说明 首先FSM是一个很有用的工具,在程序设计中,某个对象会对应若干不同的状态,在这个状态下,同样的方法会有不一样的行为。 python有个transitions包可以做这个,过去一直不想用,主要是感觉有点鸡肋。 本质…

基于springboot+vue的个人博客系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

Vue自定义商品发布组件

文章目录 一、代码展示二、代码解读三、结果展示 一、代码展示 <template><div><a-popover trigger"hover" :getPopupContainer"triggerNode > {return triggerNode.parentNode || document.body;}"><template #content><d…

Redis面试总结

概述 1. Redis是什么&#xff1f;简述它的优缺点&#xff1f; Redis本质上是一个Key-Value类型的内存数据库&#xff0c;很像Memcached&#xff0c;整个数据库加载在内存当中操作&#xff0c;定期通过异步操作把数据库中的数据flush到硬盘上进行保存。 因为是纯内存操作&…

[Angular 基础] - routing 路由(下)

[Angular 基础] - routing 路由(下) 之前部分 Angular 笔记&#xff1a; [Angular 基础] - 自定义指令&#xff0c;深入学习 directive [Angular 基础] - service 服务 [Angular 基础] - routing 路由(上) 使用 route 书接上回&#xff0c;继续折腾 routing 按照最初的 wi…

ffmpeg使用命令实现音视频分离

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、简单介绍二、具体操作三、验证1.源文件2.视频文件3.音频文件 四、补充总结 前言 有时候由于特殊需要可能需要将一个视频&#xff08;带音频&#xff09;的…

洛谷:P3068 [USACO13JAN] Party Invitations S(枚举、前缀和)

这题我们数据范围太大&#xff0c;用二维肯定是不行的&#xff0c;我们可以采用一维线性存储。 如题意&#xff0c;我们可以将每组奶牛编号都存在一维数组里面&#xff0c;只需记录每组的头尾指针就可以了。 如题中样例我们就可以存储成1 3 3 4 1 2 3 4 5 6 7 4 3 2 1 然后第…

docker部署aria2-pro

前言 我平时有一些下载视频和一些资源文件的需求&#xff0c;有时候需要离线下载&#xff0c;也要速度比较快的方式 之前我是用家里的玩客云绝育之后不再写盘当下载机用的&#xff0c;但是限制很多 我发现了aria2 这个下载器非常适合我&#xff0c;而有个大佬又在原来的基础…

基于 Vue3打造前台+中台通用提效解决方案(上)

基于 Vue3打造前台+中台通用提效解决方案 1、项目架构 本项目使用vite + vue3来实现前中台解决方案 2、为什么使用vite ? 因为,之前的项目一直都是使用webpack作为构建工具;vite出来这么久了,也没有用过;所以想在当前项目下进行使用; 2.1、为什么vite比webpack块? …

android开发文档下载,你的技术真的到天花板了吗

Android 基础 1.Activity 1、 什么是 Activity&#xff1f; 2、 请描述一下 Activity 生命周期 …… 2.Service 3.Broadcast Receiver32 4.ContentProvider 5.ListView 6.Intent 7.Fragment 1.Fragment 跟 Activity 之间是如何传值的 2.描述一下 Fragment 的生命周期 3.Fragme…

Qt多弹窗实现包括QDialog、QWidget、QMainWindow

1.相关说明 独立Widget窗口、嵌入式Widget、嵌入式MainWindow窗口、独立MainWindow窗口等弹窗的实现 相关界面包含关系 2.相关界面 3.相关代码 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include "tformdoc.h" #incl…

容器云平台巡检实战:运维进阶技巧与策略

1 docker容器日常巡检 通过以下方式进行检查&#xff1a; 1.1 docker/podman ps查看容器状态 Docker/podman ps -a 查看容器状态STATUS&#xff1a; Exited(0)&#xff1a;表示容器正常退出 Exited(其他数字)&#xff1a;容器异常退出&#xff0c;需要通过log 查看原因 Up…

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

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