Как увидеть, какие коэффициенты не равны 0 в cv.glmnet - PullRequest
0 голосов
/ 02 июля 2018

Я сделал регрессию лассо, используя пакет glm.net. Я выбрал свою лямбду с помощью перекрестной проверки и теперь у меня есть информация, что оптимальная модель имеет только 6 коэффициентов, которые не равны нулю.

Как узнать, какие именно это коэффициенты?

1 Ответ

0 голосов
/ 02 июля 2018

Поскольку вы не предоставляете никаких примеров данных, вот минимальный пример:

  1. Сгенерировать пример данных

    set.seed(2017);
    x1 <- seq(1:100);
    x2 <- 2 * x1;
    y <- 3 * x1 + 6 * x2 + rnorm(100);
    
  2. Подгоните модель, используя CV

    fit <- cv.glmnet(cbind(x1, x2), y);
    
  3. Тогда coef(fit) дает оценки параметров для различных значений лямбды. Мы можем извлечь оценки параметров для значения lambda, которое приводит к наименьшей CV-ошибке с

    coef(fit, s = "lambda.min")
    #3 x 1 sparse Matrix of class "dgCMatrix"
    #                       1
    #(Intercept) 2.439590e+01
    #x1          1.451704e+01
    #x2          5.723395e-16
    
...