{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "62d758af",
      "metadata": {
        "id": "62d758af"
      },
      "source": [
        "# Project 2-2 — NLP Classification on an Imbalanced Dataset\n",
        "\n",
        "**Dataset:** `unbalanceddataset(1).csv`\n",
        "\n",
        "Workflow:\n",
        "1. Load dataset\n",
        "2. Preprocess English text\n",
        "3. Split the dataset\n",
        "4. TF-IDF feature representation\n",
        "5. Train Random Forest with GridSearchCV\n",
        "6. Evaluate the baseline model\n",
        "7. Apply Random Oversampling\n",
        "8. Apply Random Undersampling\n",
        "9. Apply SMOTE\n",
        "10. Compare the results\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "id": "fd6946fe",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "fd6946fe",
        "outputId": "4e6d40e6-c8bc-477e-bc9a-d74dc0852193"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[nltk_data] Downloading package punkt to /root/nltk_data...\n",
            "[nltk_data]   Package punkt is already up-to-date!\n",
            "[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
            "[nltk_data]   Package stopwords is already up-to-date!\n",
            "[nltk_data] Downloading package punkt_tab to /root/nltk_data...\n",
            "[nltk_data]   Unzipping tokenizers/punkt_tab.zip.\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "True"
            ]
          },
          "metadata": {},
          "execution_count": 6
        }
      ],
      "source": [
        "# 1. Import libraries\n",
        "import pandas as pd\n",
        "import numpy as np\n",
        "import re\n",
        "import nltk\n",
        "import matplotlib.pyplot as plt\n",
        "import seaborn as sns\n",
        "\n",
        "from nltk.corpus import stopwords\n",
        "from nltk.tokenize import word_tokenize\n",
        "from nltk.stem import PorterStemmer\n",
        "\n",
        "from sklearn.model_selection import train_test_split, GridSearchCV\n",
        "from sklearn.feature_extraction.text import TfidfVectorizer\n",
        "from sklearn.ensemble import RandomForestClassifier\n",
        "from sklearn.metrics import (\n",
        "    confusion_matrix, accuracy_score, precision_score,\n",
        "    recall_score, f1_score, classification_report\n",
        ")\n",
        "\n",
        "from imblearn.over_sampling import RandomOverSampler, SMOTE\n",
        "from imblearn.under_sampling import RandomUnderSampler\n",
        "from collections import Counter\n",
        "\n",
        "# Download NLTK resources\n",
        "nltk.download('punkt')\n",
        "nltk.download('stopwords')\n",
        "nltk.download('punkt_tab')\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "id": "17e94578",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 327
        },
        "id": "17e94578",
        "outputId": "8d0dfc08-3689-4509-8389-35037b1ef588"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Dataset shape: (2600, 2)\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "                                                text sentiment\n",
              "0  Java Concurrency in Practice is probably the b...  positive\n",
              "1    haha aww hun i bet you are more creative tha...  positive\n",
              "2  _pickle lol, thank you very much Hope you`re h...  positive\n",
              "3  Out for an evening on the town with jeremy. Sa...  negative\n",
              "4   - just took over the #1 Most Endorsed spot on...  positive"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-2cbff027-fcbb-4339-831e-a0f1280b0980\" 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>text</th>\n",
              "      <th>sentiment</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Java Concurrency in Practice is probably the b...</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>haha aww hun i bet you are more creative tha...</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>_pickle lol, thank you very much Hope you`re h...</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>Out for an evening on the town with jeremy. Sa...</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>- just took over the #1 Most Endorsed spot on...</td>\n",
              "      <td>positive</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-2cbff027-fcbb-4339-831e-a0f1280b0980')\"\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-2cbff027-fcbb-4339-831e-a0f1280b0980 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-2cbff027-fcbb-4339-831e-a0f1280b0980');\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",
              "summary": "{\n  \"name\": \"print(df[\\\"sentiment\\\"]\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"text\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"  haha aww hun i bet you are more creative than me\",\n          \" - just took over the #1 Most Endorsed spot on twindexx.com - thanks to the endorsement by \",\n          \"_pickle lol, thank you very much Hope you`re having a great day!\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sentiment\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"negative\",\n          \"positive\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Class distribution:\n",
            "sentiment\n",
            "positive    2000\n",
            "negative     600\n",
            "Name: count, dtype: int64\n"
          ]
        }
      ],
      "source": [
        "# 2. Read the dataset\n",
        "df = pd.read_csv(\"/content/unbalanceddataset.csv\")\n",
        "\n",
        "print(\"Dataset shape:\", df.shape)\n",
        "display(df.head())\n",
        "\n",
        "print(\"\\nClass distribution:\")\n",
        "print(df[\"sentiment\"].value_counts())\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "id": "3f8c24f4",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "3f8c24f4",
        "outputId": "ec9dd837-e47a-4e99-f518-ad4e1fec3b1b"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "                                                text  \\\n",
              "0  Java Concurrency in Practice is probably the b...   \n",
              "1    haha aww hun i bet you are more creative tha...   \n",
              "2  _pickle lol, thank you very much Hope you`re h...   \n",
              "3  Out for an evening on the town with jeremy. Sa...   \n",
              "4   - just took over the #1 Most Endorsed spot on...   \n",
              "\n",
              "                                          clean_text sentiment  \n",
              "0  java concurr practic probabl best java book iv...  positive  \n",
              "1                           haha aww hun bet creativ  positive  \n",
              "2           pickl lol thank much hope your great day  positive  \n",
              "3               even town jeremi sad carri cant come  negative  \n",
              "4          took endors spot twindexxcom thank endors  positive  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-8e6a7e2f-0592-49a9-afd7-f9ac5d45815e\" 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>text</th>\n",
              "      <th>clean_text</th>\n",
              "      <th>sentiment</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Java Concurrency in Practice is probably the b...</td>\n",
              "      <td>java concurr practic probabl best java book iv...</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>haha aww hun i bet you are more creative tha...</td>\n",
              "      <td>haha aww hun bet creativ</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>_pickle lol, thank you very much Hope you`re h...</td>\n",
              "      <td>pickl lol thank much hope your great day</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>Out for an evening on the town with jeremy. Sa...</td>\n",
              "      <td>even town jeremi sad carri cant come</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>- just took over the #1 Most Endorsed spot on...</td>\n",
              "      <td>took endors spot twindexxcom thank endors</td>\n",
              "      <td>positive</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-8e6a7e2f-0592-49a9-afd7-f9ac5d45815e')\"\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-8e6a7e2f-0592-49a9-afd7-f9ac5d45815e 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-8e6a7e2f-0592-49a9-afd7-f9ac5d45815e');\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",
              "summary": "{\n  \"name\": \"display(df[[\\\"text\\\", \\\"clean_text\\\", \\\"sentiment\\\"]]\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"text\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"  haha aww hun i bet you are more creative than me\",\n          \" - just took over the #1 Most Endorsed spot on twindexx.com - thanks to the endorsement by \",\n          \"_pickle lol, thank you very much Hope you`re having a great day!\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"clean_text\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"haha aww hun bet creativ\",\n          \"took endors spot twindexxcom thank endors\",\n          \"pickl lol thank much hope your great day\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sentiment\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"negative\",\n          \"positive\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {}
        }
      ],
      "source": [
        "# 3. Text preprocessing\n",
        "stemmer = PorterStemmer()\n",
        "stop_words = set(stopwords.words(\"english\"))\n",
        "\n",
        "def preprocess_text(text):\n",
        "    text = str(text).lower()\n",
        "\n",
        "    # Remove URLs\n",
        "    text = re.sub(r\"http\\S+|www\\.\\S+\", \"\", text)\n",
        "\n",
        "    # Remove HTML tags\n",
        "    text = re.sub(r\"<.*?>\", \"\", text)\n",
        "\n",
        "    # Remove special characters, numbers and punctuation\n",
        "    text = re.sub(r\"[^a-zA-Z\\s]\", \"\", text)\n",
        "\n",
        "    # Tokenization\n",
        "    tokens = word_tokenize(text)\n",
        "\n",
        "    # Remove stop words\n",
        "    tokens = [word for word in tokens if word not in stop_words]\n",
        "\n",
        "    # Stemming\n",
        "    stemmed_tokens = [stemmer.stem(word) for word in tokens]\n",
        "\n",
        "    return \" \".join(stemmed_tokens)\n",
        "\n",
        "df[\"clean_text\"] = df[\"text\"].apply(preprocess_text)\n",
        "df = df.dropna(subset=[\"clean_text\", \"sentiment\"])\n",
        "\n",
        "display(df[[\"text\", \"clean_text\", \"sentiment\"]].head())\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "id": "c33749e7",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "c33749e7",
        "outputId": "c8b9ca5c-fc21-4394-ea1f-73f4f844da31"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Training distribution: Counter({'positive': 1400, 'negative': 420})\n",
            "Testing distribution: Counter({'positive': 600, 'negative': 180})\n"
          ]
        }
      ],
      "source": [
        "# 4. Define X and y + train/test split\n",
        "X = df[\"clean_text\"]\n",
        "y = df[\"sentiment\"]\n",
        "\n",
        "X_train, X_test, y_train, y_test = train_test_split(\n",
        "    X, y,\n",
        "    test_size=0.30,\n",
        "    random_state=42,\n",
        "    stratify=y\n",
        ")\n",
        "\n",
        "print(\"Training distribution:\", Counter(y_train))\n",
        "print(\"Testing distribution:\", Counter(y_test))\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "id": "9cd04efe",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "9cd04efe",
        "outputId": "9d9b1f1c-d183-44cf-a8e1-8a7827e493eb"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Training feature matrix: (1820, 3659)\n",
            "Testing feature matrix: (780, 3659)\n"
          ]
        }
      ],
      "source": [
        "# 5. TF-IDF feature representation\n",
        "vectorizer = TfidfVectorizer()\n",
        "\n",
        "X_train_vec = vectorizer.fit_transform(X_train)\n",
        "X_test_vec = vectorizer.transform(X_test)\n",
        "\n",
        "print(\"Training feature matrix:\", X_train_vec.shape)\n",
        "print(\"Testing feature matrix:\", X_test_vec.shape)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "id": "e2cfeceb",
      "metadata": {
        "id": "e2cfeceb"
      },
      "outputs": [],
      "source": [
        "# 6. Evaluation function\n",
        "def evaluate_model(model_name, model, X_eval, y_eval):\n",
        "    y_pred = model.predict(X_eval)\n",
        "\n",
        "    accuracy = accuracy_score(y_eval, y_pred)\n",
        "    precision = precision_score(y_eval, y_pred, average=\"weighted\", zero_division=0)\n",
        "    recall = recall_score(y_eval, y_pred, average=\"weighted\", zero_division=0)\n",
        "    f1 = f1_score(y_eval, y_pred, average=\"weighted\", zero_division=0)\n",
        "\n",
        "    print(f\"\\n===== {model_name} =====\")\n",
        "    print(f\"Accuracy : {accuracy:.4f}\")\n",
        "    print(f\"Precision: {precision:.4f}\")\n",
        "    print(f\"Recall   : {recall:.4f}\")\n",
        "    print(f\"F1 Score : {f1:.4f}\")\n",
        "\n",
        "    print(\"\\nClassification Report:\")\n",
        "    print(classification_report(y_eval, y_pred, zero_division=0))\n",
        "\n",
        "    cm = confusion_matrix(y_eval, y_pred)\n",
        "\n",
        "    plt.figure(figsize=(5, 4))\n",
        "    sns.heatmap(\n",
        "        cm,\n",
        "        annot=True,\n",
        "        fmt=\"d\",\n",
        "        cmap=\"Blues\",\n",
        "        xticklabels=[\"negative\", \"positive\"],\n",
        "        yticklabels=[\"negative\", \"positive\"]\n",
        "    )\n",
        "    plt.xlabel(\"Predicted\")\n",
        "    plt.ylabel(\"Actual\")\n",
        "    plt.title(f\"Confusion Matrix — {model_name}\")\n",
        "    plt.show()\n",
        "\n",
        "    return {\n",
        "        \"Model\": model_name,\n",
        "        \"Accuracy\": accuracy,\n",
        "        \"Precision\": precision,\n",
        "        \"Recall\": recall,\n",
        "        \"F1 Score\": f1\n",
        "    }\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "id": "47528762",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 722
        },
        "id": "47528762",
        "outputId": "48ba4ae5-c366-4025-fd3d-fb2c6da929ba"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Baseline best parameters: {'max_depth': None, 'n_estimators': 300}\n",
            "\n",
            "===== Baseline Random Forest =====\n",
            "Accuracy : 0.8513\n",
            "Precision: 0.8518\n",
            "Recall   : 0.8513\n",
            "F1 Score : 0.8317\n",
            "\n",
            "Classification Report:\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "    negative       0.86      0.43      0.57       180\n",
            "    positive       0.85      0.98      0.91       600\n",
            "\n",
            "    accuracy                           0.85       780\n",
            "   macro avg       0.85      0.70      0.74       780\n",
            "weighted avg       0.85      0.85      0.83       780\n",
            "\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 500x400 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "# 7. Random Forest + GridSearchCV\n",
        "param_grid = {\n",
        "    \"n_estimators\": [100, 200, 300],\n",
        "    \"max_depth\": [None, 10, 20, 30]\n",
        "}\n",
        "\n",
        "def train_rf(Xtr, ytr, name):\n",
        "    rf = RandomForestClassifier(random_state=42)\n",
        "\n",
        "    grid = GridSearchCV(\n",
        "        estimator=rf,\n",
        "        param_grid=param_grid,\n",
        "        cv=5,\n",
        "        scoring=\"accuracy\",\n",
        "        n_jobs=-1\n",
        "    )\n",
        "\n",
        "    grid.fit(Xtr, ytr)\n",
        "\n",
        "    print(f\"{name} best parameters:\", grid.best_params_)\n",
        "\n",
        "    return grid.best_estimator_\n",
        "\n",
        "results = []\n",
        "\n",
        "baseline_model = train_rf(X_train_vec, y_train, \"Baseline\")\n",
        "results.append(\n",
        "    evaluate_model(\n",
        "        \"Baseline Random Forest\",\n",
        "        baseline_model,\n",
        "        X_test_vec,\n",
        "        y_test\n",
        "    )\n",
        ")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "id": "e108dfd0",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 740
        },
        "id": "e108dfd0",
        "outputId": "aa2d8b85-b25e-4aa9-aaaf-4d8da1c34c41"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "After Random Oversampling: Counter({'positive': 1400, 'negative': 1400})\n",
            "Random Oversampling best parameters: {'max_depth': None, 'n_estimators': 300}\n",
            "\n",
            "===== Random Oversampling + Random Forest =====\n",
            "Accuracy : 0.8654\n",
            "Precision: 0.8610\n",
            "Recall   : 0.8654\n",
            "F1 Score : 0.8624\n",
            "\n",
            "Classification Report:\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "    negative       0.74      0.65      0.69       180\n",
            "    positive       0.90      0.93      0.91       600\n",
            "\n",
            "    accuracy                           0.87       780\n",
            "   macro avg       0.82      0.79      0.80       780\n",
            "weighted avg       0.86      0.87      0.86       780\n",
            "\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 500x400 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "# 8. Random Oversampling\n",
        "ros = RandomOverSampler(random_state=42)\n",
        "X_ros, y_ros = ros.fit_resample(X_train_vec, y_train)\n",
        "\n",
        "print(\"After Random Oversampling:\", Counter(y_ros))\n",
        "\n",
        "ros_model = train_rf(X_ros, y_ros, \"Random Oversampling\")\n",
        "\n",
        "results.append(\n",
        "    evaluate_model(\n",
        "        \"Random Oversampling + Random Forest\",\n",
        "        ros_model,\n",
        "        X_test_vec,\n",
        "        y_test\n",
        "    )\n",
        ")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 15,
      "id": "1c038fcb",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 740
        },
        "id": "1c038fcb",
        "outputId": "11a070a2-410e-49c0-8b00-eaa85295dcd2"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "After Random Undersampling: Counter({'negative': 420, 'positive': 420})\n",
            "Random Undersampling best parameters: {'max_depth': 30, 'n_estimators': 200}\n",
            "\n",
            "===== Random Undersampling + Random Forest =====\n",
            "Accuracy : 0.7372\n",
            "Precision: 0.8376\n",
            "Recall   : 0.7372\n",
            "F1 Score : 0.7574\n",
            "\n",
            "Classification Report:\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "    negative       0.46      0.88      0.61       180\n",
            "    positive       0.95      0.69      0.80       600\n",
            "\n",
            "    accuracy                           0.74       780\n",
            "   macro avg       0.71      0.79      0.70       780\n",
            "weighted avg       0.84      0.74      0.76       780\n",
            "\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 500x400 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "# 9. Random Undersampling\n",
        "rus = RandomUnderSampler(random_state=42)\n",
        "X_rus, y_rus = rus.fit_resample(X_train_vec, y_train)\n",
        "\n",
        "print(\"After Random Undersampling:\", Counter(y_rus))\n",
        "\n",
        "rus_model = train_rf(X_rus, y_rus, \"Random Undersampling\")\n",
        "\n",
        "results.append(\n",
        "    evaluate_model(\n",
        "        \"Random Undersampling + Random Forest\",\n",
        "        rus_model,\n",
        "        X_test_vec,\n",
        "        y_test\n",
        "    )\n",
        ")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 16,
      "id": "61fee9bd",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 740
        },
        "id": "61fee9bd",
        "outputId": "2993d7ff-27de-48df-d83c-f41edd8cdbf4"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "After SMOTE: Counter({'positive': 1400, 'negative': 1400})\n",
            "SMOTE best parameters: {'max_depth': None, 'n_estimators': 300}\n",
            "\n",
            "===== SMOTE + Random Forest =====\n",
            "Accuracy : 0.8436\n",
            "Precision: 0.8352\n",
            "Recall   : 0.8436\n",
            "F1 Score : 0.8290\n",
            "\n",
            "Classification Report:\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "    negative       0.76      0.47      0.58       180\n",
            "    positive       0.86      0.96      0.90       600\n",
            "\n",
            "    accuracy                           0.84       780\n",
            "   macro avg       0.81      0.71      0.74       780\n",
            "weighted avg       0.84      0.84      0.83       780\n",
            "\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 500x400 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "# 10. SMOTE\n",
        "smote = SMOTE(random_state=42)\n",
        "X_smote, y_smote = smote.fit_resample(X_train_vec, y_train)\n",
        "\n",
        "print(\"After SMOTE:\", Counter(y_smote))\n",
        "\n",
        "smote_model = train_rf(X_smote, y_smote, \"SMOTE\")\n",
        "\n",
        "results.append(\n",
        "    evaluate_model(\n",
        "        \"SMOTE + Random Forest\",\n",
        "        smote_model,\n",
        "        X_test_vec,\n",
        "        y_test\n",
        "    )\n",
        ")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 17,
      "id": "c8fed248",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 764
        },
        "id": "c8fed248",
        "outputId": "66df98cb-ab61-40a6-f9a3-76092774510d"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "                                  Model  Accuracy  Precision    Recall  \\\n",
              "1   Random Oversampling + Random Forest  0.865385   0.861004  0.865385   \n",
              "0                Baseline Random Forest  0.851282   0.851839  0.851282   \n",
              "3                 SMOTE + Random Forest  0.843590   0.835236  0.843590   \n",
              "2  Random Undersampling + Random Forest  0.737179   0.837607  0.737179   \n",
              "\n",
              "   F1 Score  \n",
              "1  0.862373  \n",
              "0  0.831684  \n",
              "3  0.829023  \n",
              "2  0.757425  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-61795db4-3c12-4ca7-89c3-b12f4c00f043\" 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>Model</th>\n",
              "      <th>Accuracy</th>\n",
              "      <th>Precision</th>\n",
              "      <th>Recall</th>\n",
              "      <th>F1 Score</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>Random Oversampling + Random Forest</td>\n",
              "      <td>0.865385</td>\n",
              "      <td>0.861004</td>\n",
              "      <td>0.865385</td>\n",
              "      <td>0.862373</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Baseline Random Forest</td>\n",
              "      <td>0.851282</td>\n",
              "      <td>0.851839</td>\n",
              "      <td>0.851282</td>\n",
              "      <td>0.831684</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>SMOTE + Random Forest</td>\n",
              "      <td>0.843590</td>\n",
              "      <td>0.835236</td>\n",
              "      <td>0.843590</td>\n",
              "      <td>0.829023</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>Random Undersampling + Random Forest</td>\n",
              "      <td>0.737179</td>\n",
              "      <td>0.837607</td>\n",
              "      <td>0.737179</td>\n",
              "      <td>0.757425</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-61795db4-3c12-4ca7-89c3-b12f4c00f043')\"\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-61795db4-3c12-4ca7-89c3-b12f4c00f043 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-61795db4-3c12-4ca7-89c3-b12f4c00f043');\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",
              "summary": "{\n  \"name\": \"plt\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"Model\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"Baseline Random Forest\",\n          \"Random Undersampling + Random Forest\",\n          \"Random Oversampling + Random Forest\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Accuracy\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.05881621307841385,\n        \"min\": 0.7371794871794872,\n        \"max\": 0.8653846153846154,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.8512820512820513,\n          0.7371794871794872,\n          0.8653846153846154\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Precision\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.012176639817006204,\n        \"min\": 0.8352364053856591,\n        \"max\": 0.8610041858606255,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.8518394648829433,\n          0.8376069517960913,\n          0.8610041858606255\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Recall\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.05881621307841385,\n        \"min\": 0.7371794871794872,\n        \"max\": 0.8653846153846154,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.8512820512820513,\n          0.7371794871794872,\n          0.8653846153846154\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F1 Score\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.044455679864337204,\n        \"min\": 0.7574251326567427,\n        \"max\": 0.8623727384789331,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.83168356191612,\n          0.7574251326567427,\n          0.8623727384789331\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1200x600 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA0URJREFUeJzs3Xd4FNX79/FPNp3QISGAkNB7MxQBEaR3otJBOogQWrAAKkVFQASBL016E6QoHekgVWmC9N6khBJKaAnJzvMHT+bHkkUThN0Q3q/ryqV79szMPbO7N7P3zjnjYhiGIQAAAAAAAMCBLM4OAAAAAAAAAK8eilIAAAAAAABwOIpSAAAAAAAAcDiKUgAAAAAAAHA4ilIAAAAAAABwOIpSAAAAAAAAcDiKUgAAAAAAAHA4ilIAAAAAAABwOIpSAAAAAAAAcDiKUgAAJJCLi4v69+/v7DD+s5kzZypv3rxyd3dX6tSpHbrt/v37y8XFRdeuXXtu66xQoYIqVKjw3NbnLBs3bpSLi4s2btzo7FDwAjyZP6ZNmyYXFxedOXPGbEsq7+WECgwMVO3atV/4dviMAUDiQVEKAJBgJ0+e1AcffKDs2bPLy8tLKVOmVNmyZTVy5Ejdv3/f2eEhHo4cOaJWrVopR44cmjhxoiZMmPDUvi+igIT/LraYEfvn5eWlTJkyqVq1aho1apQiIiKeed3btm1T//79dfPmzecX8H8wduxYTZs2Ld79XVxcFBISYve52OO2a9eu5xRd0hIYGCgXFxdVrlzZ7vMTJ04033PPcgwPHTqk/v372xThAACvLjdnBwAAeLksX75cDRo0kKenp1q0aKGCBQsqKipKW7Zs0ccff6yDBw/+Y4EjKbh//77c3F7uf0I3btwoq9WqkSNHKmfOnM4OB//Bl19+qWzZsunhw4e6fPmyNm7cqO7du2v48OFasmSJChcunOB1btu2TQMGDFCrVq0cfhWdPWPHjlX69OnVqlUrZ4fiEKtXr3bq9r28vLRhwwZdvnxZ/v7+Ns/9+OOP8vLy0oMHD55p3YcOHdKAAQNUoUIFBQYGPodoAQAvs5f7jBoA4FCnT59W48aNFRAQoPXr1ytjxozmc507d9aJEye0fPlyJ0b44litVkVFRcnLy0teXl7ODuc/u3LliiQlioID/psaNWqoePHi5uPevXtr/fr1ql27turWravDhw/L29vbiREioTw8PJy6/bJly2rnzp2aO3euunXrZrb//fff2rx5s9555x39/PPPTowQAJBUMHwPABBv3377re7cuaPJkyfbFKRi5cyZ0+YLTHR0tL766ivlyJFDnp6eCgwMVJ8+fRQZGWmzXOw8Ihs3blTx4sXl7e2tQoUKmfN9/PLLLypUqJC8vLwUFBSkP//802b5Vq1aKXny5Dp16pSqVasmHx8fZcqUSV9++aUMw7Dp+91336lMmTJKly6dvL29FRQUpAULFsTZl9jhPz/++KMKFCggT09PrVy50nzu8TlhIiIi1L17dwUGBsrT01N+fn6qUqWK9uzZY7PO+fPnKygoSN7e3kqfPr2aN2+uCxcu2N2XCxcuKDg4WMmTJ5evr68++ugjxcTEPOWVsTV27Fgz5kyZMqlz5842w7ACAwPVr18/SZKvr+8zzZFVoUIFFSxYUH/99ZfKly+vZMmSKWfOnOax/O2331SqVCl5e3srT548Wrt2rd31XLt2TQ0bNlTKlCmVLl06devWLc4VGFOnTlXFihXl5+cnT09P5c+fX+PGjfvXGKOiotS3b18FBQUpVapU8vHxUbly5bRhwwabfmfOnJGLi4u+++47TZgwwXy/lihRQjt37oyz3iNHjqhhw4by9fU19++zzz6z6XPhwgW1adNGGTJkkKenpwoUKKApU6bEWdfff/+t4OBg+fj4yM/PTz169Ijz+XgWFStW1BdffKGzZ89q1qxZZvtff/2lVq1amUNv/f391aZNG12/ft3s079/f3388ceSpGzZsplDtWKHW8X39di1a5eqVaum9OnTy9vbW9myZVObNm1s+litVo0YMUIFChSQl5eXMmTIoA8++EA3btww+wQGBurgwYP67bffzFie93xL8TkuscfGxcVFJ06cMK8iS5UqlVq3bq179+7Z9I2MjFSPHj3k6+urFClSqG7duvr777/jFc+Tc0rFzoE0b948DRw4UK+99pq8vLxUqVIlnThxIs7yY8aMUfbs2eXt7a2SJUtq8+bNCZqnysvLS++++65mz55t0z5nzhylSZNG1apVs7vckSNHVL9+faVNm1ZeXl4qXry4lixZYj4/bdo0NWjQQJL09ttvm6/nk3M7bdmyRSVLlpSXl5eyZ8+uGTNmxNnWqVOn1KBBA6VNm1bJkiXTG2+8YfdHkfh+xo4fP6733ntP/v7+8vLy0muvvabGjRvr1q1b/3q8AADPjiulAADxtnTpUmXPnl1lypSJV/927dpp+vTpql+/vnr27Kk//vhDgwYN0uHDh7Vw4UKbvidOnFDTpk31wQcfqHnz5vruu+9Up04djR8/Xn369FGnTp0kSYMGDVLDhg119OhRWSz/99tKTEyMqlevrjfeeEPffvutVq5cqX79+ik6Olpffvml2W/kyJGqW7eumjVrpqioKP30009q0KCBli1bplq1atnEtH79es2bN08hISFKnz79U4eadOzYUQsWLFBISIjy58+v69eva8uWLTp8+LBef/11SY++jLVu3VolSpTQoEGDFBYWppEjR2rr1q36888/ba5YiomJUbVq1VSqVCl99913Wrt2rYYNG6YcOXLoww8//Mdj3r9/fw0YMECVK1fWhx9+qKNHj2rcuHHauXOntm7dKnd3d40YMUIzZszQwoULNW7cOCVPnvyZhnjduHFDtWvXVuPGjdWgQQONGzdOjRs31o8//qju3burY8eOatq0qYYOHar69evr/PnzSpEihc06GjZsqMDAQA0aNEi///67Ro0apRs3bth8CR03bpwKFCigunXrys3NTUuXLlWnTp1ktVrVuXPnp8Z3+/ZtTZo0SU2aNFH79u0VERGhyZMnq1q1atqxY4eKFi1q03/27NmKiIjQBx98IBcXF3377bd69913derUKbm7u0t6VLwoV66c3N3d1aFDBwUGBurkyZNaunSpBg4cKEkKCwvTG2+8YRY2fX199euvv6pt27a6ffu2unfvLunRMNBKlSrp3Llz6tq1qzJlyqSZM2dq/fr1CX4t7Hn//ffVp08frV69Wu3bt5ckrVmzRqdOnVLr1q3l7+9vDrc9ePCgfv/9d7m4uOjdd9/VsWPHNGfOHH3//fdKnz69pEcFzPi+HleuXFHVqlXl6+urXr16KXXq1Dpz5ox++eUXmxg/+OAD87PRtWtXnT59WqNHj9aff/5p837t0qWLkidPbhb/MmTI8K/7/+DBA7vzoN25cydOW3yOy+MaNmyobNmyadCgQdqzZ48mTZokPz8/DRkyxOzTrl07zZo1S02bNlWZMmW0fv36ODkmoQYPHiyLxaKPPvpIt27d0rfffqtmzZrpjz/+MPuMGzdOISEhKleunHr06KEzZ84oODhYadKk0WuvvRbv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VJRmzJghX19fs+29996z6TNlyhT5+vrq0KFDKliwoGbPnq2rV69q586dSps2rSQpZ86cZv927dqpY8eOGj58uDw9PbVnzx7t379fixcvTnB8AAAgaePnKgAAACc4evSoduzYoSZNmkiS3Nzc1KhRI3MI3t69e1WpUiW7y+7du1eurq4qX778f4ohICDApiAlScePH1eTJk2UPXt2pUyZUoGBgZKkc+fOmdsuVqyYWZB6UnBwsFxdXbVw4UJJj4YSvv322+Z6AAAAYnGlFAAAgBNMnjxZ0dHRypQpk9lmGIY8PT01evRoeXt7P3XZf3pOkiwWizkMMNbDhw/j9PPx8YnTVqdOHQUEBGjixInKlCmTrFarChYsaE6E/m/b9vDwUIsWLTR16lS9++67mj17tkaOHPmPywAAgFcTV0oBAAA4WHR0tGbMmKFhw4Zp79695t++ffuUKVMmzZkzR4ULF9a6devsLl+oUCFZrVb99ttvdp/39fVVRESE7t69a7bFzhn1T65fv66jR4/q888/V6VKlZQvXz7duHHDpk/hwoW1d+9ehYeHP3U97dq109q1azV27FhFR0fr3Xff/ddtAwCAVw9XSgEAADjYsmXLdOPGDbVt21apUqWyee69997T5MmTNXToUFWqVEk5cuRQ48aNFR0drRUrVujTTz9VYGCgWrZsqTZt2mjUqFEqUqSIzp49qytXrqhhw4YqVaqUkiVLpj59+qhr1676448/4tzZz540adIoXbp0mjBhgjJmzKhz586pV69eNn2aNGmib775RsHBwRo0aJAyZsyoP//8U5kyZVLp0qUlSfny5dMbb7yhTz/9VG3atPnXq6sAAMCriSulAAAAHGzy5MmqXLlynIKU9KgotWvXLqVNm1bz58/XkiVLVLRoUVWsWFE7duww+40bN07169dXp06dlDdvXrVv3968Mipt2rSaNWuWVqxYoUKFCmnOnDnq37//v8ZlsVj0008/affu3SpYsKB69OihoUOH2vTx8PDQ6tWr5efnp5o1a6pQoUIaPHiwXF1dbfq1bdtWUVFRatOmzTMcIQAA8CrgSikAAJAknRlcy9khPNXSpUuf+lzJkiXN+aAKFy781KFvXl5eGj58uIYPH273+eDgYAUHB9u0tW/f3vz//v372y1UVa5cWYcOHbJpe3J+qoCAAC1YsOCp+yBJFy5c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av369cqQIYPq16+vrVu3qnz58jp8+LD69Olj5pAbN27o559/1uzZs5U7d25ZrVZVqlQpzjYoSAGvnscnMj948KCKFi2qoUOHKjIyUvv371eZMmX0119/qUiRIvryyy81efJksyAVFRWlhQsX6pNPPlHevHm1detWffzxxzYFKYnJiIFXWew1Jq6urgoPDzenM9myZYvGjRunHj16qHr16kqRIoUOHjyoixcvytPTUwUKFJCnp6d8fX116NAh7d69W8WLF6cgBYfjXzC8dGKvYOjdu7eyZ8+uc+fOacuWLfL391eOHDnUvn17+fv7q2zZslq+fLmKFi0qSTpz5oy6d++uunXrKjg4WI0aNVKzZs2cuCcAEhNXV1fdu3dPe/fu1ddff60sWbKY89MdOXJEnTt3Vo0aNVSkSBEdOHBAbdu2VUxMjG7evCmr1aoJEyZo4MCB+uCDD7R161Zlz57d2bsEIBGwWCwKDw/X6tWrNXbsWFWpUkVff/21wsLClDlzZoWEhOjNN99UzZo1tXv3brVu3VoPHjzQ6tWr5eHhIcMwdP78eX3++efav3+/ihUr5uxdApCIxH43+vHHH5U+fXotXrxYf/31l8LDw1WnTh0NHjxYqVOn1v3797Vu3TrVrFlTLi4uioiI0KeffqrmzZurRIkSyp07tz777DMn7w1eRUx0jpfO4sWLdfz4cd28eVMbN25U1qxZlS9fPn300UdKlSqVSpQooZUrV6ps2bKSpL/++ktWq1VFixZV+vTplSJFCk2bNk1p06Z18p4AcKYnh+mdP39eHTp00JEjR1SlShVNmDBBklS4cGG5u7tr7dq1Onr0qDJmzCjp0VCaoUOHKmfOnGrYsKFGjRqlbNmymXf3ZKge8GqyN5Tu+++/18CBA1WgQAEtWbJEqVKlUqpUqZQjRw7t379fkydPVoMGDcwrHjZv3qzRo0erQIECCg4O1rvvvmuui9wC4HE7duzQ2rVrde3aNf3000+qVauWLl68qOvXrytt2rTKkiWLJk2aZE5BcObMGV24cEFly5ZVrly5dOfOHe3YsUMFChRw8p7gVUVRComWYRjmUL1Y58+f1+TJk7V27Vo1b95cb731liTptddeU4UKFXTr1i2tXbvW7B8REaERI0aoaNGiKlq0qPr27St3d3eH7wuAxMNqtcowjDhf6tKnT69SpUpp+/bt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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "# 11. Compare all methods\n",
        "results_df = pd.DataFrame(results)\n",
        "display(results_df.sort_values(\"F1 Score\", ascending=False))\n",
        "\n",
        "# Plot comparison\n",
        "results_plot = results_df.set_index(\"Model\")[[\n",
        "    \"Accuracy\", \"Precision\", \"Recall\", \"F1 Score\"\n",
        "]]\n",
        "\n",
        "results_plot.plot(kind=\"bar\", figsize=(12, 6))\n",
        "plt.ylabel(\"Score\")\n",
        "plt.ylim(0, 1)\n",
        "plt.title(\"Comparison of Imbalanced Dataset Handling Methods\")\n",
        "plt.xticks(rotation=30, ha=\"right\")\n",
        "plt.grid(axis=\"y\", alpha=0.3)\n",
        "plt.tight_layout()\n",
        "plt.show()\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "74cdec04",
      "metadata": {
        "id": "74cdec04"
      },
      "source": [
        "## Conclusion\n",
        "\n",
        "The dataset is imbalanced because the positive class contains substantially more samples than the negative class. The experiment compares the original Random Forest model with Random Oversampling, Random Undersampling, and SMOTE.\n",
        "\n",
        "The final conclusion should be based on the **actual F1-score, recall, and accuracy obtained after running this notebook**. For an imbalanced classification problem, F1-score and class-level recall are especially important rather than relying only on overall accuracy.\n"
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "name": "python",
      "version": "3.x"
    },
    "colab": {
      "provenance": []
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}