Skip to content

项目简介

Yihuier (一会儿) 是一个专业的信用评分卡建模 Python 工具包,提供从数据探索到模型部署的全流程支持。采用面向对象设计,将评分卡建模的各个步骤封装为独立的模块类,让建模过程变得简单、高效、可复制。

设计理念

专业性与易用性并重

传统的评分卡建模工具要么功能单一,要么配置复杂。Yihuier 致力于:

  • 开箱即用:简洁的 API 设计,几行代码完成复杂建模流程
  • 专业完整:覆盖评分卡建模全流程的各个环节
  • 高度可定制:支持自定义参数和方法
  • 易于扩展:模块化设计,便于二次开发

模块化架构

系统采用模块化架构,将评分卡建模的各个步骤封装为独立的模块类:

  1. EDA 模块:数据探索性分析
  2. 数据预处理模块:数据清洗和预处理
  3. 分箱模块:变量分箱和 WOE 转换
  4. 变量选择模块:特征选择和降维
  5. 模型评估模块:模型性能评估
  6. 评分卡实现模块:评分卡刻度和分数转换
  7. 评分卡监控模块:模型监控和 PSI 分析
  8. 聚类模块:客户聚类分析
  9. 流水线模块:端到端建模流程

主类统一管理

通过 Yihuier 主类统一管理数据和状态,避免了传统函数式编程中参数传递的繁琐:

python
from yihuier import Yihuier

# 初始化
yh = Yihuier(data, target='dlq_flag')

# 各模块共享数据,无需重复传递
yh.eda_module.auto_eda_simple()
yh.dp_module.delete_missing_var(threshold=0.2)
yh.binning_module.binning_num(col_list=['v1', 'v2'], max_bin=5)

AI 智能建模

Yihuier 内置了专业的风控建模 Skill,让 AI 助手(如 Claude Code)成为你的建模助手:

  • 自动引导:10 步完整建模流程,从数据探索到模型部署
  • 质量保证:内置 AUC ≥ 0.65、KS ≥ 0.15、PSI < 0.25 质量标准
  • 智能诊断:自动检测问题并提供优化建议
  • 最佳实践:融合行业最佳实践和经验法则

使用 AI Skill

如果你使用 Claude Code,只需说 "帮我建立信用评分卡模型",Skill 会自动触发,AI 助手将引导你完成整个建模流程。

查看 AI Skill 文档 了解更多。

核心优势

1. 完整的建模流程支持

功能模块支持功能状态
数据探索自动化 EDA 报告、可视化图表
数据预处理缺失值处理、常变量删除、异常值处理
变量分箱ChiMerge、等频、等距、决策树分箱
WOE 转换自动 WOE 编码、IV 值计算
变量选择XGBoost、随机森林、相关性筛选
模型评估ROC、KS、交叉验证、学习曲线
评分卡实现刻度计算、分数转换、cutoff 设置
模型监控PSI 分析、稳定性监控、偏移检测

2. 丰富的分箱方法

  • ChiMerge:基于卡方检验的最优分箱
  • 等频分箱:保证每箱样本数均衡
  • 等距分箱:保证分箱宽度一致
  • 单调性分箱:确保风险趋势单调
  • 手动分箱:支持自定义分箱规则

3. 多种变量选择策略

  • IV 筛选:基于预测强度选择变量
  • 特征重要性:基于 XGBoost/随机森林的变量重要性
  • 相关性筛选:考虑 IV/重要性的相关性去重
  • 显著性筛选:基于统计显著性的变量筛选

4. 完善的模型评估体系

  • 区分度指标:AUC、KS、提升度
  • 稳定性指标:交叉验证、学习曲线
  • 准确性指标:精确率、召回率、F1-score
  • 可视化分析:ROC 曲线、KS 曲线、混淆矩阵

5. 生产级评分卡实现

  • 灵活刻度:自定义基础分、PDO、odds
  • 分数转换:自动转换为业务可解释分数
  • cutoff 验证:精确率、召回率、误伤率分析
  • 模型监控:PSI 稳定性分析、分数分布监控

适用场景

银行风控

  • 信用卡评分:申请评分卡、行为评分卡
  • 贷款审批:个人贷款、企业经营贷款
  • 风险预警:早期风险识别、风险等级划分

消费金融

  • 现金贷:快速审批、自动化决策
  • 分期付款:额度评估、期数优化
  • 反欺诈:异常交易检测、身份验证

征信机构

  • 企业征信:企业信用评估、风险预警
  • 个人征信:个人信用报告、信用评分
  • 数据服务:信用数据加工、模型服务

学术研究

  • 方法研究:评分卡方法对比和改进
  • 算法验证:新算法在金融数据上的验证
  • 教学演示:风控建模教学示例

技术特点

面向对象设计

  • 封装性好:数据和状态封装在类中
  • 可维护性强:代码结构清晰,易于理解和维护
  • 可扩展性好:便于添加新功能和新方法

类型提示完整

  • Python 3.13+:使用最新的类型提示语法
  • IDE 友好:完整的类型提示提升开发体验
  • 类型安全:减少运行时错误

代码质量保证

  • 测试覆盖:61 个单元测试,覆盖核心功能
  • 代码规范:遵循 PEP 8 编码规范
  • 文档完整:详细的 API 文档和使用示例

性能优化

  • 向量化计算:基于 NumPy/Pandas 的高效计算
  • 并行处理:支持多进程特征工程
  • 内存优化:大数据集内存管理优化

与其他工具的对比

特性YihuierScorecardpyToadSCikiLearn
分箱方法4种2种3种1种
WOE 转换
变量选择3种策略1种2种
模型评估完整基础完整基础
评分卡实现完整部分部分
模型监控
Python 版本3.13+3.6+3.6+3.6+
类型提示完整部分
中文文档部分
易用性⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

开发历程

Yihuier 诞生于真实的评分卡建模项目实践:

  1. 痛点发现:现有工具要么功能单一,要么配置复杂
  2. 需求分析:总结真实项目中的常见需求
  3. 架构设计:采用面向对象的模块化架构
  4. 功能实现:逐步实现各功能模块
  5. 测试验证:使用真实数据验证功能正确性
  6. 文档完善:编写详细的使用文档和示例

快速体验

python
import pandas as pd
from yihuier import Yihuier

# 加载数据
data = pd.read_csv('data.csv')

# 初始化
yh = Yihuier(data, target='dlq_flag')

# 快速建模
yh.dp_module.fillna_num_var(yh.get_numeric_variables(), fill_type='0')
yh.binning_module.binning_num(['v1', 'v2', 'v3'], max_bin=5, method='ChiMerge')
yh.binning_module.woe_transform()

# 变量选择
xg_imp, _, xg_cols = yh.var_select_module.select_xgboost(
    yh.get_numeric_variables()[:10], imp_num=5
)

# 模型训练
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

data_woe = yh.binning_module.data_woe
X = data_woe[xg_cols]
y = data_woe[yh.target]

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
model = LogisticRegression()
model.fit(X_train, y_train)

# 模型评估
y_pred = model.predict_proba(X_test)[:, 1]
yh.me_module.plot_roc(y_test, y_pred)
yh.me_module.plot_model_ks(y_test, y_pred)

# 评分卡实现
A, B, base_score = yh.si_module.cal_scale(score=600, odds=50, PDO=20, model=model)

许可证

本项目采用 MIT 许可证发布,欢迎自由使用、修改和分发。

贡献

欢迎贡献代码、报告问题或提出改进建议!请查看 GitHub 仓库 了解详情。

基于 MIT 许可证发布