The pooled covariance matrix of TRAINING must be positive definite.
4 次查看(过去 30 天)
显示 更早的评论
clc
clear all
load featurs_T
load featurs_S
load Group_Train
load Group_Test
cv_x=cov(Feat1);
[V,D] = eig(cv_x);
d=diag(D);
d=d(end:-1:1);
sm_d=cumsum(d) /sum(d);
idx=find(sm_d>0.99);
T=[V(:,end:-1:idx(1))]';
new_feat1=T*Feat1';
%TrainingSet= new_feat1';
new_feat2=T*Feat2';
%TestSet= new_feat2';
TrainingSet = new_feat1';
TestSet = new_feat2';
Group_Train1 = Group_Train1';
Group_Test1 = Group_Test1';
%------------------------
% result1= multisvm(TrainingSet,Group_Train1,TestSet,Group_Test1);
result1= classify(TestSet,TrainingSet,Group_Train1,'linear');
testresult = result1;
Accuracy = mean(Group_Test1==result) * 100;
fprintf('Accuracy = %.2f\n', Accuracy);
fprintf('error rate = %.2f\n ', mean(result ~= Group_Test1 ) * 100);
Error using classify (line 233)
The pooled covariance matrix of TRAINING must be positive definite.
Error in HOG2 (line 31)
result1= classify(TestSet,TrainingSet,Group_Train1,'linear');
采纳的回答
Matt J
2022-1-23
I suggest you calculate the pooled covariance matrix and verify whether the error message is accurate.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!