风控模型开发验证报告

实验 ID: 20261020-160754-6ade · 生成时间: 2026-10-20 16:07 (GMT+8) · 报告结构:标准14节模型开发验证模板

00 模型概要信息

项目内容
模型名称exp_20261020-160754-6ade
开发完成日期2026-10-20
模型开发人员(人工填写)
模型开发人员邮件地址(人工填写)
模型验证人员(人工填写)
模型验证人员邮件地址(人工填写)
模型应用环节preloan_approval
模型应用频率(人工填写)
模型开发背景及业务用途描述Local MVP full pipeline run.
模型适用产品/客户描述(人工填写)
模型重开发原因(如有)—
模型拟监控频率(人工填写)
模型路线LR + WOE 评分卡
目标变量flag_30
实验 ID20261020-160754-6ade
待补充:模型开发/验证人员、应用频率、产品描述等字段需人工补填。

01 模型设计

建模数据样本窗口

项目内容
切分方式外部 data_flag 划分(TRAIN 内 6/4 随机开发/测试,VALI 跨时间,PSI 时点)
开发样本(Train)窗口2025-01-01 ~ 2025-04-19
预留验证样本窗口2025-01-01 ~ 2025-04-19
跨时间验证样本窗口2025-04-19 ~ 2025-05-25
PSI时点样本窗口2025-05-26 ~ 2025-06-30

模型好坏定义

项目内容
目标变量flag_30
坏样本(BAD=1)占比22.06%
好样本(BAD=0)占比—
不确定样本本流程要求目标变量已预计算为 0/1 二值,不确定样本请在上游合并口径

样本排除规则

序号排除规则说明
1credit_no主键/时间/口径字段,不入模
2apply_dt主键/时间/口径字段,不入模
3flag_30 为空排除 0 行

滚动率分析

待补充:滚动率分析(M0→M6+ 状态迁移矩阵)需要逾期状态口径数据,当前流程目标变量为上游已计算的二值标签,暂未生成。
待补充:表现窗口及坏账率分析、模型细分定义需结合业务口径人工补充。

02 数据流

开发时点 — 样本排除

类别样本数
全部样本30000
排除:目标变量为空0
排除后样本30000

注:按照01模型设计的排除规则统计;当前流程的排除项为目标变量缺失。

总体样本概况

数据集样本量好样本坏样本坏样本率占比
全部样本3000023383661722.06%100.00%
开发样本108018453234821.74%36.00%
测试样本71995635156421.73%24.00%
训练+测试样本1800014088391221.73%60.00%
跨时间验证样本60004624137622.93%20.00%
PSI时点样本600046711329—20.00%

开发/预留验证样本交叉统计

类别开发+预留样本数开发样本数开发占比预留验证样本数预留验证占比
好14088845360.00%563540.00%
坏3912234860.02%156439.98%
合计180001080160.01%719939.99%

细致变量分析(预分箱口径,开发样本)

变量IV缺失率取值集中度最大相关系数
risk_score0.14340.00%0.91%0.9986
risk_score_v20.13900.00%0.94%0.9986
bh_a0010.13820.00%0.15%0.9298
ScoreCust2_v20.13210.00%1.14%0.9952
ScoreCust20.12770.00%1.13%0.9952
bh_a0090.12710.00%1.73%0.8070
cust_seg20.08480.00%30.86%0.6662
avg_tnr0.08410.00%1.92%0.6947
query_cnt_3m0.07320.00%16.53%0.5822
income_grade0.06320.00%31.12%0.5458
repay_amt_6m_grade0.06070.00%27.69%0.5342
rare_field0.033096.32%0.76%0.0812
tenure_m0.02170.00%5.50%0.3328
card_usage_ratio0.02140.00%1.69%0.3613
bank_997_cnt_3m0.02050.00%34.62%0.2757
edu_level0.00040.00%42.13%—
region_code0.00040.00%20.63%—
flag_special0.00000.00%95.41%0.0380

注:共 18 个候选变量,按 IV 降序展示前 18 个;集中度 = 最大频次取值样本数 ÷ 非空样本数;相关性为皮尔逊(仅数值变量),完整数据见 variable_detail.json。

03 单变量分析(细分箱)

