样本序号
x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
9
x
10
特征
x1
0
1
0
1
2
1
2
3
6
7
特征
x2
0
0
1
1
1
2
2
2
6
6
x
11
x
12
x
13
x14
x15
x
16
x
17
x
18
x
19
x
20
8
6
7
8
9
7
8
9
8
9
6
7
7
7
7
8
8
8
9
9
用
K
次平均算法分成
2
类,编程上机,并画出分类图。
MA
TLAB
程序代码:
clear
x=[0 0;1 0;0 1; 1 1;2 1;1 2;2 2;3 2;6 6;7 6;8 6;6 7;7 7;8 7;9 7;7 8;8 8;9 8;8 9; 9 9];
z=zeros(2,2);
z1=zeros(2,2);
z=x(1:2,1:2);
while
1
count=zeros(2,1);
allsum=zeros(2,2);
for
i=1:20
%
对每一个样本
i
,计算到
2
个聚类中心的距离
temp1=sqrt((z(1,1)-x(i,1)).^2+(z(1,2)-x(i,2)).^2);
temp2=sqrt((z(2,1)-x(i,1)).^2+(z(2,2)-x(i,2)).^2);
if
(temp1
%
按最小距离原则将样本归类
count(1)=count(1)+1;
allsum(1,1)=allsum(1,1)+x(i,1);
allsum(1,2)=allsum(1,2)+x(i,2);
else
count(2)=count(2)+1;
%
统计属于第
2
类的样本数量
allsum(2,1)=allsum(2,1)+x(i,1);
allsum(2,2)=allsum(2,2)+x(i,2);
end
end
z1(1,1)=allsum(1,1)/count(1);
%
计算各个聚类的新向量值
z1(1,2)=allsum(1,2)/count(1);
z1(2,1)=allsum(2,1)/count(2);
z1(2,2)=allsum(2,2)/count(2);