使用以下数据(X= test data, y= target data, x= test data)
,我想在Scikit-Learn回归中执行GPR预测:
X= np.array([[43.3301, -196.211, 1157.89, 2.71431, -191.664, 1159.45,
-28.9847, -191.544, 1158.88, 5.99311, -218.226, 1229.12],
[43.3212, -196.12, 1157.79, 2.7885, -191.587, 1159.45,
-29.0067, -191.53, 1158.88, 5.94141, -218.028, 1229.11],
[43.2683, -195.597, 1157.93, 2.73207, -191.123, 1159.45,
-29.0409, -191.025, 1158.98, 5.90694, -217.163, 1229.18],
[43.2876, -194.996, 1158.02, 2.73876, -190.575, 1159.49,
-29.1242, -190.445, 1159.04, 5.70859, -216.194, 1229.23],
[43.3158, -194.447, 1158.05, 2.72303, -190.022, 1159.47,
-29.1352, -189.92, 1159.07, 5.70269, -215.175, 1229.24 ]]) <class 'numpy.ndarray'> (5, 12)
y= np.array([[ 9.14779, -186.67, 1294.53 ],
[ 9.12453, -186.559, 1294.33 ],
[ 8.50554, -186.254, 1293.22 ],
[ 7.94586, -185.972, 1291.67 ],
[ 7.32336, -185.646, 1290.63 ]]) <class 'numpy.ndarray'> (5, 3)
x= np.array ([[90.23126221, 245.30821228, 675.83514404,
63.30067444, 256.12649536, 752.84460449,
28.84734154, -236.44929504, 642.7713623 ,
7.27009201, -244.59780884, 708.88665771]]) <class 'numpy.ndarray'> (1, 3)
kernel = ConstantKernel(1.0, (1e-3, 1e3)) * RBF(10.0, (1e-2, 1e2)) + WhiteKernel(0.1, (1e-10, 0.5))
gpr = GaussianProcessRegressor(kernel= kernel, n_restarts_optimizer=0, normalize_y= True)
gpr.fit(X, y)
y_Pred, sigma = gpr.predict(x, return_std= True)
print('\ny_Pred: ', y_Pred, type(y_Pred), y_Pred.shape)
rms = sqrt(mean_squared_error(y[0], y_Pred.T))
print('\nrms: ', rms)
我的问题是:如果我彻底改变test data (x)
的值,则预测结果y_Pred 1x3 array
不会改变。
这可能是什么问题?
谢谢您的任何建议。
编辑: 我还尝试了不同的内核:
kernel1 = ConstantKernel(1.0, (1e-3, 1e3)) * RBF(10.0, (1e-2, 1e2)) + WhiteKernel(0.1, (1e-10, 0.5))
kernel2 = 1.0 * RBF(length_scale= 1.0, length_scale_bounds= (1e-1, 10.0))
kernel3 = 1.0 * RBF(length_scale= 100.0, length_scale_bounds= (1e-2, 1e3)) + WhiteKernel(noise_level= 1, noise_level_bounds= (1e-10, 1e+1))
kernel4 = 1.0 * RationalQuadratic(length_scale= 1.0, alpha= 0.1)
kernel5 = 1.0 * ConstantKernel(constant_value= 1.0, constant_value_bounds= (1e-3, 1e3)) * RBF(length_scale= 10, length_scale_bounds= (1e-2, 1e2))
kernel6 = 1.0 * ExpSineSquared(length_scale= 1.0, periodicity=3.0, periodicity_bounds= (1e-2, 1e1)) + WhiteKernel(noise_level= 1, noise_level_bounds= (1e-10, 1e+1))
kernel7 = Matern(length_scale= 1.0, length_scale_bounds= (1e-1, 10.0), nu= 1.5)
答案 0 :(得分:1)
问题可能来自训练数据集X
:方差很小,所有交易都非常相似,并且与您要预测的x
相距甚远...