访问LightGBM模型参数

时间:2018-04-05 13:52:16

标签: r lightgbm

有时我保存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"   

1 个答案:

答案 0 :(得分:0)

我没有使用lightgbm的R绑定,但查看Booster implementation in version 2.1.1,似乎确实没有接口来检索参数。反过来,因为params不是Booster类的属性,而是传递给后端C实现。

本机python绑定(类似的Booster类)中也缺少此类功能。但是,它出现在sklearn API中。所以本机API一直缺少这个函数,但是python中的高级包装器已经添加了它。