一. 题目。
对sonar和wdbc中数据(如表1所示)进行分类,并将实验结果填入表2。不降维方法用邻近法,降维用fisher判别:
表1 实验数据。
表2实验结果(准确率)
二.fisher线性判别法。
fisher线性判别分析的基本思想:通过寻找一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,并且要求变换后的一维数据具有如下性质:同类样本尽可能聚集在一起,不同类的样本尽可能地远。
fisher线性判别分析,就是通过给定的训练数据,确定投影方向w和阈值y0,即确定线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。
1 基本原理。
1)w的确定。
各类样本均值向量mi
样本类内离散度矩阵和总类内离散度矩阵。
样本类间离散度矩阵。
在投影后的一维空间中,各类样本均值。样本类内离散度和总类内离散度。样本类间离散度。
fisher准则函数满足两个性质:
投影后,各类样本内部尽可能密集,即总类内离散度越小越好。
投影后,各类样本尽可能离得远,即样本类间离散度越大越好。
根据这个性质确定准则函数,根据使准则函数取得最大值,可求出w:。
2)阈值的确定。
实验中采取的方法:。
3)fisher线性判别的决策规则。
对于某一个未知类别的样本向量x,如果y=wt·x>y0,则x∈w1;否则x∈w2。
2. fisher线性判别实验流程图。
data=importdata('d:\'
data1=
clear data;
data=data1;
clear data1;
a(98,60)=0;
b(110,60)=0;
count1=1;
count2=1;
for i=1:208
if data(i,61)==1
a(count1,:)data(i,1:60);
count1=count1+1;
elseb(count2,:)data(i,1:60);
count2=count2+1;
endend
clear count1 count2 i
m1(1,60)=0;
m2(1,60)=0;
s1(60,60)=0;
s2(60,60)=0;
for i=1:49
m1=m1+a(i,:)
endfor i=1:55
m2=m2+b(i,:)
endm1=m1/49;
m2=m2/55;
m1=m1';
m2=m2';
for i=1:49
s1=s1+(a(i,:)m1)*(a(i,:)m1)';
endfor i=1:55
s2=s2+(b(i,:)m2)*(b(i,:)m2)';
endsw=s1+s2;
w=inv(sw)*(m1-m2);
w0=(w'*m1+w'*m2)/2;
y1(1,49)=0;
y2(1,55)=0;
for i=1:49
y1(1,i)=w'*a(49+i,:)
endfor i=1:55
y2(1,i)=w'*b(55+i,:)
endcount1=0;
count2=0;
for i=1:49
if y1(1,i)>w0
count1=count1+1;
endend
for i=1:55
if y2(1,i)count2=count2+1;
endend
这里选取了类别1的前49组和类别2的前55组做训练样本,选取类别1的后49组和类别2的后55组做测试样本。通过计算得到的准确率为65.38%。
于是再随机抽取类别1的49组合类别2的55组做训练样本,而把剩余的作为测试样本,得到的准确率分别为:69.23%,76.
92%,81.73%,81.73%。
求其平均得到的准确率为:75%。
d=importdata('d:\'
data=count1=1;
count2=1;
data1(357,30)=0;
data2(212,30)=0;
for i=1:569
if strcmp('m')
data2(count2,:)data(i,:)
count2=count2+1;
elsedata1(count1,:)data(i,:)
count1=count1+1;
endend
clear count1 count2 d i
clear data;
sample1(250,30)=0;
sample2(150,30)=0;
test1(107,30)=0;
test2(62,30)=0;
for i=1:357
if i<=250
sample1(i,:)data1(i,:)
elsetest1(i-250,:)data1(i,:)
endend
for i=1:212
if i<=150
sample2(1,:)data2(i,:)
elsetest2(i-150,:)data2(i,:)
endend
m1(1,30)=0;
m2(1,30)=0;
for i=1:250
m1=m1+sample1(i,:)
endm1=m1';
m1=m1/250;
for i=1:212
if i<=150
sample2(i,:)data2(i,:)
elsetest2(i-150,:)data2(i,:)
endend
m2(1,30)=0;
for i=1:150
m2=m2+sample2(i,:)
endm2=m2';
m2=m2/150;
s1(30,30)=0;
s2(30,30)=0;
for i=1:250
s1=s1+(sample1(i,:)m1)*(sample1(i,:)m1)';
endfor i=1:150
s2=s2+(sample2(i,:)m2)*(sample2(i,:)m2)';
endsw=s1+s2;
w=inv(sw)*(m1-m2);
y1(1,107)=0;
y2(1,62)=0;
for i=1:107
y1(1,i)=w'*test1(i,:)
endfor i=1:62
y2(1,i)=w'*test2(i,:)
endw0=(w'*m1+w'*m2)/2;
count1=0;
count2=0;
for i=1:107
if y1(1,i)>w0
count1=count1+1;
endend
for i=1:62
if y2(1,i)count2=count2+1;
endend
这里选取了类别1的前250组和类别2的前150组做训练样本,选取类别1的后107组和类别2的后62组做测试样本。通过计算得到的准确率为97.63%。
于是再随机抽取类别1和类别2的训练样本,而把剩余的作为测试样本,做2次测试。得到的准确率分别为:95.
98%,96.24%
求其平均得到的准确率为:96.62%。
三.最近邻法。
1.算法简介。
最近邻法。设有c个类别的模式识别问题,每类有标明类别的样本ni个,i=1, 2, …c。
规定i类的判别函数为:
式中,表示i类样本集中第k个样本。
最近邻决策规则可以写为:若,则决策xj
2. 邻近法分类流程图。
data=importdata('d:\'
a(98,60)=0;
b(110,60)=0;
data1=
clear data;
data=data1;
clear data1;
count1=1;
count2=1;
for i=1:208
if data(i,61)==1
a(count1,:)data(i,1:60);
else end
endfor i=1:208
if data(i,61)==1
a(count1,:)data(i,1:60);
count1=count1+1;
elseb(count2,:)data(i,1:60);
count2=count2+1;
endend
clear count1 count2 i;
sample1=a(11:59,:)
sample2=b(11:65,:)
sample=[sample1',sample2'];
test1(49,60)=0;
test1(1:10,:)a(1:10,:)
test1(11:49,:)a(60:98,:)
test2(55,60)=0;
test2(1:10,:)b(1:10,:)
test2(11:55,:)b(66:110,:)
test=[test1’,test2’];
weight=zeros(104,104);
for i=1:104
for j=1:104
for m=1:60
weight(i,j)=weight(i,j)+(test(m,j)-sample(m,i))^2;
if m==60
weight(i,j)=weight(i,j)^(1/2);
endend
endend
a,b]=min(weight);
c1=0;c2=0;
clear i j m
for k=1:49
if b(k)<=49
c1=c1+1;
endend
for k=50:104
if b(k)>49
c2=c2+1;
endend
这里选类别1的11到59组,类别2的11到65组做测试样本。剩余的作为训练样本,通过计算得出准确率为85.58%。
然后再随机抽取类别1的49组合类别2的55组做训练样本,剩余的作为各组的测试样本,做4组测试,得到的准确率分别为:83.32%,82.
69%,81.73%,80.77%。
模式识别大作业
一。问题重述。利用fisher线性判别法和最近邻算法对sonar数据进行分类,并得出正确率。二。fisher线性判别法思路。用训练样本求出d维空间到一维空间的投影方向w,进而求出样本均值,进而可求出阈值t,带入测试样本得到投影点y,将y与t相比,即可进行分类判别。2.1 fisher准则函数中的基本...
模式识别大作业
作业1 用身高和 或体重数据进行性别分类 一 基本要求 用和的数据作为训练样本集,建立bayes分类器,用测试样本数据对该分类器进行测试。调整特征 分类器等方面的一些因素,考察它们对分类器性能的影响,从而加深对所学内容的理解和感性认识。具体做法 1 应用单个特征进行实验 以 a 身高或者 b 体重数...
模式识别大作业
iris数据聚类分析。c均值和模糊c均值。1 问题描述。iris数据集包含150个数据,共有3类,每一类有50个数据,其每个数据有四个维度,每个维度代表鸢尾花特征 萼片,花瓣的长度 中的一个,其三类数据名称分别setosa,versicolor,virginica,这些就是 iris数据集的基本特征...