代码之家  ›  专栏  ›  技术社区  ›  Ed9012

R中的逐步线性判别分析

  •  0
  • Ed9012  · 技术社区  · 2 年前

    我正在尝试对一组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 ),但没有可用的脚本。

    0 回复  |  直到 2 年前