小编Nic*_* G.的帖子

训练期间的 XGBoost ROC AUC 与最终结果不符

我正在使用 XGBoost 训练 BDT 对 22 个特征进行二元分类。我有 1800 万个样本。(60%用于训练,40%用于测试)

我在训练期间得到的 ROC AUC 与我得到的最终结果不符,我不明白这是怎么回事。此外,ROC AUC 显示出比任何其他指标更多的过度训练,并且它似乎在测试数据上有最大值。

有没有人以前遇到过类似的问题,或者知道我的模型出了什么问题,或者我如何找出问题所在?

我的代码的本质:

params = {
 "model_params": {
    "n_estimators": 2000,
    "max_depth": 4,
    "learning_rate": 0.1,
    "scale_pos_weight": 11.986832275943744,
    "objective": "binary:logistic",
    "tree_method": "hist"
  },
  "train_params": {
    "eval_metric": [
      "logloss",
      "error",
      "auc",
      "aucpr",
      "map"
    ]
  }
}

model = xgb.XGBClassifier(**params["model_params"], use_label_encoder=False)
model.fit(X_train, y_train, 
          eval_set=[(X_train, y_train), (X_test, y_test)], 
          **params["train_params"])

train_history = model.evals_result()

...

plt.plot(iterations, train_history["validation_0"]["auc"], label="training data")
plt.plot(iterations, train_history["validation_1"]["auc"], label="test data")

...

y_pred_proba_train = model.predict_proba(X_train)
y_pred_proba_test = model.predict_proba(X_test)

fpr_test, tpr_test, _ …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn xgboost

6
推荐指数
1
解决办法
3882
查看次数

在Python中将大数除以10给出错误的结果

假设我想删除一个数字的最后一位数字n。为此,我使用代码int(n/10)

遗憾的是,这对于大量数据给出了错误的结果。例如n = 4474630975855204960除以10给出447463097585520512

这种行为的原因是什么?我该如何修复它?

python division

2
推荐指数
1
解决办法
1911
查看次数