【问题标题】:What is the best way to combine sklearn classifiers that are trained separately?结合单独训练的 sklearn 分类器的最佳方法是什么?
【发布时间】:2021-09-10 01:27:21
【问题描述】:

这是场景: 我想结合使用不同数据训练的三个 scikit learn 分类器(例如:3 个 SVM 分类器),但最终模型(实际预测实例的模型)需要是一个集成/堆叠或一个简单考虑的模型三个辅助分类器。

让分类器为 SVM1、SVM2 和 SVM3 以及训练 TS1、TS2 和 TS3 的可用子集。 SVM1 将配备 TS1; SVM2 将配备 TS2; 并且 SVM3 将配备 TS3。

将预测新实例的最终模型需要是 SVM1、SVM2 和 SVM3 的集合。 我不想用相同的数据来拟合所有 3 种辅助方法。我想将整个训练数据分成子集(TS1、TS2、TS3),并用不同的子集拟合每个辅助分类器。

有什么想法吗?

【问题讨论】:

    标签: scikit-learn text-classification ensemble-learning


    【解决方案1】:

    如果您有 1 个数据集和 3 个 SVM 模型,您可以使用来自 Scikit-LearnVoting Regressor,它将在相同数据上训练 3 个不同的 SVM 模型,并通过取其预测的平均值来组合它们。但是你想在 3 个不同的数据集上训练 3 个SVM 模型,你必须自己投票。像这样:

    model1 = SVR()
    model2 = SVR()
    model3= SVR()
    
    model1.fit(TS1_x, TS1_y)
    model2.fit(TS2_x, TS2_y)
    model3.fit(TS3_x, TS3_y)
    
    pred1 = model1.predict(test)
    pred2 = model2.predict(test)
    pred3 = model3.predict(test)
    
    finalpred = (pred1 + pred2 + pred3) / 3
    

    【讨论】:

      猜你喜欢
      • 2021-05-26
      • 2018-11-30
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      • 2021-08-19
      相关资源
      最近更新 更多