Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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
如何在Matlab SVM分类器中使用crossval()函数的输出创建混淆矩阵?_Matlab_Svm_Cross Validation_Confusion Matrix - Fatal编程技术网

如何在Matlab SVM分类器中使用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

我必须在Matlab中测量SVM分类器的性能。混淆矩阵必须用作性能度量。然而,在Matlab中的示例中,只能计算损耗值。我找不到有关如何从crossval()函数的结果创建混淆矩阵的信息

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分类器对测试数据进行分类。然后,查看哪些测试数据项映射到哪个分类器输出,并与真正的类进行比较。然而,我正在寻找一种更实际的方法。