使用matlab完成对鸢尾花数据集的特征选择、主成分分析(PCA)、核主成分分析(KPCA)、线性判别分析(LDA)的若干处理

累了,不多写,详见注释,代码自取,有用点赞
链接:https://pan.baidu.com/s/1OI6vTiz_7lOxUO871wOlnA?pwd=qb6r
提取码:qb6r

特征选择:
将每个特征在封装函数内调用,使用matlab自带的梯度下降的神经网络内置函数进行训练。使用全部的数据集作为输入,并任选其中的30条数据进行测试,测试结果存在一定的随机性,但可以对该特征的分类效果有个初步的判断。
运行select.m文件,调用Feature_Selection函数,可以得到以下结果,函数具体说明如下:

function Feature_Selection(Sepal_Length_1,Sepal_Width_1,Petal_Length_1,Petal_Width_1)%如果需要用到该特征,将对应位置1,否则置零

运行结果:

select
Feature_Selection is 1 1 1 1
correction is 97%
Feature_Selection is 1 1 1 0
correction is 80%
Feature_Selection is 1 1 0 1
correction is 80%
Feature_Selection is 1 0 1 1
correction is 90%
Feature_Selection is 0 1 1 1
correction is 93%
Feature_Selection is 1 1 0 0
correction is 77%
Feature_Selection is 1 0 1 0
correction is 97%
Feature_Selection is 0 1 1 0
correction is 93%
Feature_Selection is 1 0 0 1
correction is 83%
Feature_Selection is 0 1 0 1
correction is 90%
Feature_Selection is 0 0 1 1
correction is 77%
Feature_Selection is 1 0 0 0
correction is 73%
Feature_Selection is 0 1 0 0
correction is 30%
Feature_Selection is 0 0 1 0
correction is 97%
Feature_Selection is 0 0 0 1
correction is 93%

LDA
对于鸢尾花数据集中的四个特征进行类内散度与类间散度的计算并进行散度矩阵的特征值分解,这里选取特征值最大的两个特征向量做投影,输出结果如图所示:
使用matlab完成对鸢尾花数据集的特征选择、主成分分析(PCA)、核主成分分析(KPCA)、线性判别分析(LDA)的若干处理_第1张图片

可以看到有较好的分类效果

PCA
对输入特征进行归一化,计算协方差矩阵,并计算特征值与特征向量,选择特征向量最大的方向做投影并绘制散点图
使用matlab完成对鸢尾花数据集的特征选择、主成分分析(PCA)、核主成分分析(KPCA)、线性判别分析(LDA)的若干处理_第2张图片

分类效果比LDA略差

KPCA
分别使用线性核、多项式核、高斯核对其进行仿真
线性核
使用matlab完成对鸢尾花数据集的特征选择、主成分分析(PCA)、核主成分分析(KPCA)、线性判别分析(LDA)的若干处理_第3张图片

指数为1的多项式核
使用matlab完成对鸢尾花数据集的特征选择、主成分分析(PCA)、核主成分分析(KPCA)、线性判别分析(LDA)的若干处理_第4张图片

指数为2的多项式核
使用matlab完成对鸢尾花数据集的特征选择、主成分分析(PCA)、核主成分分析(KPCA)、线性判别分析(LDA)的若干处理_第5张图片

指数为3的多项式核
使用matlab完成对鸢尾花数据集的特征选择、主成分分析(PCA)、核主成分分析(KPCA)、线性判别分析(LDA)的若干处理_第6张图片

指数为4的多项式核
使用matlab完成对鸢尾花数据集的特征选择、主成分分析(PCA)、核主成分分析(KPCA)、线性判别分析(LDA)的若干处理_第7张图片

高斯核

使用matlab完成对鸢尾花数据集的特征选择、主成分分析(PCA)、核主成分分析(KPCA)、线性判别分析(LDA)的若干处理_第8张图片

可以看出,对于鸢尾花数据集,使用高斯核和线性核的效果明显优于高次多项式核的分类效果

你可能感兴趣的:(matlab,机器学习,算法)