文档介绍:FCM聚类算法介绍
FCM算法是一种基于划分的聚类算法,它的思想就是使得被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小。模糊C均值算法是普通C均值算法的改进,普通C均值算法对于数据的划分是硬性的,而FCM则是一种柔性的模糊划i=1,2,…,n)分为c个模糊组,并求每组的聚类中心,使得非相似.
性指标的价值函数达到最小。FCM与HCM的主要区别在于FCM用模糊划分,使得每个给定数据点用值在0,1间的隶属度来确定其属于各个组的程度。与引入模糊划分相适应,隶属矩阵U允许有取值在0,1间的元素。不过,加上归一化规定,一个数据集的隶属度的和总等于1:
u—1,X/j—1,.・・,n
ij
()
i—1
那么,FCM的价值函数(或目标函数)就是式()的一般化形式
yccnJ—yyumd2,
1ciijij
i—1i—1j
这里U..介于0,1间;,d..=llc.-..
间的欧几里德距离;且me[1,a)是一个加权指数。
()
构造如下新的目标函数,可求得使()式达到最小值的必要条件:
J(U,cc,入入)—J(U,cc
)+工n九(为u一1)
j—1jij
i—1
()
这里入.,
j
()
nc
+乙九(乙u一1)
jij
j—1
j=1到n是()式的n个约束式的拉格朗日乘子。对所有输入参量求导,使式
达到最小的必要条件为:
—umd2
ijij
i—1j
i=1
n,
1c1n1
n
yumx
()
ijj
c—1
in
yum
ij
()
u
ij
2/(m-1)
j—1
'd'
—j
d
k=1'kj丿
由上述两个必要条件,模糊C均值聚类算法是一个简单的迭代过程。在批处理方式运行时,
[l]:
i
步骤1:用值在0,1间的随机数初始化隶属矩阵U,使其满足式()中的约束条件
步骤2:用式()计算c个聚类中心c.,i=1,…,c。
.
步骤3:根据式()计算价值函数。如果它小于某个确定的阀值,或它相对上次价
值函数值的改变量小于某个阀值,则算法停止。
步骤4:用()计算新的U矩阵。返回步骤2。
上述算法也可以先初始化聚类中心,然后再执行迭代过程。由于不能确保FCM收敛于一个最优解。算法的性能依赖于初始聚类中心。因此,我们要么用另外的快速算法确定初始聚类中心,要么每次用不同的初始聚类中心启动该算法,多次运行FCM。
通过上面的讨论,我们不难看出FCM算法需要两个参数一个是聚类数目C,另一个是参数m。一般来讲C要远远小于聚类样本的总个数,同时要保证C>1。对于m,它是一个控制算法的柔性的参数,如果m过大,则聚类效果会很次,而如果m过小则算法会接近HCM聚类算法。
算法的输出是C个聚类中心点向量和C*N的一个模糊划分矩阵,这个矩阵表示的是每个样本点属于每个类的隶属度。根据这个划分矩阵按照模糊集合中的最大隶属原则就能够确定每个样本点归为哪个类。聚类中心表示的是每个类的平均特征,可以认为