问题标签 [monotone]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
constraints - 具有单调约束的 XGboost 可解释性
我正在使用这个公共数据集在 Python 中构建一个信用记分卡:https://www.kaggle.com/sivakrishna3311/delinquency-telecom-dataset
这是一个二元分类问题:
我只有数字连续预测特征。
在信贷行业,解释为什么申请人被拒绝(或者甚至没有获得最高分)是一项法律要求:为了满足该要求,会产生不利代码。
在经典的逻辑回归方法中,可以这样做:
- 计算每个预测特征的证据权重 (WoE)(强制特征值与 WoE 或 log(odds) 之间的单调关系)。在以下示例中,网络年龄越高,证据权重 (WoE) 越高:
- 用相应的证据权重替换数据值。例如,Network Age 的值 250 将替换为 0.04(对应的 WoE)。
- 训练逻辑回归
经过一些线性变换,你会得到这样的东西:
因此,分配不利代码很简单,因此得分最高的 bin 不会返回不利代码。例如:
现在,我想训练一个 XGBoost(它通常在不平衡的低噪声数据上优于逻辑回归)。XGBoost 非常具有预测性,但需要解释(通常通过 SHAP)。
我读到的是,为了使模型决策可解释,您必须确保应用单调约束。
问题 1.这是否意味着我需要像使用 Logistic 回归一样在证据权重转换数据上训练 XGBoost(参见上面的第 2 点)?
问题 2.在 Python 中,XGBoost 包提供了设置单调约束的选项(通过monotone_constraints
选项)。如果我不通过替换证据权重(因此删除所有单调约束)来转换数据,monotone_constraints
在 XGboost 中使用“”来解决二元问题是否仍然有意义?我的意思是,将 monotone_constraints 与 XGBClassifier 一起使用是否有意义?
谢谢。