Сохранить модель LGBM в формате `.cpp` из Python - PullRequest
0 голосов
/ 05 июня 2019

Если я бегу

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),, но не могу сказать, что я делаю неправильно.

Ответы [ 2 ]

2 голосов
/ 07 июня 2019

Вот реальный ответ 'для чайников':

  1. Установите CLI-версию lightgbm: https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html

  2. Запишите путь установки,и найдите исполняемый файл.Например, для меня это было ~/LightGBM/lightgbm.

  3. Запустите следующее в блокноте 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

Ваша модель будет сохранена в вашем текущем каталоге.

2 голосов
/ 06 июня 2019

В документе говорят:

Примечание: может использоваться только в версии CLI

в параметрах convert_model и convert_model_language .

Это означает, что для этого вам, вероятно, следует использовать CLI (Interfarce командной строки) LGBM вместо оболочки Python.

Ссылка на версию CLI Quick Start.

...