Конкретная ошибка, о которой вы упомянули, связана с вашим y_train
, который может быть опечаткой.Это должно быть:
y_train_: в виде массива, shape = (n_samples, [n_output_dims])
Согласно вашему x_train
, у вас есть 3 образца.Таким образом, ваша y_train
должна иметь форму (3, 1)
, а не (1, 3)
.
У вас также есть другие ошибки в части построения:
add_subplot
должна иметь позицию передprojection = '3d'
. Z
должен иметь ту же форму, что и X
и Y
для контурного графика. - Из-за 2 ваши
x
и y
должны совпадатьxvalues
и yvalues
.
В совокупности вам может потребоваться внести следующие изменения:
...
y_train = np.array([200,321,417])
...
ax = fig.add_subplot(111, projection = '3d')
x=y=np.arange(0,4,1)
...
Z = y_pred_test.reshape(X.shape)
...
Просто упомянуть две вещи:
График, который вы получите после этих изменений, не будет соответствовать показанной вами цифре.Фигура в вашем вопросе - это поверхностный график, а не контурный график.Вы можете использовать ax.plot_surface
, чтобы получить этот тип графика.
Я думаю, вы уже знаете это.Но на всякий случай, ваш график не будет таким же гладким, как ваш примерный график, так как ваш np.meshgrid
редкий.