Skip to content

模型评估与指标选择 ​

评估指标必须与任务、标签可用性、正类定义和错误代价匹配。本页统一整理回归、分类、聚类与代码生成评估,并强调指标的适用边界。

一、指标选择框架 ​

判断一个方法属于哪种学习范式时,可以按以下顺序:

  1. 训练样本是否带有目标值或类别标签?
    • 有:优先判断为监督学习;如果任务是利用类别信息降维,可考虑 LDA;
    • 没有:继续判断是否在寻找结构、分布或低维表示。
  2. 如果没有标签,任务是在分组、降维还是估计分布?
    • 分组:K-Means、GMM、DBSCAN、层次聚类、谱聚类;
    • 降维:PCA;
    • 概率密度或潜在成分:GMM。
  3. 是否同时使用少量标注样本和大量未标注样本?
    • 是:半监督学习。
  4. 是否通过环境奖励评价动作?
    • 是:强化学习。
  5. 是否在复用已有模型或已有任务知识?
    • 是:迁移学习;
    • 这描述的是训练策略,不取代监督/无监督的标签分类。
  6. 是否有多个任务共享一个主干网络?
    • 是:多任务学习。
  7. 如果涉及推荐系统中的矩阵分解,先判断方法扮演的角色:
    • PCA:特征降维和去噪;
    • NMF、SVD 形式的矩阵分解:潜在因子建模;
    • QR:训练过程中的最小二乘求解工具。

二、模型评估 ​

模型评估指标必须结合任务类型、标签是否可用、正负类定义和错误代价来理解。回归任务关注预测值与真实值的偏差;无监督聚类在没有真实标签时主要考察簇内紧密性与簇间分离度;分类任务则通常先从混淆矩阵出发,再计算 Precision、Recall、Accuracy、F1、ROC-AUC 等指标。

2.1 回归任务评估指标 ​

指标定义与方向 ​

设真实值为 yi,预测值为 y^i,样本数为 n。回归任务常用以下指标:

均方误差(Mean Squared Error,MSE)为:

MSE=1n∑i=1n(yi−y^i)2

MSE 越小越好。由于误差被平方,较大的误差会受到更重的惩罚,因此 MSE 更容易受到异常值影响。

均方根误差(Root Mean Squared Error,RMSE)为:

RMSE=MSE

RMSE 越小越好,并且与目标变量具有相同单位,通常比 MSE 更容易结合业务尺度解释。

平均绝对误差(Mean Absolute Error,MAE)为:

MAE=1n∑i=1n|yi−y^i|

MAE 越小越好。它相较于 MSE 和 RMSE 对异常值更稳健,但绝不是完全不受异常值影响。

决定系数(coefficient of determination)为:

R2=1−SSESST

其中残差平方和与总平方和分别为:

SSE=∑i=1n(yi−y^i)2SST=∑i=1n(yi−y¯)2

这里的 y¯ 是评估集真实目标值的均值。R2 通常越大越好,但它是相对于均值基线的相对指标,不能脱离评估集和任务背景解释。

指标越大越好?主要特点
MSE否,越小越好对大误差惩罚更重,异常值影响更明显
RMSE否,越小越好与目标变量同单位,较容易解释
MAE否,越小越好对异常值相对稳健,但并非完全不受影响
R2通常是,越大越好衡量相对于均值基线的平方误差改进程度

回归指标速记

MSE、RMSE、MAE:越小越好;R2:通常越大越好。

误差分布与损失选择 ​

这里关注的是训练损失为什么会与某种误差分布对应;MSE、MAE 与 Huber 的形状和异常值特性已在线性回归章节详细比较。设回归模型为 y^i=fθ(xi),并假设误差相互独立、方差相同且服从零均值高斯分布:

εi=yi−y^i∼i.i.d.N(0,σ2)

在这个假设下,负对数似然(忽略与模型参数 θ 无关的常数)为:

