西瓜书学习笔记(2)——模型评估与选择

前言

啃这个书是真适合催眠… …加油!为了钱!哈哈哈,发csdn的博客会推荐相似博客,看到很多同学写的西瓜书读书笔记,哈哈哈不是一个人在战斗,加油!

2.1 经验误差与过拟合

错误率:

分类错误的样本数比总样本数,精度 = 1 - 错误率

误差:

学习器实际预测输出与真实输出的差距,学习器在训练集上的误差叫训练误差或经验误差,在新样本上的误差叫泛化误差,我们显然希望泛化误差小的模型。

过拟合:

当学习器把训练样本学得太好的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。该现象叫做过拟合。

欠拟合:

相对于过拟合的情况,训练样本的一般性质尚且没有学好。
欠拟合解决办法:决策树学习中扩展分支,神经网络学习中增加学习轮数。

P集合:

在多项式时间内可以找出解的决策性问题的集合。

NP集合:

在多项式时间内可以验证解是否正确的决策性问题的集合。

NP-hard:

指所有NP问题都能在多项式时间复杂度内归约到的问题

多项式时间复杂度:

复杂度被分为两种级别,其中后者的复杂度无论如何都远远大于前者:一种是O(1),O(log(n)),O(n^a)… …我们把它叫做多项式级的复杂度,因为它的规模n出现在底数的位置;另一种是O(a^n)和O(n!)型复杂度,它是非多项式级的,其复杂度计算机往往不能承受。当我们在解决一个问题时,我们选择的算法通常都需要是多项式级的复杂度,非多项式级的复杂度需要的时间太多,往往会超时,除非是数据规模非常小。

关于过拟合不可避免的论证(还是每太啃明白):

机器学习面临的问题通常是NP难甚至更难,而有效的学习算法必然是在多项式时间内运行完成的,若可以彻底避免过拟合,则通过经验误差最小化就能获得最优解,这就意味着我们构造性的证明了P = NP,因此只要相信p!=NP过拟合就不可避免。

2.2 评估方法

2.2.1 留出法

概念:

留出法直接将样本分为两个互斥的集合,训练集S,测试集T,那么存在D = S ∪ T;S ∩ T = 空。在S上训练出的模型用T来评估误差作为对泛化误差的估计。

样本划分注意事项一:

样本如果存在多类别的数据,应该尽量保证类别比例不被破坏,例如完整样本500个坏西瓜加500个好西瓜,那么分配训练集的时候训练集比验证集如果按照7:3分配那么训练集应该有350个好瓜加350个坏瓜,验证集则是150个好瓜150个坏瓜,这样在完整样本中好瓜坏瓜比例是1:1在训练集和验证集中比例仍是1:1。

样本划分注意事项二:

给定了划分比例样本划分仍然存在多种选择,例如500个好瓜中选择350个作为训练集的时候可以选择前350个也可以选择后350个这样仍会对训练结果产生影响,所以应该采用若干次随机划分,重复进行实验评估后取平均值作为留出法的评估结果。

常见的划分比例:

常见的作法是将2/3 到 4/5的样本用于训练剩余样本用于测试,一般而言测试集的样本至少含有30个。

2.2.2 交叉验证法

概念:

首先将数据集D划分成k个大小相似的互斥子集,D = D1∪D2…∪Dk,Di ∩Dk = 空,每个子集也要保证样本类型分布的一致性,可以采用从D中分层采样得到,然后选择k - 1个子集作为训练集剩下的那个作为测试集,从而可以进行k次训练和测试。交叉验证法又叫做k折交叉验证。

10折交叉验证示意图:
在这里插入图片描述
缺点:

算力要求高,数据大的时候耗时

2.2.3 自助法

概念:

他是一个比较好的解决方案,对于m个样本的数据集D,创建一个采样产生的数据集D’,每次随机拷贝D中的一个样本到D’中,这个过程重复m次,就可以得到含有m个样本的数据集D’,显然因为是随机采样,D中的一部分样本可能不会在D’中出现,也有可能D中的一些样本在D’中出现多次,D中样本在D’中未出现的概率是0.368

关于未出现概率0.368的计算:
在这里插入图片描述
优点:

自助法在数据集很小难以有效划分数据集的时候很有用,另外自助法可以从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。

缺点:

