01 评估指标的局限性

准确率(Accuracy)的局限性

A c c u r a c y = n c o r r e c t n t o t a l Accuracy = \frac{{{n_{correct}}}}{{{n_{total}}}} Accuracy=ntotal​ncorrect​​

当负样本占99%时,分类器把所有样本都预测为负样本也可以获得99%的准确率。所以当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。

为了解决这个问题,可以使用更为有效地平均准确率(每个类别下的样本准确率的算术平均)作为模型评估的指标。

精确率(Precision)与召回率(Recall)的权衡

p r e c i s i o n = T P T P + F P precision = \frac{{TP}}{{TP + FP}} precision=TP+FPTP​

精确率是指分类正确的正样本个数占分类器判定为正样本的样本个数的比例。
r e c a l l = T P T P + F N recall = \frac{{TP}}{{TP + FN}} recall=TP+FNTP​
召回率是指分类正确的正样本个数占真正的正样本个数的比例。

Precision值和Recall值是既矛盾又统一的两个指标,为了提高Precision值,分类器需要尽量在“更有把握”时才把样本预测为正样本,但此时往往会因为过于保守而漏掉很多“没有把握”的正样本,导致Recall值降低。

P-R曲线的横轴是召回率,纵轴是精确率。P-R曲线上的一个点代表着,在某一阈值下,模型将大于该阈值的结果判定为正样本,小于该阈值的结果判定为负样本,此时返回结果对应的召回率和精确率。整条P-R曲线是通过将阈值从高到低移动而生成的。

F1-score能综合地反映模型的性能。
F 1 = 2 × p r e c i s i o n × r e c a l l p r e c i s i o n + r e c a l l F1 = \frac{{2 \times precision \times recall}}{{precision + recall}} F1=precision+recall2×precision×recall​

平方根误差的“意外”

均方根误差(Root Mean Square Error, RMSE)经常被用来衡量回归模型的好坏。
R M S E = ∑ i = 1 n ( y i − y i ∧ ) 2 n RMSE = \sqrt {\frac{{\sum\limits_{i = 1}^n {{{({y_i} - \mathop {{y_i}}\limits^ \wedge )}^2}} }}{n}} RMSE=ni=1∑n​(yi​−yi​∧​)2​ ​
如果存在个别偏离程度非常大的离群点(Outlier)时,即使离群点数量非常少,也会让RMSE指标变得很差。解决方法:

1)如果离群点是“噪声”点,需要在数据预处理时过滤掉。

2)不是“噪声点”的话,需要提高模型的预测能力。

3)可以找一个更加合适的指标。

平均绝对百分比误差(Mean Absolute Percent Error, MAPE)
M A P E = ∑ i = 1 n ∣ y i − y i ∧ y i ∣ × 100 n MAPE = \sum\limits_{i = 1}^n {|\frac{{{y_i} - \mathop {{y_i}}\limits^ \wedge }}{{{y_i}}}} | \times \frac{{100}}{n} MAPE=i=1∑n​∣yi​yi​−yi​∧​​∣×n100​
相比于RMSE,MAPE相当于把每个点的误差进行了归一化,降低了个别离群点带来的绝对误差的影响。

02 ROC曲线

什么是ROC曲线?

ROC曲线是Receiver Operating Characteristic Curve(受试者工作特征曲线)

ROC曲线的横坐标为假阳性率(False Positive Rate, FPR);纵坐标为真阳性率(True Positive Rate, TPR)
F P R = F P N FPR = \frac{{FP}}{N} FPR=NFP​

T P R = T P P TPR = \frac{{TP}}{P} TPR=PTP​

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

如何绘制ROC曲线?

ROC曲线是通过不断移动分类器的“截断点”来生成曲线上的一组关键点的。“截断点”就是区分正负预测结果的阈值。

如何计算AUC?

曲线下的面积(Area Under Curve, AUC),是指ROC曲线下的面积大小。只需要沿着ROC横轴积分就可以了。一般取值在0.5~1。AUC越大,说明分类器越可能把真正的正样本排在前面,分类性能越好。

ROC曲线相比P-R曲线有什么特点?

