當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


R broom tidy.glmnet 整理 a(n) glmnet 對象

Tidy 總結了有關模型組件的信息。模型組件可能是回歸中的單個項、單個假設、聚類或類。 tidy 所認為的模型組件的確切含義因模型而異,但通常是不言而喻的。如果模型具有多種不同類型的組件,您將需要指定要返回哪些組件。

用法

# S3 method for glmnet
tidy(x, return_zeros = FALSE, ...)

參數

x

glmnet::glmnet() 返回的 glmnet 對象。

return_zeros

邏輯指示結果中是否應包含值為 0 0 的係數。默認為 FALSE

...

附加參數。不曾用過。僅需要匹配通用簽名。注意:拚寫錯誤的參數將被吸收到 ... 中,並被忽略。如果拚寫錯誤的參數有默認值,則將使用默認值。例如,如果您傳遞 conf.lvel = 0.9 ,所有計算將使用 conf.level = 0.95 進行。這裏有兩個異常:

  • tidy() 方法在提供 exponentiate 參數時會發出警告(如果該參數將被忽略)。

  • augment() 方法在提供 newdata 參數時會發出警告(如果該參數將被忽略)。

細節

請注意,雖然這種 GLM 表示比默認結構更容易繪製和組合,但它也更memory-intensive。請勿用於大型稀疏矩陣。

盡管模型產生了預測,但尚未提供 augment 方法,因為輸入數據不整齊(它是一個可能非常寬的矩陣),因此將預測與它相結合是不合邏輯的。此外,預測隻有在選擇特定的 lambda 時才有意義。

也可以看看

tidy() , glmnet::glmnet()

其他 glmnet 整理器:glance.cv.glmnet()glance.glmnet()tidy.cv.glmnet()

帶有列的 tibble::tibble()

dev.ratio

每個 lambda 值處解釋的零偏差分數。

estimate

回歸項的估計值。

lambda

懲罰參數 lambda 的值。

step

使用了 lambda 選擇的哪一步。

term

回歸項的名稱。

例子


# load libraries for models and data
library(glmnet)

set.seed(2014)
x <- matrix(rnorm(100 * 20), 100, 20)
y <- rnorm(100)
fit1 <- glmnet(x, y)

# summarize model fit with tidiers + visualization
tidy(fit1)
#> # A tibble: 1,086 × 5
#>    term         step estimate lambda dev.ratio
#>    <chr>       <dbl>    <dbl>  <dbl>     <dbl>
#>  1 (Intercept)     1   -0.207 0.152    0      
#>  2 (Intercept)     2   -0.208 0.139    0.00464
#>  3 (Intercept)     3   -0.209 0.127    0.0111 
#>  4 (Intercept)     4   -0.210 0.115    0.0165 
#>  5 (Intercept)     5   -0.210 0.105    0.0240 
#>  6 (Intercept)     6   -0.210 0.0957   0.0321 
#>  7 (Intercept)     7   -0.210 0.0872   0.0412 
#>  8 (Intercept)     8   -0.210 0.0795   0.0497 
#>  9 (Intercept)     9   -0.209 0.0724   0.0593 
#> 10 (Intercept)    10   -0.208 0.0660   0.0682 
#> # ℹ 1,076 more rows
glance(fit1)
#> # A tibble: 1 × 3
#>   nulldev npasses  nobs
#>     <dbl>   <int> <int>
#> 1    104.     255   100

library(dplyr)
library(ggplot2)

tidied <- tidy(fit1) %>% filter(term != "(Intercept)")

ggplot(tidied, aes(step, estimate, group = term)) +
  geom_line()


ggplot(tidied, aes(lambda, estimate, group = term)) +
  geom_line() +
  scale_x_log10()


ggplot(tidied, aes(lambda, dev.ratio)) +
  geom_line()


# works for other types of regressions as well, such as logistic
g2 <- sample(1:2, 100, replace = TRUE)
fit2 <- glmnet(x, g2, family = "binomial")
tidy(fit2)
#> # A tibble: 947 × 5
#>    term         step estimate lambda dev.ratio
#>    <chr>       <dbl>    <dbl>  <dbl>     <dbl>
#>  1 (Intercept)     1    0.282 0.0906 -1.62e-15
#>  2 (Intercept)     2    0.281 0.0826  6.28e- 3
#>  3 (Intercept)     3    0.279 0.0753  1.55e- 2
#>  4 (Intercept)     4    0.277 0.0686  2.48e- 2
#>  5 (Intercept)     5    0.284 0.0625  4.17e- 2
#>  6 (Intercept)     6    0.293 0.0569  5.79e- 2
#>  7 (Intercept)     7    0.303 0.0519  7.39e- 2
#>  8 (Intercept)     8    0.314 0.0473  8.94e- 2
#>  9 (Intercept)     9    0.325 0.0431  1.03e- 1
#> 10 (Intercept)    10    0.336 0.0392  1.14e- 1
#> # ℹ 937 more rows

相關用法


注:本文由純淨天空篩選整理自大神的英文原創作品 Tidy a(n) glmnet object。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。