risk_score — IV 0.1880,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 519.5]255524141415.52%0.3384
2(519.5, 564.5]3183275243113.54%0.1888
3(564.5, 600.5]2574194662824.40%-0.0498
4(600.5, 643.5]1752106069239.50%-0.2396
5(643.5, inf]73728145661.87%-0.2638
bh_a001 — IV 0.1854,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 280.0500030517578]394136413007.61%0.3938
2(280.0500030517578, 332.75]3801305075119.76%0.0488
3(332.75, 367.75]1739115958033.35%-0.1591
4(367.75, 394.25]75639236448.15%-0.1814
5(394.25, inf]56421135362.59%-0.2142
risk_score_v2 — IV 0.1841,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 518.5]251123721395.54%0.3336
2(518.5, 563.5]3131271142013.41%0.1897
3(563.5, 602.5]2766209667024.22%-0.0488
4(602.5, 643.5]165399366039.93%-0.2351
5(643.5, inf]74028145962.03%-0.2656
ScoreCust2 — IV 0.1611,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 508.5]17061626804.69%0.2596
2(508.5, 545.5]3198282537311.66%0.2360
3(545.5, 579.5]3393261378022.99%-0.0281
4(579.5, 604.5]152797355436.28%-0.1794
5(604.5, inf]97741656157.42%-0.2967
ScoreCust2_v2 — IV 0.1542,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 507.5]16491574754.55%0.2546
2(507.5, 544.5]3158279436411.53%0.2374
3(544.5, 583.5]3802291289023.41%-0.0401
4(583.5, 606.5]129580249338.07%-0.1769
5(606.5, inf]89737152658.64%-0.2861
bh_a009 — IV 0.1505,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 6.3500001430511475]90243346952.00%-0.2386
2(6.3500001430511475, 8.050000190734863]1648105759135.86%-0.1845
3(8.050000190734863, 9.25]1640118345727.87%-0.0820
4(9.25, 11.449999809265137]3422285556716.57%0.1221
5(11.449999809265137, inf]318929252648.28%0.3231
avg_tnr — IV 0.1066,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 2.149999976158142]92647445248.81%-0.2194
2(2.149999976158142, 3.350000023841858]96160935236.63%-0.1276
3(3.350000023841858, 4.450000047683716]125890335528.22%-0.0706
4(4.450000047683716, 7.3500001430511475]4230339183919.83%0.0499
5(7.3500001430511475, inf]3426307635010.22%0.2859
cust_seg2 — IV 0.1060,4 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 3.5]205618671899.19%0.2166
2(3.5, 4.5]3333282251115.33%0.1501
3(4.5, 5.5]3330250582524.77%-0.0668
4(5.5, inf]2082125982339.53%-0.2705
query_cnt_3m — IV 0.0838,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 0.5]55028826247.64%-0.1355
2(0.5, 2.5]2750187587531.82%-0.1898
3(2.5, 3.5]1785138440122.46%-0.0106
4(3.5, 5.5]3012249252017.26%0.0968
5(5.5, inf]2704241429010.72%0.2311
rare_field — IV 0.0659,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, -0.05299999937415123]1881484021.28%0.0391
2(-0.05299999937415123, 0.3699999898672104]58382034.48%-0.1465
3(0.3699999898672104, 1.0099999904632568]8980910.11%0.2372
4(1.0099999904632568, 1.324500024318695]2619726.92%-0.0279
5(1.324500024318695, inf]36221438.89%-0.1369
income_grade — IV 0.0632,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 3.5]121174346838.65%-0.1736
2(3.5, 4.5]2510176674429.64%-0.1417
3(4.5, 5.5]3361268967219.99%0.0398
4(5.5, 6.5]2503215035314.10%0.1484
5(6.5, inf]121611051119.13%0.1419
repay_amt_6m_grade — IV 0.0607,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 3.5]1647104760036.43%-0.1915
2(3.5, 4.5]2268163463427.95%-0.1049
3(4.5, 5.5]2991238460720.29%0.0305
4(5.5, 6.5]2286194434214.96%0.1227
5(6.5, inf]1609144416510.25%0.1624
bank_997_cnt_3m — IV 0.0246,4 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 0.5]3447289954815.90%0.1392
2(0.5, 1.5]3739292881121.69%0.0012
3(1.5, 2.5]2224165556925.58%-0.0648
4(2.5, inf]139197142030.19%-0.0990
card_usage_ratio — IV 0.0216,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 0.107999999076128]922854687.38%0.1277
2(0.107999999076128, 0.3381499946117401]3589290468519.09%0.0634
3(0.3381499946117401, 0.6137499809265137]44403434100622.66%-0.0242
4(0.6137499809265137, 0.7716499865055084]130992538429.34%-0.0851
5(0.7716499865055084, inf]54133620537.89%-0.0844
tenure_m — IV 0.0159,5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 2.5]69641428240.52%-0.1218
2(2.5, 10.5]117989128824.43%-0.0281
3(10.5, 53.5]77156046166921.63%0.0037
4(53.5, 58.5]6475687912.21%0.0610
5(58.5, inf]564534305.32%0.0937
edu_level — IV 0.0004,4 箱
分组号分栏TotalGoodBadBad RateWOE
1大专3260257468621.04%0.0155
2本科4550355599521.87%-0.0035
3硕士及以上1405108132423.06%-0.0160
4高中及以下1586124334321.63%0.0015
region_code — IV 0.0004,5 箱
分组号分栏TotalGoodBadBad RateWOE
1其他2119165746221.80%-0.0011
2华东2156168547121.85%-0.0018
3华北2119168243720.62%0.0186
4华南2179170147821.94%-0.0033
5西南2228172850022.44%-0.0120
flag_special — IV 0.0000,1 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, inf]108018453234821.74%0.0000

注:统计全部候选变量的自动分箱明细(初分组),按 IV 降序展示前 18 个变量,共 18 个;完整数据见 feature_report.json。

04 单变量分析(粗分箱)

risk_score — 5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 519.5]255524141415.52%0.3384
2(519.5, 564.5]3183275243113.54%0.1888
3(564.5, 600.5]2574194662824.40%-0.0498
4(600.5, 643.5]1752106069239.50%-0.2396
5(643.5, inf]73728145661.87%-0.2638
2026-10-20T16:07:58.327186 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调上升(5.52% → 61.87%),WOE 单调下降(0.3384 → -0.2638),符合风控分箱预期。IV=0.1880,该变量区分度尚可。

WOE 在第 2、3 箱之间穿越 0 线:前 2 箱 WOE>0(客户质量优于整体),后 3 箱 WOE<0(风险高于平均)

第 5 箱((643.5, inf])为极高风险区间:坏率高达 61.87%,策略上应重点管控

avg_tnr — 5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 2.149999976158142]92647445248.81%-0.2194
2(2.149999976158142, 3.350000023841858]96160935236.63%-0.1276
3(3.350000023841858, 4.450000047683716]125890335528.22%-0.0706
4(4.450000047683716, 7.3500001430511475]4230339183919.83%0.0499
5(7.3500001430511475, inf]3426307635010.22%0.2859
2026-10-20T16:07:58.456490 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调下降(48.81% → 10.22%),WOE 单调上升(-0.2194 → 0.2859),符合风控分箱预期。IV=0.1066,该变量区分度尚可。

