机器学习(西瓜书)笔记第二章 模型评估与选择

二、模型评估与选择

2.1经验误差与过拟合

错误率:分类错误的样本数占总样本数的比例。

精度:精度=1-错误率。

误差(error):学习器实际的预测输出与样本的真实输出之间差异。在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error),在测试集上的误差称为“泛化误差”(generalization error)。我们的目的是得到泛化误差小的学习器。

过拟合(overfitting):因为过度训练,导致训练样本的一些自身特点被当做是所有样本的普遍规律,导致泛化能力下降。

欠拟合(underfitting):对所有样本的普遍规律没有学好。

欠拟合比较容易克服,在神经网络中表现为增加训练层数。过拟合是无法彻底避免的,我们所能做的只是缓解。

在解决某一个问题时,可能会有很多解决的方法,我们首先一定会想到选择泛化能力最好的那个模型,但是我们事先却不知道这个模型的泛化误差是多少,那么我们怎么样来对一个模型进行评估呢?

2.2评估方法

        用测试集(testing set)来测试学习器对新样本的判别能力,我们用测试误差(testing error)来对泛化误差进行估计。测试集的数据不能再训练集中出现,下面介绍几种从数据集D中产生训练集S和测试集T的方法。

2.2.1留出法

        “留出法”(hold-out)就是将数据集D分成两个互斥的数据集,一个作为训练集S,一个作为测试集T。并且在进行数据样本采样时应采取分层采样,确保训练集和测试集中各个类别的样本数占样本总数的比例是一样的,并且训练集和测试集属于同一类别的样本比例也应相同。例如数据集中一共有1000个样本,500个属于a类,500个属于b类,那么一种可行的划分为,S有350个属于a类的样本,350个属于b类的样本,T中有150个属于a类的样本,有150个属于b类的样本。

        因为,训练集和测试集的划分方法有很多,并且不同的划分对测试结果有影响,所以对一个学习器进行评估时,在遵循同一种划分原则的基础下,一般随机对数据集划分多次,取多次的平均结果作为学习器的泛化误差。

2.2.2交叉验证法(cross validation)

交叉验证的主要思想是,将数据集按照一定的准则分为m份,每次选用其中的(m-1)份进行训练,剩下的一份作为测试集进行测试,这样进行m次得到的平均结果作为模型的评估结果。这种方法的稳定性和保真性在很大程度上取决于m的取值,所以这种方法又称为“k折交叉验证”(k-fold cross validation)。如果数据集中一共有m个样本,把数据集分为m份进行交叉验证,那么这种特例叫做“留一法”(Leave-One-Out LOO)。

扫描二维码关注公众号,回复: 10818329 查看本文章

2.2.3自助法(bootstrapping)

在一个含有m个样本的数据集中,每次从中随机挑选一个样本复制放入训练集中,这样进行m次,训练集中有了m个样本,由概率可知,原始数据集中大概有1/3的样本没有被放入训练集中,我们利用这样挑选的训练集进行训练,利用那1/3分之一的数据进行测试。这也叫做“包外估计”(out-of-bagestimate)。自助法在数据集较小、难以有效划分训练测试集时很有用。数据集比较大时还是鼓励采用前两种方法。

2.2.4调参与最终模型

我们通常把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分,模型评估与选择中用于评估测试的数据集常称为验证机(validation set)。

2.3性能度量

性能度量(performance measure):衡量模型泛化能力的标准。性能度量反映了任务需求,使用不同的性能度量对同一个模型进行评估,往往会有不同的结果。

2.3.1错误率和精度

错误率:分类错误的样本数占总样本数的比例。

精度:分类正确的样本数占总样本数的比例。精度=1-错误率。

2.3.2查准率,查全率与F1

2.3.3ROC与AUC

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

2.3性能度量

2.4比较检验

2.5偏差与方差

发布了23 篇原创文章 · 获赞 6 · 访问量 1332

猜你喜欢

转载自blog.csdn.net/weixin_42194139/article/details/104838730