【发布时间】:2018-02-07 08:12:40
【问题描述】:
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)。
我在这里缺少什么?或者我的数据不是线性可分的?
【问题讨论】:
-
Whats
x.shape(可能还有类型)? -
x.shape = (614, 6)和x.dtype = ('float64') -
target.values中有多少个类(不同的值)? -
没错。对于两个类,LDA 变换中只有一个组件。
-
这取决于您要达到的目标。按照 LDA 的说法,你已经有了最具辨别力的方向。还有其他一些选择(取决于您要实现的目标)。想到的一种技术是Decision Boundary Feature Extraction。
标签: python machine-learning scikit-learn lda dimensionality-reduction