村口小卖部的老张,经营了二十年,全靠一本“良心账本”决定给谁赊账。他记得谁家月底总来赊米、谁三个月才结一次账、谁上回说月底还却拖到过年。这些零散的观察,就是最原始的“信用评分”。后来他开了连锁超市,顾客从街坊变成几百万陌生人——老张没法挨个见面,只能把所有经验浓缩成一套统一的打分规则:输入收入、负债、还款历史这些“线索”,输出“大概率能还”或“大概率会赖账”。这就是信用评分模型。本文带你完整体验一次建模全流程:特征怎么选、模型怎么训练、概率怎么变成 300–850 的分数、模型上线后怎么验证,以及如何向监管证明“你拒绝这个人是合理的”。学完之后,你会理解信用评分从数据到上线的完整链路。

岗位关联

学完本文,你将掌握特征工程、逻辑回归、分数校准与模型监控的核心方法,这是金融风控 AI 岗位的基本功,也是理解银行信贷业务智能化的钥匙。

目录
  1. 可视化演示
  2. 评分卡原理
  3. 特征工程
  4. 逻辑回归
  5. 机器学习模型
  6. 分数校准
  7. 模型评估
  8. 可解释监管
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

信用评分模型流程——特征→模型→评分→风险等级 特征输入:征信+行为+网络多维特征 XGBoost: 梯度提升决策树集成 评分校准:Platt Scaling概率校准 风险等级:A/B/C/D分级授信 Score = f(credit, behavior, network) → P(default) → Grade

评分卡原理

老张的账本上其实藏着一个朴素的数学判断:他嘴上说“这人看着靠谱”,心里算的却是“十次里有九次还上了”。靠谱程度,说到底是一个概率。信用评分卡的第一步,就是把这种直觉翻译成数字语言。

信用评分模型先用历史数据估算每个借款人的违约概率 p,再通过 p 推出“好坏比 odds”。odds 相当于博彩里的赔率:它告诉我们“违约”和“守约”谁更可能发生。p 越大,odds 越大,风险越高。

在实践中,评分卡分为申请评分卡、行为评分卡和催收评分卡三类,分别用在贷前、贷中、贷后。它们的共同点都是“输入特征,输出分数”。早期银行用纸笔打分表,今天用逻辑回归甚至梯度提升树,但底层“概率→分数”的思路从未改变。

老张可能没学过概率论,但他心里那杆秤,就是一台活生生的评分模型——只不过现在,AI 把这杆秤搬进了服务器,能同时给几百万个陌生街坊称重。

odds=p1−p\text{odds} = \frac{p}{1-p}
odds 表示违约与守约的“赔率”。p=0.5 时 odds=1,说明好坏各半;p=0.9 时 odds=9,说明违约风险相当高。
  1. 违约概率 pp 是模型估算的“这个人在未来一段时间赖账的可能性”,取值在 0 到 1 之间,p 越大风险越高。
    p∈[0,1]p \in [0,1]
  2. 守约概率 1-p既然总共只有守约和违约两种结果,守约的概率就是 1-p,两者相加等于 1。
    1−p1-p
  3. 好坏比 odds把违约概率除以守约概率,得到“坏与好的比值”。这个比值后面会通过取对数,变成信用评分卡上的分数刻度。
    p1−p\frac{p}{1-p}

特征工程

老张观察的“线索”里,有些管用,有些是噪音。“穿得体面”未必代表还得起钱,“每次结账都当天结清”才是硬指标。筛选线索,就是特征工程要干的事。

原始数据五花八门:年龄、收入、负债、逾期次数、查询次数,动辄上百个变量。不能直接塞进模型,要先做数据清洗(处理缺失值和异常值),再把连续变量分箱,然后计算每个分箱的 WOE 值。WOE 的全称是 Weight of Evidence(证据权重),它回答一个问题:这个分组里,好客户相对坏客户有多集中?

入模前,每个变量都用 WOE 值替代原始值,再用 IV(Information Value,信息值)衡量变量预测力——IV 由各分箱 WOE 加权求和而来。经验上 IV 大于 0.1 值得入模,大于 0.3 预测力很强。这一步通常能砍掉一半以上无效变量。

