我对用于数据的监督分类方法感到麻烦。
让我们考虑使用LDA降维方法将维数从100减少到2后,使用数据(N = 70)训练算法。
现在,我们想预测第71个样本的类别,我们完全不知道其类别。但是,它仍然具有100个功能。因此我们必须减小其尺寸。
乍看之下似乎很容易:我可以使用第一个约简的变换特性。例如,在python中:
clf.fit(X,Y)
lda = LinearDiscriminantAnalysis(n_components=2)
flda = lda.fit(X, Y)
X_lda = flda.transform(X)
我已经存储了训练数据的拟合属性。 X_p是我的单个示例。因此,当我再次使用'flda'进行转换时,会使用相同的拟合信息:
X_p = flda.transform(X_p.reshape(1, -1))
但是,它不能正确预测!为了测试,我使用了我的第一个N = 70数据。提取其中之一(因此现在为N = 69)。我使用第70个数据作为测试样本。而且它没有再次正确预测。
当我比较以前的数据(N = 70)和新的数据(N = 69)时,我发现每个数字都改变了!如果我没有丢失任何东西(希望我丢失了,你可以告诉我丢失了什么),那么LDA降维不适用于真正的机器学习应用程序,因为只有一个数据可以改变一切。
请注意,尽管所有数字都发生了显着变化(这意味着点的相对位置不会发生变化),但缩减数据的图并没有发生变化。
您知道在实际的机器学习应用程序中如何使用LDA降维吗?我必须怎么做才能按以下顺序测试一个样本:
不使用相同的转换特性?