机器学习模型评价、模型与算法选择(综述)
1. 引言:关于模型评价的基本术语和技术
1.1 性能估计:泛化性能与模型选择
在机器学习中,我们通常关心的是模型的泛化性能,也就是模型对未见过的数据的预测能力。为了评估模型的泛化性能,我们需要将数据集划分为训练集和测试集,使用训练集来训练模型,然后使用测试集来评估模型的性能。
此外,模型选择是另一个重要的任务,它涉及到在一组候选模型中选择最优模型。模型选择的目标是找到一个在给定的评价指标下性能最好的模型。
1.2 假设和术语
在讨论模型评价时,我们需要定义一些基本的术语。例如,"模型"通常指的是从数据中学习的预测函数;"算法"指的是用于学习模型的过程;"性能度量"指的是用于评价模型的标准,如准确率、召回率等。
1.3 重复验证和保留方法
重复验证和保留方法是两种常用的模型评价方法。
重复验证是指多次使用不同的训练集和测试集来评估模型的性能,然后取平均值作为最终的性能估计。
保留方法是指将数据集划分为训练集和测试集,然后使用训练集来训练模型,使用测试集来评估模型的性能。
2. 自举和不确定性
2.1 概述
自举是一种强大的统计技术,它可以用来估计一个统计量的抽样分布。在机器学习中,自举方法可以用来估计模型性能的不确定性,从而帮助我们更好地理解模型的稳定性和可靠性。
2.2 重采样
重采样是自举方法的核心。它是指从原始数据集中随机抽取样本,形成新的数据集。通过重复这个过程,我们可以生成多个不同的数据集,然后在这些数据集上训练和评估模型,从而得到模型性能的多个估计。
2.3 重复保留验证
重复保留验证是一种常用的模型评价方法。它是指将数据集划分为训练集和测试集,然后使用训练集来训练模型,使用测试集来评估模型的性能。这个过程会重复多次,每次都使用不同的训练集和测试集,最后将多次评估的结果进行平均,得到模型性能的最终估计。
2.4 自举方法和经验置信区间
自举方法可以用来估计模型性能的不确定性,这通常通过计算模型性能的经验置信区间来实现。经验置信区间是指在多次重采样和评估的过程中,模型性能的变化范围。例如,如果我们的模型在 100 次重采样和评估的过程中,准确率的范围是 70%到 80%,那么我们就可以说,我们对模型的准确率有 70%到 80%的信心。
3. 交叉验证和超参数优化
3.1 概述
交叉验证和超参数优化是机器学习中的两个核心概念。交叉验证是一种评估模型泛化性能的方法,它通过将数据集分割为多个子集,并轮流使用其中一个子集作为测试集,其余子集作为训练集,来评估模型的性能。超参数优化则是在给定的超参数空间中寻找最优超参数的过程,这个过程通常涉及到搜索算法和性能评估。
3.2 关于超参数和模型选择
超参数是在训练模型之前就需要确定的参数,比如学习率、正则化参数等。选择合适的超参数对模型的性能有很大影响。模型选择则是在多个模型(可能是不同类型的模型,或者是同一类型模型但具有不同超参数的模型)中选择性能最好的模型。这个过程通常涉及到交叉验证和性能评估。
3.3 三路保留方法用于超参数调优
三路保留方法是一种用于超参数调优的方法,它将数据集划分为训练集、验证集和测试集。训练集用于训练模型,验证集用于调整超参数,测试集用于评估最终模型的性能。这种方法可以有效地防止过拟合,并提供了一个公平的性能评估。
3.4 k-折交叉验证简介
k-折交叉验证是一种常用的交叉验证方法,它将数据集划分为 k 个子集,然后轮流使用其中一个子集作为测试集,其余子集作为训练集,来评估模型的性能。这种方法可以有效地利用有限的数据,并提供了一个公平的性能评估。
3.5 特殊情况:2-折和留一法交叉验证
2-折交叉验证和留一法交叉验证是 k-折交叉验证的两种特殊情况。2-折交叉验证将数据集划分为两个子集,留一法交叉验证则将每个样本单独作为测试集,其余样本作为训练集。这两种方法各有优缺点,需要根据具体的应用场景来选择。
3.6 k-折交叉验证和偏差-方差权衡
选择合适的 k 值是 k-折交叉验证中的一个重要问题。k 值的选择需要在偏差和方差之间找到一个平衡。一般来说,k 值越大,偏差越小,方差越大;k 值越小,偏差越大,方差越小。因此,选择合适的 k 值是一个需要权衡的问题。
3.7 通过 k-折交叉验证进行模型选择
k-折交叉验证可以用于模型选择。通过在不同的训练集上训练模型,并在对应的测试集上评估模型的性能,我们可以选择性能最好的模型。这种方法可以有效地利用有限的数据,并提供了一个公平的性能评估。
4. 算法比较
4.1 概述
在机器学习中,我们经常需要比较不同的算法以确定哪种算法在特定任务上的性能更好。这通常涉及到在相同的数据集上训练和评估不同的模型,然后使用某种性能度量来比较它们的性能。
4.2 测试比例的差异
在比较两个模型的性能时,我们需要使用统计测试来确定性能差异是否显著。这通常涉及到计算性能度量的差值,并检验这个差值是否显著大于零。如果差值显著大于零,那么我们就可以说一个模型的性能显著优于另一个模型。
4.3 使用 McNemar 测试比较两个模型
McNemar 测试是一种用于比较两个模型性能的统计测试。它主要用于比较两个模型在同一数据集上的错误率。McNemar 测试的基本思想是比较两个模型在同一数据集上的错误预测的数量,如果一个模型的错误预测数量显著少于另一个模型,那么我们就可以说这个模型的性能优于另一个模型。
文章转载自:算法金「全网同名」
评论