WOE 在第 3、4 箱之间穿越 0 线:前 3 箱 WOE>0(客户质量优于整体),后 2 箱 WOE<0(风险高于平均)

第 1 箱((-inf, 2.149999976158142])为极高风险区间:坏率高达 48.81%,策略上应重点管控

cust_seg2 — 4 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 3.5]205618671899.19%0.2166
2(3.5, 4.5]3333282251115.33%0.1501
3(4.5, 5.5]3330250582524.77%-0.0668
4(5.5, inf]2082125982339.53%-0.2705
2026-10-20T16:07:58.582270 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调上升(9.19% → 39.53%),WOE 单调下降(0.2166 → -0.2705),符合风控分箱预期。IV=0.1060,该变量区分度尚可。

WOE 在第 2、3 箱之间穿越 0 线:前 2 箱 WOE>0(客户质量优于整体),后 2 箱 WOE<0(风险高于平均)

第 4 箱((5.5, inf])为极高风险区间:坏率高达 39.53%,策略上应重点管控

query_cnt_3m — 5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 0.5]55028826247.64%-0.1355
2(0.5, 2.5]2750187587531.82%-0.1898
3(2.5, 3.5]1785138440122.46%-0.0106
4(3.5, 5.5]3012249252017.26%0.0968
5(5.5, inf]2704241429010.72%0.2311
2026-10-20T16:07:58.702775 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调下降(47.64% → 10.72%),WOE 单调上升(-0.1355 → 0.2311),符合风控分箱预期。IV=0.0838,该变量区分度偏弱但可用。

WOE 在第 3、4 箱之间穿越 0 线:前 3 箱 WOE>0(客户质量优于整体),后 2 箱 WOE<0(风险高于平均)

第 1 箱((-inf, 0.5])为极高风险区间:坏率高达 47.64%,策略上应重点管控

income_grade — 5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 3.5]121174346838.65%-0.1736
2(3.5, 4.5]2510176674429.64%-0.1417
3(4.5, 5.5]3361268967219.99%0.0398
4(5.5, 6.5]2503215035314.10%0.1484
5(6.5, inf]121611051119.13%0.1419
2026-10-20T16:07:58.828108 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调下降(38.65% → 9.13%),WOE 单调上升(-0.1736 → 0.1419),符合风控分箱预期。IV=0.0632,该变量区分度偏弱但可用。

WOE 在第 2、3 箱之间穿越 0 线:前 2 箱 WOE>0(客户质量优于整体),后 3 箱 WOE<0(风险高于平均)

第 1 箱((-inf, 3.5])为极高风险区间:坏率高达 38.65%,策略上应重点管控

repay_amt_6m_grade — 5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 3.5]1647104760036.43%-0.1915
2(3.5, 4.5]2268163463427.95%-0.1049
3(4.5, 5.5]2991238460720.29%0.0305
4(5.5, 6.5]2286194434214.96%0.1227
5(6.5, inf]1609144416510.25%0.1624
2026-10-20T16:07:58.955727 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调下降(36.43% → 10.25%),WOE 单调上升(-0.1915 → 0.1624),符合风控分箱预期。IV=0.0607,该变量区分度偏弱但可用。

WOE 在第 2、3 箱之间穿越 0 线:前 2 箱 WOE>0(客户质量优于整体),后 3 箱 WOE<0(风险高于平均)

第 1 箱((-inf, 3.5])为极高风险区间:坏率高达 36.43%,策略上应重点管控

bank_997_cnt_3m — 4 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 0.5]3447289954815.90%0.1392
2(0.5, 1.5]3739292881121.69%0.0012
3(1.5, 2.5]2224165556925.58%-0.0648
4(2.5, inf]139197142030.19%-0.0990
2026-10-20T16:07:59.080073 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调上升(15.90% → 30.19%),WOE 单调下降(0.1392 → -0.0990),符合风控分箱预期。IV=0.0246,该变量区分度偏弱但可用。

WOE 在第 2、3 箱之间穿越 0 线:前 2 箱 WOE>0(客户质量优于整体),后 2 箱 WOE<0(风险高于平均)

第 4 箱((2.5, inf])为高风险区间:坏率高达 30.19%,可作为拒绝或重点风控策略的阈值参考

card_usage_ratio — 5 箱
分组号分栏TotalGoodBadBad RateWOE
1(-inf, 0.107999999076128]922854687.38%0.1277
2(0.107999999076128, 0.3381499946117401]3589290468519.09%0.0634
3(0.3381499946117401, 0.6137499809265137]44403434100622.66%-0.0242
4(0.6137499809265137, 0.7716499865055084]130992538429.34%-0.0851
5(0.7716499865055084, inf]54133620537.89%-0.0844
2026-10-20T16:07:59.241878 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调上升(7.38% → 37.89%),WOE 单调下降(0.1277 → -0.0844),符合风控分箱预期。IV=0.0216,该变量区分度偏弱但可用。

WOE 在第 2、3 箱之间穿越 0 线:前 2 箱 WOE>0(客户质量优于整体),后 3 箱 WOE<0(风险高于平均)

第 5 箱((0.7716499865055084, inf])为极高风险区间:坏率高达 37.89%,策略上应重点管控

注:统计入模变量经合并调整后的最终分箱明细(开发样本口径)。当前流程细/粗分箱由同一自动分箱算法直接产出。

05 变量筛选

项目内容
筛选优先级黑名单 > 白名单 > 自动规则
IV 下限0.02
缺失率上限0.8
集中度上限0.9
相关性上限(皮尔逊)0.7
PSI 上限0.25
重要性 Top-K80
黑名单无
白名单无

候选变量 18,成功分箱 18,入模 8

