R 언어 | ROC 곡선 - 분류 기의 성능 표현 평가
이와 함께 TPR (진율 또는 민감 도) 과 TNR (진음 율 또는 특이 도) 을 계산 할 수 있다.우 리 는 주관적 으로 이 두 가지 지표 가 클 수록 좋 기 를 바라 지만, 애석 하 게 도 두 가 지 는 이것 이 저것 을 없 애 는 관계 이다.분류 기의 훈련 매개 변 수 를 제외 하고 임계 점 의 선택 도 TPR 과 TNR 에 큰 영향 을 줄 수 있다.구체 적 인 문제 와 수요 에 따라 구체 적 인 임계 점 을 선택 할 수도 있다.
본 고 는 두 개의 ROC 곡선 그리 기 가방 이 있 으 니 참고 할 수 있다.
다음으로 전송:http://www.r-bloggers.com/lang/chinese/1205
우리 가 일련의 임계 점 을 선택 하면 일련의 TPR 과 TNR 을 얻어 이 값 에 대응 하 는 점 을 연결 하면 ROC 곡선 을 구성한다.ROC 곡선 은 우리 가 이 분류 기의 성능 표현 을 명확 하 게 이해 하 는 데 도움 을 주 고 서로 다른 분류 기의 성능 을 비교 하 는 데 도 편리 하 다.ROC 곡선 을 그 릴 때 는 1 - TNR 을 가로 좌표 로, TPR 을 세로 좌표 로 사용 하 는 것 이 습관 이다.R 언어 에서 ROC 곡선 을 그 리 는 방법 을 살 펴 보 자.
# logistic ,
model1 <- glm(y~., data=newdata, family='binomial')
pre <- predict(model1,type='response')
# prob y
data <- data.frame(prob=pre,obs=newdata$y)
#
data <- data[order(data$prob),]
n <- nrow(data)
tpr <- fpr <- rep(0,n)
# threshold TPR FPR,
for (i in 1:n) {
threshold <- data$prob[i]
tp <- sum(data$prob > threshold & data$obs == 1)
fp <- sum(data$prob > threshold & data$obs == 0)
tn <- sum(data$prob < threshold & data$obs == 0)
fn <- sum(data$prob < threshold & data$obs == 1)
tpr[i] <- tp/(tp+fn) #
fpr[i] <- fp/(tn+fp) #
}
plot(fpr,tpr,type='l')
abline(a=0,b=1)
R 에는 ROC 곡선 을 그 리 는 데 사용 되 는 가방 도 있다. 예 를 들 어 흔히 볼 수 있 는 ROCR 가방 은 그림 을 그 릴 수 있 을 뿐만 아니 라 ROC 곡선 아래 면적 AUC 를 계산 하여 분류 기의 종합 적 인 성능 을 평가 할 수 있다. 이 수 치 는 0 - 1 사 이 를 취하 면 클 수록 좋다.
library(ROCR)
pred <- prediction(pre,newdata$y)
performance(pred,'auc')@y.values #AUC
perf <- performance(pred,'tpr','fpr')
plot(perf)
ROCR 패키지 그래 픽 함수 의 기능 이 비교적 단일 하고 필 자 는 기능 이 더욱 강 한 pROC 패 키 지 를 선 호한 다.그것 은 두 개의 분류 기 를 편리 하 게 비교 할 수 있 고 가장 좋 은 임계 점 을 자동 으로 표시 할 수 있 으 며 그림 도 비교적 예 뻐 보인다.
library(pROC)
modelroc <- roc(newdata$y,pre)
plot(modelroc, print.auc=TRUE, auc.polygon=TRUE, grid=c(0.1, 0.2),
grid.col=c("green", "red"), max.auc.polygon=TRUE,
auc.polygon.col="skyblue", print.thres=TRUE)
——————————————————————————————————————————————
필 자 는 조작 할 때 다음 과 같은 문제 가 발생 한다.
Error in prediction(tablebank, bank_part$y_n) :
Number of cross-validation runs must be equal for predictions and labels.
인터넷 의 해결 방안 은 다음 과 같다.
이 경우 예측 (예측, 태그, 태그. 점 = NULL) 함수 류 의 '예측' 과 '태그' 변 수 는 목록 이나 행렬 이 어야 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.