各种模型评估指标总结,持续更新
分类模型
Accuracy,准确率
- 公式:$$ \text{Accuracy} = \frac{TP+TN}{TP+TN+FP+FN} $$
- 直观,但不利于不平衡样本
Recall,召回率
- 公式:$$ \text{Recall} = \frac{TP}{TP+FN} $$
Precision,精确率
- 公式:$$ \text{Precision} = \frac{TP}{TP+FP} $$
F1 Score
- 公式:$$ \text{F1 Score} = \frac{2 * \text{Precision} * \text{Recall}}{\text{Precision}+\text{Recall}} $$
- 综合考虑模型”求精“和”求全“的能力
- 关键词:F1-Score, F1 Score, F1 分数
AUC
- 形式化定义:AUC是ROC曲线下方的面积,其中ROC曲线的横坐标是伪阳性率(也叫假正类率,False Positive Rate),纵坐标是真阳性率(真正类率,True Positive Rate)
- 本质:任意取两个样本,一个正样本和一个负样本( \( \forall x^+, x^-\) ),模型预测正样本为正的概率分为 \(Score_\theta(y=1|x^+)\),模型预测正样本为正的概率分为 \(Score_\theta(y=1|x^-)\),则AUC为:
$$ AUC_\theta = P(Score_\theta(y=1|x^+)>Score_\theta(y=1|x^-))$$ - 真实实现时,可以统计所有正负样本对,若正样本预估值大于负样本,则累计分数+1,最后用累计分数除以所有可能的正负样本对数量
$$ AUC_\theta = \frac{Count(S_+>S_-)}{Count(S_+) * Count(S_-)}$$ - 具体代码实现:
- 将样本按照预估分数倒序排列,从大到小
- 定义四个变量:正样本总数 \(M\),负样本总数 \(N\),已访问负样本数量 \(X=0\),正样本大于负样本的样本对数量 \(Z=0\)
- 依次访问所有样本:
- 若为正样本,则 \(Z = Z + (N-X)\)
- 若为负样本,则 \(X = X + 1\)
- 最后计算: \(AUC = \frac{Z}{M * N}\)
回归模型
- 参考:https://www.cnblogs.com/HuZihu/p/10300760.html
- 参考:https://blog.csdn.net/guolindonggld/article/details/87856780
MSE
- MSE (Mean Square Error,均方误差)
- 也常用作损失函数
$$\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2$$- \(n\):样本数量
- \(y_i\):第 \(i\) 个样本的真实值
- \(\hat{y}_i\):第 \(i\) 个样本的预测值
RMSE
- RMSE (Root Mean Square Error,根均方误差)
$$\text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2}$$
MAE
- MAE (Mean Absolute Error,平均绝对误差)
$$\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|$$
MAPE
- MAPE (Mean Absolute Percentage Error,平均绝对百分比误差)
$$\text{MAPE} = \frac{1}{n} \sum_{i=1}^{n} \left| \frac{y_i - \hat{y}_i}{y_i} \right| \times 100%$$- 注:这个指标对分母要求很高,分母存在极小值时指标波动会非常大
- 比如当 \(y_i=0\) 时,MAPE 无定义,这是其核心缺陷
- 注:这个指标对分母要求很高,分母存在极小值时指标波动会非常大
SMAPE
- SMAPE (Symmetric Mean Absolute Percentage Error,对称平均绝对百分比误差)
$$\text{SMAPE} = \frac{1}{n} \sum_{i=1}^{n} \frac{|y_i - \hat{y}_i|}{\frac{1}{2}(|y_i| + |\hat{y}_i|)} \times 100%$$- 结果范围为 \([0, 200%]\)
- SMAPE 也有简化版定义:分母直接用 \(|y_i| + |\hat{y}_i|\),此时公式为
$$\text{SMAPE} = \frac{2}{n} \sum_{i=1}^{n} \frac{|y_i - \hat{y}_i|}{|y_i| + |\hat{y}_i|} \times 100%$$- 结果范围为 \([0, 100%]\)
- 两种形式均常见,均被广泛使用,需根据场景选择
WMAPE
- WMAPE (Weighted Mean Absolute Percentage Error,加权平均绝对百分比误差)
$$\text{WMAPE} = \frac{\sum_{i=1}^{n} |y_i - \hat{y}_i|}{\sum_{i=1}^{n} |y_i|} \times 100%$$ - WMAPE 也有按自定义权重 \(w_i\) 的通用形式:
$$\text{WMAPE} = \frac{\sum_{i=1}^{n} w_i |y_i - \hat{y}_i|}{\sum_{i=1}^{n} w_i |y_i|} \times 100%$$- 默认权重 \(w_i=1\) 时退化为之前的公式
- WMAPE 解决了 MAPE 中 \(y_i=0\) 无定义的问题
- WMAPE 是 MAPE 的加权改进版,避免了分母为 0 的问题,更适合实际业务场景
排序模型
DCG
- DCG(Discounted Cumulative Gain,累计收益折扣)
- 核心作用:衡量排序结果的质量,考虑位置对价值的衰减(越靠前的结果权重越高)
$$\text{DCG}_p = \sum_{i=1}^{p} \frac{\text{rel}_i}{\log_2(i + 1)}$$ - 等价形式(更常用,便于与 IDCG 对齐):
$$\text{DCG}_p = \text{rel}_1 + \sum_{i=2}^{p} \frac{\text{rel}_i}{\log_2(i)}$$- \(p\): 排序结果的截断位置(如 Top-10 则 \(p=10\))
- \(\text{rel}_i\): 第 \(i\) 个位置结果的相关性分数(通常为非负整数,如0=不相关、1=相关、2=高度相关)
- \(\log_2(i+1)$/$\log_2(i)\): 位置折扣因子,体现“越靠前的结果越重要”的特性
- 补充:DCG 还有另一种常见形式(引入指数缩放相关性):
$$\text{DCG}_p = \sum_{i=1}^{p} \frac{2^{\text{rel}_i} - 1}{\log_2(i + 1)}$$- 该形式会放大高相关性结果的权重,适用于对“高度相关结果”更敏感的场景(如搜索排序)
NDCG
- NDCG(Normalized Discounted Cumulative Gain,归一化累计收益折扣)
- 核心作用:将 DCG 归一化到
[0,1]区间,消除不同查询/任务间的结果尺度差异,便于跨场景比较
$$\text{NDCG}_p = \frac{\text{DCG}_p}{\text{IDCG}_p}$$- \(\text{IDCG}_p\)(Ideal DCG,理想累计收益折扣):将所有结果按相关性从高到低完美排序后得到的 \(\text{DCG}_p\),即当前数据集下的最大可能 DCG 值,计算公式为:
$$\text{IDCG}_p = \sum_{i=1}^{|REL_p|} \frac{\text{rel}^*_i}{\log_2(i + 1)} \quad (\text{或对应DCG的等价形式})$$- \(\text{rel}^*_i\) 为第 \(i\) 个位置的理想相关性分数,\(|REL_p|\) 为前 \(p\) 个位置中理想排序的结果数量
- \(\text{IDCG}_p\)(Ideal DCG,理想累计收益折扣):将所有结果按相关性从高到低完美排序后得到的 \(\text{DCG}_p\),即当前数据集下的最大可能 DCG 值,计算公式为:
- NDCG 的取值范围为 \([0,1]\): \(\text{NDCG}_p=1\) 表示排序结果完全理想,\(\text{NDCG}_p=0\) 表示排序结果完全无价值;
- 当所有结果均无相关性(\(\text{rel}_i=0\))时,\(\text{DCG}_p=\text{IDCG}_p=0\),此时约定 \(\text{NDCG}_p=1\);
- DCG/NDCG 是排序任务(如推荐系统、搜索引擎)的核心评估指标, \(p\) 的选择需贴合业务场景(如推荐系统常用 Top-5/Top-10,搜索常用 Top-20)
AP(Average Precision)与 MAP(Mean Average Precision)
校准模型
COPC
- COPC(Click over Predicted Click)
- COPC = 实际的点击率/模型预测的点击率
- COPC 主要衡量model整体预估的偏高和偏低,同样越接近1越好,一般情况下在1附近波动
- COPC 指标在展示广告上应用多一些
PCOC
- PCOC(Predicted Click over Click)
- PCOC = 模型预估的点击率/实际点击率,与COPC用途相同
- COPC的倒数
PCOC指标是校准之后的点击率与后验点击率(近似真实概率)的比值,越接近于1,意味着在绝对值上越准确,大于1为高估,小于1为低估,是一种常用的高低估评价指标。但是PCOC存在一定局限性,举个例子:2万个样本,其中1万个样本的预估概率是0.2,后验概率是0.4,计算出PCOC是0.2/0.4=0.5,是显著低估的,另1万个样本PCOC是0.8/0.6= 1.3,明显是高估的。所以校准效果并不好,但是样本放一起看,校准后概率是(0.2+0.8)/2=0.5,后验概率是(0.4+0.6)/2=0.5,整体PCOC是1.0,表现完全正常。所以单一PCOC指标不能表征样本各维度下的校准水平。
净胜率模型
- ANLP
- 参考:论文《Scalable Bid Landscape Forecasting in Real-time Bidding》
- 链接:https://arxiv.org/pdf/2001.06587.pdf