gpt4 book ai didi

r - 使用 mlr3 调整 GLMNET

转载 作者:行者123 更新时间:2023-12-05 06:19:33 25 4
gpt4 key购买 nike

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
}

但是报错

Error in glmnet::cv.glmnet(x = data, y = target, family = "gaussian", :Need more than one value of lambda for cv.glmnet

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

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)

最佳答案

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

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

您可以在 glmnet::glmnet() 上应用您自己的调整(调整参数 s,而不是 lambda)。但是,此算法(尚未)可用于 {mlr3}。

关于r - 使用 mlr3 调整 GLMNET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60800689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com