ML01-模型的评估与选择

·

0 min read

西瓜书学习笔记

James

2019-05-20

模型评估与选择

错误率与精度

错误率(error rate) $E=\frac{a}{m}$, $a$ 为分类错误的样本数,$m$ 为样本总数。

精度(accuracy)$1-E$。

误差,训练误差和泛化误差

学习其的实际预测输出与样本真实输出之间的差异称为“误差”。

学习器在训练集上的误差称为训练误差(training error)或是经验误差(empirical error), 学习器在新样本上的误差称为泛化误差(generalization error)。

过拟合和欠拟合

当学习器将训练样本中的一些特点当作所有样本的特点时,会导致泛化能力下降,该种情况称为过拟合(overfitting)。反之学习器对训练样本学习不够,训练误差还有可下降的空间,这种情况称为欠拟合(underfitting)

学习器学习能力过强是导致过拟合的主要原因,同理学习器学习能力较低是导致欠拟合的主要原因。

划分训练集和测试集的方法

1. 留出法(Hold-out)

直接将数据集 $D$ 划分成两个互斥的集合,其中一个作为训练集 $S$ ,另一个作为测试集 $T$ ,即$D=S\cup T, S\cap T=\emptyset$.

注意在划分训练集和测试集时要尽可能保持数据分布的一致性,避免偏差。

常见做法是将大约2/3到4/5的样本用于训练,剩余样本用于测试。

2. 交叉验证法(Cross validation)

先将数据集 $D$ 划分为 $k$ 个大小相似的互斥子集,即 $D=D_1\cup D_2\cup D_3\cup\dots\cup D_k,D_i\cup D_j=\emptyset(i\neq j)$。每个子集 $D_i$ 都尽可能保持数据分布的一致性。然后每次用 $k-1$ 个子集的并集作为训练集,余下的那个子集作为测试集,进行 $k$ 次训练和测试,最终返回这 $k$ 次测试结果的均值。

交叉验证法也被称为k折交叉验证(k-fold cross validation)

3. 自助法(Bootstrapping)

给定包含 $m$ 个样本的数据集 $D$,对其进行采样残生数据集 $D'$: 每次随机从 $D$ 中挑选一个样本,将其拷贝放入 $D'$ ,然后将其放回初始数据集 $D$ 中,使其还可能被下一次采样时采到; 这个过程重复进行 $m$ 次,就能够得到包含有 $m$ 个样本的数据集 $D'$.

自助法在数据集较小,难以有效划分训练测试集时很有用。同时,自助法能够产生多个不同的训练集,对集成学习等方法有很大的好处。

查准率,查全率与F1 score

预测结果名称
TP (True Positive)
FP (False Positive)
TN (True Negative)
FN (False Negative)

查准率 $Precision=\frac{TP}{TP+FP}$

查全率,召回率 $Recall=\frac{TP}{TP+FN}$

平衡点(Break-Even Point,BEP)是指查准率=查全率时的取值,BEP越高,一般认为模型表现越好。

$$F1= \frac{2\times P\times R}{P+R}=\frac{2*TP}{N+TP-TN}$$

ROC与AUC

ROC曲线以真正例率(TPR, True Positive Rate)为纵轴,以假正例率(FPR, False Positive Rate)为横轴。

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

如果一个学习器的ROC曲线完全被另一个所包住,说明后者性能优于前者。而往往ROC曲线会出现重合,此时我们通过计算ROC曲线下的面积,即AUC (Area Under ROC Curve) 来比较学习器的优劣。