精密リコール曲線の「ベースライン」とは


15

正確なリコール曲線を理解しようとしていますが、精度とリコールが何であるかは理解していますが、理解できないのは「ベースライン」値です。私はこのリンクを読んでいました https://classeval.wordpress.com/introduction/introduction-to-the-precision-recall-plot/

「完全な分類子の精度-リコール曲線」に示されているように、ベースライン部分が理解できません。そして、どのように計算するのですか?選択したランダムなベースラインですか?たとえば、retweet,status_countetcなどの属性を持つtwitterデータがあり、Favoritedお気に入りの場合はクラスラベルは1、お気に入りでない場合は0で、単純なベイズを適用し、今度は正確なリコールカーブを描画したいのですが、この場合のベースラインの設定方法を教えてください?

回答:


13

PR曲線プロットの「ベースライン曲線」は、トレーニングデータの総数Nに対する正の例数に等しい高さの水平線です。我々のデータの正例の割合(PPN)。PN

OK、なぜそうなのですか?「ジャンク分類子」があると仮定しましょう。C Jは、クラスAにあるi番目のサンプルインスタンスy iランダムな確率p iを返します。便宜上、言うP IU [ 0 1 ]。このランダムなクラス割り当ての直接的な意味は、C Jが、データ内の肯定的な例の割合に等しい(予想される)精度を持つことです。それは自然なことです。データの完全にランダムなサブサンプルには{CJCJpiiyiApiU[0,1]CJ正しく分類された例。これは、CJによって返されるクラスメンバーシップの確率の決定境界として使用する可能性のあるすべての確率しきい値qに当てはまります。(q(およそ)選択しますE{PN}qCJの値を示し、[ 0 1 ]の確率値が大きいか等しい場合、Qクラスに分類されている A。)一方のリコールパフォーマンス C Jが(期待に)であるが等しい Q場合 P IU [ 0 1 ]。所定のしきい値でq[0,1]qACJqpiU[0,1]q、その後(約)含まれています私たちの全データのうち100 1 - Q クラスのインスタンスの総数の Aサンプル中に。したがって、最初に述べた水平線です!すべてのリコール値(PRグラフの x値)に対して、対応する精度値(PRグラフの y値)は Pに等しい(100(1q))%(100(1q))%AxyPN

簡単な補足説明:しきい値は通常、1から予想されるリコールを差し引いた値に等しくありません。これは、qためだけのランダムな一様分布の上記 C Jの結果。異なるディストリビューションのための(例えば、P IB 2 5 )との間に、このおおよそのアイデンティティ関係のqと成り立たないリコール。Uは[ 0 1 ]、それが理解し精神的に可視化することが最も容易であるために使用しました。[ 0の異なるランダム分布の場合CJCJpiB(2,5)qU[0,1]C Jの PRプロファイルは変更されません。指定された q値に対するPR値の配置のみが変更されます。[0,1]CJq

ここで完全な分類器に関して、y iが実際にクラスAにある場合、クラスAのサンプルインスタンスy iに確率1を返し、さらにy iがクラスのメンバーではない場合、C Pは確率0を返しますA。これは、任意のしきい値qに対して100 %の精度があることを意味します(つまり、グラフ用語では精度100 %で始まる線が得られます)。100を得られない唯一のポイントCP1yiAyiACP0yiAq100%100%100%精度はです。以下のために、Q = 0、精度は、我々のデータにおける正例の割合(まで降下Pq=0q=0)私たちがしても、ポイントを分類(めちゃくちゃ?)として0クラスのある確率AクラスであるとしてACPのPRグラフには、精度として1Pの2つの値しかありません。PN0AACP1PN

OKといくつかのRコードは、正の値がサンプルのに対応する例を使用して、これを直接確認します。各ポイントに関連付けられた確率値が、このポイントがクラスAであるという確信を定量化するという意味で、クラスカテゴリの「ソフト割り当て」を行うことに注意してください。40%A

  rm(list= ls())
  library(PRROC)
  N = 40000
  set.seed(444)
  propOfPos = 0.40
  trueLabels = rbinom(N,1,propOfPos)
  randomProbsB = rbeta(n = N, 2, 5) 
  randomProbsU = runif(n = N)  

  # Junk classifier with beta distribution random results
  pr1B <- pr.curve(scores.class0 = randomProbsB[trueLabels == 1], 
                   scores.class1 = randomProbsB[trueLabels == 0], curve = TRUE) 
  # Junk classifier with uniformly distribution random results
  pr1U <- pr.curve(scores.class0 = randomProbsU[trueLabels == 1], 
                   scores.class1 = randomProbsU[trueLabels == 0], curve = TRUE) 
  # Perfect classifier with prob. 1 for positives and prob. 0 for negatives.
  pr2 <- pr.curve(scores.class0 = rep(1, times= N*propOfPos), 
                  scores.class1 = rep(0, times = N*(1-propOfPos)), curve = TRUE)

  par(mfrow=c(1,3))
  plot(pr1U, main ='"Junk" classifier (Unif(0,1))', auc.main= FALSE, 
       legend=FALSE, col='red', panel.first= grid(), cex.main = 1.5);
  pcord = pr1U$curve[ which.min( abs(pr1U$curve[,3]- 0.50)),c(1,2)];
  points( pcord[1], pcord[2], col='black', cex= 2, pch = 1)
  pcord = pr1U$curve[ which.min( abs(pr1U$curve[,3]- 0.20)),c(1,2)]; 
  points( pcord[1], pcord[2], col='black', cex= 2, pch = 17)
  plot(pr1B, main ='"Junk" classifier (Beta(2,5))', auc.main= FALSE,
       legend=FALSE, col='red', panel.first= grid(), cex.main = 1.5);
  pcord = pr1B$curve[ which.min( abs(pr1B$curve[,3]- 0.50)),c(1,2)]; 
  points( pcord[1], pcord[2], col='black', cex= 2, pch = 1)
  pcord = pr1B$curve[ which.min( abs(pr1B$curve[,3]- 0.20)),c(1,2)]; 
  points( pcord[1], pcord[2], col='black', cex= 2, pch = 17)
  plot(pr2, main = '"Perfect" classifier', auc.main= FALSE, 
       legend=FALSE, col='red', panel.first= grid(), cex.main = 1.5);  

ここに画像の説明を入力してください

ここで、最初の2つのプロットでは、黒丸と三角形はそれぞれq = 0.20を示しています。「ジャンク」分類子がすぐにPに等しい精度になることがすぐにわかります。q=0.50q=0.20 ; 同様に、完全分類器はすべてのリコール変数で精度1を持ちます。当然のことながら、「ジャンク」分類器のためのAUCPRは、我々のサンプル中の正例の割合(に等しい0.40)と「完璧な分類器」のAUCPRは、にほぼ等しい1PN10.401

現実的には、完全な分類器のPRグラフは、リコールをすることはできないため、少し役に立ちません(ネガティブクラスのみを予測することはありません)。慣例として左上隅から線のプロットを開始します。厳密に言えば、それは2つのポイントを示すだけですが、これは恐ろしい曲線になります。:D0

記録のために、PR曲線の有用性に関して、CVには既にいくつかの非常に良い答えがあります:hereherehere。それらを注意深く読むだけで、PR曲線に関する一般的な理解が得られるはずです。


1
これに賛成できるように、このコミュニティに参加しました。これは、正確なリコール曲線のベースラインの概念の優れた説明です。バイオインフォマティシャンとして、私はそれが非常に役立つことを発見しました。
ジム

1
@jimh:ありがとう、それを聞くのはとてもいいことです。投稿が役に立ったことがうれしいです。
usεr11852は回復モニック言う

有益な情報をもたらすコメントではないことは承知していますが、徹底的かつ目を見張るような説明をありがとうございました。
リックS

0

上記の素晴らしい答え。これが私の直感的な考え方です。赤=ポジティブ、黄色=ネガティブのボールの束があり、それらをバケツ=ポジティブな部分にランダムに投げるとします。次に、同じ数の赤と黄色のボールがある場合、バケットからPREC = tp / tp + fp = 100/100 + 100を計算すると、赤(正)=黄色(負)なので、PREC = 0.5になります。ただし、赤のボールが1000個、黄色のボールが100個ある場合、バケット内ではPREC = tp / tp + fp = 1000/1000 + 100 = 0.91がランダムに期待されます。 / RP + RN、ここで、RP =真の正およびRN =真の負。

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