logo头像

贾维斯的小屋

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

一、偏差与方差

测试样本为$\bf x$,$y_D$为$\bf x$在数据集中的标签,$y$为$\bf x$的真实标签,$f$为训练集$D$上学习得到的模型,$f({\bf x};D)$为$f$在$\bf x$上的预测输出。

1、期望预测

2、方差

使用样本数目相同的不同训练集产生的方差

3、噪声

4、偏差

期望输出与真是标签的差别为偏差

5、期望泛化误差分解

期望泛化误差分解,假定噪声期望为0,即$\mathbb{E}_{D}\left[y_{D}-y\right]=0$:

泛化误差 = 偏差 + 方差 + 噪声

  • 偏差度量了算法的期望预测与真是结果的偏离程度,刻画了算法本身的拟合能力
  • 方差度量了通用大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所造成的影响
  • 噪声表达了在当前任务上任何算法所能达到的期望泛化误差的下界,刻画了学习问题本身的难度
  • 偏差-方差分解说明,泛化性能是由算法的能力、数据的充分性和任务本身难度决定的。

6、过拟合与欠拟合

  • 上图中,训练的初始阶段,算法的学习拟合能力不强,训练数据的扰动不足以使学习器产生显著变化,偏差主导泛化错误率,此时算法欠拟合

  • 随着训练程度的增加,算法的拟合能力增强,以至于在训练后期数据的细微扰动都被学习到,方差主导了泛化错误率,此时算法过拟合

8、进一步理解

偏差可以理解为训练集的表现,方差可以理解为验证集的表现。训练集的误差大(欠拟合)则偏差高,训练集的误差低但验证集误差大(欠拟合)则方差高。假设练集和验证集来自相同分布,举例说明:

0 1 2 3 4
训练集误差 1% 15% 15% 0.5%
测试集误差 12% 16% 30% 1%
过拟合,高偏差 欠拟合, 高偏差 高偏差、方差 低偏差低方差 ,适度拟合
  • 降低过拟合风险的方法:

    • 获得更多的数据集
    • 降低模型复杂度
    • 正则化方法
    • 集成学习
  • 降低欠拟合风险的方法:

    • 添加新的特征
    • 增加模型的复杂度
    • 减小正则化系数

二、评估方法

假设有包含$m$个样本的数据集$D=\left\{\left(\bf{x}_{1}, y_{1}\right),\left(\bf{x}_{2}, y_{2}\right), \ldots, \left(\bf{x}_{m}, y_{m}\right)\right\}$,需要从中产生训练集$T$和测试集$S$

1、留出法(hold-out)

将$D$划分为两个互斥的集合,训练集$T$和测试集$S$。

  • 要尽可能保持数据分布的一致性。
  • 单次使用留出法估计的结果不可靠,一般采用若干次随机划分,重复进行多次后取平均值

2、k折交叉验证

以3-折交叉验证为例:

为例建学校因样本划分不同而引入的差别,k折交叉验证通常需要随机使用不同的划分重复P次,最终估计结果是P次k折交叉验证结果的均值。

3、自助法

数据集$D$中一共有$m$个样本,每次从中随机选一个复制到$D^{\prime}$中(相当于有放回采样),重复$m$次。这样最后得到一个有$m$个样本的数据集$D^{\prime}$。这样一部分样本在$D^{\prime}$中会出现多次,一部分样本则不会出现。假设样本在$m$次采样中不被采到的概率为$\left(1-\frac{1}{m}\right)^{m}$,取极限:

约有36.8%的样本未在$D^{\prime}$中。我们用$D^{\prime}$作为训练集,$D \backslash D^{\prime}$作为测试集,这样约有1/3没在训练集中出现过的样本作为测试集,这样的测试称为包外估计(out-of-bag)

自助法在数据集较小时很有用。但自助法产生的数据集改变了出事数据集的分布,会引入估计偏差。

三、性能度量

1、混淆矩阵

对于二分类问题,可以将真实标签和预测值得组合划分为真正例(TP),假正例(FP),真反例(TN),假反例(FN)。令TP、FP、TN、FN分别表示对于的样本数目,显然有TP+FP+TN+FN=样本总数。则混淆矩阵表示如下:

2、准确率、精度、召回率

  • 准确率(accuracy):
  • 精度(precision,也叫查准率):
  • 召回率(recall,也加查全率):

精度与召回率是一堆相互矛盾的指标,P高则R偏低,R 高则P偏低

3、$F_{1}$ 分数

$F_{1}$分数综合了精度与召回率:

$F_{1}$分数有更加一般的形式:

$\beta > 1$时召回率的影响更大,$\beta < 1$时精度的影响更大。

4、macro与micro

对于多分类问题,每两两类别的组合都对应一个混淆矩阵,我们希望在n个二分类的混淆矩阵上综合考察精度和召回率。

  • 先在个混淆矩阵上分别计算P和R,再计算平均值,得到宏查准率(macro-P)、宏查全率(macro-R)、宏$F_{1}$(macro-$F_{1}$)
  • 还可以将各混淆矩阵的对应缘故进行平均,得到$TP$、$FP$、$TN$、$FN$的平均值$\overline {TP}$、$\overline {FP}$、$\overline {TN}$、$\overline {FN}$,最后得到微查准率(micro-P)、微查全率(micro-R)、微$F_{1}$(micro-F1)

5、P-R曲线

P-R曲线的横轴是召回率,纵轴是精度。机器学习算法可以一般可以输出属于某个类别的概率,P-R曲线上的某一点表示,在某个概率阈值下,大于该阈值的结果判定为正样本,小于该阈值判定为负样本,此时返回结果对应的召回率和精度。整条P-R曲线就是通过将阈值从高到低移动而形成的。

若一个模型的P-R曲线被另一个完全包住,则后者优于前者。若曲线交叉,则看recall=precision的取值,即平衡点,大的则性能优。

6、ROC曲线

ROC曲线全称“受试者工作特征(Receiver operating characteristic)”。绘制方法与P-R曲线一样,不同的是,ROC曲线的纵轴是真正例率(TPR),横轴是假正例率(FPR)

ROC曲线还有另外一种绘制方法:假定正样本有P个,负样本有N个,把横轴刻度间隔设为$\frac{1}{N}$,纵轴刻度间隔设为$\frac{1}{P}$,再根据模型输出的预测概率对样本从高到低排序,以此遍历样本,从零点开始,每遇到一个正样本就沿纵轴方向绘制一个间隔,每遇到一个负样本就沿横轴方向绘制一个间隔,直到(1, 1)这个点。

若一个模型的ROC曲线被另一个完全包住,则后者优于前者。若有交叉,则用ROC曲线下面积AUC(Aera Under ROC
Curve)表示:

ROC曲线中可能出现斜线,所以应该用梯形面积公式。

参考资料

微信打赏

赞赏是不耍流氓的鼓励