−log⁡L(θ)=C+12σ2∑i=1n(yi−y^i)2

因此,固定 σ2 时,最大化似然等价于最小化残差平方和(SSE);样本数 n 固定时,最小化 SSE 与最小化 MSE 的参数解相同。这就是高斯误差与平方损失、L2 损失和 MSE 之间的对应关系。

如果误差服从零位置的拉普拉斯分布,其密度的指数部分与 exp⁡(−|ε|/b) 成正比,负对数似然则对应绝对误差之和:

−log⁡L(θ)=C+1b∑i=1n|yi−y^i|

所以拉普拉斯误差通常对应绝对值损失、L1 损失和 MAE。这里的对应关系依赖独立同分布、尺度参数固定等假设;如果误差方差随样本变化,还应考虑加权平方损失或直接建模条件方差。

误差假设负对数似然中的主要项常用损失或指标对应的典型点预测
高斯误差∑i(yi−y^i)2SSE、MSE、L2条件均值
拉普拉斯误差∑i|yi−y^i|MAE、L1条件中位数

不要把“拉普拉斯误差对应 MAE”与“中位数绝对误差”混为一谈:MAE 是所有绝对误差的平均值,是一种可用于拟合的损失;中位数绝对误差是对绝对误差取中位数,更偏向稳健地描述典型误差。最大绝对误差则只关注最差样本,适合检查极端个例或最坏情况约束,不是高斯误差假设下的最大似然损失。

误差分布与损失速记

高斯误差通常对应平方损失(MSE/L2);拉普拉斯误差通常对应绝对值损失(MAE/L1)。这是最大似然与损失函数之间的对应关系,不代表某一种指标在所有业务场景下都更好。

R2 的含义与陷阱 ​

R2 衡量模型相对于“始终预测目标变量均值”这一基线模型的改进程度。设评估集的目标值存在变异,即 SST>0,则可以这样理解:

  • R2=1:残差平方和为零,模型在相应评估集上完美拟合;
  • R2=0:模型在平方误差意义下与始终预测均值的基线模型表现相当;
  • R2<0:模型还不如均值基线,说明预测误差平方和超过了总平方和。

“R2=0.8 解释了 80% 的变异”是便于沟通的粗略表述,不能理解为模型对目标变化具有因果解释。R2 反映的是相对于特定均值基线的拟合改进,不代表误差的绝对大小,也不自动说明模型在新数据上的表现。

对于带截距的普通 OLS,在同一个训练集上进行拟合时,模型投影性质通常保证 0≤R2≤1。但这个范围并不是所有场景下都成立:在测试集、无截距模型或任意给定的预测结果下,R2 都可能小于 0。如果评估集中的目标值完全相同,则 SST=0,上述公式分母为零,R2 不适合直接按通常方式解释。

不同数据集之间也不能只根据 R2 直接横向比较。噪声水平、目标值分布和预测难度都会影响基线与指标数值;跨数据集比较时应同时说明数据划分、评估集和误差尺度。

R2 的边界

训练集带截距的 OLS 常见 0≤R2≤1,但测试集或无截距模型中的 R2 可能小于 0。

增加特征与调整后的 R2 ​

对于普通最小二乘回归,如果在同一个训练集上增加特征,新模型可以把新增特征的系数设为 0,从而复现旧模型。因此,最小化 SSE 得到的结果满足:

SSEnew≤SSEold

同一训练集上的 SST 不变,所以:

Rnew2≥Rold2

这意味着:

  • 增加无关特征不会使训练集普通 R2 下降;
  • 普通 R2 可能因为加入垃圾特征而上升;
  • 训练集 R2 上升不代表泛化性能变好,新增特征可能只是拟合了噪声。

上述单调性是同一训练集上的普通 OLS 性质,不能直接推广到测试集,使用正则化或其他模型时也不能机械套用。

