-accumulator
实验二
模糊
C
均值聚类
实验目的
:
学会使用
MATLAB
软件进行模糊<
/p>
C
均值聚类,
学会如何进行迭代并观察迭
代过程。
实验学时
:
4
学时
实验内容
:
p>
1
、认真阅读
文件
,通过给出的英文的例子学习进行
C
均值聚类
的具体步骤。
p>
2
、在学习完所给的例子后进行实际操作。根据表格提供的固定资本
和人力
资本等进行聚类分布。进一步熟悉和掌握熟悉
FUZZY
CLUSTERING
.
实验日期
:
2013
年
4
月
24
日
实验过程:
1
、查看所给数据表格(如下)
,由经济学理论知,
GDP
的产出状况是由固
定资本的投入和人力资
源的投入决定的。
因此,
实际上我们只需要选取固定资本
和人力资源这两组数据进行处理就行了。
地
区
GDP
固定资本
(Fixed
Capital)
人力资本
(manpower
Capital)
地
区
GDP
固定资本
(Fixed
Capital)
人力资本
(manpower
Capital)
(
District
)
(
p>
District
)
北京
天津
河北
山西
内蒙古
辽宁
吉林
黑龙江
上海
江苏
浙江
安徽
福建
江西
山东
河南
2.0576
1.8328
0.8236
0.5440
0.6503
1.2001
0.7553
0.9344
3.0674
1.2933
1.4629
0.5199
1.2365
0.5198
1.0439
0.5903
5.9489
4.0308
1.6223
1.0337
1.1099
2.0314
0.3114
1.4208
8.0396
2.2450
3.1038
0.8112
2.0523
0.7494
1.6534
1.9210
1.3600
1.3990
0.8690
0.7960
0.9310
0.3850
1.0220
1.2810
1.7480
1.0880
0.8940
0.6140
1.1550
0.7850
0.9470
0.6530
湖北
湖南
广东
广西
海南
重庆
四川
贵州
云南
西藏
陕西
甘肃
青海
宁夏
新疆
平均
0.7803
0.6039
1.3681
0.4660
0.6859
0.5650
0.5118
0.2856
0.4840
0.5275
0.5040
0.4165
0.5754
0.5300
0.7981
0.8914
1.3820
0.9171
2.7298
0.8342
0.8127
0.8127
1.0410
0.5756
1.0166
1.3588
1.0307
0.8544
1.508
1.5036
2.0226
1.8936
1.0000
0.6660
1.0260
0.5460
0.6200
0.6200
0.5630
0.2990
0.4660
0.5240
0.5740
0.4590
0.5500
0.5180
0.9110
0.8573
2
、通过学习
guide
p>
中的范例,将所给的
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
]
%
将固定资本和人力资本的数据按
G
DP
的平均值进行分类,
大于平均值的分为一类,
记为
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]<
/p>
,即在这里面我们取了两个聚类中心点,
c1=(0.5,0.5
)
、
c2=(0.8,0.8)
,并设
q=2
。
需要注
意的是,
q
越接近
1
< br>收敛速度越快,
但若
q=1
则为
硬
C
均值聚
(
HCM
)
。
然后不断调用函数
defcm
,
[Cts, M] =
defcm(Cts,q)
。
即在<
/p>
Command
窗口中输入:
Cts = [0.5 0.5; 0.8
0.8]
;
q =
2
;
[Cts, M] =
defcm(Cts,q)
。
本次实
验一共迭代了
13
次,
M
矩阵才不再变化,达到了最佳聚类中心。迭
代的仿真图形如下所示:
(迭代时只要将
Command
窗口中
Cts
中的值换成前一次迭代输出的值即可)
第
p>
1
次迭代仿真的图形
Tiles data: o =
whole tiles, * = cracked tiles, x = centres
2.5
2
1.5
1
人
力
资
本
0.5
0
-0.5
-1
-1.5
-1.5
-1
-0.5
0
0.5
固
定
资
本
1
1.5
2
2.5
第
6
p>
次迭代仿真的图像
Tiles
data: o = whole tiles, * = cracked tiles, x = cent
res
2.5
2
1.5
1
人
力
资
本
0.5
0
-0.5
-1
-1.5
-1.5
-1
-0.5
0
0.5
固
定
资
本
1
1.5
2
2.5
第
13
次的迭代图形: