第2章 模型评估与选择
2.1 经验误差与过拟合
- 错误率\(E\) :\(m\) 个样本,\(a\) 个分类错误,\(\displaystyle E = \frac{a}{b}\) 。
- 精度:\(\displaystyle 1-\frac{a}{b}\) 。
希望得到误差最小化、错误率低、精度高的学习器
预测输出与样本的真实输出之间的差异成为“误差”。
学习器在训练集上的误差称为“训练误差”或“经验误差”。
学习器在新样本上的误差称为“泛化误差”。
当学习器把训练样本学习的“太好”了的时候,会导致泛化性下降,也就是面对新样本,效果不佳。这种现象称为“过拟合”(与之相对,训练不够,“欠拟合”)。
- 过拟合:学习能力过强,不可避免,只能缓解
- 欠拟合:学习能力不足,加大学习
现实中,往往有各种学习算法可侯选择,甚至同一算法不同参数配置时,也会产生不同模型。如何选择,即“模型选择”。
理想解决方案时对候选模型泛化误差进行评估,然后选择泛化误差最小的模型。
2.2 评估方法
通过“测试集”来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”作为“泛化误差”的近似。
测试样本:
- 从样本真实分布中独立筒分布采样
- 与训练集尽可能互斥(未出现,未使用过)
举例:你是一个老师吗,教了学生10道题,你对他们进行考核时肯定不是这10道题,才能体现他“举一反三”的能力。
但是我们只有一个包含 \(m\) 个样例的数据集 \(D=\{(x_1,y_1),(x_2,y_2)\cdots(x_n,y_n)\}\),如何做到既要训练又要测试?
对D适当处理,产生训练集 \(S\) 和测试集 \(T\) 。
2.2.1 留出法
留出法直接将数据集 \(D\) 划分未两个互斥集合,一个训练集 \(S\),一个测试集 \(T\),即\({D=S}\cup{T}\) , \({S}\cap{T}=\emptyset\),在 \(S\) 上训练,\(T\) 上评估。
举例: \(D=1000\) 个,训练 \(S=700\) 个,测试 \(T=300\) 个,测试中有\(90\)个出错,出错率为 \(\displaystyle \frac{90}{300} \times {100=30\%}\),精度 \(1 -70\%=30\%\) 。
注意,训练/测试划分要尽可能与数据分布一致。保留类别比例的采样称为“分层采样”
如\(D=1000=500_正+350_反\) ,则 \(S=700=350_正+350_反\),\(T=150_正+150_反\)。
然而,及时如此分类,在实际上,先正、先反也会产生不同结果。所以,单次“留出法”并不可靠,一般采用若干次随机划分,重复实验取平均。
常见的方法: \(\displaystyle \frac{2}{3}\sim\displaystyle \frac{4}{5}\)样本用于训练,剩余用于测试。
2.2.2 交叉验证法
将数据集 \(D\) 划分为 \(k\) 个大小相似的互斥子集,即 \(D=D_1\cup{D_2}\cup\cdots\cup{D_n}=\emptyset{(i\neq{j})}\) ,每个子集\(D_i\)却尽可能与数据分布保持一致,即“分层采样”。
每次用 \(k-1\) 个子集的并作为训练集,余下子集为测试集,最终返回 \(k\) 个测试结果的均值。
又称“ \(k\) 折交叉验证”,\(k\) 通常取 \(10\),称为 \(10\) 折交叉验证。
将数据集 \(D\) 划分为 \(k\) 个子集同样存在各种划分方式,为减少因样本划分不同而引入的差别,通常要随使用不同的划分重复 \(p\) 次,最终结果是第 \(p\) 次 \(k\) 折交叉验证 \(A\) 的均值。
常见“10次10折交叉验证”。
特例:留一法
数据集 \(D\) 中包含 \(m\) 个样本,令 \(k=m\),则每次只留 1 个测试,留一法不受随机样本划分方式的影响。
结果准确(也不全是),但数据量较大时计算量太大。
2.2.3 自助法
以自助采样为基础,给定包含 \(m\) 个样本的数据集 \(D\),采样\(D'\):每次从 \(D\) 中随机选一个样本,放入 \(D'\) 中,然后该样本在 \(D\) 中仍保留,使得该样本下次采样也可能被采到,重复 \(m\) 次,得到包含 \(m\) 个样本的数据集 ( \(D\) 中有一部分在 \(D'\) 重复出现,有一部分从未出现)。
样本在 \(m\) 次采样中始终不被采样到的概率:\((1-\frac{1}{m})^m\) \(\displaystyle \lim_{m\to{\infty}}(1-\frac{1}{m})^m \mapsto \frac{1}{e}\approx{0.368}\)
即通过自助采样,数据集 \(D\) 中大约有 \(36.8\%\) 的样本未出现在训练集 \(D'\) 中, \(D\setminus{D'}\)用作测试集。
实际评估的模型与期望评估的模型都使用 \(m\) 个训练集样本,而我们仍有数据总量约\(\displaystyle \frac{1}{3}\) 的、没有训练集中出现,而用于测试,又称“包外估计”。
优点
- 数据量小,难以有效划分训练/测试集。
- 此外,能产生多个不同的训练集,对集成学习有益。
- 然而,改变了原始分布,引入估计偏差。
- 因此,在数据量充足时,留出法、交叉验证法更常用。
2.2.4 调参与最终模型
算法都有些参数需要设定,参数配置不同,模型性能不同。
参数调节———调参
调参与算法选择本质上是一致的:不同配置得到不同参数模型,把对应最好的模型参数作为结果。
实际操作中,参数选择是一个范围加一个变化参数,如 \([0,0.2]\) 以 0.05 为步长,有0,0.05,0.1,0.15,0.2 这 5 种参数选择,这已经是计算开销和性能估计的折中。
然而,假定 3 个参数,每个参数有 5 种选择,模型将有 \(5^3=125\) 种需要对比。
\(m个样本数据集D \Rightarrow{D'训练,D'\setminus{D'测试}} \Rightarrow {模型选定(算法配置选定)} \Rightarrow {D作为训练集重新训练}\Rightarrow{结果}\)
用测试集上的判别效果估计模型在实际使用中的泛化能力,而把训练集分为:训练集和验证集(验证集上的性能能模型选择和调参)
2.3 性能度量
用来衡量模型泛化能力的评价标准。
性能度量反映了任务需求,在对比相同模型能力时,采用不同的性能度量往往会导致不同的评判结果,模型的“好坏”是相对的。
预测任务中,样例集 \(D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_m,y_m)\}\),其中 \(y_i\) 是示例 \(x_i\) 的真实标记,要评估学习器f的性能,就要把预测结果 \(f(x)\) 真实标记 \(y\) 比较。
回归任务最常用的性能度量是“均方误差”:\(\displaystyle E(f;D)=\frac{1}{m}\sum^{m}_{i=1}(f(x_i)-f(y_i))^2\)
更一般的,数据分布\(\mathcal{D}\)和概论密度\(p(\cdot)\) ,均方误差为:\(\displaystyle E(f;\mathcal{D})=\frac{1}{m}\int_{x \sim {\mathcal{D}}}(f(x_i)-y)^2 p(x)dx\)
2.3.1 错误率与精度
最常用的两种性能度量:
- 错误率是分类错误的样本占样本总数的比例
- 精度是分类正确的样本占样本总数的比例
指示函数 \(\mathbb I(\cdot)\)
指示函数为真和假时分别取1,0
错误率定义:
\(\displaystyle E(f;D)=\frac{1}{m}\sum^{m}_{i=1}\mathbb{I}(f(x_i)\neq{y_i})\)
精度定义
\(\displaystyle acc(f;D)=\frac{1}{m}\sum^{m}_{i=1}\mathbb{I}(f(x_i)={y_i})=1-E(f;D)\)
更一般,对于数据分布\(\mathcal{D}\)和概率密度函数\(p(\cdot)\)表示方法
错误率 \(\displaystyle E(f;\mathcal{D})=\int_{x\sim{\mathcal{D}}}\mathbb{I}(f(x)\neq{y})p(x)dx\)
精度 \(\displaystyle acc(f;\mathcal{D})=\int_{x\sim{\mathcal{D}}}\mathbb{I}(f(x)={y})p(x)dx=1-E(f;\mathcal{D})\)
2.3.2 查准率、查全率与\(F_1\)
- 查准率\(\rightarrow\) 准确度
- 查全率\(\rightarrow\) 召回率
错误率与精度虽常用,但不能满足所有任务需求。
对于二分类问题,分类结果混淆矩阵
| 真实情况 | 预测结果 | |
|---|---|---|
| 正例 | 反例 | |
| 正例 | TP(真正例) | FN(假反例) |
| 反例 | FP(假正例) | TN(真反例) |
- 查准率(precision) \(P\) \(P=\frac{TP}{TP+FP}\)
- 查全率(recall) \(R\) \(R=\frac{TP}{TP+FN}\)
查准率和查全率是一对矛盾的度量。一般来说,查准率
高时,查全率往往偏低,而查全率高时,查准率往往偏低。
在很多情形下,我们可根据学习器的预测结果对样例进行排序,排在前面的是学习器认为“最可能”是正例的样本,排在最后的是学习器认为“最不可能”是正例的样本。按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率,查准率。
以查准率为纵轴、查全率为横轴作图,就可以得到查准率——查全率曲线,简称PR曲线,显示该曲线的图称为"P-R"图。
P-R图直观地显示出学习器在样本上的查全率、查准率。
在进行比较时,若一个学习器的P-R曲线被另一个曲线完全“包住”,则可断言后者的性能优于前者。
如果两个学习器的P-R曲线发生了交叉,可以试着比较P-R曲线面积的大小。
一些综合考虑查准率、查全率的性能度量
平衡点(Break-Even Point, 简称BEP),是查准率=查全率时的取值。
但BEP还是过于简化了写,更常用的是F1度量:
\(F1\) 是基于查准率与查全率的调和平均定义的:\(\frac {1}{F_1}= \frac {1}{2}(\frac {1}{P} + \frac {1}{R})\)
\(F_\beta\) 是加权调和平均:\(\frac {1}{F_\beta}= \frac {1}{1+\beta^2}(\frac {1}{P} + \frac {\beta^2}{R})\)
与算术平均\((\frac {P+R}{2})\)和几何平均\(\sqrt {P \times R}\),调和平均更重视较小值。
浙公网安备 33010602011771号