相比P-R曲线,当正负样本的分布发生变化时,ROC曲线的形状能够基本保持不变,而P-R曲线的形状一般会发生较剧烈的变化。如果研究者希望更多地看到模型在特定模型数据集上的表现,P-R曲线则能够更直观地反映其性能。

当负样本增加后的曲线图。

03 余弦距离的应用

分析两个特征向量之间的相似性,常使用余弦相似度来表示。

余弦相似度
c o s ( A , B ) = A ∙ B ∥ A ∥ 2 ∥ B ∥ 2 cos (A,B) = \frac{{A \bullet B}}{{\parallel A{\parallel _2}\parallel B{\parallel _2}}} cos(A,B)=∥A∥2​∥B∥2​A∙B​

为什么在一些场景中要使用余弦相似度而不是欧式距离?

余弦相似度即两个向量夹角的余弦,关注的是向量之间的角度关系,并不关心它们的绝对大小,其取值范围是[-1,1]。总体来说,欧式距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。

余弦距离是否是一个严格定义的距离?

距离的定义:在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性、对称性、三角不等式)成立,这该实数可称为这对元素之间的距离。

余弦距离满足正定性和对称性,不满足三角不等式。

1)正定性

根据余弦距离的定义,有
d i s t ( A , B ) = 1 − cos ⁡ θ = ∥ A ∥ 2 ∥ B ∥ 2 − A B ∥ A ∥ 2 ∥ B ∥ 2 dist(A,B) = 1 - \cos \theta = \frac{{\parallel A{\parallel _2}\parallel B{\parallel _2} - AB}}{{\parallel A{\parallel _2}\parallel B{\parallel _2}}} dist(A,B)=1−cosθ=∥A∥2​∥B∥2​∥A∥2​∥B∥2​−AB​
考虑到
∥ A ∥ 2 ∥ B ∥ 2 − A B ≥ 0 \parallel A{\parallel _2}\parallel B{\parallel _2} - AB \ge 0 ∥A∥2​∥B∥2​−AB≥0
因此有
d i s t ( A , B ) ≥ 0 恒 成 立 dist(A,B) \ge 0恒成立 dist(A,B)≥0恒成立
特别地,有
d i s t ( A , B ) = 0 ⇔ ∥ A ∥ 2 ∥ B ∥ 2 = A B ⇔ A = B dist(A,B) = 0 \Leftrightarrow \parallel A{\parallel _2}\parallel B{\parallel _2} = AB \Leftrightarrow A = B dist(A,B)=0⇔∥A∥2​∥B∥2​=AB⇔A=B
因此余弦距离满足正定性

2)对称性

根据余弦定理的定义,有
d i s t ( A , B ) = ∥ A ∥ 2 ∥ B ∥ 2 − A B ∥ A ∥ 2 ∥ B ∥ 2 = ∥ B ∥ 2 ∥ A ∥ 2 − A B ∥ B ∥ 2 ∥ A ∥ 2 = d i s t ( B , A ) dist(A,B) = \frac{{\parallel A{\parallel _2}\parallel B{\parallel _2} - AB}}{{\parallel A{\parallel _2}\parallel B{\parallel _2}}} = \frac{{\parallel B{\parallel _2}\parallel A{\parallel _2} - AB}}{{\parallel B{\parallel _2}\parallel A{\parallel _2}}} = dist(B,A) dist(A,B)=∥A∥2​∥B∥2​∥A∥2​∥B∥2​−AB​=∥B∥2​∥A∥2​∥B∥2​∥A∥2​−AB​=dist(B,A)
因此余弦定理满足对称性

3)三角不等式

该性质不成立,下面给出一个反例。给定A=(1,0),B=(1,1),C=(0,1),则有
d i s t ( A , B ) = 1 − 2 2 dist(A,B) = 1 - \frac{{\sqrt 2 }}{2} dist(A,B)=1−22 ​​

d i s t ( B , C ) = 1 − 2 2 dist(B,C) = 1 - \frac{{\sqrt 2 }}{2} dist(B,C)=1−22 ​​

d i s t ( A , C ) = 1 dist(A,C) = 1 dist(A,C)=1

