第2章 模型评估与选择
2.1 经验误差与过拟合
错误率、精度
如果在 m 个样本中有 α 个样本分类错误,则错误率 E= α/m;相应的,1 - α/m称为”精度“; [P22]
误差(训练误差、泛化误差)
- 把学习器的实际预测输出与样本的真实输出之间的差异称为**“误差” (error)**;
- 学习器在训练集上的误差称为"训练误差" (training error)或"经验误差" (empirical error)
- 在新样本上的误差称为 “泛化误差” (generalization error).
过拟合
当学习器把训练样本学得"太好"了的时候,很可能巳经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降这种现象在机器学习中称为 “过拟合”(overfitting).
- 多种因素可能导致过拟合,最常见的就是由于学习能力过强,以至于把训练样本所包含的不太一般的特性都学到了!
- 较难处理!
欠拟合
指对训练样本的一般性质尚未学好.
- 通常由于学习能力低下而造成的。
- 较易处理!
过拟合、欠拟合的直观类比
2.2 评估方法
留出法
“留出法”(hold-out)直接将数据集 D 划分为两个互斥的集合,其中一个集合作为训练集 S,另一个作为测试集 T , 即D=S∪T , S ∩ T=空集.
在S上训练出模型后,用 T 来评估其测试误差,作为对泛化误差的估计.
训练/测试集的划分要尽可能保持数据分布的一致性,避免困数据划分过程引入额外的偏差而对最终结果产生影响 [P24]
单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果. [P24]
常见做法是将大约 2/3 ~ 4/5 的样本用于训练,剩余样本用于测试. [P25]
交叉验证法
- 先将数据集 D 划分为 k 个大小相似的互斥子集. 每个子集 Di 都尽可能保持数据分布的一致性,即从D 中通过分层采样得到.
- 每次用k-1 个子集的并集作为训练集,剩余的那个子集作为测试集; 这样就可获得 k组训练/测试集,从而可进行 k 次训练和测试。最终返回的是这 k 个测试结果的均值。 [P25]
交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值,为强调这一点,通常把交叉验证法称为" k 折交叉验证" (k-fold cross validation).
k常用取值
k 最常用的取值是 10,此时称为10折交叉验证 ; 其他常用 的 k 值有 5、20 等 [P25]
10折交叉验证示意图
特例:留一法
假定数据集D中包含m个样本,若令 k=m, 则得到了交叉验证法的一个特例:留 一法 (Leave-One-Ot比,简称 LOO ) . [P25]
注意: k折,就是把训练集折成k份(k<=N)进行交叉验证,k = N是即特例留一法。
优点
在绝大多数情况下,留一法中被实际评估的模型与期望评估的用D训练出的模型很相似.因此,留一法的评估结果往往被认为比较准确. [P26]
缺点
在数据集比较大时,训练 m 个模型的计算开销可能是难以忍受的(例如数据集包含 1 百万个样本,则需训练 1 百万个模型 [P26]
自助法
- 给定包含 m 个样本的数据集 D,我们对它进行采样产生数据集 D’:
- 每次随机从 D 中挑选一个样本,将其拷贝放入D’ ,然后再将该样本放回初始数据集 D 中,使得该样本在下次采样时仍有可能被采到;
- 这个过程重复执行 m 次后,我们就得到了包含 m个样本的数据集 D’[P26]
简单来说: 随机从D中有放回的取一个样本,重复m次,得到一个包含m个样本的数据集。
通过简单的估计,可知样本在m次采样中始终不被采到的概率为:
即初始数据集D中约有36.8%的样本未出现在D’中,于是我们可将D’用作训练集,D\D’(即D-D’)作为测试集。
优缺点
优点: 自助法在数据集较小、难以有效划分训练/测试集时很有用;此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处
缺点: 然而,自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。
因此在初始数据量足够时,留出法和交叉验证法更常用一些。
调参与最终模型
大多数学习算法都有些参数 (parameter)需要设定,参数配置不同,学得模型的性能往往有显著差别.因此,在进行模型评估与选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定,这就是通常所说的"参数调节"或简称"调参" (parameter tuning) [P27]
训练集、验证集、测试集
模型评估与选择中用于评估测试的数据集常称为"验证集" (validation set).
例如,在研究对比不同算法的泛化性能时,我们用测试集上的判别效果来估计模型在实际使用时的泛化能力,而把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参. [P27]
2.3 性能度量
性能度量
衡量模型泛化能力的评价标准,这就是性能度量 (performance measure). [P27]
性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果.
均方误差
回归任务最常用的性能度量是"均方误差" (mean squared error) [P28]
回归任务的均方误差
一般形式的均方方差
错误率
精度
查准率P、查全率R
分为真正例 (True Positive) 、假正例 (False Positive) 、真反倒 (True Negative) 、假反例 (False Negative) 四种情形
查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低。查全率高时,查准率往往偏低。
P-R图
P-R 图
直观地显示出学习器在样本总体上的查全率、查准率 .
在进行比较时,若一个学习器的 P-R 曲线被另一个学习器的曲线完全"包住 ", 则可断言后者的性能优于前者 [P30]
平衡点BEP
"平衡点 " (Break-Event Point,简称 BEP)就是这样一个度量,它是" 查准率=查全率"时的取值 [P30]
利用BEP的取值来比较学习器的优略!BEP过于简化!
Fβ(对查全率/查准率的不同偏好)
-
β = 1 时退化为标准的 F1;
-
β>0 度量了查全率对查准率的相对重要性.
- β > 1 时查全率有更大影响 ;
- β < 1 时查准率有更大影响.