FISHER线性判别MATLAB实现

上传人:pu****.1 文档编号:493225281 上传时间:2022-10-20 格式:DOCX 页数:8 大小:37.15KB
返回 下载 相关 举报
FISHER线性判别MATLAB实现_第1页
第1页 / 共8页
FISHER线性判别MATLAB实现_第2页
第2页 / 共8页
FISHER线性判别MATLAB实现_第3页
第3页 / 共8页
FISHER线性判别MATLAB实现_第4页
第4页 / 共8页
FISHER线性判别MATLAB实现_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《FISHER线性判别MATLAB实现》由会员分享,可在线阅读,更多相关《FISHER线性判别MATLAB实现(8页珍藏版)》请在金锄头文库上搜索。

1、细心整理Fisher线性判别上机试验报告 班级:学号:姓名: 一 算法描述Fisher线性判别分析的根本思想:选择一个投影方向线性变换,线性组合,将高维问题降低到一维问题来解决,同时变换后的一维数据满足每一类内部的样本尽可能聚集在一起,不同类的样本相隔尽可能地远。 Fisher线性判别分析,就是通过给定的训练数据,确定投影方向W和阈值w0, 即确定线性判别函数,然后依据这个线性判别函数,对测试数据进展测试,得到测试数据的类别。 线性判别函数的一般形式可表示成 其中 Fisher选择投影方向W的原那么,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求。 如下为

2、具体步骤:1W的确定各类样本均值向量mi样本类内离散度矩阵和总类内离散度矩阵样本类间离散度矩阵在投影后的一维空间中,各类样本均值样本类内离散度和总类内离散度 样本类间离散度Fisher准那么函数为 max2阈值的确定是个常数,称为阈值权,对于两类问题的线性分类器可以接受下属决策规那么:令那么:假如g(x)0,那么决策;假如g(x)y0,那么xw1;否那么xw2。二 数据描述 1.iris数据 IRIS数据集以鸢尾花的特征作为数据来源,数据集包含150个数据集,有4维,分为3 类,每类50个数据,每个数据包含4个属性,是在数据挖掘、数据分类中非时时用的测试集、训练集。 2.sonar数据 Son

3、ar数据集包含208个数据集,有60维,分为2类,第一类为98个数据,其次类为110个数据,每个数据包含60个属性,是在数据挖掘、数据分类中非时时用的测试集、训练集。三 试验结果以及源代码 1.Iris 1代码:clccleardata=xlsread(Iris);Iris1=data(1:50,1:4);Iris2=data(51:100,1:4);Iris3=data(101:150,1:4);%类均值向量m1 = mean(Iris1);m2 = mean(Iris2);m3 = mean(Iris3); %各类内离散度矩阵s1 = zeros(4);s2 = zeros(4);s3 =

4、 zeros(4);for i=1:1:30 s1 = s1 + (Iris1(i,:) - m1)*(Iris1(i,:) - m1);endfor i=1:1:30 s2 = s2 + (Iris2(i,:) - m2)*(Iris2(i,:) - m2);endfor i=1:1:30 s3 = s3 + (Iris3(i,:) - m3)*(Iris3(i,:) - m3);end %总类内离散矩阵sw12 = s1 + s2;sw13 = s1 + s3;sw23 = s2 + s3;%投影方向w12 = (sw12-1)*(m1 - m2);w13 = (sw13-1)*(m1 -

5、 m3);w23 = (sw23-1)*(m2 - m3);%判别函数以及阈值T即w0T12 = -0.5 * (m1 + m2)*inv(sw12)*(m1 - m2);T13 = -0.5 * (m1 + m3)*inv(sw13)*(m1 - m3);T23 = -0.5 * (m2 + m3)*inv(sw23)*(m2 - m3); kind1 = 0;kind2 = 0;kind3 = 0;newiris1=;newiris2=;newiris3=;for i=31:50 x = Iris1(i,:); g12 = w12 * x + T12; g13 = w13 * x + T1

6、3; g23 = w23 * x + T23; if(g12 0)&(g13 0) newiris1=newiris1;x; kind1=kind1+1; elseif(g12 0) newiris2=newiris2;x; elseif(g13 0)&(g23 0)&(g13 0) newiris1=newiris1;x; elseif(g12 0) kind2=kind2+1; newiris2=newiris2;x; elseif(g13 0)&(g23 0)&(g13 0) newiris1=newiris1;x; elseif(g12 0) newiris2=newiris2;x;

7、elseif(g13 0)&(g23 0 newsonar1=newsonar1;x; kind1=kind1+1; else newsonar2=newsonar2;x; endendfor i=81:110 x = Sonar2(i,:); g12 = w12 * x + T12; if g12 0 newsonar1=newsonar1;x; else newsonar2=newsonar2;x; kind2=kind2+1; endendcorrect= (kind1+kind2)/58;fprintf(n综合正确率:%.2f%nn,correct*100);2试验结果: 综合正确率=75.86%

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号