有没有办法更改 mlr3 中的默认公式?
Is there a way to change default formula in mlr3?
我正在研究 {mlr3}
包,我想比较 2 个模型:
Y ~ .
Y ~ .^2
我没有在文档中找到在任务创建中指定公式的方法。默认值为 ~ .
。
我可以用 model.matrix
找到一个 hacky 方法并用这些新列设置另一个任务,但我可能会遗漏一些东西。
您可能正在寻找 PipeOpModelMatrix
function from mlr3pipelines。
例如
task <- as_task_regr(iris[1:4], target = "Sepal.Length")
lrn <- lrn("regr.lm")
pop <- po("modelmatrix", formula = ~ . ^ 2)
pop %>>%
lrn -> gr
GraphLearner$new(gr) -> gr
gr$train(task)
gr$model$modelmatrix$outtasklayout
#output
id type
1: (Intercept) numeric
2: Petal.Length numeric
3: Petal.Length:Petal.Width numeric
4: Petal.Length:Sepal.Width numeric
5: Petal.Width numeric
6: Petal.Width:Sepal.Width numeric
7: Sepal.Width numeric
gr$model$regr.lm$model
#output
Call:
stats::lm(formula = task$formula(), data = task$data())
Coefficients:
(Intercept) `(Intercept)` Petal.Length Petal.Width Sepal.Width
1.39837 NA 1.15756 -1.66219 0.84812
`Petal.Length:Petal.Width` `Petal.Length:Sepal.Width` `Petal.Width:Sepal.Width`
0.06695 -0.16772 0.27626
我正在研究 {mlr3}
包,我想比较 2 个模型:
Y ~ .
Y ~ .^2
我没有在文档中找到在任务创建中指定公式的方法。默认值为 ~ .
。
我可以用 model.matrix
找到一个 hacky 方法并用这些新列设置另一个任务,但我可能会遗漏一些东西。
您可能正在寻找 PipeOpModelMatrix
function from mlr3pipelines。
例如
task <- as_task_regr(iris[1:4], target = "Sepal.Length")
lrn <- lrn("regr.lm")
pop <- po("modelmatrix", formula = ~ . ^ 2)
pop %>>%
lrn -> gr
GraphLearner$new(gr) -> gr
gr$train(task)
gr$model$modelmatrix$outtasklayout
#output
id type
1: (Intercept) numeric
2: Petal.Length numeric
3: Petal.Length:Petal.Width numeric
4: Petal.Length:Sepal.Width numeric
5: Petal.Width numeric
6: Petal.Width:Sepal.Width numeric
7: Sepal.Width numeric
gr$model$regr.lm$model
#output
Call:
stats::lm(formula = task$formula(), data = task$data())
Coefficients:
(Intercept) `(Intercept)` Petal.Length Petal.Width Sepal.Width
1.39837 NA 1.15756 -1.66219 0.84812
`Petal.Length:Petal.Width` `Petal.Length:Sepal.Width` `Petal.Width:Sepal.Width`
0.06695 -0.16772 0.27626