plsregress – 谁能解释特征的标准化?

我在使用Matlab中的plsregress作为执行LDA之前的特征降维方法。我试图交叉验证我的方法,但在复制他们的“数据处理”阶段时遇到了一些问题。

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


回答:

我想你需要使用训练集的均值,而不是测试集的。这也适用于sigma的标准化。

使用[Z,mu,sigma] = zscore(train)。将mu和sigma应用于测试集。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注