ML01-模型的评估与选择
西瓜书学习笔记
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) 来比较学习器的优劣。