自助法改变了初始数据集的分布,这会引入估计偏差,因此数据量充足的情况下,留出法和交叉法更常用。

2.2.4 调参与最终模型

调参:

大多数的学习算法都有些参数需要设定,参数配置不同学习得到的模型也不相同,参数调节也很重要。

验证集:

模型选择和评估中用于评估测试的数据集称为“验证集”,在研究模型泛化能力的时候,使用测试集上的判别效果来估计模型在实际使用时的泛化能力,而把训练集另外分成训练集和验证集,基于验证集上的性能来进行模型的选择和调参。

2.3 性能度量

回归问题中常用的性能度量是“均方误差”:
在这里插入图片描述
这个性能度量的含义似乎和损失函数的意义差不多,损失越小模型越优性能自然也越好,更一般的对于f(xi) - yi这一项,如果存在出现的概率问题,那么对于数据分布D和概率密度p()的均方误差可以描述为:
在这里插入图片描述
其实就是每一项乘上了出现的概率系数值罢了。

2.3.1 错误率与精度

分类错误率公式:
在这里插入图片描述
公式解释:

系数1/m用于计算错误率,m是整个样本的数目,所以错误数除以总数就是错误率,求和符号相当于遍历所有的情况,罗马数字2的符号在西瓜书最前面的公式符号简介里有说明,它是指示函数,在括号内的式子为真时取值1为假时取值0,所以完整公式的含义就一目了然了,遍历整个情况,输出结果与实际不符合的时候记录为1并统计不符合的总数目,把不符合的总数目除以样本总数目得出错误率。

精度定义公式,这就不说了,1减去错误率就是正确率也就是精度了:
在这里插入图片描述
更一般的对于概率密度函数有错误率和精度以下两个式子:
在这里插入图片描述
在这里插入图片描述

2.3.2 查准率查全率和F1

查准率P:

这两个量其实很简单,用二分类举例,100个孩子,50个男的50个女的,使用我们的模型得出的分类结果是60个男的,40个女的,假设60个男的里面判断正确的是50个男生其他多的10个女生误判成了男生,所以男生的查准率为50/60

查全率R:

同样是上面的例子,查全率就是一共100个孩子,对于男生的查全率因为男生全查出来了所以男生的查准率为50/50,对于女生,一共50个别女生查出来了40个所以查全率为40/50.

上述举例的查全率和查准率都是一个非常高的情况,但是实际中这两个值是一个矛盾的度量,一般来说,查准率高时,查全率往往 偏低;而查全率高时,查准率往往偏低.例如,若希望将好瓜尽可能多地选出来, 则可通过增加选瓜的数量来实现,如果将所有西瓜都选上,那么所有的好瓜也必然都被选上了,但这样查准率就会较低;若希望选出 的瓜中好瓜比例尽可能高,则可只挑选最有把握的瓜,但这样就难免会漏掉不少好瓜,使得查全率较低。
两个量的PR曲线图:
在这里插入图片描述
曲线的用处:

在机器学习中如果一个学习器的PR曲线被另个学习器的PR曲线完全包住,则可以肯定另一个学习器更优。

平衡点:

简称BEP,它是一条 y = x的曲线,在图2-3中可以看到,这几个点的查全率等于查准率,,用它来综合考虑查准率查全率的性能度量。上图中C的BEP小于B小于A,所以学习器的的排名为A > B > C

由于BEP过于简化,在此基础上提出F1度量的概念:
在这里插入图片描述
其中变量的概念来自于分类结果混淆矩阵:
在这里插入图片描述
对于F1公式分析,F1公式采用的是调和平均公式计算得到的:
在这里插入图片描述
因为在实际的应用中,对查全率和查准率的要求可能各不相同,例如在抓小偷的任务中,肯定是希望查全率较高的,所以引入参数β来设定PR的权重:
在这里插入图片描述
推理原式子:
在这里插入图片描述
关于β参数的作用:

ß>0度量了查全率对查准率的相对重要性 [VanRijsbergen, 1979]. ß = 1 时退化为标准的 F1; ß> 1 时查全率有更大影响; ß < 1 时查准率有更大影响.。

2.3.4 代价敏感错误率与代价曲线

未完待续… …

猜你喜欢

转载自blog.csdn.net/qq_37668436/article/details/106899410
今日推荐