文章

客群index指数算法简介

客群index指数算法简介

– title: 客群Index指数算法简介 date: 2026-08-07 17:40:00 categories: [AI, ML] tags: [AI, ML, 聚类, PSI] image: path: /assets/img/posts/common/ml.jpg math: true —

客群 Index 指数算法简介

机器学习工程里说的「客群 Index / 客群指数」,最常指 PSI(Population Stability Index),中文常译为群体稳定性指数人口稳定性指数客群/样本稳定性指数:用分箱占比差量化两批样本分布漂移。广义上也包括 CSI、TGI、RFM 综合分等「把客群压成可监控数字」的方法。本文说明其作用、场景、原理、样本外/时间外应用范例与常用相关算法,并以具体数值例子演示计算与解读。


目录


1. 是什么

PSI(Population Stability Index),直译为群体(人口)稳定性指数

英文含义
Population这里的「人口 / 群体」指建模或上线所面对的样本总体(客群),不是人口学意义上的人口普查
Stability两批样本在分数段 / 特征分段上的结构是否稳定、可比
Index把分布差异压成一个可监控的标量指数

PSI 衡量两批样本(如「建模月」与「当月」、训练集与测试集)在同一分段上的分布差了多少。客群结构变了、模型分数整体漂移了,PSI 会升高。

\[\text{PSI} = \sum_i \bigl(p_i^{\text{实际}} - p_i^{\text{基准}}\bigr) \ln\frac{p_i^{\text{实际}}}{p_i^{\text{基准}}}\]

其中 $p_i$ 是第 $i$ 个分箱(分数段、年龄段等)的人数占比;「基准」常取建模样本或某稳定历史窗口,「实际」取对比样本(测试集、时间外样本、当期进件等)。

命名提醒:口语里的「客群指数」有时也指营销侧的 RFM 打分、画像侧的 TGI。工程监控语境下,默认优先理解为 PSI;下文以 PSI 为主,§8 再对照相关指标。


2. 作用与要解决的问题

问题PSI 的作用
模型上线后「感觉不准了」量化客群/分数分布相对建模时是否发生漂移
不知道该不该重训用统一阈值做监控与告警
分数段人数结构变了定位是整体平移,还是某些段暴涨暴跌
跨渠道、跨时期样本难对齐对比两批人结构是否一致
训练是否「过拟合到某批人」用训练集 vs 测试集 PSI,侧面观察模型对样本结构的敏感程度(与方差/泛化相关)

要点:PSI 不直接预测好坏,它是监控与诊断指标,通常挂在评分卡、风控模型、营销响应模型的开发验证与运维链路上。


3. 典型应用场景