老张的账本里,“赊账后多久结清”这类线索的“IV 值”极高,而“今天穿什么颜色衣服”几乎没有区分力。特征工程,就是把账本里真正会呼吸的线索挑出来,把写在墙上的碎碎念扔进垃圾桶。

WOE=ln⁡(Ngood,i/NgoodNbad,i/Nbad)\text{WOE} = \ln\left(\frac{N_{\text{good},i} / N_{\text{good}}}{N_{\text{bad},i} / N_{\text{bad}}}\right)
WOE 为正,说明该组好客户占比高、风险低;为负则说明该组坏客户偏多、风险高。
  1. 好客户占比第 i 个分箱中的好客户数量,除以全体好客户总数,衡量好客户在这个分箱里的集中度。
    Ngood,iNgood\frac{N_{\text{good},i}}{N_{\text{good}}}
  2. 坏客户占比同理,用第 i 个分箱的坏客户数除以全体坏客户总数。
    Nbad,iNbad\frac{N_{\text{bad},i}}{N_{\text{bad}}}
  3. 取自然对数对好占比与坏占比的比值取 ln。比值大于 1 时 WOE 为正,说明该分箱更安全;小于 1 时 WOE 为负,说明该分箱风险更高。
    ln⁡(Ngood,i/NgoodNbad,i/Nbad)\ln\left(\frac{N_{\text{good},i} / N_{\text{good}}}{N_{\text{bad},i} / N_{\text{bad}}}\right)

逻辑回归

老张想给自己那杆秤写个公式。他发现每个线索都该有个“分量”:历史逾期要狠狠地扣分,收入稳定稍微加点分。把这些分量的加权和拿出来,就是逻辑回归的雏形。

逻辑回归先把特征线性组合成一个“原始分” z,再用 Sigmoid 函数(一种把任意实数压缩到 0 到 1 之间的 S 形曲线)把它变成概率。这就像老张心里先飞快地心算一个总印象分,再把它翻译成“靠不靠谱”的把握程度。

训练时用极大似然估计:调整所有 β,让“好客户被预测为好、坏客户被预测为坏”的整体概率最大。逻辑回归最大的优点是每个 β 都能直接读出方向——逾期次数的 β 为正,说明逾期越多违约概率越高。

老张的秤上,每个指标的“分量”就是 β。分量一旦定下来,任何人都能照着算,不用猜。这就是传统评分卡几十年不倒的原因:透明、可复核,连村委会主任都能看懂。

p=11+e−(β0+∑i=1kβixi)p = \frac{1}{1 + e^{-(\beta_0 + \sum_{i=1}^{k}\beta_i x_i)}}
Sigmoid 函数像一台“压路机”,把一条可正可负的直线,压成一条永远在 0 和 1 之间的 S 形曲线,输出正好是违约概率。
  1. 线性组合 z每个特征 xᵢ 乘以权重 βᵢ,再加偏置 β₀,得到原始得分 z。
    z=β0+β1x1+⋯+βkxkz = \beta_0 + \beta_1 x_1 + \cdots + \beta_k x_k
  2. 指数变换 e⁻ᶻ对 z 取负再取指数。z 越大,e⁻ᶻ 越小,分母越接近 1。
    e−ze^{-z}
  3. 归一化得到概率用 1 除以 1+e⁻ᶻ,结果必然落在 0 到 1 之间。z 趋于正无穷时 p 趋于 1,z 趋于负无穷时 p 趋于 0。
    11+e−z\frac{1}{1 + e^{-z}}

机器学习模型

老张的儿子小张赶时髦,说“爸,别手动定分量了,让电脑自己从账本里找规律”。于是他请来一群“决策树工人”,每棵树负责从数据里挖一条规律,最后集体投票——这就是随机森林。再进一步,让后一棵树专门纠正前面所有树的错误,这就是 XGBoost 的思路。

XGBoost 像一场“带纠错的接力赛”:第一棵树预测,第二棵树专门学第一棵树的错误,第三棵再学前两棵剩下的错误……每一轮都比上一轮更接近真相。它的目标函数由两部分组成:预测损失和复杂度惩罚。

树模型能自动捕捉非线性关系:比如“年轻+高负债”和“中年+高负债”的风险完全不同,逻辑回归需要手工构造交叉特征,而树模型自己就能分叉出来。但代价是黑盒、难解释。生产环境里,银行常把树模型和逻辑回归做对比择优,再用 SHAP 等技术给树模型补上“解释能力”。

