我找不到计算此随机森林模型的 AUC 的语法。请参阅下面的代码;请指教。
## 1
library(caret)
library(dplyr)
library(pROC)
library(readxl)
library(car)
set.seed(1234)
## 2
sdLDL <- read_excel("C:/Users/odokg/OneDrive/Desktop/UCH Ibadan Part-2/Data Analysis/data Set for Software - R.xlsx")
head(sdLDL)
##outcome variable is High_sdLDL
## 3
## preprocessing
sdLDL$High_sdLDL <- factor(sdLDL$High_sdLDL, levels = c(0, 1))
## 4
## Extracting_Test_Set
set.seed(5566)
sample <- sample.int(n = nrow(sdLDL), size = nrow(sdLDL)*0.20, replace = F)
sdLDL_test <- sdLDL[sample, ] ##Yields test dataset that is the test percentage %
sdLDL_rem <- sdLDL[-sample, ] ##Remainder of data here
## 5
## Train RF model
rf_fit <- train(High_sdLDL ~ Age + Is_Male + BMI + SBP + DBP + family_history_MI + family_history_sudden_death, data=sdLDL_rem, method = "ranger")
rf_fit
## 6
## Produce predictions based on RF model
rf_test_predictions <- predict(rf_fit, sdLDL_test)
sdLDL_test$LOGIT_PRED_RF = rf_test_predictions
head(sdLDL_test)
## 7
## Random Forest confusion matrix
test_performance_RF <- confusionMatrix(rf_test_predictions, sdLDL_test$High_sdLDL,mode = "everything",positive="1") ##Random forest validation predictions
test_performance_RF
如何获得该 RF 模型的 AUC?
请参阅上面概述的我的代码
尝试:
roc.test <- roc(sdLDL_test$High_sdLDL, rf_test_predictions)
auc(roc.test)
对于以下模拟数据
sdLDL <- data.frame(High_sdLDL=sample(c(0, 1), 100, TRUE),
Age =rnorm(100, 50),
Is_Male=sample(c(TRUE, FALSE), 100, TRUE),
BMI=rnorm(100, 23),
SBP=rnorm(100, 100, 20),
DBP=rnorm(100, 80, 20),
family_history_MI=sample(c(TRUE, FALSE), 100, TRUE),
family_history_sudden_death=sample(c(TRUE, FALSE), 100, TRUE))
AUC 将为 0.5067。