《北工大模式识别基础课程作业》由会员分享,可在线阅读,更多相关《北工大模式识别基础课程作业(5页珍藏版)》请在金锄头文库上搜索。
1、姓名:学号: 2.1 设有 10 个二维模式样本,如图 2.13 所示。若 ,试用最大最小距离21算法对他们进行聚类分析。1 3 5 7 91357X1X4X3X5X8 X9X7X10X2X6x1x2图 2.13 10 个二维模式样本解: 取 。T10,XZ 选离 最远的样本作为第二聚类中心 。1 2Z, , ,222D831D5841451D, , , ,5617415896,0 最大者为 D71, T72,X21ZT 计算各样本与 间距离,选出其中的最小距离。,, , ,741252342132,0D7,8,0),min(iD ,ax9221 Tii T93,7XZ 继续判断是否有新的聚类
2、中心出现:, ,587401321D4052311365,02,1,0D,8,),min(2ii742)ax31321 Tiii寻找聚类中心的步骤结束。 按最近距离分到三个聚类中心对应的类别中:; ;321,:X76542,:X10983,:X代码附录:clear allclose allclc%坐标点,初始化选定比例系数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;
3、x8 = 6,3;x9 = 7,3;x10 = 7,4;W = x1;x2;x3;x4;x5;x6;x7;x8;x9;x10;% step1 任选一个坐标点作为第一个聚类中心 z1R= randperm(num);c(1) = R(1);z(1,:) = W(c(1),:);% step2 从数据中选取一个距离 z1 最远的坐标点,作为第二个聚类中心 z2d = zeros(num,1);for i = 1:numd(i) = norm(z(1,:)-W(i,:);end,c(2) = max(d);%距离,位置z(2,:)= W(c(2),:);% step3 计算剩余数据与 z1,z2 之
4、间的距离,并求其最小距离d =zeros(num,2);for i = 1:numd(i,1) = norm(z(1,:)-W(i,:);d(i,2) = norm(z(2,:)-W(i,:);endD = zeros(num,1);for i = 1:numD(i) = min(d(i,:);end% step4 确定是否存在第三个聚类中心m,n = max(D);%最大值,位置if meta*norm(z(2,:)-z(1,:);c(3) = n;z(3,:) = W(c(3),:);jump = 1;%转至 step5elsejump = 2;endswitch (jump)case 1
5、k = 4;% step5 继续确定是否存在聚类中心for p = 1:num d =zeros(num,length(c);for i = 1:length(c)for j = 1:numd(j,i) = norm(z(i,:)-W(j,:);endendfor i = 1:numD(i) = min(d(i,:);endm,n = max(D);%最大值,位置if meta*norm(z(2,:)-z(1,:);c(k) = n;z(k,:) = W(c(k),:);k = k+1;elsebreak %没有新的聚类中心endendcase 2breakend% step6 最小距离法进行
6、分类%首先计算数据到每个聚类中心的距离D =zeros(num,length(c);for i = 1:length(c)for j = 1:numD(j,i) = norm(z(i,:)-W(j,:);endend%归类,判断坐标点属于的类别k = zeros(length(c),1);for i = 1:numm,n = min(D(i,:);k(i,1) = n;%归类标识end%设置颜色colour = zeros(length(c),3);for i = 1:length(c)colour(i,:) = rand(1,3);endfor i = 1:length(c) v = find(k = i);%位置u = length(v);%个数M = zeros(u,2);%用来存储所属同一类的点for j = 1:uM(j,:) = W(v(j),:);endP = plot(M(:,1),M(:,2),);set(P,color,colour(i,:);end