【发布时间】:2016-08-23 14:37:33
【问题描述】:
如何提取与基于多项式模型的cv.glmnet 对象的特定lambda 对应的系数?当我尝试使用可能用于二项式模型的语法时,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 值?如果是这样,是否有理由(除了稀疏性)选择一个而不是另一个?
谢谢!
【问题讨论】:
标签: r glmnet multinomial