2模型评估
文章目录
- 机器学习中,对模型的评估同样至关重要。
- 模型评估分离线评估和在线评估两个阶段。
- 针对分类、排序、回归、序列预测等不同类型,评估指标的选择也有所不同。
- 每种评估指标的精确定义、
- 有针对性地选择合适的评估指标、
- 根据评估指标的反馈进行模型调整,
- 这些都是机器学习在模型评估阶段的关键问题
1 评估指标的局限性
场景描述
- 诸多的评估指标中,大部分指标只能片面地反映模型的一部分性能。如果不能合理地运用评估指标,不仅不能发现模型本身的河题,而且会得出错误的结论。
1 准确率的局限性
- 奢侈品广告主们希望把广告定向投放给奢侈品用户。
- Hulu拿到了部分奢侈品用户的数据,并以此为训练集和测试集,
- 训练和测试奢侈品用户的分类模型
- 模型准确率超95%,但实际广告投放中,
- 该模型还是把大部分广告投给非奢侈品用户,什么原因
- 正确分类的样本个数
- 总样本的个数。
- 当负样本占99%时,分类器把所有样本都预测为负样本也可以获得99%的准确率。
- 当不同类别的样本比例不均衡时
- 占比大的类别往往成为影响准确率的最主要因素。
- 奢侈品用户只占Hulu全体用户的小部分,虽然模型的整体分类准确率高,但不代表对奢侈品用户的分类准确率也高
- 线上投放过程中,只对模型判定的“奢侈品用户”投放,因此,对“奢侈品用户”判定的准确率不够高的问题就被放大。
- 用更为有效的平均准确率(每个类别下的样本准确率的算术平均)作为模型评估的指标。
- 即使评估指标选对了,仍会存在模型过拟合或欠拟合、
- 测试集和训练集划分不合理、
- 线下评估与线上测试的样本分布存在差异,
- 但评估指标的选择是最容易被发现,
- 也最可能影响评估结果
2 精确率与召回率
- 提供视频的模糊搜索功能,搜索排序模型返回的Top5的精确率非常高,
- 实际中,用户还是经常找不到想要的视频
- 特别是冷门的剧集,哪环节出问题?
- 分类正确的正样本个数占分类器判定为正样本的样本
- 分类正确的正样本个数占真正的正样本
- 排序问题中用TopN返回结果的Precision和Recall来衡量排序模型
- 模型返回的TopN就是模型判定的正样本
- 然后计算
- 前N个位置上的Precision(@N
- 前N个位置上的[email protected]
- 为提Precision,分类器需尽量在“更有把握”时才把样本预测为正,但会因为过于保守而漏掉很多“没有把握”的正样本,导致Recall降低
- 模型返回的Precision5的结果非常好,也就是说排序模型Top5的返回值的质量很高。
- 实际中,为了找冷门视频,往往会找排在靠后位置的结果
- 甚至翻页去查找目标视频
- 用户经常找不到想要的视频,这说明模型没把相关的视频都找出来给用户
- 显然,问题出在召回率
- 如果相关结果有100个,即使Precision5达到100%, Recall5也仅5%。
- 模型评估时,应同时关注 Precision和 Recall?
- 是否应该选取不同的TopN的结果观察?
- 是否应选取更高阶的评估指标来更全面地反映模型在Precision值和 Recall值两方面的表现?
- 为了综合评估一个排序模型好坏,不仅要看模型在不同TopN下的 Precision(@N和 [email protected],
- 最好绘制出模型的P-R曲线。
- 对排序模型来说,P-R曲线上的一个点代表,
- 在某一阈值下,模型将大于该阈值的结果判定为正样本,
- 小于该國值的结果判定为负样本,
- 此时返回结果对应的召回率和精确率
- P-R曲线是通过将阈值从高到低移动而生成的
- 原点附近代表当阈值最大时模型的精确率和召回率。
- 召回率接近0时,A精确率0.9,B精确率1,
- 说明B得分前几位的样本全部是真正的正样本
- 而A得分最高的几个样本也存在预测错误
- 随着召回率増加,精确率整体下降
- 当召回率为1时,模型A的精确率反而超过了B。
- 说明,只用某个点对应的精确率和召回率是不能全面地衡量模型的性能,只有通过P-R曲线的整体表现,才能够对模型进行全面的评估。
- F1 score和ROC曲线也能综合地反映一个排序模型的性能。
3 平方根误差的“意外”。
- 预测每部美剧的流量趋勢对于广告投放、用户增长都重要。
- 我们希望构建一个回归模型来预测某部美剧的流量趋势,但无论采用哪种回归模型,得到的RMSE指标都非常高。
- 事实是,模型在95%的时间区间内的预测误差都小于1%,
- 取得了相当不错的预测结果。
- RMSE居高不下的最可能原因?
- RMSE衡量回归模型好坏,但按题目叙述,RMSE这个指标失效。
- RMSE能很好反映回归模型预测值与真实值的
偏离程度。但在实际问题中,如果存在个别偏离程度非常大的离群点
( Outlier)时,即使离群点数量非常少,也会让RMSE指标变得很差。
- 模型在95%的时间区间内的预测误差都小于1%
- 大部分时间区间内,模型的预测效果都优秀。
- 然而,RMSE却一直很差,这很可能是由于在其他的5%时间区间内
存在非常严重的离群点。 - 事实上,在流量预估这个问题中,噪声点确实是很容易产生的,比如流量特别小的美剧、刚上映的美剧或者刚获奖的美剧,甚至一些相关社交媒体突发事件带来的流量,都可能会造
成离群点。
- 如果认定这些离群点是“噪声”的话,就需在数据预处理的阶段把这些噪声过滤
- 如果不认为这些离群点是“噪声点”的话,就需进一步提高模型的预测能力,将离群点产生的机制建模进去
- 找一个更合适的指标来评估该模型
- 存在比RMSE的鲁棒性更好的指标,平均绝对百分比误差( Mean Absolute Percent Error,MAPE),
- 相比RMSE,MAPE相当把每个点的误差归ー化,降低了个别离群点带来的绝对误差的影响
2 ROC曲线
场景描述
- 二值分类器的指标很多,
- precision、 recall、 F1 score、P-R曲线
- 或多或少只能反映模型在某一方面的性能
- ROC则有很多优点,经常作为评估二值分类器最重要的指标
1 什么是ROC曲线?
- Receiver Operating Characteristic Curve
- “受试者工作特征曲线”。
- 假阳性率( False Positive Rate,FPR)
- 纵坐标真阳性率( True Positive Rate,TPR)
- P是真实正样本
- N是真实负样本
- TP是P个正样本中被分类器预测为正样本的个数
- FP是N个负样本中被分类器预测为正样本的个数
- 10位疑似
- 3位确实(P=3),
- 7位不是(N=7)。
- 诊断出3位,2位确实是(P=2)
- 那么真阳性率2/3
- 对7位非癌症来说,有一位不幸被误诊
- 那么假阳性率1/7
- 对分类器来说
- 就对应ROC曲线上的一个点(1/7,2/3)
如何绘制ROC曲线?
- ROC不断移动分类器的“截断点”来生成曲线上的一组关键点
- 二值分类输出一般都是预测样本为正的概率
- 阈值为0.9,那只有第一个样本会被预测为正例,其他全部都负
- “截断点”就是区分正负预测结果的阈值
- 通过动态调整截断点,从最高得分开始(正无穷开始,对应零点),逐渐调整到最低得分
- 每一个截断点都对应一个FPR和TPR,在ROC上绘制出每个截断点对应的位置再连接所有点就得到ROC
- 为正无穷,全部样本预测为负,
- 第一个坐标(0,0)
- 截断点0.9时
- TP=1
- 所有正例数量为P=10,故TPR=1/10
- FPR=0,对应(0,0.1)
- 依次调整截断点,直到画出全部关键点,
- 再连接关键点即得到最终的ROC,
- 如图2.2
- 正样本为P,负样本为N
- 横轴刻度间隔设为1/N,纵轴刻度间隔设1/P
- 再根据模型输出的预测概率对样本排序(从高到低)
- 依次遍历样本,同时从零点绘制ROC,
- 每遇一个正样本就沿纵轴方向绘制一个刻度间隔的曲线,
- 每遇到一个负样本就沿横轴方向绘制一个刻度间隔的曲线,
- 直到遍历完所有样本
- 曲线最终停在(1,1)
3 如何计算AUC?
- 量化反映基于ROC曲线衡量出的模型性能
- 只需要沿着ROC横轴做积分就可
- ROC一般都处于y=x上方(如果不是,只要把模型预测的概率反转成1-P就可以得到一个更好的分类器),所以AUC的取值一般在0.5~1之间。
- 越大,说明分类器越可能把真正的正样本排在前面,分类性能越好。
4 ROC相比P-R有什么特点?
- 同样被经常用来评估分类和排序模型的P-R曲线。
- 相比P-R,ROC有一特点
- 当正负样本的分布变化时
- ROC形状基本不变
- 而P-R一般剧烈变化
- 这让ROC能尽量降低不同测试集带来的干扰,更客观衡量模型本身性能
- 计算广告常涉及转化率模型,正样本是负样本的1/1000甚至1/10000。
- 若选不同测试集,P-R变化非常大,而ROC能更稳定反映模型本身好坏
- 所以,ROC的适用场景更多,被广泛用于排序、推荐、广告
- 如果希望更多地看到模型在特定数据集上的表现,P-R则能够更直观地反映其性能。
7 过拟合与欠拟合
过拟合和欠拟合具体是指什?
- 过拟合指模型对于训练数据拟合过当,
- 模型在训练集上的表现很好,
- 但在测试集和新数据上的表现差
- 模型在训练集上的表现很好,
- 欠拟合: 模型在训练和预测时表现都不好
- 模型过于复杂,把噪声数据的特征也学习到模型中,导致泛化能力下降,在后期应用过程中很容易输出错误的预测