scikitlearns LDA函数图中的错误显示非零相关

2024-06-26 14:55:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我用scikitlearn的LDA函数做了一些LDA,我注意到在我的结果图中,LDs之间存在非零相关。在

from sklearn.lda import LDA
sklearn_lda = LDA(n_components=2)
transf_lda = sklearn_lda.fit_transform(X, y)

这是非常令人担忧的,所以我回去用虹膜数据集作为参考。我还在scikit文档中发现了相同的非零相关LDA图,我可以复制它。在

总之,给你一个大概的印象

  • 左上角的情节:这里显然有问题
  • 左下角的图:这是在原始数据上,不是一个正确的方法,而是复制scikit结果的一次尝试
  • 右上角和右下角的图:这就是它实际的样子。在

enter image description here

我已经将代码放入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/


Tags: 函数from文档importhttpcomponentstransformsklearn
2条回答

在LDA的转换函数中确实存在一个缺陷:在实际转换之后错误地应用了分类器权重。此问题已修复here。这些更改已经合并到主分支中,因此它应该在scikitlearn的1.6版本中。在

好了,现在,发生了什么(基于discussion GitHub)是scikit-learn的LDA没有正交基。在

我想把这个作为答案,这样我就可以结束这个问题了。谢谢你的讨论!在

Scikit学习

enter image description here

from sklearn.decomposition import PCA
sklearn_pca = PCA(n_components=2)
transf_pca = sklearn_pca.fit_transform(transf_lda)

enter image description here

循序渐进的方法

为了进行比较,这里再次介绍一步一步的方法

enter image description here

相关问题 更多 >