R

[빅분기 실기] pROC, ROCR의 차이점

한번해보즈아 2021. 6. 11. 17:05

 

제가 랜덤포레스트를 이용하여 작업형2번을 하던중 의문이 드는게 있네요

첫번째 결과값은 할때 마다 바뀌긴하는데 0.59정도 나오고 두번째 결과값은 0.64가 나옵니다. 같은 분석결과를 type과 package만 다르게 해서 점수를 매겼는데 왜 다르게 나오는걸까요 ??... 뭐 시험때는 pROC로 평가해서 더 점수가 잘나오는 상황이지만 의문이 드네요

x_train <- read.csv("C:/R/[Dataset] 작업형 제2유형/X_train.csv")
y_train <- read.csv("C:/R/[Dataset] 작업형 제2유형/Y_train.csv")
library(dplyr, caret,pROC)
library(caret)
library(randomForest)
full <- left_join(x_train,y_train)
full$gender <- as.factor(full$gender)
full$주구매상품 <- as.factor(full$주구매상품)
full$주구매지점 <- as.factor(full$주구매지점)
full$환불금액 <- ifelse(is.na(full$환불금액), 0, full$환불금액)

idx <- sample(1:nrow(full), 0.7*nrow(full), replace=F)
train <- full[idx,]
test <- full[-idx,]

rf.model <- randomForest(gender~.,
                         data=train,
                         ntree=50,
                         mtry=sqrt(11),
                         importance=T)
                         
# 첫번째는 ROCR 패키지/ type을 class로
pred.rf <- predict(rf.model, test[,-11],type="class")
pred.rf
pred.rf.roc <- prediction(as.numeric(pred.rf),as.numeric(test[,11]))
performance(pred.rf.roc,"auc")@y.values


#두번째는 pROC패키지 / type을 prob으로
pred.rf <- predict(rf.model, test[,-11],type="prob")
head(pred.rf)
auc(test$gender, pred.rf[,1]) # 남자로 예측할 확률 auc 값 확인