r - 有没有办法更改 mlr3 中的默认公式?
问题描述
我正在研究{mlr3}
包,我想比较 2 个模型:
Y ~ .
Y ~ .^2
我没有在文档中找到在任务创建中指定公式的方法。默认值为~ .
. 我可以找到一种 hacky 方式model.matrix
并使用这些新列设置另一个任务,但我可能会遗漏一些东西。
解决方案
您可能正在寻找mlr3pipelinesPipeOpModelMatrix
的功能。
例如
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
推荐阅读
- c# - ASP.NET Core 中的 log4net 不会在更改时重新加载
- go - Viper AddConfigPath 仅在当前文件夹“。”中查找文件。
- imagemagick - 如何使用 imagemagick 将相同的图像附加到多个图像
- python - 如何在 Django Rest Framework 中发布引用
- flutter - 在颤动中动态调整 CachedNetworkImage 图像的大小
- java - 如何不绘制背景图像的某个部分?
- python - KeyError:运行 drop_duplicates 时的 Float64Index
- c# - WebView2 源属性不启动 CoreWebView2
- node.js - Node/Expressjs:如果用户电子邮件已经存在,则停止发布用户图像
- python-3.x - Python Selenium 包,特定语言的选择