【模式识别原理】matlab鸢尾花分类中进行PCA特征提取,降维。

实验五 PCA特征提取

主成分分析(PCA)是常用的特征降维方法。实验目的在于加深学生对PCA原理的理解,通过实际的数据处理掌握PCA的处理流程、验证PCA的性质,体会其在模式识别中的作用。

1实验原理

PCA是寻求方差最大的投影方向对原始数据进行变换,得到一组相互之间不相关的新特征。投影方向可取样本数据协方差矩阵的特征向量,各特征向量的重要程度利用其对应的特征值来衡量。

变换形式为y=WT x,

,变换矩阵W由样本协方差矩阵的特征向量构成。可更改构成变换矩阵的向量个数,从而得到不同数量的特征,实现特征降维。

2实验内容

利用Iris数据集进行实验。该数据集以鸢尾花的特征作为数据来源,由3种不同类型的鸢尾花的50个样本数据构成。

样本特征(属性):

Sepal.Length(花萼长度),单位是cm;

Sepal.Width(花萼宽度),单位是cm;

Petal.Length(花瓣长度),单位是cm;

Petal.Width(花瓣宽度),单位是cm;

种类:Iris Setosa(山鸢尾)、Iris Versicolour(杂色鸢尾)、Iris Virginica(维吉尼亚鸢尾)。

鸢尾花数据的特征维数是4,利用PCA进行降维、结合最近邻法完成分类。

3实验要求

  1. 利用最近邻法针对Iris原始特征进行分类;

三类模式,四维特征

代码: clc;clear;close all

clc;clear

load Iris;

X = Iris(2:5,:);

S=cov(X');

[V,D]=eig(S);

分类结果:77f57806070c4b1d8d5c80bcc63260ed.jpeg

2利用PCA进行数据降维、再用最近邻法分类;

代码:

%ÆäËûʵÏÖ·½Ê½

% % % X_D = X - repmat(mean(X,2),1,size(X,2));

% % % [V1,D1]=eig(X_D*X_D');

% % %

% % % %ÖÐÐÄ»¯ºóµÄÑù±¾Êý¾Ý

% % % [UU,SS,VV] = svd(X_D);

lamda = diag(D);

lamda = flipud(lamda);

V=fliplr(V);

W=V(:,1:4);

y = W'*X;

Xr = W*y;

Sy=cov(y');

figure(1);hold on;

plot(y(1,1:50), y(2,1:50),'r*');

plot(y(1,51:100), y(2,51:100),'g+');                       

plot(y(1,101:150), y(2,101:150),'bs');

ea740aa54f4a400e8d459cf13ad0c716.jpeg

3针对原始特征和变换之后的新特征,更改用参与分类的特征分量、比较结果。

代码:

% figure(2);hold on;

% plot(X(3,1:50), X(1,1:50),'r*');

% plot(X(3,51:100), X(1,51:100),'g+');

% plot(X(3,101:150), X(1,101:150),'bs');

figure(2);

subplot(2,2,1); d=1; hold on;

plot(y(d,1:50), ones(1,50),'r*');

plot(y(d,51:100),ones(1,50),'g+');

plot(y(d,101:150), ones(1,50),'bs');

subplot(2,2,2); d=2; hold on;

plot(y(d,1:50), ones(1,50),'r*');

plot(y(d,51:100),ones(1,50),'g+');

plot(y(d,101:150), ones(1,50),'bs');

subplot(2,2,3); d=3; hold on;

plot(y(d,1:50), ones(1,50),'r*');

plot(y(d,51:100),ones(1,50),'g+');

plot(y(d,101:150), ones(1,50),'bs');

subplot(2,2,4); d=4; hold on;

plot(y(d,1:50), ones(1,50),'r*');

plot(y(d,51:100),ones(1,50),'g+');

plot(y(d,101:150), ones(1,50),'bs');

结果

c7e554135aff40bb90f9ab94b446ba52.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值