调整后的决定系数在 R2 的基础上惩罚特征数量:

Radj2=1−(1−R2)n−1n−p−1

其中 n 是样本数,p 是特征数,通常不包含截距项;该公式通常要求 n−p−1>0。当新增特征带来的误差下降不足以抵消复杂度惩罚时,调整后的 R2 可能下降。因此,实际模型选择不能只看训练集 R2,还应结合验证集或测试集指标。

R2 速记

普通 R2:越大越好,但增加特征不会让训练集 R2 下降;调整后的 R2 会惩罚无意义的特征。

2.2 二分类混淆矩阵 ​

设“正类”是任务重点关注的类别。预测结果与真实标签交叉后,可以得到四种情况:

预测结果 / 真实情况实际正类实际负类
预测为正类TP(真正例)FP(假正例)
预测为负类FN(假负例)TN(真负例)
  • TP(True Positive):实际为正,预测也为正;
  • FP(False Positive):实际为负,却预测为正,也叫误报;
  • FN(False Negative):实际为正,却预测为负,也叫漏报;
  • TN(True Negative):实际为负,预测也为负。

所有后续指标的分母都要先看清楚是在“预测结果”一侧,还是在“真实标签”一侧。

2.3 Precision 与 Recall ​

Precision(精确率、查准率)定义为:

Precision=TPTP+FP

它回答的问题是:

在所有被模型预测为正类的样本中,有多少确实是正类?

Recall(召回率、查全率)定义为:

Recall=TPTP+FN

它回答的问题是:

在所有实际为正类的样本中,有多少被模型成功找出来?

按分母的来源可以区分:

指标分母关注的问题主要惩罚的错误
PrecisionTP+FP,所有预测为正的样本预测为正的样本中有多少真正为正FP,误报
RecallTP+FN,所有实际为正的样本实际正类中有多少被识别出来FN,漏报

错误类型与指标的直接关系 ​

在其他计数近似不变时,可以用下面的关系快速判断错误类型主要影响哪个指标:

错误情况混淆矩阵项主要影响
负样本被错判为正样本(误报)FP↑Precision=TPTP+FP 下降
正样本被错判为负样本(漏报)FN↑Recall=TPTP+FN 下降

错误与指标速记

  • 误报多(FP 多)→ Precision 低。
  • 漏报多(FN 多)→ Recall 低。

FP 和 FN 也会影响 Accuracy、F1 等其他指标;这里的“直接关系”是指从 Precision 和 Recall 的分母可以最直接地看出对应影响。

Precision 与 Recall 计算示例

实际有 100 个正类样本,模型预测出 80 个正类,其中 60 个预测正确,则:

Precision=6080=75%Recall=60100=60%

这两个数值不同,是因为它们的分母不同:Precision 以“预测为正”为分母,Recall 以“实际为正”为分母。

2.4 Accuracy、Specificity 与 F1 ​

为了完整描述分类性能,还可以使用:

Accuracy=TP+TNTP+TN+FP+FNSpecificity=TNTN+FP

其中 Specificity(特异度、真负率)衡量实际负类被正确识别的比例。Precision 和 Recall 的调和平均是 F1 分数:

F1=2⋅Precision⋅RecallPrecision+Recall

记 P=Precision、R=Recall,则 F1 也可简写为:

F1=2PRP+R

F1 是 Precision 与 Recall 的调和平均,只有二者都较高时才会较高;如果其中一个指标很低,F1 也会受到明显影响。

Micro-F1、Macro-F1 与 Weighted-F1 ​

在多分类任务中,可以把每个类别分别视为“一类对其余类别”的二分类问题。记第 k 个类别的统计量为 TPk、FPk、FNk,则该类别的 F1 为:

Pk=TPkTPk+FPk,Rk=TPkTPk+FNk,F1,k=2PkRkPk+Rk

