A8

统计与信息论

点击正文段落选定收藏或划线位置;未选定时使用屏幕内第一段。

课内目录

1 为什么评估模型要统计与信息论

模型在测试集上得到 90% 准确率,只说明它对这批样本的判断有 90% 正确。接下来的问题才决定这个结果是否有用:测试集是否代表将来的用户,这个数字会随抽样变化多少,错误集中在哪些人群,模型是否对错误答案过度自信。统计帮助我们描述有限样本带来的不确定性,信息论帮助我们理解概率预测与真实结果之间的差距。它们让评估从报告数字变成解释证据。

以公开的电信客户流失表格数据为例,每行表示某个观察时点的客户,特征可能包括入网月数、月费用、合同类型和技术支持服务,标签表示随后指定窗口内是否流失。任务必须先说清观察时点与预测窗口。若要在月初预测未来 30 天是否流失,月末才产生的解约记录就不能进入特征。即使这些字段让分数显著提高,它们也没有提供上线时可用的预测能力。

再看公开图像分类与短文本分类。图像任务可能把服装图片分成 10 类,短文本任务可能判断消息是否为垃圾信息。图片需要留意同一原图的裁剪版本跨集合,文本需要留意重复消息与发送者标识。统计计算依赖样本之间的关系;把高度相似的记录当成独立证据,会让我们误以为证据比实际更多。样本行数很大,也不能自动消除这种问题。

分类指标各自回答不同问题。准确率是所有预测中正确的比例;精确率 precision 是被预测为正类的样本中实际为正类的比例;召回率 recall 是实际正类中被找出的比例。F1 是精确率与召回率的调和平均数,强调两者都不能太低。计算时要明确正类,例如把流失记为 1;还要约定分母为 0 时的处理,避免不同工具产生难以比较的结果。

ROC-AUC 衡量正样本得分高于负样本的排序能力,并对并列得分作约定处理。它不直接给出某个阈值下需要联系多少客户,也不说明输出的 0.8 是否真的对应约 80% 的流失比例。交叉熵则检查模型给实际类别分配了多少概率。排序、分类决策与概率质量有关联,却不能互相替代。实际报告通常需要把它们放在同一张评估表中解释。

从任务定义到统计证据与业务决策
从任务定义到统计证据与业务决策

本课采用共同的评估顺序:先确定预测对象和时间,再划分训练集、验证集与测试集,随后计算指标与不确定性,最后检查是否支持实际决策。训练集用于学习参数,验证集用于选择模型、阈值等设置,测试集用于对已经确定的方案做最终评估。比例可以先采用 70%/15%/15%,但时间任务和分组任务应优先满足时间顺序与组间隔离,不能为了比例漂亮而破坏问题定义。

2 采样波动、置信与显著性的入门边界

假设固定模型在 100 条独立测试记录中答对 86 条,准确率是 86%。换 100 条记录,结果可能是 82% 或 89%。这种波动来自抽到的样本不同,不必由模型变化引起。点估计把观察结果压缩成单个数,区间估计则提醒我们:有限样本不足以精确确定总体表现。比较模型时只盯住小数点后的差距,很容易把抽样噪声当成改进。

对于独立、同分布的正确或错误结果,准确率标准误可粗略写成 sqrt(p×(1−p)/n)。取 p=0.86、n=100,标准误约为 0.035,正态近似的 95% 区间约为 0.86±0.068。这个计算用于建立量级感;样本小、成功率接近 0 或 1 时,应使用更合适的二项比例区间。不能把这个公式直接套到 F1、AUC 或具有强相关性的记录上。

95% 置信区间描述的是构造方法的长期覆盖性质:若按相同规则反复抽样并构造区间,约 95% 的区间会覆盖目标总体参数。它不表示当前模型有 95% 概率上线成功,也不表示未来每个用户的表现都落在区间内。区间所针对的总体必须明确;当前测试来源上的区间,不能自动覆盖另一个国家、设备或时间阶段的数据。

