我正在尝试对一组1250个功能和94个obs进行功能选择。
这个
caret
包应该执行用于特征选择的逐步LDA。
我试着跑步
tr <- train(Class~., data=data, method = "stepLDA")
,我获得了几个输出消息,如下所示:
> tr <- train(Class~., data=data, method = "stepLDA")
`stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
94 observations of 1250 variables in 2 classes; direction: both
stop criterion: improvement less than 5%.
correctness rate: 0.78556; in: "CPP1H.Alpha._RP"; variables (1): CPP1H.Alpha._RP
correctness rate: 0.84444; in: "CP5.Beta.2._RP"; variables (2): CPP1H.Alpha._RP, CP5.Beta.2._RP
correctness rate: 0.89556; in: "C5.Theta._CV"; variables (3): CPP1H.Alpha._RP, CP5.Beta.2._RP, C5.Theta._CV
hr.elapsed min.elapsed sec.elapsed
0.00 0.00 52.98
我不明白它是否只从1250个变量中选择了3个,使我的正确率为89.56%。
有没有办法获得所选功能集的列表?
我在网上找不到任何其他信息,我怀疑我的方法是否正确。
编辑
正如评论中所建议的,在此找到我在SO和谷歌上搜索类似问题的演示。
关于SO的以下问题报告了
火车
中的函数
插入符号
使用stepLDA参数,但它们都没有解释如何解释输出:
https://stats.stackexchange.com/questions/77414/step-wise-feature-selection-with-caret
,
Stepwise Linear Discriminant Analysis in R
,
StepLDA without Cross Validation
。
本文件第9页(
https://dl.acm.org/doi/pdf/10.5555/2627435.2697065
)描述stepLDA函数实际在做什么,但第63页的stepclass函数
klaR
软件包文档(
https://cran.r-project.org/web/packages/klaR/klaR.pdf
)应该是插入符号所指的函数,最后只有此页(
https://pages.mtu.edu/~shanem/psy5220/daily/Day12/classification.html#split-half-and-n-fold-cross-validation
)给出了中stepclass函数的完整示例
klaR
。
尽管如此,科学论文报道了这两种函数在特征选择中的使用(
http://hdl.handle.net/2115/73369
或
https://pub.epsilon.slu.se/30677/1/axelsson-c-r-et-al-20230414.pdf
),但没有可用的脚本。