一会儿轻松解决信用评分卡建模
基于 Scorecard--Function 重构的面向对象版本。
- 面向对象设计 - 统一的 Yihuier 类管理数据和状态
- 完整建模流程 - EDA → 数据处理 → 分箱 → 变量选择 → 模型评估 → 评分卡实现 → 监控
- 模块化架构 - 9个独立模块,职责清晰
- 类型提示 - 完整的类型注解,更好的IDE支持
# 使用 pip
pip install yihuier
# 或使用 uv
uv pip install yihuierimport 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
- 相关文章: 知乎专栏