模型评估与选择

1:精度、过拟合、欠拟合

错误率(error rate):分类错误的样本数占样本总数的比例

精度(accuracy)=1-错误率

误差(error):学习器的实际预测输出与样本的真实输出之间的差异

经验误差(empirical error):学习器在训练集上的误差

泛化误差(generalization error):在新样本上的误差

为了得到在新样本上也能表现好的学习器,应该从训练样本中尽可能找出适合所有潜在样本的普遍规律。这时就会存在过拟合或者欠拟合的现象。

过拟合(overfitting):如果学习器把训练样本学的太好时,很可能已经把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,使泛化功能下降。

欠拟合(underfitting):训练样本的一般性质未学好。

2:评估方法

我们通常使用测试集来测试学习器对新样本的判别能力,以测试集上的测试误差作为泛化误差的近似。测试集须与训练集互斥。

2.1 留出法

留出法(hold-out)直接将数据集D分为两个互斥的集合,分别是训练集S和测试集T。由于单次使用留出法不能保证结果的可靠性,一般要采用多次随机划分,重新进行实验评估后取平均值作为留出法的评估结果。划分的常见做法是将大约2/3~4/5的样本用于训练,其余用于测试。

2.2 交叉验证法

交叉验证法(cross validation)先将数据集划分为k个大小相似的互斥子集,每个子集都尽可能保持数据分布的一致性,即从D中通过分层采样得到,用k-1个子集的并集作为训练集,余下的子集作为测试集,这样可以获得k组训练集/测试集,最终返回k次测试结果的平均值。显然,交叉验证法评估结果的稳定性和保真性很大程度取决于k,通常把交叉验证法称为k折交叉验证,k常用的取值有5、10、20,10折交叉验证示意图如图2.2所示

我们常见的是10折交叉验证。若数据集包含m个样本,令k=m,得到交叉验证法的特例:留一法。因为m个样本只有唯一的方式划分为m个子集——每个子集只包含一个样本,因此不受随机样本划分的影响。留一法的训练集比初始数据集只少了一个样本,使得在绝大多数情况下,留一法中被实际评估的模型与期望评估的用D训练出来的很相似,因此,评估结果往往被认为比较准确。缺陷是在数据集较大时,训练m个模型的计算开销可能难以忍受,另外留一法的估计结果也未必永远比其他评估方法准确。

2.3 自助法

给定包含m个样本的数据集D,对它采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D‘,然后再将样本放回初始数据集D中,使得该样本在下次采样仍有可能被采到,这个过程重复执行m次,就得到包含m个样本的数据集D’,这就是自主采样的结果。显然,D中有一部分样本会在D‘中多次出现,而另一部分不出现。通过自助采样,一个简单的极限运算可得初始数据集D中约有36.8%的样本未出现在D’中。在初始数据量足够时,留出法和交叉验证法更常用,自助法在数据集较小,难以有效划分训练集/测试集有用。

3:查准率、查全率、F1度量

将样例数据根据其真实类别和学习器预测类别的组合分为四种情形,如下表所示:

查准率P与查全率R分别定义为:

P=\frac{TP}{TP+FP} 

R=\frac{TP}{TP+FN}

查准率可理解为挑出来的西瓜中好瓜的比例。查全率可理解为所有好瓜中有多少比例被挑出来。两者是一对矛盾的度量,一般查准率高,查全率低,而查全率高,查准率低。

F_1度量是基于查准率和查全率的调和平均定义的:

\frac{1}{F_1}=\frac{1}{2}(\frac{1}{P}+\frac{1}{R})

F_\beta则是加权调和平均:

\frac{1}{F_\beta}=\frac{1}{1+\beta^2}(\frac{1}{P}+\frac{\beta^2}{R})

4:ROC曲线和AUC使用方法

将测试样本进行排序,分类过程就相当于在这个排序中以某个截断点将样本分为两部分,前一部分判作正例,后一部分则判作反例。

ROC(受试者工作特征):根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,计算真正例率(TPR)和假正例率(FPR),分别作为ROC曲线的纵轴和横轴。两者定义为:

TPR=\frac{TP}{TP+FN}

FPR=\frac{FP}{TN+FP}

图(a)是ROC图的示意图,对角线对应随机猜测模型,而(0,1)对应将所有正例排在反例之前的理想模型。现实任务中通常利用有限个测试样例来绘制ROC图,无法产生图2.4(a)的光滑曲线,只能绘制出图(b)所示的近似ROC曲线。

ROC曲线绘制过程:给定m+个正例和m-个反例,根据学习器预测结果对样例进行排序,把所有样例均预测为反例,此时TPR和FPR均为0,在(0,0)处标记一个点,然后依次将每个样例划分为正例,设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为(x,y+1/m+),当前若为假正例,则对应标记点坐标为(x+1/m+,y),然后用线段连接相邻点即可。类似P-R图,若一个学习器的ROC曲线被另一个学习器的曲线包住,则可断言后者性能优于前者;若两个学习器的ROC曲线交叉,可以通过比较ROC曲线下的面积,即AUC来判断。

AUC可估算为AUC=\frac{1}{2}\sum_{i=1}^{m-1}(x_{i+1}-x_{i})(y_{i}+y_{i+1})

给定m+个正例和m-个反例,令D+和D-分别表示正、反例集合,排序“损失”定义为

 5:代价曲线

为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”

以二类任务为例,设定一个“代价矩阵”,如表所示,其中cost_{ij}表示将i类样本预测为第j类样本的代价

在非均等代价下,我们希望最小化“总体代价”,而不是简单地最小化错误次数.将表中的第0类作为正类、第1类作为反类,D+与D-分别代表样例集D的正例子集和反例子集,则“代价敏感”错误率为

 

 非均等代价下,代价曲线可以反映出学习器的期望总体代价。代价曲线图的横轴是取值为[0,1]的正例概率代价(其中p是样例为正例的概率)

纵轴是取值为[0,1]的归一化代价(其中FPR是假正例率,FNR=1-TPR是假反例率)

 

代价曲线的绘制:ROC曲线上每个点对应代价平面上的一条线段,设ROC曲线上点的 坐标为(TPR,FPR),再相应计算出FNR,然后在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积表示该条件下的期望总体代价,将ROC曲线上的每个点都转化成代价平面上的一条线段,取所有线段的下界,围成的面积为在所有条件下学习器的期望总体代价,如下图所示

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值