2. 模型评估与选择

一、经验误差与过拟合

  1. 误差率
    分类错误的样本数占样本总数的比率。

  2. 精度
    分类正确的样本数占总数的比率。

  3. 误差
    学习器的实际预测输出与样本的真实输出之间的差异。

  4. 训练误差(经验误差)
    学习器在训练集上的误差。

  5. 现状
    很多情况下,可以学的一个经验误差很小、在训练集上表现很好的学习器;甚至对训练样本的分类可以达到100%的准确。

  6. 挑战
    这样的学习器在多数情况下并不好。

  7. 实际期望

  • 目标:让学习器在新样本上表现很好;
  • 方法:从训练样本中尽可能学出适用于所有潜在样本的 “普遍规律” ;
  1. 挑战:
  • 过拟合:把训练样本学得 “太好”,可能把训练样本本身的特性,当做所有潜在样本都会具有的一般性质;导致性能下降;
  • 欠拟合:对训练样本的一般性质尚未学好。
  1. 原因分析
  • 过拟合:学习能力过于强大,把训练样本所包含的特性都学到了;
  • 欠拟合:学习能力低下;
  1. 解决办法:
  • 欠拟合(简单):在决策树学习中,扩展分支;在神经网络学习中,增加训练轮数;
  • 过拟合(复杂):是机器学习面临的关键障碍,各类学校西算法都有针对过拟合的措施,只能缓解,无法彻底避免;
    理解:机器学习面临的问题,通常是NP难的,甚至更难;而有效的学习算法必然是在多项式时间内运行完成,若可彻底避免过拟合,则通过经验误差最小化就能获得最优解。这与 “P=NP” 矛盾;只要相信 “P != NP”,那么过拟合不可避免;
  1. 挑战
  • 挑战:对于同一个任务,有多种学习算法可供选择,同一个学习算法设置不同参数,也会得到不同的模型;
  • 存在的问题:选择哪一个学习算法?选择哪一种参数配置?
  1. 理想解决办法
  • 对候选模型的泛化误差进行评估;
  • 选择繁华误差最小的那个模型。
  1. 现实挑战:
  • 无法直接获得泛化误差;(潜在样本未知)
  • 训练误差不适合作为标准;(过拟合并不好)

二、评估方法

1. 现实中如何选择学习算法和参数配置?

可通过实验测试来对学习器的泛化误差进行评估,进而做出选择。

2. 测试集
  • 作用:测试学习器对新样本的判别能力,然后,以测试集上的 “测试误差” 作为泛化误差的近似;
  • 获得:通常假设测试样本是从样本真实分布中独立同分布采样获得。
  • 注意:测试集应该尽量与样本集互斥,也就是,样本尽量不在训练集中出现,未在训练过程中使用过。
3. 原因

学校的学习锻炼的是学生 “举一反三” 的能力,不应该出之前学过的题目。

4. 获得测试集和训练集
  • 方法:对数据集进行适当的处理,从中产生训练集测试集
5. 获取方法1:留出法

1)留出法
直接将数据划分为两个互斥的集合,其中一个作为训练集,另一个作为测试集。

用训练集训练出模型后,用测试集评估误差。

2)需要的性质

  • 训练集和测试集的划分尽可能保持数据分布的一致性;
  • 避免因数据划分过程引入额外的偏差,而对最终结果产生影响;

3)使用方法
采用随机划分的方法,重复进行实验评估后,取平均值作为留出法的训练结果。

4)比例问题
若训练集太大,则训练处的模型接近了数据集的模型;若训练集太小,那么,评估结果可能不够精确。需要在二者之间做一个均衡;

  • 均衡:一般训练集和测试集的比例:(2/3 - 4/5);
6. 获取方法2:交叉验证法

1)原理

  • 将数据集 D 划分为k个大小相似的互斥子集,每个子集尽量保持数据分布的一致性;
  • 从中选取 k-1 个子集作为训练集,剩下一个子集作为测试集;
  • 从而可以获得 k 个训练集/测试集的组合;
  • 最终获得k个测试结果的均值。

2)子集的划分

  • 挑战:数据集 D 划分为k个子集,存在多种划分方式;需要减少因样本划分不同而引入的差异。
  • 解决:随机使用不同的划分重复 p 次,最终获得的结果是 p 次k折交叉验证结果的均值。

3)特殊案例:留一法
样本有m个,划分子集数 k=m,也就是说,只保留一个样本不训练。

  • 优势:一般认为它评估的结果比较准确
  • 缺陷:样本大时,需要训练的模型太多。
7. 分析
  • 留出法:实际评估的模型使用的训练集比数据集小,引入了因样本规模不同而导致的偏差;
  • 留一法:计算复杂度高;
    动机:需要 ① 减少训练样本规模不同的影响;② 高效的进行实验估计;
8. 获取方法3:自助法

1)引入的原因

希望能够减少训练样本规模不同造成的影响,同时高效的进行试验估计;

2)步骤

  • 首先,从初始数据集 D 中随机挑选一个样本拷贝放入D’。
  • 重复上述过程,m次,D’ 中也包含 m 个元素;(数据集包含m个元素)
  • D’ 作为训练数据,D\D’ 作为测试数据。

3)性能

  • D’ 包含不重复的元素大约占 2/3,D\D’ 大约占1/3;
  • 别称:包外估计;

4)特点

  • 长处:在数据集较小,难以有效划分训练集/测试集的情况下很有用;
    -分析:自助法产生的数据集改变了初始数据及的分布,引入了额外的估计偏差;
  • 短处:在数据量充足的情况下,留出法和交叉验证法更加常用;
9. 调参与最终模型

1)引入原因

大多数学习算法都需要设置参数,不同的设定参数,学得的模型有显著差别;

