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