对 F1 或交叉熵,可以用自助采样 bootstrap 建立直观认识:从当前测试集有放回地抽取与原集合相同数量的记录,重新计算指标,重复多次,观察结果分布。比较 2 个模型时,每次对它们使用相同的抽样索引,计算指标差值,这样保留同一条记录上难易程度的对应关系。若记录按客户或患者聚集,则要按组重采样;时间相关数据需要适合时间结构的方法。

显著性检验从明确的零假设与统计方法出发。p 值表示:在零假设及方法假设成立时,得到当前这么极端或更极端结果的概率。它不是“零假设为真的概率”,也不是“模型改进由偶然造成的概率”。p 值小不能告诉我们改进是否值得部署;样本足够大时,极小的效果也可能显著。反过来,样本不足造成的不显著,也不能证明 2 个模型等效。

评估应同时报告效果大小、区间和实际意义。例如召回率提高 0.01,可能每月多找回 20 名将流失客户,也可能增加 2000 次低效联系。若差值区间跨过 0,当前证据不足以确定改进方向;若区间全部为正,但改善低于预先规定的最低收益,仍未达到业务要求。先写出成功标准,再收集与解释证据,可以减少结果出来后随意改变口径的空间。

固定样本上的指标与重新抽样的波动
固定样本上的指标与重新抽样的波动

3 熵、交叉熵与 KL:损失在量什么

概率分布描述不同结果各自可能出现的程度。对二分类结果,若正类概率是 0.5,我们难以在结果出现前作确定判断;若正类概率是 0.99,结果则更容易预测。信息量用 −log(p) 表达某个结果出现时的意外程度:原来认为很可能发生的结果带来较少意外,认为几乎不会发生的结果真正出现时带来较多意外。对数底为 2 时单位是 bit,用自然对数时单位是 nat。

熵 H(P)=−ΣP(k)log P(k),是按照真实分布 P 对这种意外程度求平均。二分类的 0.5/0.5 分布具有 1 bit 的熵,确定为某类的分布具有 0 bit 的熵。这里约定 0log0=0。熵取决于我们讨论的对象与已知条件:知道合同类型前的客户流失不确定性,与知道合同类型后的条件不确定性,可以不同。它不是给整个业务贴上永久“难”或“易”的标签。

模型输出分布记为 Q,交叉熵 H(P,Q)=−ΣP(k)log Q(k)。它使用真实分布的权重,却根据模型分配的概率计算意外程度。如果模型把高概率给了实际经常出现的类别,平均损失就较低;如果模型坚持认为实际发生的类别几乎不可能,损失就很高。交叉熵因此对自信的错误敏感,这正是它与准确率最明显的差别。

监督分类里通常观察不到每个输入对应的完整真实概率分布,而只看到实际标签。使用独热标签时,单条记录的交叉熵变成 −log Q(y),即实际类别概率的负对数。二分类可写为 −[y log p+(1−y)log(1−p)]。在测试样本上求平均,得到的是该评估分布下期望损失的经验估计,并不等于我们已经知道了真实分布。

KL 散度 D_KL(P||Q)=ΣP(k)log[P(k)/Q(k)],连接了熵与交叉熵:H(P,Q)=H(P)+D_KL(P||Q)。固定 P 时,减少交叉熵相当于减少与 P 的这项差异。KL 非负,但通常不对称,因此不能把它直接当作普通距离。若 P 在某类别有正概率而 Q 给出 0,理论交叉熵和 KL 会发散;实际计算需要稳定的数值实现,不能靠随意删掉困难样本解决。

还要区分低损失与低不确定性。某类输入本身就可能有不同标签,例如含糊的短文本需要上下文才能判断。合理模型应表达这种不确定性,而不是对每条输入都输出接近 0 或 1。不同数据集的标签分布、难度和采样方式不同,平均交叉熵也不能脱离背景直接排名。对同一测试集、同一标签与相同计算规则比较,才有清晰含义。

4 动手:交叉熵与准确率对照小例子

