我想知道是否可以使用数据集 D 为分类任务训练 ML 模型,然后训练另一个模型来解决相同的分类任务,该分类任务将数据集 D 和第一个模型的输出作为输入。我担心这种情况下的数据分区(即模型是否需要用不同的数据样本进行训练和测试)。如果存在这种 ensemble 方法,它是如何调用的?
作为进一步的细节,我有一个 KNN 模型和一个随机森林来预测相同的标签,但它们使用不同的变量进行训练。
我想知道是否可以使用数据集 D 为分类任务训练 ML 模型,然后训练另一个模型来解决相同的分类任务,该分类任务将数据集 D 和第一个模型的输出作为输入。我担心这种情况下的数据分区(即模型是否需要用不同的数据样本进行训练和测试)。如果存在这种 ensemble 方法,它是如何调用的?
作为进一步的细节,我有一个 KNN 模型和一个随机森林来预测相同的标签,但它们使用不同的变量进行训练。
你的意思是用一个 ML 模型进行预测,然后将原来的特征 + 预测作为新特征组合到另一个 ML 模型中?
从概念上讲,这有点奇怪,除非您认为第一个 ML 模型有一些限制(例如系统性偏差)并且您想以某种方式使用第二个模型来纠正它。但在那种情况下,为什么不只使用第二种架构。
一种更常见的集成类型是简单地训练两个模型,然后对预测进行某种聚合(例如平均)。
堆叠最接近您的描述。来自sklearn 文档:
堆叠泛化包括堆叠单个估计器的输出并使用分类器来计算最终预测。堆叠允许通过使用每个单独的估计器的输出作为最终估计器的输入来使用它们的强度。
堆叠是一种“集成学习”,您的目标是将多个模型组合成一个最终分类器。这个想法是利用不同模型的能力来捕获数据中的不同细节。