机器学习——模型评估与选择
本文最后更新于 584 天前,其中的信息可能已经有所发展或是发生改变。

偏差与方差

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

期望预测

$$\overline{f}({\boldsymbol x})=\mathbb{E}_{D}[f({\boldsymbol x} ; D)]$$

方差

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

$$\operatorname{var}(\boldsymbol{x})=\mathbb{E}_{D}\left[(f(\boldsymbol{x} ; D)-\overline{f}(\boldsymbol{x}))^{2}\right]$$

噪声

$$\varepsilon^{2}=\mathbb{E}_{D}\left[\left(y_{D}-y\right)^{2}\right]$$

偏差

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

$$\operatorname{bias}^{2}(\boldsymbol{x})=(\overline{f}(\boldsymbol{x})-y)^{2}$$

期望泛化误差分解

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

$$
E(f ; D)=\operatorname{bias}^{2}(\boldsymbol{x})+\operatorname{var}(\boldsymbol{x})+\varepsilon^{2}
$$

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

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

过拟合与欠拟合

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

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

进一步理解

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

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$

留出法(hold-out)

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

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

k折交叉验证

以3-折交叉验证为例:

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

自助法

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

$$
\lim _{m \mapsto \infty}\left(1-\frac{1}{m}\right)^{m} \mapsto \frac{1}{e} \approx 0.368
$$

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

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

性能度量

混淆矩阵

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

准确率、精度、召回率

  • 准确率(accuracy):

$$acc=\frac{TP+TN}{TP+TN+FP+FN}$$

  • 精度(precision,也叫查准率):

$$P=\frac{TP}{TP+FP}$$

  • 召回率(recall,也加查全率):

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

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

$F_{1}$ 分数

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

$$F_{1}=\frac{2 \times P \times R}{P+R}$$

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

$$F_{\beta}=\frac{1}{1+\beta} \left(\frac{1}{P} + \frac{\beta^{2}}{R} \right)$$

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

macro与micro

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

  • 先在个混淆矩阵上分别计算P和R,再计算平均值,得到宏查准率(macro-P)、宏查全率(macro-R)、宏$F_{1}$(macro-$F_{1}$)

$$macro P=\frac{1}{n}\sum_{i=1}^n P_{i}$$
$$macro R=\frac{1}{n}\sum_{i=1}^n R_{i}$$
$$macro F_{1}=\frac{2 \times macroP \times macroR}{macroP + macroR}$$

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

$$micro P=\frac{\overline {TP}}{\overline {TP} + \overline {FP}}$$
$$micro R=\frac{\overline {TP}}{\overline {TP} + \overline {FN}}$$
$$micro F_{1}=\frac{2 \times microP \times microR}{microP + microR}$$

P-R曲线

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

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

ROC曲线

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

$$TPR=\frac{TP}{TP+FN}$$
$$FPR=\frac{FP}{TN+FP}$$

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

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

$$AUC=\frac{1}{2} \sum_{i=1}^{m-1} \left( x_{i+1} – x_{i}\right) \left(y_{i} + y_{i+1} \right)$$

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

参考资料

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