首页 > 编程语言 >Python贷款违约预测:Logistic、Xgboost、Lightgbm、贝叶斯调参/GridSearchCV调参

Python贷款违约预测:Logistic、Xgboost、Lightgbm、贝叶斯调参/GridSearchCV调参

时间:2024-03-19 16:36:18浏览次数:34  
标签:Lightgbm 训练 GridSearchCV 调参 模型 Xgboost 贷款

原文链接:https://tecdat.cn/?p=35392

原文出处:拓端数据部落公众号

分析师:Linseng Bo

银行贷款业务是银行的主要盈利方式,对于具体的贷款申请人,是否可以同意贷款申请是一件十分重要的步骤,如果贷款人在贷款后出现违约行为,这将对银行的资金流稳定性造成不利的影响。因此针对贷款人的“数据信息”进行处理和违约预测具有举足轻重的作用。对于金融行业来说,贷款业务及人员信息十分复杂,对于数据特征的处理十分重要,在数据处理完成后,通过机器学习模型进行预测以判断贷款人是否会违约。

解决方案

任务/目标

根据金融业务要求,运用数据源分析预测贷款人是否违约。

数据源准备

特征转换

  • 对于贷款金额、年收入等数值型数据,使用数据分箱的方法分为四类用数字0-3表示,阈值根据样本总数均分位处的值确定;对于贷款目的、贷款等级等类别型数据,使用独热编码的方法处理;对于放贷日期等时间类型数据,转换成标准时间格式;对于匿名n系列数据,使用seaborn进行特征性筛查,剔除相关性高的特征。

构造特征

结合金融业务特点,由贷款金额、利率、年限构建新特征贷款利息,由信贷开立时间和放贷时间构建新特征经历时间等。

 

划分训练集和测试集

将训练集划分为:训练集训练模型、验证集评估模型、测试集最后一次测试模型,比例为:6:2:2 ,最后使用训练集预测结果,最后不加载测试集去训练,会造成测试集数据泄露。本项目中80万训练集,20万验证集,20万测试集。

建模

Logistic:

逻辑回归是一种分类算法,多用于 两个类别之间的判断, 逻辑回归的损失称为对数似然损失, 使用梯度下降的方法优化损失函数的值。  

Xgboost:

GBDT是基于boosting方法将所有弱分类器的结果相加等于预测值,然后下一个弱分类器去拟合误差函数对预测值的残差,每棵树就是一个弱分类器。Xgboost本质上也是一种GBDT,在损失函数中添加了正则化项L1和L2来控制模型的复杂度,提高泛化能力。

Lightgbm

LightGBM(Light Gradient Boosting Machine)是一个实现GBDT算法的框架,具有 支持高效率的并行训练,并且具有更快的训练速度、更低的内存消耗、更好的准确率。GBDT在每一次迭代过程中,都需要遍历整个训练集多次,因此与内存产生冲突,对于海量数据是很不利的。Xgboost采用预排序方法的决策树算法,虽然对于分割点的寻找较为准确,但同时保存了特征值和特征排序的结果,空间消耗很大,并且在遍历分割点时计算分裂增益,时间消耗也大。Lightgbm采用直方图算法将连续特征放入直方图箱子中,从而减少内存使用和时空复杂度。

模型优化

1.特征工程,贝叶斯调参/GridSearchCV调参

在此案例中,Xgboost和Lightgbm算法模型预值的AUC值较好,其预测结果如下:

调参前两种模型的AUC值:

image.png

调参后:

Xgboost的AUC值获得一定的提升,关于模型还有较大的优化空间。

QQ截图20191227152251.png

Lightgbm:

通过贝叶斯调参后,找到了一组最优解,AUC值提升至0.7234。

image.png

最后输出为测试集样本发生贷款违约的概率值。

image.png

匿名头像.png

在此对Linseng Bo对本文所作的贡献表示诚挚感谢,他专注机器学习、材料科学、数据挖掘。擅长编程语言:python、mysql,技术栈:pandas、sklearn。

post-226-vf.webp

标签:Lightgbm,训练,GridSearchCV,调参,模型,Xgboost,贷款
From: https://www.cnblogs.com/tecdat/p/18083284

