怎么评估一个分析模型稳不稳定
一个模型在训练集上表现不错,换一批数据或改一个参数,结果就明显不同。这种问题通常不来自算法本身,而是稳定性没有被单独测过。下面 4 种检验方法可以按顺序做,成本从低到高。
先分清稳定性在问什么
稳定性至少包含两层含义。
- 参数稳定性:模型内部参数或训练配置小幅变动时,输出结果是否还落在可接受范围。改动 5% 就导致排序大幅变化,说明模型对这个参数过于敏感。
- 数据稳定性:换一批同分布的数据,指标是否还在同一水平。同分布指采集方式、时间范围、字段口径一致,只是样本不同。
评估前要先固定一件事:用哪几个指标判断。分类任务常用 AUC、KS、召回率;回归任务常用 MAE、RMSE。指标不要超过 3 个,否则波动方向容易互相矛盾,反而无法下判断。
参数扰动:看结果对配置有多敏感
做法是选 2 到 3 个关键参数,各自在基准值上下浮动 10% 到 20%,重新训练并记录指标。
- 每次只改一个参数,其余保持不变。
- 每个参数至少测 3 个取值:基准、上调、下调。
- 把结果整理成一张表,行是参数取值,列是指标。
判断标准可以定得具体一些:如果某个参数上下浮动 20% 后,主指标变化超过 5%,这个模型就算对参数敏感。此时要么缩小该参数的搜索范围,要么在训练时加入正则化约束。
需要提醒的是,树模型的树深度、叶子节点最小样本数,线性模型的正则系数,都属于容易引发波动的高频参数,优先测这几个。
数据子集重跑:换样本看结论是否一致
把数据按某个维度切成若干份,分别训练和评估。切分维度可以是时间段、地区、渠道,也可以是随机分桶。
- 随机分 5 份,每次留 1 份做验证,其余训练。
- 记录每一份的指标,算最大值与最小值的差。
- 如果某一份明显偏离其余几份,先查这份数据本身是否有问题,比如字段缺失率偏高、异常值集中。
这里的关键不是追求每份指标都一样,而是看偏离是否可解释。偏离有业务原因,可以保留;偏离找不到原因,说明模型依赖了某些只在部分样本里出现的特征,需要回头检查特征构造过程。
时间切分:最重要的那一类检验
实际使用中数据总是随时间变化,所以时间维度的检验不能省。做法是用较早时间段训练,用紧邻的后续时间段验证,中间不要留空档。
假设有一份按天记录的数据,可以用前 60 天训练,用第 61 到 90 天验证。如果验证指标比训练指标下降超过 10%,就要警惕。
常见的下降原因有两类:
- 特征的时间口径不一致。比如某个统计特征用的是全量历史,训练时和验证时含义不同。
- 数据分布本身发生了漂移。这种情况需要监控输入特征的分布,而不只是看最终指标。
建议把时间切分做成固定流程,每次模型更新都跑一遍,把结果留档,这样才能看出趋势,而不是只看单次结果。
指标波动区间:给出可接受的上下限
前面几步得到的是若干组指标值,最后要把它们转成一条判断规则。做法是取多次重跑结果的均值和标准差,把均值上下 1 个标准差作为正常区间。
- 新结果落在区间内,视为正常波动,不需要处理。
- 连续两次超出区间,触发排查。
- 超出区间且方向一致,比如持续下降,优先检查数据管道是否有变动。
区间阈值不要凭感觉定,最好回溯历史数据算出来,并且随数据量增长定期重算。样本量小的时候,标准差本身不稳定,可以适当放宽到 1.5 个标准差。
把这几步固定成流程,每次训练都记录参数、数据切分方式和指标区间,模型是否稳定就不再靠感觉判断了。
相关文章
准确率高就代表模型好吗
准确率只统计猜对的比例,在类别不均衡时会严重失真。本文说明为什么高准确率可能毫无价值,并给出查准率、查全率、混淆矩阵与基线对比等更可靠的评估做法。
怎么公平地对比两个模型
对比两个模型时,数据划分、评测指标、算力预算、随机种子都会影响结论。这篇文章给出可操作的对照方法,包括固定变量、分层评测、置信区间与结果复现,帮助你把一次模型对比做得可解释、可复现。
数据分析软件怎么选?看这 5 个标准
选数据分析软件别只看功能列表。数据在哪运行、模型能不能解释、断网能不能用、更新是否持续、结果能不能导出,这 5 点决定了它能不能长期用下去。