我目前正在尝试将高斯过程模型与我的数据相匹配,并让它预测未来的几天。我已经减少了我的10个功能,减少到只有2个组成部分通过PCA在雪橇。现在我有了PCA1和PCA2。这是通过对训练集进行PCA (40%)来实现的。
pca = PCA(n_components=2)
pca.fit(train_data)
PCAs = pca.transform(train_data)
PCA1 = PCAs[:,0]
PCA2 = PCAs[:,1]其中train_data是具有大约10个特性和50行的数据格式,并应用了StandardScaler()。
kernel = RBF()
model = gaussian_process.GaussianProcessRegressor(kernel=kernel, normalize_y=True, n_restarts_optimizer=10)
model.fit(x_days_train, PCA1)
y_pred, y_std = model.predict(x_days, return_std=True)
model.score(x_days_train, PCA1)其中x_days为满50天,x_days_train为20天(0,1,2.)。我得了1分。然而,我的预测结果看起来很糟糕(如下所示)。就像在训练数据之后,它就会掉下来,然后停滞。

不完全确定出了什么问题,但有几个猜测:
fit_transform)?会很感激你的帮助,谢谢。
发布于 2021-06-23 19:33:09
因为我的数据没有目标变量,所以我在dataframe中的所有特性上都使用了PCA,它们应该是x变量吗?然后我用它们作为y变量(通过预测)。也许这是个不正确的方法?
你是对的。PCA旨在将高维数据转换为小得多的维度。基本上,数据被压缩,但仍然包含与数据中的每个元素相关的相同信息。Sci学习变换函数不接受y变量.相反,使用fit_transform()函数,它接受两个变量,将正确的方法应用于x变量,并忽略y。
在此之后,PCA甚至可以用作y_prediction吗?
PCA仅对数据进行变换,高斯过程回归(GPR)进行预测。
我是否应该将PCA应用于不仅训练数据,而且也应用于测试数据(应用fit_transform)?
是。
我似乎只使用PCA1,而不使用PCA2 (也不是两者的结合)。我应该两者都用吗?如果是这样的话,是怎么做的?
使用fit_transform()方法后,如下所示:
pca_x, pca_y = pca.fit_transform(train_data)应用这样的数据:
kernel = RBF()
model = gaussian_process.GaussianProcessRegressor(kernel=kernel, normalize_y=True, n_restarts_optimizer=10)
model.fit(pca_x, pca_y)https://stackoverflow.com/questions/67931477
复制相似问题