【问题标题】:How does cross validation work for testing?交叉验证如何用于测试?
【发布时间】:2013-11-21 12:46:28
【问题描述】:

所以我在理解交叉验证如何在机器学习中进行模型构建时遇到了一些麻烦。

假设我有一个包含 100 个样本的数据集,我执行 10 折交叉验证。

据我了解,我会将数据集分成 10 个一组,然后用其中的 9 个组在其中一组上进行训练和测试。

最后,我会有 10 个不同的分类器,以及整个数据集的预测结果。

然后我将如何使用这些结果对第 101 个新样本进行测试?

之前有人告诉我,这 10 个不同的分类器只是被平均了,结果被用来测试新的数据点,但是这到底是怎么做的呢?是否所有 10 个分类器都在新数据点上运行,并且最后的置信度值平均得到用于分类的最终分类器?还是 10 个生成的分类器以某种方式聚合为一个?我认为这是第二种情况,但现在我想起来了,我不确定你会如何“组合”不同的分类器。

【问题讨论】:

    标签: machine-learning


    【解决方案1】:

    交叉验证用于验证您的学习算法对未见数据的泛化能力,即,如果您的交叉验证在您的测试折叠上取得了良好的结果。

    一旦建立,您就可以使用整个训练集来训练您的模型并将其应用于新数据。

    平均 10 个分类器在不同数据上训练时所描述的内容听起来有点像 Bootstrapping,将不同的弱学习器组合成一个强学习器。请注意,这确实意味着不同的学习者,而不是通常在不同数据上训练的一个学习者。

    【讨论】:

    • 好的,假设我正在使用 Weka 生成贝叶斯网络分类器。那么通过交叉验证设置输出的模型是什么意思呢?这是否来自自举?
    【解决方案2】:

    验证用于模型选择。如果您有 M 个候选模型,则分类误差最小的模型是 m,其中

    0<m<=M
    

    ,样本外误差不会超过验证误差Eval加上

    sqrt(log(M)/K)
    

    ,在你的情况下 K=N/10。

    交叉验证用于将获得的10个验证错误平均作为Eval。

    确定模型 m 后,您将使用所有样本数据进行训练。

    【讨论】:

      猜你喜欢
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-15
      • 2016-01-29
      • 2011-12-16
      • 2020-11-07
      • 2023-03-27
      相关资源
      最近更新 更多