如何在三维等值线图中绘制回归预测数据?

时间:2018-05-10 11:23:46

标签: python matplotlib scikit-learn mplot3d

我试图将高斯过程回归的预测平均数据绘制成三维轮廓。我遵循了Plot 3D Contour from an Image using extent with Matplotlib mplot3d example code: contour3d_demo3.py个帖子。以下是我的代码:

import numpy as np
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
from matplotlib import cm

x_train = np.array([[0,0],[2,2],[3,3]])
y_train = np.array([[200,321,417]])

xvalues = np.array([0,1,2,3])
yvalues = np.array([0,1,2,3])

a,b = np.meshgrid(xvalues,yvalues)
positions = np.vstack([a.ravel(), b.ravel()])
x_test = (np.array(positions)).T

kernel = C(1.0, (1e-3, 1e3)) * RBF(10)

gp = GaussianProcessRegressor(kernel=kernel)

gp.fit(x_train, y_train)

y_pred_test = gp.predict(x_test)

fig = plt.figure()
ax = fig.add_subplot(projection = '3d')
x=y=np.arange(0,3,1)
X, Y = np.meshgrid(x,y)
Z = y_pred_test
cset = ax.contour(X, Y, Z, cmap=cm.coolwarm)
ax.clabel(cset, fontsize=9, inline=1)
plt.show()

运行上面的代码后,我在控制台上收到以下错误:

enter image description here

我希望x和y轴为二维平面,z轴为预测值。sample plot如下:

enter image description here

我的代码出了什么问题?

谢谢!

0 个答案:

没有答案