R-如何通过model.matrix为Glmnet(Lasso)创建虚拟变量



我有数据集:

      SalesPrice SqFeet Beds Baths AirCond Garage Pool Year Quality Style  Lot     Highway
  1:      360.0  3.032    4     4       1      2    0 1972       2     1 22.221       0
  2:      340.0  2.058    4     2       1      2    0 1976       2     1 22.912       0
  3:      250.0  1.780    4     3       1      2    0 1980       2     1 21.345       0
  4:      205.5  1.638    4     2       1      2    0 1963       2     1 17.342       0
  5:      275.5  2.196    4     3       1      2    0 1968       2     7 21.786       0

我想创建一个模型:

model.lm2 <- glmnet(x = xvars,y = df[,SalesPrice],alpha = 1,family = 'gaussian',lambda = CV$lambda.1se)

但是,就我而言,我具有因子变量"样式",如果我不将其更改为虚拟变量,则glmnet函数将与数字变量一样使用。

那么,如何通过model.matrix?

创建为glmnet(lasso(创建虚拟变量

您可以使用我的glmnetutils软件包,这将为您提供所有这些。它还不在克兰(Cran(上,但应该很快就会出现。同时,使用DevTools从GitHub存储库中安装它。

devtools::install.github("hong-revo/glmnetUtils")
library(glmnetUtils)
model.lm2 <- glmnet(SalesPrice ~ ., data=df)

最新更新