【发布时间】:2020-01-28 06:48:10
【问题描述】:
假设我已经成功地在 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。
【问题讨论】:
-
另一种思考这个问题的方式是:“我怎样才能以两种语言都能理解的格式序列化/反序列化模型?”酸洗可能是答案。这个答案有几个潜在的选择:stackoverflow.com/questions/1296162/…
-
这做了类似的事情,但还没有提供 C++ 输出:github.com/modusdatascience/sklearn2code。只需稍加工作即可添加 C++。
标签: python machine-learning xgboost