{ "cells": [ { "cell_type": "markdown", "id": "fe7fc21b", "metadata": {}, "source": [ "#Bayesian + Frequentist" ] }, { "cell_type": "code", "execution_count": 2, "id": "cda80c41", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from scipy import io\n", "from sklearn.model_selection import StratifiedKFold, cross_val_predict\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.metrics import roc_auc_score, average_precision_score, brier_score_loss, classification_report, ConfusionMatrixDisplay\n", "from sklearn.calibration import CalibratedClassifierCV\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.svm import SVC\n", "from sklearn.naive_bayes import GaussianNB\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.tree import DecisionTreeClassifier\n", "import matplotlib.pyplot as plt\n", "\n", "# Load data\n", "data_path = \"../data/\"\n", "suv_file = data_path + \"suv_percentilesSLOthenUWM.mat\"\n", "flags_file = data_path + \"flags_combined.mat\"\n", "\n", "suv_dict = io.loadmat(suv_file)\n", "flags_dict = io.loadmat(flags_file)\n", "\n", "suv = suv_dict['lung_SUVperc_COMBINED'][0:58, :, :]\n", "flags = flags_dict['flags'][0:58, 3]\n", "\n", "# Use 94th percentile SUV values\n", "p = 94\n", "X_raw = np.nanmax(suv[:, :, p], axis=1).reshape(-1, 1)\n", "X = X_raw\n", "y = flags.astype(int).flatten()\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "0a438eff", "metadata": {}, "outputs": [], "source": [ "scaler = StandardScaler()\n", "X_scaled = scaler.fit_transform(X)\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "d434e398", "metadata": {}, "outputs": [], "source": [ "models = {\n", " \"NaiveBayes\": GaussianNB(),\n", " \"SVM-RBF\": SVC(kernel='rbf', probability=True, class_weight='balanced'),\n", " \"kNN\": KNeighborsClassifier(n_neighbors=3, weights='distance'),\n", " \"DecisionTree\": DecisionTreeClassifier(max_depth=2, class_weight='balanced'),\n", " \"RandomForest\": RandomForestClassifier(n_estimators=50, max_depth=3, class_weight='balanced', random_state=42)\n", "}\n" ] }, { "cell_type": "code", "execution_count": null, "id": "c147258e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== NaiveBayes ===\n", "ROC AUC: 0.9584905660377359\n", "PR AUC: 0.6266666666666666\n", "Brier Score: 0.04634397393131746\n", "Report:\n", " precision recall f1-score support\n", "\n", " 0 0.981 0.981 0.981 53\n", " 1 0.800 0.800 0.800 5\n", "\n", " accuracy 0.966 58\n", " macro avg 0.891 0.891 0.891 58\n", "weighted avg 0.966 0.966 0.966 58\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAHFCAYAAAAJ7nvFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9LUlEQVR4nO3deXhTVf7H8U9aaNpCWyhLS7Wssu+bWBwFZVHE/kB0Rha1IIgCLgwqjDJKXWiBGbECAuICHRXRGQWREQSHxQXQFkERGBzGgkWooIKFAl2S8/sDmyG2QEJSkjTv1/Pc5zHnbt+bIF++55x7r8UYYwQAAAJSiK8DAAAAF45EDgBAACORAwAQwEjkAAAEMBI5AAABjEQOAEAAI5EDABDASOQAAAQwEjkAAAGMRB5gvvrqK40YMUKNGjVSeHi4qlevrk6dOmnGjBn6+eefK/TcW7duVY8ePRQTEyOLxaKMjAyvn8NisSg1NdXrxz2fRYsWyWKxyGKxaP369WXWG2N02WWXyWKxqGfPnhd0jrlz52rRokVu7bN+/fqzxnQxlH4n06ZNK7Ou9DvLzs52+7gX47rO/E1Llzp16qhnz55asWJFhZ0XuNiq+DoAuO7FF1/U2LFj1bx5cz388MNq1aqViouLlZ2drfnz52vTpk1aunRphZ3/zjvvVEFBgZYsWaKaNWuqYcOGXj/Hpk2bdOmll3r9uK6KiorSyy+/XCZZb9iwQf/9738VFRV1wceeO3euateureHDh7u8T6dOnbRp0ya1atXqgs/rDdOmTdPo0aMVGxvrleNdzOtauHChWrRoIWOM8vLyNGfOHCUnJ2v58uVKTk6u8PMDFc4gIGzcuNGEhoaa66+/3pw6darM+sLCQvPuu+9WaAxVqlQxY8aMqdBz+MrChQuNJDNq1CgTERFhfvnlF6f1t912m0lKSjKtW7c2PXr0uKBzuLNvUVGRKS4uvqDzeJMk07t3b1OlShUzYcIEp3Wl31lWVpaPoju3s8V34sQJY7VazZAhQ3wUGeBddK0HiLS0NFksFi1YsEBWq7XM+rCwMP3f//2f47PdbteMGTPUokULWa1W1a1bV3fccYf279/vtF/Pnj3Vpk0bZWVl6aqrrlJkZKQaN26sadOmyW63S/pfF2VJSYnmzZvn6KaUpNTUVMd/n6l0n7179zra1q5dq549e6pWrVqKiIhQ/fr1dfPNN+vEiROObcrrWv/66681YMAA1axZU+Hh4erQoYMyMzOdtintqn3jjTc0efJkJSQkKDo6Wr1799bu3btd+5IlDRkyRJL0xhtvONp++eUXvf3227rzzjvL3eeJJ55Qt27dFBsbq+joaHXq1Ekvv/yyzBnvI2rYsKF27NihDRs2OL6/0h6N0thfffVVPfjgg7rkkktktVq1Z8+eMl3QP/74oxITE9W9e3cVFxc7jr9z505Vq1ZNt99+u8vX6qrmzZtr5MiRev7557Vv375zbpudna3BgwerYcOGioiIUMOGDTVkyJAy+/32ujIyMmSxWLRnz54yx5w0aZLCwsL0448/Oto+/PBD9erVS9HR0YqMjNSVV16pf/3rXy5dT3h4uMLCwlS1alWndld+x5EjRyo2Ntbpz2ypa6+9Vq1bt3Z8NsZo7ty56tChgyIiIlSzZk3dcsst+vbbb53227p1q2688UbVrVtXVqtVCQkJ6t+/f5n/V4GzIZEHAJvNprVr16pz585KTEx0aZ8xY8Zo0qRJ6tOnj5YvX66nnnpKq1atUvfu3Z3+QpSkvLw8DRs2TLfddpuWL1+ufv366ZFHHtFrr70mSerfv782bdokSbrlllu0adMmx2dX7d27V/3791dYWJheeeUVrVq1StOmTVO1atVUVFR01v12796t7t27a8eOHZo1a5beeecdtWrVSsOHD9eMGTPKbP/oo49q3759eumll7RgwQL95z//UXJysmw2m0txRkdH65ZbbtErr7ziaHvjjTcUEhKiW2+99azXdvfdd+utt97SO++8o0GDBum+++7TU0895dhm6dKlaty4sTp27Oj4/n47DPLII4/ou+++0/z58/Xee++pbt26Zc5Vu3ZtLVmyRFlZWZo0aZIk6cSJE/r973+v+vXra/78+S5dp7tSU1MVGhqqxx577Jzb7d27V82bN1dGRoY++OADTZ8+XQcPHlTXrl3L/Lk702233aawsLAycwhsNptee+01JScnq3bt2pKk1157TX379lV0dLQyMzP11ltvKTY2Vtddd125ydxms6mkpETFxcXav3+/xo8fr4KCAg0dOrRM7Of7HR944AEdOXJEixcvdtp3586dWrduncaNG+dou/vuuzV+/Hj17t1by5Yt09y5c7Vjxw51795dP/zwgySpoKBAffr00Q8//KDnn39ea9asUUZGhurXr69jx46d87sGHHzcIwAX5OXlGUlm8ODBLm2/a9cuI8mMHTvWqf2zzz4zksyjjz7qaOvRo4eRZD777DOnbVu1amWuu+46pzZJZty4cU5tU6ZMMeX9MSrt1szJyTHGGPOPf/zDSDLbtm07Z+ySzJQpUxyfBw8ebKxWq/nuu++ctuvXr5+JjIw0R48eNcYYs27dOiPJ3HDDDU7bvfXWW0aS2bRp0znPe2Y3bOmxvv76a2OMMV27djXDhw83xpy/e9xms5ni4mLz5JNPmlq1ahm73e5Yd7Z9S8939dVXn3XdunXrnNqnT59uJJmlS5ealJQUExERYb766qtzXuOFOPM3nzx5sgkJCTFffvmlMca1rvWSkhJz/PhxU61aNfPcc8+d87oGDRpkLr30UmOz2Rxt77//vpFk3nvvPWOMMQUFBSY2NtYkJyc7ncdms5n27dubyy+/3NFWGt9vF6vVaubOnXvO6z7X79ijRw/ToUMHp+3HjBljoqOjzbFjx4wxxmzatMlIMs8884zTdrm5uSYiIsJMnDjRGGNMdna2kWSWLVt2zniAc6Eir4TWrVsnSWUmVV1++eVq2bJlmaolPj5el19+uVNbu3btztuN6o4OHTooLCxMo0ePVmZmZpnuxbNZu3atevXqVaYnYvjw4Tpx4kSZnoEzhxek09chya1r6dGjh5o0aaJXXnlF27dvV1ZW1lm71Utj7N27t2JiYhQaGqqqVavq8ccf108//aRDhw65fN6bb77Z5W0ffvhh9e/fX0OGDFFmZqZmz56ttm3bnne/kpISp8Wc0W18PhMnTlRsbKyjJ6A8x48f16RJk3TZZZepSpUqqlKliqpXr66CggLt2rXrnMcfMWKE9u/frw8//NDRtnDhQsXHx6tfv36SpI0bN+rnn39WSkqK03XY7XZdf/31ysrKUkFBgdNx//a3vykrK0tZWVlauXKlUlJSNG7cOM2ZM8dpO1d/xwceeEDbtm3Tp59+KknKz8/Xq6++qpSUFFWvXl2StGLFClksFt12221OccbHx6t9+/aOIYXLLrtMNWvW1KRJkzR//nzt3LnzPL8CUBaJPADUrl1bkZGRysnJcWn7n376SZJUr169MusSEhIc60vVqlWrzHZWq1UnT568gGjL16RJE3344YeqW7euxo0bpyZNmqhJkyZ67rnnzrnfTz/9dNbrKF1/pt9eS+l8AneuxWKxaMSIEXrttdc0f/58NWvWTFdddVW5237++efq27evpNN3FXz66afKysrS5MmT3T5vedd5rhiHDx+uU6dOKT4+3qWx8b1796pq1apOy4YNG1w+Z3R0tP785z9r1apVjn8s/tbQoUM1Z84cjRo1Sh988IE+//xzZWVlqU6dOuf9Lvr166d69epp4cKFkqQjR45o+fLluuOOOxQaGipJji7pW265pcy1TJ8+XcaYMrdhtmzZUl26dFGXLl10/fXX64UXXlDfvn01ceJEHT16VJJ7v+OAAQPUsGFDPf/885JOzwcpKChw6lb/4YcfZIxRXFxcmTg3b97sGGaIiYnRhg0b1KFDBz366KNq3bq1EhISNGXKFKc5EMC5cPtZAAgNDVWvXr20cuVK7d+//7y3Z5Ums4MHD5bZ9sCBA46xRm8IDw+XJBUWFjpNwitvPPSqq67SVVddJZvNpuzsbM2ePVvjx49XXFycBg8eXO7xa9WqpYMHD5ZpP3DggCR59VrONHz4cD3++OOaP3++pk6detbtlixZoqpVq2rFihWO70KSli1b5vY5y5s0eDYHDx7UuHHj1KFDB+3YsUMPPfSQZs2adc59EhISlJWV5dTWvHlzt2IcM2aMnnvuOU2aNEljxoxxWvfLL79oxYoVmjJliv70pz852gsLC116xkFoaKhuv/12zZo1S0ePHtXixYtVWFioESNGOLYp/b1nz56tK664otzjxMXFnfdc7dq10wcffKBvvvlGl19+uVu/Y0hIiMaNG6dHH31UzzzzjObOnatevXo5fZe1a9eWxWLRxx9/XO7k1DPb2rZtqyVLlsgYo6+++kqLFi3Sk08+qYiICKfvETgbKvIA8cgjj8gYo7vuuqvcyWHFxcV67733JJ2ePSvJMVmtVFZWlnbt2qVevXp5La7SmddfffWVU3tpLOUJDQ1Vt27dHBXNF198cdZte/XqpbVr1zoSd6m//e1vioyMPOtf5p665JJL9PDDDys5OVkpKSln3c5isahKlSqOilE6Xb29+uqrZbb1Vi+HzWbTkCFDZLFYtHLlSqWnp2v27Nl65513zrlfWFiYozItXdy9Lz4sLExPP/20srKy9Pe//91pncVikTGmTOJ66aWXXJ5sOGLECJ06dUpvvPGGFi1apKSkJLVo0cKx/sorr1SNGjW0c+fOMtdSuoSFhZ33PNu2bZMk1alTxxG7q7+jJI0aNUphYWEaNmyYdu/erXvvvddp/Y033ihjjL7//vtyYyxvGMRisah9+/Z69tlnVaNGjXP+fwGciYo8QCQlJWnevHkaO3asOnfurDFjxqh169YqLi7W1q1btWDBArVp00bJyclq3ry5Ro8erdmzZyskJET9+vXT3r179dhjjykxMVF//OMfvRbXDTfcoNjYWI0cOVJPPvmkqlSpokWLFik3N9dpu/nz52vt2rXq37+/6tevr1OnTjlmhvfu3fusx58yZYpWrFiha665Ro8//rhiY2P1+uuv65///KdmzJihmJgYr13Lb5X3NLPf6t+/v2bOnKmhQ4dq9OjR+umnn/TXv/613CqstPJ688031bhxY4WHh7s0rv1bU6ZM0ccff6zVq1crPj5eDz74oDZs2KCRI0eqY8eOatSokdvHdMeQIUP017/+VStXrnRqj46O1tVXX62//OUvql27tho2bKgNGzbo5ZdfVo0aNVw6dosWLZSUlKT09HTl5uZqwYIFTuurV6+u2bNnKyUlRT///LNuueUW1a1bV4cPH9aXX36pw4cPa968eU77fP311yopKZF0eijmnXfe0Zo1a3TTTTc5vit3fkdJqlGjhu644w7NmzdPDRo0KPNgmSuvvFKjR4/WiBEjlJ2drauvvlrVqlXTwYMH9cknn6ht27YaM2aMVqxYoblz52rgwIFq3LixjDF65513dPToUfXp08el7wxg1nqA2bZtm0lJSTH169c3YWFhplq1aqZjx47m8ccfN4cOHXJsZ7PZzPTp002zZs1M1apVTe3atc1tt91mcnNznY7Xo0cP07p16zLnSUlJMQ0aNHBqUzmz1o0x5vPPPzfdu3c31apVM5dccomZMmWKeemll5xmrW/atMncdNNNpkGDBsZqtZpatWqZHj16mOXLl5c5x5mz1o0xZvv27SY5OdnExMSYsLAw0759e7Nw4UKnbUpnQf/97393as/JyTGSymz/W64+3KS8meevvPKKad68ubFaraZx48YmPT3dvPzyy07Xb4wxe/fuNX379jVRUVFGkuP7PVvsZ64rnd29evVqExISUuY7+umnn0z9+vVN165dTWFh4TmvwR1n+81Xr17tmAV+5ne2f/9+c/PNN5uaNWuaqKgoc/3115uvv/7aNGjQwKSkpJz1us60YMECI6ncB/OU2rBhg+nfv7+JjY01VatWNZdcconp37+/03dY3qz1mJgY06FDBzNz5swyD1Zy9XcstX79eiPJTJs27azf3yuvvGK6detmqlWrZiIiIkyTJk3MHXfcYbKzs40xxvz73/82Q4YMMU2aNDEREREmJibGXH755WbRokVnPSbwWxZj3Ji2CgCQJD344IOaN2+ecnNzy50wClwsdK0DgBs2b96sb775RnPnztXdd99NEofPUZEDgBssFosiIyN1ww03aOHChY57xwFfoSIHADdQ+8DfcPsZAAABjEQOAEAAI5EDABDAAnqM3G6368CBA4qKinLr8ZYAAP9gjNGxY8eUkJCgkJCKqy1PnTp1zlcmuyosLMzpMb7+IKAT+YEDB1x+PzcAwH/l5uae9z0SF+rUqVNq1KC68g659qjgc4mPj1dOTo5fJfOATuSlz4ne90VDRVdnlACV003N3H+MKxAoSlSsT/S+28/9d0dRUZHyDtm0b0tDRUddeK7IP2ZXg857VVRURCL3ltLu9OjqIR79OIA/q2Kp6usQgIrz6918F2N4tHqURdWjLvw8dvnnEG5AJ3IAAFxlM3bZPHgMgM3YvReMF5HIAQBBwS4juy48k3uyb0WiPxoAgABGRQ4ACAp22eVJ57hne1ccEjkAICjYjJHNg2fle7JvRaJrHQCAAEZFDgAICkx2AwAggNllZPNgcTeRp6amymKxOC3x8fGO9cYYpaamKiEhQREREerZs6d27Njh9nWRyAEAqCCtW7fWwYMHHcv27dsd62bMmKGZM2dqzpw5ysrKUnx8vPr06aNjx465dQ661gEAQcEXXetVqlRxqsJLGWOUkZGhyZMna9CgQZKkzMxMxcXFafHixbr77rtdPgcVOQAgKJTOWvdkcdd//vMfJSQkqFGjRho8eLC+/fZbSVJOTo7y8vLUt29fx7ZWq1U9evTQxo0b3ToHFTkAAG7Iz893+my1WmW1Wsts161bN/3tb39Ts2bN9MMPP+jpp59W9+7dtWPHDuXl5UmS4uLinPaJi4vTvn373IqHihwAEBTsXlgkKTExUTExMY4lPT293PP169dPN998s9q2bavevXvrn//8p6TTXeilfvuyGGOM2y+QoSIHAASF0tnnnuwvnX53enR0tKO9vGq8PNWqVVPbtm31n//8RwMHDpQk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FMBt3H4Gl3Tr1k2dOnXSvHnzHG0tW7bUwIEDlZ6e7sPIAO+yWCxaunSpBg4c6OtQAJdQkeO8ioqKtGXLFvXt29epvW/fvtq4caOPogIASCRyuODHH3+UzWZTXFycU3tcXJzy8vJ8FBUAQCKRww2/fVWsMYbXxwKAj5HIcV61a9dWaGhomer70KFDZap0AMDFRSLHeYWFhalz585as2aNU/uaNWvUvXt3H0UFAJCkKr4OAIFhwoQJuv3229WlSxclJSVpwYIF+u6773TPPff4OjTAY8ePH9eePXscn3NycrRt2zbFxsaqfv36PowMOD9uP4PL5s6dqxkzZujgwYNq06aNnn32WV199dW+Dgvw2Pr163XNNdeUaU9JSdGiRYsufkCAG0jkAAAEMMbIAQAIYCRyAAACGIkcAIAARiIHACCAkcgBAAhgJHIAAAIYiRwAgABGIgc8lJqaqg4dOjg+Dx8+3Cfvst67d68sFou2bdt21m0aNmyojIwMl4+5aNEi1ahRw+PYLBaLli1b5vFxAJRFIkelNHz4cFksFlksFlWtWlWNGzfWQw89pIKCggo/93PPPefy08BcSb4AcC48ax2V1vXXX6+FCxequLhYH3/8sUaNGqWCggLNmzevzLbFxcWqWrWqV84bExPjleMAgCuoyFFpWa1WxcfHKzExUUOHDtWwYcMc3bul3eGvvPKKGjduLKvVKmOMfvnlF40ePVp169ZVdHS0rr32Wn355ZdOx502bZri4uIUFRWlkSNH6tSpU07rf9u1brfbNX36dF122WWyWq2qX7++pk6dKklq1KiRJKljx46yWCzq2bOnY7+FCxeqZcuWCg8PV4sWLTR37lyn83z++efq2LGjwsPD1aVLF23dutXt72jmzJlq27atqlWrpsTERI0dO1bHjx8vs92yZcvUrFkzhYeHq0+fPsrNzXVa/95776lz584KDw9X48aN9cQTT6ikpMTteAC4j0SOoBEREaHi4mLH5z179uitt97S22+/7eja7t+/v/Ly8vT+++9ry5Yt6tSpk3r16qWff/5ZkvTWW29pypQpmjp1qrKzs1WvXr0yCfa3HnnkEU2fPl2PPfaYdu7cqcWLFzve4/75559Lkj788EMdPHhQ77zzjiTpxRdf1OTJkzV16lTt2rVLaWlpeuyxx5SZmSlJKigo0I033qjmzZtry5YtSk1N1UMPPeT2dxISEqJZs2bp66+/VmZmptauXauJEyc6bXPixAlNnTpVmZmZ+vTTT5Wfn6/Bgwc71n/wwQe67bbbdP/992vnzp164YUXtGjRIsc/VgBUMANUQikpKWbAgAGOz5999pmpVauW+cMf/mCMMWbKlCmmatWq5tChQ45t/vWvf5no6Ghz6tQpp2M1adLEvPDCC8YYY5KSksw999zjtL5bt26mffv25Z47Pz/fWK1W8+KLL5YbZ05OjpFktm7d6tSemJhoFi9e7NT21FNPmaSkJGOMMS+88IKJjY01BQUFjvXz5s0r91hnatCggXn22WfPuv6tt94ytWrVcnxeuHChkWQ2b97saNu1a5eRZD777DNjjDFXXXWVSUtLczrOq6++aurVq+f4LMksXbr0rOcFcOEYI0eltWLFClWvXl0lJSUqLi7WgAEDNHv2bMf6Bg0aqE6dOo7PW7Zs0fHjx1WrVi2n45w8eVL//e9/JUm7du0q8w72pKQkrVu3rtwYdu3apcLCQvXq1cvluA8fPqzc3FyNHDlSd911l6O9pKTEMf6+a9cutW/fXpGRkU5xuGvdunVKS0vTzp07lZ+fr5KSEp06dUoFBQWqVq2aJKlKlSrq0qWLY58WLVqoRo0a2rVrly6//HJt2bJFWVlZThW4zWbTqVOndOLECacYAXgfiRyV1jXXXKN58+apatWqSkhIKDOZrTRRlbLb7apXr57Wr19f5lgXegtWRESE2/vY7XZJp7vXu3Xr5rQuNDRUkmS88Pbhffv26YYbbtA999yjp556SrGxsfrkk080cuRIpyEI6fTtY79V2ma32/XEE09o0KBBZbYJDw/3OE4A50YiR6VVrVo1XXbZZS5v36lTJ+Xl5alKlSpq2LBhudu0bNlSmzdv1h133OFo27x581mP2bRpU0VEROhf//qXRo0aVWZ9WFiYpNMVbKm4uDhdcskl+vbbbzVs2LByj9uqVSu9+uqrOnnypOMfC+eKozzZ2dkqKSnRM888o5CQ09Nl3nrrrTLblZSUKDs7W5dffrkkaffu3Tp69KhatGgh6fT3tnv3bre+awDeQyIHftW7d28lJSVp4MCBmj59upo3b64DBw7o/fff18CBA9WlSxc98MADSklJUZcuXfS73/1Or7/+unbs2KHGjRuXe8zw8HBNmjRJEydOVFhYmK688kodPnxYO3bs0MiRI1W3bl1FRERo1apVuvTSSxUeHq6YmBilpqbq/vvvV3R0tPr166fCwkJlZ2fryJEjmjBhgoYOHarJkydr5MiR+vOf/6y9e/fqr3/9q1vX26RJE5WUlGj27NlKTk7Wp59+qvnz55fZrmrVqrrvvvs0a9YsVa1aVffee6+uuOIKR2J//PHHdeONNyoxMVG///3vFRISoq+++krbt2/X008/7f4PAcAtzFoHfmWxWPT+++/r6quv1p133qlmzZpp8ODB2rt3r2OW+a233qrHH39ckyZNUufOnbVv3z6NGTPmnMd97LHH9OCDD+rxxx9Xy5Ytdeutt+rQoUOSTo8/z5o1Sy+88IISEhI0YMAASdKoUaP00ksvadGiRWrbtq169OihRYsWOW5Xq169ut577z3t3LlTHTt21OTJkzV9+nS3rrdDhw6aOXOmpk+frjZt2uj1119Xenp6me0iIyM1adIkDR06VElJSYqIiNCSJUsc66+77jqtWLFCa9asUdeuXXXFFVdo5syZatCggVvxALgwFuONwTYAAOATVOQAAAQwEjkAAAGMRA4AQAAjkQMAEMBI5AAABDASOQAAAYxEDgBAACORAwAQwEjkAAAEMBI5AAABjEQOAEAAI5EDABDA/h+EWSCCETXFTwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== SVM-RBF ===\n", "ROC AUC: 0.9584905660377359\n", "PR AUC: 0.6075757575757575\n", "Brier Score: 0.044092930410943365\n", "Report:\n", " precision recall f1-score support\n", "\n", " 0 0.962 0.962 0.962 53\n", " 1 0.600 0.600 0.600 5\n", "\n", " accuracy 0.931 58\n", " macro avg 0.781 0.781 0.781 58\n", "weighted avg 0.931 0.931 0.931 58\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAHFCAYAAAAJ7nvFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA8RklEQVR4nO3deVyVdfr/8fcB4QAK5ApSoGi4L6mYSRk2KQ2ZX82aMq1RsxVbHC37OU5Ki6BWRmVqVirjZObMqC3j+NXGtCm10LRM/dqGSiVumSgi2/n8/nA40wlUjufg2V7PedyP6dzrddCHF9f1+dz3bTHGGAEAAJ8U5OkAAADA+SORAwDgw0jkAAD4MBI5AAA+jEQOAIAPI5EDAODDSOQAAPgwEjkAAD6MRA4AgA8jkfu5L774QqNGjVJiYqLCwsLUoEEDde/eXTNmzNBPP/1Up9feunWrUlNTFR0dLYvFopycHLdfw2KxKDMz0+3nPZeFCxfKYrHIYrFo3bp11bYbY3TppZfKYrGob9++53WN2bNna+HChU4ds27dujPGdCEcOXJEEydOVIcOHVS/fn1FR0erXbt2uuOOO/TFF19Ikm688UaFh4fr559/PuN5hg8frpCQEB04cECS7D/rkSNH1rj/k08+ad9nz54954wzMzPTvr/FYlFISIgSEhJ09913q7CwsNr+LVu2dNg/LCxMl156qcaNG6fDhw+f9dy/XGbNmnXO2ABn1fN0AKg7r776qjIyMtS2bVs9+uij6tChg8rLy7V582bNnTtXGzdu1PLly+vs+nfeeaeKi4u1ZMkSNWzYUC1btnT7NTZu3KhLLrnE7eetrcjISL3++uvVkvX69ev17bffKjIy8rzPPXv2bDVp0uSMyasm3bt318aNG9WhQ4fzvu75OnHihK644gqdOHFCjz76qLp27aqSkhJ99dVXWrZsmbZt26YuXbpo9OjRWrFihRYvXqyMjIxq5zl27JiWL1+uG264QTExMfb1kZGR+utf/6qXXnrJ4edqjNHChQsVFRWloqIip2JetWqVoqOjdeLECa1evVrPPfecNmzYoG3btikkJMRh3yuvvFLPPvusJKmkpESbN29WZmamPvzwQ23evPmM5/6lxMREp+IDasXAL23YsMEEBweb3/72t+bUqVPVtpeWlpq33367TmOoV6+euf/+++v0Gp6yYMECI8ncddddJjw83Bw7dsxh++2332569+5tOnbsaFJTU8/rGs4cW1ZWZsrLy8/rOu4yf/58I8msXbu2xu2VlZXGGGMqKipMXFyc6dGjR437zZkzx0gy7777rn2dJHP77beb8PBwM2/ePIf933//fSPJ3H333UaSyc/PP2esU6ZMMZLMoUOHHNaPGjWqxu/QokULM2DAgGrnefzxx40ks3v37nOeG6grtNb9VFZWliwWi+bNmyer1Vpte2hoqP7nf/7H/tlms2nGjBlq166drFarmjVrpt///vf6/vvvHY7r27evOnXqpLy8PPXp00cRERFq1aqVpk2bJpvNJum/beeKigrNmTPH3laU/tt2/LWqY37ZFl27dq369u2rxo0bKzw8XAkJCbrpppt08uRJ+z41tda//PJLDRo0SA0bNlRYWJguu+wy5ebmOuxT1YJ+8803NWnSJMXFxSkqKkr9+vXT7t27a/dDlnTbbbdJkt588037umPHjunvf/+77rzzzhqPeeKJJ9SrVy81atRIUVFR6t69u15//XWZX7y/qGXLltqxY4fWr19v//lVdTSqYl+0aJHGjx+viy++WFarVd9880211vrhw4cVHx+vlJQUlZeX28+/c+dO1a9fX3fccUetv+u5HDlyRJLUvHnzGrcHBZ3+5yY4OFgjRozQli1btH379mr7LViwQM2bN1d6errD+ujoaN14442aP3++w/r58+fryiuvVJs2bVz+DsnJyZJkb+mfS1XF/evqHbiQSOR+qLKyUmvXrlWPHj0UHx9fq2Puv/9+PfbYY+rfv7/eeecdPfXUU1q1apVSUlKqjQEWFhZq+PDhuv322/XOO+8oPT1dEydO1F/+8hdJ0oABA7Rx40ZJ0s0336yNGzfaP9fWnj17NGDAAIWGhmr+/PlatWqVpk2bpvr166usrOyMx+3evVspKSnasWOHXnzxRS1btkwdOnTQyJEjNWPGjGr7//GPf9TevXv12muvad68efr66681cOBAVVZW1irOqKgo3XzzzQ7J5c0331RQUJBuvfXWM363e++9V0uXLtWyZcs0ZMgQPfjgg3rqqafs+yxfvlytWrVSt27d7D+/Xw+DTJw4Ufv27dPcuXP17rvvqlmzZtWu1aRJEy1ZskR5eXl67LHHJEknT57U7373OyUkJGju3Lm1+p610bt3b0nS73//e61YscKe2Gty5513ymKxVEvKO3fu1KeffqoRI0YoODi42nGjR4/Wpk2btGvXLknSzz//rGXLlmn06NFu+Q75+fmSVOMvBcYYVVRUqKKiQidOnNAHH3ygnJwcXXnllTW2zCsrK+37V1RU1PrvFOA0T7cE4H6FhYVGkhk6dGit9t+1a5eRZDIyMhzWf/LJJ0aS+eMf/2hfl5qaaiSZTz75xGHfDh06mOuuu85hnSQzZswYh3VVbcdfq2pVV7VF//a3vxlJZtu2bWeNXZKZMmWK/fPQoUON1Wo1+/btc9gvPT3dREREmJ9//tkYY8wHH3xgJJnrr7/eYb+lS5caSWbjxo1nvW5VvHl5efZzffnll8YYY3r27GlGjhxpjDl3e7yystKUl5ebJ5980jRu3NjYbDb7tjMdW3W9q6+++ozbPvjgA4f106dPN5LM8uXLzYgRI0x4eLj54osvzvodz8eTTz5pQkNDjSQjySQmJpr77rvPfP7559X2TU1NNU2aNDFlZWX2dePHjzeSzFdffeWwb9XfJZvNZhITE80jjzxijDHm5ZdfNg0aNDDHjx83zzzzjNOt9cLCQlNeXm6OHj1qli5daurXr29uu+22avu3aNHC/p1+uVx++eVm//79NZ7718vFF19cmx8h4DQqcuiDDz6QpGqTqi6//HK1b99e//rXvxzWx8bG6vLLL3dY16VLF+3du9dtMV122WUKDQ3VPffco9zcXH333Xe1Om7t2rW69tprq3UiRo4cqZMnT1brDPxyeEE6/T0kOfVdUlNT1bp1a82fP1/bt29XXl7eGdvqVTH269dP0dHRCg4OVkhIiCZPnqwjR47o4MGDtb7uTTfdVOt9H330UQ0YMEC33XabcnNz9dJLL6lz587nPO6XFWVFRYVD+78mjz/+uPbt26f58+fr3nvvVYMGDTR37lz16NHDYfhBOl1dHz58WO+88479Wn/5y1/Up08fJSUl1Xj+qpnrixYtUkVFhV5//XXdcsstatCgQbV9zS8q6Krl12JjYxUSEqKGDRvqlltuUY8ePaoNw1S56qqrlJeXp7y8PH388cd6/fXXdejQIf3mN7+p1rWSpPfff9++f15enlauXHnWnx1wvkjkfqhJkyaKiIiwtwnP5Wxjm3FxcdVapI0bN662n9VqVUlJyXlEW7PWrVvr/fffV7NmzTRmzBi1bt1arVu31gsvvHDW444cOXLG71G1/Zd+/V2q5hM4810sFotGjRqlv/zlL5o7d67atGmjPn361Ljvp59+qrS0NEmn7yr4+OOPlZeXp0mTJjl93TONRZ8pxpEjR+rUqVOKjY2t1dj4nj17FBIS4rCsX7/+nMfFxMRo1KhRmjt3rr744gutX79eoaGhevjhhx32u/nmmxUdHa0FCxZIklauXKkDBw6cs00+atQoHTp0SFlZWfrss8/OuH9ubm61+H+tKtn+7//+r2666SZ9+OGHevDBB2s8X3R0tJKTk5WcnKyUlBTdeeedWrx4sXbt2qXnnnuu2v5du3a175+cnGz/JRFwNxK5HwoODta1116rLVu2VJusVpOqZLZ///5q23788Uc1adLEbbGFhYVJkkpLSx3W11TR9OnTR++++66OHTumTZs2qXfv3ho7dqyWLFlyxvM3btz4jN9Dklu/yy+NHDlShw8f1ty5czVq1Kgz7rdkyRKFhITovffe0y233KKUlBT7BCtn1TRp8Ez279+vMWPG6LLLLtORI0f0yCOPnPOYuLg4h4oyLy9PPXr0cDrOq6++WmlpaTp06JBDxyE8PFy33XabVq1apf3792v+/PmKjIzU7373u7OeLz4+Xv369dMTTzyhtm3bKiUlpcb9Bg4cWC3+X6tKtmlpafrrX/+q/v37a968eTXuW5Oq5Pz555/Xan+gLpDI/dTEiRNljNHdd99d4+Sw8vJyvfvuu5Kk3/zmN5Jkn6xWJS8vT7t27dK1117rtriqZl5XPRykSlUsNQkODlavXr308ssvS5I+++yzM+577bXXau3atfbEXeXPf/6zIiIidMUVV5xn5Gd38cUX69FHH9XAgQM1YsSIM+5nsVhUr149h4lcJSUlWrRoUbV93dXlqKys1G233SaLxaJ//vOfys7O1ksvvaRly5ad9bjQ0FCHijI5Ofms98UfOHDAfufCr6//9ddfKyIiQhdddJHDttGjR6uyslLPPPOMVq5cqaFDhyoiIuKc32n8+PEaOHCgHn/88TPu07hx42rxn43FYtHLL7+s4OBg/elPfzpnDJK0bds2SapxoiFwofBAGD/Vu3dvzZkzRxkZGerRo4fuv/9+dezYUeXl5dq6davmzZunTp06aeDAgWrbtq3uuecevfTSSwoKClJ6err27Nmjxx9/XPHx8frDH/7gtriuv/56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47l+qUWLFub5558/4/alS5eaxo0b2z8vWLDASDKbNm2yr9u1a5eRZD755BNjjDF9+vQxWVlZDudZtGiRad68uf2zJLN8+fIzXhfA+WOMHH7rvffeU4MGDVRRUaHy8nINGjRIL730kn17ixYt1LRpU/vnLVu26MSJE2rcuLHDeUpKSvTtt99Kknbt2lXtHey9e/fWBx98UGMMu3btUmlpqa699tpax33o0CEVFBRo9OjRuvvuu+3rKyoq7OPvu3btUteuXRUREeEQh7M++OADZWVlaefOnSoqKlJFRYVOnTql4uJi1a9fX5JUr149JScn249p166dLrroIu3atUuXX365tmzZory8PIcKvLKyUqdOndLJkycdYgTgfiRy+K1rrrlGc+bMUUhIiOLi4qpNZqtKVFVsNpuaN2+udevWVTvX+d6CFR4e7vQxNptN0un2eq9evRy2BQcHS5KMG94+vHfvXl1//fW677779NRTT6lRo0b66KOPNHr0aIchCOn07WO/VrXOZrPpiSee0JAhQ6rtExYW5nKcAM6ORA6/Vb9+fV166aW13r979+4qLCxUvXr11LJlyxr3ad++vTZt2qTf//739nWbNm064zmTkpIUHh6uf/3rX7rrrruqbQ8NDZV0uoKtEhMTo4svvljfffedhg8fXuN5O3TooEWLFqmkpMT+y8LZ4qjJ5s2bVVFRoeeee05BQaenyyxdurTafhUVFdq8ebMuv/xySdLu3bv1888/q127dpJO/9x2797t1M8agPuQyIH/6Nevn3r37q3Bgwdr+vTpatu2rX788UetXLlSgwcPVnJysh5++GGNGDFCycnJuuqqq/TGG29ox44datWqVY3nDAsL02OPPaYJEyYoNDRUV155pQ4dOqQdO3Zo9OjRatasmcLDw7Vq1SpdcsklCgsLU3R0tDIzM/XQQw8pKipK6enpKi0t1ebNm3X06FGNGzdOw4YN06RJkzR69Gj96U9/0p49e/Tss8869X1bt26tiooKvfTSSxo4cKA+/vhjzZ07t9p+ISEhevDBB/Xiiy8qJCREDzzwgK644gp7Yp88ebJuuOEGxcfH63e/+52CgoL0xRdfaPv27Xr66aed/4MA4BRmrQP/YbFYtHLlSl199dW688471aZNGw0dOlR79uyxzzK/9dZbNXnyZD322GPq0aOH9u7dq/vvv/+s53388cc1fvx4TZ48We3bt9ett96qgwcPSjo9/vziiy/qlVdeUVxcnAYNGiRJuuuuu/Taa69p4cKF6ty5s1JTU7Vw4UL77WoNGjTQu+++q507d6pbt26aNGmSpk+f7tT3veyyyzRz5kxNnz5dnTp10htvvKHs7Oxq+0VEROixxx7TsGHD1Lt3b4WHh2vJkiX27dddd53ee+89rVmzRj179tQVV1yhmTNnqkWLFk7FA+D8WIw7BtsAAIBHUJEDAODDSOQAAPgwEjkAAD6MRA4AgA8jkQMA4MNI5AAA+DASOQAAPoxEDgCADyORAwDgw0jkAAD4MBI5AAA+jEQOAIAP+/86cyOQTxCOIwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== kNN ===\n", "ROC AUC: 0.8113207547169812\n", "PR AUC: 0.7272413793103449\n", "Brier Score: 0.03546588743258093\n", "Report:\n", " precision recall f1-score support\n", "\n", " 0 0.981 0.981 0.981 53\n", " 1 0.800 0.800 0.800 5\n", "\n", " accuracy 0.966 58\n", " macro avg 0.891 0.891 0.891 58\n", "weighted avg 0.966 0.966 0.966 58\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAHFCAYAAAAJ7nvFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA35UlEQVR4nO3deXRU9fnH8c9lySSBTGSRhEiAgOw7ASG0ShSIRuQHRSsIVaKISnChKFhMlaCSAFqKgmxWIVoR/FWhapWCZdEKaEBQCPxokbAVIqBoICxZ5v7+wEwdwzKTmWFmct+vc+45zl2fiTk8eZ7v995rmKZpCgAAhKRqgQ4AAABUHokcAIAQRiIHACCEkcgBAAhhJHIAAEIYiRwAgBBGIgcAIISRyAEACGEkcgAAQhiJHB756quvdPfddyshIUHh4eGqXbu2unbtqunTp+u7777z67W3bNmi3r17Kzo6WoZhaObMmT6/hmEYyszM9Pl5L2XRokUyDEOGYWjt2rUVtpumqauvvlqGYSg5OblS15gzZ44WLVrk0TFr1669YEz+tnfvXhmGoeeff/6i+5XHaBiGNmzYUGF7Wlqaateu7bIuOTlZhmHopptuqvR1gWBRI9ABIHS8/PLLSk9PV6tWrTR+/Hi1bdtWJSUl2rRpk+bNm6cNGzZo2bJlfrv+Pffco6KiIi1ZskR16tRR06ZNfX6NDRs2qFGjRj4/r7uioqL0yiuvVEjW69at09dff62oqKhKn3vOnDmqX7++0tLS3D6ma9eu2rBhg9q2bVvp615OEyZM0CeffOL2/n//+9+1evVq3XDDDX6MCvAvEjncsmHDBo0ePVr9+vXT8uXLZbPZnNv69eunRx99VCtWrPBrDNu3b9eoUaOUmprqt2v07NnTb+d2x5AhQ/TGG2/opZdekt1ud65/5ZVXlJSUpMLCwssSR0lJiQzDkN1uD/jPxF033XSTVqxYoffee08DBgy45P4tW7ZUaWmpJkyYoNzcXBmGcRmiBHyP1jrckpWVJcMwtGDBApckXi4sLEz/8z//4/zscDg0ffp0tW7dWjabTQ0aNNBdd92lgwcPuhyXnJys9u3bKzc3V9dee60iIyPVrFkzTZ06VQ6HQ9J/286lpaWaO3eus40qSZmZmef9B7j8mL179zrXrV69WsnJyapXr54iIiLUuHFj3XrrrTp16pRzn/O11rdv366BAweqTp06Cg8PV+fOnZWTk+OyT3l7980331RGRobi4uJkt9vVt29f7dq1y70fsqQ77rhDkvTmm2861/3www96++23dc8995z3mMmTJ6tHjx6qW7eu7Ha7unbtqldeeUU/fR9S06ZNlZeXp3Xr1jl/fuUdjfLYX3/9dT366KO66qqrZLPZtHv37gqt9WPHjik+Pl69evVSSUmJ8/w7duxQrVq1dOedd7r9XSujpKREI0aMUO3atfX++++7bEtLS1Pbtm01ceJElZWVXfJcNWvW1JQpU7R582YtXbrUXyEDfkcixyWVlZVp9erVSkxMVHx8vFvHjB49Wo8//rj69eund999V88884xWrFihXr166dixYy77FhQUaPjw4frNb36jd999V6mpqZo4caL+/Oc/S5L69+/vHPu87bbbtGHDhvOOhV7M3r171b9/f4WFhenVV1/VihUrNHXqVNWqVUvFxcUXPG7Xrl3q1auX8vLy9OKLL+qdd95R27ZtlZaWpunTp1fY/4knntC+ffv0pz/9SQsWLNC///1vDRgwwK3EIkl2u1233XabXn31Vee6N998U9WqVdOQIUMu+N3uv/9+vfXWW3rnnXc0ePBgPfTQQ3rmmWec+yxbtkzNmjVTly5dnD+/nw+DTJw4Ufv379e8efP03nvvqUGDBhWuVb9+fS1ZskS5ubl6/PHHJUmnTp3Sr3/9azVu3Fjz5s1z63tWxvfff68bb7xRK1eu1Lp163TLLbe4bK9evbqys7OVl5dX4Q+tCxkyZIgSExP1+9//3uUPEyCkmMAlFBQUmJLMoUOHurX/zp07TUlmenq6y/rPPvvMlGQ+8cQTznW9e/c2JZmfffaZy75t27Y1b7zxRpd1kswxY8a4rJs0aZJ5vl/jhQsXmpLM/Px80zRN8y9/+Yspydy6detFY5dkTpo0yfl56NChps1mM/fv3++yX2pqqhkZGWl+//33pmma5po1a0xJ5s033+yy31tvvWVKMjds2HDR65bHm5ub6zzX9u3bTdM0ze7du5tpaWmmaZpmu3btzN69e1/wPGVlZWZJSYn59NNPm/Xq1TMdDodz24WOLb/eddddd8Fta9ascVk/bdo0U5K5bNkyc8SIEWZERIT51VdfXfQ7eio/P9+UZD733HNmfn6+2bZtW7Nt27bm3r17zxvj//7v/5qmaZq//OUvzUaNGpmnT582TdM0R4wYYdaqVcvlmN69e5vt2rUzTdM0P/roI1OSOWvWrArXBUIBFTl8bs2aNZJUYVLVNddcozZt2ugf//iHy/rY2Fhdc801Lus6duyoffv2+Symzp07KywsTPfdd59ycnK0Z88et45bvXq1+vTpU6ETkZaWplOnTlXoDPx0eEE69z0kefRdevfurebNm+vVV1/Vtm3blJube8G2enmMffv2VXR0tKpXr66aNWvqqaee0rfffqsjR464fd1bb73V7X3Hjx+v/v3764477lBOTo5mzZqlDh06XPK40tJSl8X8Sfv/Qr744gv17NlTMTEx+vTTT9WkSZOL7j9t2jQdPHhQL7zwglvfpU+fPkpJSdHTTz+tEydOuHUMEExI5Lik+vXrKzIyUvn5+W7t/+2330qSGjZsWGFbXFycc3u5evXqVdjPZrPp9OnTlYj2/Jo3b66PPvpIDRo00JgxY9S8eXM1b978kv/Yf/vttxf8HuXbf+rn36V8PoEn38UwDN19993685//rHnz5qlly5a69tprz7vv559/rpSUFEnn7ir49NNPlZubq4yMDI+ve77vebEY09LSdObMGcXGxro1Nr53717VrFnTZVm3bt0lj1u1apW++eYb3XvvvbriiisuuX+vXr00aNAgTZ06VcePH3fn62jatGk6duwYt5whJJHIcUnVq1dXnz59tHnz5gqT1c6nPJkdPny4wrZDhw6pfv36PostPDxcknT27FmX9T8fh5eka6+9Vu+9955++OEHbdy4UUlJSRo7dqyWLFlywfPXq1fvgt9Dkk+/y0+lpaXp2LFjmjdvnu6+++4L7rdkyRLVrFlT77//vm6//Xb16tVL3bp1q9Q1PZm1ffjwYY0ZM0adO3fWt99+q8cee+ySx8TFxSk3N9dlSUxMvORx48eP13333ae77rpLr732mlvxZWdn68SJE8rKynJr/86dO+uOO+7QjBkz9M0337h1DBAsSORwy8SJE2WapkaNGnXeyWElJSV67733JMl5T275ZLVyubm52rlzp/r06eOzuMpnXn/11Vcu68tjOZ/q1aurR48eeumllySda91eSJ8+fbR69Wpn4i732muvKTIy0m+3Zl111VUaP368BgwYoBEjRlxwP8MwVKNGDVWvXt257vTp03r99dcr7OurLkdZWZnuuOMOGYahDz/8UNnZ2Zo1a5beeeedix4XFhambt26uSzu3BdfrVo1zZ8/X4888ojS0tI0d+7cSx7TunVr3XPPPZo1a5b279/v1vd69tlnVVxcrMmTJ7u1PxAsuI8cbklKStLcuXOVnp6uxMREjR49Wu3atVNJSYm2bNmiBQsWqH379howYIBatWql++67T7NmzVK1atWUmpqqvXv36sknn1R8fLx++9vf+iyum2++WXXr1tXIkSP19NNPq0aNGlq0aJEOHDjgst+8efO0evVq9e/fX40bN9aZM2ecM8P79u17wfNPmjRJ77//vq6//no99dRTqlu3rt544w397W9/0/Tp0xUdHe2z7/JzU6dOveQ+/fv314wZMzRs2DDdd999+vbbb/X888+f9xbBDh06aMmSJVq6dKmaNWum8PBwt8a1f27SpEn65JNPtHLlSsXGxurRRx/VunXrNHLkSHXp0kUJCQken9Mdf/jDHxQVFaX09HSdPHlS48ePv+j+mZmZeuONN7RmzRrVqlXrkudPSEjQ6NGj3R5bB4IFFTncNmrUKG3atEmJiYmaNm2aUlJSNGjQIL355psaNmyYFixY4Nx37ty5mjp1qj744APdcsstysjIUEpKitavX3/eMfHKstvtWrFihaKiovSb3/xGDzzwgNq3b+8cIy7XuXNnlZaWatKkSUpNTdWdd96po0eP6t1333WOMZ9Pq1attH79erVq1UpjxozRoEGDtH37di1cuPCSieRyuOGGG5yT4gYMGKCMjAzddttt+t3vfldh38mTJ6t3794aNWqUrrnmGrcemvJzq1atUnZ2tp588kmXzsqiRYtkt9s1ZMiQi97O563MzEw999xzmjBhgiZNmnTRfePi4jR27FiPzv/73//e5UE8QCgwTHemjQIAgKBERQ4AQAgjkQMAEMJI5AAAhDASOQAAIYxEDgBACCORAwAQwkL6gTAOh0OHDh1SVFSUR4+XBAAEB9M0deLECcXFxalaNf/VlmfOnPHJMw7CwsKcj4YOFiGdyA8dOuT2+7EBAMHrwIEDatSokV/OfebMGSU0qa2CI2Venys2Nlb5+flBlcxDOpGXP6d53xdNZa/NKAGqpl+19PwxqkCoKFWJ/qkP3HrufmUVFxer4EiZ9m1uKntU5XNF4QmHmiTuVXFxMYncV8rb6fba1bz6nwMEsxpGzUCHAPjP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OaOioiLVqlVLklSjRg1169bNeUzr1q11xRVXaOfOnbrmmmu0efNm5ebmulTgZWVlOnPmjE6dOuUSIwDfI5Gjyrr++us1d+5c1axZU3FxcRUms5UnqnIOh0MNGzbU2rVrK5yrsrdgRUREeHyMw+GQdK693qNHD5dt1atXlySZPnj78L59+3TzzTfrgQce0DPPPKO6devqn//8p0aOHOkyBCGdu33s58rXORwOTZ48WYMHD66wT3h4uNdxArg4EjmqrFq1aunqq692e/+uXbuqoKBANWrUUNOmTc+7T5s2bbRx40bdddddznUbN2684DlbtGihiIgI/eMf/9C9995bYXtYWJikcxVsuZiYGF111VXas2ePhg8fft7ztm3bVq+//rpOnz7t/GPhYnGcz6ZNm1RaWqo//OEPqlbt3HSZt956q8J+paWl2rRpk6655hpJ0q5du/T999+rdevWks793Hbt2uXRzxqA75DIgR/17dtXSUlJGjRokKZNm6ZWrVrp0KFD+uCDDzRo0CB169ZNjzzyiEaMGKFu3brpl7/8pd544w3l5eWpWbNm5z1neHi4Hn/8cU2YMEFhYWH6xS9+oaNHjyovL08jR45UgwYNFBERoRUrVqhRo0YKDw9XdHS0MjMz9fDDD8tutys1NVVnz57Vpk2bdPz4cY0bN07Dhg1TRkaGRo4cqd///vfau3evnn/+eY++b/PmzVVaWqpZs2ZpwIAB+vTTTzVv3rwK+9WsWVMPPfSQXnzxRdWsWVMPPvigevbs6UzsTz31lG655RbFx8fr17/+tapVq6avvvpK27Zt07PPPuv5/wgAHmHWOvAjwzD0wQcf6LrrrtM999yjli1baujQodq7d69zlvmQIUP01FNP6fHHH1diYqL27dun0aNHX/S8Tz75pB599FE99dRTatOmjYYMGaIjR45IOjf+/OKLL2r+/PmKi4vTwIEDJUn33nuv/vSnP2nRokXq0KGDevfurUWLFjlvV6tdu7bee+897dixQ126dFFGRoamTZvm0fft3LmzZsyYoWnTpql9+/Z64403lJ2dXWG/yMhIPf744xo2bJiSkpIUERGhJUuWOLffeOONev/997Vq1Sp1795dPXv21IwZM9SkSROP4gFQOYbpi8E2AAAQEFTkAACEMBI5AAAhjEQOAEAII5EDABDCSOQAAIQwEjkAACGMRA4AQAgjkQMAEMJI5AAAhDASOQAAIYxEDgBACCORAwAQwv4f7uW+TEmX70kAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== DecisionTree ===\n", "ROC AUC: 0.8245283018867925\n", "PR AUC: 0.5605747126436782\n", "Brier Score: 0.04427186435717327\n", "Report:\n", " precision recall f1-score support\n", "\n", " 0 0.945 0.981 0.963 53\n", " 1 0.667 0.400 0.500 5\n", "\n", " accuracy 0.931 58\n", " macro avg 0.806 0.691 0.731 58\n", "weighted avg 0.921 0.931 0.923 58\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAHFCAYAAAAJ7nvFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9dElEQVR4nO3de1yUdfr/8feAMoACigaIoaJ5Pp9CbA1dT6m5dtrNNFfLTmKZWekWm9JBUds1S1fNTlKbmd8tzdryp2Vpm1poWp7WzUKlVdTURFFAZj6/P4zZRlAZZnBmmNfz8bgfj+ae+3DNQF5c1+dz37fFGGMEAAD8UpC3AwAAABVHIgcAwI+RyAEA8GMkcgAA/BiJHAAAP0YiBwDAj5HIAQDwYyRyAAD8GIkcAAA/RiL3cd9++63uuOMOJSYmKjQ0VDVr1lSnTp00c+ZMHTt2rFLPvWXLFqWkpCgqKkoWi0WzZ8/2+DksFovS09M9ftxLWbRokSwWiywWiz777LNS7xtjdNVVV8lisahnz54VOse8efO0aNEil/b57LPPLhjT5VDynVgsFgUHB6t27dpq37697r33Xm3cuLHSz9+zZ0+Xv+/K/s7S09OdvpcLLRX9PQHcVc3bAeDCXnrpJaWmpqp58+Z69NFH1apVK509e1abNm3SggULtGHDBi1btqzSzn/nnXcqPz9fS5YsUe3atdWoUSOPn2PDhg268sorPX7c8oqIiNArr7xS6h/htWvX6vvvv1dERESFjz1v3jzVrVtXo0aNKvc+nTp10oYNG9SqVasKn9ddt9xyix5++GEZY5SXl6ft27fr9ddf18KFCzVu3Dg9//zzlXbuefPmubxPZX9nd911l6677jrH64MHD+qmm27SAw88oGHDhjnWR0ZGVsr5gUsy8Enr1683wcHB5rrrrjMFBQWl3i8sLDTvvfdepcZQrVo1M2bMmEo9h7e89tprRpK56667TFhYmDlx4oTT+7fffrtJTk42rVu3NikpKRU6hyv7FhUVmbNnz1boPJ4kyYwdO7bU+uLiYnPnnXcaSWbevHleiMx3ZGdnG0nm2Wefveh2vvIzRdVHa91HTZs2TRaLRQsXLpTVai31fkhIiH73u985Xtvtds2cOVMtWrSQ1WpVTEyM/vjHP+rHH3902q9nz55q06aNsrKy1KNHD4WHh6tx48aaPn267Ha7pP+1nYuLizV//nxH61D6X5vxfCX77N2717FuzZo16tmzp+rUqaOwsDA1aNBAN998s06fPu3YpqzW+vbt2zVkyBDVrl1boaGh6tChgzIzM522KWmnvvXWW0pLS1N8fLwiIyPVp08f7d69u3xfsqTbbrtNkvTWW2851p04cULvvPOO7rzzzjL3efLJJ5WUlKTo6GhFRkaqU6dOeuWVV2R+9fyhRo0aaceOHVq7dq3j+yvpaJTE/sYbb+jhhx9W/fr1ZbVatWfPnlJt4p9++kkJCQnq3r27zp496zj+zp07VaNGDY0YMaLcn9UdwcHBmjt3rurWratnn33W6b28vDw98sgjSkxMVEhIiOrXr6/x48crPz/faTu73a45c+aoQ4cOCgsLU61atdStWzetWLHCsU1ZrfX58+erffv2qlmzpiIiItSiRQs9/vjjjvcv1FpfsWKFkpOTFR4eroiICPXt21cbNmxw2qbk93nHjh267bbbFBUVpdjYWN155506ceJEub+fi/1MJenjjz9W7969FRkZqfDwcF1zzTX65JNPSh3nu+++07BhwxQTEyOr1aqWLVvqb3/7W7njQGAikfsgm82mNWvWqHPnzkpISCjXPmPGjNGkSZPUt29frVixQk8//bRWrlyp7t2766effnLaNjc3V8OHD9ftt9+uFStWaMCAAXrsscf097//XZI0aNAgxz94t9xyizZs2FDqH8BL2bt3rwYNGqSQkBC9+uqrWrlypaZPn64aNWqoqKjogvvt3r1b3bt3144dO/TCCy/o3XffVatWrTRq1CjNnDmz1PaPP/649u3bp5dfflkLFy7Ud999p8GDB8tms5UrzsjISN1yyy169dVXHeveeustBQUF6dZbb73gZ7v33nu1dOlSvfvuu44269NPP+3YZtmyZWrcuLE6duzo+P7OHwZ57LHHtH//fi1YsEDvv/++YmJiSp2rbt26WrJkibKysjRp0iRJ0unTp/X73/9eDRo00IIFC8r1OT0hLCxMffr0UXZ2tuMPxNOnTyslJUWZmZkaN26cPvroI02aNEmLFi3S7373O6c/bkaNGqUHH3xQXbt21dtvv60lS5bod7/7ndMff+dbsmSJUlNTlZKSomXLlmn58uV66KGHSv2RcL7FixdryJAhioyM1FtvvaVXXnlFx48fV8+ePfWvf/2r1PY333yzmjVr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8+bNJUn/+c9/dMUVV2jFihVq27atWwEBAFApqujTz1weI7/rrrvUunVr/fjjj/r666/19ddfKycnR+3atdM999xTGTECAIALcLki/+abb7Rp0ybVrl3bsa527dqaOnWqunbt6tHgAADwmApMWCu1vw9yuSJv3ry5Dh06VGr94cOHHdfKAQDgayzG/cUXlasi//Xt6KZNm6Zx48YpPT1d3bp1kyRt3LhRTz31lMvXvgEAcNlU0THyciXyWrVqOd0yzhijP/zhD4515pepfIMHD5bNZquEMAEAQFnKlcg//fTTyo4DAIDKVUXHyMuVyFNSUio7DgAAKlcgt9bLcvr0ae3fv19FRUVO69u1a+d2UAAAoHxcTuRHjhzRHXfcoY8++qjM9xkjBwD4pCpakbt8+dn48eN1/Phxbdy4UWFhYVq5cqUyMzPVtGlTrVixojJiBADAfR56HrmvcbkiX7Nmjd577z117dpVQUFBatiwofr27avIyEhlZGRo0KBBlREnAAAog8sVeX5+vmJiYiRJ0dHROnLkiKRzT0T7+uuvPRsdAACecpkfY3q5VOjObrt375YkdejQQS+++KL++9//asGCBapXr57HAwQAwBMC+s5uvzZ+/HgdPHhQkjRlyhT1799fb775pkJCQrRo0SJPxwcAAC7C5UQ+fPhwx3937NhRe/fu1b///W81aNBAdevW9WhwAAB4TBWdtV7h68hLhIeHq1OnTp6IBQAAuKhciXzChAnlPuCsWbMqHAwAAJXFIvfGuX1zqls5E/mWLVvKdbBfP1gFAABUvirx0JRbunRXNUuIt8MAKoXFWujtEIBKYzFB0uX6FQ/kh6YAAOD3quhkN5evIwcAAL6DihwAEBiqaEVOIgcABAR3787mq3d2o7UOAIAfq1Aif+ONN3TNNdcoPj5e+/btkyTNnj1b7733nkeDAwDAY6roY0xdTuTz58/XhAkTNHDgQP3888+y2WySpFq1amn27Nmejg8AAM8gkZ8zZ84cvfTSS0pLS1NwcLBjfZcuXbRt2zaPBgcAAC7O5clu2dnZ6tixY6n1VqtV+fn5HgkKAABPY7LbLxITE7V169ZS6z/66CO1atXKEzEBAOB5JXd2c2fxQS5X5I8++qjGjh2rgoICGWP01Vdf6a233lJGRoZefvnlyogRAAD3cR35OXfccYeKi4s1ceJEnT59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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== RandomForest ===\n", "ROC AUC: 0.8056603773584906\n", "PR AUC: 0.5972413793103449\n", "Brier Score: 0.0400457974137931\n", "Report:\n", " precision recall f1-score support\n", "\n", " 0 0.981 0.981 0.981 53\n", " 1 0.800 0.800 0.800 5\n", "\n", " accuracy 0.966 58\n", " macro avg 0.891 0.891 0.891 58\n", "weighted avg 0.966 0.966 0.966 58\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAHFCAYAAAAJ7nvFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9P0lEQVR4nO3dd3xUVf7/8fcEkklCioSSEAxN6U2aMbAYkKKALCy6imE1KGLBFlFxlZ8QCwngLkZBioqQdUVgV0FsLLgUC6ABQRH4siKhLcSAIIEAaXN+f2BmHRIgk5kwM5nX8/G4j4dzbvtMMR8+55x7r8UYYwQAAHxSgKcDAAAAlUciBwDAh5HIAQDwYSRyAAB8GIkcAAAfRiIHAMCHkcgBAPBhJHIAAHwYiRwAAB9GIvcC3333ne688041bdpUwcHBCgsLU+fOnTV16lQdPXq0Ss+9efNmJSYmKjIyUhaLRRkZGW4/h8ViUWpqqtuPezHz58+XxWKRxWLRmjVryqw3xujKK6+UxWJRr169KnWOmTNnav78+U7ts2bNmvPGdCmUfialS0REhLp376533nnHI/FI0p49e2SxWJz+LN157vKWrl27XvJ4KmLBggVV8v8qfFNNTwfg715//XWNGTNGLVu21BNPPKE2bdqoqKhIGzdu1OzZs7V+/XotWbKkys5/1113KT8/XwsXLlTt2rXVpEkTt59j/fr1uvzyy91+3IoKDw/X3LlzyyTrtWvX6scff1R4eHiljz1z5kzVrVtXI0eOrPA+nTt31vr169WmTZtKn9dVN998sx577DEZY5Sdna20tDQlJSXJGKOkpCSPxeVJDz30UJn3HhYW5qFoLmzBggX6/vvvlZKS4ulQ4AVI5B60fv163X///erXr5+WLl0qq9VqX9evXz899thjWr58eZXG8P3332v06NEaMGBAlZ3jmmuuqbJjV8Stt96qt99+W6+++qoiIiLs7XPnzlVCQoLy8vIuSRxFRUX2CtjTn0l0dLQ9hoSEBPXo0UNNmjTRnDlz/DaRN2rUqEq+l9LvvWZN/tyiatC17kFpaWmyWCx67bXXHJJ4qaCgIP3+97+3v7bZbJo6dapatWolq9Wq+vXr64477tCBAwcc9uvVq5fatWunrKws9ezZU6GhoWrWrJkmT54sm80m6X/dzsXFxZo1a5a9K1GSUlNT7f/9W6X77Nmzx962atUq9erVS3Xq1FFISIgaNWqkm266SadOnbJvU17X+vfff68hQ4aodu3aCg4O1lVXXaXMzEyHbUq7oN955x2NHz9esbGxioiIUN++fbVz586KfciSbrvtNkly6Do+fvy43n33Xd11113l7vPss88qPj5eUVFRioiIUOfOnTV37lz99hlDTZo00bZt27R27Vr751fao1Ea+1tvvaXHHntMDRs2lNVq1a5du8p0rR85ckRxcXHq3r27ioqK7Mffvn27atWqpdtvv73C77WyGjdurHr16umnn35yaF+0aJH69++vBg0aKCQkRK1bt9af//xn5efnO2w3cuRIhYWFadeuXRo4cKDCwsIUFxenxx57TAUFBQ7bHjx4ULfccovCw8MVGRmpW2+9VTk5OeXGtWzZMiUkJCg0NFTh4eHq16+f1q9f77BN6e/1u+++0x//+EdFRkYqKipKY8eOVXFxsXbu3KkbbrhB4eHhatKkiaZOnVqpz8iZ32x537skffrpp+rTp48iIiIUGhqqHj166N///rfDMQ4fPqx77rlHcXFxslqtqlevnnr06KFPP/1U0tn/vz/66CPt3bvXYRgA/otE7iElJSVatWqVunTpori4uArtc//99+vJJ59Uv379tGzZMj3//PNavny5unfvriNHjjhsm5OToxEjRuhPf/qTli1bpgEDBuipp57S3//+d0nSoEGD7H8Qb775Zq1fv77MH8iL2bNnjwYNGqSgoCC9+eabWr58uSZPnqxatWqpsLDwvPvt3LlT3bt317Zt2/TKK6/ovffeU5s2bTRy5Mhy/8g+/fTT2rt3r9544w299tpr+uGHHzR48GCVlJRUKM6IiAjdfPPNevPNN+1t77zzjgICAnTrrbee973de++9Wrx4sd577z0NGzZMDz30kJ5//nn7NkuWLFGzZs3UqVMn++d37jDIU089pX379mn27Nn64IMPVL9+/TLnqlu3rhYuXKisrCw9+eSTkqRTp07pj3/8oxo1aqTZs2dX6H264vjx4zp69KhatGjh0P7DDz9o4MCBmjt3rpYvX66UlBQtXrxYgwcPLnOMoqIi/f73v1efPn30/vvv66677tJLL72kKVOm2Lc5ffq0+vbtqxUrVig9PV3/+Mc/FBMTU+73sGDBAg0ZMkQRERF65513NHfuXB07dky9evXSF198UWb7W265RR07dtS7776r0aNH66WXXtKjjz6qoUOHatCgQVqyZImuu+46Pfnkk3rvvffK7G+z2VRcXOywlP7DzdnfbHnf+9///nf1799fERERyszM1OLFixUVFaXrr7/eIZnffvvtWrp0qSZMmKAVK1bojTfeUN++ffXzzz9LOjuc06NHD8XExNh/d87+v4tqxsAjcnJyjCQzfPjwCm2/Y8cOI8mMGTPGof2rr74ykszTTz9tb0tMTDSSzFdffeWwbZs2bcz111/v0CbJPPDAAw5tEydONOX9NObNm2ckmezsbGOMMf/85z+NJLNly5YLxi7JTJw40f56+PDhxmq1mn379jlsN2DAABMaGmp++eUXY4wxq1evNpLMwIEDHbZbvHixkWTWr19/wfOWxpuVlWU/1vfff2+MMaZbt25m5MiRxhhj2rZtaxITE897nJKSElNUVGSee+45U6dOHWOz2ezrzrdv6fmuvfba865bvXq1Q/uUKVOMJLNkyRKTnJxsQkJCzHfffXfB91gZpb+joqIiU1hYaP7zn/+Y3//+9yY8PNxs3LjxvPvZbDZTVFRk1q5daySZb7/91r4uOTnZSDKLFy922GfgwIGmZcuW9tezZs0yksz777/vsN3o0aONJDNv3jxjzNnPPDY21rRv396UlJTYtztx4oSpX7++6d69u72t9Pf617/+1eGYV111lZFk3nvvPXtbUVGRqVevnhk2bJi9LTs720gqd1m5cqUxxvnf7Lnfe35+vomKijKDBw92aC8pKTEdO3Y0V199tb0tLCzMpKSkmAsZNGiQady48QW3gf+gIvcRq1evlqQyk6quvvpqtW7dukz3XExMjK6++mqHtg4dOmjv3r1ui+mqq65SUFCQ7rnnHmVmZmr37t0V2m/VqlXq06dPmZ6IkSNH6tSpU2Wqi98OL0hn34ckp95LYmKirrjiCr355pvaunWrsrKyztutXhpj3759FRkZqRo1aigwMFATJkzQzz//rNzc3Aqf96abbqrwtk888YQGDRqk2267TZmZmZo+fbrat29/0f3OV0VeyMyZMxUYGKigoCC1aNFCn3zyid555x116dLFYbvdu3crKSlJMTEx9s8hMTFRkrRjxw6HbS0WS5lK/dzf3OrVqxUeHl7mOz13XH7nzp06ePCgbr/9dgUE/O/PVFhYmG666SZt2LDBYfhGkm688UaH161bt5bFYnGY/1GzZk1deeWV5f52HnnkEWVlZTks8fHxkpz/zZ77va9bt05Hjx5VcnKyw3dls9l0ww03KCsryz5ccfXVV2v+/Pl64YUXtGHDBofhFqA8JHIPqVu3rkJDQ5WdnV2h7Uu71Ro0aFBmXWxsrH19qTp16pTZzmq16vTp05WItnxXXHGFPv30U9WvX18PPPCArrjiCl1xxRV6+eWXL7jfzz//fN73Ubr+t859L6XzCZx5LxaLRXfeeaf+/ve/a/bs2WrRooV69uxZ7rZff/21+vfvL+nsVQVffvmlsrKyNH78eKfPW977vFCMI0eO1JkzZxQTE1OhsfE9e/YoMDDQYVm7du1F97vllluUlZWldevWac6cOQoPD9fw4cP1ww8/2Lc5efKkevbsqa+++kovvPCC1qxZo6ysLHu39LmfQ2hoqIKDgx3arFarzpw5Y3/9888/Kzo6ukw8MTExDq8v9nu32Ww6duyYQ3tUVJTD66CgoHJjCgoKcoip1OWXX66uXbs6LKVXNDj7mz1329K5BzfffHOZ72vKlCkyxtgvNV20aJGSk5P1xhtvKCEhQVFRUbrjjjvOO48AYBqlh9SoUUN9+vTRJ598ogMHDlz08qzSZHbo0KEy2x48eFB169Z1W2ylf/gKCgocJuGdOw4vST179lTPnj1VUlKijRs3avr06UpJSVF0dLSGDx9e7vHr1KmjQ4cOlWk/ePCgJLn1vfzWyJEjNWHCBM2ePVuTJk0673YLFy5UYGCgPvzwQ4cksHTpUqfP6cwkpEOHDumBBx7QVVddpW3btunxxx/XK6+8csF9YmNjlZWV5dDWsmXLi56rXr169mukExIS1Lp1ayUmJurRRx/Vhx9+KOlsFXrw4EGtWbPGXoVL0i+//FLh93SuOnXq6Ouvvy7Tfm6S+u3v/VwHDx5UQECAateuXek4nOXsb/bc7710/fTp0887M770Hzh169ZVRkaGMjIytG/fPi1btkx//vOflZubW+VXscA3UZF70FNPPSVjjEaPHl3u5LCioiJ98MEHkqTrrrtOkuyT1UplZWVpx44d6tOnj9viKp15/d133zm0l8ZSnho1aig+Pl6vvvqqJOmbb74577Z9+vSxJ4nf+tvf/qbQ0NAquzSrYcOGeuKJJzR48GAlJyefd7vSS4Vq1Khhbzt9+rTeeuutMtu6q5ejpKREt912mywWiz755BOlp6dr+vTp5U7K+q2goKDzVpHO6Nmzp+644w599NFH9m7i0mR07hUVc+bMcfr4pXr37q0TJ05o2bJlDu0LFixweN2yZUs1bNhQCxYscBgqyM/P17vvvmufyX6puPqb7dGjhy677DJt3769zPdVugQFBZXZr1GjRnrwwQfVr18/h/+n3N27Bt9GRe5BCQkJmjVrlsaMGaMuXbro/vvvV9u2bVVUVKTNmzfrtddeU7t27TR48GC1bNlS99xzj6ZPn66AgAANGDBAe/bs0TPPPKO4uDg9+uijbotr4MCBioqK0qhRo/Tcc8+pZs2amj9/vvbv3++w3ezZs7Vq1SoNGjRIjRo10pkzZ+wzw/v27Xve40+cOFEffvihevfurQkTJigqKkpvv/22PvroI02dOlWRkZFuey/nmjx58kW3GTRokKZNm6akpCTdc889+vnnn/WXv/yl3EsE27dvr4ULF2rRokVq1qyZgoODKzSufa6JEyfq888/14oVKxQTE6PHHntMa9eu1ahRo9SpUyc1bdrU6WM66/nnn9eiRYv0zDPP6NNPP1X37t1Vu3Zt3XfffZo4caICAwP19ttv69tvv630Oe644w699NJLuuOOOzRp0iQ1b95cH3/8sf71r385bBcQEKCpU6dqxIgRuvHGG3XvvfeqoKBAL774on755ZcKfY/u5OpvNiwsTNOnT1dycrKOHj2qm2++WfXr19fhw4f17bff6vDhw5o1a5aOHz+u3r17KykpSa1atVJ4eLiysrK0fPlyDRs2zH689u3b67333tOsWbPUpUsXBQQEeO1d6HAJeHauHYwxZsuWLSY5Odk0atTIBAUFmVq1aplOnTqZCRMmmNzcXPt2JSUlZsqUKaZFixYmMDDQ1K1b1/zpT38y+/fvdzheYmKiadu2bZnzJCcnl5npqnJmrRtjzNdff226d+9uatWqZRo2bGgmTpxo3njjDYdZ6+vXrzd/+MMfTOPGjY3VajV16tQxiYmJZtmyZWXO8dtZ68YYs3XrVjN48GATGRlpgoKCTMeOHe0zlkuVzgD+xz/+4dBeOsv43O3P9dtZ6xdS3szzN99807Rs2dJYrVbTrFkzk56ebubOnevw/o0xZs+ePaZ///4mPDzcSLJ/vueL/bfrSmetr1ixwgQEBJT5jH7++WfTqFEj061b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AAC/8NNPP+n222/XoUOHFBkZqQ4dOmj58uXq16+fJGncuHE6ffq0xowZo2PHjik+Pl4rVqxQeHi4U+epVCIvKSnRkiVLtGPHDlksFrVu3VpDhgxRzZo8gwUA4J0u9WNM586de8H1FotFqampSk1NrXxQqkQi//777zVkyBDl5OSoZcuWkqT//Oc/qlevnpYtW6b27du7FBAAAFWimj79zOkx8rvvvltt27bVgQMH9M033+ibb77R/v371aFDB91zzz1VESMAADgPpyvyb7/9Vhs3blTt2rXtbbVr19akSZPUrVs3twYHAIDbVGLCWpn9vZDTFXnLli31008/lWnPzc21XysHAIC3sRjXF29UoYr8t7ejS0tL08MPP6zU1FRdc801kqQNGzboueeec/raNwAALplqOkZeoUR+2WWXOdwyzhijW265xd5mfp3KN3jwYJWUlFRBmAAAoDwVSuSrV6+u6jgAAKha1XSMvEKJPDExsarjAACgavlz13p5Tp06pX379qmwsNChvUOHDi4HBQAAKsbpRH748GHdeeed+uSTT8pdzxg5AMArVdOK3OnLz1JSUnTs2DFt2LBBISEhWr58uTIzM9W8eXMtW7asKmIEAMB1bnoeubdxuiJftWqV3n//fXXr1k0BAQFq3Lix+vXrp4iICKWnp2vQoEFVEScAACiH0xV5fn6+6tevL0mKiorS4cOHJZ19Ito333zj3ugAAHCXS/wY00ulUnd227lzpyTpqquu0pw5c/Tf//5Xs2fPVoMGDdweIAAA7uDXd3b7rZSUFB06dEiSNHHiRF1//fV6++23FRQUpPnz57s7PgAAcAFOJ/IRI0bY/7tTp07as2eP/u///k+NGjVS3bp13RocAABuU01nrVf6OvJSoaGh6ty5sztiAQAATqpQIh87dmyFDzht2rRKBwMAQFWxyLVxbu+c6lbBRL558+YKHey3D1YBAABVr1o8NOUPLdqrpiXQ02EAVaJGvXqeDgGoMsZWKB25VCfz44emAADg86rpZDenryMHAADeg4ocAOAfqmlFTiIHAPgFV+/O5q13dqNrHQAAH1apRP7WW2+pR48eio2N1d69eyVJGRkZev/9990aHAAAblNNH2PqdCKfNWuWxo4dq4EDB+qXX35RSUmJJOmyyy5TRkaGu+MDAMA9SORnTZ8+Xa+//rrGjx+vGjVq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rCeffFLjxo1TUFCQevToocOHD2vbtm0aNWqU6tevr5CQEC1fvlyXX365goODFRkZqdTUVD388MOKiIjQgAEDVFBQoI0bN+rYsWMaO3askpKSNH78eI0aNUr/7//9P+3Zs0d/+ctfnHq/V1xxhYqLizV9+nQNHjxYX375pWbPnl1mu8DAQD300EN65ZVXFBgYqAcffFDXXHONPbFPmDBBN954o+Li4vTHP/5RAQEB+u6777R161a98MILzn8RAJzCrHXgVxaLRR9//LGuvfZa3XXXXWrRooWGDx+uPXv22GeZ33rrrZowYYKefPJJdenSRXv37tX9999/weM+88wzeuyxxzRhwgS1bt1at956q3JzcyWdHX9+5ZVXNGfOHMXGxmrIkCGSpLvvvltvvPGG5s+fr/bt2ysxMVHz58+3X64WFhamDz74QNu3b1enTp00fvx4TZkyxan3e9VVV2natGmaMmWK2rVrp7ffflvp6elltgsNDdWTTz6ppKQkJSQkKCQkRAsXLrSvv/766/Xhhx9q5cqV6tatm6655hpNmzZNjRs3dioeAJVjMe4YbAMAAB5BRQ4AgA8jkQMA4MNI5AAA+DASOQAAPoxEDgCADyORAwDgw0jkAAD4MBI5AAA+jEQOAIAPI5EDAODDSOQAAPgwEjkAAD7s/wPwJ4AHrli51QAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "ename": "NameError", "evalue": "name 'X_test' is not defined", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", "Cell \u001b[1;32mIn[28], line 28\u001b[0m\n\u001b[0;32m 25\u001b[0m nb\u001b[38;5;241m.\u001b[39mfit(X_train, y_train)\n\u001b[0;32m 27\u001b[0m \u001b[38;5;66;03m# Predict classes\u001b[39;00m\n\u001b[1;32m---> 28\u001b[0m y_pred \u001b[38;5;241m=\u001b[39m nb\u001b[38;5;241m.\u001b[39mpredict(X_test)\n\u001b[0;32m 30\u001b[0m \u001b[38;5;66;03m# Predict probabilities (probability of adverse effect = class 1)\u001b[39;00m\n\u001b[0;32m 31\u001b[0m probs \u001b[38;5;241m=\u001b[39m nb\u001b[38;5;241m.\u001b[39mpredict_proba(X_test)[:, \u001b[38;5;241m1\u001b[39m]\n", "\u001b[1;31mNameError\u001b[0m: name 'X_test' is not defined" ] } ], "source": [ "cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)\n", "\n", "for name, model in models.items():\n", " calibrated = CalibratedClassifierCV(model, method='isotonic', cv=3)\n", " y_prob = cross_val_predict(calibrated, X_scaled, y, cv=cv, method='predict_proba')[:, 1]\n", " y_pred = (y_prob > 0.5).astype(int)\n", " \n", " print(f\"\\n=== {name} ===\")\n", " print(\"ROC AUC:\", roc_auc_score(y, y_prob))\n", " print(\"PR AUC: \", average_precision_score(y, y_prob))\n", " print(\"Brier Score:\", brier_score_loss(y, y_prob))\n", " print(\"Report:\")\n", " print(classification_report(y, y_pred, digits=3))\n", " \n", " ConfusionMatrixDisplay.from_predictions(y, y_pred)\n", " plt.title(f\"Confusion Matrix - {name}\")\n", " plt.show()\n", " \n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "2d496565", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from scipy import io\n", "from sklearn.model_selection import StratifiedKFold, cross_val_predict\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.svm import SVC\n", "from sklearn.calibration import CalibratedClassifierCV, calibration_curve\n", "from sklearn.metrics import (\n", " roc_auc_score, average_precision_score,\n", " brier_score_loss, classification_report,\n", " ConfusionMatrixDisplay\n", ")\n", "import matplotlib.pyplot as plt\n", "\n", "# Load data\n", "data_path = \"../data/\"\n", "suv_file = data_path + \"suv_percentilesSLOthenUWM.mat\"\n", "flags_file = data_path + \"flags_combined.mat\"\n", "\n", "suv_dict = io.loadmat(suv_file)\n", "flags_dict = io.loadmat(flags_file)\n", "\n", "suv = suv_dict['lung_SUVperc_COMBINED'][0:58, :, :]\n", "flags = flags_dict['flags'][0:58, 3]\n", "\n", "p = 94\n", "X_raw = np.nanmax(suv[:, :, p], axis=1).reshape(-1, 1)\n", "y = flags.astype(int).flatten()\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "8425ddf2", "metadata": {}, "outputs": [], "source": [ "scaler = StandardScaler()\n", "X_scaled = scaler.fit_transform(X_raw)\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "d461ad79", "metadata": {}, "outputs": [], "source": [ "# Base SVM model\n", "svm = SVC(kernel='rbf', probability=True, class_weight='balanced')\n", "\n", "# Calibrated model\n", "calibrated_svm = CalibratedClassifierCV(svm, method='isotonic', cv=3)\n", "\n", "# Cross-validated predicted probabilities\n", "cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)\n", "y_prob = cross_val_predict(calibrated_svm, X_scaled, y, cv=cv, method='predict_proba')[:, 1]\n", "y_pred = (y_prob >= 0.5).astype(int)\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "41c451e7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "=== SVM-RBF Model Evaluation ===\n", "ROC AUC: 0.9584905660377359\n", "PR AUC: 0.6075757575757575\n", "Brier Score: 0.044092930410943365\n", "Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.962 0.962 0.962 53\n", " 1 0.600 0.600 0.600 5\n", "\n", " accuracy 0.931 58\n", " macro avg 0.781 0.781 0.781 58\n", "weighted avg 0.931 0.931 0.931 58\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAHFCAYAAAAJ7nvFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA54UlEQVR4nO3deXhU5fn/8c8EkklCFmRLiAYIEPZFIIjBBVCBgiJIrSCorLaKFhEVvxaV0EoCqIiKIC5AXADpt4paLJJfEdQKyKoIfHEhQBQiqwQDWef5/YGZOibATGbCzOS8X73OVees9wQu7tz385xzbMYYIwAAEJRC/B0AAACoPBI5AABBjEQOAEAQI5EDABDESOQAAAQxEjkAAEGMRA4AQBAjkQMAEMRI5AAABDESObyyYcMG3XTTTWrUqJHsdrvi4uKUmpqqBx54QJJ0+PBhhYWFaejQoWc9R15eniIjI3XjjTdKkhYtWiSbzSabzaY1a9aU298Yo+bNm8tms6lnz55uxelwOPT666/ruuuuU7169RQaGqoGDRrohhtu0Pvvvy+Hw+Hxd/fE888/r+bNmyssLEw2m00//fSTT89f9jPbu3evT8/rjp49e8pms6lp06aq6EGRH3/8sfPPc9GiRR6f/8CBA0pLS9O2bds8Om7kyJFq0qSJx9cDgg2JHJW2YsUKde/eXXl5eZo5c6ZWrVqlZ599VldccYXeeustSVL9+vV14403avny5Tp+/HiF51m6dKlOnz6tMWPGuKyPjo7Wq6++Wm7/tWvX6rvvvlN0dLRbcRYUFKh///4aMWKEGjRooHnz5mn16tV68cUXlZCQoD/84Q96//33Pfz27tu2bZvGjx+vXr16afXq1Vq3bp3bsbvr+uuv17p169SwYUOfntdd0dHRys7O1urVq8ttW7BggWJiYip97gMHDmjq1KkeJ/LHHntM77zzTqWvCwQNA1TS1VdfbZo1a2aKi4vLbSstLXX+9wcffGAkmeeff77C83Tr1s3ExcU5z7Nw4UIjyYwdO9ZERESYEydOuOx/2223mdTUVNO2bVvTo0eP88Z59913G0kmMzOzwu1ff/21+eKLL857nsp64403jCSzYcOGKruGP/Xo0cO0bdvWXH755WbYsGEu2/Ly8kxkZKS58847jSSzcOFCj8+/ceNGj47Nz8/3+BpAMKMiR6UdPXpU9erVU82aNcttCwn571+tvn376pJLLtHChQvL7bdr1y5t2LBBd9xxR7nz3HrrrZKkJUuWONedOHFC//jHPzR69Gi3YszNzdUrr7yivn376o477qhwn+TkZHXo0MH5ef/+/brtttvUoEED2e12tW7dWk8//bRL+33v3r2y2Wx66qmnNGvWLCUlJSkqKkqpqalav369c7+ePXvqtttukyR169ZNNptNI0eOlCQ1adLE+d+/1rNnT5chA4fDoSeeeEItW7ZURESEateurQ4dOujZZ5917nO21vqCBQvUsWNHhYeHq06dOrrpppu0a9cul31GjhypqKgoffvtt+rfv7+ioqKUmJioBx54QIWFhef8+f7a6NGj9fbbb7sMGyxdulSSKhxa+fbbbzVq1CglJycrMjJSF198sQYMGKDt27c791mzZo26du0qSRo1apSzRZ+WluYS+/bt29WnTx9FR0fr2muvdW77dWt96dKlstlsmjNnjkscU6ZMUY0aNZSVleX2dwUCCYkclZaamqoNGzZo/Pjx2rBhg4qLiyvcLyQkRCNHjtSWLVv0xRdfuGwrS+4VJeaYmBjdfPPNWrBggXPdkiVLFBISoiFDhrgV40cffaTi4mINGjTIrf0PHz6s7t27a9WqVfrb3/6m9957T9ddd50efPBB3XvvveX2f+GFF5SVlaXZs2frzTffVH5+vvr3768TJ05IkubOnatHH33U+V3XrVunxx57zK1YysycOVNpaWm69dZbtWLFCr311lsaM2bMecfZMzIyNGbMGLVt21Zvv/22nn32WX355ZdKTU3VN99847JvcXGxbrzxRl177bV69913NXr0aD3zzDOaMWOG23EOHTpUNWrUcPnF69VXX9XNN99cYWv9wIEDqlu3rqZPn66VK1fqhRdeUM2aNdWtWzft3r1bktS5c2fn35FHH31U69at07p16zR27FjneYqKinTjjTfqmmuu0bvvvqupU6eeNb677rpLDzzwgDZt2iRJWr16tZ544gn95S9/Ue/evd3+rkBA8XdLAMHryJEj5sorrzSSjCQTGhpqunfvbjIyMszJkydd9t2zZ4+x2Wxm/PjxznXFxcUmPj7eXHHFFS77lrXWN27caD766CMjyXz11VfGGGO6du1qRo4caYwxbrXWp0+fbiSZlStXuvWd/ud//qfCNvjdd99tbDab2b17tzHGmOzsbCPJtG/f3pSUlDj3+/zzz40ks2TJkgq/z681btzYjBgxolwMPXr0cPleN9xwg7n00kvPGXfZNbKzs40xxhw/ftxERESY/v37u+y3f/9+Y7fbXVrgI0aMMJLMsmXLXPbt37+/admy5TmvWxZv27ZtnedKSUkxxhizY8cOI8msWbPGrfZ4SUmJKSoqMsnJyeb+++93rj/XsWWxL1iwoMJtjRs3dllXUFBgOnXqZJKSkszOnTtNXFyc6dGjh8ufIRBsqMhRaXXr1tUnn3yijRs3avr06Ro4cKC+/vprPfLII2rfvr2OHDni3DcpKUm9evXSm2++qaKiIknSv/71L+Xm5p6zTd6jRw81a9ZMCxYs0Pbt27Vx40a32+qVsXr1arVp00aXXXaZy/qRI0fKGFNuMtf111+vGjVqOD+Xtej37dvns5guu+wyffHFFxo3bpw+/PBD5eXlnfeYdevW6fTp0+Va94mJibrmmmv073//22W9zWbTgAEDXNZ16NDB4+8xevRobdq0Sdu3b9err76qZs2a6eqrr65w35KSEqWnp6tNmzYKCwtTzZo1FRYWpm+++aZc+/98fv/737u1n91u17Jly3T06FF17txZxhgtWbLE5c8QCDYkcngtJSVFDz/8sP7+97/rwIEDuv/++7V3717NnDnTZb8xY8bo6NGjeu+99ySdaTVHRUXplltuOeu5bTabRo0apTfeeEMvvviiWrRooauuusrt2Bo1aiRJys7Odmv/o0ePVjjzOyEhwbn91+rWrevy2W63S5JOnz7tdozn88gjj+ipp57S+vXr1a9fP9WtW1fXXnutsz1ckbI4z/Zdfvs9IiMjFR4e7rLObreroKDAo1ivvvpqJScna/78+Xr99dc1evRo2Wy2CvedOHGiHnvsMQ0aNEjvv/++NmzYoI0bN6pjx44e/fwiIyM9mhXfvHlzXXXVVSooKNDw4cP9NtMf8BUSOXwqNDRUU6ZMkSR99dVXLtsGDx6siy66SAsWLNDhw4f1z3/+U0OGDFFUVNQ5zzly5EgdOXJEL774okaNGuVRPL169VJoaKiWL1/u1v5169bVwYMHy60/cOCAJKlevXoeXf9cwsPDK5xM9utOhiTVrFlTEydO1JYtW3Ts2DEtWbJEOTk56tu3r06dOlXhuct+wTjbd/Hl9/itUaNGad68eTp27JhGjBhx1v3eeOMN3XHHHUpPT1ffvn112WWXKSUlpdz3P5+z/aJwNq+88opWrFihyy67THPmzNGGDRs8Oh4INCRyVFpFSUKSsy1aVsWWCQ8P17Bhw7Rq1SrNmDFDxcXFbrXJL774Yj300EMaMGDAORNDReLj4zV27Fh9+OGHeu211yrc57vvvtOXX34pSbr22mu1c+dObdmyxWWf1157TTabTb169fLo+ufSpEkT53XLfP31186JXhWpXbu2br75Zt1zzz06duzYWR8Ak5qaqoiICL3xxhsu67///nutXr3aObO7KowYMUIDBgzQQw89pIsvvvis+9lsNmcHo8yKFSv0ww8/uKzzZZdj+/btGj9+vO644w598skn6tChg4YMGXLWZxwAwaD8fUOAm8puKxswYIBatWolh8Ohbdu26emnn1ZUVJTuu+++cseMGTNGL7zwgmbNmqVWrVqpe/fubl1r+vTplY5z1qxZ2rNnj0aOHKkPP/xQN910k+Li4nTkyBFlZWVp4cKFWrp0qTp06KD7779fr732mq6//nr99a9/VePGjbVixQrNnTtXd999t1q0aFHpOH7r9ttv12233aZx48bp97//vfbt26eZM2eqfv36LvsNGDBA7dq1U0pKiurXr699+/Zp9uzZaty4sZKTkys8d+3atfXYY4/pL3/5i+644w7deuutOnr0qKZOnarw8HBn16QqJCQkuNUBueGGG7Ro0SK1atVKHTp00ObNm/Xkk0/qkksucdmvWbNmioiI0JtvvqnWrVsrKipKCQkJ5X5RPJ/8/HzdcsstSkpK0ty5cxUWFqZly5apc+fOGjVqlNtdGyDg+Hu2HYLXW2+9ZYYNG2aSk5NNVFSUCQ0NNY0aNTK333672blz51mP69Spk5FkZs6cWeH2s83y/i13HwhjzJkZ0ZmZmeaaa64xderUMTVr1jT169c3/fr1M4sXL3Z5gM2+ffvMsGHDTN26dU1oaKhp2bKlefLJJ132KZu1/uSTT5a7liQzZcqU834fh8NhZs6caZo2bWrCw8NNSkqKWb16dblZ608//bTp3r27qVevngkLCzONGjUyY8aMMXv37i13jbJZ62VeeeUV06FDBxMWFmZiY2PNwIEDzY4dO1z2GTFihKlVq1a57zFlyhTjzj8Rv561fjYVzTw/fvy4GTNmjGnQoIGJjIw0V155pfnkk0/KfX9jjFmyZIlp1aqVCQ0Ndfn5ni32sm2/nrV+2223mcjIyHLf/+9//7uRZJ555pnzflcgENmMqeDhyAAAICgwRg4AQBAjkQMAEMRI5AAABDESOQAAQYxEDgBAECORAwAQxIL6gTAOh0MHDhxQdHS0x49pBAD4nzFGJ0+eVEJCgkJCqq62LCgocL6wyRthYWHl3kvgb0GdyA8cOKDExER/hwEA8FJOTk65p/r5SkFBgZIaRyn3UKnX54qPj1d2dnZAJfOgTuTR0dGSpH1bmigmilECVE83tWjv7xCAKlOiYn2qD5z/nleFoqIi5R4q1b7NTRQTXflckXfSocZd9qqoqIhE7itl7fSYqBCv/nCAQFbTFurvEICq88uzRS/E8GhUtE1R0ZW/jkOBOYRL9gMAWEKpcXi9eCItLU02m81liY+Pd243xigtLU0JCQmKiIhQz549tWPHDo+/F4kcAGAJDhmvF0+1bdtWBw8edC7bt293bps5c6ZmzZqlOXPmaOPGjYqPj1fv3r118uRJj65BIgcAoIrUrFlT8fHxzqXsNcXGGM2ePVuTJ0/W4MGD1a5dO2VmZurUqVNavHixR9cgkQMALMHhg/956ptvvlFCQoKSkpI0dOhQ7dmzR5KUnZ2t3Nxc9enTx7mv3W5Xjx499Nlnn3l0jaCe7AYAgLtKjVGpF2/uLjs2Ly/PZb3dbpfdbi+3f7du3fTaa6+pRYsW+vHHH/XEE0+oe/fu2rFjh3JzcyVJcXFxLsfExcVp3759HsVFRQ4AgAcSExMVGxvrXDIyMircr1+/fvr973+v9u3b67rrrtOKFSskSZmZmc59fjtb3xjj8Qx+KnIAgCVUdsLar4+Xzjy8JiYmxrm+omq8IrVq1VL79u31zTffaNCgQZKk3NxcNWzY0LnPoUOHylXp50NFDgCwBIeMSr1YyhJ5TEyMy+JuIi8sLNSuXbvUsGFDJSUlKT4+XllZWc7tRUVFWrt2rbp37+7R96IiBwCgCjz44IMaMGCAGjVqpEOHDumJJ55QXl6eRowYIZvNpgkTJig9PV3JyclKTk5Wenq6IiMjNWzYMI+uQyIHAFiCr1rr7vr+++9166236siRI6pfv74uv/xyrV+/Xo0bN5YkTZo0SadPn9a4ceN0/PhxdevWTatWrfL4cbU2Y7yYwudneXl5io2N1fGvm/KIVlRbfRMu9XcIQJUpMcVao3d14sQJl3FnXyrLFV/vilO0F7ni5EmHWrT+sUpjrQyyHwAAQYzWOgDAEhy/LN4cH4hI5AAASyibfe7N8YGIRA4AsIRSc2bx5vhAxBg5AABBjIocAGAJjJEDABDEHLKpVJ49x/y3xwciWusAAAQxKnIAgCU4zJnFm+MDEYkcAGAJpV621r05tirRWgcAIIhRkQMALKG6VuQkcgCAJTiMTQ7jxax1L46tSrTWAQAIYlTkAABLoLUOAEAQK1WISr1oRJf6MBZfIpEDACzBeDlGbhgjBwAAvkZFDgCwBMbIAQAIYqUmRKXGizHyAH1EK611AACCGBU5AMASHLLJ4UX96lBgluQkcgCAJVTXMXJa6wAABDEqcgCAJXg/2Y3WOgAAfnNmjNyLl6bQWgcAAL5GRQ4AsASHl89aZ9Y6AAB+xBg5AABBzKGQankfOWPkAAAEMSpyAIAllBqbSr14Fak3x1YlEjkAwBJKvZzsVkprHQAA+BoVOQDAEhwmRA4vZq07mLUOAID/0FoHAAABh4ocAGAJDnk389zhu1B8ikQOALAE7x8IE5hN7MCMCgAAuIWKHABgCd4/az0wa18SOQDAEqrr+8hJ5AAAS6iuFXlgRgUAANxCRQ4AsATvHwgTmLUviRwAYAkOY5PDm/vIA/TtZ4H56wUAAHALFTkAwBIcXrbWA/WBMCRyAIAleP/2s8BM5IEZFQAAcAsVOQDAEkplU6kXD3Xx5tiqRCIHAFgCrXUAABBwqMgBAJZQKu/a46W+C8WnSOQAAEuorq11EjkAwBJ4aQoAAAg4VOQAAEswXr6P3HD7GQAA/kNrHQAABBwqcgCAJVTX15iSyAEAllDq5dvPvDm2KgVmVAAAwC1U5AAAS6C1DgBAEHMoRA4vGtHeHFuVAjMqAACqkYyMDNlsNk2YMMG5zhijtLQ0JSQkKCIiQj179tSOHTs8PjeJHABgCaXG5vVSGRs3btRLL72kDh06uKyfOXOmZs2apTlz5mjjxo2Kj49X7969dfLkSY/OTyIHAFhC2Ri5N4unfv75Zw0fPlwvv/yyLrroIud6Y4xmz56tyZMna/DgwWrXrp0yMzN16tQpLV682KNrkMgBAJZgfnn7WWUX88uT3fLy8lyWwsLCs17znnvu0fXXX6/rrrvOZX12drZyc3PVp08f5zq73a4ePXros88+8+h7kcgBAPBAYmKiYmNjnUtGRkaF+y1dulRbtmypcHtubq4kKS4uzmV9XFycc5u7mLUOALCEUtlU6sWLT8qOzcnJUUxMjHO93W4vt29OTo7uu+8+rVq1SuHh4Wc9p83mGo8xpty68yGRAwAswWG8uxfcYc78f0xMjEsir8jmzZt16NAhdenSxbmutLRUH3/8sebMmaPdu3dLOlOZN2zY0LnPoUOHylXp50NrHQAAH7v22mu1fft2bdu2zbmkpKRo+PDh2rZtm5o2bar4+HhlZWU5jykqKtLatWvVvXt3j65FRY5yXn8qXm/MindZd1H9Yi394sz9jZ9+EKsPXq+rb76MVN7xmpq7areatTvtj1ABnxhy74+6ov8JJTYvVFFBiHZuitSr0xrq++/O3hJF8CmbtObN8e6Kjo5Wu3btXNbVqlVLdevWda6fMGGC0tPTlZycrOTkZKWnpysyMlLDhg3zKC6/J/K5c+fqySef1MGDB9W2bVvNnj1bV111lb/DsrzGLU9r+lvfOT+H1DDO/y44FaI2XfN11Q0/afZDjfwRHuBTHVLz9f6ievp6W6Rq1DQa+fBBpS/Zozt7tFTh6Rr+Dg8+4pBNDi/GyL05tiKTJk3S6dOnNW7cOB0/flzdunXTqlWrFB0d7dF5/JrI33rrLU2YMEFz587VFVdcofnz56tfv37auXOnGjUiQfhTjRpSnQYlFW677ubjkqTcnLALGRJQZSYPb+ry+en7G2nZVzuU3OG0vtoQ5aeoUN2sWbPG5bPNZlNaWprS0tK8Oq9fx8hnzZqlMWPGaOzYsWrdurVmz56txMREzZs3z59hQdIP2WG6tVNb3dGttdLvaqyD+0jasI5aMaWSpJM/UY1XJ/56sltV81siLyoq0ubNm11uhpekPn36eHwzPHyrVed8PfTcfqUv/k4TnszR8cOhuv/GZOUd4x81WIHRH9MO6KsNtbRvd4S/g4EPefMwGG/H16uS31rrR44cUWlpqUc3wxcWFro8QScvL69KY7Sqrtf89zm/Sa2lNil7NDK1tbL+Xke//9NhP0YGVL170n9QUuvTemBQc3+HArjF779eeHIzfEZGhsvTdBITEy9EiJYXHulQk1YF+iG7/EMPgOpk3BPfK7VPnibd3ExHDjKcVN045OWz1n082c1X/JbI69Wrpxo1apSrvs91M/wjjzyiEydOOJecnJwLEarlFRXalPOtXXUaFPs7FKCKGN0z7Xtd0e+EJv2hmX7M4ZfW6sj8Mmu9sosJ0ETut9Z6WFiYunTpoqysLN10003O9VlZWRo4cGCFx9jt9gofhQffemlqgi7vc0INLi7WT0dqavHsOJ06WUO9bzkmSco7XkOHfwjT0R/P/PXJ+e7Mn8lFDYrPOtMdCGT3pv+gXjcdV9qoJJ3+OUQX1T/zS2v+yRoqKvB74xI+Utk3mP36+EDk19vPJk6cqNtvv10pKSlKTU3VSy+9pP379+uuu+7yZ1iWd+RgqDLGNVHesRqKrVuiVp1PafY/v1bcJWf+cVu/KlZP3//f2wMz7m4iSbptYq5uf9Czh/0DgWDAyKOSpKfe/s5l/VMTEpW1rI4/QgLc5tdEPmTIEB09elR//etfdfDgQbVr104ffPCBGjdu7M+wLO8vL+475/Y+Q46pz5BjFygaoOr1Tejo7xBwAVzIJ7tdSH5/stu4ceM0btw4f4cBAKjmqmtrPTB/vQAAAG7xe0UOAMCFEGjPWvcVEjkAwBJorQMAgIBDRQ4AsITqWpGTyAEAllBdEzmtdQAAghgVOQDAEqprRU4iBwBYgpF3t5AZ34XiUyRyAIAlVNeKnDFyAACCGBU5AMASqmtFTiIHAFhCdU3ktNYBAAhiVOQAAEuorhU5iRwAYAnG2GS8SMbeHFuVaK0DABDEqMgBAJbA+8gBAAhi1XWMnNY6AABBjIocAGAJ1XWyG4kcAGAJ1bW1TiIHAFhCda3IGSMHACCIUZEDACzBeNlaD9SKnEQOALAEI8kY744PRLTWAQAIYlTkAABLcMgmG092AwAgODFrHQAABBwqcgCAJTiMTTYeCAMAQHAyxstZ6wE6bZ3WOgAAQYyKHABgCdV1shuJHABgCSRyAACCWHWd7MYYOQAAQYyKHABgCdV11jqJHABgCWcSuTdj5D4MxodorQMAEMSoyAEAlsCsdQAAgpiRd+8UD9DOOq11AACCGRU5AMASaK0DABDMqmlvnUQOALAGLytyBWhFzhg5AABBjIocAGAJPNkNAIAgVl0nu9FaBwAgiFGRAwCswdi8m7AWoBU5iRwAYAnVdYyc1joAAEGMihwAYA1WfiDMc8895/YJx48fX+lgAACoKtV11rpbifyZZ55x62Q2m41EDgCApHnz5mnevHnau3evJKlt27Z6/PHH1a9fP0mSMUZTp07VSy+9pOPHj6tbt2564YUX1LZtW4+u41Yiz87O9ix6AAAC0QVsj19yySWaPn26mjdvLknKzMzUwIEDtXXrVrVt21YzZ87UrFmztGjRIrVo0UJPPPGEevfurd27dys6Otrt61R6sltRUZF2796tkpKSyp4CAIALpqy17s3iiQEDBqh///5q0aKFWrRooWnTpikqKkrr16+XMUazZ8/W5MmTNXjwYLVr106ZmZk6deqUFi9e7NF1PE7kp06d0pgxYxQZGam2bdtq//79ks6MjU+fPt3T0wEAcGEYHyyVVFpaqqVLlyo/P1+pqanKzs5Wbm6u+vTp49zHbrerR48e+uyzzzw6t8eJ/JFHHtEXX3yhNWvWKDw83Ln+uuuu01tvveXp6QAACCp5eXkuS2Fh4Vn33b59u6KiomS323XXXXfpnXfeUZs2bZSbmytJiouLc9k/Li7Ouc1dHify5cuXa86cObryyitls/23zdCmTRt99913np4OAIALxOaDRUpMTFRsbKxzycjIOOsVW7ZsqW3btmn9+vW6++67NWLECO3cufO/Edlc2/XGmHLrzsfj+8gPHz6sBg0alFufn5/v8cUBALhgfHQfeU5OjmJiYpyr7Xb7WQ8JCwtzTnZLSUnRxo0b9eyzz+rhhx+WJOXm5qphw4bO/Q8dOlSuSj8fjyvyrl27asWKFc7PZcn75ZdfVmpqqqenAwAgqMTExLgs50rkv2WMUWFhoZKSkhQfH6+srCzntqKiIq1du1bdu3f3KB6PK/KMjAz97ne/086dO1VSUqJnn31WO3bs0Lp167R27VpPTwcAwIVxgZ/s9pe//EX9+vVTYmKiTp48qaVLl2rNmjVauXKlbDabJkyYoPT0dCUnJys5OVnp6emKjIzUsGHDPLqOx4m8e/fu+s9//qOnnnpKzZo106pVq9S5c2etW7dO7du39/R0AABcGBf47Wc//vijbr/9dh08eFCxsbHq0KGDVq5cqd69e0uSJk2apNOnT2vcuHHOB8KsWrXKo3vIJclmTKC+z+X88vLyFBsbq+NfN1VMNO9/QfXUN+FSf4cAVJkSU6w1elcnTpxwGXf2pbJckfjCVIVEhJ//gLNwnC5Qzj1TqjTWyqjUS1NKS0v1zjvvaNeuXbLZbGrdurUGDhyomjV5BwsAIDBV19eYepx5v/rqKw0cOFC5ublq2bKlJOnrr79W/fr19d5779FeBwAEpmr69jOP+9Fjx45V27Zt9f3332vLli3asmWLcnJy1KFDB/3xj3+sihgBAMBZeFyRf/HFF9q0aZMuuugi57qLLrpI06ZNU9euXX0aHAAAPnOBJ7tdKB5X5C1bttSPP/5Ybv2hQ4ecN70DABBobMb7JRC5VZHn5eU5/zs9PV3jx49XWlqaLr/8cknS+vXr9de//lUzZsyomigBAPBWNR0jdyuR165d2+Xxq8YY3XLLLc51ZXewDRgwQKWlpVUQJgAAqIhbifyjjz6q6jgAAKha1XSM3K1E3qNHj6qOAwCAqmXl1npFTp06pf3796uoqMhlfYcOHbwOCgAAuKdSrzEdNWqU/vWvf1W4nTFyAEBAqqYVuce3n02YMEHHjx/X+vXrFRERoZUrVyozM1PJycl67733qiJGAAC8Z3ywBCCPK/LVq1fr3XffVdeuXRUSEqLGjRurd+/eiomJUUZGhq6//vqqiBMAAFTA44o8Pz9fDRo0kCTVqVNHhw8fliS1b99eW7Zs8W10AAD4StmsdW+WAFSpJ7vt3r1bknTppZdq/vz5+uGHH/Tiiy+qYcOGPg8QAABfsPST3X5twoQJOnjwoCRpypQp6tu3r958802FhYVp0aJFvo4PAACcg8eJfPjw4c7/7tSpk/bu3av/+7//U6NGjVSvXj2fBgcAgM9U01nrlb6PvExkZKQ6d+7si1gAAICH3ErkEydOdPuEs2bNqnQwAABUFZu8G+cOzKlubibyrVu3unWyX79YBQAAVL1q8dKUm1q0V01bqL/DAKqEzW73dwhAlbGZEKnwAl3Myi9NAQAg6FXTyW4e30cOAAACBxU5AMAaqmlFTiIHAFiCt09nC9Qnu9FaBwAgiFUqkb/++uu64oorlJCQoH379kmSZs+erXfffdenwQEA4DPV9DWmHifyefPmaeLEierfv79++uknlZaWSpJq166t2bNn+zo+AAB8g0R+xvPPP6+XX35ZkydPVo0aNZzrU1JStH37dp8GBwAAzs3jyW7Z2dnq1KlTufV2u135+fk+CQoAAF9jstsvkpKStG3btnLr//Wvf6lNmza+iAkAAN8re7KbN0sA8rgif+ihh3TPPfeooKBAxhh9/vnnWrJkiTIyMvTKK69URYwAAHiP+8jPGDVqlEpKSjRp0iSdOnVKw4YN08UXX6xnn31WQ4cOrYoYAQDAWVTqgTB33nmn7rzzTh05ckQOh0MNGjTwdVwAAPhUdR0j9+rJbvXq1fNVHAAAVC1a62ckJSWd873je/bs8SogAADgPo8T+YQJE1w+FxcXa+vWrVq5cqUeeughX8UFAIBvedlarzYV+X333Vfh+hdeeEGbNm3yOiAAAKpENW2t++ylKf369dM//vEPX50OAAC4wWevMf3f//1f1alTx1enAwDAt6ppRe5xIu/UqZPLZDdjjHJzc3X48GHNnTvXp8EBAOAr3H72i0GDBrl8DgkJUf369dWzZ0+1atXKV3EBAAA3eJTIS0pK1KRJE/Xt21fx8fFVFRMAAHCTR5PdatasqbvvvluFhYVVFQ8AAFWD95Gf0a1bN23durUqYgEAoMqUjZF7swQij8fIx40bpwceeEDff/+9unTpolq1arls79Chg8+CAwAA5+Z2Ih89erRmz56tIUOGSJLGjx/v3Gaz2WSMkc1mU2lpqe+jBADAFwK0qvaG24k8MzNT06dPV3Z2dlXGAwBA1bD6feTGnPkGjRs3rrJgAACAZzwaIz/XW88AAAhkPBBGUosWLc6bzI8dO+ZVQAAAVAmrt9YlaerUqYqNja2qWAAAgIc8SuRDhw5VgwYNqioWAACqjOVb64yPAwCCWjVtrbv9ZLeyWesAACBwuF2ROxyOqowDAICqVU0rco8f0QoAQDCy/Bg5AABBrZpW5B6//QwAAAQOKnIAgDVU04qcRA4AsITqOkZOax0AgCBGRQ4AsAZa6wAABC9a6wAAIOCQyAEA1mB8sHggIyNDXbt2VXR0tBo0aKBBgwZp9+7driEZo7S0NCUkJCgiIkI9e/bUjh07PLoOiRwAYA0XOJGvXbtW99xzj9avX6+srCyVlJSoT58+ys/Pd+4zc+ZMzZo1S3PmzNHGjRsVHx+v3r176+TJk25fhzFyAACqwMqVK10+L1y4UA0aNNDmzZt19dVXyxij2bNna/LkyRo8eLAkKTMzU3FxcVq8eLH+9Kc/uXUdKnIAgCXYfLBIUl5enstSWFjo1vVPnDghSapTp44kKTs7W7m5uerTp49zH7vdrh49euizzz5z+3uRyAEA1uCj1npiYqJiY2OdS0ZGxvkvbYwmTpyoK6+8Uu3atZMk5ebmSpLi4uJc9o2Li3NucwetdQCAJfjq9rOcnBzFxMQ419vt9vMee++99+rLL7/Up59+Wv68NpvLZ2NMuXXnQiIHAMADMTExLon8fP785z/rvffe08cff6xLLrnEuT4+Pl7Smcq8YcOGzvWHDh0qV6WfC611AIA1XOBZ68YY3XvvvXr77be1evVqJSUluWxPSkpSfHy8srKynOuKioq0du1ade/e3e3rUJEDAKzjAj6d7Z577tHixYv17rvvKjo62jnuHRsbq4iICNlsNk2YMEHp6elKTk5WcnKy0tPTFRkZqWHDhrl9HRI5AABVYN68eZKknj17uqxfuHChRo4cKUmaNGmSTp8+rXHjxun48ePq1q2bVq1apejoaLevQyIHAFjChX7WujHnP8BmsyktLU1paWmVC0okcgCAVVTTt58x2Q0AgCBGRQ4AsITq+hpTEjkAwBporQMAgEBDRQ4AsARa6wAABLNq2lonkQMArKGaJnLGyAEACGJU5AAAS2CMHACAYEZrHQAABBoqcgCAJdiMkc2NF5mc6/hARCIHAFgDrXUAABBoqMgBAJbArHUAAIIZrXUAABBoqMgBAJZAax0AgGBWTVvrJHIAgCVU14qcMXIAAIIYFTkAwBporQMAENwCtT3uDVrrAAAEMSpyAIA1GHNm8eb4AEQiBwBYArPWAQBAwKEiBwBYA7PWAQAIXjbHmcWb4wMRrXUAAIIYFTnOa8i9P+qK/ieU2LxQRQUh2rkpUq9Oa6jvvwv3d2iAT1w//EfdcNshNbi4UJK0/5sIvfncxdq0trZ/A4NvVdPWul8r8o8//lgDBgxQQkKCbDabli9f7s9wcBYdUvP1/qJ6mnBDsh4Z2lQ1ahilL9kje0Spv0MDfOJIbpgWzEjU+IFtNX5gW21bF6MpL32jxsmn/B0afKhs1ro3SyDyayLPz89Xx44dNWfOHH+GgfOYPLypspbV0b6vw7VnZ4Sevr+R4i4pVnKH0/4ODfCJDf++SBvX1NYP2RH6ITtCmU8lquBUiFp1yvd3aPClsvvIvVkCkF9b6/369VO/fv38GQIqoVbMmUr85E81/BwJ4HshIUZX9T8me4RDu7ZE+Tsc4LyCaoy8sLBQhYWFzs95eXl+jMaqjP6YdkBfbailfbsj/B0M4DNNWp7SM//YqTC7Q6dP1dDf7krW/m/5O16d8ECYAJCRkaHY2FjnkpiY6O+QLOee9B+U1Pq0MsY18ncogE99vydc465vpwmD22jFGw30wFN71Kg5w0fVivHBEoCCKpE/8sgjOnHihHPJycnxd0iWMu6J75XaJ0+Tbm6mIwfD/B0O4FMlxSE6uC9c32yP0sInE5W9K1KDRuX6OyzgvIKqtW6322W32/0dhgUZ3TPtB3X/3Qk9dHNz/ZjDnwEswCaFhgVoCYZKqa6t9aBK5PCPe9N/UK+bjittVJJO/xyii+oXS5LyT9ZQUUFQNXWACo18MEcb19bWkQNhiogqVY8BR9Xh8jw9OrKlv0ODL/H2M9/7+eef9e233zo/Z2dna9u2bapTp44aNWIMNlAMGHlUkvTU29+5rH9qQqKyltXxR0iAT11Ur1iTZn2ni+oX69TJGsr+v0g9OrKltn4a6+/QgPPyayLftGmTevXq5fw8ceJESdKIESO0aNEiP0WF3+qb0NHfIQBV6pn/aervEHAB0FqvAj179pQJ0FYFAKCa4RGtAAAg0DDZDQBgCbTWAQAIZg5zZvHm+ABEIgcAWANj5AAAINBQkQMALMEmL8fIfRaJb5HIAQDWUE2f7EZrHQCAIEZFDgCwBG4/AwAgmDFrHQAABBoqcgCAJdiMkc2LCWveHFuVSOQAAGtw/LJ4c3wAorUOAEAQoyIHAFgCrXUAAIJZNZ21TiIHAFgDT3YDAACBhoocAGAJPNkNAIBgRmsdAAAEGhI5AMASbA7vF098/PHHGjBggBISEmSz2bR8+XKX7cYYpaWlKSEhQREREerZs6d27Njh8fcikQMArKGste7N4oH8/Hx17NhRc+bMqXD7zJkzNWvWLM2ZM0cbN25UfHy8evfurZMnT3p0HcbIAQCoAv369VO/fv0q3GaM0ezZszV58mQNHjxYkpSZmam4uDgtXrxYf/rTn9y+DhU5AMAajA8WSXl5eS5LYWGhx6FkZ2crNzdXffr0ca6z2+3q0aOHPvvsM4/ORSIHAFhC2SNavVkkKTExUbGxsc4lIyPD41hyc3MlSXFxcS7r4+LinNvcRWsdAAAP5OTkKCYmxvnZbrdX+lw2m83lszGm3LrzIZEDAKzBR/eRx8TEuCTyyoiPj5d0pjJv2LChc/2hQ4fKVennQ2sdAGANRv99J3llFh8+DyYpKUnx8fHKyspyrisqKtLatWvVvXt3j85FRQ4AsIQL/RrTn3/+Wd9++63zc3Z2trZt26Y6deqoUaNGmjBhgtLT05WcnKzk5GSlp6crMjJSw4YN8+g6JHIAAKrApk2b1KtXL+fniRMnSpJGjBihRYsWadKkSTp9+rTGjRun48ePq1u3blq1apWio6M9ug6JHABgDUZejpF7tnvPnj1lznE9m82mtLQ0paWlVT4mkcgBAFbBS1MAAECgoSIHAFiDQ5Jnt2iXPz4AkcgBAJZwoWetXyi01gEACGJU5AAAa6imk91I5AAAa6imiZzWOgAAQYyKHABgDdW0IieRAwCsgdvPAAAIXtx+BgAAAg4VOQDAGhgjBwAgiDmMZPMiGTsCM5HTWgcAIIhRkQMArIHWOgAAwczLRK7ATOS01gEACGJU5AAAa6C1DgBAEHMYedUeZ9Y6AADwNSpyAIA1GMeZxZvjAxCJHABgDYyRAwAQxBgjBwAAgYaKHABgDbTWAQAIYkZeJnKfReJTtNYBAAhiVOQAAGugtQ4AQBBzOCR5cS+4IzDvI6e1DgBAEKMiBwBYA611AACCWDVN5LTWAQAIYlTkAABrqKaPaCWRAwAswRiHjBdvMPPm2KpEIgcAWIMx3lXVjJEDAABfoyIHAFiD8XKMPEArchI5AMAaHA7J5sU4d4COkdNaBwAgiFGRAwCsgdY6AADByzgcMl601gP19jNa6wAABDEqcgCANdBaBwAgiDmMZKt+iZzWOgAAQYyKHABgDcZI8uY+8sCsyEnkAABLMA4j40Vr3ZDIAQDwI+OQdxU5t58BAAAfoyIHAFgCrXUAAIJZNW2tB3UiL/vtqETFXt3jDwQym2EEDNVXiSmWdGGqXW9zRYmKfReMDwV1Ij958qQk6VN94OdIgCpU6O8AgKp38uRJxcbGVsm5w8LCFB8fr09zvc8V8fHxCgsL80FUvmMzgdr0d4PD4dCBAwcUHR0tm83m73AsIS8vT4mJicrJyVFMTIy/wwF8ir/fF54xRidPnlRCQoJCQqqu+1RQUKCioiKvzxMWFqbw8HAfROQ7QV2Rh4SE6JJLLvF3GJYUExPDP3Sotvj7fWFVVSX+a+Hh4QGXgH2FwTcAAIIYiRwAgCBGIodH7Ha7pkyZIrvd7u9QAJ/j7zeCUVBPdgMAwOqoyAEACGIkcgAAghiJHACAIEYiBwAgiJHI4ba5c+cqKSlJ4eHh6tKliz755BN/hwT4xMcff6wBAwYoISFBNptNy5cv93dIgNtI5HDLW2+9pQkTJmjy5MnaunWrrrrqKvXr10/79+/3d2iA1/Lz89WxY0fNmTPH36EAHuP2M7ilW7du6ty5s+bNm+dc17p1aw0aNEgZGRl+jAzwLZvNpnfeeUeDBg3ydyiAW6jIcV5FRUXavHmz+vTp47K+T58++uyzz/wUFQBAIpHDDUeOHFFpaani4uJc1sfFxSk3N9dPUQEAJBI5PPDbV8UaY3h9LAD4GYkc51WvXj3VqFGjXPV96NChclU6AODCIpHjvMLCwtSlSxdlZWW5rM/KylL37t39FBUAQJJq+jsABIeJEyfq9ttvV0pKilJTU/XSSy9p//79uuuuu/wdGuC1n3/+Wd9++63zc3Z2trZt26Y6deqoUaNGfowMOD9uP4Pb5s6dq5kzZ+rgwYNq166dnnnmGV199dX+Dgvw2po1a9SrV69y60eMGKFFixZd+IAAD5DIAQAIYoyRAwAQxEjkAAAEMRI5AABBjEQOAEAQI5EDABDESOQAAAQxEjkAAEGMRA54KS0tTZdeeqnz88iRI/3yLuu9e/fKZrNp27ZtZ92nSZMmmj17ttvnXLRokWrXru11bDabTcuXL/f6PADKI5GjWho5cqRsNptsNptCQ0PVtGlTPfjgg8rPz6/yaz/77LNuPw3MneQLAOfCs9ZRbf3ud7/TwoULVVxcrE8++URjx45Vfn6+5s2bV27f4uJihYaG+uS6sbGxPjkPALiDihzVlt1uV3x8vBITEzVs2DANHz7c2d4ta4cvWLBATZs2ld1ulzFGJ06c0B//+Ec1aNBAMTExuuaaa/TFF1+4nHf69OmKi4tTdHS0xowZo4KCApftv22tOxwOzZgxQ82bN5fdblejRo00bdo0SVJSUpIkqVOnTrLZbOrZs6fzuIULF6p169YKDw9Xq1atNHfuXJfrfP755+rUqZPCw8OVkpKirVu3evwzmjVrltq3b69atWopMTFR48aN088//1xuv+XLl6tFixYKDw9X7969lZOT47L9/fffV5cuXRQeHq6mTZtq6tSpKikp8TgeAJ4jkcMyIiIiVFxc7Pz87bffatmyZfrHP/7hbG1ff/31ys3N1QcffKDNmzerc+fOuvbaa3Xs2DFJ0rJlyzRlyhRNmzZNmzZtUsOGDcsl2N965JFHNGPGDD322GPauXOnFi9e7HyP++effy5J+n//7//p4MGDevvttyVJL7/8siZPnqxp06Zp165dSk9P12OPPabMzExJUn5+vm644Qa1bNlSmzdvVlpamh588EGPfyYhISF67rnn9NVXXykzM1OrV6/WpEmTXPY5deqUpk2bpszMTP3nP/9RXl6ehg4d6tz+4Ycf6rbbbtP48eO1c+dOzZ8/X4sWLXL+sgKgihmgGhoxYoQZOHCg8/OGDRtM3bp1zS233GKMMWbKlCkmNDTUHDp0yLnPv//9bxMTE2MKCgpcztWsWTMzf/58Y4wxqamp5q677nLZ3q1bN9OxY8cKr52Xl2fsdrt5+eWXK4wzOzvbSDJbt251WZ+YmGgWL17ssu5vf/ubSU1NNcYYM3/+fFOnTh2Tn5/v3D5v3rwKz/VrjRs3Ns8888xZty9btszUrVvX+XnhwoVGklm/fr1z3a5du4wks2HDBmOMMVdddZVJT093Oc/rr79uGjZs6PwsybzzzjtnvS6AymOMHNXWP//5T0VFRamkpETFxcUaOHCgnn/+eef2xo0bq379+s7Pmzdv1s8//6y6deu6nOf06dP67rvvJEm7du0q9w721NRUffTRRxXGsGvXLhUWFuraa691O+7Dhw8rJydHY8aM0Z133ulcX1JS4hx/37Vrlzp27KjIyEiXODz10UcfKT09XTt37lReXp5KSkpUUFCg/Px81apVS5JUs2ZNpaSkOI9p1aqVateurV27dumyyy7T5s2btXHjRpcKvLS0VAUFBTp16pRLjAB8j0SOaqtXr16aN2+eQkNDlZCQUG4yW1miKuNwONSwYUOtWbOm3LkqewtWRESEx8c4HA5JZ9rr3bp1c9lWo0YNSZLxwduH9+3bp/79++uuu+7S3/72N9WpU0effvqpxowZ4zIEIZ25fey3ytY5HA5NnTpVgwcPLrdPeHi413ECODcSOaqtWrVqqXnz5m7v37lzZ+Xm5qpmzZpq0qRJhfu0bt1a69ev1x133OFct379+rOeMzk5WREREfr3v/+tsWPHltseFhYm6UwFWyYuLk4XX3yx9uzZo+HDh1d43jZt2uj111/X6dOnnb8snCuOimzatEklJSV6+umnFRJyZrrMsmXLyu1XUlKiTZs26bLLLpMk7d69Wz/99JNatWol6czPbffu3R79rAH4Dokc+MV1112n1NRUDRo0SDNmzFDLli114MABffDBBxo0aJBSUlJ03333acSIEUpJSdGVV16pN998Uzt27FDTpk0rPGd4eLgefvhhTZo0SWFhYbriiit0+PBh7dixQ2PGjFGDBg0UERGhlStX6pJLLlF4eLhiY2OVlpam8ePHKyYmRv369VNhYaE2bdqk48ePa+LEiRo2bJgmT56sMWPG6NFHH9XevXv11FNPefR9mzVrppKSEj3//PMaMGCA/vOf/+jFF18st19oaKj+/Oc/67nnnlNoaKjuvfdeXX755c7E/vjjj+uGG25QYmKi/vCHPygkJERffvmltm/frieeeMLzPwgAHmHWOvALm82mDz74QFdffbVGjx6tFi1aaOjQodq7d69zlvmQIUP0+OOP6+GHH1aXLl20b98+3X333ec872OPPaYHHnhAjz/+uFq3bq0hQ4bo0KFDks6MPz/33HOaP3++EhISNHDgQEnS2LFj9corr2jRokVq3769evTooUWLFjlvV4uKitL777+vnTt3qlOnTpo8ebJmzJjh0fe99NJLNWvWLM2YMUPt2rXTm2++qYyMjHL7RUZG6uGHH9awYcOUmpqqiIgILV261Lm9b9+++uc//6msrCx17dpVl19+uWbNmqXGjRt7FA+AyrEZXwy2AQAAv6AiBwAgiJHIAQAIYiRyAACCGIkcAIAgRiIHACCIkcgBAAhiJHIAAIIYiRwAgCBGIgcAIIiRyAEACGIkcgAAghiJHACAIPb/ARDyon/7bHj3AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"=== SVM-RBF Model Evaluation ===\")\n", "print(\"ROC AUC: \", roc_auc_score(y, y_prob))\n", "print(\"PR AUC: \", average_precision_score(y, y_prob))\n", "print(\"Brier Score: \", brier_score_loss(y, y_prob))\n", "print(\"Classification Report:\\n\", classification_report(y, y_pred, digits=3))\n", "\n", "# Confusion matrix\n", "ConfusionMatrixDisplay.from_predictions(y, y_pred)\n", "plt.title(\"SVM Confusion Matrix\")\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 11, "id": "d84a0de1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Threshold | Precision | Recall | F1-score\n", " 0.10 | 0.455 | 1.000 | 0.625\n", " 0.20 | 0.400 | 0.800 | 0.533\n", " 0.30 | 0.571 | 0.800 | 0.667\n", " 0.40 | 0.667 | 0.800 | 0.727\n", " 0.50 | 0.600 | 0.600 | 0.600\n", " 0.60 | 0.750 | 0.600 | 0.667\n", " 0.70 | 0.750 | 0.600 | 0.667\n", " 0.80 | 0.750 | 0.600 | 0.667\n", " 0.90 | 0.000 | 0.000 | 0.000\n" ] } ], "source": [ "import numpy as np\n", "from sklearn.metrics import precision_recall_fscore_support\n", "\n", "# Test different thresholds\n", "thresholds = np.linspace(0.1, 0.9, 9)\n", "print(\"Threshold | Precision | Recall | F1-score\")\n", "\n", "for t in thresholds:\n", " y_pred_thresh = (y_prob >= t).astype(int)\n", " precision, recall, f1, _ = precision_recall_fscore_support(y, y_pred_thresh, average='binary', zero_division=0)\n", " print(f\"{t:9.2f} | {precision:9.3f} | {recall:6.3f} | {f1:8.3f}\")\n" ] }, { "cell_type": "code", "execution_count": 12, "id": "e369590b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "=== Threshold = 0.40 ===\n", " precision recall f1-score support\n", "\n", " 0 0.981 0.962 0.971 53\n", " 1 0.667 0.800 0.727 5\n", "\n", " accuracy 0.948 58\n", " macro avg 0.824 0.881 0.849 58\n", "weighted avg 0.954 0.948 0.950 58\n", "\n" ] }, { "data": { "image/png": "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pZde0osvvqgff/xRvXv3VlFRkUNxRkRE6M9//rNeeeUV29ibb76pSpUq6a677rroZxszZozefvttvffee+rXr58eeOABPfHEE7Z1li1bpvr166tNmza27+/C/2hOmTJF+/fv18KFC/Xhhx+qRo0aJY5VvXp1LV26VJs3b9YjjzwiSTp16pTuvPNO1alTRwsXLrzk5ysqKlL//v01cuRILViwQFWqVCmxjjFGQUFBWrhwoZKSknTvvfdecp9lMWrUKAUGBmrJkiVKT0/X2rVrNWTIkBLrff3115o0aZLGjx+vlStX6o477lB2drY6duyof//735o2bZo++eQTjRw5UmlpaRo9erRt26VLl2rs2LFKSkrSsmXLtHz5cv31r39VXl5emeJx5nfqfMYY9e3b1/aH2rJly9S5c2f17NnT4e+rsLDQocVc5uGSO3bskCS1bNnSbjwwMFBNmjSxvX8pxhiNGjVKt99+u13xUNqxLjzO+cfeuXPnZY8FL+XRfoCPys7ONpLMgAEDHFp/9+7dRpIZO3as3fhXX31lJJlHH33UNpaUlGQkma+++spu3WbNmplbbrnFbkySGTdunN3Y9OnTTWn/rMUty8zMTGOMMe+8846RZLZv337J2HVBq3HAgAEmODjY7N+/3269nj17mrCwMHP8+HFjjDGfffaZkWRuu+02u/XefvttI8ls2LDhksc9v8VavK8dO3YYY4zp0KGDGT58uDHm8u3xoqIiU1BQYB5//HETHR1trFar7b2LbVt8vBtvvPGi73322Wd247NnzzaSzLJly8ywYcNMaGio+fbbby/5GY0x5vXXXzd169Y1Z8+etcU7Y8YMExcXZ0JCQky/fv1Menq6Lc7Dhw+bkJAQ8+OPP15238Ucaa1f+LOZnp5uJJkDBw7YxurWrWsCAgLMnj177NYdM2aMqVq1qtm3b5/d+FNPPWUkmZ07dxpjjLn//vvNVVdddclYHY3Hmd+pC1vrn3zyiZFknnnmGbttZ86c6XBrXZJDy6uvvnrJ/RQf8/zvuVhycrJp1KjRZWN57rnnTLVq1Ux2drYx5uKnJwIDA82YMWNKbL9+/XojySxZsuSyx4J3oiK/Aj777DNJKjGpqmPHjmratGmJWaOxsbHq2LGj3VjLli21b98+t8XUunVrBQUF6Z577lFGRoZ++eUXh7Zbs2aNunfvXqITMXz4cJ06dapEZ+DCCqH4r39nPktSUpIaNGigV155Rd999502b9580bZ6cYw333yzIiMjFRAQoMDAQE2bNk1HjhzRwYMHHT7uHXfc4fC6kyZNUq9evTRw4EBlZGToueeeU4sWLS673fLlyzV8+HAFBQVJkubNm6f09HQ98sgjWrFihWrVqqXHHnvMtn50dLQSExNtP1Pu4ui/U8uWLdWoUSO7sY8++kjdunVTXFycXTVaXOGuW7dO0rmf9+PHj2vgwIF6//33L1k1Xy4eZ3+nzle87eDBg+3GBw0adNFtLrR582aHlt69ezu0v9JOh11qvNi+ffs0ZcoU/f3vf1dMTEyZj+PIseC9mLVeBsWXbmRmZjq0/pEjRySVPks4Li6uxH8so6OjS6wXHBys06dPlyHa0jVo0ECffvqp0tPTNW7cOOXl5al+/foaP368HnzwwYtud+TIkYt+juL3z3fhZymeT+DMZ7FYLLr77rv17LPP6syZM2rUqJFuuOGGUtfdtGmTkpOT1bVrVy1atMh2znb58uWaOXOmU8d1Zla3xWLR8OHD9fHHHys2Ntahc+OS9MMPP9jmAUjSCy+8oClTpmj8+PGSpG7dumnHjh22+RGSFBMTo0OHDjkcmyMc/Xcq7Tv5/fff9eGHHyowMLDUfRcn7KFDh6qwsFCLFi3SHXfcIavVqg4dOujJJ59Ujx49nIrH2d+p8x05ckSVK1cucYzY2NiLbnOh1q1bO7Te5a4yKI7hyJEjJRLx0aNHFRUVdcntx40bp+bNm+uOO+7Q8ePHJck2x+XkyZM6ceKEIiMjbce68Pez+DiSLnsseC8q8jIICAhQ9+7dtXXrVocm1hT/sh44cKDEe7/99puqV6/utthCQkIknbvU5HylVT833HCDPvzwQ504cUIbN25UYmKiJkyYoKVLl150/9HR0Rf9HJLc+lnON3z4cB0+fFgLFy4sMTHofEuXLlVgYKA++ugj9e/fX126dFH79u3LdExnKpQDBw5o3Lhxat26tY4cOaKHH37Yoe0KCgps/2aSlJmZqbZt29qt06FDB7vXv/76a7l9z5dT2ndSvXp1JScnX7QqHTlypG3du+++W+vXr9eJEyf08ccfyxij22+/3elukyu/U9HR0SosLCyR1LKzsx0+fmBgoEPLhZNAL1Tctfnuu+/sxgsLC/X999+refPml9x+x44d2rhxo6pVq2Zbxo0bJ+ncH4F169a1O9aFxzn/2Jc7FrwXibyMpkyZImOMRo8eXerksIKCAn344YeSpJtuukmSbJPVim3evFm7d+9W9+7d3RZX8czrb7/91m68OJbSBAQEqFOnTnr++eclnZvQdDHdu3fXmjVrSswg/uc//6mwsDB17ty5jJFfWq1atTRp0iT17t1bw4YNu+h6FotFlStXtquETp8+rddee63Euu7qchQVFWngwIGyWCz65JNPlJaWpueee07vvffeZbetU6eO3WzpmJgYuysLJNl1fn744Qdt2rRJN998s8txu8vtt9+uHTt2qEGDBmrfvn2Jpbhbc74qVaqoZ8+emjp1qvLz852eaOXK71S3bt0kqcR19UuWLHH4+O5qrXfq1Ek1a9YscWOid955RydPnlS/fv0uuf3SpUv12Wef2S3Fky4XLlyojz76yLbun/70J33//ff66quvbGOFhYV6/fXX1alTp1L/neAbaK2XUWJiohYsWKCxY8eqXbt2uu+++3TttdeqoKBA27Zt04svvqjmzZurd+/eaty4se655x4999xzqlSpknr27Km9e/fqscceU3x8vP7617+6La7bbrtNUVFRGjlypB5//HFVrlxZixcvVlZWlt16Cxcu1Jo1a9SrVy/VqVNHZ86csc0Mv1SSmD59uu2c6LRp0xQVFaU33nhDH3/8sdLT021tvPIwa9asy67Tq1cvzZkzR4MGDdI999yjI0eO6Kmnnir1EsEWLVpo6dKleuutt1S/fn2FhIQ4dF77QtOnT9cXX3yhVatWKTY2Vg899JDWrVunkSNHqk2bNkpISLjotsnJyVq6dKkmTJggSerfv79SU1PVvHlztWzZUh9++KFtVvXq1as1ZswY3X///apfv77TcZaXxx9/XKtXr1aXLl00fvx4NW7cWGfOnNHevXu1YsUKLVy4ULVr19bo0aMVGhqq6667TjVr1lR2drbS0tIUGRlZoutwOa78TiUnJ+vGG2/U5MmTlZeXp/bt2+vLL78s9Y+9iylrl+dCAQEBSk9P19ChQzVmzBgNHDhQP/74oyZPnqwePXro1ltvta27bt06de/eXdOmTdO0adMkqdQ/nIv/EGzXrp1dnCNGjNDzzz+vO++8U7NmzVKNGjU0f/587dmzR59++qlbPg88xNOz7Xzd9u3bzbBhw0ydOnVMUFCQqVKlimnTpo2ZNm2aOXjwoG29oqIiM3v2bNOoUSMTGBhoqlevboYMGWKysrLs9nexGcal3dRCpcxaN8aYTZs2mS5dupgqVaqYWrVqmenTp5uXXnrJbtb6hg0bzJ/+9CdTt25dExwcbKKjo01SUpL54IMPShzjwlm83333nendu7eJjIw0QUFBplWrViVm5xbP7v7Xv/5lN56ZmenQbF5HbwxS2szzV155xTRu3NgEBweb+vXrm7S0NPPyyy/bfX5jjNm7d69JTk424eHhRpLt+71Y7Oe/VzxrfdWqVaZSpUolvqMjR46YOnXqmA4dOthmpJfm2LFjJioqyixevNgYY0xubq7p27evbdZzw4YNzaRJk4wkExMTY5566im7mfeOKMsNYUqbnV+3bl3Tq1evUvdz6NAhM378eJOQkGACAwNNVFSUadeunZk6dao5efKkMcaYjIwM061bNxMTE2OCgoJMXFyc6d+/v93sfmficfR3qrTfnePHj5sRI0aYq666yoSFhZkePXqY77///orfEKbYkiVLTMuWLU1QUJCJjY0148ePN7m5uXbrFH8Hl4vvUr872dnZ5i9/+YuJiooyISEhpnPnzmb16tXu/CjwAIsxl7nQEUC5eueddzR06FBlZGSof//+ks7dE/vo0aNq3Lixjh07puPHjyshIYGZxQBKIJEDXuD111/XPffco5tuukmjR49Wx44dVa1aNR07dkybNm1SRkaGcnNztWrVKpI5ADskcsBLZGZmKjU1Ve+9957dk/Nq1qypQYMGafLkyaXeXQ6AfyORA17GarUqKytLJ06cUFRUlEefPgfA+5HIAQDwYVxHDgCADyORAwDgw3z6hjBWq1W//fabwsPDmckLAD7IGKPc3FzFxcWpUqXyqy3PnDlzyUc0OyooKMjutsrewKcT+W+//ebw88ABAN4rKyur3CZ2njlzRgl1qyr7YJHL+4qNjVVmZqZXJXOfTuTh4eGSpH1f11NEVc4SoGLq18I9twMFvFGhKdAX+cts/z0vD/n5+co+WKR9W+spIrzsuSIn16q67fYqPz+fRO4uxe30iKqVXPrHAbxZZUvpjwcFKpIrcXq0arhFVcPLfhyrvPMULtkPAOAXiozV5cUZKSkpslgsdsv5z703xiglJUVxcXEKDQ1V165dnX4SoEQiBwD4CauMy4uzrr32Wh04cMC2nP9M+PT0dM2ZM0fz5s3T5s2bFRsbqx49eig3N9epY5DIAQAoJ5UrV1ZsbKxtufrqqyWdq8bnzp2rqVOnql+/fmrevLkyMjJ06tQpLVmyxKljkMgBAH7B6ob/OevHH39UXFycEhISNGDAAP3yyy+Szj1bITs7W8nJybZ1g4ODlZSUpPXr1zt1DJ+e7AYAgKOKjFGRC3clL942JyfHbjw4OFjBwcEl1u/UqZP++c9/qlGjRvr999/15JNPqkuXLtq5c6eys7MlSTExMXbbxMTEaN++fU7FRUUOAIAT4uPjFRkZaVvS0tJKXa9nz56644471KJFC9188836+OOPJUkZGRm2dS6crW+McXoGPxU5AMAvlHXC2vnbS+duXhMREWEbL60aL02VKlXUokUL/fjjj+rbt68kKTs7WzVr1rStc/DgwRJV+uVQkQMA/IJVRkUuLMWJPCIiwm5xNJGfPXtWu3fvVs2aNZWQkKDY2FitXr3a9n5+fr7WrVunLl26OPW5qMgBACgHDz/8sHr37q06dero4MGDevLJJ5WTk6Nhw4bJYrFowoQJSk1NVcOGDdWwYUOlpqYqLCxMgwYNcuo4JHIAgF9wV2vdUb/++qsGDhyow4cP6+qrr1bnzp21ceNG1a1bV5I0efJknT59WmPHjtWxY8fUqVMnrVq1yunb1ZLIAQB+wV2z1h21dOnSS75vsViUkpKilJSUMsckcY4cAACfRkUOAPAL1j8WV7b3RiRyAIBfKJ597sr23ohEDgDwC0Xm3OLK9t6Ic+QAAPgwKnIAgF/gHDkAAD7MKouK5Nx9zC/c3hvRWgcAwIdRkQMA/ILVnFtc2d4bkcgBAH6hyMXWuivblida6wAA+DAqcgCAX6ioFTmJHADgF6zGIqtxYda6C9uWJ1rrAAD4MCpyAIBfoLUOAIAPK1IlFbnQiC5yYyzuRCIHAPgF4+I5csM5cgAA4G5U5AAAv8A5cgAAfFiRqaQi48I5ci+9RSutdQAAfBgVOQDAL1hlkdWF+tUq7yzJSeQAAL9QUc+R01oHAMCHUZEDAPyC65PdaK0DAOAx586Ru/DQFFrrAADA3ajIAQB+werivdaZtQ4AgAdxjhwAAB9mVaUKeR0558gBAPBhVOQAAL9QZCwqcuFRpK5sW55I5AAAv1Dk4mS3IlrrAADA3ajIAQB+wWoqyerCrHUrs9YBAPAcWusAAMDrUJEDAPyCVa7NPLe6LxS3IpEDAPyC6zeE8c4mtndGBQAAHEJFDgDwC67fa907a18SOQDAL1TU55GTyAEAfqGiVuTeGRUAAHAIFTkAwC+4fkMY76x9SeQAAL9gNRZZXbmO3Euffuadf14AAACHUJEDAPyC1cXWurfeEIZEDgDwC64//cw7E7l3RgUAABxCRQ4A8AtFsqjIhZu6uLJteSKRAwD8Aq11AADgdajIAQB+oUiutceL3BeKW5HIAQB+oaK21knkAAC/wENTAACA16EiBwD4BePi88gNl58BAOA5tNYBAIDXoSIHAPiFivoYUxI5AMAvFLn49DNXti1P3hkVAABwCIkcAOAXilvrrixllZaWJovFogkTJtjGjDFKSUlRXFycQkND1bVrV+3cudPpfZPIAQB+wapKLi9lsXnzZr344otq2bKl3Xh6errmzJmjefPmafPmzYqNjVWPHj2Um5vr1P5J5AAAlJOTJ09q8ODBWrRokapVq2YbN8Zo7ty5mjp1qvr166fmzZsrIyNDp06d0pIlS5w6BokcAOAXiozF5UWScnJy7JazZ89e9Jjjxo1Tr169dPPNN9uNZ2ZmKjs7W8nJybax4OBgJSUlaf369U59LhI5AMAvuOsceXx8vCIjI21LWlpaqcdbunSpvv7661Lfz87OliTFxMTYjcfExNjecxSXnwEA/IJx8eln5o9ts7KyFBERYRsPDg4usW5WVpYefPBBrVq1SiEhIRfdp8ViP4HOGFNi7HJI5AAAOCEiIsIukZdm69atOnjwoNq1a2cbKyoq0ueff6558+Zpz549ks5V5jVr1rStc/DgwRJV+uXQWgcA+IUiWVxeHNW9e3d999132r59u21p3769Bg8erO3bt6t+/fqKjY3V6tWrbdvk5+dr3bp16tKli1Ofi4ocAOAXrMa126xajePrhoeHq3nz5nZjVapUUXR0tG18woQJSk1NVcOGDdWwYUOlpqYqLCxMgwYNciouEjkAAB4wefJknT59WmPHjtWxY8fUqVMnrVq1SuHh4U7th0SOEl57Klavz4m1G6t2dYGWfnPujkP/XRGpFa9F68dvw5RzrLLmr9qjBs1PeyJUwC3uuu83XXfLMdVucFr5Zypp19dV9crseP36S6inQ4MbWV2c7ObKtpK0du1au9cWi0UpKSlK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4MESVfrlOJ3Ip0yZom+++UZr165VSEiIbfzmm2/WW2+95ezuAADwG8YYnT17VgkJCYqNjdXq1att7+Xn52vdunXq0qWLU/t0uie+fPlyvfXWW+rcubNd+d+sWTP9/PPPzu4OAIArxPLH4sr2jnv00UfVs2dPxcfHKzc3V0uXLtXatWu1cuVKWSwWTZgwQampqWrYsKEaNmyo1NRUhYWFadCgQU4dx+lEfujQIdWoUaPEeF5entN9fQAArpgyXAteYnsn/P777xo6dKgOHDigyMhItWzZUitXrlSPHj0kSZMnT9bp06c1duxYHTt2TJ06ddKqVasUHh7u1HGcTuQdOnTQxx9/rAceeEDS/52oX7RokRITE53dHQAAFdLLL798yfctFotSUlIuOuPdUU4n8rS0NN16663atWuXCgsL9cwzz2jnzp3asGGD3Uw8AAC8yhWuyK8Upye7denSRV9++aVOnTqlBg0aaNWqVYqJidGGDRvUrl278ogRAADXFT/9zJXFC5XpAvAWLVooIyPD3bEAAAAnlSmRFxUVadmyZdq9e7csFouaNm2qPn36cGMYAIDXqqiPMXU68+7YsUN9+vRRdna2GjduLEn64YcfdPXVV+uDDz5QixYt3B4kAAAu4xz5OaNGjdK1116rX3/9VV9//bW+/vprZWVlqWXLlrrnnnvKI0YAAHARTlfk33zzjbZs2aJq1arZxqpVq6aZM2eqQ4cObg0OAAC3cXXCmpdOdnO6Im/cuLF+//33EuMHDx7UNddc45agAABwN4txffFGDlXk5z97NTU1VePHj1dKSoo6d+4sSdq4caMef/xxzZ49u3yiBADAVRX0HLlDifyqq66yu/2qMUb9+/e3jZk/pvL17t1bRUVF5RAmAAAojUOJ/LPPPivvOAAAKF8V9By5Q4k8KSmpvOMAAKB8+XNrvTSnTp3S/v37lZ+fbzfesmVLl4MCAACOKdNjTO+++2598sknpb7POXIAgFeqoBW505efTZgwQceOHdPGjRsVGhqqlStXKiMjQw0bNtQHH3xQHjECAOA644bFCzldka9Zs0bvv/++OnTooEqVKqlu3brq0aOHIiIilJaWpl69epVHnAAAoBROV+R5eXmqUaOGJCkqKkqHDh2SdO6JaF9//bV7owMAwF0q6GNMy3Rntz179kiSWrdurRdeeEH/+9//tHDhQtWsWdPtAQIA4A5+fWe3802YMEEHDhyQJE2fPl233HKL3njjDQUFBWnx4sXujg8AAFyC04l88ODBtv/fpk0b7d27V99//73q1Kmj6tWruzU4AADcpoLOWi/zdeTFwsLC1LZtW3fEAgAAnORQIp84caLDO5wzZ06ZgwEAoLxY5Np5bu+c6uZgIt+2bZtDOzv/wSoAAKD8VYiHpvypUQtVtgR6OgygXARcHeHpEIByU8maL529Qgfz54emAADg8yroZDenryMHAADeg4ocAOAfKmhFTiIHAPgFV+/O5q13dqO1DgCADytTIn/ttdd03XXXKS4uTvv27ZMkzZ07V++//75bgwMAwG0q6GNMnU7kCxYs0MSJE3Xbbbfp+PHjKioqkiRdddVVmjt3rrvjAwDAPUjk5zz33HNatGiRpk6dqoCAANt4+/bt9d1337k1OAAAcGlOT3bLzMxUmzZtSowHBwcrLy/PLUEBAOBuTHb7Q0JCgrZv315i/JNPPlGzZs3cERMAAO5XfGc3VxYv5HRFPmnSJI0bN05nzpyRMUabNm3Sm2++qbS0NL300kvlESMAAK7jOvJz7r77bhUWFmry5Mk6deqUBg0apFq1aumZZ57RgAEDyiNGAABwEWW6Iczo0aM1evRoHT58WFarVTVq1HB3XAAAuFVFPUfu0p3dqlev7q44AAAoX7TWz0lISLjkc8d/+eUXlwICAACOczqRT5gwwe51QUGBtm3bppUrV2rSpEnuigsAAPdysbVeYSryBx98sNTx559/Xlu2bHE5IAAAykUFba277aEpPXv21Lvvvuuu3QEAAAe47TGm77zzjqKioty1OwAA3KuCVuROJ/I2bdrYTXYzxig7O1uHDh3S/Pnz3RocAADuwuVnf+jbt6/d60qVKunqq69W165d1aRJE3fFBQAAHOBUIi8sLFS9evV0yy23KDY2trxiAgAADnJqslvlypV133336ezZs+UVDwAA5YPnkZ/TqVMnbdu2rTxiAQCg3BSfI3dl8UZOnyMfO3asHnroIf36669q166dqlSpYvd+y5Yt3RYcAAC4NIcT+YgRIzR37lzdddddkqTx48fb3rNYLDLGyGKxqKioyP1RAgDgDl5aVbvC4USekZGhWbNmKTMzszzjAQCgfPj7deTGnPsEdevWLbdgAACAc5w6R36pp54BAODNuCGMpEaN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fZX1EqzQ0FCnt7FarZLOtdc7depk915AQIAkybjh6cP79u3TbbfdpnvvvVdPPPGEoqKi9N///lcjR460OwUhnbt87ELFY1arVTNmzFC/fv1KrBMSEuJynAAujUSOCqtKlSq65pprHF6/bdu2ys7OVuXKlVWvXr1S12natKk2btyov/zlL7axjRs3XnSfDRs2VGhoqP7zn/9o1KhRJd4PCgqSdK6CLRYTE6NatWrpl19+0eDBg0vdb7NmzfTaa6/p9OnTtj8WLhVHabZs2aLCwkL94x//UKVK56bLvP322yXWKyws1JYtW9SxY0dJ0p49e3T8+HE1adJE0rnvbc+ePU591wDch0QO/OHmm29WYmKi+vbtq9mzZ6tx48b67bfftGLFCvXt21ft27fXgw8+qGHDhql9+/a6/vrr9cYbb2jnzp2qX79+qfsMCQnRI488osmTJysoKEjXXXedDh06pJ07d2rkyJGqUaOGQkNDtXLlStWuXVshISGKjIxUSkqKxo8fr4iICPXs2VNnz57Vli1bdOzYMU2cOFGDBg3S1KlTNXLkSP3tb3/T3r179dRTTzn1eRs0aKDCwkI999xz6t27t7788kstXLiwxHqBgYF64IEH9OyzzyowMFD333+/OnfubEvs06ZN0+233674+HjdeeedqlSpkr799lt99913evLJJ53/hwDgFGatA3+wWCxasWKFbrzxRo0YMUKNGjXSgAEDtHfvXtss87vuukvTpk3TI488onbt2mnfvn267777Lrnfxx57TA899JCmTZumpk2b6q677tLBgwclnTv//Oyzz+qFF15QXFyc+vTpI0kaNWqUXnrpJS1evFgtWrRQUlKSFi9ebLtcrWrVqvrwww+1a9cutWnTRlOnTtXs2bOd+rytW7fWnDlzNHv2bDVv3lxvvPGG0tLSSqwXFhamRx55RIMGDVJiYqJCQ0O1dOlS2/u33HKLPvroI61evVodOnRQ586dNWfOHNWtW9epeACUjcW442QbAADwCCpyAAB8GIkcAAAfRiIHAMCHkcgBAPBhJHIAAHwYiRwAAB9GIgcAwIeRyAEA8GEkcgAAfBiJHAAAH0YiBwDAh5HIAQDwYf8/f17EYAReg6EAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.metrics import classification_report, ConfusionMatrixDisplay\n", "\n", "y_pred_040 = (y_prob >= 0.4).astype(int)\n", "\n", "print(\"=== Threshold = 0.40 ===\")\n", "print(classification_report(y, y_pred_040, digits=3))\n", "\n", "ConfusionMatrixDisplay.from_predictions(y, y_pred_040)\n", "plt.title(\"Confusion Matrix @ Threshold = 0.40\")\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "2fd41e5f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== NaiveBayes ===\n", "ROC AUC: 0.9584905660377359\n", "PR AUC: 0.6266666666666666\n", "Brier Score: 0.04634397393131746\n", "Report:\n", " precision recall f1-score support\n", "\n", " 0 0.981 0.981 0.981 53\n", " 1 0.800 0.800 0.800 5\n", "\n", " accuracy 0.966 58\n", " macro avg 0.891 0.891 0.891 58\n", "weighted avg 0.966 0.966 0.966 58\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAHFCAYAAAAJ7nvFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9LUlEQVR4nO3deXhTVf7H8U9aaNpCWyhLS7Wssu+bWBwFZVHE/kB0Rha1IIgCLgwqjDJKXWiBGbECAuICHRXRGQWREQSHxQXQFkERGBzGgkWooIKFAl2S8/sDmyG2QEJSkjTv1/Pc5zHnbt+bIF++55x7r8UYYwQAAAJSiK8DAAAAF45EDgBAACORAwAQwEjkAAAEMBI5AAABjEQOAEAAI5EDABDASOQAAAQwEjkAAAGMRB5gvvrqK40YMUKNGjVSeHi4qlevrk6dOmnGjBn6+eefK/TcW7duVY8ePRQTEyOLxaKMjAyvn8NisSg1NdXrxz2fRYsWyWKxyGKxaP369WXWG2N02WWXyWKxqGfPnhd0jrlz52rRokVu7bN+/fqzxnQxlH4n06ZNK7Ou9DvLzs52+7gX47rO/E1Llzp16qhnz55asWJFhZ0XuNiq+DoAuO7FF1/U2LFj1bx5cz388MNq1aqViouLlZ2drfnz52vTpk1aunRphZ3/zjvvVEFBgZYsWaKaNWuqYcOGXj/Hpk2bdOmll3r9uK6KiorSyy+/XCZZb9iwQf/9738VFRV1wceeO3euateureHDh7u8T6dOnbRp0ya1atXqgs/rDdOmTdPo0aMVGxvrleNdzOtauHChWrRoIWOM8vLyNGfOHCUnJ2v58uVKTk6u8PMDFc4gIGzcuNGEhoaa66+/3pw6darM+sLCQvPuu+9WaAxVqlQxY8aMqdBz+MrChQuNJDNq1CgTERFhfvnlF6f1t912m0lKSjKtW7c2PXr0uKBzuLNvUVGRKS4uvqDzeJMk07t3b1OlShUzYcIEp3Wl31lWVpaPoju3s8V34sQJY7VazZAhQ3wUGeBddK0HiLS0NFksFi1YsEBWq7XM+rCwMP3f//2f47PdbteMGTPUokULWa1W1a1bV3fccYf279/vtF/Pnj3Vpk0bZWVl6aqrrlJkZKQaN26sadOmyW63S/pfF2VJSYnmzZvn6KaUpNTUVMd/n6l0n7179zra1q5dq549e6pWrVqKiIhQ/fr1dfPNN+vEiROObcrrWv/66681YMAA1axZU+Hh4erQoYMyMzOdtintqn3jjTc0efJkJSQkKDo6Wr1799bu3btd+5IlDRkyRJL0xhtvONp++eUXvf3227rzzjvL3eeJJ55Qt27dFBsbq+joaHXq1Ekvv/yyzBnvI2rYsKF27NihDRs2OL6/0h6N0thfffVVPfjgg7rkkktktVq1Z8+eMl3QP/74oxITE9W9e3cVFxc7jr9z505Vq1ZNt99+u8vX6qrmzZtr5MiRev7557Vv375zbpudna3BgwerYcOGioiIUMOGDTVkyJAy+/32ujIyMmSxWLRnz54yx5w0aZLCwsL0448/Oto+/PBD9erVS9HR0YqMjNSVV16pf/3rXy5dT3h4uMLCwlS1alWndld+x5EjRyo2Ntbpz2ypa6+9Vq1bt3Z8NsZo7ty56tChgyIiIlSzZk3dcsst+vbbb53227p1q2688UbVrVtXVqtVCQkJ6t+/f5n/V4GzIZEHAJvNprVr16pz585KTEx0aZ8xY8Zo0qRJ6tOnj5YvX66nnnpKq1atUvfu3Z3+QpSkvLw8DRs2TLfddpuWL1+ufv366ZFHHtFrr70mSerfv782bdokSbrlllu0adMmx2dX7d27V/3791dYWJheeeUVrVq1StOmTVO1atVUVFR01v12796t7t27a8eOHZo1a5beeecdtWrVSsOHD9eMGTPKbP/oo49q3759eumll7RgwQL95z//UXJysmw2m0txRkdH65ZbbtErr7ziaHvjjTcUEhKiW2+99azXdvfdd+utt97SO++8o0GDBum+++7TU0895dhm6dKlaty4sTp27Oj4/n47DPLII4/ou+++0/z58/Xee++pbt26Zc5Vu3ZtLVmyRFlZWZo0aZIk6cSJE/r973+v+vXra/78+S5dp7tSU1MVGhqqxx577Jzb7d27V82bN1dGRoY++OADTZ8+XQcPHlTXrl3L/Lk702233aawsLAycwhsNptee+01JScnq3bt2pKk1157TX379lV0dLQyMzP11ltvKTY2Vtddd125ydxms6mkpETFxcXav3+/xo8fr4KCAg0dOrRM7Of7HR944AEdOXJEixcvdtp3586dWrduncaNG+dou/vuuzV+/Hj17t1by5Yt09y5c7Vjxw51795dP/zwgySpoKBAffr00Q8//KDnn39ea9asUUZGhurXr69jx46d87sGHHzcIwAX5OXlGUlm8ODBLm2/a9cuI8mMHTvWqf2zzz4zksyjjz7qaOvRo4eRZD777DOnbVu1amWuu+46pzZJZty4cU5tU6ZMMeX9MSrt1szJyTHGGPOPf/zDSDLbtm07Z+ySzJQpUxyfBw8ebKxWq/nuu++ctuvXr5+JjIw0R48eNcYYs27dOiPJ3HDDDU7bvfXWW0aS2bRp0znPe2Y3bOmxvv76a2OMMV27djXDhw83xpy/e9xms5ni4mLz5JNPmlq1ahm73e5Yd7Z9S8939dVXn3XdunXrnNqnT59uJJmlS5ealJQUExERYb766qtzXuOFOPM3nzx5sgkJCTFffvmlMca1rvWSkhJz/PhxU61aNfPcc8+d87oGDRpkLr30UmOz2Rxt77//vpFk3nvvPWOMMQUFBSY2NtYkJyc7ncdms5n27dubyy+/3NFWGt9vF6vVaubOnXvO6z7X79ijRw/ToUMHp+3HjBljoqOjzbFjx4wxxmzatMlIMs8884zTdrm5uSYiIsJMnDjRGGNMdna2kWSWLVt2zniAc6Eir4TWrVsnSWUmVV1++eVq2bJlmaolPj5el19+uVNbu3btztuN6o4OHTooLCxMo0ePVmZmZpnuxbNZu3atevXqVaYnYvjw4Tpx4kSZnoEzhxek09chya1r6dGjh5o0aaJXXnlF27dvV1ZW1lm71Utj7N27t2JiYhQaGqqqVavq8ccf108//aRDhw65fN6bb77Z5W0ffvhh9e/fX0OGDFFmZqZmz56ttm3bnne/kpISp8Wc0W18PhMnTlRsbKyjJ6A8x48f16RJk3TZZZepSpUqqlKliqpXr66CggLt2rXrnMcfMWKE9u/frw8//NDRtnDhQsXHx6tfv36SpI0bN+rnn39WSkqK03XY7XZdf/31ysrKUkFBgdNx//a3vykrK0tZWVlauXKlUlJSNG7cOM2ZM8dpO1d/xwceeEDbtm3Tp59+KknKz8/Xq6++qpSUFFWvXl2StGLFClksFt12221OccbHx6t9+/aOIYXLLrtMNWvW1KRJkzR//nzt3LnzPL8CUBaJPADUrl1bkZGRysnJcWn7n376SZJUr169MusSEhIc60vVqlWrzHZWq1UnT568gGjL16RJE3344YeqW7euxo0bpyZNmqhJkyZ67rnnzrnfTz/9dNbrKF1/pt9eS+l8AneuxWKxaMSIEXrttdc0f/58NWvWTFdddVW5237++efq27evpNN3FXz66afKysrS5MmT3T5vedd5rhiHDx+uU6dOKT4+3qWx8b1796pq1apOy4YNG1w+Z3R0tP785z9r1apVjn8s/tbQoUM1Z84cjRo1Sh988IE+//xzZWVlqU6dOuf9Lvr166d69epp4cKFkqQjR45o+fLluuOOOxQaGipJji7pW265pcy1TJ8+XcaYMrdhtmzZUl26dFGXLl10/fXX64UXXlDfvn01ceJEHT16VJJ7v+OAAQPUsGFDPf/885JOzwcpKChw6lb/4YcfZIxRXFxcmTg3b97sGGaIiYnRhg0b1KFDBz366KNq3bq1EhISNGXKFKc5EMC5cPtZAAgNDVWvXr20cuVK7d+//7y3Z5Ums4MHD5bZ9sCBA46xRm8IDw+XJBUWFjpNwitvPPSqq67SVVddJZvNpuzsbM2ePVvjx49XXFycBg8eXO7xa9WqpYMHD5ZpP3DggCR59VrONHz4cD3++OOaP3++pk6detbtlixZoqpVq2rFihWO70KSli1b5vY5y5s0eDYHDx7UuHHj1KFDB+3YsUMPPfSQZs2adc59EhISlJWV5dTWvHlzt2IcM2aMnnvuOU2aNEljxoxxWvfLL79oxYoVmjJliv70pz852gsLC116xkFoaKhuv/12zZo1S0ePHtXixYtVWFioESNGOLYp/b1nz56tK664otzjxMXFnfdc7dq10wcffKBvvvlGl19+uVu/Y0hIiMaNG6dHH31UzzzzjObOnatevXo5fZe1a9eWxWLRxx9/XO7k1DPb2rZtqyVLlsgYo6+++kqLFi3Sk08+qYiICKfvETgbKvIA8cgjj8gYo7vuuqvcyWHFxcV67733JJ2ePSvJMVmtVFZWlnbt2qVevXp5La7SmddfffWVU3tpLOUJDQ1Vt27dHBXNF198cdZte/XqpbVr1zoSd6m//e1vioyMPOtf5p665JJL9PDDDys5OVkpKSln3c5isahKlSqOilE6Xb29+uqrZbb1Vi+HzWbTkCFDZLFYtHLlSqWnp2v27Nl65513zrlfWFiYozItXdy9Lz4sLExPP/20srKy9Pe//91pncVikTGmTOJ66aWXXJ5sOGLECJ06dUpvvPGGFi1apKSkJLVo0cKx/sorr1SNGjW0c+fOMtdSuoSFhZ33PNu2bZMk1alTxxG7q7+jJI0aNUphYWEaNmyYdu/erXvvvddp/Y033ihjjL7//vtyYyxvGMRisah9+/Z69tlnVaNGjXP+fwGciYo8QCQlJWnevHkaO3asOnfurDFjxqh169YqLi7W1q1btWDBArVp00bJyclq3ry5Ro8erdmzZyskJET9+vXT3r179dhjjykxMVF//OMfvRbXDTfcoNjYWI0cOVJPPvmkqlSpokWLFik3N9dpu/nz52vt2rXq37+/6tevr1OnTjlmhvfu3fusx58yZYpWrFiha665Ro8//rhiY2P1+uuv65///KdmzJihmJgYr13Lb5X3NLPf6t+/v2bOnKmhQ4dq9OjR+umnn/TXv/613CqstPJ688031bhxY4WHh7s0rv1bU6ZM0ccff6zVq1crPj5eDz74oDZs2KCRI0eqY8eOatSokdvHdMeQIUP017/+VStXrnRqj46O1tVXX62//OUvql27tho2bKgNGzbo5ZdfVo0aNVw6dosWLZSUlKT09HTl5uZqwYIFTuurV6+u2bNnKyUlRT///LNuueUW1a1bV4cPH9aXX36pw4cPa968eU77fP311yopKZF0eijmnXfe0Zo1a3TTTTc5vit3fkdJqlGjhu644w7NmzdPDRo0KPNgmSuvvFKjR4/WiBEjlJ2drauvvlrVqlXTwYMH9cknn6ht27YaM2aMVqxYoblz52rgwIFq3LixjDF65513dPToUfXp08el7wxg1nqA2bZtm0lJSTH169c3YWFhplq1aqZjx47m8ccfN4cOHXJsZ7PZzPTp002zZs1M1apVTe3atc1tt91mcnNznY7Xo0cP07p16zLnSUlJMQ0aNHBqUzmz1o0x5vPPPzfdu3c31apVM5dccomZMmWKeemll5xmrW/atMncdNNNpkGDBsZqtZpatWqZHj16mOXLl5c5x5mz1o0xZvv27SY5OdnExMSYsLAw0759e7Nw4UKnbUpnQf/97393as/JyTGSymz/W64+3KS8meevvPKKad68ubFaraZx48YmPT3dvPzyy07Xb4wxe/fuNX379jVRUVFGkuP7PVvsZ64rnd29evVqExISUuY7+umnn0z9+vVN165dTWFh4TmvwR1n+81Xr17tmAV+5ne2f/9+c/PNN5uaNWuaqKgoc/3115uvv/7aNGjQwKSkpJz1us60YMECI6ncB/OU2rBhg+nfv7+JjY01VatWNZdcconp37+/03dY3qz1mJgY06FDBzNz5swyD1Zy9XcstX79eiPJTJs27azf3yuvvGK6detmqlWrZiIiIkyTJk3MHXfcYbKzs40xxvz73/82Q4YMMU2aNDEREREmJibGXH755WbRokVnPSbwWxZj3Ji2CgCQJD344IOaN2+ecnNzy50wClwsdK0DgBs2b96sb775RnPnztXdd99NEofPUZEDgBssFosiIyN1ww03aOHChY57xwFfoSIHADdQ+8DfcPsZAAABjEQOAEAAI5EDABDAAnqM3G6368CBA4qKinLr8ZYAAP9gjNGxY8eUkJCgkJCKqy1PnTp1zlcmuyosLMzpMb7+IKAT+YEDB1x+PzcAwH/l5uae9z0SF+rUqVNq1KC68g659qjgc4mPj1dOTo5fJfOATuSlz4ne90VDRVdnlACV003N3H+MKxAoSlSsT/S+28/9d0dRUZHyDtm0b0tDRUddeK7IP2ZXg857VVRURCL3ltLu9OjqIR79OIA/q2Kp6usQgIrz6918F2N4tHqURdWjLvw8dvnnEG5AJ3IAAFxlM3bZPHgMgM3YvReMF5HIAQBBwS4juy48k3uyb0WiPxoAgABGRQ4ACAp22eVJ57hne1ccEjkAICjYjJHNg2fle7JvRaJrHQCAAEZFDgAICkx2AwAggNllZPNgcTeRp6amymKxOC3x8fGO9cYYpaamKiEhQREREerZs6d27Njh9nWRyAEAqCCtW7fWwYMHHcv27dsd62bMmKGZM2dqzpw5ysrKUnx8vPr06aNjx465dQ661gEAQcEXXetVqlRxqsJLGWOUkZGhyZMna9CgQZKkzMxMxcXFafHixbr77rtdPgcVOQAgKJTOWvdkcdd//vMfJSQkqFGjRho8eLC+/fZbSVJOTo7y8vLUt29fx7ZWq1U9evTQxo0b3ToHFTkAAG7Iz893+my1WmW1Wsts161bN/3tb39Ts2bN9MMPP+jpp59W9+7dtWPHDuXl5UmS4uLinPaJi4vTvn373IqHihwAEBTsXlgkKTExUTExMY4lPT293PP169dPN998s9q2bavevXvrn//8p6TTXeilfvuyGGOM2y+QoSIHAASF0tnnnuwvnX53enR0tKO9vGq8PNWqVVPbtm31n//8RwMHDpQk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FMBt3H4Gl3Tr1k2dOnXSvHnzHG0tW7bUwIEDlZ6e7sPIAO+yWCxaunSpBg4c6OtQAJdQkeO8ioqKtGXLFvXt29epvW/fvtq4caOPogIASCRyuODHH3+UzWZTXFycU3tcXJzy8vJ8FBUAQCKRww2/fVWsMYbXxwKAj5HIcV61a9dWaGhomer70KFDZap0AMDFRSLHeYWFhalz585as2aNU/uaNWvUvXt3H0UFAJCkKr4OAIFhwoQJuv3229WlSxclJSVpwYIF+u6773TPPff4OjTAY8ePH9eePXscn3NycrRt2zbFxsaqfv36PowMOD9uP4PL5s6dqxkzZujgwYNq06aNnn32WV199dW+Dgvw2Pr163XNNdeUaU9JSdGiRYsufkCAG0jkAAAEMMbIAQAIYCRyAAACGIkcAIAARiIHACCAkcgBAAhgJHIAAAIYiRwAgABGIgc8lJqaqg4dOjg+Dx8+3Cfvst67d68sFou2bdt21m0aNmyojIwMl4+5aNEi1ahRw+PYLBaLli1b5vFxAJRFIkelNHz4cFksFlksFlWtWlWNGzfWQw89pIKCggo/93PPPefy08BcSb4AcC48ax2V1vXXX6+FCxequLhYH3/8sUaNGqWCggLNmzevzLbFxcWqWrWqV84bExPjleMAgCuoyFFpWa1WxcfHKzExUUOHDtWwYcMc3bul3eGvvPKKGjduLKvVKmOMfvnlF40ePVp169ZVdHS0rr32Wn355ZdOx502bZri4uIUFRWlkSNH6tSpU07rf9u1brfbNX36dF122WWyWq2qX7++pk6dKklq1KiRJKljx46yWCzq2bOnY7+FCxeqZcuWCg8PV4sWLTR37lyn83z++efq2LGjwsPD1aVLF23dutXt72jmzJlq27atqlWrpsTERI0dO1bHjx8vs92yZcvUrFkzhYeHq0+fPsrNzXVa/95776lz584KDw9X48aN9cQTT6ikpMTteAC4j0SOoBEREaHi4mLH5z179uitt97S22+/7eja7t+/v/Ly8vT+++9ry5Yt6tSpk3r16qWff/5ZkvTWW29pypQpmjp1qrKzs1WvXr0yCfa3HnnkEU2fPl2PPfaYdu7cqcWLFzve4/75559Lkj788EMdPHhQ77zzjiTpxRdf1OTJkzV16lTt2rVLaWlpeuyxx5SZmSlJKigo0I033qjmzZtry5YtSk1N1UMPPeT2dxISEqJZs2bp66+/VmZmptauXauJEyc6bXPixAlNnTpVmZmZ+vTTT5Wfn6/Bgwc71n/wwQe67bbbdP/992vnzp164YUXtGjRIsc/VgBUMANUQikpKWbAgAGOz5999pmpVauW+cMf/mCMMWbKlCmmatWq5tChQ45t/vWvf5no6Ghz6tQpp2M1adLEvPDCC8YYY5KSksw999zjtL5bt26mffv25Z47Pz/fWK1W8+KLL5YbZ05OjpFktm7d6tSemJhoFi9e7NT21FNPmaSkJGOMMS+88IKJjY01BQUFjvXz5s0r91hnatCggXn22WfPuv6tt94ytWrVcnxeuHChkWQ2b97saNu1a5eRZD777DNjjDFXXXWVSUtLczrOq6++aurVq+f4LMksXbr0rOcFcOEYI0eltWLFClWvXl0lJSUqLi7WgAEDNHv2bMf6Bg0aqE6dOo7PW7Zs0fHjx1WrVi2n45w8eVL//e9/JUm7du0q8w72pKQkrVu3rtwYdu3apcLCQvXq1cvluA8fPqzc3FyNHDlSd911l6O9pKTEMf6+a9cutW/fXpGRkU5xuGvdunVKS0vTzp07lZ+fr5KSEp06dUoFBQWqVq2aJKlKlSrq0qWLY58WLVqoRo0a2rVrly6//HJt2bJFWVlZThW4zWbTqVOndOLECacYAXgfiRyV1jXXXKN58+apatWqSkhIKDOZrTRRlbLb7apXr57Wr19f5lgXegtWRESE2/vY7XZJp7vXu3Xr5rQuNDRUkmS88Pbhffv26YYbbtA999yjp556SrGxsfrkk080cuRIpyEI6fTtY79V2ma32/XEE09o0KBBZbYJDw/3OE4A50YiR6VVrVo1XXbZZS5v36lTJ+Xl5alKlSpq2LBhudu0bNlSmzdv1h133OFo27x581mP2bRpU0VEROhf//qXRo0aVWZ9WFiYpNMVbKm4uDhdcskl+vbbbzVs2LByj9uqVSu9+uqrOnnypOMfC+eKozzZ2dkqKSnRM888o5CQ09Nl3nrrrTLblZSUKDs7W5dffrkkaffu3Tp69KhatGgh6fT3tnv3bre+awDeQyIHftW7d28lJSVp4MCBmj59upo3b64DBw7o/fff18CBA9WlSxc98MADSklJUZcuXfS73/1Or7/+unbs2KHGjRuXe8zw8HBNmjRJEydOVFhYmK688kodPnxYO3bs0MiRI1W3bl1FRERo1apVuvTSSxUeHq6YmBilpqbq/vvvV3R0tPr166fCwkJlZ2fryJEjmjBhgoYOHarJkydr5MiR+vOf/6y9e/fqr3/9q1vX26RJE5WUlGj27NlKTk7Wp59+qvnz55fZrmrVqrrvvvs0a9YsVa1aVffee6+uuOIKR2J//PHHdeONNyoxMVG///3vFRISoq+++krbt2/X008/7f4PAcAtzFoHfmWxWPT+++/r6quv1p133qlmzZpp8ODB2rt3r2OW+a233qrHH39ckyZNUufOnbVv3z6NGTPmnMd97LHH9OCDD+rxxx9Xy5Ytdeutt+rQoUOSTo8/z5o1Sy+88IISEhI0YMAASdKoUaP00ksvadGiRWrbtq169OihRYsWOW5Xq169ut577z3t3LlTHTt21OTJkzV9+nS3rrdDhw6aOXOmpk+frjZt2uj1119Xenp6me0iIyM1adIkDR06VElJSYqIiNCSJUsc66+77jqtWLFCa9asUdeuXXXFFVdo5syZatCggVvxALgwFuONwTYAAOATVOQAAAQwEjkAAAGMRA4AQAAjkQMAEMBI5AAABDASOQAAAYxEDgBAACORAwAQwEjkAAAEMBI5AAABjEQOAEAAI5EDABDA/h+EWSCCETXFTwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== SVM-RBF ===\n", "ROC AUC: 0.9584905660377359\n", "PR AUC: 0.6075757575757575\n", "Brier Score: 0.044092930410943365\n", "Report:\n", " precision recall f1-score support\n", "\n", " 0 0.962 0.962 0.962 53\n", " 1 0.600 0.600 0.600 5\n", "\n", " accuracy 0.931 58\n", " macro avg 0.781 0.781 0.781 58\n", "weighted avg 0.931 0.931 0.931 58\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAHFCAYAAAAJ7nvFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA8RklEQVR4nO3deVyVdfr/8fcB4QAK5ApSoGi4L6mYSRk2KQ2ZX82aMq1RsxVbHC37OU5Ki6BWRmVqVirjZObMqC3j+NXGtCm10LRM/dqGSiVumSgi2/n8/nA40wlUjufg2V7PedyP6dzrddCHF9f1+dz3bTHGGAEAAJ8U5OkAAADA+SORAwDgw0jkAAD4MBI5AAA+jEQOAIAPI5EDAODDSOQAAPgwEjkAAD6MRA4AgA8jkfu5L774QqNGjVJiYqLCwsLUoEEDde/eXTNmzNBPP/1Up9feunWrUlNTFR0dLYvFopycHLdfw2KxKDMz0+3nPZeFCxfKYrHIYrFo3bp11bYbY3TppZfKYrGob9++53WN2bNna+HChU4ds27dujPGdCEcOXJEEydOVIcOHVS/fn1FR0erXbt2uuOOO/TFF19Ikm688UaFh4fr559/PuN5hg8frpCQEB04cECS7D/rkSNH1rj/k08+ad9nz54954wzMzPTvr/FYlFISIgSEhJ09913q7CwsNr+LVu2dNg/LCxMl156qcaNG6fDhw+f9dy/XGbNmnXO2ABn1fN0AKg7r776qjIyMtS2bVs9+uij6tChg8rLy7V582bNnTtXGzdu1PLly+vs+nfeeaeKi4u1ZMkSNWzYUC1btnT7NTZu3KhLLrnE7eetrcjISL3++uvVkvX69ev17bffKjIy8rzPPXv2bDVp0uSMyasm3bt318aNG9WhQ4fzvu75OnHihK644gqdOHFCjz76qLp27aqSkhJ99dVXWrZsmbZt26YuXbpo9OjRWrFihRYvXqyMjIxq5zl27JiWL1+uG264QTExMfb1kZGR+utf/6qXXnrJ4edqjNHChQsVFRWloqIip2JetWqVoqOjdeLECa1evVrPPfecNmzYoG3btikkJMRh3yuvvFLPPvusJKmkpESbN29WZmamPvzwQ23evPmM5/6lxMREp+IDasXAL23YsMEEBweb3/72t+bUqVPVtpeWlpq33367TmOoV6+euf/+++v0Gp6yYMECI8ncddddJjw83Bw7dsxh++2332569+5tOnbsaFJTU8/rGs4cW1ZWZsrLy8/rOu4yf/58I8msXbu2xu2VlZXGGGMqKipMXFyc6dGjR437zZkzx0gy7777rn2dJHP77beb8PBwM2/ePIf933//fSPJ3H333UaSyc/PP2esU6ZMMZLMoUOHHNaPGjWqxu/QokULM2DAgGrnefzxx40ks3v37nOeG6grtNb9VFZWliwWi+bNmyer1Vpte2hoqP7nf/7H/tlms2nGjBlq166drFarmjVrpt///vf6/vvvHY7r27evOnXqpLy8PPXp00cRERFq1aqVpk2bJpvNJum/beeKigrNmTPH3laU/tt2/LWqY37ZFl27dq369u2rxo0bKzw8XAkJCbrpppt08uRJ+z41tda//PJLDRo0SA0bNlRYWJguu+wy5ebmOuxT1YJ+8803NWnSJMXFxSkqKkr9+vXT7t27a/dDlnTbbbdJkt588037umPHjunvf/+77rzzzhqPeeKJJ9SrVy81atRIUVFR6t69u15//XWZX7y/qGXLltqxY4fWr19v//lVdTSqYl+0aJHGjx+viy++WFarVd9880211vrhw4cVHx+vlJQUlZeX28+/c+dO1a9fX3fccUetv+u5HDlyRJLUvHnzGrcHBZ3+5yY4OFgjRozQli1btH379mr7LViwQM2bN1d6errD+ujoaN14442aP3++w/r58+fryiuvVJs2bVz+DsnJyZJkb+mfS1XF/evqHbiQSOR+qLKyUmvXrlWPHj0UHx9fq2Puv/9+PfbYY+rfv7/eeecdPfXUU1q1apVSUlKqjQEWFhZq+PDhuv322/XOO+8oPT1dEydO1F/+8hdJ0oABA7Rx40ZJ0s0336yNGzfaP9fWnj17NGDAAIWGhmr+/PlatWqVpk2bpvr166usrOyMx+3evVspKSnasWOHXnzxRS1btkwdOnTQyJEjNWPGjGr7//GPf9TevXv12muvad68efr66681cOBAVVZW1irOqKgo3XzzzQ7J5c0331RQUJBuvfXWM363e++9V0uXLtWyZcs0ZMgQPfjgg3rqqafs+yxfvlytWrVSt27d7D+/Xw+DTJw4Ufv27dPcuXP17rvvqlmzZtWu1aRJEy1ZskR5eXl67LHHJEknT57U7373OyUkJGju3Lm1+p610bt3b0nS73//e61YscKe2Gty5513ymKxVEvKO3fu1KeffqoRI0YoODi42nGjR4/Wpk2btGvXLknSzz//rGXLlmn06NFu+Q75+fmSVOMvBcYYVVRUqKKiQidOnNAHH3ygnJwcXXnllTW2zCsrK+37V1RU1PrvFOA0T7cE4H6FhYVGkhk6dGit9t+1a5eRZDIyMhzWf/LJJ0aS+eMf/2hfl5qaaiSZTz75xGHfDh06mOuuu85hnSQzZswYh3VVbcdfq2pVV7VF//a3vxlJZtu2bWeNXZKZMmWK/fPQoUON1Wo1+/btc9gvPT3dREREmJ9//tkYY8wHH3xgJJnrr7/eYb+lS5caSWbjxo1nvW5VvHl5efZzffnll8YYY3r27GlGjhxpjDl3e7yystKUl5ebJ5980jRu3NjYbDb7tjMdW3W9q6+++ozbPvjgA4f106dPN5LM8uXLzYgRI0x4eLj54osvzvodz8eTTz5pQkNDjSQjySQmJpr77rvPfP7559X2TU1NNU2aNDFlZWX2dePHjzeSzFdffeWwb9XfJZvNZhITE80jjzxijDHm5ZdfNg0aNDDHjx83zzzzjNOt9cLCQlNeXm6OHj1qli5daurXr29uu+22avu3aNHC/p1+uVx++eVm//79NZ7718vFF19cmx8h4DQqcuiDDz6QpGqTqi6//HK1b99e//rXvxzWx8bG6vLLL3dY16VLF+3du9dtMV122WUKDQ3VPffco9zcXH333Xe1Om7t2rW69tprq3UiRo4cqZMnT1brDPxyeEE6/T0kOfVdUlNT1bp1a82fP1/bt29XXl7eGdvqVTH269dP0dHRCg4OVkhIiCZPnqwjR47o4MGDtb7uTTfdVOt9H330UQ0YMEC33XabcnNz9dJLL6lz587nPO6XFWVFRYVD+78mjz/+uPbt26f58+fr3nvvVYMGDTR37lz16NHDYfhBOl1dHz58WO+88479Wn/5y1/Up08fJSUl1Xj+qpnrixYtUkVFhV5//XXdcsstatCgQbV9zS8q6Krl12JjYxUSEqKGDRvqlltuUY8ePaoNw1S56qqrlJeXp7y8PH388cd6/fXXdejQIf3mN7+p1rWSpPfff9++f15enlauXHnWnx1wvkjkfqhJkyaKiIiwtwnP5Wxjm3FxcdVapI0bN662n9VqVUlJyXlEW7PWrVvr/fffV7NmzTRmzBi1bt1arVu31gsvvHDW444cOXLG71G1/Zd+/V2q5hM4810sFotGjRqlv/zlL5o7d67atGmjPn361Ljvp59+qrS0NEmn7yr4+OOPlZeXp0mTJjl93TONRZ8pxpEjR+rUqVOKjY2t1dj4nj17FBIS4rCsX7/+nMfFxMRo1KhRmjt3rr744gutX79eoaGhevjhhx32u/nmmxUdHa0FCxZIklauXKkDBw6cs00+atQoHTp0SFlZWfrss8/OuH9ubm61+H+tKtn+7//+r2666SZ9+OGHevDBB2s8X3R0tJKTk5WcnKyUlBTdeeedWrx4sXbt2qXnnnuu2v5du3a175+cnGz/JRFwNxK5HwoODta1116rLVu2VJusVpOqZLZ///5q23788Uc1adLEbbGFhYVJkkpLSx3W11TR9OnTR++++66OHTumTZs2qXfv3ho7dqyWLFlyxvM3btz4jN9Dklu/yy+NHDlShw8f1ty5czVq1Kgz7rdkyRKFhITovffe0y233KKUlBT7BCtn1TRp8Ez279+vMWPG6LLLLtORI0f0yCOPnPOYuLg4h4oyLy9PPXr0cDrOq6++WmlpaTp06JBDxyE8PFy33XabVq1apf3792v+/PmKjIzU7373u7OeLz4+Xv369dMTTzyhtm3bKiUlpcb9Bg4cWC3+X6tKtmlpafrrX/+q/v37a968eTXuW5Oq5Pz555/Xan+gLpDI/dTEiRNljNHdd99d4+Sw8vJyvfvuu5Kk3/zmN5Jkn6xWJS8vT7t27dK1117rtriqZl5XPRykSlUsNQkODlavXr308ssvS5I+++yzM+577bXXau3atfbEXeXPf/6zIiIidMUVV5xn5Gd38cUX69FHH9XAgQM1YsSIM+5nsVhUr149h4lcJSUlWrRoUbV93dXlqKys1G233SaLxaJ//vOfys7O1ksvvaRly5ad9bjQ0FCHijI5Ofms98UfOHDAfufCr6//9ddfKyIiQhdddJHDttGjR6uyslLPPPOMVq5cqaFDhyoiIuKc32n8+PEaOHCgHn/88TPu07hx42rxn43FYtHLL7+s4OBg/elPfzpnDJK0bds2SapxoiFwofBAGD/Vu3dvzZkzRxkZGerRo4fuv/9+dezYUeXl5dq6davmzZunTp06aeDAgWrbtq3uuecevfTSSwoKClJ6err27Nmjxx9/XPHx8frDH/7gtriuv/56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47l+qUWLFub5558/4/alS5eaxo0b2z8vWLDASDKbNm2yr9u1a5eRZD755BNjjDF9+vQxWVlZDudZtGiRad68uf2zJLN8+fIzXhfA+WOMHH7rvffeU4MGDVRRUaHy8nINGjRIL730kn17ixYt1LRpU/vnLVu26MSJE2rcuLHDeUpKSvTtt99Kknbt2lXtHey9e/fWBx98UGMMu3btUmlpqa699tpax33o0CEVFBRo9OjRuvvuu+3rKyoq7OPvu3btUteuXRUREeEQh7M++OADZWVlaefOnSoqKlJFRYVOnTql4uJi1a9fX5JUr149JScn249p166dLrroIu3atUuXX365tmzZory8PIcKvLKyUqdOndLJkycdYgTgfiRy+K1rrrlGc+bMUUhIiOLi4qpNZqtKVFVsNpuaN2+udevWVTvX+d6CFR4e7vQxNptN0un2eq9evRy2BQcHS5KMG94+vHfvXl1//fW677779NRTT6lRo0b66KOPNHr0aIchCOn07WO/VrXOZrPpiSee0JAhQ6rtExYW5nKcAM6ORA6/Vb9+fV166aW13r979+4qLCxUvXr11LJlyxr3ad++vTZt2qTf//739nWbNm064zmTkpIUHh6uf/3rX7rrrruqbQ8NDZV0uoKtEhMTo4svvljfffedhg8fXuN5O3TooEWLFqmkpMT+y8LZ4qjJ5s2bVVFRoeeee05BQaenyyxdurTafhUVFdq8ebMuv/xySdLu3bv1888/q127dpJO/9x2797t1M8agPuQyIH/6Nevn3r37q3Bgwdr+vTpatu2rX788UetXLlSgwcPVnJysh5++GGNGDFCycnJuuqqq/TGG29ox44datWqVY3nDAsL02OPPaYJEyYoNDRUV155pQ4dOqQdO3Zo9OjRatasmcLDw7Vq1SpdcsklCgsLU3R0tDIzM/XQQw8pKipK6enpKi0t1ebNm3X06FGNGzdOw4YN06RJkzR69Gj96U9/0p49e/Tss8869X1bt26tiooKvfTSSxo4cKA+/vhjzZ07t9p+ISEhevDBB/Xiiy8qJCREDzzwgK644gp7Yp88ebJuuOEGxcfH63e/+52CgoL0xRdfaPv27Xr66aed/4MA4BRmrQP/YbFYtHLlSl199dW688471aZNGw0dOlR79uyxzzK/9dZbNXnyZD322GPq0aOH9u7dq/vvv/+s53388cc1fvx4TZ48We3bt9ett96qgwcPSjo9/vziiy/qlVdeUVxcnAYNGiRJuuuuu/Taa69p4cKF6ty5s1JTU7Vw4UL77WoNGjTQu+++q507d6pbt26aNGmSpk+f7tT3veyyyzRz5kxNnz5dnTp10htvvKHs7Oxq+0VEROixxx7TsGHD1Lt3b4WHh2vJkiX27dddd53ee+89rVmzRj179tQVV1yhmTNnqkWLFk7FA+D8WIw7BtsAAIBHUJEDAODDSOQAAPgwEjkAAD6MRA4AgA8jkQMA4MNI5AAA+DASOQAAPoxEDgCADyORAwDgw0jkAAD4MBI5AAA+jEQOAIAP+/86cyOQTxCOIwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== kNN ===\n", "ROC AUC: 0.8113207547169812\n", "PR AUC: 0.7272413793103449\n", "Brier Score: 0.03546588743258093\n", "Report:\n", " precision recall f1-score support\n", "\n", " 0 0.981 0.981 0.981 53\n", " 1 0.800 0.800 0.800 5\n", "\n", " accuracy 0.966 58\n", " macro avg 0.891 0.891 0.891 58\n", "weighted avg 0.966 0.966 0.966 58\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAHFCAYAAAAJ7nvFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA35UlEQVR4nO3deXRU9fnH8c9lySSBTGSRhEiAgOw7ASG0ShSIRuQHRSsIVaKISnChKFhMlaCSAFqKgmxWIVoR/FWhapWCZdEKaEBQCPxokbAVIqBoICxZ5v7+wEwdwzKTmWFmct+vc+45zl2fiTk8eZ7v995rmKZpCgAAhKRqgQ4AAABUHokcAIAQRiIHACCEkcgBAAhhJHIAAEIYiRwAgBBGIgcAIISRyAEACGEkcgAAQhiJHB756quvdPfddyshIUHh4eGqXbu2unbtqunTp+u7777z67W3bNmi3r17Kzo6WoZhaObMmT6/hmEYyszM9Pl5L2XRokUyDEOGYWjt2rUVtpumqauvvlqGYSg5OblS15gzZ44WLVrk0TFr1669YEz+tnfvXhmGoeeff/6i+5XHaBiGNmzYUGF7Wlqaateu7bIuOTlZhmHopptuqvR1gWBRI9ABIHS8/PLLSk9PV6tWrTR+/Hi1bdtWJSUl2rRpk+bNm6cNGzZo2bJlfrv+Pffco6KiIi1ZskR16tRR06ZNfX6NDRs2qFGjRj4/r7uioqL0yiuvVEjW69at09dff62oqKhKn3vOnDmqX7++0tLS3D6ma9eu2rBhg9q2bVvp615OEyZM0CeffOL2/n//+9+1evVq3XDDDX6MCvAvEjncsmHDBo0ePVr9+vXT8uXLZbPZnNv69eunRx99VCtWrPBrDNu3b9eoUaOUmprqt2v07NnTb+d2x5AhQ/TGG2/opZdekt1ud65/5ZVXlJSUpMLCwssSR0lJiQzDkN1uD/jPxF033XSTVqxYoffee08DBgy45P4tW7ZUaWmpJkyYoNzcXBmGcRmiBHyP1jrckpWVJcMwtGDBApckXi4sLEz/8z//4/zscDg0ffp0tW7dWjabTQ0aNNBdd92lgwcPuhyXnJys9u3bKzc3V9dee60iIyPVrFkzTZ06VQ6HQ9J/286lpaWaO3eus40qSZmZmef9B7j8mL179zrXrV69WsnJyapXr54iIiLUuHFj3XrrrTp16pRzn/O11rdv366BAweqTp06Cg8PV+fOnZWTk+OyT3l7980331RGRobi4uJkt9vVt29f7dq1y70fsqQ77rhDkvTmm2861/3www96++23dc8995z3mMmTJ6tHjx6qW7eu7Ha7unbtqldeeUU/fR9S06ZNlZeXp3Xr1jl/fuUdjfLYX3/9dT366KO66qqrZLPZtHv37gqt9WPHjik+Pl69evVSSUmJ8/w7duxQrVq1dOedd7r9XSujpKREI0aMUO3atfX++++7bEtLS1Pbtm01ceJElZWVXfJcNWvW1JQpU7R582YtXbrUXyEDfkcixyWVlZVp9erVSkxMVHx8vFvHjB49Wo8//rj69eund999V88884xWrFihXr166dixYy77FhQUaPjw4frNb36jd999V6mpqZo4caL+/Oc/S5L69+/vHPu87bbbtGHDhvOOhV7M3r171b9/f4WFhenVV1/VihUrNHXqVNWqVUvFxcUXPG7Xrl3q1auX8vLy9OKLL+qdd95R27ZtlZaWpunTp1fY/4knntC+ffv0pz/9SQsWLNC///1vDRgwwK3EIkl2u1233XabXn31Vee6N998U9WqVdOQIUMu+N3uv/9+vfXWW3rnnXc0ePBgPfTQQ3rmmWec+yxbtkzNmjVTly5dnD+/nw+DTJw4Ufv379e8efP03nvvqUGDBhWuVb9+fS1ZskS5ubl6/PHHJUmnTp3Sr3/9azVu3Fjz5s1z63tWxvfff68bb7xRK1eu1Lp163TLLbe4bK9evbqys7OVl5dX4Q+tCxkyZIgSExP1+9//3uUPEyCkmMAlFBQUmJLMoUOHurX/zp07TUlmenq6y/rPPvvMlGQ+8cQTznW9e/c2JZmfffaZy75t27Y1b7zxRpd1kswxY8a4rJs0aZJ5vl/jhQsXmpLM/Px80zRN8y9/+Yspydy6detFY5dkTpo0yfl56NChps1mM/fv3++yX2pqqhkZGWl+//33pmma5po1a0xJ5s033+yy31tvvWVKMjds2HDR65bHm5ub6zzX9u3bTdM0ze7du5tpaWmmaZpmu3btzN69e1/wPGVlZWZJSYn59NNPm/Xq1TMdDodz24WOLb/eddddd8Fta9ascVk/bdo0U5K5bNkyc8SIEWZERIT51VdfXfQ7eio/P9+UZD733HNmfn6+2bZtW7Nt27bm3r17zxvj//7v/5qmaZq//OUvzUaNGpmnT582TdM0R4wYYdaqVcvlmN69e5vt2rUzTdM0P/roI1OSOWvWrArXBUIBFTl8bs2aNZJUYVLVNddcozZt2ugf//iHy/rY2Fhdc801Lus6duyoffv2+Symzp07KywsTPfdd59ycnK0Z88et45bvXq1+vTpU6ETkZaWplOnTlXoDPx0eEE69z0kefRdevfurebNm+vVV1/Vtm3blJube8G2enmMffv2VXR0tKpXr66aNWvqqaee0rfffqsjR464fd1bb73V7X3Hjx+v/v3764477lBOTo5mzZqlDh06XPK40tJSl8X8Sfv/Qr744gv17NlTMTEx+vTTT9WkSZOL7j9t2jQdPHhQL7zwglvfpU+fPkpJSdHTTz+tEydOuHUMEExI5Lik+vXrKzIyUvn5+W7t/+2330qSGjZsWGFbXFycc3u5evXqVdjPZrPp9OnTlYj2/Jo3b66PPvpIDRo00JgxY9S8eXM1b978kv/Yf/vttxf8HuXbf+rn36V8PoEn38UwDN19993685//rHnz5qlly5a69tprz7vv559/rpSUFEnn7ir49NNPlZubq4yMDI+ve77vebEY09LSdObMGcXGxro1Nr53717VrFnTZVm3bt0lj1u1apW++eYb3XvvvbriiisuuX+vXr00aNAgTZ06VcePH3fn62jatGk6duwYt5whJJHIcUnVq1dXnz59tHnz5gqT1c6nPJkdPny4wrZDhw6pfv36PostPDxcknT27FmX9T8fh5eka6+9Vu+9955++OEHbdy4UUlJSRo7dqyWLFlywfPXq1fvgt9Dkk+/y0+lpaXp2LFjmjdvnu6+++4L7rdkyRLVrFlT77//vm6//Xb16tVL3bp1q9Q1PZm1ffjwYY0ZM0adO3fWt99+q8cee+ySx8TFxSk3N9dlSUxMvORx48eP13333ae77rpLr732mlvxZWdn68SJE8rKynJr/86dO+uOO+7QjBkz9M0337h1DBAsSORwy8SJE2WapkaNGnXeyWElJSV67733JMl5T275ZLVyubm52rlzp/r06eOzuMpnXn/11Vcu68tjOZ/q1aurR48eeumllySda91eSJ8+fbR69Wpn4i732muvKTIy0m+3Zl111VUaP368BgwYoBEjRlxwP8MwVKNGDVWvXt257vTp03r99dcr7OurLkdZWZnuuOMOGYahDz/8UNnZ2Zo1a5beeeedix4XFhambt26uSzu3BdfrVo1zZ8/X4888ojS0tI0d+7cSx7TunVr3XPPPZo1a5b279/v1vd69tlnVVxcrMmTJ7u1PxAsuI8cbklKStLcuXOVnp6uxMREjR49Wu3atVNJSYm2bNmiBQsWqH379howYIBatWql++67T7NmzVK1atWUmpqqvXv36sknn1R8fLx++9vf+iyum2++WXXr1tXIkSP19NNPq0aNGlq0aJEOHDjgst+8efO0evVq9e/fX40bN9aZM2ecM8P79u17wfNPmjRJ77//vq6//no99dRTqlu3rt544w397W9/0/Tp0xUdHe2z7/JzU6dOveQ+/fv314wZMzRs2DDdd999+vbbb/X888+f9xbBDh06aMmSJVq6dKmaNWum8PBwt8a1f27SpEn65JNPtHLlSsXGxurRRx/VunXrNHLkSHXp0kUJCQken9Mdf/jDHxQVFaX09HSdPHlS48ePv+j+mZmZeuONN7RmzRrVqlXrkudPSEjQ6NGj3R5bB4IFFTncNmrUKG3atEmJiYmaNm2aUlJSNGjQIL355psaNmyYFixY4Nx37ty5mjp1qj744APdcsstysjIUEpKitavX3/eMfHKstvtWrFihaKiovSb3/xGDzzwgNq3b+8cIy7XuXNnlZaWatKkSUpNTdWdd96po0eP6t1333WOMZ9Pq1attH79erVq1UpjxozRoEGDtH37di1cuPCSieRyuOGGG5yT4gYMGKCMjAzddttt+t3vfldh38mTJ6t3794aNWqUrrnmGrcemvJzq1atUnZ2tp588kmXzsqiRYtkt9s1ZMiQi97O563MzEw999xzmjBhgiZNmnTRfePi4jR27FiPzv/73//e5UE8QCgwTHemjQIAgKBERQ4AQAgjkQMAEMJI5AAAhDASOQAAIYxEDgBACCORAwAQwkL6gTAOh0OHDh1SVFSUR4+XBAAEB9M0deLECcXFxalaNf/VlmfOnPHJMw7CwsKcj4YOFiGdyA8dOuT2+7EBAMHrwIEDatSokV/OfebMGSU0qa2CI2Venys2Nlb5+flBlcxDOpGXP6d53xdNZa/NKAGqpl+19PwxqkCoKFWJ/qkP3HrufmUVFxer4EiZ9m1uKntU5XNF4QmHmiTuVXFxMYncV8rb6fba1bz6nwMEsxpGzUCHAPjP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OaOioiLVqlVLklSjRg1169bNeUzr1q11xRVXaOfOnbrmmmu0efNm5ebmulTgZWVlOnPmjE6dOuUSIwDfI5Gjyrr++us1d+5c1axZU3FxcRUms5UnqnIOh0MNGzbU2rVrK5yrsrdgRUREeHyMw+GQdK693qNHD5dt1atXlySZPnj78L59+3TzzTfrgQce0DPPPKO6devqn//8p0aOHOkyBCGdu33s58rXORwOTZ48WYMHD66wT3h4uNdxArg4EjmqrFq1aunqq692e/+uXbuqoKBANWrUUNOmTc+7T5s2bbRx40bdddddznUbN2684DlbtGihiIgI/eMf/9C9995bYXtYWJikcxVsuZiYGF111VXas2ePhg8fft7ztm3bVq+//rpOnz7t/GPhYnGcz6ZNm1RaWqo//OEPqlbt3HSZt956q8J+paWl2rRpk6655hpJ0q5du/T999+rdevWks793Hbt2uXRzxqA75DIgR/17dtXSUlJGjRokKZNm6ZWrVrp0KFD+uCDDzRo0CB169ZNjzzyiEaMGKFu3brpl7/8pd544w3l5eWpWbNm5z1neHi4Hn/8cU2YMEFhYWH6xS9+oaNHjyovL08jR45UgwYNFBERoRUrVqhRo0YKDw9XdHS0MjMz9fDDD8tutys1NVVnz57Vpk2bdPz4cY0bN07Dhg1TRkaGRo4cqd///vfau3evnn/+eY++b/PmzVVaWqpZs2ZpwIAB+vTTTzVv3rwK+9WsWVMPPfSQXnzxRdWsWVMPPvigevbs6UzsTz31lG655RbFx8fr17/+tapVq6avvvpK27Zt07PPPuv5/wgAHmHWOvAjwzD0wQcf6LrrrtM999yjli1baujQodq7d69zlvmQIUP01FNP6fHHH1diYqL27dun0aNHX/S8Tz75pB599FE99dRTatOmjYYMGaIjR45IOjf+/OKLL2r+/PmKi4vTwIEDJUn33nuv/vSnP2nRokXq0KGDevfurUWLFjlvV6tdu7bee+897dixQ126dFFGRoamTZvm0fft3LmzZsyYoWnTpql9+/Z64403lJ2dXWG/yMhIPf744xo2bJiSkpIUERGhJUuWOLffeOONev/997Vq1Sp1795dPXv21IwZM9SkSROP4gFQOYbpi8E2AAAQEFTkAACEMBI5AAAhjEQOAEAII5EDABDCSOQAAIQwEjkAACGMRA4AQAgjkQMAEMJI5AAAhDASOQAAIYxEDgBACCORAwAQwv4f7uW+TEmX70kAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== DecisionTree ===\n", "ROC AUC: 0.8245283018867925\n", "PR AUC: 0.5605747126436782\n", "Brier Score: 0.04427186435717327\n", "Report:\n", " precision recall f1-score support\n", "\n", " 0 0.945 0.981 0.963 53\n", " 1 0.667 0.400 0.500 5\n", "\n", " accuracy 0.931 58\n", " macro avg 0.806 0.691 0.731 58\n", "weighted avg 0.921 0.931 0.923 58\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAHFCAYAAAAJ7nvFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9dElEQVR4nO3de1yUdfr/8feAMoACigaIoaJ5Pp9CbA1dT6m5dtrNNFfLTmKZWekWm9JBUds1S1fNTlKbmd8tzdryp2Vpm1poWp7WzUKlVdTURFFAZj6/P4zZRlAZZnBmmNfz8bgfj+ae+3DNQF5c1+dz37fFGGMEAAD8UpC3AwAAABVHIgcAwI+RyAEA8GMkcgAA/BiJHAAAP0YiBwDAj5HIAQDwYyRyAAD8GIkcAAA/RiL3cd9++63uuOMOJSYmKjQ0VDVr1lSnTp00c+ZMHTt2rFLPvWXLFqWkpCgqKkoWi0WzZ8/2+DksFovS09M9ftxLWbRokSwWiywWiz777LNS7xtjdNVVV8lisahnz54VOse8efO0aNEil/b57LPPLhjT5VDynVgsFgUHB6t27dpq37697r33Xm3cuLHSz9+zZ0+Xv+/K/s7S09OdvpcLLRX9PQHcVc3bAeDCXnrpJaWmpqp58+Z69NFH1apVK509e1abNm3SggULtGHDBi1btqzSzn/nnXcqPz9fS5YsUe3atdWoUSOPn2PDhg268sorPX7c8oqIiNArr7xS6h/htWvX6vvvv1dERESFjz1v3jzVrVtXo0aNKvc+nTp10oYNG9SqVasKn9ddt9xyix5++GEZY5SXl6ft27fr9ddf18KFCzVu3Dg9//zzlXbuefPmubxPZX9nd911l6677jrH64MHD+qmm27SAw88oGHDhjnWR0ZGVsr5gUsy8Enr1683wcHB5rrrrjMFBQWl3i8sLDTvvfdepcZQrVo1M2bMmEo9h7e89tprRpK56667TFhYmDlx4oTT+7fffrtJTk42rVu3NikpKRU6hyv7FhUVmbNnz1boPJ4kyYwdO7bU+uLiYnPnnXcaSWbevHleiMx3ZGdnG0nm2Wefveh2vvIzRdVHa91HTZs2TRaLRQsXLpTVai31fkhIiH73u985Xtvtds2cOVMtWrSQ1WpVTEyM/vjHP+rHH3902q9nz55q06aNsrKy1KNHD4WHh6tx48aaPn267Ha7pP+1nYuLizV//nxH61D6X5vxfCX77N2717FuzZo16tmzp+rUqaOwsDA1aNBAN998s06fPu3YpqzW+vbt2zVkyBDVrl1boaGh6tChgzIzM522KWmnvvXWW0pLS1N8fLwiIyPVp08f7d69u3xfsqTbbrtNkvTWW2851p04cULvvPOO7rzzzjL3efLJJ5WUlKTo6GhFRkaqU6dOeuWVV2R+9fyhRo0aaceOHVq7dq3j+yvpaJTE/sYbb+jhhx9W/fr1ZbVatWfPnlJt4p9++kkJCQnq3r27zp496zj+zp07VaNGDY0YMaLcn9UdwcHBmjt3rurWratnn33W6b28vDw98sgjSkxMVEhIiOrXr6/x48crPz/faTu73a45c+aoQ4cOCgsLU61atdStWzetWLHCsU1ZrfX58+erffv2qlmzpiIiItSiRQs9/vjjjvcv1FpfsWKFkpOTFR4eroiICPXt21cbNmxw2qbk93nHjh267bbbFBUVpdjYWN155506ceJEub+fi/1MJenjjz9W7969FRkZqfDwcF1zzTX65JNPSh3nu+++07BhwxQTEyOr1aqWLVvqb3/7W7njQGAikfsgm82mNWvWqHPnzkpISCjXPmPGjNGkSZPUt29frVixQk8//bRWrlyp7t2766effnLaNjc3V8OHD9ftt9+uFStWaMCAAXrsscf097//XZI0aNAgxz94t9xyizZs2FDqH8BL2bt3rwYNGqSQkBC9+uqrWrlypaZPn64aNWqoqKjogvvt3r1b3bt3144dO/TCCy/o3XffVatWrTRq1CjNnDmz1PaPP/649u3bp5dfflkLFy7Ud999p8GDB8tms5UrzsjISN1yyy169dVXHeveeustBQUF6dZbb73gZ7v33nu1dOlSvfvuu44269NPP+3YZtmyZWrcuLE6duzo+P7OHwZ57LHHtH//fi1YsEDvv/++YmJiSp2rbt26WrJkibKysjRp0iRJ0unTp/X73/9eDRo00IIFC8r1OT0hLCxMffr0UXZ2tuMPxNOnTyslJUWZmZkaN26cPvroI02aNEmLFi3S7373O6c/bkaNGqUHH3xQXbt21dtvv60lS5bod7/7ndMff+dbsmSJUlNTlZKSomXLlmn58uV66KGHSv2RcL7FixdryJAhioyM1FtvvaVXXnlFx48fV8+ePfWvf/2r1PY333yzmjVr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8+bNJUn/+c9/dMUVV2jFihVq27atWwEBAFApqujTz1weI7/rrrvUunVr/fjjj/r666/19ddfKycnR+3atdM999xTGTECAIALcLki/+abb7Rp0ybVrl3bsa527dqaOnWqunbt6tHgAADwmApMWCu1vw9yuSJv3ry5Dh06VGr94cOHHdfKAQDgayzG/cUXlasi//Xt6KZNm6Zx48YpPT1d3bp1kyRt3LhRTz31lMvXvgEAcNlU0THyciXyWrVqOd0yzhijP/zhD4515pepfIMHD5bNZquEMAEAQFnKlcg//fTTyo4DAIDKVUXHyMuVyFNSUio7DgAAKlcgt9bLcvr0ae3fv19FRUVO69u1a+d2UAAAoHxcTuRHjhzRHXfcoY8++qjM9xkjBwD4pCpakbt8+dn48eN1/Phxbdy4UWFhYVq5cqUyMzPVtGlTrVixojJiBADAfR56HrmvcbkiX7Nmjd577z117dpVQUFBatiwofr27avIyEhlZGRo0KBBlREnAAAog8sVeX5+vmJiYiRJ0dHROnLkiKRzT0T7+uuvPRsdAACecpkfY3q5VOjObrt375YkdejQQS+++KL++9//asGCBapXr57HAwQAwBMC+s5uvzZ+/HgdPHhQkjRlyhT1799fb775pkJCQrRo0SJPxwcAAC7C5UQ+fPhwx3937NhRe/fu1b///W81aNBAdevW9WhwAAB4TBWdtV7h68hLhIeHq1OnTp6IBQAAuKhciXzChAnlPuCsWbMqHAwAAJXFIvfGuX1zqls5E/mWLVvKdbBfP1gFAABUvirx0JRbunRXNUuIt8MAKoXFWujtEIBKYzFB0uX6FQ/kh6YAAOD3quhkN5evIwcAAL6DihwAEBiqaEVOIgcABAR3787mq3d2o7UOAIAfq1Aif+ONN3TNNdcoPj5e+/btkyTNnj1b7733nkeDAwDAY6roY0xdTuTz58/XhAkTNHDgQP3888+y2WySpFq1amn27Nmejg8AAM8gkZ8zZ84cvfTSS0pLS1NwcLBjfZcuXbRt2zaPBgcAAC7O5clu2dnZ6tixY6n1VqtV+fn5HgkKAABPY7LbLxITE7V169ZS6z/66CO1atXKEzEBAOB5JXd2c2fxQS5X5I8++qjGjh2rgoICGWP01Vdf6a233lJGRoZefvnlyogRAAD3cR35OXfccYeKi4s1ceJEnT59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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== RandomForest ===\n", "ROC AUC: 0.8056603773584906\n", "PR AUC: 0.5972413793103449\n", "Brier Score: 0.0400457974137931\n", "Report:\n", " precision recall f1-score support\n", "\n", " 0 0.981 0.981 0.981 53\n", " 1 0.800 0.800 0.800 5\n", "\n", " accuracy 0.966 58\n", " macro avg 0.891 0.891 0.891 58\n", "weighted avg 0.966 0.966 0.966 58\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAHFCAYAAAAJ7nvFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9P0lEQVR4nO3dd3xUVf7/8fcEkklCioSSEAxN6U2aMbAYkKKALCy6imE1KGLBFlFxlZ8QCwngLkZBioqQdUVgV0FsLLgUC6ABQRH4siKhLcSAIIEAaXN+f2BmHRIgk5kwM5nX8/G4j4dzbvtMMR8+55x7r8UYYwQAAHxSgKcDAAAAlUciBwDAh5HIAQDwYSRyAAB8GIkcAAAfRiIHAMCHkcgBAPBhJHIAAHwYiRwAAB9GIvcC3333ne688041bdpUwcHBCgsLU+fOnTV16lQdPXq0Ss+9efNmJSYmKjIyUhaLRRkZGW4/h8ViUWpqqtuPezHz58+XxWKRxWLRmjVryqw3xujKK6+UxWJRr169KnWOmTNnav78+U7ts2bNmvPGdCmUfialS0REhLp376533nnHI/FI0p49e2SxWJz+LN157vKWrl27XvJ4KmLBggVV8v8qfFNNTwfg715//XWNGTNGLVu21BNPPKE2bdqoqKhIGzdu1OzZs7V+/XotWbKkys5/1113KT8/XwsXLlTt2rXVpEkTt59j/fr1uvzyy91+3IoKDw/X3LlzyyTrtWvX6scff1R4eHiljz1z5kzVrVtXI0eOrPA+nTt31vr169WmTZtKn9dVN998sx577DEZY5Sdna20tDQlJSXJGKOkpCSPxeVJDz30UJn3HhYW5qFoLmzBggX6/vvvlZKS4ulQ4AVI5B60fv163X///erXr5+WLl0qq9VqX9evXz899thjWr58eZXG8P3332v06NEaMGBAlZ3jmmuuqbJjV8Stt96qt99+W6+++qoiIiLs7XPnzlVCQoLy8vIuSRxFRUX2CtjTn0l0dLQ9hoSEBPXo0UNNmjTRnDlz/DaRN2rUqEq+l9LvvWZN/tyiatC17kFpaWmyWCx67bXXHJJ4qaCgIP3+97+3v7bZbJo6dapatWolq9Wq+vXr64477tCBAwcc9uvVq5fatWunrKws9ezZU6GhoWrWrJkmT54sm80m6X/dzsXFxZo1a5a9K1GSUlNT7f/9W6X77Nmzx962atUq9erVS3Xq1FFISIgaNWqkm266SadOnbJvU17X+vfff68hQ4aodu3aCg4O1lVXXaXMzEyHbUq7oN955x2NHz9esbGxioiIUN++fbVz586KfciSbrvtNkly6Do+fvy43n33Xd11113l7vPss88qPj5eUVFRioiIUOfOnTV37lz99hlDTZo00bZt27R27Vr751fao1Ea+1tvvaXHHntMDRs2lNVq1a5du8p0rR85ckRxcXHq3r27ioqK7Mffvn27atWqpdtvv73C77WyGjdurHr16umnn35yaF+0aJH69++vBg0aKCQkRK1bt9af//xn5efnO2w3cuRIhYWFadeuXRo4cKDCwsIUFxenxx57TAUFBQ7bHjx4ULfccovCw8MVGRmpW2+9VTk5OeXGtWzZMiUkJCg0NFTh4eHq16+f1q9f77BN6e/1u+++0x//+EdFRkYqKipKY8eOVXFxsXbu3KkbbrhB4eHhatKkiaZOnVqpz8iZ32x537skffrpp+rTp48iIiIUGhqqHj166N///rfDMQ4fPqx77rlHcXFxslqtqlevnnr06KFPP/1U0tn/vz/66CPt3bvXYRgA/otE7iElJSVatWqVunTpori4uArtc//99+vJJ59Uv379tGzZMj3//PNavny5unfvriNHjjhsm5OToxEjRuhPf/qTli1bpgEDBuipp57S3//+d0nSoEGD7H8Qb775Zq1fv77MH8iL2bNnjwYNGqSgoCC9+eabWr58uSZPnqxatWqpsLDwvPvt3LlT3bt317Zt2/TKK6/ovffeU5s2bTRy5Mhy/8g+/fTT2rt3r9544w299tpr+uGHHzR48GCVlJRUKM6IiAjdfPPNevPNN+1t77zzjgICAnTrrbee973de++9Wrx4sd577z0NGzZMDz30kJ5//nn7NkuWLFGzZs3UqVMn++d37jDIU089pX379mn27Nn64IMPVL9+/TLnqlu3rhYuXKisrCw9+eSTkqRTp07pj3/8oxo1aqTZs2dX6H264vjx4zp69KhatGjh0P7DDz9o4MCBmjt3rpYvX66UlBQtXrxYgwcPLnOMoqIi/f73v1efPn30/vvv66677tJLL72kKVOm2Lc5ffq0+vbtqxUrVig9PV3/+Mc/FBMTU+73sGDBAg0ZMkQRERF65513NHfuXB07dky9evXSF198UWb7W265RR07dtS7776r0aNH66WXXtKjjz6qoUOHatCgQVqyZImuu+46Pfnkk3rvvffK7G+z2VRcXOywlP7DzdnfbHnf+9///nf1799fERERyszM1OLFixUVFaXrr7/eIZnffvvtWrp0qSZMmKAVK1bojTfeUN++ffXzzz9LOjuc06NHD8XExNh/d87+v4tqxsAjcnJyjCQzfPjwCm2/Y8cOI8mMGTPGof2rr74ykszTTz9tb0tMTDSSzFdffeWwbZs2bcz111/v0CbJPPDAAw5tEydONOX9NObNm2ckmezsbGOMMf/85z+NJLNly5YLxi7JTJw40f56+PDhxmq1mn379jlsN2DAABMaGmp++eUXY4wxq1evNpLMwIEDHbZbvHixkWTWr19/wfOWxpuVlWU/1vfff2+MMaZbt25m5MiRxhhj2rZtaxITE897nJKSElNUVGSee+45U6dOHWOz2ezrzrdv6fmuvfba865bvXq1Q/uUKVOMJLNkyRKTnJxsQkJCzHfffXfB91gZpb+joqIiU1hYaP7zn/+Y3//+9yY8PNxs3LjxvPvZbDZTVFRk1q5daySZb7/91r4uOTnZSDKLFy922GfgwIGmZcuW9tezZs0yksz777/vsN3o0aONJDNv3jxjzNnPPDY21rRv396UlJTYtztx4oSpX7++6d69u72t9Pf617/+1eGYV111lZFk3nvvPXtbUVGRqVevnhk2bJi9LTs720gqd1m5cqUxxvnf7Lnfe35+vomKijKDBw92aC8pKTEdO3Y0V199tb0tLCzMpKSkmAsZNGiQady48QW3gf+gIvcRq1evlqQyk6quvvpqtW7dukz3XExMjK6++mqHtg4dOmjv3r1ui+mqq65SUFCQ7rnnHmVmZmr37t0V2m/VqlXq06dPmZ6IkSNH6tSpU2Wqi98OL0hn34ckp95LYmKirrjiCr355pvaunWrsrKyztutXhpj3759FRkZqRo1aigwMFATJkzQzz//rNzc3Aqf96abbqrwtk888YQGDRqk2267TZmZmZo+fbrat29/0f3OV0VeyMyZMxUYGKigoCC1aNFCn3zyid555x116dLFYbvdu3crKSlJMTEx9s8hMTFRkrRjxw6HbS0WS5lK/dzf3OrVqxUeHl7mOz13XH7nzp06ePCgbr/9dgUE/O/PVFhYmG666SZt2LDBYfhGkm688UaH161bt5bFYnGY/1GzZk1deeWV5f52HnnkEWVlZTks8fHxkpz/zZ77va9bt05Hjx5VcnKyw3dls9l0ww03KCsryz5ccfXVV2v+/Pl64YUXtGHDBofhFqA8JHIPqVu3rkJDQ5WdnV2h7Uu71Ro0aFBmXWxsrH19qTp16pTZzmq16vTp05WItnxXXHGFPv30U9WvX18PPPCArrjiCl1xxRV6+eWXL7jfzz//fN73Ubr+t859L6XzCZx5LxaLRXfeeaf+/ve/a/bs2WrRooV69uxZ7rZff/21+vfvL+nsVQVffvmlsrKyNH78eKfPW977vFCMI0eO1JkzZxQTE1OhsfE9e/YoMDDQYVm7du1F97vllluUlZWldevWac6cOQoPD9fw4cP1ww8/2Lc5efKkevbsqa+++kovvPCC1qxZo6ysLHu39LmfQ2hoqIKDgx3arFarzpw5Y3/9888/Kzo6ukw8MTExDq8v9nu32Ww6duyYQ3tUVJTD66CgoHJjCgoKcoip1OWXX66uXbs6LKVXNDj7mz1329K5BzfffHOZ72vKlCkyxtgvNV20aJGSk5P1xhtvKCEhQVFRUbrjjjvOO48AYBqlh9SoUUN9+vTRJ598ogMHDlz08qzSZHbo0KEy2x48eFB169Z1W2ylf/gKCgocJuGdOw4vST179lTPnj1VUlKijRs3avr06UpJSVF0dLSGDx9e7vHr1KmjQ4cOlWk/ePCgJLn1vfzWyJEjNWHCBM2ePVuTJk0673YLFy5UYGCgPvzwQ4cksHTpUqfP6cwkpEOHDumBBx7QVVddpW3btunxxx/XK6+8csF9YmNjlZWV5dDWsmXLi56rXr169mukExIS1Lp1ayUmJurRRx/Vhx9+KOlsFXrw4EGtWbPGXoVL0i+//FLh93SuOnXq6Ouvvy7Tfm6S+u3v/VwHDx5UQECAateuXek4nOXsb/bc7710/fTp0887M770Hzh169ZVRkaGMjIytG/fPi1btkx//vOflZubW+VXscA3UZF70FNPPSVjjEaPHl3u5LCioiJ98MEHkqTrrrtOkuyT1UplZWVpx44d6tOnj9viKp15/d133zm0l8ZSnho1aig+Pl6vvvqqJOmbb74577Z9+vSxJ4nf+tvf/qbQ0NAquzSrYcOGeuKJJzR48GAlJyefd7vSS4Vq1Khhbzt9+rTeeuutMtu6q5ejpKREt912mywWiz755BOlp6dr+vTp5U7K+q2goKDzVpHO6Nmzp+644w599NFH9m7i0mR07hUVc+bMcfr4pXr37q0TJ05o2bJlDu0LFixweN2yZUs1bNhQCxYscBgqyM/P17vvvmufyX6puPqb7dGjhy677DJt3769zPdVugQFBZXZr1GjRnrwwQfVr18/h/+n3N27Bt9GRe5BCQkJmjVrlsaMGaMuXbro/vvvV9u2bVVUVKTNmzfrtddeU7t27TR48GC1bNlS99xzj6ZPn66AgAANGDBAe/bs0TPPPKO4uDg9+uijbotr4MCBioqK0qhRo/Tcc8+pZs2amj9/vvbv3++w3ezZs7Vq1SoNGjRIjRo10pkzZ+wzw/v27Xve40+cOFEffvihevfurQkTJigqKkpvv/22PvroI02dOlWRkZFuey/nmjx58kW3GTRokKZNm6akpCTdc889+vnnn/WXv/yl3EsE27dvr4ULF2rRokVq1qyZgoODKzSufa6JEyfq888/14oVKxQTE6PHHntMa9eu1ahRo9SpUyc1bdrU6WM66/nnn9eiRYv0zDPP6NNPP1X37t1Vu3Zt3XfffZo4caICAwP19ttv69tvv630Oe644w699NJLuuOOOzRp0iQ1b95cH3/8sf71r385bBcQEKCpU6dqxIgRuvHGG3XvvfeqoKBAL774on755ZcKfY/u5OpvNiwsTNOnT1dycrKOHj2qm2++WfXr19fhw4f17bff6vDhw5o1a5aOHz+u3r17KykpSa1atVJ4eLiysrK0fPlyDRs2zH689u3b67333tOsWbPUpUsXBQQEeO1d6HAJeHauHYwxZsuWLSY5Odk0atTIBAUFmVq1aplOnTqZCRMmmNzcXPt2JSUlZsqUKaZFixYmMDDQ1K1b1/zpT38y+/fvdzheYmKiadu2bZnzJCcnl5npqnJmrRtjzNdff226d+9uatWqZRo2bGgmTpxo3njjDYdZ6+vXrzd/+MMfTOPGjY3VajV16tQxiYmJZtmyZWXO8dtZ68YYs3XrVjN48GATGRlpgoKCTMeOHe0zlkuVzgD+xz/+4dBeOsv43O3P9dtZ6xdS3szzN99807Rs2dJYrVbTrFkzk56ebubOnevw/o0xZs+ePaZ///4mPDzcSLJ/vueL/bfrSmetr1ixwgQEBJT5jH7++WfTqFEj061b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AAC/8NNPP+n222/XoUOHFBkZqQ4dOmj58uXq16+fJGncuHE6ffq0xowZo2PHjik+Pl4rVqxQeHi4U+epVCIvKSnRkiVLtGPHDlksFrVu3VpDhgxRzZo8gwUA4J0u9WNM586de8H1FotFqampSk1NrXxQqkQi//777zVkyBDl5OSoZcuWkqT//Oc/qlevnpYtW6b27du7FBAAAFWimj79zOkx8rvvvltt27bVgQMH9M033+ibb77R/v371aFDB91zzz1VESMAADgPpyvyb7/9Vhs3blTt2rXtbbVr19akSZPUrVs3twYHAIDbVGLCWpn9vZDTFXnLli31008/lWnPzc21XysHAIC3sRjXF29UoYr8t7ejS0tL08MPP6zU1FRdc801kqQNGzboueeec/raNwAALplqOkZeoUR+2WWXOdwyzhijW265xd5mfp3KN3jwYJWUlFRBmAAAoDwVSuSrV6+u6jgAAKha1XSMvEKJPDExsarjAACgavlz13p5Tp06pX379qmwsNChvUOHDi4HBQAAKsbpRH748GHdeeed+uSTT8pdzxg5AMArVdOK3OnLz1JSUnTs2DFt2LBBISEhWr58uTIzM9W8eXMtW7asKmIEAMB1bnoeubdxuiJftWqV3n//fXXr1k0BAQFq3Lix+vXrp4iICKWnp2vQoEFVEScAACiH0xV5fn6+6tevL0mKiorS4cOHJZ19Ito333zj3ugAAHCXS/wY00ulUnd227lzpyTpqquu0pw5c/Tf//5Xs2fPVoMGDdweIAAA7uDXd3b7rZSUFB06dEiSNHHiRF1//fV6++23FRQUpPnz57s7PgAAcAFOJ/IRI0bY/7tTp07as2eP/u///k+NGjVS3bp13RocAABuU01nrVf6OvJSoaGh6ty5sztiAQAATqpQIh87dmyFDzht2rRKBwMAQFWxyLVxbu+c6lbBRL558+YKHey3D1YBAABVr1o8NOUPLdqrpiXQ02EAVaJGvXqeDgGoMsZWKB25VCfz44emAADg86rpZDenryMHAADeg4ocAOAfqmlFTiIHAPgFV+/O5q13dqNrHQAAH1apRP7WW2+pR48eio2N1d69eyVJGRkZev/9990aHAAAblNNH2PqdCKfNWuWxo4dq4EDB+qXX35RSUmJJOmyyy5TRkaGu+MDAMA9SORnTZ8+Xa+//rrGjx+vGjVq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rCeffFLjxo1TUFCQevToocOHD2vbtm0aNWqU6tevr5CQEC1fvlyXX365goODFRkZqdTUVD388MOKiIjQgAEDVFBQoI0bN+rYsWMaO3askpKSNH78eI0aNUr/7//9P+3Zs0d/+ctfnHq/V1xxhYqLizV9+nQNHjxYX375pWbPnl1mu8DAQD300EN65ZVXFBgYqAcffFDXXHONPbFPmDBBN954o+Li4vTHP/5RAQEB+u6777R161a98MILzn8RAJzCrHXgVxaLRR9//LGuvfZa3XXXXWrRooWGDx+uPXv22GeZ33rrrZowYYKefPJJdenSRXv37tX9999/weM+88wzeuyxxzRhwgS1bt1at956q3JzcyWdHX9+5ZVXNGfOHMXGxmrIkCGSpLvvvltvvPGG5s+fr/bt2ysxMVHz58+3X64WFhamDz74QNu3b1enTp00fvx4TZkyxan3e9VVV2natGmaMmWK2rVrp7ffflvp6elltgsNDdWTTz6ppKQkJSQkKCQkRAsXLrSvv/766/Xhhx9q5cqV6tatm6655hpNmzZNjRs3dioeAJVjMe4YbAMAAB5BRQ4AgA8jkQMA4MNI5AAA+DASOQAAPoxEDgCADyORAwDgw0jkAAD4MBI5AAA+jEQOAIAPI5EDAODDSOQAAPgwEjkAAD7s/wPwJ4AHrli51QAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Predicted P(AE | SUV = 2.8) using kNN = 0.617\n" ] } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.io import loadmat\n", "from sklearn.naive_bayes import GaussianNB\n", "from sklearn.svm import SVC\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.calibration import CalibratedClassifierCV\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.model_selection import StratifiedKFold, cross_val_predict\n", "from sklearn.metrics import (\n", " roc_auc_score, average_precision_score, brier_score_loss,\n", " classification_report, ConfusionMatrixDisplay\n", ")\n", "\n", "# === Load Data ===\n", "suv_file = \"../data/suv_percentilesSLOthenUWM.mat\"\n", "flags_file = \"../data/flags_combined.mat\"\n", "suv_dict = loadmat(suv_file)\n", "flags_dict = loadmat(flags_file)\n", "\n", "suv = suv_dict['lung_SUVperc_COMBINED'][0:58, :, :]\n", "flags = flags_dict['flags'][0:58, 3]\n", "\n", "p = 94 # SUVmax percentile\n", "X = np.nanmax(suv[:, :, p], axis=1).reshape(-1, 1)\n", "y = flags.flatten().astype(int)\n", "\n", "# === Scale SUV values ===\n", "scaler = StandardScaler()\n", "X_scaled = scaler.fit_transform(X)\n", "\n", "# === Define Models ===\n", "models = {\n", " \"NaiveBayes\": GaussianNB(),\n", " \"SVM-RBF\": SVC(kernel='rbf', probability=True, class_weight='balanced'),\n", " \"kNN\": KNeighborsClassifier(n_neighbors=3, weights='distance'),\n", " \"DecisionTree\": DecisionTreeClassifier(max_depth=2, class_weight='balanced'),\n", " \"RandomForest\": RandomForestClassifier(n_estimators=50, max_depth=3, class_weight='balanced', random_state=42)\n", "}\n", "\n", "# === Cross-Validated Evaluation ===\n", "cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)\n", "\n", "for name, model in models.items():\n", " calibrated = CalibratedClassifierCV(model, method='isotonic', cv=3)\n", " y_prob = cross_val_predict(calibrated, X_scaled, y, cv=cv, method='predict_proba')[:, 1]\n", " y_pred = (y_prob > 0.5).astype(int)\n", "\n", " print(f\"\\n=== {name} ===\")\n", " print(\"ROC AUC:\", roc_auc_score(y, y_prob))\n", " print(\"PR AUC: \", average_precision_score(y, y_prob))\n", " print(\"Brier Score:\", brier_score_loss(y, y_prob))\n", " print(\"Report:\")\n", " print(classification_report(y, y_pred, digits=3))\n", "\n", " ConfusionMatrixDisplay.from_predictions(y, y_pred)\n", " plt.title(f\"Confusion Matrix - {name}\")\n", " plt.show()\n", "\n", "# === Fit One Final Model to Full Data (e.g. Random Forest) ===\n", "final_model_name = \"kNN\" # Change to any model you want to use\n", "final_model = models[final_model_name]\n", "\n", "final_calibrated = CalibratedClassifierCV(final_model, method='isotonic', cv=3)\n", "final_calibrated.fit(X_scaled, y)\n", "\n", "# === Predict for a New SUV Input ===\n", "new_suv = 2.8 # Example input\n", "new_scaled = scaler.transform([[new_suv]])\n", "predicted_prob = final_calibrated.predict_proba(new_scaled)[0, 1]\n", "\n", "print(f\"\\nPredicted P(AE | SUV = {new_suv}) using {final_model_name} = {predicted_prob:.3f}\")\n" ] }, { "cell_type": "markdown", "id": "4a9b4010", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "base", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.7" } }, "nbformat": 4, "nbformat_minor": 5 }