【发布时间】:2018-01-31 17:06:14
【问题描述】:
我使用 XGBoost 构建我的预测模型:
setDT(train)
setDT(test)
labels <- train$Goal
ts_label <- test$Goal
new_tr <- model.matrix(~.+0,data = train[,-c("Goal"),with=F])
new_ts <- model.matrix(~.+0,data = test[,-c("Goal"),with=F])
labels <- as.numeric(labels)-1
ts_label <- as.numeric(ts_label)-1
dtrain <- xgb.DMatrix(data = new_tr,label = labels)
dtest <- xgb.DMatrix(data = new_ts,label=ts_label)
params <- list(booster = "gbtree", objective = "binary:logistic", eta=0.3, gamma=0, max_depth=6, min_child_weight=1, subsample=1, colsample_bytree=1)
xgb1 <- xgb.train(params = params, data = dtrain, nrounds = 291, watchlist = list(val=dtest,train=dtrain), print_every_n = 10,
early_stop_round = 10, maximize = F , eval_metric = "error")
xgbpred <- predict(xgb1,dtest)
xgbpred <- ifelse(xgbpred > 0.5,1,0)
confusionMatrix(xgbpred, ts_label)
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 1904 70
1 191 2015
Accuracy : 0.9376
95% CI : (0.9298, 0.9447)
No Information Rate : 0.5012
P-Value [Acc > NIR] : < 0.00000000000000022
Kappa : 0.8751
Mcnemar's Test P-Value : 0.0000000000001104
Sensitivity : 0.9088
Specificity : 0.9664
Pos Pred Value : 0.9645
Neg Pred Value : 0.9134
Prevalence : 0.5012
Detection Rate : 0.4555
Detection Prevalence : 0.4722
Balanced Accuracy : 0.9376
'Positive' Class : 0
这个精度适合我,但我想检查 auc 的度量。我写:
xgb1 <- xgb.train(params = params, data = dtrain, nrounds = 291, watchlist = list(val=dtest,train=dtrain), print_every_n = 10,
early_stop_round = 10, maximize = F , eval_metric = "auc")
但在那之后我不知道如何对 AUC 指标做出预测。我需要你的帮助,因为这是我第一次使用 XGBoost。谢谢。
UPD:据我了解,在 auc 指标之后,我需要一个系数,我将削减课程。现在我在 0,5 时切断
【问题讨论】:
-
关于 AUC 的预测是什么意思? AUC 只是分类器的性能指标。如果您优化 w.r.t AUC 而不是准确性,您将拥有不同的功能,但无论如何它的输出将是相同的。也尝试使用 xgb1 进行预测..
-
@JanSila 我在拟合 auc 指标时得到 [291] val-auc:0.978914 train-auc:1.000000。但是,如果我像 xgb1 一样进行预测,值不会改变。与错误指标相同。