plt.show() # plot the mode of responsibilities plt.scatter(modes[:, 0], modes[:, 1], c=variables_train.iloc[:, y_number]) plt.colorbar() plt.ylim(-1.1, 1.1) plt.xlim(-1.1, 1.1) plt.xlabel('z1 (mode)') plt.ylabel('z2 (mode)') plt.show() # GTMR prediction # Forward analysis (Regression) mean_of_estimated_mean_of_y, mode_of_estimated_mean_of_y, responsibilities_y, py = \ model.predict(autoscaled_variables_test.iloc[:, numbers_of_x], numbers_of_x, numbers_of_y) # Inverse analysis mean_of_estimated_mean_of_x, mode_of_estimated_mean_of_x, responsibilities_y, py = \ model.predict(autoscaled_variables_test.iloc[:, numbers_of_y], numbers_of_y, numbers_of_x) # Check results of forward analysis (regression) print('Results of forward analysis (regression)') predicted_y_test_all = mode_of_estimated_mean_of_y.copy() plt.rcParams['font.size'] = 18 for index, y_number in enumerate(numbers_of_y): predicted_y_test = np.ndarray.flatten(predicted_y_test_all[:, index]) predicted_y_test = predicted_y_test * variables_train.iloc[:, y_number].std( ddof=1) + variables_train.iloc[:, y_number].mean() # yy-plot plt.figure(figsize=figure.figaspect(1))
plt.xlim(-1.1, 1.1) plt.xlabel('z1 (mean)') plt.ylabel('z2 (mean)') plt.show() # plot the mode of responsibilities plt.scatter(modes[:, 0], modes[:, 1], c=variables[:, y_number]) plt.colorbar() plt.ylim(-1.1, 1.1) plt.xlim(-1.1, 1.1) plt.xlabel('z1 (mode)') plt.ylabel('z2 (mode)') plt.show() # GTMR prediction for inverse analysis mean_of_estimated_mean_of_x, mode_of_estimated_mean_of_x, responsibilities_y, py = \ model.predict(autoscaled_target_y_value, numbers_of_y, numbers_of_x) # Check results of inverse analysis print('Results of inverse analysis') mean_of_estimated_mean_of_x = mean_of_estimated_mean_of_x * x.std( axis=0, ddof=1) + x.mean(axis=0) mode_of_estimated_mean_of_x = mode_of_estimated_mean_of_x * x.std( axis=0, ddof=1) + x.mean(axis=0) # print('estimated x-mean: {0}'.format(mean_of_estimated_mean_of_x)) print('estimated x-mode: {0}'.format(mode_of_estimated_mean_of_x)) estimated_x_mean_on_map = responsibilities_y.dot(model.map_grids) estimated_x_mode_on_map = model.map_grids[np.argmax(responsibilities_y), :] # print('estimated x-mean on map: {0}'.format(estimated_x_mean_on_map)) print('estimated x-mode on map: {0}'.format(estimated_x_mode_on_map))