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

前言

此为本人学习《百面机器学习——算法工程师带你去面试》的学习笔记

第二章 模型评估

模型的评估主要分为离线评估和在线评估两个阶段。针对分类、排序、回归、序列预测等不同类型的机器学习问题,评估指标的选择也有所不同。

一、评估指标的局限性

1、准确率(Accuracy):分类正确的样本占总样本个数的比例

                                                Accuracy=\frac{n_{correct} }{n_{total}}

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

2、精确率(Precision):分类正确的整样本个数占分类器判断为正样本的样本个数的比例。

3、召回率(Recall):分类正确的正样本占真正的正样本个数的比例

4、排序问题中,通常没有一个确定的阈值把得到的结果判定为正样本或负样本,而是采用TopN返回结果(即模型判定的N个正样本)计算Precision值和Recall值来衡量排序模型的性能

5、Precision值和Recall值是既矛盾有统一的两个标准,为了综合评价一个排序模型的好坏,不仅要看模型在不同TopN下的Precision@N和Recall@N,而且最好绘制出模型的P-R(Precision-Recall)曲线

只用某个点对应的精确率和召回率是不能全面地衡量模型的性能,只有通过 P-R 曲线的整体表现,才能够对模型进行更为全面的评估。

6、F1 score和ROC曲线也能综合的反映一个排序模型的性能。F1 score是精确率和召回率的调和平均值

                                F1=\frac{2\times precision\times recall}{precision+recall}

7、均方根误差(Root Mean Square Error,RMSE)经常被用来衡量回归模型的好坏,但是如果存在个别偏离程度特别大的离群点(Outlier),即使离群点数量非常少,也会让RMSE指标编程很差

                                RMSE=\sqrt{\frac{\Sigma _{i=1}^n(y_{i}-\hat{y_{i} }  )^2 }{n} }

例如流量预估问题上,噪声点确实是很容易产生,比如流量特别小的美剧、刚上映的美剧或刚获奖的美剧,都可能造成离群点。

针对离群点的解决方案:

如果认定这些离群点是“噪声点”,就需要在数据预处理的阶段吧这些噪声点过滤

如果不认为这些离群点是“噪声点”,就需要进一步提高模型的预测能力,将离群点产生的机制建模进去这是一个宏大的问题

找到一个更合适的指标来评估该模型,如平均绝对百分比误差(Mean Absolute Percent Error,MAPE)。它将每个点的误差进行归一化,降低了个别离群点带来的绝对误差的影响

                           MAPE=\Sigma _{i=1}^n\vert \frac{(y_{i}-\hat{y_{i}) }}{y_{i}} \vert\times \frac{100}{n}

二、ROC曲线

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

                                FPR=\frac{FP}{N}

                                 TPR=\frac{TP}{P}

P 是真实的正样本的数量,N 是真实的负样本的数量,TP 是 P 个正样本中被分类器预测为正样本的个数,FP 是 N 个负样本中被分类器预测为正样本的个数。

Confusion matrix

2、ROC曲线的绘制:二值分类问题中,模型的输出一般都是预测样本为整理的概率,概率大于该值则判定为负例,计算FPR和TPR,形成ROC曲线上的一点,通过不断移动截断点,则可绘制出ROC曲线

3、AUC:ROC曲线下的面积大小(沿横轴做积分),该值能够量化的反映基于ROC曲线衡量出的模型性能。

4、ROC曲线和P-R曲线:当正负样本的分布发生变化时,ROC曲线的形状能够基本保持不变,而P-R曲线的形状一般会发生较剧烈的变化。ROC 曲线能够尽量降低不同测试集带来的干扰,更加客观地衡量模型本身的性能,广泛应用于排序、推荐、广告等领域。如果希望更多地看到模型在特定数据集上的表现,P-R曲线能更直观地反映其性能。

三、余弦距离的应用

1、余弦相似度余弦距离:余弦相似度取值范围为[-1, 1],余弦距离是1减余弦相似度,取值范围是[0, 2]

2、余弦距离欧式距离
余弦距离关心的问题是向量的角度关系,并不关心他们的绝对大小。在文本、图像、视频领域,特征维度往往很高,余弦相似度在高维情况下依然能保持“相同为1,正交为0,相反为-1”。而欧式距离受维度影响,范围不固定,含义也比较模糊

在一些场景,欧式距离和余弦距离有着单调的关系,如果选择距离最小(相似度最大)的近邻,则使用欧氏距离和余弦距离的结果是相同的。

总体来说,欧氏距离体现数值上的绝对差异,余弦距离体现方向上的相对差异

例如统计用户看剧行为,A为(0,1), B为(1,0),此时余弦距离较大,欧式距离较小,我们分析两个用户对不同视频的喜好,更关注相对差异,这里应该用余弦距离。

例如分析用户活跃度,以登陆次数和平均观看时长为特征,A为(1,10), B为(10,100),则余弦距离会认为他们非常近,但这两个用户的活跃度差别是非常大的,应该选用欧式距离。

3、余弦距离并不是一个严格定义的距离。距离的定义是在一个集合中,每一对原始均可唯一确定一个实数,使得正定性、对称性、三角不等式成立,则该实数可称为这对元素的距离。余弦距离满足正定性,但不满足三角不等式

在机器学习领域,被称为距离但不满足三条距离公理的还有KL距离(Kullback-Leibler Divergence),也叫做相对熵,常用于计算两个分布之间的差异,它不满足对称性和三角不等式。

四、A/B测试的陷阱

1、在机器学习中A/B测试是验证模型最有效的主要手段

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

(1)离线评估无法完全消除模型过拟合的影响,因此,得出的离线评估结果无法完全替代线上评估结果