考虑 4 条短文本,真实标签依次为 [1,1,0,0],正类代表垃圾信息。模型 A 给出的正类概率为 [0.9,0.6,0.4,0.1]。规定概率大于或等于 0.5 时预测为正类,A 的 4 条预测全部正确,准确率为 100%。使用自然对数,它给实际类别的概率为 [0.9,0.6,0.6,0.9],平均交叉熵约为 0.308 nat。

模型 B 给出 [0.99,0.51,0.49,0.01],同样全部分类正确,但平均交叉熵约为 0.342 nat。B 在第 1 条和第 4 条更有把握,在第 2 条和第 3 条却几乎无法区分类别。对数损失把这些概率变化合并后,A 的整体结果更好。准确率只观察阈值两侧,无法显示这种差异;这并不说明准确率无用,而是说明它回答的问题不同。

再把 A 的第 2 条概率从 0.6 改成 0.01,形成模型 C。C 的准确率变为 75%,平均交叉熵约为 1.332 nat。仅第 2 条就贡献 −ln(0.01)≈4.605 的损失,而概率为 0.49 的同类错误只贡献约 0.713。错误数量相同的时候,自信程度仍会显著改变交叉熵。因此检查高损失样本,经常能发现标签错误、异常输入或模型过度自信的问题。

可以手工复现这个实验:列出真实标签、正类概率、阈值预测、是否正确、实际类别概率与负对数损失这 6 列,再对正确标记和损失分别求平均。将阈值从 0.5 改为 0.7,A 的第 2 条会变成漏报,准确率下降,交叉熵却保持不变,因为概率没有变化。阈值改变决策,损失描述概率;把这 2 层分开,才能解释调参的实际作用。

在完整的公开垃圾消息数据上,先固定训练、验证、测试划分,再只用训练文本建立词表与词频变换,拟合基础分类器。用验证集选择阈值,最后在测试集同时报告交叉熵、precision、recall、F1 与 ROC-AUC。若有重复消息,应先识别其来源或构建重复组,避免同组跨集合。这里的 4 条数据只展示计算机制,不能用来判断真实模型优劣或估计可靠区间。

还可以按预测概率分段,把区间内平均预测概率与实际正类比例对照。例如预测值集中在 0.7 到 0.8 的 200 条记录,实际只有 100 条为正类,就提示该区间可能过度自信。分段结果也有采样波动,样本少的区间尤其不稳定。较低交叉熵经常支持更好的概率预测,但不能替代分段校准检查,更不能保证所有子群体都可靠。

5 偏差-方差与过拟合的统计读法

训练损失低,说明模型能够解释已经看过的样本;验证损失低,才进一步支持它能处理未用于拟合的样本。若训练交叉熵持续下降,验证交叉熵先降后升,模型可能开始学习训练样本中特有的偶然规律。图像任务中,它可能记住背景纹理;流失任务中,它可能依赖少数客户的特殊组合。这种训练改善未能转化成新样本改善的现象,是过拟合的重要信号。

偏差描述方法的系统性限制。例如只根据月费用判断流失,可能忽略合同类型与入网时长的关系,即使增加训练数据也难以表达这些模式。方差描述训练样本变化时模型结果的敏感程度:换一批训练客户,某些复杂模型的判断可能明显变化。高偏差常表现为训练与验证都较差,高方差常表现为训练很好而验证明显较差,但这些表现只是诊断线索,不能代替数据检查。

经典的偏差、方差与噪声加和分解主要在平方误差等明确条件下成立。本课借用它理解学习行为,不把所有分类损失都强行拆成相同形式。标签本身可能含噪声,特征也可能缺少关键背景;这部分困难不能仅靠增加模型复杂度消除。若垃圾消息的标签规则不一致,模型学习得越努力,也可能越是在拟合标注过程的矛盾。

学习曲线提供另一个观察角度:逐步增加训练样本,保持评估集和训练流程一致,观察训练与验证指标。如果训练很好而验证较差,新增有代表性的数据、加强正则化、降低复杂度或提前停止训练都可能有帮助。如果两者都差,应检查特征、标签和模型表达能力。曲线不能单独判断原因;缺少某个设备类型的样本时,增加其他设备的数据未必改善该设备上的表现。