小张的电脑把账本翻了个底朝天,找到“每月 25 号后连续三天不结账的人,下个月大概率也不结”这种人类容易忽略的规律。但老张皱了皱眉:规律好用,可如果有人来问“凭什么不给我赊账”,电脑答得上来吗?这个疑问,引出了后面可解释性的话题。

L=∑i=1nl(yi,y^i)+∑k=1KΩ(fk)\mathcal{L} = \sum_{i=1}^{n} l(y_i, \hat{y}_i) + \sum_{k=1}^{K} \Omega(f_k)
目标函数 = 预测损失 + 模型复杂度惩罚。前者保证“学得准”,后者防止“学过头”(过拟合)。
  1. 损失项衡量预测值 ŷᵢ 和真实标签 yᵢ 的差距,例如对数损失。差距越小越好。
    ∑i=1nl(yi,y^i)\sum_{i=1}^{n} l(y_i, \hat{y}_i)
  2. 正则项对每棵树的复杂度(叶子数量、叶子权重)做惩罚,逼着模型不敢把训练集整本背下来。
    ∑k=1KΩ(fk)\sum_{k=1}^{K} \Omega(f_k)
  3. 目标函数损失与正则之和。梯度提升的每一轮都在最小化这个目标。
    L=∑i=1nl(yi,y^i)+∑k=1KΩ(fk)\mathcal{L} = \sum_{i=1}^{n} l(y_i, \hat{y}_i) + \sum_{k=1}^{K} \Omega(f_k)

分数校准

概率是好东西,但业务方不习惯听“违约概率 0.03”,他们习惯看“分数 680”。老张也把秤改成了 0 到 100 分制,并约定 60 分及格才能赊账。把模型输出的概率换算成业务分数,就是分数校准。

信用评分卡行业的标准做法:把好坏比取对数后做线性变换。注意这里的好坏比用守约概率除以违约概率,数值越大代表越安全。分数越高,风险越低。

校准完成后,分数刻度就固定了:比如 650 分对应的好坏比是 20:1,700 分是 40:1,每 50 分翻一倍。然后风控策略师根据资金成本和风险偏好设定阈值——多少分以上自动通过,多少分以下直接拒绝,中间的人工审核。

老张把秤调成了“0-100 分制”,60 分以上赊账,55 分以下只收现金。一个清晰、好沟通的刻度,让“拒绝赊账”不再是一句伤感情的话,而是一串可以解释的数字。

Score=offset+factor×ln⁡(pgoodpbad)\text{Score} = \text{offset} + \text{factor} \times \ln\left(\frac{p_{\text{good}}}{p_{\text{bad}}}\right)
分数不是直接复制概率,而是对好坏比取对数后线性伸缩,这样分数分布更接近正态,也方便设定审批红线。
  1. 好坏比 odds用守约概率 p_good 除以违约概率 p_bad,值越大说明客户越安全。
    odds=pgoodpbad\text{odds} = \frac{p_{\text{good}}}{p_{\text{bad}}}
  2. 取对数 ln(odds)把比值压缩成线性刻度,避免概率靠近 0 或 1 时分数剧烈跳动。
    ln⁡(odds)\ln(\text{odds})
  3. factor 斜率通常设定 pdo=50,意思是“分数每增加 50,好坏比翻倍”,因此 factor 由 pdo 除以 ln2 得到。
    factor=pdoln⁡2\text{factor} = \frac{\text{pdo}}{\ln 2}
  4. offset 截距决定基准分。例如设定“好坏比等于 50 时,分数为 600”,由此反推出 offset。
    offset=Score0−factor×ln⁡(odds0)\text{offset} = \text{Score}_0 - \text{factor} \times \ln(\text{odds}_0)

模型评估

新刻度上线前,老张得先自证“这套分数真的好用”。他翻出过去五年的旧账本,把老客户按分数排队,看是不是分数越低的人越容易赖账。这套“翻旧账”的体检,对应模型评估中的判别力指标。

