2017-04-04 15 views
1

は私がAのように分類器を持っているし、その分類の結果は私に次の表を与える考えてみましょう:混乱行列の値を使ってROC曲線を描く方法は?

TP TN FP FN 
A 225 100 175 100 

TPは真陽性

TNは真陰性

FPは偽ポジティブ

ありです

FNは偽陰性です

どのようにi ca n ROCのプロット曲線を描きますか?

私は変数を定義し、それをAに基づいて予測してから、上記の値を正確にシミュレートするデータフレームを作成し、最後にthisコードを使用できます。しかし、私はが簡単な方法があると思いますか?

+0

: は、我々はテストとモデルの名前mymodelという名前のデータフレームを持っていると仮定すると、我々はこのようなものを使用することができます。 モデルから生の出力を取得してみてください。 – JanLauGe

答えて

3

これは、分類器の特定の(未知の)しきい値の混同行列しかないため不可能です。 ROC曲線には、すべての可能なしきい値に関する情報が含まれています。

混同行列があなたのROC曲線上の一点に対応:

感度= TP/TP + FN
1 - なぜ私は理解していないSpecificy = TN/TN + FP

+0

これについてどう思いますか? https://www.researchgate.net/post/How_can_I_draw_a_ROC_curve_having_TP_Rate_and_FP_Rate_Values – user5363938

+0

異なる閾値、異なる点、したがってROC曲線の形状を得るために、このようなテーブルを作成する必要があります。 – R18

+1

@ user5363938リンクされたディスカッションでは、観測ごとのスコアと真の値が与えられます。あなたは、あなたの質問に混乱のマトリックスを提供しただけです。 – AlexR

0

新しい変数をシミュレートします。あなたは基本的に単一の点から曲線をプロットすることを求めていますが、これは不可能です。代わりに、モデルをトレーニングするために使用したトレーニングデータまたはテストデータに依存変数を使用するだけです。これにより、最適とみなすカットオフポイントを見つけることができます。

pROCパッケージを使用すると、ROC曲線を簡単にプロットすることができます。 ROC曲線は確率ではなく、「閾値化」の予測のために描かれて

library('pROC') 
plot(roc(test$y, predict(mymodel, test, type = "prob")) 
+0

ROCには予測される_probability_が必要であり、予測される_class_は必要ないことに注意してください。 – AlexR

関連する問題