{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "f97f57c5",
      "metadata": {
        "id": "f97f57c5"
      },
      "source": [
        "## Environment Setup"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "4383a3fd",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:37:39.612144Z",
          "iopub.status.busy": "2026-09-08T06:37:39.611954Z",
          "iopub.status.idle": "2026-09-08T06:37:43.373170Z",
          "shell.execute_reply": "2026-09-08T06:37:43.371641Z"
        },
        "id": "4383a3fd",
        "outputId": "bcce69c4-bb1f-45c1-962a-84fca621049e"
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
            "I0000 00:00:1788849461.199578    4967 port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n"
          ]
        },
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
            "I0000 00:00:1788849463.092535    4967 port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "python     : 3.11.15\n",
            "numpy      : 2.4.4\n",
            "pandas     : 3.0.2\n",
            "scikit-learn: 1.8.0\n",
            "tensorflow : 2.21.0\n",
            "seed       : 42\n"
          ]
        }
      ],
      "source": [
        "import os, sys, io, time, json, random, warnings, urllib.request\n",
        "os.environ.setdefault(\"TF_CPP_MIN_LOG_LEVEL\", \"3\")\n",
        "os.environ.setdefault(\"PYTHONHASHSEED\", \"42\")\n",
        "warnings.filterwarnings(\"ignore\")\n",
        "\n",
        "import numpy as np\n",
        "import pandas as pd\n",
        "import matplotlib\n",
        "import matplotlib.pyplot as plt\n",
        "import seaborn as sns\n",
        "\n",
        "from sklearn.compose import ColumnTransformer\n",
        "from sklearn.pipeline import Pipeline\n",
        "from sklearn.preprocessing import StandardScaler, OneHotEncoder, FunctionTransformer\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn.ensemble import RandomForestClassifier\n",
        "from sklearn.svm import SVC\n",
        "from sklearn.metrics import (accuracy_score, precision_score, recall_score, f1_score,\n",
        "                             confusion_matrix, roc_auc_score, roc_curve,\n",
        "                             classification_report, precision_recall_curve)\n",
        "\n",
        "import tensorflow as tf\n",
        "from tensorflow import keras\n",
        "from tensorflow.keras import layers\n",
        "\n",
        "RANDOM_STATE = 42\n",
        "random.seed(RANDOM_STATE)\n",
        "np.random.seed(RANDOM_STATE)\n",
        "tf.random.set_seed(RANDOM_STATE)\n",
        "keras.utils.set_random_seed(RANDOM_STATE)\n",
        "\n",
        "sns.set_theme(style=\"whitegrid\")\n",
        "plt.rcParams[\"figure.dpi\"] = 110\n",
        "pd.set_option(\"display.width\", 160)\n",
        "pd.set_option(\"display.max_columns\", 60)\n",
        "\n",
        "print(\"python     :\", sys.version.split()[0])\n",
        "print(\"numpy      :\", np.__version__)\n",
        "print(\"pandas     :\", pd.__version__)\n",
        "import sklearn; print(\"scikit-learn:\", sklearn.__version__)\n",
        "print(\"tensorflow :\", tf.__version__)\n",
        "print(\"seed       :\", RANDOM_STATE)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "ce00210f",
      "metadata": {
        "id": "ce00210f"
      },
      "source": [
        "## Data Loading\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "55cb144a",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:37:43.379978Z",
          "iopub.status.busy": "2026-09-08T06:37:43.379487Z",
          "iopub.status.idle": "2026-09-08T06:37:44.460883Z",
          "shell.execute_reply": "2026-09-08T06:37:44.460301Z"
        },
        "id": "55cb144a",
        "outputId": "60e132d7-0c67-4ff8-9ecd-7379ac88a42f"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "UNSW_NB15_training-set.csv       -> data/UNSW_NB15_training-set.csv\n",
            "UNSW_NB15_testing-set.csv        -> data/UNSW_NB15_testing-set.csv\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "training partition: (175341, 45)\n",
            "testing partition : (82332, 45)\n"
          ]
        }
      ],
      "source": [
        "TRAIN_FILE = \"UNSW_NB15_training-set.csv\"\n",
        "TEST_FILE  = \"UNSW_NB15_testing-set.csv\"\n",
        "\n",
        "MIRROR = (\"https://raw.githubusercontent.com/Nir-J/ML-Projects/master/\"\n",
        "          \"UNSW-Network_Packet_Classification/\")\n",
        "\n",
        "SEARCH_DIRS = [\".\", \"/content\", \"/content/data\", \"/content/sample_data\",\n",
        "               \"/content/drive/MyDrive\", \"/content/drive/MyDrive/UNSW-NB15\", \"data\"]\n",
        "\n",
        "\n",
        "def _find(fname):\n",
        "    for d in SEARCH_DIRS:\n",
        "        p = os.path.join(d, fname)\n",
        "        if os.path.exists(p):\n",
        "            return p\n",
        "    for root, _, files in os.walk(\"/content\" if os.path.isdir(\"/content\") else \".\"):\n",
        "        if fname in files:\n",
        "            return os.path.join(root, fname)\n",
        "    return None\n",
        "\n",
        "\n",
        "def _download(fname):\n",
        "    try:\n",
        "        urllib.request.urlretrieve(MIRROR + fname, fname)\n",
        "        return fname if os.path.exists(fname) else None\n",
        "    except Exception as exc:\n",
        "        print(\"  download failed:\", exc)\n",
        "        return None\n",
        "\n",
        "\n",
        "def _upload(fname):\n",
        "    try:\n",
        "        from google.colab import files\n",
        "    except ImportError:\n",
        "        return None\n",
        "    print(f\"  please upload {fname}\")\n",
        "    up = files.upload()\n",
        "    for k in up:\n",
        "        if k.endswith(\".csv\"):\n",
        "            os.rename(k, fname)\n",
        "            return fname\n",
        "    return None\n",
        "\n",
        "\n",
        "def resolve(fname):\n",
        "    for step in (_find, _download, _upload):\n",
        "        p = step(fname)\n",
        "        if p:\n",
        "            print(f\"{fname:32s} -> {p}\")\n",
        "            return p\n",
        "    raise FileNotFoundError(\n",
        "        f\"{fname} not found. Upload it to the runtime or place it beside this notebook.\")\n",
        "\n",
        "\n",
        "train_path = resolve(TRAIN_FILE)\n",
        "test_path  = resolve(TEST_FILE)\n",
        "\n",
        "train_raw = pd.read_csv(train_path, encoding=\"utf-8-sig\")\n",
        "test_raw  = pd.read_csv(test_path,  encoding=\"utf-8-sig\")\n",
        "\n",
        "print(\"\\ntraining partition:\", train_raw.shape)\n",
        "print(\"testing partition :\", test_raw.shape)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "a6c7299c",
      "metadata": {
        "id": "a6c7299c"
      },
      "source": [
        "## Data Understanding\n",
        "\n",
        "The dataset structure is inspected before any assumption is made about the target, the feature types or the class balance."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "6aae58ed",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:37:44.463523Z",
          "iopub.status.busy": "2026-09-08T06:37:44.463168Z",
          "iopub.status.idle": "2026-09-08T06:37:44.491531Z",
          "shell.execute_reply": "2026-09-08T06:37:44.490517Z"
        },
        "id": "6aae58ed",
        "outputId": "a4bb6dfd-6fd9-4a5b-ee1e-fda48d0782a8"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "columns: 45\n",
            "['id', 'dur', 'proto', 'service', 'state', 'spkts', 'dpkts', 'sbytes', 'dbytes', 'rate', 'sttl', 'dttl', 'sload', 'dload', 'sloss', 'dloss', 'sinpkt', 'dinpkt', 'sjit', 'djit', 'swin', 'stcpb', 'dtcpb', 'dwin', 'tcprtt', 'synack', 'ackdat', 'smean', 'dmean', 'trans_depth', 'response_body_len', 'ct_srv_src', 'ct_state_ttl', 'ct_dst_ltm', 'ct_src_dport_ltm', 'ct_dst_sport_ltm', 'ct_dst_src_ltm', 'is_ftp_login', 'ct_ftp_cmd', 'ct_flw_http_mthd', 'ct_src_ltm', 'ct_srv_dst', 'is_sm_ips_ports', 'attack_cat', 'label']\n",
            "\n",
            "int64      30\n",
            "float64    11\n",
            "str         4\n"
          ]
        },
        {
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>id</th>\n",
              "      <th>dur</th>\n",
              "      <th>proto</th>\n",
              "      <th>service</th>\n",
              "      <th>state</th>\n",
              "      <th>spkts</th>\n",
              "      <th>dpkts</th>\n",
              "      <th>sbytes</th>\n",
              "      <th>dbytes</th>\n",
              "      <th>rate</th>\n",
              "      <th>sttl</th>\n",
              "      <th>dttl</th>\n",
              "      <th>sload</th>\n",
              "      <th>dload</th>\n",
              "      <th>sloss</th>\n",
              "      <th>dloss</th>\n",
              "      <th>sinpkt</th>\n",
              "      <th>dinpkt</th>\n",
              "      <th>sjit</th>\n",
              "      <th>djit</th>\n",
              "      <th>swin</th>\n",
              "      <th>stcpb</th>\n",
              "      <th>dtcpb</th>\n",
              "      <th>dwin</th>\n",
              "      <th>tcprtt</th>\n",
              "      <th>synack</th>\n",
              "      <th>ackdat</th>\n",
              "      <th>smean</th>\n",
              "      <th>dmean</th>\n",
              "      <th>trans_depth</th>\n",
              "      <th>response_body_len</th>\n",
              "      <th>ct_srv_src</th>\n",
              "      <th>ct_state_ttl</th>\n",
              "      <th>ct_dst_ltm</th>\n",
              "      <th>ct_src_dport_ltm</th>\n",
              "      <th>ct_dst_sport_ltm</th>\n",
              "      <th>ct_dst_src_ltm</th>\n",
              "      <th>is_ftp_login</th>\n",
              "      <th>ct_ftp_cmd</th>\n",
              "      <th>ct_flw_http_mthd</th>\n",
              "      <th>ct_src_ltm</th>\n",
              "      <th>ct_srv_dst</th>\n",
              "      <th>is_sm_ips_ports</th>\n",
              "      <th>attack_cat</th>\n",
              "      <th>label</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>1</td>\n",
              "      <td>0.121478</td>\n",
              "      <td>tcp</td>\n",
              "      <td>-</td>\n",
              "      <td>FIN</td>\n",
              "      <td>6</td>\n",
              "      <td>4</td>\n",
              "      <td>258</td>\n",
              "      <td>172</td>\n",
              "      <td>74.087490</td>\n",
              "      <td>252</td>\n",
              "      <td>254</td>\n",
              "      <td>14158.942380</td>\n",
              "      <td>8495.365234</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>24.295600</td>\n",
              "      <td>8.375000</td>\n",
              "      <td>30.177547</td>\n",
              "      <td>11.830604</td>\n",
              "      <td>255</td>\n",
              "      <td>621772692</td>\n",
              "      <td>2202533631</td>\n",
              "      <td>255</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>43</td>\n",
              "      <td>43</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>Normal</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>2</td>\n",
              "      <td>0.649902</td>\n",
              "      <td>tcp</td>\n",
              "      <td>-</td>\n",
              "      <td>FIN</td>\n",
              "      <td>14</td>\n",
              "      <td>38</td>\n",
              "      <td>734</td>\n",
              "      <td>42014</td>\n",
              "      <td>78.473372</td>\n",
              "      <td>62</td>\n",
              "      <td>252</td>\n",
              "      <td>8395.112305</td>\n",
              "      <td>503571.312500</td>\n",
              "      <td>2</td>\n",
              "      <td>17</td>\n",
              "      <td>49.915000</td>\n",
              "      <td>15.432865</td>\n",
              "      <td>61.426934</td>\n",
              "      <td>1387.778330</td>\n",
              "      <td>255</td>\n",
              "      <td>1417884146</td>\n",
              "      <td>3077387971</td>\n",
              "      <td>255</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>52</td>\n",
              "      <td>1106</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>43</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>2</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>6</td>\n",
              "      <td>0</td>\n",
              "      <td>Normal</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>3</td>\n",
              "      <td>1.623129</td>\n",
              "      <td>tcp</td>\n",
              "      <td>-</td>\n",
              "      <td>FIN</td>\n",
              "      <td>8</td>\n",
              "      <td>16</td>\n",
              "      <td>364</td>\n",
              "      <td>13186</td>\n",
              "      <td>14.170161</td>\n",
              "      <td>62</td>\n",
              "      <td>252</td>\n",
              "      <td>1572.271851</td>\n",
              "      <td>60929.230470</td>\n",
              "      <td>1</td>\n",
              "      <td>6</td>\n",
              "      <td>231.875571</td>\n",
              "      <td>102.737203</td>\n",
              "      <td>17179.586860</td>\n",
              "      <td>11420.926230</td>\n",
              "      <td>255</td>\n",
              "      <td>2116150707</td>\n",
              "      <td>2963114973</td>\n",
              "      <td>255</td>\n",
              "      <td>0.111897</td>\n",
              "      <td>0.061458</td>\n",
              "      <td>0.050439</td>\n",
              "      <td>46</td>\n",
              "      <td>824</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>7</td>\n",
              "      <td>1</td>\n",
              "      <td>2</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>3</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>6</td>\n",
              "      <td>0</td>\n",
              "      <td>Normal</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>4</td>\n",
              "      <td>1.681642</td>\n",
              "      <td>tcp</td>\n",
              "      <td>ftp</td>\n",
              "      <td>FIN</td>\n",
              "      <td>12</td>\n",
              "      <td>12</td>\n",
              "      <td>628</td>\n",
              "      <td>770</td>\n",
              "      <td>13.677108</td>\n",
              "      <td>62</td>\n",
              "      <td>252</td>\n",
              "      <td>2740.178955</td>\n",
              "      <td>3358.622070</td>\n",
              "      <td>1</td>\n",
              "      <td>3</td>\n",
              "      <td>152.876547</td>\n",
              "      <td>90.235726</td>\n",
              "      <td>259.080172</td>\n",
              "      <td>4991.784669</td>\n",
              "      <td>255</td>\n",
              "      <td>1107119177</td>\n",
              "      <td>1047442890</td>\n",
              "      <td>255</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>52</td>\n",
              "      <td>64</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>2</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>3</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>Normal</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>5</td>\n",
              "      <td>0.449454</td>\n",
              "      <td>tcp</td>\n",
              "      <td>-</td>\n",
              "      <td>FIN</td>\n",
              "      <td>10</td>\n",
              "      <td>6</td>\n",
              "      <td>534</td>\n",
              "      <td>268</td>\n",
              "      <td>33.373826</td>\n",
              "      <td>254</td>\n",
              "      <td>252</td>\n",
              "      <td>8561.499023</td>\n",
              "      <td>3987.059814</td>\n",
              "      <td>2</td>\n",
              "      <td>1</td>\n",
              "      <td>47.750333</td>\n",
              "      <td>75.659602</td>\n",
              "      <td>2415.837634</td>\n",
              "      <td>115.807000</td>\n",
              "      <td>255</td>\n",
              "      <td>2436137549</td>\n",
              "      <td>1977154190</td>\n",
              "      <td>255</td>\n",
              "      <td>0.128381</td>\n",
              "      <td>0.071147</td>\n",
              "      <td>0.057234</td>\n",
              "      <td>53</td>\n",
              "      <td>45</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>43</td>\n",
              "      <td>1</td>\n",
              "      <td>2</td>\n",
              "      <td>2</td>\n",
              "      <td>1</td>\n",
              "      <td>40</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>39</td>\n",
              "      <td>0</td>\n",
              "      <td>Normal</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "   id       dur proto service state  spkts  dpkts  sbytes  dbytes       rate  sttl  dttl         sload          dload  sloss  dloss      sinpkt      dinpkt  \\\n",
              "0   1  0.121478   tcp       -   FIN      6      4     258     172  74.087490   252   254  14158.942380    8495.365234      0      0   24.295600    8.375000   \n",
              "1   2  0.649902   tcp       -   FIN     14     38     734   42014  78.473372    62   252   8395.112305  503571.312500      2     17   49.915000   15.432865   \n",
              "2   3  1.623129   tcp       -   FIN      8     16     364   13186  14.170161    62   252   1572.271851   60929.230470      1      6  231.875571  102.737203   \n",
              "3   4  1.681642   tcp     ftp   FIN     12     12     628     770  13.677108    62   252   2740.178955    3358.622070      1      3  152.876547   90.235726   \n",
              "4   5  0.449454   tcp       -   FIN     10      6     534     268  33.373826   254   252   8561.499023    3987.059814      2      1   47.750333   75.659602   \n",
              "\n",
              "           sjit          djit  swin       stcpb       dtcpb  dwin    tcprtt    synack    ackdat  smean  dmean  trans_depth  response_body_len  ct_srv_src  \\\n",
              "0     30.177547     11.830604   255   621772692  2202533631   255  0.000000  0.000000  0.000000     43     43            0                  0           1   \n",
              "1     61.426934   1387.778330   255  1417884146  3077387971   255  0.000000  0.000000  0.000000     52   1106            0                  0          43   \n",
              "2  17179.586860  11420.926230   255  2116150707  2963114973   255  0.111897  0.061458  0.050439     46    824            0                  0           7   \n",
              "3    259.080172   4991.784669   255  1107119177  1047442890   255  0.000000  0.000000  0.000000     52     64            0                  0           1   \n",
              "4   2415.837634    115.807000   255  2436137549  1977154190   255  0.128381  0.071147  0.057234     53     45            0                  0          43   \n",
              "\n",
              "   ct_state_ttl  ct_dst_ltm  ct_src_dport_ltm  ct_dst_sport_ltm  ct_dst_src_ltm  is_ftp_login  ct_ftp_cmd  ct_flw_http_mthd  ct_src_ltm  ct_srv_dst  \\\n",
              "0             0           1                 1                 1               1             0           0                 0           1           1   \n",
              "1             1           1                 1                 1               2             0           0                 0           1           6   \n",
              "2             1           2                 1                 1               3             0           0                 0           2           6   \n",
              "3             1           2                 1                 1               3             1           1                 0           2           1   \n",
              "4             1           2                 2                 1              40             0           0                 0           2          39   \n",
              "\n",
              "   is_sm_ips_ports attack_cat  label  \n",
              "0                0     Normal      0  \n",
              "1                0     Normal      0  \n",
              "2                0     Normal      0  \n",
              "3                0     Normal      0  \n",
              "4                0     Normal      0  "
            ]
          },
          "execution_count": 3,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "print(\"columns:\", len(train_raw.columns))\n",
        "print(list(train_raw.columns))\n",
        "print()\n",
        "print(train_raw.dtypes.value_counts().to_string())\n",
        "train_raw.head()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "44ae55b3",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:37:44.494452Z",
          "iopub.status.busy": "2026-09-08T06:37:44.494168Z",
          "iopub.status.idle": "2026-09-08T06:37:44.686371Z",
          "shell.execute_reply": "2026-09-08T06:37:44.684987Z"
        },
        "id": "44ae55b3",
        "outputId": "7c202e28-8d80-4edd-90c5-ea8d2fe6cb0f"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>dtype</th>\n",
              "      <th>n_unique</th>\n",
              "      <th>n_missing</th>\n",
              "      <th>min</th>\n",
              "      <th>max</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>id</th>\n",
              "      <td>int64</td>\n",
              "      <td>175341</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>175341</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>dur</th>\n",
              "      <td>float64</td>\n",
              "      <td>74039</td>\n",
              "      <td>0</td>\n",
              "      <td>0.0</td>\n",
              "      <td>59.999989</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>proto</th>\n",
              "      <td>str</td>\n",
              "      <td>133</td>\n",
              "      <td>0</td>\n",
              "      <td></td>\n",
              "      <td></td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>service</th>\n",
              "      <td>str</td>\n",
              "      <td>13</td>\n",
              "      <td>0</td>\n",
              "      <td></td>\n",
              "      <td></td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>state</th>\n",
              "      <td>str</td>\n",
              "      <td>9</td>\n",
              "      <td>0</td>\n",
              "      <td></td>\n",
              "      <td></td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>spkts</th>\n",
              "      <td>int64</td>\n",
              "      <td>480</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>9616</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>dpkts</th>\n",
              "      <td>int64</td>\n",
              "      <td>443</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>10974</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>sbytes</th>\n",
              "      <td>int64</td>\n",
              "      <td>7214</td>\n",
              "      <td>0</td>\n",
              "      <td>28</td>\n",
              "      <td>12965233</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>dbytes</th>\n",
              "      <td>int64</td>\n",
              "      <td>6660</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>14655550</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>rate</th>\n",
              "      <td>float64</td>\n",
              "      <td>76991</td>\n",
              "      <td>0</td>\n",
              "      <td>0.0</td>\n",
              "      <td>1000000.003</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>sttl</th>\n",
              "      <td>int64</td>\n",
              "      <td>11</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>255</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>dttl</th>\n",
              "      <td>int64</td>\n",
              "      <td>6</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>254</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>sload</th>\n",
              "      <td>float64</td>\n",
              "      <td>80885</td>\n",
              "      <td>0</td>\n",
              "      <td>0.0</td>\n",
              "      <td>5988000256.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>dload</th>\n",
              "      <td>float64</td>\n",
              "      <td>77474</td>\n",
              "      <td>0</td>\n",
              "      <td>0.0</td>\n",
              "      <td>22422730.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>sloss</th>\n",
              "      <td>int64</td>\n",
              "      <td>409</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>4803</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>dloss</th>\n",
              "      <td>int64</td>\n",
              "      <td>370</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>5484</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>sinpkt</th>\n",
              "      <td>float64</td>\n",
              "      <td>76161</td>\n",
              "      <td>0</td>\n",
              "      <td>0.0</td>\n",
              "      <td>84371.496</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>dinpkt</th>\n",
              "      <td>float64</td>\n",
              "      <td>74245</td>\n",
              "      <td>0</td>\n",
              "      <td>0.0</td>\n",
              "      <td>56716.824</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>sjit</th>\n",
              "      <td>float64</td>\n",
              "      <td>77532</td>\n",
              "      <td>0</td>\n",
              "      <td>0.0</td>\n",
              "      <td>1460480.016</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>djit</th>\n",
              "      <td>float64</td>\n",
              "      <td>76831</td>\n",
              "      <td>0</td>\n",
              "      <td>0.0</td>\n",
              "      <td>289388.2697</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>swin</th>\n",
              "      <td>int64</td>\n",
              "      <td>13</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>255</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>stcpb</th>\n",
              "      <td>int64</td>\n",
              "      <td>75265</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>4294958913</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>dtcpb</th>\n",
              "      <td>int64</td>\n",
              "      <td>75089</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>4294881924</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>dwin</th>\n",
              "      <td>int64</td>\n",
              "      <td>7</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>255</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>tcprtt</th>\n",
              "      <td>float64</td>\n",
              "      <td>43319</td>\n",
              "      <td>0</td>\n",
              "      <td>0.0</td>\n",
              "      <td>2.518893</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>synack</th>\n",
              "      <td>float64</td>\n",
              "      <td>40142</td>\n",
              "      <td>0</td>\n",
              "      <td>0.0</td>\n",
              "      <td>2.100352</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ackdat</th>\n",
              "      <td>float64</td>\n",
              "      <td>37708</td>\n",
              "      <td>0</td>\n",
              "      <td>0.0</td>\n",
              "      <td>1.520884</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>smean</th>\n",
              "      <td>int64</td>\n",
              "      <td>1357</td>\n",
              "      <td>0</td>\n",
              "      <td>28</td>\n",
              "      <td>1504</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>dmean</th>\n",
              "      <td>int64</td>\n",
              "      <td>1328</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1458</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>trans_depth</th>\n",
              "      <td>int64</td>\n",
              "      <td>11</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>172</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>response_body_len</th>\n",
              "      <td>int64</td>\n",
              "      <td>2386</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>6558056</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ct_srv_src</th>\n",
              "      <td>int64</td>\n",
              "      <td>52</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>63</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ct_state_ttl</th>\n",
              "      <td>int64</td>\n",
              "      <td>5</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ct_dst_ltm</th>\n",
              "      <td>int64</td>\n",
              "      <td>50</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>51</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ct_src_dport_ltm</th>\n",
              "      <td>int64</td>\n",
              "      <td>47</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>51</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ct_dst_sport_ltm</th>\n",
              "      <td>int64</td>\n",
              "      <td>32</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>46</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ct_dst_src_ltm</th>\n",
              "      <td>int64</td>\n",
              "      <td>54</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>65</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>is_ftp_login</th>\n",
              "      <td>int64</td>\n",
              "      <td>4</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>4</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ct_ftp_cmd</th>\n",
              "      <td>int64</td>\n",
              "      <td>4</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>4</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ct_flw_http_mthd</th>\n",
              "      <td>int64</td>\n",
              "      <td>11</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>30</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ct_src_ltm</th>\n",
              "      <td>int64</td>\n",
              "      <td>50</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>60</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ct_srv_dst</th>\n",
              "      <td>int64</td>\n",
              "      <td>52</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>62</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>is_sm_ips_ports</th>\n",
              "      <td>int64</td>\n",
              "      <td>2</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>attack_cat</th>\n",
              "      <td>str</td>\n",
              "      <td>10</td>\n",
              "      <td>0</td>\n",
              "      <td></td>\n",
              "      <td></td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>label</th>\n",
              "      <td>int64</td>\n",
              "      <td>2</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                     dtype  n_unique  n_missing  min           max\n",
              "id                   int64    175341          0    1        175341\n",
              "dur                float64     74039          0  0.0     59.999989\n",
              "proto                  str       133          0                   \n",
              "service                str        13          0                   \n",
              "state                  str         9          0                   \n",
              "spkts                int64       480          0    1          9616\n",
              "dpkts                int64       443          0    0         10974\n",
              "sbytes               int64      7214          0   28      12965233\n",
              "dbytes               int64      6660          0    0      14655550\n",
              "rate               float64     76991          0  0.0   1000000.003\n",
              "sttl                 int64        11          0    0           255\n",
              "dttl                 int64         6          0    0           254\n",
              "sload              float64     80885          0  0.0  5988000256.0\n",
              "dload              float64     77474          0  0.0    22422730.0\n",
              "sloss                int64       409          0    0          4803\n",
              "dloss                int64       370          0    0          5484\n",
              "sinpkt             float64     76161          0  0.0     84371.496\n",
              "dinpkt             float64     74245          0  0.0     56716.824\n",
              "sjit               float64     77532          0  0.0   1460480.016\n",
              "djit               float64     76831          0  0.0   289388.2697\n",
              "swin                 int64        13          0    0           255\n",
              "stcpb                int64     75265          0    0    4294958913\n",
              "dtcpb                int64     75089          0    0    4294881924\n",
              "dwin                 int64         7          0    0           255\n",
              "tcprtt             float64     43319          0  0.0      2.518893\n",
              "synack             float64     40142          0  0.0      2.100352\n",
              "ackdat             float64     37708          0  0.0      1.520884\n",
              "smean                int64      1357          0   28          1504\n",
              "dmean                int64      1328          0    0          1458\n",
              "trans_depth          int64        11          0    0           172\n",
              "response_body_len    int64      2386          0    0       6558056\n",
              "ct_srv_src           int64        52          0    1            63\n",
              "ct_state_ttl         int64         5          0    0             6\n",
              "ct_dst_ltm           int64        50          0    1            51\n",
              "ct_src_dport_ltm     int64        47          0    1            51\n",
              "ct_dst_sport_ltm     int64        32          0    1            46\n",
              "ct_dst_src_ltm       int64        54          0    1            65\n",
              "is_ftp_login         int64         4          0    0             4\n",
              "ct_ftp_cmd           int64         4          0    0             4\n",
              "ct_flw_http_mthd     int64        11          0    0            30\n",
              "ct_src_ltm           int64        50          0    1            60\n",
              "ct_srv_dst           int64        52          0    1            62\n",
              "is_sm_ips_ports      int64         2          0    0             1\n",
              "attack_cat             str        10          0                   \n",
              "label                int64         2          0    0             1"
            ]
          },
          "execution_count": 4,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "info = pd.DataFrame({\n",
        "    \"dtype\": train_raw.dtypes.astype(str),\n",
        "    \"n_unique\": train_raw.nunique(),\n",
        "    \"n_missing\": train_raw.isna().sum(),\n",
        "    \"min\": train_raw.apply(lambda s: s.min() if pd.api.types.is_numeric_dtype(s) else \"\"),\n",
        "    \"max\": train_raw.apply(lambda s: s.max() if pd.api.types.is_numeric_dtype(s) else \"\"),\n",
        "})\n",
        "info"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "a1ca323c",
      "metadata": {
        "id": "a1ca323c"
      },
      "source": [
        "### Target Variable\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "2dbf67ba",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:37:44.689309Z",
          "iopub.status.busy": "2026-09-08T06:37:44.689032Z",
          "iopub.status.idle": "2026-09-08T06:37:44.811191Z",
          "shell.execute_reply": "2026-09-08T06:37:44.809396Z"
        },
        "id": "2dbf67ba",
        "outputId": "24a82c62-3791-48b8-c514-22db534cb863"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "label values      : [np.int64(0), np.int64(1)]\n",
            "attack_cat values : ['Analysis', 'Backdoor', 'DoS', 'Exploits', 'Fuzzers', 'Generic', 'Normal', 'Reconnaissance', 'Shellcode', 'Worms']\n",
            "\n",
            "attack_cat == Normal   False  True \n",
            "label                              \n",
            "0                          0  56000\n",
            "1                     119341      0\n",
            "\n",
            "id ranges  train: 1 - 175341 | test: 1 - 82332\n",
            "id overlap between partitions: 82332\n",
            "\n",
            "target      : label  (0 = normal, 1 = malicious)\n",
            "features    : 42  (39 numerical, 3 categorical)\n",
            "categorical : ['proto', 'service', 'state']\n"
          ]
        }
      ],
      "source": [
        "print(\"label values      :\", sorted(train_raw['label'].unique()))\n",
        "print(\"attack_cat values :\", sorted(train_raw['attack_cat'].unique()))\n",
        "print()\n",
        "print(pd.crosstab(train_raw['label'], train_raw['attack_cat'] == 'Normal',\n",
        "                  rownames=['label'], colnames=['attack_cat == Normal']))\n",
        "print()\n",
        "print(\"id ranges  train:\", train_raw['id'].min(), \"-\", train_raw['id'].max(),\n",
        "      \"| test:\", test_raw['id'].min(), \"-\", test_raw['id'].max())\n",
        "print(\"id overlap between partitions:\", len(set(train_raw['id']) & set(test_raw['id'])))\n",
        "\n",
        "TARGET = \"label\"\n",
        "DROP_COLS = [\"id\", \"attack_cat\"]\n",
        "FEATURES = [c for c in train_raw.columns if c not in DROP_COLS + [TARGET]]\n",
        "CAT_COLS = [c for c in FEATURES if train_raw[c].dtype == object or str(train_raw[c].dtype) == \"str\"]\n",
        "NUM_COLS = [c for c in FEATURES if c not in CAT_COLS]\n",
        "\n",
        "print()\n",
        "print(f\"target      : {TARGET}  (0 = normal, 1 = malicious)\")\n",
        "print(f\"features    : {len(FEATURES)}  ({len(NUM_COLS)} numerical, {len(CAT_COLS)} categorical)\")\n",
        "print(f\"categorical : {CAT_COLS}\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "f50887d9",
      "metadata": {
        "id": "f50887d9"
      },
      "source": [
        "### Class Distribution"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "0b564c15",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:37:44.813893Z",
          "iopub.status.busy": "2026-09-08T06:37:44.813656Z",
          "iopub.status.idle": "2026-09-08T06:37:44.841410Z",
          "shell.execute_reply": "2026-09-08T06:37:44.840222Z"
        },
        "id": "0b564c15",
        "outputId": "55418a8e-6063-479a-e497-ac7608e22bf9"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "   partition  normal  malicious  total  malicious_%  ratio_mal_to_norm\n",
            "training-set   56000     119341 175341        68.06              2.131\n",
            " testing-set   37000      45332  82332        55.06              1.225\n",
            "\n",
            "attack categories (training partition):\n",
            "attack_cat\n",
            "Normal            56000\n",
            "Generic           40000\n",
            "Exploits          33393\n",
            "Fuzzers           18184\n",
            "DoS               12264\n",
            "Reconnaissance    10491\n",
            "Analysis           2000\n",
            "Backdoor           1746\n",
            "Shellcode          1133\n",
            "Worms               130\n"
          ]
        }
      ],
      "source": [
        "def dist(df, name):\n",
        "    vc = df[TARGET].value_counts().sort_index()\n",
        "    return pd.Series({\"partition\": name, \"normal\": vc.get(0, 0), \"malicious\": vc.get(1, 0),\n",
        "                      \"total\": len(df),\n",
        "                      \"malicious_%\": round(100 * vc.get(1, 0) / len(df), 2),\n",
        "                      \"ratio_mal_to_norm\": round(vc.get(1, 0) / vc.get(0, 1), 3)})\n",
        "\n",
        "class_table = pd.DataFrame([dist(train_raw, \"training-set\"), dist(test_raw, \"testing-set\")])\n",
        "print(class_table.to_string(index=False))\n",
        "print()\n",
        "print(\"attack categories (training partition):\")\n",
        "print(train_raw['attack_cat'].value_counts().to_string())"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "6da6e33c",
      "metadata": {
        "id": "6da6e33c"
      },
      "source": [
        "### Data Quality Checks"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "00402eeb",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:37:44.844027Z",
          "iopub.status.busy": "2026-09-08T06:37:44.843801Z",
          "iopub.status.idle": "2026-09-08T06:38:13.981965Z",
          "shell.execute_reply": "2026-09-08T06:38:13.980741Z"
        },
        "id": "00402eeb",
        "outputId": "6e6d5892-b384-43af-fc90-c8780a8c16e1"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "missing values  train: 0 | test: 0\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "infinite values train: 0\n",
            "negative values : none\n",
            "constant columns: none\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "exact duplicate records (ignoring id)  train: 74072 (42.2%)  test: 28380 (34.5%)\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "testing records whose feature vector also occurs in training: 8541 (10.4%)\n",
            "feature-identical training groups carrying conflicting labels: 229\n"
          ]
        }
      ],
      "source": [
        "print(\"missing values  train:\", int(train_raw.isna().sum().sum()),\n",
        "      \"| test:\", int(test_raw.isna().sum().sum()))\n",
        "print(\"infinite values train:\", int(np.isinf(train_raw[NUM_COLS].to_numpy(dtype=float)).sum()))\n",
        "neg = {c: int((train_raw[c] < 0).sum()) for c in NUM_COLS if (train_raw[c] < 0).any()}\n",
        "print(\"negative values :\", neg if neg else \"none\")\n",
        "print(\"constant columns:\", [c for c in FEATURES if train_raw[c].nunique() <= 1] or \"none\")\n",
        "\n",
        "dup_train = int(train_raw.duplicated(subset=FEATURES + [TARGET]).sum())\n",
        "dup_test  = int(test_raw.duplicated(subset=FEATURES + [TARGET]).sum())\n",
        "print()\n",
        "print(f\"exact duplicate records (ignoring id)  train: {dup_train} ({dup_train/len(train_raw):.1%})\"\n",
        "      f\"  test: {dup_test} ({dup_test/len(test_raw):.1%})\")\n",
        "\n",
        "key_tr = train_raw[FEATURES].astype(str).agg(\"|\".join, axis=1)\n",
        "key_te = test_raw[FEATURES].astype(str).agg(\"|\".join, axis=1)\n",
        "overlap = int(key_te.isin(set(key_tr)).sum())\n",
        "print(f\"testing records whose feature vector also occurs in training: {overlap} ({overlap/len(test_raw):.1%})\")\n",
        "\n",
        "conflict = int((train_raw.groupby(key_tr)[TARGET].nunique() > 1).sum())\n",
        "print(f\"feature-identical training groups carrying conflicting labels: {conflict}\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "8a4e0a90",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:38:13.984985Z",
          "iopub.status.busy": "2026-09-08T06:38:13.984743Z",
          "iopub.status.idle": "2026-09-08T06:38:14.153619Z",
          "shell.execute_reply": "2026-09-08T06:38:14.151743Z"
        },
        "id": "8a4e0a90",
        "outputId": "ec238c54-eb37-4c87-a270-a00972ddb64c"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "proto    train levels: 133  test levels: 131  unseen in test: []\n",
            "         top: {'tcp': 79946, 'udp': 63283, 'unas': 12084, 'arp': 2859, 'ospf': 2595}\n",
            "service  train levels:  13  test levels:  13  unseen in test: []\n",
            "         top: {'-': 94168, 'dns': 47294, 'http': 18724, 'smtp': 5058, 'ftp-data': 3995}\n",
            "state    train levels:   9  test levels:   7  unseen in test: ['ACC', 'CLO']\n",
            "         top: {'INT': 82275, 'FIN': 77825, 'CON': 13152, 'REQ': 1991, 'RST': 83}\n"
          ]
        }
      ],
      "source": [
        "for c in CAT_COLS:\n",
        "    tr_lv, te_lv = set(train_raw[c]), set(test_raw[c])\n",
        "    print(f\"{c:8s} train levels: {len(tr_lv):3d}  test levels: {len(te_lv):3d}  \"\n",
        "          f\"unseen in test: {sorted(te_lv - tr_lv)}\")\n",
        "    print(f\"         top: {train_raw[c].value_counts().head(5).to_dict()}\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "856dfcf7",
      "metadata": {
        "id": "856dfcf7"
      },
      "source": [
        "The `service` column uses `-` as an explicit placeholder for *no application-layer service identified*. It is a legitimate category rather than a missing value and is kept as its own level. The `state` column contains levels in the testing partition that do not occur in the training partition, so the encoder must tolerate unseen categories at inference time."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "79c284ed",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:38:14.156690Z",
          "iopub.status.busy": "2026-09-08T06:38:14.156459Z",
          "iopub.status.idle": "2026-09-08T06:38:14.518167Z",
          "shell.execute_reply": "2026-09-08T06:38:14.517417Z"
        },
        "id": "79c284ed",
        "outputId": "c8cbe8f3-59ff-400b-b2fd-68fe0ff7faa1"
      },
      "outputs": [
        {
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAABmAAAAGmCAYAAABr60tmAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAQ6wAAEOsBUJTofAAA3vpJREFUeJzs3XlclFX///EXyKIIieSCuWuCC+CaC7nvGm4obuCSW5hSmeZSZrdlmmZakmsqmKaWuNsd7lruuXw1dxPNpcQFN0REnPn94W/mdhpQEHRU3s/Hw4fOuc51zue6mJjTfK5zjp3RaDQiIiIiIiIiIiIiIiIimcbe1gGIiIiIiIiIiIiIiIi8aJSAERERERERERERERERyWRKwIiIiIiIiIiIiIiIiGQyJWBEREREREREREREREQymRIwIiIiIiIiIiIiIiIimUwJGBERERERERERERERkUymBIyIiIiIiIiIiIiIiEgmUwJGREREREREREREREQkkykBIyIiIiIiIiIiIiIiksmUgBEREREREREREREREclkSsCIZBFdunShfv36GWrD29uboUOHZlJEL5703p+hQ4fi7e39BCMSERGRB2ks83Aay4iIyNOwc+dOvL29WbJkia1DeeE8K/f2999/x9vbm3379j31vs+dO4e3tzfh4eGP3caSJUvw9vZm586dmRjZi+Nx7s/THIffvHmTqlWrMn369KfS36MoASNiA97e3mn+Y+sPTfmfc+fOER4ezpEjR9J8TmRkpH6GIiKS5dhqrPM4n9VZicYyIiIvnrt37+Lv74+3tzfffPNNqvXCw8NZt25diseWLFlCZGTkE4rw+aFxROYwGAx8/vnn1KtXj4oVK5rLdX+fL+vWrUtXEutZ+vm6ubnRq1cvpk+fzqVLl2wdDnZGo9Fo6yBEsprly5dbvI6JiWHatGlUqVKF9u3bWxyrVKkShQsXznCfSUlJADg5OT12G3fu3MHe3h5HR8cMx/M82rlzJ127dmXMmDEEBgZaHU/p/tSvX5+CBQsyd+5cq/p3797FYDDg7Oz8ROMWERF52mwx1oHH+6zOSjSWERF58axevZp33nmHokWLcufOHTZs2EC2bNms6nl7e9OmTRu++OILq2NdunTh/PnzbNiw4WmE/MjPI1t5VuNKD4PBwN27d3FwcEjxffA0rFmzhrCwMObNm8dr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Q0hICJcuXWLhwoV07tyZ7777jurVq1uck9Jn/cMMGzaMZcuW0aBBA1q0aAHA2rVr6devH//5z3/o1KkTAL///juhoaGULFmSnj174u7uzuXLl9m3bx+HDx9+5KwW0xfy5cuXtyhP6zht/fr1zJkzh44dO9K+fXtMO2ccO3aM1atX06BBA9q2bYvRaGTXrl1Mnz6dw4cP89133z00LpNff/2VefPm0bFjR9q0acP27dv58ccfAfj000/T1EZaxy3r16+nf//+5MmThz59+vDSSy+xfv16evXqlaZ+HjRv3jxiY2Pp2LEjuXLlYv369Xz77becOXOGL7/80lwvPf+9mowbN47bt2/TunVrPDw88PT0pEyZMkRERLB7927GjRtnrlupUqUU43vccfg333zDlClT8PLyol+/fhiNRlauXMn777/P2bNnLcafkP7vME17EO3cudPqofSnyigiNrdjxw6jl5eXcciQIRblISEhRi8vL+OXX36Z4nm3bt2yKjt+/LixXLlyxv/85z9WbdWrVy/F9qdNm2ZRvmrVKqOXl5dx4cKFFuUpxejl5WX09vY27tmzx6L8448/Nnp5eRljYmLMZRMmTDB6eXkZ582bZ1F3zZo1Ri8vL6OXl1eK1/lv9erVM3p5eRlnzpyZYjsPxmgwGIwJCQlWbWzdutXo5eVl/O6776yux8vLy7h582arc0w/p8WLF6cYV0r3p169esaQkJAU6w8ZMsTqmjt37mz09vY27t6926I8PDzc6OXlZZw8ebK5bPHixUYvLy9jixYtjHfu3DGX37p1y1i1alVjhw4dUuxXRETkaUtprHPo0CGjt7e38bPPPrOq/+mnnxpLly5tPHPmjNFoNBrnzJlj9PLyMv7f//1fmvpJz2e1xjKW52osIyLyfEhOTjbWqlXL2KNHD3PZyZMnU/x/fKMx5d/xJil9X2CS0vcORqPR+P777xvLlCljvHjxorls5syZRi8vL+Nnn31mNBgMFvXv3btn/veDn0cGg8H4xRdfGL28vIxjxoyxOi8lBoPBGBAQYCxbtqxx//79Vscf7Cs98T/sczI945br168bK1SoYGzQoIHx5s2b5np37twxtm3b1ujl5WWcNGmSuXzRokVGLy8v4/Dhwy3ajYmJMfr4+BgbN25scU3p/axfu3at0cvLyxgREWFV/6233jJWqlTJHOfo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6dKlC23atMFoNLJlyxb+/PPPdD8J9Oqrr5IzZ07mz59P9uzZeemll/Dw8HjotO7y5csTFRXF119/TcmSJbG3t6devXqpPg00fPhwgoOD6datGx07dqRw4cLs2bOHVatWUbp0ad588810xSwiIvKs8vX15b333uPrr78mICCAgIAAPD09uXLlCsePH2f9+vX8/PPPFCpUiKlTp/Lbb79Rr149ChUqRLZs2fj999/ZvHkz9erVM3+mP85ndXpoLKOxjIiIrW3bto1z587RvXv3VJ84f/3113FzcyMqKsq8YXWFChXYvn07M2bM4JVXXsHOzo433ngDuP+7fuPGjXz66adUrFiRbNmyUb16dV5++WVq1arFypUrcXJyonz58ly8eJHFixfz8ssvW/XbtWtXNm3aRGRkJIcPH6Z27dq4urpy+vRptm7dyqpVq1KM19fXl++//54ePXoQEhJCRESEeSZFSuzs7BgzZgzdunWjU6dOtG3bltKlS3P79m3+7//+j8KFC/PBBx/g6uqarvgf9jmZnnHLSy+9xPvvv8/nn39OUFAQbdq0wdHRkVWrVpkfsHjwZ9e6dWtWrFjBDz/8wN9//02tWrW4dOkSCxYswGg0MnLkyAzNHmnSpAnt27fnp59+4ujRozRs2JC8efMSGxvLoUOH+PXXXzl06BAAH3/8Mf/88w+vv/46BQsW5N69e2zcuJETJ04QEhLyyL48PDyoXr06v/76q9XeGxkZpzVt2pQFCxbwzjvv8Prrr3P9+nVWrlz5TK7+AveXyho+fDhhYWG0bduWDh06kCtXLtatW0dCQgKQvhkjJUqUoH379nTq1Mnczo4dO3jjjTeoXr06QLrf749Svnx55s2bx8iRI6lTpw6Ojo74+fmlOislvT/fokWLEhoaypQpU2jfvj0tWrTAaDSyYsUKjh8/bt5uISM2bdqEu7s7/v7+GWono5SAEXlOVaxY0bwOZ3h4OE5OTlSqVIkffviBkSNHprjZlq299NJLzJ8/ny+//JI1a9bw888/U7ZsWb777jvmzJmTrimRnp6ehIeHM27cOMaNG4ednR21a9dmyJAhFChQwFyvefPmJCQkMGfOHL788kty5syJv78/8+fPp3PnzumKP3v27EycOJGvv/6a0aNHk5SURNWqVR86WBgwYADXr19n/vz53LhxA6PRyPr161P90qJM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iIiIiIiIiIiIiIhIJnOwdQAiIiIiIiIiIiIvKnt7O35cHmnrMEREsjzvsl5PvU8lYERERERERERERJ6gKtUq2ToEm0hISADAxcXFxpE8fVn52kHXn5WvPytfe0q0BJmIiIiIiIiIiMgTYjQabR2CzZw5c4YzZ87YOgybyMrXDrr+rHz9WfnaU6IEjIiIiIiIiIiIiIiISCZTAkZERERERERERERERCSTKQEjIiIiIiIiIiIiIiKSyRxsHYCIiIiIiIiIiMiLys7OztYh2EyRIkVsHYLNZOVrB11/kSJFuHPnjq3DkGeAEjAiIiIiIiIiIiJP0B+7/7B1CCLyFJXwLoGzs7Otw5BngBIwIiIiIiIiIiIiT4jRYOSd9u/aOgwReYom/fQNJcuWtHUY8gzQHjAiIiIiIiIiIiIiIiKZTAkYERERERERERERERGRTKYEjIiIiIiIiIiIiIiISCZTAkZERERERERERERERCSTKQEjIiIiIiIiIiJZypIlS/D29ubcuXO2DkVERF5gDrYOQEREREREREREnh9xcXFERkayceNGzp07R3JyMvny5aNy5coEBgZSvXp1W4coIiLyTFACRkRERERERERE0uSPP/7grbfe4ubNmzRv3pyOHTvi5OTEuXPn2LBhA926dWPGjBnUqVPH1qE+VKtWrXjjjTdwcnKydSgiIvICUwJGREREREREREQe6caNG/Tr1w97e3uWLVtGyZIlLY4PGDCANWvWkDNnThtF+GgJCQm4uLiQLVs2smXLZutwRETkBac9YERERESeYStWrMDb2xtfX1+rYydPnqRXr15UrFiRqlWrMnDgQC5fvpxiO1FRUTRv3hxfX18aNWpEZGQkRqPRqt6NGzcYMWIE1atXp0KFCnTp0oU//vgjxTb37t1L586dKV++PP7+/owcOZJbt25l7IJFRETkmbVw4UJiY2P58MMPrZIvJo0bN6ZKlSoWZRcvXuSjjz7i9ddfx8fHh2bNmjF//nyLOjt37sTb25tVq1Yxbdo0ateuja+vL926deOvv/6y6ufAgQP07t2bypUr4+fnR6dOndixY4dFnfDwcLy9vTl+/DgffPABVatWJSAgAEh9D5g//viD0NBQqlatSvny5QkICGD69OnpvlciIiKgGTAiIiIiz6xbt27x5Zdf4uLiQnJyssWxCxcuEBwcjKurKwMG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cnJi9uzZbNy4EU9PT4YOHUr37t0t6mXLlo0ZM2bw5ZdfMnfuXBITE/H19WX06NGULFnSom65cuWIiIjgq6++YsyYMbi4uBAYGMigQYOsNlgbNGgQ7u7uLFy4kKVLl1K0aFHGjh1L69atM++miYiIiIiFhMS7nP3nqq3DkBdI4QK5ccmuB6hEREREROTRntkEzIYNG9JUr1SpUsyaNStNdYOCgixmxqQmV65cjBo1ilGjRj2ybpUqVayWNkuJvb09ffr0oU+fPmmKVUREREQy7uw/Vxk5da2tw5AXyCd9G+FdPJ+twxARERERkefAc70HjIiIiIiIiIiIvLiWLFmCt7c3586dS/e54eHheHt7P4GoRERE0uaZnQEjIiIiIiIiIiLPhiVLljBs2LBUj3/33XfUrl37KUb0eH744Qdy5MhBYGCgrUMREZEsQAkYERERERERERFJk7CwMAoXLmxVXrp0aRtE83B9+/a1Wgp+wYIF5M6dWwkYERF5KpSAERERERERERGRNKlZsyYVKlSwdRhp4uDggIODvvoSERHb0R4wIiIiIiIiIiKSYab9WhYuXGhRPm/ePLy9vfn5558BOHfuHN7e3syYMYO5c+dSv359/Pz86NixIwcOHEhTX6tXryYwMBA/Pz+qVavG+++/z99//21R5997wNSvX58TJ06wa9cuvL298fb2pn79+ubjP/zwAy1atKBChQpUrlyZVq1aWV2LiIhIeugxABERERERERERSZObN28SFxdnVe7h4UFgYCBr165l7NixvP766xQuXJjTp08zfvx4mjVrxhtvvGFxzsqVK7lx4wadO3fGYDDwww8/0L17d5YuXUrRokVTjWH58uUMHjyYcuXK8f7773P16lW+//579uzZw9KlS/Hw8EjxvA8//JDPPvsMFxcXQkNDAciZMycAixYt4tNPP6VJkyYEBweTnJzMiRMn2LdvHx07dnzc2yUiIlmcEjAiIiIiIiIiIpImvXr1SrH8wIEDODs789lnnxEQEMCHH37I7NmzGTp0KK6urnzyySdW55w+fZpffvmFQoUKAdC0aVMCAgIIDw9n/PjxKfZz9+5dxo0bR8mSJZk/fz7Zs2cHwN/fn65du/Ldd98xZMiQFM9t2LAhX3/9Nblz56ZVq1YWxzZt2kSpUqWYNGlSmu+FiIjIoygBIyIiIiIiIiIiaTJ8+HBKlixpVe7o6AhAnjx5+PTTTwkLCyM4OJj9+/czbdo0cufObXVOvXr1zMkXgOLFi1OzZk02b96cav8HDx7k8uXLhIaGmpMvANWqVaNcuXJs2rQp1QTMw7i5uXHhwgUOHDiAn59fus8XERFJiRIwIiIiIiIiIiKSJr6+vlSoUOGhdRo3bkyTJk1YvXo1rVu3pl69einWK1asWIplmzZt4saNG7z00ktWx037vBQvXtzqWMmSJVm9evWjLyIFvXv3Zvv27QQFBVG4cGH8/f1p3rw51atXf6z2REREAOxtHYCIiIiIiIiIiLw4bty4wf79+wE4efIk9+7ds3FEj1ayZEmio6P55ptvqF69Ops2baJbt26MHDnS1qGJiMhzTAkYERERERERERHJNJ999hlxcXF88MEH/PHHH0yfPj3FeqdPn06x7KWXXkpx9gvAK6+8AsCpU6esjsXExFCwYMGHxmZnZ5fqsRw5ctC0aVNGjRrFhg0baNGiBfPnzyc2NvahbYqIiKRGCRgREREREREREckUa9euZcWKFbz77rv06tWLdu3aMWXKFI4ePWpVd+PGjZw7d878+tSpU2zZsoXatWun2r6Pjw958uThxx9/5M6dO+by3bt3c/DgQerWrfvQ+HLkyMH169etyq9evWrx2sHBAS8vL+D+jB4REZHHoT1gREREREREREQkTbZs2cJff/1lVe7n50euXLn45JNPqFixIj169ABg2LBhbN++nSFDhrBo0SKcnJzM5xQrVozg4GCCg4MxGAzMmzcPJycn+vfvn2r/jo6OfPDBBwwZMoTOnTvTsmVL4uLimDt3Lvnz56d3794Pjd/Hx4f58+fz7bffUqxYMVxcXKhfvz49e/bEw8ODypUrkydPHs6cOcO8efPw9vamZMmSj3m3REQkq1MCRkRERERERERE0iQ8PDzF8o8//phdu3aRkJDAF198gb39/UVXXF1dGT16NN27d2fy5MkMGDDAfE6LFi3IkSMHERERXLp0ibJly/Lhhx9SvHjxh8bQunVrcuTIwfTp0xk/fjw5cuSgTp06DBo0CA8Pj4ee269fP/755x8iIiKIj4+nYMGC1K9fnw4dOrBq1SrmzJlDfHw8+fLlo23btvTt29d8LSIiIumlBIyIiIiIiIiIiDxUYGAggYGBD60TEhKSYnn16tVTXIIMoEuXLnTp0iXd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Leq5uroyd+5cRo8ezdSpUzEYDFStWpWhQ4ea96AxqVevHt9++y2TJ0/ms88+w93dnT59+tCvX78ndl9EREREREREshIHBwd69uxp9VBkRtWsWZMKFSoAEBQURO7cufnuu+9Yv349zZs3z9S+nhdOTk62DkFEROS5kOEETO7cuTl16lSqx2NiYnjppZcy2k2qHB0d6d+/P/37939ovSpVqlgsLZYae3t7+vTpQ58+fR5Z19PTk0mTJqUpzoYNG9KwYcM01RURERERERGRZ1OVKlX47rvvOHv2rLns1KlTfP311+zYsYOEhARKlixJaGioxRLlADdv3mTKlCmsWbOG2NhYcufOTdWqVRk8eDD58+cH7j/oOnHiRDZs2MCNGzcoWrQoXbt2pX379uZ2zp07R4MGDRg4cCDu7u7MmDGDCxcu4O3tzSeffIKfn5+57tChQ/n5559Zt24dI0eOZPv27Tg7O9OmTRsGDRpEtmzZzHVnz57N2rVriYmJISEhgWLFitG1a1eCgoIsrsO0/8vcuXPNZf/973+ZNWsWp06dwmg04unpSUBAgPnh0+TkZGbMmMHy5cv5559/yJ49O0WLFqV37940btwYgKNHjzJnzhx+//13YmNjcXFxwd/fnw8++IBXXnnF3NeSJUsYNmwYc+fOZf369SxfvpzExERef/11PvvsMzw8PCzi3bp1K9OnT+fgwYMYjUaKFy9Op06dLK7rwIEDhIeHs3fvXu7evUu5cuV49913qV69elreFiIiIinKcALmtddeY9GiRYSEhFCwYEGLY+fPnycqKorXX389o92IiIiIiIiIiDzUlStXOHjwINeuXcNoNFod//fqFo/j/PnzAOaHTU+ePEnHjh3JkycPPXv2JGfOnKxdu5Z3332XcePG0apVKwASEhIICQnhxIkTtGnTBh8fH65du8bmzZv566+/yJ8/P3fu3KFbt27ExMTQuXNnihQpwrp16/j444+5du2a1cOi//3vf0lISKBDhw7Y2dkxc+ZMwsLCWLduncUy6kajkV69euHr68vgwYPZvn07s2fPpnDhwnTu3NlcLzIykrp169KsWTPs7OxYv349w4cPJzk5mU6dOqV6T7Zt28b7779P9erVGThwIPb29pw6dYq9e/ea63z77bdMmzaNdu3a4efnR0JCAkeOHOHAgQPmBMy2bds4deoUrVu3Jl++fJw5c4aFCxdy4MABVq1aRY4cOSz6HT16NLly5aJ///6cP3+eOXPm8Omnn/L111+b6yxbtoyhQ4dSsmRJevXqhbu7O8eOHWPTpk3mBMyuXbvo2bMnZcqUoV+/fjg4OLB8+XJ69uzJ7NmzqVatWprfHyIiIg/KcALmrbfeYt26dbRp04Zu3bpRtmxZAA4fPsz3339PUlISoaGhGQ5URERERERERCQlBoOBUaNG8dNPP3Hv3r1U6z1OAubmzZvExcWRlJTE/v37+fbbb3FycqJevXoAfP755+TLl4/FixeTPXt2AIKDg+nRowdfffUVLVu2xM7OjlmzZnH06FG+/vprmjVrZm6/b9++5mTRjz/+yPHjx/niiy9o06YNcH8P2p49exIeHm5eAs3kn3/+Yc2aNeTKlQuA4sWL8/bbb7NlyxZzfAB3796lSZMm5tVDOnXqRJs2bYiKirJIwKxevdoiydGlSxd69OjB7NmzH5qA2bRpEzlz5mTWrFkWM2r+XadOnTqMGjUq1XY6depEjx49LMrq169Pp06dWLNmjTmZZeLu7k5ERIR5eXmDwcDcuXO5efMmbm5uxMfH89lnn1G2bFnmz59v/vkA5ntuNBoZMWIElStXtmirY8eOtGnThokTJ7Jw4cJUYxYREXmYDCdgvL29CQ8PZ+jQoYSHh5s/qIxGIx4eHoSHh1OmTJkMBypPR0LiXc7+c9XWYcgLpHCB3Lhkd3x0RRERERERkccUGRnJ/PnzCQgIoGbNmgwdOpSBAweSM2dO5syZQ65cuRgwYMBjtf3gHrMAhQoV4ssvv8TT05Nr166xbds2+vfvT0JCAgkJCeZ6tWrVYuvWrZw6dYoSJUqwevVqSpUqZZF8MTF9l7J582Y8PDxo2bKl+Vi2bNno1q0b27dvZ/v27Rb7zjRp0sScfIH7y6MBFsujmTy4hBlA5cqVWbFihUWZKfly9+5dbt26hcFgoFq1amzdutWc1EiJm5sbt2/fZsuWLdSpUyfVOidOnODUqVMUL148xToPJn9u3bpFUlISxYoV46WXXuLQoUNWCZh27dpZ7O1bpUoVIiMjOX/+PKVLl2bLli3Ex8fTp08fi+QL/O+eHz16lFOnTtGrVy+uXrX8PsTf35958+Zx+/Ztq9k3IiIiaZHhBAxAnTp12LhxI1u2bOH06dMAFCtWjJo1a1p9wMmz7ew/Vxk5da2tw5AXyCd9G+FdPJ+twxARERERkRfY0qVLef311xk/frz5S3QfHx9q1KhBy5YtadmyJUePHqVGjRrpbnv48OGULFmSmzdvsnTpUn7//Xfzdx1nzpzBaDQSHh5OeHh4iufHxcVRokQJzpw5Q4MGDR7a1/nz5ylatKjVLJKSJUsC9/d+eVCBAgUsXpuSMTdu3LAod3R0JF++fFZ1r1+/blG2bt06pkyZwtGjR61mEj0sAdO5c2eio6Pp06cP+fLlw9/fn8aNG1O/fn1zouOdd96hX79+NG3alFdffZWaNWsSEBCAr6+vuZ3r16/z1VdfsXr1aq5du2bV/7/9+/pNy8KZrv/MmTMAlCpVKsW4AfO+xh999FGqda5du6YEjIiIPJZMScAAZM+eXZvMi4iIiIiIiMhTd+bMGdq1aweAvb09gDmB4OrqSmBgIIsWLeLNN99Md9u+vr5UqFABgIYNGxISEsL7779PdHQ0BoMBgO7du6c68+NhX/5nVGrLff17/5sHZ4mkZvfu3fTv35/KlSszcuRI8uXLh6OjI5s3byYyMtJ8rSl5+eWXWbp0Kdu3b+fXX3/lt99+Y9myZdSrV4+pU6diZ2fHa6+9xtq1a80P8C5btow5c+YwcOBAevfuDcB7773H3r17efPNNylbtiw5c+bEzs6OAQMGpLinT1qv/2FMdQcOHIiPj0+KdTw8PNLcnoiIyIMyLQFz7tw5tm/fzuXLl2nRogWFChUiKSmJy5cvkydPHpycnDKrKxEREZEX0oEDB1i2bBk7d+7k/PnzuLu7U758ed577z2rpTpOnjzJmDFj2LNnD46OjtSqVYthw4aRJ08eq3ajoqKYPXs2Z8+exdPTk+DgYLp162b1ZcyNGzcYP348a9asITEx0bxR74NPpprs3buX8ePHc+jQIXLmzEmTJk0YNGgQOXPmzNybIiIikgaOjo44OzsD/1vG6sHlpPLnz8/58+cz3E+2bNkYOHAgwcHBzJs3j7Zt25rL/f39H3pukSJFOHHixEPrFCxYkMOHD3Pv3j2L5EJMTAxwf/mzJ2X16tU4Ozsze/Zs870E2LlzZ5rOd3Jyok6dOtSpUwej0chXX33Fd999x969e6lcuTJwf9ZN69atad26NYmJifTu3Zvw8HB69OhBfHw827ZtIywszLxXDcCdO3esZvSkVZEiRQA4ceKEeRbRvxUuXBiAnDlzPvJnKCIikl72mdHIhAkTaNKkCR9//DGTJk0yrzWalJTEG2+8wYIFCzKjGxEREZEX2syZM1mzZg01atTgo48+on379uzevZvAwECOHTtmrnfhwgWCg4M5ffo0AwYMoGfPnvz222+8+eab3Llzx6LNhQsX8tFHH1GyZElGjBhBpUqVGDNmDNOmTbOoZzAY6NOnDytXriQ4OJgPPviAq1ev0rVrV06ePGlR98iRI3Tv3p2EhASGDBlCUFAQixcvtviyRERE5GkqUKCAeXkuJycnChYsyO7du83H9+/fb7F5fUZUqVKFihUrMmfOHFxdXalWrRqLFi0iNjbWqm5cXJz5302aNOHEiRP88ssvVvVMszDq1q1LXFwcK1euNB8zGAx8//33ODk5PdYSammVLVs27OzsLGa6XL9+ncWLFz/y3H/vnWJnZ0fZsmWB/y0d9u862bNnp0SJEty5c4fExERzwunfs1ceNfvmYWrWrImrqyszZswgMTHR4pipHx8fH4oWLUpkZCTx8fFWbTz4MxQREUmvDM+AWbRoETNmzCAkJIR69erRs2dP8zFXV1fq1avHxo0b6datW0a7EhEREXmhde/enfHjx1vMHG7evDktWrRg+vTpTJgwAYBp06Zx69YtFi9eTMGCBYH7y6O8+eabREVFERwcDEBiYiITJ06kVq1a5nXpg4KCuHfvHtOmTaNDhw7mJTWio6PZt28fEydONG/u26xZM5o0acKkSZP45ptvzDFNmDABNzc35s6da14LvlChQgwfPpzNmzenugSLiIjIk1KlShU2bdrEoEGDgPufn7NmzSIpKQmDwcDKlSutNqHPiB49ehAWFkZUVBT/+c9/6NSpEy1btiQoKIgiRYpw5coV9u/fz8mTJ1m79v4+qz179mTNmjUMHDiQrVu3Uq5cOW7evMmvv/7KO++8Q9WqVWnfvj0//fQTw4cP58iRIxQuXJh169axfft2Bg4cmGlJpJTUq1ePiIgI3nzzTVq1asX169f56aefyJMnD5cuXXroucOHD+fq1avUqFEDT09PYmNj+eGHH8ibNy9VqlQB7v9MXnvtNXx8fMidOzfHjh0jKiqKevXqmWfQVq1alZkzZ3L37l1eeeUV9uzZw++//467u/tjXZOrqysfffQRH374IW3btiUgIAB3d3f+/PNPYmNj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CyRgAAAAAABAofb444/r6tWrWrNmjX755RdduHBBOTk5FjE2NjYaO3ZsAfUQAAA8jEjAAAAAAACAQu3ChQuKiIjQgQMHZDKZZGNjI5PJJEnGaxIwAADgQbMt6A4AAAAAAADciylTpui3337Tu+++q2+//VYmk0mfffaZVq1apXbt2ikgIEA//vhjQXcTeXDixAn5+vpq2bJl96X+3r17q3fv3velbgAAzEjAAAAAAACAQi0xMVHPPvusunTpIldXV0mSnZ2dfHx89NFHH8ne3l4ff/xxwXaykIuLi5Ovr6+Cg4MLuisAABQaJGAAAAAAAEChdvr0aQUEBEiS7O2vrbaelZVlHH/qqaf03XffFUjfior4+HiVK1dOx44d0+7duwu6O/dszpw5mjNnTkF3AwBQxJGAAQAAAAAAhZqbm5syMzMlSS4uLrK3t9fp06eN487Ozjp//nwB9a7wO3XqlH766SeNGDFC3t7eio+PL+gu3TNHR0c5OjoWdDcAAEUcCRgAAAAAAFCoVaxYUceOHZN0bemxatWqKSEhQZKUk5OjNWvWqGzZsgXYw8Lt66+/lrOzs1q1aqX27dvrm2++0dWrVy1ifH199eabb+q7775Thw4dVLt2bT399NP6/vvvLeJOnjypd955R+3atVOdOnXUoEEDDRw4UAcPHrxlHzZv3ixfX1+tXbvW6ti6devk6+urjRs3SpLOnDmjkSNHqnnz5qpdu7aaNGmi/v3767fffjPOyW0PmNWrV+u5555TvXr1FBgYqHbt2mnatGl5ulYAAFyPBAwAAAAAACjUGjdurG+//dZICvTo0UObN29WmzZt1LZtW23btk1du3Yt4F4WXvHx8WrdurWcnZ319NNP68yZM9q8ebNV3M8//6x33nlH7du317/+9S9lZmZq6NChOnfunBHz66+/avv27QoODtbIkSMVERGhvXv3qnfv3hazlm7UuHFjlSlTJtfZN/Hx8fLy8tKTTz4pSRo6dKjWrFmjTp066a233lJERIQkGUm63GzZskWvvPKK3Nzc9Oqrr+q1115T06ZNtXPnzju8SgAAWLMv6A4AAAAAAADcixdeeEHPPvusTCaTJOn//u//dPnyZa1YsUK2trbq3r27nn/++QLuZeF04MABHTp0SK+88ookqXbt2qpUqZLi4+PVrFkzi9ijR49q1apVeuyxxyRJ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Vq2qAQMGaP/+/RbHy5UrJ5PJZMyqMfv9998t3nt6eqpYsWJW5ZJ09OhRoy5JevTRR+8oDgCA/EQCBgAAAAAAAJKu7fOyefNmOTg4yMfHR3Z2drKxsbGY6XLhwgV9+eWXFuc9+eSTcnV11ezZs5WRkWFxzGQyWbXj6uqqzz77TGXLllW/fv105MgR41izZs0kSQsWLLA458b3dnZ2atq0qRITEy2SNefPn9fy5ctVu3ZtlSpVSpLUsmVL7d27V9u3bzfiMjMzFRsbKy8vL9WqVeuOrg8AAHnBEmQAAAAAAAAPqU2bNumPP/6QdG1PlVWrVunYsWMaMGCAXF1d1bJlS8XExKhv377q2LGjLly4oCVLlqhUqVJKTk426nF1ddXIkSP173//W88995w6dOggd3d3HT58WElJSfrkk0+s2i5RooSio6MVFhamvn37auHChapQoYJq1qypDh06KDY2VqmpqapXr562bdumY8eOWdXx8ssva9OmTerZs6d69uwpJycnLVmyRKmpqYqKijLiXnjhBa1cuVIDBgxQ79695enpqfj4eB0+fFgffvih7O35igwAkP/47QIAAPAPcunSJc2ZM0e//vqrfv31V507d06vvvqqBgwYYBV75MgRjRs3Tjt27JCDg4OaNm2qN954w3jS83pxcXGKjo7Wn3/+KW9vb4WFhalPnz6ysbGxiLt48aI+/PBDrV27VhkZGfL399drr70mf39/qzp37typDz/8UHv37lXx4sUVHBysESNGqHjx4vl3QQAAwH01depU47WTk5OqVKmit99+W927d5ckBQUF6f3339esWbM0duxYeXt7q3fv3nrkkUf073//26Ku0NBQlSxZUrNmzdKsWbNka2urSpUqKSws7KbtlypVSnPnzlVYWJgiIiL0xRdfqEyZMho7dqw8PDz09ddfa/369QoKCtLs2bPVvHlzi/N9fHwUGxuriRMn6tNPP5XJZFLt2rU1ZswYNWzY0IgrWbKkYmNj9eGHHyo2NlaXL19WtWrVNHXqVD311FP5cSkBALBCAgYAAOAf5Ny5c5o2bZq8vb3l5+enzZs35xp36tQphYWFydXVVcOHD9fly5c1Z84cHTp0SHFxcXJycjJiFy1apLfeektt27ZV3759tX37do0bN06XL1/W4MGDjbicnBwNGDBABw8eVL9+/eTp6anY2FiFh4crLi5OPj4+Ruz+/fsVERGhKlWq6PXXX1dSUpJiYmJ07NgxxcTE3L8LBAAA8kVoaKhCQ0PvKLZTp07q1KmTVflzzz1nVda8eXOrJMn15s+fb1VWtmxZrV+/3qLMyclJo0aN0qhRoyzKDx48aHV+jRo19Omnn960TbMKFSpo8uTJt4wJCgrKtQ0AAO4GCRgAAIB/kNKlS+v7779XmTJldOLECbVu3TrXuJkzZ+rSpUv68ssvjU1j/f391bdvX8XFxRlPmmZkZGjSpElq2rSp8YRr165ddfXqVc2cOVPdunWTp6enJCkhIUG7du3SpEmT1L59e0lSu3btFBwcrClTplh8YfHRRx/Jzc1N8+fPl5ubmySpfPnyGjVqlDZu3HjLL14AAAAAAHgY2BZ0BwAAAPA3R0dHlSlT5rZxa9euVfPmzY3kiyQ1adJElSpVUkJCglG2bds2nT9/Xj169LA4PywsTBkZGdqwYYNRtmbNGnl4eCgkJMQo8/T0VLt27ZSYmGhsqJuWlqYtW7aoQ4cORvJFkjp27CgXFxd98803eR43AAAAAABFDQkYAACAQiYpKUlnz55V7dq1rY4FBARo3759xnvz6xtja9WqJVtbW4vY/fv3y8/PT7a2lreI/v7+yszM1NGjRyVdW/ojOzvbqk5HR0fVrFnTok4AAAAAAB5WLEEGAABQyJw+fVqS5OXlZXXMy8tLaWlpSk9Pl4uLi5KTkyVdW9rseo6OjnJ3dzfqkqTk5GQFBgZa1Wk+9/Tp0/Lz8zPqvFn75kTN3crJydGBAwfuqQ5Jqlix4j3XAeQmPT1dx48fL+huGPis437Jj896Tk6OVWIfeOjY2KhM2Cu3DXMs/egD6AwA4EEiAQMAAFDIZGZmSrqWRLmRk5OTpGt7v7i4uCgjI0MODg6ysbHJNdZcl/mc3Oo0l5mXIDP/fbP2r68TAADgYWcySc4VfAq6GwCAAkACBgAAoJAxJ1mysrKsjpmTH87OzsbfV65cyfUJ5MzMTKMuc2xudZrLrq/zVu1fX+fdsLW1VY0aNe6pjr+l5VM9wN9cXFzy8TOaPzIKugMokvLjs75r16586g1QeJlMpoLuAgCggDAPGAAAoJAxLwlmXgrsesnJyXJ1dZWLi4ukv5cJuzE2KytL58+ft1iazMvLK9c6zcuUmWNvVqe57MblzgAAAAAAeBiRgAEAAChkypQpI09PT+3Zs8fq2O7du1WzZk3jvfn1jbF79uxRTk6ORWyNGjW0b98+5eTkWNXp5OSkKlWqSJKqV68ue3t7qzqzsrK0f/9+izoBAAAAAHhYkYABAAAohNq2bauNGzfq5MmTRtnWrVt17NgxhYSEGGWNGjWSu7u7YmNjLc6PjY2Vk5OTWrZsaZSFhITo3LlzSkhIMMpSUlKUkJCgFi1aGEuPubm5qXHjxlq5cqXS0v5e4mvFihVKT0+3aB8AAAAAgIcVe8AAAAD8wyxYsEAXL15UamqqJGnbtm3Kzs6WJPXu3Vtubm4aNGiQEhIS1KdPH4WHhysjI0Nz5sxR1apV1bVrV6MuZ2dnDR06VKNHj1ZkZKSaNWum7du3Kz4+XpGRkfL09DRig4ODVbduXY0cOVJHjx6Vh4eHYmNjlZ2drWHDhln0cfjw4erevbt69eqlbt26KSkpSdHR0WrUqJFatGhx/y8SAABAIWFjY1PQXQAAFBASMAAAAP8w0dHRFjNbNm3apE2bNkmSnn32Wbm5uals2bJasGCBxo8fr0mTJsne3l7NmjVTVFSUnJycLOoLCwuTo6OjoqOjlZiYKG9vb0VFRSkiIsIizs7OTrNnz9aECRM0f/58ZWRkyN/fX2PHjpWPj49FbK1atRQTE6OJEydq3LhxcnFxUWhoqEaMGMGXDAAAANexsbFR1pkTVuX2Jbxk6+CUyxkAgKKCBAwAAMA/zPr16+8orlq1apozZ84dxXbt2tViZszNlChRQmPGjNGYMWNuG9ugQQOrpc0AAABwA5NJKYmLrIo9W3aXY6nyBdAhAMCDwh4wAAAAAAAAAAAA+YwEDAAAAAAAAAAAQD4jAQMAAAAAAAAAAJDPCnUCZvfu3Ro9erSefvpp1a1bVy1atNCwYcP0+++/W8UeOXJE/fv3V2BgoB5//HG9+uqrOnPmTK71xsXFqX379vL399dTTz2luXPnymQyWcVdvHhRb775pho1aqS6deuqd+/e+vXXX3Otc+fOnerZs6fq1KmjJk2a6J133tGlS5fu7QIAAAAAAAAAAIB/JPuC7sC9+Oyzz7Rz506FhITI19dXycnJWrhwoUJDQ7Vo0SL5+vpKkk6dOqWwsDC5urpq+PDhunz5subMmaNDhw4pLi5OTk5ORp2LFi3SW2+9pbZt26pv377avn27xo0bp8uXL2vw4MFGXE5OjgYMGKCDBw+qX79+8vT0VGxsrMLDwxUXFycfHx8jdv/+/YqIiFCVKlX0+uuvKykpSTExMTp27JhiYmIe3AUDAAAAAAAAAAAPRKGeARMREaH169dr1KhR6tq1q1588UUtXLhQ2dnZmjVrlhE3c+ZMXbp0SfPmzVN4eLgGDhyojz/+2EjAmGVkZGjSpElq2rSppk6dqq5du+r999/XM888o5kzZyolJcWITUhI0K5du/Tee+8pMjJSYWFh+vzzz2Vvb68pU6ZY9POjjz6Sm5ub5s+fr549e2r48OH6z3/+oy1btmjjxo33/0IBAAAAAADcoVatWun555/P1zp9fX01depU4/22bdvk6+urbdu25Ws7t7Ns2TL5+vrqxIkTD7RdAMDDqVAnYOrVqydHR0eLskqVKqlatWo6fPiwUbZ27Vo1b95c5cqVM8qaNGmiSpUqKSEhwSjbtm2bzp8/rx49eljUGRYWpoyMDG3YsMEoW7NmjTw8PBQSEmKUeXp6ql27dkpMTFRGRoYkKS0tTVu2bFGHDh3k5uZmxHbs2FEuLi765ptv7u0iAAAAAAAA3KHDhw9r+PDhatWqlfz9/fXkk0+qV69eFskRAACQPwr1EmS5MZlMOnPmjCpXrixJSkpK0tmzZ1W7dm2r2ICAAK1fv954v2/fPkmyiq1Vq5ZsbW21b98+hYaGSrq2rJifn59sbS1zWP7+/lq8eLGOHj0qPz8/HTx4UNnZ2VZ1Ojo6qmbNmkab9yInJ0cHDhy453oqVqx4z3UAuUlPT9fx48cLuhsGPuu4X/Lrs56Tk2P1+wUAAAC4V7t27VJ4eLhKly6t0NBQlSlTRklJSdq7d69mz56tyMjIgu4iAABFSpFLwMTHxyspKUlDhgyRJJ0+fVqS5OXlZRXr5eWltLQ0paeny8XFRcnJyZKk0qVLW8Q5OjrK3d3dqEuSkpOTFRgYaFWn+dzTp0/Lz8/PqPNm7R89evRuhgkAAAAAAJAnM2bMkIuLi+Li4uTh4WFx7MyZMwXUKwAAiq4ilYA5cuSIRo8erbp16+q5556TJGVmZkqS1VJlkuTk5CTp2t4vLi4uysjIkIODg2xsbHKNNddlPie3Os1l5iXIzH/frP3r67xbtra2qlGjxj3Xc01aPtUD/M3FxSUfP6P5I6OgO4AiKb8+67t27cqH3gAAAACWjh8/Lh8fH6vkiySVKlXKqmz79u0aP368Dh48qNKlSysyMlKdOnWyiElNTdUnn3yiNWvW6MyZMypTpoxCQ0M1aNAg2dnZ5bmPv//+u6ZOnaqtW7cqLS1NZcuWVfPmzTVy5Egj5sCBA5o4caJ27NihnJwc+fv7a9iwYWrQoIFFXb/99pveffdd/fzzz3J3d1f37t2tHro127Rpk2bOnKm9e/dKurbs/YgRI1SzZs08jwEAALMik4BJTk7WwIED5ebmpilTphi/5M1JlqysLKtzzMkPZ2dn4+8rV67kuvRLZmamUZc5Nrc6zWXX13mr9q+vEwAAAAAA4H4pV66cdu7cqQMHDtz2waETJ05o2LBh6tKlizp37qwvv/xSUVFRqlWrlqpVqybp2kOn4eHhOnnypLp3765y5cpp9+7d+uSTT/TXX3/pvffey1P/fvvtN/Xo0UO2trb6v//7P1WoUEEnT57U6tWrjQTMkSNH1LNnT7m4uOj555+Xk5OTli5dqoiICMXExKhhw4aSrn1PFB4erqtXr+qFF15Q8eLFtXjx4ly/h/n666/1r3/9S0888YReeeUVZWVlacmSJerZs6fi4uLk4+OTp3EAAGBWJBIwqampeuGFF5SamqqFCxeqTJkyxjHzkw3mpcCul5ycLFdXV7m4uEj6e5mw5ORkizqysrJ0/vx5i6ckvLy8cq3TvEyZOfb6OnNr/2ZPXgAAAAAAAOSn/v37q1+/furcubNq166tBg0aKCgoSI0bN7ZKTBw7dkwLFiwwEhrt2rVT8+bNtWzZMr3++uuSpLlz5+ro0aNatmyZkaTo1q2bypcvr48//ljPP/+8qlSpcsf9Gz16tK5evaqvvvpKFSpUMMqHDx9uvJ40aZKysrK0bNkyVapUSZIUGhqqdu3aady4cVq2bJkk6dNPP1VKSoqWLl2qgIAASVLnzp0VHBxs0WZ6erreffddde7cWePGjTPKu3TpopCQEE2fPl0TJ0684zEAAHC9Qr/Db2ZmpgYNGqRjx45p5syZqlq1qsXxMmXKyNPTU3v27LE6d/fu3RZTSc2vb4zds2ePcnJyLGJr1Kihffv2KScnx6pOJycn4wajevXqsre3t6ozKytL+/fvZyorAAAAAAB4IBo3bqyFCxeqRYsW+u233xQdHa2BAweqSZMm+vLLLy1iK1WqZCRfJMnT01OVK1fWn3/+aZR98803ql+/vjw8PJSSkmL8adKkiSTpxx9/vOO+paSk6Mcff1Tnzp0tki+SjKXir169qk2bNqlly5ZG8sXct9DQUO3du9fYy2bjxo3y9/c3ki+S5OHhoQ4dOljUvWXLFl24cEHPPPOMxRiuXr2qBg0aaNu2bXc8BgAAblSoZ8BcvXpVL7/8sn7++WdNnz5dgYGBuca1bdtWy5Yt08mTJ1WuXDlJ0tatW3Xs2DH17t3biGvUqJHc3d0VGxur1q1bG+WxsbFycnJSy5YtjbKQkBCtWbNGCQkJat++vaRrNwsJCQlq0aKFsfSYm5ubGjdurJUrVyoyMlKurq6SpBUrVig9PV0hISH5e1EAAAAAAABuol69epoxY4auXLmiI0eOKDExUXPmzNG///1vPfroo2rcuLEk6dFHH7U6t0SJErpw4YLx/tixYzpw4IBxzo3Onj17x/0yJ3bMy5vlJiUlRZcvX1blypWtjpkfhD158qRKlSqlv/76S23btrWKuz5xI13bc0aS+vbtm2ubNy5RDwBAXhTqBMz48eO1fv16tWzZUufPn9eKFSssjnfs2FGSNGjQICUkJKhPnz4KDw9XRkaG5syZo6pVq6pr165GvLOzs4YOHarRo0crMjJSzZo10/bt2xUfH6/IyEh5enoascHBwapbt65Gjhypo0ePysPDQ7GxscrOztawYcMs+jF8+HB1795dvXr1Urdu3ZSUlKTo6Gg1atRILVq0uH8XCAAAAAAAIBcODg6qUaOGatSoobp16yoiIkLx8fFGMuVOEg85OTlq1KiRBg4cmOvxG2ey/BOZTCZJ175jun45egAA8kOhTsAcOHBAkpSYmKjExESr4+YETNmyZbVgwQKNHz9ekyZNkr29vZo1a6aoqCirNU7DwsLk6Oio6OhoJSYmytvbW1FRUYqIiLCIs7Oz0+zZszVhwgTNnz9fGRkZ8vf319ixY602Z6tVq5ZiYmI0ceJEjRs3Ti4uLgoNDdWIESOMabQAAAAAAAAFwbxMl3lf2ztVsWJFXbp0yVhy7F6YkzW//fbbTWM8PT1VrFgxY9bK9Y4ePSpJxsonjz76qP744w+ruGPHjuXarqenZ76MAwCA6xXqBMz8+fPvOLZatWqaM2fOHcV27drVYmbMzZQoUUJjxozRmDFjbhvboEEDxcbG3lH7AAAAAAAA+W3r1q0KCgqymt2yceNGSX8v43Wn2rVrp6lTp2rjxo1q3ry5xbG0tDQ5OjrK0dHxjury9PTU448/rq+++kp9+/a1mD1jMplkY2MjOzs7NW3aVImJiTp+/LgqVqwoSTp//ryWL1+u2rVrq1SpUpKk5s2ba968edq9e7eRYDp37pxWrlxp0W7Tpk31yCOPaObMmWrcuLFVf1NSUixWRAEAIC8KdQIGAAAAAAAAd+a9995Tenq62rRpIx8fH+Xk5Gjfvn1asWKF3N3d1adPnzzV179/fyUmJurFF19Up06dVKtWLWVmZurQoUNKSEjQ119/rfLly99xfaNGjVLPnj313HPPqVu3bqpQoYL++usvrV69WmvXrpUkvfzyy9q0aZN69uypnj17ysnJSUuWLFFqaqqioqIs+rZixQr1799f4eHhcnFx0eLFi+Xt7W2xj42rq6veeecdjRgxQp07d9bTTz9t7CHzww8/qFq1aho/fnyergsAAGYkYAAAAAAAAB4Cr732mtauXatNmzYpLi5OWVlZKl26tJ555hkNGjQoT8kS6dpeuvPnz9esWbOUkJCgFStWqHjx4qpUqZJefPFFeXl55ak+X19fLVmyRJMnT9bixYuVkZGhsmXLqmXLlkaMj4+PYmNjNXHiRH366acymUyqXbu2xowZo4YNGxpxpUuX1ueff64xY8Zo9uzZcnd3V/fu3VW6dGmNHDnSot327durdOnSmjlzpmJiYpSZmanSpUurXr166tatW57GAADA9UjAAAAAAAAAPASaNWumZs2a3TZu/fr1uZbnthS8i4uLhg8fruHDh9+yzoMHD1q8DwoKsiqTriVYpkyZcsu6atSooU8//fSWMdK1hE5ufe7SpYtVWYMGDfTZZ5/dtk4AAPLC9vYhAAAAAAAAAAAAyAsSMAAAAAAAAAAAAPmMBAwAAAAAAAAAAEA+Yw8YAAAAAAAA4H6xsZFny+5WxfYlvAqgMwCAB4kEDAAAAAAAAHCfmEwmOZYqX9DdAAAUAJYgAwAAAAAAAO4Tk8lU0F0AABQQEjAAAAAAAAAAAAD5jAQMAAAAAAAAAABAPiMBAwAAAAAAAAAAkM9IwAAAAAAAAAAAAOQzEjAAAAAAAADAfWJjY1PQXQAAFBASMAAAAAAAAMB9QgIGAB5eJGAAAAAAAAAAAADyGQkYAAAAAAAAAACAfEYCBgAAAAAAAAAAIJ+RgAEAAAAAAAAAAMhnJGAAAAAAAAAAAADyGQkYAAAAAAAAAACAfEYCBgAAAAAAAPdk7dq18vX11erVq62OhYWFydfXV2vXrrU61r17dzVt2vRBdBEAgAeOBAwAAAAAAADuSf369SVJO3futCjPysrSr7/+Knt7e+3YscPiWGZmpvbs2WOcCwBAUUMCBgAAAAAAAPekZMmSqlSpklWSZc+ePcrMzFS7du2sju3evVtXrly55wTM5cuX7+l8AADuFxIwAAAAAAAAuGf16tXTwYMHlZaWZpTt3LlTZcuW1dNPP639+/dbJEvMs2UaNGggSYqNjVWHDh3k7++vJ554Qm+++abOnz9v0Ubv3r0VEhKi/fv3q3fv3qpbt67eeecdSZKvr6/efPNNJSQk6Omnn1ZAQIC6du2q/fv3S5KWLFmitm3byt/fX7169dKff/5pUfcff/yhYcOG6cknn1Tt2rX15JNPKjIyUqdPn873awUAeDjYF3QHAAAAAAAAUPjVr19fy5Yt088//6wnn3xSkrRjxw7Vr19fdevW1dWrV/Xzzz+rcePGxjFXV1f5+vpq+vTpmjx5sho1aqRu3brp+PHj+uKLL/TLL79o6dKlcnR0NNpJTU3V888/r7Zt26pDhw5yc3Mzju3atUsbN25UWFiYJGn27NkaOHCgBg8erPnz56tHjx66ePGiPv30U0VFRWnhwoWSpCtXruj5559XRkaGevbsKS8vLyUnJ+uHH37Q6dOnVbp06Qd1GQEARQgJGAAAAAAAANwz81JiO3bsMBIwu3btUmRkpDw8PFS5cmXt2LFDjRs3lslk0q5du1S3bl2dP39e06dPV+PGjTVnzhzZ2dlJkmrWrKk33nhDS5YsUa9evYx2zpw5o5EjRyo8PNyqD7///rtWr16tihUrSpJKlCihN998U1OmTNHatWuNZM3Vq1c1a9Ys/fHHH3rsscd05MgR/fnnn5o8ebJCQkKM+l588cX7c7EAAA8FliADAAAAAADAPatcubJKlixp7PVy5MgRnTt3TvXq1ZMkBQYGGsuOHTp0SBcvXlSDBg20ZcsWXblyReHh4UbyRZI6duyoUqVKacOGDRbt2Nvbq1u3brn2ISgoyEi+SFKdOnUkSU899ZTFTJmAgABJMpYhK168uCRp06ZNSk9Pv+trAADA9UjAAAAAAAAAIF/Uq1dPu3fvVnZ2tnbu3KnixYurevXqxrGff/5ZV69eNRIx9evX119//SXpWgLnenZ2dnrsscd08uRJi/LSpUvLyckp1/bLli1r8d7V1TXXcnMy5uLFi5KkChUqqG/fvlq6dKkaNWqkiIgIzZs3T+fOncvzNQAAwIwEDAAAAAAAAPJF/fr1dfnyZe3bt087duxQ3bp1jVktgYGBunTpkg4cOKAdO3bIwcHBmImSFzdLvkiSrW3uX3VdP7PmeiaTyXgdFRWllStX6qWXXtLVq1f1/vvvq127djp8+HCe+wgAgEQCBgAAAAAAAPnk+n1gduzYYSw/JklVqlSRu7u7duzYoZ07d6p27dpydnbWo48+Kuna/i3Xy8nJ0R9//KFy5co9sP5Xq1ZNAwcO1Pz587Vs2TKlpqZq7ty5D6x9AEDRQgIGAAAAAAAA+cLPz0/FihXTmjVrdPz4cSMhI0k2NjYKDAzU6tWrdfLkSSM506RJEzk4OGj+/PnKyckx4uPj43XmzBm1bNnyvvc7LS1N2dnZFmU+Pj5ycnIylikDACCv7Au6AwAAAAAAACga7O3tFRAQoG3btsnOzs5qibF69epp4sSJkv6eLePp6akXX3xRkydPVr9+/dSmTRv9+eefWrhwoWrUqKGuXbve937/97//1TvvvKPg4GBjL5rVq1fr0qVLat++/X1vHwBQNJGAAQAAAAAAQL6pX7++tm3bpho1aqh48eIWx8yzXmxsbCyWJ3vxxRfl4eGhBQsWaPz48XrkkUfUuXNnvfLKK3J0dLzvffb19VWzZs30/fffa+nSpXJyclLVqlU1bdo0tWnT5r63DwAomkjAAAAAAAAAIN8MGzZMw4YNy/VYgwYNdPDgwVyP9ejRQz169Lhl3fPnz7/psdzqLV++fK7lQUFBFuUVKlTQe++9d8u2AQDIK/aAAQAAAAAAAAAAyGckYAAAAAAAAAAAAPIZCZgHJCsrSx9++KGaNm2qgIAAdenSRT/88ENBdwsAAOCucG8DAAAAAMCtkYB5QKKiohQTE6MOHTpo5MiRsre318CBA/Xjjz8WdNcAAADyjHsbAAAAAABujQTMA7B7926tWrVKw4YN0+uvv65u3bpp3rx5KleunD744IOC7h4AAECecG8DAABw50wmU0F3AQBQQEjAPAAJCQmytbVVt27djDInJyd16dJFv/76q06cOFGAvQMAAMgb7m0AAADuHAkYAHh42Rd0Bx4G+/fvV8WKFVWiRAmL8oCAAON4+fLl76runJwcSdKOHTvurZOSbGxsJBsbvdqt5j3XBZhdOn9SO3ee+EfdcNrY2MhGkvewIQXdFRQhf6Sl6djOnf+ozzpwv3Bvg4cZ9zZ4WHBvA+QP873Nrl27CrgnBeNhHv/DPHaJ8T/M4y/qYzeP706RgHkAkpOT5eXlZVVuLjt9+vQ9t2Frm3+TmWxsbfKtLkCSZGNz7Uuwf5h/Yp9QuNkofz5Xef1lDjxo3Nvgoce9DR4S+XFvw30N8HDLz3u6wuZhHrvE+B/m8T/MY88NCZgHICMjQ46OjlblTk5OxvG7Vb9+/bs+FwAA4G5wbwMAAHBnuLcBgIcb6agHwNnZWVlZWVblmZmZxnEAAIDCgnsbAAAAAABujwTMA+Dl5aXk5GSrcnNZ6dKlH3SXAAAA7hr3NgAAAAAA3B4JmAegRo0aOn78uC5cuGBR/ssvvxjHAQAACgvubQAAAAAAuD0SMA9ASEiIcnJytHjxYqMsKytLy5YtU61atVShQoUC7B0AAEDecG8DAAAAAMDt2Rd0Bx4GderUUUhIiCZPnqxz586pUqVKWr58uU6cOKHo6OiC7h4AAECecG8DAAAAAMDt2ZhMJlNBd+JhkJmZqcmTJys+Pl4XLlxQtWrVNGzYMDVv3ryguwYAAJBn3NsAAAAAAHBrJGAAAAAAAAAAAADyGXvAAAAAAAAAAAAA5DMSMAAAAAAAAAAAAPmMBAwAAAAAAAAAAEA+IwEDAAAAAAAAAACQz0jAAAAAAAAAAAAA5DMSMAAAAAAAAAAAAPmMBAzwDzZ16lT5+voWdDdQxLRq1UpRUVHG+xMnTsjX11fLli3LUz3btm2Tr6+vtm3blt9dBAAUUdzb4H7g3gYAAAD/VCRgAAAAAAAAgHyUlZWlDz/8UE2bNlVAQIC6dOmiH374oaC7ZeXSpUuaMmWKXnjhBTVq1Ei+vr6aPXt2rrFHjhxR//79FRgYqMcff1yvvvqqzpw5k2tsXFyc2rdvL39/fz311FOaO3euTCaTVdzFixf15ptvqlGjRqpbt6569+6tX3/9Ndc6d+7cqZ49e6pOnTpq0qSJ3nnnHV26dOmux757926NHj1aTz/9tOrWrasWLVpo2LBh+v3334v82CVp7969GjJkiFq1aqWAgAA1atRIvXr1UmJi4kMx/hvFx8fL19dX/v7+VseK2vjND53k9ufnn3++q7ZzcnL06aefqnXr1vL391eHDh20YsWKXNtPSkrSyy+/rIYNGyowMFCDBg3SH3/8kWvsunXrFBoaqoCAADVv3lwff/yxrly5ctdjLwj2Bd0BAEDBKleunHbv3i17+7z9SmjYsKF2794tBweH+9QzAACAvOPeBsA/QVRUlNasWaPw8HBVqlRJX331lQYOHKi5c+fq8ccfL+juGc6dO6dp06bJ29tbfn5+2rx5c65xp06dUlhYmFxdXTV8+HBdvnxZc+bM0aFDhxQXFycnJycjdtGiRXrrrbfUtm1b9e3bV9u3b9e4ceN0+fJlDR482IjLycnRgAEDdPDgQfXr10+enp6KjY1VeHi44uLi5OPjY8Tu379fERERqlKlil5//XUlJSUpJiZGx44dU0xMzF2N/bPPPtPOnTsVEhIiX19fJScna+HChQoNDdWiRYuMWbtFceyS9OeffyorK0uhoaEqU6aM0tPTtXbtWg0aNEhvv/22evToUaTHf71Lly5pwoQJcnFxUXZ2tsWxojz+sLAw1alTx6KsYsWKd9X2pEmTNHv2bHXt2lUBAQFat26dXnvtNdnY2OjZZ5+1uNbh4eFKTU3VgAED5ODgoLlz5yosLEzx8fHy9PQ0Yjdu3KiXXnpJDRs21KhRo3To0CHNmjVLZ86c0ZgxY+5p7A+UCcAdS09Pf6DtTZkyxVS9evUH2iaKvpYtW5pef/31gu4GAOAfgHsbFAXc2wD4p/nll19M1atXN82aNcsoy8jIMLVp08b03HPPFWDPrGVmZppOnTplMplMpj///NOq32ZvvfWWqXbt2qYTJ04YZZs3bzZVr17dtGDBAqPs8uXLpscff9z0/PPPW5z/6quvmgICAkxnz541ylatWmWqXr26adWqVUbZ2bNnTQ0aNDANHTrU4vz+/fubmjRpYrp48aJRtmTJElP16tVNGzZsuKux79ixw5SZmWlR9vvvv5tq165tGj58eJEe+81kZ2ebnn32WdNTTz1llD0M458wYYIpODjY9Oqrr5pq165tcawojv+///2vqXr16qaVK1feMu5O2z516pSpVq1apjfffNMoy8nJMfXs2dP0xBNPmK5cuWKUz54921S9enXTrl27jLLDhw+batasaXr//fct2m/fvr2pQ4cOFud/9NFHJl9fX9OhQ4fyPO6CwhJkKDLMa4ofPXpUUVFRatCggerXr6833nhDly9fNuKuXr2qGTNm6KmnnlLt2rXVokULffDBB8rIyLCor1WrVnr++ee1detWde3aVf7+/vrss8+MNaVnz56thQsXqnXr1qpTp44iIiJ08uRJmUwmzZw5U82bN1dAQIAGDRqklJQUi7rXrVunQYMGqVmzZqpdu7Zatmyp999/X5mZmQ/kWuGfyfwZPnLkiEaMGKH69esrKChIH330kUwmk5KSkvTiiy+qXr16atKkiT777DPj3KysLE2ZMkXPPfecGjZsaExx/+67727b7s3WST99+rTefPNN43PaqlUrjRo1SmlpaZJuvk76jz/+qF69eqlu3bqqX7++Bg4cqEOHDlnEREVFqVWrVje9BtfbunWrwsLC1LBhQ9WpU0dt2rTR6NGjbzsuACjsuLdBYce9Dfc2wMMqISFBtra26tatm1Hm5OSkLl266Ndff9WJEycKsHeWHB0dVaZMmdvGrV27Vs2bN1e5cuWMsiZNmqhSpUpKSEgwyrZt26bz588bsyfMwsLClJGRoQ0bNhhla9askYeHh0JCQowyT09PtWvXTomJica9TFpamrZs2aIOHTrIzc3NiO3YsaNcXFz0zTff5HncklSvXj05OjpalFWqVEnVqlXT4cOHi/TYb8bOzk7e3t66ePGiUVbUx3/s2DHNnTtXb7zxRq6zZ4v6+C9dumQ16yevbX/33Xe6cuWKxdhtbGzUo0cPJScna8eOHRZj9/PzU926dY0yHx8fNW7c2OJ6Hj58WIcPH1bXrl0t/rv07NlTJpPJIvafjgQMipxXXnlFly5d0iuvvKJ27dpp2bJl+uSTT4zjb775pj7++GPVqFFDb7zxhho3bqw5c+YoMjLSak3G48ePa+jQocZUt+un5a1atUoLFixQr169jGmFw4YN05QpU5SYmKj+/furW7du2rBhg8aPH29R77Jly+To6KjevXtr1KhRatSokebNm2exeSgeXq+88oquXr2qV199VYGBgZo1a5aio6PVt29flSpVSiNGjNBjjz2mCRMmaOvWrZKu/WJcvHix6tWrp5dfflnDhw9XTk6OXnrpJW3cuDHPfUhOTlbXrl21fPlytW3bVv/5z3/UuXNn7d69W+fPn7/pef/973/Vt29fJScna8iQ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taizWrVqqlKlipYuXars7Gyj3NxGcHDwXY29ILAEGR4qNWrUUJcuXRQXF6e0tDQFBQVp3759+vLLL9W0aVPjS4z7qV69enJ3d1dUVJR69eole3t7rVmzRunp6fe9bRRdrVq10tq1azV48GC1atVKSUlJ+uKLL1S5cmXt378/z/W98sor2rx5s3r37q1u3bqpatWqOnPmjL799lt98sknKl++fK7nvfbaa3r++efVrVs3/d///Z8yMzP1xRdfyMnJScOHDzfi2rdvrw8//FBDhgxR7969lZGRodjYWFWuXNliY93p06frxx9/VIsWLVSuXDlduHBBixYtkouLi1q0aJHncQFAUcO9DYoq7m0AFGZ16tRRSEiIJk+erHPnzqlSpUpavny5Tpw4oejo6ILunpUFCxbo4sWLRiJ427ZtxheevXv3lpubmwYNGqSEhAT16dNH4eHhysjI0Jw5c1S1alV17drVqMvZ2VlDhw7V6NGjFRkZqWbNmmn79u2Kj49XZGSkPD09jdjg4GDVrVtXI0eO1NGjR+Xh4aHY2FhlZ2dr2LBhFn0cPny4unfvrl69eqlbt25KSkpSdHS0GjVqdNc/P8ePH6/169erZcuWOn/+vFasWGFxvGPHjpJUJMdurtfR0VGBgYEqXbq0kpKS9PXXX+vYsWOKiopS8eLFi+z4ixUrpjZt2liVf/fdd9q1a5fFsaI4/pdfflnOzs4KDAxUyZIldfjwYS1ZskROTk7617/+lee2vb29FR4erjlz5ignJ0cBAQFat26dtm/frvfff18ODg5GbM+ePbV06VINHjxY/fr1k729vebOnStPT089//zzFv187bXXjLgOHTrot99+04IFCxQaGipfX9+7GntBIAGDh87o0aNVvnx5ffnll1q/fr1Kliypfv36aejQoXne0PNuuLu7a/bs2Ro/frymTp0qFxcXtW3bVj169NCzzz5739tH0dS5c2edPXtWsbGx2rJlix577DG98cYbOn78+F19SVG6dGktXbpUkydP1qpVq3Tx4kWVLl1aTz75pLHURm4aNWqk6OhoTZkyxdi4sEGDBnr11VctNrD18PDQJ598ovHjx2vChAkqX768XnnlFf3xxx8WX1K0bt1a//vf//TVV18pJSVF7u7uCgwM1EsvvfRAltUBgMKAexsURdzbACjsPvjgA02ePFnx8fG6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",
            "text/plain": [
              "<Figure size 1650x440 with 3 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "fig, axes = plt.subplots(1, 3, figsize=(15, 4))\n",
        "\n",
        "sns.barplot(x=[\"normal\", \"malicious\"],\n",
        "            y=train_raw[TARGET].value_counts().sort_index().values, ax=axes[0],\n",
        "            hue=[\"normal\", \"malicious\"], palette=[\"#4C72B0\", \"#C44E52\"], legend=False)\n",
        "axes[0].set_title(\"Training partition\")\n",
        "axes[0].set_ylabel(\"records\")\n",
        "\n",
        "sns.barplot(x=[\"normal\", \"malicious\"],\n",
        "            y=test_raw[TARGET].value_counts().sort_index().values, ax=axes[1],\n",
        "            hue=[\"normal\", \"malicious\"], palette=[\"#4C72B0\", \"#C44E52\"], legend=False)\n",
        "axes[1].set_title(\"Testing partition\")\n",
        "axes[1].set_ylabel(\"\")\n",
        "\n",
        "ac = train_raw['attack_cat'].value_counts()\n",
        "sns.barplot(x=ac.values, y=ac.index, ax=axes[2], hue=ac.index, palette=\"rocket\", legend=False)\n",
        "axes[2].set_title(\"Attack categories (training partition)\")\n",
        "axes[2].set_xlabel(\"records\")\n",
        "\n",
        "plt.tight_layout()\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "05f09d7a",
      "metadata": {
        "id": "05f09d7a"
      },
      "source": [
        "## Data Preparation\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "781a453d",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:38:14.519823Z",
          "iopub.status.busy": "2026-09-08T06:38:14.519638Z",
          "iopub.status.idle": "2026-09-08T06:38:14.777497Z",
          "shell.execute_reply": "2026-09-08T06:38:14.775653Z"
        },
        "id": "781a453d",
        "outputId": "7cd13142-08f8-4fc6-f141-9dc1630ec84c"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "training records before dedupe: 175,341  normal=56,000  malicious=119,341  ratio=2.131\n",
            "training records after  dedupe: 101,269  normal=51,890  malicious=49,379  ratio=0.952\n",
            "removed: 74,072\n"
          ]
        }
      ],
      "source": [
        "train_clean = train_raw.drop_duplicates(subset=FEATURES + [TARGET]).reset_index(drop=True)\n",
        "\n",
        "before = train_raw[TARGET].value_counts().sort_index()\n",
        "after  = train_clean[TARGET].value_counts().sort_index()\n",
        "print(f\"training records before dedupe: {len(train_raw):>7,}  \"\n",
        "      f\"normal={before[0]:>6,}  malicious={before[1]:>6,}  ratio={before[1]/before[0]:.3f}\")\n",
        "print(f\"training records after  dedupe: {len(train_clean):>7,}  \"\n",
        "      f\"normal={after[0]:>6,}  malicious={after[1]:>6,}  ratio={after[1]/after[0]:.3f}\")\n",
        "print(f\"removed: {len(train_raw) - len(train_clean):,}\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "b5219867",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:38:14.780090Z",
          "iopub.status.busy": "2026-09-08T06:38:14.779843Z",
          "iopub.status.idle": "2026-09-08T06:38:15.050139Z",
          "shell.execute_reply": "2026-09-08T06:38:15.049410Z"
        },
        "id": "b5219867",
        "outputId": "dc4315fe-cf50-45d1-beb7-e9c61cdd166a"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "train split :  81,015 records  malicious=0.488\n",
            "val   split :  20,254 records  malicious=0.488\n",
            "test set    :  82,332 records  malicious=0.551   (held out)\n"
          ]
        }
      ],
      "source": [
        "X_full = train_clean[FEATURES].copy()\n",
        "y_full = train_clean[TARGET].to_numpy()\n",
        "X_test_df = test_raw[FEATURES].copy()\n",
        "y_test = test_raw[TARGET].to_numpy()\n",
        "\n",
        "X_tr_df, X_val_df, y_tr, y_val = train_test_split(\n",
        "    X_full, y_full, test_size=0.20, stratify=y_full, random_state=RANDOM_STATE)\n",
        "\n",
        "print(f\"train split : {X_tr_df.shape[0]:>7,} records  malicious={y_tr.mean():.3f}\")\n",
        "print(f\"val   split : {X_val_df.shape[0]:>7,} records  malicious={y_val.mean():.3f}\")\n",
        "print(f\"test set    : {X_test_df.shape[0]:>7,} records  malicious={y_test.mean():.3f}   (held out)\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "dfd2203f",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:38:15.052877Z",
          "iopub.status.busy": "2026-09-08T06:38:15.052631Z",
          "iopub.status.idle": "2026-09-08T06:38:16.990815Z",
          "shell.execute_reply": "2026-09-08T06:38:16.989213Z"
        },
        "id": "dfd2203f",
        "outputId": "71e1a369-bbaa-4998-af12-2d338b9c501e"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "preprocessor fitted on the training split only (1.9s)\n",
            "train matrix: (81015, 192)\n",
            "val   matrix: (20254, 192)\n",
            "test  matrix: (82332, 192)\n",
            "encoded features: 192\n"
          ]
        }
      ],
      "source": [
        "preprocessor = ColumnTransformer(\n",
        "    transformers=[\n",
        "        (\"num\", Pipeline([\n",
        "            (\"log\", FunctionTransformer(np.log1p, feature_names_out=\"one-to-one\")),\n",
        "            (\"scale\", StandardScaler()),\n",
        "        ]), NUM_COLS),\n",
        "        (\"cat\", OneHotEncoder(handle_unknown=\"ignore\", sparse_output=False), CAT_COLS),\n",
        "    ],\n",
        "    remainder=\"drop\",\n",
        "    verbose_feature_names_out=False,\n",
        ")\n",
        "\n",
        "t0 = time.time()\n",
        "X_tr = preprocessor.fit_transform(X_tr_df).astype(np.float32)\n",
        "X_val = preprocessor.transform(X_val_df).astype(np.float32)\n",
        "X_test = preprocessor.transform(X_test_df).astype(np.float32)\n",
        "feature_names = list(preprocessor.get_feature_names_out())\n",
        "\n",
        "print(f\"preprocessor fitted on the training split only ({time.time()-t0:.1f}s)\")\n",
        "print(f\"train matrix: {X_tr.shape}\")\n",
        "print(f\"val   matrix: {X_val.shape}\")\n",
        "print(f\"test  matrix: {X_test.shape}\")\n",
        "print(f\"encoded features: {len(feature_names)}\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "ab6fe6d8",
      "metadata": {
        "id": "ab6fe6d8"
      },
      "source": [
        "### Leakage Checks"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "613ae79d",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:38:16.993606Z",
          "iopub.status.busy": "2026-09-08T06:38:16.993311Z",
          "iopub.status.idle": "2026-09-08T06:38:17.059906Z",
          "shell.execute_reply": "2026-09-08T06:38:17.058750Z"
        },
        "id": "613ae79d",
        "outputId": "cf643ada-0764-4786-b899-812a7399a7d2"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "scaler was fitted on n = 81015.0 which equals the training split size: True\n",
            "training split mean/std of encoded numeric block: -0.0000 / 1.0000\n",
            "test set mean/std of the same block (must drift, it was not used for fitting): -0.1022 / 1.2696\n",
            "target columns present in feature matrix: False\n",
            "NaN / inf in encoded matrices: False\n"
          ]
        }
      ],
      "source": [
        "scaler = preprocessor.named_transformers_[\"num\"].named_steps[\"scale\"]\n",
        "print(\"scaler was fitted on n =\", scaler.n_samples_seen_,\n",
        "      \"which equals the training split size:\", scaler.n_samples_seen_ == X_tr_df.shape[0])\n",
        "\n",
        "print(\"training split mean/std of encoded numeric block:\",\n",
        "      f\"{X_tr[:, :len(NUM_COLS)].mean():.4f} / {X_tr[:, :len(NUM_COLS)].std():.4f}\")\n",
        "print(\"test set mean/std of the same block (must drift, it was not used for fitting):\",\n",
        "      f\"{X_test[:, :len(NUM_COLS)].mean():.4f} / {X_test[:, :len(NUM_COLS)].std():.4f}\")\n",
        "\n",
        "print(\"target columns present in feature matrix:\",\n",
        "      any(n in (\"label\", \"attack_cat\", \"id\") for n in feature_names))\n",
        "print(\"NaN / inf in encoded matrices:\",\n",
        "      bool(np.isnan(X_tr).any() or np.isnan(X_test).any()\n",
        "           or np.isinf(X_tr).any() or np.isinf(X_test).any()))"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "be7a2639",
      "metadata": {
        "id": "be7a2639"
      },
      "source": [
        "### Class Imbalance Investigation\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "19378205",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:38:17.062480Z",
          "iopub.status.busy": "2026-09-08T06:38:17.062169Z",
          "iopub.status.idle": "2026-09-08T06:38:17.070363Z",
          "shell.execute_reply": "2026-09-08T06:38:17.069334Z"
        },
        "id": "19378205",
        "outputId": "be3a0b78-73cf-41e6-ff7e-618087877567"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "training split : normal=41,512  malicious=39,503  ratio=0.952\n",
            "minority class share: 48.8%\n",
            "\n",
            "decision: no synthetic resampling applied; class_weight tested empirically in the model grids\n"
          ]
        }
      ],
      "source": [
        "cnt = pd.Series(y_tr).value_counts().sort_index()\n",
        "ratio = cnt[1] / cnt[0]\n",
        "print(f\"training split : normal={cnt[0]:,}  malicious={cnt[1]:,}  ratio={ratio:.3f}\")\n",
        "print(f\"minority class share: {min(cnt) / cnt.sum():.1%}\")\n",
        "print()\n",
        "print(\"decision: no synthetic resampling applied; class_weight tested empirically in the model grids\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "eec6d2b2",
      "metadata": {
        "id": "eec6d2b2"
      },
      "source": [
        "## Modelling\n",
        "\n",
        "All three algorithms consume the identical `X_tr` matrix, are selected on the identical `X_val` matrix, and are never exposed to `X_test` before the evaluation stage."
      ]
    },
    {
      "cell_type": "markdown",
      "id": "0a518566",
      "metadata": {
        "id": "0a518566"
      },
      "source": [
        "### Evaluation Utilities"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "a3612b3f",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:38:17.072506Z",
          "iopub.status.busy": "2026-09-08T06:38:17.072269Z",
          "iopub.status.idle": "2026-09-08T06:38:17.079518Z",
          "shell.execute_reply": "2026-09-08T06:38:17.078408Z"
        },
        "id": "a3612b3f"
      },
      "outputs": [],
      "source": [
        "def evaluate(y_true, y_pred, y_score=None, name=\"\"):\n",
        "    tn, fp, fn, tp = confusion_matrix(y_true, y_pred, labels=[0, 1]).ravel()\n",
        "    res = {\n",
        "        \"model\": name,\n",
        "        \"accuracy\":  accuracy_score(y_true, y_pred),\n",
        "        \"precision\": precision_score(y_true, y_pred, zero_division=0),\n",
        "        \"recall\":    recall_score(y_true, y_pred, zero_division=0),\n",
        "        \"f1\":        f1_score(y_true, y_pred, zero_division=0),\n",
        "        \"tpr\":       tp / (tp + fn) if (tp + fn) else 0.0,\n",
        "        \"fpr\":       fp / (fp + tn) if (fp + tn) else 0.0,\n",
        "        \"fnr\":       fn / (fn + tp) if (fn + tp) else 0.0,\n",
        "        \"specificity\": tn / (tn + fp) if (tn + fp) else 0.0,\n",
        "        \"tn\": int(tn), \"fp\": int(fp), \"fn\": int(fn), \"tp\": int(tp),\n",
        "    }\n",
        "    res[\"roc_auc\"] = roc_auc_score(y_true, y_score) if y_score is not None else np.nan\n",
        "    return res\n",
        "\n",
        "\n",
        "def show(res):\n",
        "    print(f\"{res['model']}\")\n",
        "    print(f\"  accuracy  {res['accuracy']:.4f}   precision {res['precision']:.4f}   \"\n",
        "          f\"recall {res['recall']:.4f}   f1 {res['f1']:.4f}\")\n",
        "    print(f\"  TPR       {res['tpr']:.4f}   FPR       {res['fpr']:.4f}   \"\n",
        "          f\"FNR    {res['fnr']:.4f}   AUC {res['roc_auc']:.4f}\")\n",
        "    print(f\"  TN {res['tn']:>6}   FP {res['fp']:>6}   FN {res['fn']:>6}   TP {res['tp']:>6}\")\n",
        "\n",
        "\n",
        "results = {}\n",
        "artifacts = {}\n",
        "timings = {}"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "0c56404d",
      "metadata": {
        "id": "0c56404d"
      },
      "source": [
        "### Random Forest\n",
        "\n",
        "A grid over tree depth, leaf size and class weighting is scored on the validation split by F1, so that both false positives and missed attacks influence the choice. `n_estimators` is fixed at 300, which is past the point where additional trees change the validation score materially and keeps the run practical on Colab hardware."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "49a3181b",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:38:17.082211Z",
          "iopub.status.busy": "2026-09-08T06:38:17.081981Z",
          "iopub.status.idle": "2026-09-08T06:41:20.931409Z",
          "shell.execute_reply": "2026-09-08T06:41:20.929945Z"
        },
        "id": "49a3181b",
        "outputId": "abc3435e-44b3-413c-83ee-c7868dea6885"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "max_depth min_samples_leaf class_weight  val_f1  val_recall  val_fpr  fit_s\n",
            "     None                3     balanced  0.9296      0.9644   0.1051   22.7\n",
            "     None                3         None  0.9295      0.9623   0.1031   22.5\n",
            "     None                1         None  0.9290      0.9477   0.0881   24.3\n",
            "     None                1     balanced  0.9286      0.9483   0.0895   25.1\n",
            "       20                1     balanced  0.9286      0.9594   0.1018   23.1\n",
            "       20                1         None  0.9284      0.9566   0.0992   23.0\n",
            "       20                3     balanced  0.9284      0.9687   0.1124   21.6\n",
            "       20                3         None  0.9283      0.9653   0.1088   21.5\n",
            "\n",
            "selected: None 3 balanced | val f1 = 0.9296\n"
          ]
        }
      ],
      "source": [
        "rf_grid = [\n",
        "    {\"max_depth\": d, \"min_samples_leaf\": l, \"class_weight\": w}\n",
        "    for d in (None, 20) for l in (1, 3) for w in (None, \"balanced\")\n",
        "]\n",
        "\n",
        "rf_rows = []\n",
        "best_rf, best_rf_f1, val_pred = None, -1.0, {}\n",
        "for params in rf_grid:\n",
        "    t0 = time.time()\n",
        "    m = RandomForestClassifier(n_estimators=300, n_jobs=-1,\n",
        "                               random_state=RANDOM_STATE, **params).fit(X_tr, y_tr)\n",
        "    p = m.predict(X_val)\n",
        "    f1v = f1_score(y_val, p)\n",
        "    tn, fp, fn, tp = confusion_matrix(y_val, p, labels=[0, 1]).ravel()\n",
        "    rf_rows.append({**{k: str(v) for k, v in params.items()},\n",
        "                    \"val_f1\": round(f1v, 4),\n",
        "                    \"val_recall\": round(recall_score(y_val, p), 4),\n",
        "                    \"val_fpr\": round(fp / (fp + tn), 4),\n",
        "                    \"fit_s\": round(time.time() - t0, 1)})\n",
        "    if f1v > best_rf_f1:\n",
        "        best_rf, best_rf_f1 = m, f1v\n",
        "        val_pred[\"Random Forest\"] = p\n",
        "\n",
        "rf_search = pd.DataFrame(rf_rows).sort_values(\"val_f1\", ascending=False)\n",
        "print(rf_search.to_string(index=False))\n",
        "print(\"\\nselected:\", best_rf.get_params()[\"max_depth\"], best_rf.get_params()[\"min_samples_leaf\"],\n",
        "      best_rf.get_params()[\"class_weight\"], f\"| val f1 = {best_rf_f1:.4f}\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "b8126991",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:41:20.934649Z",
          "iopub.status.busy": "2026-09-08T06:41:20.934415Z",
          "iopub.status.idle": "2026-09-08T06:41:45.202495Z",
          "shell.execute_reply": "2026-09-08T06:41:45.201382Z"
        },
        "id": "b8126991",
        "outputId": "9c067707-02b1-41fd-f8e2-3c3c1da742fe"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Random Forest\n",
            "  accuracy  0.8612   precision 0.8028   recall 0.9916   f1 0.8872\n",
            "  TPR       0.9916   FPR       0.2985   FNR    0.0084   AUC 0.9824\n",
            "  TN  25956   FP  11044   FN    381   TP  44951\n"
          ]
        }
      ],
      "source": [
        "t0 = time.time()\n",
        "rf_final = RandomForestClassifier(\n",
        "    n_estimators=300, n_jobs=-1, random_state=RANDOM_STATE,\n",
        "    max_depth=best_rf.get_params()[\"max_depth\"],\n",
        "    min_samples_leaf=best_rf.get_params()[\"min_samples_leaf\"],\n",
        "    class_weight=best_rf.get_params()[\"class_weight\"]).fit(X_tr, y_tr)\n",
        "timings[\"Random Forest\"] = {\"train_s\": time.time() - t0}\n",
        "\n",
        "t0 = time.time()\n",
        "rf_pred = rf_final.predict(X_test)\n",
        "timings[\"Random Forest\"][\"predict_s\"] = time.time() - t0\n",
        "rf_score = rf_final.predict_proba(X_test)[:, 1]\n",
        "\n",
        "results[\"Random Forest\"] = evaluate(y_test, rf_pred, rf_score, \"Random Forest\")\n",
        "artifacts[\"Random Forest\"] = rf_final\n",
        "show(results[\"Random Forest\"])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "9c72d3bc",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:41:45.205501Z",
          "iopub.status.busy": "2026-09-08T06:41:45.205250Z",
          "iopub.status.idle": "2026-09-08T06:41:45.527505Z",
          "shell.execute_reply": "2026-09-08T06:41:45.526290Z"
        },
        "id": "9c72d3bc",
        "outputId": "c9e0020a-aa21-408e-867d-1760dc24b543"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 770x550 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "imp = pd.Series(rf_final.feature_importances_, index=feature_names).nlargest(15)\n",
        "plt.figure(figsize=(7, 5))\n",
        "sns.barplot(x=imp.values, y=imp.index, hue=imp.index, palette=\"viridis\", legend=False)\n",
        "plt.title(\"Random Forest feature importance (top 15)\")\n",
        "plt.xlabel(\"mean decrease in impurity\")\n",
        "plt.tight_layout()\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "8dcfbc10",
      "metadata": {
        "id": "8dcfbc10"
      },
      "source": [
        "### Support Vector Machine\n",
        "\n",
        "An RBF kernel is used because the class boundary in this feature space is not linearly separable. The SVM depends on feature scale, which the shared pipeline already provides. `gamma` is left at `scale`, and `C` and class weighting are searched on the validation split. Kernel SVM training cost grows roughly quadratically with the number of records, so the grid is deliberately small; removing duplicate records earlier is what keeps a full RBF fit on the complete training split feasible within Colab runtimes rather than forcing a subsample."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "86212f0f",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T06:41:45.529879Z",
          "iopub.status.busy": "2026-09-08T06:41:45.529646Z",
          "iopub.status.idle": "2026-09-08T07:05:53.909411Z",
          "shell.execute_reply": "2026-09-08T07:05:53.907904Z"
        },
        "id": "86212f0f",
        "outputId": "a195046f-c86c-4d92-c7e3-b89ae1e51e90"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'C': 1.0, 'class_weight': 'None', 'val_f1': 0.9155, 'val_recall': 0.9721, 'val_fpr': np.float64(0.1442), 'n_support': 16710, 'fit_s': 313.1}\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'C': 1.0, 'class_weight': 'balanced', 'val_f1': 0.9151, 'val_recall': 0.9804, 'val_fpr': np.float64(0.1545), 'n_support': 16491, 'fit_s': 330.1}\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'C': 10.0, 'class_weight': 'None', 'val_f1': 0.9205, 'val_recall': 0.9578, 'val_fpr': np.float64(0.1172), 'n_support': 15694, 'fit_s': 282.7}\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'C': 10.0, 'class_weight': 'balanced', 'val_f1': 0.9212, 'val_recall': 0.9649, 'val_fpr': np.float64(0.1237), 'n_support': 15567, 'fit_s': 311.5}\n",
            "\n",
            "   C class_weight  val_f1  val_recall  val_fpr  n_support  fit_s\n",
            "10.0     balanced  0.9212      0.9649   0.1237      15567  311.5\n",
            "10.0         None  0.9205      0.9578   0.1172      15694  282.7\n",
            " 1.0         None  0.9155      0.9721   0.1442      16710  313.1\n",
            " 1.0     balanced  0.9151      0.9804   0.1545      16491  330.1\n",
            "\n",
            "selected: C = 10.0 | class_weight = balanced | val f1 = 0.9212\n"
          ]
        }
      ],
      "source": [
        "svm_grid = [{\"C\": c, \"class_weight\": w} for c in (1.0, 10.0) for w in (None, \"balanced\")]\n",
        "\n",
        "svm_rows = []\n",
        "best_svm, best_svm_f1 = None, -1.0\n",
        "for params in svm_grid:\n",
        "    t0 = time.time()\n",
        "    m = SVC(kernel=\"rbf\", gamma=\"scale\", cache_size=1000,\n",
        "            random_state=RANDOM_STATE, **params).fit(X_tr, y_tr)\n",
        "    fit_s = time.time() - t0\n",
        "    p = m.predict(X_val)\n",
        "    f1v = f1_score(y_val, p)\n",
        "    tn, fp, fn, tp = confusion_matrix(y_val, p, labels=[0, 1]).ravel()\n",
        "    svm_rows.append({\"C\": params[\"C\"], \"class_weight\": str(params[\"class_weight\"]),\n",
        "                     \"val_f1\": round(f1v, 4),\n",
        "                     \"val_recall\": round(recall_score(y_val, p), 4),\n",
        "                     \"val_fpr\": round(fp / (fp + tn), 4),\n",
        "                     \"n_support\": int(m.n_support_.sum()),\n",
        "                     \"fit_s\": round(fit_s, 1)})\n",
        "    print(svm_rows[-1])\n",
        "    if f1v > best_svm_f1:\n",
        "        best_svm, best_svm_f1 = m, f1v\n",
        "        val_pred[\"Support Vector Machine\"] = p\n",
        "\n",
        "svm_search = pd.DataFrame(svm_rows).sort_values(\"val_f1\", ascending=False)\n",
        "print()\n",
        "print(svm_search.to_string(index=False))\n",
        "print(\"\\nselected: C =\", best_svm.C, \"| class_weight =\", best_svm.class_weight,\n",
        "      f\"| val f1 = {best_svm_f1:.4f}\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "30ad8624",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:05:53.912499Z",
          "iopub.status.busy": "2026-09-08T07:05:53.912187Z",
          "iopub.status.idle": "2026-09-08T07:12:59.671693Z",
          "shell.execute_reply": "2026-09-08T07:12:59.669819Z"
        },
        "id": "30ad8624",
        "outputId": "12e639a6-82a9-47ee-cd1b-e8c65bb46979"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Support Vector Machine\n",
            "  accuracy  0.8413   precision 0.7833   recall 0.9840   f1 0.8722\n",
            "  TPR       0.9840   FPR       0.3335   FNR    0.0160   AUC 0.9527\n",
            "  TN  24659   FP  12341   FN    726   TP  44606\n"
          ]
        }
      ],
      "source": [
        "svm_final = best_svm\n",
        "timings[\"Support Vector Machine\"] = {\n",
        "    \"train_s\": float(svm_search.iloc[0][\"fit_s\"])}\n",
        "\n",
        "t0 = time.time()\n",
        "svm_pred = svm_final.predict(X_test)\n",
        "timings[\"Support Vector Machine\"][\"predict_s\"] = time.time() - t0\n",
        "\n",
        "svm_score = svm_final.decision_function(X_test)\n",
        "\n",
        "results[\"Support Vector Machine\"] = evaluate(y_test, svm_pred, svm_score, \"Support Vector Machine\")\n",
        "artifacts[\"Support Vector Machine\"] = svm_final\n",
        "show(results[\"Support Vector Machine\"])"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "d9891941",
      "metadata": {
        "id": "d9891941"
      },
      "source": [
        "### Artificial Neural Network\n",
        "\n",
        "A feedforward network for binary classification: ReLU hidden layers with dropout regularisation, a single sigmoid output unit, binary cross-entropy loss and the Adam optimiser. The validation split drives early stopping and learning-rate reduction, so training length is decided by validation loss rather than by a fixed epoch count, and the best weights are restored. Two depths are compared under identical training controls and the better validation F1 is kept."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "f4d21111",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:12:59.674739Z",
          "iopub.status.busy": "2026-09-08T07:12:59.674441Z",
          "iopub.status.idle": "2026-09-08T07:16:39.237857Z",
          "shell.execute_reply": "2026-09-08T07:16:39.236276Z"
        },
        "id": "f4d21111",
        "outputId": "1fe2433e-620d-40dd-caec-3367bf47a94e"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'architecture': '(64, 32)', 'epochs_run': 67, 'best_val_loss': 0.1586, 'val_f1': 0.9229, 'fit_s': 84.5}\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'architecture': '(128, 64, 32)', 'epochs_run': 76, 'best_val_loss': 0.154, 'val_f1': 0.922, 'fit_s': 132.8}\n",
            "\n",
            " architecture  epochs_run  best_val_loss  val_f1  fit_s\n",
            "     (64, 32)          67         0.1586  0.9229   84.5\n",
            "(128, 64, 32)          76         0.1540  0.9220  132.8\n"
          ]
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"ann_64_32\"</span>\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\u001b[1mModel: \"ann_64_32\"\u001b[0m\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
              "┃<span style=\"font-weight: bold\"> Layer (type)                    </span>┃<span style=\"font-weight: bold\"> Output Shape           </span>┃<span style=\"font-weight: bold\">       Param # </span>┃\n",
              "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
              "│ dense (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)             │        <span style=\"color: #00af00; text-decoration-color: #00af00\">12,352</span> │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ batch_normalization             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)             │           <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span> │\n",
              "│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)            │                        │               │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dropout (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>)               │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)             │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dense_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)             │         <span style=\"color: #00af00; text-decoration-color: #00af00\">2,080</span> │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ batch_normalization_1           │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)             │           <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span> │\n",
              "│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>)            │                        │               │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dropout_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>)             │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)             │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dense_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)              │            <span style=\"color: #00af00; text-decoration-color: #00af00\">33</span> │\n",
              "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
              "</pre>\n"
            ],
            "text/plain": [
              "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
              "┃\u001b[1m \u001b[0m\u001b[1mLayer (type)                   \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape          \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m      Param #\u001b[0m\u001b[1m \u001b[0m┃\n",
              "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
              "│ dense (\u001b[38;5;33mDense\u001b[0m)                   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m)             │        \u001b[38;5;34m12,352\u001b[0m │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ batch_normalization             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m)             │           \u001b[38;5;34m256\u001b[0m │\n",
              "│ (\u001b[38;5;33mBatchNormalization\u001b[0m)            │                        │               │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dropout (\u001b[38;5;33mDropout\u001b[0m)               │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m)             │             \u001b[38;5;34m0\u001b[0m │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dense_1 (\u001b[38;5;33mDense\u001b[0m)                 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m)             │         \u001b[38;5;34m2,080\u001b[0m │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ batch_normalization_1           │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m)             │           \u001b[38;5;34m128\u001b[0m │\n",
              "│ (\u001b[38;5;33mBatchNormalization\u001b[0m)            │                        │               │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dropout_1 (\u001b[38;5;33mDropout\u001b[0m)             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m)             │             \u001b[38;5;34m0\u001b[0m │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dense_2 (\u001b[38;5;33mDense\u001b[0m)                 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1\u001b[0m)              │            \u001b[38;5;34m33\u001b[0m │\n",
              "└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">44,165</span> (172.52 KB)\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m44,165\u001b[0m (172.52 KB)\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">14,657</span> (57.25 KB)\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m14,657\u001b[0m (57.25 KB)\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">192</span> (768.00 B)\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m192\u001b[0m (768.00 B)\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Optimizer params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">29,316</span> (114.52 KB)\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\u001b[1m Optimizer params: \u001b[0m\u001b[38;5;34m29,316\u001b[0m (114.52 KB)\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "def build_ann(hidden, input_dim, seed=RANDOM_STATE):\n",
        "    keras.utils.set_random_seed(seed)\n",
        "    model = keras.Sequential(name=f\"ann_{'_'.join(map(str, hidden))}\")\n",
        "    model.add(layers.Input(shape=(input_dim,)))\n",
        "    for i, units in enumerate(hidden):\n",
        "        model.add(layers.Dense(units, activation=\"relu\"))\n",
        "        model.add(layers.BatchNormalization())\n",
        "        model.add(layers.Dropout(0.3 if i == 0 else 0.2))\n",
        "    model.add(layers.Dense(1, activation=\"sigmoid\"))\n",
        "    model.compile(optimizer=keras.optimizers.Adam(1e-3),\n",
        "                  loss=\"binary_crossentropy\",\n",
        "                  metrics=[\"accuracy\", keras.metrics.AUC(name=\"auc\")])\n",
        "    return model\n",
        "\n",
        "\n",
        "def train_ann(hidden):\n",
        "    model = build_ann(hidden, X_tr.shape[1])\n",
        "    cbs = [\n",
        "        keras.callbacks.EarlyStopping(monitor=\"val_loss\", patience=10,\n",
        "                                      restore_best_weights=True, verbose=0),\n",
        "        keras.callbacks.ReduceLROnPlateau(monitor=\"val_loss\", factor=0.5,\n",
        "                                          patience=4, min_lr=1e-5, verbose=0),\n",
        "    ]\n",
        "    t0 = time.time()\n",
        "    hist = model.fit(X_tr, y_tr, validation_data=(X_val, y_val),\n",
        "                     epochs=150, batch_size=256, callbacks=cbs, verbose=0)\n",
        "    fit_s = time.time() - t0\n",
        "    pv = (model.predict(X_val, verbose=0).ravel() >= 0.5).astype(int)\n",
        "    return model, hist, f1_score(y_val, pv), fit_s\n",
        "\n",
        "\n",
        "ann_rows, best_ann, best_ann_hist, best_ann_f1, best_ann_fit = [], None, None, -1.0, 0.0\n",
        "for hidden in [(64, 32), (128, 64, 32)]:\n",
        "    model, hist, f1v, fit_s = train_ann(hidden)\n",
        "    ann_rows.append({\"architecture\": str(hidden), \"epochs_run\": len(hist.history[\"loss\"]),\n",
        "                     \"best_val_loss\": round(min(hist.history[\"val_loss\"]), 4),\n",
        "                     \"val_f1\": round(f1v, 4), \"fit_s\": round(fit_s, 1)})\n",
        "    print(ann_rows[-1])\n",
        "    if f1v > best_ann_f1:\n",
        "        best_ann, best_ann_hist, best_ann_f1, best_ann_fit = model, hist, f1v, fit_s\n",
        "\n",
        "ann_search = pd.DataFrame(ann_rows)\n",
        "print()\n",
        "print(ann_search.to_string(index=False))\n",
        "best_ann.summary()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "7e6f6b39",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:39.241572Z",
          "iopub.status.busy": "2026-09-08T07:16:39.241226Z",
          "iopub.status.idle": "2026-09-08T07:16:39.516340Z",
          "shell.execute_reply": "2026-09-08T07:16:39.515248Z"
        },
        "id": "7e6f6b39",
        "outputId": "5b614575-9e08-49fd-cc13-3da21aaefa6a"
      },
      "outputs": [
        {
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAABKgAAAGmCAYAAABY77zyAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAQ6wAAEOsBUJTofAABAABJREFUeJzs3Xd4VNXWwOHf9EnvISEJJEBI6NK7IEUQUKpSFEVQvFZQFOG7eq96LYiKghVFBVGQFppSpar0IqGF3kIq6WWSmczM98eQgZBCEhKSwHqfxwdzyj7rHAKcrFl7bYXVarUihBBCCCGEEEIIIUQVUVZ1AEIIIYQQQgghhBDi7iYJKiGEEEIIIYQQQghRpSRBJYQQQgghhBBCCCGqlCSohBBCCCGEEEIIIUSVkgSVEEIIIYQQQgghhKhSkqASQgghhBBCCCGEEFVKElRCCCGEEEIIIYQQokpJgkoIIYQQQgghhBBCVClJUAkhhBBCCCGEEEKIKiUJKiGEEEIIIYQQQghRpSRBJYQQleDzzz8nLCyM6Ojoqg5FCCGEEEIIIao9SVAJIWoMk8lEp06dCAsLY+bMmcUeN2XKFMLCwmjRogXx8fGF9u/bt4+wsDA+//zzAtvDwsIICwvjX//6V5Hj/vvf/5akkxBCCCEqjbzrCCHuZpKgEkLUGJs3byYpKYm6desSERGB2Wwu8ficnBw+++yzMl9ny5Yt7N27t5xRCiGEEEKUj7zrCCHuZpKgEkLUGIsXLyY4OJipU6cSFxfHn3/+WeLxzZo1Y8WKFZw4caLU12jQoAEODg5Mnz4dq9V6qyELIYQQQpSavOvcPkajkdzc3KoOQwhxHUlQCSFqhMuXL7Njxw4GDx7Mvffei4+PD0uWLCnxnEmTJqFUKvnoo49KfR0fHx/GjBlDZGQka9euvdWwC4mPj+ff//43Xbt2pWnTptx77728+eabJCQkFDjOarUyf/58Bg0aROvWrWnZsiW9evVi0qRJBY49c+YMr7zyCt26daNp06Z07NiRESNG3PTZCCGEEKJ6qWnvOmfOnOHtt99mwIABtG7dmubNm/Pggw/y/fffF1n5ZTKZmDt3LkOGDOGee+6hZcuWPPjgg8yaNavAcVarlYiICEaMGEGrVq1o0aIFffv25d1338VoNAKwe/duwsLCiIiIKHSdovqA5k+JTElJ4c0336RLly60aNGCf/75B4A1a9bw3HPPcd9999GsWTPatWvHuHHj2LdvX5H3funSJd544w3uu+8+mjZtSqdOnRg7dix///03AN9//z1hYWFs27atyPMffPBBunTpgslkuvmDFuIuoq7qAIQQojSWLl0KwKBBg1CpVAwcOJC5c+eSmJiIj49PkeeEhIQwbNgwfv31V3bu3EnHjh1Lda2nnnqKxYsXM2PGDHr16oVWq62Qe4iPj2fo0KEkJyczbNgwwsPDiYqKYsmSJfz5558sXboUb29vAL755hs+++wzunXrxsMPP4xGoyEmJoY///yThIQEfH19SUlJ4fHHH8disTB8+HACAwNJT0/n5MmT7Nmzh4cffrhC4hZCCCFE5atp7zp79uxh9+7ddO/encDAQIxGI9u2bWP69OlcunSJt956y36syWTi6aefZufOnbRr147nnnsOZ2dnzp49y7p163jppZfsx06ZMoUVK1bQuHFjxo0bh5eXFxcvXmTjxo289NJLt/Re9uSTT+Lu7s7TTz+N1Wq1v3f9/PPPuLq6MmzYMHx9fYmNjWXp0qU88cQTzJ8/n1atWtnHOHr0KGPGjMFgMDBkyBDCw8PJysri0KFD7Nixg86dOzN48GA+++wzlixZQrdu3QrEcOjQIU6ePMkzzzyDRqMp970IcSeSBJUQotozm80sW7aMTp064efnB8DQoUOZM2cOERERPPPMM8We++KLL7Jq1SqmT59OREQECoXiptdzdnbm+eef55133mHBggWMGTOmQu7jk08+ITExkY8//pgHH3zQvr1Vq1a8/vrrfPrpp7z33nsAbNiwgfr16/Ptt98WGGPixIn2/z9w4ABXrlzh008/pV+/fhUSoxBCCCFuv5r4rjNw4EBGjhxZYNuYMWOYNGkSixcv5vnnn7cn1n766Sd27tzJ6NGj+fe//10gRovFYv//devWsWLFCu6//34+/fRT1OprP66+9tprZY7xRvXq1eOTTz4p9IzmzJmDo6NjgW0jR45kwIABfPPNN/b3MavVypQpU8jOzmbhwoU0b968wDn59+Lp6cn999/PunXrCiUYFy9ejEKhkA8ShSiCTPETQlR727dvt1cf5atXrx4tW7Zk6dKlJfZP8Pb2Zty4cRw7doyVK1eW+prDhw8nODiYr7/+moyMjFuKH2wvLH/88QchISEFklNge8GrU6cOGzdutN+Li4sL8fHx7Nmzp9gxXV1dAdi2bRvp6em3HKMQQgghqkZNfNe5PqFjNBpJTU0lOTmZrl27YjabOXLkiH3/qlWrcHR05JVXXimUHFIqlQWOA3j99dcLJKcAFApFqZJvJXn66aeLHOP6e8nMzCQlJQWVSkWLFi04dOiQfV9UVBQnT57kwQcfLJScuvFeRo4cSV5eHsuXLy8w9po1a+jUqRNBQUG3dC9C3IkkQSWEqPYWL16MXq8nNDSUCxcu2P/r0qULFy9eZNeuXSWeP3bsWHx8fJg5c2apm2Gq1WpeffVVUlNT+eabb275HpKTk8nKyqJhw4aF9ikUCho0aEBaWhppaWmAraeEg4MDo0ePpnPnzrz00kssXLiwwAtk27ZtGTp0KCtWrKBjx448/PDDTJs2jYMHD95yvEIIIYS4fWriu47BYOCTTz6hR48eNGvWjPbt29OxY0def/11APs7DcD58+cJDg4uVKV0o/Pnz+Pm5kZgYGCZ4ymN4ODgIrdHRUXx3HPP0apVK1q3bk2HDh3o2LEj27ZtK3Af586dA6Bx48Y3vVabNm0IDQ1lyZIl9gTj77//TnZ2No888sit34wQdyCZ4ieEqNbi4+PZtm0bZrOZAQMGFHnM0qVLS+y54OjoyEsvvcSbb77JTz/9RMuWLUt17d69e9OqVSvmz5/Po48+Wq74y6tFixZs3LiRHTt2sHv3bvbu3cv69euZNWsWP//8M/Xr1wfg/fffZ9y4cfz555/s37+fZcuW8eOPPzJ69GjeeOON2xqzEEIIIcqupr7rvPrqq2zatImHH36YNm3a4OHhgVqt5siRI3zyyScFpu5VtJIqqfLy8ord5+DgUGhbXFwco0aNwtHRkWeeeYZ69erh4OCAUqlk9uzZN00OlmT48OG8++677Nq1i44dO7J48WK8vb3p2bNnuccU4k4mCSohRLUWERGB2Wxm6tSp9p4M11u6dCkbNmwgJSUFDw+PYscZOnQo8+bN49tvv2XatGmlvv7kyZMZMWIEn3322S01svT09MTJyYlTp04V2me1Wjl9+jRubm64ubnZtzs4ONCzZ0/7S8z27dt5+umn+e677wrcQ/369alfvz5jxowhJyeHp59+mvnz5zNmzJhK+wRSCCGEEBWjJr7rZGRksGnTJh566CH+97//Fdh3/vz5QscHBwdz/vx5srOzS6yiCg4O5syZM1y+fJmAgIBij8t/X7q+uinf9av3lcaGDRvIysriyy+/LJQE/PTTTwt8HRISAsDx48dLNfagQYP45JNPWLJkCe7u7hw5coTx48dLc3QhiiFT/IQQ1ZbVamXp0qX4+/vzxBNP0Ldv30L/PfrooxiNxpv2XFCpVLz66qukp6fz9ddflzqGli1b0qdPH1atWlXql5GiKJVKevXqZV+t5nqrVq3i4sWL9O7d2/6JYHJycqExmjZtCkBqaqr91xs/ndTr9TRo0KDAcUIIIYSonmrqu07++8qNvbEyMzOZO3duoeMfeughsrOzmTlzZqF917/LPPTQQwB8+OGHmM3mQsfmXy8wMBCNRsOOHTsK7D9//jwbN24s1T3kU6lURW7ftm0bkZGRBbaFh4fTsGFDVq1axeHDh0u8F7D1FH3ggQfYuHEj3377LQqFQqb3CVECqaASQlRbO3bsIDo6mjFjxhRbyt25c2dcXFxYunTpTVegue+++2jXrl2JjceL8sorr7B582aOHj1apvOKGmfHjh1MmjSJ3bt307BhQ6KioliyZAn+/v68/PLL9mMfeOABWrRoQfPmzalVqxZpaWmsWLECsH0aB7BixQrmzp1Lr169CAoKwsHBgSNHjrB06VLCw8Np1KjRLcUrhBBCiMpVU991nJ2d6dq1K6tXr0ar1dKiRQsSEhJYtmwZXl5ehY5//PHH2bp1K3PnzuXYsWPce++9ODs7c/78ef7++29+++03APr27cuDDz7I6tWrefjhh+nduzdeXl5ER0ezbt06li5diqurK05OTgwZMoRFixYxceJEOnToQGxsLL/++ithYWGFEksluffee3F0dOS1117j0UcfxcPDg2PHjrF69WoaNmzIyZMn7ccqFAo++OADnnjiCUaOHMnQoUMJDw/HYDDwzz//EBQUVGi1wZEjRxIRESHN0YUoBUlQCSGqrcWLFwPQp0+fYo/RarX06NGDlStXcvDgwZv2XHj99dcZNmxYiavh3Cg4OJgRI0Ywf/78Up9TFD8/P5YuXcrnn3/Oxo0bWbx4MZ6engwdOpQXX3wRb29v+7H5faUWLFhAeno67u7uhIeHM3XqVDp37gxA+/btOXHiBH/++ScJCQn2azz99NOMHTu22E8EhRBCCFE91OR3nY8++ogZM2awdetWVq1aRUBAAI8++ihNmjQp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Psuzzz5baLunpye7du26laFFGemvTvEz5MoUPyGEEKKmaN68Oc2bN7d/7eHhQUTE/7d33+FRVun/x99TM+k9hBYSIAk1CEpTBAUUbICKggUsuLK6usqyi7jf/W1XWVRcdC24CtgVkSYqqLg2FKVI7yVAKCmkl8nU3x9DRkKIhBCYQD6v65prJudp93PEPCf3nDKPbdu2YTKZaNu27Tm/0vD5xOv1MmP+BjbsygPgvhu70aVdXICjEhEROT80eIvn4MGDbN68Ga/X29Cnll+gHlQiIiLnlvLycv7zn//wzTff1NiWnp5O+/btlZxqZD5evocl32cCMKx/W67s3SawAYmIiJxH6t3qef/993nkkUeqlT322GMMGjSIG2+8kRtvvNG/Up6ceepBJSIicm4JCQnhpZde4vDhw4EORepg7fYcXl64EYAe6QncfW3nAEckIiJyfql3guqDDz6o9q3e2rVreeONN+jZsyejR49m27ZtzJo1q0GClJOr6kHlcntwuT0BjkZERETqomXLluTn5wc6DDmJSqebf7/7Ex6Pl1YJYUwacxEmk3q3iYiINKR6P1n37dtHenq6/+elS5cSGRnJK6+8wl/+8hduvPFGli5d2iBByslVreIHYHeoF5WIiMi54IYbbmDBggXY7fZAhyK/4KNvd3OkyI7RAJPv6ElosFbsExERaWj1niS9pKSEiIgI/8+rV6+md+/eWK1WALp27crixYtPP0Kpk6oeVAD2ShdhajiJiIg0ehkZGSxZsoThw4dz++2306ZNG4KDg2vs17NnzwBEJwClFU7eX7YDgEE9k2iTGHGSI0RERKQ+6p2gio2NJSsrC/AlqzZv3sw111zj315RUYHBYDj9CKVOgoOO7UGlidJFRETOBXfddZf/82OPPVaj7eT1ejEYDGzZsuVshyZHffDFDkornFjNRm4d0iHQ4YiIiJy36p2g6tGjB++99x6pqal8/fXXuN1u+vfv79++b98+4uPjGyRIOTnbsQkqTZQuIiJyTnjiiScCHYL8giNFFSz6ZjcA1/ZrS1xUzd5tIiIi0jDqnaD6zW9+ww8//MCECRMAGDlyJCkpKYDv275ly5bRt2/fholSTqraED/1oBIRETknXH/99YEOQX7BO59uw+F0ExpsYeSg1ECHIyIicl6rd4KqXbt2fPTRR6xZs4aIiAguuugi/7bi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/eVerxer1cpf//pXevfuHcAIm46qHlQmowGLud7TtIqIiEg96euh81jPTom8/ek28ovt7D5QRLtWUYEOSURERI5z00030b9/f5YsWUJmZibgWy156NChNGvWLLDBNSFVCargILO+1BMREQmAeieonnvuOZYuXcrixYtrbPN6vQwbNoyrrrqK+++//7QClPpr2zKSmIgg8osrWbklWwkqERGRRqpZs2bccccdgQ6jSfMnqGz6/lZERCQQ6t1/+bPPPqNv374n3GYwGLj44ov59NNP6x2YnD6j0UDPTr65p1ZuPhzgaEREROR4hYWFbN26tdbtW7dupaio6CxG1HQd24NKREREzr56J6iysrJo165drdtTUlJ+cdlkOTt6dvQNDdi+r5CCYnuAoxEREZFjPfXUU9VWRj7eo48+yrRp085iRE2XElQiIiKBVe8EldfrpbS0tNbtpaWluFyuWrfL2dEtNd4/0eeqLdkBjkZERESOtWLFCi6//PJatw8cOJDvv//+LEbUdFWt4qcElYiISGDUO0GVkpLC119/Xev2r7/+mjZt2tT39NJAbEFmMtrHAbBSCSoREZFGJScnhxYtWtS6PTExkZycnLMYUdNVrh5UIiIiAVXvBNWwYcP48ccfeeKJJ7Dbfx46Zrfb+de//sXKlSsZNmxYgwQpp6dqHqqftuXgdLkDHI2IiIhUsdlsHD5c+zyRhw8fxmxWwuRssDuUoBIREQmkej+Bb7/9dr788ktee+013n//fZKTkwHIzMykvLycXr16aTWaRqJnp2a8NA/sDjc/bsrmkm61f1MrIiIiZ0+nTp1YvHgxv/rVr7DZbNW2VVZWsnjxYjp27Big6JqWqiF+IUpQiYiIBES9e1CZzWZeeeUV/vCHP5CUlMTu3bvZvXs3SUlJTJo0iZkzZ9b7Gz+Hw8FTTz3FpZdeSkZGBiNHjuSbb7456XHff/89jz76KEOGDKFbt24MGjSI//u//6u1a/yaNWu49dZb6datGxdffDF/+9vfKCsrq1fMjVlCdAid28YC8PKCDZSWOwIckYiIiACMGTOGvXv3ctddd7Fq1SrKysooKytj1apV3HXXXezbt4+xY8cGOswmwT9Juk0JKhERkUA4rSew2Wxm3LhxjBs3rqHiAWDy5MksXbqUsWPHkpyczPz58xk/fjyzZ8+mV69etR735JNPUlRUxNChQ0lOTmb//v28+eabfPnll8yfP5+EhAT/vlu2bOHOO++kbdu2PPLII2RnZzNr1iwyMzOZNWtWg95PY3D/jRk8/MxX5Bfb+e/CjUy4pUegQxIREWnyBg0axH333ceLL77ImDFjqm3zer2MHz+eK664IkDRNS1axU9ERCSwGt0TeP369Xz00UdMnDiRe++9F4ARI0Zw7bXXMnXqVObOnVvrsY8++igXXnghRuPPHcMuvfRSbr/9dt544w0mTpzoL582bRrh4eG88cYbhIeHA9CqVSv+9Kc/8dVXXzFgwIAzdIeBkZQYwe1DOzBr8Wa+WLWfi7s2p3eX5oEOS0REpMl76KGHuPzyy/nwww/Zu3cvAMnJyVx33XV07do1wNE1HVUJKpu10TWPRUREmoRG9wResmQJRqORUaNG+cuCgoIYOXIk06ZNIysri1atWp3w2J49e56wLCoqip07d/rLSktL+e6777j99tv9ySmA4cOH8/jjj/PJJ5+cdwkqgOED2vPdhkNs21vA83PX0TEllohQa6DDEhERafIyMjLIyMgIdBhNmnpQiYiIBFajewJv2bKFpKQkIiMjq5VXNdq2bNlSa4LqRKrmcoiOjvaXbdu2DZfLRZcuXarta7Va6dixI5s3bz6NO/iZx+Nh69atDXKuKpV5B7BkrWVrRREER578gOMM6xXFM1mFFJRU8tRr33LrwHN/wvSKigqABq/rc5nqpCbVSU2qk+pUHzU19TrxeDzVemWfKW63m88//5x169ZRVFSEx+Optt1gMPD444+f8TiaOs1BJSIiEliN7gmcm5tLfHx8jfKqstomPK/Na6+9htPp5Jprrql2jWPPefx1du/efUrXOJuCdi3HmrUOt9eNu/uwUz4+IcrK0IviWPxDLj/tKqFrSgldU8JPfqCIiIg0uKKiIu688062bt2K1+vFYDDg9XoB/J+VoDrznC43Lrev3tWDSkREJDAa3RPYbrdjtdYcdhYUFOTfXlcrV67k+eefZ+jQoVxyySXVrgHUep3KyspTDfuEjEYjHTp0aJBzVdmxNgSAUHcpLep57tQ0L7uyv2VLZj6LVhzhyksziAwLasgwz6qqb/Ybuq7PZaqTmlQnNalOqlN91NTU6+Snn34649d49tln2bFjB//4xz/o3bs3V1xxBa+88grNmzfn+eefJysri1dfffWMx9HU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kcNHyvhx02FWbckmK7eUI4UVeLy+fYvLHBSXOdixv9CfvDIaDbRtEUGHNr4eWultookItWK1mDCbNExQREQk0NSDSkREpPE4rafx9OnTefnll3G73dXKn3zySe655x4mTJhwyudcsmQJRqORUaNG+cuCgoIYOXIk06ZNIysry78U8vHCwsLqdA2Xy4Xdbic+Pr5aeVRUFFarleDg4FOOuzGI7DOM4rWf4S7J58jns2k++k+BDum8khgbyrD+7RjWvx0ATpeHvMIKsvPLyM4vJzu/nIO5ZWzfX0BuQYVvLqusInZmFbF4+Z5q5zIaDVjNRqwWE1aLiYgQK8MHtOXyC1trbjcREZGzRAkqERGRxqPeT+M333yTF198kYyMDO666y7at28PwI4dO5g1axYvv/wy8fHx3H777ad03i1btpCUlERkZGS18oyMDP/22hJUdWWz2ejatSvz5s0jIyODXr16UVZWxquvvorX62XMmDGndf5AMVptxFx+G7mLnqNi10+U7/qJkHbdAx3WectiNtI8LpTmcaE1th0pqmBrZgFb9+azJTOfXVlFuNwe/3aPx4vd4cbu8CV38woreOadn/hm7UEeuKkbsZHnZpJURETkXPLzKn5KUImIiATaaSWounTpwltvvYXFYvGXp6amMnjwYEaPHs2bb755ygmq3NzcGj2bAH9ZTk5OfUOu5sknn2TChAk88sgj/rKEhATefPNNOnXq1CDX8Hg8bN26tUHOVaWiogKg9vOaEzBHt8RYcICDH72Ma/ADYDQ1aAyNzUnrJEBig+CSNDOXpCXgdMWRU+ig0unB6fbidHlwub3+z5v2lrI9q5xVW7L59ZTPGdY3gYtSI+rdm6qx1kkgqU5qUp1Up/qoqanXicfjwWjUkOzzWbl6UImIiDQa9W51HThwgGuvvbZacqqK1Wrluuuu48CBA6d8XrvdjtVqrVEeFBTk394QwsPDSU1N5eabb+a5557jn//8JxEREYwfP94/n9Y5yWDEneFbtdBYkoNxT+0TxcvZYzEbaRlno23zENJbhdIlOZwL2kXQMy2SiztFc8/QVtzUPxGbxYjd4WHOV4eZufQARWXOQIcuIiJy3rI7lKASERFpLOr9NE5ISMDhcNS63el00qxZs1M+r81mO+F5Kysr/dtPl8vl4q677qJ79+78/e9/95cPHjyYIUOG8PTT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4XDw7LPPsnDhQoqKikhLS+Ohhx7i0ksvPemxGzdu5D//+Q8bN26krKyMFi1aMHz4cO644w6Cgn5+Jng8HubMmcO7777L3r17sdlspKenc++993LxxRefyds7LU6XB7dHQ/xERE7G63Ky/8UHcBXnBToUzBFxtL7vP6ecpLLZbAwcOJBPP/2Uv/zlL/6heMXFxXz77bfccsstGI1GbrnlFu6+++5qxw4cOJBbbrmFTz/9lOHDh9f5mvn5+bzyyitcdtllPPPMMxgMBoKDg5k+fTovvPBCtX3T09P5/PPPMRp/7kwwatQorrrqKt544w0ee+wxQkJCGDJkCH/9619JT08/aSxOp5OpU6fSrl073n77bWw230JeF198MWPHjuW///0vjzzySLX9hwwZwgMPPADALbfcwvXXX8/cuXOVoBKRujOFhBPW6RLCOl2C1+vFeeQAFbvXkrthOYbCQxjsJQB4XQ4cOXtx5Ow9tQsYjFhimvsTVpaoeIwhEZhCIo++wjGY9GtERKSxmTx5MkuXLmXs2LEkJyczf/58xo8fz+zZs+nVq1etx23cuJHRo0fTpk0b7r77bkJCQvjhhx94+umn2bJlC88884x/36lTpzJr1iyuvfZaRo8eTVlZGXPnzuXuu+9mxowZDBgw4Gzc6imrqHT5PytBJSJy/rvmmmv48MMP+e677+jfvz8An332GU6nk2uuuQagWg+psrIyHA4HycnJREREsGnTplNKUH333Xc4nU5uvfVWDAaDv3zMmDE1ElRWq9X/ubKykvLycrxeL127dmXTpk31ut+NGzeSl5fHr3/9a39yCqB379507tyZL7/8slqCCuDmm2+u9vOFF17IokWL6nX906Gnssh5wmAwYI1rhTWuFYci2gOQlpKEM/8QziMHcRw5gDP/IM4jB/G6HBjMVgwWK0az9ejnIAxmC66iXBzZmXgqy8HrwXnkAM4jByjbvPyE1zXawjCFRGAKi8YcHoMpPBpTWAzmcN/LFBoJJrNviKHBCAbD0c++X9Zetwuv2+l7d/necbvAAKawaExh0RjN1hNeW0REalq/fj0fffQREydO5N577wVgxIgRXHvttUydOpW5c+fWeux7770HwJtvvkl0dDQAo0ePxul0smTJEv83uS6Xi3feeYcrr7ySp59+2n/89ddfT//+/Zk/f/65kaCyqSksIlIb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UJ0jHA4HTz31FJdeeikZGRmMHDmSb775JtBhnTVlZWU8++yz/OpXv6JPnz6kp6fz8ssvn3DfXbt2cc8999C9e3d69erFxIkTycvLO8sRn1nr16/n73//O9dccw0XXHABl112GQ899BB79uypsW9TqA+ATZs28cADDzBw4EAyMjLo06cPt99+O//73/9q7NtU6uR4ixYtIj09na5du9bY1hTq5IcffiA9Pf2Er7Vr11bbd82aNdx6661069aNiy++mL/97W+UlZUFJvCzYPPmzdx333307t2bbt26cfXVV/Pf//632j5NrU7k/KO2lNpSx1Jbqia1pU5ObSm1pWqjtlTDMAc6AKmbyZMns3TpUsaOHUtycjLz589n/PjxzJ49m169egU6vDOuoKCA559/nsTERDp16sTy5ctPuN/hw4e57bbbCAsLY8KECVRUVPDqq6+yfft25s6dS1BQ0FmO/Mx45ZVXWLNmDUOHDiU9PZ3c3FzeeustbrjhBt59913S09OBplMfAPv378fhcHDDDTfQrFkzysvL+fTTT/n1r3/NX//6V2655RagadXJscrKynjyyScJCQnB5XJV29bU6uS2226jW7du1cqSkpL8n7ds2cKdd95J27ZteeSRR8jOzmbWrFlkZmYya9assx3uGfftt9/y61//mk6dOnHfffcREhLC/v37OXz4sH+fplYncn5SW0ptqWOpLVWT2lK/TG2pn6ktVZ3aUg3IK43eunXrvGlpad4ZM2b4y+x2u3fw4MHeG2+8MYCRnT2VlZXew4cPe71er3f//v016qPKX/7yF2+XLl28WVlZ/rLly5d709LSvG+++eZZi/dMW716tbeysrJa2Z49e7xdunTxTpgwwV/WVOqjNi6Xyzts2DDvFVdc4S9rqnXy5JNPeocMGeKdOHGit0uXLtW2NZU6WbFihTctLc27ePHiX9zvnnvu8V588cXe4uJif9mcOXO8aWlp3i+//PJMh3lWlZSUeC+++GLvb37zG6/b7a51v6ZUJ3J+UltKbanjqS1VN2pL/UxtKbWlTkRtqYalIX7ngCVLlmA0Ghk1apS/LCgoiJEjR7JhwwaysrICGN3ZYbVaadas2Un3+/TTTxkwYAAtW7b0l1188cUkJyezZMmSMxniWdWjRw+sVmu1suTkZFJTU9m5c6e/rKnUR21MJhOJiYkUFxf7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oEM7awYOHFjtW4ljLVu2jFatWgGwY8cOpkyZwpo1azCbzfTv35/JkyefcFnPc9WYMWP48ccfa92+bds2/+emUB8AH3zwAQsWLGDXrl0UFRURFhZG586due222xg0aFC1fZtKnZzIiRpV0DTq5PXXX+fDDz9k3759lJaWEh0dTZ8+fXjggQdITk6utu+qVat4+umn2bRpEyEhIQwdOpTf//73hIWFBSb4M8jpdDJjxgzmzZtHTk4OiYmJ3Hzzzdxzzz0YjT93tG5KdSLnJ7Wl1JY6ltpSNaktVTdqS6ktdTy1pRqOElQiIiIiIiIiIhJQmoNKREREREREREQCSgkqEREREREREREJKCWoREREREREREQkoJSgEhERERERERGRgFKCSkREREREREREAkoJKhERERERERERCSglqEREREREREREJKCUoBIRERERERERkYBSgkpERERERERERAJKCSoRkQDLysoiPT2d5557LtChiIiIiJxz1JYSOT8oQSUiIiIiIiIiIgGlBJWIiIiIiIiIiASUElQiIiIiIiIiIhJQ5kAHICJyJjgcDl577TUWLVrE3r17MZvNZGRk8Jvf/IaePXv698vKymLQoEE88MADpKamMmPGDHbt2kVERARXXXUVDz/8MKGhodXOnZ2dzbPPPsvXX39NQUEBMTExDBgwgAcffJCEhIRq+3q9XubPn8+cOXPYvn07breb5s2b069fPyZNmoTVaq22/1dffcXzzz/P1q1bCQkJ4corr2Ty5MmEhIScucoSEREROY7aUiJythm8Xq830EGIiDQkl8vFPffcw8qVK7nmmmvo1q0bdrudRYsWsWPHDp5//nkuv/xy4OdGVefOncnMzOTWW2+lefPmfP/993z22Wf06tWL2bNnYzKZAF+D6sYbbyQ/P5+RI0fSoUMHtm7dyvvvv0+zZs2YO3cucXFx/lgeeeQRFixYQKdOnRg8eDCxsbHs27ePzz77jA8++ICIiAh/DBkZGezbt4/Ro0eTmJjI999/z9KlSxk1ahR///vfA1KXIiIi0vSoLSUiAeEVETnPzJ4925uWlub99NNPq5U7HA7viBEjvAMHDvSX7d+/35uWluZNT0/3rlu3rtr+//jHP7xpaWneDz74wF/2hz/8wZuWluZdtGhRtX3nz5/vTUtL8/7xj3/0l33yySfetLQ07wMPPOB1Op3V9vd4PF6Px1MthoyMDO++ffuq7Xf33Xd7O3fu7C0rK6tHTYiIiIicOrWlRCQQNAeViJx3Fi5cSMuWLbnwwgvJz8/3v0pKShg4cCBZWVns2bOn2jGXXHIJGRkZ1cruu+8+AD799FMAPB4Pn3/+OSkpKVx33XXV9h0+fDhJSUl89tlneI92TF20aBHg++bPbK4+otpgMGAwGKqVDR48mNatW9eIy+l0kpWVVZ+qEBERETllakuJSCBoDioROe/s3r2biooK+vbtW+s+R44cISUlxf9zu3btauwTGxtLVFQUe/fuBSA/P5+ysjLS0tJq7GswGGjfvj1ffPEFRUVFREVFkZmZSWRkJK1atapT3Mc3qACioqIAKCwsrNM5RERERE6X2lIiEghKUInIecfj8ZCSksKf//znWvdJTU09ixHVTdXcDCfi1XSBIiIicpaoLSUigaAElYicd5KTkzl8+DC9evWq0R28Nrt27apRduTIEQoLC+nevTsAMTExhIaGsmPHjhr7er1edu7cSWRkJJGRkf44du3axYEDB2jZsuVp3JGIiIjI2aO2lIgEguagEpHzzogRIygqKuKll1464fa8vLwaZcuXL2f9+vXVyl588UUArrjiCgCMRiODBw9m9+7dLFmypNq+ixYtYt++fVxxxRX++RCGDRsGwL/+9S/cbneNa+qbPBEREWmM1JYSkUBQDyoROe+MHTuW77//nueee46VK1dyySWXEBUVxaFDh/jpp5/Yv38/y5Ytq3ZMp06duPPOO2ssjXzhhRcyYsQI/36/+93v+O6775g4cSI//PADaWlp/qWRmzdvzoQJE/z7Dh06lOuuu44PP/yQm266iSuuuILY2FiysrJYsmQJc+fOJSIi4mxVi4iIiEidqC0lIoGgBJWInHfMZjMvvfQS7733HgsWLODFF1/E7XYTFxdH586dmThxYo1jLr/8ctq3b8+MGTPYtWsXERERjBkzhocffrjafAaJiYnMnTuX5557js8++4w5c+YQExPDjTfeyIMPPkhcXFy18z755JP07NmT999/nxkzZmAwGEhMTOSyyy7DZrOd8boQEREROVVqS4lIIBi86hcpIk1YVlYWgwYN4oEHHuDBBx8MdDgiIiIi5xS1pUSkoWgOKhEREREREYanBqAAAACqSURBVBERCSglqEREREREREREJKCUoBIRERERERERkYDSHFQiIiIiIiIiIhJQ6kElIiIiIiIiIiIBpQSViIiIiIiIiIgElBJUIiIiIiIiIiISUEpQiYiIiIiIiIhIQClBJSIiIiIiIiIiAaUElYiIiIiIiIiIBJQSVCIiIiIiIiIiElBKUImIiIiIiIiISEApQSUiIiIiIiIiIgGlBJWIiIiIiIiIiATU/wfhVJyaA2juHwAAAABJRU5ErkJggg==",
            "text/plain": [
              "<Figure size 1210x440 with 2 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "final train-validation accuracy gap: -0.0054\n",
            "epochs run: 67 (early stopping restored the best-validation-loss weights)\n"
          ]
        }
      ],
      "source": [
        "h = best_ann_hist.history\n",
        "fig, axes = plt.subplots(1, 2, figsize=(11, 4))\n",
        "axes[0].plot(h[\"loss\"], label=\"train\")\n",
        "axes[0].plot(h[\"val_loss\"], label=\"validation\")\n",
        "axes[0].set_title(\"ANN loss\"); axes[0].set_xlabel(\"epoch\"); axes[0].set_ylabel(\"binary cross-entropy\")\n",
        "axes[0].legend()\n",
        "axes[1].plot(h[\"accuracy\"], label=\"train\")\n",
        "axes[1].plot(h[\"val_accuracy\"], label=\"validation\")\n",
        "axes[1].set_title(\"ANN accuracy\"); axes[1].set_xlabel(\"epoch\"); axes[1].set_ylabel(\"accuracy\")\n",
        "axes[1].legend()\n",
        "plt.tight_layout()\n",
        "plt.show()\n",
        "\n",
        "gap = h[\"accuracy\"][-1] - h[\"val_accuracy\"][-1]\n",
        "print(f\"final train-validation accuracy gap: {gap:+.4f}\")\n",
        "print(f\"epochs run: {len(h['loss'])} (early stopping restored the best-validation-loss weights)\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "4c76efb1",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:39.519194Z",
          "iopub.status.busy": "2026-09-08T07:16:39.518948Z",
          "iopub.status.idle": "2026-09-08T07:16:44.168603Z",
          "shell.execute_reply": "2026-09-08T07:16:44.167011Z"
        },
        "id": "4c76efb1",
        "outputId": "6d190f3c-b51b-4055-abb7-8525b284b50b"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Artificial Neural Network\n",
            "  accuracy  0.8624   precision 0.8071   recall 0.9856   f1 0.8875\n",
            "  TPR       0.9856   FPR       0.2885   FNR    0.0144   AUC 0.9827\n",
            "  TN  26324   FP  10676   FN    655   TP  44677\n"
          ]
        }
      ],
      "source": [
        "ann_final = best_ann\n",
        "val_pred[\"Artificial Neural Network\"] = (ann_final.predict(X_val, verbose=0).ravel() >= 0.5).astype(int)\n",
        "timings[\"Artificial Neural Network\"] = {\"train_s\": best_ann_fit}\n",
        "\n",
        "t0 = time.time()\n",
        "ann_score = ann_final.predict(X_test, verbose=0).ravel()\n",
        "timings[\"Artificial Neural Network\"][\"predict_s\"] = time.time() - t0\n",
        "ann_pred = (ann_score >= 0.5).astype(int)\n",
        "\n",
        "results[\"Artificial Neural Network\"] = evaluate(y_test, ann_pred, ann_score,\n",
        "                                                \"Artificial Neural Network\")\n",
        "artifacts[\"Artificial Neural Network\"] = ann_final\n",
        "show(results[\"Artificial Neural Network\"])"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "64c7c812",
      "metadata": {
        "id": "64c7c812"
      },
      "source": [
        "## Model Evaluation\n",
        "\n",
        "Every model is scored once on the untouched testing partition using the metrics required by Objective 4, extended with the false positive measures required by the aim and scope."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "917a537b",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:44.171176Z",
          "iopub.status.busy": "2026-09-08T07:16:44.170874Z",
          "iopub.status.idle": "2026-09-08T07:16:44.261218Z",
          "shell.execute_reply": "2026-09-08T07:16:44.259821Z"
        },
        "id": "917a537b",
        "outputId": "6578af38-a789-42ab-d682-9172a45a1556"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "======================================================================\n",
            "Random Forest\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "      normal     0.9855    0.7015    0.8196     37000\n",
            "   malicious     0.8028    0.9916    0.8872     45332\n",
            "\n",
            "    accuracy                         0.8612     82332\n",
            "   macro avg     0.8942    0.8466    0.8534     82332\n",
            "weighted avg     0.8849    0.8612    0.8569     82332\n",
            "\n",
            "======================================================================\n",
            "Support Vector Machine\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "      normal     0.9714    0.6665    0.7905     37000\n",
            "   malicious     0.7833    0.9840    0.8722     45332\n",
            "\n",
            "    accuracy                         0.8413     82332\n",
            "   macro avg     0.8773    0.8252    0.8314     82332\n",
            "weighted avg     0.8678    0.8413    0.8355     82332\n",
            "\n",
            "======================================================================\n",
            "Artificial Neural Network\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "      normal     0.9757    0.7115    0.8229     37000\n",
            "   malicious     0.8071    0.9856    0.8875     45332\n",
            "\n",
            "    accuracy                         0.8624     82332\n",
            "   macro avg     0.8914    0.8485    0.8552     82332\n",
            "weighted avg     0.8829    0.8624    0.8584     82332\n",
            "\n"
          ]
        }
      ],
      "source": [
        "preds = {\"Random Forest\": rf_pred,\n",
        "         \"Support Vector Machine\": svm_pred,\n",
        "         \"Artificial Neural Network\": ann_pred}\n",
        "scores = {\"Random Forest\": rf_score,\n",
        "          \"Support Vector Machine\": svm_score,\n",
        "          \"Artificial Neural Network\": ann_score}\n",
        "\n",
        "for name in preds:\n",
        "    print(\"=\" * 70)\n",
        "    print(name)\n",
        "    print(classification_report(y_test, preds[name], target_names=[\"normal\", \"malicious\"],\n",
        "                                digits=4, zero_division=0))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "9fabff4d",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:44.263942Z",
          "iopub.status.busy": "2026-09-08T07:16:44.263661Z",
          "iopub.status.idle": "2026-09-08T07:16:44.551387Z",
          "shell.execute_reply": "2026-09-08T07:16:44.550204Z"
        },
        "id": "9fabff4d",
        "outputId": "0ded349d-9acd-4267-9ab4-733a1840a2d2"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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XCi3vK7UvHnz4O7ujoCAANnPwtzcHAMHDsT48eOLPHM8JzU1NaxevRrLli3D4cOHcfDgQVSuXBnDhg3D+PHjC7XcDxHRh1RRYo+i9nu4urpix44dWLlyJS5fvoyDBw9CW1sbtWvXxsyZM2Wd4lLs92C/R36K0u+hr6+PHTt2YMWKFThz5gzmzZsHsVgMe3t7TJs2DUOHDpWr36FDB5w+fRrbtm3D+/fvoaGhgerVq2PmzJkYOHCgwh6J7Pf4uIkEVe+eRERERERERERERERE9IlTHHZMREREREREREREREREJcIEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpmHpZN6C88dpws6ybQET5mNayelk3gYgK0Ki6UVk34aPi8/ftsm4CERVgtEeVsm4CEeWjhcSkrJvwUem59npZN4GICvBd25pl3QQiyodHtcL3e3AGDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpGBMwREREREREREREREREKsYEDBERERERERERERERkYoxAUNERERERERERERERKRiTMAQERERERERERERERGpmHpZNyA3JycniESiIp0jEonw4MGDD9QiIiIiqsgYexAREVFpYuxBRET06Sh3CZjx48cXORAhIiIiKi7GHkRERFSaGHsQERF9OspdAmbixIll3QQiIiL6hDD2ICIiotLE2IOIiOjTwT1giIiIiIiIiIiIiIiIVKzczYDJS1hYGO7fv4/4+HgIgqBwvGfPnqXfKCIiIqqwGHsQERFRaWLsQUREVPGU+wRMWloaZs6cicOHDyMrKwsikUgWiORcM5WBCBEREakCYw8iIiIqTYw9iIiIKq5yvwTZokWLcOTIEXz55ZfYvHkzBEHA7NmzsX79ejRr1gzOzs4ICAgo62YSERFRBcHYg4iIiEoTYw8iIqKKq9wnYI4cOYIePXpgzJgxqFGjBgDAwsICTZs2xZo1a6Cjo4Pt27eXcSuJiIioomDsQURERKWJsQcREVHFVe4TMBEREXB3dwcAaGhoAABSU1MBZE/F7dChA44ePVpWzSMiIqIKhrEHERERlSbGHkRERBVXuU/AmJqaIj4+HgCgp6cHbW1tBAcHy45nZGQgMTGxrJpHREREFQxjDyIiIipNjD2IiIgqLvWybkBBnJ2dcefOHQDZIz88PDywadMm1KpVC4IgYMuWLahVq1YZt5KIiIgqCsYeREREVJoYexAREVVc5X4GTN++fZGZmSmbfvvNN98g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JyfY2dnh/fv3EARBVi4NTKytrcuqaURERFQBMfYgIiKi0sTYg4iIqOIp9wmY1NRULF26FH5+foiNjc2z3sOHD0uvUURERFRhMfYgIiKi0sTYg4iIqOIq9wmYn376Cfv27YOnpyfq168PIyOjsm4SERERVWCMPYiIiKg0MfYgIiKquMp9Aub48ePw9vbGL7/8UtZNISIiok8AYw8iIiIqTYw9iIiIKi5xWTegICKRCLVq1SrrZhAREdEngrEHERERlSbGHkRERBVXuU/AtG3bFpcuXSrrZhAREdEngrEHERERlSbGHkRERBVXuU/AjBkzBiEhIfj+++9x+/ZthIeHIyoqSuE/IiIiIlVg7EFERESlibEHERFRxVXu94Dp1KkTAODhw4fYvXt3nvUePnxYWk0iIiKiCoyxBxEREZUmxh5EREQVV7lPwIwfPx4ikaism0FERESfCMYeREREVJoYexAREVVc5T4BM3HixLJuAhEREX1CGHsQERFRaWLsQUREVHGV+z1giIiIiIiIiIiIiIiIPjZMwBAREREREREREREREakYEzBEREREREREREREREQqxgQMERERERERERERERGRijEBQ0REREREREREREREpGJMwBAREREREREREREREakYEzBEREREREREREREREQqxgQMERERERERERERERGRijEBQ0REREREREREREREpGJMwBAREREREREREREREakYEzBEREREREREREREREQqxgQMERERERERERERERGRijEBQ0REREREREREREREpGJMwBAREREREREREREREakYEzBEREREREREREREREQqxgQMERERERERERERERGRijEBQ0REREREREREREREpGJMwBAREREREREREREREakYEzBEREREREREREREREQqxgQMERERERERERERERGRijEBQ0REREREREREREREpGJMwBAREREREREREREREakYEzBEREREREREREREREQqxgQMERERERERERERERGRijEBQ0REREREREREREREpGLqRak8ePDgIt9AJBJh06ZNRT6PiIiICGD8QURERKWLsQcRERGpSpESMK9fv/5Q7SAiIiJSivEHERERlSbGHkRERKQqRUrAnDp16kO1g4iIiEgpxh9ERERUmhh7EBERkapwDxgiIiIiIiIiIiIiIiIVYwKGiIiI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",
            "text/plain": [
              "<Figure size 1650x462 with 3 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "fig, axes = plt.subplots(1, 3, figsize=(15, 4.2))\n",
        "for ax, (name, p) in zip(axes, preds.items()):\n",
        "    cm = confusion_matrix(y_test, p, labels=[0, 1])\n",
        "    sns.heatmap(cm, annot=True, fmt=\",d\", cmap=\"Blues\", cbar=False, ax=ax,\n",
        "                xticklabels=[\"normal\", \"malicious\"], yticklabels=[\"normal\", \"malicious\"])\n",
        "    ax.set_title(f\"{name}\\nFPR = {results[name]['fpr']:.4f}   recall = {results[name]['recall']:.4f}\")\n",
        "    ax.set_xlabel(\"predicted\"); ax.set_ylabel(\"actual\")\n",
        "plt.tight_layout()\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "db1447e6",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:44.553602Z",
          "iopub.status.busy": "2026-09-08T07:16:44.553365Z",
          "iopub.status.idle": "2026-09-08T07:16:44.730664Z",
          "shell.execute_reply": "2026-09-08T07:16:44.729407Z"
        },
        "id": "db1447e6",
        "outputId": "d5921fc9-fa2e-4958-c8c4-ac46f0756f19"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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DkEIUUokwRRClLrceZNqtZqwsDDs7Oyws7MjNDQUgL179/LBBx/Qtm1b7O3tadGiBUOHDiUqKqpIx4+NjWXatGl4enpib2+Pq6srfn5+rFixIk/dAwcO8O677+Lk5ETTpk3x8fFh27ZtRb4WOzs7AgMDiYyMpF+/fjg4OODq6kpgYCD//PNPnvqJiYl8/fXXeHp68uabb9KqVSs+/vhjbt26lafurl276Nu3Ly1atKBp06a0adOGMWPGcO3aNaXOs3MwAwMDmTRpEgCDBg1SXtvAwEAg7xzM5ORkHBwceO+99/K9vp07d2JnZ6fxmqjVarZu3UqvXr1wcHDAwcGBfv36cejQoSK9Zk/HcODAAXr16kWzZs0YNWoUAHFxccyePRtfX19atGjBm2++iZeXFwsWLCAtLU05TmhoKO3atQNg6dKlyrV6enpqnC8yMhJ/f39cXFx488036dSpE8HBwWRnZxcpXiFEyZW/j7RCiP+cvn370rJlSz799FOcnZ3p06cPAE5OTgBs3LgRS0tLevXqRdWqVbl37x7bt29n8ODBbNiwQamXn6ysLN577z1iY2Pp168f9erVIzU1lRs3bhAZGcnIkSOVuosXLyYoKAhXV1fGjBmDkZERv/zyC1OnTuX27dtMmDChSNfz559/cuDAAfz8/OjevTsXL14kLCyM8+fPs337dszMzICcZK5///5cu3aNrl274uTkRHR0NJs2beL48eNs3ryZN954A8hJLj/55BOcnJwYPXo0pqamxMXFcfr0aW7evKnUy++1NTQ0JCQkhJEjR1KvXj0AatWqlW99c3Nz2rdvz549e7h37x7Vq1fX2B4WFoaJiQmdOnVSyiZNmkR4eDjt2rWjW7duAPz444+MHj2azz//nP79+xfpdTt8+DDr16+nX79+9OnTB7VaDcBff/3FgQMHaNeuHT179kStVnPmzBlWrlzJn3/+yapVqwBwcXFh0qRJfP3113To0IEOHToAKK83wPbt25k6dSqNGzdm2LBhWFpa8ttvvzF//nwuX77MggULihSrEKKE1EIIUUZsbW3VEydOzFOekpKSp+z+/fvqFi1aqIcNG6ZRPnHiRLWtra3y8+XLl9W2trbqlStXFnruS5cuqe3s7NRfffVVnm1ffvmlumHDhuq///67SNdga2ur3rdvn0b5unXr1La2turFixcrZQsX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",
            "text/plain": [
              "<Figure size 682x572 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "plt.figure(figsize=(6.2, 5.2))\n",
        "for name, s in scores.items():\n",
        "    fpr, tpr, _ = roc_curve(y_test, s)\n",
        "    plt.plot(fpr, tpr, label=f\"{name} (AUC = {results[name]['roc_auc']:.4f})\")\n",
        "plt.plot([0, 1], [0, 1], \"k--\", lw=0.8)\n",
        "plt.xlabel(\"false positive rate\"); plt.ylabel(\"true positive rate\")\n",
        "plt.title(\"ROC curves on the testing partition\")\n",
        "plt.legend(loc=\"lower right\", fontsize=8)\n",
        "plt.tight_layout()\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "255779d7",
      "metadata": {
        "id": "255779d7"
      },
      "source": [
        "### Validation Against Test Performance\n",
        "\n",
        "The validation split is drawn from the training partition, while the testing partition is a separately constructed file. Comparing the same metrics on both makes visible how much of the performance drop is generalisation error rather than model weakness, which matters when interpreting the false positive figures reported above."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "2c199af8",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:44.733864Z",
          "iopub.status.busy": "2026-09-08T07:16:44.733623Z",
          "iopub.status.idle": "2026-09-08T07:16:44.797842Z",
          "shell.execute_reply": "2026-09-08T07:16:44.796211Z"
        },
        "id": "2c199af8",
        "outputId": "80d99966-341d-45c4-bd81-faaec8d976b1"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "                           val_f1  test_f1  val_fpr  test_fpr  val_recall  test_recall  f1_drop  fpr_increase\n",
            "model                                                                                                        \n",
            "Random Forest              0.9296   0.8872   0.1051    0.2985      0.9644       0.9916   0.0423        0.1934\n",
            "Support Vector Machine     0.9212   0.8722   0.1237    0.3335      0.9649       0.9840   0.0489        0.2098\n",
            "Artificial Neural Network  0.9229   0.8875   0.1046    0.2885      0.9510       0.9856   0.0354        0.1839\n",
            "\n",
            "The two published partitions do not share an identical traffic distribution, so the\n",
            "false positive rate rises on the testing partition even though recall is retained.\n"
          ]
        }
      ],
      "source": [
        "gap_rows = []\n",
        "for name in val_pred:\n",
        "    v = evaluate(y_val, val_pred[name], None, name)\n",
        "    t = results[name]\n",
        "    gap_rows.append({\"model\": name,\n",
        "                     \"val_f1\": round(v[\"f1\"], 4), \"test_f1\": round(t[\"f1\"], 4),\n",
        "                     \"val_fpr\": round(v[\"fpr\"], 4), \"test_fpr\": round(t[\"fpr\"], 4),\n",
        "                     \"val_recall\": round(v[\"recall\"], 4), \"test_recall\": round(t[\"recall\"], 4),\n",
        "                     \"f1_drop\": round(v[\"f1\"] - t[\"f1\"], 4),\n",
        "                     \"fpr_increase\": round(t[\"fpr\"] - v[\"fpr\"], 4)})\n",
        "gap_table = pd.DataFrame(gap_rows).set_index(\"model\")\n",
        "print(gap_table.to_string())\n",
        "print()\n",
        "print(\"The two published partitions do not share an identical traffic distribution, so the\")\n",
        "print(\"false positive rate rises on the testing partition even though recall is retained.\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "c46d120e",
      "metadata": {
        "id": "c46d120e"
      },
      "source": [
        "## Model Comparison"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "96b59c9a",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:44.800566Z",
          "iopub.status.busy": "2026-09-08T07:16:44.800328Z",
          "iopub.status.idle": "2026-09-08T07:16:44.816844Z",
          "shell.execute_reply": "2026-09-08T07:16:44.815744Z"
        },
        "id": "96b59c9a",
        "outputId": "bb73541e-9e13-427d-9dc6-93703412c5bc"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>accuracy</th>\n",
              "      <th>precision</th>\n",
              "      <th>recall</th>\n",
              "      <th>f1</th>\n",
              "      <th>fpr</th>\n",
              "      <th>fnr</th>\n",
              "      <th>roc_auc</th>\n",
              "      <th>tn</th>\n",
              "      <th>fp</th>\n",
              "      <th>fn</th>\n",
              "      <th>tp</th>\n",
              "      <th>train_s</th>\n",
              "      <th>predict_s</th>\n",
              "      <th>flows_per_s</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>model</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>Random Forest</th>\n",
              "      <td>0.8612</td>\n",
              "      <td>0.8028</td>\n",
              "      <td>0.9916</td>\n",
              "      <td>0.8872</td>\n",
              "      <td>0.2985</td>\n",
              "      <td>0.0084</td>\n",
              "      <td>0.9824</td>\n",
              "      <td>25956</td>\n",
              "      <td>11044</td>\n",
              "      <td>381</td>\n",
              "      <td>44951</td>\n",
              "      <td>21.9</td>\n",
              "      <td>1.18</td>\n",
              "      <td>69926</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Support Vector Machine</th>\n",
              "      <td>0.8413</td>\n",
              "      <td>0.7833</td>\n",
              "      <td>0.9840</td>\n",
              "      <td>0.8722</td>\n",
              "      <td>0.3335</td>\n",
              "      <td>0.0160</td>\n",
              "      <td>0.9527</td>\n",
              "      <td>24659</td>\n",
              "      <td>12341</td>\n",
              "      <td>726</td>\n",
              "      <td>44606</td>\n",
              "      <td>311.5</td>\n",
              "      <td>211.95</td>\n",
              "      <td>388</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Artificial Neural Network</th>\n",
              "      <td>0.8624</td>\n",
              "      <td>0.8071</td>\n",
              "      <td>0.9856</td>\n",
              "      <td>0.8875</td>\n",
              "      <td>0.2885</td>\n",
              "      <td>0.0144</td>\n",
              "      <td>0.9827</td>\n",
              "      <td>26324</td>\n",
              "      <td>10676</td>\n",
              "      <td>655</td>\n",
              "      <td>44677</td>\n",
              "      <td>84.5</td>\n",
              "      <td>3.24</td>\n",
              "      <td>25400</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                           accuracy  precision  recall      f1     fpr     fnr  roc_auc     tn     fp   fn     tp  train_s  predict_s  flows_per_s\n",
              "model                                                                                                                                             \n",
              "Random Forest                0.8612     0.8028  0.9916  0.8872  0.2985  0.0084   0.9824  25956  11044  381  44951     21.9       1.18        69926\n",
              "Support Vector Machine       0.8413     0.7833  0.9840  0.8722  0.3335  0.0160   0.9527  24659  12341  726  44606    311.5     211.95          388\n",
              "Artificial Neural Network    0.8624     0.8071  0.9856  0.8875  0.2885  0.0144   0.9827  26324  10676  655  44677     84.5       3.24        25400"
            ]
          },
          "execution_count": 28,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "comparison = pd.DataFrame(results.values())[\n",
        "    [\"model\", \"accuracy\", \"precision\", \"recall\", \"f1\", \"fpr\", \"fnr\", \"roc_auc\",\n",
        "     \"tn\", \"fp\", \"fn\", \"tp\"]].set_index(\"model\").round(4)\n",
        "comparison[\"train_s\"] = [round(timings[m][\"train_s\"], 1) for m in comparison.index]\n",
        "comparison[\"predict_s\"] = [round(timings[m][\"predict_s\"], 2) for m in comparison.index]\n",
        "comparison[\"flows_per_s\"] = [round(len(y_test) / max(timings[m][\"predict_s\"], 1e-6))\n",
        "                             for m in comparison.index]\n",
        "comparison"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "922267a9",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:44.819126Z",
          "iopub.status.busy": "2026-09-08T07:16:44.818828Z",
          "iopub.status.idle": "2026-09-08T07:16:45.104097Z",
          "shell.execute_reply": "2026-09-08T07:16:45.102935Z"
        },
        "id": "922267a9",
        "outputId": "99b60935-6d6c-4aa2-a563-6516c1371899"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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F/TOO+9Y1I+Ojtabb76pMmXK6P3339eNGzf0/fffq0ePHtq0adMTZ1NUqVJFH3/8sUaNGqU33nhDb7zxhiQluB2OHz+uHj16KCAgQE2aNNHRo0e1ZMkS3b5922KJm7i4OPXs2VN79+5V06ZNFRwcrJiYGK1atUpdunTRtGnTVLdu3TTFk9zneEREhDp37iyj0aigoCAVKVJEt2/f1j///KM9e/aobdu2ye5/Yq5cuaKOHTuqXr16GjRokP7991/Nnz9f7733nlavXm1eXicuLk7du3fX33//rUaNGqlatWq6fPmyhgwZIk9Pz6e286jo6Gh16tRJpUuX1gcffKBLly5pwYIF6tixoxYuXChvb29z3VmzZql8+fJ688035erqqnPnzmnp0qXavn27VqxYkeC5cOnSJXXq1EkNGjTQgAEDdP369VTdPmPHjtWMGTMUERFh/lJGkkqUKPHE27J169a6efOm2rRpI29vbx0/flxLlizRtm3btHTpUuXNm9finEWLFunKlStq06aNcufOrY0bN+rbb7+Vs7OzevbsmaLbFQCQMjExMYlO7siSJYty5sxpUZbY+8uj3nrrLeXKlUs9evSQyWRS3rx5UzVW3bx5s3744QcFBwerXbt2MplMyepLYu1L6TcWT8lnuRkzZujrr79WnTp11LZtW2XNmlX//feftm3bpqtXrypfvnxP7Et80rBChQrJ6nty33+zZs2qSpUqaffu3TIajeYxzs6dO2Vra6sDBw7o/v375pnVO3bskJOTk0UcH3/8sVasWKH69eurefPmkqSNGzeqd+/e+uyzz9S+fXuL2JL6fJkSaR2TS9KxY8e0YcMGtWrVSi1atNDhw4cVGhqqgwcPaunSpeYxUXLHwCVKlNDYsWM1ePBgVa5cWe3atbNo72njqPjPzNHR0WrTpo08PT115coVLVy4UNu3b9eyZctUqFChBNe8d++eWrZsqdy5c6tAgQLmY3Z2dipXrpz27Nkjk8kkGxubFN/OwEvBBDwHu3btMnl5eZkmTJhgunHjhunGjRumU6dOmb7++muTl5eXqW7duqb79++b63/11VemMmXKmP7++2+L60RGRppee+01U8eOHc1lS5YsMXl5eZm+/PJLi7r79+83lSpVyuTl5WW6cOGCubxjx46munXrJhqnl5eX6aOPPkpWmZeXl2nLli0JrhEQ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9vbav3+/JOnmzZs6cOBAguT1qFGj9Prrr8vX11eBgYEWt7PRaNScOXPUqFEj8/1w9OhR8/ErV66oU6dO8vX1VXBwsC5evGg+9ujM5yFDhuizzz5Tnz595Ovrq+bNmyssLMxc99q1a/rggw9Uo0YN1alTRyEhITIajYn261kgIQwAAAAAAACkQbFixWRvb6+BAwfq999/182bN1N8jd9++021atXS3r179fbbb+u9995TZGSk+fiyZcv0ySefaNeuXSpatKg+/PBDSVJkZKTefvtttW7dWrt379ZHH32k/v37WyzL8Pvvv6tWrVras2ePunfvrs8//1zlypXTgQMHdODAATk5OSWIp1WrVlq1apUePHggSbp165Z+//13tWrVSsePH9egQYM0dOhQ7dmzR++//7569+5t7vdHH32kGzduaMWKFdqzZ48GDhwoW1tb/fzzz+a+HDhwQEFBQTp37pzef/99DRgwQLt379abb76pHj16WNyGq1evVqdOnbR///4nzk5u1aqVVqxYIUlatWqV3njjDTk4OFjUKVOmjJYvX669e/cqICBA/fr107179yRJP/74oxYvXqyQkBDt379f06ZNU65cucznrly5Up988ol2796tfPnyafLkyUnGsmbNGnXt2lX79u2Tn5+fvvzyS0kPk87vvvuuihYtqt9//12LFy/W5s2btXTp0iSvld5ICAMAAAAAAABp4OzsrJ9//lmOjo764osvVLNmTXXq1En//vtvsq/h7e2tli1bys7OToGBgSpSpIj++OMP8/EWLVqoTJkycnBw0KBBg7Rv3z5dvnxZf/zxhwoVKqR27drJzs5OtWrVUt26dbV69WrzuWXKlFHTpk1la2srR0fHZMVTv359xcbG6s8//5QkrV27Vp6enipXrpx+/vlntWnTRpUrV5atra3q1q0rb29vbd26VdeuXdPmzZv1f//3f8qdO7eyZMmiSpUqyd7ePtF2fvnlF9WqVUuvv/667Ozs1LJlSxUvXlybN28213n99dfl5+cnGxubJ8bfokUL/frrr7p//75CQ0MVGBiYaJ3cuXPLzs5OXbt2VVxcnDl5/vPPP+uDDz6Ql5eXbGxs5OnpqcKFC5vPbdWqlby8vGRvb69mzZrp2LFjScbSoEEDVa5cWVmyZFHLli3NdY8cOaLLly/rgw8+kIODg/Lnz6+uXbtq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",
            "text/plain": [
              "<Figure size 1430x484 with 2 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "metrics = [\"accuracy\", \"precision\", \"recall\", \"f1\"]\n",
        "melted = comparison.reset_index().melt(id_vars=\"model\", value_vars=metrics,\n",
        "                                       var_name=\"metric\", value_name=\"score\")\n",
        "\n",
        "fig, axes = plt.subplots(1, 2, figsize=(13, 4.4))\n",
        "sns.barplot(data=melted, x=\"metric\", y=\"score\", hue=\"model\", ax=axes[0], palette=\"Set2\")\n",
        "axes[0].set_ylim(min(melted[\"score\"]) - 0.05, 1.0)\n",
        "axes[0].set_title(\"Required evaluation metrics on the testing partition\")\n",
        "axes[0].legend(fontsize=8, loc=\"lower right\")\n",
        "\n",
        "fp_df = comparison.reset_index()[[\"model\", \"fpr\", \"fnr\"]].melt(\n",
        "    id_vars=\"model\", var_name=\"error type\", value_name=\"rate\")\n",
        "sns.barplot(data=fp_df, x=\"error type\", y=\"rate\", hue=\"model\", ax=axes[1], palette=\"Set2\")\n",
        "axes[1].set_title(\"Error rates (lower is better)\")\n",
        "axes[1].legend(fontsize=8)\n",
        "plt.tight_layout()\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "4af9dbb2",
      "metadata": {
        "id": "4af9dbb2"
      },
      "source": [
        "### Robustness on Records Not Present in Training\n",
        "\n",
        "Roughly a tenth of the testing partition consists of flow records whose feature vector also occurs in the training partition, which is a known property of the public UNSW-NB15 split and not something this implementation can remove without abandoning the standard benchmark. Metrics are therefore also reported on the subset of the testing partition that does not occur in training, as a check that the ranking of the models is not an artefact of repeated records."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "41abd62d",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:45.107027Z",
          "iopub.status.busy": "2026-09-08T07:16:45.106770Z",
          "iopub.status.idle": "2026-09-08T07:16:45.469826Z",
          "shell.execute_reply": "2026-09-08T07:16:45.468802Z"
        },
        "id": "41abd62d",
        "outputId": "90f9b02d-2ee1-41ee-fd63-6aeac5f4991b"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "testing records not present in training: 73,791 of 82,332  (89.6%)   malicious share = 0.519\n"
          ]
        },
        {
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>accuracy</th>\n",
              "      <th>precision</th>\n",
              "      <th>recall</th>\n",
              "      <th>f1</th>\n",
              "      <th>fpr</th>\n",
              "      <th>roc_auc</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>model</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>Random Forest</th>\n",
              "      <td>0.8525</td>\n",
              "      <td>0.7829</td>\n",
              "      <td>0.9903</td>\n",
              "      <td>0.8744</td>\n",
              "      <td>0.2958</td>\n",
              "      <td>0.9798</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Support Vector Machine</th>\n",
              "      <td>0.8308</td>\n",
              "      <td>0.7614</td>\n",
              "      <td>0.9812</td>\n",
              "      <td>0.8574</td>\n",
              "      <td>0.3312</td>\n",
              "      <td>0.9504</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Artificial Neural Network</th>\n",
              "      <td>0.8542</td>\n",
              "      <td>0.7882</td>\n",
              "      <td>0.9830</td>\n",
              "      <td>0.8749</td>\n",
              "      <td>0.2844</td>\n",
              "      <td>0.9799</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                           accuracy  precision  recall      f1     fpr  roc_auc\n",
              "model                                                                          \n",
              "Random Forest                0.8525     0.7829  0.9903  0.8744  0.2958   0.9798\n",
              "Support Vector Machine       0.8308     0.7614  0.9812  0.8574  0.3312   0.9504\n",
              "Artificial Neural Network    0.8542     0.7882  0.9830  0.8749  0.2844   0.9799"
            ]
          },
          "execution_count": 30,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "unseen_mask = ~key_te.isin(set(key_tr)).to_numpy()\n",
        "print(f\"testing records not present in training: {unseen_mask.sum():,} of {len(y_test):,}\"\n",
        "      f\"  ({unseen_mask.mean():.1%})   malicious share = {y_test[unseen_mask].mean():.3f}\")\n",
        "\n",
        "robust = pd.DataFrame([\n",
        "    evaluate(y_test[unseen_mask], preds[n][unseen_mask], scores[n][unseen_mask], n)\n",
        "    for n in preds\n",
        "])[[\"model\", \"accuracy\", \"precision\", \"recall\", \"f1\", \"fpr\", \"roc_auc\"]].set_index(\"model\").round(4)\n",
        "robust"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "037b734f",
      "metadata": {
        "id": "037b734f"
      },
      "source": [
        "### Model Selection\n",
        "\n",
        "Selection follows the research aim rather than accuracy alone. The decision rule is stated before it is applied, so that it is not chosen after seeing which model it favours:\n",
        "\n",
        "1. Rank by F1-score, because it summarises the balance between missed attacks and false alarms.\n",
        "2. If the leading models are separated by less than 0.005 F1, treat that difference as not material and break the tie on false positive rate, which the aim targets directly.\n",
        "3. Report inference throughput as a secondary deployment consideration, since the aim also refers to real time detection."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "208d8a88",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:45.473088Z",
          "iopub.status.busy": "2026-09-08T07:16:45.472767Z",
          "iopub.status.idle": "2026-09-08T07:16:45.488130Z",
          "shell.execute_reply": "2026-09-08T07:16:45.486133Z"
        },
        "id": "208d8a88",
        "outputId": "6e359255-b8ad-467d-9fc9-6e5be1ac7c50"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "ranking by F1-score:\n",
            "model\n",
            "Artificial Neural Network    0.8875\n",
            "Random Forest                0.8872\n",
            "Support Vector Machine       0.8722\n",
            "\n",
            "ranking by false positive rate (ascending):\n",
            "model\n",
            "Artificial Neural Network    0.2885\n",
            "Random Forest                0.2985\n",
            "Support Vector Machine       0.3335\n",
            "\n",
            "ranking by recall:\n",
            "model\n",
            "Random Forest                0.9916\n",
            "Artificial Neural Network    0.9856\n",
            "Support Vector Machine       0.9840\n",
            "\n",
            "ranking by inference throughput (flow records per second):\n",
            "model\n",
            "Random Forest                69926\n",
            "Artificial Neural Network    25400\n",
            "Support Vector Machine         388\n",
            "\n",
            "----------------------------------------------------------------------\n",
            "selected model for the IDS prototype: Artificial Neural Network\n",
            "rationale: F1 separates the leading models by only 0.0003, below the 0.005 materiality threshold, so the tie is broken on false positive rate among ['Artificial Neural Network', 'Random Forest']\n",
            "----------------------------------------------------------------------\n",
            "accuracy              0.8624\n",
            "precision             0.8071\n",
            "recall                0.9856\n",
            "f1                    0.8875\n",
            "fpr                   0.2885\n",
            "false_alarms      10676.0000\n",
            "missed_attacks      655.0000\n",
            "flows_per_s       25400.0000\n"
          ]
        }
      ],
      "source": [
        "sel = comparison[[\"accuracy\", \"precision\", \"recall\", \"f1\", \"fpr\"]].copy()\n",
        "sel[\"false_alarms\"] = comparison[\"fp\"]\n",
        "sel[\"missed_attacks\"] = comparison[\"fn\"]\n",
        "sel[\"flows_per_s\"] = comparison[\"flows_per_s\"]\n",
        "\n",
        "print(\"ranking by F1-score:\")\n",
        "print(sel[\"f1\"].sort_values(ascending=False).to_string())\n",
        "print(\"\\nranking by false positive rate (ascending):\")\n",
        "print(sel[\"fpr\"].sort_values().to_string())\n",
        "print(\"\\nranking by recall:\")\n",
        "print(sel[\"recall\"].sort_values(ascending=False).to_string())\n",
        "print(\"\\nranking by inference throughput (flow records per second):\")\n",
        "print(sel[\"flows_per_s\"].sort_values(ascending=False).to_string())\n",
        "\n",
        "F1_TOLERANCE = 0.005\n",
        "ranked = sel.sort_values(\"f1\", ascending=False)\n",
        "lead_gap = ranked[\"f1\"].iloc[0] - ranked[\"f1\"].iloc[1]\n",
        "\n",
        "if lead_gap < F1_TOLERANCE:\n",
        "    contenders = ranked[ranked[\"f1\"] >= ranked[\"f1\"].iloc[0] - F1_TOLERANCE]\n",
        "    SELECTED = contenders[\"fpr\"].idxmin()\n",
        "    rationale = (f\"F1 separates the leading models by only {lead_gap:.4f}, below the \"\n",
        "                 f\"{F1_TOLERANCE} materiality threshold, so the tie is broken on false \"\n",
        "                 f\"positive rate among {list(contenders.index)}\")\n",
        "else:\n",
        "    SELECTED = ranked.index[0]\n",
        "    rationale = f\"highest F1-score by a margin of {lead_gap:.4f}\"\n",
        "\n",
        "selected_model = artifacts[SELECTED]\n",
        "print(\"\\n\" + \"-\" * 70)\n",
        "print(\"selected model for the IDS prototype:\", SELECTED)\n",
        "print(\"rationale:\", rationale)\n",
        "print(\"-\" * 70)\n",
        "print(sel.loc[SELECTED].to_string())"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "a7635f80",
      "metadata": {
        "id": "a7635f80"
      },
      "source": [
        "## Final IDS Prototype\n",
        "\n",
        "The prototype is the deployment stage of CRISP-DM. It packages the preprocessing fitted during training together with the selected classifier so that a raw flow record in the UNSW-NB15 feature format is scored through exactly the transformations used at training time.\n",
        "\n",
        "The decision threshold is treated as an operating point rather than a fixed constant, because reducing false alarms is an explicit research objective and the default 0.5 cut-off is an arbitrary choice rather than an optimal one. Three candidate operating points are measured on the validation split: the default 0.5, the threshold that maximises validation F1, and the threshold that maximises detection subject to a one percent false positive budget. The F1-maximising point is deployed because it balances missed attacks against false alarms, which is what the research aim asks for; the constrained point is reported alongside it so that the trade-off available to an organisation with a stricter alert budget is visible. The testing partition plays no part in selecting the threshold.\n",
        "\n",
        "This is a research prototype demonstrating the detection approach, not a production enterprise IDS. It scores individual flow records that have already been extracted into UNSW-NB15 features; it does not capture packets, reassemble flows or block traffic."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "16b3ed1d",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:45.490526Z",
          "iopub.status.busy": "2026-09-08T07:16:45.490311Z",
          "iopub.status.idle": "2026-09-08T07:16:46.355021Z",
          "shell.execute_reply": "2026-09-08T07:16:46.353837Z"
        },
        "id": "16b3ed1d",
        "outputId": "c0a20dd2-8e1f-4e16-e2e4-6de56554b5ff"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "candidate operating points measured on the validation split:\n",
            "  operating point  threshold  recall  precision     f1    fpr  false_alarms  missed_attacks\n",
            "    default (0.5)     0.5000  0.9510     0.8964 0.9229 0.1046          1086             484\n",
            "max validation F1     0.4893  0.9560     0.8939 0.9239 0.1080          1121             435\n",
            "        FPR <= 1%     0.8842  0.7254     0.9858 0.8358 0.0099           103            2712\n",
            "\n",
            "deployed threshold: 0.4893 (maximises validation F1)\n"
          ]
        }
      ],
      "source": [
        "def score_matrix(model, X):\n",
        "    if hasattr(model, \"predict_proba\"):\n",
        "        return model.predict_proba(X)[:, 1]\n",
        "    if isinstance(model, keras.Model):\n",
        "        return model.predict(X, verbose=0).ravel()\n",
        "    d = model.decision_function(X)\n",
        "    return 1.0 / (1.0 + np.exp(-d))\n",
        "\n",
        "\n",
        "val_scores = score_matrix(selected_model, X_val)\n",
        "FPR_BUDGET = 0.01\n",
        "\n",
        "\n",
        "def op_stats(y_true, s, t):\n",
        "    p = (s >= t).astype(int)\n",
        "    tn, fp, fn, tp = confusion_matrix(y_true, p, labels=[0, 1]).ravel()\n",
        "    return {\"threshold\": round(float(t), 4),\n",
        "            \"recall\": tp / (tp + fn) if (tp + fn) else 0.0,\n",
        "            \"precision\": tp / (tp + fp) if (tp + fp) else 0.0,\n",
        "            \"f1\": f1_score(y_true, p, zero_division=0),\n",
        "            \"fpr\": fp / (fp + tn) if (fp + tn) else 0.0,\n",
        "            \"false_alarms\": int(fp), \"missed_attacks\": int(fn)}\n",
        "\n",
        "\n",
        "prec_v, rec_v, thr_pr = precision_recall_curve(y_val, val_scores)\n",
        "f1_curve = 2 * prec_v * rec_v / np.clip(prec_v + rec_v, 1e-12, None)\n",
        "t_f1 = float(thr_pr[int(np.argmax(f1_curve[:-1]))])\n",
        "\n",
        "fpr_v, tpr_v, thr_v = roc_curve(y_val, val_scores)\n",
        "allowed = fpr_v <= FPR_BUDGET\n",
        "t_budget = None\n",
        "if allowed.any():\n",
        "    cand = float(thr_v[int(np.argmax(tpr_v * allowed))])\n",
        "    t_budget = cand if np.isfinite(cand) else None\n",
        "\n",
        "candidates = {\"default (0.5)\": 0.5, \"max validation F1\": t_f1}\n",
        "if t_budget is not None:\n",
        "    candidates[f\"FPR <= {FPR_BUDGET:.0%}\"] = t_budget\n",
        "\n",
        "op_table = pd.DataFrame([{\"operating point\": k, **op_stats(y_val, val_scores, t)}\n",
        "                         for k, t in candidates.items()])\n",
        "print(\"candidate operating points measured on the validation split:\")\n",
        "print(op_table.round(4).to_string(index=False))\n",
        "\n",
        "THRESHOLD = t_f1\n",
        "print(f\"\\ndeployed threshold: {THRESHOLD:.4f} (maximises validation F1)\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "4c512226",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:46.357962Z",
          "iopub.status.busy": "2026-09-08T07:16:46.357718Z",
          "iopub.status.idle": "2026-09-08T07:16:46.366415Z",
          "shell.execute_reply": "2026-09-08T07:16:46.365027Z"
        },
        "id": "4c512226",
        "outputId": "26942a5c-0a08-4859-aafa-1c7be9a8a48d"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "IDS prototype ready | model: Artificial Neural Network | threshold: 0.4893 | features expected: 42\n"
          ]
        }
      ],
      "source": [
        "class IntrusionDetector:\n",
        "    \"\"\"Research prototype: preprocessing + selected classifier + operating threshold.\"\"\"\n",
        "\n",
        "    def __init__(self, preprocessor, model, feature_cols, threshold=0.5, name=\"\"):\n",
        "        self.preprocessor = preprocessor\n",
        "        self.model = model\n",
        "        self.feature_cols = list(feature_cols)\n",
        "        self.threshold = float(threshold)\n",
        "        self.name = name\n",
        "\n",
        "    def _prepare(self, records):\n",
        "        if isinstance(records, dict):\n",
        "            records = [records]\n",
        "        df = pd.DataFrame(records) if not isinstance(records, pd.DataFrame) else records.copy()\n",
        "        missing = [c for c in self.feature_cols if c not in df.columns]\n",
        "        if missing:\n",
        "            raise ValueError(f\"missing required features: {missing[:8]}\")\n",
        "        return self.preprocessor.transform(df[self.feature_cols])\n",
        "\n",
        "    def predict(self, records):\n",
        "        X = self._prepare(records).astype(np.float32)\n",
        "        conf = score_matrix(self.model, X)\n",
        "        flag = (conf >= self.threshold).astype(int)\n",
        "        return pd.DataFrame({\n",
        "            \"prediction\": np.where(flag == 1, \"MALICIOUS\", \"NORMAL\"),\n",
        "            \"malicious_probability\": np.round(conf, 4),\n",
        "            \"confidence\": np.round(np.where(flag == 1, conf, 1 - conf), 4),\n",
        "            \"alert\": flag.astype(bool),\n",
        "        })\n",
        "\n",
        "\n",
        "ids = IntrusionDetector(preprocessor, selected_model, FEATURES,\n",
        "                        threshold=THRESHOLD, name=SELECTED)\n",
        "print(\"IDS prototype ready | model:\", ids.name, \"| threshold:\", round(ids.threshold, 4),\n",
        "      \"| features expected:\", len(ids.feature_cols))"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "3234df65",
      "metadata": {
        "id": "3234df65"
      },
      "source": [
        "### Prototype Demonstration on Real Testing Records"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "e44dd9b2",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:46.368603Z",
          "iopub.status.busy": "2026-09-08T07:16:46.368397Z",
          "iopub.status.idle": "2026-09-08T07:16:46.460385Z",
          "shell.execute_reply": "2026-09-08T07:16:46.458952Z"
        },
        "id": "e44dd9b2",
        "outputId": "a00e88a6-d9b5-4ab3-cf2b-79df56658ab5"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>test_row</th>\n",
              "      <th>actual</th>\n",
              "      <th>attack_cat</th>\n",
              "      <th>prediction</th>\n",
              "      <th>malicious_probability</th>\n",
              "      <th>confidence</th>\n",
              "      <th>alert</th>\n",
              "      <th>correct</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>80322</td>\n",
              "      <td>NORMAL</td>\n",
              "      <td>Normal</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>0.5270</td>\n",
              "      <td>0.5270</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>81681</td>\n",
              "      <td>NORMAL</td>\n",
              "      <td>Normal</td>\n",
              "      <td>NORMAL</td>\n",
              "      <td>0.0002</td>\n",
              "      <td>0.9998</td>\n",
              "      <td>False</td>\n",
              "      <td>True</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>74087</td>\n",
              "      <td>NORMAL</td>\n",
              "      <td>Normal</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>0.7428</td>\n",
              "      <td>0.7428</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>67175</td>\n",
              "      <td>NORMAL</td>\n",
              "      <td>Normal</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>0.7682</td>\n",
              "      <td>0.7682</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>32651</td>\n",
              "      <td>NORMAL</td>\n",
              "      <td>Normal</td>\n",
              "      <td>NORMAL</td>\n",
              "      <td>0.0002</td>\n",
              "      <td>0.9998</td>\n",
              "      <td>False</td>\n",
              "      <td>True</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>45233</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>Fuzzers</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>0.8655</td>\n",
              "      <td>0.8655</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>4080</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>Exploits</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>1.0000</td>\n",
              "      <td>1.0000</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>46815</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>Generic</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>0.9924</td>\n",
              "      <td>0.9924</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>20856</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>Generic</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>1.0000</td>\n",
              "      <td>1.0000</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>1191</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>Exploits</td>\n",
              "      <td>MALICIOUS</td>\n",
              "      <td>0.9176</td>\n",
              "      <td>0.9176</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "   test_row     actual attack_cat prediction  malicious_probability  confidence  alert  correct\n",
              "0     80322     NORMAL     Normal  MALICIOUS                 0.5270      0.5270   True    False\n",
              "1     81681     NORMAL     Normal     NORMAL                 0.0002      0.9998  False     True\n",
              "2     74087     NORMAL     Normal  MALICIOUS                 0.7428      0.7428   True    False\n",
              "3     67175     NORMAL     Normal  MALICIOUS                 0.7682      0.7682   True    False\n",
              "4     32651     NORMAL     Normal     NORMAL                 0.0002      0.9998  False     True\n",
              "5     45233  MALICIOUS    Fuzzers  MALICIOUS                 0.8655      0.8655   True     True\n",
              "6      4080  MALICIOUS   Exploits  MALICIOUS                 1.0000      1.0000   True     True\n",
              "7     46815  MALICIOUS    Generic  MALICIOUS                 0.9924      0.9924   True     True\n",
              "8     20856  MALICIOUS    Generic  MALICIOUS                 1.0000      1.0000   True     True\n",
              "9      1191  MALICIOUS   Exploits  MALICIOUS                 0.9176      0.9176   True     True"
            ]
          },
          "execution_count": 34,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "rng = np.random.RandomState(RANDOM_STATE)\n",
        "norm_idx = rng.choice(np.where(y_test == 0)[0], 5, replace=False)\n",
        "mal_idx = rng.choice(np.where(y_test == 1)[0], 5, replace=False)\n",
        "demo_idx = np.concatenate([norm_idx, mal_idx])\n",
        "\n",
        "demo_records = test_raw.iloc[demo_idx]\n",
        "out = ids.predict(demo_records[FEATURES])\n",
        "out.insert(0, \"actual\", np.where(y_test[demo_idx] == 1, \"MALICIOUS\", \"NORMAL\"))\n",
        "out.insert(1, \"attack_cat\", demo_records[\"attack_cat\"].to_numpy())\n",
        "out.insert(0, \"test_row\", demo_idx)\n",
        "out[\"correct\"] = out[\"actual\"] == out[\"prediction\"]\n",
        "out"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "ce433064",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:46.462629Z",
          "iopub.status.busy": "2026-09-08T07:16:46.462403Z",
          "iopub.status.idle": "2026-09-08T07:16:46.537428Z",
          "shell.execute_reply": "2026-09-08T07:16:46.536395Z"
        },
        "id": "ce433064",
        "outputId": "c3566522-5ee3-4f49-91d5-0402f3ebf14c"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "single flow record submitted to the prototype:\n",
            "{'dur': 0.354678, 'proto': 'tcp', 'service': '-', 'state': 'FIN', 'spkts': 10, 'dpkts': 6, 'sbytes': 2588, 'dbytes': 268, 'rate': 42.291881, 'sttl': 254} ...\n",
            "\n",
            "prediction  malicious_probability  confidence  alert\n",
            " MALICIOUS                 0.9176      0.9176   True\n"
          ]
        }
      ],
      "source": [
        "single = test_raw.iloc[int(demo_idx[-1])][FEATURES].to_dict()\n",
        "print(\"single flow record submitted to the prototype:\")\n",
        "print({k: single[k] for k in list(single)[:10]}, \"...\")\n",
        "print()\n",
        "print(ids.predict(single).to_string(index=False))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "8f9c7378",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:46.540585Z",
          "iopub.status.busy": "2026-09-08T07:16:46.540366Z",
          "iopub.status.idle": "2026-09-08T07:16:50.886021Z",
          "shell.execute_reply": "2026-09-08T07:16:50.885509Z"
        },
        "id": "8f9c7378",
        "outputId": "6fbafcf9-ed62-47dd-edff-1de56d2c4eb9"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Artificial Neural Network @ threshold 0.4893\n",
            "  accuracy  0.8591   precision 0.8027   recall 0.9865   f1 0.8852\n",
            "  TPR       0.9865   FPR       0.2971   FNR    0.0135   AUC 0.9827\n",
            "  TN  26006   FP  10994   FN    610   TP  44722\n",
            "\n",
            "end-to-end throughput including preprocessing: 19,311 flow records/second (4.3s for 82,332 records)\n",
            "\n",
            "       operating point  recall  precision     f1    fpr  false alarms  missed attacks\n",
            " default threshold 0.5  0.9856     0.8071 0.8875 0.2885         10676             655\n",
            "tuned threshold 0.4893  0.9865     0.8027 0.8852 0.2971         10994             610\n"
          ]
        }
      ],
      "source": [
        "t0 = time.time()\n",
        "proto_out = ids.predict(test_raw[FEATURES])\n",
        "elapsed = time.time() - t0\n",
        "proto_pred = proto_out[\"alert\"].to_numpy().astype(int)\n",
        "\n",
        "deployed = evaluate(y_test, proto_pred, scores[SELECTED], f\"{SELECTED} @ threshold {ids.threshold:.4f}\")\n",
        "show(deployed)\n",
        "print()\n",
        "print(f\"end-to-end throughput including preprocessing: {len(y_test)/elapsed:,.0f} flow records/second \"\n",
        "      f\"({elapsed:.1f}s for {len(y_test):,} records)\")\n",
        "\n",
        "default_row = results[SELECTED]\n",
        "print()\n",
        "print(pd.DataFrame([\n",
        "    {\"operating point\": \"default threshold 0.5\", **{k: round(default_row[k], 4)\n",
        "     for k in (\"recall\", \"precision\", \"f1\", \"fpr\")}, \"false alarms\": default_row[\"fp\"],\n",
        "     \"missed attacks\": default_row[\"fn\"]},\n",
        "    {\"operating point\": f\"tuned threshold {ids.threshold:.4f}\", **{k: round(deployed[k], 4)\n",
        "     for k in (\"recall\", \"precision\", \"f1\", \"fpr\")}, \"false alarms\": deployed[\"fp\"],\n",
        "     \"missed attacks\": deployed[\"fn\"]},\n",
        "]).to_string(index=False))"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "d519456f",
      "metadata": {
        "id": "d519456f"
      },
      "source": [
        "### Persisting the Artefact"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "7021bd3b",
      "metadata": {
        "execution": {
          "iopub.execute_input": "2026-09-08T07:16:50.888952Z",
          "iopub.status.busy": "2026-09-08T07:16:50.888592Z",
          "iopub.status.idle": "2026-09-08T07:16:50.958047Z",
          "shell.execute_reply": "2026-09-08T07:16:50.956136Z"
        },
        "id": "7021bd3b",
        "outputId": "bd85f6da-45d2-4d5a-fd59-5f1970e733e8"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "['config.json', 'model.keras', 'model_comparison.csv', 'preprocessor.joblib']\n"
          ]
        }
      ],
      "source": [
        "import joblib\n",
        "os.makedirs(\"ids_artifact\", exist_ok=True)\n",
        "joblib.dump(preprocessor, \"ids_artifact/preprocessor.joblib\")\n",
        "if isinstance(selected_model, keras.Model):\n",
        "    selected_model.save(\"ids_artifact/model.keras\")\n",
        "    model_file = \"ids_artifact/model.keras\"\n",
        "else:\n",
        "    joblib.dump(selected_model, \"ids_artifact/model.joblib\")\n",
        "    model_file = \"ids_artifact/model.joblib\"\n",
        "\n",
        "with open(\"ids_artifact/config.json\", \"w\") as fh:\n",
        "    json.dump({\"selected_model\": SELECTED, \"threshold\": ids.threshold,\n",
        "               \"features\": FEATURES, \"categorical\": CAT_COLS,\n",
        "               \"random_state\": RANDOM_STATE, \"model_file\": model_file}, fh, indent=2)\n",
        "\n",
        "comparison.to_csv(\"ids_artifact/model_comparison.csv\")\n",
        "print(sorted(os.listdir(\"ids_artifact\")))"
      ]
    }
  ],
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.11.15"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}