Community画像github.com

信用风险模型

端到端信用风险建模工作流,涵盖申请、行为、催收和反欺诈风险模型。用于构建、验证、比较或记录评分卡、逻辑回归、LightGBM、XGBoost/CatBoost/随机森林或其他机器学习信用模型;计算IV/WOE、KS、AUC、PSI、提升度、评分分箱、OOT验证、特征重要性、评分卡点数、拒绝/审批策略或模型开发验证报告。

信用风险模型 とは?

该技能提供了一个端到端的信用风险建模工作流,适用于构建、验证、比较和记录各种类型的信用风险模型,包括评分卡(WOE逻辑回归)、LightGBM、XGBoost、CatBoost、随机森林等机器学习模型。它强制要求一个结构化的建模接收过程,在处理任何建模、特征选择或报告生成之前,先明确建模目标、模型家族、Y值定义、样本划分、参数调优、衍生特征和报告约束,从而确保所有假设都得到明确记录。该技能支持从数据清洗、特征工程、分箱与WOE计算、模型训练与诊断到最终验证报告生成的完整流程,并特别强调时间泄漏防护、样本划分纪律(训练/验证/OOT),以及清晰的输出语言匹配(根据用户语言生成中文或英文报告)。它默认使用评分卡参数(最多15个特征、最多7个分箱、基准分600、odds 0.05、pdo 60)和LightGBM/XGBoost基线超参数,并支持可选的清洗管道和衍生特征生成。该技能主要适用于金融科技、银行、消费金融和任何需要开发或验证信用评分模型的AI代理或开发者工具环境。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/W-Y-P/credit-risk-model/tree/main

Installed? Explore more 画像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

信用风险模型 は何をしますか?

建模接收

硬性门控:触发此技能后的第一个响应必须在任何建模、特征选择、调优或报告生成之前澄清建模请求。不要因为用户给出了宽泛的建模任务就跳过此接收。以一个简洁的问题区块开始,涵盖以下每一项;如果用户已经指定了某个项目,将其作为确认复述,并仅请求修正。在用户回答之前,不要训练或确定假设,除非用户在看到接收区块后明确表示按默认值继续。

  1. 建模目标:
    • 拒绝或排序不良客户/高风险申请人。
    • 选择优质客户/高质量申请人。
    • 风险定价、设定信用额度、催收优先级、欺诈审查或其他目标。
    • 定义模型输出:概率、分数、等级、截止点、排名或政策策略。
  2. 模型家族:
    • 评分卡 / WOE逻辑回归。
    • LightGBM。
    • XGBoost。
    • 不含评分卡的线性/逻辑回归。
    • CatBoost、随机森林、神经网络、生存/ Vintage模型或其他模型。
    • 多个模型用于冠军/挑战者比较。
  3. Y值:
    • 如果用户给出了明确的标签,则使用它。
    • 如果没有,则根据业务目标、可用标签、Vintage、逾期滚动率、MOB窗口以及拒绝/排除逻辑提出建议。
    • 确认目标值方向:除非用户另有说明,否则1 = 不良/风险事件。
  4. 样本划分:
    • OOT默认为最近/最新的完整月份。
    • 验证可以是相邻月份,也可以是非OOT数据的分层随机拆分。
    • 确认训练集是否排除验证集和OOT。
    • 如果存在机构/渠道字段,询问除了时间OOT外,是否需要机构/渠道OOS样本。
  5. 参数调优:
    • 询问是否仅运行默认基线、轻度调优还是更深入的超参数搜索。
    • 对于评分卡,默认最多15个模型特征,每个特征最多7个分箱,base_score = 600,odds = 0.05,pdo = 60。
    • 对于LightGBM/XGBoost,使用常见的起始超参数,仅在首次诊断后才进行调优。
  6. 衍生特征:
    • 询问是否添加衍生特征。
    • 如果添加,询问是否接受WOE组合和决策树组合特征,或者是否只允许原始可部署公式。
  7. 报告与约束:
    • 询问用户是否有报告模板。如果有,则匹配它;如果没有,则使用默认的信用风险验证报告。
    • 仅在模棱两可时询问:最终报告语言应遵循用户的语言。中文用户请求得到中文报告和表名;英文用户请求得到英文报告和表名。
    • 对于评分卡模型,除非用户明确要求另一个模板,否则确认模型验证报告应使用精确的评分卡模型开发验证报告模板格式。
    • 询问任何强制性变量、禁止变量、政策约束、单调性约束、评分分箱、审批率目标或部署限制。
  8. 建模后策略:
    • 模型验证完成后,询问用户是否需要策略建议、截止点表或策略规则。
    • 如果需要,则根据评分分箱、模型风险排名和高提升度衍生特征规则生成策略候选。

