# standardize x and y autoscaled_variables_train = (variables_train - variables_train.mean(axis=0) ) / variables_train.std(axis=0, ddof=1) autoscaled_variables_test = (variables_test - variables_train.mean(axis=0) ) / variables_train.std(axis=0, ddof=1) # optimize hyperparameter in GTMR with CV model = GTM() model.gtmr_cv_opt(autoscaled_variables_train, numbers_of_y, candidates_of_shape_of_map, candidates_of_shape_of_rbf_centers, candidates_of_variance_of_rbfs, candidates_of_lambda_in_em_algorithm, fold_number, number_of_iterations) model.display_flag = display_flag print('optimized shape of map :', model.shape_of_map) print('optimized shape of RBF centers :', model.shape_of_rbf_centers) print('optimized variance of RBFs :', model.variance_of_rbfs) print('optimized lambda in EM algorithm :', model.lambda_in_em_algorithm) # construct GTMR model model.fit(autoscaled_variables_train) if model.success_flag: # calculate of responsibilities responsibilities = model.responsibility(autoscaled_variables_train) means = responsibilities.dot(model.map_grids) modes = model.map_grids[responsibilities.argmax(axis=1), :] plt.rcParams['font.size'] = 18 for y_number in numbers_of_y: