模式识别使用Fish分类算法和感知器分类算法——Fisher线性判别算法

挂一下之前的数据集准备工作的链接

模式识别使用Fish分类算法和感知器分类算法——数据集可视化和特征选择_qq_45709176的博客-CSDN博客一、数据集简介本次实验所选取的数据集为:CORK_STOPPERS.xls数据集,即软木塞数据集。该数据即可在《模式识别》第三版书中的链接下载,也可在我的主页内下载。下图为本数据集的说明页:下图为数据集的数据页:该数据集共有150个数据,每个数据由编号、类别以及10个特征值(如ART 、PRT等)组成。该数据集比较均匀,是一个三分类的数据集,每一类均有50个数据,编号1~50、51~100、100~150分别对应软木塞为高质量、中等质量和低质量的数据。二、数据集可视.https://blog.csdn.net/qq_45709176/article/details/123300236?spm=1001.2014.3001.5502从之前的分析中,可以先采用线性分类器对数据集进行分类。

当时老师正讲到Fisher线性判别,故采用了这种方法分类数据集

Fisher线性判别的基本原理是:找到一个最合适的投影轴,使两类样本在该轴上投影直接的距离尽可能远,而每一类样本的投影尽可能紧凑,从而使分类效果最佳。

其主要的步骤是:

1、计算各类的类内样本均值

2、计算样本类内离散度和总类内离散度

3、计算样本垒间离散度

4、计算投影方向。

对于Fisher线性分类具体的内容,请看站内大佬的博客,当时做这个大作业时,也是参考了大佬的文章:

机器学习笔记之(4)——Fisher分类器(线性判别分析,LDA)_gwpscut的博客-CSDN博客_fisher线性判别

fisher线性判别分类器(matlab实现)

(1)、使用xlsread读取数据集后对数据集进行简要的处理:

  1. 数据清洗。去除数据集第一列编号和第二列类别,剩余的10列均为特征数据。
  2. 特征选择。去除样本数据的第二和第十特征。

(2)、数据集划分:按照8:2的比例划分训练集和测试集,即训练集120个,测试集30个。在划分数据集时为使结果更精确,采用随机划分的方式,每一类中产生50个随机数序列,前40个随机数作为训练集的编号,后10个数作为测试集的编号,按照编号选择数据。

(3)、计算均值向量、各离散度矩阵:

本数据集分三类,故分三类计算均值向量m1、m2、m3,后再计算三类样本的离散度矩阵s1、s2、s3,总类内离散度sw12、sw13、sw23 。

(4)、计算各类的投影方向和判别函数的阈值

根据以上的计算结果求各类投影方向w12、w13、w23和判别函数阈值T1、T2、T3 。

(5)、测试集检验:

根据上述过程得到的投影方向和阈值,可以得到判别函数,根据判别函数判断测试集的分类结果,还原测试集原来的类别后与分类结果比较,计算分类正确率。进行多次重复实验看每次实验的正确率。

分类结果:

Fisher线性判别算法的分类结果如下:

未进行特征选择时,进行一百次重复实验,平均正确率为0.893333;进行特征选择后,同样进行一百次重复实验,平均正确率为0.885000。

在特征选择前后的平均正确率虽然下降了些,但两个正确率差距非常小可以忽略不计,同时这也验证了之前的特征选择是正确的,删去的两个特征,特征数据从十维降低到八维,降低了计算的复杂度的同时分类结果几乎不受影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值