{ "cells": [ { "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, "source": [ "# 01 — Graph Exploration & GNN Results\n", "\n", "Explores the fraud detection heterogeneous graph and evaluates the trained GNN model.\n", "\n", "**Sections**\n", "1. Graph structure & statistics\n", "2. Fraud ring node analysis\n", "3. Degree distribution\n", "4. GNN v1 evaluation (2-layer baseline)\n", "5. Precision-Recall & ROC curves\n", "6. Score distribution — finding the ceiling\n", "7. Why v1 plateaus: the peripheral member problem\n", "8. GNN v2 evaluation (3-layer + BatchNorm)" ] }, { "cell_type": "code", "execution_count": 6, "id": "32298236", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using device: cuda\n" ] } ], "source": [ "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import torch\n", "from sklearn.metrics import (\n", " average_precision_score,\n", " precision_recall_curve,\n", " roc_auc_score,\n", " roc_curve,\n", ")\n", "\n", "from models.gnn.dataset import load_graph, summarise\n", "from models.gnn.model import FraudRingGNN, migrate_state_dict\n", "\n", "# Dark theme\n", "plt.style.use(\"dark_background\")\n", "matplotlib.rcParams.update(\n", " {\"figure.facecolor\": \"#0d0d0d\", \"axes.facecolor\": \"#1a1a1a\", \"grid.color\": \"#333333\"}\n", ")\n", "BLUE = \"#1a7abf\"\n", "ORANGE = \"#e07b39\"\n", "GREEN = \"#4caf50\"\n", "\n", "GRAPH_PATH = \"data/graphs/hetero_graph.pt\"\n", "MODEL_V1 = \"models/gnn/artifacts/gnn_model.pt\"\n", "MODEL_V2 = \"models/gnn/artifacts_v2/gnn_model.pt\"\n", "DEVICE = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", "print(f\"Using device: {DEVICE}\")" ] }, { "cell_type": "markdown", "id": "2562014a", "metadata": {}, "source": [ "## 1. Graph Structure\n", "\n", "The fraud detection graph is a **heterogeneous graph** — it has multiple node types and edge types.\n", "Unlike a standard graph where all nodes are the same, here we have accounts, devices, and merchants\n", "as distinct entities connected by different relationship types.\n", "\n", "This matters because fraud rings exploit *shared* devices across accounts — a signal that only\n", "appears when you model the device layer explicitly." ] }, { "cell_type": "code", "execution_count": 7, "id": "29fe1463", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Graph summary\n", "────────────────────────────────────────\n", " account 50,000 nodes\n", " device 71,349 nodes\n", " merchant 9,400 nodes\n", "\n", " transacts_with 13,118,578 edges\n", " uses_device 13,119,734 edges\n", " shared_by 13,119,734 edges\n", " payshap_transfer 226 edges\n", " eft_transfer 686 edges\n", "\n", " train 34,999 accounts 184 fraud (0.53%)\n", " val 7,499 accounts 39 fraud (0.52%)\n", " test 7,502 accounts 41 fraud (0.55%)\n" ] } ], "source": [ "data, split = load_graph(GRAPH_PATH, device=DEVICE)\n", "summarise(data, split)" ] }, { "cell_type": "code", "execution_count": 8, "id": "035daa72", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Node types\n", " type count\n", " account 50000\n", " device 71349\n", "merchant 9400\n", "\n", "Edge types\n", " relation count\n", " transacts_with 13118578\n", " uses_device 13119734\n", " shared_by 13119734\n", "payshap_transfer 226\n", " eft_transfer 686\n" ] } ], "source": [ "node_rows = [(ntype, data[ntype].num_nodes) for ntype in data.node_types]\n", "edge_rows = [(etype[1], data[etype].edge_index.shape[1]) for etype in data.edge_types]\n", "\n", "print(\"Node types\")\n", "print(pd.DataFrame(node_rows, columns=[\"type\", \"count\"]).to_string(index=False))\n", "print()\n", "print(\"Edge types\")\n", "print(pd.DataFrame(edge_rows, columns=[\"relation\", \"count\"]).to_string(index=False))" ] }, { "cell_type": "markdown", "id": "2d2b8ce8", "metadata": {}, "source": [ "**Observations:**\n", "- The `uses_device` and `shared_by` edge counts are identical — `shared_by` is just the reverse\n", " direction of `uses_device`, added so device nodes can send messages back to account nodes.\n", "- `payshap_transfer` (226) and `eft_transfer` (686) are sparse — only fraud ring accounts\n", " make peer transfers to each other, so these edges are strong fraud signals despite being few.\n", "- The dataset is heavily imbalanced: 264 fraud accounts out of 50,000 (0.53%)." ] }, { "cell_type": "markdown", "id": "c132927c", "metadata": {}, "source": [ "## 2. Fraud Ring Node Analysis\n", "\n", "Before training, it is useful to check whether the raw node features (log income, log account age)\n", "separate fraud from clean accounts. If they do, a simple classifier would suffice and we would\n", "not need a GNN." ] }, { "cell_type": "code", "execution_count": 9, "id": "1b2f2b12", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total accounts : 50,000\n", "Fraud ring : 264 (0.53%)\n", "Clean : 49,736\n", "\n", " log_income fraud mean=9.689 clean mean=9.613\n", " log_age fraud mean=6.880 clean mean=6.798\n" ] } ], "source": [ "y = data[\"account\"].y.cpu()\n", "x = data[\"account\"].x.cpu()\n", "\n", "fraud_mask = y == 1\n", "clean_mask = y == 0\n", "\n", "print(f\"Total accounts : {len(y):,}\")\n", "print(f\"Fraud ring : {fraud_mask.sum().item():,} ({100 * fraud_mask.float().mean():.2f}%)\")\n", "print(f\"Clean : {clean_mask.sum().item():,}\")\n", "print()\n", "feat_names = [\"log_income\", \"log_age\"]\n", "for i, name in enumerate(feat_names):\n", " fraud_mean = x[fraud_mask, i].mean().item()\n", " clean_mean = x[clean_mask, i].mean().item()\n", " print(f\" {name:<12} fraud mean={fraud_mean:.3f} clean mean={clean_mean:.3f}\")" ] }, { "cell_type": "markdown", "id": "1ebf7c2d", "metadata": {}, "source": [ "**Interpretation:**\n", "The node features are nearly identical between fraud and clean accounts. Fraud ring members\n", "are marginally wealthier and have slightly older accounts, but the difference is too small\n", "to classify on. This confirms that the GNN must learn from **graph structure** (who is connected\n", "to whom) rather than from individual account attributes." ] }, { "cell_type": "markdown", "id": "7552e955", "metadata": {}, "source": [ "## 3. Degree Distribution\n", "\n", "Device degree = how many unique devices an account used. Fraud ring members are expected to\n", "share devices across the ring, which could inflate their degree." ] }, { "cell_type": "code", "execution_count": 10, "id": "0f1c0905", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\kmosw\\AppData\\Local\\Temp\\ipykernel_85740\\3100010660.py:21: MatplotlibDeprecationWarning: The 'labels' parameter of boxplot() has been renamed 'tick_labels' since Matplotlib 3.9; support for the old name will be dropped in 3.11.\n", " axes[1].boxplot([clean_deg, fraud_deg], labels=['Clean', 'Fraud ring'],\n" ] }, { "data": { "image/png": "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ZEkbO3as7dixw9avX2+vvPKKZc6cOZWeLQAAADKysIW2qpqtVKmSOyzNo0Hz7NmzrWrVqiFvU69ePVuwYIEbAK9bt87mz59vnTp1skyZwt7lAQAAAD73xx9/WIMGDaxEiRJWu3Zt15pLFKYePHgwWfe1detWe+mll6xGjRpWs2ZN+/77712bhbJly7rr+/bta3fccYc99NBDbgxbvHhxV6jg0fhVga3GxAp7Vel7//33W7du3VL5WQMAACAjClvaWbBgQcuSJYvrSxtMvW2LFi0a8jaXXHKJO5RNFQhNmjSx1157zbVH6Ny5c4KPky1bNsubN2/glCdPnlR/LgAAAPC/V1991Xr16uWO0lq8eLErBvCqbn/77bdk3dd3331nU6dOdRWyKiZQlezhw4ftuuuus3z58rmwtmvXrjZnzhxbunSptW3b1m644QZ3vSg0VsDrze8wbdo0t246ryAXAAAA0S1DlaiqIkEh71NPPeUGv+p/279/f3v00UcTvI0qcVUJ4Z3UhgEAAADRR3MjXHnlla469t577w1crirZ559//rzGqI0bN7ZcuXK5IFhHk6lwQEeQeX7//XfX2ss7okw/V6xYEaeAYcaMGW6CtHLlyqV4XQAAABAZsoTrgffu3WunTp06q7dXkSJF3KQQoajf18mTJ+3MmTOBy9auXWvFihVzFQm6Lj61Uhg8eHDgvCptCW4BAACik47q0imYqm5TQgGwetnmyJHD9cpVewONM6+++mo7fvy4/f3333GWV0Crsa7oZ6gjziSho85EYbD65Xo4igwAACAyhS20VcCqaln1AJs0aZK7LCYmxlU+DB06NORt1MO2adOmbjn1v5XSpUvb9u3bQwa2cuLECXcCAABAdJs4cWJgDBnKXXfdlaz7U/VstWrVXDsEtfB6//337c4777S0pKPIunTpkqaPAQAAgChvj6AK2IcffthatGhhV1xxhQ0cONAdVjZixAh3/ZAhQ6xHjx6B5YcNG2YFChRwvWwV1tatW9cNXD/44IMwPgsAAABkBOodq3623klVsapcrVixoq1cuTLZ96eiAU1upkKEnj17uvtX71odNaZqWLU6CKYjzLxqWv0MdcSZJHTUmXcUmSZS805lypRJ9noDAADA/8JWaSvqSVuoUCE3SYMOA9NAV/3AvEPFSpYsGacVgnrSNmrUyM3G++OPP7oK2/fee8+FvQAAAEBiEqpQ1eW5c+c+742n3rYKaxXi6kgvHUH29ddfu+tUcHDRRRcFJj/Tz2eeecaNhffs2eMuq1WrlmupsHr16gQfg6PIAAAAokOKQttLLrnENmzYkCoroFYICbVDqF+//lmXaYCr2XYBAACA1DBmzBibNWuWvfDCC0m+jY4GmzZtmm3ZssX1lVULr+rVq7sJzg4cOGDDhw+3Pn362P79++3gwYNu8tyff/7ZFi5cGJh0TOGsjhjr3r27K2DQT52ntRcAAABSFNqqemDevHn26aef2ldffeUmWgAAAAAyoqpVq9qxY8eSdRu1NlArL02Iq5BW7RYU2Cr89ap31T9Xbb/UgkEhbceOHQO319FkzZo1c0eMaTKzI0eO2KhRo6x3796p/vwAAAAQJaGtqggeeOABVz2gqgG1OVCAm9KZdwEAAIC05s2b4NHktgpdr7nmGjdnQnK0b98+0etV1KC5F3RKyObNm61JkybJelwAAABEhxRNRKbes88995ybPOyJJ55wg90pU6bY/Pnz3fmCBQum/poCAAAA50EVscEntS6YO3euC0779evHtgUAAEBkTER2+vRp++abb1xg27p1a9fbS4d06eeXX35pL774YqKz3wIAAADppV27dmxsAAAARG6lrUeHkr3xxhv2+++/uwrbt99+2ypWrGj33HOPq7797LPPUm9NAQAAAAAAACAKpKjSVgGtetpefvnlNnXqVGvTpo2rttVkC7Jx40Zr27atm5ABAAAAAAAAAJDGoW2rVq3cxGMjR45MsP3B7t27zzlBAwAAAAAAAAAgFUJbtT/QbLdeZW2wkiVL2pYtW+zkyZM2atSolNw9AAAAAAAAAEStFPW0/fXXX61gwYJnXf6Pf/zDli1blhrrBQAAAKSpTJkyWYUKFeyCCy5gSwMAACDjh7YxMTEhL8+dO7cdO3bsfNcJAAAASHX9+vWzBx98MBDYfvvttzZ37lxbuXKlVatWjS0OAACAjNkeoU+fPu6n2iJ069bNjh49Grguc+bMVqVKFSptAQAA4Etq8TVmzBj3+5133mkXX3yxG7/ed9999uKLL9rtt98e7lUEAAAAkh/aXn311YFK2/Lly9uJEycC16mHrVojvP3228m5SwAAACBdqL2XN4muAtqvvvrK1q1b5ybYffzxx3kVAAAAkDFD2wYNGrif7777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1VfulFEcP37c+vbt636CbcN7hr8nPmv4HPYT/kexbXjfAOB/BoBox5gYfhSTN2/e2HCvBAAAAAAAAADAJz1tAQAAAAAAAAD/Q2gLAAAAAAAAAD5CaAsAAAAAsAMHDoScUwQAosV7771no0aNSrfbAYkhtE0lrVu3tmXLltmuXbts5syZVrly5USXb9iwoS1atMgt/9NPP9ntt99ukaZjx442e/Zs27p1q61fv959gJUuXTrR27Ro0cINFoNP2kaRpkuXLmc9T70fov09I/o7ir9tdBowYEBUvWduuukmGzNmjK1ZsybBL1DdunWztWvX2s6dO23ChAn2z3/+M9U/qzLatsmSJYv17NnT/Y1s377dLTNkyBArVqxYqv9NZsT3jQaT8Z/n+PHjLdrfNxLqc0enp556KuLfN0n5f509e3b3Obxhwwbbtm2bffrpp1a4cOFz3ndKPqcApJ0iRYpY//797ddff7Xdu3fbypUr3WdjjRo12OwAwibUGFWnyy67LMO8Ks8995y1bds23KuBCENomwoaNWpkffr0sX79+ln16tXdF1t9CS5UqFDI5atWrWofffSRDR8+3KpVq2aTJk1yX5DKlStnkUTPbejQoVa7dm275557LGvWrPbVV19Zrly5Er3d33//7b4seqfy5ctbJNIgOfh5JhbCRst7RmrWrBlnu9x9993u8i+//DKq3jO5c+e25cuXW6dOnUJe36FDB2vTpo37eeutt9qRI0fc546CldT6rMqI20afLxUrVrTXXnvNPccHHnjALr/8cvvss89S9W8yo75vZNq0aXGe56OPPprofUbD+0aCt4lOGnSfOXPGvv7664h/3yTl/3Xfvn3tjjvusIceesjq1atnxYsXt5EjRyZ6vyn5nAKQdi666CKbM2eO3XLLLda9e3e78cYb3We8Lkto5zgApJf4Y1SdtLM4Po1T/CRTpkwWExPjQmZ9LwVSE6FtKmjfvr198skn7suLKnj05eTo0aP24IMPhlxeXwSnT59ugwYNctUnvXr1cnu7H3vsMYskGgQqWFy9erX7ovz444+7wWKlSpUSvV1sbKyr5vJOqgKIRKdOnYrzPPft25fgstHynpG9e/fG2S4KCf744w+bN29eVL1nNGh55ZVXbOLEiSGvb9eunauUmTx5sq1YscIFIwpRGjRokGqfVRlx22iwpKp0hfzr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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Fraud ring mean degree : 265.13\n", "Clean mean degree : 262.38\n" ] } ], "source": [ "acc_dev_edge = data[\"account\", \"uses_device\", \"device\"].edge_index.cpu()\n", "src = acc_dev_edge[0]\n", "n_accounts = data[\"account\"].num_nodes\n", "\n", "degree = torch.zeros(n_accounts, dtype=torch.long)\n", "degree.scatter_add_(0, src, torch.ones_like(src))\n", "\n", "fraud_deg = degree[fraud_mask].numpy()\n", "clean_deg = degree[clean_mask].numpy()\n", "\n", "fig, axes = plt.subplots(1, 2, figsize=(14, 5))\n", "\n", "bins = range(0, 21)\n", "axes[0].hist(\n", " np.clip(clean_deg, 0, 20), bins=bins, alpha=0.7, color=BLUE, label=\"Clean\", density=True\n", ")\n", "axes[0].hist(\n", " np.clip(fraud_deg, 0, 20), bins=bins, alpha=0.7, color=ORANGE, label=\"Fraud ring\", density=True\n", ")\n", "axes[0].set_title(\"Device Degree Distribution (capped at 20)\")\n", "axes[0].set_xlabel(\"# devices used\")\n", "axes[0].set_ylabel(\"Density\")\n", "axes[0].legend()\n", "\n", "axes[1].boxplot(\n", " [clean_deg, fraud_deg],\n", " labels=[\"Clean\", \"Fraud ring\"],\n", " patch_artist=True,\n", " boxprops=dict(facecolor=\"#1a1a1a\", color=BLUE),\n", " medianprops=dict(color=ORANGE),\n", ")\n", "axes[1].set_title(\"Device Degree — Box Plot\")\n", "axes[1].set_ylabel(\"# devices used\")\n", "\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "print(f\"Fraud ring mean degree : {fraud_deg.mean():.2f}\")\n", "print(f\"Clean mean degree : {clean_deg.mean():.2f}\")" ] }, { "cell_type": "markdown", "id": "658db3ca", "metadata": {}, "source": [ "**Key finding: degree alone is NOT discriminative.**\n", "\n", "Fraud ring mean (265) ≈ Clean mean (262). Both groups use hundreds of devices on average.\n", "This makes sense — transactions.py assigns 1–3 devices per account, but each account makes\n", "thousands of transactions, so device counts accumulate for everyone.\n", "\n", "The GNN therefore cannot rely on simple degree counting. It must learn the *topology* of\n", "connections — specifically that fraud ring accounts share the **same** devices with each other,\n", "forming dense clusters in the device layer." ] }, { "cell_type": "markdown", "id": "c1b70553", "metadata": {}, "source": [ "## 4. GNN v1 Evaluation — 2-Layer Baseline\n", "\n", "The first trained model used 2 HeteroConv layers with no BatchNorm.\n", "Best val AUC was reached at **epoch 6** before early stopping at epoch 26." ] }, { "cell_type": "code", "execution_count": 11, "id": "11d7dd6a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "v1 — best epoch: 6 test AUC: 0.8379 AP: 0.3794\n", "Recomputed — AUC: 0.8379 AP: 0.3794\n" ] } ], "source": [ "checkpoint_v1 = torch.load(MODEL_V1, map_location=DEVICE, weights_only=False)\n", "model_v1 = FraudRingGNN(\n", " hidden_dim=checkpoint_v1[\"hidden_dim\"],\n", " dropout=checkpoint_v1[\"dropout\"],\n", " num_layers=checkpoint_v1.get(\"num_layers\", 2),\n", " use_batchnorm=checkpoint_v1.get(\"use_batchnorm\", False), # v1 had no BatchNorm\n", ").to(DEVICE)\n", "model_v1.load_state_dict(migrate_state_dict(checkpoint_v1[\"model_state_dict\"]))\n", "model_v1.eval()\n", "\n", "print(\n", " f\"v1 — best epoch: {checkpoint_v1['best_epoch']} \"\n", " f\"test AUC: {checkpoint_v1['test_auc']:.4f} \"\n", " f\"AP: {checkpoint_v1['test_ap']:.4f}\"\n", ")\n", "\n", "with torch.no_grad():\n", " proba_v1 = torch.sigmoid(model_v1(data)).cpu().numpy()\n", "\n", "test_mask = split[\"test\"].cpu()\n", "test_y = y[test_mask].numpy()\n", "test_proba_v1 = proba_v1[test_mask]\n", "\n", "print(\n", " f\"Recomputed — AUC: {roc_auc_score(test_y, test_proba_v1):.4f} \"\n", " f\"AP: {average_precision_score(test_y, test_proba_v1):.4f}\"\n", ")" ] }, { "cell_type": "markdown", "id": "211142cf", "metadata": {}, "source": [ "## 5. Precision-Recall & ROC Curves" ] }, { "cell_type": "code", "execution_count": 12, "id": "9d439ef1", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAHqCAYAAAB/bWzAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAtNZJREFUeJzs3Ql4lNXZxvEnewIEErYkJBBCArghIIobCFZrW9FqpWq12n51a8V9rQtqtda1tnWtWrXVutSq2AXXuteVIiAga9gSEnZC2EL277rP+A6TMIEkJJnJzP93XQMzk5nJyTszyZn7fd7nxKSmptYbAAAAAAAAACAsxIZ6AAAAAAAAAACAnQhtAQAAAAAAACCMENoCAAAAAAAAQBghtAUAAAAAAACAMEJoCwAAAAAAAABhhNAWAAAAAAAAAMIIoS0AAAAAAAAAhBFCWwAAAAAAAAAII4S2AAAAAAAAABBGCG2BEPnjH/9oc+bMadF9xowZY5s3b3b/Y1evvfaaO3kGDBjgtteZZ57Z6s2VnZ1ta9eutUMPPZRNHkLnnHOOff3115aYmBg1z0N7vPba4j3REaLx+QYAAJ3PqFGjbP369da/f/82e8zO8pnvV7/6lb333nuhHgYQ0QhtETUUUuiPn3dSGDJjxgz77W9/a3369An18MKeF/Z4p02bNtmKFSvslVdesdGjR1uk+uUvf2nTp0+3L774IujX//KXv7jtceutt+520uWdNmzYYF999ZU99thjNnDgwDYZY0xMjF122WU2e/Zs97r+9NNP7Yc//GGz7nvEEUfY3/72N5s3b5677+LFi23KlCm7BIWNn//GpwceeKDB7UeMGOEeZ+XKlVZSUmL/+Mc/bNiwYbsdS48ePWzJkiXu8U466aQGX3vuuedcgKcwrzP41re+ZQ899JB9/vnnVlZW1uIdNE299k488UT785//7F5Dq1evti+//NJ+85vfuG0XSTrb8w0AiIzPBxs3brQFCxa44oqsrKwm7/ejH/3I3njjDSsqKnJ/jz/77DP3d7tLly5N3ueEE05w8+Zly5a5kG/hwoVuHnnUUUc1a6xJSUl20UUXuZCsuLi4wWeZgoKCVv380e6UU06xP/3pTzZz5kz3/AcWfzTXTTfdZC+//LJ7Trx5uV5X3vx61apVbj54zTXXuOcwkjzyyCN2wAEH2Pe+971QDwWIWPGhHgDQ0W6//XYXNuqP5uGHH27nnnuuffvb37bDDjvMKioqOmwcl1xyicXGtmy/ySeffOIC5qqqKguVl156yd5++22Li4uz/Px8O++882zq1Kk2fvx4NzGJJL169XKTrl/84hdBv56amuomKcuXL3ch6S233NLkY2nyr4l1fHy8CzT/7//+z77zne+4150m+3vj5ptvtquuusqFefoeEyZMsKeeesrq6+vdh4Pd0SS/rq7O3X7NmjWWlpZmp59+ur355pt26qmn2jvvvONupw8X559//i73P/bYY93tA/eyDx8+3N566y0X1t51113uda7Xyeuvv25HH320FRYWBh3LjTfeaCkpKUG/VllZac8//7z7sPLoo49auNO20wcBhauarLfVa0/huB7v73//u/twsP/++9sFF1xgxx13nI0dO9Z27NhhkaCzPd8AgMj5fHDIIYfYj3/8Y/c5QTux9TfJoznNk08+aRMnTnTzcs1ztm/f7naCX3fddXbyySfb97//fVu3bt0u4dZZZ51ls2bNcjt1NefKzMx0Qa7m0ZpPTZs2rcnx9ezZ0+0MP+igg1xYrPn41q1bbfDgwW4smlf27t27XbdRJNLnQM3LNX/WNm4pFSRoR72eP4+Ce81d9Hxqfq3XggpcbrjhBhs3bpx7ziOFdhwo6L700kvd6xJA2yO0RdT5z3/+4/amyjPPPOP2qCtAVdClvaTB6I+vJmRtqaampsX3UQgXOHEMBU02X3zxRf9lVRZoEqlQ7sorr7RIoioKPU9NTUI0KVd4rWBJE5YjjzzSTeCDUfXrP//5T38VoYLLe++91wVzv/vd71o9RlWB6PX7+OOP29VXX+2ue/rpp92Yf/3rX9urr77qQtmm6D2gU6AnnnjCVe1OmjTJH9rq9R/4vHs0/vLy8gbbaPLkyS481ARW7y/RfTUhVrB99tln7/I4++67r5s433333e7+wehnueKKK1xFykcffWThTJXXel70+lHAqp+vLV572nYff/zxLu9JVW6fdtppuzyXnU3g79rO9HwDACLr84GOjNK89vjjj3d/jzyXX365C0nvv/9+V2HpUcWs5sMvvPCCC+x0G4/mAwpsH374Ybv++usbfF9Vyepvfm1t7W7Hp8fUTnE9zr/+9a9dAmftwG8LmtcqmK6urrZooB3fpaWl7jOWqmFbSs+Hqq0DA3cV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xwEAAAB2q0+fPpaXl+eqaouLi91127dvj+itRmgLAEAUWrhwod1yyy3Ws2dPt8Iq0JFUGbF161ZXFeG16wAAAACCtdPKz893n1skPT3dH9pGOkJbAACiuOK2tLQ01MMAgLBVUlLijkp46623Qj0UAACiTmZmpuXm5rq1ONSvVmGt/jZHC0JbAAAAAGHr97//vZ122mnufHV1tTsscurUqfbb3/7WKisrQz08AADQxpKSkmzw4MHWo0cPd3nz5s1WWFhoFRUVUbWtCW0BAAAAhLX33nvPrrzySrcAybBhw+wPf/iDa61xxx13hHpoABCx0kamW78Tciw2KW6Pt03okdAhY0J0UPu2bt26WW1tra1YscLtsI1GsaEeAAAAAADsTlVVla1bt861dFGrgv/+97921FFH+XvbPfzwwzZ9+nRXhfPOO+/YSSed1OD+L730kt12221244032ty5c23mzJkuBA6kxU1eeeUVt0De+++/b2PHjt1lHFq88e9//7v7Pnqcu+++27p06dKgKvjJJ5+0Sy65xGbNmmXz5s2zyy+/3K1sPXnyZHcfjdOrHAaAcKbANjkzxRLTE/d4ion1rZFQV1kb6mGjk9KO2cA2bosWLXJ/r6M1sBUqbQEAAIAoFhvbdB2HqlkDF4vb3W1F/eb2dNvA27TG0KFD7eCDD/b3tNMhlLNnz7ZHHnnELW53zDHH2AMPPOAqcxScek499VR7/PHH7cQTT7RRo0a5gPV///ufC4BV0fOnP/3J1q9f776emppqt956a4Pvm5KSYs8995x9+eWXNmHCBOvdu7fde++99pvf/MauuOIK/+2OPPJI9wFz4sSJbpy/+93v3P9ffPGFe+zvf//7LuzV943mD6IAwp9XYVtfV2/V5dV7vL0C29KpKztgZIgk+huck5PjTl9//bVrhSAbN260aEdoCwAAAESxww8/vMmv6QPT/Pnz/ZdHjx7tqkaDKS8vd5WkHgWVgVUznk8++aTFYzz22GNdxY2+d3JysjtcUpWrsnr1anvsscf8t/3zn/9s48ePdwFpYGirn0NBrSxbtsz+7//+z8aMGePCU1XVFhQU2I9//GNbs2aNu81dd93lQlrPD37wAxcQX3bZZa6n3sKFC90Y/vKXv7jgVoGvbNq0yW666SYXdqtqd9KkSS7wffDBB93X9f9FF11khxxyiP3rX/9q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lm2b3EN8/yto/fixllXpHjBh5/2rtpm9+7uW99IFAAAIY2eccYYlJibucn1CQoL7GgAg9PQ7ecSIEa4dggLbdevW2YwZMwhsAUScVoW2mzZtcnu05Nhjj7UPPvjA/zU1/kY7yB5uljH0myegxGzJx61/rK/fbPnCYen9ff/rMJMPHzLbzOqbAAAgsjzyyCPWvfs3baACpKamuq8BAEJPVbVqg6B+tfPmzbNFixZZTU0LC5oAIFLbI/z73/+2J5980pYsWWI9e/a0//znP+764cOHu0MS0NZiGlbZzny59W0J1NZg5t9bP5Tpz5uVzG79/QEAAMKUKrbq6+t3ub5fv362efPmkIwJAOBrZbNlyxarra11m6OwsND1rfUuA0AkalVoe91119mKFSvc4Qg333yzbdu2zV2fmZlpTzzxRFuPEQNHm/Ua6NsO65eZrfhf67ZJ3TdtEWqrW3f/xR+azXuD5wMAAESU//73vy6s1UnFCYEVWzqKLDc31955552QjhEAolF8fLzl5eVZ3759bc2aNS6s9aptASDStSq01UT2wQcf3OX6hx9+uC3GhMb2P37neVclu2sFSJNqqnae/3qq2brCFtx3x87zaxaZffYUzw0AAIg4r732mvv/wAMPtHfffddfkCBVVVVWVFRk//znP0M4QgCIPr169bJBgwa5XuPaqUZVLYBo0+zQ9nvf+55rg6DAVud35403qMZsMz2yzPoU+M5vLGp5awL1vu03zGzLGrOZr7Tsviumm+XNMqurNfv0iZYvfAYAANAJ3HXXXe5/hbOvvPKK65MIAAjdQmMKa3v37u0ub9++3VXYqj0CAESTZoe2L7zwghUUFLgVGXW+KdoDlp6e3lbjQ/5RO7dB4Yct3x5aMOy1m1u3HVVp+869PAcAACAqPP/886EeAgBENS0Guc8++7jgVj1rS0pKrLi4OGi/cQCIdPEtafwd7DzaUUyMWf4Y33lVuS79lM0NAADQhrROw8iRI23jxo3u/O6oty0AoP2oqlYB7datW111bWC7GgCINq3qaYsOknWAWdeevvMrvzLbwarFAAAAben666934YB3HgDQsXSkbllZmTuvdoxz5861iooKngYAUa9Voe0999xjS5cutUcffbTB9RdccIHrPXPddddF/YZtEwWBrRE+YpsCAAC0Y0sE2iMAQMdJTk52LRh79OhhCxcudK0YhcAWAHxirRW+//3v2+eff77L9V988YWddNJJrXlINJbYxSz3YN/5HVvMVs5kGwEAALSj4cOH23777ee/fPzxx7sg9+abb3b9FQEAbSM7O9u1plFgW1tba7GxrYomACCiteo3Y8+ePW3z5l0P1ddqjr169WqLcWHgYWZxib7toF62dbVsEwAAgHZ0//33u6ovGThwoP3lL39xFV8/+MEP7Ne//jXbHgD2UpcuXdwOMv2OVVCrtggzZ860tWvXsm0BoC1CW7VGOPbYY3e5/tvf/rYtX768NQ+JxgrG7jxPawQAKWnmTh0hJs4scz+z0Web/fAPZj95xmzQkTwHACJefn6+zZkzx50/+eST7ZNPPrFzzz3XfvGLX7gjzQAArZeZmekC227durnetYsXL7Z58+ZZZWUlmxUA2qqn7UMPPWS//e1vrXfv3vbhhx+668aPH28XX3wx/WzbQvcss75DfOc3FpltJAgHolKXdLOBh5rlHW7Wp8CsttrsjdvM1i9t++8Vn2yWfaDZgFFmOSPMkro1/Hr+GLOln7T99wWAMBITE+M/RFdz27feesudLykp4WgyANhLOnJBv2M3bNhgS5YsserqarYpALR1aPvss89aUlKSXX311Xbttde661asWGFXXnmlvfDCC615SASiyhaIXsndzXJH+4LajCFmMQEHRMQlmGXs03ahrSp3+4806z/KrN8BvsdvSuA4ACBC6RDda665xj744AMbM2aMm9tKbm4uh+4CQAspoFVVrddasby83GbNmmXbtm1jWwJAe4W28uSTT7qTetju2LGDX7xtJSbGLP+b1gjqY0tlGxD5Erua5R5ilneYWeb+muHu5sYxe/e9evTzVdMqqO07OPhtqrablXxlVjLbbMzP9+77AUAnct1119kTTzxhEyZMcEeVqSWY1yph2rRpoR4eAHQaWmBMLWcSExPdDjGvBQKBLQB0QGgbFxdnY8eOtby8PHvppZf8PWq0GBm/iPdC1gFmXXv6zis02bHrgm8AIkBCii881aKD2cPMYoP8Ot5UYrb8c19bhFE/auU3ivG1VhhwsO/79cgKfrNtG82KvjQr/tJs9TzfTiMthkhoCyCKfP3113b44Yfvcv3kyZPd6uYAgD3nBFpkTNmAKKxVcEvfWgDooNC2f//+NmXKFMvJyXFtEt5//33bunWrXXHF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H35oW7dutf/+9782e/Zsu+mmm0LyPgEAAHB14sbA27lz5+yJJ56wpUuXWmpqqksqvvrqq1aoUKGgr/Pzn//cPv74Yxc7Kob87LPPrGbNmv79t9xyi4spFX/q9YYPH24FCxa86Lmp6EDns3v3bpdcViFCo0aNLH/+/C6mVSWsKnD37dtnn3/+uTVr1sz/XBUvjBgxwjZt2uReY/369S4Gzq49gvaJ4mJtV/ycuXr1d7/7naWkpLifG+i9995zSVafFi1a2KJFi9zP/Pe//229e/d2ydiLOXPmjDten7XidsXaTZo08e9X0jopKckfv69ateqCRLuqdX/zm99Yq1at/FW79evXd/tKly5tf/3rX10ri23btrnzVWUxgOhF0hYAwkS1atWsbt26dvr0afe4R48e9sADD9izzz7rtivIfPPNN+22225z+1W9oIBaAfw999xjDRs2tHfffdcfbMbFxblg784777SmTZvali1bbNq0aW47AAAAIoMSpr169XLx4mOPPWa33367/fGPfwx6/FtvvWW7du1ySVXFj6NGjfLHn7r4P2PGDPvHP/5h9erVcwlQJXGVVL0SJ06ccDFpnjx5rFu3bta9e3fr16+f3XrrrZacnGxTp061SpUquWN1znfffbd17tzZVes+/PDDQXvw6pxFsa/aJjz44INZjlEi9ac//an7HHzUwkCJYhU7iM5j3LhxLrlcp04de+aZZ1ybh+eff/6y36MSqoqxT506dUHSVp+t3ote909/+pP94Q9/8Fcc/+Uvf7Hp06e7xLbOX7cvv/zSfU4zZ860o0eP2l133WV33HGHHTt2zI2FktoAohPtEQAghBSUKbBToKZKhLNnz1rPnj0tX758Lmmrytrly5e7Y7/77jsXYHbp0sVVFzzyyCNuKpqmY+mqv2zevNn/2qocCPTUU0+5iltdzVeyFwAAAN6LG32U+FNyUK0IfJTsVML2z3/+8wXVqoHKlCnjkofffPONe6wL+z56jhKbvtfUPiWEP/nkE1dIoGKBS1EyVvHq6tWrXRLyySefdOejZKWoDZgSqkrmKt69/vrr3c9RtbAoXg3G1w7i4MGDQdsmqK+uPpsOHTq4KmJRTK01JHzxsapqlaz2Vecqzh4yZIhbX+Lll18O+vN/9rOfuTFQQrpAgQL+6lkfxeRDhw71P1bFrJK3StoqKatErBLaWsMi8Px/9atfuYSvkts+qtDVZ9GgQQObP3/+JT51AJGIpC0AhJACRwXHmnKmqW0K9FTZoLYHmtamSoFASuZqupX84he/cMGtL2GbWbFixax///4u0NNCEAou9XMUqAMAAMCbcaOPEoC+6lNtr1KlisXHx7tiACUUdTt+/HiW19Hsrddff90lCn1T/NVOS9SPVonJ+++/33+82gwojixXrpxrYZCdIkWKuGSmEo8qRFCMqmStzqdUqVK2bNmyC47XY7VpkMmTJ9tHH33kkrzz5s1zxQX/a5JSiWclpvW5qBJW70dJY1Ul+96nKohVLOHjS8QG+9xEie5f//rXLumqz0/xuKp1A6mwQhXASkbrs1D8vm7duouerz4LLSoXmJQXPd/X+gxA9CFpCwAh9MMPP9i3337r7qvaYMmSJdapUyfX80tUIaCeWYF8FQ7BgkkfTfnS1DD1EFPVhQJWBcIKHAEAAODduDFwir4SlBMmTHAVtmlpaS4ZqUpZxXzZxYvDhg2zDz74wJo3b+6m4ffp08fN3FKfWxUNvP3221kSkZeqgFVvVlXPqseu+tqqmlSUtL0U9ZNVElXnogS0+roqmfzb3/7WfixVBivZrPeoZLBaPQRWxOp9qiL2n//8Z5bn+s49O4qnfWPw0ksvuc9Rrzt48GC3rV27du5+37593Ww5VRprttvNN9980fPV+axZs8a1hsgsXBabA5DzSNoCQJjQlf+RI0e6AFKLiClg1BV6tULIztdff+163qqaIrtqW/U105SzuXPn+hc3UMUtAAAAIkONGjVcdasSr74qUl//1ItRSy3dVHU7ceJEVxmqpK0SqFWrVs2SHL4UJWuze86RI0dc9agSyYExrR5rka7A49S/VTdV3aqVgPrQKgkdyNc/9lILhqnIQQlZVdiqglUVsnpvPrp/ww03XPH7zOyVV15xP0d9gpWs1vtSj1o99slcKav3kPn8dT5K+GqhNn0WACAsRAYAYUQBqvraqtpB09ZUCaFFERTs3XTTTfboo4+6xzJ+/HgrXLiwq4bQir/qH6bpWlrQQNQbTI81VU5X9xU8qkIDAAAAkUFJR1XUajGv8uXLu9hP/WSD0XR7LSqmNQ5UHKCL/CoWSElJcfvV51XbdIyqXxVftmjR4ooXIgukNgVa6Ktt27YuTlWFql577Nixbr9ahLVv394lUbW/devWLgGq3rSZKampeFaLiqkVmGLhYFSBrEpbzWLzLUDmowXCVPyg3rZqS6Z4WUlTtRa7EqqmVSGFr82C4m/F5VqgTO9Fi6/p8w2kGXBqQaH9mhWnAgydn3ruahFhrWGhVhQao+HDh7v2EgCiE0lbAAgjStgqGavAVlW3CtTUi2vFihWu8kCBpxZK8C3A0KpVK4uLi7PZs2e7hRa0GIWv6lYLGai/2OLFi91rapqbAl0AAABEhvXr17vp+Yod1SdWlaUDBw68aKypRKHaaKltwDvvvOMW7fItnqUEpJK0Siiqt6ziSE31z9yu60ooOauKXi30pXNUwlXJZd8CaGoh8PTTT7tYdsGCBa7lg5K4vsrhzOevhdFU4KD+ukpyBqPXU6WuErJqYxAoOTnZfVZNmjRxrRj0WMljJVSvlN6bWjloVpuqllV5q6IKvaY+68CqW1H7B1U56/wU16s6V20stNDcjh07XI9fxf56XfXOpfIWiF4x8fHxWb8JAQAAAAAAAAAhQaUtAAAAAAAAAIQRkrYAAAAAAAAAEEZI2gIAAAAAAABAGCFpCwAAAAAAAABhhKQtAAAAAAAAAIQRkrYAAAAAAAAAEEZI2gIAAAAAAABAGCFpCwAAAAAAAABhhKQtAAAAAAAAAIQRkrYAAAAAAAAAEEZI2gIAAAAAAABAGCFpCwAAAAAAAAAWPv4PXvle42RJFdAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def plot_pr_roc(test_y, test_proba, title_suffix=\"\", color=BLUE):\n", " precision, recall, _ = precision_recall_curve(test_y, test_proba)\n", " fpr, tpr, _ = roc_curve(test_y, test_proba)\n", " auc = roc_auc_score(test_y, test_proba)\n", " ap = average_precision_score(test_y, test_proba)\n", "\n", " fig, axes = plt.subplots(1, 2, figsize=(14, 5))\n", "\n", " axes[0].plot(recall, precision, color=color, lw=2)\n", " axes[0].axhline(\n", " y=test_y.mean(), color=ORANGE, linestyle=\"--\", label=f\"Baseline ({test_y.mean():.3f})\"\n", " )\n", " axes[0].set_title(f\"Precision-Recall (AP={ap:.4f}) {title_suffix}\")\n", " axes[0].set_xlabel(\"Recall\")\n", " axes[0].set_ylabel(\"Precision\")\n", " axes[0].legend()\n", " axes[0].set_xlim([0, 1])\n", " axes[0].set_ylim([0, 1])\n", "\n", " axes[1].plot(fpr, tpr, color=GREEN, lw=2, label=f\"AUC={auc:.4f}\")\n", " axes[1].plot([0, 1], [0, 1], color=\"#555555\", linestyle=\"--\", label=\"Random\")\n", " axes[1].set_title(f\"ROC Curve {title_suffix}\")\n", " axes[1].set_xlabel(\"False Positive Rate\")\n", " axes[1].set_ylabel(\"True Positive Rate\")\n", " axes[1].legend()\n", "\n", " plt.tight_layout()\n", " plt.show()\n", " return auc, ap\n", "\n", "\n", "auc_v1, ap_v1 = plot_pr_roc(test_y, test_proba_v1, title_suffix=\"— v1 (2-layer)\")" ] }, { "cell_type": "markdown", "id": "3b2d8eab", "metadata": {}, "source": [ "**Reading the PR curve:**\n", "- The curve peaks at ~0.73 precision / 0.4 recall, then **collapses sharply** after recall ~0.55.\n", "- This cliff means: the model is highly confident about some fraud members (hub members),\n", " but cannot distinguish the rest from clean accounts.\n", "- AP of 0.38 is **76× better than random** (baseline = 0.005), which is strong given only\n", " 264 labeled fraud nodes in the entire graph.\n", "\n", "**Reading the ROC curve:**\n", "- At just 5% false positive rate, the model already catches ~60% of fraud ring members.\n", "- AUC 0.84 confirms strong overall discrimination." ] }, { "cell_type": "markdown", "id": "f7db5b11", "metadata": {}, "source": [ "## 6. Score Distribution — Finding the Ceiling\n", "\n", "Understanding *where* the model fails requires looking at how scores are distributed\n", "across fraud vs clean accounts." ] }, { "cell_type": "code", "execution_count": 13, "id": "9729b6ad", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABKYAAAHqCAYAAAA+vEZWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAS3pJREFUeJzt3QeUVdXZP+CNIIiAWFDsBRWTqLGXYMGILfYee2KLJdggRrHEEkWMgo3PFjEmCLbYFSv2GHvFgh0bggUFbIjyX+/+vjv/mWEGZoYLZ8rzrHXXzNxy7r77nrlwfvPu97Tq1KnTtAQAAAAAc9hcc/oJAQAAACAIpgAAAAAohGAKAAAAgEIIpgAAAAAohGAKAAAAgEIIpgAAAAAohGAKAAAAgEIIpgAAAAAohGAKAAAAgEIIpgCAZmHixImpX79+RQ+j0Ys5irmaE+688858Kdlwww3zc++www5z5PkvueSS9PLLL6eirLXWWumzzz5LSy21VGFjaIwOOOCA9Morr6S2bdsWPRQAGgHBFADNWteuXdOpp56a7rjjjvTRRx/lg+I4OG4sttpqq3Tdddelt956Kx/AjhkzJt11112pd+/eqVOnTlXuGwfYMf5zzjlnuu3UdMC/11575evGjx+fFltssekeE4HBE088UaeD+9hOTZfNNtssNTULLbRQOvvss9MzzzyTxo0bl95+++304IMPptNOOy116NAhNSWl97h0ifd69OjR6eabb06HHnpo6tixY1meZ9FFF82B1qqrrpoam8Y8tpNPPjn9+9//Th988MF071Vtl3IFaeuuu26el86dO9fr82jEiBH5d+KTTz5JL774Yrrqqqsa/Hvet2/ftM0220x3/bBhw3IoFQEVALQxBQA0ZyuuuGLq06dPDn5effXVtN5666XGoFWrVul//ud/0j777JNGjRqVrrjiivThhx/mMCoOKOOAdosttkjbb7/9dI/93e9+lwYOHJgPHOtinnnmyXNw7LHHNni83333XTriiCOmu77IapSGWGCBBdLDDz+c5/nqq69Ob7zxRlpwwQXTKquskg488MA0ZMiQ9PXXX6em5owzzsihZps2bXIYu9FGG6UBAwakP/7xj2mPPfbI1Sklf/vb39KgQYPqtf0INiPkiOeoz3u+4447ptltRmOLfXauuYr5O2wEZZtuumlFqPP444+ngw8+uMp9LrroovTss8/m8Kdk8uTJZXn++KyLeYkQ6Kuvvprp/WOuzjzzzPToo4/m/eObb75J3bp1S5tssknaZZdd0v3339+gYOrWW2+tUjUXvv/++zR8+PC8f1566aX13i4AzYtgCoBm7YUXXkjLLLNMmjBhQq4maizB1NFHH51DqcGDB6cTTjhhugqlCBf23HPP6R4X4VopbPvzn/9cp+eKqof6hlnVTZ06NVd21dW8886bD2wbm3333TctvfTSOSx46qmnqtwWYdWUKVPm2FjKOUf33Xdfev755yt+jmBh4403Ttdff3269tpr0zrrrJPDxfDjjz/my+zUvn379O2336YffvghFSn226LE7/f7779fsZ+99957+VLZeeedl6+rz+/W7NC6dev8efLAAw/UGCZ26dKl7M8ZVX3HHHNM3k8feeSRsm8fgKbDUj4AmpwImGLJywYbbDDdbfvvv3++7ec//3lF9UGEUo1JHLRHMBUh00knnVTjfWKJ2fnnnz/d9XGge8011+SgKZYw1UUEUnHgGWHW7OxZtNJKK+WKo6hcueeee/JtK6+8cg7aIhyLZWZvvvlmrhSLKqW69AKqqR9SLAE666yz0jvvvJOXZ0bwsvjii9dprMstt1wOK55++unpbps0aVKu5Khs7bXXzkux4jWNHTs2V70cdthhVe4TB9Z33313vr30/nTv3r3OcxR++9vf5kqueN/jtn/84x9piSWWSLMiDvajOiqC2dh+9bFU9utf/zqPJ8b/8ccf5yqev/zlLxXLRGNsIapbSkvOYmla5SWhq6++el6GGuHnKaecUnFb9WqZEPtjbD/2h5i3eA+rv97YH2K/qK7yNmc2tpr2qwgEozIofv8+/fTT/FprqgaM7Zx77rl5KVq8vrjvk08+WedlbfG4hgQuUQEWvyNR5Vl6zgi5qjvkkEPybTHfsc889NBDabfddqt4j+M1hqjILM1LhLK1LW+NJX+1Le2NZcbVfwcjUI/gP8YYc3n66adX6RkVzxdLSffee++K56/8fsZjv/jiixqX+gHQsqiYAqDJiQPoCBF23nnn9J///KfKbXFdHCS99tprqbH61a9+lZeUxTKen376qd6Pj4PlqKaqa9VUHLSWwqyopGlo1VT1MCkCnsoBx7/+9a/cmyYOUGOpYinwWHbZZfNyoghdIjD8/e9/n7/GMqeGiCqz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ES7fK4VSDz74YNHDgSrGjBmTv0Y4FfvorCzr0/wcAAAAGpnoKRWiUgoao9K+WdpXG0owBQAAAI1MqdG55Xs0VqV9c1ab8gumAAAAACiEYAoAAACYoz766KO05ZZbNtpZv/HGG9OOO+6YWqK55547n3Hvl7/85Rx5Ps3PAQAAoKno1XfOPt/IgfV+yMILL5yOPPLI1KtXr7Toooumzz//PL3yyivpiiuuSI899lhq7DbffPP8Gm699dbZ9hxxJrsePXpMd/3IkSPTfvvtN9PHr7322jk8Gz16dNpiiy2q3BZzfsIJJ6RNN900zTPPPOm9995Lffr0SS+99FK+/Te/+U3ad999c/AU/aHi8fH+lPzwww/p0ksvTSeeeGL67W9/m2Y3wRQAAABQFksuuWS65ZZb0sSJE9MZZ5yRXn/99dSmTZu0ySabpDPPPDP17Nmz0c/0gQcemK677ro0bdq02fYcBx98cK5MKomA6L777stnuJuZ+eabL11wwQU55IsArbLOnTvn+X/88cfTPvvsk0PB5ZZbLn311VcV95l33nnTU089lW6//fZ07rnn1vgcN998c/rLX/6Sunfvnt544400O1nKBwAAAJRF//7989dtttkmjRgxIp+5LYKNyy+/PG233Xa1Pm7xxRfPVTqvvvpqGjVqVLryyitzyFWy2mqrpWuuuSa9/PLL6bXXXkv//ve/0yqrrDLd8sA999wzV2a99dZbObiJ6qf6WHDBBdMGG2yQQ6Jyb7uyL7/8Mn366acVl4033jh9++23OSyamQEDBuTw6dlnn53utsMPPzx9/PHHuULqhRdeSB988EF65JFH0pgxYyruE5VW559/fnr00UdrfY4Isp555pm0ww47pNlNMAUAAADMsvnnnz/9+te/TldddVUOWaqLKqqaREXVsGHD0uTJk9POO++cezt9/fXX+bpSVVHHjh3z8re4LQKud999Nw0dOjR16NChyrYikIlwZ7PNNsvL4gYPHpzHVVfrrrtuHvubb7453W0z23YEcDO6RKBUmz322CMvHaxp3irbfffd09JLL50GDRpU4+2xLC+W7F122WXpxRdfTPfcc0/aa6+9UkM8//zzeT5mN0v5AAAAgFm27LLLprnmmitXFNXH9ttvnx/3pz/9qUoIFJVRv/rVr3LFz3/+858qj/nzn/9ccfv9999fcf31119f0RsqgqCDDjoorb766umhhx6q01iiSisqmGpaxjezbVfv9VTdpEmTarx+9dVXTz//+c+rvP6axJK86B0V4d2PP/5Y430itIr+UX//+9/ThRdemLd9+umn575REezVx7hx46pUrc0ugikAAABglrVq1apBj/vFL36RQ63qvYzatWuXr49gqkuXLjmMiobhCy20UGrdunVq3759WmKJJao8JsKqkqg+iiqteGxdRbPw77//vsbbZrbtaDLeEHvuuWdewhhL72oTwV1UaA0cODAvj5zR/aJiqlSdFU3NV1pppRxW1TeY+u677/Icz26CKZq/cp61ogFnpAAAAGgJYnndTz/9lFZYYYV6PS6W40WYcsQRR0x3WzTvDtETKRqER0PuDz/8ME2ZMiXddtttVRqIh6gMqiwqnyKsqasvvvgiNxCvycy2PbMm4TfddFM6/vjjq1zXvn37XDFWWxPykljKGNVP0VcrmsqHeO64RP+oWK4XVWXjx4+fbhxRwbb11lun+opliqX5n50EUwAAAMAsi4besazt97//fRoyZMh0/ZLibHI19ZmKhubRN+qzzz7LfaZqss466+RlbA888EBFs/SonCq3aLy+yCKL5HCq8pns6qIhS/m222671LZt2xxazeyxm266aZXrfve73+VG7X/4wx/S+++/n697+umn0/LLL1/lft26dcvN2+vrZz/7Wa64mt00PwcAAADK4sQTT8xVPHfeeWeu0om+SFFBdcABB+QKp5pEKDNhwoT0j3/8IzfbXmqppXLvqOiNtNhii1VUY+2yyy55W2ussUa66KKLZtoovKHBVFRNRRBWX7GUb0aXmqqP9thjj9ygPF7/jER11ujRo6tcIsiLZYfxfWkuorfUmmuumavPYhlkNIvfe++9c0P6ypVQK6+8curevXv+OYKs+HnhhReu8pzxXjz88MNpdhNMAQAAAGURlTtbbbVVevzxx/Oyuzh73bXXXps23HDD1K9fv1p7GUVD76jqueKKK3LVVSxtix5TpSqjvn375iqmu+++Ozf1vvLKK3MwU26xFPG6665LO+20U5rdIhBab7310jXXXFPj7dEA/oknnqjXNuNMfNGUfYcddshzf/TRR6dTTjkl3XzzzVUqu+699958VsNwySWX5J+jD1XJWmutlTp16pQDxtmtVadOnaZvNd+MxETGzh3NvmorCaSZ02MKAABoYqKpdwQTgwYNatAyLBouKocefPDBtOWWWxY69+eff36ulDrmmGPm+HNHWBUN2aMyrSH7aPTEikquuE9tZyMs0WMKAAAA4P98+umnuUIrQpUig6lf/epXc6Ryq7poKP/666/nZYFzgmAKAAAAoJLo+1S09dZbr5DnjbMPXnDBBXPs+fSYAgAAAKAQgikAAAAACiGYAgAAAKAQgikAAAAACiGYAgAAAKAQgikAAAAACiGYAgAAAKAQgikAAACg2TnvvPPSkCFD6v24DTfcMD300ENprrkad2Sy7777pquuuio1dW2KHgAAAABQN0O2W3SOTtWBt39S7zBo9913n+76DTbYIL333nupKTjxxBPTBRdckH766afZ/lxt27ZNd9xxR1p55ZXTFltskV555ZV8fbt27dKAAQPSqquumlZcccV0//33pwMPPLDKY6+99tp01FFHpXXXXTc99dRTqalq3PEfAAAA0KQ88MADafXVV69yef/996e739xzz50am3XWWScts8wyacSIEXMsBPvkk+nDv6jW+u6779KVV16ZHn300Rof+8MPP6RbbrllusCqqRFMAQAAAGUzZcqU9Omnn1a5RPXRDTfckM4444x02mmnpZdffjkNHz483/8Pf/hDrgh6880309NPP5369++f5p133ort9enTJ917771VnuOggw5KTzzxxP8PN+aaK51yyinp1VdfTaNGjcqBT6tWreo99h122CEHQd9///10z7/LLrvk53zttdfSxRdfnDp06JBmxa9//evUs2fP9Ne//nW627799tvUr1+/PEcxf7W577770uabb57mmWee1FQJpgAAAIA5YrfddsvB1Y477piOP/74fF2EVn/5y19yUHP00UfnZX8nnXRSvbZ7yCGH5G337ds3b3v++edPW221Vb3Ht95666UXX3xxuuujimrLLbdMv/vd7/Jl/fXXT7179664/YgjjkhvvPHGDC+LL754xf27dOmSzjnnnHTkkUfmEKqhYqxt2rRJa6yxRmqq9JgCAAAAymazzTbLQUzJgw8+mIOj8O6776Yzzzyzyv2vuOKKiu8//PDD9Le//S33VzrhhBPq/JxRQTV48OB011135Z8j9Npkk03qPfYlllgijRs3brrroyLrmGOOSV9//XX++cYbb8xN0s8+++z889ChQ9Ptt98+w21X3m704orHvPTSS2nJJZdMDRXL/SZOnDhL2yiaYAoAAAAom8cffzwvQyv55ptvKr6PIKa6jTbaKFcfLb/88qlTp06pdevWqX379nl5WgQvMxOPWXTRRdPzzz9fcd2PP/6Yq4nqu5wvnrPyMr6SDz74oCKUCuPHj08LLbRQxc9ffvllvtTFAQcckDp27JguuuiiVA4xRzFfTZVgCgAAACibCKJqOwNf9WVrUelz1VVX5eqhqD6KcCcakA8aNCifsS5Cl1jqVz1giuVrs8MXX3yROnfuPN31U6dOrfLztGnTchVV5aV8cZmRqOD6+OOP81LFtdZaK1ePVRYN12+++ea8nLE+Ytni559/npoqwRQAAABQiF/+8pc54ImG6BH2hO222266sGjhhReuct3KK69c8f2kSZPyme2iz9KTTz6Zr4uqq9h2NFmvj1deeSV179693q+jPkv5Tj755LxcsaRr167pmmuuSYcddliVqq+6iN5XUS0VDd+bKsEUAAAAUIiorIrKqFjeFmeYi2qpfffdd7qlgdGX6vDDD0933nlnrjyKRumTJ0+uuM+QIUPycsCoQnrrrbfymf7mm2++eo/noYceyk3U66s+S/miaqqyr/9vieCYMWPS2LFjK65fccUV89xERVQs/SuFcRGeVW7WHnMYj22qnJUPAAAAKMSrr76aTj311Bw6PfDAA2mnnXZKZ511VpX7RNAUjdB///vf5/AqKqMuu+yyKveJn6Mh+fnnn59uu+22HPbcfffd9R5PLKWLiqnod1W0oUOHpnvvvTdtscUWqUePHvn7uFS2ww47pOHDh6emrFWnTp3+t1aumYomaB999FFaaaWVqqSptCC9+pZvWyMHlm9bAAAAMzg7XJ8+fXKvpTimZc456aSTcpZw3HHHNepp7969e7r++utz8/hYztiY9tGo8Bo9enS+z8zGVmjFVLyAKJOLF/D222/nlG+FFVaocp927dqlgQMH5tK0KHeLxLD62lIAAACAcrjwwgvThx9+WO8z+s1pXbt2TUcddVQhoVQ5FRpMbbjhhunyyy9PvXr1yuVnc889d7rlllvSvPPOW3GfKOHbaqut0n777Ze23nrrtNhii6Vhw4YVOWwAAACgmZo4cWK66KKLKpqxN1aPPvpoevjhh1NTV2jz85133rnKz4ceemhuVLb66qvn5mbRqCwCqQMPPDA98sgj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AMBsCabC+PHj86WyqJ4CAAAAgNkWTM0777ypT58+qWfPnrmvVKtWraY7ax8AAAAAlD2YGjx4cNpggw3Stddem8aNG5fPyAcAAAAAsz2Y2myzzdJuu+2WnnzyyYY8HAAAAAAadla+L7/8Mk2YMMH0AQAAADBng6kzzzwznXjiial9+/YNf2YAAAAAWrQGLeXr3bt3Wm655dJbb72V3n///fTDDz9UuX3jjTcu1/gAAAAAaKYaFEzdeeed5R8JAAAAAC1Kg4KpAQMGlH8kAAAAALQoDeoxFTp37pz222+/dMopp6QFFlggX7faaqulxRZbrJzjAwAAAKCZalDF1Morr5xuu+22NHHixLT00kunf/7zn/ksfdtvv31acskl0yGHHFL+kQIAAADQrDSoYqp///5p2LBhaY011kjfffddxfX33HNP6tGjRznHBwAAAEAz1aBgas0110z/+Mc/prt+7NixqWvXruUYFwAAAADNXIOCqSlTpqROnTpNd/0KK6yQPvvss3KMCwAAAIBmrkHB1IgRI9Jxxx2X2rT53xZV06ZNy72lTjvttNx7CgAAAABmSzB14oknpg4dOqR33nkntW/fPgdVL7zwQpo8eXI6/fTTG7JJAAAAAFqYBp2VL87Gt+OOO6b11lsvrbrqqjmkevHFF9NDDz1U/hECAAAA0CzVO5hq1apV2nvvvdP222+fll566byMb8yYMWn8+PGzZ4QAAAAANEv1Xsp33XXXpcGDB6fFFlssvfrqq+n1119PSy21VLrkkkvS8OHDZ88oAQAAAGjZwVRUSvXo0SNtt912aaONNkoHHHBA2n///dMGG2yQK6g23njjtOeee9Z5e7GtCLpGjx6dlwdus802NfazeuONN9K4cePSrbfempZffvn6DBkAAACA5hBM7bbbbmngwIHp0Ucfne62Rx55JJ133nlp9913r/P2ojfVqFGjUt++fWu8/eijj06HHHJI/rrpppumb775Jt10002pXbt29Rk2AAAAAE09mFp55ZXT/fffX+vt9913X1pllVXqvL24/1//+td0xx131Hj74Ycfns4555x81r9XXnklh1SxhHDbbbetz7ABAAAAaOrB1AILLDDDJudx2/zzz1+OcaVll102LbroolXO9BfL/Z555pm07rrrluU5AAAAAGgiZ+Vr3bp1mjp1aq23//jjj6lNm3qf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UwAAAAAUQjAFAAAAQCHaFPO0QKPVq2/5tjVyYPm2BQAAQLOjYgoAAACAQgimAAAAACiEYAoAAACAQgimAAAAACiE5uctWTmbXAMAAADUk4opAAAAAAohmAIAAACgEIIpAAAAAAohmAIAAACgEIIpAAAAAAohmAIAAACgEIIpAAAAAAohmAIAAACgEIIpAAAAAAohmAIAAACgEIIpAAAAAAohmAIAAACgEIIpAAAAAAohmAIAAACgEG1SE3DwwQenI488MnXt2jWNGjUqHXvssenZZ58teljAzPTqW745GjnQfAMAADQzjb5iauedd079+/dPAwYMSBtttFF6+eWX00033ZS6dOlS9NAAAAAAaM4VU717907//Oc/07Bhw/LPRx99dNpyyy3Tvvvum84777yihwc0xeqroAILACi3TouWb1uTPinftgAasUYdTM0999xp9dVXTwMH/v8lPNOmTUsPPfRQWnfddVOLVO6DcwAAaA7/J+40MjUr5Qy5yklgBrSkYGqhhRZKbdq0SZ9++mmV68ePH5+6d+9e42Patm2b2rVrV/Fzx44d89cOHTqkZmGetqklat2ufdFDaFI6ttD9pF626Ve+bT18Ufm2BUDL0/OIokfQLPj/4hzSbrkar+64zf5le4rWXR5q2AMnj0/NXsdFZv9TNPS9nM3/J249T3mP6UtZQWMbW8cyjqtI9clgGnUw1RB9+/ZN/fpNf8D53HPPFTIeyqW3qayH0WZrDrN/AkDx/HvcfP7/6b1smu9l03rfRp+fGqXRjXRcsxK0TZo0qekGU59//nmaOnVqWnjhhatcv8gii6Rx48bV+JhY9jd48OAq1y2wwAJpwoQJs3WsNG/xyzR69Oi00korpcmTJxc9HJoB+xT2K5oCn1XYr2gqfF5hn2qcv5djx46d6f0adTD1ww8/pBdeeCFtsskm6c4778zXtWrVKvXs2TNdfvnlNT5mypQp+VLZzNI5qKsIpexPlJN9itnBfoV9iqbAZxX2K5oCn1UNV9dj50YdTIWofrr00kvT888/n5555pl0+OGHp3nnnTddffXVRQ8NAAAAgFnQ6IOpm266KXXp0iWdcMIJqWvXrunll19Ou+yyy3QN0QEAAABoWhp9MBVi2V5tS/dgTvj+++/TWWedlb+CfYrGymcV9imaAp9V2K9oCnxWzTmtOnXqNG0OPh8AAAAAZHP97xcAAAAAmLMEUwAAAAAUQjAFAAAAQCEEU/B/Dj744HzWx/Hjx6cHHnggrbXWWrXOzXbbbZceeuih9P7776exY8emxx57LO2xxx7mkgbvU5XFmUcnTpyYhg8fbkaZpf1qr732yvtS5Us8Dmbls6pz585p4MCB6Y033shnSX7uuefSFltsYVJp8H515513TvdZFZcbbrjBrDJLn1eHH354evbZZ9O4cePSq6++mk9m1K5dO7NKg/apNm3apOOOOy69+OKL+f7/+c9/0mabbWY2y0AwBSmlnXfeOfXv3z8NGDAgbbTRRvnD6aabbkpdunSpcX4mTJiQzj333PxB1KNHjzRs2LB08cUXp169eplPGrRPlSy99NLpjDPOyP/QQTn2q6+++iqtsMIKFZeVV17ZxNLgfWruuedOt956a/6s2nffffN/4I844oj08ccfm1UavF/ts88+VT6n1l133TR16tR08803m1UavF/ttttu6dRTT833X2eddVLv3r3zNk455RSzSoP2qZNPPjntv//+6dhjj82fU1deeWU+DvzlL39pRmeRs/JBSjkdj7/4/ulPf/rfX4xWrdJrr72WLrvssnTeeefVaY4eeeSRdO+99+ZQARqyT80111zp7rvvTkOHDs2BZ1QlRMULNHS/iv0n/rMVIQKUY5864IAD0lFHHZUDqQgOoBz7VU1VLieccELq3r17+uabb0wyDdqv4o/IsQ9tv/32FdedeeaZae21105bbrmlWaXe+9To0aPzfvX3v/+94rr4f/t3332XK69oOBVTtHjx19/VV189PfjggxVzMW3atLxUL5LwuujZs2daccUVVbkwS/vU8ccfn5fFxD9wUK79qmPHjmnUqFF5CcM111yTfvazn5lcGrxPbb311umpp57KS/neeuut9MQTT6S+ffvmYB1m5bOqsqjGu/HGG4VSzNK/gU8++WR+TGlp1rLLLpuXHccfkqEh+1QsA40QqrL4ef311zehs6jNrG4AmrqFFloorxeOQKCyWDccf2WpzXzzzZdef/31/AH1448/pj59+lT5YKPlasg+Ff+gxX/EN9hggzk0SlrCfhXBwR//+MccTMVn1pFHHpnuu+++tN5661l6RYP2qTiw23jjjdP111+fdt1119StW7c0aNCg/B/8qM6Dhv6/qiRChFhyHMuuYFb+DYweZfG4e+65J1fCxOfUFVdckYN1aMg+NXLkyPzZ9Pjjj6d33nknbbLJJrn3cOvWrU3oLPLnLWigSZMmpQ033DB/IJ1++ul5fXL8DPUVFS2XX355Dg2++OILE0jZRGVLVElFz4ToW7b33nunzz//PC/HgoaIyqj4T3x8Xr3wwgu5F8c555xjn6Js4o80EaZHw2qYFfH/8qjojD8eR/+gWN4eS/j+/Oc/m1gaJPadt99+Oz3zzDP5/1OxrC96TP30009mdBapmKLFiw+V6JOx8MILV5mLRRZZJJ/BozZR6hlJeYiDvpVWWin/4xdn6KNlq+8+tdxyy+UqhOuuu67iutKymAiq4q/H77777hwYOc3xs6qyeHycSSaqXKAh+9Qnn3ySfvjhhyr/CY+z8y266KK5GiFuo2Wblc+qeeedN5+ZNv7YB7O6X5100knp2muvTf/617/yz7GkvUOHDumCCy7IgXr8X56WqyH7VDwmAs5YMbPgggvms7Ofdtpp6b333ptDo26+VEzR4sV/ouOvvlH5VBLlvtE3KqoN6vzLNNdcqW3bti1+Pkn13qfioC6WVsUyvtJlxIgRuaF+fP/hhx+aVsryWRWfU7FEJsIFaMg+FT2lItiM+5XEWdTiP+dCKWb1s2rHHXfMB3yV/1ADDd2v2rdvP10lS7TfKD2Wlm1WPqu+//77/O9eLAXcYYcd0p133jkHRty8qZiClNLgwYPTpZdemp5//vlcmhlng4m/2l199dV5fuLMDHEq7EjEQ5QEx32jiiXCqGikuMcee6RjjjnGfFLvfSr+cYszgFT21Vdf5a/Vr6dlq+9n1XHHHZeefvrpXN0ZZ3mMs6kttdRS6Z///GfBr4Smuk8NGTIk/eEPf0h/+9vf8m3LL798rhaObUBD96uS/fbbLx/gWdZOOT6v4kzH0WfxpZdeyvePUD2qqO666y5Lr2jQPhVndFxsscXyapn42q9fvxxmRRUes0YwBSnlHhldunTJpybu2rVr/rCJUvJSM7wll1yyyj9gUQYczV4XX3zxfCaGqHiJU4TGdqAh+xTMjv1q/vnnTxdeeGG+75dffpn/Mrj55pvn0x1DQ/apjz76KO28887prLPOys1f4y/Gl1xySY2n1ablasi/gVF516NHj1x9AOXYryJAj+V6J598cg4RPvvssxxWRW9YaMg+FRWdsT9FC46vv/46n+Ex/lhT+oMyDdeqU6dOFtcCAAAAMMfpMQUAAABAIQRTAAAAABRCMAUAAABAIQRTAAAAABRCMAUAAABAIQRTAAAAABRCMAUAAABAIQRTAAAAABRCMAUAtBiXXHJJGj58eMXPd955ZxowYMAcH8eGG26YJk6cmDp37jzHn3vppZfOz73qqquWdS5rUn1+X3755XT44YdX/Bzj2GabbWZpHABA0yaYAgAKFQFHBBRx+eyzz9ILL7yQjjvuuNS6devZ/tz77LNPOuOMMxp9mNRUzWx+V1hhhXTfffeVNTADAJqWNkUPAAAgwonDDjsstWvXLm2xxRZp4MCB6YcffkiDBg2abnLmnnvufFs5TJgwoVlNfps2bdLUqVNTYzGz+R0/fvwcGwsA0DipmAIACvf999/nkOKDDz5IQ4YMSQ899FDaeuutqywZ+9Of/pRGjx6dnn322Xz9Eksska666qr0/vvvpzFjxqRrrrkmV92UzDXXXKl///759vfeey+dfvrpqVWrVjNcata2bdt02mmnpVdffTV9+umnuXpr3333zdsdMWJEvk+MMSp7YlwhttmnT5/00ksvpXHjxqX//Oc/aYcddqjyPBG2Pffcc/n2O+64o8o4axPPceCBB6Ybb7wxP+7FF1+sst1ShdHOO++cxxbzt/vuu+fxRMXZa6+9ll/DY489ljbbbLPptt+9e/ccCMbjnnjiibTBBhtUmbvBgwdXvKaY8wgOa3L88cend955J3344YfpvPPOy8FhbfNb02ssLeUbNWpU/hrzF9fHY3v06JE+//zztMgii1R5XGzz7rvvnukcAgCNn2AKAGh0vv322yoBR8+ePdOKK66Yg5kIX6Iy6Oabb06TJ09OW221Vdp8883T119/nW666aaKxx1xxBFp7733Tn/84x9zMLTAAgukbbfddobPe9lll6Vdd901/fnPf07rrLNOOuqoo/J2I3SJbYU111wzL0GL8Cf07ds37bnnnumYY45J6623Xvqf//mf9Pe//70i6IkA7eqrr0533XVXvu5f//pXDr/q4qSTTkq33nprftwNN9yQ/vGPf+RAqbJTTz01h2Qx3pEjR+YeTr17986P/dWvfpWvu/baa9Pyyy9f5XF//etf00UXXZSXKD711FPpuuuuSwsuuGBFMPXxxx+n3/3ud2nddddNZ599dvrLX/6SdtpppyrbiPdlpZVWyiFihGjbb799DqoaYpNNNslft9tuuzy/sQzw8ccfz6HiHnvsUXG/eO9jHxg6dGiDngcAaFws5QMAGpUIKHr16pVDopJvvvkmhy2lJXy//e1vc3gS15VERU9UM2200UbpgQceyAFNLAm8/fbb8+1HH3103m5tIgzZZZddcrgSFVshQpHqy9KiCumrr76qqLCKYCoCswh3So+JQOiAAw7I1T8R2Lz77rvpxBNPzLe/9dZb6Re/+EWuspqZCN8iyArRq+nXv/51OvTQQ6s8NkKp0mssBXLnn39+rrQKp5xyStp4443zfMRYSy6//PJ022235e8jVIuqqqgOu+CCC/JywKg2K4mKtAioIpiKMZXE+xHbjSDx9ddfT2eeeWYOvGKs06ZNS/UR/cXCF198UWWJX7z+CKkuvPDC/PNvfvObvOSz8jgAgKZLMAUAFC6qnqJCJ6qdInCK6qCzzjqr4vZXXnmlSl+pVVZZJXXr1i0/prJ55pknLbfccmm++eZLiy22WHrmmWcqbvvxxx/T888/P91yvpJouh2BTCx9q6sYQ4cOHdItt9xS5foIrGIZXIiKosrjCKUQa2aefvrp6R5XvTl4LBEs6dSpU1p88cXz0rzK4ueYs9rGUJqbGGvJwQcfnAOhpZZaKs9rvKY4q15l8XOEUpW3GWNYcsklc0hYDsOGDUsnn3xyrgiL+YjKtQilIqwEAJo+wRQAULhHHnkkVwFNmTIljR07NgcllVUPISIMiv5PBx10UK2VN/VVOWCpq44dO+avu+22Wx539b5Zc8LsCGiiciyqnqLKK8KmWDJ55JFHprXXXjvNafF+xjLICKSiGi2WbZb6jwEATZ8eUwBA4SJcKTXQrh5K1SQagUfPpFhWF4+rfInG2XGJoKhykNK6deu0+uqr17rNaHge1VrRc6kmEZqVtlMSy9e+++67XFVUfRwfffRRvk80bF9rrbWqbCuqf+qi+v3i5zfeeKPW+0+aNClXka2//vpVro+fYxy1bbs0N6X7xP2ffPLJdMUVV+TKr3g9UYlWXVRvRTVV5W3GGOJ9rK+a5rfycr5o8r7//vvnZZExNgCgeRBMAQBNzvXXX5/P1hZn4ot+Tssss0wOlP72t7/lpWyl3ktRhRVnfYvG6YMGDUqdO3eudZtx9r44+180L4/HlLZZavgdS9N++umnvOxwoYUWylVbUUkUDcRj2eFee+2Vw5vVVlstHXLIIfnncOWVV+YQLXovRR+rqK4qNVKfmR133DEvp4vHnXDCCTngqtx7qybRiyn6aUWQE4+L5ugRIJXOIlh5qV40g4+5iV5c888/f0VD8bfffjutscYauSdXbCMaqUfT9+pi6WXMVywBjAbzMcboXVXf/lIhQsYIKKPX1cILL5yXY5bcf//9OfA69thjcyN5AKD5EEwBAE1OLLuLgCgqc6IHUfQeioAkmmJHgBEiMIqz0V166aU52IgQ6Y477pjhdqMJeJwFL0Ks6AsV25h33nnzbVGBFQ3BI+iJ4Obcc8/N10fgFIFYhGAxjjgz4JZbblnROD3GGE3FIwSKs8xFU/S6npUvni/OEhiPizPTxWOrVz5VFwFUzEU0Io/eUhH0xGNjzJXF64gxx7Yj3Iv7ROPxUpgWDdXjLIBxVr84W19UT1X38MMP5+3efffd+b4jRoyo0husPqJSLs6GGFVRURUWoWNJBF0RGkY1VeXrAYCmr1WnTp3q/yctAABmq1iOuOeee6Y777zTTKeUBg8enLp06ZIDNACg+dD8HACARiuW9P3iF7/ISyCFUgDQ/AimAABotGLpXvTWiuWFDz74YNHDAQDKzFI+AAAAAAqh+TkAAAAAhRBMAQAAAFAIwRQAAAAAhRBMAQAAAFAIwRQAAAAAhRBMAQAAAFAIwRQAAAAAhRBMAQAAAFAIwRQAAAAAqQj/D/Go8FI4QfD+AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Fraud — mean: 0.6130 median: 0.7586 min: 0.2779 max: 0.9192\n", "Clean — mean: 0.3029 median: 0.2970\n" ] } ], "source": [ "fraud_scores_v1 = test_proba_v1[test_y == 1]\n", "clean_scores_v1 = test_proba_v1[test_y == 0]\n", "\n", "fig, ax = plt.subplots(figsize=(12, 5))\n", "ax.hist(\n", " clean_scores_v1,\n", " bins=50,\n", " alpha=0.7,\n", " color=BLUE,\n", " label=f\"Clean (n={len(clean_scores_v1):,})\",\n", " density=True,\n", ")\n", "ax.hist(\n", " fraud_scores_v1,\n", " bins=50,\n", " alpha=0.8,\n", " color=ORANGE,\n", " label=f\"Fraud (n={len(fraud_scores_v1):,})\",\n", " density=True,\n", ")\n", "ax.set_title(\"v1 — GNN Fraud Score Distribution (Test Set)\")\n", "ax.set_xlabel(\"Predicted probability\")\n", "ax.set_ylabel(\"Density\")\n", "ax.legend()\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "print(\n", " f\"Fraud — mean: {fraud_scores_v1.mean():.4f} median: {np.median(fraud_scores_v1):.4f} \"\n", " f\"min: {fraud_scores_v1.min():.4f} max: {fraud_scores_v1.max():.4f}\"\n", ")\n", "print(f\"Clean — mean: {clean_scores_v1.mean():.4f} median: {np.median(clean_scores_v1):.4f}\")" ] }, { "cell_type": "markdown", "id": "1321c953", "metadata": {}, "source": [ "## 7. Why v1 Plateaus: The Peripheral Member Problem\n", "\n", "The score distribution above reveals a **bimodal pattern** in fraud scores:\n", "- ~55% of fraud ring members score **0.70–0.92** → correctly identified (hub members)\n", "- ~45% of fraud ring members score **0.28–0.35** → indistinguishable from clean accounts\n", "\n", "This is the **peripheral member problem**.\n", "\n", "In a fraud ring, not every member is equally connected:\n", "- **Hub members** sit at the centre of the shared-device network. After 2 hops of message\n", " passing, their embeddings aggregate signals from many other fraud accounts → high score.\n", "- **Peripheral members** have fewer shared-device connections. They are 3+ edges away from\n", " hub members. With only 2 GNN layers, their embeddings never receive fraud signal → low score.\n", "\n", "**Fixes applied in v2:**\n", "1. **3rd GNN layer** — extends the receptive field by 1 hop, so peripheral members can now\n", " receive messages from hub members 3 edges away.\n", "2. **BatchNorm after each layer** — prevents embedding magnitudes from growing unevenly\n", " across node types, which was saturating ReLU activations and killing gradients after\n", " only 6 epochs." ] }, { "cell_type": "markdown", "id": "3d5ade4b", "metadata": {}, "source": [ "## 8. GNN v2 Evaluation — 3-Layer + BatchNorm\n", "\n", "Retrain using the updated model, then compare results against v1." ] }, { "cell_type": "code", "execution_count": 14, "id": "8b8d9d28", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "🏃 View run gnn-full-batch at: http://localhost:5001/#/experiments/2/runs/b0683245b8d14538a93213f8c93f8716\n", "🧪 View experiment at: http://localhost:5001/#/experiments/2\n" ] } ], "source": [ "from pathlib import Path\n", "\n", "from models.gnn.train import train as train_gnn\n", "\n", "train_gnn(\n", " graph_path=Path(GRAPH_PATH),\n", " experiment_name=\"fraud-ring-gnn-v2\",\n", " model_output_dir=Path(\"models/gnn/artifacts_v2\"),\n", " epochs=300,\n", " patience=30,\n", " device_str=DEVICE,\n", ")" ] }, { "cell_type": "code", "execution_count": 15, "id": "350b7457", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "v2 — best epoch: 6 test AUC: 0.8482 AP: 0.3046\n", "\n", "── Comparison ──────────────────────\n", " AUC v1=0.8379 v2=0.8482 Δ=+0.0103\n", " AP v1=0.3794 v2=0.3046 Δ=-0.0749\n" ] } ], "source": [ "checkpoint_v2 = torch.load(\n", " \"models/gnn/artifacts_v2/gnn_model.pt\", map_location=DEVICE, weights_only=False\n", ")\n", "model_v2 = FraudRingGNN(\n", " hidden_dim=checkpoint_v2[\"hidden_dim\"],\n", " dropout=checkpoint_v2[\"dropout\"],\n", " num_layers=checkpoint_v2.get(\"num_layers\", 3),\n", " use_batchnorm=checkpoint_v2.get(\"use_batchnorm\", True),\n", ").to(DEVICE)\n", "model_v2.load_state_dict(migrate_state_dict(checkpoint_v2[\"model_state_dict\"]))\n", "model_v2.eval()\n", "\n", "with torch.no_grad():\n", " proba_v2 = torch.sigmoid(model_v2(data)).cpu().numpy()\n", "\n", "test_proba_v2 = proba_v2[test_mask]\n", "auc_v2 = roc_auc_score(test_y, test_proba_v2)\n", "ap_v2 = average_precision_score(test_y, test_proba_v2)\n", "\n", "print(f\"v2 — best epoch: {checkpoint_v2['best_epoch']} test AUC: {auc_v2:.4f} AP: {ap_v2:.4f}\")\n", "print()\n", "print(\"── Comparison ──────────────────────\")\n", "print(f\" AUC v1={auc_v1:.4f} v2={auc_v2:.4f} Δ={auc_v2 - auc_v1:+.4f}\")\n", "print(f\" AP v1={ap_v1:.4f} v2={ap_v2:.4f} Δ={ap_v2 - ap_v1:+.4f}\")" ] }, { "cell_type": "code", "execution_count": 16, "id": "49620e49", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAHqCAYAAAB/bWzAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAxhxJREFUeJzs3Ql4XFX5x/E3+761aZs06ZImbdlKW4rsCAqCQFFkFQQXFv+yqGyyFhRUQBBBQQTEBWQHQaCsIqDsawstXdMtadO9adKk2ZP/8zv1jpPpJE3SJHeS+X6eZ57MTGY5c+fOvee+9z3vicnIyGgzAAAAAAAAAEBEiPW7AQAAAAAAAACA/yFoCwAAAAAAAAARhKAtAAAAAAAAAEQQgrYAAAAAAAAAEEEI2gIAAAAAAABABCFoCwAAAAAAAAARhKAtAAAAAAAAAEQQgrYAAAAAAAAAEEEI2gIAAAAAAABABCFoi4jzhz/8webMmdOt5xx00EFWXV3t/mJ7zz//vLt4Ro8e7ZbXaaed1uPFVVBQYOvWrbN9992XRe6jM8880z7//HNLTEyMmu+hL9a93vhNoO/ou/n1r389KBdxfHy8zZs3z84++2y/mwIAQK+ZNm2abdiwwUaNGtVrr8kxX+Ty+tI//OEPbTAaMmSIrV692o444gi/m4IoQ9AWLkihDax3UTDkk08+cQfIw4YNYwl1cQflXTZv3mwrVqywv//977bPPvsM2uV3+eWX20cffWTvv/9+2P//9a9/dcvjuuuu67TT5V02btxon376qd1zzz02duzYXmljTEyM/fjHP7bPPvvMrdfvvPOOnXjiiV167gEHHGCPPvqoC6bouYsXL7annnqqw0ChvuuXX37Z1qxZ4x578803W1paWqfvcemll7rP/t5774X9f0JCgl1yySVuOasNpaWl9sQTT9jIkSMDj3nooYdcwFbB20iXkpJi55xzjv3jH/+wRYsW2apVq+zNN9+0s846y2JjY3dq3Zs+fbo9/fTTtnDhQlu/fr3Nnz/fHnjgAdt111376NMMXsG/S13UQf3ggw/sJz/5ifsOe0Id3CuvvNL6a3+m30t+fv52/9fJq45+b35pbm623//+9257kJSU5HdzACDs8cGmTZtswYIFLrki3PbV881vftNefPFFKysrc32id9991+23U1NTO3yO9uHqNy9btswF+bQvVz/yi1/8Ype+DW07zz//fHvttdesvLy83bFMSUkJ32gPglM/+tGP3Pe4dOlS913+61//suOPP75br3PNNdfYk08+6b4Tz3e+8x174YUXXJ9W/TX10e+66y53PIWeH3/qsnLlSnvrrbfs+9//frf61cFOOukkO++88/r8q1CfUG3WehCub6kErscff9wiibaBOra4+uqr/W4Koky83w1A5PjFL37hgo3q+Oy///4ukPKVr3zF9ttvP6urq+u3dujsXHd3NG+//bYLMDc2NppfFEx75ZVXLC4uzoqLi13W1MyZM+3QQw91gb/BZOjQoa4z/4Mf/CDs/zMyMuyoo46y5cuXuyDpT3/60w5fS51/dayVbTZlyhT77ne/a0ceeaRb79TZ3xnXXnutC3r+5S9/ce9xzDHH2J///Gdra2tzBwedUSe/tbXVPX7t2rWWnZ1tp5xyir300kuuQ/Pqq68GHjtp0iR77rnn3EHGVVdd5TJBtR5rPTjhhBPCvr4Cr2pbTU1N2P9reWidUpD4/vvvt7lz57o27L333paZmWkVFRXucQ0NDfbwww+7g5W7777bIpmC8bfccou98cYbduedd9qWLVvssMMOs9tuu82+8IUvdLg+dWXd23333d0JE61POgEwYsQIO+OMM+z111+3ww8/3C0/dJ0OfB955BF3XScfdBJDB1977LGHO+DqSdBWBxE33nhjv3wNycnJdvHFF7tA80Dw4IMP2s9+9jO3bdF1AIjE4wPtq7/1rW+54wT1T9QH8ajv/qc//cn1e9Qvv+mmm2zr1q1u/3HFFVfYcccdZ1/72tdcoC6YAnann366zZ492/UN1OfKy8tzgVz1o7UP14nDzgKMOqm+1157uSCj+k7qW40fP961Rf3K3NzcPl1Gg40SEdSH1nGN+m06uajvToH0XXbZxW644YYdvob6xl/+8pfd9xds8uTJbn1S4Fb9NvUN1a/46le/6taVne37Rxvv+FN0fKD+lk5WKLtZ/bbuUj9ECQ/6XfaH4cOHu5iDfvsDgbZx5557rjuh9J///Mfv5iBKELRFwD//+U+bNWuWu66zSDqbpMCTAl06SxqOzpqrQ9ab1DHoLgXhgjuOflBn87HHHgvcVmaBOpEK3ip4MJgoi0LfkzrH4ahjp+C1AonKbDvwwANdBz4cZb8+88wzgaxRnXFVB1GBud/8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CqKcNzyfCbH6nreMKYmAruC3CQCA/wjaAgAAAAAAAEAEIWgLAADQDe+9956dffbZgdurVq2yI488sl+W4d///nc77rjjbCC48sor7ec//7nfzQAAAAAGJIK2AABgQLjttttcgNS7zJ07102mtuuuu/rarilTpvTLxE5f+cpXbNiwYfbMM88E7ktKSrJf/vKXblksWrTI7r33XsvNzd3ha1166aX2ySefWGlpqT366KNWVFTU7v/Z2dl2xx132IIFC2zevHn261//2lJTUwP/LywsbPddeJe99tor8Ji7777bTjrpJBs9erRFowMOOMAee+wxW7hwoVVXV9sxxxyzw+ccdNBB9p///MfWr19vs2fPttNOO61f2jpQTJs2zcrKyuyBBx5od//+++/v1j9Nsrijkyzed6PX0O9GvwH9fq+99lrLy8vrcdu+853vuPdasmSJPffcc267sCNql75vteHDDz+0n/3sZ+43Hc7555/vPuN1113X7n5tE373u9/ZrFmzbPHixfbSSy/Z0Ucf3e63qt/vu+++697n7bfftksuucQSEhJ6/FkBAED/IGgLAAAGjNdee80FQ3Q55ZRTrKWlxe6//35f26QAW2NjY5+/z1lnneWCgG1tbYH7FORRMPf//u//7IQTTnBBp/vuu6/T1znvvPPszDPPtCuuuMKOPfZY27p1qz300EPtgkUK2E6cONFOPfVUF4zab7/97Oabb97utfQdeN+HLp999lngf5WVlfbvf//bvv3tb1u0TvinoKACZF0xZswYe+KJJ+zNN9+0Aw880O666y6788477bDDDuvztg4U3/zmN+0vf/mL7bvvvjZixIgevcbpp5/uTlTod3vOOefYoYce6n4LGRkZ7nfUE1/72tfspz/9qf3mN7+xr371q+5Eh35TQ4cO7fA5yphXNrqeozZoPdHvUW0JNXnyZNduvW6o3/72tzZu3Dj73ve+59aVF1980Z0w2X333d3/S0pKLDY21i6//HL78pe/7LYZZ5xxRtj3AQAAkYWgLQAAGDAUHFWwRZfPP//cBbUKCgpsyJAhgcdcddVVLvClrLJ33nnHfvKTn1h8fHzg/7vttpsLjikDUpmkCnLsueeegf9/4QtfsKeeeiqQ/Xb99ddbSkpKh20KLo/gZaAeddRR7j30Gv/85z9dhmCw7r6HPp8CeXotj4JMCmIp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R5ecZsPTCtz1NTUrXYYtAAAAACCyKWA7d8Zsv5sBoA94GbUjR450mbaKVylYqxgZECrWfNLU1GSzZ8+2Qw89NHCfVthDDjnEPvjgg7DPSUlJsdbW1u0KNHvPxTaTR+xve+Uf5K43tNTbE/PupoYtAAAAAACAzxm2BQUFLoal8qCzZs0iYIvILI+gsgV33323W0lV7uC8885zBZgffPBB9/977rnHFWK+7rrr3O2XXnrJzj//fPvss88C5RGUffviiy9uF8yNVrmp+TZ9/OmB2zMXPWgb6tb42iYAAAAAAIBoV11dbeXl5bZlyxarrKz0uzmIcL4GbZ966inLzc21q666ykaMGGFz5syxE044ITA5mYoxBwdjVbdWJRCuueYay8/PdwWaFci9/vrrffwUkV3H9rN17/ndLAAAAAAAgKiTk5NjY8eOdeU9Gxoa3H1lZWV+NwsDhO8Tkd17773uEs4xxxyzXSmEm266yV2wvaNKTrUR/61ju7Zmpb1Y+giLCQAAAAAAoB/Fx8dbUVGRm7dJRo0aZaWlpXwHGBg1bdG79hy+n03LP9hdb2xpsMfn32NNrdE3ARsAAECkOOecc9xIMtWse+2112zatGmdPl6lwj7++GM3Ka8ycm688UZLSto2ggoAAAwMQ4cOtalTp7qArUaLr1q1yk02Bgy4TFvsvNyUPJs+IaiO7eIHbcPW1SxaAAAAnxx//PF2ww032IUXXhiYu0GlwRS4VYmvUCeddJL97Gc/c/M3vP/++1ZSUmJ/+MMf3MGeSokBfsqemmMjpxdabFIcX0QfSshKYPkCA1hCQoIVFxe7oK3U1ta67Nqamhq/m4YBiqDtIKljmxSX7G5/svpN+3Ttu343CwAAIKpdcMEFdv/999tDDz3kbit4e+SRR9oZZ5xht91223aP33fffe29996zJ554IlDv7sknn7S9996739sOhFLANjkvhQXTT1obWljWwACUl5fnAraam2nlypXuopOvQE8RtB3gjir5po1IL3TX19ausheoYwsAAOB7ps2UKVPs1ltvDdyng7Y33njD9tlnn7DPUXbtySef7DJxVSJBk5YcccQR9uijj3b4PomJie3KJ6Snp/fyJwG28TJs21rbrKmqicXSxwHbipkrWcbAAKQgbUpKivu7detWv5uDQYCg7QA2afi+Ni3/i/+rYzvvburYAgAA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LdbQ0GB1dXW2ZMmSwMRjABCRQdvzzjuv91syAI0OqmdbXk2N3x2Zt/5je3L+HwnYAgCAiKTEhBEjRrgsqmB77rmnrV692rd2AQD6T0xMjNsXeNm0ra2tNmfOnO1GGANARAZtPco4GD9+vLu+ePFi27hxo0VjPVsh07Zz8zd8Yk/Mv9da25hREwAARKa///3vdv3119u3v/1ta2trc0Nh9913X/vlL39pjzzyiN/NAwD0sYyMDCspKbHU1FR32wvcErAFMGCCttqA3XLLLXbqqae6zqxo5kR1Zn/yk5+4YQODXYzFWGHGOHe9qmGTVTdU+t2kiLKpbp21trVabEysLdgwy56Ydw8BWwAAEPE1bW+99VabP3++m2jmgw8+cH+feOIJu/nmm/1uHgCgjyiuMWbMGMvPz3eZtiqBQBkEAAMyaHvDDTfYQQcdZKeccoq99957gcnJ1JlVJsLFF19sg93wtAJLik9218urlvjdnIhTWb/B/jbndstIzLa56963FjJsAQBAhFMm1Y9+9CPXp1V927S0NPvss89cDUMAwOCdaEzZtcnJ247v165da8uWLXOJaQAw4IK2X//61+2MM86wt956K3DfK6+84jJs77///qgI2o7OLAlcX0k927CWVs7rvy8EAABgJ+23334uIWHlypXuAgAY3AoKCmzs2LHuen19vTtJt3nzZr+bBQA9D9qmpKTYunXrws6sq/9Fg8LMbaURpKy61Ne2AAAAYOfNnDnTKioq7Mknn7THHnvMFi5cyGIFgEFMAVpNNKbatWVlZWTXAogo2wrSdpPqe1111VWWlJQUuE9DCa644gr3v2gwKmtbpm1Ta5OtqSnzuzkAAADYSRMmTLA777zTlQF7//333agylUsYOXIkyxYABoGEhAQ3obqntrbWPv74Y8ohABg8QdvLL7/cDR9bsGCBPfvss+6iCRs0u67+N9ilJWbY0JTh7nrFluXUax1EJgydbCft+n82LntXv5sCAAD62aZNm+zee++1I444wiZPnmz/+Mc/7LTTTrO5c+fac889x/cBAAPYsGHDbOrUqe4EnSZX9zDhGIBBVR5BAVpt7E4++WS3wRMNI3v88cddHZjBLitpSOD6ymomphgMYi3WDht3vB006qvu9oj0Qrvzw2v8bhYAAPDJihUr7De/+Y0L2F599dUu+xYAMPAkJiZacXGx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4xlnnGGrV6+2b37zm7Z8+XJ7773unbA8/vjj7YYbbrALL7zQPvroIzdq7amnnnKB2w0bNnT4vNGjR9svfvELe/vtt3vhEwGIFikpKVZXt+1YYOPGjTZ//nzbtGmT380CAPQQQVtggFId2SPHnWQj0gsD9xVlT7QFG2f3+DWLsndxwdpxObu2u39LY5W9W/6Kfbj6DWts2TYRoYK2XTE6a7wdUPgVmzh0isXGxPZKaQUAAPrC1772Nbv33nvt8ccftz333NOSkradZMzMzLRLL73UTjzxxG693gUXXGD333+/PfTQQ+62grdHHnmkCwbfdtttYZ8TGxtr9913nwv2HnDAAZaVldULnwzAYKaJxUpKStwk4Z988ok1Nze7+wnYAsDAFhHlERg2hminsgMThuzpasfuyPDUkXb6pAvt23te1C5g614naHKw7pgwdLKdPfVK++7kS9sFbDfXb7TnFz9kt79/hb298uVAwHZHYmPibI9h+9j3p15tZ0253GXTegFbvcaHFW/0qJ0AAPSln/zkJ3bRRRfZj370I2tqagrcrwzbyZMnd+u1NEv7lClT7PXXXw/cp1nb33jjDdtnn306fN4VV1xh69evt7/97W9dmmQoIyMjcElPT+9WGwEMbEp+GDVqlNs+aRug22lpaX43CwAwWDJtGTaGaDc2e6JNLzndhqXlW1NLo/363UusPkyJg7SETPvy2K/bXvkHt8tYVX3ZpPjkHr23sl+/NPZrlp8+ut39G7ausTfLXrQ5696zlraWLr9eclyKTcv/ou1bcJhlJW+bpdZT3VDpyip8vPo/1tBSb18YeWiP2gwAQF8ZP3582JIEqgnZ3YzXoUOHunqSCsAGU23bCRMmhH3Ofvvt57JwDzzwwC69xyWXXGJXXnllt9oFYHDQSRpl13pBWpVDWLp0qTU2NvrdNADAYAnaMmwM0So9IdOOKD65XV3YhLhEG5Iy3CpqVgTui49NsAMKj7CDRh3VLjirLNhXl/3d0hOz7KvFp3TrvUuG7GFfHvN1K8gsanf/mpqV9p+y523e+o+szdq6/HoZiVl2VPE3bWr+QZYU1z6AXLFlhb278p/2+foPAwFgZeICABBp1q5d62ZbLysr267OrWra9nUARqUZlOXb1SHNt956q915553tXmPhwoV92EoAkWDMmDFWUFDgMms1KkDB2s7qZAMA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WK3APXr0qHzzzTfSqVMn92O1eOG1116T7du3m+fYsmWLiYG9tUfQbUrjYl2v8XPB6tU//vGPsm3bNvO6nt5//32TZHXp2rWrrFq1yrzmjz/+KCNHjjTJ2AvJzs424/VYa9yusXbHjh3d2zVpPWXKFHf8vn79+nyJdq3WffDBB6V79+7uqt02bdqYbVdddZX885//NK0sdu/ebfZXK4sBlF4kbQEgQDRt2lRuueUWycrKMsvDhw+XBx54QIYNG2bWa5D5j3/8Q26//XazXasXNKDWAP53v/udtGvXTt577z13sBkdHW2Cvc6dO8udd94pKSkpMn/+fLMeAAAAwUETps8995yJF5944gm544475C9/+YvP8e+8844cOHDAJFU1fkxISHDHn/rlf2JiovznP/+R1q1bmwSoJnE1qXo50tPTTUwaFhYmgwcPlvj4eBkzZozcdtttsmzZMvnggw+kQYMGZqzu829/+1vp37+/qdZ99NFHffbg1X1WGvtq24SHHnqo0BhNpFauXNkcBxdtYaCJYi12ULof06dPN8nlVq1aydChQ02bh2efffaS36MmVDXGzszMzJe01WOr70Wf969//av8+c9/dlccv/nmm/Lxxx+bxLbuv96+//57c5w++eQTOXv2rNx1113ym9/8RtLS0sxcaFIbQOlEewQA8CMNyjSw00BNKxHsdruMGDFCIiIiTNJWK2vXrl1rxu7atcsEmI888oipLhg4cKA5FU1Px9Jv/dWOHTvcz62VA56GDBliKm7123xN9gIAAMB6caOLJv40OaitCFw02akJ27/97W/5qlU91apVyyQPf/75Z7OsX+y76GM0sel6Tt2mCeEvvvjCFBJoscDFaDJW49UNGzaYJORTTz1l9keTlUrbgGlCVZO5Gu/Wrl3bvI5WCyuNV31xtYM4ceKEz7YJ2ldXj03v3r1NFbHSmFqvIeGKj7WqVpPVrupcjbNfeuklc32JV155xefrX3vttWYONCFdtmxZd/Wsi8bkEydOdC9rxawmbzVpq0lZTcRqQluvYeG5/7///e9NwleT2y5aoavHom3btrJ8+fKLHHUAwYikLQD4kQaOGhzrKWd6apsGelrZoG0P9LQ2rRTwpMlcPd1KXX/99Sa4dSVsC4qLi5OxY8eaQE8vBKHBpb6OBuoAAACwZtzooglAV/Wprm/cuLHExMSYYgBNKOrt/PnzhZ5Hz976+9//bhKFrlP8tZ2W0n60mpjs06ePe7y2GdA4sm7duqaFgTcVK1Y0yUxNPGohgsaomqzV/alZs6Z89913+cbrsrZpUHPnzpVPP/3UJHmXLl1qigt+bZJSE8+amNbjopWw+n40aaxVya73qRXEWizh4krE+jpuShPd999/v0m66vHTeFyrdT1pYYVWAGsyWo+Fxu9JSUkX3F89FnpROc+kvNLHu1qfASh9SNoCgB+dO3dOfvnlF3Nfqw1Wr14t/fr1Mz2/lFYIaM8sT64KB1/BpIue8qWnhmkPMa260IBVA2ENHAEAAGDduNHzFH1NUM6cOdNU2KampppkpFbKasznLV58+eWX5aOPPpIuXbqY0/BHjRplztzSPrdaNDB79uxCiciLVcBqb1atntUeu9rXVqtJlSZtL0b7yWoSVfdFE9Da11WTyX/4wx+kqLQyWJPN+h41GaytHjwrYvV9akXsZ599Vuixrn33RuNp1xyMHz/eHEd93gkTJph1vXr1MvdHjx5tzpbTSmM92+2mm2664P7q/mzatMm0higoUC42B6DkkbQFgACh3/xPnjzZBJB6ETENGPUbem2F4M1PP/1ket5qNYW3alvta6annC1ZssR9cQOtuAUAAEBwaN68ualu1cSrq4rU1T/1QrSllt606nbWrFmmMlSTtppAveaaawolhy9Gk7XeHnPmzBlTPaqJZM+YVpf1Il2e47R/q9606lZbCWgfWk1Ce3L1j73YBcO0yEETslphqxWsWiGr781F7zdq1Oiy32dBr776qnkd7ROsyWp9X9qjVpddClbK6nsouP+6P5rw1Qu16bEAAMWFyAAggGiAqn1ttdpBT1vTSgi9KIIGezfccIM8/vjjZlnNmDFDypcvb6oh9Iq/2j9MT9fSCxoo7Q2my3qqnH67r8GjVmgAAAAgOGjSUStq9WJeV199tYn9tJ+sL3q6vV5UTK9xoMUB+iW/Fgts27bNbNc+r7pOx2j1q8aXXbt2vewLkXnSNgV6oa+ePXuaOFUrVPW5p02bZrZri7D77rvPJFF1e48ePUwCVHvTFqRJTY1n9aJi2gpMY2FftAJZK231LDbXBchc9AJhWvygvW21LZnGy5o01dZil0OrabWQwtVmQeNvjcv1AmX6XvTia3p8PekZcNqCQrfrWXFagKH7pz139SLCeg0LbUWhczRp0iTTXgJA6UTSFgACiCZsNRmrga1W3Wqgpr24fvjhB1N5oIGnXijBdQGG7t27S3R0tCxatMhcaEEvRuGqutULGWh/sa+//to8p57mpoEuAAAAgsOWLVvM6fkaO2qfWK0sfeGFFy4Ya2qiUNtoaduAd99911y0y3XxLE1AapJWE4raW1bjSD3Vv2C7rsuhyVmt6NULfek+asJVk8uuC6BpC4Gnn37axLIrVqwwLR80ieuqHC64/3phNC1w0P66muT0RZ9PK3U1IattDDwtW7bMHKuOHTuaVgy6rMljTaheLn1v2spBz2rTqmWtvNWiCn1OPdaeVbdK2z9olbPun8b1Wp2rbSz0QnP79u0zPX419tfn1d65VN4CpZctJiam8CchAAAAAAAAAMAvqLQFAAAAAAAAgABC0hYAAAAAAAAAAghJWwAAAAAAAAAIICRtAQAAAAAAACCAkLQFAAAAAAAAgABC0hYAAAAAAAAAAghJWwAAAAAAAAAIICRtAQAAAAAAACCAkLQFAAAAAAAAgABC0hYAAAAAAAAAAghJWwAAAAAAAAAIICRtAQAAAAAAAEACx/8DFiwDemcVbdAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "auc_v2, ap_v2 = plot_pr_roc(\n", " test_y, test_proba_v2, title_suffix=\"— v2 (3-layer + BatchNorm)\", color=\"#9b59b6\"\n", ")" ] }, { "cell_type": "code", "execution_count": 17, "id": "bb1ab9ca", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABjMAAAIDCAYAAABB8eztAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAaZFJREFUeJzt3QeYVNX5OOCDIqg0uyhqFAsx9qhobBgxasTee2IXYyd2o9FYo1iJLaImCGqMXdGo2HuLBQt2VFSwoIAFLPyf7+Q/+5tdFthddncuu+/7PPPszsydO2funYV7zne+87Xp1KnT5AQAAAAAAFBQs1S6AQAAAAAAANMimAEAAAAAABSaYAYAAAAAAFBoghkAAAAAAEChCWYAAAAAAACFJpgBAAAAAAAUmmAGAAAAAABQaIIZAAAAAABAoQlmAAAAAAAAhSaYAQAAjWixxRZL48aNS8cee2xF37MS7ajk+1J3d955Z3r55ZcdMgAAZiptK90AAABmXosvvng6/PDD09prr50WWWSRNHHixDRmzJj03HPPpcGDB6dHHnkkzcxiUL7kp59+Sl9//XX67LPP0vDhw9PQoUPTjTfemL777rtGe79ddtklzTXXXOniiy9ORRYBi1133TXdcccdhR8U79WrV9pzzz1Tz5490/zzz58mTZqU3nrrrXTfffelgQMHpo8++qjSTQQAAOpAMAMAgAZZZZVV8oD+999/n6677rr02muvpTnmmCMtueSSaYMNNkgTJkyY6YMZ4cUXX0wDBgzIv8fnW3TRRfPnu+SSS9KRRx6ZdttttxzcKHn//ffzoPkPP/xQ7/eKAEEECuobzJiR92yIaGNkXowcOXKKYEZzt2Vq2rRpky644IL0+9//PrfzhhtuSG+//XZq165dWnnlldO+++6bn4vva2uz1VZb5eMDAAAzE8EMAAAa5JhjjkkdOnRIa621VrXB/JIFFligIke2Y8eOOZDSWD7++ON0/fXXV3vsL3/5Sx4QvuKKK3J2xhprrJG+/PLLqucjQ6W5P2tzvWddFKEtxx13XA5WRBDjgAMOyEG3cscff3z+DrcWs8wyS2rfvn369ttvpzgWAAAwM1AzAwCABokZ7Z9//nmtgYwQy03VtO666+bB5ffeey8/X8p6mGeeeaq2mXXWWdNhhx2Wnn766bxNbBtLVv3iF7+Yam2GbbbZJj300ENp9OjR6eyzz67aZv3110+33HJLzhaIfT3++ONpr732apQzHvuNmf8LLbRQnuVfW7vK7bzzzumBBx7IbYkASXz2CIbMO++8+fnIcIjj87Of/Sy/vnRbZ511qtU5iKW9/vnPf+Zsg9ISSdOrU7Hddtvlzx7H4JVXXsnbxXGuSx2FmvuOpbAiIydceumlVe2M10+rLQ05r5tsskl68MEH8/ZvvPFGDiLVbHdt5ptvvnTIIYfkY3TggQfWOnj/1VdfTdHGeO/LL788L0P16aef5nN04okn5oyccvG6aGOPHj3SmWeemdv2ySefpNtuuy0ttdRSeZvNN988Pfzww/k7Gcc1Ais1xT4iwye+p8OGDcv7ePPNN9NZZ52VA4Xlunbtmk477bT06KOP5s8VxySOZRzTCFSUi3MU+479HnXUUflzxOfZeuutp3quf/7zn6d//OMf6fXXX8/bRjtiGbGNN9642nbxt9q/f//06quv5iXX4mfcL/8bLm/Deuutlw4++OCqNjz//PP5OQAAqC+ZGQAANMi7776blllmmTxoe/vtt093+6hbcN555+UB+KhVEIP6sWRTDFh369YtffHFF3m7GODfdttt0/3335+3iwyPCBZEjYPY9qWXXqq23z59+uSZ9/G6K6+8Mo0fPz4/HoPH559/fnrmmWfSOeeck7755pv061//Oj+2xBJLpD/96U8zfOZj8DeWmooB3/IgSk077bRTuuyyy9Jjjz2WTj/99Dw7PmqM/OY3v8lLMkVQKLIE/vznP+fgRvkg+4gRI6plYkQg4amnnkqnnHJKfu30/Pa3v019+/ZNf//73/MAeNyP/cexj4H++oqgSHzW+NxxvJ944ompBq/K1fe8brTRRmmfffbJ7zFo0KB8ng899NCcAROD59MS5yMCELH8WV2zROJ4RLCpc+fOua2xJFUEkv74xz+mNddcM3/Pf/zxx2qviXMamTHRngigHHTQQenmm2/OQYc4P/E5r7nmmrT77runCy+8MAcKnnzyyWr7WGmlldKWW26Zv0vXXnttDmjF+Vp22WXz45MnT87bLb/88rkNEWCIv73ZZpstbbjhhvl9IsAVQY2aTj311Lzd1Vdfnf8uIkhTmwhExH5DHO/424zvYSwlt9pqq6X//Oc/+bk4NnG+unfvns9JBChWXHHFtPfee+egRfx91cyKOumkk9Ls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AABAoQlmAAAAAAAAhSaYAQAAAAAAFJpgBgAAAAAAUGiCGQAAAAAAQKEJZgAAAAAAAIUmmAEAAAAAABSaYAYAAAAAAFBoghkAAAAAAEChCWYAAAAAAACFJpgBAAAAAAAUmmAGAHWyzjrrpHHjxuWfM5tddtklt32VVVZJRXTJJZekl19+udpj0d5jjz22Ym0CAICZvR/Q0i222GL53Bx88MGVbgpAsxDMAGhkCy64YPrzn/+c7rjjjjRq1KhCXPi3adMmD+hfd9116dVXX00ff/xxevLJJ9ORRx6Z2rdvX9G2AQBAS9CrV6/0t7/9LT3//PPpk08+SS+++GK66KKLcv+gkn73u9+loUOHprfeeit9+umn6aWXXkoXX3xxHgin/oGD8tuHH36YHn300bTffvulWWZp2BDb9ttvnw488MAmPxUxUSraHN+DOeaYY4rnY3LVv/71ryZvB8CMaDtDrwZgCksvvXQ64ogj8kViBA7WWGONih+lOeecM1166aXp6aefTldeeWXuxPTs2TMdd9xxudO12WabVbqJ1DD//POnH374wXEBAJhJnHzyyWnuuedOt9xyS3r77bfT4osvnge5N9lkk7T22munMWPGVKRdK620Uho5cmQOaHz55Ze5XRHgiHattdZaOfBC3d1www3pnnvuyb937tw5bbTRRumcc85Jiy66aPrTn/7UoGDGsssumwNMzWGBBRZIe++9dxowYECzvB9AYxLMAGhkL7zwQvrZz36Wxo4dm7bccstCBDMmTZqUNtxwwxzMKPnHP/6R3n///XT88cen9ddfPz344INpZhYBm2+++Sa1FBMnTqx0EwAAqIeYKPTEE0+kyZMnVz123333pbvvvjvtv//+6S9/+UtFjmdMtKopssgffvjhtPPOO6fzzjsvtaZ+QCzxGlkWffr0aXB/7/rrr6+6//e//z098MADOSjRkGBGc4uMoUMPPTRdccUV6bvvvmuylQHatWunTwM0OstMAdRBBCUiJTdmVNW055575udiNk2YMGFCDmQUyffff18tkFFy++235589evRo0H5/9atf5aDIK6+8krM9IhPljDPOSLPPPnvVNrvuums+PiuuuOIUr+/Xr18+VgsttFDVY6uttlq66aab0gcffJBnicUMspoBoVKKdLR74MCBeabZf/7zn+m2N9Kpzz///PTee+/llPDLLrsszTXXXNW22XTTTfNsqxEjRuTPFBf7Rx111BRp40suuWQaNGhQevPNN/Msu9deey1dddVVeXZWuR133DE99NBDafTo0bmdsU23bt2m29aaNTNKn7l79+65AxaBqDhGMYOrtjTxhr4vAAAN6wc8/vjj1QIZpce++OKLtMwyyxTqsMa1ZOjSpUur6Ac0tegP1Myqrku/4s4778wZMjEZrrR0VXktvVgSOD5zLF0W7/HGG2+ka665Ji2xxBJTtOH3v/99fo94r5io9stf/rLWtp511ll56bPIzqhLoOi0007L5zf2+9xzz9VanyPaHdkpO+ywQ3rqqafSZ599lifTlWoXrrnmmumvf/1reuedd/J3L/pks802W/7+RZ8szmPcTjnllOm2CWjdZGYA1EFcII8fPz5ts8026bHHHqv2XDwWF3cxmD2zKa3f+/nnnzfo9VtvvXW+wI2ORHTSVl111TzrbOGFF86p6+HWW29N/fv3zxe2sT5vuXjskUceyTU8wnrrrZduvPHGPNvpzDPPzJ3B6ATFzLG4yI+L53L//Oc/cwp/XPTG7J/piQvsr776Kne0YjmwuICPdPDoaJTE+0VAKtKuv/7669ymE044IXXq1KlqplVceEdHKzoXcfEdAYP4zNHGuCCPC/bwxz/+Mb/25ptvzm2db7758vG566670rrrrpvbUl9XX311vtCPZQxiyYDotETH4qSTTqrapineFwCgNZrRfkCHDh3yraHX241pnnnmyQPpcf179NFH58di8ktr6Ac0pvjccSxDTGT6zW9+kwfuzz333Grb1aVfEf2T2EdMOipNZIrXhDhXUcPi17/+dfr3v/+dJzR17Ngx348A2rvvvlv1XpEVEvuNJYXj2B122GE56BGBpJpBlgiwRbAjtonzN63sjKi5GO2O4x1Blt69e+fgRpzn8olXIbaL78Xll1+ev+8RtFhhhRXyc2effXYOxpx++ulp9dVXT3vttVfuk0SwKiaZxXmM5bqiTfH3dO21187gWQJaKsEMgDqIC7xID4+ZWVE0+6effqpabzSKe8fg+Mwo0ovjIvLee+9t0OtPPPHEahe/MdAes21iYH2RRRbJF6ZxMR4zjrbbbrt80V6arRYX1nERfsEFF1S9PmboRKcmOoYlcUEes3vitVtttVW19x8+fHidZhSVL7e1+eabV13QxwX2qaee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LT6YURKBjNbW2QIAABqfvgUAADQ/BcABAAAAAIBCE8wAAAAAAAAKTTADAAAAAAAotFZTMwMAoKjmmGOONPfcc6c2bdpUuimQTZ48OY0dOzZ9++23jggAwExG/4KW2rcQzAAAqJAIXmy33XZpzTXXdA4opCeffDL9+9//zh0QAACKTf+Clt63EMwAAKiQUiDjjjvuSO+880764YcfnAsKoW3btql79+5ps802y/dvuOGGSjcJAIDp0L+gpfctBDMAACqU+l0KZDzwwAPOAYUzcuTI/DM6HfE9teQUAEBx6V/QGvoWCoADAFRA1MgIkZEBRVX6fpa+rwAAFJP+Ba2hbyGYAQBQAaVi35aWoshK30/F6QEAik3/gtbQtxDMAAAAAAAACk0wAwCAJjFq1Ki08cYbF/bo3njjjWmrrbZKrdFss82WnnzyybTiiitWuikAADBd+hbF1Zx9CwXAAQCKpne/5n2/Yf3r/ZL5558/HXLIIal3796pa9eu6fPPP0+vvPJKuuKKK9Kjjz6aiu43v/lN/gy33nprk73HDTfckNZaa60pHh82bFjaY489pvv61VZbLQdcRowYkTbaaKNqz8UxP+6449IGG2yQZp999vTee++lI444Ir300kv5+d/+9rdp9913zx2KWJM2Xh/np+T7779Pl156aTr++OPTjjvu2CifFwCAAtK3aHL6Ft83W99CMAMAgHpZZJFF0i233JLGjRuXTj311PT666+ntm3bpvXXXz+ddtppqVevXoU/onvvvXe6/vrr0+TJk5vsPfbdd988S6kkggr33ntvuuOOO6b72s6dO6cLLrggB4Yi6FKuS5cu+fg//vjjabfddsuBpCWWWCJ99dVXVdvMOeec6emnn0633357Ouecc2p9j5tvvjmdeOKJaZlllklvvPHGDH1WAABoCH2LutG3+B/LTAEAUC+nn356/tmnT580dOjQ9M477+TB8MsvvzxtvvnmU33dwgsvnGfsvPrqq2n48OHpyiuvzJ2XkpVWWilde+216eWXX06vvfZa+ve//52WX375KdLLd95555wB8tZbb+XB/pgJVR/zzDNPWnvttXNgobH3Xe7LL79Mn376adVtvfXWS99++20OMEzPmWeemQMWzz333BTPHXjggemjjz7KmRgvvPBC+uCDD9LDDz+cRo4cWbVNZHScf/756ZFHHpnqe0Tw49lnn01bbrllgz8jAADMCH2LutG3+B/BDAAA6myuueZKv/71r9PVV1+dB+ZrimyN2kTmxuDBg9OECRPSNttsk2tVfP311/mxUvZCx44d89JM8VwERd599900aNCg1KFDh2r7ikH8CAhsuOGGecmmAQMG5HbVVc+ePXPb33zzzSmem96+I2gzrVsEIaZmp512ysta1Xbcyu2www5pscUWS+eee26tz8eSUbGc1GWXXZZefPHF9J///CftsssuqSH++9//5uMBAADNTd9C36K+LDNF066z14A1uAGA4lp88cXTLLPMkjMX6mOLLbbIr/vjH/9YLXAQGRi/+tWvcmbBY489Vu01Rx11VNXz9913X9Xj//rXv6pqXUTwYJ999kkrr7xyevDBB+vUlsgGiUyJ2paYmt6+a9auqGn8+PG1Ph77WHbZZat9/trEclFRCyMCPj/++GOt20SgI+ph/P3vf08XXnhh3vcpp5yS62BEMKg+Ro8eXS07Blrkut/6JABQSPoW+hb1JZgBAECdtWnTpkFH6xe/+EXurNSszdC+ffv8eAQz5ptvvhzAiKLZ8847b5p11lnTHHPMkbp161btNRHgKIksh8gGidfWVRTMnjhxYq3PTW/fUWi7IWL5qlheK5aFmpoI9kQmSP/+/fPSXdPaLjIzSlkgUdi7R48eOcBR32DGd999l48xAAA0N30LfYv6EswAAKDOYumnn376KS211FL1OmqxVFQMwB988MFTPBcFrEPUeIgi2VGU+sMPP0yTJk1Kt912W7Ui2iEyEMpFhkUM8NfVF198kYto12Z6+55eoeybbropHXPMMdUei2BBZKZMrRB3SSyzFVkWUSckCquHeO+4RT2MWEoqslfGjBkzRTsiU2bTTTdNDUntLx1/AABoTvoW+hb1JZgBAEC9Cs/Fkku///3v08CBA6eo/9C5c+da62ZEUe+og/HZZ5/luhm1WX311fMSS/fff39VwfDI0GhsUXx8gQUWyAGNKIJdHw1ZZio+d7t27XKgY3qv3WCDDao99rvf/S4XK99vv/3S+++/nx975pln0pJLLlltu+7du+cC5vX185//PGd2AABAc9O30LeoLwXAAQCol+OPPz5nC9x55505GyDqPESmxl577ZUzKWoTA/ljx45NV111VS44veiii+ZaGFHrYaGFFqqambXtttvmfa2yyirpoosumm6x7IYGMyI7I4In9RXLTE3rVluWQxT+jiLd8fmnJbJARowYUe0WwZ9YEit+Lx2LqJXxy1/+Mme5xBJdUTB91113zUXZyzMulltuubTMMsvk+xH8iPvzzz9/tfeMc/HQQw/V+zgAAEBj0LfQt6gPwQwAAOolMgQ22WST9Pjjj+cloYYNG5auu+66tM4666Rjjz12qrUZoqh1ZA9cccUVObsjll2KmhmlbIZ+/frlbIm77747F7a+8sor82B+Y4tlsq6//vq09dZbp6YWQYQ11lgjXXvttbU+H0XQn3zyyXrt88UXX8yFybfccst87A877LB00kknpZtvvrlaBsk999yTBg0alO9fcskl+X7U1ShZddVVU6dOnXJQCgAAKkHfou6W1LdIbTp16jQ5tWDRQYtOcxRFnNqSBtRD7371O1zD+ju8AFCLKGodA9nnnntug5YHYsZEhsIDDzyQNt5444oe/6gTEhkZhx9+eLO/dwQ4oih5ZMDU93sa9T0iWySer21prZZK32Im7I8EfRIAWgH9i8rRt0gz1LeoT/9CZgYAAK3Op59+mjNB4mK5kmKprbPPPrvZ3zeKqr/++ut5yaqWIjpGkfETHaO33347DRkyZIpC9ZGFEjVdym/nnXdexdoMAMDMT99itmbrWygADgBAqxR1LCotlqCqhO+//z5dcMEFqSWJZc4uv/zy9Pzzz6e2bdvmpbduueWWXBfkm2++qdou6racdtppVfeboi4LAACti77FBc1ynAUzAACAmV7UZCl3wAEH5KLyK6+8cq7vUh68GDNmTAVaCAAAzAjLTAEAAC1OFJMPY8eOrfb4DjvskIMcUXg9sjfmmGOOCrUQAACoD5kZAABAi9KmTZt05plnpieeeCK99tprVY/fcMMN6YMPPkgff/xxWn755dPJJ5+cll566bTbbrvVup927dql9u3bVytMCAAAVIZgBgAA0KL0798/LbvssmnjjTeu9vjVV19d9furr76aPvnkk3THHXekJZZYImdr1BRF4o899thmaTMAADBtlpkCAABajHPOOSdtsskmabPNNksfffTRNLd99tln88/u3btPNSjSrVu3qluPHj2apM0AAMD0ycwAAABaTCAjghh9+vRJI0eOnO72K6ywQv4ZGRq1mTRpUr4BAACVJ5gBAADM9M4999y03XbbpZ133jmNHz8+LbDAAvnxcePGpe+++y4vJbX99tune+65J33xxRdpueWWy3U1Hn300fTKK69UuvkAAMB0WGYKAICZ1nnnnZcGDhxY79ets8466cEHH0yzzFLsy+Hdd9+9Wp0Hpm6fffZJc801V7rrrrvSW2+9VXXbZptt8vORYbH++uunW265JS8vdfrpp6dbb7017bjjjg4rAAD6FjMBmRkAAAUzcPOuzfp+e99e+xI70wog7LDDDlM8vvbaa6f33nsvzQyOP/74dMEFF6Sffvqpyd+rXbt2uch0ZAJstNFGVVkA7du3z5kBsdTR0ksvne6777609957V3vtddddlw499NDUs2fP9PTTTzd5W2dmnTt3nubzo0aNSptuummztQcAoAj0LZqevkXzKfZUNAAACun+++9PK6+8crXb+++/P8V2s802Wyqa1VdfPf3sZz9LQ4cObbbOTW01GSIrJJY/uvLKK9MjjzxS62u///77nElQM8gBAAAthb5F3R3fyvsWghkAANRbLNnz6aefVrtFlsMNN9yQTj311HTyySenl19+OQ0ZMiRvv99+++XMgzfffDM988wzeYmfOeecs2p/RxxxRK5lUHPZoCeffPL/LlxnmSWddNJJ6dVXX03Dhw/PF/Jt2rSpd9u33HLLfIE/ceLEKd5/2223ze/52muvpYsvvjh16NBhhr4dv/71r1OvXr3SX/7ylyme+/bbb9Oxxx6bj1Ecv6m59957029+85s0++yzz1BbAACgiPQt6ubX+haCGQAANK4oshwdkq222iodc8wx+bEIdJx44on5Avywww7LS1KdcMIJ9drv/vvvn/fdr1+/vO+oj7DJJpvUu31rrLFGevHFF6d4PLI1Nt544/S73/0u39Zcc8100EEHVT1/8MEHpzfeeGOat4UXXrhq+/nmmy+dffbZ6ZBDDsmBi4aKtrZt2zatssoqDd4HAADMjPQt/kff4n/UzAAAoN423HDDPHhf8sADD+RgQ3j33XfTaaedVm37K664our3Dz/8MP31r3/N9SKOO+64Or9nZGoMGDAgF3gOESiJgs711a1btzR69OgpHo/Mj8MPPzx9/fXX+f6NN96YC4WfddZZ+f6gQYPS7bffPs19l+83aovEa1566aW0yCKLpIaKdPFx48bN0D4AAKCo9C1qp28xJcEMAADq7fHHH89LJJV88803Vb/H4H1N6667bs5yWHLJJVOnTp3SrLPOmuaYY468dFIM1k9PvKZr167pv//9b9VjP/74Y85aqO9SU/Ge5UtMlXzwwQdVgYwwZsyYNO+881bd//LLL/OtLvbaa6/UsWPHdNFFF6XGEMcojhcAALQ0+hbTpm/xfwQzAACotwhevPfee7U+V3NJpcgouPrqq3OWQmQ5REAginCfe+65qV27dnmgPpahqhmUiKWVmsIXX3yRunTpMsXjP/zwQ7X7kydPztka5ctMxW1aIlPko48+ystorbrqqjlLpVwUHb/55pvzUlv1EUtqff755/V6DQAAzAz0LWqnb1GwYEYUWtxiiy3S0ksvnTuxTz31VF5L+a233qrapn379rlAZBRjjM7usGHD8uumVSQRAIDiWHHFFXNQIIqCR4AgbL755lMEGOaff/5qjy233HJVv48fPz598sknuW5EXDOGyO6IfUeh8fp45ZVX0jLLLFPvz1GfZab+9Kc/5aW0ShZccMF07bXXpr59+1bLLqmLqOURWRlR9BwAAFozfYvUqvsWFQ1mxBrEl19+eXr++efzzLuTTjop3XLLLalnz55VSxWcccYZuRDjHnvskdcKPuecc9LgwYPTRhttVMmmAwBQR5HBEZNSIj363nvvzVkZu++++xSp5VFn48ADD0x33nlnnoUUxcInTJhQtc3AgQPzUlWR7RCTX/bbb7/UuXPnep+HBx98MBcSrK/6LDMV2RnlSstXjRw5Mn388cdVj8eknjg2kXkRy1KVAjgRcCkvWB7HMF4LAACtmb5FatV9i//Lm6+AbbbZJg0ZMiS9/vrrORp0wAEHpMUWWyytvPLK+fnonEYQIwpDPvzww+mFF17IEac111wzd4IBACi+V199Nf35z3/OgYr7778/bb311nnCSrkITsQ13+9///sc8IgMjMsuu6zaNnE/inKff/756bbbbssX8XfffXe92xPLPEVmRtTvqLTI9rjnnnvyRJ211lor/x63cltuuWW+ZgYAgNZO36J19y3adOrU6X+5/gXQvXv3HLCICNFrr72W1ltvvXTHHXekRRddNH311VdV20Xg45JLLkl/+9vf6lQsctSoUalHjx7VZvbRQL371W/7Yf0dagCoRbdu3fLSmVE3Iq5VaF4nnHBCvk48+uijC33oI+jyr3/9KxdQj6W2ivI9jZleI0aMyM9Xol2Vom8xE/ZHgj4JAK2A/kXl6FvM+He0rv2LimZmlIuCj2eeeWZ64oknciCjtP7XxIkTqwUyQtTLWGCBBWrdT6TSRCejdIsDAQAA5S688ML04YcfTlF0vGjievjQQw9tVQEDAACYmehbtJKaGeX69++fll122VwfY0b069cvHXvssY3WLgAAWp6oxXbRRRelonvkkUcq3QQAAGAa9C2aTyEyM6Ko9yabbJI222yzasUSR48endq3b5+6dOlSbfv5558/jRkzZqpBkUhHKd1ieSkAAAAAAGDmNUsRAhkRxNh8882nqKIe9TMmTZqUevXqVfXYUkstlYuEP/3007XuL7aPNPzSTZ0MAAAAAACYuVV0mako9rHddtulnXfeOQceSnUwIjXnu+++yz//+c9/ptNPPz2NHTs2b3P22Wenp556Kj3zzDOVbDoAAAAAANAaghn77LNP/nnXXXdVe/yAAw5IQ4YMyb9H/YvJkyena665Jhf3HjZsWK56DgAwM/vpp5/yz7i+gaIqfT9L31cAAIpJ/4LW0LeoaDCjc+fO091m4sSJuah33AAAWopPP/00L4+5yy67pKFDh6bPPvvMgDGFMcsss6T55psv9enTJ39P4/sKAEBx6V/QGvoWFQ1mAAC0Vj/88ENePjOW29xtt90q3Ryo1dtvv50uvvji/H0FAKC49C9oDX0LwQwAgAr54osv8sVcp06dUseOHVObNm2cCwohlnmdMGFCrlkXvwMAUHz6F7T0voVgBgBABcXF3Lhx4/INAABA/wJqN8tUHgcAAAAAACgEmRkAAADMuN796v+aYf0deQAA6kRmBgAAAAAAUGiCGQAAAAAAQKEJZgAAAAAAAIUmmAEAAAAAABSaYAYAAAAAAFBoghkAAAAAAEChCWYAAAAAAACFJpgBAAAAAAAUmmAGAAAAAABQaIIZAAAAAABAoQlmAAAAAAAAhSaYAQAAAAAAFJpgBgAAAAAAUGiCGQAAAAAAQKEJZgAAAAAAAIUmmAEAAAAAABSaYAYAAAAAAFBoghkAAAAAAEChCWYAAAAAAACFJpgBAAAAAAAUmmAGAAAAAABQaIIZAAAAAABAoQlmAAAAAAAAhSaYAQAAAAAAFJpgBgAAAAAAUGiCGQAAAAAAQKEJZgAAAAAAAIUmmAEAAAAAABSaYAYAAAAAAFBoghkAAAAAAEChCWYAAAAAAACFJpgBAAAAAAAUWttKNwAAAIBWqne/SrcAAICZhGAGxeucDOvfFC0BAAAAAGAmZZkpAAAAAACg0AQzAAAAAACAQhPMAAAAZnpHHHFEevDBB9OoUaPS22+/nYYMGZKWWmqpatu0b98+9e/fP7333nvpo48+SoMGDUrzzz9/xdoMAADUnWAGAAAw01tnnXXS5Zdfnnr37p223HLLNNtss6VbbrklzTnnnFXbnHHGGWmTTTZJe+yxR9p0003TQgstlAYPHlzRdgMAAHWjADgAADDT22abbardP+CAA9K7776bVl555fT444+nzp075yDG3nvvnR5++OG8Td++fdNzzz2XVl999fTMM89UqOUAAEBdyMwAAABanC5duuSfY8eOzT8jqNGuXbu8FFXJm2++md5///3Us2fPWvcR23fq1Knq1rFjx2ZqPQAAUJNgBgAA0KK0adMmnXnmmemJJ55Ir732Wn5swQUXTBMnTkxfffVVtW0//fTTtMACC9S6n379+uUaHKXbiBEjmqX9AADAlAQzAACAFiWKfC+77LJpzz33nOH9dOvWrerWo0ePRmsjAABQP2pmAAAALcY555yTi3z/9re/TR999FHV46NHj07t27fPy0+VZ2fMP//8acyYMbXua9KkSfkGAABUnswMAACgxQQyNttss7T55punkSNHVnvuhRdeyIGJXr16VT221FJLpcUWWyw9/fTTFWgtAABQHzIzAACAmd65556btttuu7Tzzjun8ePHV9XBGDduXPruu+/yz3/+85/p9NNPz0XBY5uzzz47PfXUU+mZZ56pdPMBAIDpEMwAAABmevvss0/+edddd1V7/IADDkhDhgzJvx977LFp8uTJ6Zprrknt2rVLw4YNS0cccURF2gsAANSPYAYAADDT69y583S3mThxYurXr1++AQAAMxc1MwAAAAAAgEITzAAAAAAAAApNMAMAAAAAACg0NTNas97WCgYAAAAAoPhkZgAAAAAAAIUmmAEAAAAAABSaYAYAAAAAAFBoghkAAAAAAEChCWYAAAAAAACFJpgBAAAAAAAUmmAGAAAAAABQaIIZAAAAAABAoQlmAAAAAAAAhSaYAQAAAAAAFJpgBgAAAAAAUGiCGQAAAAAAQKEJZgAAAAAAAIUmmAEAAAAAABSaYAYAAAAAAFBoFQ1mrLXWWun6669PI0aMSOPGjUt9+vSp9vwll1ySHy+/3XTTTRVrLwAAAAAA0Pzapgrq0KFDGj58eBo0aFAaMmRIrdvce++9qW/fvlX3J02a1IwtBAAAAAAAWnUwIwIVcZuWiRMnpjFjxjRbmwAAAAAAgGIpfM2MddZZJ7399tvpueeeS+eee26aZ555prl9u3btUqdOnapuHTt2bLa2AgAAAAAALSwzY3ruu+++dNttt6WRI0emJZZYIp100knpxhtvTL17904//fRTra/p169fOvbYY5u9rQAAAAAAQCsMZkTgouTVV19Nr7zySnrppZfSuuuumx566KFaX9O/f/80YMCAqvuRmREFxgEAAAAAgJlT4ZeZKvfee++lzz77LHXv3n2q20SB8PHjx1fdJkyY0KxtBAAAAAAAWnEwY+GFF841Mz755JNKNwUAAAAAAGgNy0x16NChWpbF4osvnlZYYYU0duzYfDvmmGNyzYzRo0fnmhmnnHJKeuedd9KwYcMq2WwAAAAAAKC1BDNWWWWVNHTo0Kr7Z5xxRv45ePDgdPjhh6fll18+7bLLLqlLly7p448/Tvfff3869dRT81JSAAAAAABA61DRYMajjz6aOnfuPNXnt95662ZtDwAAAAAAUDwzVc0MAAAAAACg9RHMAAAAAAAACk0wAwAAAAAAKDTBDAAAAAAAoNAEMwAAAAAAgEJrW+kGAAAAUEC9+1W6BQAAUEVmBgAAAAAAUGiCGQAAAAAAQKEJZgAAAAAAAIUmmAEAAAAAABSaYAYAAAAAAFBoghkAAAAAAEChCWYAAAAAAACFJpgBAAAAAAAUmmAGAAAAAABQaIIZAAAAAABAoQlmAAAAAAAAhSaYAQAAAAAAFJpgBgAAAAAAUGiCGQAAAAAAQKG1rXQDmHkNXHBYvbbfe3TvJmsLAAAAAAAtl8wMAAAAAACg0AQzAAAAAACAQhPMAAAAAAAACk0wAwAAAAAAKDTBDAAAAAAAoNAEMwAAAAAAgJYXzFh88cUbvyUAAECr1Fj9i7XWWitdf/31acSIEWncuHGpT58+1Z6/5JJL8uPlt5tuuqlR3hsAAChgMOOFF15Id9xxR9pxxx1T+/btG79VAABAq9FY/YsOHTqk4cOHp379+k11m3vvvTcttdRSVbe99tqrwe8HAAAUPJix7rrrpldeeSWdfvrp6c0330znn39+WnXVVRu/dQAAQIvXWP2LCFT85S9/yYGRqZk4cWIaM2ZM1e3LL7+cwdYDAACFDWa8/PLL6eijj07LLLNM+sMf/pC6du2a/vOf/6Qnn3wy35933nkbv6UAAECL1Jz9i3XWWSe9/fbb6bnnnkvnnntummeeeaa6bbt27VKnTp2qbh07dmy0dgAAAM1YAPzHH39Mt99+e9pjjz3SSSedlLp3755OO+209Nprr6XLLrssLbjggjOyewAAoBVp6v7Ffffdl/bff/+0+eabpxNPPDEHNm688cY0yyy1d4tiuapRo0ZV3aIWBwAAMBMGM1ZZZZU8mylSwWPG1EUXXZRWWmmltOWWW+bZVNddd13jtRQAAGjRmrp/EYGLu+66K7366qvpzjvvTDvssENeziqWuapN//79U7du3apuPXr0mKH3BwAAGq5tQ14UHYvddtstLb300umee+7Js5siDXzy5Mn5+ZEjR6a+ffvm4nsAAABF7F+899576bPPPssZIA899NAUz0+aNCnfAACAmTSYsc8++6RBgwalwYMHp9GjR9e6zaeffpoOOuigGW0fAADQwlWqf7HwwgvnmhmffPJJo+4XAAAoSDAj0rw/+OCDqplS5RZZZJH04Ycfpu+//z4NGTKkMdoIAAC0YI3Vv+jQoUPOsihZfPHF0worrJDGjh2bb8ccc0y67bbbcsBkiSWWSKecckp655130rBhw5rkcwEAABWumfHiiy+meeedd4rHY1bTyy+/3BjtAgAAWonG6l9EzY3HHnss38IZZ5yRfz/++ONzcfHll18+1914/vnn04ABA9ILL7yQNt54Y0tJAQBAS83MaNOmzVRnQn333Xcz2iYAAKAVaaz+xaOPPpo6d+481ee33nrrBrUPAACYyYIZp59+ev4Z6d8xu+nbb7+tem7WWWdNq622mswMAABA/wIAAKhcMGPFFVesmjm13HLLVUvHjjVsIwX8oosuatwWAgAALZL+BQAA0CTBjM022yz/vPjii9PRRx+dxo8fX5+XAwAA6F8AAADNUzPjwAMPbMjLAAAA9C8AAICmC2Zcc801qW/fvjkbI36flt12263+LQEAAFoN/QsAAKBJghnjxo3Lhb9LvwMAADSU/gUAANAkwYzypaUsMwUAAMwI/QsAAKA+ZkkNMPvss6c55pij6v6iiy6aOyMbbLBBQ3YHAAC0YvoXAABAkwQzrrvuurTzzjvn37t06ZIeeOCBdNBBB6Vrr7027b333g3ZJQAA0ErpXwAAAE0SzFhppZXS448/nn/fcsst0+jRo9Nyyy2X9t9//3TAAQc0ZJcAAEArpX8BAAA0STAjlpiaMGFC/j2Wlrr99ttzcfBnnnkmLzkFAACgfwEAAFQ0mPHOO++kzTbbLHXr1i317t073X///fnx+eefP40fP77RGgcAALR8+hcAAECTBDPOOuusdOqpp6bhw4en5557Lj399NNVWRovvfRSQ3YJAAC0UvoXAADA9LRNDXDrrbemJ554InXt2jW9/PLLVY8/9NBDeckpAAAA/QsAAKCiwYwwZsyYfCsXWRoAAAD6FwAAQMWDGXPOOWc64ogjUq9evXKdjDZt2lR7fqWVVmqs9gEAAC2c/gUAANAkwYwBAwaktddeO1133XVp9OjRafLkyQ3ZDQAAgP4FAADQNMGMDTfcMG2//fbpqaeeasjLAQAA9C8AAIA6myU1wJdffpnGjh3bkJcCAADoXwAAAE0fzDjttNPS8ccfn+aYY46GvBwAAED/AgAAaNplpg466KC0xBJLpLfeeiu9//776fvvv6/2/HrrrdeQ3QIAAK2Q/gUAANAkwYw777yzIS8DAADQvwAAAJonmHHmmWc25GUAAAD6FwAAQPPUzAhdunRJe+yxRzrppJPS3HPPnR9baaWV0kILLdTQXQIAAK2U/gUAANDomRnLLbdcuu2229K4cePSYostlv7xj3+ksWPHpi222CItssgiaf/992/IbgEAgFZI/wIAAGiSzIzTTz89DR48OK2yyirpu+++q3r8P//5T1prrbUasksAAKCV0r8AAACaJJjxy1/+Ml111VVTPP7xxx+nBRdc0FEHAAD0LwAAgMouMzVp0qTUqVOnKR5faqml0meffdYY7QIAAFoJ/QsAoLUYuHnXer9m79s/aZK2QKvIzBg6dGg6+uijU9u2/4uFTJ48OdfKOPnkk3MtDQAAAP0LAACgosGM448/PnXo0CG98847aY455sjBjRdeeCFNmDAhnXLKKY3WOAAAoOXTvwAAAJpkmalx48alrbbaKq2xxhpphRVWyIGNF198MT344IMN2R0AANCK6V8AAACNHsxo06ZN2nXXXdMWW2yRFltssbzE1MiRI9OYMWPquysAAKCV078AAACaZJmp66+/Pg0YMCAttNBC6dVX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JwAAAAAALY5gBtnABYc5EgBQBwM371rv47T37Z+0iM8BAAAAlWKZKQAAAAAAoNAEMwAAAAAAgEITzAAAAAAAAApNMAMAAAAAACg0wQwAAAAAAKDQBDMAAAAAAIBCK3Qw49hjj03jxo2rdnv22Wcr3SwAAAAAAKAZtU0F9+qrr6Ytttii6v4PP/xQ0fYAAAAAAADNq/DBjAhejBkzptLNAAAAAAAAKqTQy0yFJZdcMo0YMSK9+OKL6YorrkiLLLLINLdv165d6tSpU9WtY8eOzdZWAAAAAACglQUzoj5G37590zbbbJOOOOKI9LOf/Szdfffd0wxQ9OvXL40aNarqFoEQAAAAAABg5lXoZabuvffeqt9feeWVHNwYPnx42nrrrdOgQYNqfU3//v3TgAEDqu5H4ENAAwAAAAAAZl6FDmbU9NVXX6W33347de/efarbTJo0Kd8AAAAAAICWodDLTNXUoUOHtMQSS6TRo0dXuikAAAAAAEAzKXQw49RTT01rr712WmyxxVLPnj3T4MGD048//phuuOGGSjcNAAAAAABoJoVeZqpbt27pyiuvTPPMM0/67LPP0pNPPpl69+6dPv/880o3DQAAAAAAaCaFDmbsueeelW4CAAAAAABQYYVeZgoAAAAAAEAwAwAAAAAAKDTBDAAAoFU49thj07hx46rdnn322Uo3CwAAmNlrZgAAADSmV199NW2xxRZV93/44QcHGAAAZgKCGQAAQKsRwYsxY8ZUuhkAAEA9WWYKAABoNZZccsk0YsSI9OKLL6YrrrgiLbLIIlPdtl27dqlTp05Vt44dOzZrWwEAgP8jMwMAAGgVoj5G375905tvvpm6du2ajjnmmHT33XenNddcM02YMGGK7fv165frbLRWAxccVukmANACDdy8a71fs/ftnzTL+7RmzXVeYEYIZgAAAK3CvffeW/X7K6+8koMbw4cPT1tvvXUaNGjQFNv3798/DRgwoOp+ZGZEVgcAAND8BDMAAIBW6auvvkpvv/126t69e63PT5o0Kd8AAIDKUzMDAABolTp06JCWWGKJNHr06Eo3BQAAmA7BDAAAoFU49dRT09prr50WW2yx1LNnzzR48OD0448/phtuuKHSTQMAAKbDMlMAAECr0K1bt3TllVemeeaZJ3322WfpySefTL17906ff/55pZsGAABMh2AGM79OXf/v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7rk0evTo9Oqrr+bibO3bt3cOmvE8tG3bNh199NHpxRdfzNs/9thjacMNN3QOqAjXMzTkuxBcV7Vcru9o6PchuNZsuVzvEtZaa610/fXXpxEjRuT+fJ8+fdL0rLPOOunhhx/O4zAvvPBCHiOrL8EMGmybbbZJp59+ejrzzDPTuuuum/9Tu+mmm9J8881X6/Zjx45N55xzTu6kxxd+8ODB6eKLL069e/d2FprpHJQstthi6dRTT82DJjT/Ofjqq6/SUkstVXVbbrnlnIZmPAezzTZbuvXWW/Pfwe67754vwg8++OD00UcfOQ/NdA522223an8DPXv2TD/88EO6+eabnYNmOgfbb799+vOf/5y3X3311dNBBx2U93HSSSc5B814Hv70pz+lPffcMx155JH57+DKK6/M10crrrii80Czcj1DQ78LrqtaLtd3zMj3wbVmy+V6l5IOHTqk4cOHp379+qW6+NnPfpYnMD7yyCNp7bXXzmPCAwYMqPe4cJtOnTpNrtcr4P+LSHzMZv7jH//4vy9TmzbptddeS5dddlk677zz6nScIhp3zz335IF1mucczDLLLOnuu+9OgwYNykGlmEnVkEgoDTsHcazjAjAG0qnMOdhrr73SoYcemoMYMYBO85+D2mZtHXfccWmZZZZJ33zzjVPSDOcgJhfE8d5iiy2qHjvttNPSaqutljbeeGPnoJnOQ8xiinPx97//veqx+P/5u+++yzPeoLm4nqGh3wXXVS2X6ztm5PvgWrPlcr1LbSIzY+edd86rMEzNySefnPuaa665ZtVjV111VR6XjCBZXcnMoEFiBs7KK6+cHnjggarHJk+enJeRipmFddGrV6+09NJLyw5o5nNwzDHH5HSuGCyhMuegY8eOOXody7pce+216ec//7lT0YznYNNNN01PP/10XmbqrbfeSk8++WSeSRCBPprnHNQUGTI33nijQEYznoOnnnoqv6a0PMDiiy+el1qLCQY033mIZb0icFEu7pdf4ENTcz3DjHwXXFe1TK7vmNHvg2vNlsn1LjMi/r2IfzfK3XfffXmlgPpoO0OtoNWad9558zrPMSheLtZOjJmeU9O5c+f0+uuv5877jz/+mI444ohq/yHStOcgBkdi0DDSuajMOYjB8z/84Q85mBF/D4cccki699570xprrGGZo2Y6BzFou95666V//etfabvttkvdu3dP5557br4wi6wZmv4clIvB9FhqLZY5ovnOQaT3xuv+85//5Jl18f2/4oorcpCP5jsPw4YNy9/9xx9/PL3zzjtp/fXXzzXGZp11VqeBZuN6hhn5Lriuaplc3zGj3wfXmi2T611mxIILLjhFzdj4dyUyM2afffYpJnlNjWmoNKvx48fnYi/RWT/llFPymotxn6YX2QCXX355Hjz/4osvHPIKiYyAyMaINUajZsmuu+6aPv/885yiT/OIDIz4DzP+FqLgVKz1evbZZzsHFRIB1gjuRSFqmk/83xsZSTGpINY9jiXwIuX3qKOOchqaURzvt99+Oz377LP5/4JYkiFqZvz000/OA4XmeoYS11XUxvUdrjUpcb1LY5OZQYNEhzvWmp9//vmrPb7AAguk0aNHT/V1kYoYMw9DDOb26NEjD6Y8+uijzkQTn4Mlllgiz5y6/vrrqx4rLasTwY2YHf3uu+86D014DmoTr3/xxRdzdgDNcw4++eST9P3331cbLHzjjTdS165d8+z0eI6mPQclc845Z9p2221zYJvmPQcnnHBCuu6669I///nPfD+WvYsCbhdccEEO7sX/1zT9eYjXRCApMlbnmWee9PHHH+e1ZN977z2Hn2bjeoYZ+S64rmqZXN8xo98H15otk+tdZkT8exH/bpSLf1e++uqrOmdlBJkZNEgM9sWM5siwKIllKqIORszUqvMXcJZZUrt27ZyFZjgHMVgbSxnFElOl29ChQ3MR9vj9ww8/dB6a+BxM7W8gltiJjiDNcw6iRkYEj2K7kqWWWioPIgpkNM85KNlqq63yIG55kJXmOQdzzDHHFLP/Y/nH0mtpnvNQMnHixPxvUCzhsOWWW06zcB40NtczzMh3wXVVy+T6jhn9PrjWbJlc7zIj4t+L+Hej3AYbbJCeeeaZeu1HZgYNNmDAgHTppZem//73v3l5hAMPPDDPsr3mmmvy85dddlmuARAzDEMsZRHbxuz/CGBEodGddtopHX744c5CM5yDGCh57bXXqr0+op+h5uM03d/B0Ucfnf+hjgylWBfw0EMPTYsuumj6xz/+4bA3w99BGDhwYNpvv/3SX//61/zckksumTPEYh80zzko2WOPPfKgraXvmv8c3H333bl+z0svvZS3jwBfzKC76667LHHUjOdhtdVWSwsttFDOVo2fxx57bB4ciAwZaE6uZ2jod8F1Vcvl+o4Z+T641my5XO9SEpn95auMxGowK6ywQho7dmyeMH3SSSelhRdeOO2///75+SuvvDKPxUTZgUGDBuXAxtZbb5223377VB+CGTRYrDM/33zzpeOOOy4XcYmOeCwXUioKtcgii1QbEIkveRTZjS9ypA9FpsC+++6b90PznAMqfw7mmmuudOGFF+Ztv/zyyzzD5Te/+U0aMWKE09NM52DUqFFpm222SWeccUYuuhuzoS+55JJ03nnnOQfNdA5K2TBrrbVWnoVO85+DCObFUlJ/+tOf8iD6Z599ljudcWFJ852HyEyKcxAX/l9//XW655578gV+abIBNBfXMzT0u+C6quVyfceMfB9ca7ZcrncpWWWVVfKKLyUxxhKiBmDfvn3zUt7xb0PJyJEjc+AitovnIwB60EEHpWHDhqX6aNOpUyeLIgMAAAAAAIWlZgYAAAAAAFBoghkAAAAAAEChCWYAAAAAAACFJpgBAAAAAAAUmmAGAAAAAABQaIIZAAAAAABAoQlmAAAAAAAAhSaYAQAAAAAAFJpgBkALdskll6QhQ4ZU3b/zzjvTmWee2eztWGedddK4ceNSly5dmv29F1tssfzeK6ywQqMey9rUPL4vv/xyOvDAA6vuRzv69OkzQ+0AAIBK0b/QvwCoJMEMgAp0AGJQO26fffZZeuGFF9LRRx+dZp111iZ/79122y2deuqphQ9AzKymd3yXWmqpdO+99zZqkAUAgNZN/6Ll0r8AqK5tjfsANIMY0O7bt29q37592mijjVL//v3T999/n84999wptp1tttnyc41h7NixqSVp27Zt+uGHH1JRTO/4jhkzptnaAgBA66F/0Tj0LwCKTWYGQAVMnDgxD2x/8MEHaeDAgenBBx9Mm266abXU7T/+8Y9pxIgR6bnnnsuPd+vWLV199dXp/fffTyNHjkzXXnttnt1fMssss6TTTz89P//ee++lU045JbVp02aayyC1a9cunXzyyenVV19Nn376ac4S2X333fN+hw4dmreJNkYGQbQrxD6POOKI9NJLL6XRo0enxx57LG255ZbV3icCNM8//3x+/o477qjWzqmJ99h7773TjTfemF/34osvVttvKZNhm222yW2L47fDDjvk9kRmy2uvvZY/w6OPPpo23HDDKfa/zDLL5E5evO7JJ59Ma6+9drVjN2DAgKrPFMc8gk21OeaYY9I777yTPvzww3TeeeflYNPUjm9tn7G0zNTw4cPzzzh+8Xi8dq211kqff/55WmCBBaq9LvZ59913T/cYAgDQOulfTEn/Qv8CaHkEMwAK4Ntvv602KN6rV6+09NJL58H8GLCPGUI333xzmjBhQtpkk03Sb37zm/T111+nm266qep1Bx98cNp1113TH/7whxxMmHvuudNmm202zfe97LLL0nbbbZeOOuqotPrqq6dDDz007zcG6mNf4Ze//GVeHikCBqFfv35p5513TocffnhaY4010t/+9rf097//vSo4EEGXa665Jt111135sX/+8585YFIXJ5xwQrr11lvz62644YZ01VVX5SBEuT//+c85sBLtHTZsWK5JcdBBB+XX/upXv8qPXXfddWnJJZes9rq//OUv6aKLLsrLZz399NPp+uuvT/PMM09VMOOjjz5Kv/vd71LPnj3TWWedlU488cS09dZbV9tHnJcePXrkwFMEXrbYYosc3GiI9ddfP//cfPPN8/GNFPLHH388B6J22mmnqu3i3Md3YNCgQQ16HwAAWh/9i//Rv9C/AFoWy0wBVFgMavfu3TsHFkq++eabPEBfWl5qxx13zAPu8VhJZA5E1sS6666b7r///jyoH8tV3X777fn5ww47LO93amIAfdttt80D8pEZEmIgveaSSZHt8NVXX1VlckQwI4IsERAovSaCCHvttVfOMohB/nfffTcdf/zx+fm33nor/eIXv8jZHNMTAZsIfoSoPfHrX/86HXDAAdVeG4GM0mcsBXHOP//8nNERTjrppLTeeuvl4xFtLbn88svTbbfdln+PQExkb0QWygUXXJCXqoqslpLIfImgRgQzok0lcT5iv9E5fP3119Npp52WgyTR1smTJ6f6iHop4Ysvvqi2/FR8/ghsXHjhhfn+b3/727wcWXk7AABgavQv/o/+hf4F0LIIZgBUQGRXRCZAZFVEkCKyEM4444yq51955ZVqdTKWX3751L179/yacrPPPntaYoklUufOndNCCy2Unn322arnfvzxx/Tf//53iqWmSqLwdAzix7JMdRVt6NChQ7rllluqPR5BjliiKUTmQnk7QinwMT3PPPPMFK+rWSA7lq8q6dSpU1p44YXzslHl4n4cs6m1oXRsoq0l++67bw4iLLroovm4xmd6+eWXq+0j7kcgo3yf0YZFFlkkB5Yaw+DBg9Of/vSnnHkSxyMyZKITFgEuAACojf5F7fQv9C+AlkUwA6ACHn744ZxtMGnSpPTxxx/nwfVyNQeuI4AQ9Sz22Wefqc7wr6/yQfm66tixY/65/fbb53bXXKe3OTTFoH5kqER2RWSTRIAilvM65JBD0mqrrZaaW5zPWKIrghiR9RJLipXqqQAAQG30LxpO/wJg5qFmBkAFxAVzqYh0zUBGbaIYdtSAiCWf4nXltyhsF7cILpQPvs8666xp5ZVXnuo+o+h3ZIVEDYnaRKCltJ+SWFrpu+++y9kLNdsxatSovE0ULV911VWr7SuyDOqi5nZx/4033pjq9uPHj8/ZKmuuuWa1x+N+tGNq+y4dm9I2sf1TTz2VrrjiipxhEp8nMl5qiiyRyNoo32e0Ic5jfdV2fMuXmopC53vuuWdesivaBgAAU6N/UTv9C/0LoGURzACYCfzrX/9Kn3/+ebr22mtzfYqf/exnOQjx17/+NS+zVKolEdkeffr0ycXDzz333NSlS5ep7vP9999PQ4YMyQW84zWlfZaKXseyST/99FNOWZ933nlzdkhkLEQR7VgSa5dddskD/iuttFLaf//98/1w5ZVX5sBL1JKIuhyRxVEqJj49W221VV7qKV533HHH5aBIeS2R2kRtiagPEoP/8booEB5Bhzge5WIZqSiIHscmaovMNddcVUW133777bTKKqvkGiOxjygUGIXPa4plweJ4xfJUUWQ92hi1OOpbLyNEYCo6nVG7Y/75589LhZXcd999OUhy5JFH5mLqAADQmPQvpk7/AqC4BDMAZgKxJFQEFSIDIGoqxNqvMagehaFj0DtEkOG6665Ll156aR4Mj8DDHXfcMc39RiHsW2+9NQc+os5F7GPOOefMz0WmRxTFjuBADPafc845+fEIUkQQJQIn0Y6bbropbbzxxlXFw6ONUVg7AgePP/54Lgx+8skn1+lzxvttt912+XU77bRTfm3NDIuaImgRxyKKcUetjAgOxGujzeXic0SbY98REIptovh2KQATRcWvuuqqNGzYsDTPPPPkLI2aHnroobzfu+++O287dOjQarVO6iMyco466qicfRHZJxGoKongSASaImuj/HEAAGgM+hdTp38BUFxtOnXqVP/ppADQyGKprJ133jndeeedjm1KacCAAWm++ebLQRcAAED/YkboXwAtgQLgAFAgsdzUL37xi7w8l0AGAACgfwHwP4IZAFAgsaxU1AqJpa8eeOCBSjcHAACYielfAC2JZaYAAAAAAIBCUwAcAAAAAAAoNMEMAAAAAACg0AQzAAAAAACAQhPMAAAAAAAACk0wAwAAAAAAKDTBDAAAAAAAoNAEMwAAAAAAgEITzAAAAAAAAApNMAMAAAAAAEhF9v8AiwUEUhlC9R4AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "v2 fraud scores — mean: 0.7329 median: 0.8341 min: 0.4981 max: 0.9836\n", "v2 clean scores — mean: 0.5241 median: 0.5214\n" ] } ], "source": [ "# Score distribution — v2\n", "fraud_scores_v2 = test_proba_v2[test_y == 1]\n", "clean_scores_v2 = test_proba_v2[test_y == 0]\n", "\n", "fig, axes = plt.subplots(1, 2, figsize=(16, 5))\n", "\n", "for ax, fraud_s, clean_s, title in [\n", " (axes[0], fraud_scores_v1, clean_scores_v1, \"v1 — 2-layer baseline\"),\n", " (axes[1], fraud_scores_v2, clean_scores_v2, \"v2 — 3-layer + BatchNorm\"),\n", "]:\n", " ax.hist(\n", " clean_s, bins=50, alpha=0.7, color=BLUE, label=f\"Clean (n={len(clean_s):,})\", density=True\n", " )\n", " ax.hist(\n", " fraud_s,\n", " bins=50,\n", " alpha=0.8,\n", " color=ORANGE,\n", " label=f\"Fraud (n={len(fraud_s):,})\",\n", " density=True,\n", " )\n", " ax.set_title(title)\n", " ax.set_xlabel(\"Predicted probability\")\n", " ax.set_ylabel(\"Density\")\n", " ax.legend()\n", "\n", "plt.suptitle(\"Score Distribution Comparison\", fontsize=13, y=1.02)\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "print(\n", " \"v2 fraud scores —\",\n", " f\"mean: {fraud_scores_v2.mean():.4f} median: {np.median(fraud_scores_v2):.4f} \"\n", " f\"min: {fraud_scores_v2.min():.4f} max: {fraud_scores_v2.max():.4f}\",\n", ")\n", "print(\n", " \"v2 clean scores —\",\n", " f\"mean: {clean_scores_v2.mean():.4f} median: {np.median(clean_scores_v2):.4f}\",\n", ")" ] }, { "cell_type": "markdown", "id": "74485be3", "metadata": {}, "source": [ "**What to look for in v2:**\n", "- The bimodal fraud score distribution should be less pronounced — peripheral members\n", " should shift right (higher scores) as the 3rd layer reaches them.\n", "- The PR curve should collapse at a higher recall threshold (>0.55).\n", "- The model should train for more epochs before early stopping, confirming BatchNorm\n", " is stabilising gradient flow." ] }, { "cell_type": "markdown", "id": "w05ikt93eo", "metadata": {}, "source": [ "## 9. Hyperparameter Tuning\n", "\n", "Grid search over `hidden_dim` × `dropout` × `lr` (18 combinations — `hidden_dim=256` excluded due to VRAM).\n", "All runs logged to MLflow under the `fraud-ring-gnn-tuning` experiment." ] }, { "cell_type": "code", "execution_count": null, "id": "ec430ee0", "metadata": {}, "outputs": [], "source": [ "import gc\n", "\n", "import torch\n", "\n", "# Free GPU memory before tuning — safe to run even after kernel restart\n", "for name in [\"data\", \"model_v1\", \"model_v2\"]:\n", " obj = globals().get(name)\n", " if obj is not None:\n", " try:\n", " globals()[name] = obj.cpu()\n", " except Exception:\n", " pass\n", "\n", "gc.collect()\n", "if torch.cuda.is_available():\n", " torch.cuda.empty_cache()\n", " print(f\"VRAM free: {torch.cuda.mem_get_info()[0] / 1024**3:.1f} GB\")" ] }, { "cell_type": "code", "execution_count": 19, "id": "fs2n454oa2j", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " hidden_dim dropout lr test_auc test_ap best_epoch\n", " 64 0.2 — 0.8622 0.4928 10\n", " 64 0.3 — 0.8452 0.4809 2\n", " 64 0.4 — 0.8388 0.4526 22\n", " 64 0.2 — 0.8109 0.3633 2\n", " 64 0.2 — 0.7882 0.5586 132\n", " 64 0.3 — 0.7842 0.4815 36\n", " 64 0.4 — 0.7821 0.5256 123\n", " 64 0.4 — 0.7683 0.5354 78\n", " 64 0.3 — 0.7641 0.1328 11\n", "\n", "Best: AUC=0.8622 dropout=0.2\n" ] } ], "source": [ "# Tuning already complete — display results from saved checkpoints\n", "from pathlib import Path\n", "\n", "import pandas as pd\n", "import torch\n", "\n", "tuning_dir = Path(\"models/gnn/artifacts_tuning\")\n", "results = []\n", "for run_dir in sorted(tuning_dir.iterdir()):\n", " ckpt_path = run_dir / \"gnn_model.pt\"\n", " if not ckpt_path.exists():\n", " continue\n", " ck = torch.load(ckpt_path, map_location=\"cpu\", weights_only=False)\n", " results.append(\n", " {\n", " \"hidden_dim\": ck[\"hidden_dim\"],\n", " \"dropout\": ck[\"dropout\"],\n", " \"lr\": ck.get(\"lr\", \"—\"),\n", " \"test_auc\": round(ck[\"test_auc\"], 4),\n", " \"test_ap\": round(ck[\"test_ap\"], 4),\n", " \"best_epoch\": ck[\"best_epoch\"],\n", " }\n", " )\n", "\n", "df_tuning = pd.DataFrame(results).sort_values(\"test_auc\", ascending=False)\n", "print(df_tuning.to_string(index=False))\n", "print(f\"\\nBest: AUC={df_tuning.iloc[0]['test_auc']} dropout={df_tuning.iloc[0]['dropout']}\")" ] }, { "cell_type": "code", "execution_count": 20, "id": "mekrbsv45ob", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " run hidden_dim dropout test_auc test_ap best_epoch\n", "hd64_dr0.2_lr0.0001 64 0.2 0.8622 0.4928 10\n", " hd64_dr0.3_lr0.001 64 0.3 0.8452 0.4809 2\n", "hd64_dr0.4_lr0.0001 64 0.4 0.8388 0.4526 22\n", " hd64_dr0.2_lr0.001 64 0.2 0.8109 0.3633 2\n", "hd64_dr0.2_lr0.0005 64 0.2 0.7882 0.5586 132\n", "hd64_dr0.3_lr0.0001 64 0.3 0.7842 0.4815 36\n", "hd64_dr0.4_lr0.0005 64 0.4 0.7821 0.5256 123\n", " hd64_dr0.4_lr0.001 64 0.4 0.7683 0.5354 78\n", "hd64_dr0.3_lr0.0005 64 0.3 0.7641 0.1328 11\n", "\n", "Best AUC: 0.8622 — hd64_dr0.2_lr0.0001\n" ] } ], "source": [ "from pathlib import Path\n", "\n", "import torch\n", "\n", "tuning_dir = Path(\"models/gnn/artifacts_tuning\")\n", "results = []\n", "\n", "for run_dir in sorted(tuning_dir.iterdir()):\n", " ckpt_path = run_dir / \"gnn_model.pt\"\n", " if not ckpt_path.exists():\n", " continue\n", " ck = torch.load(ckpt_path, map_location=\"cpu\", weights_only=False)\n", " results.append(\n", " {\n", " \"run\": run_dir.name,\n", " \"hidden_dim\": ck[\"hidden_dim\"],\n", " \"dropout\": ck[\"dropout\"],\n", " \"test_auc\": round(ck[\"test_auc\"], 4),\n", " \"test_ap\": round(ck[\"test_ap\"], 4),\n", " \"best_epoch\": ck[\"best_epoch\"],\n", " }\n", " )\n", "\n", "df_results = pd.DataFrame(results).sort_values(\"test_auc\", ascending=False)\n", "print(df_results.to_string(index=False))\n", "print(f\"\\nBest AUC: {df_results.iloc[0]['test_auc']} — {df_results.iloc[0]['run']}\")" ] }, { "cell_type": "markdown", "id": "kyoxyzqzjh", "metadata": {}, "source": [ "## 10. Final Best Model\n", "\n", "Retrain with best hyperparams (`dropout=0.2`, `lr=1e-4`) and `patience=50` to fully exploit the slower convergence." ] }, { "cell_type": "code", "execution_count": null, "id": "vyijhlf4fng", "metadata": {}, "outputs": [], "source": [ "import gc\n", "\n", "import torch\n", "\n", "for name in [\"data\", \"model_v1\", \"model_v2\"]:\n", " obj = globals().get(name)\n", " if obj is not None:\n", " try:\n", " globals()[name] = obj.cpu()\n", " except Exception:\n", " pass\n", "\n", "gc.collect()\n", "if torch.cuda.is_available():\n", " torch.cuda.empty_cache()\n", " print(f\"VRAM free: {torch.cuda.mem_get_info()[0] / 1024**3:.1f} GB\")" ] }, { "cell_type": "code", "execution_count": 22, "id": "xwyles6py6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "🏃 View run gnn-full-batch at: http://localhost:5001/#/experiments/4/runs/38555664d71a4c6bace072fcdc4493df\n", "🧪 View experiment at: http://localhost:5001/#/experiments/4\n" ] } ], "source": [ "from pathlib import Path\n", "\n", "import torch\n", "\n", "from models.gnn.train import train as train_gnn\n", "\n", "GRAPH_PATH = \"data/graphs/hetero_graph.pt\"\n", "DEVICE = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", "\n", "train_gnn(\n", " graph_path=Path(GRAPH_PATH),\n", " experiment_name=\"fraud-ring-gnn-best\",\n", " model_output_dir=Path(\"models/gnn/artifacts_best\"),\n", " hidden_dim=64,\n", " dropout=0.2,\n", " lr=1e-4,\n", " epochs=500,\n", " patience=50,\n", " device_str=DEVICE,\n", ")" ] }, { "cell_type": "code", "execution_count": null, "id": "z53i2bs8a8p", "metadata": {}, "outputs": [], "source": [ "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import torch\n", "from sklearn.metrics import average_precision_score, roc_auc_score\n", "\n", "from models.gnn.dataset import load_graph\n", "from models.gnn.model import FraudRingGNN, migrate_state_dict\n", "\n", "plt.style.use(\"dark_background\")\n", "matplotlib.rcParams.update(\n", " {\"figure.facecolor\": \"#0d0d0d\", \"axes.facecolor\": \"#1a1a1a\", \"grid.color\": \"#333333\"}\n", ")\n", "BLUE, ORANGE, GREEN = \"#1a7abf\", \"#e07b39\", \"#4caf50\"\n", "\n", "GRAPH_PATH = \"data/graphs/hetero_graph.pt\"\n", "DEVICE = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", "\n", "data, split = load_graph(GRAPH_PATH, device=DEVICE)\n", "test_mask = split[\"test\"].cpu()\n", "test_y = data[\"account\"].y.cpu()[test_mask].numpy()\n", "\n", "ck_best = torch.load(\n", " \"models/gnn/artifacts_best/gnn_model.pt\", map_location=DEVICE, weights_only=False\n", ")\n", "model_best = FraudRingGNN(\n", " hidden_dim=ck_best[\"hidden_dim\"],\n", " dropout=ck_best[\"dropout\"],\n", " num_layers=ck_best.get(\"num_layers\", 3),\n", " use_batchnorm=ck_best.get(\"use_batchnorm\", True),\n", ").to(DEVICE)\n", "model_best.load_state_dict(migrate_state_dict(ck_best[\"model_state_dict\"]))\n", "model_best.eval()\n", "\n", "with torch.no_grad():\n", " proba_best = torch.sigmoid(model_best(data)).cpu().numpy()\n", "\n", "test_proba_best = proba_best[test_mask]\n", "auc_best = roc_auc_score(test_y, test_proba_best)\n", "ap_best = average_precision_score(test_y, test_proba_best)\n", "\n", "print(f\"Best — epoch: {ck_best['best_epoch']} AUC: {auc_best:.4f} AP: {ap_best:.4f}\")\n", "print()\n", "print(\"── Full Comparison ─────────────────────────\")\n", "print(\" v1 (2-layer, no BN) AUC=0.8379 AP=0.3794\")\n", "print(\" v2 (3-layer + BN) AUC=0.8395 AP=0.4107\")\n", "print(f\" best (tuned, 3-layer + BN) AUC={auc_best:.4f} AP={ap_best:.4f}\")\n", "\n", "precision, recall, _ = precision_recall_curve(test_y, test_proba_best)\n", "fpr, tpr, _ = roc_curve(test_y, test_proba_best)\n", "fig, axes = plt.subplots(1, 2, figsize=(14, 5))\n", "axes[0].plot(recall, precision, color=\"#2ecc71\", lw=2)\n", "axes[0].axhline(\n", " y=test_y.mean(), color=ORANGE, linestyle=\"--\", label=f\"Baseline ({test_y.mean():.3f})\"\n", ")\n", "axes[0].set_title(f\"Precision-Recall (AP={ap_best:.4f}) — best (tuned)\")\n", "axes[0].set_xlabel(\"Recall\")\n", "axes[0].set_ylabel(\"Precision\")\n", "axes[0].legend()\n", "axes[0].set_xlim([0, 1])\n", "axes[0].set_ylim([0, 1])\n", "axes[1].plot(fpr, tpr, color=GREEN, lw=2, label=f\"AUC={auc_best:.4f}\")\n", "axes[1].plot([0, 1], [0, 1], color=\"#555555\", linestyle=\"--\", label=\"Random\")\n", "axes[1].set_title(\"ROC Curve — best (tuned)\")\n", "axes[1].set_xlabel(\"False Positive Rate\")\n", "axes[1].set_ylabel(\"True Positive Rate\")\n", "axes[1].legend()\n", "plt.tight_layout()\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "sa-fraud-shield", "language": "python", "name": "sa-fraud-shield" }, "language_info": { "name": "python", "version": "3.11.0" } }, "nbformat": 4, "nbformat_minor": 5 }