计算随机森林模型的 AUC

问题描述 投票:0回答:1

我找不到计算此随机森林模型的 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?

请参阅上面概述的我的代码

r performance random-forest metrics auc
1个回答
0
投票

尝试:

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。

© www.soinside.com 2019 - 2024. All rights reserved.