百面机器学习|学习笔记|第二章模型评估

1.评价指标

百面机器学习|学习笔记|第二章模型评估

1. F1值和ROC曲线也能综合反映一个排序模型的性能。ROC曲线后面一节再说,F1值是精确率和召回率的调和均值
百面机器学习|学习笔记|第二章模型评估

2. 均方根误差RMSE(Root Mean Square Error)通常用来衡量回归模型的好坏,但是如果存在个别偏离程度特别大的离群点(Outlier),即使离群点非常少,也会让RMSE指标变的很差。
百面机器学习|学习笔记|第二章模型评估例如在流量预测问题中,噪声点是很容易产生的,甚至一些相关社交媒体突发事件带来的流量,都很有可能造成离群点。
针对离群点的解决方案有:

  • 如果认为这些离群点是“噪声点”的话,就需要在数据预处理的阶段将噪声点过滤掉。
  • 如果不认为离群点是“噪声点”,就需要进一步提高模型的预测能力,将离群点产生的机制建模进去。(这就是一个宏大的话题了)
  • 找一个更合适的指标来评估模型,如平均绝对百分比误差(Mean Absolute Percent Error,MAPE)。它将每个点的误差进行了归一化,降低了个别离群点带来的绝对误差的影响。
    百面机器学习|学习笔记|第二章模型评估

3. ROC(Receiver Operating Characteristic Curve,受试者工作特征曲线),横坐标为假阳性率(False Positive Rate,FPR),纵坐标为真阳性率(True Positive Rate,TPR)。

百面机器学习|学习笔记|第二章模型评估

百面机器学习|学习笔记|第二章模型评估

 

4. AUC:ROC曲线下的面积(沿横轴积分),能够量化地反映基于ROC曲线衡量出的模型性能。

5. ROC曲线与P-R曲线:当正负样本的分布发生变化时,ROC曲线形状能保持基本不变,而P-R曲线形状一般会发生剧烈的变化。ROC曲线能更加稳定地反映模型本身的好坏,广泛应用于排序、推荐、广告等领域。如果希望更多地看到模型在特定数据集上的表现,P-R曲线能更直观地反映其性能。

2.余弦距离应用
百面机器学习|学习笔记|第二章模型评估

 余弦相似度余弦距离:余弦相似度取值范围为百面机器学习|学习笔记|第二章模型评估,余弦距离是1减余弦相似度,取值范围为百面机器学习|学习笔记|第二章模型评估

1.余弦距离欧式距离

  • 余弦距离关心的是向量的角度关系,并不关心它们的绝对大小。在文本、图像、视频领域,特征维度往往很高,余弦相似度在高维情况下依然能保持“相同为1,正交为0,相反为-1”。而欧式距离受维度影响,范围不固定,含义也比较模糊。
  • 在一些场景,欧式距离和余弦距离有着单调的关系,如果选择距离最小(相似度最大)的近邻,则使用欧式距离和余弦距离的结果是相同的。
  • 总体来说,欧式距离体现数值上的绝对差异,余弦距离体现方向上的相对差异
    例如统计用户看剧行为,A为(0,1), B为(1,0),此时余弦距离较大,欧式距离较小,我们分析两个用户对不同视频的喜好,更关注相对差异,这里应该用余弦距离。
    再例如分析用户活跃度,以登陆次数和平均观看时长为特征,A为(1,10), B为(10,100),则余弦距离会认为他们非常近,但这两个用户的活跃度差别是非常大的,应该选用欧式距离。

2. 余弦距离并不是一个严格定义的距离。距离的定义是在一个集合中,每一对元素均可唯一确定一个实数,使得正定性对称性三角不等式成立,则该实数可称为这对元素的距离。余弦距离满足正定性和对称性,但不满足三角不等式
在机器学习领域,被称为距离但不满足三条距离公理的还有KL距离(Kullback-Leibler Divergence),也叫做相对熵,常用于计算两个分布之间的差异,它不满足对称性和三角不等式。

3.A/B测试

在机器学习中A/B测试是验证模型最终效果的主要手段。

已经对模型进行充分的离线评估,还需要进行在线A/B测试的原因有:

  • 离线评估无法完全消除模型过拟合的影响。
  • 离线评估无法完全还原线上的工程环境。一般来讲,离线评估往往没有考虑线上环境的延迟、数据丢失、标签数据缺失等情况。也就是说,离线评估是理想工程环境下的结果。
  • 离线评估一般是针对模型本身进行评估,线上系统的某些商业指标在离线评估中无法计算。如推荐问题中,离线评估关注ROC曲线、P-R曲线,而弦上评估可以全面了解用户点击率、留存时长、PV访问量等变化。

如何进行线上A/B测试:主要手段是进行用户分桶,将用户分成实验组和对照组,对实验组用户用新模型,对对照组用户用旧模型。分桶要保证样本的独立性和采样方式的无偏性

4. 模型评估方法

百面机器学习|学习笔记|第二章模型评估

1. Holdout检验:最简单直接的检验方法,它将原始样本数据集随机划分成训练集和测试集。
缺点:验证集上计算出来的最后评估指标原始分组有很大关系。

2. 交叉检验:为了消除Holdout的随机性,则有了交叉验证。

  • k-fold交叉验证:将全部样本分成k个大小相等的样本子集,拿出其中一个子集作为验证集,其余k-1个子集作为训练集,依次遍历。通常把k次评估指标的平均值作为最终的评估指标。实际试验中,k经常取10。

3. 自助法:Holdout和交叉验证都是基于数据集的划分,但是当样本规模较小时,将样本集进行划分会让训练集进一步减小,可能影响模型的训练效果。自助法是基于自助采样的检验方法,对于总数为百面机器学习|学习笔记|第二章模型评估的样本集合,有放回地随机抽样百面机器学习|学习笔记|第二章模型评估次,得到大小为百面机器学习|学习笔记|第二章模型评估的训练集。其中有的样本会重复,有的样本没有被抽出过,将没有被抽出的样本作为验证集进行验证,就是自助法的验证过程。当样本数很大时,大约有百面机器学习|学习笔记|第二章模型评估=36.8%的样本从来没有被采样过,这里的计算用到高数中的重要极限。

5. 超参数调优

百面机器学习|学习笔记|第二章模型评估