最常用的两个判别力指标是 AUC 和 KS。AUC 是 ROC 曲线下的面积,衡量模型把好客户和坏客户分开的能力:0.7 以上可接受,0.8 以上很强。KS 是累计好客户占比与累计坏客户占比的最大差距,一般大于 0.3 就算良好。这两个指标回答的都是同一件事:分数能不能把好人和坏人排开队。

但判别力只代表“现在”,客户群会随时间漂移。上线后必须用 PSI(Population Stability Index,群体稳定性指标)监控分数分布是否和建模时一致:

老张每个月都会把新客户按分数重新排队,和上个月对比——如果某个月高分段突然挤进来一堆人,他就会去查是不是隔壁村新开了工厂,客群结构变了。这就是 PSI 监控的日常版本。

PSI=∑i=1n(Ai−Ei)×ln⁡(AiEi)\text{PSI} = \sum_{i=1}^{n} (A_i - E_i) \times \ln\left(\frac{A_i}{E_i}\right)
PSI < 0.1 说明分布稳定;0.1 ~ 0.25 需要警惕;> 0.25 说明模型可能失效,要重新训练或调整。
  1. 实际占比与预期占比把分数等分成 n 个区间,统计当前月份每个区间的人数占比 Aᵢ,以及建模样本中的占比 Eᵢ。
    Ai=第i箱实际人数总人数A_i = \frac{\text{第}i\text{箱实际人数}}{\text{总人数}}
  2. 占比之差实际占比减去预期占比,代表该区间客户浓度的偏移方向和幅度。
    Ai−EiA_i - E_i
  3. 对数加权求和乘以 ln(Aᵢ/Eᵢ) 放大差异,最后对所有分箱求和,得到 PSI。
    PSI=∑i=1n(Ai−Ei)×ln⁡(AiEi)\text{PSI} = \sum_{i=1}^{n} (A_i - E_i) \times \ln\left(\frac{A_i}{E_i}\right)

可解释监管

有个街坊被拒绝赊账,去村委会告状。老张不能只说“这是上面定的”,他得拿出理由:你在 2019 年有一笔账拖了 3 个月才还,负债又高,所以分低。把决策原因交代清楚,就是可解释性。

现代做法是用 SHAP(SHapley Additive exPlanations)等技术,把每个特征对预测结果的贡献“分锅到人”。它的核心思想非常朴素:预测值 = 全体客户的基准值 + 每个特征各自的贡献之和。

监管层面,互联网贷款管理办法、个人信息保护相关规范都要求:银行必须能解释授信决策,不得对特定群体产生歧视。因此从业者既要追求精度,也要保住“说得出理由”的能力。实际操作中还要分群检验通过率差异,比如年龄、性别、地域各分群的获批比例不能有明显偏离。

老张最后把那杆 AI 秤换成了“透明玻璃秤”,里面每个零件都看得见转了多少圈。街坊服气,村委会也放心。一个好的信用评分模型,不只是准,还得让人信。

