Питон: Как создать кривую прогнозирования для последовательной модели Keras, которая соответствует точкам на 3D-диаграмме рассеяния?

#python #matplotlib #keras

Вопрос:

Я пытаюсь построить 3D-диаграмму рассеяния с помощью кривой прогнозирования модели, но не могу заставить кривую наложиться на точки. столбцы x и z-это столбцы функций, а y-данные ответа. Ниже приведен код для моей модели:

 model =keras.models.Sequential([  keras.layers.Dense(300, activation="relu"),  keras.layers.Dense(200, activation="relu"),  keras.layers.Dense(100, activation="relu"),  keras.layers.Dense(1) ]) #build layers model.compile(loss='mse', optimizer="adam",  metrics=['mean_squared_error']) #compile model history = model.fit(X_train, y_train, epochs=30, validation_split=0.2) #fit model  

Вот код, который я использую, чтобы попытаться построить прогнозы:

 # Import 3D Axes  from mpl_toolkits.mplot3d import axes3d # Set up Figure and 3D Axes  fig = plt.figure() ax = fig.add_subplot(111, projection='3d')  #create a range of evenly spaced numbers ranging from the minimum x value to maximum x value fit_x= np.linspace(train_df.x.min(), train_df.x.max(), 1000)  fit_z= np.linspace(train_df.z.min(), train_df.z.max(), 1000)  X_new = pd.DataFrame({'fit_x':fit_x, 'fit_z':fit_z})  #use the model to predict y fit_y = model.predict(X_new)  #reshape fit_y to match fit_x fit_y = fit_y.reshape(fit_x.shape)  ax.plot(fit_x,fit_z,fit_y) ax.scatter(train_df.x, train_df.z, train_df.y) ax.view_init(0,90)  plt.show()  

Я попытался изменить функции fit_x и fit_z на функции cos и sin в np.linspace, но это, похоже, не помогает. Я застрял на этом два дня и не знаю, как заставить это работать. Любой совет приветствуется!

это результирующий сюжет