提取多项式cv.glmnet

时间:2016-04-28 17:13:31

标签: r glmnet multinomial

如何提取与多项模型构建的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值吗?如果是这样,是否有理由(除了稀疏性)选择一个而不是另一个?

谢谢!

1 个答案:

答案 0 :(得分:3)

好吧,我认为我的问题是忘记了多项式回归的工作原理。多项回归的预测公式是

enter image description here

因此,每个班级都需要一套系数。