数据处理、训练选择与最终测试的边界
数据处理、训练选择与最终测试的边界

验证集也会被“学会”。当我们根据验证结果反复选择特征、模型和随机种子,最终方案已经间接适应这些记录。交叉验证能够更充分地使用有限开发数据,但仍要把预处理放进每个训练折内部,并保持分组或时间边界。它不会自动修复泄漏,也不能替代最终独立测试。测试集若已被用于选择方案,就需要新的独立证据来支持最终结论。

分布漂移会让原本合理的统计估计失去适用条件。过去的客户合同结构、图像拍摄设备或文本用语与上线阶段不同,都可能改变表现。应按时间、设备、地区或文本来源切片查看样本量、标签比例和指标。某个总体平均值稳定,不代表每个切片都稳定。记录数据版本与采样来源,是解释“上个月很好,这个月变差”的必要条件。

6 常见坑:p 值迷信、多次试探污染测试集

第 1 类误区是把 p<0.05 当成通行证。假设 2 个模型准确率相差 0.002,即使统计检验显示显著,也仍需考察联系成本、推理延迟和维护负担。报告应写清差值的单位与区间,并说明它是否超过预先定义的最低收益。只有显著性,没有效果大小与任务代价,无法形成完整的上线理由。

第 2 类误区是不断试探,最后只展示表现最好的实验。即使每次检验都在相应条件下控制 5% 的假阳性概率,进行 20 次相互独立且零假设都成立的检验时,至少出现 1 次假阳性的概率也约为 64%。真实实验通常并不独立,但反复尝试会增加偶然发现的机会,这个方向不会因此消失。应记录尝试次数、主要比较对象与选择依据。

测试集污染不一定需要直接训练。看完测试结果后换特征,再看测试结果后换阈值,再挑选测试分数最高的随机种子,已经把测试集变成开发反馈。合适的做法是在开发阶段使用验证数据,预先固定主要指标与比较方案,再对封存测试集执行最终评估。若测试暴露严重问题,可以修复,但旧测试结果应标记为开发证据,后续结论需要新的独立评估。

第 3 类误区是被类别不平衡掩盖。若 10000 条记录中只有 100 条流失,始终预测不流失即可获得 99% 准确率,但召回率为 0。假设另一个模型找到 80 条流失,同时误报 320 条,其 precision 为 20%,recall 为 80%,F1 为 0.32。它是否更有用取决于接触客户的成本与漏掉流失的损失,不能由准确率单独裁决。

ROC-AUC 在不平衡任务上仍能描述排序,但少量假阳性率乘上大量负样本,可能形成很大的处理负担。此时还应关注精确率、召回率、PR 曲线与固定处理容量下能找到多少正例。报告标签比例很重要,因为精确率会随总体正类比例变化。若为了评估方便把测试集做成正负各半,应明确这与真实部署分布不同,不能直接把其中的 precision 当成上线预期。

第 4 类误区是把平均损失下降解释为所有人都受益。模型可能在多数类上更好,在少数类上更差;加权交叉熵也会改变不同类别对目标的贡献。选择权重时应解释目的,并保留未加权指标供比较。对损失最高的样本和关键子群体进行检查,常能发现总体平均数遮住的问题。小切片的不确定性也更大,应同时列出样本数,避免根据几条记录下定论。

7 案例:信息泄漏让交叉熵虚低

某团队使用公开流失表格数据建立练习基线,并在教学副本中加入 1 个模拟的月末挽留结果字段。这个字段是客户申请解约后才填写的,目标却是月初预测未来 30 天的流失。随机划分后,模型在测试集上交叉熵极低、AUC 接近 1,团队起初把它理解成特征工程成功。真正的问题是特征把答案发生后的信息带回了预测时点。

