線形判別分析ベースの分類を実行するコードをいくつか書きました。
%% Construct a LDA classifier with selected features and ground truth information
LDAClassifierObject = ClassificationDiscriminant.fit(featureSelcted, groundTruthGroup, 'DiscrimType', 'linear');
LDAClassifierResubError = resubLoss(LDAClassifierObject);
したがって、私は得ることができます
Resubstitution Error of LDA (Training Error): 1.7391e-01
Resubstitution Accuracy of LDA: 82.61%
Confusion Matrix of LDA:
14 3
1 5
次に、LDA 分類子の ROC 分析を実行します。
% Predict resubstitution response of LDA classifier
[LDALabel, LDAScore] = resubPredict(LDAClassifierObject);
% Fit probabilities for scores (the groundTruthGroup contains lables either 'Good' or 'Bad')
[FPR, TPR, Thr, AUC, OPTROCPT] = perfcurve(groundTruthGroup(:,1), LDAScore(:,1), 'Good');
私は持っています:
OPTROCPT =
0.1250 0.8667
したがって、次のようになります。
Accuracy of LDA after ROC analysis: 86.91%
Confusion Matrix of LDA after ROC analysis:
13 1
2 7
私の質問は次のとおりです。
ROC 分析の後、精度が向上しました。分類器の精度を報告する場合、どの値を使用する必要がありますか? ROC 曲線から正確に何がわかるか、または推測できるのでしょうか? ROC 分析の後、LDA 分類器の精度が向上したと言えますか?
ROC では分類器の精度が向上するのに、元の ClassificationDiscriminant.fit ではできないのはなぜですか?
次のように、LDA分類子のクロス検証も行いました
cvLDAClassifier = crossval(LDAClassifierObject, 'leaveout', 'on');
次に、クロス検証の ROC 分析を取得する方法は? ' resubPredict
' メソッドは入力として '識別オブジェクト' のみを受け入れるようですが、どうすればスコアを取得できますか?
4.. classperf
Matlab の関数は、分類器のすべての情報を収集するのに非常に便利です。
%% Get the performance of the classifier
LDAClassifierPerformace = classperf(groundTruthGroup, resubPredict(LDAClassifierObject));
ただし、相互検証結果の精度、FPR などのこれらの情報を収集する方法を知っている人はいますか?
どうもありがとう。上記の質問への回答をお待ちしております。
A.