相关文章

  • 机器视觉 - yolo 调参
    模型训练通用规则:如果train效果挺好,但test或predict效果较差,说明overfit了.原因有:(1)模型太复杂了,这时候应该减少epoch或者使用更小scale的模型.(2)train数据集太小,这时候需要增加训练数据如果train效果不佳,可以使用更大规模的模型,或者增加训练数据,......
  • 怎么在python中改进lightgbm 算法
    改进LightGBM算法通常涉及一系列步骤,这取决于你的数据集、问题的特点以及已有模型的性能。以下是一些建议:数据预处理和特征工程:处理缺失值:使用适当的方法填充或删除缺失值。异常值处理:检测并处理异常值,以确保模型对数据的噪声具有鲁棒性。特征缩放:确保特征在相似的范围内,可以......
  • lightgbm 数据比较少怎么办
    当使用LightGBM处理相对较少的数据时,可以考虑以下一些方法:调整参数:在训练LightGBM模型时,可以通过调整参数来适应小规模的数据集。例如,减少num_leaves、max_depth等参数,以降低模型的复杂性。使用更轻量级的模型:如果数据集很小,可以考虑使用较小规模的模型,例如降低num_leaves或使用......
  • 当lightgbm 数据比较少的时候怎么办
    当使用LightGBM(一种梯度提升框架)处理相对较少的数据时,可以考虑以下一些方法:调整参数:在训练LightGBM模型时,可以通过调整参数来适应小规模的数据集。例如,减少num_leaves、max_depth等参数,以降低模型的复杂性。使用更轻量级的模型:如果数据集很小,可以考虑使用较小规模的模型,例如降低n......
  • Solr 高性能搜索实践:优化和调参指南
    1.背景介绍Solr(TheApacheSolrProject)是一个开源的、基于Java的搜索引擎,由Apache软件基金会支持。Solr通常用于实现高性能的、可扩展的、实时的搜索功能,并且具有强大的扩展功能,可以满足各种不同的搜索需求。Solr的核心功能包括文本分析、索引、搜索和查询。文本分析是将文......
  • Fine-tuning的PEFT库:大模型高效调参新思路
    随着深度学习技术的不断发展,大模型在各种任务中展现出了强大的性能。然而,大模型训练和调优过程需要消耗大量的计算资源和时间。为了解决这个问题,近年来,一种名为“大模型高效调参”的技术逐渐受到研究者的关注。其中,PEFT库(Parameter-EfficientFine-Tuning)是一种非常具有代表性的方......
  • GBDT、XGBoost、LightGBM的区别和联系
    GBDT、XGBoost、LightGBM的区别和联系-简书https://www.jianshu.com/p/765efe2b951a深入理解LightGBM-知乎https://zhuanlan.zhihu.com/p/99069186WelcometoLightGBM’sdocumentation!—LightGBM3.2.1.99documentationhttps://lightgbm.readthedocs.io/en/latest/......
  • 成员函数指针做回调参数总结 踩坑
    成员函数指针做回调参数总结踩坑一、程序升级后,在linux上编译提示错误:warning:convertingfrom‘int(MyClass::)()’to‘void()()’[-Wpmf-conversions]void(myStoredFunction)(void)=(GENERIC_FUNC_TYPE)memberFunc;//Compilerwarning二、出现这个情况是因为,程......
  • XGB调参思路
    (1)选择较高的学习率,例如learning_rate=0.1,这样可以减少迭代用时。(2)然后对(max_depth,min_child_weight),(3)在第二步确定的基础上调整gamma,(4)subsample,colsample_bytree这些参数进行调整。(5)调整正则化参数lambda,alpha(6)降低学习率,这些参数的合适候选值为:max_depth......
  • 基于DigiThread的仿真模型调参功能
    仿真模型调参是指通过调整模型内部的参数值,使仿真模型的输出更符合实际系统的行为或者预期结果的过程。仿真过程中,往往需要频繁对模型参数进行调整,通过观察不同参数下系统整体的运行情况,实现系统的性能、可靠性和效率的优化。在进行模型调参时,需要注意选择合适的调参方法和调参参......