#!/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