机器学习备忘录之模型评估

度量指标

评估模型的好坏需要一个度量方法 ,选择不同的度量方法可能会导致最后对模型的选择不同。

准确率(Accuracy):分类正确的样本占总样本个数的比例。
精确率(Precision):分类正确的正样本个数占分类器判定为正样本个数的比例。
召回率(Recall):分类正确的正样本个数占真正的正样本个数的比例。

当不同类别的样本比例非常不均衡时,将准确率作为分类性能的指标非常局限,可以使用更加有效的平均准确率(每个类别下的样本准确率的算数平均)作为模型评估的指标。

精确率更为保守,在很有把握时才将样本预测为正样本,因此会漏掉很多正样本;召回率更为激进,与精确率相反。因此精确率、召回率两者矛盾又统一。通常要绘制P-R曲线,单个点对应的精确率和召回率并不能全面地衡量模型的性能,画曲线能对模型进行更为全面的评估。平衡点(BEP)、F1值(精确率和召回率的调和均值)、ROC曲线也能综合反映一个排序模型的性能。
机器学习备忘录之模型评估
ROC曲线的绘制:二值分类问题中,模型的输出一般都是预测样本为正例的概率,概率大于该值则判为正例,小于该值判为负例,计算FPR和TPR,形成ROC曲线上的一点。通过不断移动截断点,则可绘制出ROC曲线。
机器学习备忘录之模型评估
机器学习备忘录之模型评估
机器学习备忘录之模型评估
机器学习备忘录之模型评估
AUC:ROC曲线下的面积(沿横轴积分),能够量化地反映基于ROC曲线衡量出的模型性能。取值一般在0.5~1.0之间,越大说明分类性能越好
ROC曲线与P-R曲线:当正负样本的分布发生变化时,ROC曲线形状能保持基本不变,而P-R曲线形状一般会发生剧烈的变化。ROC曲线能更加稳定地反映模型本身的好坏,广泛应用于排序、推荐、广告等领域(因为正负样本分布很不均匀)。如果希望更多地看到模型在特定数据集上的表现,P-R曲线能更直观地反映其性能。

均方根误差RMSE(Root Mean Square Error)通常用来衡量回归模型的好坏,但是如果存在个别偏离程度特别大的离群点(Outlier),即使离群点非常少,也会让RMSE指标变的很差。
机器学习备忘录之模型评估
余弦相似度和余弦距离:余弦相似度取值范围为[-1,1],余弦距离是1减余弦相似度,取值范围为[0,2]。
机器学习备忘录之模型评估
总体来说,欧式距离体现数值上的绝对差异,余弦距离体现方向上的相对差异
余弦距离并不是一个严格定义的距离。距离的定义是在一个集合中,每一对元素均可唯一确定一个实数,使得正定性、对称性、三角不等式成立,则该实数可称为这对元素的距离。余弦距离满足正定性和对称性,但不满足三角不等式。
在机器学习领域,被称为距离但不满足三条距离公理的还有KL距离(Kullback-Leibler Divergence),也叫做相对熵,常用于计算两个分布之间的差异,它不满足对称性和三角不等式。

A/B测试的陷阱

在机器学习中A/B测试是验证模型最终效果的主要手段。
已经对模型进行充分的离线评估,还需要进行在线A/B测试的原因有:
离线评估无法完全消除模型过拟合的影响
离线评估无法完全还原线上的工程环境。一般来讲,离线评估往往没有考虑线上环境的延迟、数据丢失、标签数据缺失等情况。也就是说,离线评估是理想工程环境下的结果。
离线评估一般是针对模型本身进行评估,线上系统的某些商业指标在离线评估中无法计算。如推荐问题中,离线评估关注ROC曲线、P-R曲线,而线上评估可以全面了解用户点击率、留存时长、PV访问量等变化。

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

模型评估的方法

留出法(hold-out检验):最简单直接的检验方法,它将原始样本数据集随机划分成训练集和测试集。但是验证集上计算出来的最后评估指标原始分组有很大关系。
k折交叉验证法(cross validation):为了消除hold-outt的随机性,将全部样本分成k个大小相等的样本子集,拿出其中一个子集作为验证集,其余k-1个子集作为训练集,依次遍历。通常把k次评估指标的平均值作为最终的评估指标。实际试验中,k经常取10,“10次10折交叉验证”。留一法是交叉验证法的一个特例,每次留下一个样本作为验证集,其余所有样本作为测试集,进行n次验证,再将评估指标求平均值得到最终的评估指标。(n个值的平均)但是在样本总数较多的情况下,时间开销极大。
自助法(bootstrapping):Holdout和交叉验证都是基于数据集的划分,但是当样本规模较小时,将样本集进行划分会让训练集进一步减小,可能影响模型的训练效果。自助法是基于自助采样的检验方法,对于总数为的样本集合,有放回地随机抽样次,得到大小为的训练集。其中有的样本会重复,有的样本没有被抽出过,将没有被抽出的样本作为验证集进行验证,就是自助法的验证过程。当样本数很大时,大约有36.8%的样本从来没有被采样过。自助法在数据集较小、难以有效划分训练/测试集时很有用,但对于初始数据集分布有干扰会引入估计偏差。

超参数调优

超参数搜索算法包括的三个要素:
目标函数,即算法需要最大化/最小化的目标;
搜索范围,一般通过上限和下限来确定;
算法的其他参数,如搜索步长。

机器学习备忘录之模型评估

过拟合与欠拟合

过拟合:模型对训练数据拟合过当。如模型过于复杂,把噪声数据的特征也学习到模型中,导致模型泛化能力下降。反映到评估指标上,就是模型在训练集上表现很好,但测试集和新数据上表现较差
降低过拟合风险的方法:
从数据入手:获得更多的训练数据,更多的训练数据是解决过拟合最有效的手段。一般实验数据有限,可以通过一定的规则来扩充训练集,如图像分类中可以用数据增强,用GAN来合成大量的新训练数据。
降低模型复杂度。数据较少时,模型过于复杂是产生过拟合的主要因素,适当降低模型复杂度可以避免模型拟合过多的采样噪声。例如神经网络模型中减少网络层数、神经元个数等;决策树模型中降低树的深度、进行剪枝等。
正则化方法。给模型的参数加上一定的正则约束,例如将权值的大小加入到损失函数中,如L1/L2正则化。
集成学习方法。将多个模型集成在一起,来降低单一模型的过拟合风险,如Bagging方法。

欠拟合:模型没有很好地捕捉到数据的特征,不能很好地拟合数据。反映到评估指标上,就是模型训练和预测表现都不好
降低欠拟合风险的方法:
添加新特征。当特征不足或者现有特征与样本标签的相关性不强时,模型容易出现欠拟合。通过挖掘“上下文特征”“ID类特征”“组合特征”等新特征,往往能取得更好的效果。在深度学习潮流中,由很多模型可以帮助完成特征工程,如因子分解机、梯度提升决策树、Deep-crossing等都可以成为丰富特征的方法。
增加模型复杂度。例如在线性模型中添加高次项,在神经网络模型中增加网络层数或神经元个数等。
减小正则化系数。正则化是用来防止过拟合的,但当模型出现欠拟合现象时,需要有针对性地减少正则化系数。

参考:
百面机器学习 算法工程师带你去面试
机器学习
统计学习方法
百面机器学习|第二章模型评估知识点