聚类(2)-- Fuzzy k-means clustering

在传统的k-means聚类算法的每步迭代中,每个数据点被硬划分到一个cluster。Fuzzy k-means试图松弛上述条件,即认为每个数据点与cluster center之间的membership不是取自{0,1},而是[0,1],而上述membership就是当前数据点属于一个cluster center所代表的cluster的概率。

Fuzzy k-means聚类算法试图最小化如下cost function:

Jfuz = sum(sum(P(wi|xj,theta)^b*||xj-mi||^2)),其中第一个sum对所有cluster求和,第二个sum对所有数据点求和,theta是上述membership函数对应的参数向量,P(wi|xj,theta)是当前数据点xj属于由第i个cluster的概率,b是自由参数,当b = 0时,上述目标函数变成硬划分,即一个数据点被指定给一个cluster。当 b>1 时,上述目标函数将允许数据点在一定概率下从属于所有cluster。

当P(wi|xj,theta)满足:

P(wi|xj,theta) = 1, 当xj距离第i个cluster center mi最近;

P(wi|xj,theta) = 0,其他

则上述目标函数即为k-means的目标函数,即k-means是Fuzzy k-means的一种特殊情况。


Fuzzy k-means的迭代过程如下:

1、给定cluster number 为K,以及初始中心m1,m2,...,mK,以及自由参数b(一般取b>=1)

2、计算每个数据点从属于每个cluster的概率,例如令a(j,i) = exp(-(xj-mi)),其中xj为第j个数据点(j=1,2,...,N),

定义p(j,i) = a(j,i)/sum(a(j,i))(其中sum对j求和)

3、重新计算中心mi = (sum(p(j,i)^b*xj))/(sum(p(j,i)^b))(其中sum对j求和)

4、循环2,3,直至中心m1,m2,...,mK不再变化,或者变化小于给定的阈值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值