Apa itu "baseline" dalam kurva recall presisi

15

Saya mencoba memahami kurva recall presisi, saya mengerti apa itu precision dan recall tapi yang saya tidak mengerti adalah nilai "baseline". Saya sedang membaca tautan ini https://classeval.wordpress.com/introduction/introduction-to-the-precision-recall-plot/

dan saya tidak mengerti bagian dasar seperti yang ditunjukkan dalam "Kurva Precision-Recall dari pengklasifikasi sempurna" apa fungsinya? dan bagaimana kita menghitungnya? Apakah ini hanya baseline acak yang kita pilih? Misalnya saya punya data twitter dengan atribut seperti retweet,status_countdll dan label kelas saya adalah Favorited1 jika Favorited dan 0 jika tidak Favorited dan saya menerapkan naif bayes di atasnya dan sekarang saya ingin menggambar kurva presisi-recall, bagaimana saya harus menetapkan baseline saya dalam hal ini ?

hyeri
sumber

Jawaban:

13

"Kurva garis dasar" dalam plot kurva PR adalah garis horizontal dengan ketinggian yang sama dengan jumlah contoh positif atas jumlah total data pelatihan N , yaitu. proporsi contoh positif dalam data kami ( PPN ).PN

OK, mengapa demikian? Mari kita asumsikan kita memiliki "sampah classifier" . C J mengembalikan acak probabilitas p i ke i th sampel contoh y saya berada di kelas A . Untuk kenyamanan, ucapkan p iU [ 0 , 1 ] . Implikasi langsung dari tugas kelas acak ini adalah bahwa C J akan memiliki (diharapkan) presisi sama dengan proporsi contoh positif dalam data kami. Itu wajar; sub-sampel yang benar-benar acak dari data kami akan memiliki ECJCJpiiyiApiU[0,1]CJcontoh diklasifikasikan dengan benar. Ini akan menjadi benar untuk setiap probabilitas thresholdqkita mungkin menggunakan sebagai batas keputusan untuk probabilitas keanggotaan kelas dikembalikan olehCJ. (Qmenunjukkan nilai di[0,1]di mana nilai-nilai probabilitas lebih besar atau sama denganqdiklasifikasikan dalam kelasA.) Di sisi lain kinerja recall dariCJadalah (dengan harapan) sama untukqjikapi~U[0,1]. Pada ambang tertentuE{PN}qCJq[0,1]qACJqpiU[0,1] kami akan memilih (kurang-lebih) ( 100 ( 1 - q ) ) % dari total data kami yang kemudian akan berisi (kurang-lebih) ( 100 ( 1 - q ) ) % dari total jumlah instance kelas A dalam sampel. Maka garis horizontal yang kami sebutkan di awal! Untuk setiap nilai penarikan (nilai x dalam grafik PR) nilai presisi yang sesuai (nilai y dalam grafik PR) sama dengan Pq(100(1q))%(100(1q))%Axy .PN

Sebuah cepat catatan samping: Ambang adalah tidak umum sama dengan 1 minus recall diharapkan. Hal ini terjadi dalam kasus C J disebutkan di atas hanya karena distribusi seragam acak C J hasil 's; untuk distribusi yang berbeda (mis. p iB ( 2 , 5 ) ) ini perkiraan hubungan identitas antara q dan recall tidak berlaku; U [ 0 , 1 ] digunakan karena paling mudah dipahami dan divisualisasikan secara mental. Untuk distribusi acak yang berbeda dalam [ 0qCJCJpiB(2,5)qU[0,1] profil PR dari C J tidak akan berubah sekalipun. Hanya penempatan nilai PR untuknilai q yang diberikanakan berubah.[0,1]CJq

Sekarang mengenai classifier sempurna , orang akan berarti classifier yang mengembalikan probabilitas 1 untuk sampel contoh y saya menjadi kelas A jika y i memang di kelas A dan juga C P mengembalikan probabilitas 0 jika y saya bukan anggota kelas A . Ini menyiratkan bahwa untuk setiap ambang batas q kita akan memiliki presisi 100 % (mis. Dalam istilah grafik kita mendapatkan garis mulai dari presisi 100 % ). Satu-satunya poin kami tidak mendapatkan 100CP1yiAyiACP0yiAq100%100% presisi pada q = 0 . Untuk q = 0 , presisi jatuh ke proporsi contoh positif dalam data kami ( P100%q=0q=0 ) sebagai (gila-gilaan?) Kita mengklasifikasikan bahkan poin dengan0probabilitas menjadi kelasAsebagai kelasA. Grafik PR dariCPmemiliki dua nilai yang mungkin untuk presisi,1danPPN0AACP1 .PN

OK dan beberapa kode R untuk melihat ini diserahkan dengan contoh di mana nilai positif sesuai dengan dari sampel kami. Perhatikan bahwa kita melakukan "soft-tugas" dari kategori kelas dalam arti bahwa nilai probabilitas yang terkait dengan setiap titik mengkuantifikasi untuk keyakinan kita bahwa titik ini adalah kelas 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);  

enter image description here

di mana lingkaran hitam dan segitiga menunjukkan dan q = masing-masing 0,20 dalam dua plot pertama. Kita segera melihat bahwa pengklasifikasi "sampah" dengan cepat mencapai presisi sama dengan Pq=0.50q=0.20PN10.401

0

Sebagai catatan, sudah ada beberapa jawaban yang sangat baik di CV mengenai kegunaan kurva PR: di sini , di sini dan di sini . Hanya dengan membacanya dengan seksama harus menawarkan pemahaman umum yang baik tentang kurva PR.

usεr11852 kata Reinstate Monic
sumber
1
Bergabung dengan komunitas ini hanya supaya saya bisa mengungguli ini. Ini adalah penjelasan yang bagus tentang konsep baseline dalam kurva presisi recall. Sebagai seorang ahli bioinformatika, saya merasa sangat terbantu.
jimh
1
@ Jimh: Terima kasih, senang mendengarnya. Saya senang posting ini bermanfaat.
usεr11852 mengatakan Reinstate Monic
Saya tahu ini bukan komentar yang membawa informasi yang berguna, tetapi saya ingin mengucapkan terima kasih banyak atas penjelasan menyeluruh dan membuka mata Anda.
Ric S
0

Jawaban yang bagus di atas. Inilah cara berpikir intuitif saya tentang hal itu. Bayangkan Anda memiliki banyak bola merah = positif dan kuning = negatif, dan Anda melemparkannya secara acak ke dalam ember = pecahan positif. Kemudian jika Anda memiliki jumlah bola merah dan kuning yang sama, ketika Anda menghitung PREC = tp / tp + fp = 100/100 + 100 dari ember Anda merah (positif) = kuning (negatif), oleh karena itu, PREC = 0,5. Namun, jika saya memiliki 1000 bola merah dan 100 bola kuning, maka dalam ember saya akan secara acak mengharapkan PREC = tp / tp + fp = 1000/1000 + 100 = 0,91 karena itu adalah garis dasar kesempatan dalam fraksi positif yang juga RP / RP + RN, di mana RP = nyata positif dan RN = nyata negatif.

Christopher John
sumber