泄漏也可能藏在处理流程里。如果先对全部样本计算缺失值填补规则、标准化参数或目标编码,再划分数据,测试数据已经参与开发。尤其是目标编码,直接使用了标签信息;若某个罕见类别只有少量记录,泄漏会非常强。即使不使用标签的变换,也应仅在训练数据上拟合,再应用于验证与测试,以保持完整评估流程与未来使用方式一致。

排查先问特征在何时可获得,再问记录之间是否相关,随后检查处理步骤在哪个集合上拟合。团队制作字段可用时间表,移除月末挽留结果,将同一客户的记录放在同一集合,并按时间重新划分。这里若实际任务是预测已有客户的未来状态,仍要根据任务允许的历史信息设计分组与时间边界,不能机械地认为所有客户跨时间出现都属于泄漏。

异常高分的排查与修复路径
异常高分的排查与修复路径

假设修复后,独立时间测试集上的交叉熵从 0.08 上升到 0.43,AUC 从 0.99 降为 0.78。这些数字是用于解释流程的示意结果,并非公开数据集的复现实测。下降说明原评估包含了不可用的信息,不能据此说修复让真实模型变坏。修复后的结果虽然更普通,却更接近部署时实际能获得的信息条件,因此更适合作为后续改进基线。

团队还需要对照只预测训练集流失比例的常数概率基线,并检查各合同类型上的交叉熵、召回率与样本数。若修复后的模型仍不能稳定超过简单基线,下一步应回到标签、特征与任务定义,而不是恢复泄漏字段。评估的目标是估计未来能力,异常漂亮的分数也必须接受与普通分数相同的证据检查。

8 把统计与信息量检查写进评估方案

可复用的评估方案从目标总体开始写:预测谁、在什么时点预测、预测多长时间、用什么数据来源。流失示例可以规定“对月初仍活跃的客户,预测未来 30 天是否解约”,同时列出观察截止日与标签窗口。图像任务则写清设备、拍摄条件与类别定义;文本任务写清语言、来源与标签规范。这些条件决定测试结果到底能推广到哪里。

接着写划分与处理规则。记录训练、验证、测试的数量、标签比例、时间范围、重复记录处理与组标识;所有从数据估计的变换仅在训练部分拟合。训练阶段的随机种子与数据版本有助于复现,但复现同一分数只是起点。若结论对随机种子敏感,应报告预先安排的重复训练结果,并解释这种训练波动与固定模型的测试抽样波动有何不同。

指标表应包含主要指标、辅助指标、阈值和不确定性方法。若联系能力有限,可以把“每天最多联系 200 名客户时的召回率”作为主要决策指标,同时记录 precision、F1、AUC 与交叉熵。区间方法要对应抽样单位;配对比较要在相同记录上进行。检查样本量时应特别关心正例数,不能仅因总量很多就认为少数类指标足够稳定。

滑动阈值时,固定概率与标签,观察混淆矩阵和成本如何变化。阈值提高通常减少预测正类数量,召回率不会上升,但精确率在有限样本上未必逐步上升。AUC 与交叉熵保持不变,因为它们仍使用原始得分与概率。通过这种对照,可以把“模型输出质量”和“当前采取的行动”分别写进方案,避免把阈值优化误认为模型已经学得更好。

最后写结论边界与复查触发条件。可以规定当关键切片召回率低于门槛、标签比例明显改变或新来源损失持续升高时重新评估。观察到指标变化后,还要检查标签是否完整、样本是否延迟到达、采集流程是否改变。只有新数据的真实结果到齐,才能计算对应的监督指标;未标注输入分布变化可以预警,却不能直接证明准确率已经下降。

9 从损失选型回到业务代价

训练损失把学习方向转换为可计算目标,业务代价则描述采取行动后的实际后果。交叉熵适合学习分类概率,但最低交叉熵的模型未必在某个阈值下拥有最低联系成本。F1 汇总精确率与召回率,却不显式表示每种错误的金额与处理容量。方案必须解释为什么选这个训练目标,以及最终通过哪些指标和限制判断可用性。

