首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用一个模型的预测概率来训练另一个模型,并保存为一个单一模型。

使用一个模型的预测概率来训练另一个模型,并保存为一个单一模型。
EN

Stack Overflow用户
提问于 2018-10-16 14:14:53
回答 1查看 657关注 0票数 1

我有一个用于二进制分类的XGBoost模型。它利用了一些特性,即f1, f2, f3, f4, f5, f6, f7

我想利用来自LogisticRegression的另一个sklearn模型,它利用模型的输出和XGBoost模型的一个特性来进行预测,即必须用f1, out来进行预测。其中outXGBoost模型所做的预测。

我想将这两个模型保存到一个文件中,一些如何在生产中进行预测。

我怎么能这么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-17 11:46:09

要实现这一点,您需要将FeatureUnion管道结合起来。

就像这样:

代码语言:javascript
复制
final_classifier = Pipeline([
    ('features', FeatureUnion([
        ('f1', FeatureSelector()),
        ('out', XGBoostClassifierTransformer()),
     ])
    ),
    ('clf', LogisticRegression()),
])

在这里,FeatureSelector()XGBoostClassifierTransformer()是您可以自己轻松制作的自定义包装器。您需要使用要发送到管道的下一部分的输出来实现fit()transform()方法。

FeatureUnion将对其内部的每个部分调用transform(),然后组合输出。管道将接受这个输出,然后发送到下一部分( LogisticRegression )。

这个看起来会像这样。

代码语言:javascript
复制
X --> final_classifier, Pipeline
            |
            |  <== X is passed to FeatureUnion
            \/
      features, FeatureUnion
                      |
                      |  <== X is duplicated and passed to both parts
        ______________|__________________
       |                                 |
       |                                 |                         
       \/                               \/
   f1, FeatureSelector                out, XGBoostClassifierTransformer
           |                                          |   
           |<= Only f1 is selected from X             | <= All features are used in XGBoost
           |                                          |
           \/________________________________________\/
                                      |
                                      |
                                     \/
                                   clf, LogisticRegression
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52837559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档