变量白名单入模IV缺失率集中度IV门槛相关性PSI剔除原因
risk_score—Y0.1880PASSPASSPASSPASS0.0010
ScoreCust2—N0.1611PASSPASSPASSFAIL0.0019与 risk_score 相关>0.7
cust_seg2—Y0.1060PASSPASSPASSPASS0.0005
income_grade—Y0.0632PASSPASSPASSPASS0.0009
bh_a001—N0.1854PASSPASSPASSFAIL0.0006与 risk_score 相关>0.7
bh_a009—N0.1505PASSPASSPASSFAIL0.0007与 risk_score 相关>0.7
bank_997_cnt_3m—Y0.0246PASSPASSPASSPASS0.0010
avg_tnr—Y0.1066PASSPASSPASSPASS0.0010
repay_amt_6m_grade—Y0.0607PASSPASSPASSPASS0.0007
tenure_m—N0.0159PASSPASSFAIL——IV<0.02
query_cnt_3m—Y0.0838PASSPASSPASSPASS0.0002
card_usage_ratio—Y0.0216PASSPASSPASSPASS0.0004
rare_field—N0.0659FAILPASS———缺失率>0.8
flag_special—N0.0000PASSFAIL———集中度>0.9
edu_level—N0.0004PASSPASSFAIL——IV<0.02
region_code—N0.0004PASSPASSFAIL——IV<0.02
risk_score_v2—N0.1841PASSPASSPASSFAIL0.0013与 risk_score 相关>0.7
ScoreCust2_v2—N0.1542PASSPASSPASSFAIL0.0010与 risk_score 相关>0.7

06 回归结果

硬门槛:P≥0.1 / VIF>4.0 迭代剔除,共 0 个变量被剔除(1 轮)。

ParameterLabelEstimate(无惩罚)Standard ErrorWald Chi-SquarePr > ChiSqStandardized Estimate
InterceptIntercept-1.21270.02721990.72<0.0001—
WOE_risk_scorerisk_score-2.81300.1894220.59<0.0001-0.6148
WOE_avg_tnravg_tnr-1.02520.194827.71<0.0001-0.1712
WOE_cust_seg2cust_seg2-0.48480.17187.970.0048-0.0856
WOE_query_cnt_3mquery_cnt_3m-0.56550.18619.230.0024-0.0900
WOE_income_gradeincome_grade-0.75500.222511.520.0007-0.0949
WOE_repay_amt_6m_graderepay_amt_6m_grade-0.56780.22786.210.0127-0.0701
WOE_bank_997_cnt_3mbank_997_cnt_3m-0.80580.29507.460.0063-0.0719
WOE_card_usage_ratiocard_usage_ratio-1.24150.42838.400.0037-0.0800

注:Estimate 列为无惩罚(精确推断)拟合;生产系数保持 L2 正则(model_results.json / score.py 口径),两套估计并列展示。标准误基于无惩罚似然观测信息矩阵。

07 VIF

VIF

ParameterVIF
risk_score2.78650
avg_tnr1.65570
cust_seg21.61918
query_cnt_3m1.39259
income_grade1.31761
repay_amt_6m_grade1.33647
bank_997_cnt_3m1.06939
card_usage_ratio1.11593

相关系数(WOE 转换后,开发样本)

risk_scoreavg_tnrcust_seg2query_cnt_3mincome_graderepay_amt_6m_gradebank_997_cnt_3mcard_usage_ratio
risk_score1.0000.6190.6060.5170.4790.4910.2470.311
avg_tnr0.6191.0000.4320.3710.3410.3490.1750.227
cust_seg20.6060.4321.0000.3720.3330.3520.1760.226
query_cnt_3m0.5170.3710.3721.0000.2980.2990.1530.202
income_grade0.4790.3410.3330.2981.0000.2770.1520.184
repay_amt_6m_grade0.4910.3490.3520.2990.2771.0000.1370.178
bank_997_cnt_3m0.2470.1750.1760.1530.1520.1371.0000.092
card_usage_ratio0.3110.2270.2260.2020.1840.1780.0921.000

08 最终评分卡

标准分600.0
标准ODD20.0
PDO20.0
变量分栏WOECoefficientScorecard Points
risk_score(-inf, 519.5]0.3384-2.770896
(519.5, 564.5]0.1888-2.770884
(564.5, 600.5]-0.0498-2.770865
(600.5, 643.5]-0.2396-2.770849
(643.5, inf]-0.2638-2.770847
avg_tnr(-inf, 2.149999976158142]-0.2194-1.025062
(2.149999976158142, 3.350000023841858]-0.1276-1.025065
(3.350000023841858, 4.450000047683716]-0.0706-1.025066
(4.450000047683716, 7.3500001430511475]0.0499-1.025070
(7.3500001430511475, inf]0.2859-1.025077
cust_seg2(-inf, 3.5]0.2166-0.508572
(3.5, 4.5]0.1501-0.508571
(4.5, 5.5]-0.0668-0.508568
(5.5, inf]-0.2705-0.508565
query_cnt_3m(-inf, 0.5]-0.1355-0.574966
(0.5, 2.5]-0.1898-0.574965
(2.5, 3.5]-0.0106-0.574968
(3.5, 5.5]0.0968-0.574970
(5.5, inf]0.2311-0.574972
income_grade(-inf, 3.5]-0.1736-0.757265
(3.5, 4.5]-0.1417-0.757265
(4.5, 5.5]0.0398-0.757269
(5.5, 6.5]0.1484-0.757272
(6.5, inf]0.1419-0.757272
repay_amt_6m_grade(-inf, 3.5]-0.1915-0.575965
(3.5, 4.5]-0.1049-0.575967
(4.5, 5.5]0.0305-0.575969
(5.5, 6.5]0.1227-0.575971
(6.5, inf]0.1624-0.575971
bank_997_cnt_3m(-inf, 0.5]0.1392-0.738572
(0.5, 1.5]0.0012-0.738569
(1.5, 2.5]-0.0648-0.738567
(2.5, inf]-0.0990-0.738566
card_usage_ratio(-inf, 0.107999999076128]0.1277-1.081173
(0.107999999076128, 0.3381499946117401]0.0634-1.081171
(0.3381499946117401, 0.6137499809265137]-0.0242-1.081168
(0.6137499809265137, 0.7716499865055084]-0.0851-1.081166
(0.7716499865055084, inf]-0.0844-1.081166

