第5类的有638 798 912 990 1302 1307 1647 第6类的有291 493 623 702 782 840 874 891 950 958 966 1021 1060 1078 1086 1103 1119 1183 1211 1233 1259 1295 1494 1496 1503 1533 1726 1749 1854 1927 1940 1943 1952 1967 1991 2007 2033 2039 2090 2146 2189 2310 2320 2331 2333 2481 2537 2543 2547 2573 2589 2681 2687 2699 2727 2790 2961 2975 3028
3030 3117 3142 3152 3200 3226 3267 3292 3342 3416 3424 3528 3535 3568 3627 3642 3647 3700 3715 3719 3721 3804 3805 3838 3900 3943 4011 4054 4065 4067 4070 4080 4085 4135 4161 4215
4251 4275 4301 4358 4416 4426 4439 4474 4571 4584 4618 4628 4663 4716 4768 4827 4853 4882 4955 4970 4983 5005 5014 5019
5027 5029 5057 5059 5073 5093 5134 5137 5158 5164 5192 5201 5311 5368 5405 5459 5533 5568 5580 5593 5599 5610 5644 5669
5690 5731 5754 5755 5777 5788 5820 5855 5857 5894 6004 6009 6078 6080 6118 6119 6128 6132 6166 6178 6216 6218 6223 6294
6311 6322 6344 6374 6399 6412 6416 6417 6423 6464 6482 6486 6492 6529 6535 6555 6556 6580 6587 6589 6623 6631 6651 6687 6690 6692 6750 6759 6782 6791 6803 6814 6854 6887 6902 6904 6907 7107 7127 7132 7139 7140 7179 7187 7206 7212 7255 7347 7368 7373 7411 7419 7429 7441 7450 7454 7488 7511 7523 7527
7553 7591 7595 7614 7632 7644 7655 7732 7737 7787 7851 7859 7873 7874 7900 7911 7912 7918 7992 7998 7999 8056 8080 8099 8149 8187 8193 8197 8249 8253 8260 8288 8308 8309 8313 8331
8335 8344 8355 8357 8415 8418 8447 8479 8538 8549 8580 8582 8590 8605 8621 8636 8643 8673 8674 8681 8702 8706 8709 8716 8723 8780 8803
第7类的有50 57 74 75 77 87 102 117 150 164 183 211 261 271 298 302 306 323 372 384 402 506 588 653 788 898 2677 2804 3188
第8类的有101 110 120 124 125 128 130 135 137 138 144 151 153 154 161
21
201816141210864
5 6 2 3 12 19 7 28 23 17 13 4 29 8 9 26 22 10 11 14 15 24 16 20 21 25 18 27 30 1
附录2:求解问题二的Matlab程序 function main()
%*************主成份分析************ a=zhuchengfendata;
gj=zscore(zhuchengfendata); r=corrcoef(gj); [vec1,lamda,rate]=pcacov(r)
f=repmat(sign(sum(vec1)),size(vec1,1),1); vec2=vec1.*f num=3; df=gj*vec2(:,1:num); tf=df*rate(1:num)/100;
[stf,ind]=sort(tf,'descend'); stf=stf',ind=ind'
结果显示: vec1 =
0.4294 -0.4511 0.5504 -0.4836 -0.2745 0.0268 0.7175 0.6148 0.2005 -0.2575 0.5370 -0.2693 0.1337 0.7583 0.2150 0.5007 0.3945 -0.0787 -0.3881 0.6610
0.5251 0.2316 -0.5431 -0.0201 -0.6126
lamda =
2.8737 1.6525 0.3783 0.0761
22
0.0195 rate =
57.4734 33.0491 7.5658 1.5216 0.3901
vec2 =
0.4294 -0.4511 0.5504 -0.4836 0.2745 0.0268 0.7175 0.6148 0.2005 0.2575 0.5370 -0.2693 0.1337 0.7583 -0.2150 0.5007 0.3945 -0.0787 -0.3881 -0.6610
0.5251 0.2316 -0.5431 -0.0201 0.6126 stf =
0.9434 0.8342 0.4977 0.4694 0.4294 0.1849 -1.6126 1.7465 ind =
4 2 8 5 7 6 3 1
附录3:问题三的Matlab程序: a=pingfen;
pingfen=zscore(pingfen);
%数据标准化
y=pdist(pingfen); %求对象间的欧氏距离,每行是一个对象 z=linkage(y,'average'); %按类平均法聚类 h=dendrogram(z); %画聚类图
set(h,'Color','k','LineWidth',1.3) %把聚类图线的颜色改成黑色,线宽加粗 for k=2:5
fprintf('划分成%d类的结果如下:\\n',k) T=cluster(z,'maxclust',k); %把样本点划分成k类 for i=1:k
tm=find(T==i); %求第i类的对象 tm=reshape(tm,1,length(tm)); %变成行向量 fprintf('第%d类的有%s\\n',i,int2str(tm)); %显示分类结果 end if k==5 break end fprintf('**********************************\\n'); end
23
结果显示:
结果显示:
划分成2类的结果如下:第1类的有7 8
第2类的有1 2 3 4 5 6
********************************** 划分成3类的结果如下:第1类的有1 2 第2类的有3 4 5 6
第3类的有7 8
********************************** 划分成4类的结果如下: 第1类的有6
第2类的有3 4 5 第3类的有1 2 第4类的有7 8 **********************************
划分成5类的结果如下:第1类的有7 第2类的有8 第3类的有6 第4类的有3 4 5 第5类的有1 2
2
1.5
1
0.5
0
3
4
5
6
1
2
7
8
24