nprtool関数を​用いてプロットしたR​OC曲線のAUCの算​出方法について

10 views (last 30 days)
hiroki komiya
hiroki komiya on 27 Dec 2017
Edited: hiroki komiya on 14 Jan 2018
Neural Network Toolboxの中のnprtool関数についての質問です。 nprtool関数を実行するとニューラルネットワークのguiが立ち上がると思います。 このguiのTrain NetworkというページにPlot ROCというボタンがあり、これを押すとROC曲線が表示されますが、このROC曲線のAUC(Area Under the Curve)はどのように求めたらよいのでしょう? nprtoolのguiではAUCは求められないのでしょうか?

Accepted Answer

michio
michio on 4 Jan 2018
残念ながら nprtoolのGUIでは求めることはできません。 コマンドベースで実行する必要がありますが、例えば roc 関数 (Neural Network Toolbox) で各出力クラスの受信者動作特性を計算した後に、trapz関数 (MATLAB本体)で簡単に積分して AUCを計算することができるかと思います。下記は roc関数のドキュメンテーションページのサンプルプログラムからですが、、
load iris_dataset
net = patternnet(20);
net = train(net,irisInputs,irisTargets);
irisOutputs = sim(net,irisInputs);
[tpr,fpr,thresholds] = roc(irisTargets,irisOutputs)
AUC1 = trapz(fpr{1}, tpr{1})
など。
  1 Comment
hiroki komiya
hiroki komiya on 14 Jan 2018
Edited: hiroki komiya on 14 Jan 2018
nprtoolのGUIでtargetとoutputの値を返させてその値を用いるわけですね。 提案していただいた方法でAUCを求めることができました。回答ありがとうございました。

Sign in to comment.

More Answers (1)

mizuki
mizuki on 31 Dec 2017
nprtool の GUI では AUC を求めることができません. Statistics and Machine Learning Toolbox をお持ちであれば, perfcurve 関数を使用してAUCを求めることができます.
  1 Comment
hiroki komiya
hiroki komiya on 14 Jan 2018
なるほど,やはりGUI上では求められないのですね. 回答ありがとうございます.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!