我被要求查看 XGBoost(在 R 中实现,最多大约 50 个功能)作为已经存在但不是由我开发的逻辑回归模型的替代方案,该模型由大量信用风险数据创建,包含一个几千个预测变量。
围绕逻辑回归的文档准备得很好,因此一直跟踪排除每个变量的原因。其中包括:
- 自动数据审计(通过内部工具) - 即检测到过多的缺失或极低的方差等;
- 缺乏单调趋势 - 尝试粗分类后的 u 形变量;
- 高相关性 (>70%) - 在原始级别或分箱后;
- 低 GINI / 信息值 - 在原始级别或分箱后;
- 代表性低——通过人口稳定性指数 PSI 评估;
- 业务逻辑/专家判断。
大量变量是派生出来的(包括聚合,如其他预测变量的标准差的最小值/最大值/平均值),有些变量被认为过于综合,无法包含在内。我们也决定不在 XGBoost 中使用它们。
回归最初使用 44 个预测变量(逐步过程的输出)运行,而最终批准的模型仅包括 10 个。
因为我对 XGBoost 比较陌生,所以我想知道特征选择过程是否与为准备逻辑回归所做的有很大不同,以及一些规则/良好实践是什么。
根据我一直在阅读的内容,完美相关和缺失值都在 XGBoost 中自动处理。我怀疑趋势的单调性不应该是一个问题(因为与回归不同,重点是非线性关系),因此分箱可能会被淘汰;否则我对处理 u 形变量有点不确定。由于 GINI 通常用于在 CART(“分类和回归树”)方法下决定决策树中的最佳分割,因此也许这是一个值得保留的标准。
我一直在考虑仔细阅读我们的内部自动数据审计工具,删除标准聚合(如上所述过于合成),删除低 GINI 和低 PSI 变量,可能处理非常高(95+%)的相关性,然后应用套索/ 弹性网并从那里取出。我知道 Boruta 在这里很重要,但到目前为止仍然没有可靠的意见。