大数据集的 LDA 替代品

Alternatives to LDA for big datasets

我正在分析 R 中基因表达的大型数据集,其中包含 100 个样本和 50.000 个基因。

我已经对样本间模式进行了一些非常有用的 PCA 预测。现在我想对数据进行一些预测,以最大化样本标签之间的差异。

通常我会使用 MASS 包中的 lda() 函数来执行此操作。但是,这太慢并且占用大量内存。

如果目标是生成样本投影以最大化已知标签之间的差异,那么 lda() 有哪些好的替代方法?

谢谢!

您可以 运行 您的 LDA 模型基于数据集的样本。

我们在问题评论中的讨论总结

线性判别分析不适用于特征多于观测值的数据集,因此您需要某种形式的正则化。如果您想进行分类但主要对预测模式感兴趣,而不是预测本身,则可以使用偏最小二乘判别分析 (PLSDA)。

但是,在您的情况下,PLSDA 的组成部分可能难以解释,因为它们每个基因包含一个系数,但相信所有 50000 个基因都与您正在研究的表型相关似乎是不现实的。我更喜欢的另一种方法是使用 nearest shrunken centroids or elastic net 生成稀疏模型(即它们只保留最好的基因并丢弃那些不太重要的基因)。