大数据集的 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 生成稀疏模型(即它们只保留最好的基因并丢弃那些不太重要的基因)。
我正在分析 R 中基因表达的大型数据集,其中包含 100 个样本和 50.000 个基因。
我已经对样本间模式进行了一些非常有用的 PCA 预测。现在我想对数据进行一些预测,以最大化样本标签之间的差异。
通常我会使用 MASS
包中的 lda()
函数来执行此操作。但是,这太慢并且占用大量内存。
如果目标是生成样本投影以最大化已知标签之间的差异,那么 lda()
有哪些好的替代方法?
谢谢!
您可以 运行 您的 LDA 模型基于数据集的样本。
我们在问题评论中的讨论总结
线性判别分析不适用于特征多于观测值的数据集,因此您需要某种形式的正则化。如果您想进行分类但主要对预测模式感兴趣,而不是预测本身,则可以使用偏最小二乘判别分析 (PLSDA)。
但是,在您的情况下,PLSDA 的组成部分可能难以解释,因为它们每个基因包含一个系数,但相信所有 50000 个基因都与您正在研究的表型相关似乎是不现实的。我更喜欢的另一种方法是使用 nearest shrunken centroids or elastic net 生成稀疏模型(即它们只保留最好的基因并丢弃那些不太重要的基因)。