{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "**Import Required Libraries**"
      ],
      "metadata": {
        "id": "orfUIl86x0Kl"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "id": "Zw3Wqo60w6C6"
      },
      "outputs": [],
      "source": [
        "import pandas as pd\n",
        "import numpy as np\n",
        "\n",
        "# Visualization\n",
        "import matplotlib.pyplot as plt\n",
        "import seaborn as sns\n",
        "\n",
        "# Preprocessing\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn.preprocessing import StandardScaler, LabelEncoder\n",
        "from sklearn.compose import ColumnTransformer\n",
        "from sklearn.pipeline import Pipeline\n",
        "\n",
        "# Models\n",
        "from sklearn.linear_model import LogisticRegression\n",
        "from sklearn.ensemble import RandomForestClassifier\n",
        "\n",
        "# Evaluation\n",
        "from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score\n",
        "from sklearn.metrics import confusion_matrix, classification_report, roc_auc_score, roc_curve"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Load Dataset**"
      ],
      "metadata": {
        "id": "sMBQa2lDx3dB"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Upload CSV using Colab file uploader OR load from Drive\n",
        "df = pd.read_csv('hospital_readmissions.csv')\n",
        "\n",
        "# Preview data\n",
        "df.head()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 313
        },
        "id": "kj7MjjbyxAUR",
        "outputId": "6b88b6d8-2063-4dae-fc73-af3d72104b33"
      },
      "execution_count": 2,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "       age  time_in_hospital  n_lab_procedures  n_procedures  n_medications  \\\n",
              "0  [70-80)                 8                72             1             18   \n",
              "1  [70-80)                 3                34             2             13   \n",
              "2  [50-60)                 5                45             0             18   \n",
              "3  [70-80)                 2                36             0             12   \n",
              "4  [60-70)                 1                42             0              7   \n",
              "\n",
              "   n_outpatient  n_inpatient  n_emergency medical_specialty       diag_1  \\\n",
              "0             2            0            0           Missing  Circulatory   \n",
              "1             0            0            0             Other        Other   \n",
              "2             0            0            0           Missing  Circulatory   \n",
              "3             1            0            0           Missing  Circulatory   \n",
              "4             0            0            0  InternalMedicine        Other   \n",
              "\n",
              "        diag_2       diag_3 glucose_test A1Ctest change diabetes_med  \\\n",
              "0  Respiratory        Other           no      no     no          yes   \n",
              "1        Other        Other           no      no     no          yes   \n",
              "2  Circulatory  Circulatory           no      no    yes          yes   \n",
              "3        Other     Diabetes           no      no    yes          yes   \n",
              "4  Circulatory  Respiratory           no      no     no          yes   \n",
              "\n",
              "  readmitted  \n",
              "0         no  \n",
              "1         no  \n",
              "2        yes  \n",
              "3        yes  \n",
              "4         no  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-dd36747f-fdfc-4141-8089-31d29772bf4d\" class=\"colab-df-container\">\n",
              "    <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>age</th>\n",
              "      <th>time_in_hospital</th>\n",
              "      <th>n_lab_procedures</th>\n",
              "      <th>n_procedures</th>\n",
              "      <th>n_medications</th>\n",
              "      <th>n_outpatient</th>\n",
              "      <th>n_inpatient</th>\n",
              "      <th>n_emergency</th>\n",
              "      <th>medical_specialty</th>\n",
              "      <th>diag_1</th>\n",
              "      <th>diag_2</th>\n",
              "      <th>diag_3</th>\n",
              "      <th>glucose_test</th>\n",
              "      <th>A1Ctest</th>\n",
              "      <th>change</th>\n",
              "      <th>diabetes_med</th>\n",
              "      <th>readmitted</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>[70-80)</td>\n",
              "      <td>8</td>\n",
              "      <td>72</td>\n",
              "      <td>1</td>\n",
              "      <td>18</td>\n",
              "      <td>2</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>Missing</td>\n",
              "      <td>Circulatory</td>\n",
              "      <td>Respiratory</td>\n",
              "      <td>Other</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>yes</td>\n",
              "      <td>no</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>[70-80)</td>\n",
              "      <td>3</td>\n",
              "      <td>34</td>\n",
              "      <td>2</td>\n",
              "      <td>13</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>Other</td>\n",
              "      <td>Other</td>\n",
              "      <td>Other</td>\n",
              "      <td>Other</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>yes</td>\n",
              "      <td>no</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>[50-60)</td>\n",
              "      <td>5</td>\n",
              "      <td>45</td>\n",
              "      <td>0</td>\n",
              "      <td>18</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>Missing</td>\n",
              "      <td>Circulatory</td>\n",
              "      <td>Circulatory</td>\n",
              "      <td>Circulatory</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>yes</td>\n",
              "      <td>yes</td>\n",
              "      <td>yes</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>[70-80)</td>\n",
              "      <td>2</td>\n",
              "      <td>36</td>\n",
              "      <td>0</td>\n",
              "      <td>12</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>Missing</td>\n",
              "      <td>Circulatory</td>\n",
              "      <td>Other</td>\n",
              "      <td>Diabetes</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>yes</td>\n",
              "      <td>yes</td>\n",
              "      <td>yes</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>[60-70)</td>\n",
              "      <td>1</td>\n",
              "      <td>42</td>\n",
              "      <td>0</td>\n",
              "      <td>7</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>InternalMedicine</td>\n",
              "      <td>Other</td>\n",
              "      <td>Circulatory</td>\n",
              "      <td>Respiratory</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>yes</td>\n",
              "      <td>no</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-dd36747f-fdfc-4141-8089-31d29772bf4d')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-dd36747f-fdfc-4141-8089-31d29772bf4d button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-dd36747f-fdfc-4141-8089-31d29772bf4d');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 25000,\n  \"fields\": [\n    {\n      \"column\": \"age\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 6,\n        \"samples\": [\n          \"[70-80)\",\n          \"[50-60)\",\n          \"[90-100)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"time_in_hospital\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3,\n        \"min\": 1,\n        \"max\": 14,\n        \"num_unique_values\": 14,\n        \"samples\": [\n          12,\n          9,\n          8\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n_lab_procedures\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 19,\n        \"min\": 1,\n        \"max\": 113,\n        \"num_unique_values\": 109,\n        \"samples\": [\n          91,\n          35,\n          42\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n_procedures\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 6,\n        \"num_unique_values\": 7,\n        \"samples\": [\n          1,\n          2,\n          5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n_medications\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 8,\n        \"min\": 1,\n        \"max\": 79,\n        \"num_unique_values\": 70,\n        \"samples\": [\n          1,\n          18,\n          37\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n_outpatient\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 33,\n        \"num_unique_values\": 23,\n        \"samples\": [\n          12,\n          8,\n          2\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n_inpatient\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 15,\n        \"num_unique_values\": 16,\n        \"samples\": [\n          0,\n          2,\n          9\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n_emergency\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 0,\n        \"max\": 64,\n        \"num_unique_values\": 21,\n        \"samples\": [\n          0,\n          21,\n          9\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"medical_specialty\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 7,\n        \"samples\": [\n          \"Missing\",\n          \"Other\",\n          \"Surgery\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"diag_1\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 8,\n        \"samples\": [\n          \"Other\",\n          \"Diabetes\",\n          \"Circulatory\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"diag_2\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 8,\n        \"samples\": [\n          \"Other\",\n          \"Digestive\",\n          \"Respiratory\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"diag_3\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 8,\n        \"samples\": [\n          \"Circulatory\",\n          \"Musculoskeletal\",\n          \"Other\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"glucose_test\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"no\",\n          \"normal\",\n          \"high\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"A1Ctest\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"no\",\n          \"normal\",\n          \"high\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"change\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"yes\",\n          \"no\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"diabetes_med\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"no\",\n          \"yes\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"readmitted\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"yes\",\n          \"no\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 2
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Basic Dataset Inspection**"
      ],
      "metadata": {
        "id": "dtk5NI-yx6Nf"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "print(\"Dataset Shape:\", df.shape)\n",
        "print(\"\\nDataset Info:\")\n",
        "df.info()\n",
        "\n",
        "print(\"\\nMissing Values:\")\n",
        "print(df.isnull().sum())"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "k7ElxMjgxAXb",
        "outputId": "b1b298b5-8ad3-45df-d3b8-16d3e43980a5"
      },
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Dataset Shape: (25000, 17)\n",
            "\n",
            "Dataset Info:\n",
            "<class 'pandas.core.frame.DataFrame'>\n",
            "RangeIndex: 25000 entries, 0 to 24999\n",
            "Data columns (total 17 columns):\n",
            " #   Column             Non-Null Count  Dtype \n",
            "---  ------             --------------  ----- \n",
            " 0   age                25000 non-null  object\n",
            " 1   time_in_hospital   25000 non-null  int64 \n",
            " 2   n_lab_procedures   25000 non-null  int64 \n",
            " 3   n_procedures       25000 non-null  int64 \n",
            " 4   n_medications      25000 non-null  int64 \n",
            " 5   n_outpatient       25000 non-null  int64 \n",
            " 6   n_inpatient        25000 non-null  int64 \n",
            " 7   n_emergency        25000 non-null  int64 \n",
            " 8   medical_specialty  25000 non-null  object\n",
            " 9   diag_1             25000 non-null  object\n",
            " 10  diag_2             25000 non-null  object\n",
            " 11  diag_3             25000 non-null  object\n",
            " 12  glucose_test       25000 non-null  object\n",
            " 13  A1Ctest            25000 non-null  object\n",
            " 14  change             25000 non-null  object\n",
            " 15  diabetes_med       25000 non-null  object\n",
            " 16  readmitted         25000 non-null  object\n",
            "dtypes: int64(7), object(10)\n",
            "memory usage: 3.2+ MB\n",
            "\n",
            "Missing Values:\n",
            "age                  0\n",
            "time_in_hospital     0\n",
            "n_lab_procedures     0\n",
            "n_procedures         0\n",
            "n_medications        0\n",
            "n_outpatient         0\n",
            "n_inpatient          0\n",
            "n_emergency          0\n",
            "medical_specialty    0\n",
            "diag_1               0\n",
            "diag_2               0\n",
            "diag_3               0\n",
            "glucose_test         0\n",
            "A1Ctest              0\n",
            "change               0\n",
            "diabetes_med         0\n",
            "readmitted           0\n",
            "dtype: int64\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Data Cleaning**"
      ],
      "metadata": {
        "id": "l340eyNpx9mw"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Replace 'Missing' with NaN\n",
        "df.replace('Missing', np.nan, inplace=True)\n",
        "\n",
        "# Fill missing categorical values with mode\n",
        "categorical_cols = df.select_dtypes(include='object').columns\n",
        "for col in categorical_cols:\n",
        "    df[col].fillna(df[col].mode()[0], inplace=True)\n",
        "\n",
        "# Convert target variable to binary\n",
        "df['readmitted'] = df['readmitted'].map({'yes': 1, 'no': 0})\n",
        "\n",
        "df.head()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 445
        },
        "id": "3ghLOvDYxAaf",
        "outputId": "9459f790-7e0a-481b-d266-43fff5daed70"
      },
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/tmp/ipykernel_443/3636041602.py:7: FutureWarning: A value is trying to be set on a copy of a DataFrame or Series through chained assignment using an inplace method.\n",
            "The behavior will change in pandas 3.0. This inplace method will never work because the intermediate object on which we are setting values always behaves as a copy.\n",
            "\n",
            "For example, when doing 'df[col].method(value, inplace=True)', try using 'df.method({col: value}, inplace=True)' or df[col] = df[col].method(value) instead, to perform the operation inplace on the original object.\n",
            "\n",
            "\n",
            "  df[col].fillna(df[col].mode()[0], inplace=True)\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "       age  time_in_hospital  n_lab_procedures  n_procedures  n_medications  \\\n",
              "0  [70-80)                 8                72             1             18   \n",
              "1  [70-80)                 3                34             2             13   \n",
              "2  [50-60)                 5                45             0             18   \n",
              "3  [70-80)                 2                36             0             12   \n",
              "4  [60-70)                 1                42             0              7   \n",
              "\n",
              "   n_outpatient  n_inpatient  n_emergency medical_specialty       diag_1  \\\n",
              "0             2            0            0  InternalMedicine  Circulatory   \n",
              "1             0            0            0             Other        Other   \n",
              "2             0            0            0  InternalMedicine  Circulatory   \n",
              "3             1            0            0  InternalMedicine  Circulatory   \n",
              "4             0            0            0  InternalMedicine        Other   \n",
              "\n",
              "        diag_2       diag_3 glucose_test A1Ctest change diabetes_med  \\\n",
              "0  Respiratory        Other           no      no     no          yes   \n",
              "1        Other        Other           no      no     no          yes   \n",
              "2  Circulatory  Circulatory           no      no    yes          yes   \n",
              "3        Other     Diabetes           no      no    yes          yes   \n",
              "4  Circulatory  Respiratory           no      no     no          yes   \n",
              "\n",
              "   readmitted  \n",
              "0           0  \n",
              "1           0  \n",
              "2           1  \n",
              "3           1  \n",
              "4           0  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-18ad37aa-83b0-45f0-a8a8-70b6ac15d943\" class=\"colab-df-container\">\n",
              "    <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>age</th>\n",
              "      <th>time_in_hospital</th>\n",
              "      <th>n_lab_procedures</th>\n",
              "      <th>n_procedures</th>\n",
              "      <th>n_medications</th>\n",
              "      <th>n_outpatient</th>\n",
              "      <th>n_inpatient</th>\n",
              "      <th>n_emergency</th>\n",
              "      <th>medical_specialty</th>\n",
              "      <th>diag_1</th>\n",
              "      <th>diag_2</th>\n",
              "      <th>diag_3</th>\n",
              "      <th>glucose_test</th>\n",
              "      <th>A1Ctest</th>\n",
              "      <th>change</th>\n",
              "      <th>diabetes_med</th>\n",
              "      <th>readmitted</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>[70-80)</td>\n",
              "      <td>8</td>\n",
              "      <td>72</td>\n",
              "      <td>1</td>\n",
              "      <td>18</td>\n",
              "      <td>2</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>InternalMedicine</td>\n",
              "      <td>Circulatory</td>\n",
              "      <td>Respiratory</td>\n",
              "      <td>Other</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>yes</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>[70-80)</td>\n",
              "      <td>3</td>\n",
              "      <td>34</td>\n",
              "      <td>2</td>\n",
              "      <td>13</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>Other</td>\n",
              "      <td>Other</td>\n",
              "      <td>Other</td>\n",
              "      <td>Other</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>yes</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>[50-60)</td>\n",
              "      <td>5</td>\n",
              "      <td>45</td>\n",
              "      <td>0</td>\n",
              "      <td>18</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>InternalMedicine</td>\n",
              "      <td>Circulatory</td>\n",
              "      <td>Circulatory</td>\n",
              "      <td>Circulatory</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>yes</td>\n",
              "      <td>yes</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>[70-80)</td>\n",
              "      <td>2</td>\n",
              "      <td>36</td>\n",
              "      <td>0</td>\n",
              "      <td>12</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>InternalMedicine</td>\n",
              "      <td>Circulatory</td>\n",
              "      <td>Other</td>\n",
              "      <td>Diabetes</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>yes</td>\n",
              "      <td>yes</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>[60-70)</td>\n",
              "      <td>1</td>\n",
              "      <td>42</td>\n",
              "      <td>0</td>\n",
              "      <td>7</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>InternalMedicine</td>\n",
              "      <td>Other</td>\n",
              "      <td>Circulatory</td>\n",
              "      <td>Respiratory</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>no</td>\n",
              "      <td>yes</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-18ad37aa-83b0-45f0-a8a8-70b6ac15d943')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-18ad37aa-83b0-45f0-a8a8-70b6ac15d943 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-18ad37aa-83b0-45f0-a8a8-70b6ac15d943');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 25000,\n  \"fields\": [\n    {\n      \"column\": \"age\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 6,\n        \"samples\": [\n          \"[70-80)\",\n          \"[50-60)\",\n          \"[90-100)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"time_in_hospital\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3,\n        \"min\": 1,\n        \"max\": 14,\n        \"num_unique_values\": 14,\n        \"samples\": [\n          12,\n          9,\n          8\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n_lab_procedures\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 19,\n        \"min\": 1,\n        \"max\": 113,\n        \"num_unique_values\": 109,\n        \"samples\": [\n          91,\n          35,\n          42\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n_procedures\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 6,\n        \"num_unique_values\": 7,\n        \"samples\": [\n          1,\n          2,\n          5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n_medications\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 8,\n        \"min\": 1,\n        \"max\": 79,\n        \"num_unique_values\": 70,\n        \"samples\": [\n          1,\n          18,\n          37\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n_outpatient\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 33,\n        \"num_unique_values\": 23,\n        \"samples\": [\n          12,\n          8,\n          2\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n_inpatient\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 15,\n        \"num_unique_values\": 16,\n        \"samples\": [\n          0,\n          2,\n          9\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n_emergency\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 0,\n        \"max\": 64,\n        \"num_unique_values\": 21,\n        \"samples\": [\n          0,\n          21,\n          9\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"medical_specialty\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 6,\n        \"samples\": [\n          \"InternalMedicine\",\n          \"Other\",\n          \"Emergency/Trauma\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"diag_1\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 7,\n        \"samples\": [\n          \"Circulatory\",\n          \"Other\",\n          \"Diabetes\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"diag_2\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 7,\n        \"samples\": [\n          \"Respiratory\",\n          \"Other\",\n          \"Digestive\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"diag_3\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 7,\n        \"samples\": [\n          \"Other\",\n          \"Circulatory\",\n          \"Musculoskeletal\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"glucose_test\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"no\",\n          \"normal\",\n          \"high\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"A1Ctest\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"no\",\n          \"normal\",\n          \"high\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"change\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"yes\",\n          \"no\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"diabetes_med\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"no\",\n          \"yes\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"readmitted\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 0,\n        \"max\": 1,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          1,\n          0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 4
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Feature & Target Separation**"
      ],
      "metadata": {
        "id": "b58x8vdByBgS"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "X = df.drop('readmitted', axis=1)\n",
        "y = df['readmitted']"
      ],
      "metadata": {
        "id": "C7rkJZUVxAdd"
      },
      "execution_count": 5,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Encode Categorical Variables**"
      ],
      "metadata": {
        "id": "yJ3LSGhKyE2r"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Identify categorical and numerical columns\n",
        "cat_features = X.select_dtypes(include='object').columns\n",
        "num_features = X.select_dtypes(include=['int64', 'float64']).columns\n",
        "\n",
        "# Preprocessing pipeline\n",
        "preprocessor = ColumnTransformer(\n",
        "    transformers=[\n",
        "        ('num', StandardScaler(), num_features),\n",
        "        ('cat', LabelEncoder(), cat_features)\n",
        "    ],\n",
        "    remainder='passthrough'\n",
        ")"
      ],
      "metadata": {
        "id": "wURSPo6AxAgz"
      },
      "execution_count": 6,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# Manual Label Encoding\n",
        "le = LabelEncoder()\n",
        "for col in cat_features:\n",
        "    X[col] = le.fit_transform(X[col])"
      ],
      "metadata": {
        "id": "eZnbppiPxAj-"
      },
      "execution_count": 7,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Train–Test Split**"
      ],
      "metadata": {
        "id": "gv5xMQugyH-b"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "X_train, X_test, y_train, y_test = train_test_split(\n",
        "    X, y, test_size=0.2, random_state=42, stratify=y\n",
        ")\n",
        "\n",
        "print(\"Training set:\", X_train.shape)\n",
        "print(\"Testing set:\", X_test.shape)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "AaK3ybirxAne",
        "outputId": "432b56dd-ee67-45f7-9e22-1427e8e19da9"
      },
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Training set: (20000, 16)\n",
            "Testing set: (5000, 16)\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Model 1 – Logistic Regression (Baseline)**"
      ],
      "metadata": {
        "id": "6QK2bKjAyK8B"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "log_model = LogisticRegression(max_iter=1000)\n",
        "log_model.fit(X_train, y_train)\n",
        "\n",
        "# Predictions\n",
        "y_pred_log = log_model.predict(X_test)\n",
        "y_prob_log = log_model.predict_proba(X_test)[:,1]"
      ],
      "metadata": {
        "id": "QGRZ-jY7xMJN"
      },
      "execution_count": 9,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Model 2 – Random Forest (Advanced)**"
      ],
      "metadata": {
        "id": "mPWZLnGZyNcq"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "rf_model = RandomForestClassifier(\n",
        "    n_estimators=200,\n",
        "    random_state=42,\n",
        "    class_weight='balanced'\n",
        ")\n",
        "\n",
        "rf_model.fit(X_train, y_train)\n",
        "\n",
        "y_pred_rf = rf_model.predict(X_test)\n",
        "y_prob_rf = rf_model.predict_proba(X_test)[:,1]"
      ],
      "metadata": {
        "id": "F9LxmkLRxMMu"
      },
      "execution_count": 10,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Model Evaluation**"
      ],
      "metadata": {
        "id": "XJ_kA3hFyQuW"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "def evaluate_model(name, y_test, y_pred, y_prob):\n",
        "    print(f\"\\n{name} Performance\")\n",
        "    print(\"-\"*40)\n",
        "    print(\"Accuracy :\", accuracy_score(y_test, y_pred))\n",
        "    print(\"Precision:\", precision_score(y_test, y_pred))\n",
        "    print(\"Recall   :\", recall_score(y_test, y_pred))\n",
        "    print(\"F1 Score :\", f1_score(y_test, y_pred))\n",
        "    print(\"ROC AUC  :\", roc_auc_score(y_test, y_prob))\n",
        "    print(\"\\nClassification Report:\\n\", classification_report(y_test, y_pred))\n",
        "\n",
        "evaluate_model(\"Logistic Regression\", y_test, y_pred_log, y_prob_log)\n",
        "evaluate_model(\"Random Forest\", y_test, y_pred_rf, y_prob_rf)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "jzvmuzQ8xMRB",
        "outputId": "041567eb-afdd-4bc0-cb79-29ebe45bb3a4"
      },
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Logistic Regression Performance\n",
            "----------------------------------------\n",
            "Accuracy : 0.605\n",
            "Precision: 0.626514131897712\n",
            "Recall   : 0.39600170140365804\n",
            "F1 Score : 0.48527495439145163\n",
            "ROC AUC  : 0.6461056305767094\n",
            "\n",
            "Classification Report:\n",
            "               precision    recall  f1-score   support\n",
            "\n",
            "           0       0.60      0.79      0.68      2649\n",
            "           1       0.63      0.40      0.49      2351\n",
            "\n",
            "    accuracy                           0.60      5000\n",
            "   macro avg       0.61      0.59      0.58      5000\n",
            "weighted avg       0.61      0.60      0.59      5000\n",
            "\n",
            "\n",
            "Random Forest Performance\n",
            "----------------------------------------\n",
            "Accuracy : 0.6074\n",
            "Precision: 0.5941747572815534\n",
            "Recall   : 0.5206295193534666\n",
            "F1 Score : 0.5549761958739515\n",
            "ROC AUC  : 0.636411756384559\n",
            "\n",
            "Classification Report:\n",
            "               precision    recall  f1-score   support\n",
            "\n",
            "           0       0.62      0.68      0.65      2649\n",
            "           1       0.59      0.52      0.55      2351\n",
            "\n",
            "    accuracy                           0.61      5000\n",
            "   macro avg       0.61      0.60      0.60      5000\n",
            "weighted avg       0.61      0.61      0.60      5000\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Confusion Matrix Visualization**"
      ],
      "metadata": {
        "id": "hOgs5qfTyUkm"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "plt.figure(figsize=(6,4))\n",
        "sns.heatmap(confusion_matrix(y_test, y_pred_rf),\n",
        "            annot=True, fmt='d', cmap='Blues')\n",
        "plt.title(\"Random Forest Confusion Matrix\")\n",
        "plt.xlabel(\"Predicted\")\n",
        "plt.ylabel(\"Actual\")\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 410
        },
        "id": "IhgTOXnUxMUp",
        "outputId": "29af76d0-7d69-4403-f615-ccf051b2b6c1"
      },
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x400 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**ROC Curve (Very Important for Dissertation)**"
      ],
      "metadata": {
        "id": "sTwNmSSEyXDe"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "fpr, tpr, _ = roc_curve(y_test, y_prob_rf)\n",
        "\n",
        "plt.figure(figsize=(6,4))\n",
        "plt.plot(fpr, tpr, label=\"Random Forest (AUC = %.2f)\" % roc_auc_score(y_test, y_prob_rf))\n",
        "plt.plot([0,1],[0,1],'k--')\n",
        "plt.xlabel(\"False Positive Rate\")\n",
        "plt.ylabel(\"True Positive Rate\")\n",
        "plt.title(\"ROC Curve – Readmission Prediction\")\n",
        "plt.legend()\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 410
        },
        "id": "46FbiV33xMYS",
        "outputId": "9bf0c6ba-6e4b-45f7-8347-42bb7da80410"
      },
      "execution_count": 13,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x400 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Feature Importance (Explainability)**"
      ],
      "metadata": {
        "id": "NjrQapl3yZ0D"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "feature_importance = pd.Series(\n",
        "    rf_model.feature_importances_, index=X.columns\n",
        ").sort_values(ascending=False)\n",
        "\n",
        "feature_importance.head(10)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 398
        },
        "id": "1sitz3skxpsp",
        "outputId": "70c0fa1d-2ce7-4ec8-8585-c795baaddb32"
      },
      "execution_count": 14,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "n_lab_procedures     0.179603\n",
              "n_medications        0.149150\n",
              "time_in_hospital     0.102373\n",
              "age                  0.072490\n",
              "diag_1               0.069955\n",
              "diag_3               0.067252\n",
              "diag_2               0.065394\n",
              "n_procedures         0.062090\n",
              "medical_specialty    0.054745\n",
              "n_inpatient          0.054154\n",
              "dtype: float64"
            ],
            "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>0</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>n_lab_procedures</th>\n",
              "      <td>0.179603</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>n_medications</th>\n",
              "      <td>0.149150</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>time_in_hospital</th>\n",
              "      <td>0.102373</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>age</th>\n",
              "      <td>0.072490</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>diag_1</th>\n",
              "      <td>0.069955</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>diag_3</th>\n",
              "      <td>0.067252</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>diag_2</th>\n",
              "      <td>0.065394</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>n_procedures</th>\n",
              "      <td>0.062090</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>medical_specialty</th>\n",
              "      <td>0.054745</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>n_inpatient</th>\n",
              "      <td>0.054154</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div><br><label><b>dtype:</b> float64</label>"
            ]
          },
          "metadata": {},
          "execution_count": 14
        }
      ]
    }
  ]
}