这里的“普通 F1”通常指二分类中指定正类的 F1,或多分类中某一个类别的 F1。它只描述指定类别或当前类别的 Precision 与 Recall;在多分类任务中,单独写“F1”并不能说明是否做了跨类别聚合,必须明确 binary、micro、macro 或 weighted 等统计口径。

Micro-F1 会先把所有类别的 TP、FP、FN 分别相加,再计算整体 Precision、Recall 和 F1:

Pmicro=∑kTPk∑k(TPk+FPk)Rmicro=∑kTPk∑k(TPk+FNk)F1,micro=2PmicroRmicroPmicro+Rmicro

因此,Micro-F1 不是先算每个类别的 F1 再求平均,而是先汇总样本级的混淆矩阵统计量。样本数较多的类别通常会对结果产生更大影响,少数类表现很差时可能被多数类的良好表现掩盖。

Macro-F1 先计算每个类别的 F1,再做简单平均:

F1,macro=1K∑k=1KF1,k

其中每个类别权重相同,因此 Macro-F1 更能反映少数类是否也获得了较好的识别效果。Weighted-F1 则按照每个类别在真实标签中的样本数加权:

F1,weighted=∑k=1KnknF1,k

其中 nk 是第 k 类的真实样本数,n=∑knk。Weighted-F1 仍然会让大类别拥有更大权重,通常介于“整体表现”和“各类均衡表现”之间,但也可能掩盖少数类问题。

指标计算方式类别权重与典型含义
普通/单类 F1对指定正类或某一个类别计算 Precision 与 Recall 的调和平均只反映指定类别,需要明确正类定义
Micro-F1先汇总所有类别的 TP、FP、FN,再计算 F1每个样本级决策贡献相同,大类别通常影响更大
Macro-F1先计算每个类别的 F1,再做算术平均每个类别权重相同,更关注类别间是否均衡
Weighted-F1先计算每个类别的 F1,再按真实样本数加权平均大类别权重更大,少数类影响可能被稀释

对于单标签多分类任务,如果所有类别都参与统计且每个样本只有一个真实类别和一个预测类别,则:

Pmicro=Rmicro=F1,micro=∑kTPkn=Accuracy

原因是每个样本只贡献一次预测为正和一次实际为正的计数,汇总后预测正类总数和实际正类总数都等于 n。这个等式不应直接套用到多标签分类、忽略部分标签或自定义样本权重的场景。

类别不平衡下的 Micro-F1 与 Macro-F1 示例

类别 A 有 1000 个样本且全部预测正确,类别 B 有 10 个样本且全部预测错误;若 B 的样本都被预测成 A,则单标签多分类下:

统计方式结果示意
Micro-F1等于 Accuracy,即 1000/1010≈99.0%,总体结果主要由大量 A 类样本决定
Macro-F1A 类 F1 约为 0.995、B 类 F1 为 0,平均约为 0.498,能够暴露 B 类失效

当某个类别没有真实正例或没有预测正例时,该类别的 Precision、Recall 或 F1 可能遇到分母为零;实际使用工具时还要确认 zero_division 等处理约定,并同时报告各类别的 support。

Micro-F1 与 Macro-F1 速记

Micro:先汇总再计算,大类或多数样本影响更大;Macro:先按类别计算再平均,每个类别权重相同;Weighted:按各类真实样本数加权。

当正负类分布严重不平衡时,Accuracy 可能被大量负类样本“抬高”,此时通常需要同时查看 Precision、Recall、F1、Specificity 或其他适合不平衡数据的指标。

基准率、后验概率与误报规模 ​

在极端类别不平衡任务中,需要区分“事件本身有多常见”和“模型发出阳性预测后事件有多可能发生”。设 F 表示正类事件,+ 表示模型预测为正类:

概率含义
P(F)先验概率或基准率;观察模型结果前,样本属于正类的概率
P(+∣F)真正率 TPR/Recall;实际正类被预测为正类的比例
P(+∣F―)假正率 FPR;实际负类被误判为正类的比例
P(F∣+)看到模型预测为正类后,样本真正为正类的后验概率,也就是正类 Precision/PPV

