我使用scikit-learn的LDA函数做了一些LDA,我在结果图中注意到LD之间存在非零相关性。
from sklearn.lda import LDA
sklearn_lda = LDA(n_components=2)
transf_lda = sklearn_lda.fit_transform(X, y)
这非常令人担忧,所以我回去使用Iris数据集作为参考。我还在scikit文档中找到了相同的非零相关LDA图,我可以重现它。
无论如何,要概述一下它的外观
我已将代码放入an IPython notebook,如果您想看一下并亲自尝试。
与左上角的(错误)结果一致的scikit文档:http://scikit-learn.org/stable/auto_examples/decomposition/plot_pca_vs_lda.html
R中的LDA,显示在右下角:http://tgmstat.wordpress.com/2014/01/15/computing-and-visualizing-lda-in-r/
答案 0 :(得分:0)
好的,现在,正在发生的事情(基于discussion GitHub)是scikit-learn中的LDA没有标准正交基础。
我想发布这个作为答案,以便我现在关闭这个问题。感谢您的讨论!
from sklearn.decomposition import PCA
sklearn_pca = PCA(n_components=2)
transf_pca = sklearn_pca.fit_transform(transf_lda)
为了进行比较,这里再次采用逐步的方法
答案 1 :(得分:0)
LDA的变换函数确实存在一个错误:在实际变换后错误地应用了分类器权重。这已得到修复here。这些更改已合并到主分支中,因此它应该是scikit-learn的1.6版本。