【问题标题】:Tuning GLMNET using mlr3使用 mlr3 调整 GLMNET
【发布时间】:2020-07-03 03:45:22
【问题描述】:

MLR3 真的很酷。我正在尝试调整正则化参数

searchspace_glmnet_trafo = ParamSet$new(list(
  ParamDbl$new("regr.glmnet.lambda", log(0.01), log(10))
))
searchspace_glmnet_trafo$trafo = function(x, param_set) {
  x$regr.glmnet.lambda = (exp(x$regr.glmnet.lambda))
  x
}

但得到错误

glmnet::cv.glmnet 中的错误(x = data, y = target, family = "gaussian", : cv.glmnet 需要多个 lambda 值

下面是一个最小的非工作示例。非常感谢任何帮助。

library(mlr3verse)
data("kc_housing", package = "mlr3data")

library(anytime)
dates = anytime(kc_housing$date)
kc_housing$date = as.numeric(difftime(dates, min(dates), units = "days"))
kc_housing$zipcode = as.factor(kc_housing$zipcode)
kc_housing$renovated = as.numeric(!is.na(kc_housing$yr_renovated))
kc_housing$has_basement = as.numeric(!is.na(kc_housing$sqft_basement))

kc_housing$id = NULL
kc_housing$price = kc_housing$price / 1000
kc_housing$yr_renovated = NULL
kc_housing$sqft_basement = NULL
lrnglm=lrn("regr.glmnet")
kc_housing
tsk = TaskRegr$new("sales", kc_housing, target = "price")
fencoder = po("encode", method = "treatment",
              affect_columns = selector_type("factor"))
pipe = fencoder %>>% lrnglm

glearner = GraphLearner$new(pipe)
glearner$train(tsk)


searchspace_glmnet_trafo = ParamSet$new(list(
  ParamDbl$new("regr.glmnet.lambda", log(0.01), log(10))
))
searchspace_glmnet_trafo$trafo = function(x, param_set) {
  x$regr.glmnet.lambda = (exp(x$regr.glmnet.lambda))
  x
}
inst = TuningInstance$new(
  tsk, glearner,
  rsmp("cv"), msr("regr.mse"),
  searchspace_glmnet_trafo, term("evals", n_evals = 100)
)
gsearch = tnr("grid_search", resolution = 100)
gsearch$tune(inst)

【问题讨论】:

  • 我的回答对您有帮助还是您以不同的方式解决了您的问题?

标签: r mlr3


【解决方案1】:

lambda 需要是向量参数,而不是单个值(如消息所示)。

我建议不要调整cv.glmnet。 该算法进行内部 10 倍 CV 优化,并依赖于其自己的 lambda 序列。 有关更多信息,请参阅学习者的帮助页面。

您可以在glmnet::glmnet() 上应用自己的调整(参数调整s,而不是lambda)。但是,此算法(还)不能与 {mlr3} 一起使用。

【讨论】:

猜你喜欢
  • 2021-06-16
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 2021-01-25
  • 1970-01-01
  • 2022-02-21
  • 2019-10-25
  • 2018-05-11
相关资源
最近更新 更多