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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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