在 Matlab 用 Classify 函数做判别分析时,有时会碰到下面的问题:

错误使用 classify (line 233) The pooled covariance matrix of TRAINING must be positive definite.

有时又没有这个问题,今天搜索了一番,最终发现和这个错误和判别函数的类型有关

按照我DEBUG惯例,先打开函数的说明文档看看,结果发现这个 Classify 怎么语法不一样?

不是 marching learning 吗?怎么突然 deep learning 了?

还是直接打开函数本身看看吧:

不错,这个才是我们用的函数,我调用的格式为第15行的语法:

CLASS = CLASSIFY(SAMPLE,TRAINING,GROUP,TYPE)

可以在官网找到这个函数的说明文档,点击这里查看。

可以发现 TYPE 可选方式有: ‘linear’, ‘quadratic’, ‘diagLinear’, ‘diagQuadratic’, or ‘mahalanobis’。其中分为线性判别分析( ‘linear’, ‘mahalanobis’)、二次判别分析(‘quadratic’)和朴素贝叶斯分类器(‘diagLinear’, ‘diagQuadratic’)。

‘diagLinear’ 和 ‘diagQuadratic’。它们类似于 ‘linear’ 和 ‘quadratic’,但具有对角协方差矩阵估计值

说到这,你可能还是一头雾水,但是你看看你的代码,判别类型是不是选的 “线性判别分析” 和 “二次判别分析” ?

如果是的话,把 TYPE 改成 ‘diagLinear’ 或 ‘diagQuadratic’ 就可以了~

那为什么选 ‘linear’,‘mahalanobis’,‘quadratic’ 会报错呢(训练的集合协方差矩阵必须是正定的)?

下面我不负责的来猜一下:
(1)因为特征的数量远远大于观测值的数量。
(2)协方差矩阵不正定是因为数据维数太大,超过了观测组数,造成信息量不足。
(3)在求协方差矩阵的逆的时候有一些数据出现了过小的情况。

猜你喜欢:

【Matlab】错误使用 classify (line 233) The pooled covariance matrix of TRAINING must be positive definite.相关推荐

  1. 新人贴:MATLAB 错误使用 surf (line 74) X、Y、Z 和 C 不能是复数。

    Matlab 萌新求教:出现错误使用 surf (line 74) X.Y.Z 和 C 不能是复数. 想画出函数 Z .^2 =4-4*(x-1).2-4*(y-1).2 我写的代码是 x = 1:0 ...

  2. matlab print用法,使用Matlab:错误使用 mprint (line 231) Wrong # rnames in mprint,怎么解决...

    请问大牛们:在使用Matlab:错误使用 mprint (line 231) Wrong # rnames in mprint,怎么解决? 程序如下: T=12; N=10; W=normw(W1); ...

  3. Matlab中解决出现的错误使用 svmtrain (line 234) Y must be a vector or a character array.问题

    Matlab中解决出现的错误使用 svmtrain (line 234) Y must be a vector or a character array.问题 目录 解决问题 解决思路 解决方法 解决 ...

  4. matlab saveas使用报错:错误使用 matlab.graphics.internal.name (line 101)

    clear addpath('D:\matlab program'); Im = imread('lena512color.bmp'); imshow(Im); saveas(gcf,'save.bm ...

  5. Matlab常见问题处理——错误使用 xlswrite (line 219),调用错误,调度异常: 参数错误。

    1. 错误使用 xlswrite (line 219),调用错误,调度异常: 参数错误. Step1: Step2: Step3:

  6. 【MATLAB】错误使用 surf (line 74) 解决+错误使用 mesh (line 75)

    1.错误使用 surf (line 74) 解决 首先对于surf函数的格式为:surf(x,y,z),要求z必须为矩阵而不能为标量或矢量. 例:要求用surf函数画出的图像. (错误)可能大部分刚开 ...

  7. 有关于simulink无法打开slx:错误使用open(line 162) no such file or directory

    不知道为啥,同学传过来他的文档,我居然打不开,查了好多地方,有些很有用,比如关闭之后重新设置参数的,参照  http://blog.sina.com.cn/s/blog_4aee288a0100lt7 ...

  8. matlab提示output,强制Matlab输出到命令行(Force Matlab output to command line)

    强制Matlab输出到命令行(Force Matlab output to command line) 我正在从Windows命令提示符运行MATLAB脚本: "C:\Program Fil ...

  9. matlab错误:Variable 'a' cannot be saved to a MAT-file whose version is older than 7.3.

    matlab错误提示: Warning: Variable 'a' cannot be saved to a MAT-file whose version is older than 7.3. To ...

最新文章

  1. android音视频工程师,音视频学习 (十三) Android 中通过 FFmpeg 命令对音视频编辑处理(已开源)...
  2. 自动驾驶有量子飞跃式改进,马斯克称年内实现L5级别自动驾驶?
  3. JAVA实现从尾到头打印链表(《剑指offer》)
  4. Linux内核网络性能优化
  5. java中队列链表栈的作用_Java用链表实现栈和队列
  6. 查看redis版本_redis详细介绍
  7. hdu 1879 继续畅通工程 (最小生成树)
  8. struts2 mysql 乱码_struts2项目插入中文到mysql数据库乱码的解决方法
  9. python decimal用法_Python decimal模块使用方法详解
  10. 文科出身敲出 Instagram,被小札“挤”走,建新冠追踪网站
  11. mysql运用实例_mysql应用实例
  12. 【数据结构】线性表之数组---C++语言描述
  13. 标准电阻阻值速查表及由来
  14. 金属摇滚混音教程|录制好吉他后,如何正确处理?(付QNA答疑)|MZD Studios
  15. 怎么提高文公写作水平?公文写作请示类模板
  16. 【Spring MVC 源码】MultipartResolver 的使用与解析
  17. Jenkins版本回退
  18. Android项目R文件丢失报错
  19. 启动redis失败 Could not create server TCP listening socket 127.0.0.1:6379: bind: 操作成功
  20. 一篇会改变身处职场的你思维的一篇文章

热门文章

  1. EIGRP基本实验与度量计算[IT傻博士原创]
  2. 电商直播同质化严重,模式创新迫在眉睫
  3. Ubuntu16.04LTS学习笔记
  4. python字母转换视频_python将视频转换为全字符视频
  5. 【服务器安装Redis】Centos7离线安装redis
  6. 十大智能家居系统解决方案
  7. 王者荣耀角色注销后我的服务器列表怎么删除,王者荣耀账号怎么注销 角色删除流程要求...
  8. Logistic模型拟合COVID-19疫情以及Python实现
  9. 如何应用BIM技术加快项目进度?
  10. SSM6==spring体系回顾,纯XML配置springMVC,纯注解配置springMVC