gpt4 book ai didi

python - 将用 python 训练的 XGBoost 模型移植到另一个用 C/C++ 编写的系统

转载 作者:行者123 更新时间:2023-12-03 18:14:04 30 4
gpt4 key购买 nike

假设我已经在 python 中成功训练了一个 XGBoost 机器学习模型。

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=7)
model = XGBClassifier()
model.fit(x_train, y_train)
y_pred = model.predict(x_test)

我想将此模型移植到另一个将用 C/C++ 编写的系统。要做到这一点,我需要知道 XGboost 训练模型的内部逻辑,如果我没猜错的话,将它们翻译成一系列 if-then-else 语句,如决策树。

如何才能做到这一点?如何找出 XGBoost 训练模型的内部逻辑以在另一个系统上实现它?

我正在使用 python 3.7。

最佳答案

m2cgen是一个很棒的包,可以将 Scikit-Learn 兼容模型转换为原始代码。如果您正在使用 XGBoosts sklearn 包装器(它看起来像您),那么您可以简单地调用如下内容:

model = XGBClassifier()
model.fit(x_train, y_train)
...
import m2cgen as m2c

with open('./model.c','w') as f:
code = m2c.export_to_c(model)
f.write(code)

这个包真正棒的是,它支持许多不同类型的模型,例如
  • 线性
  • 支持向量机
  • 随机森林
  • 提升

  • 还有一件事。 m2cgen 还支持多种语言,例如
  • C
  • C#
  • 飞镖
  • Haskell
  • Java
  • JavaScript
  • PHP
  • PowerShell
  • python
  • 电话
  • Visual Basic

  • 我希望这有帮助!

    关于python - 将用 python 训练的 XGBoost 模型移植到另一个用 C/C++ 编写的系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58143075/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com