因此有
d i s t ( A , B ) + d i s t ( B , C ) = 2 − 2 < 1 = d i s t ( A , C ) dist(A,B) + dist(B,C) = 2 - \sqrt 2 < 1 = dist(A,C) dist(A,B)+dist(B,C)=2−2 ​<1=dist(A,C)
KL距离不满足对称性和三角不等式。

04 A/B测试的陷阱

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

在对模型进行过充分的离线评估之后,为什么还要进行在A/B测试

需要进行在线A/B测试的原因如下:

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

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

(3)线上系统的某些商业指标在离线评估中无法计算。比如,新的推荐算法,离线评估往往关注的是ROC曲线,PR曲线等的改进,而线上评估可以全面了解该推荐算法带来的用户点击率,留存时长,PV访问量等

如何进行线上A/B测试?

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

05模型评估的方法

在模型评估过程中,有哪些主要的验证方法,它们的优缺点是什么?

Holdout检验

是最简单也是最直接的验证方法,它将原始的样本随机划分为训练集和验证集两部分。

交叉验证

K-fold交叉验证:首先将全部样本划分为K个大小相等的样本子集;依次遍历这k个子集,每次把当前子集作为验证集,其余所有子集作为训练集,进行模型的训练和评估。

留一验证:每次留下1个样本作为验证集,其余所有样本作为测试集。

自助法

是基于自助采样法的检验方法。对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集。n次采样过程中,有的样本会被重复采样,有的样本没有被抽出过,将这些没有被抽出的样本作为验证集,进行模型验证。

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

一个样本在一次抽样过程中未被抽中的概率为 ( 1 − 1 n ) (1-\frac{1}{{\rm{n}}}) (1−n1​),n次抽样均未抽中的概率为 ( 1 − 1 n ) n {(1 - \frac{1}{{\rm{n}}})^{\rm{n}}} (1−n1​)n

当n趋近于无穷大时,根据重要极限为e,所以有 1 e \frac{1}{{\rm{e}}} e1​≈0.368

06超参数调优

超参数有哪些调优方法?

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

网格搜索

它通过查找搜索范围内的所有的点来确定最优值。一般会先用较广的搜索范围和较大的步长,来寻找全局最优值可能得位置;然后会逐渐缩小搜索范围和步长,来寻找更精确的最优值。如果目标函数是非凸的,很可能会错过全局最优值。

随机搜索

在搜索范围中随机选取样本点。如果样本点集足够大,那么通过随机采样也能大概率地找到全局最优值或其近似值。

贝叶斯优化算法

贝叶斯优化算法通过对目标函数形状进行学习,找到使目标函数向全局最优值提升的参数。具体来说,它学习目标函数形状的方法是,首先根据先验分布,假设一个搜集函数;然后,每一次使用新的采样点来测试目标函数时,利用这个信息来更新目标函数的先验分布;最后,算法测试由后验分布给出的全局最值最可能出现的位置的点。

优点:充分利用了之前的信息。

缺点:容易陷入局部最优值

07过拟合与欠拟合

在模型评估过程中,过拟合和欠拟合具体是指什么现象?

过拟合是指模型对于训练数据拟合呈过当的情况,反映到评估指标上,就是模型在训练集上表现很好,但是在测试集和新数据集上表现较差。欠拟合指的是模型在训练和预测表现都不好。

能够说出集中降低过拟合和欠拟合的方法?

降低过拟合的方法

(1)从数据入手,获取更多的数据。数据增强:图像的平移、旋转、缩放等方式,可以使用生成对抗网络合成大量的新训练数据

(2)降低模型复杂度。例如神经网络减少网络层数、神经元个数等。在决策树模型中降低树的深度,进行剪枝等

(3)正则化方法。给模型的参数加上一定的正则约束,比如讲权值大小加入到损失函数中。

(4)集成学习方法。如Bagging

降低欠拟合的方法

(1)添加新特征。在深度学习中,有很多模型可以帮助完成特征工程,如因子分解机,梯度提升决策树、Deep-crossing等

(2)增加模型复杂度。

(3)减小正则化系数。

