plsregress - 任何人都可以解释功能的规范化吗?

时间:2016-01-15 13:22:42

标签: matlab machine-learning cross-validation

在执行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生成的模型应用于另一个数据集?

1 个答案:

答案 0 :(得分:1)

我认为您需要使用训练集中的均值,而不是测试集。 这也适用于西格玛的正常化。

使用[Z,mu,sigma] = zscore(火车)。应用mu和sigma进行测试。