2017-09-30 43 views
2

我做一个分类,我对使用LDA只是降维这个问题后降维:LDA之前或分区

难道LDA的是对整个特征矩阵应用,包括训练和测试数据,然后(在减少数据维数之后)做特征矩阵的划分以提供训练和测试集以进行分类?这是真的吗?

然后,假设我们需要在应用LDA之前划分数据。 如何使用Matlab的内部分类器(如kNN和SVM)对测试数据进行分类?

回答

2

您应该在列车上生成LDA,然后将其应用于测试集。

原因是你不想检查你的整个处理链如何执行看不见的数据。如果您在列车/测试中生成LDA模型,则可能会导致其他不太重要的信息可能消失。

实际上,如果您确定维度的数量,您应该进行火车/测试/验证拆分。你在哪里确定列车/测试的最佳维数。然后在列车上建立LDA +模型并进行合并和验证评估。

+0

谢谢@CAFEBABE。我使用Matlab内部SVM和KNN;那么,如何将数据分解为火车和测试数据,然后在火车数据上使用LDA找到投影矩阵,然后将该矩阵应用于测试数据?我的意思是我如何使用Matlab内部分类器来做这个方法?你能帮忙吗? – steve

+0

嗨,对不起,我不熟悉Matlab。但是,这应该对您有所帮助“在使用fitcdiscr训练ClassificationDiscriminant模型对象后,使用函数predict和训练好的模型对象来生成预测新数据标签的C代码,有关详细信息,请参阅代码生成。所以基本上在火车上做一个fitcdiscr。评估使用预测https://de.mathworks.com/help/stats/fitcdiscr.html?requestedDomain=www.mathworks.com#outputarg_Mdl – CAFEBABE