RでのAUPRの計算[終了]


14

ROCの下で面積を計算するパッケージを見つけるのは簡単ですが、精度-リコールカーブの下の面積を計算するパッケージはありますか?


ROCRpROC-本当に素晴らしい!
ウラジミールチュパキン

確かにそうですが、AFAIKはどちらも精度-リコール曲線下の面積を計算できません。

回答:


13

2016年7月現在、パッケージPRROCはROC AUCとPR AUCの両方の計算に最適です。

probsモデルで計算された確率のベクトル(と呼ばれる)が既にあり、真のクラスラベルがdf$label(0および1)としてデータフレームにあると仮定すると、このコードは機能するはずです。

install.packages("PRROC")

require(PRROC)
fg <- probs[df$label == 1]
bg <- probs[df$label == 0]

# ROC Curve    
roc <- roc.curve(scores.class0 = fg, scores.class1 = bg, curve = T)
plot(roc)

# PR Curve
pr <- pr.curve(scores.class0 = fg, scores.class1 = bg, curve = T)
plot(pr)

PS:唯一の当惑の事は、あなたが使用しているscores.class0 = fgとき、fgラベル1と0ではないために計算されます。

以下に、ROCおよびPR曲線とその下の領域の例を示します。

AUCを使用したROC曲線

AUCを使用したPR曲線

右側のバーは、曲線上のポイントが取得されるしきい値の確率です。

ランダム分類器の場合、ROC AUCはクラスの不均衡に関係なく0.5に近いことに注意してください。ただし、PR AUCには注意が必要です(精密リコール曲線の「ベースライン」とはを参照)。


Plsは、上記の回答にリンクされているPRROCドキュメントを参照します。
アルン

2

リターン1つのBIOCパッケージ、グーグル少しqpgraphqpPrecisionRecall)、及びCRAN一つMINETをauc.pr)。しかし、私はそれらの経験はありません。両方とも生物学的ネットワークに対処するために考案されました。


このミネットは見栄えが良かったのですが、一般データから適切な入力を行うために外部アダプターが必要です:

2

から精度の高いリコール曲線が得られたらqpPrecisionRecall、たとえば:

pr <- qpPrecisionRecall(measurements, goldstandard)

これを行うことにより、AUCを計算できます。

f <- approxfun(pr[, 1:2])
auc <- integrate(f, 0, 1)$value

のヘルプページにqpPrecisionRecallは、引数でデータ構造が期待するものの詳細が表示されます。


1
PR曲線は、さらに高度な統合を必要としませんか?参照:mnd.ly/oWQQw1

1

AUPRC()関数でPerfMeasはるかに優れよりもパッケージpr.curve()に機能PRROCデータが非常に大きい場合パッケージが。 pr.curve()悪夢であり、何百万ものエントリを持つベクターがある場合、完了するまでに時間がかかります。PerfMeas比較に数秒かかります。PRROCRでPerfMeas書かれ、Cで書かれています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.