线性判别分析变换函数

时间:2017-08-29 18:53:35

标签: python machine-learning scikit-learn lda dimensionality-reduction

x = data.values
y = target.values
lda = LDA(solver='eigen', shrinkage='auto',n_components=2)
df_lda = lda.fit(x,y).transform(x)
df_lda.shape

这是代码的一小部分。我试图将维度降低到最具辨别力的方向。据我所知,transform()函数投影数据以最大化我的数据集的类别分离,并应返回一个形状(n_samples, n_components)的数组

但我的df_lda形状(614,1)。

我在这里缺少什么?或者我的数据不能线性分离?

1 个答案:

答案 0 :(得分:2)

对于Ktarget.values个不同类的情况,转换数据中有K-1个组件(没有进一步降低维度)。由于数据集中只有两个类,因此只有一个转换组件,因此您无法获得更多组件。

我认为,当您请求的数量多于可用时,sklearn可能会发出警告。