资源描述:
《判别分析的matlab实现案例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、%--------------------------------------------------------------------------%读取examp10_01.xls中数据,进行距离判别%--------------------------------------------------------------------------%********************************读取数据***********************************%读取文件examp10_01.xls的第1个工作表中C2:F51范围的数据,即全部样本数据,
2、包括未判企业sample=xlsread('examp10_01.xls','','C2:F51');%读取文件examp10_01.xls的第1个工作表中C2:F47范围的数据,即已知组别的样本数据,training=xlsread('examp10_01.xls','','C2:F47');%读取文件examp10_01.xls的第1个工作表中B2:B47范围的数据,即样本的分组信息数据,group=xlsread('examp10_01.xls','','B2:B47');obs=[1:50]';%企业的编号%**********************************距
3、离判别*********************************%距离判别,判别函数类型为mahalanobis,返回判别结果向量C和误判概率err[C,err]=classify(sample,training,group,'mahalanobis');[obs,C]%查看判别结果err%查看误判概率%--------------------------------------------------------------------------%加载fisheriris.mat中数据,进行贝叶斯判别%------------------------------------
4、--------------------------------------%********************************加载数据***********************************loadfisheriris%把文件fisheriris.mat中数据导入MATLAB工作空间%**********************************查看数据*********************************head0={'Obj','x1','x2','x3','x4','Class'};%设置表头[head0;num2cell([[1:
5、150]',meas]),species]%以元胞数组形式查看数据%*********************************贝叶斯判别********************************%用meas和species作为训练样本,创建一个朴素贝叶斯分类器对象ObjBayesObjBayes=NaiveBayes.fit(meas,species);%利用所创建的朴素贝叶斯分类器对象对训练样本进行判别,返回判别结果pre0,pre0也是字符串元胞向量pre0=ObjBayes.predict(meas);%利用confusionmat函数,并根据species和pre
6、0创建混淆矩阵(包含总的分类信息的矩阵)[CLMat,order]=confusionmat(species,pre0);%以元胞数组形式查看混淆矩阵[[{'From/To'},order'];order,num2cell(CLMat)]%查看误判样品编号gindex1=grp2idx(pre0);%根据分组变量pre0生成一个索引向量gindex1gindex2=grp2idx(species);%根据分组变量species生成一个索引向量gindex2errid=find(gindex1~=gindex2)%通过对比两个索引向量,返回误判样品的观测序号向量%查看误判样品的误判情况h
7、ead1={'Obj','From','To'};%设置表头%用num2cell函数将误判样品的观测序号向量errid转为元胞向量,然后以元胞数组形式查看误判结果[head1;num2cell(errid),species(errid),pre0(errid)]%对未知类别样品进行判别%定义未判样品观测值矩阵xx=[5.82.71.80.735.63.13.81.86.12.54.71.16.12.65.71.95.13.16.50.625.8