You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kaggle贷款违约预测模型优化:少数类性能提升及行业实践问询

贷款违约预测(类别不平衡)模型优化方案

现有实验情况

ExtraTreesClassifier最优模型结果

Best Model: {'bootstrap': True, 'ccp_alpha': 0.0, 'class_weight': {0: 1, 1: 5}, 'criterion': 'gini', 'max_depth': 10, 'max_features': 0.8, 'max_leaf_nodes': None, 'max_samples': None, 'min_impurity_decrease': 0.0, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'monotonic_cst': None, 'n_estimators': 300, 'n_jobs': None, 'oob_score': False, 'random_state': 42, 'verbose': 0, 'warm_start': False}
ROC AUC Score: 0.7530
Classification Report:
               precision    recall  f1-score   support

            0       0.92      0.85      0.89     45170
            1       0.30      0.47      0.36      5900

     accuracy                           0.81     51070
    macro avg       0.61      0.66      0.63     51070
 weighted avg       0.85      0.81      0.83     51070

已尝试方案及结果

  • 重采样:性能提升不明显
  • monotonic_cst约束:少数类召回率提升至0.71,但精度降至0.21,整体ROC AUC下降至0.7430,结果如下:
ROC AUC Score: 0.7430
 Classification Report:
               precision    recall  f1-score   support

            0       0.94      0.65      0.77     45170
            1       0.21      0.71      0.32      5900

     accuracy                           0.66     51070
    macro avg       0.58      0.68      0.55     51070
 weighted avg       0.86      0.66      0.72     51070

核心疑问

未尝试XGBoost、CatBoost模型;网上部分公开结果两类指标均超95%,但采用重采样后的数据作为测试集,无法反映真实性能;先划分数据集再重采样,性能大幅下降。需要优化模型,尤其是提升少数类性能,了解行业通用方法。


优化建议与行业通用方法

一、优先尝试梯度提升树模型(XGBoost/CatBoost)

这类模型在类别不平衡场景下适配性更强,重点关注以下参数:

  • XGBoost:
    • 设置scale_pos_weight为负类/正类样本数比值(约7.66),平衡类别权重
    • 开启gamma控制树分裂的最小损失减少,避免过拟合少数类噪声
    • 调整max_depth(6-10)、subsample(0.8-0.9)、colsample_bytree(0.8-0.9),控制模型复杂度
    • 用eval_metric='auc'或'logloss'作为评估指标,优先关注AUC和少数类F1
  • CatBoost:
    • 内置类别特征自动处理,适合贷款数据中的职业、贷款类型等字段
    • 设置class_weights=[1, 7.66]或开启auto_class_weights='Balanced'自动适配类别分布
    • 调整depth(6-8)、learning_rate(0.01-0.1),平衡模型拟合能力与泛化性

二、改进重采样策略

简单重采样效果有限,可尝试进阶方案:

  • 分层采样+SMOTE变体:先按类别分层划分训练/测试集,仅在训练集上使用SMOTE-NC(适配含类别特征的数据集)或ADASYN(自适应采样难分类的少数类样本)
  • 集成重采样:基于Bagging框架,每个基学习器训练时采用不同重采样策略(部分用SMOTE,部分用随机欠采样),最后融合结果
  • 阈值移动:不改变样本分布,训练后调整分类阈值(从默认0.5降至0.3-0.4),提升少数类召回率,同时监控精度变化,找到F1最优阈值

三、强化特征工程

贷款违约预测的特征质量直接决定模型性能,重点方向:

  • 构建业务衍生特征:
    • 还款能力类:收入/贷款额、月还款额/月收入、负债比率
    • 历史行为类:逾期次数、逾期天数、还款频率
    • 稳定性类:工作年限、居住年限、账户开户时长
  • 特征选择:利用ExtraTrees特征重要性、互信息筛选与少数类高度相关的特征,移除冗余噪声
  • WOE分箱:对连续特征(如收入、贷款额)进行WOE分箱,增强特征与违约标签的线性相关性,确保少数类样本分箱有足够样本量

四、优化模型集成与评估

  • Stacking集成:用ExtraTrees作为基学习器,XGBoost/CatBoost作为元学习器,融合不同模型的预测结果,提升整体稳定性
  • 聚焦适配不平衡数据的指标:避免仅看accuracy,重点关注ROC AUC(整体区分能力)、少数类F1-score(平衡精度与召回)、PR AUC(更适合不平衡场景的评估指标)
  • 分层K折交叉验证:使用Stratified K-Fold,确保每折的类别分布与原始数据一致,避免评估偏差

五、行业通用实践

  • 拒绝推断:若数据集仅包含已通过的贷款申请,可通过拒绝推断将被拒绝的无标签样本纳入训练(被拒绝的申请违约率通常更高),补充少数类样本
  • 成本敏感学习:根据业务场景设置错分成本(如漏判违约用户的损失是误判正常用户的5-10倍),引入成本矩阵让模型优先降低高成本错误
  • 持续迭代监控:上线后持续监控模型在真实数据上的少数类性能,定期用新数据重新训练,因为违约模式会随时间变化

内容的提问来源于stack exchange,提问作者RenamedUser7008

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:48:12