我正在研究整体机器学习,当我在网上阅读一些文章时,我遇到了两个问题 .
1.
在这个article中,它提到了
相反,模型2可能在所有数据点上具有更好的整体性能,但是在模型1更好的一组点上具有更差的性能 . 我们的想法是将这两种模型结合起来,使它们发挥最佳性能 . 这就是为什么创建样本外预测有更高的机会捕获每个模型表现最佳的不同区域 .
但是我仍然无法得到这一点,为什么不训练所有训练数据都可以避免这个问题呢?
2.
从这个article,在预测部分,它提到
简单地说,对于给定的输入数据点,我们需要做的就是将其传递给M个基础学习者并获得M个预测,并通过元学习器将这些M个预测作为输入发送
但是在训练过程中,我们使用k-fold训练数据训练M基础学习者,那么我是否应该根据所有训练数据训练M基础学习者的输入进行预测?
3 回答
1)“但我仍然无法明白这一点,为什么不训练所有训练数据可以避免这个问题?” - 我们将保留该数据用于验证目的,就像我们在K-fold中所做的那样
2)“那么我是否应该根据输入的所有列车数据训练M基础学习者来预测?” - 如果您向所有学习者提供相同的数据,那么所有学习者的输出将是相同的,并且创建它们没有用处 . 因此,我们将为每个学习者提供一个数据子集 .
假设红色和蓝色是你能找到的最好的模型 .
一个在区域1中效果更好,另一个在区域2上效果更好 .
现在,您还需要训练分类器来预测要使用的模型,即您将尝试学习这两个区域 .
在外面做验证 . 如果您让两个内部模型访问元模型看不到的数据,您可以过度拟合 .
合奏中的想法是,一组弱预测因子胜过强预测因子 . 因此,如果我们训练具有不同预测结果的不同模型并使用多数规则作为我们整体的最终结果,则该结果优于仅仅尝试训练单个模型 . 例如,假设数据由两个不同的模式组成,一个是线性的,一个是二次的 . 然后使用单个分类器可能过度拟合或产生不准确的结果 . 您可以阅读this tutorial以了解有关合奏,装袋和提升的更多信息 .