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)。
我在这里缺少什么?或者我的数据不能线性分离?
答案 0 :(得分:2)
对于K
中target.values
个不同类的情况,转换数据中有K-1
个组件(没有进一步降低维度)。由于数据集中只有两个类,因此只有一个转换组件,因此您无法获得更多组件。
我认为,当您请求的数量多于可用时,sklearn可能会发出警告。