Я загрузил пакет lightgbm на RStudio и попытался запустить с ним модель. Скрипт основан на Retip.
Функция такая:
> fit.lightgbm function (training, testing) { train <- as.matrix(training) test <- as.matrix(testing) coltrain <- ncol(train) coltest <- ncol(test) dtrain <- lightgbm::lgb.Dataset(train[, 2:coltrain], label = train[, 1]) lightgbm::lgb.Dataset.construct(dtrain) dtest <- lightgbm::lgb.Dataset.create.valid(dtrain, test[,2:coltest], label = test[, 1]) valids <- list(test = dtest) params <- list(objective = «regression», metric = «rmse») modelcv <- lightgbm::lgb.cv(params, dtrain, nrounds = 5000, nfold = 10, valids, verbose = 1, early_stopping_rounds = 1000, record = TRUE, eval_freq = 1L, stratified = TRUE, max_depth = 4, max_leaf = 20, max_bin = 50) best.iter <- modelcv$best_iter params <- list(objective = «regression_l2», metric = «rmse») model <- lightgbm::lgb.train(params, dtrain, nrounds = best.iter, valids, verbose = 0, early_stopping_rounds = 1000, record = TRUE, eval_freq = 1L, max_depth = 4, max_leaf = 20, max_bin = 50) print(paste0(«End training»)) return(model) }
Однако когда я пытаюсь запустить функцию, как в Retip
lightgbm <- fit.lightgbm(training,testing)
Это фатальная ошибка:
Error in data$update_params(params = params) : [LightGBM] [Fatal] Cannot change max_bin after constructed Dataset handle.
Только при изменении max_bin на max_bin = 255 ошибки нет.
Перебрал документацию:
Как правильно настроить гиперпараметры для классификации LightGBM? # 1339
[Python] странное поведение max_bin # 1053
Есть идеи предложения, что делать?
Источник: