【发布时间】:2018-04-17 11:13:11
【问题描述】:
使用mlr 时,拟合模型的参数(根据文档https://mlr-org.github.io/mlr-tutorial/release/html/train/index.html)通过getLearnerModel() 访问。然而,对于惩罚逻辑回归,这只是告诉我系数的数量,而不是它们是什么。如何获得系数值?这是我无法使用getLearnerModel() 获取值的示例。
library(mlr); library(titanic); suppressMessages(library(tidyverse))
#> Loading required package: ParamHelpers
data("titanic_train")
data <- titanic_train %>%
transmute(age = Age,
class = as.factor(Pclass),
survived = as.factor(Survived)) %>%
drop_na()
glimpse(data)
#> Observations: 714
#> Variables: 3
#> $ age <dbl> 22, 38, 26, 35, 35, 54, 2, 27, 14, 4, 58, 20, 39, 14,...
#> $ class <fct> 3, 1, 3, 1, 3, 1, 3, 3, 2, 3, 1, 3, 3, 3, 2, 3, 3, 2,...
#> $ survived <fct> 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0,...
task <- makeClassifTask(data = data, target = "survived")
learner <- makePreprocWrapperCaret("classif.penalized")
#> Loading required package: penalized
#> Loading required package: survival
#> Welcome to penalized. For extended examples, see vignette("penalized").
model <- train(learner, task)
getLearnerModel(model)
#> Model for learner.id=classif.penalized; learner.class=classif.penalized
#> Trained on: task.id = data; obs = 714; features = 2
#> Hyperparameters: trace=FALSE
由reprex package (v0.2.0) 于 2018 年 4 月 17 日创建。
【问题讨论】:
-
你试过
getLearnerModel(model)@weights吗? -
是的,当使用
makePreprocWrapperCaret()时,这似乎不起作用。 -
糟糕,我的意思是
getLearnerModel(model)$learner.model@weights。 -
getLearnerModel(model)$learner.model@weights得到的不是系数。将其与下面@Michel 的答案进行比较,存在差异。 -
只是为了探索对象
getLearnerModel(model),我在getLearnerModel(model)$learner.model@penalized中找到了系数...
标签: r coefficients mlr