将在python中训练的xgboost模型加载到scala

时间:2017-09-06 13:49:20

标签: python scala scikit-learn xgboost

我使用sklearn api训练了一个模型并保存了模型

from xgboost.sklearn import XGBClassifier
model = XGBClassifier()
model.fit(X_train, y_train)
with open(path + '.pkl', 'wb') as file:
    cPickle.dump(model, file)

有没有办法用scala API加载它?

如果我使用python API(而不是sklearn API)训练它并使用以下命令保存它:

model.save_model("trained_model.model")

然后我可以使用scala加载它:

import ml.dmlc.xgboost4j.scala.XGBoost
val model = XGBoost.loadModel("trained_model.model")

在scala中加载pkl格式模型有类似的方法吗?

或者可以将sklearned-api-xgboost模型转换为python-api模型?并且可以使用上面的代码加载python-api-model之后。

任何见解?

1 个答案:

答案 0 :(得分:3)

对于那些提出这个问题的人来说,解决方案是:

使用sklearn API训练模型时,可以保存为:

model._Booster.save_model("trained_model.model")

save_model用于python API。

稍后可以在问题中描述的scala API中加载此模型:

val model = XGBoost.loadModel("trained_model.model")