{ "cells": [ { "cell_type": "markdown", "id": "f7efc033", "metadata": {}, "source": [ "## License \n", "\n", "Copyright 2021-2025 Patrick Hall (jphall@gwu.edu)\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", " http://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License.\n", "\n", "*DISCLAIMER*: This notebook is not legal or compliance advice." ] }, { "cell_type": "markdown", "id": "aab60b41", "metadata": {}, "source": [ "# Model Evaluation Notebook" ] }, { "cell_type": "markdown", "id": "281af306", "metadata": {}, "source": [ "#### Imports and inits" ] }, { "cell_type": "code", "execution_count": 1, "id": "fd180587", "metadata": {}, "outputs": [], "source": [ "import os # for directory and file manipulation\n", "import numpy as np # for basic array manipulation\n", "import pandas as pd # for dataframe manipulation\n", "import datetime # for timestamp\n", "\n", "# for model eval\n", "from sklearn.metrics import accuracy_score, f1_score, log_loss, mean_squared_error, roc_auc_score\n", "\n", "# global constants \n", "ROUND = 3 # generally, insane precision is not needed \n", "SEED = 12345 # seed for better reproducibility\n", "\n", "# set global random seed for better reproducibility\n", "np.random.seed(SEED)" ] }, { "cell_type": "markdown", "id": "eb2a39d4", "metadata": {}, "source": [ "#### Set basic metadata" ] }, { "cell_type": "code", "execution_count": 2, "id": "98f640ed", "metadata": {}, "outputs": [], "source": [ "y_name = 'high_priced'\n", "scores_dir = 'data/scores'" ] }, { "cell_type": "markdown", "id": "cc8d83d0", "metadata": {}, "source": [ "#### Read in score files " ] }, { "cell_type": "code", "execution_count": 3, "id": "355c2b81", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | high_priced | \n", "fold | \n", "Group11_nmodels50_rem_ebm | \n", "Group11_s23456_rem_ebm | \n", "Group11_s309_rem_ebm | \n", "Group11_s78600_rem_ebm | \n", "group10_rem_ebm | \n", "group2_rem_ebm_01_20_15 | \n", "group2_rem_ebm_22_17_12 | \n", "group3_rem_ebm_baseline | \n", "group3_rem_ebm_higherAUC | \n", "group4_rem_ebm | \n", "group5_rem_ebm | \n", "group6_rem_ebm | \n", "group7_rem_ebm | \n", "group8_rem_ebm | \n", "group9_rem_ebm | \n", "ph_advval_rem_ebm_300 | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "0.0 | \n", "2 | \n", "0.137540 | \n", "0.139748 | \n", "0.205271 | \n", "0.179329 | \n", "0.171282 | \n", "0.185777 | \n", "0.172227 | \n", "0.143110 | \n", "0.223292 | \n", "0.167459 | \n", "0.190114 | \n", "0.135934 | \n", "0.211464 | \n", "0.231874 | \n", "0.217985 | \n", "0.046616 | \n", "
| 1 | \n", "0.0 | \n", "1 | \n", "0.087820 | \n", "0.082908 | \n", "0.061675 | \n", "0.050835 | \n", "0.052447 | \n", "0.054526 | \n", "0.048065 | \n", "0.086134 | \n", "0.056014 | \n", "0.050392 | \n", "0.050783 | \n", "0.089782 | \n", "0.056915 | \n", "0.050760 | \n", "0.051602 | \n", "0.107210 | \n", "
| 2 | \n", "1.0 | \n", "4 | \n", "0.205859 | \n", "0.175563 | \n", "0.138244 | \n", "0.134298 | \n", "0.142725 | \n", "0.115459 | \n", "0.143908 | \n", "0.178489 | \n", "0.144938 | \n", "0.134964 | \n", "0.126908 | \n", "0.146695 | \n", "0.145323 | \n", "0.144645 | \n", "0.150886 | \n", "0.205463 | \n", "
| 3 | \n", "0.0 | \n", "1 | \n", "0.004215 | \n", "0.005734 | \n", "0.004596 | \n", "0.005623 | \n", "0.012051 | \n", "0.017398 | \n", "0.003693 | \n", "0.005306 | \n", "0.003517 | \n", "0.010764 | \n", "0.004722 | \n", "0.009907 | \n", "0.009820 | \n", "0.003467 | \n", "0.003105 | \n", "0.026128 | \n", "
| 4 | \n", "1.0 | \n", "2 | \n", "0.157931 | \n", "0.128220 | \n", "0.171561 | \n", "0.131882 | \n", "0.128083 | \n", "0.127062 | \n", "0.134211 | \n", "0.130522 | \n", "0.157840 | \n", "0.128787 | \n", "0.145517 | \n", "0.113684 | \n", "0.151989 | \n", "0.159707 | \n", "0.157856 | \n", "0.205463 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 19826 | \n", "0.0 | \n", "3 | \n", "0.160417 | \n", "0.175563 | \n", "0.180265 | \n", "0.222589 | \n", "0.232189 | \n", "0.178684 | \n", "0.235976 | \n", "0.178489 | \n", "0.205958 | \n", "0.232847 | \n", "0.185210 | \n", "0.152040 | \n", "0.187260 | \n", "0.202280 | \n", "0.190782 | \n", "0.161056 | \n", "
| 19827 | \n", "0.0 | \n", "1 | \n", "0.091154 | \n", "0.113400 | \n", "0.158804 | \n", "0.130824 | \n", "0.130660 | \n", "0.119742 | \n", "0.131474 | \n", "0.117766 | \n", "0.171042 | \n", "0.131007 | \n", "0.139019 | \n", "0.109661 | \n", "0.156364 | \n", "0.167931 | \n", "0.151061 | \n", "0.166683 | \n", "
| 19828 | \n", "1.0 | \n", "3 | \n", "0.118401 | \n", "0.097393 | \n", "0.239517 | \n", "0.202036 | \n", "0.212546 | \n", "0.210369 | \n", "0.215991 | \n", "0.100339 | \n", "0.256641 | \n", "0.211610 | \n", "0.216455 | \n", "0.089782 | \n", "0.238478 | \n", "0.234941 | \n", "0.236455 | \n", "0.205463 | \n", "
| 19829 | \n", "0.0 | \n", "1 | \n", "0.000951 | \n", "0.027918 | \n", "0.001340 | \n", "0.023791 | \n", "0.011642 | \n", "0.006776 | \n", "0.000545 | \n", "0.028972 | \n", "0.000517 | \n", "0.012490 | \n", "0.000769 | \n", "0.003152 | \n", "0.006474 | \n", "0.000477 | \n", "0.000084 | \n", "0.006582 | \n", "
| 19830 | \n", "0.0 | \n", "0 | \n", "0.118591 | \n", "0.167227 | \n", "0.135400 | \n", "0.208403 | \n", "0.215005 | \n", "0.159452 | \n", "0.219484 | \n", "0.171749 | \n", "0.157323 | \n", "0.212993 | \n", "0.145902 | \n", "0.146695 | \n", "0.126789 | \n", "0.143496 | \n", "0.132511 | \n", "0.161920 | \n", "
19831 rows × 18 columns
\n", "| \n", " | fold | \n", "metric | \n", "Group11_nmodels50_rem_ebm | \n", "Group11_s23456_rem_ebm | \n", "Group11_s309_rem_ebm | \n", "Group11_s78600_rem_ebm | \n", "group10_rem_ebm | \n", "group2_rem_ebm_01_20_15 | \n", "group2_rem_ebm_22_17_12 | \n", "group3_rem_ebm_baseline | \n", "... | \n", "group2_rem_ebm_22_17_12_rank | \n", "group3_rem_ebm_baseline_rank | \n", "group3_rem_ebm_higherAUC_rank | \n", "group4_rem_ebm_rank | \n", "group5_rem_ebm_rank | \n", "group6_rem_ebm_rank | \n", "group7_rem_ebm_rank | \n", "group8_rem_ebm_rank | \n", "group9_rem_ebm_rank | \n", "ph_advval_rem_ebm_300_rank | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "0.0 | \n", "acc | \n", "0.900 | \n", "0.900 | \n", "0.901 | \n", "0.901 | \n", "0.901 | \n", "0.901 | \n", "0.901 | \n", "0.900 | \n", "... | \n", "4.5 | \n", "12.5 | \n", "12.5 | \n", "4.5 | \n", "12.5 | \n", "12.5 | \n", "4.5 | \n", "12.5 | \n", "12.5 | \n", "4.5 | \n", "
| 1 | \n", "0.0 | \n", "auc | \n", "0.758 | \n", "0.731 | \n", "0.794 | \n", "0.776 | \n", "0.775 | \n", "0.754 | \n", "0.781 | \n", "0.741 | \n", "... | \n", "6.0 | \n", "14.0 | \n", "1.0 | \n", "10.0 | \n", "11.0 | \n", "16.0 | \n", "5.0 | \n", "4.0 | \n", "3.0 | \n", "9.0 | \n", "
| 2 | \n", "0.0 | \n", "f1 | \n", "0.326 | \n", "0.301 | \n", "0.353 | \n", "0.332 | \n", "0.331 | \n", "0.312 | \n", "0.335 | \n", "0.309 | \n", "... | \n", "7.0 | \n", "14.0 | \n", "3.0 | \n", "11.0 | \n", "12.0 | \n", "16.0 | \n", "6.0 | \n", "4.5 | \n", "2.0 | \n", "4.5 | \n", "
| 3 | \n", "0.0 | \n", "logloss | \n", "0.287 | \n", "0.295 | \n", "0.273 | \n", "0.279 | \n", "0.280 | \n", "0.287 | \n", "0.277 | \n", "0.292 | \n", "... | \n", "6.0 | \n", "14.0 | \n", "2.0 | \n", "10.0 | \n", "11.0 | \n", "16.0 | \n", "7.0 | \n", "4.5 | \n", "4.5 | \n", "2.0 | \n", "
| 4 | \n", "0.0 | \n", "mse | \n", "0.083 | \n", "0.085 | \n", "0.081 | \n", "0.081 | \n", "0.082 | \n", "0.083 | \n", "0.081 | \n", "0.084 | \n", "... | \n", "4.0 | \n", "14.0 | \n", "4.0 | \n", "9.0 | \n", "12.0 | \n", "16.0 | \n", "4.0 | \n", "4.0 | \n", "4.0 | \n", "9.0 | \n", "
| 5 | \n", "1.0 | \n", "acc | \n", "0.906 | \n", "0.906 | \n", "0.906 | \n", "0.906 | \n", "0.906 | \n", "0.906 | \n", "0.906 | \n", "0.906 | \n", "... | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "
| 6 | \n", "1.0 | \n", "auc | \n", "0.739 | \n", "0.705 | \n", "0.777 | \n", "0.746 | \n", "0.749 | \n", "0.734 | \n", "0.756 | \n", "0.710 | \n", "... | \n", "7.0 | \n", "14.0 | \n", "1.0 | \n", "9.0 | \n", "11.0 | \n", "16.0 | \n", "6.0 | \n", "2.5 | \n", "4.0 | \n", "5.0 | \n", "
| 7 | \n", "1.0 | \n", "f1 | \n", "0.281 | \n", "0.262 | \n", "0.326 | \n", "0.292 | \n", "0.296 | \n", "0.279 | \n", "0.295 | \n", "0.265 | \n", "... | \n", "8.5 | \n", "14.0 | \n", "3.0 | \n", "10.5 | \n", "8.5 | \n", "16.0 | \n", "4.0 | \n", "1.5 | \n", "5.0 | \n", "6.0 | \n", "
| 8 | \n", "1.0 | \n", "logloss | \n", "0.279 | \n", "0.288 | \n", "0.270 | \n", "0.278 | \n", "0.278 | \n", "0.281 | \n", "0.275 | \n", "0.287 | \n", "... | \n", "7.0 | \n", "14.0 | \n", "3.0 | \n", "9.5 | \n", "9.5 | \n", "16.0 | \n", "6.0 | \n", "3.0 | \n", "3.0 | \n", "1.0 | \n", "
| 9 | \n", "1.0 | \n", "mse | \n", "0.080 | \n", "0.082 | \n", "0.078 | \n", "0.080 | \n", "0.080 | \n", "0.080 | \n", "0.079 | \n", "0.081 | \n", "... | \n", "5.5 | \n", "14.0 | \n", "5.5 | \n", "10.5 | \n", "10.5 | \n", "16.0 | \n", "5.5 | \n", "2.0 | \n", "5.5 | \n", "2.0 | \n", "
| 10 | \n", "2.0 | \n", "acc | \n", "0.908 | \n", "0.908 | \n", "0.908 | \n", "0.908 | \n", "0.908 | \n", "0.909 | \n", "0.908 | \n", "0.908 | \n", "... | \n", "10.0 | \n", "10.0 | \n", "10.0 | \n", "10.0 | \n", "1.0 | \n", "10.0 | \n", "10.0 | \n", "10.0 | \n", "10.0 | \n", "2.5 | \n", "
| 11 | \n", "2.0 | \n", "auc | \n", "0.725 | \n", "0.693 | \n", "0.784 | \n", "0.763 | \n", "0.760 | \n", "0.746 | \n", "0.770 | \n", "0.705 | \n", "... | \n", "7.0 | \n", "14.0 | \n", "1.5 | \n", "11.0 | \n", "10.0 | \n", "16.0 | \n", "5.5 | \n", "3.0 | \n", "4.0 | \n", "5.5 | \n", "
| 12 | \n", "2.0 | \n", "f1 | \n", "0.275 | \n", "0.261 | \n", "0.328 | \n", "0.307 | \n", "0.304 | \n", "0.294 | \n", "0.316 | \n", "0.268 | \n", "... | \n", "6.0 | \n", "14.0 | \n", "3.0 | \n", "10.0 | \n", "11.0 | \n", "16.0 | \n", "4.5 | \n", "2.0 | \n", "4.5 | \n", "7.0 | \n", "
| 13 | \n", "2.0 | \n", "logloss | \n", "0.280 | \n", "0.288 | \n", "0.262 | \n", "0.268 | \n", "0.270 | \n", "0.273 | \n", "0.266 | \n", "0.285 | \n", "... | \n", "6.0 | \n", "14.0 | \n", "2.0 | \n", "11.0 | \n", "9.5 | \n", "16.0 | \n", "7.0 | \n", "4.5 | \n", "4.5 | \n", "2.0 | \n", "
| 14 | \n", "2.0 | \n", "mse | \n", "0.080 | \n", "0.081 | \n", "0.076 | \n", "0.077 | \n", "0.078 | \n", "0.077 | \n", "0.077 | \n", "0.081 | \n", "... | \n", "7.5 | \n", "14.5 | \n", "2.5 | \n", "11.5 | \n", "7.5 | \n", "16.0 | \n", "7.5 | \n", "2.5 | \n", "2.5 | \n", "7.5 | \n", "
| 15 | \n", "3.0 | \n", "acc | \n", "0.903 | \n", "0.903 | \n", "0.903 | \n", "0.903 | \n", "0.903 | \n", "0.903 | \n", "0.903 | \n", "0.903 | \n", "... | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "8.5 | \n", "
| 16 | \n", "3.0 | \n", "auc | \n", "0.730 | \n", "0.707 | \n", "0.774 | \n", "0.752 | \n", "0.747 | \n", "0.730 | \n", "0.761 | \n", "0.711 | \n", "... | \n", "6.5 | \n", "14.0 | \n", "2.0 | \n", "10.0 | \n", "11.0 | \n", "16.0 | \n", "6.5 | \n", "4.0 | \n", "5.0 | \n", "1.0 | \n", "
| 17 | \n", "3.0 | \n", "f1 | \n", "0.288 | \n", "0.271 | \n", "0.322 | \n", "0.301 | \n", "0.300 | \n", "0.292 | \n", "0.309 | \n", "0.274 | \n", "... | \n", "7.0 | \n", "14.0 | \n", "2.0 | \n", "10.0 | \n", "11.0 | \n", "16.0 | \n", "6.0 | \n", "3.0 | \n", "4.0 | \n", "1.0 | \n", "
| 18 | \n", "3.0 | \n", "logloss | \n", "0.287 | \n", "0.293 | \n", "0.275 | \n", "0.281 | \n", "0.283 | \n", "0.288 | \n", "0.278 | \n", "0.292 | \n", "... | \n", "6.0 | \n", "14.0 | \n", "2.0 | \n", "10.0 | \n", "11.0 | \n", "16.0 | \n", "7.0 | \n", "4.0 | \n", "4.0 | \n", "1.0 | \n", "
| 19 | \n", "3.0 | \n", "mse | \n", "0.083 | \n", "0.084 | \n", "0.080 | \n", "0.081 | \n", "0.081 | \n", "0.083 | \n", "0.081 | \n", "0.084 | \n", "... | \n", "7.0 | \n", "14.5 | \n", "3.0 | \n", "10.5 | \n", "10.5 | \n", "16.0 | \n", "7.0 | \n", "7.0 | \n", "3.0 | \n", "1.0 | \n", "
| 20 | \n", "4.0 | \n", "acc | \n", "0.895 | \n", "0.895 | \n", "0.896 | \n", "0.896 | \n", "0.896 | \n", "0.895 | \n", "0.896 | \n", "0.895 | \n", "... | \n", "4.0 | \n", "12.0 | \n", "12.0 | \n", "4.0 | \n", "12.0 | \n", "12.0 | \n", "12.0 | \n", "4.0 | \n", "12.0 | \n", "4.0 | \n", "
| 21 | \n", "4.0 | \n", "auc | \n", "0.718 | \n", "0.697 | \n", "0.787 | \n", "0.771 | \n", "0.768 | \n", "0.744 | \n", "0.773 | \n", "0.707 | \n", "... | \n", "6.0 | \n", "14.0 | \n", "1.0 | \n", "10.0 | \n", "11.0 | \n", "16.0 | \n", "5.0 | \n", "4.0 | \n", "3.0 | \n", "9.0 | \n", "
| 22 | \n", "4.0 | \n", "f1 | \n", "0.291 | \n", "0.279 | \n", "0.365 | \n", "0.347 | \n", "0.341 | \n", "0.332 | \n", "0.344 | \n", "0.287 | \n", "... | \n", "7.0 | \n", "14.0 | \n", "2.0 | \n", "9.0 | \n", "12.0 | \n", "16.0 | \n", "5.0 | \n", "3.0 | \n", "4.0 | \n", "11.0 | \n", "
| 23 | \n", "4.0 | \n", "logloss | \n", "0.306 | \n", "0.311 | \n", "0.285 | \n", "0.290 | \n", "0.291 | \n", "0.302 | \n", "0.290 | \n", "0.308 | \n", "... | \n", "7.5 | \n", "14.0 | \n", "1.0 | \n", "10.0 | \n", "11.0 | \n", "16.0 | \n", "5.5 | \n", "4.0 | \n", "2.5 | \n", "5.5 | \n", "
| 24 | \n", "4.0 | \n", "mse | \n", "0.089 | \n", "0.089 | \n", "0.084 | \n", "0.085 | \n", "0.085 | \n", "0.087 | \n", "0.085 | \n", "0.089 | \n", "... | \n", "7.5 | \n", "14.0 | \n", "3.0 | \n", "7.5 | \n", "10.5 | \n", "16.0 | \n", "3.0 | \n", "3.0 | \n", "3.0 | \n", "10.5 | \n", "
25 rows × 34 columns
\n", "