g(z′)=ϕ0+∑i=1Mϕizi′g(z') = \phi_0 + \sum_{i=1}^{M} \phi_i z'_i
SHAP 把一次预测拆解成“基准分 + 每个特征的贡献值”,让黑盒模型也能给出可解释的原因。
  1. 基准预测 φ₀全体客户的平均预测值,是所有解释的起点。
    ϕ0=E[f(x)]\phi_0 = E[f(x)]
  2. 特征贡献 φᵢ第 i 个特征在本次预测中的边际贡献,来自对所有特征子集的加权平均。
    ϕi=∑S⊆F∖{i}∣S∣!(M−∣S∣−1)!M![f(S∪{i})−f(S)]\phi_i = \sum_{S \subseteq F \setminus \{i\}} \frac{|S|! (M-|S|-1)!}{M!} \left[ f(S \cup \{i\}) - f(S) \right]
  3. 可加解释模型 g把基准值和所有特征贡献加起来,就还原出模型的预测值。
    g(z′)=ϕ0+∑i=1Mϕizi′g(z') = \phi_0 + \sum_{i=1}^{M} \phi_i z'_i

AI 应用场景

银行零售信贷的自动化审批

阶段:贷前申请评分

解决的问题:传统人工审批慢、标准不统一,一个客户经理一个尺度。AI 用申请评分卡对每笔贷款自动打分,结合策略规则秒级返回“通过 / 拒绝 / 人工审核”。

具体案例:某消费金融公司每天涌入 10 万笔线上借款申请,过去靠人工初审要 2 天。上线逻辑回归评分卡后,审批压缩到 3 分钟,坏账率下降约 15%,人力成本大幅降低。

存量客户的额度管理与动态定价

阶段:贷中行为评分

解决的问题:客户的还款能力会变化,静态额度跟不上风险变化。行为评分卡利用还款行为、消费流水、多头借贷等数据持续打分,动态调整额度与利率。

具体案例:某互联网银行对小微企业主按日更新行为分:经营旺季自动临时提额,风险信号升高时自动降额,实现“一人一策”的精细化风险管理。

监管报送与模型审计

阶段:模型治理与解释

解决的问题:客户投诉“为什么拒我?”,监管检查“你的模型公平吗?”。用 SHAP 生成每个拒贷决策的可读解释,把“模型说不清楚”变成“每条决策都有据可查”。

具体案例:某股份制银行搭建模型风险管理平台,所有信贷模型上线前必须通过可解释性与公平性测试,拒贷解释报告自动生成,客诉处理效率提升 60%。

Python 演示

python51 行
import numpy as npimport pandas as pdfrom sklearn.linear_model import LogisticRegression  def calc_woe_iv(df, feature, target):    """连续特征分箱后计算 WOE 与 IV,变量越能区分好坏客户,IV 越大"""    df = df.copy()    df['bin'] = pd.qcut(df[feature], 4, duplicates='drop')    grouped = df.groupby('bin', observed=False)[target].agg(['sum', 'count'])    grouped.columns = ['bad', 'total']    grouped['good'] = grouped['total'] - grouped['bad']    good_pct = grouped['good'] / grouped['good'].sum()    bad_pct = grouped['bad'] / grouped['bad'].sum()    grouped['woe'] = np.log(good_pct / bad_pct)    grouped['iv'] = (good_pct - bad_pct) * grouped['woe']    return grouped  def prob_to_score(prob, p0=0.02, score0=600, pdo=50):    """概率转分数:分数每高 50,好坏比翻倍"""    odds0 = p0 / (1 - p0)    factor = pdo / np.log(2)    offset = score0 - factor * np.log(odds0)    odds = prob / (1 - prob)    return np.round(offset + factor * np.log(odds))  def main():    rng = np.random.default_rng(42)    n = 2000    income = rng.normal(12000, 4000, n)    age = rng.normal(38, 10, n)    debt_ratio = rng.uniform(0.1, 0.9, n)    late_times = rng.poisson(0.8, n)    z = -3 + 0.00012 * income + 0.02 * age - 2.5 * debt_ratio - 0.6 * late_times    target = (rng.random(n) < 1 / (1 + np.exp(-z))).astype(int)    df = pd.DataFrame({'income': income, 'age': age, 'debt_ratio': debt_ratio,                       'late_times': late_times, 'target': target})    features = ['income', 'age', 'debt_ratio', 'late_times']    model = LogisticRegression()    model.fit(df[features], df['target'])    prob_good = model.predict_proba(df[features])[:, 0]    df['score'] = prob_to_score(prob_good)    print('逻辑回归系数:', dict(zip(features, model.coef_[0])))    print('分数分位数:', df['score'].quantile([0.25, 0.5, 0.75]).round().to_dict())    print(calc_woe_iv(df, 'debt_ratio', 'target').round(4))  if __name__ == '__main__':    main()
目的:完整模拟一次信用评分建模——生成带好坏标签的模拟客户数据,训练逻辑回归,把违约概率校准成信用分数,再计算单个变量的 WOE 与 IV。
  1. model.fit(df[features], df['target'])用历史好坏客户数据训练逻辑回归,让权重自动拟合,就像老张根据旧账本总结经验。
  2. prob_good = model.predict_proba(df[features])[:, 0]取出每个客户“守约”的概率,这是分数的原材料。
  3. df['score'] = prob_to_score(prob_good)把守约概率换算成 300-850 区间的信用分数,完成分数校准。
  4. factor = pdo / np.log(2)设定“每高 50 分好坏比翻倍”的刻度斜率。
  5. offset = score0 - factor * np.log(odds0)反推截距,让参考点(odds=50 时 600 分)精确落位。
  6. grouped['woe'] = np.log(good_pct / bad_pct)计算每个分箱的 WOE,量化该分箱的风险高低。
  7. grouped['iv'] = (good_pct - bad_pct) * grouped['woe']用 IV 值衡量变量区分度,IV 越大越值得入模。

常见误区

误区我信用分 850 分,银行肯定会给我批贷,而且我肯定不会违约。

正解信用分数是违约概率的映射,描述的是统计规律而非确定性结论。850 分对应的是“每 1000 个类似客户里坏账极少”,但落到单一个体,仍存在不确定性。老张说“这人有九成把握还钱”,不代表这人绝对不会赖账。风险管理的本质就是在不确定性中做概率决策。

为何常见:银行的宣传和日常语感把“高信用分”等同于“诚信品德好”,让人误以为分数是确定性判官。

误区XGBoost 和深度学习肯定比逻辑回归准,不用逻辑回归就是落伍。

正解金融场景里逻辑回归因为可解释、稳定、省算力,至今仍是信贷审批的主力模型。树模型精度可能更高,但黑盒特性会带来监管压力和客诉风险。老张选秤也一样:电子秤先进,可街坊看不懂内部构造,反而更信任透明玻璃秤。模型选型是“精度、解释、稳定”的三角权衡。

为何常见:看到 Kaggle 排行榜上复杂模型刷分,误以为竞赛经验直接等价于生产环境经验。

误区把逻辑回归输出的违约概率 0.03 直接拿给业务方,说“这个客户的信用分是 0.03”。

正解概率需要经过 offset 和 factor 的线性映射,才能变成 300-850 的业务分数。概率 0.03 和 0.05 差得很小,但换算成好坏比和分数后差异会被放大,便于设定审批阈值。就像摄氏度和华氏度读数不同,但反映的是同一温度;分数是概率的另一种刻度,不能混用。

为何常见:入门时只学模型原理,没接触过信用评分卡特有的分数刻度设计,容易把“模型输出”和“业务分数”画等号。

误区训练集上 AUC 0.99,觉得自己模型天下无敌,直接上线。

正解训练集 AUC 极高往往意味着过拟合——模型把训练样本里的噪音都背下来了。真正的检验要看验证集 AUC 和上线后的 PSI。如果客群漂移,PSI 爆表,再高的 AUC 也等于零。老张翻旧账时发现“只看训练数据”的秤到了新街坊身上失灵,就是这个道理。

为何常见:新手容易把“训练集拟合程度”和“模型泛化能力”混为一谈,缺少样本外验证的意识。

误区把 200 个原始变量全丢进模型,认为多总比少好。

正解冗余特征会带来共线性和噪音,既拖慢训练,又降低稳定性。标准做法是用 WOE 编码 + IV 筛选,保留预测力强、业务含义清晰的变量。老张的经验里,“结账速度”和“赊账次数”高度相关,留一个就够,全记在本子上反而眼花。

为何常见:很多教程只讲“喂数据给模型”,不讲特征筛选,导致初学者误以为特征工程只是搬运工的工作。

面试题

Q1. WOE 编码中的“好客户占比”指的是?

单选题 · easy

  • A.该分组好客户占全体客户的比例
  • B.该分组好客户占全体好客户的比例← 正确答案
  • C.全体好客户占该分组客户的比例
  • D.全体好客户占全体坏客户的比例

答案:B。WOE 的分子是“该分组好客户数 ÷ 全体好客户数”,衡量好客户在该分箱的集中度,所以 B 正确。A 把分母换成了全体客户,C 颠倒了分子分母,D 比较的是全体好坏客户,均不符合定义,老张账本里“这个月结清的人占全部老熟人的比例”才是 WOE 的直觉。

Q2. 信用评分建模中,常用的特征变量包括哪些?

多选题 · mid

  • A.借款人年龄与收入水平← 正确答案
  • B.客户星座与血型
  • C.历史逾期还款次数← 正确答案
  • D.负债收入比指标← 正确答案

答案:ACD。年龄、收入、逾期次数、负债收入比都与还款能力和意愿强相关,是评分卡常用变量。星座血型没有经济学含义和区分度,属于噪音。变量筛选靠 IV 值说话,就像老张只记录和赊账真正相关的线索,而不是客户的穿着打扮。

Q3. 逻辑回归模型直接输出的核心结果是?

单选题 · easy

  • A.借款人的最终信用评分
  • B.借款人的违约概率值← 正确答案
  • C.借款人的授信额度
  • D.借款人的还款期限

答案:B。逻辑回归通过 Sigmoid 函数把线性组合压缩到 0~1 之间,直接输出违约概率。信用分数是在概率基础上经过 offset/factor 校准得到的;授信额度和期限属于策略层决策,不是模型输出。这和“老张心里先估个把握程度,再决定赊多少”是两步。

Q4. 分数校准公式中,factor 的作用是控制?

单选题 · mid

  • A.训练样本的数据质量
  • B.分数随好坏比变化的敏感程度← 正确答案
  • C.基准分数对应的好坏比
  • D.模型特征数量的多少

答案:B。factor 是分数对 ln(odds) 的斜率,决定了好坏比每变化多少、分数动多少分。pdo 设定为 50 分翻倍时,factor = 50/ln2。它和 offset 配合,把概率映射到业务分数刻度。

Q5. 下列哪些指标用于评估信用评分模型的表现?

多选题 · mid

  • A.页面响应耗时长短
  • B.AUC 曲线下方面积← 正确答案
  • C.KS 累计分布差距← 正确答案
  • D.PSI 分布稳定性← 正确答案

答案:BCD。AUC 和 KS 衡量模型把好坏客户分开的能力,PSI 监控上线后评分分布的稳定性,三者是评分模型“体检”的标准项目。页面响应耗时是工程性能指标,和模型预测能力无关。

Q6. PSI 指标主要用于监测信用评分模型的哪个方面?

单选题 · hard

  • A.训练样本的标注质量
  • B.单个特征的重要程度
  • C.评分分布随时间的稳定性← 正确答案
  • D.审批流程的耗时长短

答案:C。PSI 对比当前分数分布与建模时分布的差异,衡量客群漂移程度,是模型稳定性监控的核心指标。若 PSI > 0.25,说明模型可能失效。它不回答特征重要性(SHAP),也不评估样本标注质量。

Q7. 银行更偏好可解释模型的核心原因是?

单选题 · mid

  • A.可解释模型训练速度更快
  • B.满足监管要求并能向客户说明拒贷原因← 正确答案
  • C.可解释模型精度一定更高
  • D.可解释模型不需要特征工程

答案:B。监管要求信贷决策可解释、可申诉,客户也想知道被拒理由,因此可解释性是刚需。可解释模型不一定更快、更准,更不可能免掉特征工程。老张把秤换成透明玻璃秤,就是为了让人心服口服。

Q8. 关于机器学习模型与逻辑回归,下列说法正确的是?

多选题 · hard

  • A.树模型能自动捕捉非线性关系← 正确答案
  • B.逻辑回归系数可直接解释特征方向← 正确答案
  • C.树模型在金融场景一定优于逻辑回归
  • D.逻辑回归对异常值更敏感← 正确答案

答案:ABD。树模型通过分叉天然处理非线性;逻辑回归的 β 正负直接给出风险方向;逻辑回归基于线性假设,极端异常值会明显拉扯系数。C 错在“一定”——金融场景还要权衡解释性和稳定性,逻辑回归仍是主力。

Q9. 好坏比 odds = p_good / p_bad,当守约概率为 0.9 时,好坏比是?

单选题 · easy

  • A.1,好坏风险完全相当
  • B.0.9,数值等于守约概率
  • C.9,好客户概率远高于坏客户← 正确答案
  • D.0.5,坏客户更占上风

答案:C。守约概率 0.9,违约概率 0.1,odds = 0.9/0.1 = 9,意思是守约可能性是违约的 9 倍。如果 odds 是 1,才是好坏各半。

Q10. 信用评分模型上线后,持续监控系统应关注哪些内容?

多选题 · mid

  • A.分数分布的 PSI 漂移← 正确答案
  • B.建模代码的行数长短
  • C.策略切点下的拒绝率← 正确答案
  • D.好坏客户的分数重叠度← 正确答案

答案:ACD。上线后要持续看 PSI 是否漂移、拒绝率是否符合业务预期、好坏客户分数分布是否仍然可分(对应 AUC/KS 衰减情况)。代码行数属于开发维护范畴,与模型风控表现无关。