Bagaimana cara membentuk kurva Precision-Recall ketika saya hanya memiliki satu nilai untuk PR?

12

Saya memiliki tugas penambangan data di mana saya membuat sistem pengambilan gambar berbasis konten. Saya memiliki 20 gambar dari 5 hewan. Jadi total 100 gambar.

Sistem saya mengembalikan 10 gambar yang paling relevan ke gambar input. Sekarang saya perlu mengevaluasi kinerja sistem saya dengan kurva Precision-Recall. Namun, saya tidak mengerti konsep kurva Precision-Recall. Katakanlah sistem saya mengembalikan 10 gambar untuk gambar gorila, tetapi hanya 4 yang gorila. 6 gambar lainnya yang dikembalikan adalah hewan lain. Jadi,

  • presisi adalah 4/10 = 0.4(relevan dikembalikan) / (semua dikembalikan)
  • recall adalah 4/20 = 0.2(relevan dikembalikan) / (semua relevan)

Jadi saya hanya punya titik <0.2,0.4>,, bukan kurva. Bagaimana saya memiliki kurva (yaitu, satu set poin)? Haruskah saya mengubah jumlah gambar yang dikembalikan (ini diperbaiki pada 10 dalam kasus saya)?

jeff
sumber
2
Sebagian besar model menetapkan kemungkinan menjadi bagian dari kelas, bukan kelas itu sendiri - atau Anda memerasnya dari classifier. Kurva diturunkan dengan mengubah probabilitas cut-off. Anda mungkin akan mendapatkan jawaban yang lebih terperinci jika Anda menyebutkan classifier yang Anda gunakan.
charles
Saya menghitung vektor fitur (warna, tekstur dan bentuk) dan mendapatkan skor kesamaan untuk masing-masing, menjumlahkannya untuk skor kesamaan total, lalu mengurutkan menurun. 10 indeks gambar teratas adalah yang paling relevan. Saya dapat memperoleh indeks kelas dari indeks gambar karena gambar dipesan (20 gorila, 20 jerapah dll.) Saya harap saya membuat diri saya jelas, karena saya tidak sepenuhnya memahami konsep classifier / deskriptor dll.
jeff
Menyadari saya tidak membaca pertanyaan dengan baik. Mengira Anda memiliki masalah dua kelas (gorilla / no-gorilla). Dengan lebih banyak kelas di luar saya, ini mungkin membantu: stats.stackexchange.com/questions/2151/…
charles

Jawaban:

11

Menghasilkan kurva PR mirip dengan menghasilkan kurva ROC. Untuk menggambar plot seperti itu Anda perlu peringkat penuh dari set tes. Untuk membuat peringkat ini, Anda memerlukan classifier yang menghasilkan nilai keputusan daripada jawaban biner. Nilai keputusan adalah ukuran kepercayaan pada prediksi yang dapat kita gunakan untuk memberi peringkat semua contoh pengujian. Sebagai contoh, nilai-nilai keputusan regresi logistik dan SVM adalah probabilitas dan jarak (ditandatangani) ke hyperplane pemisah, masing-masing.

Jika Anda membuang nilai keputusan, Anda menetapkan seperangkat ambang pada nilai keputusan tersebut. Ambang ini adalah pengaturan yang berbeda dari classifier: misalnya Anda dapat mengontrol tingkat konservatisme. Untuk regresi logistik, ambang standar adalah tetapi Anda dapat melewati seluruh rentang . Biasanya, ambang dipilih untuk menjadi nilai keputusan unik yang dihasilkan model Anda untuk set tes.( 0 , 1 )f(x)=0.5(0,1)

Pada setiap pilihan ambang, model Anda menghasilkan prediksi yang berbeda (mis. Jumlah prediksi positif dan negatif yang berbeda). Dengan demikian, Anda mendapatkan satu set tupel dengan presisi dan penarikan yang berbeda di setiap ambang, misalnya satu set tupel . Kurva PR diambil berdasarkan pasangan .( P i , R i )(Ti,Pi,Ri)(Pi,Ri)

Jika saya memahami komentar Anda dengan benar, total skor kesamaan yang Anda hitung dapat digunakan sebagai nilai keputusan.

Marc Claesen
sumber
Ini tidak jelas bagi saya, dapatkah Anda bekerja dengan contoh terperinci mirip dengan situasi pengambilan gambar hewan OP?
MR