西瓜书笔记——第二章 模型评估与选择


2.1 经验误差与过拟合

错误率,精度
训练误差,泛化误差
过拟合,欠拟合
过拟合是无法避免的,我们只能尽量缓解
模型选择

2.2 评估方法

通过测试集上的测试误差作为泛化误差的近似,测试集应尽可能与训练集相斥

2.2.1 留出法

留出法(hold-out)将数据集 \(D \) 划分为两个互斥的集合,一个作为训练集 \(S \),一个作为测试集\(T \)
训练/测试集的划分要尽可能保证数据分布的一致性,保留类别比例的采样方式:分层采样(stratified sampling)

2.2.2 交叉验证法

交叉验证法(cross validation)
k折交叉验证(k-fold cross validation),p次k折交叉验证
留一法(Leave-One-Out)

2.2.3 自助法

自助法(bootstrapping)以自助采样(bootstrap sampling)为基础
通过boot strap,数据集中约有36.8%的样本未出现在采样数据集中,实际评估的模型和期望评估的模型都使用m个训练样本,而我们仍有约\( \frac{1}{3} \)的没在训练集中出现的样本用于测试,我们称之为包外估计(out-of-bag estimate)
boot strap在数据集较小,难以有效划分训练数据和测试数据时很有用,但它改变了初始数据集的分布,会引入估计误差

2.2.4 调参与最终模型

除了要对学习算法进行选择,还需要对算法参数进行设定(parameter tuning)
参数有两种:1.算法的参数(超参数)2.模型的参数
验证集(validation set):用验证集来进行模型选择和调参

2.3 性能度量

回归函数常用的性能度量是均方误差(mean squared error),这与最大似然是一致的

2.3.1 错误率与精度

错误率和精度是分类任务中最常用的两种性能度量

2.3.2 查准率,查全率与F1

真正例TP,假正例FP,真反例TN,假反例FN
image
查准率 \(P= \frac{TP}{TP+FP}\)

查全率 \(R= \frac{TP}{TP+FN} \)

一般来说,查准率高时查全率往往偏低

F1度量:\(F1=\frac{2 \times P \times R}{P+R} = \frac{2\times TP}{样例总数+TP-TN}\)

\(F_{\beta}=\frac{(1+{\beta}^2) \times P \times R}{({\beta}^2 \times P)+R} \),\(\beta > 1 \)时查全率有更大的影响,\(\beta<1 \)时查准率有更大影响

2.3.3 ROC与AOC

很多学习器是对测试样本产生一个实值或概率预测,然后将其与一个分类阈值(threshold)比较,若大于阈值则分为正类,反之反类
以某个cut point将样本分成两部分,前一部分判作正例,后一部分判作反例
ROC(Receiver operating Characteristic)曲线:纵轴是真正率(TPR),横轴是假正率(FPR)
\(TPR=\frac{TP}{TP+FN} \)

\(FPR= \frac{FP}{FP+TN} \)

image

AUC(Area Under ROC Curve):对ROC曲线下各部分的面积求和而得
\(AUC = \frac{1}{2} \sum_{i=1}^{m-1}(x_{i+1}-x_{i})(y_i+y_{i+1})\)

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

非均等代价(unequal cost)
image
代价敏感(cost-sensitive)错误率:
$E(f;D;cost)=\frac{1}{m}\left(\sum_{x_i \in D^+} I(f({\bf{x_i}} \neq y_i) \times cost_{01}+\sum_{x_i \in D^-} I(f({\bf{x_i}} \neq y_i) \times cost_{10} \right)$
代价曲线(cost curve)

2.4 比较检验

统计假设检验(hypothesis test)为我们进行学习器的性能比较提供了重要依据
基于假设检验我们可以推断出。若在测试集上观察到学习器A比学习器B好,则A的泛化性能是否在统计意义上优于B

2.4.1 假设检验

假设泛化错误率 \(\epsilon \) 与测试错误率 \(\hat{\epsilon} \) 相等
泛化错误率 \(\epsilon \) 被测得测试错误率 为 \(\hat{\epsilon} \) 的概率:
$$P(\hat{\epsilon} \ ; \epsilon )=\begin{pmatrix}m \\ \hat{\epsilon} \times m \end{pmatrix} \epsilon^{\hat{\epsilon} \times m}(1-\epsilon^{m-\hat{\epsilon \times m}})$$

$$\frac{\partial P(\hat{\epsilon} \ ; \epsilon )}{\partial \epsilon} = 0 \implies P(\hat{\epsilon} \ ; \epsilon )在 \epsilon = \hat{\epsilon}时最大$$

2.4.2 交叉验证t检验

对两个学习器A和B,k折交叉验证“成对t检验”来比较检验,若他们的性能相同,则他们使用相同的训练集/测试集得到的测试错误率应相同:\(\epsilon_i^{A}=\epsilon_i^{B} \)
\(\delta_i = \epsilon_i^{A}-\epsilon_i^{B}\),可根据 \(\delta_1,\delta_2,…\delta_k \)来对学习器A和学习器B性能相同这个假设做t检验
image

2.4.3 McNemar检验

列连表:
image
若两个学习器性能相同,则应有\(e_{01} = e_{10} \),那么 \(|e_{01} - e_{10}| \)应服从正态分布
McNemar检验考虑变量:
$$\tau_{\mathcal{x^2}} = \frac{(|e_{01} - e_{10}|-1)^2}{e_{01}+e_{10}}$$
服从自由度为1的 \(\mathcal{X^2} \) 分布

2.4.4 Friedman 检验与 Nemenyi 后续检验

在一组数据集上对多个算法进行比较
image
image
若所有算法性能相同这个假设被拒绝,则需要进行后续检验来进一步区分算法:Nemenyi 后续检验
image

2.5 偏差与方差

偏差-方差分解(bias-variance decomposition)是解释学习算法泛化性能的重要工具
对测试样本 \( \vec{x} , y_D为 \vec{x} 在数据集中的标记,y 为 \vec{x} 的真实标记,f(\vec{x};D)为训练集D上学的模型f在\vec{x}的预测输出 \) (有可能出现噪声使得 \(y_D \neq y \))
image
image
偏差度量了算法的期望预测和真实结果的偏离程度,即算法本身的拟合能力;方差度量了训练集的变动导致的学习性能的变化,即刻画了数据扰动造成的影响;噪声刻画了学习问题本身的难度;
泛化性能由学习算法的能力,数据的充分性以及学习任务本身的难度共同决定
偏差-方差窘境(bias-variance dilemma):
image


文章作者: lovelyfrog
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 lovelyfrog !
 上一篇
暗时间读书笔记 暗时间读书笔记
大脑是我们最重要的工具,要正确利用这个工具,唯一的途径就是去了解它,尤其是了解它的弱点。 我们的思维有着各种各样的弱点和陷阱。 人的思维充满着各种各样的捷径,每一条捷径都是一把双刃剑,一方面降低了大脑的认知复杂性,有助于迅速做出绝大部
2018-03-05
下一篇 
西瓜书笔记——第一章 绪论 西瓜书笔记——第一章 绪论
1.1 引言 1.2 基本术语数据集,属性,特征标记空间分类,回归聚类,簇:了解数据内在规律监督学习(分类,回归),无监督学习(聚类)泛化能力通常假设样本空间全体样本服从一个未知分布 \(\mathcal{D} \),获得的每一个样本
2018-03-05
  目录