模式识别与智能信息处理实践实验报告.docx
- 文档编号:5598448
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:27
- 大小:364.35KB
模式识别与智能信息处理实践实验报告.docx
《模式识别与智能信息处理实践实验报告.docx》由会员分享,可在线阅读,更多相关《模式识别与智能信息处理实践实验报告.docx(27页珍藏版)》请在冰豆网上搜索。
模式识别与智能信息处理实践实验报告
《模式识别与智能信息处理实践》
实验报告书
专业:
学号:
姓名:
计算机科学与工程学院
2011.6.20
实验一聚类分析
一、实验目的
通过聚类分析实验,加深对聚类分析基本思想、方法的理解和掌握。
二、实验内容
了解动态、静态聚类算法的特点;
熟练掌握k-均值算法或层次聚类算法;
编写能对实际模式样本正确分类的算法程序。
掌握动态聚类算法的基本思想;
认识类别数、初始类心的选择对k-均值算法聚类结果的影响;
编写能对实际模式样本正确分类的k-均值算法程序。
三、方法手段
设类别数为k,选取k个初始聚类中心,按最小距离原则将各模式分配到k类中的某一类,不断地计算类心和调整各模式的类别使每个模式特征矢量到其所属类别中心的距离平方之和最小。
四、k-均值算法
(1)从D中随机取k个元素,作为k个簇的各自的中心。
(2)分别计算剩下的元素到k个簇中心的相异度,将这些元素分别划归到相异度最低的簇。
(3)根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。
(4)将D中全部元素按照新的中心重新聚类。
(5)重复第4步,直到聚类结果不再变化。
五、k-均值程序运行结果
(1)改变初始类心,观察对聚类结果的影响
若选初始类心是[123]时的结果为其分为1类共39个,分为2类共61个,分为3类共50个,其中被分为第1类的样本为{515378101103104105106108109110111112113116117118119121123125126129130131132133135136137138140141142144145146148149},被分为第2类的样本为{52545556575859606162636465666768697071727374757677798081828384858687888990919293949596979899100102107114115120122124127128134139143147150},被分为第3类的样本为{1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950}。
若选初始类心是[245]时其聚类结果为其分为1类共96个,分为2类共22个,分为3类共个32,其中被分为第1类的样本为{515253545556575960626364656667686970717273747576777879808182838485868788899091929395969798100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150},被分为第2类的样本为{234791013142526303135394243464858619499},被分为第3类的样本为{156811121516171819202122232427282932333436373840414445474950}。
可见,初始类心的选择对于K均值算法的影响较大。
(2)改变类别数k,比较其对类内距离平方和的大小的影响
若k=3且选初始类心是[123]时,其最终各类中心的距离为[1.16570.82304.0783],若k=4且选初始类心是[1234]时,其最终各类中心的距离为[1.30490.49174.07831.3928],可见,改变类别数k,其对类内距离平方和的大小有直接的影响,且k越大,其类内距离平方和距离越小。
六、实验总结
影响k-均值算法结果的因素有:
初始类心的选择以及k值的选择,且k-均值算法适用于k值已知的情况,即类别号已知的情况。
七、Kmeans程序
functiony=my_Kmeans(k,mid)
k=3;%类数
mid=[123];%随便给三个聚类中心
%从文本文件读入数据放入X中
loadfisheriris;X=meas;k=3;mid=[123];%Iris测试数据集
num=size(X,1);%获得X维数大小
fori=1:
k
Z(i,:
)=X(mid(i),:
);%获取k个聚类中心的初始坐标
end
%计算新的聚类中心,K-均值算法的核心部分
temp=[];
while(~isequal(Z,temp))%聚类中心是否变化,若不变化则停止循环
temp=Z;
class=cell(k,1);%初始化类样本class
value=cell(k,1);%初始化类样本的坐标value
forj=1:
num
fort=1:
k
D(t)=dist(X(j,:
),Z(t,:
)');%计算每个样本到类中心的距离
[minu,index]=min(D);%求出离聚类中心最小的一个样本
end
class{index}=cat(1,class{index},j);%将该样本归于一类
value{index}=cat(1,value{index},X(j,:
));%存放该类样本的坐标
end
fori=1:
k
Z(i,:
)=mean(value{i});%计算k类样本的均值,更新聚类中心
end
end
celldisp(class);%显示Kmeans聚类结果
D%显示最终类间距离
实验二判别域代数界面方程法
一、实验目的
通过实验加深对判别域代数界面方程法基本思想、方法的认识,了解线性判别函数的分类能力,熟练掌握感知器算法,或H-K算法,或累积势函数分类法,以及它们各自的适用条件,加深对有监督训练、线性可分、解空间、权空间等概念的理解,编写能对实际模式样本正确分类的算法程序。
二、实验内容
编写能对实际模式样本正确分类的感知器算法,或H-K算法,或累积势函数分类法的算法程序,能对实际模式样本进行正确分类。
三、方法手段:
设已知类别模式特征矢量集为{x1,x2,…,xN},类别数为c。
感知器算法是基于一次准则函数的梯度下降法。
从任意初始解矢量w0出发,利用产生错分的样本对解矢量进行迭代校正:
wk=wk-1+xi,i=1,2,…,c,k=0,1,2…,=常数,从而解得线性判决函数d(x)=w’x的解矢量w.
四、感知器算法
1、算法思想
校正方法实际上是最优化技术中的负梯度下降法。
该算法也是人工神经网络理论中的线性阈值神经元的学习算法。
2、算法原理步骤
设给定一个增广的训练模式集
,其中每个模式类别已知,它们分属
类和
类。
⑴置步数
,令增量
某正的常数,分别赋给增广权矢量初值
的各分量较小的任意值。
⑵输入训练模式
。
⑶计算判别函数值
。
⑷调整增广权矢量,规则是
①如果
和
,则
;(偏小,故加)
②如果
和
,则
;(偏大,故减)
③如果
和
,或
和
,则
。
(分类正确,不校正)
⑸令
。
如果
,返至⑵。
如果
,检验判别函数
对
是否都能正确分类。
若是,结束;若不是,令
,返至⑵。
如果训练模式已经符号规范化,即
已乘以-1(包括增广分量1),则校正权矢量的规则可统一为
在用全部模式训练完一轮后只要还有模式被判错,则需要进行第二轮迭代,用全部训练模式再训练一次,建立新的权矢量。
如果对训练模式还有错分的,则进行第三轮迭代,余类推,直至对所有训练模式均能正确分类为止,此时的
即为所求的权矢量。
五、感知器算法实验结果
(1)改变权矢量初值,观察对算法的影响
已知w1:
X1=(00)’,X2=(10)’,X3=(11)’,X4=(12)’;
w2:
X5=(13)’,X6=(23)’,X7=(32)’,X8=(33)’,
若步长因子=1不变,权初始值取w=[000],则需迭代eth0=15步,若权初始值取w=[111],则需迭代eth0=18步,可见,权初始值选取的不同,将直接导致算法的收敛速度不同。
(2)改变步长因子,观察对算法的影响
若权初始值取w=[000]不变,取步长因子=1,则需迭代eth0=15步,若取步长因子=0.1,则需迭代eth0=16步,可见,步长因子选取的不同,也将直接导致算法的收敛速度不同。
(3)算法的适用性
若已知w1:
X1=(13)’,X2=(23)’,X3=(11)’,X4=(12)’;
w2:
X5=(00)’,X6=(10)’,X7=(32)’,X8=(33)’,则导致该程序死循环,可见,感知器算法只适用两类样本线性可分的条件下(图1),若希望在两类样本线性不可分的条件下,构造一判决平面,则可考虑使用势函数。
图1感知器算法分类结果
图2线性不可分的情况
六、实验程序
functiony=my_preception(W1,W2)
%感知器算法,对两类问题生成线性判别函数
%注意:
前提是两类可线性判别,否则将死循环
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
W1=[00;10;11;12];%w1类中的样本
W2=[13;23;32;33];%w2类中的样本
%%%%%%初始化
w=[000];%任取w初值
c=1;%任取校正增量系数c=1;
%%%%%%感知器算法部分
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%增广样本w1和w2乘(-1)
[m,n]=size(W1);
fori=1:
m
W1(:
n+1)=1;%w1增广
end
[m,n]=size(W2);
fori=1:
m
W2(:
n+1)=1;%w2增广
end
W2=-W2;%取反
%将增广向量转换成元组,便于处理
M=ones(1,m);
w1=mat2cell(W1,M,n+1);
w2=mat2cell(W2,M,n+1);
X=cat(1,w1,w2);%合并两类增广样本
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
eth0=0;%迭代次数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%感知器算法核心部分
[m,n]=size(X);
temp1=[];temp2=1;%随意两个赋不等的值
while(~isequal(temp1,temp2))%判断权值是否变换化,若不变化,则终止循环
eth0=eth0+1;
temp2=temp1;
cleartemp1;%不清除此变量不行啊!
!
fori=1:
m
temp1{i,1}=w;
if(w*X{i}'<=0)%w乘X{i}的转置
w=w+c*X{i};%若小于0更新权值
end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
w%显示线性分类器权值
eth0%显示迭代次数
2
实验三Bayes分类器设计
一、实验目的
通过实验,加深对统计判决与概率密度估计基本思想、方法的认识,了解影响Bayes分类器性能的因素,掌握基于Bayes决策理论的随机模式分类的原理和方法。
二、实验内容
设计Bayes决策理论的随机模式分类器。
三、方法手段
Bayes分类器的基本思想是依据类的概率、概密,按照某种准则使分类结果从统计上讲是最佳的。
换言之,根据类的概率、概密将模式空间划分成若干个子空间,在此基础上形成模式分类的判决规则。
准则函数不同,所导出的判决规则就不同,分类结果也不同。
使用哪种准则或方法应根据具体问题来确定。
四、Bayes算法
1.实验原理
多元正太分布的概率密度函数由下式定义
由最小错误概率判决规则,可得采用如下的函数作为判别函数
这里,
为类别
发生的先验概率,
为类别
的类条件概率密度函数,而N为类别数。
设类别
,i=1,2,……,N的类条件概率密度函数
,i=1,2,……,N服从正态分布,即有
~
,那么上式就可以写为
由于对数函数为单调变化的函数,用上式右端取对数后得到的新的判别函数替代原来的判别函数
不会改变相应分类器的性能。
因此,可取
显然,上式中的第二项与样本所属类别无关,将其从判别函数中消去,不会改变分类结果。
这样,判别函数
可简化为以下形式
2.实验步骤
1、求出两类样本的均值
2、求每一类样本的协方差矩阵
式中,l代表样本在类中的序号,其中
代表
类的第l个样本,第j个特征值;
代表
类的
个样品第j个特征的平均值
代表
类的第l个样品,第k个特征值;
代表
类的
个样品第k个特征的平均值。
类的协方差矩阵为
3、计算出每一类的协方差矩阵的逆矩阵
以及协方差矩阵的行列式
4、求出每一类的先验概率
5、将各个数值代入判别函数
判别边界为
五、Bayes分类器实验结果
已知(图1)数据a=[0.37600.02400.2440-0.17400.0460-0.39400.37600.77200.26600.5080-0.4380-0.06400.81600.59600.11200.35400.8380-0.76800.4200-0.7900];其满足正态分布(图2),
1.最小错误率贝叶斯决策
图1样本数据
图2样本的类条件概率
根据最小错误率准侧,计算其后验条件概率(图3),通过程序运行出结果细胞分类结果为:
10001000000000000110,其中,0为判成正常细胞,1为判成异常细胞。
图3后验条件概率
2.最小风险贝叶斯决策
根据最小风险判别准侧,其损失函数赋值为r=[010000;20000],则计算其条件风险概率(图4)通过程序运行出结果细胞分类结果为:
11111110111101110111,其中,0为判成正常细胞,1为判成异常细胞。
图4条件风险概率
3.两类分类器结果不同原因分析
由最小错误率的贝叶斯判决和基于最小风险的贝叶斯判决得出图形中的分类结果可以看出,样本0.0240,0.2440等在前者中被分为“正常细胞”,在后者被分为“异常细胞”,分类结果不同。
因为在给予最小风险贝叶斯判决中,影响决策结果的因素多了损失r这一项,所以当结合最小风险贝叶斯决策表进行计算时,‘损失’起了主导作用,导致出现两者结果的不一致。
六、Bayes分类器程序代码
functiony=my_bayes(n,a)
%%%%%%%%%%%%%最小错误率贝叶斯决策
%构造实验数据
n=20;%样本数
a=(round(100*rand(n,1))/100)*2.2-0.9;
%样本数为n,特征数为1,数据在-0.9与1.3之间
figure
plot(1:
n,a,'rx')
xlabel('样本数');
ylabel('生化化验值');
title('样本数据:
生化化验值');
pause;
%先验概率
P=[0.90.1];
%作类条件概率密度曲线p(x|wi)
x=-0.9:
0.01:
1.3;
px(1,:
)=(1/(sqrt(2*pi)*0.3))*exp(-0.5*(x/0.3).^2);
px(2,:
)=(1/(sqrt(2*pi)*0.1))*exp(-0.5*((x-1)/0.1).^2);
figure;
plot(x,px(1,:
),'b',x,px(2,:
),'r--');
xlabel('生化化验值');
ylabel('概率密度');
title('类条件概率密度曲线')
axistight;
pause;
%作后验概率曲线
fori=1:
2
pwx(i,:
)=px(i,:
)*P(i)./(px(1,:
)*P
(1)+px(2,:
)*P
(2));
end
figure;
plot(x,pwx(1,:
),'b',x,pwx(2,:
),'r--');
xlabel('生化化验值');
ylabel('后验概率');
title('后验概率曲线')
axistight;
pause;
%计算给定生化化验值的类条件概率密度曲线
forj=1:
n
s=a(j);
PXW1=spline(x,px(1,:
),s);
PXW2=spline(x,px(2,:
),s);
PXW=[PXW1,PXW2];
disp('样本')
s
%计算后验概率,判断输出
fori=1:
2
Pwx(i)=PXW(i)*P(i)/(PXW
(1)*P
(1)+PXW
(2)*P
(2));
end
disp('后验概率P(wi|x)=')
Pwx
plot(x,pwx(1,:
),'b',x,pwx(2,:
),'r--');
xlabel('生化化验值');
ylabel('后验概率');
title('后验概率曲线')
holdon
plot(s,Pwx
(1),'or',s,Pwx
(2),'ob');
axistight;
holdoff
ifPwx
(1)>Pwx
(2)
w(j,1)=s;
disp('正常人')
else
w(j,2)=s;
disp('感染病人')
end
pause;
end
disp('========================================')
disp('正常人感染病人')
w
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%最小风险贝叶斯
n=20;%样本数
figure
plot(1:
n,a,'rx')
xlabel('样本数');
ylabel('生化化验值');
title('样本数据:
生化化验值');
pause;
%先验概率
P=[0.90.1];
%作类条件概率密度曲线p(x|wi)
x=-0.9:
0.01:
1.3;
px(1,:
)=(1/(sqrt(2*pi)*0.3))*exp(-0.5*(x/0.3).^2);
px(2,:
)=(1/(sqrt(2*pi)*0.1))*exp(-0.5*((x-1)/0.1).^2);
figure;
plot(x,px(1,:
),'b',x,px(2,:
),'r--');
xlabel('生化化验值');
ylabel('概率密度');
title('类条件概率密度曲线')
axistight;
pause;
%作后验概率曲线
fori=1:
2
pwx(i,:
)=px(i,:
)*P(i)./(px(1,:
)*P
(1)+px(2,:
)*P
(2));
end
figure;
plot(x,pwx(1,:
),'b',x,pwx(2,:
),'r--');
xlabel('生化化验值');
ylabel('后验概率');
title('后验概率曲线')
axistight;
pause;
%损失函数
r=[010000;20000];
%作条件风险曲线
fori=1:
2
R(i,:
)=r(i,1)*pwx(1,:
)+r(i,2)*pwx(2,:
);
end
figure;
plot(x,R(1,:
),'b',x,R(2,:
),'r--');
xlabel('生化化验值');
ylabel('条件风险');
title('条件风险曲线')
axistight;
pause;
%计算给定生化化验值的条件风险
forj=1:
n
s=a(j);
PXW1=spline(x,px(1,:
),s);
PXW2=spline(x,px(2,:
),s);
PXW=[PXW1,PXW2];
disp('样本')
s
%计算后验概率
fori=1:
2
Pwx(i)=PXW(i)*P(i)/(PXW
(1)*P
(1)+PXW
(2)*P
(2));
end
%计算条件风险,判断输出
fori=1:
2
Rx(i,:
)=r(i,1)*Pwx
(1)+r(i,2)*Pwx
(2);%%%%%
end
disp('条件风险R(ai|x)=')
Rx
plot(x,R(1,:
),'b',x,R(2,:
),'r--');
xlabel('生化化验值');
ylabel('条件风险');
title('条件风险曲线')
holdon
plot(s,Rx
(1),'or',s,Rx
(2),'ob');
axistight;
holdoff
ifRx
(1)>Rx
(2)
w(j,1)=s;
disp('正常人')
else
w(j,2)=s;
disp('感染病人')
end
pause;
end
disp('========================================')
disp('正常人感染病人')
w
实验四特征提取与选择
一、实验目的
通过实验加深对特征提取与选择原理、方法的认识,编写基于离散K-L变换的特征提取程序,或分支定界特征挑选算法程序,掌握离散K-L变换原理、特点。
编写基于离散K-L变换的特征提取程序。
二、实验内容
编写基于离散K-L变换的特征提取程序,主要使用主成分分析法(PCA)进行图像识别。
三、方法手段:
设n维特征矢量x=(x1,x2,…,xn)’,其均值矢量m=E[x],协方差矩阵C=E[(x-m)(x-m)’],设12…n是C的本征值,ti是i对应的本征矢量,i=1,2,…,n.x经标准正交矩阵T’=(t1,t2,…,tn)’正交变换后成为矢量y=(y1,y2,…,yn)’,即,y=T’x。
这种正交变换称为离散K-L变换(间记为DKLT)。
DKLT的性质:
(1)变换后y各分量正交或不相关;
(2)变换后y各分量的方差更趋于不均匀,可分性强于x;
(3)最佳逼近性,即,若用y的前d 当n较大时,由DKLT的性质 (2),可以用y的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模式识别 智能 信息处理 实践 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)