09 模型表现

模型区分度评估(按样本)

模型样本KSAUCGINI
LR + WOE 评分卡开发样本0.37310.75090.5018
LR + WOE 评分卡测试样本0.37200.74500.4900
LR + WOE 评分卡训练+测试样本0.36990.74860.4972
LR + WOE 评分卡跨时间验证样本0.33900.72910.4582

LR + WOE 评分卡 — 4 样本评估表(score_cut 粒度)

开发样本(KS 0.0356,AUC 0.5162)

cutscntbadgoodbad_ratepopulation_pctcum_bad_ratecum_good_rate
[502, 517)108159848355.32%10.01%25.47%5.71%
[517, 528)108044064040.74%10.00%44.21%13.29%
[528, 540)108131976229.51%10.01%57.79%22.30%
[540, 549)108026181924.17%10.00%68.91%31.99%
[549, 562)107921386619.74%9.99%77.98%42.23%
[562, 570)108016591515.28%10.00%85.01%53.06%
[570, 577)108113894312.77%10.01%90.89%64.21%
[577, 586)10801009809.26%10.00%95.14%75.81%
[586, 594)10807210086.67%10.00%98.21%87.73%
[594, 604)10794210373.89%9.99%100.00%100.00%
2026-10-20T16:07:59.386755 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/ 2026-10-20T16:07:59.513654 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

测试样本(KS 0.0403,AUC 0.4871)

cutscntbadgoodbad_ratepopulation_pctcum_bad_ratecum_good_rate
[502, 518)72038833253.89%10.00%24.81%5.89%
[518, 528)72029242840.56%10.00%43.48%13.49%
[528, 540)72021850230.28%10.00%57.42%22.40%
[540, 549)72017854224.72%10.00%68.80%32.01%
[549, 563)72013458618.61%10.00%77.37%42.41%
[563, 570)71911560415.99%9.99%84.72%53.13%
[570, 577)7208663411.94%10.00%90.22%64.38%
[577, 586)7207764310.69%10.00%95.14%75.79%
[586, 594)720416795.69%10.00%97.76%87.84%
[594, 604)720356854.86%10.00%100.00%100.00%
2026-10-20T16:07:59.636910 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/ 2026-10-20T16:07:59.756548 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

训练+测试样本(KS 0.0152,AUC 0.4965)

cutscntbadgoodbad_ratepopulation_pctcum_bad_ratecum_good_rate
[502, 517)180099180955.06%10.00%25.33%5.74%
[517, 528)1800731106940.61%10.00%44.02%13.33%
[528, 540)1800530127029.44%10.00%57.57%22.35%
[540, 549)1801440136124.43%10.01%68.81%32.01%
[549, 562)1799349145019.40%9.99%77.74%42.30%
[562, 570)1800279152115.50%10.00%84.87%53.09%
[570, 577)1800226157412.56%10.00%90.64%64.27%
[577, 586)180017516259.72%10.00%95.12%75.80%
[586, 594)180511516906.37%10.03%98.06%87.80%
[594, 604)17957617194.23%9.97%100.00%100.00%
2026-10-20T16:07:59.879357 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/ 2026-10-20T16:08:00.009491 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

跨时间验证样本(KS 0.0227,AUC 0.5032)

cutscntbadgoodbad_ratepopulation_pctcum_bad_ratecum_good_rate
[502, 518)60131029151.58%10.02%22.53%6.29%
[518, 528)59924735241.24%9.98%40.48%13.91%
[528, 540)60019140931.83%10.00%54.36%22.75%
[540, 548)60015744326.17%10.00%65.77%32.33%
[548, 562)60013846223.00%10.00%75.80%42.32%
[562, 570)60010149916.83%10.00%83.14%53.11%
[570, 577)6008451614.00%10.00%89.24%64.27%
[577, 586)6007053011.67%10.00%94.33%75.74%
[586, 594)600555459.17%10.00%98.33%87.52%
[594, 604)600235773.83%10.00%100.00%100.00%
2026-10-20T16:08:00.134417 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/ 2026-10-20T16:08:00.253526 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

跨时间验证样本结论

风险高度集中在低分尾端——最低 20% 样本集中了全量 40.5% 的坏客户,策略切分空间很大。

① 样本与分箱结构:共 6,000 样本 / 1,376 坏样本,整体坏率 22.93%,好坏比约 3.4:1;10 档等频分数分栏,每箱约 10%,分箱均匀,无空箱无过厚箱。

② 排序性与单调性:逐箱 Bad Rate 51.58% → … → 3.83%(低分 → 高分),无倒挂,最低分段坏率是最高分段的 13.5 倍。

③ 区分度与坏客户捕获:最低 20% 样本捕获全量 40.5% 的坏客户,最低 50% 捕获 75.8%;最高 20% 样本仅含 5.7% 的坏客户,其中风险最高一箱单独占 22.5%。

(口径:分数 = 按基准分/优比/PDO 刻度由模型概率转换,分数越高风险越低;结论由程序按分箱数据自动生成。)

注:score_cut 表按分数等频分 10 档(低分 → 高分):分数由模型概率按基准分/优比/PDO 刻度转换,分数越高风险越低;每表附 KS/AUC(按概率计算,与分栏口径无关);训练+测试 = TRAIN 全体。旧实验无分数转换时为 PD 等频口径。

