82 lines
No EOL
2.2 KiB
Python
82 lines
No EOL
2.2 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Created on Thu Mar 10 18:06:34 2022
|
|
|
|
@author: tanu
|
|
"""
|
|
|
|
#%%
|
|
models = [
|
|
('Logistic Regression' , log_reg)
|
|
, ('K-Nearest Neighbors', knn)
|
|
]
|
|
|
|
classification_metrics = {
|
|
'F1_score': []
|
|
,'MCC': []
|
|
,'Precision': []
|
|
,'Recall': []
|
|
,'Accuracy': []
|
|
,'ROC_curve': []
|
|
}
|
|
|
|
folds=[1,2]
|
|
fold_no=1
|
|
fold_dict={}
|
|
for model_name, model in models:
|
|
fold_dict.update({model_name: {}})
|
|
|
|
for f in folds:
|
|
fold=("fold_"+str(fold_no))
|
|
for model_name, model in models:
|
|
print("start of model", model_name, "fold: ", fold)
|
|
fold_dict[model_name].update({fold: {}})
|
|
fold_dict[model_name][fold].update(classification_metrics)
|
|
|
|
print("end of model", model_name, "fold: ", fold)
|
|
fold_dict[model_name][fold].update({'F1_score': random.randrange(1,10)})
|
|
fold_no +=1
|
|
pp.pprint(fold_dict)
|
|
|
|
|
|
#%%
|
|
folds_f1=[]
|
|
|
|
for model_name, model in models:
|
|
print("Calculating mean for F1_score for: ", model_name)
|
|
#for key in fold_dict['Logistic Regression']:
|
|
# wrap this in a classification_metric for loop
|
|
for key in fold_dict[model_name]:
|
|
folds_f1.append(fold_dict['Logistic Regression'][key]['F1_score'])
|
|
#folds_f1.append(folds_f1)
|
|
print('key:', key, 'F1scores:', folds_f1)
|
|
mean(folds_f1)
|
|
#%%
|
|
scores_df = pd.DataFrame(columns=['Model', 'F1_Score', 'MCC', 'Precision', 'Recall', 'Accuracy', 'ROC_AUC'])
|
|
|
|
# manually
|
|
model_name = 'Logistic Regression'
|
|
model_metric = 'F1_score'
|
|
|
|
log_reg_f1 = []
|
|
for key in fold_dict[model_name]:
|
|
log_reg_f1.append(fold_dict[model_name][key][model_metric])
|
|
log_reg_f1M = mean(log_reg_f1)
|
|
print('key:', key, model_metric, ':', log_reg_f1)
|
|
print(log_reg_f1M)
|
|
|
|
log_reg_f1df = pd.DataFrame({model_name: [log_reg_f1M]}, index = [model_metric])
|
|
log_reg_f1df
|
|
|
|
#%%
|
|
model_metric = 'MCC'
|
|
log_reg_mcc = []
|
|
for key in fold_dict[model_name]:
|
|
log_reg_mcc.append(fold_dict[model_name][key][model_metric])
|
|
log_reg_mccM = mean(log_reg_mcc)
|
|
print('key:', key, model_metric, ':', log_reg_mcc)
|
|
print(log_reg_mccM)
|
|
|
|
log_reg_mccdf = pd.DataFrame({model_name: [log_reg_mccM]}, index = [model_metric])
|
|
log_reg_mccdf |