核心工作流

  1. 完成强制性的建模接收并记录所选的假设。如果用户的第一个请求未明确说明,则先提出接收问题;不要直接跳入代码、数据探索或模型训练。
  2. 明确界定目标变量和观察点:申请日期、表现窗口、不良定义、排除规则、样本来源和去重键。在未检查可用数据字典、标签或用户说明的情况下,切勿仅凭列名推断目标变量。
  3. 如果用户提供了以前的模型报告、评分卡表格、开发流程图或报告模板,则将其用作命名、评分分箱和报告格式的参考。对于评分卡模型验证报告,如果可用,则默认要求使用评分卡模型开发验证报告模板;精确匹配。如果未提供,则对于非评分卡报告或仅草案评分卡输出,使用默认的信用风险开发工作流和报告结构。
  4. 在特征选择之前划分样本:
    • 精确使用用户指定的OOT月份或时间窗口。
    • 从剩余的、非OOT样本中抽取验证集,当请求随机验证时,按目标变量分层。
    • 仅在训练集上拟合分箱、编码器、缩放器、特征选择和模型参数。
    • 保留OOT样本不变,用于最终验证,而非模型选择。
  5. 构建与所选模型家族匹配的基线。如果用户说“基于原始评分卡”,则解析原始评分卡变量并作为锁定基线进行重新拟合或评分,然后再添加特征。
  6. 使用保守/默认参数训练第一个模型版本,然后诊断其是否过拟合、欠拟合、随时间不稳定、校准不良、信号缺失或受到数据质量限制。
  7. 根据诊断结果进行优化。针对每个接受的更改,首先使用验证集的KS,然后是OOT稳定性、AUC、PSI、系数方向、相关性/VIF、校准性和可部署性,与基线和当前模型进行比较。
  8. 如果性能异常强劲,在优化或确定最终模型之前,先调查数据泄露问题。
  9. 当存在前期报告时,生成结构与其相同的最终报告。报告应涵盖模型开发和验证两方面,而不仅仅是笔记本风格的指标转储。
  10. 模型验证后询问是否需要策略层。不要假设模型报告本身就是最终的业务交付物。

输出语言

  • 在最终文档、工作簿、表名、图表标签和叙述性摘要中匹配用户的语言,除非他们明确请求另一种语言。
  • 如果用户使用中文书写,则生成中文报告文本和中文表名。如果用户使用英文书写,则生成英文报告文本和英文表名。
  • 保留原始变量名、文件名、SQL表达式、模型名和指标缩写等技术标识符不变,因为翻译它们会降低可追溯性。

数据与划分纪律

  • 将时间泄漏视为主要失败模式。任何在申请/观察点之后计算的特征都必须排除或移位。
  • 对于月度OOT,除非用户指定了其他时间窗口,否则默认为最近/最新的可用完整月份。在输出中使用精确的日历月份,例如2025-09,而不是相对标签。
  • 验证集可以是相邻月份/时间窗口,也可以是非OOT数据的分层随机样本。优先使用用户请求的验证模式;否则选择最能匹配样本量和时间稳定性需求的模式,并说明选择。
  • 在最终划分之前,标记总样本量过少或不良样本量过少的异常月份。报告它们及其原因;除非用户明确批准,否则不要自动过滤它们。
  • 如果存在机构/渠道字段,除了时间OOT外,还支持机构/渠道OOS。在报告中清晰地区分时间OOT、机构/渠道OOS、验证集和训练集。
  • 报告训练集、验证集和OOT的样本量、不良样本数、不良率、AUC、KS、PSI和分数分布。
  • 如果验证是分层随机抽样,则在移除OOT后计算。
  • 保留行级分数,包含row_id、日期、划分、目标变量、概率、logit和分数,以便每个报告表格都可重现。

