import pickle
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
auc_list_6 = pickle.load(open('../../out6/auc_list.pkl', 'rb'))
auc_list_12 = pickle.load(open('../../out12/auc_list.pkl', 'rb'))
auc_list_18 = pickle.load(open('../../out18/auc_list.pkl', 'rb'))
auc_list_24 = pickle.load(open('../../out24/auc_list.pkl', 'rb'))
auc_list_36 = pickle.load(open('../../out36/auc_list.pkl', 'rb'))
auc_list_48 = pickle.load(open('../../out48/auc_list.pkl', 'rb'))
auc_list = auc_list_6 + auc_list_12 + auc_list_18 + auc_list_24 + auc_list_36 + auc_list_48
titles_total_6 = pickle.load(open('../../out6/titles_total.pkl', 'rb'))
titles_total_12 = pickle.load(open('../../out12/titles_total.pkl', 'rb'),)
titles_total_18 = pickle.load(open('../../out18/titles_total.pkl', 'rb'))
titles_total_24 = pickle.load(open('../../out24/titles_total.pkl', 'rb'))
titles_total_36 = pickle.load(open('../../out36/titles_total.pkl', 'rb'))
titles_total_48 = pickle.load(open('../../out48/titles_total.pkl', 'rb'))
titles_total = titles_total_6 + titles_total_12 + titles_total_18 + titles_total_24 + titles_total_36 + titles_total_48
prec_total_6 = pickle.load(open('../../out6/prec_total.pkl', 'rb'))
prec_total_12 = pickle.load(open('../../out12/prec_total.pkl', 'rb'))
prec_total_18 = pickle.load(open('../../out18/prec_total.pkl', 'rb'))
prec_total_24 = pickle.load(open('../../out24/prec_total.pkl', 'rb'))
prec_total_36 = pickle.load(open('../../out36/prec_total.pkl', 'rb'),)
prec_total_48 = pickle.load(open('../../out48/prec_total.pkl', 'rb'))
prec_total = prec_total_6 + prec_total_12 + prec_total_18 + prec_total_24 + prec_total_36 + prec_total_48
recall_total_6 = pickle.load(open('../../out6/recall_total.pkl', 'rb'))
recall_total_18 = pickle.load(open('../../out18/recall_total.pkl', 'rb'))
recall_total_12 = pickle.load(open('../../out12/recall_total.pkl', 'rb'))
recall_total_24 = pickle.load(open('../../out24/recall_total.pkl', 'rb'))
recall_total_36 = pickle.load(open('../../out36/recall_total.pkl', 'rb'))
recall_total_48 = pickle.load(open('../../out48/recall_total.pkl', 'rb'))
recall_total = recall_total_6 + recall_total_12 + recall_total_18 + recall_total_24 + recall_total_36 + recall_total_48
spec_total_6 = pickle.load(open('../../out6/spec_total.pkl', 'rb'))
spec_total_18 = pickle.load(open('../../out18/spec_total.pkl', 'rb'))
spec_total_12 = pickle.load(open('../../out12/spec_total.pkl', 'rb'))
spec_total_24 = pickle.load(open('../../out24/spec_total.pkl', 'rb'))
spec_total_36 = pickle.load(open('../../out36/spec_total.pkl', 'rb'))
spec_total_48 = pickle.load(open('../../out48/spec_total.pkl', 'rb'))
spec_total = spec_total_6 + spec_total_12 + spec_total_18 + spec_total_24 + spec_total_36 + spec_total_48
print('Girls ROC curve:')
for modelix in ('lasso','randomforest','gradientboost'):
plt.figure(figsize=(10,10))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal')) or modelix not in titles_total[ix]:
continue
if 'girls' in titles_total[ix]:
if 'Vital' in titles_total[ix]:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle=':', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
# elif 'no_maternal' in titles_total[ix]:
# plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.legend(fontsize = 8)
plt.xlabel('1 - Specificity')
plt.ylabel('Sensitivity')
plt.axis('equal')
plt.title('ROC Curve: Obesity in Girls Predicted at 5 years - '+modelix)
plt.grid(True)
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Girls_ROC.png', dpi=300)
plt.show()
print('Girls Precision Recall Curve:')
plt.figure(figsize=(10,10))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal')) or modelix not in titles_total[ix]:
continue
if 'girls' in titles_total[ix]:
if 'Vital' in titles_total[ix]:
plt.plot(recall_total[ix], prec_total[ix], linestyle=':', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
# elif 'no_maternal' in titles_total[ix]:
# plt.plot(recall_total[ix], prec_total[ix], linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(recall_total[ix], prec_total[ix], linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.xlabel('Recall (Sensitivity)')
plt.ylabel('Precision (PPV)')
plt.legend(fontsize = 8)
plt.axis('equal')
plt.title('Precision-Recall Curve: Obesity in Girls Predicted at 5 years - '+modelix)
plt.grid()
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Girls_PR.png', dpi=300)
plt.show()
Girls ROC curve:
Girls Precision Recall Curve:
Girls Precision Recall Curve:
Girls Precision Recall Curve:
print('Girls ROC curve:')
plt.figure(figsize=(15,15))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal','w/o exclusions', 'BMI')):
continue
if 'girls' in titles_total[ix]:
if 'lasso' in titles_total[ix]:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle=':', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
elif 'randomforest' in titles_total[ix]:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.legend(fontsize = 8)
plt.xlabel('1 - Specificity')
plt.ylabel('Sensitivity')
plt.axis('equal')
plt.title('ROC Curve: Obesity in Girls Predicted at 5 years - w/inclusion criteria')
plt.grid(True)
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Girls_ROC.png', dpi=300)
plt.show()
print('Girls Precision Recall Curve:')
plt.figure(figsize=(15,15))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal','w/o exclusions','BMI')):
continue
if 'girls' in titles_total[ix]:
if 'lasso' in titles_total[ix]:
plt.plot(recall_total[ix], prec_total[ix], linestyle=':', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
elif 'randomforest' in titles_total[ix]:
plt.plot(recall_total[ix], prec_total[ix], linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(recall_total[ix], prec_total[ix], linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.xlabel('Recall (Sensitivity)')
plt.ylabel('Precision (PPV)')
plt.legend(fontsize = 8)
plt.axis('equal')
plt.title('Precision-Recall Curve: Obesity in Girls Predicted at 5 years - w/inclusion criteria')
plt.grid()
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Girls_PR.png', dpi=300)
plt.show()
for modelix in ('w/o exclusions', 'BMI'):
plt.figure(figsize=(15,15))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal')) or modelix not in titles_total[ix]:
continue
if 'girls' in titles_total[ix]:
if 'lasso' in titles_total[ix]:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle=':', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
elif 'randomforest' in titles_total[ix]:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.legend(fontsize = 8)
plt.xlabel('1 - Specificity')
plt.ylabel('Sensitivity')
plt.axis('equal')
plt.title('ROC Curve: Obesity in Girls Predicted at 5 years - '+modelix)
plt.grid(True)
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Girls_ROC.png', dpi=300)
plt.show()
print('Girls Precision Recall Curve:')
plt.figure(figsize=(15,15))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal')) or modelix not in titles_total[ix]:
continue
if 'girls' in titles_total[ix]:
if 'lasso' in titles_total[ix]:
plt.plot(recall_total[ix], prec_total[ix], linestyle=':', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
elif 'randomforest' in titles_total[ix]:
plt.plot(recall_total[ix], prec_total[ix], linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(recall_total[ix], prec_total[ix], linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.xlabel('Recall (Sensitivity)')
plt.ylabel('Precision (PPV)')
plt.legend(fontsize = 8)
plt.axis('equal')
plt.title('Precision-Recall Curve: Obesity in Girls Predicted at 5 years - '+modelix)
plt.grid()
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Girls_PR.png', dpi=300)
plt.show()
Girls ROC curve:
Girls Precision Recall Curve:
Girls Precision Recall Curve:
Girls Precision Recall Curve:
for modelix in ('lasso','randomforest','gradientboost'):
print('Boys ROC curve:')
plt.figure(figsize=(10,10))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal')) or modelix not in titles_total[ix]:
continue
if 'boys' in titles_total[ix]:
if 'Vital' in titles_total[ix]:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle=':', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
# elif 'no_maternal' in titles_total[ix]:
# plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.legend(fontsize = 8)
plt.xlabel('1 - Specificity')
plt.ylabel('Sensitivity')
plt.axis('equal')
plt.title('ROC Curve: Obesity in Boys Predicted at 5 years - '+modelix)
plt.grid(True)
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Boys_ROC.png', dpi=300)
plt.show()
print('Boys Precision Recall Curve:')
plt.figure(figsize=(10,10))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal')) or modelix not in titles_total[ix]:
continue
if 'boys' in titles_total[ix]:
if 'Vital' in titles_total[ix]:
plt.plot(recall_total[ix], prec_total[ix], linestyle=':', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
# elif 'no_maternal' in titles_total[ix]:
# plt.plot(recall_total[ix], prec_total[ix], linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(recall_total[ix], prec_total[ix], linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.xlabel('Recall (Sensitivity)')
plt.ylabel('Precision (PPV)')
plt.legend(fontsize = 8)
plt.axis('equal')
plt.title('Precision-Recall Curve: Obesity in Boys Predicted at 5 years - '+modelix)
plt.grid()
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Boys_PR.png', dpi=300)
plt.show()
Boys ROC curve:
Boys Precision Recall Curve:
Boys ROC curve:
Boys Precision Recall Curve:
Boys ROC curve:
Boys Precision Recall Curve:
print('Boys ROC curve:')
plt.figure(figsize=(15,15))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal','w/o exclusions', 'BMI')):
continue
if 'boys' in titles_total[ix]:
if 'lasso' in titles_total[ix]:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle=':', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
elif 'randomforest' in titles_total[ix]:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.legend(fontsize = 8)
plt.xlabel('1 - Specificity')
plt.ylabel('Sensitivity')
plt.axis('equal')
plt.title('ROC Curve: Obesity in Boys Predicted at 5 years - w/inclusion criteria')
plt.grid(True)
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Boys_ROC.png', dpi=300)
plt.show()
print('Boys Precision Recall Curve:')
plt.figure(figsize=(15,15))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal','w/o exclusions','BMI')):
continue
if 'boys' in titles_total[ix]:
if 'lasso' in titles_total[ix]:
plt.plot(recall_total[ix], prec_total[ix], linestyle=':', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
elif 'randomforest' in titles_total[ix]:
plt.plot(recall_total[ix], prec_total[ix], linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(recall_total[ix], prec_total[ix], linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.xlabel('Recall (Sensitivity)')
plt.ylabel('Precision (PPV)')
plt.legend(fontsize = 8)
plt.axis('equal')
plt.title('Precision-Recall Curve: Obesity in Boys Predicted at 5 years - w/inclusion criteria')
plt.grid()
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Boys_PR.png', dpi=300)
plt.show()
for modelix in ('w/o exclusions', 'BMI'):
print('Boys ROC curve:')
plt.figure(figsize=(15,15))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal')) or modelix not in titles_total[ix]:
continue
if 'boys' in titles_total[ix]:
if 'lasso' in titles_total[ix]:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle=':', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
elif 'randomforest' in titles_total[ix]:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.legend(fontsize = 8)
plt.xlabel('1 - Specificity')
plt.ylabel('Sensitivity')
plt.axis('equal')
plt.title('ROC Curve: Obesity in Boys Predicted at 5 years - '+modelix)
plt.grid(True)
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Boys_ROC.png', dpi=300)
plt.show()
print('Boys Precision Recall Curve:')
plt.figure(figsize=(15,15))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal')) or modelix not in titles_total[ix]:
continue
if 'boys' in titles_total[ix]:
if 'lasso' in titles_total[ix]:
plt.plot(recall_total[ix], prec_total[ix], linestyle=':', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
elif 'randomforest' in titles_total[ix]:
plt.plot(recall_total[ix], prec_total[ix], linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(recall_total[ix], prec_total[ix], linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.xlabel('Recall (Sensitivity)')
plt.ylabel('Precision (PPV)')
plt.legend(fontsize = 8)
plt.axis('equal')
plt.title('Precision-Recall Curve: Obesity in Boys Predicted at 5 years - '+modelix)
plt.grid()
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Boys_PR.png', dpi=300)
plt.show()
Boys ROC curve:
Boys Precision Recall Curve:
Boys ROC curve:
Boys Precision Recall Curve:
Boys ROC curve:
Boys Precision Recall Curve:
modelix = 'BMI'
plt.figure(figsize=(12,12))
for ix in range(len(prec_total)):
if modelix not in titles_total[ix]:
continue
if 'girls' in titles_total[ix]:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.legend(fontsize = 8)
plt.xlabel('1 - Specificity')
plt.ylabel('Sensitivity')
plt.axis('equal')
plt.title('ROC Curve: Obesity Predicted at 5 years - "Vital: BMI-latest"')
plt.grid(True)
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Girls_ROC.png', dpi=300)
plt.show()
plt.figure(figsize=(12,12))
for ix in range(len(prec_total)):
if modelix not in titles_total[ix]:
continue
if 'girls' in titles_total[ix]:
plt.plot(recall_total[ix], prec_total[ix], linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(recall_total[ix], prec_total[ix], linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.xlabel('Recall (Sensitivity)')
plt.ylabel('Precision (PPV)')
plt.legend(fontsize = 8)
plt.axis('equal')
plt.title('Precision-Recall Curve: Obesity Predicted at 5 years - "Vital: BMI-latest"')
plt.grid()
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Girls_PR.png', dpi=300)
plt.show()
plt.figure(figsize=(10,10))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal','w/o exclusions', 'BMI','gradientboost')):
continue
if 'girls' in titles_total[ix]:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(1- np.array(spec_total[ix]), np.array(recall_total[ix]), linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.legend(fontsize = 8)
plt.xlabel('1 - Specificity')
plt.ylabel('Sensitivity')
plt.axis('equal')
plt.title('ROC Curve: Obesity Predicted at 5 years')
plt.grid(True)
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Girls_ROC.png', dpi=300)
plt.show()
plt.figure(figsize=(10,10))
for ix in range(len(prec_total)):
if any(x in titles_total[ix] for x in ('w/o vitals','Wt','no_maternal','w/o exclusions', 'BMI','gradientboost')):
continue
if 'girls' in titles_total[ix]:
plt.plot(recall_total[ix], prec_total[ix], linestyle='-', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
else:
plt.plot(recall_total[ix], prec_total[ix], linestyle='--', label=titles_total[ix]+' - AUC='+str(auc_list[ix][0]))
plt.xlabel('Recall (Sensitivity)')
plt.ylabel('Precision (PPV)')
plt.legend(fontsize = 8)
plt.axis('equal')
plt.title('Precision-Recall Curve: Obesity Predicted at 5 years')
plt.grid()
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Girls_PR.png', dpi=300)
plt.show()
df_l = []
headers=['ix','title','auc','auc ste']
for ix,(auc,title) in enumerate(zip(auc_list,titles_total)):
df_l.append([ix,title,auc[0],auc[1]])
df = pd.DataFrame(df_l, columns=headers)
top_ix = []
for m in ['@ 6months','@ 12months','@ 18months','@ 24months','@ 36months','@ 48months']:
for g in ['boys','girls']:
filtered = df[(df.title.str.contains(g)) & (df.title.str.contains(m)) & (~df.title.str.contains('no_maternal'))].sort_values(by='auc', axis=0, ascending=False)
print(filtered.head(1).values)
top_ix.append([g,m,filtered.iloc[0,0]])
[[19 'boys maternal - model: randomforest@ 6months' 0.6614924211130132 0.015467309070165233]] [[11 'girls maternal - model: lasso@ 6months' 0.7001185948503822 0.022385975656324053]] [[51 'boys maternal - model: lasso@ 12months' 0.6986805297216665 0.017190523858104777]] [[59 'girls maternal - model: lasso@ 12months' 0.74354431228808 0.025182552037911185]] [[99 'boys maternal - model: lasso@ 18months' 0.7450214402609653 0.01649047724142207]] [[123 'girls maternal - model: randomforest@ 18months' 0.7950049793994841 0.01349060939314528]] [[147 'boys maternal - model: lasso@ 24months' 0.7831224726810798 0.018408840059121207]] [[171 'girls maternal - model: randomforest@ 24months' 0.823646840110252 0.014115566318710292]] [[195 'boys maternal - model: lasso@ 36months' 0.8229655297591023 0.012844640452766246]] [[219 'girls maternal - model: randomforest@ 36months' 0.9141673745944965 0.010184151863720944]] [[259 'boys maternal - model: randomforest@ 48months' 0.9228400865142576 0.008022379277981242]] [[254 'girls - model: lasso - Vital: BMI-latest @ 48months' 0.9409690483568705 0.00950431778944915]]
plt.figure(figsize=(10,10))
for l in top_ix:
if 'girls' in titles_total[l[2]]:
plt.plot(1- np.array(spec_total[l[2]]), np.array(recall_total[l[2]]), linestyle='-', label=titles_total[l[2]]+' - AUC='+str(auc_list[l[2]][0]))
else:
plt.plot(1- np.array(spec_total[l[2]]), np.array(recall_total[l[2]]), linestyle='--', label=titles_total[l[2]]+' - AUC='+str(auc_list[l[2]][0]))
plt.legend(fontsize = 8)
plt.xlabel('1 - Specificity')
plt.ylabel('Sensitivity')
plt.axis('equal')
plt.title('ROC Curve: Obesity Predicted at 5 years')
plt.grid(True)
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Girls_ROC.png', dpi=300)
plt.show()
plt.figure(figsize=(10,10))
for l in top_ix:
if 'girls' in titles_total[l[2]]:
plt.plot(recall_total[l[2]], prec_total[l[2]], linestyle='-', label=titles_total[l[2]]+' - AUC='+str(auc_list[l[2]][0]))
else:
plt.plot(recall_total[l[2]], prec_total[l[2]], linestyle='--', label=titles_total[l[2]]+' - AUC='+str(auc_list[l[2]][0]))
plt.xlabel('Recall (Sensitivity)')
plt.ylabel('Precision (PPV)')
plt.legend(fontsize = 8)
plt.axis('equal')
plt.title('Precision-Recall Curve: Obesity Predicted at 5 years')
plt.grid()
plt.tight_layout()
# plt.savefig(newdir+'/Pediatric_Girls_PR.png', dpi=300)
plt.show()