답변:
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 곡선의 예는 다음과 같습니다.
오른쪽의 막대는 곡선의 한 점을 얻는 임계 값 확률입니다.
랜덤 분류기의 경우, 클래스 불균형에 관계없이 ROC AUC는 0.5에 가깝습니다. 그러나 PR AUC는 까다 롭습니다 ( 정밀 리콜 곡선의 "기준선"이란 무엇입니까 ).
qpPrecisionRecall
예를 들어 다음 에서 정밀한 리콜 곡선을 얻습니다.
pr <- qpPrecisionRecall(measurements, goldstandard)
다음을 수행하여 AUC를 계산할 수 있습니다.
f <- approxfun(pr[, 1:2])
auc <- integrate(f, 0, 1)$value
의 도움말 페이지 qpPrecisionRecall
는 인수에서 예상되는 데이터 구조에 대한 세부 사항을 제공합니다.