python - 使用一个模型的预测概率来训练另一个模型并保存为一个模型
问题描述
我有一个XGBoost
用于某些二进制分类目的的模型。它利用了一些功能,即f1, f2, f3, f4, f5, f6, f7
我想利用另一个LogisticRegression
模型,sklearn
该模型利用模型的输出和模型的特征XGBoost
来进行预测,即必须f1, out
进行预测。out
模型的预测在哪里XGBoost
。
我想将这两个模型保存到一个文件中,以了解如何在生产中进行预测。
我怎样才能做到这一点。?
解决方案
您需要结合使用FeatureUnion和Pipeline来实现这一点。
像这样的东西:
final_classifier = Pipeline([
('features', FeatureUnion([
('f1', FeatureSelector()),
('out', XGBoostClassifierTransformer()),
])
),
('clf', LogisticRegression()),
])
在这里,FeatureSelector()
您XGBoostClassifierTransformer()
可以轻松地自己制作自定义包装器。您需要使用要发送到管道下一部分的输出来实现fit()
和方法。transform()
FeatureUnion 将调用transform()
其内部的每个部分,然后组合输出。管道将获取此输出,然后发送到下一部分,即 LogisticRegression。
这看起来像这样。
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
推荐阅读
- flutter - 响应式填充颤动
- npm - “npm install -g newman”命令不适用于在 Windows 中安装 newman
- shopify - 如何将 3PL 沙盒与 Shopify 沙盒连接
- mongodb - 如何在 mongodb 中使用 $lookup 和 $regex 搜索
- jmeter - 如何在 jmeter 中处理转义字符(反斜杠)
- php - 如何从我的服务器打印到客户端 Web 浏览器?ESCPOS-PHP
- android - 无法使用 editor.clear().commit() 清除我的 sharedPreferences;
- jquery - Mysql 表记录未使用更新查询更新
- java - 如何从 Jmeter 中的 json 文件准备多行
- sql-server - 计算距离 - 性能增强