{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 14,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "HoKknXnvEWeZ",
        "outputId": "9f3fe6d5-6351-4d4f-b970-f50038b6e75c"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Requirement already satisfied: nltk in /usr/local/lib/python3.12/dist-packages (3.9.1)\n",
            "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.12/dist-packages (1.6.1)\n",
            "Requirement already satisfied: click in /usr/local/lib/python3.12/dist-packages (from nltk) (8.3.1)\n",
            "Requirement already satisfied: joblib in /usr/local/lib/python3.12/dist-packages (from nltk) (1.5.2)\n",
            "Requirement already satisfied: regex>=2021.8.3 in /usr/local/lib/python3.12/dist-packages (from nltk) (2025.11.3)\n",
            "Requirement already satisfied: tqdm in /usr/local/lib/python3.12/dist-packages (from nltk) (4.67.1)\n",
            "Requirement already satisfied: numpy>=1.19.5 in /usr/local/lib/python3.12/dist-packages (from scikit-learn) (2.0.2)\n",
            "Requirement already satisfied: scipy>=1.6.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn) (1.16.3)\n",
            "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn) (3.6.0)\n",
            "Requirement already satisfied: nltk in /usr/local/lib/python3.12/dist-packages (3.9.1)\n",
            "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.12/dist-packages (1.6.1)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.12/dist-packages (3.10.0)\n",
            "Requirement already satisfied: seaborn in /usr/local/lib/python3.12/dist-packages (0.13.2)\n",
            "Requirement already satisfied: click in /usr/local/lib/python3.12/dist-packages (from nltk) (8.3.1)\n",
            "Requirement already satisfied: joblib in /usr/local/lib/python3.12/dist-packages (from nltk) (1.5.2)\n",
            "Requirement already satisfied: regex>=2021.8.3 in /usr/local/lib/python3.12/dist-packages (from nltk) (2025.11.3)\n",
            "Requirement already satisfied: tqdm in /usr/local/lib/python3.12/dist-packages (from nltk) (4.67.1)\n",
            "Requirement already satisfied: numpy>=1.19.5 in /usr/local/lib/python3.12/dist-packages (from scikit-learn) (2.0.2)\n",
            "Requirement already satisfied: scipy>=1.6.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn) (1.16.3)\n",
            "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn) (3.6.0)\n",
            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (1.3.3)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (0.12.1)\n",
            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (4.61.0)\n",
            "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (1.4.9)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (25.0)\n",
            "Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (11.3.0)\n",
            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (3.2.5)\n",
            "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (2.9.0.post0)\n",
            "Requirement already satisfied: pandas>=1.2 in /usr/local/lib/python3.12/dist-packages (from seaborn) (2.2.2)\n",
            "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas>=1.2->seaborn) (2025.2)\n",
            "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas>=1.2->seaborn) (2025.2)\n",
            "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil>=2.7->matplotlib) (1.17.0)\n"
          ]
        }
      ],
      "source": [
        "!pip install nltk scikit-learn\n",
        "!pip install nltk scikit-learn matplotlib seaborn\n"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import nltk\n",
        "nltk.download('punkt')\n",
        "nltk.download('punkt_tab')\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "A4eMlIfbH3pu",
        "outputId": "33b3dcf8-675a-4bd0-8cc8-b43518b0b1a4"
      },
      "execution_count": 27,
      "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 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": 27
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import pandas as pd\n",
        "import numpy as np\n",
        "import re\n",
        "import nltk\n",
        "from nltk.corpus import stopwords\n",
        "from nltk.tokenize import word_tokenize\n",
        "from nltk.stem import PorterStemmer\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn.feature_extraction.text import TfidfVectorizer\n",
        "from sklearn.naive_bayes import MultinomialNB\n",
        "from sklearn.linear_model import LogisticRegression\n",
        "from sklearn.tree import DecisionTreeClassifier\n",
        "from sklearn.ensemble import RandomForestClassifier\n",
        "from sklearn.svm import SVC\n",
        "from sklearn.neighbors import KNeighborsClassifier\n",
        "from sklearn.metrics import classification_report, accuracy_score, precision_score, recall_score, f1_score, confusion_matrix\n",
        "import matplotlib.pyplot as plt\n",
        "import seaborn as sns\n"
      ],
      "metadata": {
        "id": "lgq-aSg2Edeu"
      },
      "execution_count": 10,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "nltk.download('punkt')\n",
        "nltk.download('stopwords')\n",
        "nltk.download('wordnet')\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "q3kexZirEj04",
        "outputId": "8a6bd611-be40-48d6-81b8-3ecce01f0afb"
      },
      "execution_count": 11,
      "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 wordnet to /root/nltk_data...\n",
            "[nltk_data]   Package wordnet is already up-to-date!\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "True"
            ]
          },
          "metadata": {},
          "execution_count": 11
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df = pd.read_csv('spam.csv', encoding='latin-1')\n",
        "\n",
        "df.head()\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "YjJeJcdtEnFC",
        "outputId": "02d4ef3c-baa0-4fa7-af9e-e02ae642f817"
      },
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     v1                                                 v2 Unnamed: 2  \\\n",
              "0   ham  Go until jurong point, crazy.. Available only ...        NaN   \n",
              "1   ham                      Ok lar... Joking wif u oni...        NaN   \n",
              "2  spam  Free entry in 2 a wkly comp to win FA Cup fina...        NaN   \n",
              "3   ham  U dun say so early hor... U c already then say...        NaN   \n",
              "4   ham  Nah I don't think he goes to usf, he lives aro...        NaN   \n",
              "\n",
              "  Unnamed: 3 Unnamed: 4  \n",
              "0        NaN        NaN  \n",
              "1        NaN        NaN  \n",
              "2        NaN        NaN  \n",
              "3        NaN        NaN  \n",
              "4        NaN        NaN  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-dc89ec47-a251-46d1-87dc-e8fd1beb653b\" 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>v1</th>\n",
              "      <th>v2</th>\n",
              "      <th>Unnamed: 2</th>\n",
              "      <th>Unnamed: 3</th>\n",
              "      <th>Unnamed: 4</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>ham</td>\n",
              "      <td>Go until jurong point, crazy.. Available only ...</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>ham</td>\n",
              "      <td>Ok lar... Joking wif u oni...</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>spam</td>\n",
              "      <td>Free entry in 2 a wkly comp to win FA Cup fina...</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>ham</td>\n",
              "      <td>U dun say so early hor... U c already then say...</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>ham</td>\n",
              "      <td>Nah I don't think he goes to usf, he lives aro...</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</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-dc89ec47-a251-46d1-87dc-e8fd1beb653b')\"\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-dc89ec47-a251-46d1-87dc-e8fd1beb653b 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-dc89ec47-a251-46d1-87dc-e8fd1beb653b');\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 id=\"df-a823b44e-f7e3-4e54-a057-7f739037704e\">\n",
              "      <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-a823b44e-f7e3-4e54-a057-7f739037704e')\"\n",
              "                title=\"Suggest charts\"\n",
              "                style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "      </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "      <script>\n",
              "        async function quickchart(key) {\n",
              "          const quickchartButtonEl =\n",
              "            document.querySelector('#' + key + ' button');\n",
              "          quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "          quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "          try {\n",
              "            const charts = await google.colab.kernel.invokeFunction(\n",
              "                'suggestCharts', [key], {});\n",
              "          } catch (error) {\n",
              "            console.error('Error during call to suggestCharts:', error);\n",
              "          }\n",
              "          quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "          quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "        }\n",
              "        (() => {\n",
              "          let quickchartButtonEl =\n",
              "            document.querySelector('#df-a823b44e-f7e3-4e54-a057-7f739037704e button');\n",
              "          quickchartButtonEl.style.display =\n",
              "            google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "        })();\n",
              "      </script>\n",
              "    </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 5572,\n  \"fields\": [\n    {\n      \"column\": \"v1\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"spam\",\n          \"ham\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"v2\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5169,\n        \"samples\": [\n          \"Did u download the fring app?\",\n          \"Pass dis to all ur contacts n see wat u get! Red;i'm in luv wid u. Blue;u put a smile on my face. Purple;u r realy hot. Pink;u r so swt. Orange;i thnk i lyk u. Green;i realy wana go out wid u. Yelow;i wnt u bck. Black;i'm jealous of u. Brown;i miss you Nw plz giv me one color\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Unnamed: 2\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 43,\n        \"samples\": [\n          \" GOD said\",\n          \" SHE SHUDVETOLD U. DID URGRAN KNOW?NEWAY\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Unnamed: 3\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          \" \\\\\\\"OH No! COMPETITION\\\\\\\". Who knew\",\n          \" why to miss them\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Unnamed: 4\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"GNT:-)\\\"\",\n          \" one day these two will become FREINDS FOREVER!\\\"\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 12
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import pandas as pd\n",
        "import re\n",
        "import nltk\n",
        "from nltk.tokenize import word_tokenize\n",
        "from nltk.corpus import stopwords\n",
        "from nltk.stem import PorterStemmer\n",
        "\n",
        "nltk.download('punkt')\n",
        "nltk.download('stopwords')\n",
        "\n",
        "stop_words = set(stopwords.words('english'))\n",
        "stemmer = PorterStemmer()\n",
        "\n",
        "def preprocess_text(text):\n",
        "    # 1. Lowercasing\n",
        "    text = text.lower()\n",
        "\n",
        "    # 2. Remove URLs\n",
        "    text = re.sub(r'http\\S+|www.\\S+', '', text)\n",
        "\n",
        "    # 3. Remove HTML tags\n",
        "    text = re.sub(r'<.*?>', '', text)\n",
        "\n",
        "    # 4. Remove Special Characters, Numbers, Punctuation\n",
        "    text = re.sub(r'[^a-zA-Z\\s]', '', text)\n",
        "\n",
        "    # 5. Tokenization\n",
        "    tokens = word_tokenize(text)\n",
        "\n",
        "    # 6. Remove Stop Words\n",
        "    tokens = [word for word in tokens if word not in stop_words]\n",
        "\n",
        "    # 7. Stemming\n",
        "    stemmed_tokens = [stemmer.stem(word) for word in tokens]\n",
        "\n",
        "    # 8. Final clean text reconstruction\n",
        "    clean_text = ' '.join(stemmed_tokens)\n",
        "\n",
        "    return clean_text\n",
        "\n",
        "\n",
        "if 'v2' in df.columns:\n",
        "    print(\"The 'v2' column exists.\")\n",
        "else:\n",
        "    print(\"The 'v2' column doesn't exist.\")\n",
        "\n",
        "df['clean_text'] = df['v2'].apply(preprocess_text)\n",
        "\n",
        "df[['v2', 'clean_text']].head()\n",
        "\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 293
        },
        "id": "iUB05l_AGr5X",
        "outputId": "25e90c5c-5957-4c1c-97d4-e6dc7fd7d663"
      },
      "execution_count": 28,
      "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"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "The 'v2' column exists.\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                                                  v2  \\\n",
              "0  Go until jurong point, crazy.. Available only ...   \n",
              "1                      Ok lar... Joking wif u oni...   \n",
              "2  Free entry in 2 a wkly comp to win FA Cup fina...   \n",
              "3  U dun say so early hor... U c already then say...   \n",
              "4  Nah I don't think he goes to usf, he lives aro...   \n",
              "\n",
              "                                          clean_text  \n",
              "0  go jurong point crazi avail bugi n great world...  \n",
              "1                              ok lar joke wif u oni  \n",
              "2  free entri wkli comp win fa cup final tkt st m...  \n",
              "3                u dun say earli hor u c alreadi say  \n",
              "4          nah dont think goe usf live around though  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-373b8d1e-0825-4be3-8911-a8352b92fba8\" 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>v2</th>\n",
              "      <th>clean_text</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Go until jurong point, crazy.. Available only ...</td>\n",
              "      <td>go jurong point crazi avail bugi n great world...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>Ok lar... Joking wif u oni...</td>\n",
              "      <td>ok lar joke wif u oni</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>Free entry in 2 a wkly comp to win FA Cup fina...</td>\n",
              "      <td>free entri wkli comp win fa cup final tkt st m...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>U dun say so early hor... U c already then say...</td>\n",
              "      <td>u dun say earli hor u c alreadi say</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>Nah I don't think he goes to usf, he lives aro...</td>\n",
              "      <td>nah dont think goe usf live around though</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-373b8d1e-0825-4be3-8911-a8352b92fba8')\"\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-373b8d1e-0825-4be3-8911-a8352b92fba8 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-373b8d1e-0825-4be3-8911-a8352b92fba8');\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 id=\"df-613f1132-bd0c-4e01-b478-92eb1d04c4a8\">\n",
              "      <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-613f1132-bd0c-4e01-b478-92eb1d04c4a8')\"\n",
              "                title=\"Suggest charts\"\n",
              "                style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "      </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "      <script>\n",
              "        async function quickchart(key) {\n",
              "          const quickchartButtonEl =\n",
              "            document.querySelector('#' + key + ' button');\n",
              "          quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "          quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "          try {\n",
              "            const charts = await google.colab.kernel.invokeFunction(\n",
              "                'suggestCharts', [key], {});\n",
              "          } catch (error) {\n",
              "            console.error('Error during call to suggestCharts:', error);\n",
              "          }\n",
              "          quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "          quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "        }\n",
              "        (() => {\n",
              "          let quickchartButtonEl =\n",
              "            document.querySelector('#df-613f1132-bd0c-4e01-b478-92eb1d04c4a8 button');\n",
              "          quickchartButtonEl.style.display =\n",
              "            google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "        })();\n",
              "      </script>\n",
              "    </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"df[['v2', 'clean_text']]\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"v2\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Ok lar... Joking wif u oni...\",\n          \"Nah I don't think he goes to usf, he lives around here though\",\n          \"Free entry in 2 a wkly comp to win FA Cup final tkts 21st May 2005. Text FA to 87121 to receive entry question(std txt rate)T&C's apply 08452810075over18's\"\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          \"ok lar joke wif u oni\",\n          \"nah dont think goe usf live around though\",\n          \"free entri wkli comp win fa cup final tkt st may text fa receiv entri questionstd txt ratetc appli over\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 28
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "X = df['clean_text']\n",
        "y = df['v1']\n",
        "y = y.map({'ham': 0, 'spam': 1})\n"
      ],
      "metadata": {
        "id": "dfj62QNlG_vb"
      },
      "execution_count": 29,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "tfidf = TfidfVectorizer(stop_words='english')\n",
        "X_tfidf = tfidf.fit_transform(X)\n",
        "\n",
        "X_tfidf.shape\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "U9a8kViGEq4R",
        "outputId": "2a0c3405-2c62-4a87-88ab-86093286d188"
      },
      "execution_count": 30,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(5572, 6855)"
            ]
          },
          "metadata": {},
          "execution_count": 30
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "X_train, X_test, y_train, y_test = train_test_split(X_tfidf, y, test_size=0.2, random_state=42)\n",
        "\n",
        "X_train.shape, X_test.shape\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "kgUzwCoXEvKv",
        "outputId": "7f65e9b8-da74-4b6b-c18b-d800894c4da4"
      },
      "execution_count": 31,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "((4457, 6855), (1115, 6855))"
            ]
          },
          "metadata": {},
          "execution_count": 31
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "models = {\n",
        "    'Naive Bayes': MultinomialNB(),\n",
        "    'Logistic Regression': LogisticRegression(random_state=42),\n",
        "    'Decision Tree': DecisionTreeClassifier(random_state=42),\n",
        "    'Random Forest': RandomForestClassifier(random_state=42),\n",
        "    'Support Vector Machine': SVC(random_state=42),\n",
        "    'K-Nearest Neighbors': KNeighborsClassifier()\n",
        "}\n"
      ],
      "metadata": {
        "id": "kyo2W7RRExFz"
      },
      "execution_count": 32,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "def evaluate_model(model_name, model, X_test, y_test):\n",
        "    y_pred = model.predict(X_test)\n",
        "\n",
        "    accuracy = accuracy_score(y_test, y_pred)\n",
        "    precision = precision_score(y_test, y_pred, average='weighted')\n",
        "    recall = recall_score(y_test, y_pred, average='weighted')\n",
        "    f1 = f1_score(y_test, y_pred, average='weighted')\n",
        "    cm = confusion_matrix(y_test, y_pred)\n",
        "\n",
        "    report = classification_report(y_test, y_pred)\n",
        "\n",
        "    plt.figure(figsize=(6, 6))\n",
        "    sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', cbar=False, xticklabels=np.unique(y_test), yticklabels=np.unique(y_test))\n",
        "    plt.title(f'Confusion Matrix for {model_name}')\n",
        "    plt.xlabel('Predicted Label')\n",
        "    plt.ylabel('True Label')\n",
        "    plt.show()\n",
        "\n",
        "    print(f\"Model: {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",
        "    print(f\"Classification Report:\\n{report}\")\n"
      ],
      "metadata": {
        "id": "gn8rJUVJF845"
      },
      "execution_count": 34,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "for model_name, model in models.items():\n",
        "    print(f\"Training {model_name}...\")\n",
        "    model.fit(X_train, y_train)\n",
        "    evaluate_model(model_name, model, X_test, y_test)\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "zoZV6f2OIfkG",
        "outputId": "e521c7e2-6af5-4098-b257-7378715770fc"
      },
      "execution_count": 35,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Training Naive Bayes...\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x600 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhAAAAIjCAYAAABS7iKKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAN91JREFUeJzt3Xt8z/X///H7e2OHzDZsjGhzPpSISo4jSkUfUjl9ZCN0QGr0KSGHyKeDc6KUQ6NP0kFCUQ6dkEM5FAkjyoZhY8w22/P3h9/eX2/b2FOb91tu18tll4v38/V8P1+P13uz3d/P1/P1ejuMMUYAAAAWvNxdAAAAuPoQIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIPCPtGvXLt19990KCgqSw+HQwoULC3T8ffv2yeFwaPbs2QU67tWsefPmat68eYGNl5KSol69eiksLEwOh0NPP/10gY19Ja1evVoOh0OrV692dylAgSJAoNDs2bNHjz32mCpVqiQ/Pz8FBgaqcePGmjRpklJTUwt131FRUdq2bZvGjBmj2NhY3XrrrYW6vyspOjpaDodDgYGBub6Ou3btksPhkMPh0Ouvv249/sGDBzVixAht3ry5AKq9fC+//LJmz56tJ554QrGxsXrkkUcKdX8RERFyOBzq379/jm3ZIeCjjz4q1BoKUnbN53+VLFlSd9xxh+bNm+fu8vAPUMTdBeCfacmSJXr44Yfl6+ur7t2766abblJ6erq+//57Pfvss/r111/19ttvF8q+U1NTtXbtWg0ZMkT9+vUrlH2Eh4crNTVVRYsWLZTxL6VIkSI6ffq0Pv/8c3Xs2NFl27x58+Tn56czZ85c1tgHDx7UyJEjFRERobp16+b7ecuXL7+s/eVl5cqVuuOOOzR8+PACHfdSZsyYocGDB6tcuXIFMl6zZs2UmpoqHx+fAhnP1lNPPaXbbrtNknT06FHNnz9f3bp1U1JSkvr27euWmvDPwAwECtzevXvVuXNnhYeHa/v27Zo0aZJ69+6tvn376n//+5+2b9+uG2+8sdD2f+TIEUlScHBwoe3D4XDIz89P3t7ehbaPi/H19VXLli31v//9L8e2999/X23atLlitZw+fVqS5OPjU6B/JA8fPlyg38OzZ88qPT39on1uvPFGZWZm6r///W+B7dfLy0t+fn7y8nLPr9umTZuqW7du6tatmwYMGKDVq1fr+uuv1/vvv++WevDPQYBAgXv11VeVkpKid999V2XLls2xvUqVKhowYIDz8dmzZ/XSSy+pcuXK8vX1VUREhF544QWlpaW5PC8iIkJt27bV999/r9tvv11+fn6qVKmS3nvvPWefESNGKDw8XJL07LPPyuFwKCIiQtK5qf/sf59vxIgRcjgcLm1fffWVmjRpouDgYAUEBKh69ep64YUXnNvzWgOxcuVKNW3aVMWKFVNwcLDatWunHTt25Lq/3bt3Kzo6WsHBwQoKClKPHj2cf4zzo2vXrvriiy+UlJTkbNuwYYN27dqlrl275uh/7NgxDRo0SLVr11ZAQIACAwN17733asuWLc4+q1evdr5b7dGjh3PqO/s4mzdvrptuukmbNm1Ss2bNdN111zlflwvXQERFRcnPzy/H8bdu3VolSpTQwYMHcz2u7Kn3vXv3asmSJc4a9u3bJ+lcsHj00UdVpkwZ+fn5qU6dOpozZ47LGNnfn9dff10TJ050/mxt3779oq9pRESEunfvrhkzZuRZX7Y//vhDTz75pKpXry5/f3+VKlVKDz/8sLPOC48new1Ev379FBAQkOv3ukuXLgoLC1NmZqaz7YsvvnD+TBUvXlxt2rTRr7/+etHaLsbHx0clSpRQkSKuE9CzZs3SnXfeqdKlS8vX11e1atXStGnTXPpERUUpJCREGRkZOca9++67Vb16dZe2uXPnqn79+vL391fJkiXVuXNnHThwwKXPrl279OCDDyosLEx+fn4qX768OnfurOTk5Ms+RlwZBAgUuM8//1yVKlVSo0aN8tW/V69eevHFF1WvXj1NmDBBkZGRGjt2rDp37pyj7+7du/XQQw/prrvu0rhx41SiRAlFR0c7f6F26NBBEyZMkHTul3FsbKwmTpxoVf+vv/6qtm3bKi0tTaNGjdK4ceP0r3/9Sz/88MNFn/f111+rdevWOnz4sEaMGKGYmBitWbNGjRs3zvFHRZI6duyokydPauzYserYsaNmz56tkSNH5rvODh06yOFw6JNPPnG2vf/++6pRo4bq1auXo39cXJwWLlyotm3bavz48Xr22We1bds2RUZGOv9Y1qxZU6NGjZIk9enTR7GxsYqNjVWzZs2c4xw9elT33nuv6tatq4kTJ6pFixa51jdp0iSFhoYqKirK+Qfxrbfe0vLlyzVlypQ8TxHUrFlTsbGxCgkJUd26dZ01hIaGKjU1Vc2bN1dsbKz+/e9/67XXXlNQUJCio6M1adKkHGPNmjVLU6ZMUZ8+fTRu3DiVLFnykq/rkCFDdPbs2UvOQmzYsEFr1qxR586dNXnyZD3++ONasWKFmjdvftEg2KlTJ506dUpLlixxac8+JfXQQw85Z7ZiY2PVpk0bBQQE6JVXXtGwYcO0fft2NWnSJNefqdycPHlSiYmJSkxM1O+//64RI0bol19+UVRUlEu/adOmKTw8XC+88ILGjRunChUq6Mknn9TUqVOdfR555BEdPXpUy5Ytc3luQkKCVq5cqW7dujnbxowZo+7du6tq1aoaP368nn76aa1YsULNmjVzht709HS1bt1a69atU//+/TV16lT16dNHcXFxLsEYHsoABSg5OdlIMu3atctX/82bNxtJplevXi7tgwYNMpLMypUrnW3h4eFGkvn222+dbYcPHza+vr5m4MCBzra9e/caSea1115zGTMqKsqEh4fnqGH48OHm/P8KEyZMMJLMkSNH8qw7ex+zZs1yttWtW9eULl3aHD161Nm2ZcsW4+XlZbp3755jfz179nQZ84EHHjClSpXKc5/nH0exYsWMMcY89NBDpmXLlsYYYzIzM01YWJgZOXJkrq/BmTNnTGZmZo7j8PX1NaNGjXK2bdiwIcexZYuMjDSSzPTp03PdFhkZ6dK2bNkyI8mMHj3axMXFmYCAANO+fftLHqMx577fbdq0cWmbOHGikWTmzp3rbEtPTzcNGzY0AQEB5sSJE87jkmQCAwPN4cOHrffXo0cP4+fnZw4ePGiMMWbVqlVGklmwYIGz/+nTp3OMsXbtWiPJvPfee8627OeuWrXKGGNMVlaWuf76682DDz7o8twPP/zQ5ef75MmTJjg42PTu3dulX0JCggkKCsrRfqHs/V745eXlZcaMGZOjf27H07p1a1OpUiXn48zMTFO+fHnTqVMnl37jx483DofDxMXFGWOM2bdvn/H29s6xn23btpkiRYo423/++eccryuuHsxAoECdOHFCklS8ePF89V+6dKkkKSYmxqV94MCBkpTjXVqtWrXUtGlT5+PQ0FBVr15dcXFxl13zhbLPu3/22WfKysrK13Pi4+O1efNmRUdHu7zLvfnmm3XXXXc5j/N8jz/+uMvjpk2b6ujRo87XMD+6du2q1atXO98BJiQk5Hr6Qjq3biL7PHxmZqaOHj3qPD3z008/5Xufvr6+6tGjR7763n333Xrsscc0atQodejQQX5+fnrrrbfyva8LLV26VGFhYerSpYuzrWjRonrqqaeUkpKib775xqX/gw8+qNDQUOv9DB069JKzEP7+/s5/Z2Rk6OjRo6pSpYqCg4Mv+no6HA49/PDDWrp0qVJSUpzt8+fP1/XXX68mTZpIOncaLSkpSV26dHHOICQmJsrb21sNGjTQqlWr8nUsL774or766it99dVXmj9/vrp06aIhQ4bkmLE5/3iSk5OVmJioyMhIxcXFOU8neHl56d///rcWLVqkkydPOvvPmzdPjRo1UsWKFSVJn3zyibKystSxY0eX2sPCwlS1alVn7UFBQZKkZcuWWZ2+g2cgQKBABQYGSpLLL5eL+eOPP+Tl5aUqVaq4tIeFhSk4OFh//PGHS/sNN9yQY4wSJUro+PHjl1lxTp06dVLjxo3Vq1cvlSlTRp07d9aHH3540TCRXeeF54Clc1PyiYmJOnXqlEv7hcdSokQJSbI6lvvuu0/FixfX/PnzNW/ePN122205XstsWVlZmjBhgqpWrSpfX1+FhIQoNDRUW7dutTrffP3111stlnz99ddVsmRJbd68WZMnT1bp0qXz/dwL/fHHH6patWqOBYk1a9Z0bj9f9h80W5UqVdIjjzyit99+W/Hx8bn2SU1N1YsvvqgKFSq4vJ5JSUmXfD07deqk1NRULVq0SNK5e14sXbpUDz/8sHM9zq5duyRJd955p0JDQ12+li9frsOHD+frWGrXrq1WrVqpVatW6tixo+bOnau2bdvq+eefdy44lqQffvhBrVq1cq7fCQ0Nda5vOf94unfvrtTUVH366aeSpJ07d2rTpk0ul9nu2rVLxhhVrVo1R+07duxw1l6xYkXFxMTonXfeUUhIiFq3bq2pU6ey/uEqwWWcKFCBgYEqV66cfvnlF6vnXbiIMS95XfVgjLnsfZy/YE06907s22+/1apVq7RkyRJ9+eWXmj9/vu68804tX768wK68+DvHks3X11cdOnTQnDlzFBcXpxEjRuTZ9+WXX9awYcPUs2dPvfTSSypZsqS8vLz09NNP53umRXJ9p5ofP//8s/MPxrZt21xmDwqbba3nGzJkiGJjY/XKK6+offv2Obb3799fs2bN0tNPP62GDRs6b1rWuXPnS76ed9xxhyIiIvThhx+qa9eu+vzzz5WamqpOnTo5+2SPERsbq7CwsBxjXLgI0kbLli21ePFirV+/Xm3atNGePXvUsmVL1ahRQ+PHj1eFChXk4+OjpUuXasKECS7HU6tWLdWvX19z585V9+7dNXfuXPn4+LhcTpyVlSWHw6Evvvgi15/zgIAA57/HjRun6OhoffbZZ1q+fLmeeuopjR07VuvWrVP58uUv+xhR+AgQKHBt27bV22+/rbVr16phw4YX7RseHq6srCzt2rXL+S5Skg4dOqSkpCTnFRUFoUSJErkuzLrwXat0bqq2ZcuWatmypcaPH6+XX35ZQ4YM0apVq9SqVatcj0M6927sQr/99ptCQkJUrFixv38QuejatatmzpwpLy+vXBeeZvvoo4/UokULvfvuuy7tSUlJCgkJcT7Ob5jLj1OnTqlHjx6qVauWGjVqpFdffVUPPPCA80oPW+Hh4dq6dauysrJcZiF+++035/aCUrlyZXXr1k1vvfWWGjRokGP7Rx99pKioKI0bN87ZdubMmXwv/uvYsaMmTZqkEydOaP78+YqIiNAdd9zhsn9JKl26dK4/c3/H2bNnJcl5CuXzzz9XWlqaFi1a5DIzltdpku7duysmJkbx8fHOy4azZ9CyazfGqGLFiqpWrdol66ldu7Zq166toUOHOhceT58+XaNHj/47h4lCxikMFLj//Oc/KlasmHr16qVDhw7l2L5nzx7n+df77rtPknJcKTF+/HhJKtD7GVSuXFnJycnaunWrsy0+Pt45FZvt2LFjOZ6bfUOlCy8tzVa2bFnVrVtXc+bMcfkD8ssvv2j58uXO4ywMLVq00EsvvaQ33ngj13eq2by9vXPMbixYsEB//fWXS1t20CmIVfDPPfec9u/frzlz5mj8+PGKiIhQVFRUnq/jpdx3331KSEjQ/PnznW1nz57VlClTFBAQoMjIyL9d8/mGDh2qjIwMvfrqqzm25fZ6TpkyJceMVl46deqktLQ0zZkzR19++WWOG4K1bt1agYGBevnll3O9bPL80w+2Fi9eLEmqU6eOpP+bDTv/eJKTkzVr1qxcn9+lSxc5HA4NGDBAcXFxLldfSOeuEPL29tbIkSNzvEbGGB09elTSuTVT2WEmW+3ateXl5XXZPyO4cpiBQIGrXLmy3n//fXXq1Ek1a9Z0uRPlmjVrtGDBAkVHR0s69wssKipKb7/9tpKSkhQZGan169drzpw5at++fZ6XCF6Ozp0767nnntMDDzygp556SqdPn9a0adNUrVo1l0Vvo0aN0rfffqs2bdooPDxchw8f1ptvvqny5cs7F7jl5rXXXtO9996rhg0b6tFHH1VqaqqmTJmioKCgi55a+Lu8vLw0dOjQS/Zr27atRo0apR49eqhRo0batm2b5s2bp0qVKrn0q1y5soKDgzV9+nQVL15cxYoVU4MGDazXE6xcuVJvvvmmhg8f7rysdNasWWrevLmGDRuW6x/lS+nTp4/eeustRUdHa9OmTYqIiNBHH32kH374QRMnTsz34t38yp6FuPA+E9K51zM2NlZBQUGqVauW1q5dq6+//lqlSpXK19j16tVTlSpVNGTIEKWlpbmcvpDOnQ6cNm2aHnnkEdWrV0+dO3dWaGio9u/fryVLlqhx48Z64403Lrmf7777znlX0mPHjmnRokX65ptv1LlzZ9WoUUPSucWuPj4+uv/++/XYY48pJSVFM2bMUOnSpXNdAxIaGqp77rlHCxYsUHBwcI6gX7lyZY0ePVqDBw/Wvn371L59exUvXlx79+7Vp59+qj59+mjQoEFauXKl+vXrp4cffljVqlXT2bNnFRsbK29vbz344IP5eh3hRm67/gP/eL///rvp3bu3iYiIMD4+PqZ48eKmcePGZsqUKebMmTPOfhkZGWbkyJGmYsWKpmjRoqZChQpm8ODBLn2Myf2yPmNyXj6Y12WcxhizfPlyc9NNNxkfHx9TvXp1M3fu3ByXca5YscK0a9fOlCtXzvj4+Jhy5cqZLl26mN9//z3HPi681PHrr782jRs3Nv7+/iYwMNDcf//9Zvv27S59svd34WWis2bNMpLM3r1783xNjXG9jDMveV3GOXDgQFO2bFnj7+9vGjdubNauXZvr5ZefffaZqVWrlilSpIjLcUZGRpobb7wx132eP86JEydMeHi4qVevnsnIyHDp98wzzxgvLy+zdu3aix5DXt/vQ4cOmR49epiQkBDj4+NjateuneP7cLGfAdv97dq1y3h7e+e43PD48ePOOgICAkzr1q3Nb7/9ZsLDw01UVJSz34WXcZ5vyJAhRpKpUqVKnnWtWrXKtG7d2gQFBRk/Pz9TuXJlEx0dbTZu3HjR48ntMk4fHx9To0YNM2bMGJOenu7Sf9GiRebmm282fn5+JiIiwrzyyitm5syZef5MZl922qdPnzxr+Pjjj02TJk1MsWLFTLFixUyNGjVM3759zc6dO40xxsTFxZmePXuaypUrGz8/P1OyZEnTokUL8/XXX1/02OAZHMZYrNgCAEDnLnNu3769vv32W5dLq3HtIEAAAKy1bdtWO3bs0O7duwt04S2uHqyBAADk2wcffKCtW7dqyZIlmjRpEuHhGsYMBAAg3xwOhwICAtSpUydNnz79b92PAlc3vvMAgHzjPSeycR8IAABgjQABAACsESAAAIC1f+QaCP9b+rm7BAAXcXzDpe+gCMA9/PKZDJiBAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCtiLsLwLUp4DpfDX+yrf51Zx2FlgjQlp1/atCrH2nT9v3OPtUrltHoAe3VtF4VFSnipd/iEtRl0Ds6kHBckrRsxgA1u7Wqy7gzPvpeT4354IoeC3At++D9eZoz610lJh5Rteo19PwLw1T75pvdXRauAAIE3GLai11Vq0o59Rw6R/FHktXlvtu1ZHp/1XtwtA4eSVbF8iFaMTNGcxau0ehpS3Ti1BnVqlxWZ9IyXMZ59+Mf9NK0xc7Hp89kXLgrAIXkyy+W6vVXx2ro8JGqXbuO5sXO0ROPParPFn+pUqVKubs8FDJOYeCK8/MtqvYt62rIxIX64ac9ijuQqDFvLdWeA0fU++GmkqSR/e7Xsu9/1ZBJn2nLzj+1989ELflmm44cT3EZK/VMug4dPen8OnnqjDsOCbgmxc6ZpQ4PdVT7Bx5U5SpVNHT4SPn5+WnhJx+7uzRcAW6dgUhMTNTMmTO1du1aJSQkSJLCwsLUqFEjRUdHKzQ01J3loZAU8fZSkSLeOpPuOltwJi1DjW6pLIfDoXua3Kjxc77Woql9VadGef3x11G9NnO5Pl+91eU5ne67VZ3vu02Hjp7Q0m9/0dgZXyiVWQig0GWkp2vH9l/1aO/HnG1eXl66445G2rrlZzdWhivFbTMQGzZsULVq1TR58mQFBQWpWbNmatasmYKCgjR58mTVqFFDGzduvOQ4aWlpOnHihMuXycq8AkeAy5VyOk3rtsRpcO97VTY0SF5eDnW+7zY1uLmiwkICVbpkgIoX89OgHnfpqzXbdf8Tb2jRqi36YFwvNalfxTnO/C82queQ93RPn8l6feZydW1zm2aNjnLjkQHXjuNJx5WZmZnjVEWpUqWUmJjopqpwJbltBqJ///56+OGHNX36dDkcDpdtxhg9/vjj6t+/v9auXXvRccaOHauRI0e6tHmXuU1Fy95e4DWj4PQc+p7eGvFvxS0fo7NnM7X5twP68MuNuqXmDfLyOpdrF6/epinzVkmStv7+lxrUqaTeDzXR95t2S5JmfvKDc7xfdx9UfOIJffn2U6pYPkR7/+QXGAAUJrfNQGzZskXPPPNMjvAgSQ6HQ88884w2b958yXEGDx6s5ORkl68iZeoXQsUoSHv/TNTdvSapVMMYVb13mJo+8rqKFvHW3r8SlXg8RRkZmdoRF+/ynJ1xCaoQViLPMTds2ydJqlyBU19AYSsRXELe3t46evSoS/vRo0cVEhLipqpwJbktQISFhWn9+vV5bl+/fr3KlClzyXF8fX0VGBjo8uXw8i7IUlGITp9JV0LiCQUX91erRjW1ePU2ZZzN1Kbtf6hauOv3v2p4ae2PP57nWHWql5ckJSQmF2rNAKSiPj6qWetG/bju/2aJs7Ky9OOPa3VznVvcWBmuFLedwhg0aJD69OmjTZs2qWXLls6wcOjQIa1YsUIzZszQ66+/7q7yUMhaNawph0P6fd9hVa4Qqpefaa/f9x7Se4vO/TKaMOdrxb7SU9//tFvfbPxddzeqpfua3aTWvSdJkiqWD1Gne2/Vsu9/1dGkU6pd7Xq9OrCDvtu0S7/sOujOQwOuGY9E9dCwF57TjTfepJtq36y5sXOUmpqq9g90cHdpuALcFiD69u2rkJAQTZgwQW+++aYyM88tfPT29lb9+vU1e/ZsdezY0V3loZAFBfhpVP9/6foywTqWfFqfrdis4VM/19mzWZKkRau2qv+YD/Rsz7s17j8P6fc/DqvLs+9ozeY4SVJGxlnd2aC6+nVtoWL+Pvrz0HEtXLFZ/31nmTsPC7im3HPvfTp+7JjefGOyEhOPqHqNmnrzrXdUilMY1wSHMca4u4iMjAznqt2QkBAVLVr0b43nf0u/gigLQCE5vuENd5cAIA9++Zxa8Ig7URYtWlRly5Z1dxkAACCfuBMlAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMBakfx02rp1a74HvPnmmy+7GAAAcHXIV4CoW7euHA6HjDG5bs/e5nA4lJmZWaAFAgAAz5OvALF3797CrgMAAFxF8hUgwsPDC7sOAABwFbmsRZSxsbFq3LixypUrpz/++EOSNHHiRH322WcFWhwAAPBM1gFi2rRpiomJ0X333aekpCTnmofg4GBNnDixoOsDAAAeyDpATJkyRTNmzNCQIUPk7e3tbL/11lu1bdu2Ai0OAAB4JusAsXfvXt1yyy052n19fXXq1KkCKQoAAHg26wBRsWJFbd68OUf7l19+qZo1axZETQAAwMPl6yqM88XExKhv3746c+aMjDFav369/ve//2ns2LF65513CqNGAADgYawDRK9eveTv76+hQ4fq9OnT6tq1q8qVK6dJkyapc+fOhVEjAADwMA6T1+0l8+H06dNKSUlR6dKlC7Kmv83/ln7uLgHARRzf8Ia7SwCQB798Ti1Yz0BkO3z4sHbu3Cnp3K2sQ0NDL3coAABwlbFeRHny5Ek98sgjKleunCIjIxUZGaly5cqpW7duSk5OLowaAQCAh7EOEL169dKPP/6oJUuWKCkpSUlJSVq8eLE2btyoxx57rDBqBAAAHsZ6DUSxYsW0bNkyNWnSxKX9u+++0z333OMR94JgDQTg2VgDAXiu/K6BsJ6BKFWqlIKCgnK0BwUFqUSJErbDAQCAq5B1gBg6dKhiYmKUkJDgbEtISNCzzz6rYcOGFWhxAADAM+VrouKWW26Rw+FwPt61a5duuOEG3XDDDZKk/fv3y9fXV0eOHGEdBAAA14B8BYj27dsXchkAAOBq8rduJOWpWEQJeDYWUQKeq9AWUQIAAFjfiTIzM1MTJkzQhx9+qP379ys9Pd1l+7FjxwqsOAAA4JmsZyBGjhyp8ePHq1OnTkpOTlZMTIw6dOggLy8vjRgxohBKBAAAnsY6QMybN08zZszQwIEDVaRIEXXp0kXvvPOOXnzxRa1bt64wagQAAB7GOkAkJCSodu3akqSAgADn51+0bdtWS5YsKdjqAACAR7IOEOXLl1d8fLwkqXLlylq+fLkkacOGDfL19S3Y6gAAgEeyDhAPPPCAVqxYIUnq37+/hg0bpqpVq6p79+7q2bNngRcIAAA8z9++D8S6deu0Zs0aVa1aVffff39B1fW3cB8IwLNxHwjAc12x+0DccccdiomJUYMGDfTyyy//3eEAAMBVoMBuJBUfH8+HaQEAcI3gTpQAAMAaAQIAAFgjQAAAAGv5/iyMmJiYi24/cuTI3y6moMSvmeTuEgBcxKHkNHeXACAP4aXyd0+nfAeIn3/++ZJ9mjVrlt/hAADAVexv3wfCEyWlZrq7BAAXkXz6rLtLAJCH/M5AsAYCAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgLXLChDfffedunXrpoYNG+qvv/6SJMXGxur7778v0OIAAIBnsg4QH3/8sVq3bi1/f3/9/PPPSks7d0OY5ORkPo0TAIBrhHWAGD16tKZPn64ZM2aoaNGizvbGjRvrp59+KtDiAACAZ7IOEDt37sz1jpNBQUFKSkoqiJoAAICHsw4QYWFh2r17d47277//XpUqVSqQogAAgGezDhC9e/fWgAED9OOPP8rhcOjgwYOaN2+eBg0apCeeeKIwagQAAB4m3x+mle35559XVlaWWrZsqdOnT6tZs2by9fXVoEGD1L9//8KoEQAAeJjL/jCt9PR07d69WykpKapVq5YCAgIKurbLxodpAZ6ND9MCPFd+P0yLT+MEcMURIADPld8AYX0Ko0WLFnI4HHluX7lype2QAADgKmMdIOrWrevyOCMjQ5s3b9Yvv/yiqKiogqoLAAB4MOsAMWHChFzbR4wYoZSUlL9dEAAA8HwFtgZi9+7duv3223Xs2LGCGO5vYQ0E4NlYAwF4rvyugSiwT+Ncu3at/Pz8Cmo4AADgwaxPYXTo0MHlsTFG8fHx2rhxo4YNG1ZghQEAAM9lHSCCgoJcHnt5eal69eoaNWqU7r777gIrDAAAeC6rAJGZmakePXqodu3aKlGiRGHVBAAAPJzVGghvb2/dfffdfOomAADXOOtFlDfddJPi4uIKoxYAAHCVsA4Qo0eP1qBBg7R48WLFx8frxIkTLl8AAOCfL9/3gRg1apQGDhyo4sWL/9+Tz7ultTFGDodDmZnuvwcD94EAPBv3gQA8V4F/mJa3t7fi4+O1Y8eOi/aLjIzM144LEwEC8GwECMBzFfiHaWXnDE8ICAAAwL2s1kBc7FM4AQDAtcPqPhDVqlW7ZIjwhM/CAAAAhcsqQIwcOTLHnSgBAMC1J9+LKL28vJSQkKDSpUsXdk1/G4soAc/GIkrAcxX4p3Gy/gEAAGTLd4DI50QFAAC4BuR7DURWVlZh1gEAAK4i1reyBgAAIEAAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAWhF3FwBI0scffqBPFnyggwf/kiRVqlxFj/Z5Qo2aNJMk/XlgvyaPf01bNv+k9PR0NWzURAOfH6JSpULcWTbwj7T1541a8P5s7dq5Q8cSj2j42IlqHHmnc/v3q7/W4k8XaNfO7Tp5IlnTZn+oytVquIyxZOFHWvXVUu3euUOnT5/SJ8u+V0DxwCt9KChEzEDAI5QuU0ZPPvWM5ry/QHPeX6Bbb2ugZ5/up7jdu5SaelpPPdFbDodDU9+epRmz5ykjI0ODnuqrrKwsd5cO/OOcOZOqSlWqq9/AF3Lfnpqqm+rcol5PPp3nGGlpqbq1QWN17t6rkKqEuzEDAY/QNLKFy+Mn+j+tTxZ8oF+2bdXhw4cVf/AvvffBxwoICJAkDX9prFo1u0Mb16/T7Xc0ckfJwD/W7Q2b6vaGTfPc3ure+yVJCfF/5dmnQ6dHJElbftpQsMXBYzADAY+TmZmp5V8uVWpqqm66uY4yMtLlcDjk4+Pj7OPj6ysvLy9t+fknN1YKANcujw4QBw4cUM+ePS/aJy0tTSdOnHD5SktLu0IVoiDt3vW7mjesr6a319Uro0fqlfGTValyFd1Uu478/P31xsRxOpOaqtTU05o8/lVlZmYqMfGIu8sGgGuSRweIY8eOac6cORftM3bsWAUFBbl8TXjtv1eoQhSk8IgIxc7/RO/GfqAOHTtp1IsvKG7PbpUoWVIvvzpB33+7Ws0b3aqWTRro5MmTql6zlry8PPpHGAD+sdy6BmLRokUX3R4XF3fJMQYPHqyYmBiXttQslnZcjYoW9VGFG8IlSTVr3agdv/6i+e/HavCwkbqjUWN9sniZko4fl7e3t4oHBurelk1V7vp73Vw1AFyb3PqXtn379nI4HDLG5NnH4XBcdAxfX1/5+vq6tGWlZhZIfXCvrCyjjPQMl7bgEiUkSRvXr9PxY8fUrPmduT0VAFDI3BogypYtqzfffFPt2rXLdfvmzZtVv379K1wV3GHq5PFq1LiZyoSV1enTp7Tsi8X6aeN6TXpzhiTp84WfKKJSZZUoUULbtm7W+FfHqku37gqPqOjmyoF/ntTTp3Xwz/3Oxwnxf2nP77+peGCQSoeV1YkTyTqSEK+j/38N0oH9+yRJJUqFqOT/vzfLsaOJOn400TnO3j27dN11xRQaVlaBgUFX9oBQKBzmYm//C9m//vUv1a1bV6NGjcp1+5YtW3TLLbdYX+ufxAzEVWf0iKHa+OM6JSYeUUBAcVWpVk2PRPdSg4bnLtGcOmm8Fi/6VCeSk1W23PXq8HAndekWdckZKnim5NNn3V0CLmLLTxv0bL9Hc7Tfdd+/9OzQ0Vq+5DO9PmZYju3dej6u7r2elCS9986bmjtzeo4+g4a8pLvb5P6mEZ4hvJTvpTvJzQHiu+++06lTp3TPPffkuv3UqVPauHGjIiMjrcYlQACejQABeK6rIkAUFgIE4NkIEIDnym+A4Bo4AABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYcxhjj7iKAi0lLS9PYsWM1ePBg+fr6urscAOfh/+e1iwABj3fixAkFBQUpOTlZgYGB7i4HwHn4/3nt4hQGAACwRoAAAADWCBAAAMAaAQIez9fXV8OHD2eBFuCB+P957WIRJQAAsMYMBAAAsEaAAAAA1ggQAADAGgECAABYI0DAo02dOlURERHy8/NTgwYNtH79eneXBEDSt99+q/vvv1/lypWTw+HQwoUL3V0SrjACBDzW/PnzFRMTo+HDh+unn35SnTp11Lp1ax0+fNjdpQHXvFOnTqlOnTqaOnWqu0uBm3AZJzxWgwYNdNttt+mNN96QJGVlZalChQrq37+/nn/+eTdXByCbw+HQp59+qvbt27u7FFxBzEDAI6Wnp2vTpk1q1aqVs83Ly0utWrXS2rVr3VgZAEAiQMBDJSYmKjMzU2XKlHFpL1OmjBISEtxUFQAgGwECAABYI0DAI4WEhMjb21uHDh1yaT906JDCwsLcVBUAIBsBAh7Jx8dH9evX14oVK5xtWVlZWrFihRo2bOjGygAAklTE3QUAeYmJiVFUVJRuvfVW3X777Zo4caJOnTqlHj16uLs04JqXkpKi3bt3Ox/v3btXmzdvVsmSJXXDDTe4sTJcKVzGCY/2xhtv6LXXXlNCQoLq1q2ryZMnq0GDBu4uC7jmrV69Wi1atMjRHhUVpdmzZ1/5gnDFESAAAIA11kAAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAcIqOjlb79u2dj5s3b66nn376itexevVqORwOJSUlFdo+LjzWy3El6gQ8FQEC8HDR0dFyOBxyOBzy8fFRlSpVNGrUKJ09e7bQ9/3JJ5/opZdeylffK/3HNCIiQhMnTrwi+wKQEx+mBVwF7rnnHs2aNUtpaWlaunSp+vbtq6JFi2rw4ME5+qanp8vHx6dA9luyZMkCGQfAPw8zEMBVwNfXV2FhYQoPD9cTTzyhVq1aadGiRZL+byp+zJgxKleunKpXry5JOnDggDp27Kjg4GCVLFlS7dq10759+5xjZmZmKiYmRsHBwSpVqpT+85//6MKPxrnwFEZaWpqee+45VahQQb6+vqpSpYreffdd7du3z/nBSiVKlJDD4VB0dLSkcx/DPnbsWFWsWFH+/v6qU6eOPvroI5f9LF26VNWqVZO/v79atGjhUuflyMzM1KOPPurcZ/Xq1TVp0qRc+44cOVKhoaEKDAzU448/rvT0dOe2/NQOXKuYgQCuQv7+/jp69Kjz8YoVKxQYGKivvvpKkpSRkaHWrVurYcOG+u6771SkSBGNHj1a99xzj7Zu3SofHx+NGzdOs2fP1syZM1WzZk2NGzdOn376qe68884899u9e3etXbtWkydPVp06dbR3714lJiaqQoUK+vjjj/Xggw9q586dCgwMlL+/vyRp7Nixmjt3rqZPn66qVavq22+/Vbdu3RQaGqrIyEgdOHBAHTp0UN++fdWnTx9t3LhRAwcO/FuvT1ZWlsqXL68FCxaoVKlSWrNmjfr06aOyZcuqY8eOLq+bn5+fVq9erX379qlHjx4qVaqUxowZk6/agWuaAeDRoqKiTLt27YwxxmRlZZmvvvrK+Pr6mkGDBjm3lylTxqSlpTmfExsba6pXr26ysrKcbWlpacbf398sW7bMGGNM2bJlzauvvurcnpGRYcqXL+/clzHGREZGmgEDBhhjjNm5c6eRZL766qtc61y1apWRZI4fP+5sO3PmjLnuuuvMmjVrXPo++uijpkuXLsYYYwYPHmxq1arlsv25557LMdaFwsPDzYQJE/LcfqG+ffuaBx980Pk4KirKlCxZ0pw6dcrZNm3aNBMQEGAyMzPzVXtuxwxcK5iBAK4CixcvVkBAgDIyMpSVlaWuXbtqxIgRzu21a9d2WfewZcsW7d69W8WLF3cZ58yZM9qzZ4+Sk5MVHx+vBg0aOLcVKVJEt956a47TGNk2b94sb29vq3feu3fv1unTp3XXXXe5tKenp+uWW26RJO3YscOlDklq2LBhvveRl6lTp2rmzJnav3+/UlNTlZ6errp167r0qVOnjq677jqX/aakpOjAgQNKSUm5ZO3AtYwAAVwFWrRooWnTpsnHx0flypVTkSKu/3WLFSvm8jglJUX169fXvHnzcowVGhp6WTVkn5KwkZKSIklasmSJrr/+epdtvr6+l1VHfnzwwQcaNGiQxo0bp4YNG6p48eJ67bXX9OOPP+Z7DHfVDlwtCBDAVaBYsWKqUqVKvvvXq1dP8+fPV+nSpRUYGJhrn7Jly+rHH39Us2bNJElnz57Vpk2bVK9evVz7165dW1lZWfrmm2/UqlWrHNuzZ0AyMzOdbbVq1ZKvr6/279+f58xFzZo1nQtCs61bt+7SB3kRP/zwgxo1aqQnn3zS2bZnz54c/bZs2aLU1FRnOFq3bp0CAgJUoUIFlSxZ8pK1A9cyrsIA/oH+/e9/KyQkRO3atdN3332nvXv3avXq1Xrqqaf0559/SpIGDBig//73v1q4cKF+++03Pfnkkxe9h0NERISioqLUs2dPLVy40Dnmhx9+KEkKDw+Xw+HQ4sWLdeTIEaWkpKh48eIaNGiQnnnmGc2ZM0d79uzRTz/9pClTpmjOnDmSpMcff1y7du3Ss88+q507d+r999/X7Nmz83Wcf/31lzZv3uzydfz4cVWtWlUbN27UsmXL9Pvvv2vYsGHasGFDjuenp6fr0Ucf1fbt27V06VINHz5c/fr1k5eXV75qB65p7l6EAeDizl9EabM9Pj7edO/e3YSEhBhfX19TqVIl07t3b5OcnGyMObdocsCAASYwMNAEBwebmJgY07179zwXURpjTGpqqnnmmWdM2bJljY+Pj6lSpYqZOXOmc/uoUaNMWFiYcTgcJioqyhhzbuHnxIkTTfXq1U3RokVNaGioad26tfnmm2+cz/v8889NlSpVjK+vr2natKmZOXNmvhZRSsrxFRsba86cOWOio6NNUFCQCQ4ONk888YR5/vnnTZ06dXK8bi+++KIpVaqUCQgIML179zZnzpxx9rlU7SyixLXMYUweK6YAAADywCkMAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIC1/wfe7UmwfhxnVgAAAABJRU5ErkJggg==\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Model: Naive Bayes\n",
            "Accuracy: 0.9650\n",
            "Precision: 0.9664\n",
            "Recall: 0.9650\n",
            "F1 Score: 0.9628\n",
            "Classification Report:\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "           0       0.96      1.00      0.98       965\n",
            "           1       1.00      0.74      0.85       150\n",
            "\n",
            "    accuracy                           0.97      1115\n",
            "   macro avg       0.98      0.87      0.92      1115\n",
            "weighted avg       0.97      0.97      0.96      1115\n",
            "\n",
            "Training Logistic Regression...\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x600 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhAAAAIjCAYAAABS7iKKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOjFJREFUeJzt3X98z/X+//H7e5u9N5ttZmNmzG9Rfov8HBElHVI5OB2b3yqSoXJKWMonld+Kkh9HP47SOeWQX5FIlN91DslQJL81zGxse37/8N37eNvGnuwXbtfLZZd6P1/P9/P1eL323tv9/Xo9X6+3wxhjBAAAYMGjoAsAAAA3HwIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIE8tyePXvUtm1bBQYGyuFw6LPPPsvV8X/55Rc5HA7NnTs3V8e9mbVs2VItW7bMtfESExPVp08fhYWFyeFw6Jlnnsm1sQuLNWvWyOFwaM2aNbky3ty5c+VwOPTLL7/kyniQRo8eLYfDUdBl4P8jQNwm9u7dq/79+6tixYry8fFRQECAmjZtqsmTJ+v8+fN5uu7o6Gj9+OOPeuWVVzR//nw1aNAgT9eXn2JiYuRwOBQQEJDlftyzZ48cDoccDofeeOMN6/F///13jR49Wtu3b8+Faq/fq6++qrlz5+qJJ57Q/Pnz9de//jVP11e+fHl16NAhT9eRW1599dVcD8VXyggjGT9eXl4qU6aMYmJidOjQoTxdN5Atg1ve4sWLja+vrwkKCjJPP/20eeedd8y0adNM165dTZEiRUzfvn3zbN1JSUlGknnhhRfybB3p6enm/PnzJjU1Nc/WkZ3o6Gjj5eVlPD09zYIFCzItHzVqlPHx8TGSzOuvv249/qZNm4wkM2fOHKvnpaSkmJSUFOv1ZadRo0amadOmuTbetURGRpoHH3ww39ZnjDFpaWnm/PnzJi0tzep5fn5+Jjo6OlN7amqqOX/+vElPT7/h2ubMmWMkmbi4ODN//nzz7rvvmt69extPT09TqVIlc/78+Rtex83g4sWLt8223gy8Cja+IK/t379fXbt2VWRkpFavXq3SpUu7lj311FOKj4/XkiVL8mz9x48flyQFBQXl2TocDod8fHzybPxrcTqdatq0qT766CN16dLFbdmHH36oBx98UJ9++mm+1JKUlKSiRYvK29s7V8c9duyYatSokWvjpaamKj09PdfrvBEeHh65+jry9PSUp6dnro0nSQ888IDrCF6fPn0UEhKi1157TYsWLcr02stLxhglJyfL19c339YpSV5eXvLy4p+twoJTGLe48ePHKzExUe+9955beMhQuXJlDR482PU4NTVVL7/8sipVqiSn06ny5cvrb3/7m1JSUtyel3GI+ZtvvlHDhg3l4+OjihUr6u9//7urz+jRoxUZGSlJGj58uBwOh8qXLy/p0qH/jP+/XFbnOFeuXKlmzZopKChI/v7+qlatmv72t7+5lmc3B2L16tVq3ry5/Pz8FBQUpI4dO2rXrl1Zri8+Pl4xMTEKCgpSYGCgevbsqaSkpOx37BW6d++upUuXKiEhwdW2adMm7dmzR927d8/U/9SpUxo2bJhq1qwpf39/BQQE6IEHHtCOHTtcfdasWaO7775bktSzZ0/X4euM7WzZsqXuuusubdmyRS1atFDRokVd++XKORDR0dHy8fHJtP3t2rVT8eLF9fvvv2e5XRnzAvbv368lS5a4asg4r3/s2DH17t1bpUqVko+Pj2rXrq158+a5jZHx+3njjTc0adIk12tr586dOdq32cnpazU9PV2jR49WeHi4ihYtqlatWmnnzp0qX768YmJiMm3r5XMg9uzZo0ceeURhYWHy8fFRRESEunbtqtOnT0u6FF7PnTunefPmufZNxpjZzYFYunSpoqKiVKxYMQUEBOjuu+/Whx9+eF37oHnz5pIunaK83E8//aRHH31UwcHB8vHxUYMGDbRo0aJMz//hhx8UFRUlX19fRUREaOzYsZozZ06mujP+3pcvX64GDRrI19dXM2fOlCQlJCTomWeeUdmyZeV0OlW5cmW99tprSk9Pd1vXP/7xD9WvX9+13TVr1tTkyZNdyy9evKgxY8aoSpUq8vHxUYkSJdSsWTOtXLnS1Ser94fcfM+CHaLcLe7f//63KlasqCZNmuSof58+fTRv3jw9+uijGjp0qL777juNGzdOu3bt0r/+9S+3vvHx8Xr00UfVu3dvRUdHa/bs2YqJiVH9+vV15513qnPnzgoKCtKQIUPUrVs3tW/fXv7+/lb1//e//1WHDh1Uq1YtxcXFyel0Kj4+XuvXr7/q87788ks98MADqlixokaPHq3z589r6tSpatq0qbZu3ZopvHTp0kUVKlTQuHHjtHXrVs2aNUslS5bUa6+9lqM6O3furAEDBuif//ynevXqJenS0Yc77rhD9erVy9R/3759+uyzz/TYY4+pQoUKOnr0qGbOnKmoqCjt3LlT4eHhql69uuLi4vTSSy+pX79+rn8sLv9dnjx5Ug888IC6du2qxx9/XKVKlcqyvsmTJ2v16tWKjo7Whg0b5OnpqZkzZ2rFihWaP3++wsPDs3xe9erVNX/+fA0ZMkQREREaOnSoJCk0NFTnz59Xy5YtFR8fr4EDB6pChQr65JNPFBMTo4SEBLdgKklz5sxRcnKy+vXrJ6fTqeDg4Bzt2+zk9LU6YsQIjR8/Xg899JDatWunHTt2qF27dkpOTr7q+BcuXFC7du2UkpKiQYMGKSwsTIcOHdLixYuVkJCgwMBAzZ8/X3369FHDhg3Vr18/SVKlSpWyHXPu3Lnq1auX7rzzTo0YMUJBQUHatm2bli1blmXQvJaMf+SLFy/uavvvf/+rpk2bqkyZMnr++efl5+enjz/+WJ06ddKnn36qhx9+WJJ06NAhtWrVSg6HQyNGjJCfn59mzZolp9OZ5bp2796tbt26qX///urbt6+qVaumpKQkRUVF6dChQ+rfv7/KlSunb7/9ViNGjNDhw4c1adIkSZc+BHTr1k2tW7d2/U3t2rVL69evd71ORo8erXHjxrn255kzZ7R582Zt3bpV9913X7b7IDffs2CpoM+hIO+cPn3aSDIdO3bMUf/t27cbSaZPnz5u7cOGDTOSzOrVq11tkZGRRpJZu3atq+3YsWPG6XSaoUOHutr279+f5fn/6OhoExkZmamGUaNGmctflhMnTjSSzPHjx7OtO2Mdl88TqFOnjilZsqQ5efKkq23Hjh3Gw8PD9OjRI9P6evXq5Tbmww8/bEqUKJHtOi/fDj8/P2OMMY8++qhp3bq1MebS+fSwsDAzZsyYLPdBcnJypnPt+/fvN06n08TFxbnarjYHIioqykgyM2bMyHJZVFSUW9vy5cuNJDN27Fizb98+4+/vbzp16nTNbTQm6zkJkyZNMpLM+++/72q7cOGCady4sfH39zdnzpxxbZckExAQYI4dO3bd67tcTl+rR44cMV5eXpm2c/To0UaS29yFr776ykgyX331lTHGmG3bthlJ5pNPPrlqrdnNgciYt7B//35jjDEJCQmmWLFiplGjRpnO419rnkTGWF9++aU5fvy4OXjwoFm4cKEJDQ01TqfTHDx40NW3devWpmbNmiY5Odlt/CZNmpgqVaq42gYNGmQcDofZtm2bq+3kyZMmODjYrW5j/vf3vmzZMre6Xn75ZePn52d+/vlnt/bnn3/eeHp6mgMHDhhjjBk8eLAJCAi46jyl2rVrX3Pey5XvD3nxnoWc4xTGLezMmTOSpGLFiuWo/xdffCFJio2NdWvP+NR55VyJGjVquD4VS5c+lVarVk379u277pqvlDF34vPPP890SDQ7hw8f1vbt2xUTE+P2KbdWrVq67777XNt5uQEDBrg9bt68uU6ePOnahznRvXt3rVmzRkeOHNHq1at15MiRbD9VOp1OeXhc+vNLS0vTyZMnXadntm7dmuN1Op1O9ezZM0d927Ztq/79+ysuLk6dO3eWj4+P6zD09fjiiy8UFhambt26udqKFCmip59+WomJifr666/d+j/yyCMKDQ297vVduW7p2q/VVatWKTU1VU8++aRbv0GDBl1zHYGBgZKk5cuXW53Oys7KlSt19uxZPf/885nmWuT00sQ2bdooNDRUZcuW1aOPPio/Pz8tWrRIERERki6dGlu9erW6dOmis2fP6sSJEzpx4oROnjypdu3aac+ePa6rNpYtW6bGjRurTp06rvGDg4P1l7/8Jct1V6hQQe3atXNr++STT9S8eXMVL17cta4TJ06oTZs2SktL09q1ayVd+js+d+6c2+mIKwUFBem///2v9uzZk6N9IRXO96zbCQHiFhYQECBJOnv2bI76//rrr/Lw8FDlypXd2sPCwhQUFKRff/3Vrb1cuXKZxihevLj++OOP66w4sz//+c9q2rSp+vTpo1KlSqlr1676+OOPrxomMuqsVq1apmXVq1fXiRMndO7cObf2K7cl45Cwzba0b99exYoV04IFC/TBBx/o7rvvzrQvM6Snp2vixImqUqWKnE6nQkJCFBoaqh9++MF1fj0nypQpYzUR8Y033lBwcLC2b9+uKVOmqGTJkjl+7pV+/fVXValSxRWEMlSvXt21/HIVKlS47nVlte6cvFYz/ntlv+DgYLfD/lmpUKGCYmNjNWvWLIWEhKhdu3aaPn261e/nchnzFO66667rer4kTZ8+XStXrtTChQvVvn17nThxwu2UQ3x8vIwxGjlypEJDQ91+Ro0aJenSvBXp0r7J6vWZ3Ws2q9/fnj17tGzZskzratOmjdu6nnzySVWtWlUPPPCAIiIi1KtXLy1btsxtrLi4OCUkJKhq1aqqWbOmhg8frh9++OGq+6MwvmfdTpgDcQsLCAhQeHi4/vOf/1g9L6efhrKbYW6Mue51pKWluT329fXV2rVr9dVXX2nJkiVatmyZFixYoHvvvVcrVqzItVnuN7ItGZxOpzp37qx58+Zp3759Gj16dLZ9X331VY0cOVK9evXSyy+/rODgYHl4eOiZZ57J8ZEWSdaz4Ldt2+Z6U//xxx/djh7ktbyYsZ/XNxV68803FRMTo88//1wrVqzQ008/rXHjxmnjxo2uT/35qWHDhq6rMDp16qRmzZqpe/fu2r17t/z9/V2vnWHDhmU6WpAhu4BwLVn9/tLT03Xffffp2WefzfI5VatWlSSVLFlS27dv1/Lly7V06VItXbpUc+bMUY8ePVyTblu0aKG9e/e69vWsWbM0ceJEzZgxQ3369LlqbfnxnoXMOAJxi+vQoYP27t2rDRs2XLNvZGSk0tPTMx1CPHr0qBISElxXVOSG4sWLu12xkOHKTwzSpcvrWrdurQkTJmjnzp165ZVXtHr1an311VdZjp1R5+7duzMt++mnnxQSEiI/P78b24BsdO/eXdu2bdPZs2fVtWvXbPstXLhQrVq10nvvvaeuXbuqbdu2atOmTaZ9kpv/QJ47d049e/ZUjRo11K9fP40fP16bNm267vEiIyO1Z8+eTIHnp59+ci3PKzl9rWb8Nz4+3q3fyZMnc/yps2bNmnrxxRe1du1arVu3TocOHdKMGTNcy3P6O8qYXGkb6LPj6empcePG6ffff9e0adMkSRUrVpR06VRSmzZtsvzJOKUZGRmZab9ImffV1VSqVEmJiYnZruvyT/ze3t566KGH9NZbb7lubPf3v//dbX3BwcHq2bOnPvroIx08eFC1atW6ahDPz/csZEaAuMU9++yz8vPzU58+fXT06NFMy/fu3eu6lKp9+/aS5Jo5nWHChAmSpAcffDDX6qpUqZJOnz7tdojy8OHDmWZNnzp1KtNzM87ZXnmZVobSpUurTp06mjdvnts/yP/5z3+0YsUK13bmhVatWunll1/WtGnTFBYWlm0/T0/PTJ96Pvnkk0x3FcwIOlmFLVvPPfecDhw4oHnz5mnChAkqX768oqOjs92P19K+fXsdOXJECxYscLWlpqZq6tSp8vf3V1RU1A3XfLV1S9d+rbZu3VpeXl56++233fpl/IN7NWfOnFFqaqpbW82aNeXh4eG2z/z8/HL0+2nbtq2KFSumcePGZboC5Ho/Abds2VINGzbUpEmTlJycrJIlS6ply5aaOXOmDh8+nKl/xn1ZpEuX8G7YsMHtLqenTp3SBx98kOP1d+nSRRs2bNDy5cszLUtISHDtv5MnT7ot8/DwUK1atST97+/4yj7+/v6qXLnyVV+f+fmehcw4hXGLq1Spkj788EP9+c9/VvXq1dWjRw/dddddunDhgr799lvXZXeSVLt2bUVHR+udd95RQkKCoqKi9P3332vevHnq1KmTWrVqlWt1de3aVc8995wefvhhPf3000pKStLbb7+tqlWruk0ijIuL09q1a/Xggw8qMjJSx44d01tvvaWIiAg1a9Ys2/Fff/11PfDAA2rcuLF69+7tuowzMDDwqp9obpSHh4defPHFa/br0KGD4uLi1LNnTzVp0kQ//vijPvjgA9cnyAyVKlVSUFCQZsyYoWLFisnPz0+NGjWynk+wevVqvfXWWxo1apTrstI5c+aoZcuWGjlypMaPH281niT169dPM2fOVExMjLZs2aLy5ctr4cKFWr9+vSZNmpTjybvZiY+P19ixYzO1161bVw8++GCOXqulSpXS4MGD9eabb+pPf/qT7r//fu3YsUNLly5VSEjIVY8erF69WgMHDtRjjz2mqlWrKjU1VfPnz5enp6ceeeQRV7/69evryy+/1IQJExQeHq4KFSqoUaNGmcYLCAjQxIkT1adPH919993q3r27ihcvrh07digpKSnT/TNyavjw4Xrsscc0d+5cDRgwQNOnT1ezZs1Us2ZN9e3bVxUrVtTRo0e1YcMG/fbbb657jTz77LN6//33dd9992nQoEGuyzjLlSunU6dO5ejIyvDhw7Vo0SJ16NDBdTnkuXPn9OOPP2rhwoX65ZdfFBISoj59+ujUqVO69957FRERoV9//VVTp05VnTp1XHNmatSooZYtW6p+/foKDg7W5s2btXDhQg0cODDb9efnexayUJCXgCD//Pzzz6Zv376mfPnyxtvb2xQrVsw0bdrUTJ061e1yr4sXL5oxY8aYChUqmCJFipiyZcuaESNGuPUxJvvL7K68fDC7yziNMWbFihXmrrvuMt7e3qZatWrm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O2a5fPv27apfv34+V4WCMHXi62rWoqXCSofrxPFjmjVjujw9PHXf/e3128EDWrlsiRo3baHAoCDF79mtyW+OV516DVS5arWCLh24LWzauF7GGJWNLK9DBw9o5tQJKhdZQfc/1Ennk5I0b9bbatGqjYJLhOj3Qwc1c+oElYkop7vvaVrQpSOPFGiAqF+/vrZs2ZJtgLjW0QncOo4dPapRI4br9OkEBRUPVq069fTOvA9VvHiwLqSkaNN3G7Xgw/lKPn9eJUuFqdW9bRTTZ0BBlw3cNs4lntW7b03WiWNHVSwgUM1btVHvJ56Wl1cRpaWmaV/8z1rxxSIlnj2jEqEl1aBhY/XsP1De3jk7n46bT4FOoly3bp3OnTun+++/P8vl586d0+bNmxUVFWU17klOYQCFGpMogcLrlrgK43oRIIDCjQABFF45DRB8mRYAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAaw5jjCnoIoCrSUlJ0bhx4zRixAg5nc6CLgfAZfj7vH0RIFDonTlzRoGBgTp9+rQCAgIKuhwAl+Hv8/bFKQwAAGCNAAEAAKwRIAAAgDUCBAo9p9OpUaNGMUELKIT4+7x9MYkSAABY4wgEAACwRoAAAADWCBAAAMAaAQIAAFgjQKBQmz59usqXLy8fHx81atRI33//fUGXBEDS2rVr9dBDDyk8PFwOh0OfffZZQZeEfEaAQKG1YMECxcbGatSoUdq6datq166tdu3a6dixYwVdGnDbO3funGrXrq3p06cXdCkoIFzGiUKrUaNGuvvuuzVt2jRJUnp6usqWLatBgwbp+eefL+DqAGRwOBz617/+pU6dOhV0KchHHIFAoXThwgVt2bJFbdq0cbV5eHioTZs22rBhQwFWBgCQCBAopE6cOKG0tDSVKlXKrb1UqVI6cuRIAVUFAMhAgAAAANYIECiUQkJC5OnpqaNHj7q1Hz16VGFhYQVUFQAgAwEChZK3t7fq16+vVatWudrS09O1atUqNW7cuAArAwBIkldBFwBkJzY2VtHR0WrQoIEaNmyoSZMm6dy5c+rZs2dBlwbc9hITExUfH+96vH//fm3fvl3BwcEqV65cAVaG/MJlnCjUpk2bptdff11HjhxRnTp1NGXKFDVq1KigywJue2vWrFGrVq0ytUdHR2vu3Ln5XxDyHQECAABYYw4EAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAJeYmBh16tTJ9bhly5Z65pln8r2ONWvWyOFwKCEhIc/WceW2Xo/8qBMorAgQQCEXExMjh8Mhh8Mhb29vVa5cWXFxcUpNTc3zdf/zn//Uyy+/nKO++f2Pafny5TVp0qR8WReAzPgyLeAmcP/992vOnDlKSUnRF198oaeeekpFihTRiBEjMvW9cOGCvL29c2W9wcHBuTIOgFsPRyCAm4DT6VRYWJgiIyP1xBNPqE2bNlq0aJGk/x2Kf+WVVxQeHq5q1apJkg4ePKguXbooKChIwcHB6tixo3755RfXmGlpaYqNjVVQUJBKlCihZ599Vld+Nc6VpzBSUlL03HPPqWzZsnI6napcubLee+89/fLLL64vVipevLgcDodiYmIkXfoa9nHjxqlChQry9fVV7dq1tXDhQrf1fPHFF6patap8fX3VqlUrtzqvR1pamnr37u1aZ7Vq1TR58uQs+44ZM0ahoaEKCAjQgAEDdOHCBdeynNQO3K44AgHchHx9fXXy5EnX41WrVikgIEArV66UJF28eFHt2rVT48aNtW7dOnl5eWns2LG6//779cMPP8jb21tvvvmm5s6dq9mzZ6t69ep688039a9//Uv33ntvtuvt0aOHNmzYoClTpqh27drav3+/Tpw4obJly+rTTz/VI488ot27dysgIEC+vr6SpHHjxun999/XjBkzVKVKFa1du1aPP/64QkNDFRUVpYMHD6pz58566qmn1K9fP23evFlDhw69of2Tnp6uiIgIffLJJypRooS+/fZb9evXT6VLl1aXLl3c9puPj4/WrFmjX375RT179lSJEiX0yiuv5Kh24LZmABRq0dHRpmPHjsYYY9LT083KlSuN0+k0w4YNcy0vVaqUSUlJcT1n/vz5plq1aiY9Pd3VlpKSYnx9fc3y5cuNMcaULl3ajB8/3rX84sWLJiIiwrUuY4yJiooygwcPNsYYs3v3biPJrFy5Mss6v/rqKyPJ/PHHH6625ORkU7RoUfPtt9+69e3du7fp1q2bMcaYESNGmBo1argtf+655zKNdaXIyEgzceLEbJdf6amnnjKPPPKI63F0dLQJDg42586dc7W9/fbbxt/f36SlpeWo9qy2GbhdcAQCuAksXrxY/v7+unjxotLT09W9e3eNHj3atbxmzZpu8x527Nih+Ph4FStWzG2c5ORk7d27V6dPn9bhw4fVqFEj1zIvLy81aNAg02mMDNu3b5enp6fVJ+/4+HglJSXpvvvuc2u/cOGC6tatK0natWuXWx2S1Lhx4xyvIzvTp0/X7NmzdeDAAZ0/f14XLlxQnTp13PrUrl1bRYsWdVtvYmKiDh48qMTExGvWDtzOCBDATaBVq1Z6++235e3trfDwcHl5uf/p+vn5uT1OTExU/fr19cEHH2QaKzQ09LpqyDglYSMxMVGStGTJEpUpU8ZtmdPpvK46cuIf//iHhg0bpjfffFONGzdWsWLF9Prrr+u7777L8RgFVTtwsyBAADcBPz8/Va5cOcf969WrpwULFqhkyZIKCAjIsk/p0qX13XffqUWLFpKk1NRUbdmyRfXq1cuyf82aNZWenq6vv/5abdq0ybQ84whIWlqaq61GjRpyOp06cOBAtkcuqlev7poQmmHjxo3X3sirWL9+vZo0aaInn3zS1bZ3795M/Xbs2KHz58+7wtHGjRvl7++vsmXLKjg4+Jq1A7czrsIAbkF/+ctfFBISoo4dO2rdunXav3+/1qxZo6efflq//fabJGnw4MH6v//7P3322Wf66aef9OSTT171Hg7ly5dXdHS0evXqpc8++8w15scffyxJioyMlMPh0OLFi3X8+HElJiaqWLFiGjZsmIYMGaJ58+Zp79692rp1q6ZOnap58+ZJkgYMGKA9e/Zo+PDh2r17tz788EPNnTs3R9t56NAhbd++3e3njz/+UJUqVbR582YtX75cP//8s0aOHKlNmzZlev6FCxfUu3dv7dy5U1988YVGjRqlgQMHysPDI0e1A7e1gp6EAeDqLp9EabP88OHDpkePHiYkJMQ4nU5TsWJF07dvX3P69GljzKVJk4MHDzYBAQEmKCjIxMbGmh49emQ7idIYY86fP2+GDBliSpcubby9vU3lypXN7NmzXcvj4uJMWFiYcTgcJjo62hhzaeLnpEmTTLVq1UyRIkVMaGioadeunfn6669dz/v3v/9tKleubJxOp2nevLmZPXt2jiZRSsr0M3/+fJOcnGxiYmJMYGCgCQoKMk888YR5/vnnTe3atTPtt5deesmUKFHC+Pv7m759+5rk5GRXn2vVziRK3M4cxmQzYwoAACAbnMIAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFj7f7CtT8N0pjTFAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Model: Logistic Regression\n",
            "Accuracy: 0.9489\n",
            "Precision: 0.9505\n",
            "Recall: 0.9489\n",
            "F1 Score: 0.9441\n",
            "Classification Report:\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "           0       0.95      1.00      0.97       965\n",
            "           1       0.98      0.63      0.77       150\n",
            "\n",
            "    accuracy                           0.95      1115\n",
            "   macro avg       0.96      0.82      0.87      1115\n",
            "weighted avg       0.95      0.95      0.94      1115\n",
            "\n",
            "Training Decision Tree...\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x600 with 1 Axes>"
            ],
            "image/png": "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7DPde++9qlKlig4dOqSZM2cqPDxcv/76q0JCQlS7dm1FRUXp2Wef1ZAhQ9S6dWtJcvu3PHbsmO644w716tVLDzzwgMqWLZvlfFOmTNHKlSsVERGh2NhYFSlSRDNnztTy5cs1b948hYSEZPm42rVra968eRo1apQqVKjg+pVCmTJllJSUpLZt22r37t165JFHVKVKFS1cuFD9+vXTiRMnNHLkSLd9zZkzR8nJyRoyZIicTqdKliyZo9f2Ur6+vurevbvee+89/frrr6pbt64kaejQoYqJiVH//v316KOPat++fZo+fbq2bt2qdevWuc4qxMTEaMCAAapbt67Gjh2rwMBAbd26VUuXLlWfPn2yPObXX3+t3r17q3379q6vie3bt2vdunWZnufFLszTrFkzRUdH69ChQ5oyZYrWrVunrVu3up2ZS09PV6dOndS8eXO99tpr+uabb/T666+ratWquXKmJavX/5dfflGrVq1Uvnx5PfXUU/Lx8dFHH32kbt266eOPP1b37t0lnT+zFR4eroMHD2ro0KGqVKmSvv/+e40dO1bx8fGaPHnyNc+HXFbQBYPr28mTJ40k07Vr1xxtHxcXZySZQYMGuS0fM2aMkWRWrlzpWhYaGmokmTVr1riWHT582DidTjN69GjXsot/+rlYTs9ATJo0yUgyR44cyXburM5ANGzY0AQFBZljx465lm3bts14eHiYvn37ZjregAED3PbZvXt3U6pUqWyPefHz8PHxMcYYc88995j27dsbY87/NBwcHGwmTpyY5WuQnJyc6Se3ffv2GafTaaKiolzLNm7cmOXZFWPOn2WQZGbMmJHluovPQBhjzLJly4wk8/zzz5u9e/caX19f061btys+R2OyPiMwefJkI8m8//77rmUpKSmmRYsWxtfX15w6dcr1vCQZf39/c/jw4as+3sUufF1c+El57dq1RpLbWQRjjFm6dKnb8hMnThg/Pz/TvHlzk5SU5LbtxWczLv36HDlypPH397/s2YBLz0CkpKSYoKAgU69ePbdjffXVV0aSefbZZ92OJ8nt394YYxo1amSaNGmS7TGzkt0ZiKxe//bt25v69eu7nWHMyMgwLVu2NNWrV3cte+6554yPj4/57bff3B7/1FNPmSJFipgDBw5YzYi8x7swcE1OnTolSfLz88vR9kuWLJEkRUZGui2/8FPnpddK1KlTx/VTsXT+p9KaNWtq7969Vz3zpS78hPb555/n+KK2+Ph4xcXFqV+/fm4/5d5000267bbbXM/zYsOGDXP7vHXr1jp27JjrNcyJPn36aPXq1UpISNDKlSuVkJCQ7U+0TqdTHh7nv8XT09N17Ngx+fr6qmbNmtqyZUuOj+l0OtW/f/8cbduxY0cNHTpUUVFR6tGjh4oVK6aZM2fm+FiXWrJkiYKDg9W7d2/XMk9PTz366KNKTEzUt99+67b93XffrTJlylz18S524UzW6dOnJUkLFy5UQECAbrvtNh09etT10aRJE/n6+mrVqlWSzp9JOH36tJ566qlM1ys4HI5sjxcYGKgzZ87o66+/zvGMmzZt0uHDh/Xwww+7Hatz586qVatWltceZfV1mFvfT5e+/sePH9fKlSvVs2dPnT592vWaHTt2TJ06ddKuXbt08OBBSedf39atW6tEiRJur2+HDh2Unp6uNWvW5MqMyD0EBK6Jv7+/pP/9R/ZKfv/9d3l4eKhatWpuy4ODgxUYGKjff//dbXmlSpUy7aNEiRL6+++/r3LizO677z61atVKgwYNUtmyZdWrVy999NFHl42JC3PWrFkz07ratWvr6NGjOnPmjNvyS59LiRIlJMnqudx5553y8/PTggULNH/+fDVr1izTa3lBRkaG60JAp9Op0qVLq0yZMvrxxx918uTJHB+zfPnyVhfCvfbaaypZsqTi4uI0depUBQUF5fixl/r9999VvXp1VwhdULt2bdf6i1WpUuWqj3WpxMRESf+L4127dunkyZMKCgpSmTJl3D4SExN1+PBhSeffzixJ9erVszreww8/rBo1auiOO+5QhQoVNGDAAC1duvSyj7nc12GtWrUyvT7FihXLFFi5+f106eu/e/duGWM0bty4TK/ZhXfbXHjddu3apaVLl2barkOHDm7bofDgGghcE39/f4WEhOjnn3+2etzlfhK7WJEiRbJcboy56mOkp6e7fe7t7a01a9Zo1apVWrx4sZYuXaoFCxbo1ltv1fLly7Odwda1PJcLnE6nevTooblz52rv3r2aMGFCttu++OKLGjdunAYMGKDnnntOJUuWlIeHhx577DGrtw96e3vneFtJ2rp1q+s/9j/99JPb2YO8Zjvr5Vz4mr4QaBkZGQoKCtL8+fOz3P5az3wEBQUpLi5Oy5Yt03//+1/997//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rBEQAADAGgEBAACsERAAAMAaAQEAAKwREAAAwBoBAQAArBEQAADAGgEBAACsERAAAMAaAQEAAKwREAAAwBoBAQAArBEQAADAGgEBAACsERAAAMAaAQEAAKwREAAAwBoBAQAArBEQAADAGgEBAACsERAAAMAaAQEAAKwREAAAwBoBAQAArBEQAADAGgEBAACsERAAAMAaAQEAAKwREAAAwBoBAQAArBEQAADAGgEBAACsERAAAMAaAQEAAKwREAAAwBoBAQAArBEQAADAGgEBAACsERAAAMAaAQEAAKwREAAAwJrDGGMKegjgcs6dO6fo6GiNHTtWTqezoMcBcBG+P29cBAQKvVOnTikgIEAnT56Uv79/QY8D4CJ8f964+BUGAACwRkAAAABrBAQAALBGQKDQczqdGj9+PBdoAYUQ3583Li6iBAAA1jgDAQAArBEQAADAGgEBAACsERAAAMAaAYFC7c0331TlypVVrFgxNW/eXBs2bCjokQBIWrNmje666y6FhITI4XDos88+K+iRkM8ICBRaCxYsUGRkpMaPH68tW7aoQYMG6tSpkw4fPlzQowE3vDNnzqhBgwZ68803C3oUFBDexolCq3nz5mrWrJmmT58uScrIyFDFihU1YsQIPfXUUwU8HYALHA6HPv30U3Xr1q2gR0E+4gwECqWUlBRt3rxZHTp0cC3z8PBQhw4dFBsbW4CTAQAkAgKF1NGjR5Wenq6yZcu6LS9btqwSEhIKaCoAwAUEBAAAsEZAoFAqXbq0ihQpokOHDrktP3TokIKDgwtoKgDABQQECiUvLy81adJEK1ascC3LyMjQihUr1KJFiwKcDAAgSUULegAgO5GRkYqIiFDTpk118803a/LkyTpz5oz69+9f0KMBN7zExETt3r3b9fm+ffsUFxenkiVLqlKlSgU4GfILb+NEoTZ9+nS9+uqrSkhIUMOGDTV16lQ1b968oMcCbnirV69Wu3btMi2PiIhQTExM/g+EfEdAAAAAa1wDAQAArBEQAADAGgEBAACsERAAAMAaAQEAAKwREAAAwBoBAQAArBEQAADAGgEBwKVfv37q1q2b6/O2bdvqsccey/c5Vq9eLYfDoRMnTuTZMS59rlcjP+YECisCAijk+vXrJ4fDIYfDIS8vL1WrVk1RUVFKS0vL82N/8skneu6553K0bX7/j2nlypU1efLkfDkWgMz4Y1rAdeD222/XnDlzdO7cOS1ZskTDhw+Xp6enxo4dm2nblJQUeXl55cpxS5YsmSv7AfDPwxkI4DrgdDoVHBys0NBQPfTQQ+rQoYO++OILSf87Ff/CCy8oJCRENWvWlCT98ccf6tmzpwIDA1WyZEl17dpV+/fvd+0zPT1dkZGRCgwMVKlSpfTEE0/o0j+Nc+mvMM6dO6cnn3xSFStWlNPpVLVq1fTee+9p//79rj+sVKJECTkcDvXr10/S+T/DHh0drSpVqsjb21sNGjTQokWL3I6zZMkS1ahRQ97e3mrXrp3bnFcjPT1dAwcOdB2zZs2amjJlSpbbTpw4UWXKlJG/v7+GDRumlJQU17qczA7cqDgDAVyHvL29dezYMdfnK1askL+/v77++mtJUmpqqjp16qQWLVpo7dq1Klq0qJ5//nndfvvt+vHHH+Xl5aXXX39dMTExmj17tmrXrq3XX39dn376qW699dZsj9u3b1/FxsZq6tSpatCggfbt26ejR4+qYsWK+vjjj3X33Xdr586d8vf3l7e3tyQpOjpa77//vmbMmKHq1atrzZo1euCBB1SmTBmFh4frjz/+UI8ePTR8+HANGTJEmzZt0ujRo6/p9cnIyFCFChW0cOFClSpVSt9//72GDBmicuXKqWfPnm6vW7FixbR69Wrt379f/fv3V6lSpfTCCy/kaHbghmYAFGoRERGma9euxhhjMjIyzNdff22cTqcZM2aMa33ZsmXNuXPnXI+ZN2+eqVmzpsnIyHAtO3funPH29jbLli0zxhhTrlw588orr7jWp6ammgoVKriOZYwx4eHhZuTIkcYYY3bu3Gkkma+//jrLOVetWmUkmb///tu1LDk52RQvXtx8//33btsOHDjQ9O7d2xhjzNixY02dOnXc1j/55JOZ9nWp0NBQM2nSpGzXX2r48OHm7rvvdn0eERFhSpYsac6cOeNa9vbbbxtfX1+Tnp6eo9mzes7AjYIzEMB14KuvvpKvr69SU1OVkZGhPn36aMKECa719evXd7vuYdu2bdq9e7f8/Pzc9pOcnKw9e/bo5MmTio+PV/PmzV3rihYtqqZNm2b6NcYFcXFxKlKkiNVP3rt379bZs2d12223uS1PSUlRo0aNJEnbt293m0OSWrRokeNjZOfNN9/U7NmzdeDAASUlJSklJUUNGzZ026ZBgwYqXry423ETExP1xx9/KDEx8YqzAzcyAgK4DrRr105vv/22vLy8FBISoqJF3b91fXx83D5PTExUkyZNNH/+/Ez7KlOmzFXNcOFXEjYSExMlSYsXL1b58uXd1jmdzquaIyf+85//aMyYMXr99dfVokUL+fn56dVXX9X69etzvI+Cmh24XhAQwHXAx8dH1apVy/H2jRs31oIFCxQUFCR/f/8stylXrpzWr1+vNm3aSJLS0tK0efNmNW7cOMvt69evr4yMDH377bfq0KFDpvUXzoCkp6e7ltWpU0dOp1MHDhzI9sxF7dq1XReEXvDDDz9c+Ulexrp169SyZUs9/PDDrmV79uzJtN22bduUlJTkiqMffvhBvr6+qlixokqWLHnF2YEbGe/CAP6B7r//fpUuXVpdu3bV2rVrtW/fPq1evVqPPvqo/vzzT0nSyJEj9dJLL+mzzz7Tjh079PDDD1/2Hg6VK1dWRESEBgwYoM8++8y1z48++kiSFBoaKofDoa+++kpHjhxRYmKi/Pz8NGbMGI0aNUpz587Vnj17tGXLFk2bNk1z586VJA0bNky7du3S448/rp07d+qDDz5QTExMjp7nwYMHFRcX5/bx999/q3r16tq0aZOWLVum3377TePGjdPGjRszPT4lJUUDBw7Ur7/+qiVLlmj8+PF65JFH5OHhkaPZgRtaQV+EAeDyLr6I0mZ9fHy86du3ryldurRxOp0mLCzMDB482Jw8edIYc/6iyZEjRxp/f38TGBhoIiMjTd++fbO9iNIYY5KSksyoUaNMuXLljJeXl6lWrZqZPXu2a31UVJQJDg42DofDREREGGPOX/g5efJkU7NmTePp6WnKlCljOnXqZL799lvX47788ktTrVo143Q6TevWrc3s2bNzdBGlpEwf8+bNM8nJyaZfv34mICDABAYGmoceesg89dRTpkGDBplet2effdaUKlXK+Pr6msGDB5vk5GTXNleanYsocSNzGJPNFVMAAADZ4FcYAADAGgEBAACsERAAAMAaAQEAAKwREAAAwBoBAQAArBEQAADAGgEBAACsERAAAMAaAQEAAKwREAAAwNr/Bz8EHSeRTDKhAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Model: Decision Tree\n",
            "Accuracy: 0.9650\n",
            "Precision: 0.9645\n",
            "Recall: 0.9650\n",
            "F1 Score: 0.9647\n",
            "Classification Report:\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "           0       0.98      0.98      0.98       965\n",
            "           1       0.89      0.85      0.87       150\n",
            "\n",
            "    accuracy                           0.97      1115\n",
            "   macro avg       0.93      0.92      0.92      1115\n",
            "weighted avg       0.96      0.97      0.96      1115\n",
            "\n",
            "Training Random Forest...\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x600 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhAAAAIjCAYAAABS7iKKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAANwZJREFUeJzt3XmcjXX/x/H3mTHOjFkxw8xEM7ZsCVFiyhAR5Sap5JYZa9xIxrjlliwpsosWLeKWuluU7qJSpBJZs5R1rCX7PpjFzPf3h8ecn2Ms56sZZ9xez8djHo/mOte5zuecOZPXXOe6znEYY4wAAAAs+Hh7AAAAcP0hIAAAgDUCAgAAWCMgAACANQICAABYIyAAAIA1AgIAAFgjIAAAgDUCAgAAWCMgcN3YunWrmjRpotDQUDkcDs2ZMydPt79z5045HA5Nnz49T7d7PWvQoIEaNGiQZ9tLTU1Vly5dFBkZKYfDoaeffjrPtn294HmG/xUEBKxs27ZNTz75pMqWLSt/f3+FhIQoLi5OkyZN0pkzZ/L1thMSErR+/Xq98MILmjlzpmrXrp2vt3ctJSYmyuFwKCQk5KKP49atW+VwOORwODR27Fjr7f/5558aOnSo1qxZkwfTXr0XX3xR06dPV48ePTRz5kw98cQT+Xp7sbGxrsfN4XAoMDBQd955p/7973/n6+1eby58nM7/SktL8/Z4uSxZskRDhw7VsWPHvD3KDa2QtwfA9WPu3Ll65JFH5HQ61aFDB916663KyMjQ4sWL1b9/f/32229644038uW2z5w5o6VLl2rQoEHq1atXvtxGTEyMzpw5Iz8/v3zZ/pUUKlRIp0+f1ueff65HH33U7bJZs2bJ39//qv9n/ueff2rYsGGKjY1VjRo1PL7e/Pnzr+r2LmXhwoW66667NGTIkDzd7uXUqFFD/fr1kyTt3btXb731lhISEpSenq6uXbteszkKuvMfp/MVLlzYC9Nc3pIlSzRs2DAlJiYqLCzM2+PcsAgIeGTHjh1q27atYmJitHDhQkVFRbku69mzp1JSUjR37tx8u/2DBw9KUr7+z8LhcMjf3z/ftn8lTqdTcXFxev/993MFxHvvvacHHnhAs2fPviaznD59WkWKFMnzfzwOHDigKlWq5Nn2zp49q+zs7MvOedNNN6l9+/au7xMTE1W2bFlNmDCBgDjPhY9TXsnOzlZGRoZXf7eQP3gJAx4ZPXq0UlNT9fbbb7vFQ47y5curT58+ru/Pnj2r559/XuXKlZPT6VRsbKz+9a9/KT093e16sbGxevDBB7V48WLdeeed8vf3V9myZd12MQ8dOlQxMTGSpP79+8vhcCg2NlbSuX8Mcv77fEOHDpXD4XBb9s033+juu+9WWFiYgoKCVLFiRf3rX/9yXX6p16YXLlyoe+65R4GBgQoLC1PLli21cePGi95eSkqK66+i0NBQdezYUadPn770A3uBdu3a6csvv3TbNbtixQpt3bpV7dq1y7X+kSNHlJycrGrVqikoKEghISFq1qyZ1q5d61pn0aJFuuOOOyRJHTt2dO2azrmfDRo00K233qpVq1apfv36KlKkiOtxufAYiISEBPn7++e6/02bNlXRokX1559/XvR+LVq0SA6HQzt27NDcuXNdM+zcuVPSubDo3LmzSpYsKX9/f1WvXl0zZsxw20bOz2fs2LGaOHGi67m1YcMGjx7bHBEREapUqZK2bdvmtvzHH3/UI488optvvllOp1OlS5dW3759c72klJiYqKCgIO3Zs0etWrVSUFCQIiIilJycrKysLLd1jx07psTERIWGhiosLEwJCQmX3O1u8zzbsmWL2rdvr9DQUEVERGjw4MEyxuj3339Xy5YtFRISosjISI0bN87qsbmcU6dOqV+/fipdurScTqcqVqyosWPH6sIPdHY4HOrVq5dmzZqlqlWryul06quvvpIk7dmzR506dVLJkiXldDpVtWpVTZs2LddtTZ48WVWrVlWRIkVUtGhR1a5dW++9957rMejfv78kqUyZMrmeS7h22AMBj3z++ecqW7as6tWr59H6Xbp00YwZM9SmTRv169dPy5Yt08iRI7Vx40Z9+umnbuumpKSoTZs26ty5sxISEjRt2jQlJiaqVq1aqlq1qlq3bq2wsDD17dtXjz/+uJo3b66goCCr+X/77Tc9+OCDuu222zR8+HA5nU6lpKTop59+uuz1vv32WzVr1kxly5bV0KFDdebMGU2ePFlxcXFavXp1rnh59NFHVaZMGY0cOVKrV6/WW2+9pRIlSuill17yaM7WrVure/fu+uSTT9SpUydJ5/Y+VKpUSbfffnuu9bdv3645c+bokUceUZkyZbR//35NnTpV8fHx2rBhg6Kjo1W5cmUNHz5czz33nLp166Z7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6quv9MEHH+jee+/V/PnzLzmDrb9yX3I4nU61bt1aM2bM0Pbt2zV06NBLrvviiy9q8ODB6tSpk55//nkVK1ZMPj4+evrppz3e0yK5//XtiV9++cX1P/z169e77T3Ib7az5vzDKJ072LNSpUp68MEHNWnSJNdesqysLN133306cuSIBgwYoEqVKikwMFB79uxRYmJirscyr54vV+tit58Xz728cuHPKOfxa9++/UWPAZHO7XGRzkXJ5s2b9cUXX+irr77S7Nmz9eqrr+q5557TsGHD8ndwWCEg4JEHH3xQb7zxhpYuXaq6detedt2YmBhlZ2dr69atrr9QJGn//v06duyY64yKvFC0aNGLHtV+4V9EkuTj46NGjRqpUaNGGj9+vF588UUNGjRI3333nesfmAvvhyRt3rw512WbNm1SeHi4AgMD//qduIh27dpp2rRp8vHxUdu2bS+53scff6yGDRvq7bffdlt+7Ngxt79GPY05T5w6dUodO3ZUlSpVVK9ePY0ePVoPPfSQ60wPWzExMVq3bp2ys7Pd9kJs2rTJdXleeuCBBxQfH68XX3xRTz75pAIDA7V+/Xpt2bJFM2bMcO22l86duXO1YmJitGDBAqWmprrthbjw+eTN55mnYmJi9O233+rkyZNueyE8/RlFREQoODhYWVlZF/1du1BgYKAee+wxPfbYY8rIyFDr1q31wgsvaODAgfL398/T5zOuHi9hwCP//Oc/FRgYqC5dumj//v25Lt+2bZsmTZok6dwueEmaOHGi2zrjx4+XdO5/4HmlXLlyOn78uNatW+datnfv3lxnehw5ciTXdXPeUOnCU0tzREVFqUaNGpoxY4ZbpPz666+aP3++637mh4YNG+r555/XlClTFBkZecn1fH19c/2F+dFHH2nPnj1uy3L+AcqLd+4bMGCAdu/erRkzZmj8+PGKjY11vTHT1WjevLn27dunDz74wLXs7Nmzmjx5soKCglwvI+SlAQMG6PDhw3rzzTcl/f9f7+c/lsYY13P6ajRv3lxnz57Va6+95lqWlZWlyZMnu63nzeeZp5o3b66srCxNmTLFbfmECRPkcDjUrFmzy17f19dXDz/8sGbPnn3RPZk57/MinTsj6HyFCxdWlSpVZIxRZmampLx9PuPqsQcCHilXrpzee+891+lj578T5ZIlS1yn3UlS9erVlZCQoDfe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AABwnbE+iPLkyZN64oknFB0drfj4eMXHxys6Olrt27fX8ePH82NGAABQwFgHRJcuXbRs2TLNnTtXx44d07Fjx/TFF19o5cqVevLJJ/NjRgAAUMBYHwMRGBior7/+Wnfffbfb8h9//FH3339/gXgvCI6BAAo2joEACi5Pj4Gw3gNRvHhxhYaG5loeGhqqokWL2m4OAABch6wD4tlnn1VSUpL27dvnWrZv3z71799fgwcPztPhAABAweTRjoqaNWvK4XC4vt+6datuvvlm3XzzzZKk3bt3y+l06uDBgxwHAQDADcCjgGjVqlU+jwEAAK4nf+mNpAoqDqIECjYOogQKrnw7iBIAAMD6nSizsrI0YcIEffjhh9q9e7cyMjLcLj9y5EieDQcAAAom6z0Qw4YN0/jx4/XYY4/p+PHjSkpKUuvWreXj46OhQ4fmw4gAAKCgsQ6IWbNm6c0331S/fv1UqFAhPf7443rrrbf03HPP6eeff86PGQEAQAFjHRD79u1TtWrVJElBQUGuz7948MEHNXfu3LydDgAAFEjWAVGqVCnt3btXklSuXDnNnz9fkrRixQo5nc68nQ4AABRI1gHx0EMPacGCBZKk3r17a/DgwapQoYI6dOigTp065fmAAACg4PnL7wPx888/a8mSJapQoYJatGiRV3P9JbwPBFCw8T4QQMF1zd4H4q677lJSUpLq1KmjF1988a9uDgAAXAfy7I2k9u7dy4dpAQBwg+CdKAEAgDUCAgAAWCMgAACANY8/CyMpKemylx88ePAvD5NXDix92dsjALiMfcfSvD0CgEuIDff3aD2PA+KXX3654jr169f3dHMAAOA69pffB6IgOpmW7e0RAFzG4dSMK68EwCs83QPBMRAAAMAaAQEAAKwREAAAwBoBAQAArBEQAADA2lUFxI8//qj27durbt262rNnjyRp5syZWrx4cZ4OBwAACibrgJg9e7aaNm2qgIAA/fLLL0pPT5ckHT9+nE/jBADgBmEdECNGjNDrr7+uN998U35+fq7lcXFxWr16dZ4OBwAACibrgNi8efNF33EyNDRUx44dy4uZAABAAWcdEJGRkUpJScm1fPHixSpbtmyeDAUAAAo264Do2rWr+vTpo2XLlsnhcOjPP//UrFmzlJycrB49euTHjAAAoIDx+MO0cjzzzDPKzs5Wo0aNdPr0adWvX19O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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Model: Random Forest\n",
            "Accuracy: 0.9722\n",
            "Precision: 0.9728\n",
            "Recall: 0.9722\n",
            "F1 Score: 0.9709\n",
            "Classification Report:\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "           0       0.97      1.00      0.98       965\n",
            "           1       0.99      0.80      0.89       150\n",
            "\n",
            "    accuracy                           0.97      1115\n",
            "   macro avg       0.98      0.90      0.93      1115\n",
            "weighted avg       0.97      0.97      0.97      1115\n",
            "\n",
            "Training Support Vector Machine...\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x600 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhAAAAIjCAYAAABS7iKKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAO6VJREFUeJzt3X98zfX///H72Wxns99szND8zJvIrySJEaEf8qMSkpEfKZWMfqi3sERv+TGhlBLvhbf07icVJaKoqEZ9lIah/P45zWxje37/8N15O7axJ5sduV0vF5eL83w9z+v1eL12Xufcz+v1fL2OwxhjBAAAYMGrpAsAAACXHwIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIE8pWcnKx27dopJCREDodDH3zwQZHOf/v27XI4HJozZ06Rzvdy1qpVK7Vq1arI5peWlqb+/fsrMjJSDodDjz/+eJHNG/BUc+bMkcPh0Pr168/bt6j3uSsNAcKDbd26VQ8++KCqVasmPz8/BQcHq3nz5po6dapOnDhRrMuOjY3Vzz//rBdeeEGJiYm67rrrinV5l1KfPn3kcDgUHByc73ZMTk6Ww+GQw+HQxIkTree/e/dujR49WklJSUVQ7YUbN26c5syZo4ceekiJiYm6//77i3V5WVlZmjp1qho2bKjg4GCFhobqmmuu0cCBA/Xbb78V67IvtXHjxhUqVE+ePFkOh0NffPFFgX1mzZolh8Ohjz76qAgrlObPn6+EhIQinef5VKlSRQ6HQ23bts13eu66FvYDHh7OwCMtXrzY+Pv7m9DQUPPYY4+Z119/3UyfPt10797d+Pj4mAEDBhTbstPT040k8+yzzxbbMnJycsyJEyfMqVOnim0ZBYmNjTWlSpUy3t7eZuHChXmmjxo1yvj5+RlJ5qWXXrKe/7p164wk89Zbb1k9LzMz02RmZlovryBNmzY1zZs3L7L5nc8dd9xhvL29Ta9evcyMGTNMQkKCGTRokKlUqZL1tvB0AQEBJjY29rz9du3aZby8vEzfvn0L7NOqVStTtmxZk5WVVYQVGnP77beb6OjoIp3n+URHRxs/Pz/j5eVl9uzZk2d6TEyMa99at25dsdTw1ltvFXr+Rb3PXWk4AuGBUlJS1L17d0VHR2vTpk2aOnWqBgwYoMGDB2vBggXatGmTrrnmmmJb/oEDByRJoaGhxbYMh8MhPz8/eXt7F9syzsXpdKpNmzZasGBBnmnz58/X7bfffslqSU9PlyT5+vrK19e3yOa7f//+Iv0bnjp1SllZWflOW7dunRYvXqz4+HglJibq4Ycf1pAhQ/Tqq69q+/bt6tixY5HVUVKMMdZH/qKiotS6dWu99957yszMzDN9165dWrVqle655x75+PgUVanF5lyvgVzNmzdXYGCgFi5c6Nb+559/avXq1Zd03zqfot7nrjQECA80YcIEpaWl6c0331SFChXyTK9Ro4aGDBnienzq1Ck9//zzql69upxOp6pUqaJnnnkmzxtWlSpVdMcdd+jrr7/W9ddfLz8/P1WrVk3//ve/XX1Gjx6t6OhoSdITTzwhh8OhKlWqSDp96D/3/2caPXq0HA6HW9vnn3+um266SaGhoQoMDFStWrX0zDPPuKYXNAbiyy+/VIsWLRQQEKDQ0FB16tRJv/76a77L27Jli/r06aPQ0FCFhISob9++rg/jwujZs6c+/fRTHT161NW2bt06JScnq2fPnnn6Hz58WMOHD1e9evUUGBio4OBg3XrrrdqwYYOrz8qVK9WkSRNJUt++fV2Ha3PXs1WrVqpbt65++OEHtWzZUqVLl3Ztl7PPx8bGxsrPzy/P+rdv315hYWHavXt3vuu1cuVKORwOpaSkaMmSJa4atm/fLul0sOjXr5/Kly8vPz8/1a9fX3PnznWbR+7fZ+LEiUpISHC9tjZt2pTvMrdu3Srp9IfH2by9vVW2bFnXY5vXkcPh0COPPKJ58+apVq1a8vPzU+PGjbVq1ap8n/vbb7+pW7duCg4OVtmyZTVkyBBlZGS49bXdX5YuXarrrrtO/v7+eu211+RwOHT8+HHNnTvXtW379OmT73aRpF69eik1NVVLlizJM+0///mPcnJydN9990mScnJylJCQoGuuuUZ+fn4qX768HnzwQR05ciTPcz/99FPFxMQoKChIwcHBatKkiebPny/p9GtpyZIl2rFjh6vGM7d5cbwGcvn5+alr166uWnItWLBAYWFhat++fZ7nbNy4UX369HGdro2MjNQDDzygQ4cO5em7a9cu9evXT1FRUXI6napataoeeuihPMEmMzNTcXFxioiIUEBAgLp06eL6cpTr7H0ud99555139MILL6hSpUry8/NTmzZttGXLljy1fPfdd+rQoYNCQkJUunRpxcTE6Jtvvjnn9vlbKelDIMirYsWKplq1aoXuHxsbaySZu+++28yYMcP07t3bSDKdO3d26xcdHW1q1aplypcvb5555hkzffp006hRI+NwOMwvv/xijDFmw4YNZsqUKUaS6dGjh0lMTDTvv/++azn5HRIdNWqUOfOl9MsvvxhfX19z3XXXmalTp5qZM2ea4cOHm5YtW7r6pKSk5DnM//nnn5tSpUqZq6++2kyYMMGMGTPGhIeHm7CwMJOSkpJneQ0bNjRdu3Y1r7zyiunfv7+RZJ588slCba+AgABz7Ngx4+fnZ958803XtMcff9z84x//cNV35imMdevWmerVq5unn37avPbaayY+Pt5UrFjRhISEmF27dhljjNm7d6+Jj483kszAgQNNYmKiSUxMNFu3bjXGnD6EGxkZaSIiIsyjjz5qXnvtNfPBBx+4psXExLiWd+TIEVOpUiXTpEkT16memTNnGkkmMTGxwPXbu3evSUxMNOHh4aZBgwauGtLS0kx6erqpXbu28fHxMUOHDjUvv/yyadGihZFkEhIS8vx96tSpY6pVq2ZefPFFM2XKFLNjx458l7lmzRojyQwYMMCcPHnyvNu/MK8jY4yRZOrWrWvCw8NNfHy8+de//mWio6ONv7+/+fnnn/M8t169eqZjx45m+vTpplevXkaSuf/++/Msv7D7S40aNUxYWJh5+umnzcyZM82KFStMYmKicTqdpkWLFq5tu2bNmgLXNzU11fj5+Zm77rorz7RGjRqZ6Ohok5OTY4wxpn///qZUqVJmwIABZubMmeapp54yAQEBpkmTJm6nON566y3jcDhM3bp1zQsvvGBmzJhh+vfv71rXZcuWmQYNGpjw8HBXjbn7cXG9BnK32e23326WLVtmJJktW7a4pjVo0MA8+OCD+Z5imDhxomnRooWJj483r7/+uhkyZIjx9/c3119/vWvbGHP6lFBUVJQpXbq0efzxx83MmTPNyJEjTe3atc2RI0dc2yb3/eHmm28206ZNM8OGDTPe3t6mW7dubvWevc+tWLHC9dzGjRubKVOmmNGjR5vSpUub66+/3u25y5cvN76+vqZZs2Zm0qRJZsqUKebaa681vr6+5rvvvitwG/2dECA8TGpqqpFkOnXqVKj+SUlJRpLp37+/W/vw4cONJPPll1+62qKj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Z599VitWrMj3JjO5dW7evDnPtN9++03h4eEKCAi4+JXIR8+ePTV79mx5eXmpe/fuBfZ799131bp1a7355ptu7UePHlV4eLjrcWE/nArj+PHj6tu3r+rUqaMbb7xREyZMUJcuXVxXetiKjo7Wxo0blZOT4/YNNPdGT0X5epFOf3Bee+21Sk5O1sGDBxUZGWn1OpL+923vTL///rtKly6d50M1OTnZ7Rvzli1blJOT47oCoaj2lwv5G993332aOXOmFi5cqJSUFDkcDrcwWL16dX3xxRdq3rz5OT+0q1evLkn65ZdfCjxadq4aL+VroEePHho7dqxq165d4AftkSNHtHz5co0ZM0bPPfecq/3sv3tERISCg4Otv1wVh9y/QXBwcIE3zboScArDAz355JMKCAhQ//79tW/fvjzTt27dqqlTp0o6fQheUp47zk2ePFmSivSa6+rVqys1NVUbN250te3Zs0fvv/++W7/Dhw/neW7um0d+18JLp7+xNmjQQHPnznX7cPnll1+0bNky13oWh9atW+v555/X9OnTFRkZWWA/b2/vPN9eFi1apF27drm15Qadiznvn+upp57Szp07NXfuXE2ePFlVqlRRbGxsgdvxfG677Tbt3bvX7Rr9U6dOadq0aQoMDFRMTMwFzTc5OVk7d+7M03706FGtXbtWYWFhrg/7wr6Ocq1du9ZtjMkff/yhDz/8UO3atcvzTXHGjBluj6dNmybp9CkEqej2l4CAAOu/b/PmzVWlShW9/fbbWrhwoWJiYlSpUiXX9G7duik7O1vPP/98nueeOnXKtbx27dopKChI48ePz3OJ6pmvz4CAgHwPoxfXayA//fv316hRozRp0qQC++T+Dc/et87+G3l5ealz5876+OOP872Lpc2Rx4vVuHFjVa9eXRMnTlRaWlqe6WefWvu74giEB6pevbrmz5+ve++9V7Vr11bv3r1Vt25dZWVlac2aNVq0aJHruvP69esrNjZWr7/+uo4ePaqYmBh9//33mjt3rjp37qzWrVsXWV3du3fXU089pS5duuixxx5Tenq6Xn31VV199dVub/Dx8fFatWqVbr/9dkVHR2v//v165ZVXVKlSJd10000Fzv+ll17SrbfeqmbNmqlfv346ceKEpk2bppCQkHOeWrhYXl5e+uc//3nefnfccYfi4+PVt29f3Xjjjfr55581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awQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANZKFabTxo0bCz3Da6+99oKLAQAAl4dCBYgGDRrI4XDIGJPv9NxpDodD2dnZRVogAADwPIUKECkpKcVdBwAAuIwUKkBER0cXdx0AAOAyckGDKBMTE9W8eXNFRUVpx44dkqSEhAR9+OGHRVocAADwTNYB4tVXX1VcXJxuu+02HT161DXmITQ0VAkJCUVdHwAA8EDWAWLatGmaNWuWnn32WXl7e7var7vuOv38889FWhwAAPBM1gEiJSVFDRs2zNPudDp1/PjxIikKAAB4NusAUbVqVSUlJeVp/+yzz1S7du2iqAkAAHi4Ql2Fcaa4uDgNHjxYGRkZMsbo+++/14IFCzR+/Hi98cYbxVEjAADwMNYBon///vL399c///lPpaenq2fPnoqKitLUqVPVvXv34qgRAAB4GIcp6PaShZCenq60tDSVK1euKGu6aP4NHynpEgCcw5F100u6BAAF8CvkoQXrIxC59u/fr82bN0s6fSvriIiIC50VAAC4zFgPovzrr790//33KyoqSjExMYqJiVFUVJR69eql1NTU4qgRAAB4GOsA0b9/f3333XdasmSJjh49qqNHj2rx4sVav369HnzwweKoEQAAeBjrMRABAQFaunSpbrrpJrf21atXq0OHDh5xLwjGQACejTEQgOcq7BgI6yMQZcuWVUhISJ72kJAQhYWF2c4OAABchqwDxD//+U/FxcVp7969rra9e/fqiSee0MiRI4u0OAAA4JkKdaCiYcOGcjgcrsfJycm66qqrdNVVV0mSdu7cKafTqQMHDjAOAgCAK0ChAkTnzp2LuQwAAHA5uagbSXkqBlECno1BlIDnKrZBlAAAANZ3oszOztaUKVP0zjvvaOfOncrKynKbfvjw4SIrDgAAeCbrIxBjxozR5MmTde+99yo1NVVxcXHq2rWrvLy8NHr06GIoEQAAeBrrADFv3jzNmjVLw4YNU6lSpdSjRw+98cYbeu655/Ttt98WR40AAMDDWAeIvXv3ql69epKkwMBA1+9f3HHHHVqyZEnRVgcAADySdYCoVKmS9uzZI0mqXr26li1bJklat26dnE5n0VYHAAA8knWA6NKli5YvXy5JevTRRzVy5EjVrFlTvXv31gMPPFDkBQIAAM9z0feB+Pbbb7VmzRrVrFlTHTt2LKq6Lgr3gQA8G/eBADzXJbsPxA033KC4uDg1bdpU48aNu9jZAQCAy0CR3Uhqz549/JgWAABXCO5ECQAArBEgAACANQIEAACwVujfwoiLizvn9AMHDlx0MUVl/9qXS7oEAOew92hGSZcAoABVwv0K1a/QAeKnn346b5+WLVsWdnYAAOAydtH3gfBEf2XklHQJAM7hUFrW+TsBKBGFPQLBGAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1i4oQKxevVq9evVSs2bNtGvXLklSYmKivv766yItDgAAeCbrAPHf//5X7du3l7+/v3766SdlZmZKklJTU/k1TgAArhDWAWLs2LGaOXOmZs2aJR8fH1d78+bN9eOPPxZpcQAAwDNZB4jNmzfne8fJkJAQHT16tChqAgAAHs46QERGRmrLli152r/++mtVq1atSIoCAACezTpADBgwQEOGDNF3330nh8Oh3bt3a968eRo+fLgeeuih4qgRAAB4mEL/mFaup59+Wjk5OWrTpo3S09PVsmVLOZ1ODR8+XI8++mhx1AgAADzMBf+YVlZWlrZs2aK0tDTVqVNHgYGBRV3bBePHtADPxo9pAZ6rsD+mxa9xArjkCBCA5ypsgLA+hdG6dWs5HI4Cp3/55Ze2swQAAJcZ6wDRoEEDt8cnT55UUlKSfvnlF8XGxhZVXQAAwINZB4gpU6bk2z569GilpaVddEEAAMDzFdkYiC1btuj666/X4cOHi2J2F4UxEIBnYwwE4LkKOwaiyH6Nc+3atfLzK9xCAQDA5c36FEbXrl3dHhtjtGfPHq1fv14jR44sssIAAIDnsg4QISEhbo+9vLxUq1YtxcfHq127dkVWGAAA8FxWASI7O1t9+/ZVvXr1FBYWVlw1AQAAD2c1BsLb21vt2rXjVzcBALjCWQ+irFu3rrZt21YctQAAgMuEdYAYO3ashg8frsWLF2vPnj06duyY2z8AAPD3V+j7QMTHx2vYsGEKCgr635PPuKW1MUYOh0PZ2dlFX6Ul7gMBeDbuAwF4riL/MS1vb2/t2bNHv/766zn7xcTEFGrBxYkAAXg2AgTguYr8x7Ryc4YnBAQAAFCyrMZAnOtXOAEAwJXD6j4QV1999XlDhCf8FgYAACheVgFizJgxee5ECQAArjyFHkTp5eWlvXv3qly5csVd00VjECXg2RhECXiuIv81TsY/AACAXIUOEIU8UAEAAK4AhR4DkZPDaQEAAHCa9a2sAQAACBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwRoAAAADWCBAAAMAaAQIAAFgjQAAAAGsECAAAYI0AAQAArBEgAACANQIEAACwVqqkCwAk6a03X9eK5Z9re8o2OZ1+urZBQz36+DBVqVLV1efPP3YqYdIEJSX9qJNZWWrWvIWeePpZlS0bXoKVA38/Pyf9oEXz5yj5t191+NABjRo/RTe2vFmSdOrUSc15fbrWrf1ae3b/qYCAIDVs0lT9Bg1R2YhyrnnMnztL369ZrW3Jm1XKx0fvLf26pFYHxYQjEPAIP65fp3vu7am3Ev+jGa+9qVOnTuqRQf10Ij1dknQiPV2DB/WXw+HQzFlz9Obc+Tp58qSGPvqwcnJySrh64O8l48QJVatRS48MG5FnWmZGhrZs/k09+wzUjNkL9dy4yfpz53aNemqIW79TJ0+qZetbdHuXey5V2bjEHMYYU9JFFLW/MvhAudwdOXxYt7Rurtdn/1uNGjfRt2u+0WODB+rL1d8pMDBQkpT2119q3aKpps98Q01vuLGEK4aNQ2lZJV0CCql98/puRyDys/nXX/RY//uU+N/PVC6ygtu0ZUs+1MyXX+IIxGWkSrhfofpxBAIeKS3tL0lScHCIJCkrK0sOh0O+vr6uPr5Op7y8vJT0048lUiOA046npcnhcCggKKikS8El5NEB4o8//tADDzxwzj6ZmZk6duyY27/MzMxLVCGKQ05OjiZNGK/6DRqpRs2rJUn1rq0vP39/TUuYqIwTJ3QiPV0JkyYoOztbBw8cKOGKgStXVmam3nw1Qa3a3qqAgMCSLgeXkEcHiMOHD2vu3Lnn7DN+/HiFhIS4/Zv00ouXqEIUh3+Ni9fWrckaN2GSqy2sTBn966UErfpqpVo0a6xWN12vv/46pn/UriMvL0cJVgtcuU6dOqkXRj4hGaNHn3i2pMvBJVaiV2F89NFH55y+bdu2885jxIgRiouLc2vLMj4XVRdKzr/GPa+vV32l12cnqnz5SLdpN9zYXB8uWaajR47I29tbQcHBan9zC1WsVLmEqgWuXLnhYd++PZrw8iyOPlyBSjRAdO7cWQ6HQ+cax+lwnPvbpdPplNPpdGtjEOXlxxijCePHauWXX+i1N+eqYqVKBfYNDQuTJK377lsdPnxILVsVPLgLQNHLDQ+7/tipCdPeUHBIaEmXhBJQogGiQoUKeuWVV9SpU6d8pyclJalx48aXuCqUhH+Ni9dnny7RpITpKh0QoIMHT49rCAwMkp/f6RHBH33wnqpWq6awsDLauCFJkyaMU89esW73igBw8U6kp2v3nztdj/fu3qWtv/+moOAQlQkP1/PPDteW339V/IRpysnJ0eFDByVJQcEh8vE5fQR4/949+utYqvbv26Oc7Gxt/f03SVJUpavkX7r0pV8pFLkSvYzzzjvvVIMGDRQfH5/v9A0bNqhhw4bW1/lzBOLyc1392vm2j4ofp46dukiSpiVM0uKPPlBqaqqioqLU9Z7uuu/+2PMepYLn4TJOz7bhx3V68tH+edpvufVO9eo3SLF335bv8yZMe0P1GzWRJE0cO1Kff5r3NPWZfeCZCnsZZ4kGiNWrV+v48ePq0KFDvtOPHz+u9evXKyYmxmq+BAjAsxEgAM91WQSI4kKAADwbAQLwXNxICgAAFBsCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYI0AAAABrBAgAAGCNAAEAAKwRIAAAgDUCBAAAsEaAAAAA1ggQAADAGgECAABYcxhjTEkXAZxLZmamxo8frxEjRsjpdJZ0OQDOwP555SJAwOMdO3ZMISEhSk1NVXBwcEmXA+AM7J9XLk5hAAAAawQIAABgjQABAACsESDg8ZxOp0aNGsUALcADsX9euRhECQAArHEEAgAAWCNAAAAAawQIAABgjQABAACsESDg0WbMmKEqVarIz89PTZs21ffff1/SJQGQtGrVKnXs2FFRUVFyOBz64IMPSrokXGIECHishQsXKi4uTqNGjdKPP/6o+vXrq3379tq/f39JlwZc8Y4fP6769etrxowZJV0KSgiXccJjNW3aVE2aNNH06dMlSTk5OapcubIeffRRPf300yVcHYBcDodD77//vjp37lzSpeAS4ggEPFJWVpZ++OEHtW3b1tXm5eWltm3bau3atSVYGQBAIkDAQx08eFDZ2dkqX768W3v58uW1d+/eEqoKAJCLAAEAAKwRIOCRwsPD5e3trX379rm179u3T5GRkSVUFQAgFwECHsnX11eNGzfW8uXLXW05OTlavny5mjVrVoKVAQAkqVRJFwAUJC4uTrGxsbruuut0/fXXKyEhQcePH1ffvn1LujTgipeWlqYtW7a4HqekpCgpKUllypTRVVddVYKV4VLhMk54tOnTp+ull17S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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Model: Support Vector Machine\n",
            "Accuracy: 0.9722\n",
            "Precision: 0.9725\n",
            "Recall: 0.9722\n",
            "F1 Score: 0.9710\n",
            "Classification Report:\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "           0       0.97      1.00      0.98       965\n",
            "           1       0.98      0.81      0.89       150\n",
            "\n",
            "    accuracy                           0.97      1115\n",
            "   macro avg       0.98      0.90      0.94      1115\n",
            "weighted avg       0.97      0.97      0.97      1115\n",
            "\n",
            "Training K-Nearest Neighbors...\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x600 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhAAAAIjCAYAAABS7iKKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOvRJREFUeJzt3Xt8z/X///H7e2PvLbPNDg4LcxhyJkqIEYVSDkn4yOaUhJwrnxJT0dmxIlJaOspHQlEOSS1CDqWDoRSGYWOMsT1/f/jt/fW2jT3ZbLhdL5f35eL9ej1fr9fj9d779XJ/P9/P1+vtMMYYAQAAWPDI7wIAAMDVhwABAACsESAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQCBXLV9+3bddddd8vf3l8Ph0IIFC3J1/X/99ZccDofefffdXF3v1axZs2Zq1qxZrq0vOTlZffr0UcmSJeVwODRkyJBcWzeufg6HQ2PHjr3kZQcOHHjRdmPHjpXD4VBCQsIlbQdXBgHiGrRjxw7169dPFSpUkLe3t/z8/NS4cWNNnjxZKSkpebrtyMhIbd26Vc8//7xiYmJUv379PN3elRQVFSWHwyE/P78sX8ft27fL4XDI4XDolVdesV7/3r17NXbsWG3atCkXqr1048eP17vvvqv+/fsrJiZGDz30UJ5ur1y5cmrbtm2m6TExMfL09FTr1q118uTJbJd1OBwaNGhQpnmrVq2Sw+HQvHnzcr3mK23JkiVW/2k3a9ZMDodD9957b6Z5GSH8Ut6jwLkK5XcByF2LFy/WAw88IKfTqR49eqhGjRpKTU3VmjVrNHLkSP36669666238mTbKSkpio2N1VNPPZWjTxmXIiwsTCkpKSpcuHCerP9iChUqpBMnTuiLL75Q586d3ebNnTtX3t7e2f5ndzF79+5VdHS0ypUrpzp16uR4uWXLll3S9rKzYsUK3XbbbRozZkyurtfG3LlzFRUVpZYtW2rBggXy9va+YPuZM2dq1KhRCg0NvUIVXllLlizR66+/bv3Jf9GiRdqwYYPq1auXa7WkpKSoUCH+6wA9ENeUXbt2qUuXLgoLC9O2bds0efJk9e3bVwMGDNCHH36obdu2qXr16nm2/YMHD0qSAgIC8mwbDodD3t7e8vT0zLNtXIjT6VSLFi304YcfZpr3wQcf6J577rlitZw4cUKS5OXlJS8vr1xb74EDB3L1b3jmzBmlpqbmuP1HH32kyMhI3XHHHfr8888vGh6qV6+utLQ0vfDCC5dbaq6w3d+8UrZsWRUrVkzR0dG5ul5vb+9rIkAYY/K8R/ZaR4C4hrz00ktKTk7W22+/rVKlSmWaHx4ersGDB7uenzlzRs8++6wqVqwop9OpcuXK6b///a9OnTrltlxGF/OaNWt06623ytvbWxUqVNB7773najN27FiFhYVJkkaOHCmHw6Fy5cpJOtv1n/Hvc2V8z3mur7/+WrfffrsCAgLk6+urKlWq6L///a9rfnZjIFasWKEmTZqoSJEiCggIULt27fTbb79lub24uDhFRUUpICBA/v7+6tmzp+s/45zo1q2bvvzySyUmJrqm/fTTT9q+fbu6deuWqf3hw4c1YsQI1axZU76+vvLz81ObNm20efNmV5tVq1bplltukST17NnT9VVIxn42a9ZMNWrU0IYNG9S0aVPdcMMNrtfl/DEQkZGR8vb2zrT/rVq1UrFixbR3794s9yujy3/Xrl1avHixq4a//vpL0tlg0bt3b5UoUULe3t6qXbu25syZ47aOc7vHJ02a5Hpvbdu2LUev7SeffKLu3burWbNmWrhw4UXDg3T2/dmjRw/NnDkz23071549e9SrVy+VKFFCTqdT1atX1+zZs93apKam6plnnlG9evXk7++vIkWKqEmTJlq5cqXV/v7+++/q1KmTAgMD5e3trfr162vhwoVu6zh9+rSio6NVqVIleXt7KygoSLfffru+/vprSWePn9dff12SXH+T84+brBQtWlRDhw7VF198oY0bN160fWJiooYMGaIyZcrI6XQqPDxcL774otLT093aZTUGYtWqVapfv768vb1VsWJFzZgxI8vjO8OCBQtUo0YN1+v/1VdfZdkuISFBnTt3lp+fn4KCgjR48OBMPXy257GlS5eqfv368vHx0YwZMyRd/LyDrF39MRIuX3zxhSpUqKBGjRrlqH2fPn00Z84cderUScOHD9fatWs1YcIE/fbbb/rf//7n1jYuLk6dOnVS7969FRkZqdmzZysqKkr16tVT9erV1bFjRwUEBGjo0KHq2rWr7r77bvn6+lrV/+uvv6pt27aqVauWxo0bJ6fTqbi4OH3//fcXXO6bb75RmzZtVKFCBY0dO1YpKSmaOnWqGjdurI0bN2YKL507d1b58uU1YcIEbdy4UbNmzVLx4sX14osv5qjOjh076pFHHtH8+fPVq1cvSWd7H2666SbdfPPNmdrv3LlTCxYs0AMPPKDy5ctr//79mjFjhiIiIrRt2zaFhoaqatWqGjdunJ555hk9/PDDatKkiSS5/S0PHTqkNm3aqEuXLurevbtKlCiRZX2TJ0/WihUrFBkZqdjYWHl6emrGjBlatmyZYmJisu3mr1q1qmJiYjR06FCVLl1aw4cPlySFhIQoJSVFzZo1U1xcnAYOHKjy5cvr008/VVRUlBITE92CqSS98847OnnypB5++GE5nU4FBgZe9HX97LPP9J///EdNmzbVF198IR8fn4suk+Gpp57Se++9pxdeeEFTpkzJtt3+/ft12223uQbzhYSE6Msvv1Tv3r119OhR14DRo0ePatasWeratav69u2rY8eO6e2331arVq20bt26TF8xZbW/v/76qxo3bqwbb7xRTz75pIoUKaJPPvlE7du312effaYOHTpIOhtsJ0yYoD59+ujWW2/V0aNHtX79em3cuFF33nmn+vXrp7179+rrr79WTExMjl8TSRo8eLAmTpyosWPHZgou5zpx4oQiIiK0Z88e9evXT2XLltUPP/ygUaNGad++fZo0aVK2y/78889q3bq1SpUqpejoaKWlpWncuHEKCQnJsv2aNWs0f/58PfrooypatKimTJmi+++/X7t371ZQUJBb286dO6tcuXKaMGGCfvzxR02ZMkVHjhxx+/Bicx77448/1LVrV/Xr1099+/ZVlSpVLvm8A0kG14SkpCQjybRr1y5H7Tdt2mQkmT59+rhNHzFihJFkVqxY4ZoWFhZmJJnVq1e7ph04cMA4nU4zfPhw17Rdu3YZSebll192W2dkZKQJCwvLVMOYMWPMuW/BiRMnGknm4MGD2dadsY133nnHNa1OnTqmePHi5tChQ65pmzdvNh4eHqZHjx6ZtterVy+3dXbo0MEEBQVlu81z96NIkSLGGGM6depkWrRoYYwxJi0tzZQsWdJER0dn+RqcPHnSpKWlZdoPp9Npxo0b55r2008/Zdq3DBEREUaSmT59epbzIiIi3KYtXbrUSDLPPfec2blzp/H19TXt27e/6D4ac/bvfc8997hNmzRpkpFk3n//fde01NRU07BhQ+Pr62uOHj3q2i9Jxs/Pzxw4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cuXKadKkSVdkWwAy48e0gKtA69at9c477+jUqVNasmSJBgwYoMKFC2vUqFGZ2qampsrLyytXthsYGJgr6wFw7aEHArgKOJ1OlSxZUmFhYerfv79atmyphQsXSvq/rvjnn39eoaGhqlKliiTpn3/+UefOnRUQEKDAwEC1a9dOf/31l2udaWlpGjZsmAICAhQUFKTHH39c5/80zvlfYZw6dUpPPPGEypQpI6fTqfDwcL399tv666+/XD+sVKxYMTkcDkVFRUk6+zPsEyZMUPny5eXj46PatWtr3rx5bttZsmSJKleuLB8fHzVv3tytzkuRlpam3r17u7ZZpUoVTZ48Ocu20dHRCgkJkZ+fnx555BGlpqa65uWkduB6RQ8EcBXy8fHRoUOHXM+XL18uPz8/ff3115Kk06dPq1WrVmrYsKG+++47FSpUSM8995xat26tLVu2yMvLS6+++qreffddzZ49W1WrVtWrr76q//3vf7rjjjuy3W6PHj0UGxurKVOmqHbt2tq1a5cSEhJUpkwZffbZZ7r//vv1xx9/yM/PTz4+PpKkCRMm6P3339f06dNVqVIlrV69Wt27d1dISIgiIiL0zz//qGPHjhowYIAefvhhrV+/XsOHD7+s1yc9PV2lS5fWp59+qqCgIP3www96+OGHVapUKXXu3NntdfP29taqVav0119/qWfPngoKCtLzzz+fo9qB65oBUKBFRkaadu3aGWOMSU9PN19//bVxOp1mxIgRrvklSpQwp06dci0TExNjqlSpYtLT013TTp06ZXx8fMzSpUuNMcaUKlXKvPTSS675p0+fNqVLl3ZtyxhjIiIizODBg40xxvzxxx9Gkvn666+zrHPlypVGkjly5Ihr2smTJ80NN9xgfvjhB7e2vXv3Nl27djXGGDNq1ChTrVo1t/lPPPFEpnWdLywszEycODHb+ecbMGCAuf/++13PIyMjTWBgoDl+/Lhr2ptvvml8fX1NWlpajmrPap+B6wU9EMBVYNGiRfL19dXp06eVnp6ubt26aezYsa75NWvWdBv3sHnzZsXFxalo0aJu6zl58qR27NihpKQk7du3Tw0aNHDNK1SokOrXr5/pa4wMmzZtkqenp9Un77i4OJ04cUJ33nmn2/TU1FTVrVtXkvTbb7+51SFJDRs2zPE2svP6669r9uzZ2r17t1JSUpSamqo6deq4taldu7ZuuOEGt+0mJyfrn3/+UXJy8kVrB65nBAjgKtC8eXO9+eab8vLyUmhoqAoVcj90ixQp4vY8OTlZ9erV09y5czOtKyQk5JJqyPhKwkZycrIkafHixbrxxhvd5jmdzkuqIyc++ugjjRgxQq+++qoaNmyookWL6uWXX9batWtzvI78qh24WhAggKtAkSJFFB4enuP2N998sz7++GMVL15cfn5+WbYpVaqU1q5dq6ZNm0qSzpw5ow0bNujmm2/Osn3NmjWVnp6ub7/9Vi1btsw0P6MHJC0tzTWtWrVqcjqd2r17d7Y9F1WrVnUNCM3w448/XnwnL+D7779Xo0aN9Oijj7qm7dixI1O7zZs3KyUlxRWOfvzxR/n6+qpMmTIKDAy8aO3A9YyrMIBr0H/+8x8FBwerXbt2+u6777Rr1y6tWrVKjz32mP79919J0uDBg/XCCy9owYIF+v333/Xoo49e8B4O5cqVU2RkpHr16qUFCxa41vnJJ59IksLCwuRwOLRo0SIdPHhQycnJKlq0qEaMGKGhQ4dqzpw52rFjhzZu3KipU6dqzpw5kqRHHnlE27dv18iRI/XHH3/ogw8+0Lvvvpuj/dyzZ482bdrk9jhy5IgqVaqk9evXa+nSpfrzzz81evRo/fTTT5mWT01NVe/evbVt2zYtWbJEY8aM0cCBA+Xh4ZGj2oHrWn4PwgBwYecOorSZv2/fPtOjRw8THBxsnE6nqVChgunbt69JSkoyxpwdNDl48GDj5+dnAgICzLBhw0yPHj2yHURpjDEpKSlm6NChplSpUsbLy8uEh4eb2bNnu+aPGzfOlCxZ0jgcDhMZGWmMOTvwc9KkSaZKlSqmcOHCJiQkxLRq1cp8++23ruW++OILEx4ebpxOp2nSpImZPXt2jgZRSsr0iImJMSdPnjRRUVHG39/fBAQEmP79+5snn3zS1K5dO9Pr9swzz5igoCDj6+tr+vbta06ePOlqc7HaGUSJ65nDmGxGTAEAAGSDrzAAAIA1AgQAALBGgAAAANYIEAAAwBoBAgAAWCNAAAAAawQIAABgjQABAACsESAAAIA1AgQAALBGgAAAANb+HxLlI1OK45xtAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Model: K-Nearest Neighbors\n",
            "Accuracy: 0.9193\n",
            "Precision: 0.9262\n",
            "Recall: 0.9193\n",
            "F1 Score: 0.9038\n",
            "Classification Report:\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "           0       0.91      1.00      0.96       965\n",
            "           1       1.00      0.40      0.57       150\n",
            "\n",
            "    accuracy                           0.92      1115\n",
            "   macro avg       0.96      0.70      0.76      1115\n",
            "weighted avg       0.93      0.92      0.90      1115\n",
            "\n"
          ]
        }
      ]
    }
  ]
}