【发布时间】:2016-04-21 02:31:18
【问题描述】:
在执行 LDA 之前,我在 matlab 中使用 plsregress 作为特征缩减方法。我正在尝试交叉验证我的方法,但是在复制他们的“数据处理”阶段时遇到了一些麻烦。
plsregress 使用 SIMPLS 算法,首先将 X 和 Y 居中,减去列均值,得到居中的变量 X0 和 Y0。但是,它不会重新调整列。要使用标准化变量执行 PLS,请使用 zscore 对 X 和 Y 进行归一化。
为了尝试在我的“测试”集上复制它,我做了以下操作:
test = test - repmat(mean(test), DIM(1), 1);
test = Xloadings\test';
test = test';
由于某种原因,这不太奏效,当应用于训练集时,我没有达到相同的 Xscores。
有没有人能解释我是否遗漏了一个步骤,或者我做错了什么?
编辑:换句话说,我如何将 PLS 生成的模型应用到另一个数据集?
【问题讨论】:
标签: matlab machine-learning cross-validation