场景怎么用
信贷 / 风控评分卡每月对比申请分、行为分相对建模样本的 PSI
反欺诈 / 营销响应模型投放渠道或准入策略变化后,检查客群是否仍像训练样本
特征级监控(CSI)对单个特征做与 PSI 同构的计算,定位「谁漂了」
保险、互金、电商会员定期看高价值 / 高风险人群占比是否结构突变
建模阶段验证样本外(OOS)、时间外(OOT)稳定性检验(见 §4

4. PSI 实际应用范例

除上线后的月度监控外,建模阶段常用两类「稳定性测试」:

4.1 样本外测试(Out-of-Sample,OOS)

说明
做法训练集分数分布作基准,用测试集(或验证集)分数分布作实际,计算 PSI
目的看模型在「没参与拟合的另一批同期样本」上,分数结构是否仍稳定
怎么理解PSI 很小 → 训练/测试客群结构接近,模型分的分段形态一致,泛化在「结构层面」较稳;PSI 偏大 → 可能切分不均、过拟合到训练集客群,或抽样有偏。可与 AUC/KS 等效果指标对照,侧面观察模型方差 / 稳定性(效果波动大 + PSI 高,更需警惕)
注意PSI 反映的是分布结构,不是直接等于统计学习里的方差估计;宜与交叉验证、效果指标一起读

4.2 时间外测试(Out-of-Time,OOT)

说明
做法建模基准日附近的样本(或建模样本)作基准,用更晚时间窗的进件/交易样本作实际,计算 PSI
目的检验「时间往前推」后,风险特征与客群结构是否仍像建模时
经验现象测试基准日与建模基准日相隔越远,测试样本的风险特征、渠道结构与建模样本差异往往越大,PSI 通常越高
决策含义若 OOT 的 PSI 持续偏高(如长期 ≥ 0.25),说明模型「建得太久、人变了」——需要评估是否用新样本重新建模,而不能只靠微调阈值硬撑
对比样本外(OOS)时间外(OOT)
切分轴同一时期,人不同(随机/分层切分)时间不同,往往人也不同
主要回答模型对「另一批同期人」稳不稳模型对「未来进件」还适不适用
PSI 偏高时查抽样、过拟合、特征泄漏等查客群漂移、策略变化、是否该重训

5. PSI 原理与计算步骤

5.1 直观理解

把连续分(或离散特征)切成若干箱,比较「基准期」与「对比期」各箱占比。某一箱占比差得越大,对 PSI 的贡献通常越大;全部箱子贡献求和即总 PSI。

5.2 三步流程

1
2
3
4
5
6
7
定基准样本(Expected)
    ↓
对模型分 / 特征分箱(等频或等距,常用 10 箱)
    ↓
算对比样本各箱占比(Actual)
    ↓
按公式对每箱求 (A−E)×ln(A/E),再求和 → PSI
步骤说明
1. 定基准如建模样本、训练集,或上线首月稳定窗口
2. 分箱等频(每箱人数近似相等)或等距;箱数过少粗糙,过多噪声大
3. 对比实际空箱、零占比需做平滑(如加极小值),避免 $\ln(0)$

6. 效果如何解读

业界常用经验阈值(可按业务微调):

PSI含义建议动作
< 0.1稳定继续例行观察
0.1~0.25有明显变化排查原因;考虑调切点或小修模型
≥ 0.25显著漂移重点查数据/客群/策略;常需重训或下线复核

PSI 变大只说明「分布不像了」,不等于立刻证明模型失效;还需结合 AUC、KS、逾期率、转化率等效果指标一起看。


7. 具体数据例子

假设某信用分(0–1000)分成 5 段,对比基准月本月人数占比:

分数段基准占比 $E$本月占比 $A$$A-E$$\ln(A/E)$贡献 $(A-E)\ln(A/E)$
0–20010%8%−0.02−0.2230.0045
200–40020%15%−0.05−0.2880.0144
400–60030%25%−0.05−0.1820.0091
600–80025%30%+0.05+0.1820.0091
800–100015%22%+0.07+0.3820.0267
合计 PSI    ≈ 0.064

解读:PSI ≈ 0.064 < 0.1,分布略往高分段挪,整体仍算稳定。

对比:若结构剧变(示意)——本月低分段猛增、高分段骤降,各箱贡献累加后 PSI 很容易冲到 0.25+。此时应排查:渠道是否更换、准入是否放宽、分数校准是否异常、是否有异常团伙涌入等。

7.1 伪代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import numpy as np

def psi(actual_pct, expected_pct, eps=1e-6):
    """actual_pct / expected_pct: 各箱占比,和约为 1"""
    a = np.clip(np.asarray(actual_pct, dtype=float), eps, None)
    e = np.clip(np.asarray(expected_pct, dtype=float), eps, None)
    a = a / a.sum()
    e = e / e.sum()
    return float(np.sum((a - e) * np.log(a / e)))

# 对应上表
E = [0.10, 0.20, 0.30, 0.25, 0.15]
A = [0.08, 0.15, 0.25, 0.30, 0.22]
print(round(psi(A, E), 4))  # ≈ 0.0638

8. 常用相关算法与指标

名称英文作用
PSIPopulation Stability Index客群 / 分数整体分布相对基期是否稳定(最常用)
CSICharacteristic Stability Index单个特征分布是否稳定(算式与 PSI 同构)
TGITarget Group Index某客群对某标签的偏好:$\bigl(\text{客群内占比}/\text{总体占比}\bigr)\times 100$
RFM 指数 / 评分Recency–Frequency–Monetary近度、频次、金额打分后分层运营(营销侧「客群指数」)
Lift / 响应指数Lift Index目标客群相对随机触达的提升倍数
聚类客群K-Means、HDBSCAN、Leiden 等先发现客群,再用 PSI 监控各群占比是否漂移

选型口诀

目标更合适
监控模型 / 客群有没有漂PSI / CSI
给客户打价值分、做运营分层RFM / 评分卡 / 聚类
看某群是否更偏爱某品类TGI
评估定向营销相对随机的提升Lift

8.1 TGI 小例子

全体用户中「买过保健品」占 10%;「高净值客群」中该占比为 25%。则

\[\text{TGI} = \frac{25\%}{10\%}\times 100 = 250\]

通常 TGI ≥ 120 视为偏好明显,≤ 80 视为偏好偏弱(阈值因行业而异)。

8.2 RFM 与 PSI 的关系

RFM 解决「人怎么分层」;PSI 解决「分层后的结构 / 模型分有没有漂」。生产上常见组合:先 RFM 或评分卡得到客群标签与分数,再对分数或客群占比跑月度 PSI。


9. 实践注意

注意点说明
分箱方式等频 / 等距会影响数值;监控应用中应固定基准分箱边界,勿每期重切箱
空箱与平滑占比为 0 时需平滑,否则对数无定义
只看 PSI 不够须结合业务效果指标(KS、AUC、逾期、转化等)
客群变了 ≠ 模型一定坏可能是策略主动扩量;要区分「预期内变化」与「异常漂移」
样本量当期样本过少时 PSI 波动大,宜设最小样本量门槛
OOS vs OOT建模验收建议两者都做:OOS 看同期泛化结构,OOT 看时间外可用性

10. 小结

要点结论
默认含义工程上「客群 Index 指数」多指 PSI(群体/人口稳定性指数)
解决什么量化两期客群 / 分数分布漂移,支撑监控与重训决策
核心做法固定分箱 → 比占比 → $(A-E)\ln(A/E)$ 求和
效果读数<0.1 稳;0.1~0.25 关注;≥0.25 重点排查
应用范例样本外:训测对比看稳定度;时间外:越远 PSI 常越高,提示是否该重训
相关工具CSI、TGI、RFM、Lift、聚类分群 + PSI 联用

11. 参考与延伸

资源说明
阿里云 PAI:样本稳定指数(PSI)文档说明与组件用法
评分卡与模型监控实践风控建模中 PSI / CSI 为标准监控项;OOS / OOT 为常见验收手段
RFM营销侧客户价值分层的经典框架
本文由作者按照 CC BY 4.0 进行授权