willengler-uc commited on
Commit
736c16d
1 Parent(s): bfbadb9

Upload model_predict_df.py

Browse files
Files changed (1) hide show
  1. model_predict_df.py +33 -5
model_predict_df.py CHANGED
@@ -39,8 +39,8 @@ def get_barrier(df_test):
39
 
40
  return barriers
41
 
42
- def get_asr(df_test):
43
- d = 'ASR_model/ASR_model'
44
  scaler = joblib.load(os.path.join(d, 'StandardScaler.pkl'))
45
  model = joblib.load(os.path.join(d, 'RandomForestRegressor.pkl'))
46
  df_features = pd.read_csv(os.path.join(d, 'X_train.csv'))
@@ -65,6 +65,27 @@ def get_asr(df_test):
65
 
66
  return asrs, asr_ebars
67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  def process_data(comp_list, elec_list):
69
  X = pd.DataFrame(np.empty((len(comp_list),)))
70
  y = pd.DataFrame(np.empty((len(comp_list),)))
@@ -136,15 +157,22 @@ def make_predictions(comp_list, elec_list):
136
  barriers = get_barrier(df_test)
137
 
138
  df_test['ML pred ASR barrier (eV)'] = barriers
139
- asrs, asr_ebars = get_asr(df_test)
 
 
 
 
 
140
 
141
  pred_dict = {'Compositions': comp_list,
142
  'Electrolytes': elec_list,
143
  'Cost ($/kg)': costs,
144
  'Stability @ 500C (meV/atom)': stabilities,
145
  'ASR barrier (eV)': barriers,
146
- 'log ASR at 500C (Ohm-cm2)': asrs,
147
- 'log ASR error (Ohm-cm2)': asr_ebars}
 
 
148
 
149
  return pd.DataFrame(pred_dict)
150
 
 
39
 
40
  return barriers
41
 
42
+ def get_asr_rf(df_test):
43
+ d = 'ASR_model/ASR_RF_model'
44
  scaler = joblib.load(os.path.join(d, 'StandardScaler.pkl'))
45
  model = joblib.load(os.path.join(d, 'RandomForestRegressor.pkl'))
46
  df_features = pd.read_csv(os.path.join(d, 'X_train.csv'))
 
65
 
66
  return asrs, asr_ebars
67
 
68
+ def get_asr_gpr(df_test):
69
+ d = 'ASR_model/ASR_GPR_model'
70
+ scaler = joblib.load(os.path.join(d, 'StandardScaler.pkl'))
71
+ model = joblib.load(os.path.join(d, 'GaussianProcessRegressor.pkl'))
72
+ df_features = pd.read_csv(os.path.join(d, 'X_train.csv'))
73
+
74
+ features = df_features.columns.tolist()
75
+ df_test = df_test[features]
76
+
77
+ X_ASR = scaler.transform(df_test)
78
+
79
+ asrs, errs_list = model.model.predict(X_ASR, return_std=True)
80
+
81
+ # Get ebars and recalibrate them
82
+ a = 1.18033360971506
83
+ b = -0.0660773887574826
84
+
85
+ asr_ebars = a * np.array(errs_list) + b
86
+
87
+ return asrs, asr_ebars
88
+
89
  def process_data(comp_list, elec_list):
90
  X = pd.DataFrame(np.empty((len(comp_list),)))
91
  y = pd.DataFrame(np.empty((len(comp_list),)))
 
157
  barriers = get_barrier(df_test)
158
 
159
  df_test['ML pred ASR barrier (eV)'] = barriers
160
+
161
+ # Get the ML (RF) predicted ASRs
162
+ asrs, asr_ebars = get_asr_rf(df_test)
163
+
164
+ # Get the ML (GPR) predicted ASRs
165
+ asrs_gpr, asr_ebars_gpr = get_asr_gpr(df_test)
166
 
167
  pred_dict = {'Compositions': comp_list,
168
  'Electrolytes': elec_list,
169
  'Cost ($/kg)': costs,
170
  'Stability @ 500C (meV/atom)': stabilities,
171
  'ASR barrier (eV)': barriers,
172
+ 'log ASR at 500C (Ohm-cm2) (RF)': asrs,
173
+ 'log ASR error (Ohm-cm2) (RF)': asr_ebars,
174
+ 'log ASR at 500C (Ohm-cm2) (GPR)': asrs_gpr,
175
+ 'log ASR error (Ohm-cm2) (GPR)': asr_ebars_gpr}
176
 
177
  return pd.DataFrame(pred_dict)
178