Loading

百面机器学习2——模型的评估

不同任务的评价标准由各种评估,大部分指标只能片面地反映模型的一部分性能。对模型指标的错误使用常常会导致结论错误。

模型评估的指标

  • 准确率(Accuracy)
  • 精确率(Precision)
  • 召回率(Recall)
  • 均方根误差(RMSE)
  • ....

错误案例

例一 准确率的局限性

在奢侈品推送问题中,对用户分类的准确度达到了95%,研究者进行分类时发现系统依然把大部分奢侈品广告投放给了非目标用户,这是什么原因造成的。

答:

分类准确率的定义为分类正确的样本占总样本的比例,当种类分布十分不均衡时,即使全部分为一类也可能达到较好的分类效果。

当不同类别样本的比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。

为了解决这一问题,可以使用更有效的平均准确率(所有类的准确率的算术平均)作为模型评估的目标。

例二 精确率与召回率的权衡

模型搜索功能时返回TOP5的精确率非常高,而在使用过程中却常常找不到自己想要的目标。

精确率指的是分类正确的正样本个数占分类器判定为正样本的样本个数的比例

召回率指的是分类正确的正样本个数占真正的正样本个数的比例。

在排序问题中,返回的TOPN即是正样本,根据该结果的准确率和召回率来评估模型的性能。这种评价方式其实是不科学的,精确率相对“保守”,当模型尽量提高精确率,即用更有把握的方法寻找正样本时,其召回率自然会下降。

在正样本数量较多,而N较小时,即使精确率为100%,召回率依然很低。

科学评价可以引入P-R曲线,P-R曲线的横轴为召回率,纵轴为精确率。该图像上的一点的含义是在某个阈值的分类和召回率,该模型从左到右就是阈值从高到低的过程(很高的阈值导致没有什么样本能满足,满足的很大概率是正确的,很低的阈值就失去了分类功能,大家都满足,召回率趋近100%)。

还可以使用F1score

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

这个指标是精确率和召回率的调和平均值。

或是用 ROC曲线

对阈值的理解

对于二分类问题,模型一般不会直接输出一个具体分类的值,而是输出一个属于正类的概率,此时通过阈值来判断预测结果是正类或负类。

例三 均方根误差的局限性

对于一个回归模型,采用不同的回归模型都有较好的效果,但是RMSE指标居高不下,原因是什么?

\[RMSE = \sqrt{\frac{\sum_{i=1}^n(y_i-\hat{y_i})^2}{n}} \]

该指标可以很好地反映回归模型预测值和真实值的偏离程度,但有些偏离程度很大的离群点可能导致模型指标异常。

在流量预估的问题中,噪声十分容易产生。

针对离群点,有三个解决思路

  1. 直接把离群点看成噪声点过滤掉

  2. 进一步提升模型的预测能力,比如将离群点建模

  3. 换一个更适合的指标来评价,如平均绝对百分比误差

\[MAPE = \sum_{i=1}^n |\frac{y-\hat{y_i}}{y_i}| \times \frac{100}{n} \]

ROC与AUC

ROC曲线是Receiver Operating Characteristic Curve的简称,为受试者工作特征曲线。首先用于军事领域,后来逐渐扩展到医学领域

这里对ROC曲线进行描述

ROC曲线的横坐标为假阳性率,纵坐标为真阳性率

假阳性率

\[FPR = \frac{FP}{N} = \frac{负样本中被分类为正样本的数量}{负样本数} \]

真阳性率

\[TPR = \frac{TP}{P} = \frac{正样本中被分成正样本的数量}{正样本数} \]

有10名疑似病例,有三名实际上是感染者,医院检测出三个,这三个人中有两个是感染者,则\(TPR = \frac{2}{3}\)\(FPR = \frac{1}{7}\)

对于医院分类器中,\((1/7,2/3)\)对应一个点。

ROC曲线的意义

ROC曲线根据不断移动分类器的截断点而形成的曲线。

ROC期限是把阈值从大到小移动的过程中,FPR与TPR产生的曲线。开始时,阈值很大,导致没有正类被检测出来,此时TPR和FPT都很小,而随着阈值减小,正类中被检测出来的(TP)和负类中被误检测成正类(FP)的数量逐渐增多,FPR与TPR逐渐增大,最终阈值为0,全部样本被标记为正类,此时曲线停止到(1,1)点。

ROC与P-R曲线的性质

ROC曲线有如下的优异性质:当正负样本的分布发生变化时,ROC曲线的形状基本保持不变,这个特点使ROC曲线能够降低不同测试集带来的干扰。更加客观地衡量模型本身的性能。

余弦距离的应用

对于两个向量A,B,其余弦相似度的定义是

\[\cos(A,B) = \frac{A \cdot B}{||A||_2||B||_2} \]

其余弦距离的为 \(1 - \cos(a,b)\)

余弦距离与欧式距离

两者都是衡量相似度的指标

  • 余弦相似度受维度的影响较小,所以在处理高维特征时性能较好
  • 欧式距离体现数值上的绝对差异,而余弦距离体现数值上的相对差异,如剧的观看行为,如果分析两个用户对于不同视频的偏好,更关注相对差异,应当使用余弦距离当分析用户活跃度等绝对性特征时关注的是绝对的数值差异,此时应当使用欧氏距离。

余弦距离的形式

距离需要满足三条距离公理:

  • 正定性
  • 对称性
  • 三角不等式

对于余弦距离,满足前两个性质,不满足第三个性质。

假设A = (1,0),B=(1,1),C=(0,1)

则有

\[\begin{align} &dist(A,B) = 1- \frac{\sqrt{2}}{2} \\&dist(B,C) = 1- \frac{\sqrt 2}{2} \\&dist(A,C) = 1 \end{align} \]

此时易知三角不等式成立。

线上AB测试

什么是A/B 测试

A/B 测试是最简单的对照实验方法,可以用来对产品的两个版本进行比较。

将用户随机分成两组,这样两组数据可以来自同一分布。

一组叫做对照组,使用产品的旧版,一组叫做实验组,使用产品的新版。

两组同时做线上测试,然后采集指标,分析结果,

什么时候需要用到A/B 测试

当要决定一个产品或者新功能是否真的可以上线时,就要做A/B 测试,我们要看这个新的产品或者新的特征是否会对一些商业指标产生影响,A/B 测试的结果决定了产品是否可以上线。

当产品模式比较成熟,进入快速迭代的阶段时,用A/B 测试的效果比较明显。

A/B的注意事项

在选择划分的过程中,要考虑划分方式的无偏性,每个用户只能分到一类中。

模型评估的方法

Holdout检验

交叉验证

自助法

自助法

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

对于一个样本一直未被检测到的可能性为\((1-\frac{1}{n})^n\)

所以有:

\[\lim_{n \rightarrow \infty}(1-\frac{1}{n})^n = \frac{1}{e} \approx 0.368 \]

当样本数很大时,大约有36.8%的样本从未被选择过,可作为验证集。

超参数验证方法

网格搜索

随机搜索

贝叶斯优化算法

过拟合和欠拟合


https://www.cnblogs.com/xiaoyunbowen/p/15312605.html

参考资料

机器学习面试题集 - 如何进行 A/B 测试 - 云+社区 - 腾讯云 (tencent.com)

posted @ 2021-11-01 19:42  笑云博文  阅读(120)  评论(0)    收藏  举报