机器学习—模型评估与选择

作者:WenWu_Both
出处:http://blog.csdn.net/wenwu_both/article/
版权:本文版权归作者和CSDN博客共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文链接;否则必究法律责任

本文作为周志华《机器学习》的阅读笔记。

(1)经验误差和过拟合

错误率:分类错误的样本数占样本总数的比例
精度:1-错误率
误差分为训练误差(或称经验误差)和泛化误差
训练误差:在训练集上的误差
泛化误差:在新样本上的误差
机器学习的目标是得到泛化误差最小的学习器。

学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当做所有潜在样本都具有的一般性质,这样就会导致泛化性能下降,称之为“过拟合”,与之相对的为“欠拟合”

欠拟合比较容易克服,而过拟合很麻烦,而且无法彻底避免,我们只能“缓解”,或者说减小其风险

现实中存在多个机器学习模型,在模型选择中,最理想的解决方案是对候选模型的泛化误差进行评估,然后选择泛化误差最小的模型,但是我们无法直接获得泛化误差,而训练误差又由于过拟合的存在而不适合作为标准,那么如何进行模型的评估与选择呢?

(2)模型评估方法

通常可通过设置“测试集”来测试学习器对新样本的判别能力,“测试集”的测试误差近似作为泛化误差,故测试集设置的合理性尤为关键。

1、留出法
将数据集D直接分为互斥的两个集合,其一为训练集S,另外一个为测试集T

需要注意的是:
a. 训练/测试集的划分尽可能保持数据分布的一致性,推荐“分层采样”
b.对数据集进行分割的前后顺序也会造成训练/测试集的多种组合,故单次留出法得到的结果往往不够稳定和可靠,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。
c.常用做法是将2/3-4/5的样本用于训练,剩余样本作为测试

2、交叉验证法
先将数据集划分为k个大小相似、分布均衡的互斥子集,然后,每次用k-1个子集的并集作为训练集,余下的那个子集为测试集,进行k次训练和测试,最后返回测试的平均结果。
k最常见的取值为10,称为10折交叉验证

与留出法类似,将数据集划分为k个子集的过程中存在多种划分方式,一般是随机采用不同的划分重复p次,最终的评估结果为p次k折交叉检验的结果,常见的有“10次10折交叉检验”

极端情况为“留1法”,即k为数据集的样本个数,精度较高,但计算开销难以忍受。

3、自助法
直接以自助采样法(bootstrap sampling)为基础,给定包含m个样本的数据集D,我们对它进行随机采样产生数据集D’,每次随机从D中挑选一个样本复制到D’,重复进行m次。将D’作为训练集,D\D’作为测试集。

在数据集较小、难以有效划分训练/测试集时很有用,但会引入估计误差,所以,当数据量足够的时候,留出法及交叉验证法比较常用。

PS:学习算法的很多参数都是在实数范围内进行取值,因此,对每种参数配置均训练出模型是不可行的,一般是将其离散化,对每个参数划定范围并选取变化步长。计算结果可能不是最佳值,但这是计算开销与性能估计之间进行折中的结果,正是折中,学习过程才变得可行。

(3)性能度量

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

1、错误率与精度
2、查准率与查全率
类似的需求在信息检索、Web搜索中经常出现
PR曲线:纵坐标为查准率,横坐标为查全率
3、ROC与AUC
这里写图片描述
ROC(Receiver Operating Characteristic)受试者工作特性。
ROC曲线:纵坐标为“真正例率”(TPR) 横坐标为“假正例率”(FPR)

AUC为ROC曲线下的面积值,AUC越大,则学习器的性能越好。

这里写图片描述

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

(4)比较检验

实际上,机器学习性能比较这件事比大家想象的要复杂得多。
首先,我么希望比较的是泛化性能,然而通过实验评估方法我们获得的是测试集上的性能,两者的对比结果可能未必相同;
第二,测试集上的性能与测试集的选择有很大的关系
第三,很多机器学习算法本身就有一定的随机性,即便用相同的参数设置在同一个测试集上多次运行,其结果也会有不同

统计假设检验(hypothesis test)为我们进行学习器性能比较提供了重要的依据。

1、假设检验
2、交叉验证t检验
3、McNemar检验
4、Friedman检验与Nemenyi后续检验

(5)偏差与方差

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值