如何在Matlab SVM分类器中使用crossval()函数的输出创建混淆矩阵?
我必须在Matlab中测量SVM分类器的性能。混淆矩阵必须用作性能度量。然而,在Matlab中的示例中,只能计算损耗值。我找不到有关如何从crossval()函数的结果创建混淆矩阵的信息如何在Matlab SVM分类器中使用crossval()函数的输出创建混淆矩阵?,matlab,svm,cross-validation,confusion-matrix,Matlab,Svm,Cross Validation,Confusion Matrix,我必须在Matlab中测量SVM分类器的性能。混淆矩阵必须用作性能度量。然而,在Matlab中的示例中,只能计算损耗值。我找不到有关如何从crossval()函数的结果创建混淆矩阵的信息 SVMModel = fitcsvm(X,Y,'Standardize',true,'KernelFunction','RBF',... 'KernelScale','auto'); CVSVMModel = crossval(SVMModel); FirstModel = CVSVMModel.Tra
SVMModel = fitcsvm(X,Y,'Standardize',true,'KernelFunction','RBF',...
'KernelScale','auto');
CVSVMModel = crossval(SVMModel);
FirstModel = CVSVMModel.Trained{1};
示例Matlab代码来实现这一点 `%例3 %使用分层10倍交叉验证计算混淆矩阵: % 装载(“鱼鳞”); %类标签 y=物种; %分类方法 X=多边环境协定 %阶级秩序 顺序=唯一(y);%组标签的顺序 cp=Cv(y,'k',10);%分层交叉验证 f=@(xtr,ytr,xte,yte)混淆矩阵(yte,分类(xte,xtr,ytr),“顺序”,顺序) cfMat=crossval(f,X,y,'partition',cp) cfMat=重塑(总和(cfMat),3,3) %cfMat= % 50 0 0 % 0 48 2 % 0 1 49
%cfMat是来自10个测试集的10个混淆矩阵的总和。`如果没有其他方法,您至少可以手动计算矩阵。使用SVM分类器对测试数据进行分类。然后,查看哪些测试数据项映射到哪个分类器输出,并与真正的类进行比较。然而,我正在寻找一种更实际的方法。