第二章 模型评估与选择
数据集的划分
数据集的划分:训练集大约占样本的2/3~4/5
bootstrap部分。给定一个包含m个样本的数据集D,采样产生数据集D',每次有放回地从D中取一个样本放入D',样本在m次采样中始终不被采到的概率是,取极限得到
这样大约有36.8%的样本未出现在D',D’作为训练集,D-D‘作为测试集,这样训练集也大约占了2/3
bootstrap方法适用于数据集较小的情况,缺点是会改变初始数据集的分布,数据量足够时,留出法和交叉验证法更有效
均方误差
回归任务最常用的度量是均方误差:
在吴恩达老师的教程中则将均方误差定义为
其实二者损失函数最优化的Θ值是相同的,而之所以除以2,一种解释是梯度下降法对Θ求导时,如果是2m,则求导结果为
刚好把分母上的2约掉
对于数据分布D和概率密度函数p(),均方误差可以描述为
错误率
或者
精度
或者
查准率(precision)与查全率(recall)
在说查准率之前,我们先来看一下混淆矩阵
P-R曲线
查准率与查全率通常不能都取得非常好的效果,这时候需要做一些折中,即P-R曲线中的平衡点
在图中,学习器A的性能优于C的性能,但是A与B的性能不好比较,一种被接受的比较方法为比较曲线下面积,但是这个值不太容易估算,可以通过BEP(平衡点)或F1来进行度量,其中,F1更常用
F度量还有一个更一般的形式
大于1时查全率更重要,小于1时查准率更重要,等于1时就是F1,二者同等重要
另外,当有多个混淆矩阵时,先计算P,R,F再求平均或者先求平均再求P,R,F分别对应marco-P,marco-R,marco-F和micro-P,micro-R,micro-F
ROC曲线
ROC曲线的横纵坐标分别为TPR(true positive rate),FPR(false positive rate)
两个模型好坏时可以通过ROC曲线下面积AUC进行评估
假定ROC曲线是由坐标为{(x1,y1),(x2,y2),...,(xm,ym)}的点按顺序连接而成,AUC可估算为
这里使用了梯形面积计算公式
代价敏感错误率与代价曲线
现实中往往需要根据具体的问题对不同类型的错误赋予“非均等代价“
以二分类任务为例
真实类别 |
预测类别 |
|
第0类 |
第1类 |
|
第0类 |
0 |
cost01 |
第1类 |
cost10 |
1 |
将0类作为正类,1类作为负类,则代价敏感错误率为
在非均等代价下,ROC曲线不能直接反映学习器的期望总体代价,这时候可以使用代价曲线,代价曲线的横轴是取值为[0,1]的正例概率代价
其中p是样例为正例的概率;纵轴是取值为[0,1]的归一化代价
对该处一直有一些疑惑,即表示的是将真实类别为0的类预测为类1的代价,这不是应该属于假阳吗?
比较检验
往往在进行模型比较的时候,都是通过测试集效果来进行对比,这里存在一个问题,即若在测试集上观察到学习器A比学习器B效果好,则A的泛化性能是否在统计意义上优于B,以及这个结论的把握有多大。这时就需要用到假设检验。
设泛化错误率为ε的学习器在一个样本上犯错的概率是ε;测试错误率意味着在m个测试样本中恰有×m个被误分类,假定测试样本是从样本总体分布中独立采样而得,那么泛化错误率为ε的学习器将其中m’个样本误分类、其余样本正确分类的概率为
'
而
则在包含m个样本的测试集上,泛化错误率为ε的学习器被测得测试错误率为的概率
解
可知,在时最大
比较检验的后续部分留至后面学习后进行更新