【发布时间】:2021-07-15 23:57:29
【问题描述】:
我正在尝试决定使用哪些变量来训练我的 xgboost 分类器。
我修复了超参数:n_estimators、max_depth、learning_rate、min_child_weight、reg_alpha。 XGBClassifier 中的 random_state 和 sklearn.model_selection.train_test_split 也每次都设置为一个固定的 int。但是,每次我训练时,我的模型都完全不同。 ROC 下的面积可以在 0.87 到 0.91 之间。这使得比较移除变量是否确实使模型更好/更差,或者面积差异是否只是由于模型训练不同而导致比较困难。
有没有办法让 xgboost 每次训练都一样?
如果不是,我也在考虑用相同的变量训练 10 次,然后对每次的 ROC 进行平均,然后进行比较。但这也有一个问题,因为 sklearn.metrics.roc_curve 每次都返回不同长度的数组,这使得计算平均 roc_curve 变得很困难。如果这是我需要走的路,我将制作另一个关于如何使 sklearn.metric.roc_curve 返回固定长度结果的线程。
【问题讨论】:
标签: python scikit-learn xgboost