我正在尝试使用 penalizedLDA 包来运行惩罚线性判别分析,以选择“最有意义”的变量。我在此处和其他网站上搜索了有关访问惩罚模型输出的帮助,但无济于事。
我的数据包括 400 个变量和 44 个组。到目前为止我使用的代码和结果:
yy.m<-as.matrix(yy) #Factors/groups
xx.m<-as.matrix(xx) #Variables
cv.out<-PenalizedLDA.cv(xx.m,yy.m,type="standard")
## aplly the penalty
out <- PenalizedLDA(xx.m,yy.m,lambda=cv.out$bestlambda,K=cv.out$bestK)
也从分析中获得输出的结构:
> str(out)
List of 10
$ discrim: num [1:401, 1:4] -0.0234 -0.0219 -0.0189 -0.0143 -0.0102 ...
$ xproj : num [1:100, 1:4] -8.31 -14.68 -11.07 -13.46 -26.2 ...
$ K : int 4
$ crits :List of 4
..$ : num [1:4] 2827 2827 2827 2827
..$ : num [1:4] 914 914 914 914
..$ : num [1:4] 162 162 162 162
..$ : num [1:4] 48.6 48.6 48.6 48.6
$ type : chr "standard"
$ lambda : num 0
$ lambda2: NULL
$ wcsd.x : Named num [1:401] 0.0379 0.0335 0.0292 0.0261 0.0217 ...
..- attr(*, "names")= chr [1:401] "R400" "R405" "R410" "R415" ...
$ x : num [1:100, 1:401] 0.147 0.144 0.145 0.141 0.129 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : NULL
.. ..$ : chr [1:401] "R400" "R405" "R410" "R415" ...
$ y : num [1:100, 1] 2 2 2 2 2 1 1 1 1 1 ...
- attr(*, "class")= chr "penlda"
我有兴趣获得用于特征选择的前 20 个变量的列表或矩阵,这很可能基于线性判别系数。我意识到我必须按降序对系数进行排序,并获得与之匹配的变量名称。所以我期望的输出类似于这个虚构的例子
V1 V2
R400 0.34
R1535 0.22...
任何人都可以提供任何指针(不一定是 R 代码)。提前致谢。