10 KS和GINI

LR + WOE 评分卡

样本KSGINIAUC
开发样本0.37310.50180.7509
测试样本0.37200.49000.7450
训练+测试样本0.36990.49720.7486
跨时间验证样本0.33900.45820.7291

开发样本

2026-10-20T16:08:00.339890 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/ 2026-10-20T16:08:00.407916 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

测试样本

2026-10-20T16:08:00.532009 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/ 2026-10-20T16:08:00.607199 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

训练+测试样本

2026-10-20T16:08:00.674654 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/ 2026-10-20T16:08:00.743294 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

跨时间验证样本

2026-10-20T16:08:00.810125 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/ 2026-10-20T16:08:00.878974 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

注:GINI = 2×AUC−1。KS 图 X 轴为分数(升序),红虚线为最大间隔位置;ROC 图例标注 AUC。

11 PSI

模型稳定性评估

模型训练集与测试集训练集与跨时间验证训练集与oot验证集训练集与psi验证集
LR + WOE 评分卡0.00350.0025—0.0013

分数段 PSI 明细(开发样本 vs 跨时间验证样本)

分数段开发样本占比跨时间验证样本占比PSI 贡献累计 PSI
(-inf,0.0581]9.99%10.15%0.00000.0000
(0.0581,0.0755]10.00%9.43%0.00030.0004
(0.0755,0.1004]10.02%10.73%0.00050.0008
(0.1004,0.1228]9.99%9.22%0.00060.0015
(0.1228,0.158]10.00%10.33%0.00010.0016
(0.158,0.2293]10.01%9.88%0.00000.0016
(0.2293,0.283]9.98%10.13%0.00000.0016
(0.283,0.3802]10.01%10.37%0.00010.0017
(0.3802,0.4701]10.00%10.45%0.00020.0019
(0.4701,inf]10.01%9.30%0.00050.0025

分数段 PSI 明细(开发样本 vs PSI时点样本)

分数段开发样本占比PSI时点占比PSI 贡献累计 PSI
(-inf,0.0581]9.99%10.30%0.00010.0001
(0.0581,0.0755]10.00%9.58%0.00020.0003
(0.0755,0.1004]10.02%10.73%0.00050.0008
(0.1004,0.1228]9.99%9.92%0.00000.0008
(0.1228,0.158]10.00%10.30%0.00010.0009
(0.158,0.2293]10.01%9.85%0.00000.0009
(0.2293,0.283]9.98%9.50%0.00020.0011
(0.283,0.3802]10.01%9.77%0.00010.0012
(0.3802,0.4701]10.00%10.30%0.00010.0013
(0.4701,inf]10.01%9.75%0.00010.0013
2026-10-20T16:08:00.958672 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

模型样本量分布评估

评分段开发样本样本量开发样本占比测试样本样本量测试样本占比训练+测试样本样本量训练+测试样本占比跨时间验证样本样本量跨时间验证样本占比PSI时点样本样本量PSI时点样本占比
(-inf, inf]10799.99%74610.36%182510.14%60910.15%61810.30%
(0.0581, 0.0755]108010.00%72610.08%180610.03%5669.43%5759.58%
(0.0755, 0.1004]108210.02%72410.06%180610.03%64410.73%64410.73%
(0.1004, 0.1228]10799.99%6949.64%17739.85%5539.22%5959.92%
(0.1228, 0.158]108010.00%79211.00%187210.40%62010.33%61810.30%
(0.158, 0.2293]108110.01%6769.39%17579.76%5939.88%5919.85%
(0.2293, 0.283]10789.98%6729.33%17509.72%60810.13%5709.50%
(0.283, 0.3802]108110.01%75510.49%183610.20%62210.37%5869.77%
(0.3802, 0.4701]108010.00%76110.57%184110.23%62710.45%61810.30%
(0.4701, inf]108110.01%6539.07%17349.63%5589.30%5859.75%
sum10801100.00%7199100.00%18000100.00%6000100.00%6000100.00%

变量 PSI(开发样本 vs PSI时点样本,按入模变量分箱)

