三、使用仪器、材料
计算机
四、实验步骤
1.利用MATLAB编程实现K-均值聚类算法,并对图1中实验数据进行分类。 1)取K=2,选择两个初始聚类中心Z1=[0 0],Z2=[1 0];
2)逐个计算各个需要分类的模式样本{xi, i=1,2,3,??,N}到Z1、Z2的距离,按最小距离原则分配给Z1或Z2; 3)计算Z1、Z2新的向量值:
Zj(k?1)?1Njx?Sj(k)?X j=1,2,Nj为第j个聚类域Sj所包含样本个数;
4)如果Zj(k?1)?Zj(k) ,j=1,2,则回到第2步,将模式样本逐个重新分类,重复迭代计算。如果Zj(k?1)?Zj(k) ,j=1,2,算法收敛,计算完毕。
2.实验程序示例
%K-均值模式聚类程序 close all; clear; clc; %分类点集合
x=[0 0;1 0;0 1;1 1;2 1;1 2;2 2;3 2;6 6 ; 7 6;8 8;6 7;7 7;8 7;9 7;7 8;8 8;9 8;8 9;9 9]; x=x';
sx=size(x); %初始化两个聚类中心 z1=[0 0]'; z2=[1 0]'; %开始分类
while 1
s1=[];s2=[]; for i=1:sx(2)
%逐个将需要分类的模式样本{xi, i=1,2,3,??,N}按最小距离原则分配
给K个聚类中心中的某一个;
9
if (x(1,i)-z1(1,1))^2+(x(2,i)-z1(2,1))^2<
(x(1,i)-z2(1,1))^2+(x(2,i)-z2(2,1))^2
s1=[s1 x(:,i)]; else s2=[s2 x(:,i)]; end end
%计算各个聚类中心的新的向量值 sz1=size(s1);
z1n=(sum(s1')/sz1(2))'; sz2=size(s2);
z2n=(sum(s2')/sz2(2))'; %如果聚类中心不改变,算法结束,退出 if z1==z1n break; end
%如果聚类中心改变,给聚类中心赋新值,再次聚类 z1=z1n; z2=z2n; end
fprintf('中心点1'); z1n
fprintf('集合1'); s1
fprintf('中心点2'); z2n
fprintf('集合2'); s2
五、实验过程原始记录
六、实验结果及分析
10
实验三 图像识别实验
1.实验目的
综合掌握模式识别的原理,及了解识别过程设计方法。
2.实验内容
(a)
(b)
(c)
图2
(d)
图2中(a)、(b)为字符A的两种形式,(c)、(d)为字符B的两种形
式。利用MATLAB编程,提取图2实验图像特征,设计分类函数,对图像进行识别。
11