在简化的流失干预模型中,假设误报产生 10 元成本,漏报产生 100 元损失,正确决策的额外成本均记为 0。对校准后的流失概率 p,采取干预的期望成本是 10×(1−p),不干预的期望成本是 100×p。因此当 p>10/110≈0.091 时,干预的期望成本更低。这个例子说明阈值不必是 0.5,但它依赖成本设定与概率可靠程度。

真实干预还会有联系成本、客户反感、处理容量和挽留成功率。预测谁会流失,与判断联系谁能被挽留,是不同问题:极高流失风险者可能无论是否联系都会离开。仅凭分类测试集不能推出干预效果,需要额外的实验或适合的因果证据。本课先把边界写清,避免将预测分数直接解释为行动收益,进一步的方法留到后续学习。

对于图像分类,误把危险缺陷判为正常与误把正常判为缺陷可能代价不同;对于短文本分类,误拦正常消息与漏掉垃圾消息也会影响不同对象。可以先用透明的成本表开展敏感性分析,观察成本假设变化时阈值是否稳定。若小幅改变成本就导致完全不同的选择,应把这种不稳定性纳入结论,而不是只报告最有利的参数设置。

最后,把统计证据与信息量放回同一条判断链:交叉熵检查概率是否为实际结果分配足够质量,分类指标检查阈值下的错误结构,区间检查有限数据支持多强的结论,成本检查改善是否值得采用。任何环节都不能独自保证成功。能够解释数据边界、抽样波动、概率错误与行动代价,才算完成了入门阶段的模型评估。

放进方案里

在方案首页写明预测时点、目标总体与标签窗口。例如对月初活跃客户预测未来 30 天流失,输入仅使用月初前已产生的合同类型、入网月数、月费用与服务记录。列出每个字段的可用时间,并注明延迟到达、缺失和标签不确定时的处理规则,使离线实验与未来使用条件能够对应。

固定训练、验证与测试边界,记录数据版本、时间范围、样本数、正类比例与重复组处理。预处理仅在训练数据上拟合;模型、特征与阈值使用验证数据选择。测试集在方案确定后用于最终评估,若依据其结果修改方案,明确标记为开发证据,并安排新的独立测试。

指标表同时列出交叉熵、precision、recall、F1、ROC-AUC 与混淆矩阵,明确正类、阈值及对数底。按主要时间段、客户合同类型或输入来源切片,附样本量与正例数。预先选择适合抽样单位的区间方法,比较模型时保留相同样本的配对关系,同时报告差值、区间与最低有用改善。

决策部分给出误报、漏报与处理容量的假设,说明所选阈值对应的联系数量和预期成本。将成本假设与概率校准的不确定性列入敏感性分析,避免把预测风险直接当成干预收益。保留简单基线,说明新增复杂度换来了多少可验证的改善。

交付时附上数据划分清单、字段可用时间表、评估结果和高损失样本检查记录。约定上线后何时等待标签成熟、何时复算指标,以及新来源、标签比例变化和关键切片恶化时的复查条件。结论写成带适用范围的证据陈述,使后续维护者能判断旧结果是否仍然有效。

10 小结:下一步优化基础(A9)

统计让我们看到有限数据上的波动与结论边界,信息论让我们区分“分对了”与“给实际结果分配了合理概率”。评估时先守住数据时间与划分边界,再同时观察概率损失、分类指标、不确定性和业务代价。

自测可以围绕 3 个问题展开:为什么准确率相同的模型交叉熵不同?为什么不断查看测试集会削弱最终证据?为什么降低阈值可以改变召回率,却不会改变固定概率的交叉熵?能够用本课例子解释这些问题,就具备了继续学习优化基础的准备。

A9 将继续讨论如何通过优化降低训练目标,以及学习率、梯度和停止条件如何影响训练。优化把模型推向某个目标,统计评估则检查这个方向是否改善了未见数据上的表现;两者需要共同服务于已经定义清楚的任务。

同阶段相关课

AI 答疑

默认关闭。启用后,只发送本课标题、最近阅读的屏幕内正文摘录(最多 6000 字)与本次问题。

配置自己的服务