diff --git a/model_selection/test_models.py b/model_selection/test_models.py index b8f8cc17fbc2f76e87e85d00b8c98200d6fbdbde..39fab8e1d1270924c58b613a623df1487f3ca5e1 100644 --- a/model_selection/test_models.py +++ b/model_selection/test_models.py @@ -17,6 +17,7 @@ from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import RocCurveDisplay, roc_curve from sklearn.metrics import PrecisionRecallDisplay, precision_recall_curve import matplotlib.pyplot as plt +from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay # -------------------------------------------------------------------------------------------------------- # Reading test data @@ -250,7 +251,7 @@ if __name__ == "__main__": # Scores df scores_df = pd.DataFrame(index=models.keys(), columns=scorings.keys()) # Create a figure for all models in this group-method - fig, axes = plt.subplots(len(models), 2, figsize=(8, 8 * len(models))) + fig, axes = plt.subplots(len(models), 3, figsize=(10, 8 * len(models))) if len(models) == 1: # Adjustment if there's only one model (axes indexing issue) axes = [axes] # Evaluate each model @@ -268,15 +269,21 @@ if __name__ == "__main__": # Calculate precision-recall curve precision, recall, _ = precision_recall_curve(y_test, y_score, pos_label=model.classes_[1]) pr_display = PrecisionRecallDisplay(precision=precision, recall=recall).plot(ax=axes[model_idx][1]) + # Get confusion matrix plot + y_pred = model.predict(X_test) + cm = confusion_matrix(y_test, y_pred) + ConfusionMatrixDisplay(cm).plot(ax=axes[model_idx[2]]) + # Give name to plots axes[model_idx][0].set_title(f'ROC Curve for {model_name}') axes[model_idx][1].set_title(f'PR Curve for {model_name}') + axes[model_idx][2].set_title(f'CM for {model_name}') # Evaluate at each of the scores of interest for score_name, scorer in scorings.items(): score_value = scorer(model, X_test, y_test) scores_df.at[model_name, score_name] = score_value # Adjust layout and save/show figure plt.tight_layout() - plt.savefig(f'./test_results/roc_pr_curves/{group}_{method_names[j]}.svg', format='svg', dpi=500) + plt.savefig(f'./test_results/aux_plots/{group}_{method_names[j]}.svg', format='svg', dpi=500) plt.close(fig) # Store the DataFrame in the dictionary with a unique key for each sheet sheet_name = f"{group}_{method_names[j]}" diff --git a/model_selection/test_results/roc_pr_curves/post_.svg b/model_selection/test_results/aux_plots/post_.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/post_.svg rename to model_selection/test_results/aux_plots/post_.svg diff --git a/model_selection/test_results/roc_pr_curves/post_ORIG.svg b/model_selection/test_results/aux_plots/post_ORIG.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/post_ORIG.svg rename to model_selection/test_results/aux_plots/post_ORIG.svg diff --git a/model_selection/test_results/roc_pr_curves/post_ORIG_CW.svg b/model_selection/test_results/aux_plots/post_ORIG_CW.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/post_ORIG_CW.svg rename to model_selection/test_results/aux_plots/post_ORIG_CW.svg diff --git a/model_selection/test_results/roc_pr_curves/post_OVER.svg b/model_selection/test_results/aux_plots/post_OVER.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/post_OVER.svg rename to model_selection/test_results/aux_plots/post_OVER.svg diff --git a/model_selection/test_results/roc_pr_curves/post_UNDER.svg b/model_selection/test_results/aux_plots/post_UNDER.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/post_UNDER.svg rename to model_selection/test_results/aux_plots/post_UNDER.svg diff --git a/model_selection/test_results/roc_pr_curves/post_over_.svg b/model_selection/test_results/aux_plots/post_over_.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/post_over_.svg rename to model_selection/test_results/aux_plots/post_over_.svg diff --git a/model_selection/test_results/roc_pr_curves/post_under_.svg b/model_selection/test_results/aux_plots/post_under_.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/post_under_.svg rename to model_selection/test_results/aux_plots/post_under_.svg diff --git a/model_selection/test_results/roc_pr_curves/pre_.svg b/model_selection/test_results/aux_plots/pre_.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/pre_.svg rename to model_selection/test_results/aux_plots/pre_.svg diff --git a/model_selection/test_results/roc_pr_curves/pre_ORIG.svg b/model_selection/test_results/aux_plots/pre_ORIG.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/pre_ORIG.svg rename to model_selection/test_results/aux_plots/pre_ORIG.svg diff --git a/model_selection/test_results/roc_pr_curves/pre_ORIG_CW.svg b/model_selection/test_results/aux_plots/pre_ORIG_CW.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/pre_ORIG_CW.svg rename to model_selection/test_results/aux_plots/pre_ORIG_CW.svg diff --git a/model_selection/test_results/roc_pr_curves/pre_OVER.svg b/model_selection/test_results/aux_plots/pre_OVER.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/pre_OVER.svg rename to model_selection/test_results/aux_plots/pre_OVER.svg diff --git a/model_selection/test_results/roc_pr_curves/pre_UNDER.svg b/model_selection/test_results/aux_plots/pre_UNDER.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/pre_UNDER.svg rename to model_selection/test_results/aux_plots/pre_UNDER.svg diff --git a/model_selection/test_results/roc_pr_curves/pre_over_.svg b/model_selection/test_results/aux_plots/pre_over_.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/pre_over_.svg rename to model_selection/test_results/aux_plots/pre_over_.svg diff --git a/model_selection/test_results/roc_pr_curves/pre_under_.svg b/model_selection/test_results/aux_plots/pre_under_.svg similarity index 100% rename from model_selection/test_results/roc_pr_curves/pre_under_.svg rename to model_selection/test_results/aux_plots/pre_under_.svg