#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, но это, похоже, не помогает. Я застрял на этом два дня и не знаю, как заставить это работать. Любой совет приветствуется!