2

R で ROCR パッケージを使用して精度を計算しようとしていますが、結果は予想とは異なります。

次のようなモデル (p) とラベル (l) の予測があるとします。

p <- c(0.61, 0.36, 0.43, 0.14, 0.38, 0.24, 0.97, 0.89, 0.78, 0.86)
l <- c(1,     1,    1,    0,    0,     1,    1,    1,    0,     1)

そして、次のコマンドを使用して、この予測の精度を計算しています。

library(ROCR)
pred <- prediction(p, l)
perf <- performance(pred, "acc")
max(perf@y.values[[1]])

しかし、結果は .8 で、精度の式 (TP+TN)/(TN+TP+FN+FP) によれば .6 になるはずですが、なぜでしょうか?

4

1 に答える 1

3

を使用するmax(perf@y.values[[1]])と、陽性を予測するための可能なカットオフ全体で最大精度が計算されます。

あなたの場合、最適なしきい値はp=0.2で、2 つの間違い (予測される確率が 0.38 と 0.78 の観測値) で、0.8 の最大精度が得られます。

を使用して、perf オブジェクトのカットオフにアクセスできますperf@x.values[[1]]

于 2013-12-14T20:47:52.407 に答える