我需要根据时间预测输出将是什么。我想这样做,这样我就可以在前 20% 的数据上训练我的模型,然后制作一个模型,该模型将遵循行为,并预测剩余的 80%。我正在处理的数据如下所示: 我的数据
但是当我尝试进行回归来做到这一点时,我要么得到一些偏离目标的东西(或者一些非常接近的东西,但它是线性的),这是不被接受的。
我可能认为我的问题是我的内核的选择,或者我进行回归的方式。现在我正在使用 sklearn 包进行如下操作:
gpr=GaussianProcessRegressor(kernel=1.15**2*RBF(length_scale=41.4) + WhiteKernel(noise_level=1.32e-4),
n_restarts_optimizer=10,
optimizer='fmin_l_bfgs_b',
normalize_y=True,
alpha=0.051)
gpr.fit(X_train, y_train)
y_gpr, y_std = gpr.predict(X_test, return_std=True)
但是经过几次预测后,预测只是变成了相同的稳定值,而不是数据中的曲线。此外,预测的标准变化变得非常大。 基于真实数据的 GPR 预测
在 python 中进行核岭回归时,我似乎也无法让曲线跟随数据。要么在几次预测中下降到 0,要么必须是线性预测。 KRR 模型,而是线性的 - 这还不够好
KRR 模型的制作如下(我知道内核=多项式,次数为 1,但我似乎无法找出/找到一个合适的内核来跟踪我的数据):
#The kernel ridge regression
krr = KernelRidge(alpha=0.051,kernel='polynomial',degree=1)
# krr = KernelRidge(alpha=0.051,kernel=RBF(0.5))
krr.fit(X_train,y_train)
list_y_pred=krr.predict(X_test)
因此,如果可能的话,我想获得一些输入,说明应该如何完成,或者如果采用不同的方法来解决问题会更好。但我真的希望我能得到 KRR 来拟合数据,以及高斯过程回归。