我正在尝试从JSON文件指针加载LightGBM.Booster,但无法在线找到示例。
import json ,lightgbm
import numpy as np
X_train = np.arange(0, 200).reshape((100, 2))
y_train = np.tile([0, 1], 50)
tr_dataset = lightgbm.Dataset(X_train, label=y_train)
booster = lightgbm.train({}, train_set=tr_dataset)
model_json = booster.dump_model()
with open('model.json', 'w+') as f:
json.dump(model_json, f, indent=4)
with open('model.json') as f2:
model_json = json.load(f2)
如何从f2
或model_json
创建lightGBM增强器?此snippet仅显示转储为JSON。 model_from_string可能会有所帮助,但似乎需要booster的实例,在加载之前我没有这个实例。
答案 0 :(得分:2)
没有直接从json创建Booster
的方法。在源代码或文档中没有这样的方法,也没有github问题。
因此,我只是通过
从文本文件加载模型gbm.save_model('model.txt') # gbm is trained Booster instance
# ...
bst = lgb.Booster(model_file='model.txt')
或使用pickle
转储和加载模型:
import pickle
pickle.dump(gbm, open('model.pkl', 'wb'))
# ...
gbm = pickle.load(open('model.pkl', 'rb'))
不幸的是,泡菜文件不可读(或者至少不是那么清晰)。但这总比没有好。