正类预测后的可信度由贝叶斯公式决定:

Precision=P(F∣+)=TPRP(F)TPRP(F)+FPR[1−P(F)]

因此,不能把 P(+∣F) 与 P(F∣+) 直接互换。前者是“已知实际为正,模型能否报正”,后者是“已知模型报正,实际为正的概率”。只有当模型的阳性预测确实提供了正类证据时,后验概率才会高于先验概率;正类越罕见,后验概率越容易受到低基准率的限制。

对总样本数为 N、正类基准率为 π=P(F) 的数据集,期望的真正例和假正例数量近似为:

TP≈NπTPR,FP≈N(1−π)FPR

这也给出了 FPR 的数量解释:如果有 N− 个实际负类样本,则误报数约为 N−FPR。例如 FPR 为 1% 时,在 1000 个真正的负类样本中,预计约有 10 个被误报为正类;分母是实际负类数量,不是全部样本数量。

极端不平衡下的数量示例

以正类基准率 0.1%、TPR 为 90%、FPR 为 1% 的任务为例,若共有 100000 个样本:

项目计算结果
实际正类100000×0.1%100
实际负类100000×99.9%99900
真正例 TP100×90%90
假正例 FP99900×1%999
预测为正类TP+FP1089
Precision901089约 8.26%

虽然 TPR 很高、FPR 只有 1%,但由于负类数量远大于正类,假正例仍然多于真正例。这是极端不平衡任务中“指标看起来不错,但告警可信度不高”的典型原因。

基准率速记

先看正类基准率,再用贝叶斯公式判断阳性预测的可信度;负类很多时,较小的 FPR 也可能产生大量 FP。

2.5 分类阈值与 Precision-Recall 权衡 ​

概率分类器通常在阈值 t 下做决策:

