FCM算法原理及matlab实现

本文介绍了模糊c均值(FCM)算法的基本原理,该算法允许数据点以不同成员等级归属多个聚类。通过最小化特定的目标函数来确定最优的聚类中心。此外,还提供了FCM算法在Matlab中的实现示例,并展示了如何绘制聚类结果和目标函数的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)FCM算法原理

Fuzzy c-means (FCM) is a clustering method that allows each data point to belong to multiple clusters with varying degrees of membership.

FCM is based on the minimization of the following objective function:


这里写图片描述


这里写图片描述

(二)FCM算法流程


这里写图片描述

(三)FCM算法的matlab实现

%fcm.m
clc
clear
close all
data = rand(100,2);
[center,U,obj_fcn] = fcm(data,2);
subplot(1,2,1);
plot(data(:,1), data(:,2),'o');
hold on;
maxU = max(U);
% Find the data points with highest grade of membership in cluster 1
index1 = find(U(1,:) == maxU);
% Find the data points with highest grade of membership in cluster 2
index2 = find(U(2,:) == maxU);
plot(data(index1,1),data(index1,2),'og');
plot(data(index2,1),data(index2,2),'or');
% Plot the cluster centers
plot(center(1,1),center(1,2),'xb','MarkerSize',15,'LineWidth',3)
plot(center(2,1),center(2,2),'xr','MarkerSize',15,'LineWidth',3)
title('分类结果')
subplot(1,2,2);
plot(obj_fcn)
title('目标函数J的变化')
hold off;

运行结果:



这里写图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值