不仅需要选择学习算法,还需要设定算法的参数;

2)解决思路

对每种参数进行设定,并训练出模型,选出最好的;

3)挑战

学习算法很多参数取值在实数范围内,无法对每种参数配置进行训练;

4)现实解决办法

对每个参数选定一个变化范围和变化步长;

5)尚存挑战

很可能得到的结果不是最优结果;

即使,选定步长和范围,最终训练仍然很复杂,因为,需要训练的模型太多;

6)验证集

通常我们将实际遇到的数据称为 “测试集”,为加以区分。我们将模型评估与选择过程中,用到的测试数据称为“验证集”;

三、性能度量

衡量学习器的泛化性能,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量

1)性质

对比不同的模型时,使用不同的性能度量会导致不同的评判结果,所以,模型的好坏是相对的;

它取决于算法、数据和任务需求;

2)回归任务的性能度量

均方误差;

1. 错误率与精度

1)错误率

分类错误的样本数占样本总数的比例;

2)精度

分类正确的样本数占样本总数的比例;

2. 查准率、查全率与F1

1)引入原因

错误率与精度虽然常用,但是,不能满足所有的任务需求;(例如,判断选中的好坏)

2)举例

例1:瓜农拉来一车西瓜,我们希望知道挑出的西瓜中有多少是好瓜;

例2:web搜索中,我们关心 “检索出的信息有多少比例是用户感兴趣的”;

3)查准率

查准率 = 真正例/(真正例+假正例)= 真正例/判断总正例;

4)查全率

查全率 = 真正例/(真正例+假反例) = 真正例/真实总正例;

5)挑战

可能相互矛盾;

查准率高,那么查全率低;(误判为正确的样本少,少出错)

查全率高,那么查准率低;(漏掉的正确样本少,少漏掉)

6)举例

想要查全率高,那么希望把所有瓜都选上,但是,会选出很多坏瓜,查准率就会低;

想要查准率高,那么希望选把握大的瓜,但是,会漏掉不少好瓜,查全率就会低;

7)P-R图的理解

若A模型包住B模型,那么,认为A模型优于B模型;

若二者相交,那么,可用平衡点判断;

8)平衡点

查准率=查全率的时候,二者的取值;

缺陷:太过简化

9)更常用的度量:F1度量

F1 = (2✖️查准率✖️查全率)/(查准率+查全率)

10)差异化需求

商品推荐:希望查准率较高,不希望打扰用户;

逃犯检索:希望查全率较高,不希望漏掉逃犯;

11)宏查全率和宏查准率

通常,我们需要对模型进行多次训练和测试,于是得到多个二分类混淆矩阵,对这些测试的查全率和查准率取平均,即可获得宏查全率和宏查准率;

3. ROC和AUC

1)引入原因

一个训练获得的模型,在实际测试中并不会直接判断好坏,而是以概率的形式判断好坏,所以,需要确定概率的阈值来划分好坏,并且确定模型的评估精度;

2)ROC

受试者工作特征(Receiver Operating Characteristic)

通过一步步的改变阈值,增加真正例数量,来确定ROC图;

3)AUG

ROC曲线的下半部分区域(Area Under ROC Curve);

用来衡量模型的好坏,区域越大越好;

4)代价敏感错误率与代价曲线

4. 代价敏感错误率与代价曲线

1)引入原因

前面讲的错误和正确是等待代价的,但是,现实情况中,错误和正确的代价不同;

举例:诊断病人,若将有病诊断为无病,则耽误治疗,后果严重;若将无病诊断为有病,再次诊断,有费用代价,但相对代价较小;

2)代价敏感错误率

即,对于错误和正确分配不等的代价,差异越大,表示二者越不对称;

3)代价曲线

用正确的概率乘以代价,然后,归一化就,最终就可以获得代价曲线。

四、比较检验

1)学习器性能进行评估过程

先用某种实验评估方法测得学习器的某个性能度量结果,然后,对这些结果进行比较

2)本部分内容

介绍如何对性能度量结果进行比较;

3)挑战

  • 希望比较的是泛化性能,而通过实验评估获得的是测试集上的性能,二者有差异;

  • 测试集上的性能和测试集本身的选择有关系,不同的测试集,测试结果不同;

  • 很多机器学习算法具有随机性,即使使用相同的测试集,也会表现出不同的结果;

导致难以比较学习器的性能;

4)解决办法:统计假设检验

基于假设检验结果,我们可以推断出,若在测试集上观察到学习器A比B好,那么A的泛化性能是否在统计意义上优于B,以及这个结论的把握有多大;

1. 假设检验

1)解释

假设检验中的假设是对学习器泛化错误率分布的某种判断或猜想。

2)挑战

现实中,我们并不知道学习器的泛化错误率,只能获得测试错误率

3)关系

泛化错误率测试错误率,未必相同,但是,二者接近的可能性比较大;

结论:可通过测试错误率推出泛化错误率

4)计算

根据泛化错误率和测试错误率,可以计算出二者相等的概率;这个分布服从二项分布;

5)局限性

此方法适用于单个学习器泛化性能的假设进行检验,无法应对不同学习器的性能比较。

2. 交叉验证 t 检验

3. McNemar检验

4. Friedman 检验和 Nemenyi 检验

五、偏差与方差

1. 偏差

期望输出与真实标记之间的差别,称为偏差;

2. 方差

不同测试集的期望相对于总体期望的差值的平方和;

3. 关系

随着训练次数的增多,偏差会逐渐减小,而方差会逐渐增大;

训练程度并不是越多越好,训练过多可能导致过拟合;

所以,泛化误差是在偏差和方差之间取一个均衡, 适当的训练可以有一个好的性能;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值