《百面机器学习》学习笔试之模型评估(第2章)相关推荐

  1. 百面机器学习(2)——模型评估

    目录 评估指标的局限性(准确率,精确率,召回率,均方根误差) ROC曲线(曲线下的面积AUC,P-R曲线) 余弦距离的应用(余弦相似度,余弦距离,欧式距离) A/B测试的陷阱(实验组,对照组) 模型评 ...

  2. 【深度学习】深度学习分类与模型评估

    内容大纲 分类和回归之外的机器学习形式 评估机器学习模型的规范流程 为深度学习准备数据 特征工程 解决过拟合问题 处理机器学习问题的通用流程 监督学习的主要种类及其变种 主要包括两大类问题: 分类 回 ...

  3. 机器学习(02)—模型评估

    模型评估 1. 交叉验证法 1.1 验证集方法 1.2 留一交叉验证法(leave-one-out cross-validation, LOOCV) 1.3 k折交叉验证法(k-fold CV) 1. ...

  4. 《百面机器学习——学习笔记》个性化推荐系统

    冷启动 冷启动问题:在没有大量用户数据的情况下如何给用户进行个性化推荐 冷启动目的:最优化点击率. 转化率或用户体验(用户停留时间. 留存率等) 冷启动问题分类: 用户冷启动:指对一个之前没有行为或行 ...

  5. [机器学习与scikit-learn-51]:模型评估-图解回归模型的评估指标MSE、MAE、RMSE、R2、RSS与代码示例

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  6. 百面机器学习学习笔记

    特征归一化 为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处理,使得不同指标之间具有可比性. k维度的低纬度向量表示. word2vec 实际是一种浅层的神经网络结构,cbow和skip-g ...

  7. python机器学习案例系列教程——模型评估总结

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 回归评估指标 均方误差(MSE) MSE (Mean Squared Error)叫做均方误差.看公式 1m∑i=1m(yi−f(xi ...

  8. 机器学习算法——概率类模型评估指标4(校准可靠性曲线及预测概率直方图)

    一.预测概率直方图 我们可以通过绘制直方图来查看模型的预测概率的分布. 直方图以样本的预测概率分箱后的结果为横坐标,每个箱中的样本数量为纵坐标绘制一个图像. 具体代码实现为: from sklearn ...

  9. 机器学习_数据处理及模型评估相关资料

    基于sklearn 的auc 计算方法 训练模型填充空值(fill null)的几种方法 在Pandas中像写SQL一样做数据分析

最新文章

  1. 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题
  2. 027_JavaScript数组迭代
  3. Linux易混名词整理和相关操作
  4. c语言中 if(week == 6,C语言程序设计(第六章).pptx
  5. MySQL的主动优化和被动优化_MySQL“被动”性能优化汇总!
  6. LeetCode 1324. 竖直打印单词
  7. excel文件导入hive乱码_将excel中的数据导入hive
  8. (转)ElasticSearch教程——汇总篇
  9. 【netty】Netty并发工具-Promise
  10. java位原子_Java原子操作AtomicInteger的用法
  11. MRI脑影像分析从哲学到技术:一文搞懂VBM预处理基本原理(全网最详细解析)
  12. 树莓派python虚拟环境的设置与使用
  13. 自动清理垃圾文件与文件夹脚本.bat
  14. 美团点评2020年秋季校园招聘启动啦
  15. latex按照知网格式引用论文
  16. eclipse git reset文件
  17. type是python保留字_Python保留字总结
  18. animate将flash转换html,【An教程】快速入门Animate(原Adobe Flash)
  19. PLC实现十字路口交通灯的控制课程设计毕业设计
  20. 经济学人:谷歌、亚马逊等巨头有数据技术优势,会接管麦肯锡、波士顿咨询手中业务

热门文章

  1. CSS background-clip
  2. java象棋代码注释_中国象棋程序的设计与实现(十一)--棋盘绘制算法(尽管注释非常详细,完全理解仍有难度)...
  3. 电声乐器的演奏特征与制作技巧-----(3)吉他篇
  4. python之列表方法大全
  5. C版iPhone4也给国产旗舰手机带来机会
  6. php 设置时区 prc,php中如何设置时区
  7. “由于文件许可权错误,word无法完成保存操作”解决
  8. 阿里巴巴年终JAVA岗发布+最新面试手册(P5-P7)
  9. python代码画乌龟_乌龟教你Python编程——“玫瑰花”是怎么画的!
  10. 怎么做软件开发,软件开发流程八个步骤