Я делаю двоичную классификацию с GBM, используя пакет h2o.Я хочу оценить предсказательную силу определенной переменной, и если я прав, я могу сделать это, сравнивая AUC модели с конкретной переменной и модели без конкретной переменной.
Явзяв в качестве примера набор данных титанов.
Итак, моя гипотеза такова: возраст имеет большое прогностическое значение, выживет ли кто-нибудь.
df <- h2o.importFile(path = "http://s3.amazonaws.com/h2o-public-test-data/smalldata/gbm_test/titanic.csv")
response <- "survived"
df[[response]] <- as.factor(df[[response]])
## use all other columns (except for the name) as predictors
predictorsA <- setdiff(names(df), c(response, "name"))
predictorsB <- setdiff(names(df), c(response, "name", "age"))
splits <- h2o.splitFrame(
data = df,
ratios = c(0.6,0.2), ## only need to specify 2 fractions, the 3rd is implied
destination_frames = c("train.hex", "valid.hex", "test.hex"), seed = 1234
)
train <- splits[[1]]
valid <- splits[[2]]
test <- splits[[3]]
gbmA <- h2o.gbm(x = predictorsA, y = response, distribution="bernoulli", training_frame = train)
gbmB <- h2o.gbm(x = predictorsB, y = response, distribution="bernoulli", training_frame = train)
## Get the AUC
h2o.auc(h2o.performance(gbmA, newdata = valid))
[1] 0.9631624
h2o.auc(h2o.performance(gbmB, newdata = test))
[1] 0.9603211
Я знаю, что в пакете pROC есть roc.Проверьте функцию для сравнения AUC двух кривых ROC, и я хотел бы применить эту функцию к результатам моей модели H2O.