import itertools import os from joblib import dump, load import pandas as pd model_dict = { "adb_char" : "model/char_ADB.joblib", "dtr_char": "model/char_DTR.joblib", "en_char":"model/char_ElasticNet.joblib", "gp_char":"model/char_GaussianProcessRegressor.joblib", "kn_char":"model/char_KNeighborsRegressor.joblib", "lasso_char":"model/char_Lasso.joblib", "lr_char":"model/char_LinearRegression.joblib", "rfr_char":"model/char_RFR.joblib", "ridge_char":"model/char_Ridge.joblib", "svr_char":"model/char_SVR.joblib", "xgb_char":"model/char_XGB.joblib", "adb_gas" : "model/gas_ADB.joblib", "dtr_gas": "model/gas_DTR.joblib", "en_gas":"model/gas_ElasticNet.joblib", "gp_gas":"model/gas_GaussianProcessRegressor.joblib", "kn_gas":"model/gas_KNeighborsRegressor.joblib", "lasso_gas":"model/gas_Lasso.joblib", "lr_gas":"model/gas_LinearRegression.joblib", "rfr_gas":"model/gas_RFR.joblib", "ridge_gas":"model/gas_Ridge.joblib", "svr_gas":"model/gas_SVR.joblib", "xgb_gas":"model/gas_XGB.joblib", "adb_water" : "model/water_ADB.joblib", "dtr_water": "model/water_DTR.joblib", "en_water":"model/water_ElasticNet.joblib", "gp_water":"model/water_GaussianProcessRegressor.joblib", "kn_water":"model/water_KNeighborsRegressor.joblib", "lasso_water":"model/water_Lasso.joblib", "lr_water":"model/water_LinearRegression.joblib", "rfr_water":"model/water_RFR.joblib", "ridge_water":"model/water_Ridge.joblib", "svr_water":"model/water_SVR.joblib", "xgb_water":"model/water_XGB.joblib", "adb_tar" : "model/tar_ADB.joblib", "dtr_tar": "model/tar_DTR.joblib", "en_tar":"model/tar_ElasticNet.joblib", "gp_tar":"model/tar_GaussianProcessRegressor.joblib", "kn_tar":"model/tar_KNeighborsRegressor.joblib", "lasso_tar":"model/tar_Lasso.joblib", "lr_tar":"model/tar_LinearRegression.joblib", "rfr_tar":"model/tar_RFR.joblib", "ridge_tar":"model/tar_Ridge.joblib", "svr_tar":"model/tar_SVR.joblib", "xgb_tar":"model/tar_XGB.joblib" } model_list_gas = ['xgb_gas','lr_gas','ridge_gas','gp_gas','en_gas','kn_gas','svr_gas','dtr_gas','rfr_gas','adb_gas'] model_list_char = ['xgb_char','lr_char','ridge_char','gp_char','en_char','kn_char','svr_char','dtr_char','rfr_char','adb_char'] model_list_water = ['xgb_water','lr_water','ridge_water','gp_water','en_water','kn_water','svr_water','dtr_water','rfr_water','adb_water'] model_list_tar = ['xgb_tar','lr_tar','ridge_tar','gp_tar','en_tar','kn_tar','svr_tar','dtr_tar','rfr_tar','adb_tar'] gas_mae = [1.93, 3.15, 3.15,1.51, 3.15, 2.15, 2.98, 2.4, 2.42, 3.0] gas_r2 = [0.78, 0.68, 0.68,0.89,0.68, 0.75, 0.65, 0.74, 0.69, 0.62] char_mae = [5.38, 7.0, 7.03, 2.91, 7.03, 3.94,13.5,12.55, 4.8,6.39] char_r2 = [0.09, 0.01, 0.01, 0.8, 0.01, 0.7, 0.1,0.13, 0.16, 0.16] water_mae = [1.74,4.33,4.35,1.47,0.83,4.18,2.51,1.38,1.42] water_r2 = [0.87,0.47,0.46,0.89,0.45,0.98,0.23,0.67,0.89,0.95] tar_mae = [0.93,2.09,2.09,1.31,2.09,1.28,1.51,1.24,0.96,1.49] tar_r2 = [0.78,0.32,0.33,0.6,0.33,0.55,0.57,0.48,0.74,0.6] test_content = { 'A': 11.92, 'V' : 51.16, 'FC': 48.84, 'C': 83.22 , 'H': 3.89, 'N': 2.72, 'S': 0.45, 'O':20.21, 'H/C':0.56, 'O/C':0.18, 'N/C':0.03, 'Rt':40.00, 'Hr':5.00, 'dp':0.20, 'T':510.00 } result_content = { 'Tar':11.71, 'Gas':10.81 , 'Char':75.31, 'Water':2.17 } test_content = pd.DataFrame([test_content]) current_script_directory = os.path.dirname(os.path.abspath(__file__)) print(current_script_directory) def choose_model(name,data): model_path = os.path.join(current_script_directory,model_dict[name]) model = load(model_path) pred = model.predict(data) return pred def get_excel(): current_script_directory = os.path.dirname(os.path.abspath(__file__)) data_path = os.path.join(current_script_directory,'data/gas_data_test.csv') test_data = pd.read_csv(data_path) test_data = test_data.drop('Gas', axis=1) print(test_data.shape) pred = choose_model('xgb_gas',test_data) test_data['Gas'] = pred print(test_data) def pred_single_tar(test_content): tar_pred = [] for name in model_list_tar: model_path = os.path.join(current_script_directory,model_dict[name]) tar_model = load(model_path) pred = tar_model.predict(test_content) tar_pred.append(pred[0]) return tar_pred def pred_single_gas(test_content): gas_pred = [] for name in model_list_gas: model_path = os.path.join(current_script_directory,model_dict[name]) gas_model = load(model_path) pred = gas_model.predict(test_content) gas_pred.append(pred[0]) return gas_pred def pred_single_water(test_content): water_pred = [] for name in model_list_water: model_path = os.path.join(current_script_directory,model_dict[name]) water_model = load(model_path) pred = water_model.predict(test_content) water_pred.append(pred[0]) return water_pred if __name__ == "__main__": tar_result = pred_single_tar(test_content) result = [tar_mae, tar_r2,tar_result] print(result) print(pred_single_water(test_content)) get_excel()