北工大模式识别基础课程作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名:学号:

2.1 设有10个二维模式样本,如图2.13所示。若21=θ,试用最大最小距离算 法对他们进行聚类分析。

1 3 5 7 9

X 1

解:① 取T 11]0,0[==X Z 。

②选离1Z 最远的样本作为第二聚类中心2Z 。 ()()201012221=-+-=D ,831=D ,5841=D ,4551=D 5261=D ,7471=D ,4581=D ,5891=D ,651,10=D ∵ 最大者为D 71,∴T 72]7,5[==X Z

742

121=-=Z Z θT ③计算各样本与{}21,Z Z 间距离,选出其中的最小距离。

7412=D ,5222=D ,3432=D ,…,132,10=D

}13,20,17,0,2,5,4,8,2,0{),min(21=i i D D ④742

120)},max{min(9221=>==T D D D i i ,T 93]3,7[==∴X Z ⑤继续判断是否有新的聚类中心出现:

⎪⎩⎪⎨⎧===58740131211D D D ,⎪⎪⎩⎪⎪⎨⎧===40522232221D D D ,…⎪⎪⎩⎪⎪⎨⎧===1

13653,102,101,10D D D

}1,0,1,0,2,5,4,8,2,0{),,min(321=i i i D D D

742

18)},,max{min(31321=

<==T D D D D i i i 寻找聚类中心的步骤结束。 ⑥按最近距离分到三个聚类中心对应的类别中:

3211,,:X X X ω;76542,,,:X X X X ω;10983,,:X X X ω

代码附录:

clear all

close all

clc

%坐标点,初始化选定比例系数

num = 10;eta = 0.5;

axis([0 10 0 10]);

hold on

%c = zeros(10,1);z = zeros(10,2);

x1 = [0,0];x2 = [1,1];x3 = [2,2];x4 = [3,7];

x5 = [3,6];x6 = [4,4];x7 = [5,7];x8 = [6,3];

x9 = [7,3];x10 = [7,4];

W = [x1;x2;x3;x4;x5;x6;x7;x8;x9;x10];

%% step1 任选一个坐标点作为第一个聚类中心z1

R= randperm(num);

c(1) = R(1);

z(1,:) = W(c(1),:);

%% step2 从数据中选取一个距离z1最远的坐标点,作为第二个聚类中心z2 d = zeros(num,1);

for i = 1:num

d(i) = norm(z(1,:)-W(i,:));

end

[~,c(2)] = max(d);%距离,位置

z(2,:)= W(c(2),:);

%% step3 计算剩余数据与z1,z2之间的距离,并求其最小距离

d =zeros(num,2);

for i = 1:num

d(i,1) = norm(z(1,:)-W(i,:));

d(i,2) = norm(z(2,:)-W(i,:));

end

D = zeros(num,1);

for i = 1:num

D(i) = min(d(i,:));

end

%% step4 确定是否存在第三个聚类中心

[m,n] = max(D);%最大值,位置

if m>eta*norm(z(2,:)-z(1,:));

c(3) = n;

z(3,:) = W(c(3),:);

jump = 1;%转至step5

else

jump = 2;

end

switch (jump)

case 1

k = 4;

%% step5 继续确定是否存在聚类中心

for p = 1:num

d =zeros(num,length(c));

for i = 1:length(c)

for j = 1:num

d(j,i) = norm(z(i,:)-W(j,:));

end

end

for i = 1:num

D(i) = min(d(i,:));

end

[m,n] = max(D);%最大值,位置if m>eta*norm(z(2,:)-z(1,:));

c(k) = n;

z(k,:) = W(c(k),:);

k = k+1;

else

break %没有新的聚类中心end

end

case 2

break

end

%% step6 最小距离法进行分类

%首先计算数据到每个聚类中心的距离

D =zeros(num,length(c));

for i = 1:length(c)

for j = 1:num

D(j,i) = norm(z(i,:)-W(j,:));

end

end

%归类,判断坐标点属于的类别

k = zeros(length(c),1);

for i = 1:num

[m,n] = min(D(i,:));

k(i,1) = n;%归类标识

end

%设置颜色

colour = zeros(length(c),3);

for i = 1:length(c)

colour(i,:) = rand(1,3);

end

for i = 1:length(c)

v = find(k == i);%位置

相关文档
最新文档