我可以使用分类器 A 的输出作为分类器 B 的特征吗?

机器算法验证 分类 特征选择 特征工程 集成学习
2022-04-10 02:54:30

这可能是一个令人困惑的问题,但我很好奇这是否是组合分类器的有效方式。

我有一个分类数据集,即标签列和 N 列特征,我使用分类器 (A) 生成一列预测标签。我可以转身将这些标签用作第二个分类器 (B) 的另一个特征吗?也就是说,我可以使用具有 N+1 个特征的分类器 B 进行分类,其中 +1 个特征是分类器 A 的输出吗?问题一

类似的问题在这里被问到关于神经网络,但我认为答案是针对无监督学习的。我想知道这是否是结合分类器进行监督学习的有效方法,以及为什么/为什么不。

如果它是有效的,与“事后”简单地组合分类器 A 和 B 的预测相比,这种“顺序”组合是否有任何优势/劣势?也就是说,用 A 预测标签,用 B 预测标签,然后平均或以其他方式组合预测。问题2

1个回答

是的,使用一个模型的输出作为另一个模型的输入是可能的,并且在某些方法中使用了这个概念。

如果您将模型堆叠在一起,则在应用案例中,链处的模型进行预处理/特征推导。这样做的一个优点是更多的预处理和特征推导在概念上增加了整个设置的能力(为了简单起见,我们假设它是这种方式) - 因此可以使用这样的链解决更复杂的问题。但这也会使训练更加复杂。问题通常是:如何训练这个模型链?两者同时?相继?如果受到监督 - 哪个目标变量用于不在链中最后位置的模型?nn+1

这样的想法导致了例如我们目前在深度学习中看到的:深度神经网络(deep nets)的一个核心概念是有很多层,其中每一层都是嵌入到模型中的附加特征预处理/特征推导(因此增加了模型的力量)。从概念上讲,所有层都可以一起训练——这将导致直接的、有监督的学习。但在实践中,复杂性问题通常会阻止这一点。这就是为什么一些深度网络单独学习一些层,一些以监督方式学习部分,一些以无监督方式学习,并且大多数混合这些概念。考虑例如深度相信网络卷积神经网络深度自动编码器中的学习过程和信息流。. 我的猜测是,这些可能与您提出问题时的想法非常接近。

旁注:如果您还不熟悉提升的概念,您可能还想了解它。Boosting 不会“链接”任何模型,而是利用一个模型的训练误差来影响后续模型的训练- 这在过去被证明是非常有效的。简而言之,提升:它在训练开始时为每个样本分配一个权重。模型经过训练和评估后,分类错误的样本权重增加,而分类正确的样本权重减少。随后的模型在训练中使用了这些新的权重,因此对之前分类错误的样本赋予了更多的权重。重复这个过程,这样每个模型都会受到其前身的影响,并专注于“当前难以分类”的数据部分。