Itris数据降维分类.docx
《Itris数据降维分类.docx》由会员分享,可在线阅读,更多相关《Itris数据降维分类.docx(24页珍藏版)》请在冰豆网上搜索。
![Itris数据降维分类.docx](https://file1.bdocx.com/fileroot1/2022-12/1/8c822788-805e-4d08-8726-2a16f33f48b5/8c822788-805e-4d08-8726-2a16f33f48b51.gif)
Itris数据降维分类
课程作业
课程名称:
模式识别
作业名称:
Itris数据降维分类
学生姓名:
学号:
提交时间:
2018年4月12日
一、问题重述
对Iris数据进行两个特征选取,共6种组合,计算类别可分性准则函数J值,得出最好的分类组合,画出各种组合的分布图;
使用前期作业里面的程序、对6种组合分别使用不同方法进行基于120个训练样本30个测试样本的学习误差和测试计算,方法包括:
最小距离法(均值为代表点)、最近邻法、k近邻法(k取3、5)等;
从错误率角度分析,寻找最优组合,并与基于可分性准则函数J值的判断结果对比。
使用PCA方法对4维数据进行压缩至2维,进行2维显示,并进行错误率测试。
在进行数据压缩特征选择的时候,对所有150个样本数据进行操作,处理后再划分训练和测试集合。
二、方法原理
完整的数据分类过程如下图所示:
图1数据分类过程
本次作业的重点在于特征选择与提取以及分类器的选择。
特征应该根据类别可分性准则函数值J来进行选择,J是类别可分程度的度量,J值越大,数据的可分性越好。
特征选取方法有很多,其中PCA算法是一种常用的选取方法。
PCA算法可以求出从高维度转换为低维度的最佳变换矩阵,以此实现降维处理。
本次作业选择基于类均值的最小距离法和KNN近邻法(k取1、3、5)作为分类算法。
1、类别可分性准则函数值J
类别可分性准则函数值J的计算公式如下所示
其中C为类别数,m为总样本均值,mi为某一类均值,X表示样本数据,对应算法如下所示。
%计算类别可分性准则函数J值
functionJ=Category_separability(A1,A2,A3)
A=[A1;A2;A3];
mi=[mean(A1);mean(A2);mean(A3)];
SW=0;
n
(1)=length(A1);
n
(2)=length(A2);
n(3)=length(A3);
fori=1:
n
(1)+n
(2)+n(3)
ifi<=n
(1)
a=mi(1,1);
b=mi(1,2);
elseifi>n
(1)&&i<=n
(1)+n
(2)
a=mi(2,1);
b=mi(2,2);
else
a=mi(3,1);
b=mi(3,2);
end
SW=SW+(A(i,1)-a)^2+(A(i,2)-b)^2;
end
SB=0;
m=mean(mi);
fori=1:
3
SB=SB+n(i)*((m
(1)-mi(i,1))^2+(m
(2)-mi(i,2))^2);
end
J=SB/SW;
2、PCA降维算法
图2PCA降维算法流程
%%A是输入的多维数据组,n_PCA是目标维度
functionoutput=PCA_reduction(A,n_PCA)
original=A;
[original_length]=size(original,1);
mean_original=mean(original);
fori=1:
original_length
original(i,:
)=original(i,:
)-mean_original;%平移向量
end
R=original'*original/original_length;%自相关矩阵
[V,D]=eig(R);%求特征值和特征向量,
lamda=diag(D);%特征值
[~,b]=sort(lamda,'descend');
PCA_train=V(:
b(1:
n_PCA));
output=original*PCA_train;
3、基于类均值的最小距离法
基于类均值的最小距离法思想是首先计算每类训练样本的均值点,再分别计算每个均值点到测试样本的距离,测试样本归属于距其最近的均值点所在的数据类型。
算法流程如下:
图3基于类均值的最小距离法流程图
核心程序如下:
%基于类均值的最小距离法
%A1是第一类样本,A2是第二类样本,A3是第三类样本,B是测试样本,输出output是测试样本的数据类型
functionoutput=Min_distance_3(A1,A2,A3,B,C,aType,bType)
FirstTrain=A1;
SecondTrain=A2;
ThirdTrain=A3;
Study=B;
BType=C;
%求训练样本均值
Mean=[mean(FirstTrain);mean(SecondTrain);mean(ThirdTrain)];
%基于类均值的最小距离法
StudyType=zeros(1,size(Study,1));%判别结果
fori=1:
size(Study,1)
[~,m]=min(pdist2(Study(i,:
),Mean));%求最小距离
StudyType(i)=m;
end
output=StudyType;
4、KNN近邻法
KNN近邻法源自近邻法。
KNN近邻法不再单单寻找距测试样本最近的一个点,而是寻找距其最近的K个点,然后按这K个点类型确定测试样本的类型。
判断原则往往是少数服从多数。
算法流程如下:
图4KNN近邻法流程图
将最近邻法和KNN近邻法写作一个函数,通过参数k的选取进行不同近邻法的切换,核心程序如下:
%k近邻法
%A1是第一类样本,A2是第二类样本,A3是第二类样本,B是测试样本
%k表示选择k近邻法,可取1、3、5...
%输出output是测试样本的数据类型
functionoutput=NearestNeighbor_kNN_3(A1,A2,A3,B,C,k,aType,bType)
FirstTrain=A1;
SecondTrain=A2;
ThirdTrain=A3;
Study=B;
BType=C;
%编码
First=size(FirstTrain,1);
Second=First+size(SecondTrain,2);
Third=Second+size(ThirdTrain,2);
Train=[FirstTrain;SecondTrain;ThirdTrain];
%判别结果
StudyType=zeros(1,size(Study,1));
%kNN近邻法
mink_point=zeros(size(Study,1),k);
label=zeros(1,k);
fori=1:
size(Study,1)
S_distance=pdist2(Study(i,:
),Train);
[~,m]=sort(S_distance,'ascend');
mink_point(i,:
)=m(1:
k);
forj=1:
k
ifmink_point(i,j)<=First
label(j)=1;
elseifmink_point(i,j)>First&&mink_point(i,j)<=First+Second
label(j)=2;
elseifmink_point(i,j)>First+Second&&mink_point(i,j)<=First+Second+Third
label(j)=3;
end
end
countW=tabulate(label);%tabulate可以输出每个值的频率
[percent,value]=max(countW(:
3));
ifpercent>50%出现次数最多的值的频率,%
StudyType(i)=countW(value,1);
end
end
output=StudyType;
特别的k取1即为最近邻法。
三、解决结果
1、组合分布图
Iris数据有四种特征,任取两种特征构成六种组合,现将六种组合以二维图形的形式展现于下方。
图5特征1,2样本分布图
图6特征1,3样本分布图
图7特征1,4样本分布图
图8特征2,3样本分布图
图9特征2,4样本分布图
图10特征3,4样本分布图
图11PCA降维后样本二维分布图
表1不同特征值下类别可分性准则值J
特征组合
(1,2)
(1,3)
(1,4)
(2,3)
(2,4)
(3,4)
PCA
J
1.2599
7.2627
2.9332
10.1236
3.8458
15.3779
7.5344
结合以上几张分布图,可以发现对于同样的数据,选取不同特征值,样本的二维分布情况明显不同,相应的可分性准则值J也差别很大。
J值越大,不同类样本的区分度越大。
PCA降维可以很好的将高维度的数据将为有明显区分度的低维度数据,但是结合表格也可以发现,PCA降维后的J值并不一定小于任选两个特征所组成的二维样本数据。
六组特征组合样本数据利用基于类均值的最小距离法、最近邻法、3NN近邻法、5NN近邻法进行分类,得到的分类结果如下所示。
2、基于类均值的最小距离法分类结果
图12含特征1、2的样本最小距离法分类结果
图13含特征1、3的样本最小距离法分类结果
图14含特征1、4的样本最小距离法分类结果
图15含特征2、3的样本最小距离法分类结果
图16含特征2、4的样本最小距离法分类结果
图17含特征3、4的样本最小距离法分类结果
图18PCA降维后的最小距离分类结果
3、近邻法分类结果
图19含特征1、2的样本近邻法分类结果
图20含特征1、3的样本近邻法分类结果
图21含特征1、4的样本近邻法分类结果
图22含特征2、3的样本近邻法分类结果
图23含特征2、4的样本近邻法分类结果
图24含特征3、4的样本近邻法分类结果
图25PCA降维后的样本近邻法分类结果
3、3NN近邻法分类结果
图26含特征1、2的样本3NN近邻法分类结果
图27含特征1、3的样本3NN近邻法分类结果
图28含特征1、4的样本3NN近邻法分类结果
图29含特征2、3的样本3NN近邻法分类结果
图30含特征2、4的样本3NN近邻法分类结果
图31含特征3、4的样本3NN近邻法分类结果
图32PCA降维后样本3NN近邻法分类结果
4、5NN近邻法
图33含特征1、2的样本5NN近邻法分类结果
图34含特征1、3的样本5NN近邻法分类结果
图35含特征1、4的样本5NN近邻法分类结果
图36含特征2、3的样本5NN近邻法分类结果
图37含特征2、4的样本5NN近邻法分类结果
图38含特征3、4的样本5NN近邻法分类结果
图39PCA降维后的样本5NN近邻法分类结果
表2不同特征值及PCA降维分类结果
特征组合
J
学习错误率(%)
测试错误率(%)
最小距离
最近邻法
3NN近邻
5NN近邻
最小距离
1NN近邻
3NN近邻
5NN近邻
(1,2)
1.2599
23.33
4.17
15.83
17.5
13.33
36.67
36.67
30.00
(1,3)
7.2627
11.67
3.33
3.33
4.17
10.00
16.67
6.67
3.33
(1,4)
2.9332
15.83
4.17
4.17
4.17
13.33
6.67
6.67
3.33
(2,3)
10.1236
8.33
2.50
5.83
5.83
3.33
16.67
10.00
3.33
(2,4)
3.8458
7.50
5.00
5.00
5.00
0
6.67
3.33
3.33
(3,4)
15.3779
5.00
3.33
2.50
4.17
0
10.00
3.33
3.33
PCA
7.5344
10.00
1.67
1.67
1.67
6.67
6.67
6.67
3.33
5、错误率随J变化情况
图40学习错误率随类别可分性准则函数值J变化情况
图41测试错误率随类别可分性准则函数值J变化情况
结合表2观察上述两张曲线,有以下几点发现:
(1)各种分类方法的学习错误率、测试错误率均是随着J值得增长呈整体下降趋势,但是局部位置会出现反弹。
这说明适当的增大J可以一定程度上降低错误率,但并不是J取值越大,错误率一定越小。
此外,观察曲线可以发现,错误率最低的点并不是J取值最大的点。
(2)PCA降维在增大J得同时,会明显的降低分类错误率,这一可以从曲线在J=7.5344(PCA降维后的J值)处骤降可以体现出来。
(3)KNN近邻法(K=1,3,5)中,增大K的取值,可以降低学习错误率,但会增大测试错误率。