相继平均法matlab代码_模式识别matlab编程:用k次平均法将20个样本分成2类

该博客介绍了如何使用MATLAB实现K次平均法(K-means)将20个样本数据分成2类。通过计算每个样本到两类中心的距离,按最小距离原则进行归类,并不断更新类中心,直到类中心不再变化。最后展示了MATLAB代码实现过程。
摘要由CSDN通过智能技术生成

样本序号

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值