R에서 AUPR 계산 [닫기]


14

ROC에서 패키지 계산 영역을 쉽게 찾을 수 있지만 정밀 회수 곡선에서 영역을 계산하는 패키지가 있습니까?


ROCR , pROC- 정말 좋습니다!
Vladimir Chupakhin

그러나 AFAIK는 정밀 리콜 곡선 아래 면적을 계산할 수 없습니다.

답변:


14

2016 년 7 월 현재 PRROC 패키지 는 ROC AUC와 PR AUC를 모두 계산하는 효과적입니다.

이미 probs모델로 계산 된 확률 ( ) 벡터가 있고 실제 클래스 레이블이 df$label(0 및 1)과 같이 데이터 프레임에 있다고 가정하면 이 코드는 작동합니다.

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)

추신 : 레이블 1에 대해 계산되고 0이 아닌 계산 scores.class0 = fg시 사용하는 유일한 당황스러운 것입니다 fg.

아래에 영역이있는 ROC 및 PR 곡선의 예는 다음과 같습니다.

AUC를 사용한 ROC 곡선

AUC를 사용한 PR 곡선

오른쪽의 막대는 곡선의 한 점을 얻는 임계 값 확률입니다.

랜덤 분류기의 경우, 클래스 불균형에 관계없이 ROC AUC는 0.5에 가깝습니다. 그러나 PR AUC는 까다 롭습니다 ( 정밀 리콜 곡선의 "기준선"이란 무엇입니까 ).


Pls는 위의 답변에 링크 된 PRROC 설명서를 참조하십시오.
아룬

2

작은 인터넷 검색은 하나의 bioc 패키지, qpgraph ( qpPrecisionRecall)와 크랜 하나 인 minet ( auc.pr)을 반환 합니다. 그러나 나는 그들에 대한 경험이 없다. 둘 다 생물학적 네트워크를 다루기 위해 고안되었다.


이 MINET 좋은 보았다하지만 :-( 일반 데이터에서 적절한 입력을 만들기 위해 일부 외부 어댑터가 필요

2

qpPrecisionRecall예를 들어 다음 에서 정밀한 리콜 곡선을 얻습니다.

pr <- qpPrecisionRecall(measurements, goldstandard)

다음을 수행하여 AUC를 계산할 수 있습니다.

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

의 도움말 페이지 qpPrecisionRecall는 인수에서 예상되는 데이터 구조에 대한 세부 사항을 제공합니다.


1
PR- 곡선에 좀 더 멋진 통합이 필요하지 않습니까? 참조 : mnd.ly/oWQQw1

1

AUPRC()의 기능입니다 PerfMeas훨씬 더보다 패키지 pr.curve()에 기능 PRROC데이터가 매우 큰 경우 패키지. pr.curve()은 악몽이며 수백만 개의 항목이있는 벡터가 있으면 끝까지 계속 걸립니다. PerfMeas비교하는 데 몇 초가 걸립니다. PRROCR PerfMeas로 작성되고 C로 작성됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.