如果我跑步
from sklearn.datasets import load_breast_cancer
import lightgbm as lgb
breast_cancer = load_breast_cancer()
data = breast_cancer.data
target = breast_cancer.target
params = {
"task": "convert_model",
"convert_model_language": "cpp",
"convert_model": "test.cpp",
}
gbm = lgb.train(params, lgb.Dataset(data, target))
然后我期望将创建一个名为test.cpp
的文件,并以c ++格式保存该模型。
但是,我的当前目录中什么也没有。
我已经阅读了文档(https://lightgbm.readthedocs.io/en/latest/Parameters.html#io-parameters),但是看不出我在做什么错。
答案 0 :(得分:2)
在文档中,他们说:
注意:只能在CLI版本中使用
convert_model 和 convert_model_language 参数下。
这意味着您可能应该使用LGBM的CLI(命令行界面)而不是python包装器来完成此操作。
Link到快速入门CLI版本。
答案 1 :(得分:2)
这是一个真正的“傻瓜”答案:
安装lightgbm的CLI版本:https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html
记下您的安装路径,并找到可执行文件。例如,对我来说,这是~/LightGBM/lightgbm
。
在Jupyter笔记本中运行以下命令:
from sklearn.datasets import load_breast_cancer
import pandas as pd
breast_cancer = load_breast_cancer()
data = pd.DataFrame(breast_cancer.data)
target = pd.DataFrame(breast_cancer.target)
pd.concat([target, data], axis=1).to_csv("regression.train", header=False, index=False)
train_conf = """
task = train
objective = binary
metric = auc
data = regression.train
output_model = trained_model.txt
"""
with open("train.conf", "w") as f:
f.write(train_conf)
conf_convert = """
task = convert_model
input_model= trained_model.txt
"""
with open("convert.conf", "w") as f:
f.write(conf_convert)
! ~/LightGBM/lightgbm config=train.conf
! ~/LightGBM/lightgbm config=convert.conf
您的模型将保存在当前目录中。