一会儿轻松解决信用评分卡建模
基于 Scorecard--Function 重构的面向对象版本。
- 面向对象设计 - 统一的 Yihuier 类管理数据和状态
- 完整建模流程 - EDA → 数据处理 → 分箱 → 变量选择 → 模型评估 → 评分卡实现 → 监控
- 模块化架构 - 9个独立模块,职责清晰
- 类型提示 - 完整的类型注解,更好的IDE支持
- 可选 optbinning 分箱 -
pip install yihuier[optimal]后可用method='optbinning',强制 WOE 单调、求解器更优(真实数据上 IV 均值 +10%、单调变量 50/93 vs 自研 1/93),原生方法不受影响
# 使用 pip
pip install yihuier
# 或使用 uv
uv pip install yihuier| 安装命令 | 额外能力 |
|---|---|
pip install yihuier[optimal] |
启用 method='optbinning'——委托 optbinning 求最优切点(强制 WOE 单调、求解器更优),内置兼容垫片,无需降级 sklearn |
pip install yihuier[profiling] |
EDA 自动报告(ydata-profiling) |
pip install yihuier[dev] |
开发/测试工具(pytest、ruff) |
pip install yihuier[all] |
以上全部 |
不安装
[optimal]也能正常使用所有原生分箱方法(ChiMerge / 等频 / 等距 / 自定义)。
import pandas as pd
from yihuier import Yihuier
# 加载数据
data = pd.read_csv('data.csv')
yh = Yihuier(data, target='dlq_flag')
# 数据预处理
data_clean = yh.dp_module.delete_missing_var(threshold=0.15)
# 变量分箱
bin_df, iv_value = yh.binning_module.binning_num(
col_list=['v1', 'v2', 'v3'],
max_bin=5,
method='ChiMerge'
)
# WOE转换
woe_df = yh.binning_module.woe_df_concat()
data_woe = yh.binning_module.woe_transform()
# 变量选择
xg_imp, xg_rank, xg_cols = yh.var_select_module.select_xgboost(
col_list=data_woe.drop(['dlq_flag'], axis=1).columns.tolist(),
imp_num=10
)
# 模型训练
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(data_woe[xg_cols], data_woe['dlq_flag'])
# 模型评估
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)| 模块 | 功能 | 文档 |
|---|---|---|
EDAModule |
探索性数据分析 | 📖 EDA 模块 |
DataProcessingModule |
数据预处理 | 📖 数据预处理 |
BinningModule |
变量分箱 | 📖 分箱模块 |
VarSelectModule |
变量选择 | 📖 变量选择 |
ModelEvaluationModule |
模型评估 | 📖 模型评估 |
ScorecardImplementModule |
评分卡实现 | 📖 评分卡实现 |
ScorecardMonitorModule |
评分卡监控 | 📖 评分卡监控 |
ClusterModule |
聚类分析 | 📖 聚类模块 |
PipelineModule |
流水线 | 📖 流水线模块 |
# 克隆项目
git clone https://github.com/ency/yihuier.git
cd yihuier
# 安装开发依赖
uv pip install -e ".[dev]"
# 运行测试
pytest tests/ -v
# 代码格式化
ruff format yihuier/
ruff check yihuier/MIT License
- 原项目: Scorecard--Function
- 相关文章: 知乎专栏