Matlab实现判别分析(线性判别和二次判别分析)

  • 一、简介
  • 二、判别分析的方法
    • 2.1 费歇(FISHER)判别思想
    • 2.1 贝叶斯(BAYES)判别思想
  • 三、Matlab 实现判别分析
    • 3.1 代码
    • 3.2 输出

一、简介

判别分析又称“分辨法”,是在分类确定的条件下,根据某一研究对象的各种特征值判别其类型归属问题的一种多变量统计分析方法。
其基本原理是按照一定的判别准则,建立一个或多个判别函数,用研究对象的大量资料确定判别函数中的待定系数,并计算判别指标。据此即可确定某一样本属于何类。
当得到一个新的样品数据,要确定该样品属于已知类型中哪一类,这类问题属于判别分析问题。

判别分析时,通常需要将数据分为两部分。一部分是训练模型数据(训练集),另一部分是验证模型数据(测试集)。

首先通过训练集数据训练拟合出一个判别模型,接着再利用另一部分验证模型效果。如果在测试集数据上,也表现良好,那么说明拟合模型非常好。

后续可以利用此模型用于预测其它“没有确定类别”的数据,来预测新数据的类别情况

判别分析可根据其判别函数分为线性判别非线性判别

其中线性判别分析(Linear Discriminant Analysis, LDA)和二次判别分析(Quadratic Discriminant Analysis, QDA)是两个经典的分类器,他们分别代表了线性决策平面和二次决策平面。

二、判别分析的方法

判别分析中,根据资料的性质,分为定性资料的判别分析和定量资料的判别分析;采用不同的判别准则,又有费歇、贝叶斯、距离等判别方法。

2.1 费歇(FISHER)判别思想

费歇(FISHER)判别思想是投影,使多维问题简化为一维问题来处理。选择一个适当的投影轴,使所有的样品点都投影到这个轴上得到一个投影值。

对这个投影轴的方向的要求是:使每一类内的投影值所形成的类内离差尽可能小,而不同类间的投影值所形成的类间离差尽可能大。

2.1 贝叶斯(BAYES)判别思想

贝叶斯(BAYES)判别思想是根据先验概率求出后验概率,并依据后验概率分布作出统计推断。

所谓先验概率,就是用概率来描述人们事先对所研究的对象的认识的程度;所谓后验概率,就是根据具体资料、先验概率、特定的判别规则所计算出来的概率。它是对先验概率修正后的结果。

距离判别思想是根据各样品与各母体之间的距离远近作出判别。即根据资料建立关于各母体的距离判别函数式,将各样品数据逐一代入计算,得出各样品与各母体之间的距离值,判样品属于距离值最小的那个母体。

三、Matlab 实现判别分析

3.1 代码

这里代码利用费歇判别思想建立模型,即 fitcdiscr()

clear,clc% 用Matlab自带的鸢尾花数据集来演示判别分析,包括线性判别分析和二次判别分析
% 需安装 Statistics and Machine Learning Toolbox
load fisheririsfigure,
gscatter(meas(:,1),meas(:,2),species)% 建立判别模型% 线性判别分析
lda = fitcdiscr(meas(:,1:2),species);% 二次判别分析
% lda = fitcdiscr(meas(:,1:2),species,'DiscrimType','quadratic');% 对判别模型进行可视化
[x,y] = meshgrid(4:0.1:8,2:0.1:4.5);
x = x(:);
y = y(:);
k = predict(lda,[x,y]);
figure,
gscatter(x,y,k)% 模型评价
% 再代入误差和交叉验证误差
disp('再代入误差:')
err = resubLoss(lda)% 混淆矩阵,再代入误差的可视化
ldaClass = resubPredict(lda);
figure,
confusionchart(species,ldaClass)

3.2 输出

线性判别分析为例:

再代入误差:

err =

0.2000

