【问题标题】:EnsembleVoteClassifier with neural network带神经网络的 EnsembleVoteClassifier
【发布时间】:2019-10-08 19:47:42
【问题描述】:

我有一个训练有素的神经网络,我试图在其中使用来自mlxtend.classifier 的EnsembleVoteClassifier 对它们的预测进行平均。问题是我的神经网络不共享相同的输入,(我随机执行特征缩减和特征选择算法并将结果存储在新的不同变量上,所以我有类似X_test_algo1、X_test_algo2 和X_test_algo3 和Y_test)。

我正在尝试平均权重,但正如我所说,我没有相同的 X,而且我没有在文档中提供任何示例。如何平均我的三个模型的预测 model1、model2 和 model3

eclf = EnsembleVoteClassifier(clfs=[model1, model2, model3], weights=[1,1,1], refit=False)
names = ['NN1', 'NN2', 'NN2', 'Ensemble']

eclf.fit(X_train_algo1, Ytrain) #????

如果不可能,那也没关系。我只对如何计算 Hard Voting、Hard Voting 和 Weighted Voting 的公式感兴趣,或者是否有更灵活的其他库或公式的显式表达式也会有所帮助。

【问题讨论】:

    标签: python neural-network pytorch ensemble-learning voting-system


    【解决方案1】:

    你为什么需要一个库来做到这一点?

    只需通过所有神经网络传递相同的示例并获得预测(logits 或概率或标签)。

    • 硬投票选择分类器最常预测的标签。

    • 软投票,分类器预测的平均概率,选择最高的标签。

    • 加权投票 - 以上任何一种都可以加权。只需为每个分类器分配权重并将它们的预测乘以它们。权重通常归一化为(0, 1] 范围。

    原则上你也可以对logits求和,然后选择最高的标签。

    哦,权重平均是不同的技术,需要您拥有相同的模型,并且通常是针对相同的初始化但在不同的训练时间步长完成的。您可以在this blog post 中了解它。

    【讨论】:

      猜你喜欢
      • 2017-07-28
      • 2023-03-24
      • 2017-02-19
      • 2018-11-01
      • 2016-09-02
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多