术语名词

1.泛化误差与经验误差

泛化误差:在“未来”样本上的误差

经验误差:在训练集上的误差,亦称“训练误差”

训练集样本数越接近数据集数量,经验误差就越小。但是经验误差越小,模型效果就越好吗?

请注意,我们是为了得到泛化能力强的模型,而经验误差≠泛化误差

经验误差很小,会使模型学习到训练样本中的许多无用特征,导致泛化能力变弱
我们称其为过拟合(overfitting)

而与之相对的概念,我们称为欠拟合(underfitting),其表示的就是模型没有很好的学习到训练样本上的特征,从而也导致泛化能力变弱

2.过拟合与欠拟合

过拟合:模型在训练数据上表现得过于复杂,以至于在未见过的数据上表现不佳。欠拟合:模型在训练数据上表现得过于简单,无法捕捉到数据的内在结构和模式。

出现原因
1.出现欠拟合的情况,一般是由于样本特征少模型复杂度低

2.出现过拟合的情况,一般是由于样本数量少、噪声多模型复杂度过高

经验误差就是训练程度的体现,经验误差越小则训练程度越强所以现在,我们可以得出训练程度不能过大也不能过小的结论

那我们能找到一个最佳方案得出最佳的训练程度吗🤔

答案是--------------->不能🙅‍

原因是:对于千禧年七大数学问题之——“P=NP"问题,只要我们相信"P≠NP”,就无法找出最优解

但是我们依然有相应的解决方法,用于欠拟合与过拟合的问题此处的解决方法我们留待以后解决…

好了,回归本章主题–模型评估与选择

对于模型的选择,我们有三个关键问题

如何获得测试集?------>评估方法

如何评价性能优劣?------>性能度量

如何判断模型实质差别------>比较检验

1.评估方法

因为我们无法得知未来数据的输出标记故而需要得到测试集用来评估模型

而测试集有多种划分方法,这里我们给出以下三种

1.1 留出法(hold-out):

将数据集直接划分为训练集和测试集

留出法:对数据集的划分方法会影响模型结果;训练集和测试集的数据分布必须保持一致;测试集过大会使模型拟合效果变差,太小会使得测试估计偏小;有一些数据可能从未被训练过

总结

  1. 保证数据分布一致性(比如分层取样)

  2. 多次重复划分 (例如: 100次随机划分)

  3. 测试集不能太大或太小(例如:1/5~1/3,其实二八分偏多)

  4. 可能遗漏数据(随机划分没取到该数据进行训练)

1.2 交叉验证法

对于 留出法出现 可能遗漏数据(随机划分没取到该数据进行训练)的问题

我们引入新的划分方法 k-折交叉验证法 可以有效解决该问题

以该图为例:

首先将数据集D随机划分为10个子集,进行十次操作,每一次取其中1个子集为测试集,其余为训练集(实际也可以选取多个子集为测试集)将结果做平均处理

而对于再划分子集的阶段,将测试集中只留有一个数据的方法叫做留一法
留一法,使得训练集极大地逼近了真实模型,但是却让测试误差变得很大

优缺点:从而我们能得出,尽管交叉检验法保证了所有的数据均被训练,但仍然存在受限于样本大小的问题;

并且对于较大的k值,会使得计算成本显著增加

而且对于子集的划分,仍然是一个难题,如果测试集和训练集之间的划分不够随机或不够独立,可能会导致数据泄露,影响模型评估的准确性。

1.3 自助法

“自助法”(bootstrapping)
基于放回取样 亦称“可重复采样”

故其可以使最终训练集的样本个数=数据集的样本个数,我们记数据集的样本个数为m,则由洛必达法则可得出 未被取出即未进行训练的样本,我们称为包外估计(out-of-bag estimate)的占比为:
$$ \lim _ { m \rightarrow \infty } ( 1 - \frac { 1 } { m } ) ^ { m } \rightarrow \frac { 1 } { e } \approx 0 . 3 6 8$$
我们将其作为训练集即可

优缺点

优点:自助法在数据集较小、难以有效划分训练/测试集时很有用,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。

缺点:自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。但是通过增加数据划分的次数,就可以缓解该影响。

1.4 调参与验证集

在模型评估与选择的过程中,我们既要选择学习算法,还要对算法的参数进行设定

训练过程中的参数分为两种

  • 算法参数:亦称“超参数”,由人工设定

  • 模型参数:由训练集训练而成

1.5 重新训练

重新训练:在调整和优化模型之后,可能需要使用整个数据集(包括之前划分的训练集和测试集)重新训练模型,以利用所有可用数据来提高模型的性能。

故之所以划分训练集和测试集,仅仅是为了选定算法种类参数
当我们确定使用该算法后,我们应将整个数据集放入该算法进行训练,从而得到模型的参数

2.性能度量

2.1 错误率和精度

错误率定义:

$$
E(f;D)=\frac{1}{m}\sum_{i=1}^{m}\mathbb{I}\left(f\left(\boldsymbol{x}{i}\right)\neq y{i}\right)
$$
精度定义:

$$
\begin{aligned}\operatorname{acc}(f;D)&=\quad\frac{1}{m}\sum_{i=1}^{m}\mathbb{I}\left(f\left(\boldsymbol{x}{i}\right)=y{i}\right)\&=\quad1-E(f;D) \end{aligned}
$$

然而对于不同的任务需求,仅仅用错误率和精度是不够的,故引出查准率、查全率、F1的概念

2.2 查准率、查全率、F1

二分类任务:

现有一瓜田含10000个瓜,其中有100个好瓜,利用学习器挑瓜

查准率:即准确率(precision),如挑出瓜中好瓜的比例

查全率:即召回率(recall),如所有好瓜中被挑出的比例

F1-score:即查准率与查全率的调和平均

在选瓜任务中我们的目标是:

  1. 在挑出来的瓜中尽可能都是好瓜

  2. 瓜田中的好瓜尽可能多地被挑出来很直观的可以感受到查全率越大(如挑出越多的瓜,好瓜被挑出的比例也就越大),查准率就会越低

混淆矩阵

其中查准率P和查全率R的定义为:
$$
P=\frac{TP}{TP+FP}
$$

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

F1即综合考虑两者效果:

$$
\frac1{F1}=\frac12\cdot\left(\frac1P+\frac1R\right)
$$

多分类任务:

2.3 ROC与AUC

3.比较检验