(2)离线评估无法完全还原线上的工程环境。一般来说,离线评估往往不会考虑线上环境的延迟、数据丢失、标签数据缺失等情况。因此,离线评估的结果是理想工程环境下的结果

(3)线上系统的某些商业指标在离线评估中无法计算。离线评估一般是针对模型本身进行评估,而与模型相关的其他指标,特别是商业指标,往往无法直接获得。比如,上线了新的推荐算法,离线评估往往关注的是ROC曲线、P-R曲线等的改进,而线上评估可以全面了解该推荐算法带来的用户点击率、留存时长、PV访问量等的变化。这些都要由A/B测试进行全面的评估

3、如何进行线上A/B测试

主要手段是进行用户分桶,将用户分成实验组和对照组,对实验组的用户施以新模型,对对照组的用户施以旧模型。分桶要注意样本的独立性和采样方式的无偏性。确保同一个用户每次只能分到同一个桶中,在分桶过程中,所选取的user_id需要时一个随机数,这样才能保证同种的样本是无偏的

五、模型评估方法

1、Holdout检验:最简单直接的检验方法,它将原始样本数据集随机划分为训练集和测试集。

缺点:验证集上计算出来的最后评估指标原始分组有很大关系

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

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

留一验证:每次留下一个样本作为验证集,区域所有样本作为测试集,进行n次验证,在将评估指标求平均值得到最终的评估指标。(n个值的平均)

留一验证缺点:在样本总数较多的情况下,时间开销极大。留一验证是留p验证的特例,但从n个元素中选择p个元素有C_{p}^n种可能,时间开销比留一验证更多,在实际工程中很少应用

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

六、超参数调优

1、超参数搜索算法包括的几个要素:

目标函数:即算法需要最大化/最小化的目标

搜索范围,一般通过上限和下限来确定。

算法的其他参数,如搜索步长

2、超参数调优方法有:

网格搜索:最简单、应用最广泛的超参数搜索算法。通过查找搜索范围内所有的点来确定最优值

优点:如果采用较大的搜索范围以及较小的补偿,则很大概率能找到去找到全局最优值

缺点:十分消耗资源和时间,特别是需要调优的超参数比较多的时候

实际应用中会先试用较大的搜索范围和较大的搜索步长,寻找全局最优值可能的位置,然后逐渐缩小搜索范围和步长来寻找更精确的最优值。优点是可以降低所需时间和计算量,缺点是目标函数一般是非凸的,可能会错过全局最优值。


随机搜索:随机搜索不再测试上界和下界之间的所有值,而是在搜索范围内随机选取样本点。其理论依据是,如果样本点足够多,那么随机采样也能大概率找到全局最优值,或其近似值

优点:比网格搜索快

缺点:并不能保证找到全局最优值

注:随机搜索有非常多种方法,如爬山算法、模拟退火(Simulated Annealing,SA)、遗传算法(Genetic Algorithm,GA)等


贝叶斯优化算法:网格搜索和随机搜索在测试新点时会忽略前一个点的信息,而贝叶斯优化算法充分利用了之前的信息,通过对目标函数形状进行学习,找到使目标函数向全局最优值提升的参数

贝叶斯优化算法学习目标函数形状的方法:首先,根据先验分布,假设一个搜索函数;然后,每一次使用心得采样点来测试目标函数时,利用这个信息来更新目标函数的先验分布;最后,算法测试由后验分布给出全局最优值可能出现的位置

优点:比网格搜索、随机搜索更高效

缺点:贝叶斯优化算法一旦找到一个局部最优值,会在该区域不断采样,很容易陷入局部最优

为了弥补贝叶斯优化的的缺陷,需要在搜索和利用之间找到一个平衡点,“搜索”即是在未取样的区域获取采样点,“利用”则是根据后验分布在最可能出现全局最优值的区域进行采样。

七、过拟合与欠拟合

1、过拟合:模型对训练数据拟合过当。如模型过于复杂,把噪声数据的特征也学习到模型中,导致模型泛化能力下降。反映到评估指标上,就是模型在训练集上表现很好,但测试集和新数据上表现很差

2、欠拟合:模型没有很好地捕捉到数据的特征,不能很好地拟合数据。反映到评估指标上,就是模型训练和预测表现都不好

3、降低过拟合的方法:

数据入手:获取更多的训练数据,更多的训练数据是解决过拟合最有效的手段。一般实验数据有限,可以通过一定的规则来扩充训练集,如图像分类中可以用数据增强,用GAN来合成大量的新训练数据

降低模型复杂度。数据较少时,模型过于复杂是产生过拟合的主要因素,适当降低模型复杂度可以避免模型拟合过多的采样噪声。例如神经网络模型减少网络层数、神经元个数等;决策树模型中降低树的深度、进行剪枝等。

正则化方法:给模型的参数加上一定的正则约束,例如将全职的大小加入到损失函数中,如L1/L2正则化

集成学习方法:将多个模型集成在一起,来降低单一模型的过拟合风险,如Bagging方法

4、降低欠拟合的方法

添加新特征。当特征不足或者表现特征与样本标签的相关性不强时,模型容易出现欠拟合。通过挖掘“上下文特征”“ID类特征”“组合类特征”等新特征,往往能取得更好的效果。在深度学习潮流中,由很多模型可以帮助完成特征工程,如因子分解机、梯度提升决策树、Deep-crossing等都可以称为丰富特征的方法

增加模型复杂度。例如在线模型中添加高次项,在神经网络中增加网络层数或神经元个数等

减小正则化系数。正则化是用来防止过拟合的,但当模型出现欠拟合现象时,需要有针对性地减少正则化系数

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,639评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,277评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,221评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,474评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,570评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,816评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,957评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,718评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,176评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,511评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,646评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,322评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,934评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,755评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,987评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,358评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,514评论 2 348

推荐阅读更多精彩内容