163 lines
5.3 KiB
Python
163 lines
5.3 KiB
Python
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() |