【问题标题】:Combing different Support vector machine into one classifier using stacked ensemble method in python在python中使用堆叠集成方法将不同的支持向量机组合成一个分类器
【发布时间】:2020-09-23 19:00:11
【问题描述】:

我正在开发一个模型,用于对患者是否患有肺癌进行分类。目前分为右下、右上、左上、左下。我对每个细分都使用了 SVM,例如

model1 = SVM for right lower
model2 = SVM for right upper
model3 = SVM for left lower
model4 = SVM for left upper.

我已经应用了归一化技术并实现了模型的准确度、精确度和召回率。还在每个模型上使用 K-fold 进行评估。 作为下一步,我需要使用堆叠集成方法将所有这些模型组合成一个分类器 由于每个模型子集的数据集不同,如何组合以及如何评估最终分类器。

提前致谢

【问题讨论】:

    标签: python machine-learning svm


    【解决方案1】:

    也许,这个解决方案可以帮助你。

    您可以创建 4 个管道,以不同的方式预处理相同的数据。之后,您可以使用 Stacking 组合它们。

    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import FunctionTransformer
    from sklearn.svm import SVC
    from sklearn.linear_model import LogisticRegression
    from sklearn.ensemble import StackingClassifier
    
    
    # make 4 function for each SVM classifier
    def preprocessing1(X):
      pass
    
    # make 4 pipelines
    pipeline1 = Pipeline([
      ('prepr', FunctionTransformer(preprocessing1)),
      ('svm', SVC())
    ])
    
    clf = StackingClassifier(
      estimators=[
        ('pipe1', pipeline1),
        ('pipe2', pipeline2),
        ('pipe3', pipeline3),
        ('pipe4', pipeline4),
      ],
      final_estimator=LogisticRegression(),
    )
    

    P.S. 这只是一个例子。您也可以尝试不同的最终估算器。

    【讨论】:

    • 嗯,我有不同的样本要为每个模型进行测试,并且最终的估计器都要结合起来。每个样本有大约 40 个特征,并且在每个样本上都进行了特征标准化。如果所有这些都组合起来,可能会遇到重复的可能性。这种情况如何处理?
    • 或者我可以这样说,我想将所有模型预测组合到一个主模型中。在这种情况下,它将是所有预测的平均值
    • 如果要计算平均值,则无需为此创建新模型
    • @KrishnaHebbur 引自What should I do when someone answers my question?:“请不要对您的问题或回答说“谢谢”添加评论。 如果您想说“谢谢”,请投票或接受该人的回答(强调原文)
    猜你喜欢
    • 2013-02-17
    • 2014-04-21
    • 2019-04-26
    • 2016-08-03
    • 2011-07-01
    • 2019-02-05
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    相关资源
    最近更新 更多