Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用k-fold交叉验证时的MATLAB LDA错误,但使用保持交叉验证时的错误_Matlab_Validation_Machine Learning_Classification_Training Data - Fatal编程技术网

使用k-fold交叉验证时的MATLAB LDA错误,但使用保持交叉验证时的错误

使用k-fold交叉验证时的MATLAB LDA错误,但使用保持交叉验证时的错误,matlab,validation,machine-learning,classification,training-data,Matlab,Validation,Machine Learning,Classification,Training Data,我在matlab中有一个二维矩阵,我想用LDA对其进行分类。 首先,我使用了保持交叉验证(我将原始数据分为两部分。第一部分包括90%随机选择的原始矩阵数据作为训练数据,第二部分包括剩余原始数据作为测试数据) 这种方法运行正常,但之后我决定使用k-折叠交叉验证,因此我将原始数据分成10部分,每次我使用9部分作为训练数据,剩余部分作为测试,但当我在matlab中执行分类时,它会给我“训练的汇总协方差矩阵必须是正定的。”错误 我阅读了过去关于matlab给出此错误的原因的讨论,但我在原始矩阵中没有Na

我在matlab中有一个二维矩阵,我想用LDA对其进行分类。
首先,我使用了保持交叉验证(我将原始数据分为两部分。第一部分包括90%随机选择的原始矩阵数据作为训练数据,第二部分包括剩余原始数据作为测试数据) 这种方法运行正常,但之后我决定使用k-折叠交叉验证,因此我将原始数据分成10部分,每次我使用9部分作为训练数据,剩余部分作为测试,但当我在matlab中执行分类时,它会给我“训练的汇总协方差矩阵必须是正定的。”错误

我阅读了过去关于matlab给出此错误的原因的讨论,但我在原始矩阵中没有Nan,所以在子矩阵中没有Nan,由于观测值不是我的原始矩阵和保持法中的子矩阵的线性组合,所以我得出结论,交叉验证法中的所有子矩阵都是相同的


所以我找不到上述错误的原因。为什么matlab在我使用交叉验证法而不是保持法时给我错误?

你有多少数据点,有多少变量?我有4320个观察向量,每个向量由1000个样本组成,所以我有4320 X 1000个矩阵作为我的训练数据集。我删除了我的答案,因为它显然不能解决你的问题。我也投票结束了你的问题,因为它没有包含足够的信息来找到答案。