1.Toad:基于 Python 的预测源码预测标准化评分卡模型
2.推荐收藏! 38 个 Python 数据科学顶级库!
3.机器学习的模型特征重要性究竟是怎么算的
Toad:基于 Python 的标准化评分卡模型
大家好,我是预测源码预测东哥。
在信贷风控领域,模型评分卡模型是预测源码预测最为常见和经典的工具。评分卡通过为信贷客户分配分数,模型IPTV直播源码网站依据不同的预测源码预测业务场景(贷前、贷中、模型贷后和反欺诈)进行评估,预测源码预测最终通过设置阈值给出评估结果。模型与XGB等机器学习模型相比,预测源码预测评分卡通常采用逻辑回归,模型因为它具有很强的预测源码预测特征解释性,属于广义线性回归模型。模型
今天要介绍的预测源码预测是一个开源评分卡工具——toad,它提供了一条龙服务,包括数据探索、特征分箱、筛选、WOE转换、建模、评估、分数转换等过程,极大地简化了建模人员的工作。toad的基本操作可以通过pip安装完成。
首先,使用read_csv读取数据,了解数据概览。在测试数据中,有万条记录,包含个特征。克罗交易策略源码数据的时间跨度为年5月至7月,我们将使用3月和4月的数据作为训练样本,5月、6月、7月的数据作为跨期样本(OOT)进行验证。
接下来,通过toad的EDA功能进行数据探索分析,包括统计性特征、缺失值、unique values等信息。在进行变量筛选时,可以使用toad的quality功能计算各种指标,如iv值、gini指数、熵等,结果按照iv值排序。对于数据量大或高维度数据,建议使用iv_only=True。同时,要删除主键、日期等高unique values且不用于建模的特征。
在完成初步筛选后,通过toad.selection.select函数进一步筛选变量,根据阈值设置进行特征选择,最终保留个变量,并得到筛选后的数据集和被删除的变量列表。
接下来是分箱过程,toad提供了多种分箱方法,包括等频分箱、等距分箱、asp文章类网站源码卡方分箱、决策树分箱和最优分箱等。分箱结果对于WOE转换至关重要,toad支持数值型和离散型数据的分箱,并能单独处理空值。
在完成分箱后,进行WOE转换,将数据转换为更容易解释的分数形式。通过观察分箱结果并进行调整,确保WOE转换后的分数具有良好的单调性。
随后,应用逐步回归方法筛选特征,支持向前、向后和双向筛选。逐步回归通过使用sklearn的REF实现,通常情况下direction='both'效果最好。参数设置如正则化、样本权重等不在详细介绍范围内。
完成建模后,使用逻辑回归对数据进行拟合,并计算预测结果。风控模型常用评价指标包括KS、AUC、PSI等。toad提供了快速实现这些评价指标的方法。
评分卡转换是最后一步,将逻辑回归模型转换为标准评分卡,支持传入逻辑回归参数进行调整。
toad还支持GBDT编码,作为GBDT与LR建模的网站广告投放平台源码前置,以提高模型学习效果。
总结而言,toad提供了一套便捷的评分卡建模流程,大大简化了建模工作。在实际应用中,可以参考源码进行优化或扩展功能。
推荐收藏! 个 Python 数据科学顶级库!
欢迎关注@Python与数据挖掘 ,专注 Python、数据分析、数据挖掘、好玩工具!
数据科学领域的顶级 Python 库推荐:
1. Apache Spark - 大规模数据处理的统一分析引擎,
星:,贡献:,贡献者:
2. Pandas - 用于数据处理的快速、灵活且可表达的 Python 软件包,
星:,贡献:,贡献者:
3. Dask - 并行计算任务调度系统,
星:,贡献:,贡献者:
4. Scipy - 用于数学、科学和工程的开源 Python 模块,
星:,贡献:,贡献者:
5. Numpy - Python 科学计算的基本软件包,
星:,贡献:,贡献者:
6. Scikit-Learn - 基于 SciPy 的unity 2d 源码 Python 机器学习模块,
星:,贡献:,贡献者:
7. XGBoost - 可扩展、便携式和分布式梯度增强 GBDT 库,
星:,贡献:,贡献者:
8. LightGBM - 基于决策树的快速、高性能梯度提升 GB库,
星:,贡献:,贡献者:
9. Catboost - 高速、可扩展、高性能梯度提升库,
星:,贡献:,贡献者:
. Dlib - 用于创建解决实际问题的复杂软件的 C++ 工具箱,
星:,贡献:,贡献者:
. Annoy - C++/Python 中的优化内存使用和磁盘加载/保存的近似最近邻居系统,
星:,贡献:,贡献者:
. H2O.ai - 快速可扩展的开源机器学习平台,
星:,贡献:,贡献者:
. StatsModels - Python 中的统计建模和计量经济学,
星:,贡献:,贡献者:
. mlpack - 直观、快速且灵活的 C++ 机器学习库,
星:,贡献:,贡献者:
. Pattern - 包含 Web 挖掘工具的 Python 模块,
星:,贡献:,贡献者:
. Prophet - 生成具有多个季节性和线性或非线性增长的时间序列数据的高质量预测工具,
星:,贡献:,贡献者:
. TPOT - Python 自动化机器学习工具,使用遗传编程优化机器学习 pipeline,
星:,贡献:,贡献者:
. auto-sklearn - 自动化机器学习工具包,scikit-learn 估计器的直接替代品,
星:,贡献:,贡献者:
. Hyperopt-sklearn - scikit-learn 中基于 Hyperopt 的模型选择,
星:,贡献:,贡献者:
. SMAC-3 - 基于顺序模型的算法配置,
星:,贡献:,贡献者:
. scikit-optimize - 用于减少非常昂贵且嘈杂的黑盒功能的 Scikit-Optimize,
星:,贡献:,贡献者:
. Nevergrad - 用于执行无梯度优化的 Python 工具箱,
星:,贡献:,贡献者:
. Optuna - 自动超参数优化软件框架,
星:,贡献:,贡献者:
数据可视化:
. Apache Superset - 数据可视化和数据探索平台,
星:,贡献:,贡献者:
. Matplotlib - 在 Python 中创建静态、动画和交互式可视化的综合库,
星:,贡献:,贡献者:
. Plotly - 适用于 Python 的交互式、基于开源和基于浏览器的图形库,
星:,贡献:,贡献者:
. Seaborn - 基于 matplotlib 的 Python 可视化库,提供高级界面进行吸引人的统计图形绘制,
星:,贡献:,贡献者:
. folium - 建立在 Python 数据处理能力之上并与 Leaflet.js 库地图能力结合的可视化库,
星:,贡献:,贡献者:
. Bqplot - Jupyter 的二维可视化系统,基于图形语法的构造,
星:,贡献:,贡献者:
. VisPy - 高性能的交互式 2D / 3D 数据可视化库,利用 OpenGL 库和现代图形处理单元 GPU 的计算能力显示大型数据集,
星:,贡献:,贡献者:
. PyQtgraph - 科学/工程应用的快速数据可视化和 GUI 工具,
星:,贡献:,贡献者:
. Bokeh - 现代 Web 浏览器中的交互式可视化库,提供优雅、简洁的构造,并在大型或流数据集上提供高性能的交互性,
星:,贡献:,贡献者:
. Altair - Python 的声明性统计可视化库,用于创建更简洁、更可理解的数据可视化,
星:,贡献:,贡献者:
解释与探索:
. eli5 - 用于调试/检查机器学习分类器并解释其预测的库,
星:,贡献:,贡献者:
. LIME - 用于解释任何机器学习分类器预测的工具,
星:,贡献:,贡献者:
. SHAP - 基于博弈论的方法,用于解释任何机器学习模型的输出,
星:,贡献:,贡献者:
. YellowBrick - 可视化分析和诊断工具,用于辅助机器学习模型的选择,
星:,贡献:,贡献者:
. pandas-profiling - 从 pandas DataFrame 对象创建 HTML 分析报告的库,
星:,贡献:,贡献者:
技术交流群:
建了技术交流群,想要进群的同学直接加微信号:dkl,备注:研究方向 + 学校/公司 + 知乎,即可加入。
关注 Python与数据挖掘 知乎账号和 Python学习与数据挖掘 微信公众号,可以快速了解到最新优质文章。
机器学习画图神器推荐,论文、博客事半功倍;模型可解释 AI (XAI) Python 框架盘点,6 个必备;prettytable - 可完美格式化输出的 Python 库;机器学习建模调参方法总结; 个机器学习最佳入门项目(附源代码);精通 Python 装饰器的 个神操作;VS Code 神级插件推荐;Schedule 模块 - Python 周期任务神器;4 款数据自动化探索 Python 神器;数据模型整理,建议收藏;Python 编程起飞的 个神操作;深度学习、自然语言处理和计算机视觉顶级 Python 框架盘点;用户画像标签体系建设指南;机器学习模型验证 Python 包推荐;可视化大屏模板精选,拿走就用;Python 可视化大屏不足百行代码;Python 中的 7 种交叉验证方法详解;文章推荐更多,点个赞和爱心,更多精彩欢迎关注。
机器学习的特征重要性究竟是怎么算的
了解主流机器学习模型计算特征重要性的过程。常用算法包括xgboost、gbdt、randomforest、tree等,它们都能输出特征的重要性评分。本文将重点阐述xgboost和gbdt特征重要性计算方法。
xgboost计算特征重要性涉及到复杂的过程。在xgboost R API文档中能找到部分解释。在Python代码中,通过get_dump获取树规则,规则描述了特征在决策树中的使用情况。然而,原始的get_score方法输出的仅为统计值,包含权重、增益和覆盖度,未转换为百分比形式,这还不是真正的特征重要性得分。在xgboost的sklearn API中,feature_importance_方法对重要性统计量进行归一化处理,将之转换为百分比形式,计算分母为所有特征的重要性统计量之和。默认情况下,xgboost sklearn API计算重要性时使用importance_type="gain",而原始get_score方法使用importance_type="weight"。
对于gbdt,首先查找BaseGradientBoosting类,得到feature_importances_方法的源码。进一步追踪至tree模块,发现特征重要性来源于tree_.compute_feature_importances()方法。关于gbdt评估特征重要性的标准,存在疑问:它是依据分裂前后节点的impurity减少量进行评估。impurity的计算标准取决于节点的分裂标准,如MSE或MAE,具体在_criterion.pyx脚本中有所说明。gbdt中的树都是回归树,因此计算impurity的标准适用于该类问题。