如何从MATLAB Classification Learner中导出性能结果?

时间:2017-01-27 09:40:41

标签: matlab statistics

分类学习者应用程序在应用程序GUI中以混淆矩阵,ROC曲线等形式提供了很好的结果。

但是,如何将所有这些值(例如准确性,观察数量,TPP,FNR,PPV和所有类别的FDR)轻松导出App?

提前致谢!

2 个答案:

答案 0 :(得分:0)

似乎分类器中没有简单的GUI选项,但您可以使用其他一些函数来获取结果。这是一个例子:

ROC曲线:

% load some sample data
fishertable = readtable('fisheriris.csv');
% here FisherClassifier is the exported code from the Classification
% Learner:
[trainedClassifier, validationAccuracy,validationPredictions,...
    validationScores] = FisherClassifier(fishertable);
% Species is the right classification:
species = fishertable.Species;
spp = 'versicolor'; % this is the species that you want it's ROC curve
% find the group number for this class:
cls = strcmp(spp,trainedClassifier.ClassificationKNN.ClassNames);
% calculate the ROC:
[X,Y,T,AUC] = perfcurve(species,validationScores(:,cls),spp);
% Plot it:
plot(X,Y,'LineWidth',2)
hold on
area(X,Y,'FaceColor',lines(1),'FaceAlpha',0.2)
xlabel('False positive rate')
ylabel('True positive rate')
text(0.5,0.5,['AUC = ' num2str(AUC)])
hold off

结果:

ROC

但是,正如可以在this answer中看到的那样,您可以通过以下方式获取所有未处理的数字句柄:

hFigs = findall(groot,'type','figure')

这会产生一系列数字,例如:(例如):

hFigs = 
  4x1 Figure array:

  Figure    (MLearnAppConfusionMatrixFigure)
  Figure    (ParallelCoordinatesFigure)
  Figure    (MLearnAppROCCurveFigure)
  Figure    (ScatterFigure)

现在,您可以使用以下内容将它们全部保存到一个.fig文件(此处称为allcalss):

savefig(hFigs,'allcalss')

或保存您想要的那个,通过其特定句柄说出混淆矩阵:

savefig(hFigs(1),'confmat')

以后你可以使用openfig命令对它们进行修改。

答案 1 :(得分:0)

右键单击分类学习器应用程序图,然后选择show code。 生成代码后,请运行它。您将获得另一个图形,在该图形中您将看到相同的结果。