【数学建模】Matlab实现判别分析(线性判别和二次判别分析)相关推荐

  1. 视频教程-MATLAB数学建模-Matlab

    MATLAB数学建模 图像和算法等领域有多年研究和项目经验:指导发表科技核心期刊经验丰富:多次指导数学建模爱好者参赛. 宋星星 ¥12.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+ ...

  2. 数学建模之减肥计划 matlab编程,数学建模matlab算法大全第02章整数规划.pdf

    数学建模matlab算法大全第02章整数规划 第二章 整数规划 §1 概论 1.1 定义 规划中的变量(部分或全部)限制为整数时,称为整数规划.若在线性规划模型中, 变量限制为整数,则称为整数线性规划 ...

  3. matlab已知飞机下轮廓线,数学建模matlab插值及拟合.ppt

    数学建模matlab插值及拟合 2013数学建模培训 插值与拟合 插值与拟合属数值分析中函数逼近内容.在数学建模竞赛中,插值与拟合是一种常用的数据分析手段,被公认为建模中的十大算法之一. 本节首先通过 ...

  4. 【学习笔记】正确写作美国大学生数学建模竞赛论文(已获得国二、美O)

    [学习笔记]正确写作美国大学生数学建模竞赛论文(已获得国二.美O) 第2章 正确使用英文 第3章 写作规范 第4章 数学表达式 第5章 MCM/ICM竞赛论文写作 最近在学习总结如何写作美赛论文,就把 ...

  5. 数学建模 matlab 数据建模基础

    一.数据的获取 1.从Excel中读取数据 (1)xlsread函数 :从EXCEL读入数据到MATLAB中. 例如: a = xlsread('D:\adc.xlsx',1,'A1:D2') 其中, ...

  6. 美国大学生数学建模matlab,2019MCM美国大学生数学建模竞赛A题赛后总结

    写在前面 小弟我从1月25号早晨六点题目发出竞赛开始,到今天1月29早晨9点停止提交论文.在四天多的时间里完成一篇20多页的英文论文,难度可想而知.这几天我的平均睡眠大概是每天五六个小时,最后一天通宵 ...

  7. 数学建模matlab 优化模型,数学建模实验中三种优化模型的分析

    1. 引言 在20世纪中期,数学建模 [1] 就在欧美国度首次被发现,而在中国的呈现稍晚些,但是大约在80年代初始咱们国家也就有了.它的核心即是创立数学模型 [2] ,使得问题获得最优化的解决.而数学 ...

  8. 模型 趋势预测 数学建模 matlab,经济发展趋势预测数学建模.doc

    经济发展趋势预测数学建模.doc 经济发展趋势预测 摘要 本题给出了从1978年到2009年该国的GDP与工业值.建筑业及农林渔业的变化的数据,对于问题1,需建立国内生产总值, Y=732.2776+ ...

  9. 线性规划问题的数学建模matlab,数学建模讲座之三——利用Matlab求解线性规划问题(linprog函数).ppt...

    数学建模讲座之三--利用Matlab求解线性规划问题(linprog函数) 利用Matlab求解线性规划问题 线性规划是一种优化方法,Matlab优化工具箱中有现成函数linprog对如下式描述的LP ...

最新文章

  1. ffmpeg 编译Android
  2. linux 邮件中继转发,linux – 如何使sendmail中继本地邮件?
  3. android自定义差值器,如何创建自定义插值器以在android中应用翻译动画
  4. bool 字符串方法 和for循环
  5. 快捷进入开发状态,这里很简单~
  6. 最近和朋友微信卖螃蟹有点偏离重心了
  7. django进阶05中间件
  8. win11通知怎么关闭
  9. 【转】HTML标签大全
  10. XILINX FPGA数字信号处理——1、信号处理概论
  11. 好程序员web前端培训分享JavaScript框架
  12. 语音信号处理的一些基础知识
  13. 行测--资料分析--fb--高照老师
  14. VO、DTO、DO、PO
  15. torch.nn.Linear实现单层回归网络的正向传播
  16. 哪个网站的电子书最多?
  17. 穆易天气app代码(一)
  18. IOS原生生成二维码
  19. 知识体系:如何构建自己的知识体系
  20. 2021年中国集成电路行业产业链分析:下游市场需求巨大[图]

热门文章

  1. 基于SSM+AmazeUI电力培训中心管理系统
  2. 学术-数学:黎曼猜想
  3. 练习3-7 成绩转换(15 分)
  4. iview实现table的可编辑
  5. 怎么把文字转换成语音?教你几个方法,超级简单
  6. 在北京的互联网公司工作多少年可以买房?
  7. 阿里云ACA认证到底是什么?
  8. 数字健康-共建共享 火绒安全将亮相2021中华医院信息网络大会(CHINC)
  9. 计算机辅助设计职业标准,计算机辅助设计绘图员国家职业标准..doc
  10. 【arduino】4位8段数码管的使用