开发者学堂课程【机器学习实战:模型训练及评估(下)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/530/detail/7134
模型训练及评估(下)
内容介绍:
一. 分类模型评估: ROCK 曲线
二. 分类模型评估:两类错误
三. 分类模型评估: AUC
四. 回归模型评估
五. 聚类模型评估
六. 泛化:过拟合与欠拟合
七. 模型优化:调优
一.分类模型评估: ROCK 曲线
1. ROC 曲线
ROC 曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度、查全度、召回率)为纵坐标,假阳性率( 1-特异度)为横坐标绘制的曲线。
产生曲线的原因是,以二分类为例,返回的预测结果通常不是简单的分类,如分类一、分类二,通常为返回某个分类的概率。
如返回分类一的概率为 80%,返回分类零的概率为 70% 等,是一个概率。当取得一个值时,要将它分类,需有一个分界值或阀值,通常为 0.5。
如一个记录通过模型预测后返回概率为 80%,即为类型一的可能性为 80%。此时需根据阀值作判断,如阀值为 0.5,转为 0.8,0.8>0.5,所以为分类一,则实际返回结果为分类一。
阀值可根据实际情况调整,假设阀值为 0.9,则返回的 0.8 会被判别为另外一个分类 0,而不是分类一。
2.绘制步骤
(1)确定实际结果值,及预测得分的值。
(2)按照从大到小的顺序确定一个阈值。如从 100% 开始到 0%。当得分值大于阈值时。称结果为正例,否则为负例。
(3)算出灵敏度及特异度。上章已介绍灵敏度及特异度的算法,较简单,只需注意混淆阵出来,按四个象限中不同值的含义则易算出灵敏度和特异度。(实际绘图时用到的是 1-特异度)
(4)更改分类阀值。可以得到不同的灵敏度和特异度。
(5)如为满足终止条件,跳转至步骤二进行循环处理,终止条件通常为灵敏度已经为1或者阀值到达 1
(6)按照 1-特异度的值从小到大排序,以此为横坐标,将对应的灵敏度作为纵坐标,绘制折线图即为 ROC 曲线。
如下例,图为真实值及预测的分,接着指定不同的预值。如第一条记录真实值预测得分为 0.95。不同的阈值时,记录会归属到不同的类别中。如运值或阀值为 1,则0.95<1,返回值为 0,属于 0 分类。当 0.9、0.8、0.7、0.6 等阀值时,返回值为1。因此不同的阀值导致最终返回的记录的分类不同。不同的阀值下分别计算 TP 、TN 、FP 、 FN 、准确率,查准率,1-特异度、灵敏度等,将其在图中画出。中间的层次线称为参考线。通常位于参考线左上方,则证明模型对分类有帮助。若在右下方,则表明模型对分类起副作用,也只需将分类交换,负例换为正例,正例换为负例,模型仍起作用。实际最希望的结果为点越靠左上方效果越好。
二.分类模型评估:两类错误
第一个为 FN ,F 表示预测错误, N 表示预测为负例。原本为正例预测为负例是第一类错误,称为 a false hit 弃真,原本为真的预测为错的。第二类错误为 FP ,F 为预测错误。
P 为正例,原本为负例错误的预测为正例,称为 a miss 纳伪。
错误类型:
犯第一类错误的概率称为显著性水平 α ,其正例错判成负例的概率。α 在做假设检验时常用。这是第一类错误,第二类错和假设检验错误一致。
犯第二类错误的概率为 β ,即负例错判成正例的概率。可根据实际错误接受能力,去判断更倾向于接受哪类错误。
在正例判断时,将 α 放大,第一类错误的概率会变小,说明有更少的正例会被错误的判成负例,但是会影响负例的判断,负例更易被错判成正例,第二类错误的概率变大 β 变小。例如体检时各项指标有些问题,可能和癌症指标较接近。
此时需判断是否进行进一步检查。这就是分类问题,要考虑对错误结果的承受能力。
即指标类似癌症,是否要做进一步检查继续治疗,还是没有问题。对错误结果的承受能力取决了如何调整 α ,更倾向于做进一步检查,和提前预防治疗癌症相比成本是值得的。
三.分类模型评估: AUC
1. AUC
AUC ( Area Under Curve ) 是指 ROC 曲线下的面积。在一个坐标系中画一个即为一个模型的 ROC 曲线图,可能有好多个类似的模型,都是要评估,很难比较哪个模型更好,因为有些有交叉。则可以使用 AUC 的方式, AUC 即计算每个曲线下的面积。
AUC 值越大,当前分类算法越可能将正样本排在负样本前,从而更好的分类。
2.AUC 的一些基本特点
(1) AUC 通常用于二分类结果评估
(2)通常 AUC 取值在 0.5~1之间
(3) AUC 如果小于 0.5,将分类结果取反
(4) AUC 值越大越好,表明分类结果越可靠
实际 AUC 是度量 ROC 曲线效果的方法,橙色部分表示面积为 0.5,若 ROC 曲线下面积 AUC < 0.5,需将分类结果取反。
分类模型评估内容很多,只进行了简单介绍。
四.回归模型评估
回归预测的结果是连续的数值,有很多种方法或者指标去评估预测结果和真实结果的差距
常见的有:
(1)平均绝对误差 MAE ( Mean Absolute Error )
(2)均方误差 MSE ( Mean Square Error )
(3)标准误差 RMSE ( Root Mean Square Error )
(4)平均绝对百分误差 MAPE ( Mean Absolute Percentage Error )
(5)总离差平方和 SST ( TSS )、回归平方和 SSR ( ESS )、残差平方和 SSE ( RSS )、绝对误差和 SAE。
(6)R 方( R Square ,R2 )与校正 R 方 ( Adjusted R Square )
(7)用于模型筛选:
① AIC 准则( Akaike Information Criterion ,赤池信息量),即最小信息准则。
②类似的 BIC 准则( Bayesian IC )、 HQ ( Hannan-quinn Criterion )等。
最常见的为 MSE 均方误差和总离差平方和。
如图为线性回归拟合图。其中蓝色的数据点为需要拟合的数据,橙色的线为拟合后的回归线。此事如何度量模型的好坏,要考虑真实数据即蓝色点和预测数据橙色点间的差。使用不同的方法,得到的结果不同。通常使用估计值即橙色的值减实际值的平均值的平方。
从真实值点和预测值点之间的差平方相加,绝对值也可以。在运算时绝对值较难处理,通常使用平方。
五.聚类模型评估
聚类分析目标是实现组内相似性高,组间相似性低。实际评估的指标方法常见的有兰德系数,值越大越好,互信息评分、同质性、轮廓系数等。聚类有两种评估角度,第一种为聚完类后生成聚类模型。此时提供另一个聚类模型,将两者比较得到一系列判定系数。另一种为通过模型自身的内在评估方法去评估得到评估指标的结果。关于模型评估的内容很多,这里主要介绍分类,回归和聚类模型的评估后续课程中会详细介绍,此处了解即可。
六.泛化:过拟合与欠拟合
泛化:本身的意思是由特殊的个别的推广到一般的。机器学习中的泛化指在训练模型时使用训练样本得到模型,该模型在新的数据集的表现称为泛化。
泛化有两类问题,第一类称为过拟合,在训练集上表现很好,但是新的数据集上表现不好的现象。或者学习过程中对样本的特征学习太“彻底”,包括局部特征、过多的噪声数据的假特征等,造成其泛化性能较差,通常有两种原因造成,第一,新数据和样本数据相差大,第二,模型过于复杂。
欠拟合:学习过程中没有很好的捕捉到样本数据的特征,对于数据特征解释不充分,不能很好的拟合已有数据。
例如在学校学习。讲的时候听得认真仔细,老师说一个苹果加两个梨等于三个水果。
记得很清楚,仔细,考试时,考了两个苹果加一个梨等于几个水果?却不会,因为学的和考的内容不一致,这属于过拟合,将。将数据中的样本特征学的过透彻。欠拟合为平时学习不认真,考试不理想。
例如有一系列点。
希望通过一个模型将这些点表达。第一个为非常复杂的曲线通过了所有的点为很典型的过拟合。表示曲线的方程很复杂,模型太复杂。完美的拟合样本中的每一个点。
但对新的数据集表现会很糟糕。右侧相反,数据有明确的线性关系,可以通过简单的线性方程就可以表示。
但右侧的直线和点并没有关系。及学习样本中点的特征完全没有学到,因此用直线预测新的数据集,结果会很差。
七.模型优化:调优
调优是艰巨且复杂的工作
业务角度,生活中做的项目都是为企业或业务服务的,并非单纯的技术问题。因此要更多的从业务角度评估,依托业务场景及业务问题来优化模型或优化整个项目。
算法角度,算法本身需要进行调优。如选定算法后,算法是否合适,若不合适则需更换算法。选定算法后需对其中的参数进行调优。使算法输出结果达到预期。
在数据角度,数据的复杂程度,数据量的大小都会对最终结果造成影响,此时需考虑增加或减少参与特征或收集更多数据等。
最后一个角度为效率,在实际部署前,需考虑算法运行的效率,是否能够接受。需设置并发度和硬件。
下图为模型优化的例子。有一个数据集,需要使用 KNN 的方法进行分类。
在做 K 近邻时, K 值的选择对整个模型很关键,此时设置多个模型。
模型中选用不同的 K 值并运行,得到多个模型,使用混淆矩阵或其他方式进行行评估比较取哪一个 K 值效果更好。