特征项PSI状态
bank_997_cnt_3m0.0010稳定
risk_score0.0010稳定
avg_tnr0.0010稳定
income_grade0.0009稳定
repay_amt_6m_grade0.0007稳定
cust_seg20.0005稳定
card_usage_ratio0.0004稳定
query_cnt_3m0.0002稳定
risk_score — PSI 0.0010
分栏开发基准比例PSI时点样本 比例变更贡献
(-inf, 519.5]23.66%23.95%0.29%0.0000
(519.5, 564.5]29.47%30.13%0.66%0.0001
(564.5, 600.5]23.83%22.52%-1.31%0.0007
(600.5, 643.5]16.22%16.37%0.15%0.0000
(643.5, inf]6.82%7.03%0.21%0.0001
avg_tnr — PSI 0.0010
分栏开发基准比例PSI时点样本 比例变更贡献
(-inf, 2.149999976158142]8.57%8.88%0.31%0.0001
(2.149999976158142, 3.350000023841858]8.90%8.87%-0.03%0.0000
(3.350000023841858, 4.450000047683716]11.65%11.57%-0.08%0.0000
(4.450000047683716, 7.3500001430511475]39.16%37.82%-1.35%0.0005
(7.3500001430511475, inf]31.72%32.87%1.15%0.0004
cust_seg2 — PSI 0.0005
分栏开发基准比例PSI时点样本 比例变更贡献
(-inf, 3.5]19.04%19.07%0.03%0.0000
(3.5, 4.5]30.86%30.50%-0.36%0.0000
(4.5, 5.5]30.83%31.77%0.94%0.0003
(5.5, inf]19.28%18.67%-0.61%0.0002
query_cnt_3m — PSI 0.0002
分栏开发基准比例PSI时点样本 比例变更贡献
(-inf, 0.5]5.09%5.28%0.19%0.0001
(0.5, 2.5]25.46%25.40%-0.06%0.0000
(2.5, 3.5]16.53%16.27%-0.26%0.0000
(3.5, 5.5]27.89%28.37%0.48%0.0001
(5.5, inf]25.03%24.68%-0.35%0.0001
income_grade — PSI 0.0009
分栏开发基准比例PSI时点样本 比例变更贡献
(-inf, 3.5]11.21%10.70%-0.51%0.0002
(3.5, 4.5]23.24%23.15%-0.09%0.0000
(4.5, 5.5]31.12%31.07%-0.05%0.0000
(5.5, 6.5]23.17%24.25%1.08%0.0005
(6.5, inf]11.26%10.83%-0.42%0.0002
repay_amt_6m_grade — PSI 0.0007
分栏开发基准比例PSI时点样本 比例变更贡献
(-inf, 3.5]15.25%14.83%-0.42%0.0001
(3.5, 4.5]21.00%21.75%0.75%0.0003
(4.5, 5.5]27.69%26.92%-0.78%0.0002
(5.5, 6.5]21.16%21.43%0.27%0.0000
(6.5, inf]14.90%15.07%0.17%0.0000
bank_997_cnt_3m — PSI 0.0010
分栏开发基准比例PSI时点样本 比例变更贡献
(-inf, 0.5]31.91%32.48%0.57%0.0001
(0.5, 1.5]34.62%35.27%0.65%0.0001
(1.5, 2.5]20.59%20.35%-0.24%0.0000
(2.5, inf]12.88%11.90%-0.98%0.0008
card_usage_ratio — PSI 0.0004
分栏开发基准比例PSI时点样本 比例变更贡献
(-inf, 0.107999999076128]8.54%8.40%-0.14%0.0000
(0.107999999076128, 0.3381499946117401]33.23%33.98%0.75%0.0002
(0.3381499946117401, 0.6137499809265137]41.11%40.27%-0.84%0.0002
(0.6137499809265137, 0.7716499865055084]12.12%12.15%0.03%0.0000
(0.7716499865055084, inf]5.01%5.20%0.19%0.0001

注:PSI ≤ 0.1 视为稳定,0.1~0.25 需关注,> 0.25 不稳定。

12 单变量分析

注:统计所有入模变量的单变量分析(开发样本口径)。预留验证/总体/OOT 口径的分组明细待扩展。

risk_score
组号ValueTot. Records累计占比#Goods#BadsBad RateG/B Odds
1(-inf, 519.5]255523.66%24141415.52%17.12
2(519.5, 564.5]318353.12%275243113.54%6.39
3(564.5, 600.5]257476.96%194662824.40%3.10
4(600.5, 643.5]175293.18%106069239.50%1.53
5(643.5, inf]737100.00%28145661.87%0.62
合计108018453234821.74%3.60
2026-10-20T16:08:01.067191 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调上升(5.52% → 61.87%),WOE 单调下降(0.3384 → -0.2638),符合风控分箱预期。IV=0.1880,该变量区分度尚可。

WOE 在第 2、3 箱之间穿越 0 线:前 2 箱 WOE>0(客户质量优于整体),后 3 箱 WOE<0(风险高于平均)

第 5 箱((643.5, inf])为极高风险区间:坏率高达 61.87%,策略上应重点管控

avg_tnr
组号ValueTot. Records累计占比#Goods#BadsBad RateG/B Odds
1(-inf, 2.149999976158142]9268.57%47445248.81%1.05
2(2.149999976158142, 3.350000023841858]96117.47%60935236.63%1.73
3(3.350000023841858, 4.450000047683716]125829.12%90335528.22%2.54
4(4.450000047683716, 7.3500001430511475]423068.28%339183919.83%4.04
5(7.3500001430511475, inf]3426100.00%307635010.22%8.79
合计108018453234821.74%3.60
2026-10-20T16:08:01.193541 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调下降(48.81% → 10.22%),WOE 单调上升(-0.2194 → 0.2859),符合风控分箱预期。IV=0.1066,该变量区分度尚可。

WOE 在第 3、4 箱之间穿越 0 线:前 3 箱 WOE>0(客户质量优于整体),后 2 箱 WOE<0(风险高于平均)

第 1 箱((-inf, 2.149999976158142])为极高风险区间:坏率高达 48.81%,策略上应重点管控

cust_seg2
组号ValueTot. Records累计占比#Goods#BadsBad RateG/B Odds
1(-inf, 3.5]205619.04%18671899.19%9.88
2(3.5, 4.5]333349.89%282251115.33%5.52
3(4.5, 5.5]333080.72%250582524.77%3.04
4(5.5, inf]2082100.00%125982339.53%1.53
合计108018453234821.74%3.60
2026-10-20T16:08:01.317107 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调上升(9.19% → 39.53%),WOE 单调下降(0.2166 → -0.2705),符合风控分箱预期。IV=0.1060,该变量区分度尚可。

WOE 在第 2、3 箱之间穿越 0 线:前 2 箱 WOE>0(客户质量优于整体),后 2 箱 WOE<0(风险高于平均)

第 4 箱((5.5, inf])为极高风险区间:坏率高达 39.53%,策略上应重点管控

query_cnt_3m
组号ValueTot. Records累计占比#Goods#BadsBad RateG/B Odds
1(-inf, 0.5]5505.09%28826247.64%1.10
2(0.5, 2.5]275030.55%187587531.82%2.14
3(2.5, 3.5]178547.08%138440122.46%3.45
4(3.5, 5.5]301274.97%249252017.26%4.79
5(5.5, inf]2704100.00%241429010.72%8.32
合计108018453234821.74%3.60
2026-10-20T16:08:01.436354 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调下降(47.64% → 10.72%),WOE 单调上升(-0.1355 → 0.2311),符合风控分箱预期。IV=0.0838,该变量区分度偏弱但可用。

