该文档的主要目的是对比,同一 nround 下,学习率 eta 不同,产生的相对的欠拟合状态(样本迁移),进而导致的重要性分布不同。 并且对可能产生的原因进行讨论。

1 Xgboost

如上,两个模型训练时,超参数一致,除了学习率一高一低,这衡量了模型梯度下降的速度,如果速度太忙,那么训练的效果会不佳,但是这种不佳是很隐藏的,从普通的 KS 和 AUC 上难以察觉。

iter train_auc validation_auc
11 0.649063 0.640536
12 0.649919 0.641373
13 0.651292 0.642500
14 0.651284 0.642772
15 0.652287 0.643144
16 0.653008 0.644152
iter train_auc validation_auc
11 0.656236 0.642508
12 0.657834 0.641979
13 0.660345 0.642079
14 0.660750 0.642316
15 0.662785 0.642846
16 0.664995 0.643786

如上图比较,两个模型在 boosting 16次后,auc 差不多,并且也没有发现典型的过拟合情况(训练集和测试集 AUC 差异很大)。 检查的问题的关键是查看样本迁移

2 样本迁移

## y_hat_eta01 y_hat_eta03           y 
##  0.13764141  0.05311849  0.04821518

如上所示,

  1. eta = 0.1的模型,测试集中样本预测值的均值在 compare_eta[1],远高于真实值,也就是样本迁移的情况。 样本迁移的情况很多,但是在二分类情况下很少见,因为一般是回归模型中,被解释变量是连续变量,出现双峰等情况才会造成。
  2. eta = 0.3的模型,测试集中样本预测值的均值在 compare_eta[2],接近于真实值。

因此我们会发现eta = 0.3的模型避免了欠拟合的情况。

以上是铺垫,是训练模型的层面,对于一个变量,如果需要他 robust,那么我们必须保证它在不同情况下都能很显著,因此我们比较两个模型下的变量重要性分布情况。

3 样本迁移

导出