主要内容

用模糊c均值聚类方法聚类准随机数据

这个例子展示了FCM如何使用准随机二维数据进行聚类。

加载数据集并绘制它。

负载fcmdata.dat情节(fcmdata (: 1) fcmdata (:, 2),“o”

图中包含一个坐标轴。轴包含一个线型对象。

接下来,调用命令行函数,fcm,在这个数据集中找到两个聚类,直到目标函数不再大幅减少为止。

(中心、U、objFcn) = fcm (fcmdata, 2);
迭代计数= 1,obj。fcn = 8.970479 Iteration count = 2, obj. fcn = 8.970479fcn迭代数= 3 = 7.197402,obj。fcn = 6.325579 Iteration count = 4, obj. php . php . php . php . php . php . php。fcn = 4.586142迭代计数= 5,obj。fcn = 3.893114;fcn = 3.810804 Iteration count = 7, obj. log(迭代次数)fcn = 3.799801迭代计数= 8,obj。fcn = 3.797862 Iteration count = 9, obj. fcn = 3.797862fcn = 3.797508 Iteration count = 10, obj. fcn = 3.797508 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 (的目标函数值

图中包含一个坐标轴。标题为目标函数值的轴包含一个类型为line的对象。

最后,绘制由fcm函数。情节中的大字表示群集中心。

maxU = max (U);index1 = find(U(1,:) == maxU);index2 = find(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)

图中包含一个坐标轴。轴包含4个线型对象。

注意:每次运行这个示例时,fcm函数用不同的初始条件进行初始化。这种行为交换了集群中心计算和绘制的顺序。

另请参阅

相关的话题