WOE 在第 3、4 箱之间穿越 0 线:前 3 箱 WOE>0(客户质量优于整体),后 2 箱 WOE<0(风险高于平均)

第 1 箱((-inf, 0.5])为极高风险区间:坏率高达 47.64%,策略上应重点管控

income_grade
组号ValueTot. Records累计占比#Goods#BadsBad RateG/B Odds
1(-inf, 3.5]121111.21%74346838.65%1.59
2(3.5, 4.5]251034.45%176674429.64%2.37
3(4.5, 5.5]336165.57%268967219.99%4.00
4(5.5, 6.5]250388.74%215035314.10%6.09
5(6.5, inf]1216100.00%11051119.13%9.95
合计108018453234821.74%3.60
2026-10-20T16:08:01.560328 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调下降(38.65% → 9.13%),WOE 单调上升(-0.1736 → 0.1419),符合风控分箱预期。IV=0.0632,该变量区分度偏弱但可用。

WOE 在第 2、3 箱之间穿越 0 线:前 2 箱 WOE>0(客户质量优于整体),后 3 箱 WOE<0(风险高于平均)

第 1 箱((-inf, 3.5])为极高风险区间:坏率高达 38.65%,策略上应重点管控

repay_amt_6m_grade
组号ValueTot. Records累计占比#Goods#BadsBad RateG/B Odds
1(-inf, 3.5]164715.25%104760036.43%1.75
2(3.5, 4.5]226836.25%163463427.95%2.58
3(4.5, 5.5]299163.94%238460720.29%3.93
4(5.5, 6.5]228685.10%194434214.96%5.68
5(6.5, inf]1609100.00%144416510.25%8.75
合计108018453234821.74%3.60
2026-10-20T16:08:01.694287 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调下降(36.43% → 10.25%),WOE 单调上升(-0.1915 → 0.1624),符合风控分箱预期。IV=0.0607,该变量区分度偏弱但可用。

WOE 在第 2、3 箱之间穿越 0 线:前 2 箱 WOE>0(客户质量优于整体),后 3 箱 WOE<0(风险高于平均)

第 1 箱((-inf, 3.5])为极高风险区间:坏率高达 36.43%,策略上应重点管控

bank_997_cnt_3m
组号ValueTot. Records累计占比#Goods#BadsBad RateG/B Odds
1(-inf, 0.5]344731.91%289954815.90%5.29
2(0.5, 1.5]373966.53%292881121.69%3.61
3(1.5, 2.5]222487.12%165556925.58%2.91
4(2.5, inf]1391100.00%97142030.19%2.31
合计108018453234821.74%3.60
2026-10-20T16:08:01.871327 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调上升(15.90% → 30.19%),WOE 单调下降(0.1392 → -0.0990),符合风控分箱预期。IV=0.0246,该变量区分度偏弱但可用。

WOE 在第 2、3 箱之间穿越 0 线:前 2 箱 WOE>0(客户质量优于整体),后 2 箱 WOE<0(风险高于平均)

第 4 箱((2.5, inf])为高风险区间:坏率高达 30.19%,可作为拒绝或重点风控策略的阈值参考

card_usage_ratio
组号ValueTot. Records累计占比#Goods#BadsBad RateG/B Odds
1(-inf, 0.107999999076128]9228.54%854687.38%12.56
2(0.107999999076128, 0.3381499946117401]358941.76%290468519.09%4.24
3(0.3381499946117401, 0.6137499809265137]444082.87%3434100622.66%3.41
4(0.6137499809265137, 0.7716499865055084]130994.99%92538429.34%2.41
5(0.7716499865055084, inf]541100.00%33620537.89%1.64
合计108018453234821.74%3.60
2026-10-20T16:08:01.988178 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

关键结论

单调性良好:随分栏增大,Bad Rate 单调上升(7.38% → 37.89%),WOE 单调下降(0.1277 → -0.0844),符合风控分箱预期。IV=0.0216,该变量区分度偏弱但可用。

WOE 在第 2、3 箱之间穿越 0 线:前 2 箱 WOE>0(客户质量优于整体),后 3 箱 WOE<0(风险高于平均)

第 5 箱((0.7716499865055084, inf])为极高风险区间:坏率高达 37.89%,策略上应重点管控

13 压力测试

注:验证压力情境下模型的有效性和区分能力稳定性:a.坏浓度更高样本 b.时间外样本 c.特定特征客群 d.极端时间样本。当前流程自动生成情景1(跨时间样本)与情景2(跨时间样本剔除一半好样本,批注16)。

测试情景1:跨时间验证样本

变量贡献度

变量贡献度
risk_score0.6148
avg_tnr0.1712
income_grade0.0949
query_cnt_3m0.0900
cust_seg20.0856
card_usage_ratio0.0800
bank_997_cnt_3m0.0719
repay_amt_6m_grade0.0701

区分度验证 — LR + WOE 评分卡 @ 跨时间样本

KS = 0.3390,GINI = 0.4582

2026-10-20T16:08:02.118752 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/ 2026-10-20T16:08:02.237221 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

测试情景2:跨时间样本剔除一半好样本

指标数值
样本量6000 → 3688(剔除好样本 2312)
KS0.3352
AUC0.7259
GINI0.4518
2026-10-20T16:08:02.362763 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/ 2026-10-20T16:08:02.488049 image/svg+xml Matplotlib v3.10.9, https://matplotlib.org/

注:情景2 模拟好样本分布右移的压力情形(固定 seed=42,可复现);剔除后 KS/AUC 下降幅度反映模型对好样本结构的敏感度。