R'de AUPR hesaplanıyor [kapalı]


15

ROC altında bir paket hesaplama alanı bulmak kolaydır, ancak hassas geri çağırma eğrisinin altındaki alanı hesaplayan bir paket var mı?


ROCR , pROC - gerçekten güzel!
Vladimir Chupakhin

1
Kesinlikle öyleler, ancak AFAIK hassas hatırlama eğrisinin altındaki alanı da hesaplayamıyor.

Yanıtlar:


15

Temmuz 2016'dan itibaren PRROC paketi hem ROC AUC hem de PR AUC hesaplamak için harika çalışıyor.

probsModelinizle hesaplanmış bir olasılık vektörünüz (denir ) olduğunu ve gerçek sınıf etiketlerinin veri çerçevenizde df$label(0 ve 1) olduğu varsayılırsa , bu kodun çalışması gerekir:

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)

Not: Yalnızca Kaygılı şey kullanmaktır scores.class0 = fgzaman fg0 etiket 1 için hesaplanan ve değildir.

Aşağıda, altındaki alanlarla örnek ROC ve PR eğrileri verilmiştir:

AUC ile ROC Eğrisi

AUC ile PR Eğrisi

Sağdaki çubuklar, eğri üzerinde bir nokta elde edilen eşik olasılıklarıdır.

Rastgele bir sınıflandırıcı için, sınıf dengesizliğine bakılmaksızın ROC AUC değerinin 0,5'e yakın olacağını unutmayın. Ancak, PR AUC zor (bkz . Hassas hatırlama eğrisinde "taban çizgisi" nedir ).


Pls, yukarıdaki cevapta bağlantılı PRROC belgelerine bakın.
arun

2

Küçük bir googling bir bioc paketi, qpgraph ( qpPrecisionRecall) ve bir cranc , minet ( auc.pr) döndürür . Yine de onlarla hiçbir deneyimim yok. Her ikisi de biyolojik ağlarla başa çıkmak için tasarlanmıştır.


Bu minet güzel görünüyordu, ancak genel verilerden uygun girişi yapmak için bazı harici adaptörlere sahip olması gerekiyor :-(

2

Hassas bir geri çağırma eğrisine sahip olduğunuzda qpPrecisionRecall, örneğin:

pr <- qpPrecisionRecall(measurements, goldstandard)

bunu yaparak AUC'sini hesaplayabilirsiniz:

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

yardım sayfası qpPrecisionRecall, argümanlarında hangi veri yapısının beklediğiyle ilgili ayrıntılar verir.


1
PR-eğrisi biraz daha süslü bir entegrasyon gerektirmez mi? Bakınız: mnd.ly/oWQQw1

1

AUPRC()bir fonksiyonudur PerfMeasçok daha iyi olduğu bir paket pr.curve()fonksiyon PRROCverileri çok büyük olduğunda paket. pr.curve()bir kabus ve milyonlarca girişe sahip vektörleriniz olduğunda bitirmek sonsuza dek sürüyor. PerfMeaskarşılaştırıldığında saniye sürer. PRROCR PerfMeasile yazılır ve C ile yazılır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.