周志华机器学习笔记(一)

2 模型评估与选择

2.2 评估方法

2.2.1留出法

留出法直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。

注意:训练/测试集的划分尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。常见做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试

2.2.2 交叉验证法

交叉验证法先将数据集D划分为k个大小相似的互斥子集。然后每次k-1个子集的并集作为训练集,余下的那个子集作为测试集,最终结果是K个测试结果的均值。

假定数据集D中包含m个样本,若令k=m,则得到了交叉验证法的一个特例:留一法。

2.2.3 自助法

我们希望评估的是用D训练出的模型。但是留出法和交叉验证法中,由于保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,这必然会引入一些因训练样本规模不同而导致的估计偏差。留一法受训练样本规模变化的影响较小,但计算复杂度又太高了。

“自助法”,它直接以自主采样法为基础。给定包含m个样本的数据集D,我们对他进行采样产生数据集D‘:每次随机从D中挑选一个样本,将其拷贝放进D’,这个过程重复执行m次后,我们就得到了包含m个样本的数据集D‘。样本在m次采样中始终不被采到的概率是:

即通过自助采样,初始训练集D中约有36.8%的样本维出现在采样数据集D’中,于是我们可将D‘用作训练集。D\D'用作测试集,这样,实际评估的模型与期望评估的模型都使用m个训练样本,而我们任有数据总量约为1/3的,没在训练集中出现的样本用于测试。

2.3 性能度量

回归任务最常用的性能度量是“均方误差”

更一般的,对于数据分布D和概率密度函数p(.),均方误差可描述为

2.3.1错误率与精度

错误率

精度

2.3.2查准率,查全率与F1

P-R曲线

平衡点(Break-Event Point ,BEP)是一个度量,它是“查准率=查全率时的取值。上图中C的BEP是0.64,基于BEP比较,可认为A优于B

但是BEP还是过于简化,更常用的是F1度量:

根据不同的问题,对查准率和查全率的重视程度有所不同。F1度量的一般形式——Fβ,能让我们表达出对查准率/查全率的不同偏好,它定义为

其中β > 0 度量了查全率对查准率的相对重要性。β = 1时退化为标准的F1;β > 1时查全率有更大影响;β < 1时查准率有更大影响。

若我们希望在n个二分类混淆矩阵上综合考察查准率和查全率。

一种直接的做法是先在各混淆矩阵上分别计算出查准率和查全率,记为:

再计算平均值,这样就得到“宏查准率”(macro-P)、“宏查全率”(macro-R),以及相应的“宏F1”(macro-F1):

还可先将各混淆矩阵的对应元素进行平均,得到TP,FP,TN,FN,的平均值,再基于这些平均值计算出“微查准率”(micro-P),“微查全率”(micro-R)和“微F1”

2.3.3 ROC与AUC

2.5 偏差与方差

偏差-方差分解试图对学习算法的期望泛化错误率进行拆解,我们知道,算法在不同训练集上学到的结果很可能不同,即便这些训练集来自同一个分布。