def start(self): # multi_step_regression multi_target_forest = MultiOutputRegressor(self.model) train_ft_mat = self.dataset.ft_mat[self.dataset.train_index] train_label_mat = self.dataset.label_mat[self.dataset.train_index] valid_ft_mat = self.dataset.ft_mat[self.dataset.valid_index] valid_label_mat = self.dataset.label_mat[self.dataset.valid_index] test_ft_mat = self.dataset.ft_mat[self.dataset.test_index] test_label_mat = self.dataset.label_mat[self.dataset.test_index] multi_target_forest.fit(train_ft_mat, train_label_mat) train_pred = multi_target_forest.predict(train_ft_mat) valid_pred = multi_target_forest.predict(valid_ft_mat) test_pred = multi_target_forest.predict(test_ft_mat) print('train: ', evaluate_regression(train_pred, train_label_mat)) print('valid: ', evaluate_regression(valid_pred, valid_label_mat)) print('test: ', evaluate_regression(test_pred, test_label_mat)) # return test mse mape mse, mae, mape = evaluate_regression(test_pred, test_label_mat) return mse, mae, mape
def start(self): train_ft_mat = self.dataset.ft_mat[self.dataset.train_index] train_label_mat = self.dataset.label_mat[self.dataset.train_index] valid_ft_mat = self.dataset.ft_mat[self.dataset.valid_index] valid_label_mat = self.dataset.label_mat[self.dataset.valid_index] test_ft_mat = self.dataset.ft_mat[self.dataset.test_index] test_label_mat = self.dataset.label_mat[self.dataset.test_index] # model = xgb.train(self.params, xgb.DMatrix(train_ft_mat, train_label_mat)) multi_target_model = MultiOutputRegressor( xgb.XGBRegressor(objective='reg:linear')) multi_target_model.fit(train_ft_mat, train_label_mat) train_pred = multi_target_model.predict(train_ft_mat) valid_pred = multi_target_model.predict(valid_ft_mat) test_pred = multi_target_model.predict(test_ft_mat) print('train: ', evaluate_regression(train_pred, train_label_mat)) print('valid: ', evaluate_regression(valid_pred, valid_label_mat)) print('test: ', evaluate_regression(test_pred, test_label_mat)) # return test mse mape mse, mae, mape = evaluate_regression(test_pred, test_label_mat) return mse, mae, mape
def test(self): self.model.eval() pred, adj = self.model(self.dataset.ft_mat, self.adj) label = self.dataset.label_mat.to('cpu').detach().numpy() pred = pred.to('cpu').detach().numpy() train_mse, train_mae, train_mape = evaluate_regression( pred[self.dataset.train_index], label[self.dataset.train_index]) valid_mse, valid_mae, valid_mape = evaluate_regression( pred[self.dataset.valid_index], label[self.dataset.valid_index]) test_mse, test_mae, test_mape = evaluate_regression( pred[self.dataset.test_index], label[self.dataset.test_index]) return train_mse, valid_mse, test_mse, train_mae, valid_mae, test_mae, \ train_mape, valid_mape, test_mape, pred
def test(self): self.model.eval() ft_mat = self.dataset.ft_mat ft_mat = ft_mat.view(self.dataset.node_size, -1, 1) pred = self.model(ft_mat).to('cpu').detach().numpy() label = self.dataset.label_mat.to('cpu').detach().numpy() train_mse, train_mae, train_mape = evaluate_regression( pred[self.dataset.train_index], label[self.dataset.train_index]) valid_mse, valid_mae, valid_mape = evaluate_regression( pred[self.dataset.valid_index], label[self.dataset.valid_index]) test_mse, test_mae, test_mape = evaluate_regression( pred[self.dataset.test_index], label[self.dataset.test_index]) return train_mse, valid_mse, test_mse, train_mae, valid_mae, test_mae, \ train_mape, valid_mape, test_mape, pred