Извлечение коэффициентов многочлена cv.glmnet

Как вы извлекаете коэффициенты, соответствующие конкретному lambda объекта cv.glmnet, построенного на полиномиальной модели? Когда я пытаюсь сделать это, используя синтаксис, который можно использовать для биномиальной модели, функция coef возвращает список разреженных матриц коэффициентов, а не конкретную разреженную матрицу.

Пример:

tempcv <- cv.glmnet(x=as.matrix(iris[,-5]), y=iris[,5], family="multinomial", 
                    nfolds=20, alpha=0.5)
coefsMin <- coef(tempcv, s="lambda.min")

Когда я запустил это, я получил:

> coefsMin[[3]]
5 x 1 sparse Matrix of class "dgCMatrix"
                  1
(Intercept)  -19.091925
Sepal.Length   .       
Sepal.Width   -3.755938
Petal.Length   4.355219
Petal.Width    8.909600

> coefsMin[[2]]
5 x 1 sparse Matrix of class "dgCMatrix"
                 1
(Intercept)   4.616488
Sepal.Length  1.649614
Sepal.Width   .       
Petal.Length -1.088160
Petal.Width  -1.884997

> coefsMin[[1]]
5 x 1 sparse Matrix of class "dgCMatrix"
                 1
(Intercept)  14.475437
Sepal.Length -1.843070
Sepal.Width   5.312490
Petal.Length -2.698684
Petal.Width  -5.708280

Таким образом, записи списка coefsMin могут иметь разные уровни коэффициентов и разные степени разреженности. Все ли наборы коэффициентов как-то соответствуют одному и тому же значению lambda? Если да, то есть ли причина (кроме разреженности) предпочесть одно другому?

Спасибо!


person ostrichgroomer    schedule 28.04.2016    source источник


Ответы (1)


Хорошо, я думаю, моя проблема заключалась в том, что я забыл, как работает полиномиальная регрессия. Формула прогноза для полиномиальной регрессии:

введите здесь описание изображения

Итак, вам нужен набор коэффициентов для каждого класса.

person ostrichgroomer    schedule 28.04.2016