当前位置: 首页 > article >正文

通俗易懂讲透模糊C均值聚类(FCM)

通俗易懂讲透模糊C均值聚类FCM本科生/研究生一看就懂模糊C均值Fuzzy C-Means简称FCM是软聚类最经典的算法和K-Means最大的区别一个点可以同时属于多个类只是隶属程度不同。本文用大白话生活例子核心公式可直接运行代码对比总结适合课堂笔记、实验报告。一、先搞懂什么是模糊聚类硬聚类K-Means一个样本只属于一类非黑即白。例这个水果100%苹果不可能是梨。软聚类FCM一个样本按概率属于多类边界更真实。例一个青苹果70%像苹果30%像梨。一句话总结FCM 带“隶属度”的K-Means更贴近现实世界的模糊边界。二、FCM 核心思想超通俗先设定要分几类c给每个点随机分配隶属度属于每一类的概率和为1用隶属度加权计算簇中心根据距离更新隶属度重复迭代直到簇中心几乎不动就像先瞎猜归属 → 算中心 → 看远近 → 修正概率 → 稳定为止三、核心符号与目标函数报告直接用基本符号N样本数c簇数xix_ixi​第i个样本cjc_jcj​第j个簇中心uiju_{ij}uij​样本i属于簇j的隶属度∈[0,1]且每行和为1m模糊系数m1常用2m越大越模糊目标函数最小化Jm∑i1N∑j1cuijm⋅∥xi−cj∥2J_m\sum_{i1}^N\sum_{j1}^c u_{ij}^m \cdot \|x_i-c_j\|^2Jm​∑i1N​∑j1c​uijm​⋅∥xi​−cj​∥2含义加权距离和越小越好权重是隶属度的m次方。四、两个核心更新公式必须背1. 簇中心更新加权平均cj∑i1Nuijm⋅xi∑i1Nuijmc_j \frac{\sum_{i1}^N u_{ij}^m \cdot x_i}{\sum_{i1}^N u_{ij}^m}cj​∑i1N​uijm​∑i1N​uijm​⋅xi​​不是普通平均是隶属度越大权重越高2. 隶属度更新uij1∑k1c(∥xi−cj∥∥xi−ck∥)2m−1u_{ij} \frac{1}{\sum_{k1}^c \left( \frac{\|x_i-c_j\|}{\|x_i-c_k\|} \right)^{\frac{2}{m-1}}}uij​∑k1c​(∥xi​−ck​∥∥xi​−cj​∥​)m−12​1​离哪个中心越近隶属度越高距离相等 → 隶属度平均五、FCM 完整算法流程初始化随机生成隶属度矩阵U每行归一化和为1。更新簇中心用上面加权公式计算。更新隶属度按距离重新计算。收敛判断中心变化很小就停止。输出簇中心 隶属度矩阵。硬标签取np.argmax(U, axis1)六、关键参数 m模糊系数m1退化成K-Means硬聚类m2最常用平衡模糊与聚类效果m↑边界越模糊隶属度越平均推荐范围1.5 ~ 2.5七、实战代码红酒数据集聚类可直接复制包含FCM手写实现 PCA可视化 隶属度曲线 收敛曲线# 安装依赖# pip install numpy scikit-learn matplotlibimportnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.datasetsimportload_winefromsklearn.preprocessingimportStandardScalerfromsklearn.decompositionimportPCA# 1. FCM 算法实现 deffuzzy_c_means(X,c,m2.0,max_iter200,error1e-6):NX.shape[0]# 初始化隶属度矩阵Unp.random.rand(N,c)UU/U.sum(axis1,keepdimsTrue)J_history[]for_inrange(max_iter):U_oldU.copy()# 更新簇中心umU**m centers(um.T X)/um.sum(axis0,keepdimsTrue).T# 计算距离Dnp.linalg.norm(X[:,None]-centers,axis2)Dnp.clip(D,1e-12,None)# 更新隶属度exp2/(m-1)U1/np.sum((D[:,:,None]/D[:,None,:])**exp,axis2)# 目标函数Jnp.sum((U**m)*(D**2))J_history.append(J)# 收敛ifnp.linalg.norm(U-U_old)error:breakreturncenters,U,J_history# 2. 数据加载与预处理 dataload_wine()Xdata.data scalerStandardScaler()X_scaledscaler.fit_transform(X)# PCA降维到2DpcaPCA(n_components2)X_pcapca.fit_transform(X_scaled)# 3. 运行FCM n_clusters3m2.0centers,U,J_historyfuzzy_c_means(X_pca,n_clusters,mm)labelsnp.argmax(U,axis1)# 4. 可视化 # 4.1 聚类结果图plt.figure(figsize(9,6))colors[red,green,blue]foriinrange(n_clusters):plt.scatter(X_pca[labelsi,0],X_pca[labelsi,1],ccolors[i],labelfCluster{i1},s40)plt.scatter(centers[:,0],centers[:,1],cyellow,s300,marker*,labelCenter)plt.title(FCM Clustering (Wine Dataset))plt.legend()plt.show()# 4.2 隶属度曲线plt.figure(figsize(10,4))foriinrange(n_clusters):plt.plot(U[:,i],labelfCluster{i1})plt.title(Membership Degree)plt.ylabel(Uij)plt.legend()plt.show()# 4.3 收敛曲线plt.figure(figsize(6,4))plt.plot(J_history)plt.title(Objective Function Convergence)plt.xlabel(Iter)plt.ylabel(Jm)plt.show()代码输出三张图聚类散点图清晰看到簇与中心隶属度曲线边界点呈现多类混合收敛曲线证明算法稳定下降八、FCM 优缺点面试/报告必背✅ 优点软分类更真实描述边界模糊数据可调模糊程度用m控制软硬输出隶属度可直接用于决策、加权、融合原理接近K-Means容易理解与实现❌ 缺点必须指定簇数c对初始值敏感易局部最优计算比K-Means慢对异常值敏感欧式距离通病九、FCM vs K-Means vs GMM超清晰对比算法类型簇数需指定对噪声输出适用场景K-Means硬聚类是差标签大数据、快速聚类FCM软聚类是中隶属度边界模糊、医学/图像分割GMM概率软聚类是较好概率数据服从高斯分布十、什么时候用 FCM数据边界不清晰存在交叠需要隶属度做后续分析图像分割、医学信号、用户偏好分析中小规模数据不适合超大数据 → 用K-Means/Mini-Batch K-Means任意形状、带噪声 → 用DBSCAN不知道簇数 → 用Mean Shift/层次聚类十一、一句话总结模糊C均值FCM是带隶属度的软聚类算法通过迭代优化加权距离让每个样本按概率属于多类特别适合边界模糊、需要精细划分的场景。

