有时我保存LightGBM模型,稍后在重新加载时,想要访问有关模型构建方式的一些细节。有没有办法恢复objective = "regression"
的事实,例如?
为方便起见,这里有简要的代码:
library(lightgbm)
data(agaricus.train, package = "lightgbm")
train <- agaricus.train
dtrain <- lgb.Dataset(train$data, label = train$label)
data(agaricus.test, package = "lightgbm")
params <- list(objective = "regression", metric = "l2")
model <- lgb.train(params,
dtrain,
100,
min_data = 1,
learning_rate = 1)
names(model)
我没有看到如何从任何模型属性中检索任何模型参数:
> names(model)
[1] ".__enclos_env__" "raw" "record_evals" "best_score"
[5] "best_iter" "save" "to_predictor" "predict"
[9] "dump_model" "save_model_to_string" "save_model" "eval_valid"
[13] "eval_train" "eval" "current_iter" "rollback_one_iter"
[17] "update" "reset_parameter" "add_valid" "set_train_data_name"
[21] "initialize" "finalize"
答案 0 :(得分:0)
我没有使用lightgbm的R绑定,但查看Booster implementation in version 2.1.1,似乎确实没有接口来检索参数。反过来,因为params
不是Booster
类的属性,而是传递给后端C实现。
本机python绑定(类似的Booster
类)中也缺少此类功能。但是,它出现在sklearn API中。所以本机API一直缺少这个函数,但是python中的高级包装器已经添加了它。