集群使用模糊c均值聚类拟随机数据
这个例子展示了使用拟随机二维数据FCM聚类是如何工作的。
加载数据集和情节。
负载fcmdata.dat情节(fcmdata (: 1) fcmdata (:, 2),“o”)
接下来,调用命令行功能,fcm
,找到两个集群在这个数据集,直到目标函数不再是减少很多。
(中心、U、objFcn) = fcm (fcmdata, 2);
迭代数= 1,obj。fcn = 8.970479迭代数= 2,obj。fcn迭代数= 3 = 7.197402,obj。fcn = 6.325579迭代数= 4,obj。fcn = 4.586142迭代数= 5,obj。fcn迭代数= 3.893114 = 6,obj。fcn = 3.810804迭代数= 7,obj。fcn = 3.799801迭代数= 8,obj。fcn = 3.797862迭代数= 9,obj。fcn = 3.797508迭代数= 10,obj。 fcn = 3.797444 Iteration count = 11, obj. fcn = 3.797432 Iteration count = 12, obj. fcn = 3.797430
中心
包含两个集群中心的坐标,U
包含会员等级为每个数据点,和objFcn
包含整个迭代目标函数的历史。
的fcm
函数是一个迭代循环之上以下例程:
initfcm
——初始化问题distfcm
——执行欧氏距离计算stepfcm
——执行一个迭代的聚类
查看集群的进度,绘制目标函数。
图绘制(objFcn)标题(的目标函数值)包含(迭代计算的)ylabel (的目标函数值)
最后,画出两个集群中心发现的fcm
函数。大的人物情节表明集群中心。
maxU = max (U);index1 =找到(U (1:) = = maxU);index2 =找到(U (2:) = = maxU);图线(fcmdata (index1, 1), fcmdata (index1, 2),“线型”,…“没有”,“标记”,“o”,“颜色”,‘g’1)线(fcmdata (index2), fcmdata (index2, 2),“线型”,…“没有”,“标记”,“x”,“颜色”,“r”)举行在情节(中心(1,1),中心(1、2),“柯”,“markersize”15岁的“线宽”2)图(中心(2,1),中心(2,2),“kx”,“markersize”15岁的“线宽”,2)
注意:每次你运行这个例子,fcm
函数初始化不同的初始条件。这种行为互换的顺序集群中心计算和绘制。