模型评估与选择
一、经验误差与过拟合
1)错误率:分类错误的样本数占样本总数的比例
2)精度:精度 = 1 一 错误率
3)误差:学习器的实际预测输出与样本的真实输出之间的差异
4)训练误差/经验误差:学习器在训练集上的误差
5)泛化误差:学习器在新样本上的误差
6)过拟合:当学习器把训练样本学得"太好"了的时候,很可能巳经把训练样本自身的一些特点当作了所有潜在样本都
会具有的一般性质,这样就会导致泛化性能下降。这种现象称为过拟合
其中最常见的情况是由于学习能力过于强大,以至于把训练样本所包含的不太一般的特性都学到了
6.2)过拟合为什么无法避免
机器学习面临的问题通常是NP 难甚至更难,而有效的学习算法必然是在多项式时间内运行完成,若可彻底避免过拟合, 则通过经验误差最小化就能获最优解,这就意味着我们构造性地证明了" P=NP" ;因此 只要相信"p ≠NP " ,过拟合就不可避免
7)欠拟合:是指对训练样本的一般性质尚未学好。。通常是由于学习能力低下而造成的
二、模型评估的方法
1)不同的模型:不同的算法;相同的算法,但是不同的参数配置
2)理想的模型选择方案:
对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型。。缺陷是没有新样本,无法直接获得泛化误差
3)测试集:从样本中划分出训练集和测试集,以测试误差来近似泛化误差
测试集的划分:(终究是对数据的完整性有影响,要找的潜在规律可能也被影响)
3.1)留出法(hold-out)
直接将数据集D 划分为两个互斥的集合,一个用来训练模型,一个评估
需要注意:
3.1.1)划分比例:大约2/3 到 4/5 的样本用于训练,剩余样本用于测试.
3.1.1)最好分层抽样,也就是训练/测试集的划分要尽可能保持数据分布的一致性
3.1.2)划分的问题,哪些进入训练集,哪些进入测试集,随机还是什么? 所以往往需要多次随机划分,评估结果取平均值
3.2)交叉验证法(cross validation)
先将数据集D 划分为k 个大小相似的互斥子集,每次用k-1 个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集。。k次评估结果取平均值
3.2.1)将数据集D 划分为k 个子集同样存在多种划分方式.为减小因样本划分不同而引入的差别, k 折交叉验证通常要随机使用不同的划分重复p 次,最终的评估结果是这p 次k 折交叉验证结果的均值
3.3)自助法(bootstrapping)
给定包含m 个样本的数据集D,每次有放回取出一个样本,重复m次,构成采样数据集D'
3.3.1)样本在m 次采样中始终不被采到的概率
意味着,初始数据集D 中约有36.8% 的样本未出现在采样数据集D'中。
可将D' 用作训练集, D\D' 用作测试集
3.3.2)用处:在数据集较小、难以有效划分训练/测试集时很有用
3.3.3)缺陷:产生的数据集改变了初始数据集的分布,这会引入估计偏差
4)调参
4.1)限制:学习算法的很多参数是在实数范围内取值,因此,对每种参数配置都训练出模型来是不可行的
4.2)做法:对每个参数选定一个范围和变化步长
4.3)验证集:模型评估与选择中用于评估测试的数据集
4.4)最终模型
在模型选择完成后,学习算法和参数配置己选定,此时应该用数据集D 重新训练模型.这个模型在训练过程中使用了所有m 个(所有)样本
原因是训练模型时,划分了一部分作为验证集,也就是说并没有使用所有的数据来训练
5)均方误差
更一般的形式如下
6)错误率
更一般的形式如下
7)精度
更一般的形式如下
8)查准率和查全率
8.1)查准率:检索出的相关文件数量 / 检索出的文件数量
8.2)查全率:检索出的相关文件数量 / 相关文件(不一定全部检索出来了)的总量
8.3)例子:
假设查询q为一个给定的查询式,而包含q的相关文档集Rq为下面的文档集:
Rq={d2,d5,d6,d9,d12,d23,d30,d34,d35} // 相关文件的总数量9
而针对q的检出文档集为:
Aq={d3,d4,d5,d6,d8,d10,d12,d19,d20,d23,d24,d26} //检索出的文件数量12
则Ra集为:(在Aq里面,找出所有在Rq里面的文档)
Ra={d5,d6,d12,d23} //检索出的相关文件的数量4
求查准率P,查全率R
P = 4/12 R = 4/9
8.4)分类结果混淆矩阵
8.5)查准率与查全率之间的关系(大体是个反比)
实际上不是这么光滑的曲线,下面这个更现实
8.6)P-R图能看出什么
8.6.1)在进行比较时,若一个学习器的P-R 曲线被另一个学习器的曲线完全"包住" , 则可断言后者的性能优于前者
如上图的A曲线包住了C。。。(竖着比查准率比你大,横着比查全率比你大,当然性能比你好)
8.6.2)看平衡点的大小来比较性能。。若是没有完全包住。。比如上面A曲线的平衡点大于B曲线,所以性能更好
8.6.3)用平衡点比不准确,那么比面积吧
8.6.4)面积不好算,那么用F1
其中ß>O 度量了查全率对查准率的相对重要性 ß = 1时退化为标准的F1; ß> 1 时查全率有更大影响; ß < 1 时查准率有更大影响.
8.6.5)查准率更重要的情况
为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,此时查准率更重要
8.6.6)查全率更重要的情况
在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要.
9)ROC与AUC
10)代价敏感错误率与代价曲线
10.1)非均等代价:把正的当成负的,把负的当成正的,这两种错误引发的后果严重性不一样,所以赋予非均等代价
10.2)代价矩阵
其中costi,j 表示将第i类样本预测为第j类样本的代价。cost10与cost01的代价比值越大,相差程度越大
10.3)代价敏感错误率
10.4)代价曲线的横轴是取值为[0,1]的正例代价,其中p是样本为正例的代价
10.5)代价曲线的纵轴是取值为[0,1]的归一化代价
其中FPR 是假正例率, FNR = 1 - TPR 是假反例率.
10.6)代价曲线的画法
(老实说,我并不知道为什么要这么画?为什么面积就是总体代价了?不知道有没有路过的大神)
ROC 曲线上每点对应了代价平面上的一条线段。设ROC 曲线上点的坐标为(TPR, FPR) ,则可相应计算出FNR,然后在代价平面上绘制一条从(0, FPR) 到(1 , FNR) 的线段,线段下的面积即表示了该条件下的期望总体代价;
如此将ROC 曲线土的每个点转化为代价平面上的一条线段,然后
取所有线段的下界,围成的自积即为在所有条件下学习器的期望总体代价