可选清洗管道

当原始数据质量不确定、用户要求进行预处理、或者评分卡/逻辑模型需要更清晰的候选变量时,在建模前运行一个轻量级的数据清洗和变量筛选管道。对于梯度提升树模型,此管道可以跳过或放宽,因为树模型能更好地容忍缺失值、非线性和相关性变量;但仍需运行泄漏、样本和稳定性检查。

  • 加载并格式化数据,不修改原始文件。
  • 按总样本数和不良样本数标记异常月份,但默认不删除。
  • 计算全局的缺失/值率;如果存在机构/渠道字段,则也按机构/渠道计算。
  • 仅当阈值达成一致或明显有害时,才删除高缺失变量。
  • 计算全局IV;如果存在机构/渠道字段,则也按机构/渠道计算IV,并标记在过多机构/渠道中表现弱的变量。
  • 按月计算PSI;如果存在机构/渠道字段,则也按机构/渠道计算月度PSI,并标记集中的不稳定性。
  • 可选运行Null Importance去噪,通过比较真实LightGBM增益与标签置换增益来识别噪声变量。
  • 使用“在相关组中保留最佳变量”原则删除高相关性变量。
  • 记录每一轮变量移除,包括阈值、被移除变量和移除原因。

特征工程

  • 从原始特征加上所需的业务变量开始,例如企业年龄/公司成立时长(当用户要求时)。
  • 筛选基本数据质量:
    • 移除一个值占95%以上主导的特征,除非业务明确要求保留。
    • 移除不可用、不稳定、结果后知、重复或逻辑上无效的变量。
    • 在复现现有评分卡时,保留强制基线变量,即使它们违反了通用筛选条件;标明此锁定。
  • 在有用时计算原始/单变量IV,以及在训练集分箱后的评分卡IV。分别进行标注;不要将原始未分箱的IV称为评分卡IV。
  • 使用LightGBM重要性、IV和分箱IV的加权复合值对重要特征进行排序。如果用户未指定权重,则对排名或百分位分数进行归一化,并使用平衡默认值,例如LightGBM增益0.4、IV 0.3、分箱IV 0.3;将LightGBM分裂计数作为次要诊断指标。
  • 对于大型候选池,可选使用Null Importance作为去噪步骤:训练一个真实的LightGBM重要性模型,训练一个或多个标签置换/零模型,并标记其真实增益未充分高于零增益的变量。
  • 保留原始特征名称、中文/业务标签、公式、父特征、缺失率、IV、分箱IV、单特征AUC/KS、LightGBM增益/分裂、筛选状态和筛选原因。

衍生变量

  • 当用户要求使用默认值时,将衍生变量视为启用。在数据和部署约束允许的情况下,生成广泛的衍生变量库:
    • 原始算术:差值、比率、反比率、份额、相对差值、均值、和、最小值/最大值、绝对差值。
    • 窗口和趋势特征:短窗口/长窗口比率、月平均值、月加速度、近期与历史差距。
    • 变换:对数、截断/缩尾、百分位排名、缺失/特殊值指示器。
    • WOE组合:WOE和、WOE差值、WOE乘积、WOE最小值/最大值、WOE绝对差距。
    • 树组合:从2-3个强变量构建的2到3层决策树叶特征或紧凑规则桶。
    • 组交互:同族信贷、查询、使用率、逾期、余额和企业年龄组合。
  • 跟踪每个衍生变量的可部署性。当多个候选变量具有相似的验证/OOT性能时,优先选择更简单的原始公式,但默认不排除WOE组合或树组合。
  • 默认情况下,让衍生变量参与筛选和模型选择。仅当衍生变量能改善验证/OOT性能、稳定性或显著提高可解释性时,才要求其在最终模型中入选;否则,报告衍生变量已生成但被拒绝。
  • 以可部署的形式记录衍生公式,使用源特征而不仅仅是生成的显示名称。
  • 每当生成衍生变量时,在最终交付物中添加一个衍生变量审计表或工作表,包括公式、父变量、可部署性、筛选状态、IV和最终选择状态。

