MATLAB的模糊C均值聚类程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二模糊C均值聚类
实验目的:
学会使用MATLAB软件进行模糊C均值聚类,学会如何进行迭代并观察迭代过程。
实验学时:4学时
实验内容:
1、认真阅读guide.doc文件,通过给出的英文的例子学习进行C均值聚类的具体步骤。
2、在学习完所给的例子后进行实际操作。根据表格提供的固定资本和人力资本等进行聚类分布。进一步熟悉和掌握熟悉FUZZY CLUSTERING.
实验日期:2013年4月24日
实验过程:
1、查看所给数据表格(如下),由经济学理论知,GDP的产出状况是由固定资本的投入和人力资源的投入决定的。因此,实际上我们只需要选取固定资本和人力资源这两组数据进行处理就行了。
2、通过学习guide中的范例,将所给的defcm.m程序进行重新编辑。其具体程序如下:
function [NCentres, M] = defcm(Centres, q)
Tiles = [
5.9489 1.3600 1
4.0308 1.3990 1
2.0314 0.3850 1
1.4208 1.2810 1
8.0396 1.7480 1
2.2450 1.0880 1
3.1038 0.8940 1
2.0523 1.1550 1
1.6534 0.9470 1
2.7298 1.0260 1
1.6223 0.8690 -1
1.0337 0.7960 -1
1.1099 0.9310 -1
0.3114 1.0220 -1
0.8112 0.6140 -1
0.7494 0.7850 -1
1.9210 0.6530 -1
1.3820 1.0000 -1
0.9171 0.6660 -1
0.8342 0.5460 -1
0.8127 0.6200 -1
0.8127 0.6200 -1
1.0410 0.5630 -1
0.5756 0.2990 -1
1.0166 0.4660 -1
1.3588 0.5240 -1
1.0307 0.5740 -1
0.8544 0.4590 -1
1.508 0.5500 -1
1.5036 0.5180 -1
2.0226 0.9110 -1
] ;
% 将固定资本和人力资本的数据按GDP的平均值进行分类,大于平均值的分为一类,记为1,小于平均值的分为一类,记为-1
Tiles(:, 1) = log(Tiles(:, 1)) ;
Tiles(:, 2) = log(Tiles(:, 2)) ;
clf ; hold off;
plot(Tiles(1:16, 1), Tiles(1:16, 2), 'ob') ;
axis([-1.5 2.5 -1.5 2.5]) ;
xlabel('固定资本') ;
ylabel('人力资本') ;
title('Tiles data: o = whole tiles, * = cracked tiles, x = centres') ;
hold on;
plot(Tiles(17:31, 1), Tiles(17:31, 2), '*b') ;
plot(Centres(:,1), Centres(:,2),'xr') ;
Object = Tiles(:,[1 2])' ;
Centres = Centres' ;
k = length(Centres(:,1));
D = dist(Object, Centres);
M = member(D, q) ;
ClustSums = sum(M) ;
[NoOfObs, NoOfCtrs] = size(M) ;
z = M ./ (ones(NoOfObs,1) * ClustSums) ;
NCentres = Centres' ;
for i = 1:NoOfCtrs,
w = z(:,i) * ones(1,2) ;
NCentres(i,:) = sum(Object' .* w) ;
end ;
3、将上述程序保存为defcm.m文件,然后在命令窗口中输入初始聚类中心Cts = [0.5 0.5; 0.8 0.8],即在这里面我们取了两个聚类中心点,c1=(0.5,0.5)、
c2=(0.8,0.8),并设q=2。
需要注意的是,q越接近1收敛速度越快,但若q=1则为硬C均值聚(HCM)。然后不断调用函数defcm,[Cts, M] = defcm(Cts,q)。
即在Command窗口中输入:
Cts = [0.5 0.5; 0.8 0.8];
q = 2;
[Cts, M] = defcm(Cts,q)。
本次实验一共迭代了13次,M矩阵才不再变化,达到了最佳聚类中心。迭代的仿真图形如下所示:
(迭代时只要将Command窗口中Cts中的值换成前一次迭代输出的值即可)第1次迭代仿真的图形
-1.5
-1-0.50
0.51 1.52 2.5
-1.5-1-0.500.51
1.52
2.5固定资本
人力资本
Tiles data: o = whole tiles, * = cracked tiles, x = centres
第6次迭代仿真的图像
-1.5
-1-0.50
0.51 1.52 2.5
-1.5-1-0.500.51
1.52
2.5固定资本
人力资本
Tiles data: o = whole tiles, * = cracked tiles, x = centres
第13次的迭代图形: