IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 《百面机器学习》学习笔试之模型评估(第2章) -> 正文阅读

[人工智能]《百面机器学习》学习笔试之模型评估(第2章)

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=1n?(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=1n?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)=A2?B2?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θ=A2?B2?A2?B2??AB?
考虑到
∥ A ∥ 2 ∥ B ∥ 2 ? A B ≥ 0 \parallel A{\parallel _2}\parallel B{\parallel _2} - AB \ge 0 A2?B2??AB0
因此有
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?A2?B2?=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)=A2?B2?A2?B2??AB?=B2?A2?B2?A2??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)减小正则化系数。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-28 11:16:07  更:2021-11-28 11:16:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 3:47:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码