默认参数

除非用户提供替代方案,否则使用以下默认值。

  • 评分卡:
    • 特征上限:最终变量不超过15个。
    • 分箱上限:每个特征不超过7个分箱,尽可能包括缺失/特殊分箱。
    • 分数尺度:base_score = 600,odds = 0.05,pdo = 60。
    • 特征筛选:除非强制保留,否则移除95%以上相同值的变量;除非强制保留,否则移除分箱IV低于0.05的变量;检查WOE趋势和业务逻辑。
    • 相关性阈值:标记绝对相关性高于0.5的变量对。
    • 多重共线性:使用逐步逻辑回归、系数符号检查和VIF。
  • LightGBM基线:
    • 目标:除非用户选择了回归/排序,否则为二分类。
    • 典型起始参数:learning_rate 0.03-0.08,num_leaves 15-63,max_depth 3-7或使用小叶子数不加限制,min_data_in_leaf 100-1000(取决于样本量),feature_fraction 0.7-0.9,bagging_fraction 0.7-0.9,bagging_freq 1,lambda_l1 0-5,lambda_l2 0-20,在验证集上早停。
  • XGBoost基线:
    • 典型起始参数:eta 0.03-0.08,max_depth 3-6,min_child_weight 20-200,subsample 0.7-0.9,colsample_bytree 0.7-0.9,gamma 0-5,reg_alpha 0-5,reg_lambda 1-20,在验证集上早停。
  • 线性/逻辑回归:
    • 适当地标准化或WOE变换特征。
    • 在检查系数稳定性和验证性能后,调整正则化强度和惩罚项。

分箱与WOE

  • 仅在训练集上拟合WOE分箱。将相同的分箱边界和缺失分箱应用于验证集和OOT。
  • 使用决策树、分位数和手动/业务知识分箱策略。
  • 记录每个分箱的边界、样本量、不良率、WOE和IV。
  • 检查WOE单调性或业务可解释的趋势;如果不满足,合并或调整分箱。
  • 对于评分卡,确保所有分箱的WOE方向与业务预期一致(例如,高风险组应具有正WOE或负WOE,具体取决于目标定义)。

模型诊断与验证

  • 在训练集、验证集和OOT上计算以下指标:
    • 区分度:AUC、KS、基尼系数。
    • 稳定性:PSI、特征分布偏移、时间段上的分数分布。
    • 校准度:校准图、可靠性曲线、Hosmer-Lemeshow检验。
    • 可解释性:特征重要性(增益、分裂、系数)、SHAP值、部分依赖图。
    • 部署性:变量可用性、计算延迟、公式透明度。
  • 报告训练集、验证集和OOT之间的所有性能指标,并标记任何显著退化。
  • 对于评分卡,验证分数尺度和点数分配是否符合预期。
  • 进行敏感性分析,了解关键假设变化的影响。

报告输出

最终交付物应为结构化报告,包括:

  1. 执行摘要:建模目标、方法论和关键发现。
  2. 数据描述:数据源、样本量、时间段、排除条件。
  3. 划分方案:训练集/验证集/OOT的定义和样本量。
  4. 特征工程:原始特征、衍生特征、筛选步骤、最终入选特征。
  5. 模型开发:模型家族、参数、训练过程、最终参数。
  6. 模型验证:在训练集、验证集和OOT上的区分度、稳定性、校准度指标。
  7. 评分解释:评分尺度、点数分配、评分卡评分矩阵(如果适用)。
  8. 策略建议(可选):截止点表、审批率、策略规则。
  9. 附录:详细指标表、变量字典、衍生公式、代码片段。

根据用户的偏好和接收阶段的确认,报告应以中文或英文生成。

関連スキル