y^={1,P(y=1∣x)≥t0,P(y=1∣x)<t

降低阈值后,模型会把更多样本判为正类。通常会减少漏掉正类的情况,使 Recall 上升,但也可能增加误报,使 Precision 下降。提高阈值则通常使模型只保留更有把握的正类预测,Precision 可能上升,但 Recall 可能下降。

这种关系是实际调节阈值时常见的 trade-off,并不是对每一个数据集都严格保证一个指标上升、另一个指标必然下降。阈值应根据错误代价选择:

  • 漏掉正类的代价很高时,通常更重视 Recall,例如疾病筛查、危险行为预警;
  • 误报的代价很高时,通常更重视 Precision,例如人工审核资源有限的告警系统;
  • 希望兼顾二者时,可以使用 F1 或在验证集上选择合适的工作点。

因此,Precision 和 Recall 不能只背公式,还要先明确“预测为正”与“实际为正”分别对应哪一侧:

Precision 与 Recall 速记

  • Precision:预测为正的样本中,正的有多少。
  • Recall:实际为正的样本中,找出的有多少。

2.6 ROC-AUC 与类别不平衡 ​

ROC 曲线描述分类器在不同阈值下的真正率(TPR)和假正率(FPR):

TPR=TPTP+FNFPR=FPFP+TN

其中 TPR 也就是 Recall,表示实际正类中被找出的比例;FPR 表示实际负类中被误判为正类的比例。不断改变分类阈值,就可以得到一系列 (FPR,TPR) 点,连接这些点形成 ROC 曲线。

ROC-AUC(ROC 曲线下面积,通常简称 AUC)不固定在某一个阈值上,而是综合考察模型在各种阈值下区分正负样本的能力。它也可以理解为:随机抽取一个正样本和一个负样本时,模型给正样本的分数高于负样本的概率:

AUC≈P(s(x+)>s(x−))

如果考虑分数相同的情况,平局通常按半个正确排序处理。一般可以这样解释:

ROC-AUC 数值常见含义
1完美区分正负样本
0.5与随机排序接近
小于 0.5排序方向可能反了,反向使用分数可能优于当前结果

ROC-AUC 的 TPR 和 FPR 分别在真实正类和真实负类内部计算,因此改变正负样本的总体比例时,它通常不像 Accuracy 那样剧烈变化。

注意

ROC-AUC 对类别不平衡只是相对不敏感;极端不平衡时仍需结合 PR-AUC 和具体阈值指标。

类别不平衡下的 Accuracy 示例

数据中有 990 个正常样本和 10 个异常样本。如果模型把所有样本都预测为正常:

Accuracy=9901000=99%

但异常类的召回率为:

Recallanomaly=0

模型一个异常样本都没有找出来,Accuracy 却看起来很高。这说明在类别严重不平衡时,Accuracy 很容易被多数类主导。

指标类别不平衡下的典型表现
Accuracy容易被多数类样本抬高,可能掩盖少数类完全失效
Precision会受到正类基准比例影响,不能只看 ROC-AUC 代替
Recall关注正类覆盖率,分母只包含实际正类
ROC-AUC相对不依赖正负类总体比例,衡量整体排序区分能力
PR-AUC在极端少数类问题中通常更关注正类识别质量,常需重点查看

需要注意,ROC-AUC 评价的是模型分数的整体排序能力,不保证某一个实际部署阈值下的 Precision 或 Recall 一定满足要求。对于欺诈检测、罕见疾病筛查等正类极少的任务,除了 ROC-AUC,还应重点查看 PR 曲线、PR-AUC、Precision、Recall 以及选定阈值下的混淆矩阵。此时 PR-AUC 往往比 ROC-AUC 更能反映模型对少数正类的识别质量。

类别不平衡速记

Accuracy 容易虚高;ROC-AUC 通常相对更稳健,极端不平衡时还要结合 PR-AUC。

但在极端不平衡场景中,不能只报告 AUC,应该结合 PR-AUC 和具体工作点指标。

2.7 无监督聚类评估 ​

当数据没有真实类别标签时,不能直接使用 Accuracy 判断聚类是否正确,因为没有“真实类别”可以与聚类结果逐样本对照。此时通常使用聚类内部指标,从簇内紧密程度和簇间分离程度评价结果。内部指标不需要真实标签,但通常依赖距离度量和数据表示方式。

轮廓系数 Silhouette Coefficient ​

对样本 i,记它所属的簇为 Ci。设 a(i) 是样本 i 与同簇其他样本的平均距离,b(i) 是它与其他簇的平均距离中的最小值:

a(i)=1|Ci|−1∑j∈Ci,j≠id(xi,xj)b(i)=minC≠Ci1|C|∑j∈Cd(xi,xj)

样本 i 的轮廓系数为:

s(i)=b(i)−a(i)max{a(i),b(i)}

整体轮廓系数通常取所有样本 s(i) 的平均值,范围为 [−1,1]:

  • 接近 1:样本与本簇更接近,与其他簇分离较好;
  • 接近 0:样本位于簇边界附近,簇之间可能有重叠;
  • 小于 0:样本可能更接近其他簇,聚类分配可能不合理。

轮廓系数越大通常越好,但它偏好形状较规则、分离较明显的簇,不能脱离距离度量和业务目标单独决定簇数。

Davies-Bouldin Index ​

Davies-Bouldin Index(DBI)比较簇内离散程度与簇间距离。记 Si 为第 i 个簇的簇内散度,Mij 为第 i、j 个簇中心之间的距离,则:

Rij=Si+SjMij

DBI 对每个簇取与其他簇的最大相似度,再对所有簇求平均:

DBI=1K∑i=1Kmaxj≠iRij

DBI 越小越好,理想情况下接近 0。簇内越紧密、簇间越远,DBI 通常越低。

Calinski-Harabasz Index ​

Calinski-Harabasz Index(CH)比较类间离散度与类内离散度。若 BK 表示类间散度矩阵、WK 表示类内散度矩阵、n 为样本数、K 为簇数,则常见形式为:

CH=tr(BK)/(K−1)tr(WK)/(n−K)

CH 越大越好,表示簇间差异相对更大、簇内离散程度相对更小。它和 Silhouette、DBI 一样,属于不依赖真实标签的内部评估指标。

聚类指标主要衡量内容趋势
Silhouette(轮廓系数)簇内紧密性与最近其他簇之间的分离程度越大越好,范围通常为 [−1,1]
Davies-Bouldin Index(DBI)簇内离散程度与簇间距离的相对关系越小越好,理想情况下接近 0
Calinski-Harabasz Index(CH)类间离散度与类内离散度之比越大越好
Accuracy预测类别与真实类别的一致程度需要真实标签,不属于无标签聚类的内部指标

即使拥有真实标签,也不能直接把聚类编号与类别编号逐项比较,因为聚类标签的编号本身没有语义顺序;若要使用 Accuracy,至少需要先进行类别编号的最佳匹配。实际聚类评估还可以使用需要真实标签的外部指标,例如 ARI 或 NMI。

无监督聚类指标速记

没有真实标签时看内部指标:轮廓系数越大越好、CH 越大越好、DBI 越小越好;口诀是“轮廓大、CH 大、DB 小”。

2.8 代码生成评估:Pass@k ​

Pass@k(也写作 pass@k)衡量一道题生成 k 个完整候选答案时,至少有一个候选通过评测的概率。对编程题来说,“通过”通常指候选程序通过给定测试用例;它评价的是多次采样后的成功机会,而不是某一个固定答案的平均质量。

这里的 k 表示每道题允许检查的完整候选答案数量,不是生成每个 token 时可选的 token 数量。理想化地,若每次独立生成候选并且单次通过概率为 p,则:

pass@k=1−(1−p)k

实际评测时,通常先为一道题生成 n 个候选,其中有 c 个通过测试,然后从这 n 个候选中随机取 k 个,估计至少一个通过的概率:

pass@k^=1−(n−ck)(nk)

其中:

  • n:为该题生成的候选总数;
  • c:其中通过测试的候选数;
  • k:评估时允许选取的候选数,通常要求 k≤n。

分式

(n−ck)(nk)

表示随机选择 k 个候选且全部选到错误答案的概率,减去它就得到至少有一个正确候选的估计概率。

Pass@3 计算示例

当 n=10、c=2、k=3 时:

pass@3^=1−(83)(103)=1−56120≈0.533

这表示从 10 个候选中随机检查 3 个时,至少有一个通过测试的估计概率约为 53.3%。

因此 Pass@1 只允许检查一个候选,Pass@5 则允许检查五个完整候选;只要其中一个通过,当前题目在 Pass@5 下就算成功。

概念发生在哪个阶段k 的含义
Pass@k评估阶段,检查多个完整候选答案每道题允许尝试的候选答案数量
Top-k sampling解码阶段,生成每一个 token每一步从概率较高的 k 个 token 中采样

Pass@k 与 Top-k sampling 的 k 处在不同层次,不能混为一谈。前者是“多份完整答案中是否至少有一份成功”的评估指标,后者是“每一步从哪些 token 中采样”的生成策略。

还要注意,Pass@k 中的“通过”受测试集覆盖范围影响:通过测试不等于在所有未测试场景下都绝对正确。报告该指标时,应同时说明题目集合、候选生成数量、评测测试用例和采样设置。

Pass@k 速记

Pass@k:每道题生成 k 个完整候选,只要至少一个通过测试就算成功;这里的 k 是候选答案数量,不是 Top-k sampling 的 token 数量。

使用 Markdown 与 VitePress 构建