ML_AI_training/earlier_versions/loopity_detangle.py

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