相关文章:

通俗易懂讲透模糊C均值聚类(FCM)

通俗易懂讲透模糊C均值聚类(FCM)|本科生/研究生一看就懂 模糊C均值(Fuzzy C-Means,简称FCM)是软聚类最经典的算法,和K-Means最大的区别:一个点可以同时属于多个类,只是隶…...

VMware Workstation 16 + WinDbg双机调试全流程:从删打印机到黑屏解决

VMware Workstation 16与WinDbg双机调试实战指南:从环境搭建到疑难排错 调试Windows内核就像给一台运转中的发动机做手术——需要精准的工具、稳定的环境,以及应对突发状况的预案。本文将带你完整走通Windows XP虚拟机与物理机之间的双机调试链路&#x…...

通俗易懂讲透均值漂移(Mean Shift)聚类算法

通俗易懂讲透均值漂移(Mean Shift)聚类算法 不用指定簇数、自动找高密度区域,这是Mean Shift最香的特点!本文用大白话生活案例公式详解可直接运行代码,本科生、研究生都能轻松看懂。一、均值漂移是什么?一句…...

终极OpenWrt网络加速指南:3步让你的路由器性能翻倍

终极OpenWrt网络加速指南:3步让你的路由器性能翻倍 【免费下载链接】turboacc 一个适用于官方openwrt(22.03/23.05/24.10) firewall4的turboacc 项目地址: https://gitcode.com/gh_mirrors/tu/turboacc 在智能设备泛滥的时代,你是否遇到过这样的困…...

队列迷宫解

