在机器学习领域,构建一个新模型通常涉及到使用不同的算法(例如kNN、决策树或SVM)来提高预测的准确性。然而,这个过程也带来了过拟合的风险,尤其是在使用全部训练数据来创建模型和生成预测时。为了避免这种情况,可以采取一些策略来减少过拟合的可能性。本文将探讨这些策略,并介绍堆叠模型的不同变体。
如果更倾向于通过视听方式学习概念,提供了下面视频,详细解释了整篇文章的内容。如果更喜欢阅读,可以继续往下看。
堆叠模型的核心在于利用多个模型(通常称为基学习器或基模型)对训练数据进行处理,并生成预测。这些预测(Pred 1到Pred n)被输入到一个新的模型中,而不是简单地通过最大投票或平均值来决定最终预测。根据问题的性质(回归或分类),可以选择适当的模型来完成这一任务。堆叠模型的概念非常有趣,它为提供了许多可能性。
然而,以这种方式进行堆叠可能会导致模型过拟合,因为使用了全部的训练数据来创建模型和生成预测。因此,需要变得更聪明,以不同的方式使用训练数据和测试数据,以减少过拟合的风险。本文将讨论其中一种流行的堆叠使用方法。
为了减少过拟合,可以将训练数据随机分成10个部分。然后,在这10个部分中的9个上训练模型,并在第10个部分上进行预测。例如,使用决策树作为建模技术,在第2部分到第10部分的数据上训练模型,并在第1部分上进行预测。这样,每个预测都来自一个未曾见过相同训练数据点的模型。对于测试数据集,使用整个训练数据集来训练模型,并在测试数据上进行预测。
创建了10个模型来获取训练数据的预测,并创建了第11个模型来获取测试数据的预测。所有这些模型都是决策树模型。这样,就得到了一组预测,相当于模型M1的预测。可以使用相同的方法,使用第二种建模技术(例如KNN),并对测试数据集运行第11个KNN模型。也可以对第三种建模技术(可能是线性或逻辑回归)做同样的事情。这些成为了新基学习器。现在有了来自三种不同建模技术的预测,同时避免了过拟合的风险。
可能会问,为什么选择10作为分割的数量?实际上,10这个数字并没有什么特别之处。如果使用少于2或3,不会获得太多好处。如果使用超过15或20,计算量会增加。因此,这是一个在减少过拟合和不大幅增加复杂性之间的权衡。可以选择7或8,没有什么特定的数字要求。通常,人们会根据情况使用5到11或12。在集成学习中,有指导方针,但最终需要根据资源、复杂性和生产指南来做出决策。
讨论了堆叠模型的一些变体。以下是一些其他变体: