01 评估指标的局限性
准确率(accuracy):分类正确的样本占总样本的个数比例
精确率(precision):分类正确的正样本占分类器判定为正样本的个数比例
召回率(recall):分类正确的正样本占真正的正样本个数比例
F1 score:精确率和召回率的调和平均值
Q1. 准确率的局限性
当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。如,当负样本占99%时,模型只需要将所有样本预测为负样本,则可以获得99%的准确率。
为了解决上述问题,可以将平均准确率(每个类别下样本准确率的算术平均值)作为模型评估的指标。
问题:模型的分类准确率超过95%,但在实际应用中效果差,原因是?
答:样本类别分布不均衡、评价指标选择、模型过拟合和欠拟合、测试集和训练集划分不合理、离线评估和在线测试的样本分布差异……
Q2. 精确率与召回率的权衡
- 搜索排序模型:在一次会话中,用户在交互界面输入需要查询的query,系统给返回其排好序的doc例表的过程。认为模型返回的topN的结果就是模型判定的正样例。
- P-R(Precision-Recall)曲线:横轴是召回率,纵轴是精确率。
模型对样本进行分类时,都会有置信度,即表示该样本是正样本的概率(即模型通过softmax/sigmoid后得到的分类概率),通过选择合适的阈值,比如50%,对样本进行划分,置信度大于50%的认为是正例,小于50%的认为是负例。
按照样本置信度从大到小对所有样本进行排序,再逐个样本的确定阈值(阈值=当前样本的置信度),在该样本之前的都属于正例,该样本之后的都属于负例。每一个样本作为划分阈值时,都可以计算当前划分结果的precision和recall,由此画出P-R曲线。P-R曲线深入理解
整条P-R曲线是通过将阈值从高到低移动而生成的。原点附近代表当阈值最大时模型的精确率和召回率。
只用某个点对应的精确率和召回率是不能全面地权衡模型的性能,只能通过P-R曲线的整体表现,才能够对模型进行更为全面的评估。
问题:搜索排序模型返回top5的精确率非常高,但实际使用时无法给用户想要的结果,原因是?
回答:模型的Precision@5(top5的精确率)高,表示模型的返回值的质量很高。模型为了追求高精确率,往往只有在“更有把握”的时候才会把样本判定为正。此时往往会因为过于保守而漏掉很多“没有把握”的正样例,导致召回率低。为了全面评估模型,可使用P-R曲线、F1 score、ROC曲线反应排序模型性能。
Q3. 平方根误差的“意外”
RMSE指标(Root Mean Squard Error,均方根误差)经常被用来衡量回归模型的好坏。
在实际问题中,如果存在个别偏离程度非常大的离群点时,即使离群点数量非常少,也会让RMSE指标变得很差。
上述问题的解决方法:
- 当异常值被识别为噪声点时,数据预处理阶段过滤掉噪声点
- 如果你不认为异常值是噪声点,进一步提高模型的预测能力,对异常值的机制进行建模。
- 寻找更合适的指标评估模型,如,MAPE(Mean Absolute Percent Error,平均绝对百分比误差),对每一个点的误差进行了归一化,降低了个别离群点带来的绝对误差影响。
问题:回归模型在95%的时间区域内预测误差小于1%,取得了相当不错的预测结果,但是模型的RMSE居高不下,最可能的原因是?
回答:RMSE指标受离群点影响大,如果存在个别偏离程度非常大的离群点,即使离群点个数少,但是也会导致RMSE指标非常差。
05 模型评估的方法
Q1. 在模型评估过程中,有哪些主要的验证方法,他们的优缺点是什么?
- Holdout验证(留出法)
最简单直接的验证方法:将原始样本集随机划分为训练集和验证集,eg,7:3划分。
缺点:在验证集上计算的最终评估指标与原始分组有很大关系。 - 交叉验证
k-fold交叉验证:首先将全部样本集划分为个大小相等的样本子集;依次遍历这个子集,每次把当前自己作为验证集,其他个子集作为训练集,进行模型的训练和评估;最后将次评估指标的平均值作为最终的评估指标。
留一验证:每次留下1个样本作为验证集,其他所有样本作为训练集。假设样本总数为,依次对个样例进行遍历,进行次验证,再将评估指标求平均值得到最终的评估指标。留一验证是留p验证的特例。 - Bootstrap 评估方法(Cross-Validation Bootstrap)
基于自抽样法的检验方法。
首先对样本汇总为的样本集进行带放回随机抽样,得到大小为的样本集作为训练集。
二次抽样中的样本有的重复抽取,有的样本没有抽取。将所有未抽取的样本作为验证集进行模型验证。
目的:样本量比较小,如何在保持训练集样本量的前提下验证方法。
缺点:bootstrap方法改变了初始数据集的分布,引入了post-counting errors
问题:模型评估过程中主要的验证方法有哪些,它们的优缺点是什么?
回答:①留出法:直接将样本集按一定比例随机划分为训练集和验证集,缺点是评估结果和分组关系很大,存在随机性;②交叉验证:包含k折交叉验证和留一验证,前者是将样本集划分为k份,依次遍历每份样本,让该样本做验证集,其他所有样本做训练集,k轮后对评估结果取平均。后者是每次只留样本中的一个样例作为验证集,其他所有样例做训练集,该方法时间消耗大;③自助法,用在样本量很少的时候,改变了初始数据集分布,会引入误差。
(咱就是说,k折验证有缺点嘛??我个人认为深度模型中耗时算一个吧?)
Q2. 在自助法的采样过程中,对n个样本进行n次自主抽取,当n趋于无穷大时,最终会有多少数据从未被选择?
n次采样均未抽中的概率为
这里涉及极限知识,打字打不出来,当n趋于无限大时,概率约等于,即36.8%
问题:在自助法的采样过程中,对n个样本进行n次自主抽取,当n趋于无穷大时,最终会有多少数据从未被选择?
回答:n次采样均未抽中的概率为,根据极限定理,n趋于无穷大时,约等于,即36.8%。故最终有36.8%的数据从未被选择。
06 超参数调优
Q1. 超参数有哪些调优方法?
超参数搜索算法通常由三个元素组成:
- 目标函数,即算法需要最大化/最小化的目标
- 搜索范围,一般由上下限决定
- 算法的其他参数,例如搜索步长
- 网格搜索:最简单,应用最广泛。通过查找搜索范围内的所有点来确定最优值。然而,这种搜索方案在计算上非常昂贵且耗时。在实际应用中,首先使用更宽的搜索范围和更大的步长来寻找全局最佳可能位置;然后逐渐缩小搜索范围和步长以找到更准确的最优值。但由于目标函数一般是非凸的,很可能会错过全局最优。
- 随机搜索:类似于网格搜索,但随机选择搜索范围内的样本点。
- 贝叶斯优化算法:通过学习目标函数的形状,找到将目标函数提高到全局最优值的参数。与前两种调优方法不同的是,它在尝试下一组超参数时会参考之前的评估结果。具体来说,学习目标函数的方法是先假设一个基于先验分布的搜索函数;然后,每次使用一个新的采样点来测试目标函数,使用这个信息来更新目标函数的先验分布;最后,该算法测试后验分布给出的全局最优值可能出现的点。需要注意的是,一旦找到一个局部最优点,就会在这个区域不断采样,所以很容易陷入局部最优值。为了弥补这一不足,贝叶斯算法在探索和利用之间找到了一个平衡点(探索:在未采样区域中获取采样点;利用:根据后验分布在最可能的全局最佳区域中进行采样)
自动机器学习超参数调整(贝叶斯优化)
在pytorch上使用ax实现贝叶斯优化算法
问题:调整超参数的方法有哪些?
答:网格搜索、随机搜索、贝叶斯优化算法等。
07 过拟合与欠拟合
Q1. 在模型评估过程中,过拟合和欠拟合具体是指什么现象?
- 过拟合:模型过拟合训练数据的情况,即模型在训练集上表现良好,但在测试集和新数据上表现较差。过度拟合会导致模型的泛化能力下降。
- 欠拟合:模型在训练和测试中表现不佳的情况。
问题:在模型评估过程中,过拟合和欠拟合到底指的是什么?
答:过拟合是指模型对训练数据拟合得过好的情况;欠拟合是指模型在训练和测试中都表现不佳的情况。
Q2. 能否说出几种降低过拟合和欠拟合风险的方法?
降低过拟合风险的方法
- 获取更多数据:平移、旋转和缩放图像;使用生成对抗网络来合成大量的训练数据。
- 降低模型复杂度:神经网络中的网络层数和神经元数
- 正则化方法(正则化如何防止过拟合):
L2正则化(权重衰减),即在代价函数后面再加上一个正则化项,是所有参数的平方和
L1正则化,是所有参数的绝对值和
正则化通过限制参数的范数不会太大,在一定程度上减少了过拟合。 - 集成学习方法:将多个模型集成在一起,降低单个模型过拟合的风险
降低欠拟合风险的方法
- 添加新特征:当特征不足或现有特征与样本标签相关性不强时,模型容易出现欠拟合。
- 增加模型复杂度
- 降低正则化因子
问题:您能说出一些降低过拟合和欠拟合风险的方法吗?
答:略。
被阅读
- 02 ROC曲线
- 03 余弦距离的应用
- 04 A/B测试的陷阱
补充
贝叶斯算法基础
先验概率:根据过去的经验和分析得出的概率,如全概率公式。在“因事求果”的问题中,常用作“因”的概率
后验概率:指得到“结果”的信息后重新校正的概率,如贝叶斯公式。就是“持果求因”问题中的“果”。
先验分布:它是一种概率分布。与“后验分布”相反。独立于实验结果,或独立于随机抽样,反映在进行统计实验之前从其他参数 θ 的知识中得出的分布。
后验分布:可看成是在获得样本 x 后对参数先验知识的调整。
文章出处登录后可见!