迷宫表示: 使用二维数组 mg[][] 表示迷宫 0 表示可通行的路 1 表示墙(不可通行) 边界用墙包围,防止越界 第一步:初始化 1. 创建空队列 2. 将入口点(e.i, e.j, pre-1)入队 3. 标记入口点为已访问(mg[xi][…...

【FLUENT】【VOF】多相流中液滴撞击与铺展的仿真实践

1. 液滴撞击与铺展仿真的工程价值 液滴撞击固体或液体表面的现象在工业应用中无处不在。比如喷墨打印机的墨滴控制、农药喷洒的覆盖均匀性、发动机燃油喷射的雾化效果,这些场景都需要精确预测液滴的动态行为。传统实验方法虽然直观,但成本高、周期长&…...

MicMute:一键静音麦克风的Windows系统托盘解决方案

MicMute:一键静音麦克风的Windows系统托盘解决方案 【免费下载链接】MicMute Mute default mic clicking tray icon or shortcut 项目地址: https://gitcode.com/gh_mirrors/mi/MicMute 在远程办公、在线会议、直播等场景中,快速控制麦克风状态已…...

MCUXpresso IDE工程创建避坑指南:RAM/FLASH分配与链接文件配置详解

MCUXpresso IDE工程创建避坑指南:RAM/FLASH分配与链接文件配置详解 在嵌入式开发领域,内存管理一直是工程师们绕不开的核心课题。当我们使用MCUXpresso IDE为NXP芯片创建工程时,那些看似简单的默认配置背后,往往隐藏着影响项目成败…...

别再死记硬背公式了!用Python+PlatEMO实战解析DTLZ七大基准问题

用PythonPlatEMO实战解析DTLZ七大基准问题:告别公式恐惧,从代码理解多目标优化 第一次接触多目标优化时,那些晦涩的数学公式总让人望而生畏。DTLZ系列作为经典基准问题,论文中复杂的符号系统常把初学者挡在门外。但换个角度想——…...

如何快速打造轻量级Windows 11系统:tiny11builder完整教程指南

如何快速打造轻量级Windows 11系统:tiny11builder完整教程指南 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 你是否厌倦了Windows 11系统日益臃肿&a…...

深度学习特征提取架构解析:SuperPoint端到端视觉特征检测技术深度评估

深度学习特征提取架构解析:SuperPoint端到端视觉特征检测技术深度评估 【免费下载链接】SuperPoint Efficient neural feature detector and descriptor 项目地址: https://gitcode.com/gh_mirrors/su/SuperPoint SuperPoint作为深度学习在计算机视觉特征提取…...

Python智能体建模终极指南:为什么Mesa是快速构建多智能体仿真的最佳选择?

Python智能体建模终极指南:为什么Mesa是快速构建多智能体仿真的最佳选择? 【免费下载链接】mesa Mesa is an open-source Python library for agent-based modeling, ideal for simulating complex systems and exploring emergent behaviors. 项目地址…...

如何用WindowResizer轻松解决Windows窗口尺寸限制问题?

如何用WindowResizer轻松解决Windows窗口尺寸限制问题? 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些顽固的Windows应用程序窗口而烦恼吗?有些…...

若依WMS仓库管理系统:10分钟快速上手的完整实战指南

若依WMS仓库管理系统:10分钟快速上手的完整实战指南 【免费下载链接】RuoYi-WMS-VUE 若依wms是一套基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单。包括仓库/库区/货架管理,出入库管理,客户/供应商/承运商&#x…...

终极指南:5个关键步骤实现Python到Android的快速转换

终极指南:5个关键步骤实现Python到Android的快速转换 【免费下载链接】python-for-android Turn your Python application into an Android APK 项目地址: https://gitcode.com/gh_mirrors/py/python-for-android 你是否曾想过,只需几行Python代码…...

拯救你的VS安装:当Visual Studio Installer提示‘循环下载’时,除了检查网络还能做什么?

Visual Studio安装器循环下载问题全解析:从网络诊断到系统级排查 1. 问题现象与初步诊断 Visual Studio安装器卡在"正在提取文件"界面,进度条显示0B/秒,最终弹出"循环下载安装文件"的错误提示——这可能是开发者最头疼的…...

League Akari 终极指南:英雄联盟智能助手完整使用教程

League Akari 终极指南:英雄联盟智能助手完整使用教程 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari 是一款基于英雄…...

保姆级教程:用Python+Open3D搞定点云法向量估计(附PCA实战代码)

PythonOpen3D点云法向量估计实战指南 点云处理的技术价值与应用场景 当你第一次看到三维扫描仪生成的彩色点云时,那些漂浮在空间中的数十万个点可能看起来杂乱无章。但正是这些看似无序的数据点,承载着物体表面最真实的几何信息。在自动驾驶汽车的激光雷…...

保姆级教程:在Windows 10上从零配置KataGo围棋AI(含Sabaki前端和GPU驱动避坑)

从零搭建围棋AI:Windows 10下KataGo与Sabaki全流程实战指南 围棋作为东方智慧结晶,如今在AI技术加持下焕发新生。KataGo作为开源围棋AI的后起之秀,凭借轻量级架构和强大算力,让普通爱好者也能在个人电脑上体验职业级对弈。本文将…...

Windows与Office激活难题的智能解决方案:KMS_VL_ALL_AIO深度解析

Windows与Office激活难题的智能解决方案:KMS_VL_ALL_AIO深度解析 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活和Office办公软件授权而烦恼吗?面…...

WebRTC文件传输终极指南:浏览器直连技术的完整解析

WebRTC文件传输终极指南:浏览器直连技术的完整解析 【免费下载链接】filepizza :pizza: Peer-to-peer file transfers in your browser 项目地址: https://gitcode.com/GitHub_Trending/fi/filepizza 在当今数字化时代,文件传输已成为日常工作和生…...

2026届学术党必备的五大降重复率助手实际效果

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 要想切实有效地把AIGC率降低,那得从内容生成的源头开始着手去优化。首先&#x…...

别再手动装依赖了!一键脚本+环境快照,让BettaFish舆情系统部署快10倍

自动化部署革命:BettaFish舆情系统的工程化实践指南 在当今快节奏的技术环境中,手动配置和部署复杂系统已成为效率的最大杀手。想象一下,当你的团队需要在三台不同配置的服务器上部署同一套舆情分析系统时,传统的手动安装方式不仅…...

如何重建AWR存储库_清理损坏的AWR数据并重新初始化字典表

AWR快照无法生成时,应优先排查SYSAUX空间、快照表误删或元数据不一致等问题,仅当WRM$等核心字典表损坏且无法修复时才重建;须确保ARCHIVELOG模式、VALID组件状态,并严格使用awr_install.sql重建,避免灾难性操作。ORA-1…...

终极指南:Playnite游戏库管理器新手快速入门教程

终极指南:Playnite游戏库管理器新手快速入门教程 【免费下载链接】Playnite Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games. 项目地址: https://…...

如何3步完成B站视频智能转录:bili2text终极完整指南

如何3步完成B站视频智能转录:bili2text终极完整指南 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 你是否曾为记录B站视频中的精彩内容而烦恼&am…...

LabVIEW程序发布避坑指南:从EXE到Installer,这些细节决定了部署成败

LabVIEW程序发布避坑指南:从EXE到Installer的关键细节 在工业自动化、测试测量等领域,LabVIEW开发的程序往往需要部署到多台目标机器上运行。许多开发者花费大量时间调试程序功能,却在最后发布环节遭遇各种"诡异"问题——明明开发机…...

告别Myo Connect依赖:直连蓝牙协议,用Python2.7/3.x实现双Myo臂环的底层数据抓取

告别Myo Connect依赖:直连蓝牙协议实现双Myo臂环的底层数据抓取 在肌电信号研究领域,Thalmic Labs的Myo臂环曾以其便携性和多模态数据采集能力风靡一时。但官方提供的Myo Connect软件就像个黑匣子——开发者无法控制数据采样率,无法调整滤波参…...

AntiMicroX终极指南:5分钟学会免费游戏手柄映射,让所有PC游戏支持手柄控制![特殊字符]

AntiMicroX终极指南:5分钟学会免费游戏手柄映射,让所有PC游戏支持手柄控制!🎮 【免费下载链接】antimicrox Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no…...

如何用ROFL播放器深度分析英雄联盟对局:3个实用技巧提升游戏水平

如何用ROFL播放器深度分析英雄联盟对局:3个实用技巧提升游戏水平 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 还在为英雄…...