二、模型评估

模型评估主要分为离线评估和在线评估两个阶段。

1、准确率的局限性

当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。为解决这个问题,可以使用更为有效的平均准确率(每个类别下的样本准确率的算术平均)作为模型的评估指标

2、精确率和召回率

为了综合评估一个排序模型的好坏,不仅要看模型在不同 TopN 下的 Precision@N 和 Recall@N,而且最好绘制出模型的 P-R 曲线,横轴是召回率,纵轴是精确率。P-R 曲线上的一个点代表着,在某一阈值下,模型将大于该阈值的结果判定为正样本,小于该阈值的结果判定为负样本,此时返回结果对应的召回率和精确率。

image.png

F1 score 是精确率和召回率的调和平均值。

3、平方根误差

RMSE 能够很好地反映回归模型预测值和真实值的偏离程度。但在实际问题中,如果存在个别偏离程度非常大的离群点,即使离群点数量非常少,也会让 RMSE 指标变得很差。
解决方案:

  • 如果认定这些离群点是“噪声点”的话,就需要在数据预处理的阶段把这些噪声点过滤掉。
  • 如果不是“噪声点”,需要进一步提高模型的预测能力,将离群点产生的机制建模进去。
  • 使用平均绝对百分比误差,MAPE 相当于把每个点的误差进行了归一化。
image.png

4、ROC 曲线、AUC、ROC 曲线和 P-R 曲线的对比

AUC 指的是 ROC 曲线下的面积大小,该值能够量化地反映基于 ROC 曲线衡量出的模型性能。AUC 的取值一般在 0.5-1 之间,AUC 越大,说明分类器越可能把真正的正样本排在前面,分类性能越好

ROC

ROC 曲线有一个特点,当正负样本分布发生变化的时候,ROC曲线的形状能够基本保持不变。而PR曲线的形状会发生较剧烈的变化。
ROC 曲线能够尽量降低不同测试集带来的干扰,更加客观地衡量模型本身的性能。若选择不同的测试集,P-R 曲线的变化就会非常大,而 ROC 曲线则能够更加稳定地反映模型本身的好坏。
希望更多地看到模型在特定数据集上的表现,P-R 曲线则能够更直观地反映其性能。

5、余弦定理

当一对文本相似度的长度差距很大,内容相近时,如果使用词频或词向量作为特征,它们在特征空间中的欧式距离通常很大;而使用余弦相似度的话,它们之间夹角可能很小,因而相似度很高。


image.png

研究的对象的特征维度往往很高,余弦相似度在高维情况下依然保持“相同时为1,正交时为 0 ,相反时为 -1”;而欧式距离的数值则受维度的影响,范围不固定,而且含义比较模糊。
欧式距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。

6、模型评估方法

Holdout 检验

随机按比例划分成训练集和测试集。缺点是在验证集上计算出来的评估指标与原始分组有很大的关系。

交叉检验

  • K-Fold交叉验证:数据分成 K 份,遍历 K 个子集,每次把当前子集作为验证集,其余子集作为训练集,最终把k次指标平均值作为最终的评估指标。
  • 留一验证:每次留下一个样本作为验证集,其余所有样本作为训练集,最终评估指标取均值

自助法

当训练样本比较少时,划分训练集会让样本进一步变少。自助法通过对样本n次有放回的抽取,使得在n次采样过程中,没有被抽到样本的作为验证集。

自助法采样过程中,对n个样本进行n次抽样,当n趋于无穷大时,最终有多少数据从未被选择过?


image.png

6、超参数调优

超参数搜索算法三要素:

  • 目标函数:算法需要最大化/最小化目标
  • 搜索范围:一般通过上限和下限来确定
  • 算法其它参数:如搜索步长

网格搜索

通过查找范围内的所有点来确定最优值。实际应用中,先使用较广的搜索范围以及较大的步长来寻找全局最优值可能的位置,然后逐步缩小范围和步长,来寻找更精确的最优值。

随机搜索

在搜索范围中随机选择样本点。如果样本点集足够大,通过随机采样也能大概率找到全局最优值。

贝叶斯优化(???)

充分利用之前的信息。通过对目标函数形状进行学习,找到使目标函数向全局最优值提升的参数(先根据先验分布,假设搜集函数,然后新的样本点会更新目标函数的先验分布,最后算法测试后验分布给出的全局最优值可能出现的位置)

7、过拟合和欠拟合

image.png

降低欠拟合风险方法:

  • 添加新特征:上下文特征、ID类特征、组合特征;因子分解机、梯度提升决策树、Deep-Crossing
  • 增加模型复杂度:线性模型添加高次项、NN添加层数或神经元个数
  • 减小正则化系数

降低过拟合风险方法:

  • 添加更多数据,较小噪声影响:数据扩充(图像的旋转平移、添加噪声扰动、增加清晰度对比度等)
  • 降低模型复杂度:决策树剪枝或降低深度;NN 降低层数或神经元个数
  • 添加正则化系数:给模型参数加上一定正则约束
  • 集成学习
  • dropout
  • early stopping

你可能感兴趣的:(二、模型评估)