版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、 实验目的设计分类器,要求分类器导入数据后,通过选择分类目标,自动随机将数据表分为训练集和测试集,训练集用于训练分类器的参数,测试集用于测试分类器的性能。二、 实验原理1. Fisher线性判别线性判别函数为y = g(x) = wTx其中x表示样本,w表示投影方向,如果| w |=1,则视作向量x在向量w上的投影。Fisher准则的基本原理为:找到一个最合适的投影方向,使两类样本在该方向上投影之间的距离尽可能远,而每一类样本的投影尽可能紧凑,从而使分类效果为最佳。 因此我们希望投影后,在一维空间中样本类别区分清晰,即两类距离越大越好,也就是类间离散度越大越好;各类样本内部密集,即类内离散
2、度越小越好,根据上述准则,来构造Fisher准则函数:其中s1、s2为样本类内离散度,sb为样本类间离散度,m1、m2为样本均值。Fisher最佳投影方向的求解:采用拉格朗日乘子算法得:该式这种形式的运算,我们称为线性变换,其中是一个向量,是的逆矩阵,Sw是总类内离散度,Sw=S1+S2。向量是使Fisher准则函数达到极大值的解,也就是按Fisher准则将X空间投影到一维空间的最佳投影方向,该向量的各分量值是对原特征向量求加权和的权值。由于变换后的模式是一维的,因此判别界面实际上是各类模式所在轴上的一个点,所以可以根据训练模式确定一个阈值yt,于是Fisher判别规则为:当yt确定之后,则可
3、按以下规则进行分类,2. Fisher算法实现步骤(1) 把来自两类样本的训练集X分成两个子集X1和X2;(2) 由 计算mi。(3) 由 计算各类的类内离散度矩阵; (4) 计算类内总离散度矩阵Sw=S1+S2;(5) 计算Sw的逆矩阵Sw-1;(6) 根据 求W;(7) 求 mi=w*mi ;(8) 求 ;(9) 根据分类规则分类,并计算正确率。三、 实验结果1. high_met用于分类高级别胶质和转移瘤数据,包含两个特征参数:Lipids/Cr+PCr和NAA+NAAG/Cr+PCr,分别用X1和X2表示。高级别胶质为high类型(类别1),转移瘤为met类型(类别2)。原始样本集有4
4、4个点,其中26个high类,18个met类。由图1可以看出Fisher线性分类器可以很好的区分出测试集中的两类数据,正确率很高,达到了100%,重复运行发现正确率不会低于90%。图1 图22. low_high用于分类低级别和高级别胶质数据,包含两个特征参数:Lac/Cr+PCr和Lipids/Cr+PCr,分别用X1和X2表示。低级别胶质为low类型(类别1),高级别胶质为high类型(类别2)。原始样本集有116个点,其中75个low类,41个high类。由图3可以看出Fisher线性分类器基本上可以区分出测试集中的两类数据,但是也存在分错的情况。这两类数据在原点附近比较接近,因此Fis
5、her算法分类正确率并不是很高。经过多次测试发现,当训练样本类别1选中的个数与类别2选中的个数之差增大时,分类正确率会下降,说明正确率的大小与选择训练的数据有关;但是也存在不满足规律的情况,比如差值为16时,一次实验正确率为86%,一次为91%。 图3图43. low_high_rcbv用于分类低级别和高级别胶质数据,包含两个特征参数: Lipids/Cr+PCr和rCBV,分别用X1和X2表示。低级别胶质为low类型(类别1),高级别胶质为high类型(类别2)。原始样本集有81 个点,其中48 个low类,33个high类。同样地,图5显示出Fisher算法良好的分类效果,多次测试时发现两
6、类别被选中的个数差异太大时,分类正确率会下降。图5图64. low_met用于分类低级别胶质和转移瘤数据,包含两个特征参数:Lac/Cr+PCr和Lipids/Cr+PCr,分别用X1和X2表示。低级别胶质为low类型(类别1),转移瘤数据为met类型(类别2)。原始样本集有44 个点,其中26 个low类,18个met类。由于肉眼观察原始数据图可分性比较强,用Fisher算法分类的正确率也很高。图7图85. normal_high用于分类正常和高级别胶质数据,包含两个特征参数:GPC+PCh/Cr+PCr和NAA+NAAG/Cr+PCr,分别用X1和X2表示。正常数据为normal类型(类别
7、1),高级别胶质为high类型(类别2)。原始样本集有146 个点,其中92 个normal类,54个high类。图9中两类样本可以被一条直线区分开,应用Fisher线性判别可以顺利区分。图9图106. normal_low 用于分类正常和低级别胶质数据,包含两个特征参数:GPC+PCh/Cr+PCr和NAA+NAAG/Cr+PCr,分别用X1和X2表示。正常数据为normal类型(类别1),低级别胶质为low类型(类别2)。原始样本集有167个点,其中92 个normal类,75个low类。图11中纵坐标为2附近两类样本区别度很小,因此应用Fisher线性判别的正确率时高时低,基本上大于80
8、%。图11图127. normal_met用于分类正常和转移瘤数据,包含两个特征参数:GPC+PCh/Cr+PCr和NAA+NAAG/Cr+PCr,分别用X1和X2表示。正常数据为normal类型(类别1),转移瘤为met类型(类别2)。原始样本集有43个点,其中25 个normal类,18个met类。图中的两类样本有一些点距离很近,当这些点被选为训练集时得到的分类正确率相应变低。图13图148. normal_met_lip 用于分类正常和转移瘤数据,包含两个特征参数:GPC+PCh/Cr+PCr和Lipids/Cr+PCr,分别用X1和X2表示。正常数据为normal类型(类别1),转移瘤
9、为met类型(类别2)。原始样本集有47个点,其中29个normal类,18个met类。从图15可以看出,两类样本点的分布地区间隔较大,分类正确率接近或等于100%,显示出Fisher算法的良好区分性能。图15图16四、 源代码clc;%清屏clear();%清内存%xlsread读取excel文件,第二个参数表示读取的数据内容范围%data表示要分类的数据表%type数字化类别标签data=input(请输入要分类的文件名(不需要后缀):,s);%导入low_high.xlsx文件if strcmp(data,high_met) oradat,label=xlsread(C:Userslen
10、ovoDesktop磁共振实验数据及说明high_met.xlsx,B2:D45); type = high; elseif strcmp(data,low_high) oradat,label=xlsread(C:UserslenovoDesktop磁共振实验数据及说明low_high.xlsx,B2:D117); type = low; elseif strcmp(data,low_high_rcbv) oradat,label=xlsread(C:UserslenovoDesktop磁共振实验数据及说明low_high_rcbv.xlsx,B2:D82); type= low; else
11、if strcmp(data,low_met) oradat,label=xlsread(C:UserslenovoDesktop磁共振实验数据及说明low_met.xlsx,B2:D45); type = low; elseif strcmp(data,normal_high) oradat,label=xlsread(C:UserslenovoDesktop磁共振实验数据及说明normal_high.xlsx,B2:D147); type = normal;elseif strcmp(data,normal_low) oradat,label=xlsread(C:UserslenovoDe
12、sktop磁共振实验数据及说明normal_low.xlsx,B2:D168); type = normal; elseif strcmp(data,normal_met) oradat,label=xlsread(C:UserslenovoDesktop磁共振实验数据及说明normal_met.xlsx,B2:D44); type = normal;elseif strcmp(data,normal_met_lip) oradat,label=xlsread(C:UserslenovoDesktop磁共振实验数据及说明normal_met_lip.xlsx,B2:D48); type = n
13、ormal;end%size得到行数row,=size(oradat);tlabel = zeros(row,1);% strcmp比较两个字符串,把数据类别为type类型的标为0,另一类标为1for i=1:size(label) if strcmp(label(i),type) tlabel(i)=0; else tlabel(i)=1; endenddat = oradat,tlabel;%形成三列矩阵data = strrep(data,_,_);%让下划线在图中显示为下划线subplot(1,2,1);%将两张图整合在一张图上%控制横纵坐标范围axis(0 ceil(max(orad
14、at(:,1) 0 ceil(max(oradat(:,2);hold on;title(data,原数据分布图);xlabel(x1); ylabel(x2);hold on;for i=1:row if dat(i,3)=0 %r表示红色,+表示绘画出来的图标 plot(dat(i,1),dat(i,2),+r); hold on; else %b表示蓝色 plot(dat(i,1),dat(i,2),ob); hold on; endend%生成1-row乱序的向量rad-利用函数randperm%用来随机取数据row,col=size(dat);rad=randperm(row);%e
15、xercise-随机选择一半作为训练集%ceil向上取整%zeros(n,m),表示生成n*m值为0的矩阵exercise = zeros(ceil(row/2),col);test = zeros(row -ceil(row/2),col);%获得随机数训练集for i=1:ceil(row/2) exercise(i,:)=dat(rad(i),:);end%text-另一半作为测试集for i=ceil(row/2)+1:row test(i-ceil(row/2),:)=dat(rad(i),:);end%-得到训练集的数据量exrow, = size(exercise);subplo
16、t(1,2,2);%控制横纵坐标范围axis(0 ceil(max(oradat(:,1) 0 ceil(max(oradat(:,2);hold on;title(data,训练集及测试集图);xlabel(x1); ylabel(x2);hold on;%将训练数据在图中表示出来 for i=1:exrow if exercise(i,3)=0 plot(exercise(i,1),exercise(i,2),+r); hold on; else plot(exercise(i,1),exercise(i,2),ob); hold on; end end%训练集中分为类别exesort1和
17、类别exesort2这两类数据%得到类别为0的个数num1num1 =sum(exercise(:,3)=0);%-fisher算法开始-%创建类别1变量矩阵num1*(col-1)exesort1=zeros(num1,col-1);exesort2=zeros(exrow-num1,col-1);j=1;k=1;for i=1:exrow if exercise(i,col)=0 exesort1(j,:)=exercise(i,1:col-1); j=j+1; else exesort2(k,:)=exercise(i,1:col-1); k=k+1; endend%类别1的样本均值向量
18、m1m1=(1/num1)*sum(exesort1(:,:);%类别2的样本均值向量m2m2=(1/(exrow-num1)*sum(exesort2(:,:);s1=zeros(2,2);s2=zeros(2,2);%类别1类内离散度矩阵s1for i=1:num1 s1=s1+(exesort1(i,:)-m1)*(exesort1(i,:)-m1);end%类别2类内离散度矩阵s2for i=1:exrow-num1 s2=s2+(exesort2(i,:)-m2)*(exesort2(i,:)-m2);end%总的类内离散度矩阵swsw=s1+s2;%求出fisher分类器线性判别函
19、数的权值ww=sw(m1-m2);%inv(sw)*b;%计算区分的值y,首先计算mi1,mi2mi1=m1*w;mi2=m2*w;%y0为得到的区分值y0=1/2*(mi1+mi2);%利用test进行分类%test是三维数据,1和2是特征值,3是对应的类别。%求映射值yt_row,t_col=size(test);y=test(:,1:t_col-1)*w;%y=wx for i=1:t_row if(y(i)y0) test(i,4)=0; else test(i,4)=1; endend %把利用分类器分出来的数据画上(测试集)%test(:,3)第三列为实际类别,test(:.4)第四列为分类器得出的类别for i=1:t_row if test(i,4)=0 plot(test(i,1),test(i,2),*k); hold on; else plot(test(i,1),test(i,2),dg); hold on; endend%画分界线,根据x1*w(1,1)+x2*w(2,1)=y0x1=0:0.01:max(oradat(:,1);x2=(-x1*w(1,1)+y0)/w(2,1);plot(x1,x2,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026奢侈品手表行业品牌建设产品工艺市场消费生成未来趋势投资潜能规划分析报告
- 2026中国健身镜交互技术专利布局与市场竞争格局预测
- 江苏省仪征市第三中学2027届化学九上期末考试模拟试题含解析
- 2026中国洗衣粉行业农村市场开发策略与渠道下沉可行性研究报告
- 2026中国退小心行业市场现状供需分析及投资评估规划分析研究报告
- 陕西师西安市高新一中学2027届九年级物理第一学期期末达标检测模拟试题含解析
- 安徽省黄山市名校2027届物理九上期末质量跟踪监视模拟试题含解析
- 2027届云南省玉溪地区化学九年级第一学期期中学业质量监测模拟试题含解析
- 北京市西城区北京师范大第二附属中学2027届化学九年级第一学期期中联考试题含解析
- 2026生物医药领域医疗器械关键技术突破与市场前景预测报告
- 河北2025中考作文题守常范文(7篇)
- 政协消防知识培训课件
- 跨境电商财务专员岗位面试问题及答案
- 食品研发创新培训课件
- 非遗文化掐丝珐琅景泰蓝
- 綦江山坪塘管理制度
- 化妆品实验室安全管理流程指南
- GB/T 33588.6-2025雷电防护系统部件(LPSC)第6部分:雷击计数器(LSCs)的要求
- (高清版)DB36∕T 1324-2020 公路建设项目档案管理规范
- 复方聚乙二醇(3350)电解质散-临床用药解读
- 《进一步规范管理燃煤自备电厂工作方案》发改体改〔2021〕1624号
评论
0/150
提交评论