[机器学习]模型评估方法
[机器学习]模型评估方法
- 评估方法
- 留出法
- 交叉验证法
- 留一法
- 自助法
评估方法
当进行模型选择时,理想方案是对候选模型的泛化误差进行评估,选择泛化误差最小的模型。但我们却无法直接获得泛化误差,而训练误差又由于过拟合现象的存在不适合作为标准。
为此,我们课可通过实验测试来对学习器的泛化误差进行评估并进而做出选择。需使用一个“测试集”测试学习器对新样本的判别能力,以测试集上的“测试误差”作为泛化误差的近似。
通常假设测试样本也是从样本真实分布中独立同分布采样而得,但注意测试集应该尽可能与训练集互斥。
留出法
留出法(hold-out)
将数据集D划分为两个互斥集合,其中一个集合作为训练集S,另一个作为测试集T, D ∪ T , S ∩ T = ∅ D\cup T,S\cap T=\varnothing D∪T,S∩T=∅。
在S上训练出模型后,用T评估测试误差作为对泛化误差的估计。
- 训练/测试集的划分要尽可能保持数据分布的一致性,避免隐数据划分引入额外的偏差对最终结果产生影响。如:分层采样;
- 单次使用留出法得到的估计往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值为留出法的评估结果;
- 由于“偏差-方差”权衡问题,常见做法将大约 2 3 ∼ 4 5 \frac{2}{3}\sim \frac{4}{5} 32∼54的样本用于训练,其余用于测试。
交叉验证法
交叉验证法(cross validation)
将数据集 D D D划分为 k k k个大小相似的互斥子集,每个子集尽可能保持数据分布的一致性,即从 D D D中通过分层采样得到;每次用 k − 1 k-1 k−1个子集的并集作为训练集,余下的子集作为测试集。
于是得到了 k k k组训练/测试集,从而可以进行 k k k次训练和测试,最终返回 k k k次测试结果的均值。
交叉验证法评估结果的稳定性和保真性很大程度上取决于 k k k的取值,为强调这一点,通常把交叉验证法称为“k折交叉验证(k-fold cross validation)
”。
留一法
假定数据集 D D D包含 m m m个样本,若令 k = m k=m k=m,得到交叉验证法的一个特例:留一法(Leave-One-Out)LOO
- 显然留一法不受随机样本划分方式的影响;
- 留一法被实际评估的模型与期望评估的模型很相似,评估结果往往比较准确;
- 在数据集较大时,开销太大。
自助法
自助法(boostrapping)
以自助采样法(boostrap sampling)为基础,给定包含m个样本的数据集 D D D,对它采样产生数据集 D ′ D' D′:每次随机从 D D D挑选一个样本,将其拷贝放入 D ′ D' D′,再将其放回 D D D,使其在下次采样时仍可能被采样到。
重复过程m次后得到包含m个样本的数据集 D ′ D' D′,于是 D D D有一部分样本会在 D ′ D' D′中多次出现,而另一部分不出现。比如:样本在m次采样始终不被采到的概率是 ( 1 − 1 m ) m (1-\frac{1}{m})^m (1−m1)m,取极限得: l i m m ⟶ ∞ ( 1 − 1 m ) m ⟶ 1 e ≈ 0.368 \underset{m\longrightarrow \infty }{lim} (1-\frac{1}{m})^m\longrightarrow \frac{1}{e}\approx 0.368 m⟶∞lim(1−m1)m⟶e1≈0.368
于是我们可将 D ′ D' D′做训练集, D ∖ D ′ D\setminus D' D∖D′做测试集。实际评估模型与期望评估模型都使用m个训练样本,而仍有1/3得没在训练集出现得样本用于测试,测试结果也称包外估计(out-of-bag estimate)
.
- 自助法在数据集较小、难以有效划分训练、测试集时很有用;
- 自助法产生多个不同训练集对集成学习有很大好处;
- 自助法产生得数据集改变了初始数据集分布,会引入估计偏差。
初始数据量足够时,留出法和交叉验证法更常用。
原文地址:https://blog.csdn.net/m0_45164809/article/details/121471821
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 809451989@qq.com 进行投诉反馈,一经查实,立即处理!