Ошибка лассо в glmnet для тебя [train]

У меня проблема с посылкой glmnet в R. Я пытаюсь использовать его, но у меня возникает следующая проблема: {

 > names(mtcars)

#lasso
## 75% of the sample size


 > smp_size <- floor(0.75 * nrow(mtcars))

## set the seed to make your partition reproductible
> set.seed(123)

> train_ind <- sample(seq_len(nrow(mtcars)), size = smp_size)

> train <- mtcars[train_ind, ]

> names(train)

> y<-train["hp"]

> c(y)

> yvector<-c(y)

> is.vector(yvector)

> grid=10^seq(10,-2,length=24)

> lasso.mod=glmnet(train,yvector, alpha=1, lambda=grid)

Ошибка в glmnet(train, yvector, alpha = 1, lambda = grid): количество наблюдений в y (1) не равно количеству строк в x (24)

> lasso.mod=glmnet(train,y, alpha=1, lambda=grid)

Ошибка в weighted.mean.default(y, weights): "x" и "w" должны иметь одинаковую длину

> lasso.mod=glmnet(train,train, alpha=1, lambda=grid)

Ошибка в weighted.mean.default(y, weights): "x" и "w" должны иметь одинаковую длину}

Каждый раз, когда я изменяю последнюю строку (программа glmnet) на y (ввод матрицы или вектора одинаковой длины), она повторяет последние три ошибки!!! Что я должен делать?

1 ответ

В этой строке

y <- train["hp"]

Результатом является фрейм данных, содержащий одну переменную (hp). Что вы хотите, чтобы извлечь эту переменную в вектор:

y <- train[["hp"]]
# or
y <- train$hp

Вы также можете использовать мой пакет glmnetUtils для управления механикой настройки вектора ответов и матрицы моделей.

devtools::install_github("hong-revo/glmnetUtils")
library(glmnetUtils)
lasso.mod <- glmnet(hp ~ ., data=train, alpha=1, lambda=grid)
Другие вопросы по тегам