{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "31eca0e0-a644-471e-8ed6-90db34a5b734",
   "metadata": {},
   "source": [
    "# **Part 1 : Building a Classifier with Random Forest**\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3f823ad0-25ca-4aa1-843b-32ae7b6debd8",
   "metadata": {},
   "source": [
    "## `Step 1 : Loading Titanic Dataset`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "id": "23a481ac-cf43-477d-83f4-732f4b6d1c29",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   PassengerId  Survived  Pclass  \\\n",
      "0            1         0       3   \n",
      "1            2         1       1   \n",
      "2            3         1       3   \n",
      "3            4         1       1   \n",
      "4            5         0       3   \n",
      "\n",
      "                                                Name     Sex   Age  SibSp  \\\n",
      "0                           Braund\\t Mr. Owen Harris    male  22.0      1   \n",
      "1  Cumings\\t Mrs. John Bradley (Florence Briggs T...  female  38.0      1   \n",
      "2                             Heikkinen\\t Miss Laina  female  26.0      0   \n",
      "3      Futrelle\\t Mrs. Jacques Heath (Lily May Peel)  female  35.0      1   \n",
      "4                          Allen\\t Mr. William Henry    male  35.0      0   \n",
      "\n",
      "   Parch            Ticket     Fare Cabin Embarked  \n",
      "0      0         A/5 21171   7.2500   NaN        S  \n",
      "1      0          PC 17599  71.2833   C85        C  \n",
      "2      0  STON/O2. 3101282   7.9250   NaN        S  \n",
      "3      0            113803  53.1000  C123        S  \n",
      "4      0            373450   8.0500   NaN        S  \n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.metrics import classification_report, accuracy_score\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, classification_report\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# Load the Titanic dataset (assuming the dataset is in the current directory)\n",
    "df_titanic = pd.read_csv('./titanic.csv')\n",
    "\n",
    "# Display the first few rows of the dataset to check the data\n",
    "print(df_titanic.head())\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e0aee301-f72f-4a03-a0a5-c92e7a6d7fdd",
   "metadata": {},
   "source": [
    "# `Processing the Dataset`"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "69b4ff2c-50d8-473e-a25d-a910e69cac6f",
   "metadata": {},
   "source": [
    "# `Finding missing values`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 172,
   "id": "fb96ccb0-3eef-48b2-9b80-aa58f45b9a90",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             Missing Values Count  Missing Values Percentage\n",
      "PassengerId                     0                   0.000000\n",
      "Survived                        0                   0.000000\n",
      "Pclass                          0                   0.000000\n",
      "Name                            0                   0.000000\n",
      "Sex                             0                   0.000000\n",
      "Age                           177                  19.865320\n",
      "SibSp                           0                   0.000000\n",
      "Parch                           0                   0.000000\n",
      "Ticket                          0                   0.000000\n",
      "Fare                            0                   0.000000\n",
      "Cabin                         687                  77.104377\n",
      "Embarked                        2                   0.224467\n"
     ]
    }
   ],
   "source": [
    "# Find the number of missing values for each column\n",
    "missing_values_count = df_titanic.isnull().sum()\n",
    "\n",
    "# Find the percentage of missing values for each column\n",
    "missing_values_percentage = (missing_values_count / len(df_titanic)) * 100\n",
    "\n",
    "# Combine both count and percentage into a single DataFrame for better visualization\n",
    "missing_data = pd.DataFrame({\n",
    "    'Missing Values Count': missing_values_count,\n",
    "    'Missing Values Percentage': missing_values_percentage\n",
    "})\n",
    "\n",
    "# Display the missing data\n",
    "print(missing_data)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "23a16720-ff30-4d98-a69e-16b3f4a1aaf2",
   "metadata": {},
   "source": [
    "# `Handeling Age on Pclass basis`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "id": "c90db151-e78d-49cc-bcc3-2f1e2a286b41",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Missing values before imputation: 177\n",
      "Missing values after imputation: 0\n",
      "Number of missing 'Age' values replaced: 177\n"
     ]
    }
   ],
   "source": [
    "# Check the number of missing values before imputation\n",
    "missing_before = df_titanic['Age'].isnull().sum()\n",
    "print(f\"Missing values before imputation: {missing_before}\")\n",
    "\n",
    "# Impute missing 'Age' values with the median for each 'Pclass'\n",
    "df_titanic['Age'] = df_titanic.groupby('Pclass')['Age'].transform(lambda x: x.fillna(x.median()))\n",
    "\n",
    "# Check the number of missing values after imputation\n",
    "missing_after = df_titanic['Age'].isnull().sum()\n",
    "print(f\"Missing values after imputation: {missing_after}\")\n",
    "\n",
    "# Show how much data has been replaced\n",
    "replaced_count = missing_before - missing_after\n",
    "print(f\"Number of missing 'Age' values replaced: {replaced_count}\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fcb0e215-637b-4671-89bf-3bacf7e5f5e3",
   "metadata": {},
   "source": [
    "# `Dropping 'cabin' column`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "id": "6d627760-b57c-4246-b540-39382a4284b7",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Drop the 'Cabin' column from the dataset\n",
    "df_titanic.drop(columns=['Cabin'], inplace=True)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a7ab85eb-848c-4cf0-8ec9-1aed42a3e517",
   "metadata": {},
   "source": [
    "# `Step 2 : Training a random forest classifier`"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0fa852a0-25d4-462d-8f6a-ea5c10ff8b2e",
   "metadata": {},
   "source": [
    "# `Removing missing values of embark`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "id": "f2558417-9d83-4bca-9e5f-52ea599fdd9c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Missing values in 'Embarked' after removal: 0\n",
      "\n",
      "First few rows after removing rows with missing 'Embarked' values:\n",
      "   PassengerId  Survived  Pclass  \\\n",
      "0            1         0       3   \n",
      "1            2         1       1   \n",
      "2            3         1       3   \n",
      "3            4         1       1   \n",
      "4            5         0       3   \n",
      "\n",
      "                                                Name     Sex   Age  SibSp  \\\n",
      "0                           Braund\\t Mr. Owen Harris    male  22.0      1   \n",
      "1  Cumings\\t Mrs. John Bradley (Florence Briggs T...  female  38.0      1   \n",
      "2                             Heikkinen\\t Miss Laina  female  26.0      0   \n",
      "3      Futrelle\\t Mrs. Jacques Heath (Lily May Peel)  female  35.0      1   \n",
      "4                          Allen\\t Mr. William Henry    male  35.0      0   \n",
      "\n",
      "   Parch            Ticket     Fare Embarked  \n",
      "0      0         A/5 21171   7.2500        S  \n",
      "1      0          PC 17599  71.2833        C  \n",
      "2      0  STON/O2. 3101282   7.9250        S  \n",
      "3      0            113803  53.1000        S  \n",
      "4      0            373450   8.0500        S  \n"
     ]
    }
   ],
   "source": [
    "# Remove rows with missing values in the 'Embarked' column\n",
    "df_titanic.dropna(subset=['Embarked'], inplace=True)\n",
    "\n",
    "# Display the number of missing values in 'Embarked' to confirm the removal\n",
    "print(f\"Missing values in 'Embarked' after removal: {df_titanic['Embarked'].isnull().sum()}\")\n",
    "\n",
    "# Optionally, display the first few rows of the dataset to confirm\n",
    "print(\"\\nFirst few rows after removing rows with missing 'Embarked' values:\")\n",
    "print(df_titanic.head())\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "45193a8d-2145-46d0-909c-3dc4acb8c948",
   "metadata": {},
   "source": [
    "# `Encoding`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 186,
   "id": "65066450-3bca-4f2f-bb24-b6f8567e80c4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['S' 'C' 'Q']\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Braund\\t Mr. Owen Harris</td>\n",
       "      <td>0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>A/5 21171</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Cumings\\t Mrs. John Bradley (Florence Briggs T...</td>\n",
       "      <td>1</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17599</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>Heikkinen\\t Miss Laina</td>\n",
       "      <td>1</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>STON/O2. 3101282</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Futrelle\\t Mrs. Jacques Heath (Lily May Peel)</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>113803</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Allen\\t Mr. William Henry</td>\n",
       "      <td>0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>373450</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>886</th>\n",
       "      <td>887</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>Montvila\\t Rev. Juozas</td>\n",
       "      <td>0</td>\n",
       "      <td>27.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>211536</td>\n",
       "      <td>13.0000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>887</th>\n",
       "      <td>888</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Graham\\t Miss Margaret Edith</td>\n",
       "      <td>1</td>\n",
       "      <td>19.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>112053</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>888</th>\n",
       "      <td>889</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Johnston\\t Miss Catherine Helen \"Carrie\"</td>\n",
       "      <td>1</td>\n",
       "      <td>24.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>W./C. 6607</td>\n",
       "      <td>23.4500</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>889</th>\n",
       "      <td>890</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Behr\\t Mr. Karl Howell</td>\n",
       "      <td>0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>111369</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>890</th>\n",
       "      <td>891</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Dooley\\t Mr. Patrick</td>\n",
       "      <td>0</td>\n",
       "      <td>32.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>370376</td>\n",
       "      <td>7.7500</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>889 rows × 11 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     PassengerId  Survived  Pclass  \\\n",
       "0              1         0       3   \n",
       "1              2         1       1   \n",
       "2              3         1       3   \n",
       "3              4         1       1   \n",
       "4              5         0       3   \n",
       "..           ...       ...     ...   \n",
       "886          887         0       2   \n",
       "887          888         1       1   \n",
       "888          889         0       3   \n",
       "889          890         1       1   \n",
       "890          891         0       3   \n",
       "\n",
       "                                                  Name  Sex   Age  SibSp  \\\n",
       "0                             Braund\\t Mr. Owen Harris    0  22.0      1   \n",
       "1    Cumings\\t Mrs. John Bradley (Florence Briggs T...    1  38.0      1   \n",
       "2                               Heikkinen\\t Miss Laina    1  26.0      0   \n",
       "3        Futrelle\\t Mrs. Jacques Heath (Lily May Peel)    1  35.0      1   \n",
       "4                            Allen\\t Mr. William Henry    0  35.0      0   \n",
       "..                                                 ...  ...   ...    ...   \n",
       "886                             Montvila\\t Rev. Juozas    0  27.0      0   \n",
       "887                       Graham\\t Miss Margaret Edith    1  19.0      0   \n",
       "888           Johnston\\t Miss Catherine Helen \"Carrie\"    1  24.0      1   \n",
       "889                             Behr\\t Mr. Karl Howell    0  26.0      0   \n",
       "890                               Dooley\\t Mr. Patrick    0  32.0      0   \n",
       "\n",
       "     Parch            Ticket     Fare  Embarked  \n",
       "0        0         A/5 21171   7.2500         2  \n",
       "1        0          PC 17599  71.2833         0  \n",
       "2        0  STON/O2. 3101282   7.9250         2  \n",
       "3        0            113803  53.1000         2  \n",
       "4        0            373450   8.0500         2  \n",
       "..     ...               ...      ...       ...  \n",
       "886      0            211536  13.0000         2  \n",
       "887      0            112053  30.0000         2  \n",
       "888      2        W./C. 6607  23.4500         2  \n",
       "889      0            111369  30.0000         0  \n",
       "890      0            370376   7.7500         1  \n",
       "\n",
       "[889 rows x 11 columns]"
      ]
     },
     "execution_count": 186,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Replace 'male' with 0 and 'female' with 1\n",
    "df_titanic['Sex'] = df_titanic['Sex'].replace({'male': 0, 'female': 1})\n",
    "\n",
    "# Get all the unique values in the Embark column.\n",
    "print(df_titanic['Embarked'].unique())\n",
    "\n",
    "# Replace the values in Embark with numeric ones\n",
    "df_titanic['Embarked'] = df_titanic['Embarked'].replace({'C': 0, 'Q': 1, 'S': 2})\n",
    "df_titanic"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "190e55c1-10f5-4746-a8f7-1f9abce2b4e8",
   "metadata": {},
   "source": [
    "# `Splitting data for training and testing`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 189,
   "id": "6795af46-80dd-47b1-a187-d5fef88ecd80",
   "metadata": {},
   "outputs": [],
   "source": [
    "# split the data into train and test using the SciKitLearn package\n",
    "\n",
    "# specify the target variables (dependent/predicted): \"y\"\n",
    "y = df_titanic['Survived']\n",
    "\n",
    "# Drop the 'y' column and unwanted columns i.e. the predictors (a.k.a. independent) variables : \"x\"\n",
    "X = df_titanic.drop(['Survived','PassengerId', 'Name', 'Ticket'],axis=1)\n",
    "\n",
    "\n",
    "# split the data into train and test using the SciKitLearn package \"train_test_split\"\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y , test_size=0.25, random_state=104) "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ecf04fba-b2d3-4349-86f1-4bd4ee5dd910",
   "metadata": {},
   "source": [
    "# `Creating model for Random Forest Classifier`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 192,
   "id": "fcec4d69-1cb2-4b7f-8df6-0b0df3694007",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-7 {color: black;}#sk-container-id-7 pre{padding: 0;}#sk-container-id-7 div.sk-toggleable {background-color: white;}#sk-container-id-7 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-7 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-7 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-7 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-7 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-7 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-7 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-7 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-7 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-7 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-7 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-7 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-7 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-7 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-7 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-7 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-7 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-7 div.sk-item {position: relative;z-index: 1;}#sk-container-id-7 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-7 div.sk-item::before, #sk-container-id-7 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-7 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-7 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-7 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-7 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-7 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-7 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-7 div.sk-label-container {text-align: center;}#sk-container-id-7 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-7 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-7\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestClassifier(random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-7\" type=\"checkbox\" checked><label for=\"sk-estimator-id-7\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier(random_state=42)</pre></div></div></div></div></div>"
      ],
      "text/plain": [
       "RandomForestClassifier(random_state=42)"
      ]
     },
     "execution_count": 192,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# make a copy of the algorithm\n",
    "RF_clf = RandomForestClassifier(random_state=42)\n",
    "\n",
    "# fits a model using training data\n",
    "RF_clf.fit(X_train, y_train)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "946e8d57-dc19-4662-92ba-2b7d59393df5",
   "metadata": {},
   "source": [
    "# `Printing the model`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 195,
   "id": "c3178ebd-fbb0-4396-94fc-222b6c87879c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "The accuracy score:  0.820627802690583\n",
      "\n",
      "============== Metric ===============================\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.83      0.87      0.85       132\n",
      "           1       0.80      0.75      0.77        91\n",
      "\n",
      "    accuracy                           0.82       223\n",
      "   macro avg       0.82      0.81      0.81       223\n",
      "weighted avg       0.82      0.82      0.82       223\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# check with test data\n",
    "y_pred = RF_clf.predict(X_test)\n",
    "\n",
    "# Print the accuracy score\n",
    "print('\\nThe accuracy score: ', accuracy_score(y_test, y_pred))\n",
    "\n",
    "print(\"\\n============== Metric ===============================\\n\")\n",
    "# Print the evaluation metrics\n",
    "print(classification_report(y_test, y_pred))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "da7591c4-31ff-4667-a387-208dda1e59cd",
   "metadata": {},
   "source": [
    "# `Evaluating the model`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 198,
   "id": "9dd62669-1447-4c69-99c7-6b317c79c709",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Accuracy: 0.8206\n",
      "Precision: 0.8197\n",
      "Recall: 0.8206\n",
      "F1 Score: 0.8196\n",
      "\n",
      "============== Classification Report ===============================\n",
      "\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.83      0.87      0.85       132\n",
      "           1       0.80      0.75      0.77        91\n",
      "\n",
      "    accuracy                           0.82       223\n",
      "   macro avg       0.82      0.81      0.81       223\n",
      "weighted avg       0.82      0.82      0.82       223\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Predict with test data\n",
    "y_pred = RF_clf.predict(X_test)\n",
    "\n",
    "# Calculate evaluation metrics\n",
    "accuracy = accuracy_score(y_test, y_pred)\n",
    "precision = precision_score(y_test, y_pred, average='weighted')  # Adjust based on binary/multi-class\n",
    "recall = recall_score(y_test, y_pred, average='weighted')\n",
    "f1 = f1_score(y_test, y_pred, average='weighted')\n",
    "\n",
    "# Print evaluation metrics\n",
    "print(f\"\\nAccuracy: {accuracy:.4f}\")\n",
    "print(f\"Precision: {precision:.4f}\")\n",
    "print(f\"Recall: {recall:.4f}\")\n",
    "print(f\"F1 Score: {f1:.4f}\")\n",
    "\n",
    "print(\"\\n============== Classification Report ===============================\\n\")\n",
    "print(classification_report(y_test, y_pred))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "12090543-bc6a-49fb-9eda-1833701bee9b",
   "metadata": {},
   "source": [
    "# `Selecting Important Features`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 201,
   "id": "aecc078f-b9ee-4794-ac7f-f68bddbbfb35",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    Feature  Importance\n",
      "2       Age    0.269330\n",
      "5      Fare    0.267898\n",
      "1       Sex    0.254080\n",
      "0    Pclass    0.081178\n",
      "3     SibSp    0.052294\n",
      "4     Parch    0.040259\n",
      "6  Embarked    0.034961\n"
     ]
    }
   ],
   "source": [
    "# Extracting important features from the random forest\n",
    "feature_importances = RF_clf.feature_importances_\n",
    "\n",
    "# Create a DataFrame for visualization\n",
    "feature_importance_df = pd.DataFrame({'Feature': X.columns, 'Importance': feature_importances})\n",
    "\n",
    "# Sort features by importance\n",
    "feature_importance_df = feature_importance_df.sort_values(by='Importance', ascending=False)\n",
    "\n",
    "# Display feature importances\n",
    "print(feature_importance_df)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d540cc03-bd15-4d35-b529-ac42fa4c3c7b",
   "metadata": {},
   "source": [
    "# `Visual of important features`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 220,
   "id": "8da388cf-dca2-4efe-b0d3-d7bdb48d46df",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABrJ0lEQVR4nO3dd3xT1f/H8XdaOijQssqGskcFEdllI3uIKLJkzwrIEmU6QBEFgYJahowytIDAF0FABEFkKxtFERFsxZYpLbO0zfn9wbf5EVv8NtAQW17PxyMPzcnJzec2l7TvnHPPtRhjjAAAAAAAQJpzc3UBAAAAAABkVIRuAAAAAACchNANAAAAAICTELoBAAAAAHASQjcAAAAAAE5C6AYAAAAAwEkI3QAAAAAAOAmhGwAAAAAAJyF0AwAAAADgJIRuAECqhIWFyWKxpHgbMWKEU17z+PHjevPNN3XmzBmnbP9BnDlzRhaLRe+//76rS7lvu3fv1ptvvqkrV664upR0KenfhCuOz7v/PX7zzTfJHjfGqGTJkrJYLKpfv77dY3f/23V3d1eOHDlUsWJF9e/fX3v37k22rYxwrAOAKxG6AQAOWbhwofbs2WN3Gzx4sFNe6/jx4xo/fvy/MnRnBLt379b48eMJ3fepZcuW2rNnj/Lnz++yGrJly6b58+cna9++fbtOnTqlbNmypfi8du3aac+ePdq5c6eWLVumbt26ae/evapZs6aGDBni7LIB4JGSydUFAADSl/Lly6tKlSquLuOBxMfHy2KxKFOmR/PX4M2bN+Xt7e3qMtI9f39/+fv7u7SGDh066JNPPtFHH30kX19fW/v8+fNVs2ZNxcbGpvi8vHnzqkaNGrb7TZs21dChQ9WvXz/NnDlTZcuW1Ysvvuj0+gHgUcBINwAgTS1fvlw1a9ZUlixZlDVrVjVt2lSHDh2y67N//3517NhRRYsWVebMmVW0aFF16tRJv//+u61PWFiYnn/+eUlSgwYNbNNhw8LCJElFixZVjx49kr1+/fr17abTfvPNN7JYLFqyZIlefvllFSxYUF5eXvr1118lSVu2bNFTTz0lX19f+fj4qFatWvr666/va9+Tpvxu3bpVffv2Va5cueTr66tu3brp+vXrio6OVvv27ZU9e3blz59fI0aMUHx8vO35SdN4J0+erIkTJ6pIkSLy9vZWlSpVUqxp586deuqpp5QtWzb5+PgoKChI69evT7Gmr776Sr169ZK/v798fHw0evRovfLKK5KkYsWKJZuqvHz5cjVp0kT58+dX5syZVa5cOY0aNUrXr1+3236PHj2UNWtW/frrr2rRooWyZs2qwoUL6+WXX1ZcXJxd37i4OE2YMEHlypWTt7e3cuXKpQYNGmj37t22PsYYhYaG6oknnlDmzJmVI0cOtWvXTr/99pvdtg4dOqRWrVopT5488vLyUoECBdSyZUv98ccf//gepfa4sVqtevvtt1WmTBllzpxZ2bNn1+OPP64ZM2Yk+9nePROjfv36Kl++vL7//nvVqVNHPj4+Kl68uN59911ZrVa71/zxxx/VpEkT+fj4yN/fXwMHDtT69evvOWU8JZ06dZIkhYeH29piYmK0atUq9erVK1XbSOLu7q4PP/xQuXPn1pQpUxx6LgDg3gjdAACHJCYmKiEhwe6W5J133lGnTp0UGBioFStWaMmSJbp69arq1Kmj48eP2/qdOXNGZcqUUUhIiDZt2qT33ntPUVFRqlq1qi5evCjpztTdd955R5L00Ucf2aayt2zZ8r7qHj16tCIiIjR79mytW7dOefLk0dKlS9WkSRP5+vpq0aJFWrFihXLmzKmmTZved/CWpD59+sjPz0/Lli3TuHHj9Omnn6pv375q2bKlKlasqJUrV6p79+6aOnWqPvjgg2TP//DDD/Xll18qJCRES5culZubm5o3b649e/bY+mzfvl0NGzZUTEyM5s+fr/DwcGXLlk2tW7fW8uXLk22zV69e8vDw0JIlS7Ry5Uq9+OKLeumllyRJq1evtv18n3zySUnSyZMn1aJFC82fP19ffvmlhg4dqhUrVqh169bJth0fH6+nn35aTz31lD7//HP16tVL06dP13vvvWfrk5CQoObNm+utt95Sq1at9J///EdhYWEKCgpSRESErV///v01dOhQNWrUSGvWrFFoaKh+/PFHBQUF6dy5c5Kk69evq3Hjxjp37pw++ugjbd68WSEhISpSpIiuXr16n++avcmTJ+vNN99Up06dtH79ei1fvly9e/dO1VT86OhovfDCC+rSpYvWrl2r5s2ba/To0Vq6dKmtT1RUlOrVq6cTJ05o1qxZWrx4sa5evapBgwY5VKevr6/atWunBQsW2NrCw8Pl5uamDh06OLQtScqcObMaNWqk06dP/88vMAAAqWQAAEiFhQsXGkkp3uLj401ERITJlCmTeemll+yed/XqVZMvXz7Tvn37e247ISHBXLt2zWTJksXMmDHD1v7ZZ58ZSWbbtm3JnhMQEGC6d++erL1evXqmXr16tvvbtm0zkkzdunXt+l2/ft3kzJnTtG7d2q49MTHRVKxY0VSrVu0ffhrGnD592kgyU6ZMsbUl/Yz+/jN45plnjCQzbdo0u/YnnnjCPPnkk8m2WaBAAXPz5k1be2xsrMmZM6dp1KiRra1GjRomT5485urVq7a2hIQEU758eVOoUCFjtVrtaurWrVuyfZgyZYqRZE6fPv2P+2q1Wk18fLzZvn27kWSOHDlie6x79+5GklmxYoXdc1q0aGHKlClju7948WIjyXz88cf3fJ09e/YYSWbq1Kl27ZGRkSZz5szm1VdfNcYYs3//fiPJrFmz5h/rTklqj5tWrVqZJ5544h+3lfSzvfvnV69ePSPJ7Nu3z65vYGCgadq0qe3+K6+8YiwWi/nxxx/t+jVt2vSex3xKr/3999/bjvEffvjBGGNM1apVTY8ePYwxxjz22GN2+2WMMZLMwIED77ntkSNH2u1DSsc6ACD1GOkGADhk8eLF+v777+1umTJl0qZNm5SQkKBu3brZjYJ7e3urXr16dtNlr127ppEjR6pkyZLKlCmTMmXKpKxZs+r69ev66aefnFL3c889Z3d/9+7dunz5srp3725Xr9VqVbNmzfT9998nm0qdWq1atbK7X65cOUlKNkpfrlw5uyn1SZ599lm7c66TRrC//fZbJSYm6vr169q3b5/atWunrFmz2vq5u7ura9eu+uOPP3TixIl/3P//5bffflPnzp2VL18+ubu7y8PDQ/Xq1ZOkZO+RxWJJNgL++OOP2+3bxo0b5e3t/Y9Tnr/44gtZLBZ16dLF7j3Jly+fKlasaDuGSpYsqRw5cmjkyJGaPXu23SyKtFKtWjUdOXJEAwYM0KZNm+55bnRK8uXLp2rVqtm1/f3nsX37dpUvX16BgYF2/ZKmizuiXr16KlGihBYsWKBjx47p+++/d3hq+d2MMff9XABAco/mCjIAgPtWrly5FBdSS5r6W7Vq1RSf5+b2/9/zdu7cWV9//bVee+01Va1aVb6+vrJYLGrRooVu3rzplLr/vsJ0Ur3t2rW753MuX76sLFmyOPxaOXPmtLvv6el5z/Zbt24le36+fPlSbLt9+7auXbumq1evyhiT4qrZBQoUkCRdunTJrt2RFbavXbumOnXqyNvbW2+//bZKly4tHx8fRUZG6tlnn032Hvn4+CRbmM3Ly8tu3y5cuKACBQrYHQd/d+7cORljlDdv3hQfL168uCTJz89P27dv18SJEzVmzBj99ddfyp8/v/r27atx48bJw8Mj1ft6L6NHj1aWLFm0dOlSzZ49W+7u7qpbt67ee++9/7mQYK5cuZK1eXl52f3cLl26pGLFiiXrd699/ycWi0U9e/bUzJkzdevWLZUuXVp16tRxeDtJkr4cSDqWAAAPhtANAEgTuXPnliStXLlSAQEB9+wXExOjL774Qm+88YZGjRpla4+Li9Ply5dT/Xre3t7JFuqSpIsXL9pquZvFYkmx3g8++MBuFee73U8ASgvR0dEptnl6eipr1qzKlCmT3NzcFBUVlazfn3/+KUnJfgZ/3/9/snXrVv3555/65ptvbKPbkh7o0mL+/v7auXOnrFbrPYN37ty5ZbFYtGPHDnl5eSV7/O62ChUqaNmyZTLG6OjRowoLC9OECROUOXNmu+Pq71J73GTKlEnDhw/X8OHDdeXKFW3ZskVjxoxR06ZNFRkZKR8fH0d2P5lcuXLZvvi5W0rvfWr06NFDr7/+umbPnq2JEyfed103b97Uli1bVKJECRUqVOi+twMA+H9MLwcApImmTZsqU6ZMOnXqlKpUqZLiTboT/owxyULVvHnzlJiYaNeW1Cel0e+iRYvq6NGjdm2//PJLsmnV91KrVi1lz55dx48fv2e9SSPUD9vq1avtRomvXr2qdevWqU6dOnJ3d1eWLFlUvXp1rV692u5nY7VatXTpUhUqVEilS5f+n69zr59vUkD/+3s0Z86c+96n5s2b69atW7bV51PSqlUrGWN09uzZFN+PChUqJHuOxWJRxYoVNX36dGXPnl0HDx78xzru57jJnj272rVrp4EDB+ry5ctpct34evXq6Ycffkg2NX7ZsmX3tb2CBQvqlVdeUevWrdW9e/f72kZiYqIGDRqkS5cuaeTIkfe1DQBAcox0AwDSRNGiRTVhwgSNHTtWv/32m5o1a6YcOXLo3Llz+u6775QlSxaNHz9evr6+qlu3rqZMmaLcuXOraNGi2r59u+bPn6/s2bPbbbN8+fKSpLlz5ypbtmzy9vZWsWLFlCtXLnXt2lVdunTRgAED9Nxzz+n333/X5MmTU33d5KxZs+qDDz5Q9+7ddfnyZbVr10558uTRhQsXdOTIEV24cEGzZs1K6x9Tqri7u6tx48YaPny4rFar3nvvPcXGxmr8+PG2PpMmTVLjxo3VoEEDjRgxQp6engoNDdUPP/yg8PDwVI1sJ4XYGTNmqHv37vLw8FCZMmUUFBSkHDlyKDg4WG+88YY8PDz0ySef6MiRI/e9T506ddLChQsVHBysEydOqEGDBrJardq3b5/KlSunjh07qlatWurXr5969uyp/fv3q27dusqSJYuioqK0c+dOVahQQS+++KK++OILhYaG6plnnlHx4sVljNHq1at15coVNW7c+B/rSO1x07p1a9s16f39/fX7778rJCREAQEBKlWq1H3/HJIMHTpUCxYsUPPmzTVhwgTlzZtXn376qX7++WdJ+sdp+Pfy7rvvprrvuXPntHfvXhljdPXqVf3www9avHixjhw5omHDhqlv374Ovz4AIGWEbgBAmhk9erQCAwM1Y8YMhYeHKy4uTvny5VPVqlUVHBxs6/fpp59qyJAhevXVV5WQkKBatWpp8+bNyRYaK1asmEJCQjRjxgzVr19fiYmJWrhwoXr06KHOnTvrzz//1OzZs7Vw4UKVL19es2bNsgum/0uXLl1UpEgRTZ48Wf3799fVq1eVJ08ePfHEEyley/lhGTRokG7duqXBgwfr/Pnzeuyxx7R+/XrVqlXL1qdevXraunWr3njjDfXo0UNWq1UVK1bU2rVrky3kdi/169fX6NGjtWjRIn388ceyWq3atm2b6tevr/Xr1+vll19Wly5dlCVLFrVp00bLly+3XVLMUZkyZdKGDRs0adIkhYeHKyQkRNmyZVPFihXVrFkzW785c+aoRo0amjNnjkJDQ2W1WlWgQAHVqlXLtjhZqVKllD17dk2ePFl//vmnPD09VaZMGYWFhf3PUd7UHjcNGjTQqlWrNG/ePMXGxipfvnxq3LixXnvttTQ5Z7xAgQLavn27hg4dquDgYPn4+Kht27aaMGGCunfvnuwLqLS2cuVKrVy5Um5ubsqaNasCAgJUs2ZNzZ49+56nWwAA7o/FsEQlAAD/CmfOnFGxYsU0ZcoUjRgxwtXlwAX69eun8PBwXbp0yWWnNwAA0hYj3QAAAC4wYcIEFShQQMWLF9e1a9f0xRdfaN68eRo3bhyBGwAyEEI3AACAC3h4eGjKlCn6448/lJCQoFKlSmnatGkaMmSIq0sDAKQhppcDAAAAAOAkXDIMAAAAAAAnIXQDAAAAAOAkhG4AAAAAAJyEhdRSYLVa9eeffypbtmyyWCyuLgcAAAAA8C9jjNHVq1dVoEABubndezyb0J2CP//8U4ULF3Z1GQAAAACAf7nIyEgVKlTono8TulOQLVs2SXd+eL6+vi6uBgAAAADwbxMbG6vChQvb8uO9ELpTkDSl3NfXl9ANAAAAALin/3VKMgupAQAAAADgJIRuAAAAAACchNANAAAAAICTELoBAAAAAHASQjcAAAAAAE5C6AYAAAAAwEkI3QAAAAAAOAmhGwAAAAAAJyF0AwAAAADgJIRuAAAAAACchNANAAAAAICTELoBAAAAAHASQjcAAAAAAE5C6AYAAAAAwEkI3QAAAAAAOEkmVxcAAPjfio5a7+oSXO7Muy1dXQIAAIDDCN0AAABAOsOXsXwZi/SD6eUAAAAAADgJoRsAAAAAACchdAMAAAAA4CSEbgAAAAAAnITQDQAAAACAkxC6AQAAAABwEkI3AAAAAABOQugGAAAAAMBJCN0AAAAAADgJoRsAAAAAACchdAMAAAAA4CSEbgAAAAAAnITQDQAAAACAkxC6AQAAAABwEkI3AAAAAABOQugGAAAAAMBJCN0AAAAAADhJJlcXAOCfFR213tUluNyZd1u6ugQAAADgvrh8pDs0NFTFihWTt7e3KleurB07dtyz7+rVq9W4cWP5+/vL19dXNWvW1KZNm+z6hIWFyWKxJLvdunXL2bsCAAAAAIAdl4bu5cuXa+jQoRo7dqwOHTqkOnXqqHnz5oqIiEix/7fffqvGjRtrw4YNOnDggBo0aKDWrVvr0KFDdv18fX0VFRVld/P29n4YuwQAAAAAgI1Lp5dPmzZNvXv3Vp8+fSRJISEh2rRpk2bNmqVJkyYl6x8SEmJ3/5133tHnn3+udevWqVKlSrZ2i8WifPnyObV2AAAAAAD+F5eNdN++fVsHDhxQkyZN7NqbNGmi3bt3p2obVqtVV69eVc6cOe3ar127poCAABUqVEitWrVKNhL+d3FxcYqNjbW7AQAAAADwoFwWui9evKjExETlzZvXrj1v3ryKjo5O1TamTp2q69evq3379ra2smXLKiwsTGvXrlV4eLi8vb1Vq1YtnTx58p7bmTRpkvz8/Gy3woUL399OAQAAAABwF5cvpGaxWOzuG2OStaUkPDxcb775ppYvX648efLY2mvUqKEuXbqoYsWKqlOnjlasWKHSpUvrgw8+uOe2Ro8erZiYGNstMjLy/ncIAAAAAID/ctk53blz55a7u3uyUe3z588nG/3+u+XLl6t379767LPP1KhRo3/s6+bmpqpVq/7jSLeXl5e8vLxSXzwAAAAAAKngspFuT09PVa5cWZs3b7Zr37x5s4KCgu75vPDwcPXo0UOffvqpWrb839fuNcbo8OHDyp8//wPXDAAAAACAI1y6evnw4cPVtWtXValSRTVr1tTcuXMVERGh4OBgSXemfZ89e1aLFy+WdCdwd+vWTTNmzFCNGjVso+SZM2eWn5+fJGn8+PGqUaOGSpUqpdjYWM2cOVOHDx/WRx995JqdBAAAAAA8slwaujt06KBLly5pwoQJioqKUvny5bVhwwYFBARIkqKiouyu2T1nzhwlJCRo4MCBGjhwoK29e/fuCgsLkyRduXJF/fr1U3R0tPz8/FSpUiV9++23qlat2kPdNwAAAAAALMYY4+oi/m1iY2Pl5+enmJgY+fr6urocPOKKjlrv6hJc7sy7//tUkoyO44DjAADuxu8Ffi/A9VKbG12+ejkAAAAAABkVoRsAAAAAACchdAMAAAAA4CSEbgAAAAAAnITQDQAAAACAkxC6AQAAAABwEkI3AAAAAABOQugGAAAAAMBJCN0AAAAAADgJoRsAAAAAACchdAMAAAAA4CSEbgAAAAAAnITQDQAAAACAkxC6AQAAAABwEkI3AAAAAABOQugGAAAAAMBJCN0AAAAAADgJoRsAAAAAACchdAMAAAAA4CSEbgAAAAAAnITQDQAAAACAkxC6AQAAAABwEkI3AAAAAABOQugGAAAAAMBJCN0AAAAAADgJoRsAAAAAACchdAMAAAAA4CSEbgAAAAAAnITQDQAAAACAkxC6AQAAAABwEkI3AAAAAABOQugGAAAAAMBJCN0AAAAAADgJoRsAAAAAACchdAMAAAAA4CSEbgAAAAAAnITQDQAAAACAkxC6AQAAAABwEkI3AAAAAABO4nDo7tGjh7799ltn1AIAAAAAQIbicOi+evWqmjRpolKlSumdd97R2bNnnVEXAAAAAADpnsOhe9WqVTp79qwGDRqkzz77TEWLFlXz5s21cuVKxcfHO6NGAAAAAADSpfs6pztXrlwaMmSIDh06pO+++04lS5ZU165dVaBAAQ0bNkwnT55M6zoBAAAAAEh3HmghtaioKH311Vf66quv5O7urhYtWujHH39UYGCgpk+fnlY1AgAAAACQLjkcuuPj47Vq1Sq1atVKAQEB+uyzzzRs2DBFRUVp0aJF+uqrr7RkyRJNmDDBGfUCAAAAAJBuZHL0Cfnz55fValWnTp303Xff6YknnkjWp2nTpsqePXsalAcAAAAAQPrlcOiePn26nn/+eXl7e9+zT44cOXT69OkHKgwAAAAAgPTO4enl27ZtS3GV8uvXr6tXr15pUhQAAAAAABmBw6F70aJFunnzZrL2mzdvavHixWlSFAAAAAAAGUGqp5fHxsbKGCNjjK5evWo3vTwxMVEbNmxQnjx5nFIkAAAAAADpUapDd/bs2WWxWGSxWFS6dOlkj1ssFo0fPz5NiwMAAAAAID1Ldejetm2bjDFq2LChVq1apZw5c9oe8/T0VEBAgAoUKOCUIgEAAAAASI9SfU53vXr1VL9+fZ0+fVrPPPOM6tWrZ7vVrFnzvgN3aGioihUrJm9vb1WuXFk7duy4Z9/Vq1ercePG8vf3l6+vr2rWrKlNmzYl67dq1SoFBgbKy8tLgYGB+s9//nNftQEAAAAA8CBSFbqPHj0qq9UqSYqJidGxY8d09OjRFG+OWL58uYYOHaqxY8fq0KFDqlOnjpo3b66IiIgU+3/77bdq3LixNmzYoAMHDqhBgwZq3bq1Dh06ZOuzZ88edejQQV27dtWRI0fUtWtXtW/fXvv27XOoNgAAAAAAHpTFGGP+Vyc3NzdFR0crT548cnNzk8ViUUpPs1gsSkxMTPWLV69eXU8++aRmzZplaytXrpyeeeYZTZo0KVXbeOyxx9ShQwe9/vrrkqQOHTooNjZWGzdutPVp1qyZcuTIofDw8FRtMzY2Vn5+foqJiZGvr2+q9wdwhqKj1ru6BJc7825LV5fgchwHHAcAcDd+L/B7Aa6X2tyYqnO6T58+LX9/f9v/p4Xbt2/rwIEDGjVqlF17kyZNtHv37lRtw2q16urVq3bnl+/Zs0fDhg2z69e0aVOFhIQ8cM0AAAAAADgiVaE7ICBAkhQfH68333xTr732mooXL/5AL3zx4kUlJiYqb968du158+ZVdHR0qrYxdepUXb9+Xe3bt7e1RUdHO7zNuLg4xcXF2e7Hxsam6vUBAAAAAPgnqV5ITZI8PDzSfFEyi8Vid98Yk6wtJeHh4XrzzTe1fPnyZNcHd3SbkyZNkp+fn+1WuHBhB/YAAAAAAICUORS6Jalt27Zas2bNA79w7ty55e7unmwE+vz588lGqv9u+fLl6t27t1asWKFGjRrZPZYvXz6Htzl69GjFxMTYbpGRkQ7uDQAAAAAAyaX6Ot1JSpYsqbfeeku7d+9W5cqVlSVLFrvHBw8enKrteHp6qnLlytq8ebPatm1ra9+8ebPatGlzz+eFh4erV69eCg8PV8uWyRdPqFmzpjZv3mx3XvdXX32loKCge27Ty8tLXl5eqaobAAAAAIDUcjh0z5s3T9mzZ9eBAwd04MABu8csFkuqQ7ckDR8+XF27dlWVKlVUs2ZNzZ07VxEREQoODpZ0ZwT67NmzWrx4saQ7gbtbt26aMWOGatSoYRvRzpw5s/z8/CRJQ4YMUd26dfXee++pTZs2+vzzz7Vlyxbt3LnT0V0FAAAAAOCBOBy602r1cunO5b0uXbqkCRMmKCoqSuXLl9eGDRtsC7dFRUXZXbN7zpw5SkhI0MCBAzVw4EBbe/fu3RUWFiZJCgoK0rJlyzRu3Di99tprKlGihJYvX67q1aunWd0AAAAAAKSGw6E7rQ0YMEADBgxI8bGkIJ3km2++SdU227Vrp3bt2j1gZQAAAAAAPBiHQ3evXr3+8fEFCxbcdzEAAAAAAGQkDofuv/76y+5+fHy8fvjhB125ckUNGzZMs8IAAAAAAEjvHA7dKV2n22q1asCAASpevHiaFAUAAAAAQEbg8HW6U9yIm5uGDRum6dOnp8XmAAAAAADIENIkdEvSqVOnlJCQkFabAwAAAAAg3XN4evnw4cPt7htjFBUVpfXr16t79+5pVhgAAAAAAOmdw6H70KFDdvfd3Nzk7++vqVOn/s+VzQEAAAAAeJQ4HLq3bdvmjDoAAAAAAMhwHA7dSc6fP68TJ07IYrGodOnSypMnT1rWBQAAAABAuufwQmoxMTHq2rWrChQooHr16qlu3boqWLCgunTpopiYGGfUCAAAAABAuuRw6O7bt6/27dun9evX68qVK4qJidEXX3yh/fv3q2/fvs6oEQAAAACAdMnh6eXr16/Xpk2bVLt2bVtb06ZN9fHHH6tZs2ZpWhwAAAAAAOmZwyPduXLlkp+fX7J2Pz8/5ciRI02KAgAAAAAgI3A4dI8bN07Dhw9XVFSUrS06OlqvvPKKXnvttTQtDgAAAACA9Mzh6eWzZs3Sr7/+qoCAABUpUkSSFBERIS8vL124cEFz5syx9T148GDaVQoAAAAAQDrjcOh+5plnnFAGAAAAAAAZj8Oh+4033nBGHQAAAAAAZDgOh+67Xbt2TVar1a7N19f3gQoCAAAAACCjcHghtdOnT6tly5bKkiWLbcXyHDlyKHv27KxeDgAAAADAXRwe6X7hhRckSQsWLFDevHllsVjSvCgAAAAAADICh0P30aNHdeDAAZUpU8YZ9QAAAAAAkGE4PL28atWqioyMdEYtAAAAAABkKA6PdM+bN0/BwcE6e/asypcvLw8PD7vHH3/88TQrDgAAAACA9Mzh0H3hwgWdOnVKPXv2tLVZLBYZY2SxWJSYmJimBQIAAAAAkF45HLp79eqlSpUqKTw8nIXUAAAAAAD4Bw6H7t9//11r165VyZIlnVEPAAAAAAAZhsMLqTVs2FBHjhxxRi0AAAAAAGQoDo90t27dWsOGDdOxY8dUoUKFZAupPf3002lWHAAAAAAA6ZnDoTs4OFiSNGHChGSPsZAaAAAAAAD/z+HQbbVanVEHAAAAAAAZjsPndAMAAAAAgNRJ9Uj3zJkzU9Vv8ODB910MAAAAAAAZSapD9/Tp0/9nH4vFQugGAAAAAOC/Uh26T58+7cw6AAAAAADIcDinGwAAAAAAJyF0AwAAAADgJIRuAAAAAACchNANAAAAAICTELoBAAAAAHCSVK9efjer1apff/1V58+fl9VqtXusbt26aVIYAAAAAADpncOhe+/evercubN+//13GWPsHrNYLEpMTEyz4gAAAAAASM8cDt3BwcGqUqWK1q9fr/z588tisTijLgAAAAAA0j2HQ/fJkye1cuVKlSxZ0hn1AAAAAACQYTi8kFr16tX166+/OqMWAAAAAAAyFIdHul966SW9/PLLio6OVoUKFeTh4WH3+OOPP55mxQEAAAAAkJ45HLqfe+45SVKvXr1sbRaLRcYYFlIDAAAAAOAuDofu06dPO6MOAAAAAAAyHIdDd0BAgDPqAAAAAAAgw0lV6F67dq2aN28uDw8PrV279h/7Pv3002lSGAAAAAAA6V2qQvczzzyj6Oho5cmTR88888w9+3FONwAAAAAA/y9Vodtqtab4/wAAAAAA4N4cvk43AAAAAABIHUI3AAAAAABO4vLQHRoaqmLFisnb21uVK1fWjh077tk3KipKnTt3VpkyZeTm5qahQ4cm6xMWFiaLxZLsduvWLSfuBQAAAAAAybk0dC9fvlxDhw7V2LFjdejQIdWpU0fNmzdXREREiv3j4uLk7++vsWPHqmLFivfcrq+vr6Kiouxu3t7eztoNAAAAAABS5NLQPW3aNPXu3Vt9+vRRuXLlFBISosKFC2vWrFkp9i9atKhmzJihbt26yc/P757btVgsypcvn90NAAAAAICH7b5C96lTpzRu3Dh16tRJ58+flyR9+eWX+vHHH1O9jdu3b+vAgQNq0qSJXXuTJk20e/fu+ynL5tq1awoICFChQoXUqlUrHTp06IG2BwAAAADA/XA4dG/fvl0VKlTQvn37tHr1al27dk2SdPToUb3xxhup3s7FixeVmJiovHnz2rXnzZtX0dHRjpZlU7ZsWYWFhWnt2rUKDw+Xt7e3atWqpZMnT97zOXFxcYqNjbW7AQAAAADwoBwO3aNGjdLbb7+tzZs3y9PT09beoEED7dmzx+ECLBaL3X1jTLI2R9SoUUNdunRRxYoVVadOHa1YsUKlS5fWBx98cM/nTJo0SX5+frZb4cKF7/v1AQAAAABI4nDoPnbsmNq2bZus3d/fX5cuXUr1dnLnzi13d/dko9rnz59PNvr9INzc3FS1atV/HOkePXq0YmJibLfIyMg0e30AAAAAwKPL4dCdPXt2RUVFJWs/dOiQChYsmOrteHp6qnLlytq8ebNd++bNmxUUFORoWfdkjNHhw4eVP3/+e/bx8vKSr6+v3Q0AAAAAgAeVydEndO7cWSNHjtRnn30mi8Uiq9WqXbt2acSIEerWrZtD2xo+fLi6du2qKlWqqGbNmpo7d64iIiIUHBws6c4I9NmzZ7V48WLbcw4fPizpzmJpFy5c0OHDh+Xp6anAwEBJ0vjx41WjRg2VKlVKsbGxmjlzpg4fPqyPPvrI0V0FAAAAAOCBOBy6J06cqB49eqhgwYIyxigwMFCJiYnq3Lmzxo0b59C2OnTooEuXLmnChAmKiopS+fLltWHDBgUEBEiSoqKikl2zu1KlSrb/P3DggD799FMFBATozJkzkqQrV66oX79+io6Olp+fnypVqqRvv/1W1apVc3RXAQAAAAB4IBZjjLmfJ/722286ePCgrFarKlWqpFKlSqV1bS4TGxsrPz8/xcTEMNUcLld01HpXl+ByZ95t6eoSXI7jgOMAAO7G7wV+L8D1UpsbHR7pTlK8eHEVL15ciYmJOnbsmP766y/lyJHjfjcHAAAAAECG4/BCakOHDtX8+fMlSYmJiapXr56efPJJFS5cWN98801a1wcAAAAAQLrlcOheuXKlKlasKElat26dfvvtN/38888aOnSoxo4dm+YFAgAAAACQXjkcui9evKh8+fJJkjZs2KD27durdOnS6t27t44dO5bmBQIAAAAAkF45HLrz5s2r48ePKzExUV9++aUaNWokSbpx44bc3d3TvEAAAAAAANIrhxdS69mzp9q3b6/8+fPLYrGocePGkqR9+/apbNmyaV4gAAAAAADplcOh+80331T58uUVGRmp559/Xl5eXpIkd3d3jRo1Ks0LBAAAAAAgvbqvS4a1a9cuWVv37t0fuBgAAAAAADKS+wrd169f1/bt2xUREaHbt2/bPTZ48OA0KQwAAAAAgPTO4dB96NAhtWjRQjdu3ND169eVM2dOXbx4UT4+PsqTJw+hGwAAAACA/3J49fJhw4apdevWunz5sjJnzqy9e/fq999/V+XKlfX+++87o0YAAAAAANIlh0P34cOH9fLLL8vd3V3u7u6Ki4tT4cKFNXnyZI0ZM8YZNQIAAAAAkC45HLo9PDxksVgk3blmd0REhCTJz8/P9v8AAAAAAOA+zumuVKmS9u/fr9KlS6tBgwZ6/fXXdfHiRS1ZskQVKlRwRo0AAAAAAKRLDo90v/POO8qfP78k6a233lKuXLn04osv6vz585o7d26aFwgAAAAAQHrl8Eh3lSpVbP/v7++vDRs2pGlBAAAAAABkFA6PdEtSQkKCtmzZojlz5ujq1auSpD///FPXrl1L0+IAAAAAAEjPHB7p/v3339WsWTNFREQoLi5OjRs3VrZs2TR58mTdunVLs2fPdkadAAAAAACkOw6PdA8ZMkRVqlTRX3/9pcyZM9va27Ztq6+//jpNiwMAAAAAID1zeKR7586d2rVrlzw9Pe3aAwICdPbs2TQrDAAAAACA9M7hkW6r1arExMRk7X/88YeyZcuWJkUBAAAAAJAROBy6GzdurJCQENt9i8Wia9eu6Y033lCLFi3SsjYAAAAAANI1h6eXT5s2TQ0bNlRgYKBu3bqlzp076+TJk8qdO7fCw8OdUSMAAAAAAOmSw6G7YMGCOnz4sJYtW6YDBw7IarWqd+/eeuGFF+wWVgMAAAAA4FHnUOiOj49XmTJl9MUXX6hnz57q2bOns+oCAAAAACDdc+icbg8PD8XFxclisTirHgAAAAAAMgyHF1J76aWX9N577ykhIcEZ9QAAAAAAkGE4fE73vn379PXXX+urr75ShQoVlCVLFrvHV69enWbFAQAAAACQnjkcurNnz67nnnvOGbUAAAAAAJChOBy6Fy5c6Iw6AAAAAADIcBw+p/v06dM6efJksvaTJ0/qzJkzaVETAAAAAAAZgsOhu0ePHtq9e3ey9n379qlHjx5pURMAAAAAABmCw6H70KFDqlWrVrL2GjVq6PDhw2lREwAAAAAAGYLDodtisejq1avJ2mNiYpSYmJgmRQEAAAAAkBE4HLrr1KmjSZMm2QXsxMRETZo0SbVr107T4gAAAAAASM8cXr188uTJqlu3rsqUKaM6depIknbs2KHY2Fht3bo1zQsEAAAAACC9cnikOzAwUEePHlX79u11/vx5Xb16Vd26ddPPP/+s8uXLO6NGAAAAAADSJYdHuiWpQIECeuedd9K6FgAAAAAAMhSHR7qlO9PJu3TpoqCgIJ09e1aStGTJEu3cuTNNiwMAAAAAID1zOHSvWrVKTZs2VebMmXXw4EHFxcVJkq5evcroNwAAAAAAd3E4dL/99tuaPXu2Pv74Y3l4eNjag4KCdPDgwTQtDgAAAACA9Mzh0H3ixAnVrVs3Wbuvr6+uXLmSFjUBAAAAAJAhOBy68+fPr19//TVZ+86dO1W8ePE0KQoAAAAAgIzA4dDdv39/DRkyRPv27ZPFYtGff/6pTz75RCNGjNCAAQOcUSMAAAAAAOmSw5cMe/XVVxUTE6MGDRro1q1bqlu3rry8vDRixAgNGjTIGTUCAAAAAJAu3dd1uidOnKixY8fq+PHjslqtCgwMVNasWdO6NgAAAAAA0rX7Ct3GGN24cUPFihVTrly50romAAAAAAAyBIfO6Y6Ojla3bt2UI0cO5c2bV3ny5FGOHDnUq1cvnTt3zlk1AgAAAACQLqV6pDs2NlZBQUG6du2aevbsqbJly8oYo+PHjys8PFw7d+7UwYMHmWYOAAAAAMB/pTp0z5gxQ+7u7vrxxx/l7+9v99i4ceNUq1YtzZw5U2PGjEnzIgEAAAAASI9SPb18/fr1GjNmTLLALUl58uTR6NGjtW7dujQtDgAAAACA9CzVofuXX35RUFDQPR8PCgrSiRMn0qQoAAAAAAAyglSH7tjYWGXPnv2ej2fPnl2xsbFpURMAAAAAABlCqkO3MUZubvfubrFYZIxxuIDQ0FAVK1ZM3t7eqly5snbs2HHPvlFRUercubPKlCkjNzc3DR06NMV+q1atUmBgoLy8vBQYGKj//Oc/DtcFAAAAAMCDcih0ly5dWjlz5kzxVrZsWYdffPny5Ro6dKjGjh2rQ4cOqU6dOmrevLkiIiJS7B8XFyd/f3+NHTtWFStWTLHPnj171KFDB3Xt2lVHjhxR165d1b59e+3bt8/h+gAAAAAAeBCpXr184cKFaf7i06ZNU+/evdWnTx9JUkhIiDZt2qRZs2Zp0qRJyfoXLVpUM2bMkCQtWLAgxW2GhISocePGGj16tCRp9OjR2r59u0JCQhQeHp7m+wAAAAAAwL2kOnR37949TV/49u3bOnDggEaNGmXX3qRJE+3evfu+t7tnzx4NGzbMrq1p06YKCQm553Pi4uIUFxdnu8+56QAAAACAtJDq6eVp7eLFi0pMTFTevHnt2vPmzavo6Oj73m50dLTD25w0aZL8/Pxst8KFC9/36wMAAAAAkMRloTuJxWKxu2+MSdbm7G2OHj1aMTExtltkZOQDvT4AAAAAAJID08vTWu7cueXu7p5sBPr8+fPJRqodkS9fPoe36eXlJS8vr/t+TQAAAAAAUuKykW5PT09VrlxZmzdvtmvfvHmzgoKC7nu7NWvWTLbNr7766oG2CQAAAADA/XDZSLckDR8+XF27dlWVKlVUs2ZNzZ07VxEREQoODpZ0Z9r32bNntXjxYttzDh8+LEm6du2aLly4oMOHD8vT01OBgYGSpCFDhqhu3bp677331KZNG33++efasmWLdu7c+dD3DwAAAADwaHM4dCcmJiosLExff/21zp8/L6vVavf41q1bU72tDh066NKlS5owYYKioqJUvnx5bdiwQQEBAZKkqKioZNfsrlSpku3/Dxw4oE8//VQBAQE6c+aMJCkoKEjLli3TuHHj9Nprr6lEiRJavny5qlev7uiuAgAAAADwQBwO3UOGDFFYWJhatmyp8uXLP/CiZwMGDNCAAQNSfCwsLCxZmzHmf26zXbt2ateu3QPVBQAAAADAg3I4dC9btkwrVqxQixYtnFEPAAAAAAAZhsMLqXl6eqpkyZLOqAUAAAAAgAzF4dD98ssva8aMGama5g0AAAAAwKPM4enlO3fu1LZt27Rx40Y99thj8vDwsHt89erVaVYcAAAAAADpmcOhO3v27Grbtq0zagEAAAAAIENxOHQvXLjQGXUAAAAAAJDhOHxONwAAAAAASB2HR7olaeXKlVqxYoUiIiJ0+/Ztu8cOHjyYJoUBAAAAAJDeOTzSPXPmTPXs2VN58uTRoUOHVK1aNeXKlUu//fabmjdv7owaAQAAAABIlxwO3aGhoZo7d64+/PBDeXp66tVXX9XmzZs1ePBgxcTEOKNGAAAAAADSJYdDd0REhIKCgiRJmTNn1tWrVyVJXbt2VXh4eNpWBwAAAABAOuZw6M6XL58uXbokSQoICNDevXslSadPn5YxJm2rAwAAAAAgHXM4dDds2FDr1q2TJPXu3VvDhg1T48aN1aFDB67fDQAAAADAXRxevXzu3LmyWq2SpODgYOXMmVM7d+5U69atFRwcnOYFAgAAAACQXjkcut3c3OTm9v8D5O3bt1f79u3TtCgAAAAAADICh6eXS9KOHTvUpUsX1axZU2fPnpUkLVmyRDt37kzT4gAAAAAASM8cDt2rVq1S06ZNlTlzZh06dEhxcXGSpKtXr+qdd95J8wIBAAAAAEivHJ5e/vbbb2v27Nnq1q2bli1bZmsPCgrShAkT0rS4R13RUetdXYLLnXm3patLAAAAAID75vBI94kTJ1S3bt1k7b6+vrpy5Upa1AQAAAAAQIbgcOjOnz+/fv3112TtO3fuVPHixdOkKAAAAAAAMgKHQ3f//v01ZMgQ7du3TxaLRX/++ac++eQTjRgxQgMGDHBGjQAAAAAApEsOn9P96quvKiYmRg0aNNCtW7dUt25deXl5acSIERo0aJAzagQAAAAAIF1yOHRL0sSJEzV27FgdP35cVqtVgYGBypo1a1rXBgAAAABAunZfoVuSfHx8VKVKlbSsBQAAAACADCXVobtXr16p6rdgwYL7LgYAAAAAgIwk1aE7LCxMAQEBqlSpkowxzqwJAAAAAIAMIdWhOzg4WMuWLdNvv/2mXr16qUuXLsqZM6czawMAAAAAIF1L9SXDQkNDFRUVpZEjR2rdunUqXLiw2rdvr02bNjHyDQAAAABAChy6TreXl5c6deqkzZs36/jx43rsscc0YMAABQQE6Nq1a86qEQAAAACAdMmh0H03i8Uii8UiY4ysVmta1gQAAAAAQIbgUOiOi4tTeHi4GjdurDJlyujYsWP68MMPFRERwXW6AQAAAAD4m1QvpDZgwAAtW7ZMRYoUUc+ePbVs2TLlypXLmbUBAAAAAJCupTp0z549W0WKFFGxYsW0fft2bd++PcV+q1evTrPiAAAAAABIz1Idurt16yaLxeLMWgAAAAAAyFBSHbrDwsKcWAYAAAAAABnPfa9eDgAAAAAA/hmhGwAAAAAAJyF0AwAAAADgJIRuAAAAAACchNANAAAAAICTELoBAAAAAHASQjcAAAAAAE5C6AYAAAAAwEkI3QAAAAAAOAmhGwAAAAAAJyF0AwAAAADgJIRuAAAAAACchNANAAAAAICTELoBAAAAAHASQjcAAAAAAE5C6AYAAAAAwEkI3QAAAAAAOAmhGwAAAAAAJ3F56A4NDVWxYsXk7e2typUra8eOHf/Yf/v27apcubK8vb1VvHhxzZ492+7xsLAwWSyWZLdbt245czcAAAAAAEgmkytffPny5Ro6dKhCQ0NVq1YtzZkzR82bN9fx48dVpEiRZP1Pnz6tFi1aqG/fvlq6dKl27dqlAQMGyN/fX88995ytn6+vr06cOGH3XG9vb6fvDwAAzlR01HpXl+ByZ95t6eoSAABwiEtD97Rp09S7d2/16dNHkhQSEqJNmzZp1qxZmjRpUrL+s2fPVpEiRRQSEiJJKleunPbv36/333/fLnRbLBbly5fvoewDAAAAAAD34rLp5bdv39aBAwfUpEkTu/YmTZpo9+7dKT5nz549yfo3bdpU+/fvV3x8vK3t2rVrCggIUKFChdSqVSsdOnToH2uJi4tTbGys3Q0AAAAAgAflstB98eJFJSYmKm/evHbtefPmVXR0dIrPiY6OTrF/QkKCLl68KEkqW7aswsLCtHbtWoWHh8vb21u1atXSyZMn71nLpEmT5OfnZ7sVLlz4AfcOAAAAAIB/wUJqFovF7r4xJlnb/+p/d3uNGjXUpUsXVaxYUXXq1NGKFStUunRpffDBB/fc5ujRoxUTE2O7RUZG3u/uAAAAAABg47JzunPnzi13d/dko9rnz59PNpqdJF++fCn2z5Qpk3LlypXic9zc3FS1atV/HOn28vKSl5eXg3sAAAAAAMA/c9lIt6enpypXrqzNmzfbtW/evFlBQUEpPqdmzZrJ+n/11VeqUqWKPDw8UnyOMUaHDx9W/vz506ZwAAAAAABSyaXTy4cPH6558+ZpwYIF+umnnzRs2DBFREQoODhY0p1p3926dbP1Dw4O1u+//67hw4frp59+0oIFCzR//nyNGDHC1mf8+PHatGmTfvvtNx0+fFi9e/fW4cOHbdsEAAAAAOBhceklwzp06KBLly5pwoQJioqKUvny5bVhwwYFBARIkqKiohQREWHrX6xYMW3YsEHDhg3TRx99pAIFCmjmzJl2lwu7cuWK+vXrp+joaPn5+alSpUr69ttvVa1atYe+fwAAAACAR5tLQ7ckDRgwQAMGDEjxsbCwsGRt9erV08GDB++5venTp2v69OlpVR4AAAAAAPfN5auXAwAAAACQURG6AQAAAABwEkI3AAAAAABOQugGAAAAAMBJCN0AAAAAADgJoRsAAAAAACdx+SXDAAAAkHpFR613dQkud+bdlq4uAQBSjZFuAAAAAACchNANAAAAAICTELoBAAAAAHASQjcAAAAAAE5C6AYAAAAAwElYvRwAAAAA0iGuZpA+rmbASDcAAAAAAE5C6AYAAAAAwEkI3QAAAAAAOAmhGwAAAAAAJyF0AwAAAADgJIRuAAAAAACchNANAAAAAICTELoBAAAAAHASQjcAAAAAAE5C6AYAAAAAwEkI3QAAAAAAOAmhGwAAAAAAJyF0AwAAAADgJIRuAAAAAACchNANAAAAAICTELoBAAAAAHASQjcAAAAAAE5C6AYAAAAAwEkI3QAAAAAAOAmhGwAAAAAAJyF0AwAAAADgJIRuAAAAAACchNANAAAAAICTELoBAAAAAHASQjcAAAAAAE5C6AYAAAAAwEkI3QAAAAAAOAmhGwAAAAAAJyF0AwAAAADgJIRuAAAAAACchNANAAAAAICTELoBAAAAAHASQjcAAAAAAE5C6AYAAAAAwEkI3QAAAAAAOAmhGwAAAAAAJyF0AwAAAADgJIRuAAAAAACchNANAAAAAICTuDx0h4aGqlixYvL29lblypW1Y8eOf+y/fft2Va5cWd7e3ipevLhmz56drM+qVasUGBgoLy8vBQYG6j//+Y+zygcAAAAA4J5cGrqXL1+uoUOHauzYsTp06JDq1Kmj5s2bKyIiIsX+p0+fVosWLVSnTh0dOnRIY8aM0eDBg7Vq1Spbnz179qhDhw7q2rWrjhw5oq5du6p9+/bat2/fw9otAAAAAAAkuTh0T5s2Tb1791afPn1Urlw5hYSEqHDhwpo1a1aK/WfPnq0iRYooJCRE5cqVU58+fdSrVy+9//77tj4hISFq3LixRo8erbJly2r06NF66qmnFBIS8pD2CgAAAACAO1wWum/fvq0DBw6oSZMmdu1NmjTR7t27U3zOnj17kvVv2rSp9u/fr/j4+H/sc69tAgAAAADgLJlc9cIXL15UYmKi8ubNa9eeN29eRUdHp/ic6OjoFPsnJCTo4sWLyp8//z373GubkhQXF6e4uDjb/ZiYGElSbGysQ/uU1qxxN1z6+v8Grn4P/g04DjgOJI4DieNA4jiQOA4kjgOJ40DiOJA4DiSOA8m1x0HSaxtj/rGfy0J3EovFYnffGJOs7X/1/3u7o9ucNGmSxo8fn6y9cOHC9y4cD4VfiKsrwL8BxwEkjgPcwXEAieMAd3AcQPp3HAdXr16Vn5/fPR93WejOnTu33N3dk41Anz9/PtlIdZJ8+fKl2D9TpkzKlSvXP/a51zYlafTo0Ro+fLjtvtVq1eXLl5UrV65/DOsZWWxsrAoXLqzIyEj5+vq6uhy4CMcBJI4D3MFxAInjAHdwHEDiOJDuDO5evXpVBQoU+Md+Lgvdnp6eqly5sjZv3qy2bdva2jdv3qw2bdqk+JyaNWtq3bp1dm1fffWVqlSpIg8PD1ufzZs3a9iwYXZ9goKC7lmLl5eXvLy87NqyZ8/u6C5lSL6+vo/sPyL8P44DSBwHuIPjABLHAe7gOIDEcfBPI9xJXDq9fPjw4eratauqVKmimjVrau7cuYqIiFBwcLCkOyPQZ8+e1eLFiyVJwcHB+vDDDzV8+HD17dtXe/bs0fz58xUeHm7b5pAhQ1S3bl299957atOmjT7//HNt2bJFO3fudMk+AgAAAAAeXS4N3R06dNClS5c0YcIERUVFqXz58tqwYYMCAgIkSVFRUXbX7C5WrJg2bNigYcOG6aOPPlKBAgU0c+ZMPffcc7Y+QUFBWrZsmcaNG6fXXntNJUqU0PLly1W9evWHvn8AAAAAgEebyxdSGzBggAYMGJDiY2FhYcna6tWrp4MHD/7jNtu1a6d27dqlRXmPLC8vL73xxhvJpt3j0cJxAInjAHdwHEDiOMAdHAeQOA4cYTH/a31zAAAAAABwX9xcXQAAAAAAABkVoRsAAAAAACchdAMAAAAA4CSEbgAAAAAAnITQDQAAAACAkxC6gUdQ0kULEhMTXVwJAAAA/g0mTZqkkSNHymq1urqUDIfQ/QjjanGPLovFog0bNmjevHmSOBYeNUnv993vO79gHz33es/5PACAR1P27Nk1ZcoUvfPOO/xdkMYyuboAPDzGGFksFp08eVK5cuVSzpw5XV0SXGjVqlW6ePGi+vfvL6vVKnd3d1eXhIfAarXKze3O960xMTHy9PSUt7e33Nzc7B5DxmaMsb3Xn332mS5fviw3Nzd17NhR2bJlc3F1eJiS/ja4G58Fj6akYyE+Pl7x8fHy8fFJ9hgyLmOMXnzxRfn4+KhXr14yxmjkyJHy9PR0dWkZAp+oj4ikD8s1a9bo+eef19y5c3Xz5k1XlwUXKly4sM6dOydJBO5HxN1Ba8qUKXruuefUsGFDtWjRQmfPnuWP7EfE3X88Dxs2TP3799fMmTM1ceJEBQYGauvWrYxwPILOnDmjn376SX/99RefBY+gpM+F9evXq3PnzqpUqZKGDRumFStWSBKBO4O7e4bT008/rbfeektvvPGGPvzwQ05FTCN8qj4iLBaL1q5dq44dO6pfv3564YUXlDlzZtvjTCd8NEREROjXX3+VJNWqVUtWq1V//fWX7Q9sYwx/bGdgSX80jR07VlOmTFHXrl317rvv6ocfflCrVq10+fJlF1eIhyHpODh58qSOHj2qbdu2affu3Tp06JCqV6+ujh076vDhw5L43ZBRTZs2TV9++aWkO8fD6tWrVb16dbVq1Uply5bV+vXr+V3wiLFYLFq3bp3at2+vwMBAvf322zp69KjGjBmj77//3tXlwcksFossFotWrVqlqlWr6pdfflG+fPk0YsQIppqnFYNHwoULF0ydOnXM9OnTjTHG3Lx505w7d86EhYWZ/fv3u7Y4PBQ//PCDyZkzp8mRI4epW7euKVWqlPHz8zNLly41u3fvNomJia4uEQ/B77//bqpUqWI2bdpkjDFm3bp1xs/Pz4SGhtr143jImKxWqzHGmIULF5rq1aubRo0amatXr9rajTGmWbNmplKlShwDGdjTTz9tsmTJYrZu3WrOnDljihUrZj788EOzbds2M2DAAOPp6WnCwsJMfHy8q0vFQ2C1Ws3ly5dNw4YNzdSpU40xxty4ccPkyZPHDBs2zMXV4WH58ccfja+vr5k9e7a5ceOG+fPPP8306dONm5ubmTBhAp8HD4hzuh8Rnp6eunz5su1cnfHjx2vHjh06deqULl++rM8++0xPP/20q8uEEz322GPauHGjEhMTdfDgQZ05c0ZTp07VmDFj5O7uLjc3NyUmJuqFF17Q66+/zjk8GdTly5d19uxZNWnSRBs2bFCnTp30/vvvq3///rp27ZoWL16s/v37c8pBBvPzzz8rZ86cypMnj27duqWzZ88qJiZG58+fV9asWSVJt27dkre3t1555RX16NFDJ06cULly5VxcOZzhP//5j3r16qV27dopJCREzzzzjAYOHChJql+/vrJly6Z+/frJYrGoc+fOypSJPxczIvPfKeUWi0U+Pj6KjY1Vs2bNdObMGdWqVUtt2rTRtGnTJEmbN29W0aJFVapUKRdXDWe5cuWKcufOrWbNmilz5szKnDmzhg4dqsTERL3yyivy9fXViy++yN+H94np5RmU+e+UwDNnzujcuXPy9fVV06ZNNWPGDOXMmVM//fSTOnfurMjISDVv3lyffPIJU0cymKRjICYmRhcvXpQkVatWTTVr1tTAgQM1ZcoUNW3aVJ07d9a3336r999/Xy+99JJeeOEFPlAzCJPC1ODChQsrMDBQI0aMUIcOHTRt2jT1799f0p3TD9auXavdu3c/7FLhRMuWLVPPnj01ZswYxcTEyNvbW4MGDdKAAQMUGxur7t27S5K8vb0lSZkzZ5YxhvP4MqCkzwQ3NzeFhYWpWbNm6t69u/bt26cbN27Y+r377rsaOnSoBgwYoAULFighIcFVJcOJLBaLPv30U02cOFGXLl1STEyMtmzZosaNG6tFixaaNWuWJCkyMlILFy7Uzz//7OKKkdbu/jvBw8NDp0+f1p9//inp/y8r27ZtW+XIkUPDhg1TSEiIK8rMGFw4yg4nSZomuGbNGlOjRg3zwQcfmISEBHP69GmzZcsWs2TJEnPz5k1b/44dO5qRI0e6qlw4QdIxsHbtWhMUFGTKli1rqlevbmbNmmXOnTtn69eoUSMzePBgV5UJJ7p7avCkSZPM2rVrjTHGxMTEmOeff964u7ubl156ydbnxo0bpkWLFqZly5ZMK85AFixYYHx9fc2sWbPMgQMHjDH///kQExNjpk+fbkqVKmXatWtnfvrpJ7Nv3z7TvHlzU6NGDY6DDCjpvb906ZKtbcCAAcbb29ts3LgxWf+BAweaPHnymCtXrjy0GuF8ScdBZGSk8fPzM9OmTTPGGDN58mRjsVhMs2bN7PqPGTPGBAYGmt9///2h1wrnSDoGkv6b9Hnfpk0bU79+fXP06FFb3ytXrpjevXub0NBQc/z48YdfbAZB6M6g1qxZY7y9vU1ISIiJjIxMsc+ff/5pxo4da3LlysU/ogxo48aNJkuWLGbSpEnmt99+M506dTI5c+Y0X331le1DdtKkSbZfrnef04n07e6w9Msvv5hGjRoZT09Ps2XLFmOMMWfOnDHVqlUz1atXN3369DFvv/22qVu3rqlQoYK5fft2sm0gffrmm29M3rx5zWeffZbssaT3+dq1a2bmzJnGz8/P+Pj4mC5duph+/fqZGzduGGOMSUhIeKg1w3mSPuPXr19vOnXqZNasWWOMufMed+nSxWTPnt18/fXXyZ539xe1yDi2bdtmQkNDzYgRI2xtf/zxhwkODjYWi8W8/fbbZuLEiaZ///7G19fXHDp0yHXFIk0lfRZs3brVjBw50vTo0cOEhISYa9eumT179pgmTZqYWrVqmS1btpijR4+aUaNGmbJly5qYmBgXV56+Mb08A4qOjtbEiRM1efJkDRkyRP7+/rp48aJWrlypQ4cOSZLWr1+v0aNH69NPP9WWLVs4by8DuPv0gLi4OC1cuFBDhgzRqFGj5Ofnp71796pjx45q3LixbfViDw8PHT9+XLdv3+ZyIBlI0uV+xowZo+7du8vb21tZsmRRy5Yt9cUXXyggIEDLly9X48aN9fPPP2v//v2qVKmSDh48KA8PDyUkJHDJoAzgyJEjql27tp577jlb2zfffKPx48erfv36eu+993T58mX169dPb775pgIDA+Xu7q45c+Yoc+bMunnzJuf2ZyBJlw199tln9eSTT6po0aKS7lwyctGiRWrVqpWee+45bdu2ze55efLkcUG1cKbr169r9uzZGjhwoI4cOWJrL1iwoMaPH6+pU6dq5cqV2rBhg65fv65du3bpiSeecF3BSFNJVyxo3bq1bty4IQ8PDy1ZskRPPfWUatSooSFDhqhIkSJq3LixnnnmGS1atEiffvqpfH19XV16+ubq1I+0Fxsba5544gkza9Ysc/PmTTNu3DhTq1Ytky9fPpMpUyazdetWEx0dbT755BNz+vRpV5eLNHD69Gkzd+5cc/DgQVtb/fr1zY4dO8zFixdN/vz5Tb9+/WyPrV692vzwww8mMjLS/Pbbb64oGU62ePFikyVLFrNnzx4TGxtrjh49arp37248PDzMF198YYy5M5r99xkOjGxmHGPHjjUlS5Y0sbGxxhhjXn31VVOvXj3z2GOPmfbt2xsvLy/bKQaXL18206ZNMxUqVDCDBg1yZdlwkoiICPP444+bGTNm2LUnzWpJTEw03bp1MxaLxWzfvt0VJeIhOnDggOnZs6fx9PQ0e/bsMcbYz3hLGtW8deuWS+qD8/zxxx+mfPny5qOPPjLG3Lmqib+/vwkODrbrd+TIEXP06FETFRXlijIzHIYyMqC4uDhVrFhRc+fOlb+/v44dO2a77mqjRo20ZMkS5c2bVx07drR9043069ixY2ratKk2btyo6OhoW7ubm5umTp2qatWq6ZlnntGHH34oSYqNjdWSJUu0Y8cOFSxYUMWKFXNV6XCi3377TbVr11aNGjWULVs2VahQQZMmTVKbNm3Url07ffPNN3Jzc0u22BojmxlHgwYNlDt3btWoUUOPPfaYli9frueee07r1q3T8uXL9f7772vOnDn67bfflCNHDvXq1Ut9+vTRmjVr9PLLL7u6fDwgc+cUQtv969ev69KlS6pSpYpdn6RZLW5ublq0aJF69+6tvHnzPvR64Tx//5yXpCeffFLDhg1Ty5Yt1apVK33//feyWCxKTEyUMUbZsmWTJBZWzYD++usvxcXFqWfPnoqMjFTt2rXVtm1b28J5X331lW7evKnHH39cFSpUUL58+VxcccbANSDSOfPfyz389ddfcnNzk6+vr3Lnzq3Ro0frxIkTunz5stq3by8fHx9Jko+PjwoWLChJTB/NAH7++WfVq1dP/fv310svvaQCBQrYHnvllVc0cOBAeXh4KDQ01NY+efJkHT16VO+//z5TyjMIq9VqC9BJ72m2bNl04MABxcTEyM/PT8YY5c+fXx06dNCqVavUrFkzbdq0SfXq1bN7HtKvv7+PTz31lGJiYnTs2DFdu3ZNr7zyinLmzGm7/FOePHlUuXJlZcuWTcYY+fn5qVu3bvL09FSTJk1ctRtII0nHwqZNm5Q5c+Zkl/1KTEy0fcm2e/dunTt3Tm3bttXHH3/80GuF8yR9LuzcuVPr1q2TJJUrV049evRQhQoVNGHCBE2YMEGtWrXShg0bVLlyZdvvFEn8bshAjh07pscee0zu7u7Knz+/9uzZo549e6p58+b66KOPJEk//fSTVq1apZw5c9p9QYcHZzEpff2FdCHpg3T9+vWaOHGirl+/LqvVqrlz56pq1ap2v2AvXryo6dOna+7cudqxY4fKli3rwsqRFm7evKlu3bopb968tlFsSYqPj9fly5d16tQpbdu2TcuWLVOePHlUoUIFnTt3Tl9++aW2bt2qSpUqubB6pJXw8HB9+eWXGjlypAoXLmwbnTh06JD69eunevXq6dVXX7Wdl7l3716FhYVJunPd1e3bt6tQoUKuKh9p5O4/ki9duqSbN2/+4/saFxen559/XlmzZtUnn3wii8Vi+53ClzAZx969exUUFKSVK1eqVatWqlq1qnLlyqVNmzbJw8PD1u+VV15RTEyMQkJCbF/SI327fv26smTJIunOddn79OmjunXrKmvWrFq7dq2GDRumN998U9KdMDZp0iStWLFC33//PX8fZCBJn+dHjhzRM888o7179ypr1qyqXr26jh8/rp49e2r+/Pm2/iNGjNCuXbv0+eefs55DWnvI09mRBu5eVXjt2rUmW7ZsZvz48Wbfvn2mVatWpnjx4mbFihW2y4KtXr3a9OjRwwQEBNid84v07fbt26Z27drmgw8+sLV9+eWXZujQoSZr1qymfPny5sknnzSbNm0ynTt3Nq1btzZDhgwxP/30kwurRlq6cuWKKVGihPH39zfly5c33bt3NwsWLLA9Pm3aNFO1alXTu3dvc+TIEfPzzz+bli1bml69etlWtk5a0Rzp0+LFi01cXJzt/tixY83jjz9ucuTIYdq3b28++eQTu/7Xr18333//vWnevLmpUKGCiY+PN8Zw9YKM6Pjx4+bLL780EydOtLUdPHjQFCpUyNSpU8ds3LjRbNy40QwbNsz4+vqaY8eOubBapKX9+/ebEiVKmAsXLpjvv//eFC5c2ISGhhpjjDlx4oTx8/MzFovF7rKRBw8eND169DAnTpxwVdlII1OnTjVPP/20Xdt3331nHnvsMds5+j/99JMpUKCAadq0qVmzZo358ssvzeDBg42vr685cuSIK8rO8Ajd6cgPP/xgdz8iIsLUqlXLvP/++8YYY6Kiokzx4sVNQECAyZo1q1m2bJkxxpiTJ0+auXPnsmBWBhMTE2PKli1r+vbta3766SfzzjvvmDJlypjnnnvOhISEmHnz5pmyZcuacePG2Z7DH9YZS0JCghk9erSZPXu2OXDggJkyZYrx8/Mz7dq1M9OmTTO3b982U6ZMMa1btzYWi8WULFnSVKhQwRhjTHR0tClVqhQLJqVjO3bsMBaLxYwcOdIYY8wHH3xg8uTJY+bMmWOWLl1qGjRoYGrXrm2mT59ujLnzRd3o0aNNw4YNTYsWLWyXDWPxvIznwoULxtfX11gsFvPyyy/bPfbrr7+a6tWrmxIlSphixYqZ6tWrczmoDOTw4cMmW7ZsZsiQIcYYYxYsWGA7BiIiIkzRokVN3759zZw5c4zFYjGvv/667bl3f4GH9GvNmjUmS5Ysplu3bra2tWvXmooVKxpj/v9vwR9++MFUrlzZlChRwpQpU8bUr1/fHD582BUlPxII3enEmjVrzGOPPWaWLFliazt16pSZOnWquXLliomKijKlS5c2/fv3N8YY06RJE1OiRAmzaNEiYwxhK6P6+uuvTaZMmUxAQIDJli2bmT17tjl58qQx5s4f2E2aNDFdunSx9ec4yHg2btxo9830zZs3zeuvv24sFoupVauWmThxotm9e7f57rvvzOHDh20zZV5++WVTvnx5ViVNp5Lex+XLlxsvLy/z+uuvm0mTJtn9joiKijLBwcEmKCjItjrxF198YdauXWt7ftJINzKWhIQEs3btWlOqVCnz1FNP2b5YuXum3KlTp8zp06fN5cuXXVUm0tiRI0eMj4+PGTNmjF37N998Y4wxplGjRqZnz57GGGMiIyNNwYIFjcVisbtWN9K/xMREs3HjRpMzZ07TsWNHY0zKoduYO38rRkREmLNnz9qudAHnIHSnE/v37zfPP/+8qVevnlm6dKmtPWn0evjw4aZNmza2fzAvvvii8fLyMoUKFeJi9hlcRESE2b9/v7lw4YJde2Jionn++edtI90E7oxr4MCBZsCAAbb7gYGB5plnnjEjRowwzZo1MxaLxcyfP98YY8z27dvNiy++aHLkyMHoVjr1/PPP27134eHhxsPDw1gsFjNt2jRjzP//e798+bIpWrSoGTt2bLLt3B3AkPHcvHnTrF+/3mTPnt3uy9ekGQ7IWCIiIkzu3LlN+/bt7dpDQ0PNq6++ak6fPm2efPJJs3PnTmOMMZcuXTI9evQwS5cuNT///LMrSkYas1qtts/1iIgIs2nTJpMrVy7Tv39/s3XrVtOoUSPzxRdfmD179piTJ0+a/fv3my+//NJcunTJxZU/Gli9PJ2oXLmyxo0bp3fffVezZs2SMUZdunSxXe4pIiJChQoVUtasWSVJ3t7e2rVrlwoVKsTF7DO4woULq3DhwnZtt2/f1ltvvaVdu3Zp4sSJkliBNCOrVKmSFi5cqMuXL6tRo0bKkSOHFi1aJF9fX0VHR2vHjh1q27atpDufDe7u7tq1a5fKlSvn4spxP7y8vGyLYRpj1LFjR2XOnFmdOnXS3r17FRMTY/vcz5Ejh+rUqaPTp0/bLbYmcQWLjML8d6GkgwcP6pdfftG1a9fUsWNHZc2aVc2aNdPSpUvVuXNnde/eXYsWLZKHhweL5WVAiYmJKlasmG7duqVdu3apVq1amjRpkt59912tW7dOnp6eOnbsmHbt2qVKlSrp/fff17FjxzR16lTlzJnT1eUjDVgsFlksFq1evVrz5s3T+++/ryVLluiFF17QggULVKJECQ0bNkzXrl2Tj4+Pbty4IU9PT23bto1j4GFwbeZHatw9GnH48GHTsWNHU6tWLbsFcnr16mUKFChgQkJCTJ8+fYyvr685deqUK8qFiy1ZssQMHjzY5M2bl4XzHiFVq1Y1FovF1KtX757fWidNJea8vYzhgw8+MFu3brVNHV6+fLnJlCmTGTp0qImOjjbG3BntrFixou38TmQsSTMaVq1aZQoWLGgqVqxoKlSoYAoVKmSbDWG1Ws0XX3xhcuXKZdq2bevCauFsv/zyi2nWrJl5+umnTd++fU2ePHnMpk2bbI9PnjzZWCwWU6pUKZMrVy7+RshAkj4Lzp49a6pUqWJmz55ta//yyy9N8eLFTb169cyNGzdMTEyMiY6ONhcuXGCU+yEidP/LJf0jOnjwoG0htaNHj5pOnTqZ2rVrm8WLF9v6tmnTxjz++OOmWrVqTBt9RP3888+mfv36pm3btub48eOuLgcPQdJnxJIlS0z58uXN/v377dqRcWzatMlMmTLFfPfdd8YYY0qXLm2KFClidu7caQveSVPNK1eubDp37mz7vcCU4owhpVMCvvnmG+Pn52fmzZtnjDHmxx9/NBaLxRQtWtTs2LHDGHPn82D16tWmSJEi5uzZsw+1ZjxcJ06cMI0bNzaZM2e2LbSbJC4uzhw4cMCsWbPGREREuKhCOMumTZvMqFGjTKdOnczFixdt7bdv3zYbNmww2bJlM3369HFhhY82rtP9L2b+O/1r9erVGjBggIKDgxUcHKx8+fLpyJEjeu+99xQREaH+/fura9eukqQLFy7Ix8fHdm1GPHrOnz8vLy8v+fn5uboUPERnz55V1apVNXjwYI0aNcrV5SCNLVy4UK+99pqefvpp9ejRQ9WqVZMk1apVS9HR0Vq0aJFq1qwpd3d3rV69Wj179pS/v78+/vhj1a1bV+7u7kpISFCmTJxVll4lnR4QGRmpTZs26fr16ypatKjOnTunc+fO6bXXXlNkZKRq166tpk2bKioqSgcOHNCqVatUs2ZNGWN048YN/j54BJw6dUoDBgyQu7u7xowZo9q1a0tSslNMkLF88MEHGjJkiLJnz67du3fbTkOS7mSKTZs2qUWLFurbt6/mzJnjwkofUS6N/Piftm7darJmzWrmz59vzp8/b/fY4cOHTadOnUy9evXM3LlzXVQhgH+LmTNnmly5cpkff/zR1aUgDYWHhxsfHx+zfPly28KYd1/mq3bt2iYgIMDs2LHD1r548WJTp04d24wHLguWviWNcB85csQULVrUVKpUyfj6+pqcOXOa559/3vzxxx8mJibG1KhRw/Tr188YY8yePXuMxWIxvr6+ttXr8ehImmretGlT2+JpyPgWLVpku5Tk369MkJiYaDZv3szCeS7C113/ElarNcX2zz//XK1bt1avXr2UO3duSVJCQoIkqWLFihozZoyyZs2q1atXKzY29qHVC+Dfp0WLFmrZsqXdt9tI386fP69Zs2Zp8uTJat++vW2BtJs3b2rXrl06ceKEduzYocDAQHXp0kV79+5VYmKiunbtqm+//VYWi0VWq1Xu7u4u3hPcr6TRyaNHj6pmzZrq0KGDvv76a23atElt2rTRzp07deXKFR0/flwJCQl66aWXJEkeHh5q37692rRpoxw5crh4L/CwlSpVSjNnzpSHh4dGjBihvXv3urokpCHz34nKt2/f1s2bN23t3bp108yZMzV58mSFhoYqJibG9pibm5saNWqkMmXKPPR6ITHP7F8gpSljgYGBaty4sY4ePaqCBQtKurMqoTHGNj0wMjJS5cuX17vvvqscOXKw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AwDAvx2hGwCADObJJ5/UiRMnkoXxJPv371dCQoKmTp0qN7c7a6quWLHCro+np6cSExOTPdff319RUVG2+ydPntSNGzf+sZ68efOqYMGC+u233/TCCy/cs5+vr686dOigDh06qF27dmrWrJkuX76snDlz/uP2AQD4NyN0AwCQwbz++utq1aqVChcurOeff15ubm46evSojh07prffflslSpRQQkKCPvjgA7Vu3Vq7du3S7Nmz7bZRtGhRXbt2TV9//bUqVqwoHx8f+fj4qGHDhvrwww9Vo0YNWa1WjRw5MlWXA3vzzTc1ePBg+fr6qnnz5oqLi9P+/fv1119/afjw4Zo+fbry58+vJ554Qm5ubvrss8+UL18+rhUOAEj3uGQYAAAZTNOmTfXFF19o8+bNqlq1qmrUqKFp06bZFid74oknNG3aNL333nsqX768Pvnkk2SX5woKClJwcLA6dOggf39/TZ48WZI0depUFS5cWHXr1lXnzp01YsQI+fj4/M+a+vTpo3nz5iksLEwVKlRQvXr1FBYWpmLFikm6szr6e++9pypVqqhq1ao6c+aMNmzYYBuJBwAgvbKYv5+YBQAAAAAA0gRfHwMAAAAA4CSEbgAAAAAAnITQDQAAAACAkxC6AQAAAABwEkI3AAAAAABOQugGAAAAAMBJCN0AAAAAADgJoRsAAAAAACchdAMAAAAA4CSEbgAAAAAAnITQDQAAAACAkxC6AQAAAABwkv8DQ0JHaMFiaGsAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1000x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Convert importances to pandas Series for plotting\n",
    "forest_importances = pd.Series(feature_importances, index=X.columns)\n",
    "\n",
    "# Plot feature importances\n",
    "fig, ax = plt.subplots(figsize=(10, 5))\n",
    "forest_importances.plot.bar(ax=ax)\n",
    "ax.set_title(\"Feature Importances using MDI\")\n",
    "ax.set_ylabel(\"Mean Decrease in Impurity\")\n",
    "ax.set_xlabel(\"Features\")\n",
    "plt.xticks(rotation=45, ha='right')  # Rotate feature names for better visibility\n",
    "fig.tight_layout()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ceb10bce-436e-4e7c-a4c8-ae2525fce57d",
   "metadata": {},
   "source": [
    "# `Seaborn visualization`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 223,
   "id": "0b5a1c79-68ee-4f28-8670-3d8c8f7f8477",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA38AAAIlCAYAAABl1UGqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB8EUlEQVR4nO3deXxTdfb/8fdNutLSlrLv+yogSAER2fdFcUBRcVQEHZzRwV0BF0BUwF0cd2WRUUHFQUVwF4UREBBEFBhlK4gsAm1lb5P7+8Nf8yU2l08LLbkhr+fjkYc0ubk5Sd6JPb33nmvZtm0LAAAAAHBG84S7AAAAAABAyaP5AwAAAIAoQPMHAAAAAFGA5g8AAAAAogDNHwAAAABEAZo/AAAAAIgCNH8AAAAAEAVo/gAAAAAgCtD8AQAAAEAUoPkDAAARZ8WKFfJ4PHrzzTfDXcop6dy5syzLCncZ+JOxY8eqdOnS2rVrV7hLAYoVzR+AEmFZVpEu4fDVV1/p9ttvV5cuXZSamirLsjR06FDH5RcuXHjC57B06dJCP7bp9diyZcupP0GDLVu2GJ+zG+W/D9dff324Sykx06dPl2VZmj59erhLca3bbrtNTZo00SWXXBJ0/Z8/SzExMapYsaL69++vTz/9NEzVRr78TDpdOnfuHO4SiyT/e2TcuHEhb7/lllvk9Xp13333nd7CgBIWE+4CAJyZxo4dW+C68ePHKzU1VTfffPPpLyiEqVOnasaMGSpVqpRq1KihnJycQt2vU6dOIX/RqVatWpEev2zZsrrxxhtD3paWllakdQHR5JNPPtFXX32ladOmhfzj0fGfrSNHjuiHH37QBx98oA8++ECvv/66Lr/88tNd8hmjW7duOv/88wtcX6tWrdNfTAlKS0vTtddeqyeffFJjxoxRzZo1w10SUCxo/gCUiFB/TR0/frzS0tIc/9J6ut14442644471KhRIy1fvlzt2rUr1P06d+5cLM+hXLlyrnktgEjy/PPPKzExUYMGDQp5e6jP1qxZs3T55Zdr9OjRNH+noHv37ho1alS4yzgt/vrXv+qxxx7TSy+9pAceeCDc5QDFgt0+AYTdoUOHNG7cODVq1EgJCQlKT09Xv3799PXXXxdYdty4cbIsSwsXLtRLL72ks846SwkJCapRo4ZGjx6tI0eOFPpxMzIydNZZZ8nr9Rbn0yl2mzdv1rXXXqsaNWooPj5elStX1tChQ7V169YCy/7nP//R5Zdfrnr16qlUqVJKTU1Vhw4dNGfOnKDlpk+frtq1a0uSZsyYEbT71sKFCyVJQ4cOddwF9fj3Id/xu1EtWbJEvXr1UlpaWtCWGdu2NXXqVLVv314pKSkqVaqUMjIyNHXq1FN+nfKPnTp69KjGjBmjGjVqKDExUa1atQrs7vf7779r5MiRqlq1qhISEtSuXTutWLGiwLpq1aqlWrVqaf/+/bruuutUsWJFJSYmqk2bNnrvvfdCPv7J5njGjBlq1aqVSpUqpc6dO2vo0KG65pprJEnXXHNNyN2jV65cqRtvvFFNmzZVamqqEhMT1axZM02aNEm5ubmOz+fgwYO69dZbVbVqVcXHx6t58+Z6++23Qz6fY8eO6amnnlKbNm1UunRpJScnq0mTJrr11lu1f//+oGV3796tW265RfXq1VN8fLzKlSunQYMGae3atQXW+9NPP+maa65R7dq1lZCQoHLlyumcc87RbbfdFrKOP9u3b5/ee+899e7dW6VLly7UfSTp0ksvVXJysrZu3arffvst6LbCfm6k4N2lN23apIsvvlhlypRRUlKSunfvru+++y7k4y9evFidOnVSUlKSypYtq0svvVTbtm1zrPdk8zRt2jQ1a9ZMiYmJql27tqZMmSLpj8/eU089FVhfgwYNNHPmzEK/fkU1b968wC71iYmJatGihZ588kn5fL6g5Y5/PdevX6+BAweqXLlyBb573n33XXXr1k1lypRRQkKCmjZtqkcffbTA+vx+v15++WW1adNG6enpKlWqlGrVqqWLLrpIX331VeD16tKli6Q//ijptMt9ixYtVL9+fXa/xhmFLX8Awuro0aPq1q2bli5dqnPOOUc333yzdu/erdmzZ+vjjz/W7NmzNXDgwAL3e+yxx7Rw4UJdeuml6t+/v+bPn69JkyZp1apVWrBgQYkeR/jTTz9pypQpOnTokGrWrKkePXqoXLlyJfJYy5YtU69evXTw4EFdcMEFqlevnrZs2aLXXntNCxYs0JIlS1SnTp3A8qNHj1ZcXJzOP/98Va5cWXv27NF7772niy++WFOmTNE///lPSX/8UnPTTTfpqaee0tlnn62LLroosI5T3X3r66+/1kMPPaQuXbrob3/7mzIzMyX98cvnX//6V73++utq0KCBhgwZori4OH3yyScaPny4fvzxRz366KOn9NjSH7/kf//997rwwgt1+PBhvfbaa+rfv7++/vprjRgxQkeOHNHFF1+sPXv2aPbs2erVq5c2b96slJSUoPUcO3ZM3bt31+HDh3X11VcrKytLs2bN0kUXXaSZM2fqiiuuCCx7sjl+5JFH9MUXX+jCCy9Ujx49FBMTo4yMDGVlZendd9/VgAED1KJFiwL3e+mll/T++++rY8eO6tu3rw4dOqSFCxdq9OjRWr58ecimJTc3Vz179tS+ffs0cOBAHTp0SLNmzdLgwYP14YcfqmfPnoFljxw5ol69eumrr75S/fr1dc011yg+Pl4//fSTnn/+eV111VUqU6aMJGnjxo3q3LmzfvnlF/Xs2VMXXXSRdu/erTlz5uijjz7SZ599prZt20qSduzYoTZt2ujgwYPq16+fLr30Uh04cEA//fSTnn76aT322GPG9/err75SXl6ezj33XOOyf2bbtiQpJib415/Cfm6Ot2XLFrVt21ZNmjTRsGHDtHHjRr377rvq0qWL1q1bp4oVKwaW/eyzz9SnTx95PB5deumlqlKlij777DO1b98+8Doe72Tz9OSTT2rhwoUaMGCAunbtqjlz5uimm25SqVKl9N133+mtt95S//791bVrV82aNUtXXXWVateuHXI3zlPx1FNP6eabb1Z6erqGDBmipKQkvf/++7rlllu0aNEivf322wW+o3/++Wede+65Ouuss3T11Vdr3759iouLkySNGTNGEydOVLVq1TRo0CClpKToq6++0h133KFly5bprbfeCqxn9OjRevjhh1W3bl0NGTJEpUuX1i+//KJFixbp888/V8eOHdW5c2dt2bJFM2bMKLAb/593uW/Xrp1effVVbdiwQQ0bNizW1wkICxsAThNJds2aNYOuu//++21J9hVXXGH7/f7A9d99950dHx9vlylTxs7JyQlcP3bsWFuSnZCQYK9duzZwfW5urt2jRw9bkv3qq68WubYlS5bYkuyrr77acZkvvvjCllTgkpiYaD/88MNFejxJdtmyZe2xY8cWuCxYsMC2bds+duyYXatWLbt06dL26tWrg+6/aNEi2+v12v379w+6fuPGjQUe6/fff7ebNWtmp6am2gcPHgxcv3nz5hM+56uvvtqWZG/evLnAbfnvwxdffBG47vjX55VXXilwnxdffNGW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Zma4ywEAAAAAI5q/Ijp48KDefPNN/f3vf1f//v01ffr0oNvfe+891a9fX4mJierSpYtmzJghy7KUlZUVWObrr79Wx44dlZiYqOrVq2vkyJE6ePDg6X0iAAAAAKIKzV8RzZ49Ww0bNlTDhg3117/+VdOmTVP+zJwtW7bo4osv1kUXXaTVq1drxIgRuvvuu4Pu//3336tXr14aOHCg1qxZo9mzZ2vx4sW68cYbT/i4R48eVU5OTtBFkmw/83oQmu23tX3LfjICR2QEJmQEJmQEJmTEXZj2WUTt27fX4MGDddNNNykvL0+VK1fWG2+8oe7du2vUqFH64IMP9P333weWv+eee/Tggw9q//79SktL01VXXaXExES98MILgWUWL16sTp066eDBg0pISAj5uOPGjdP48eMLXM+0TwAAAOD0YtpnFNiwYYO++eYbXXbZZZKkmJgYXXrppZo6dWrg9tatWwfdp02bNkE/r1y5UtOnT1dycnLg0qtXL/n9fm3evNnxsUePHq3s7OzAZdu2bZIY+AJnHo+lszKqkhE4IiMwISMwISMwISPuEhPuAiLJK6+8ory8PFWtWjVwnW3bio2N1f79+2XbtiwrONh/3rDq9/s1YsQIjRw5ssD6a9So4fjY8fHxio8vuIWPsblwYnksVatVRutX/yqxqwVCICMwISMwISMwISPuQvNXSHl5eXr11Vf12GOPqWfPnkG3DRo0SK+99poaNWqk+fPnB922YsWKoJ/POecc/fDDD6pXr16J1wwAAAAA+Wj+CmnevHnav3+/hg8frtTU1KDbLr74Yr3yyit655139Pjjj+uuu+7S8OHDtXr16sA00PwtgnfddZfOPfdc3XDDDbruuuuUlJSkdevW6ZNPPtHTTz99up8WAAAAgCjBMX+F9Morr6h79+4FGj/pjy1/q1ev1v79+/X222/rnXfeUfPmzfXcc88Fpn3m77LZvHlzffnll/rpp5/UoUMHtWzZUvfee68qV658UnX52XwOB36/rZ9/3E1G4IiMwISMwISMwISMuAvTPkvYgw8+qOeffz4woKW45E/0YdonAAAAcHox7ROSpGeffVbLly/Xpk2bNHPmTD3yyCO6+uqrS+zxvF4GviA0r9dSqw61yAgckRGYkBGYkBGYkBF34Zi/YvbTTz/pgQce0L59+1SjRg3ddtttGj16dMk9oMUH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CUc+n0/r169nAhsckRGYkBGYkBF3KXLz9/nnn6tnz546cuSIbr/9dvmPO6aoXLlymj59enHWd1okJiYqNzdXv/zyizp27KiEhAR9/vnnWrlypYYNG+a4ZfPgwYO69dZbtXz5cn322WfyeDz6y1/+EnhNpkyZovfee09vvvmmNmzYoH//+9+qVauWJOntt9/WE088oRdeeEE//fST5s6dq2bNmjnWePToUeXk5ARdAAAAAKCwirzz7X333ae+ffvq3XffVV5enh5++OHAbWeffbamTZtWrAWWtG+++Uavv/66unXrpmeeeUapqamaNWuWYmNjJUkNGjRwvO+gQYOCfn7llVdUoUIF/fjjj2ratKkyMzNVv359nX/++bIsSzVr1gwsm5mZqUqVKql79+6KjY1VjRo11KZNG8fHmjhxosaPH3+KzxYAAABAtCrylr9Vq1ZpxIgRkiTrT7uTlS9fXrt37y6eykrQvHnzlJycrISEBLVr104dO3bU008/rdWrV6tDhw6Bxs9k48aNGjJkiOrUqaOUlBTVrl1b0h+NnfTHcJnVq1erYcOGGjlypD7++OPAfS+55BIdPnxYderU0XXXXaf//Oc/Jzx2cvTo0crOzg5ctm3bJkli72k4sSVl5x4jI3BkWZYSExMLfJcD+cgITMgITMiIuxS5+YuJiVFubm7I23bv3q3SpUufclElrUuXLlq9erU2bNigI0eO6J133lGFChWUmJhYpPVccMEF2rt3r1566SUtW7ZMy5Ytk/THsX6SdM4552jz5s2aMGGCDh8+rMGDB+viiy+WJFWvXl0bNmzQM888o8TERP3jH/9Qx44dHV/b+Ph4paSkBF0kKY/f7OEgz7b1wY7tyuMAazjwer06++yzGcENR2QEJmQEJmTEXYrc/LVu3VozZ84Medvbb7+tdu3anXJRJS0pKUn16tVTzZo1g7byNW/eXIsWLXJswI63d+9erVu3Tvfcc4+6deumxo0ba//+/QWWS0lJ0aWXXqqXXnpJs2fP1pw5c7Rv3z5JfxxreOGFF2rKlClauHChlixZou+//75IzyXqztWBQvNIqptcmozAkd/v1+7du4OO3QaOR0ZgQkZgQkbcpcjH/I0aNUq9evXSX/7yF1111VWyLEvLli3T1KlT9fbbb+uLL74oiTpPixtvvFFPP/20LrvsMo0ePVqpqalaunSp2rRpo4YNGwYtW6ZMGZUtW1YvvviiKleurMzMTI0aNSpomSeeeEKVK1dWixYt5PF49NZbb6lSpUpKS0vT9OnT5fP51LZtW5UqVUozZ85UYmJi0HGBheG1JD5KCMVrWWpbtrwyDx6Qn61/CMHv92vTpk1KT0+Xx8OfCVAQGYEJGYEJGXGXIr8D3bt314wZM7Ro0SINGjRItm3rhhtu0Ouvv67p06fr/PPPL4k6T4uyZcvq888/14EDB9SpUye1atVKL730UshjAD0ej2bNmqWVK1eqadOmuuWWW/TII48ELZOcnKzJkycrIyNDrVu31pYtWzR//nx5PB6lpaXppZdeUvv27dW8eXN99tlnev/991W2bNnT9XQBAAAARBHLLsIZF30+nzZu3KgKFSooPj5eX3/9tXbt2qVy5cqpffv2SkpKKslacZycnBylpqaq5T2j5I+PD3c5cKFYy9IlNWrrrczNymXLX7FZfc+4cJdQbPLy8rRixQplZGQoJqbIO4IgCpARmJARmJCR0yO/N8jOzg7MBgmlSO+Abdtq0qSJ3n//ffXp00fdunU75UJxaviVHk5sSb8ePkRG4MiyLKWmpjKBDY7ICEzICEzIiLsUqfmLiYlRpUqVOGDTRfJsidlJCCXPtvXF7p3hLgMu5vV61bhx43CXARcjIzAhIzAhI+5S5GP+LrvsMr366qslUQtOAofNwolHUrPUMmQEjvx+v7Zv384f9OCIjMCEjMCEjLhLkXe8bdGihWbPnq2uXbtq4MCBqly5coHNuAMHDiy2AnFiTPuEE69lqVlaGa3PyWLaJ0LK/x9ypUqVmMCGkMgITMgITMiIuxS5+bvqqqskSb/88osWLlxY4HbLsuTz+U65MAAAAABA8Sly8xfJ5/EDAAAAgGhV5OavU6dOJVEHThK7fMKJX9LGA7+TETjyeDwqX748u+HAERmBCRmBCRlxF062EeF8TPuEA59ta9nePeEuAy7m8XhUt27dcJcBFyMjMCEjMCEj7lLk5q9r164nvN2yLH322WcnXRCKxsspU+DAa1nKSC+nFft+k4+BLwjB7/dr8+bNql27Nn+RRUhkBCZkBCZkxF2K/A74/X7Zth102bNnjxYvXqz//e9/svkl87TiIwQnHkl1k0uTETjy+/3as2cP47fhiIzAhIzAhIy4S5G3/IWa8ClJ//vf/zRgwACNHTv2VGsCAAAAABSzYtso0KBBA91xxx268847i2uVAAAAAIBiUqx7hNWqVUtr164tzlXCwMdetnDgs219n7Wf4/3gyOPxqFq1ahyDAUdkBCZkBCZkxF2KddrnnDlzVKVKleJcJQz8YtonQvNL+j57f7jLgIvl/w8ZcEJGYEJGYEJG3KXIzd+wYcMKXHf06FGtWbNGP/74ox5++OFiKQyFE2NJbNdBKDGWpQ7lK2rRnl3KY+sfQvD5fPrf//6nBg0ayOvlz0goiIzAhIzAhIy4S5Gbv88//1yWFXx+gYSEBNWqVUujR4/WkCFDiq04mFmi+UNolqTKiaXE2UDgxLZtZWdnM6UZjsgITMgITMiIuxS5+duyZUsJlAEAAAAAKElFPvLy1Vdf1d69e0Petm/fPr366qunXBQAAAAAoHgVufm75pprtHHjxpC3bd68Wddcc80pF4XCY9onnPhsW8v27mHaJxx5PB7VqVOHCWxwREZgQkZgQkbcpci7fZ5of90jR45wIOdptujO0UpJSQl3GQAikMfjUYUKFcJdBlyMjMCEjMCEjLhLoZq/zMzMoGP9Vq1apSNHjgQtc/jwYb344ouqUaNGsRaIE/P5fOEuAS7l8/m0du1aNW3alD/KICQyAhMyAhMyAhMy4i6Fav6mTZum8ePHy7IsWZalf/zjHwWWyd8i+NRTTxVvhTghJifBiW3bOnz4MBmBIzICEzICEzICEzLiLoVq/gYPHqymTZvKtm0NHjxYDz30kOrXrx+0THx8vJo2bapatWqVRJ0AAAAAgFNQqOavcePGaty4saQ/tgL2799fZcuWLdHCAAAAAADFx7LZBhuRcnJylJqaqqysLKWmpoa7HLhQ/klVU1NTZVmc6h0FkRGYkBGYkBGYkJHTI783yM7OPuEwyCJP+5T+OJ/f66+/rnXr1unw4cNBt1mWpVdeeeVkVouTwIcITizLUlpaWrjLgIuREZiQEZiQEZiQEXcpcvOXmZmp1q1b69ChQzp06JDKlSunffv2yefzqUyZMmyFOs3y8vLCXQJcKi8vT6tWrVLLli0VE3NSf+fBGY6MwISMwISMwISMuEuRz7Y4atQonXXWWdq1a5ds29aCBQt08OBBPf3000pISNAHH3xQEnUCOAmcCgQmZAQmZAQmZAQmZMQ9itz8LVmyRH//+9+VkJAg6Y/9eOPi4nTDDTdo+PDhuuOOO4q9SAAAAADAqSly87dr1y5VrlxZHo9HXq9XOTk5gds6deqkxYsXF2uBAAAAAIBTV+Tmr2LFitq3b58kqVatWlqxYkXgti1btrAv72nm9XrDXQJcyuv1qnnz5mQEjsgITMgITMgITMiIuxS5Uzv33HO1atUqXXjhhRo4cKDuv/9+HT16VHFxcXrkkUfUtWvXkqgTwEmIi4sLdwlwOTICEzICEzICEzLiHkU+z9/KlSu1ZcsWDRo0SAcPHtTll1+uDz74QLZtq2PHjnrjjTdUuXLlkqoX/1/+uTzaPXOnlBgb7nLgQjHyaEByXb17YKPy5A+67etrHghTVXCTvLw8rVixQhkZGey1gZDICEzICEzIyOlRYuf5a9WqlVq1aiVJSkpK0nvvvaecnBxZlqXSpUuffMUAAAAAgBJTLO33ibpLAAAAAED4FXngiyStX79el19+uSpXrqy4uDh9++23kqTx48friy++KNYCAQAAAACnrsjN3+rVq9W6dWt9+eWX6ty5c9BJGw8cOKDnn3++WAvEif35WC4gX578IY/3A/J5vV5lZGQwgQ2OyAhMyAhMyIi7FLn5GzVqlJo3b66ff/5ZM2fO1PHzYtq0aaPly5cXa4EATl6ihwOrcWLHjh0LdwlwOTICEzICEzLiHkVu/v773//qzjvvVKlSpWRZVtBtFStW1M6dO4utOJjFnNyeu4gCMfKoZ6maZASOfD6f1qxZE7QHB3A8MgITMgITMuIuRf6t0LZtx3N17N+/X/Hx8adcFAAAAACgeBW5+WvevLn+85//hLztww8/DJwGAgAAAADgHkU+IOimm27SkCFDlJSUpCuvvFKSlJmZqc8//1xTp07V22+/XexFAjg5eTbDXnBiHIAPEzICEzICEzLiHpZ9/MSWQnrooYc0btw4+Xw+2bYty7IUExOj8ePHa9SoUSVRJ/4kJydHqampav3M7YpJZFdbFM3X1zwQ7hIAAABQTPJ7g+zs7BOeg/2kRgGOGTNGV155pT7++GPt2rVL5cqVU69evVSzZs2TLhgnxzIvgihlSargLaXdvkMq8l94EBVs21Z2drZSU1MLDPACJDICMzICEzLiLoU65u/OO+/U9u3bg66rWrWqhg8frjFjxuhvf/sbjV+YeJnkCAdeeXR+YlUyAkc+n0/r169nAhsckRGYkBGYkBF3KdRvhY899ph27NgR+Nnn8yk2NlbffvttiRUGAAAAACg+hWr+Qh0WeBKHCgIAAAAAwoT9wSKczdFccGDLVo7/GBmBI8uylJiYyDEYcERGYEJGYEJG3OWkBr7APXyyeRMRkk+2Pjm0NdxlwMW8Xq/OPvvscJcBFyMjMCEjMCEj7lLovmHDhg2Kiflj8fwDNtevXx9y2XPOOacYSkNh8DcUOLEk1YxJ0da8HLb9ISS/36/ffvtN5cqVk8fDjiAoiIzAhIzAhIy4S6Gbv6FDhxa4Lv8k7/nyz/nHNJ/Th0mOcOKVR60SKmr7gQPKEyd7R0F+v1+bNm1Seno6/0NGSGQEJmQEJmTEXQrV/E2bNq2k6wAAAAAAlKBCNX9XX311SdcBAAAAAChBbHuNcExyhBNbtnb5DpIROLIsS6mpqUxggyMyAhMyAhMy4i40fwaWZWnu3LmSpC1btsiyLK1evTqsNR3Pxy/2cOCTrcWHd5AROPJ6vWrcuLG8Xm+4S4FLkRGYkBGYkBF3ifrmb/fu3RoxYoRq1Kih+Ph4VapUSb169dKSJUskSb/++qv69OlTpHXOmTNHbdu2VWpqqkqXLq2zzjpLt912W0mULw/zPuHAI0uN49LJCBz5/X5t375dfj8DgRAaGYEJGYEJGXGXqG/+Bg0apO+++04zZszQ//73P7333nvq3Lmz9u3bJ0mqVKmS4uPjC72+Tz/9VJdddpkuvvhiffPNN1q5cqUefPBBHTt2rETq5xd7OPHIUpO4smQEjvgfMkzICEzICEzIiLtEdfOXlZWlxYsXa/LkyerSpYtq1qypNm3aaPTo0erXr5+k4N0+861fv17nnXeeEhISdNZZZ2nhwoWB2+bNm6fzzz9fd9xxhxo2bKgGDRrooosu0tNPPx1YZty4cWrRooVeeOEFVa9eXaVKldIll1yirKys0/CsAQAAAESjqG7+kpOTlZycrLlz5+ro0aOFvt8dd9yh2267TatWrdJ5552nCy+8UHv37pX0x5bCH374QWvXrj3hOn7++We9+eabev/99/Xhhx9q9erVuuGGGxyXP3r0qHJycoIuAAAAAFBYUd38xcTEaPr06ZoxY4bS0tLUvn17jRkzRmvWrDnh/W688UYNGjRIjRs31nPPPafU1FS98sorkqR//vOfat26tZo1a6ZatWrpsssu09SpUws0l0eOHNGMGTPUokULdezYUU8//bRmzZqlnTt3hnzMiRMnKjU1NXCpXr26JMnPMA848MvWltxsMgJHHo9H5cuX56S7cERGYEJGYEJG3CXq34VBgwZpx44deu+999SrVy8tXLhQ55xzjqZPn+54n3bt2gX+HRMTo4yMDK1bt06SlJSUpA8++EA///yz7rnnHiUnJ+u2225TmzZtdOjQocD9atSooWrVqgWt0+/3a8OGDSEfc/To0crOzg5ctm3bJonmD878srXy6G4yAkcej0d169blf8hwREZgQkZgQkbchXdBUkJCgnr06KH77rtPX3/9tYYOHaqxY8cWaR1/PndJ3bp1de211+rll1/Wt99+qx9//FGzZ8823t/pHCjx8fFKSUkJukgMfIEzjyy1iq9ARuDI7/dr48aNHIQPR2QEJmQEJmTEXWj+QmjSpIkOHjzoePvSpUsD/87Ly9PKlSvVqFEjx+Vr1aqlUqVKBa0zMzNTO3bsCPy8ZMkSeTweNWjQoEi18os9nHhkqVZsKhmBI7/frz179vA/ZDgiIzAhIzAhI+4SE+4Cwmnv3r265JJLNGzYMDVv3lylS5fWihUr9PDDD2vAgAGO93vmmWdUv359NW7cWE888YT279+vYcOGSfpjkuehQ4fUt29f1axZU1lZWZoyZYpyc3PVo0ePwDoSEhJ09dVX69FHH1VOTo5GjhypwYMHq1KlSiX+vAEAAABEn6hu/pKTk9W2bVs98cQT2rhxo3Jzc1W9enVdd911GjNmjOP9Jk2apMmTJ2vVqlWqW7eu3n33XZUrV06S1KlTJz3zzDO66qqrtGvXLpUpU0YtW7bUxx9/rIYNGwbWUa9ePQ0cOFB9+/bVvn371LdvXz377LMl/pwBAAAARCfLtm2mQZxm48aN09y5c7V69eqTXkdOTo5SU1PV9pk75EmMK77icMbwyFLDuDLacGx/gaEvX1/zQJiqgpv4/X7t2LFDVapU4UB8hERGYEJGYEJGTo/83iA7OzswGySUqN7ydybwy+bATYTkl611x/aFuwy4mMfjCZo6DPwZGYEJGYEJGXEX+oYI52WYBxx4Zen8xCpkBI58Pp/WrVsnn88X7lLgUmQEJmQEJmTEXWj+wmDcuHGntMvn8Sx+sYcDS5YqepPICBzZtq3s7Gyx9z+ckBGYkBGYkBF3ofkDAAAAgChA8wcAAAAAUYDmL8L5xAkzEZpPfq08souMwJHH41GdOnWYvgZHZAQmZAQmZMRdmPYZ4dh7Gk5sSVvycsJdBlzM4/GoQoUK4S4DLkZGYEJGYEJG3IUWPMIxyRFOvLLUo1RNMgJHPp9P3333HRPY4IiMwISMwISMuAvNX4RjkiOcWLKU4okjI3Bk27YOHz7MBDY4IiMwISMwISPuQvMHAAAAAFGA5g8AAAAAogDNX4RjkiOc+OTX4sO/kBE48nq9atSokbxeb7hLgUuREZiQEZiQEXdh2meEY+9pOLEl7fIdCncZcDHLspSWlhbuMuBiZAQmZAQmZMRd2PIX4WJ4C+EgRh4NSKpLRuAoLy9Py5cvV15eXrhLgUuREZiQEZiQEXfht0LgDBZj8RHHiTF6GyZkBCZkBCZkxD34zRAAAAAAogDNHwAAAABEAZq/CJfHJEc4yJNfHx/aSkbgyOv1qnnz5kxggyMyAhMyAhMy4i40f8AZ7LCfg6txYnFxceEuAS5HRmBCRmBCRtyDUz1EuA8vG6309PRwlwEXysvL04oVK5SRkaGYGD7qKMjn85ERnBAZgQkZgQkZcRe2/AEAAABAFKD5AwAAAIAoQPMHAAAAAFHAsm3bDncRKLqcnBylpqYqKytLqamp4S4HLmTbtnw+n7xeryzLCnc5cCEyAhMyAhMyAhMycnrk9wbZ2dlKSUlxXI4tf8AZ7NixY+EuAS5HRmBCRmBCRmBCRtyD5i/C+Xy+cJcAl/L5fFqzZg0ZgSMyAhMyAhMyAhMy4i40fwAAAAAQBWj+AAAAACAK0PwBZzCv1xvuEuByZAQmZAQmZAQmZMQ9mPYZoQo70QcAAADAmY1pn1GC3h1ObNtWVlYWGYEjMgITMgITMgITMuIuNH8RjslJcOLz+bR+/XoyAkdkBCZkBCZkBCZkxF1iwl0ATs2YRfcoNjk23GWgCJ7u9lS4SwAAAEAUYssfAAAAAEQBmj/gDGVZlhITE2VZVrhLgUuREZiQEZiQEZiQEXdht88IZ1v+cJcAl/J6vTr77LPDXQZcjIzAhIzAhIzAhIy4C1v+Ipxl81cUhOb3+7V79275/fyBAKGREZiQEZiQEZiQEXeh+Yt4NH8Ize/3a9OmTXzZwhEZgQkZgQkZgQkZcReaPwAAAACIAjR/AAAAABAFaP6AM5RlWUpNTWW6FhyREZiQEZiQEZiQEXdh2meEY9onnHi9XjVu3DjcZcDFyAhMyAhMyAhMyIi7sOUvwjHtE078fr+2b9/OAdZwREZgQkZgQkZgQkbcheYv4tH8ITS+bGFCRmBCRmBCRmBCRtyF5g8AAAAAogDNHwAAAABEAZq/iGeHuwC4lMfjUfny5eXx8DFHaGQEJmQEJmQEJmTEXZj2GeFsi+YPoXk8HtWtWzfcZcDFyAhMyAhMyAhMyIi70IJHOKZ9wonf79fGjRs5wBqOyAhMyAhMyAhMyIi70PxFPJo/hOb3+7Vnzx6+bOGIjMCEjMCEjMCEjLgLzR8AAAAARAGaPwAAAACIAjR/EY+BLwjN4/GoWrVqTNeCIzICEzICEzICEzLiLkz7jHBM+4ST/C9bwAkZgQkZgQkZgQkZcRda8NNsy5YtsixLq1evLpb1WTZvIULz+Xxat26dfD5fuEuBS5ERmJARmJARmJARd4n6zmHo0KGyLEuWZSk2NlZ16tTR7bffroMHD4a7NOCU2Lat7Oxs2TZbhxEaGYEJGYEJGYEJGXEXdvuU1Lt3b02bNk25ublatGiRrr32Wh08eFDPPfdckdZj27Z8Pp9iYnhZAQAAALhL1G/5k6T4+HhVqlRJ1atX15AhQ3TFFVdo7ty5+ve//62MjAyVLl1alSpV0pAhQ7R79+7A/RYuXCjLsvTRRx8pIyND8fHxWrRokfx+vyZPnqx69eopPj5eNWrU0IMPPhj0mJs2bVKXLl1UqlQpnX322VqyZMnpftoAAAAAogjNXwiJiYnKzc3VsWPHNGHCBH333XeaO3euNm/erKFDhxZY/s4779TEiRO1bt06NW/eXKNHj9bkyZN177336scff9Trr7+uihUrBt3n7rvv1u23367Vq1erQYMGuvzyy5WXl+dY09GjR5WTkxN0+QOb0BGax+NRnTp1mK4FR2QEJmQEJmQEJmTEXdg/8U+++eYbvf766+rWrZuGDRsWuL5OnTqaMmWK2rRpowMHDig5OTlw2/33368ePXpIkn7//Xc99dRT+te//qWrr75aklS3bl2df/75QY9z++23q1+/fpKk8ePH66yzztLPP/+sRo0ahaxr4sSJGj9+fIHrmfYJJx6PRxUqVAh3GXAxMgITMgITMgITMuIutOCS5s2bp+TkZCUkJKhdu3bq2LGjnn76aa1atUoDBgxQzZo1Vbp0aXXu3FmSlJmZGXT/jIyMwL/XrVuno0ePqlu3bid8zObNmwf+XblyZUkK2qX0z0aPHq3s7OzAZdu2bZKY9glnPp9P3333HdO14IiMwISMwISMwISMuAtb/iR16dJFzz33nGJjY1WlShXFxsbq4MGD6tmzp3r27Kl///vfKl++vDIzM9WrVy8dO3Ys6P5JSUmBfycmJhbqMWNjYwP/tixLkuT3+x2Xj4+PV3x8fFGeFqKcbds6fPgw07XgiIzAhIzAhIzAhIy4C5uN9EfzVq9ePdWsWTPQlK1fv16//fabJk2apA4dOqhRo0Yn3DKXr379+kpMTNRnn31W0mUDAAAAQKGx5c9BjRo1FBcXp6efflrXX3+91q5dqwkTJhjvl5CQoLvuukt33nmn4uLi1L59e+3Zs0c//PCDhg8ffhoqBwAAAICC2PLnoHz58po+fbreeustNWnSRJMmTdKjjz5aqPvee++9uu2223TfffepcePGuvTSSwu11fBk2HLeVRTRzev1qlGjRvJ6veEuBS5FRmBCRmBCRmBCRtzFstkBNyLl5OQoNTVVf3t3hOKSOBYwkjzd7alwlwAAAIAzSH5vkJ2drZSUFMfl2PIX4Zj2CSd5eXlavnz5Cc8fiehGRmBCRmBCRmBCRtyFzgE4gzFWGSZkBCZkBCZkBCZkxD1o/gAAAAAgCtD8AQAAAEAUoPmLcEz7hBOv16vmzZszXQuOyAhMyAhMyAhMyIi70PwBZ7C4uLhwlwCXIyMwISMwISMwISPuQfMX4SzeQjjw+XxasWIFB1nDERmBCRmBCRmBCRlxFzoHAAAAAIgCNH8AAAAAEAVo/gAAAAAgCtD8RTimfcKJ1+tVRkYG07XgiIzAhIzAhIzAhIy4C80fcAY7duxYuEuAy5ERmJARmJARmJAR96D5i3BM+4QTn8+nNWvWMF0LjsgITMgITMgITMiIu9A5AAAAAEAUoPkDAAAAgChA8wecwTi4GiZkBCZkBCZkBCZkxD1iwl0ATo1tMe0TocXExKh169bhLgMuRkZgQkZgQkZgQkbchS1/kc4OdwFwK9u2lZWVJdsmJAiNjMCEjMCEjMCEjLgLzV+EY9onnPh8Pq1fv57pWnBERmBCRmBCRmBCRtyF3T4j3EMdHlB6enq4ywAAAADgcmw2AgAAAIAoQPMX4SzLCncJcCnLspSYmEhG4IiMwISMwISMwISMuItlc/RlRMrJyVFqaqqys7OVkpIS7nIAAAAAhElhewO2/EU4v59TPSA0v9+v3bt3kxE4IiMwISMwISMwISPuQvMX4fggwYnf79emTZvICByREZiQEZiQEZiQEXeh+QMAAACAKEDzBwAAAABRgOYvwjE5CU4sy1JqaioZgSMyAhMyAhMyAhMy4i5M+4xQTPsEAAAAIDHtM2pw8Cyc+P1+bd++nYzAERmBCRmBCRmBCRlxF5q/CMcHCU74soUJGYEJGYEJGYEJGXEXmj8AAAAAiAIx4S4Ap2bOt5cpMZkDaMPhr+d+FO4SAAAAgEJjy1/EY14PQvN4PCpfvrw8Hj7mCI2MwISMwISMwISMuAtb/iKd5Rc9PELxeDyqW7duuMuAi5ERmJARmJARmJARd6FriHQ2byFC8/v92rhxIwdYwxEZgQkZgQkZgQkZcRc6h4jH8X4Ize/3a8+ePXzZwhEZgQkZgQkZgQkZcReaPwAAAACIAjR/AAAAABAFaP4iHtM+EZrH41G1atWYrgVHZAQmZAQmZAQmZMRdmPYZ6Zj2CQf5X7aAEzICEzICEzICEzLiLnQNkY5pn3Dg8/m0bt06+Xy+cJcClyIjMCEjMCEjMCEj7kLnEPGY9onQbNtWdna2bJtdgxEaGYEJGYEJGYEJGXEXmj8AAAAAiAI0fwAAAAAQBWj+Ih4nzERoHo9HderUYboWHJERmJARmJARmJARd2HaZ6Sz2H8aoXk8HlWoUCHcZcDFyAhMyAhMyAhMyIi70IJHOqZ9woHP59N3333HdC04IiMwISMwISMwISPuQucQ8Zj2idBs29bhw4eZrgVHZAQmZAQmZAQmZMRdaP4AAAAAIArQ/AEAAABAFKD5i3hM+0RoXq9XjRo1ktfrDXcpcCkyAhMyAhMyAhMy4i5M+4x0TPuEA8uylJaWFu4y4GJkBCZkBCZkBCZkxF3Y8hfpbP6KgtDy8vK0fPly5eXlhbsUuBQZgQkZgQkZgQkZcZczsvkbN26cWrRoUSLrXrhwoSzLUlZWVrGtc8uWLbIsS6tXry62dQKSGKsMIzICEzICEzICEzLiHmFv/oYOHSrLsgpcevfuHe7SAAAAAOCM4Ypj/nr37q1p06YFXRcfHx+mapzl5uaGuwQAAAAAOClh3/In/dHoVapUKehSpkwZSX8cJPrCCy+of//+KlWqlBo3bqwlS5bo559/VufOnZWUlKR27dpp48aNBdb7wgsvqHr16ipVqpQuueSSoF01ly9frh49eqhcuXJKTU1Vp06d9O233wbd37IsPf/88xowYICSkpL0wAMPFHiMw4cPq1+/fjr33HO1b98+SdK0adPUuHFjJSQkqFGjRnr22WeD7vPNN9+oZcuWSkhIUEZGhlatWnUKrx6b0RGa1+tV8+bNma4FR2QEJmQEJmQEJmTEXVzR/JlMmDBBV111lVavXq1GjRppyJAhGjFihEaPHq0VK1ZIkm688cag+/z8889688039f777+vDDz/U6tWrdcMNNwRu//3333X11Vdr0aJFWrp0qerXr6++ffvq999/D1rP2LFjNWDAAH3//fcaNmxY0G3Z2dnq2bOnjh07ps8++0zp6el66aWXdPfdd+vBBx/UunXr9NBDD+nee+/VjBkzJEkHDx5U//791bBhQ61cuVLjxo3T7bffbnwNjh49qpycnKALYBIXFxfuEuByZAQmZAQmZAQmZMQ9XNH8zZs3T8nJyUGXCRMmBG6/5pprNHjwYDVo0EB33XWXtmzZoiuuuEK9evVS48aNddNNN2nhwoVB6zxy5IhmzJihFi1aqGPHjnr66ac1a9Ys7dy5U5LUtWtX/fWvf1Xjxo3VuHFjvfDCCzp06JC+/PLLoPUMGTJEw4YNU506dVSzZs3A9bt27VKnTp1UoUIFffDBB0pKSpL0R6P62GOPaeDAgapdu7YGDhyoW265RS+88IIk6bXXXpPP59PUqVN11llnqX///rrjjjuMr9HEiROVmpoauFSvXv3/38JfURCaz+fTihUrOMgajsgITMgITMgITMiIu7jimL8uXbroueeeC7ouPT098O/mzZsH/l2xYkVJUrNmzYKuO3LkiHJycpSSkiJJqlGjhqpVqxZYpl27dvL7/dqwYYMqVaqk3bt367777tPnn3+uXbt2yefz6dChQ8rMzAyqIyMjI2TN3bt3V+vWrfXmm28GNmPv2bNH27Zt0/Dhw3XdddcFls3Ly1Nqaqokad26dTr77LNVqlSpoNpMRo8erVtvvTXwc05OznENIAAAAACcmCuav6SkJNWrV8/x9tjY2MC/LctyvM7v9zuuI3+Z/P8OHTpUe/bs0ZNPPqmaNWsqPj5e7dq107FjxwrUFkq/fv00Z84c/fjjj4FGNP/xX3rpJbVt2zZo+fwG0bZP7qTs8fHxrhyCAwAAACAyuKL5KwmZmZnasWOHqlSpIklasmSJPB6PGjRoIElatGiRnn32WfXt21eStG3bNv3222+FXv+kSZOUnJysbt26aeHChWrSpIkqVqyoqlWratOmTbriiitC3q9JkyaaOXOmDh8+rMTEREnS0qVLT+WpAgAAAICRK5q/o0ePBo7FyxcTE6Ny5cqd9DoTEhJ09dVX69FHH1VOTo5GjhypwYMHq1KlSpKkevXqaebMmcrIyFBOTo7uuOOOQDNWWI8++qh8Pp+6du2qhQsXqlGjRho3bpxGjhyplJQU9enTR0ePHtWKFSu0f/9+3XrrrRoyZIjuvvtuDR8+XPfcc4+2bNmiRx999KSf5x/TPl3xNsJlvF6vMjIymK4FR2QEJmQEJmQEJmTEXVwx8OXDDz9U5cqVgy7nn3/+Ka2zXr16GjhwoPr27auePXuqadOmQadcmDp1qvbv36+WLVvqyiuv1MiRI1WhQoUiP84TTzyhwYMHq2vXrvrf//6na6+9Vi+//LKmT5+uZs2aqVOnTpo+fbpq164tSUpOTtb777+vH3/8US1bttTdd9+tyZMnn9JzBZz8eTdm4M/ICEzICEzICEzIiHtY9skehIawysnJUWpqql78pIcSk61wlxOV/nruR+Eu4YTy8vK0YsUKZWRkKCaGrcMoiIzAhIzAhIzAhIycHvm9QXZ2dmAAZiiu2PIHAAAAAChZNH8AAAAAEAVo/oAzGAdXw4SMwISMwISMwISMuAfH/EWowDF/n3ZVYhL7T4eD24/5AwAAQHTgmL9oYTPsBaHZtq2srCzx9x04ISMwISMwISMwISPuQvMX8XgLEZrP59P69evl8/nCXQpciozAhIzAhIzAhIy4C50DAAAAAEQBmj8AAAAAiAI0fxGP/acRmmVZSkxMlGVxXChCIyMwISMwISMwISPuwrTPCMW0z/Bj2icAAADcgGmf0YJpn3Dg9/u1e/du+f3+cJcClyIjMCEjMCEjMCEj7kLzF/F4CxGa3+/Xpk2b+LKFIzICEzICEzICEzLiLnQOAAAAABAFaP4AAAAAIArQ/EU85vUgNMuylJqaynQtOCIjMCEjMCEjMCEj7sKYyEhn+UUPj1C8Xq8aN24c7jLgYmQEJmQEJmQEJmTEXegaIp3NW4jQ/H6/tm/fzgHWcERGYEJGYEJGYEJG3IXOIeKxCR2h8WULEzICEzICEzICEzLiLjR/AAAAABAFOOYvwg06Z5bS09PDXQYAAAAAl2PLX4TzeHgLEZrH41H58uXJCByREZiQEZiQEZiQEXexbNvmXAERKCcnR6mpqcrOzlZKSkq4ywEAAAAQJoXtDWjBIxwHz8KJ3+/Xxo0byQgckRGYkBGYkBGYkBF3ofmLcHyQ4MTv92vPnj1kBI7ICEzICEzICEzIiLvQ/AEAAABAFGDaZ4TKP1QzJydHMTG8jSgoLy9PBw8eJCNwREZgQkZgQkZgQkZOj5ycHEn/1yM44R2IUHv37pUk1a5dO8yVAAAAAHCD33//XampqY630/xFqPxz+2VmZp7wDUb0ysnJUfXq1bVt2zYmwiIkMgITMgITMgITMnJ62Lat33//XVWqVDnhcjR/ESr/XCmpqal8kHBCKSkpZAQnREZgQkZgQkZgQkZKXmE2CDHwBQAAAACiAM0fAAAAAEQBmr8IFR8fr7Fjxyo+Pj7cpcClyAhMyAhMyAhMyAhMyIi7WLZpHigAAAAAIOKx5Q8AAAAAogDNHwAAAABEAZo/AAAAAIgCNH8AAAAAEAVo/lzi2WefVe3atZWQkKBWrVpp0aJFJ1z+yy+/VKtWrZSQkKA6dero+eefL7DMnDlz1KRJE8XHx6tJkyb6z3/+U1Ll4zQo7oxMnz5dlmUVuBw5cqQknwZKUFEy8uuvv2rIkCFq2LChPB6Pbr755pDL8T1yZinujPA9cuYpSkbeeecd9ejRQ+XLl1dKSoratWunjz76qMByfI+cWYo7I3yPnF40fy4we/Zs3Xzzzbr77ru1atUqdejQQX369FFmZmbI5Tdv3qy+ffuqQ4cOWrVqlcaMGaORI0dqzpw5gWWWLFmiSy+9VFdeeaW+++47XXnllRo8eLCWLVt2up4WilFJZESSUlJS9OuvvwZdEhISTsdTQjErakaOHj2q8uXL6+6779bZZ58dchm+R84sJZERie+RM0lRM/LVV1+pR48emj9/vlauXKkuXbroggsu0KpVqwLL8D1yZimJjEh8j5xWNsKuTZs29vXXXx90XaNGjexRo0aFXP7OO++0GzVqFHTdiBEj7HPPPTfw8+DBg+3evXsHLdOrVy/7sssuK6aqcTqVREamTZtmp6amFnutCI+iZuR4nTp1sm+66aYC1/M9cmYpiYzwPXJmOZWM5GvSpIk9fvz4wM98j5xZSiIjfI+cXmz5C7Njx45p5cqV6tmzZ9D1PXv21Ndffx3yPkuWLCmwfK9evbRixQrl5uaecBmndcK9SiojknTgwAHVrFlT1apVU//+/Qv8JQ6R4WQyUhh8j5w5SiojEt8jZ4riyIjf79fvv/+u9PT0wHV8j5w5SiojEt8jpxPNX5j99ttv8vl8qlixYtD1FStW1M6dO0PeZ+fOnSGXz8vL02+//XbCZZzWCfcqqYw0atRI06dP13vvvac33nhDCQkJat++vX766aeSeSIoMSeTkcLge+TMUVIZ4XvkzFEcGXnsscd08OBBDR48OHAd3yNnjpLKCN8jp1dMuAvAHyzLCvrZtu0C15mW//P1RV0n3K24M3Luuefq3HPPDdzevn17nXPOOXr66ac1ZcqU4iobp1FJfOb5HjmzFPf7yffImedkM/LGG29o3Lhxevfdd1WhQoViWSfcqbgzwvfI6UXzF2blypWT1+st8BeT3bt3F/jLSr5KlSqFXD4mJkZly5Y94TJO64R7lVRG/szj8ah169b8pS0CnUxGCoPvkTNHSWXkz/geiVynkpHZs2dr+PDheuutt9S9e/eg2/geOXOUVEb+jO+RksVun2EWFxenVq1a6ZNPPgm6/pNPPtF5550X8j7t2rUrsPzHH3+sjIwMxcbGnnAZp3XCvUoqI39m27ZWr16typUrF0/hOG1OJiOFwffImaOkMvJnfI9ErpPNyBtvvKGhQ4fq9ddfV79+/QrczvfImaOkMvJnfI+UsHBMmUGwWbNm2bGxsfYrr7xi//jjj/bNN99sJyUl2Vu2bLFt27ZHjRplX3nllYHlN23aZJcqVcq+5ZZb7B9//NF+5ZVX7NjYWPvtt98OLPPf//7X9nq99qRJk+x169bZkyZNsmNiYuylS5ee9ueHU1cSGRk3bpz94Ycf2hs3brRXrVplX3PNNXZMTIy9bNmy0/78cOqKmhHbtu1Vq1bZq1atslu1amUPGTLEXrVqlf3DDz8Ebud75MxSEhnhe+TMUtSMvP7663ZMTIz9zDPP2L/++mvgkpWVFViG75EzS0lkhO+R04vmzyWeeeYZu2bNmnZcXJx9zjnn2F9++WXgtquvvtru1KlT0PILFy60W7ZsacfFxdm1atWyn3vuuQLrfOutt+yGDRvasbGxdqNGjew5c+aU9NNACSrujNx88812jRo17Li4OLt8+fJ2z5497a+//vp0PBWUkKJmRFKBS82aNYOW4XvkzFLcGeF75MxTlIx06tQpZEauvvrqoHXyPXJmKe6M8D1yelm2/f+nQAAAAAAAzlgc8wcAAAAAUYDmDwAAAACiAM0fAAAAAEQBmj8AAAAAiAI0fwAAAAAQBWj+AAAAACAK0PwBAAAAQBSg+QMAAACAKEDzBwBwtenTp8uyLK1YsSLcpZy0119/XU8++WS4yyg2tm1r1qxZ6tChgypUqKCEhARVq1ZNvXr10ssvvxzu8gAADmj+AAAoYWda8zd69Ghdfvnlaty4sV5++WUtWLBADzzwgCpWrKh333033OUBABzEhLsAAADOVIcOHVKpUqXCXUaxOnz4sJ588kldddVVevHFF4NuGzp0qPx+/2mvJzEx8bQ+JgBEKrb8AQAiztChQ5WcnKz169erV69eSkpKUuXKlTVp0iRJ0tKlS3X++ecrKSlJDRo00IwZM4Lun78r6SeffKJrrrlG6enpSkpK0gUXXKBNmzYVeLypU6fq7LPPVkJCgtLT0/WXv/xF69atC1nT999/r549e6p06dLq1q2bOnfurA8++EBbt26VZVmBS77x48erbdu2Sk9PV0pKis455xy98sorsm07aP21atVS//799eGHH+qcc85RYmKiGjVqpKlTpxao95dfftHf/vY3Va9eXXFxcapSpYouvvhi7dq1K7BMTk6Obr/9dtWuXVtxcXGqWrWqbr75Zh08ePCEr/3Bgwd19OhRVa5cOeTtHk/wrxZHjx7V/fffr8aNGyshIUFly5ZVly5d9PXXXweWOXLkiEaPHh1Uyw033KCsrKyQr8E777yjli1bKiEhQePHj5ck7dy5UyNGjFC1atUUFxen2rVra/z48crLyzvh8wGAaMKWPwBARMrNzdXAgQN1/fXX64477tDrr7+u0aNHKycnR3PmzNFdd92latWq6emnn9bQoUPVtGlTtWrVKmgdw4cPV48ePfT6669r27Ztuueee9S5c2etWbNGaWlpkqSJEydqzJgxuvzyyzVx4kTt3btX48aNU7t27bR8+XLVr18/sL5jx47pwgsv1IgRIzRq1Cjl5eWpWrVq+tvf/qaNGzfqP//5T4HnsWXLFo0YMUI1atSQ9Efj+s9//lO//PKL7rvvvqBlv/vuO912220aNWqUKlasqJdfflnDhw9XvXr11LFjR0l/NH6tW7dWbm6uxowZo+bNm2vv3r366KOPtH//flWsWFGHDh1Sp06dtH379sAyP/zwg+677z59//33+vTTT4Ma1OOVK1dO9erV07PPPqsKFSqob9++atiwYcjl8/Ly1KdPHy1atEg333yzunbtqry8PC1dulSZmZk677zzZNu2LrroIn322WcaPXq0OnTooDVr1mjs2LFasmSJlixZovj4+MA6v/32W61bt0733HOPateuraSkJO3cuVNt2rSRx+PRfffdp7p162rJkiV64IEHtGXLFk2bNq0QiQKAKGADAOBi06ZNsyXZy5cvD1x39dVX25LsOXPmBK7Lzc21y5cvb0uyv/3228D1e/futb1er33rrbcWWOdf/vKXoMf673//a0uyH3jgAdu2bXv//v12YmKi3bdv36DlMjMz7fj4eHvIkCEFapo6dWqB59CvXz+7Zs2axufq8/ns3Nxc+/7777fLli1r+/3+wG01a9a0ExIS7K1btwauO3z4sJ2enm6PGDEicN2wYcPs2NhY+8cff3R8nIkTJ9oejyfoNbVt23777bdtSfb8+fNPWOc333xj16hRw5ZkS7JLly5t9+/f33711VeDan711VdtSfZLL73kuK4PP/zQlmQ//PDDQdfPnj3blmS/+OKLQa+B1+u1N2zYELTsiBEj7OTk5KDXxrZt+9FHH7Ul2T/88MMJnw8ARAt2+wQARCTLstS3b9/AzzExMapXr54qV66sli1bBq5PT09XhQoVtHXr1gLruOKKK4J+Pu+881SzZk198cUXkqQlS5bo8OHDGjp0aNBy1atXV9euXfXZZ58VWOegQYOK9Dw+//xzde/eXampqfJ6vYqNjdV9992nvXv3avfu3UHLtmjRIrCFUJISEhLUoEGDoOe2YMECdenSRY0bN3Z8zHnz5qlp06Zq0aKF8vLyApdevXrJsiwtXLjwhDW3bt1aP//8sz788EONGTNG7dq102effaarrrpKF154YWCX1QULFighIUHDhg074fOXVOA1vuSSS5SUlFTgNW7evLkaNGhQ4Pl06dJFVapUCXo+ffr0kSR9+eWXJ3w+ABAt2O0TABCRSpUqpYSEhKDr4uLilJ6eXmDZuLg4HTlypMD1lSpVCnnd3r17JSnw31DHt1WpUkWffPJJgZpSUlIK/Ry++eYb9ezZU507d9ZLL70UOF5t7ty5evDBB3X48OGg5cuWLVtgHfHx8UHL7dmzR9WqVTvh4+7atUs///yzYmNjQ97+22+/GWuPjY1Vr1691KtXL0l/vFYXX3yx5s2bpwULFqhv377as2ePqlSpUuA4wOPt3btXMTExKl++fND1lmUFvRf5Qr0Xu3bt0vvvv39KzwcAogHNHwAgau3cuTPkdfXq1ZP0f83Wr7/+WmC5HTt2qFy5ckHXOR0n52TWrFmKjY3VvHnzghrZuXPnFmk9xytfvry2b99+wmXKlSunxMTEkMNi8m8vqrJly+rmm2/WwoULtXbtWvXt21fly5fX4sWL5ff7HRvAsmXLKi8vT3v27AlqAG3b1s6dO9W6deug5UO9xuXKlVPz5s314IMPhnyMKlWqFPn5AMCZiN0+AQBR67XXXgv6+euvv9bWrVvVuXNnSVK7du2UmJiof//730HLbd++XZ9//rm6detWqMf589a5fJZlKSYmRl6vN3Dd4cOHNXPmzCI+k//Tp08fffHFF9qwYYPjMv3799fGjRtVtmxZZWRkFLjUqlXL8b65ubkFtsbly5+Amt9s9enTR0eOHNH06dMd15f/Gv75NZ4zZ44OHjxYqNe4f//+Wrt2rerWrRvy+dD8AcAf2PIHAIhaK1as0LXXXqtLLrlE27Zt0913362qVavqH//4hyQpLS1N9957r8aMGaOrrrpKl19+ufbu3avx48crISFBY8eOLdTjNGvWTO+8846ee+45tWrVSh6PRxkZGerXr58ef/xxDRkyRH/729+0d+9ePfroo0HTLYvq/vvv14IFC9SxY0eNGTNGzZo1U1ZWlj788EPdeuutatSokW6++WbNmTNHHTt21C233KLmzZvL7/crMzNTH3/8sW677Ta1bds25Pqzs7NVq1YtXXLJJerevbuqV6+uAwcOaOHChXrqqafUuHFjDRw4UJJ0+eWXa9q0abr++uu1YcMGdenSRX6/X8uWLVPjxo112WWXqUePHurVq5fuuusu5eTkqH379oFpny1bttSVV15ZqOf8ySef6LzzztPIkSPVsGFDHTlyRFu2bNH8+fP1/PPPG3eFBYBoQPMHAIhar7zyimbOnKnLLrtMR48eVZcuXfTUU08FHTc4evRoVahQQVOmTNHs2bOVmJiozp0766GHHgo6zcOJ3HTTTfrhhx80ZswYZWdny7Zt2batrl27aurUqZo8ebIuuOACVa1aVdddd50qVKig4cOHn9Rzqlq1qr755huNHTtWkyZN0t69e1W+fHmdf/75geeVlJSkRYsWadKkSXrxxRe1efNmJSYmqkaNGurevfsJt/ylpKRo/Pjx+uyzzzRmzBjt2rVLlmWpdu3auvnmm3XXXXcFTmwfExOj+fPna+LEiXrjjTf05JNPqnTp0jr77LPVu3dvSX9s/Zw7d67GjRunadOm6cEHH1S5cuV05ZVX6qGHHipUI1y5cmWtWLFCEyZM0COPPKLt27erdOnSql27tnr37q0yZcqc1GsJAGcay7b/dBZZAADOcNOnT9c111yj5cuXKyMjI9zlAABwWnDMHwAAAABEAZo/AAAAAIgC7PYJAAAAAFGALX8AAAAAEAVo/gAAAAAgCtD8AQAAAEAUoPkDAAAAgChA8wcAAAAAUYDmDwAAAACiAM0fAAAAAEQBmj8AAAAAiAL/Dx71tkprWqhFAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Sort features by importance (already sorted in previous step)\n",
    "top_features = feature_importance_df.head(15)  # Show top 15 features\n",
    "\n",
    "# Create a horizontal bar plot\n",
    "plt.figure(figsize=(10, 6))\n",
    "sns.barplot(x=top_features['Importance'], y=top_features['Feature'], palette=\"viridis\")\n",
    "\n",
    "# Titles and labels\n",
    "plt.title(\"Top 15 Feature Importances (Random Forest)\", fontsize=14)\n",
    "plt.xlabel(\"Importance Score\", fontsize=12)\n",
    "plt.ylabel(\"Feature Name\", fontsize=12)\n",
    "plt.grid(axis='x', linestyle='--', alpha=0.7)  # Add grid lines for readability\n",
    "\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "15fac645-4376-403a-9c05-7ad7bf12f67e",
   "metadata": {},
   "source": [
    "# `Selecting the best features`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 226,
   "id": "acc3b0e9-59ef-4177-b1b1-d859c52152fe",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Selected Top 5 Features: ['Age', 'Fare', 'Sex', 'Pclass', 'SibSp']\n"
     ]
    }
   ],
   "source": [
    "top_n = 5  # Change this value if needed\n",
    "top_features = feature_importance_df['Feature'][:top_n].tolist()\n",
    "\n",
    "print(f\"Selected Top {top_n} Features: {top_features}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6c593d99-4d2e-4ddf-961f-0386c7e278ff",
   "metadata": {},
   "source": [
    "# `Retraining the model with selected features`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 229,
   "id": "c52bf62e-22d5-4bd2-90f8-7e9b43910a87",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-9 {color: black;}#sk-container-id-9 pre{padding: 0;}#sk-container-id-9 div.sk-toggleable {background-color: white;}#sk-container-id-9 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-9 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-9 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-9 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-9 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-9 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-9 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-9 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-9 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-9 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-9 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-9 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-9 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-9 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-9 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-9 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-9 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-9 div.sk-item {position: relative;z-index: 1;}#sk-container-id-9 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-9 div.sk-item::before, #sk-container-id-9 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-9 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-9 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-9 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-9 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-9 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-9 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-9 div.sk-label-container {text-align: center;}#sk-container-id-9 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-9 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-9\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestClassifier(random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-9\" type=\"checkbox\" checked><label for=\"sk-estimator-id-9\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier(random_state=42)</pre></div></div></div></div></div>"
      ],
      "text/plain": [
       "RandomForestClassifier(random_state=42)"
      ]
     },
     "execution_count": 229,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "# Create a new dataset with only top N features\n",
    "X_train_selected = X_train[top_features]\n",
    "X_test_selected = X_test[top_features]\n",
    "\n",
    "# Initialize a new Random Forest model\n",
    "rf_model_selected = RandomForestClassifier(n_estimators=100, random_state=42)\n",
    "\n",
    "# Train the model on selected features\n",
    "rf_model_selected.fit(X_train_selected, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae2e7a8a-cfd4-40df-9cb3-de3643381f99",
   "metadata": {},
   "source": [
    "# `Printing the selected features`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 234,
   "id": "23fc9164-93ef-4bfb-a628-22e9c4c61dbc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      Age      Fare  Sex  Pclass  SibSp\n",
      "760  24.0   14.5000    0       3      0\n",
      "85   33.0   15.8500    1       3      3\n",
      "623  21.0    7.8542    0       3      0\n",
      "851  74.0    7.7750    0       3      0\n",
      "17   29.0   13.0000    0       2      0\n",
      "..    ...       ...  ...     ...    ...\n",
      "655  24.0   73.5000    0       2      2\n",
      "252  62.0   26.5500    0       1      0\n",
      "730  29.0  211.3375    1       1      0\n",
      "706  45.0   13.5000    1       2      0\n",
      "70   32.0   10.5000    0       2      0\n",
      "\n",
      "[666 rows x 5 columns]\n"
     ]
    }
   ],
   "source": [
    "print(X_train_selected)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a7fd7886-ad37-4906-b3b6-8e4616f740a0",
   "metadata": {},
   "source": [
    "# `Comparing the random before trained model with after feature selection`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 248,
   "id": "20b786d9-3713-4794-941b-d59092b75505",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "----------- Model Performance Comparison -----------\n",
      "Metric          Original Model (All Features)  Feature-Selected Model (Top Features)\n",
      "Accuracy        0.821            0.821\n",
      "Precision       0.820            0.820\n",
      "Recall          0.821            0.821\n",
      "F1-score        0.820            0.820\n",
      "\n",
      "--------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "# Print Model Comparison Results\n",
    "print(\"\\n----------- Model Performance Comparison -----------\")\n",
    "\n",
    "# Header for side-by-side comparison\n",
    "print(f\"{'Metric':<15} {'Original Model (All Features)':<30} {'Feature-Selected Model (Top Features)'}\")\n",
    "\n",
    "# Accuracy Comparison\n",
    "print(f\"{'Accuracy':<15} {accuracy:.3f} {' ' * 10} {accuracy_selected:.3f}\")\n",
    "\n",
    "# Precision Comparison\n",
    "print(f\"{'Precision':<15} {precision:.3f} {' ' * 10} {precision_selected:.3f}\")\n",
    "\n",
    "# Recall Comparison\n",
    "print(f\"{'Recall':<15} {recall:.3f} {' ' * 10} {recall_selected:.3f}\")\n",
    "\n",
    "# F1-score Comparison\n",
    "print(f\"{'F1-score':<15} {f1:.3f} {' ' * 10} {f1_selected:.3f}\")\n",
    "\n",
    "print(\"\\n--------------------------------------------------\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a3851b42-10ae-42c3-99ca-c120f493fbe7",
   "metadata": {},
   "source": [
    "# **Part 2 : Comparing with other classifier**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4befd608-927e-4471-829f-b689951bc909",
   "metadata": {},
   "source": [
    "## `Importing important libraries`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 262,
   "id": "8fb80789-e34d-4418-a3fd-e8ab66152e0a",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.naive_bayes import GaussianNB\n",
    "from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, classification_report\n",
    "from sklearn.decomposition import PCA\n",
    "from sklearn.preprocessing import StandardScaler"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8042e28d-9753-4bc7-950d-3f8749c332c3",
   "metadata": {},
   "source": [
    "# `Step 1 : Training Logistic Regression and Naïve Bayes Models`"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5c916c3d-fdcd-4f60-97e8-04c688bd8f4c",
   "metadata": {},
   "source": [
    "# `Training Logistic Regression`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 265,
   "id": "315410e4-ac85-4cc9-9c79-49fc6d1fe24e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create Logistic regression Model \n",
    "logistic_model = LogisticRegression(random_state=42, max_iter=500)\n",
    "\n",
    "# Train the model\n",
    "logistic_model.fit(X_train, y_train)\n",
    "\n",
    "# Make predictions\n",
    "y_pred_logistic = logistic_model.predict(X_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "27fd5107-285e-4cab-9b2e-662c9d74eee9",
   "metadata": {},
   "source": [
    "# `Training Naïve Bayes Models`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 275,
   "id": "bb582c0a-d15c-4cac-aced-09f1a36793a6",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create Naive Bayes Model\n",
    "naive_bayes_model = GaussianNB()\n",
    "\n",
    "# Train the model\n",
    "naive_bayes_model.fit(X_train, y_train)\n",
    "\n",
    "# Make predictions\n",
    "y_pred_nb = naive_bayes_model.predict(X_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1d024bc6-07f9-4cf7-a89d-8ec7e03092c4",
   "metadata": {},
   "source": [
    "# `Comparison of the Logistic Regression and Naive Bayes mode`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 281,
   "id": "776fd47d-874e-4b0f-b2ab-8b4a803e1c00",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Logistic Regression Metrics:\n",
      "Accuracy: 1.0\n",
      "Precision: 1.0\n",
      "Recall: 1.0\n",
      "F1 Score: 1.0\n",
      "\n",
      "Naive Bayes Metrics:\n",
      "Accuracy: 0.9777777777777777\n",
      "Precision: 0.9793650793650793\n",
      "Recall: 0.9777777777777777\n",
      "F1 Score: 0.9777448559670783\n"
     ]
    }
   ],
   "source": [
    "# Evaluate Logistic Regression Model\n",
    "logistic_accuracy = accuracy_score(y_test, y_pred_logistic)\n",
    "logistic_precision = precision_score(y_test, y_pred_logistic, average='weighted')\n",
    "logistic_recall = recall_score(y_test, y_pred_logistic, average='weighted')\n",
    "logistic_f1 = f1_score(y_test, y_pred_logistic, average='weighted')\n",
    "\n",
    "# Evaluate Naive Bayes Model\n",
    "nb_accuracy = accuracy_score(y_test, y_pred_nb)\n",
    "nb_precision = precision_score(y_test, y_pred_nb, average='weighted')\n",
    "nb_recall = recall_score(y_test, y_pred_nb, average='weighted')\n",
    "nb_f1 = f1_score(y_test, y_pred_nb, average='weighted')\n",
    "\n",
    "# Print metrics for both models\n",
    "print(\"Logistic Regression Metrics:\")\n",
    "print(f\"Accuracy: {logistic_accuracy}\")\n",
    "print(f\"Precision: {logistic_precision}\")\n",
    "print(f\"Recall: {logistic_recall}\")\n",
    "print(f\"F1 Score: {logistic_f1}\")\n",
    "print(\"\\nNaive Bayes Metrics:\")\n",
    "print(f\"Accuracy: {nb_accuracy}\")\n",
    "print(f\"Precision: {nb_precision}\")\n",
    "print(f\"Recall: {nb_recall}\")\n",
    "print(f\"F1 Score: {nb_f1}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f20936bd-ba98-4b33-b52c-c1b90b2473b9",
   "metadata": {},
   "source": [
    "# `Visualization in Bar Chart of the comparision above`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 291,
   "id": "79043e06-2ede-47ac-bea0-7c1e72eb9ea8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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80/9+OOPKT7Hk93L57kknT59Wi1btpSXl5e8vb0VERGhM2fOpLrMHTt26KWXXlL27Nnl6uqqMmXKaNGiRab1P+j2A/eLK06AicTERG3YsEGhoaHy9/e/p3neeOMNTZs2Td27d1fDhg11/PhxDRw4UBs3btSvv/6qHDlyWNqeOXNGHTp0UN++fZUvXz5NnDjR8p/Zt99+q/fee0/e3t4aNmyYXn75ZR09elR58uSxWl+TJk3UsmVLdevWTb///rsGDhyo/fv3a9u2bZb/4JO7UiX/4fHHH39o5MiR+uWXX7Rhwwar5d26dUsvvfSSunbtqn79+qX4IzdZdHS0IiIiFBERoSFDhsjV1VUnTpywWt7ff/+t8PBw3bp1Sx988IHy58+vFStW6O2339aRI0c0adIkq2V+/vnnCg4Ottx3NHDgQNWvX1/Hjh2Tt7d3mvv84MGDCg8Pl6+vryZMmCAfHx99/fXXat++vc6ePau+fftauv2EhYWpefPmeuutt8zfTBM3btxQ9erVdeTIEQ0dOlQlS5bUli1bNGLECO3evVsrV66UdDtMN2rUSDt27NCQIUMsXb3q1q1ruo64uDjVqlVLQUFB+vzzz+Xn56czZ87ohx9+sPyBGh0drRdffFHVq1fXwIEDJd2+KpKWNWvWqFGjRgoJCdHYsWMVEBCg48ePZ/g+pWPHjkmSihQpYpl25swZVahQQfb29ho0aJAKFiyo6OhoDR8+XMePH7d8QRAXF6fq1avr4sWLGjlypAoVKqTVq1crIiIi1XWldnwmJSWpcePG2rJli/r27avw8HCdOHFCgwcPVrVq1bRjxw65ubnp+PHjatCggSpXrqyZM2cqa9as+uuvv7R69WrdunVL7u7uWrBggSIjI9WjRw+NGTNG9vb2Onz4sPbv35/uPpg3b57atGmj2rVra/78+bp586ZGjRqlatWqaf369XrhhRes2jdr1kwRERHq1KmT9u3bp/79+0uSZs6cme56jhw5orCwMHXu3Fne3t46fvy4xo4dqxdeeEH79u1L8Ue92XoMw9DLL7+srVu3atCgQSpfvrx++umnDF2RHTlypMqUKaPRo0dr2LBhmbYNyTp27KhPP/1UixYtUufOnS3TL126pP/+97968803LfN+9NFHev/999WhQwe9//77unXrlkaPHq3KlSvrl19+UbFixUy3Jykp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Jk2apDfeeMNqFLYHMXjwYMs9NYMGDVL27Nk1d+5crVy5UqNGjUp3RD4zR44c0bfffptierFixdS2bVt9/vnnateunY4fP64SJUroxx9/1EcffaT69eurZs2akqS6deuqUqVKeuutt3TlyhWFhoYqOjraErDuvC/mbitWrNCkSZP08ssvq0CBAjIMQ4sXL9alS5esvqkuUaKENm7cqOXLlyt37tzy8vJK89vazz//XI0aNdLzzz+v3r17KyAgQDExMVqzZk263zinZ+TIkapYsaI++OADffHFFxo2bJiioqIUHh6unj17qmjRorpx44aOHz+uVatWacqUKcqXL5/atWuncePG6dVXX9Xw4cNVqFAhff/991qzZo3pvknWqlUrzZ07V/Xr19d//vMfVahQQU5OTjp16pR++OEHNW7cWE2aNNGUKVO0YcMGNWjQQAEBAbpx44Zl1LPk96pLly5yc3NTpUqVlDt3bp05c0YjRoyQt7e35b6+u9nb22vUqFFq06aNGjZsqK5du+rmzZsaPXq0Ll26pI8//jhD+/RuwcHBKliwoPr16yfDMJQ9e3YtX7483W6EZmrXrq0qVaqob9++iouLU7ly5fTTTz/pq6++eqBae/Xqpc8//zxFIM6Mbahdu7by5cunyMhIy8ikd8qfP7+GDRumAQMG6OjRo6pbt66yZcums2fP6pdffpGHh0e692AlO3TokKUL4eXLl7Vu3TrNmDFD5cqVU+XKlSXd/i0/Z2dnvfLKK+rbt69u3LihyZMnp+iamczBwUFvvvmm3n33XXl4eKS4n+hea9+7d6+6d++uFi1aqHDhwnJ2dtaGDRu0d+/e+74KLcly5SY99/p53rZtW40bN05t27bVhx9+qMKFC2vVqlWWc/pOU6dOVb169VSnTh21b99eefPm1cWLF3XgwAH9+uuvlvvB7pbZ2w/cExsNSgE8kXbv3m20a9fOCAgIMJydnQ0PDw+jTJkyxqBBg4xz585Z2iUmJhojR440ihQpYjg5ORk5cuQwXn31VePkyZNWy6tatarx3HPPpVhPYGCg0aBBgxTTddcIb8kjI+3cudNo1KiR4enpaXh5eRmvvPKKcfbsWat5t27daoSFhRnu7u5Gzpw5jc6dOxu//vprqqOWeXh4pLr9d4+qt2LFCqNevXpG3rx5DWdnZ8PX19eoX7++sWXLFqv5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7NHkyZM1Y8YMSxiQpD59+uinn37SsmXLFBUVpS1btujXX39Nc5nffvutxo0bp6lTp+rQoUNaunSpSpQoIel2t7N8+fJp2LBhio2NTfOP+ZUrV6pp06Zq0KCBdu3apfXr16tcuXL3vF2XLl3SvHnzJMnSzW3fvn2qU6eOmjZtqr1792rhwoX68ccf1b17d8t8bdu21enTp7Vx40Z99913mjZtms6dO5di+YMHD1bjxo21b98+dezYUWvWrNGrr76qnj17av/+/Zo6dapmz56tDz/80HSf7NixQz179tSwYcN08OBBrV69WlWqVElz29q3b68dO3Zo2bJlio6OlmEYql+/vtWVr+vXr2vMmDH66quvtHnzZsXExOjtt9++5/2XETa9x2nz5s0aPXq0du7cqdjYWC1ZskQvv/xyuvNs2rRJffr00e+//648efKob9++6tat26MpGAAAAE+USZMmyd/fX5999pns7OwUHBys06dP691339WgQYMUFxenL7/8UvPmzVONGjUkSbNmzVKePHnSXGZMTIxy5cqlmjVrysnJSQEBAapQoYKk293OHBwc5OXlpVy5cqW5jA8//FCtWrXS0KFDLdNKlSqV7rZcvnxZnp6eMgxD169flyS99NJLCg4OliSNHj1arVu3tly9KVy4sCZMmKCqVatq8uTJOn78uNatW6ft27dbQtoXX3yhwoULp1hX69at1bFjR8vz1157Tf369VO7du0kSQUKFNAHH3ygvn37avDgwenuk5iYGHl4eKhhw4by8vJSYGCgypQpk+o2Hjp0SMuWLdNPP/2k8PBwSdLcuXPl7++vpUuXqkWLFpJudx+cMmWKChYsKEnq3r27hg0blu7+e1A2veIUFxenUqVK6bPPPrun9seOHVP9+vVVuXJl7dq1S++995569uyp77777iFXCgAAgCfRgQMHFBYWZvVbPpUqVdK1a9d06tQpHT16VPHx8ZY/8iXJ29tbRYsWTXOZLVq00L///qsCBQqoS5cuWrJkiVWXtXuxe/duS1C7V15eXtq9e7d27txpCQ1TpkyxvL5z507Nnj1bnp6elkedOnWUlJSkY8eO6eDBg3J0dFTZsmUt8xQqVEjZsmVLsa67r37t3LlTw4YNs1p2ly5dFBsbq+vXr6e7T2rVqqXAwEAVKFBAr732mubOnWsJfnc7cOCAHB0dVbFi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cAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBh8+A0adIkBQUFydXVVaGhodqyZUu67efOnatSpUrJ3d1duXPnVocOHXThwoVHVC0AAACAZ5FNg9PChQvVq1cvDRgwQLt27VLlypVVr149xcTEpNr+xx9/VNu2bdWpUyf9/vvv+uabb7R9+3Z17tz5EVcOAAAA4Fli0+A0duxYderUSZ07d1ZISIjGjx8vf39/TZ48OdX2P//8s/Lnz6+ePXsqKChIL7zwgrp27aodO3Y84soBAAAAPEtsFpxu3bqlnTt3qnbt2lbTa9eura1bt6Y6T3h4uE6dOqVVq1bJMAydPXtW3377rRo0aJDmem7evKkrV65YPQAAAADgftgsOJ0/f16JiYny8/Ozmu7n56czZ86kOk94eLjmzp2riIgIOTs7K1euXMqaNasmTpyY5npGjBghb29vy8Pf3z9TtwMAAADA08/mg0PY2dlZPTcMI8W0ZPv371fPnj01aNAg7dy5U6tXr9axY8fUrVu3NJffv39/Xb582fI4efJkptYPAAAA4OnnaKsV58iRQw4ODimuLp07dy7FVahkI0aMUKVKlfTOO+9IkkqWLCkPDw9VrlxZw4cPV+7cuVPM4+LiIhcXl8zfAAAAAADPDJtdcXJ2dlZoaKiioqKspkdFRSk8PDzVea5fvy57e+uSHRwcJN2+UgUAAAAAD4NNu+r16dNHX3zxhWbOnKkDBw6od+/eiomJsXS969+/v9q2bWtp36hRIy1evFiTJ0/W0aNH9dNPP6lnz56qUKGC8uTJY6vNAAAAAPCUs1lXPUmKiIjQhQsXNGzYMMXGxqp48eJatWqVAgMDJUmxsbFWv+nUvn17Xb16VZ999pneeustZc2aVS+++KJGjhxpq00AAAAA8AywaXCSpMjISEVGRqb62uzZs1NM69Gjh3r06PGQqwIAAACA/7H5qHoAAAAA8LgjOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJiweXCaNGmSgoKC5OrqqtDQUG3ZsiXd9jdv3tSAAQMUGBgoFxcXFSxYUDNnznxE1QIAAAB4FjnacuULFy5Ur169NGnSJFWqVElTp05VvXr1tH//fgUEBKQ6T8uWLXX27FnNmDFDhQoV0rlz55SQkPCIKwcAAADwLLFpcBo7dqw6deqkzp07S5LGjx+vNWvWaPLkyRoxYkSK9qtXr9amTZt09OhRZc+eXZKUP3/+R1kyAAAAgGeQzbrq3bp1Szt37lTt2rWtpteuXVtbt25NdZ5ly5apXLlyGjVqlPLmzasiRYro7bff1r///pvmem7evKkrV65YPQAAAADgftjsitP58+eVmJgoPz8/q+l+fn46c+ZMqvMcPXpUP/74o1xdXbVkyRKdP39ekZGRunjxYpr3OY0YMUJDhw7N9PoBAAAAPDtsPjiEnZ2d1XPDMFJMS5aUlCQ7OzvNnTtXFSpUUP369TV27FjNnj07zatO/fv31+XLly2PkydPZvo2AAAAAHi62eyKU44cOeTg4JDi6tK5c+dSXIVKljt3buXNm1fe3t6WaSEhITIMQ6dOnVLhwoVTzOPi4iIXF5fMLR4AAADAM8VmV5ycnZ0VGhqqqKgoq+lRUVEKDw9PdZ5KlSrp9OnTunbtmmXan3/+KXt7e+XLl++h1gsAAADg2WXTrnp9+vTRF198oZkzZ+rAgQPq3bu3YmJi1K1bN0m3u9m1bdvW0r5169by8fFRhw4dtH//fm3evFnvvPOOOnbsKDc3N1ttBgAAAICnnE2HI4+IiNCFCxc0bNgwxcbGqnjx4lq1apUCAwMlSbGxsYqJibG09/T0VFRUlHr06KFy5crJx8dHLVu21PDhw221CQAAAACeATYNTpIUGRmpyMjIVF+bPXt2imnBwcEpuvcBAAAAwMNk81H1AAAAAOBxR3ACAAAAABMEJwAAAAAwQXACAAAAABMEJwAAAAAwkSnB6cqVK1q6dKkOHDiQGYsDAAAAgMdKhoJTy5Yt9dlnn0mS/v33X5UrV04tW7ZUyZIl9d1332VqgQAAAABgaxkKTps3b1blypUlSUuWLJFhGLp06ZImTJjAj9ECAAAAeOpkKDhdvnxZ2bNnlyStXr1azZo1k7u7uxo0aKBDhw5laoEAAAAAYGsZCk7+/v6Kjo5WXFycVq9erdq1a0uS/vnnH7m6umZqgQAAAABga44ZmalXr15q06aNPD09FRAQoGrVqkm63YWvRIkSmVkfAAAAANhchoJTZGSkKlSooJMnT6pWrVqyt7994apAgQLc4wQAAADgqZOh4CRJ5cqVU8mSJXXs2DEVLFhQjo6OatCgQWbWBgAAAACPhQzd43T9+nV16tRJ7u7ueu655xQTEyNJ6tmzpz7++ONMLRAAAAAAbC1Dwal///7as2ePNm7caDUYRM2aNbVw4cJMKw4AAAAAHgcZ6qq3dOlSLVy4UM8//7zs7Ows04sVK6YjR45kWnEAAAAA8DjI0BWnv//+W76+vimmx8XFWQUpAAAAAHgaZCg4lS9fXitXrrQ8Tw5L06dPV1hYWOZUBgAAAACPiQx11RsxYoTq1q2r/fv3KyEhQZ9++ql+//13RUdHa9OmTZldIwAAAADYVIauOIWHh2vr1q26fv26ChYsqLVr18rPz0/R0dEKDQ3N7BoBAAAAwKbu+4pTfHy8Xn/9dQ0cOFBffvnlw6gJAAAAAB4r933FycnJSUuWLHkYtQAAAADAYylDXfWaNGmipUuXZnIpAAAAAPB4ytDgEIUKFdIHH3ygrVu3KjQ0VB4eHlav9+zZM1OKAwAAAIDHQYaC0xdffKGsWbNq586d2rlzp9VrdnZ2BCcAAAAAT5UMBadjx45ldh0AAAAA8NjK0D1OdzIMQ4ZhZEYtAAAAAPBYynBwmjNnjkqUKCE3Nze5ubmpZMmS+uqrrzKzNgAAAAB4LGSoq97YsWM1cOBAde/eXZUqVZJhGPrpp5/UrVs3nT9/Xr17987sOgEAAADAZjIUnCZOnKjJkyerbdu2lmmNGzfWc889pyFDhhCcAAAAADxVMtRVLzY2VuHh4Smmh4eHKzY29oGLAgAAAIDHSYaCU6FChbRo0aIU0xcuXKjChQs/cFEAAAAA8DjJUFe9oUOHKiIiQps3b1alSpVkZ2enH3/8UevXr081UAEAAADAkyxDV5yaNWumbdu2KUeOHFq6dKkWL16sHDly6JdfflGTJk0yu0YAAAAAsKkMXXGSpNDQUH399deZWQsAAAAAPJYydMVp1apVWrNmTYrpa9as0ffff//ARQEAAADA4yRDwalfv35KTExMMd0wDPXr1++BiwIAAACAx0mGgtOhQ4dUrFixFNODg4N1+PDhBy4KAAAAAB4nGQpO3t7eOnr0aIrphw8floeHxwMXBQAAAACPkwwFp5deekm9evXSkSNHLNMOHz6st956Sy+99FKmFQcAAAAAj4MMBafRo0fLw8NDwcHBCgoKUlBQkIKDg+Xj46MxY8Zkdo0AAAAAYFMZGo7c29tbW7duVVRUlPbs2SM3NzeVKlVKlStXzuz6AAAAAMDm7uuK07Zt2yzDjdvZ2al27dry9fXVmDFj1KxZM73++uu6efPmQykUAAAAAGzlvoLTkCFDtHfvXsvzffv2qUuXLqpVq5b69eun5cuXa8SIEZleJAAAAADY0n0Fp927d6tGjRqW5wsWLFCFChU0ffp09enTRxMmTNCiRYsyvUgAAAAAsKX7Ck7//POP/Pz8LM83bdqkunXrWp6XL19eJ0+ezLzqAAAAAOAxcF/Byc/PT8eOHZMk3bp1S7/++qvCwsIsr1+9elVOTk6ZWyEAAAAA2Nh9Bae6deuqX79+2rJli/r37y93d3erkfT27t2rggULZnqRAAAAAGBL9zUc+fDhw9W0aVNVrVpVnp6e+vLLL+Xs7Gx5febMmapdu3amFwkAAAAAtnRfwSlnzpzasmWLLl++LE9PTzk4OFi9/s0338jT0zNTCwQAAAAAW8vwD+CmJnv27A9UDAAAAAA8ju7rHicAAAAAeBYRnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADAhM2D06RJkxQUFCRXV1eFhoZqy5Yt9zTfTz/9JEdHR5UuXfrhFggAAADgmWfT4LRw4UL16tVLAwYM0K5du1S5cmXVq1dPMTEx6c53+fJltW3bVjVq1HhElQIAAAB4ltk0OI0dO1adOnVS586dFRISovHjx8vf31+TJ09Od76uXbuqdevWCgsLe0SVAgAAAHiW2Sw43bp1Szt37lTt2rWtpteuXVtbt25Nc75Zs2bpyJEjGjx48D2t5+bNm7py5YrVAwAAAADuh82C0/nz55WYmCg/Pz+r6X5+fjpz5kyq8xw6dEj9+vXT3Llz5ejoeE/rGTFihLy9vS0Pf3//B64dAAAAwLPF5oND2NnZWT03DCPFNElKTExU69atNXToUBUpUuSel9+/f39dvnzZ8jh58uQD1wwAAADg2XJvl20eghw5csjBwSHF1aVz586luAolSVevXtWOHTu0a9cude/eXZKUlJQkwzDk6OiotWvX6sUXX0wxn4uLi1xcXB7ORgAAAAB4JtjsipOzs7NCQ0MVFRVlNT0qKkrh4eEp2mfJkkX79u3T7t27LY9u3bqpaNGi2r17typWrPioSgcAAADwjLHZFSdJ6tOnj1577TWVK1dOYWFhmjZtmmJiYtStWzdJt7vZ/fXXX5ozZ47s7e1VvHhxq/l9fX3l6uqaYjoAAAAAZCabBqeIiAhduHBBw4YNU2xsrIoXL65Vq1YpMDBQkhQbG2v6m04AAAAA8LDZNDhJUmRkpCIjI1N9bfbs2enOO2TIEA0ZMiTziwIAAACAO9h8VD0AAAAAeNwRnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEwQnAAAAADABMEJAAAAAEzYPDhNmjRJQUFBcnV1VWhoqLZs2ZJm28WLF6tWrVrKmTOnsmTJorCwMK1Zs+YRVgsAAADgWWTT4LRw4UL16tVLAwYM0K5du1S5cmXVq1dPMTExqbbfvHmzatWqpVWrVmnnzp2qXr26GjVqpF27dj3iygEAAAA8S2wanMaOHatOnTqpc+fOCgkJ0fjx4+Xv76/Jkyen2n78+PHq27evypcvr8KFC+ujjz5S4cKFtXz58kdcOQAAAIBnic2C061bt7Rz507Vrl3banrt2rW1devWe1pGUlKSrl69quzZs6fZ5ubNm7py5YrVAwAAAADuh82C0/nz55WYmCg/Pz+r6X5+fjpz5sw9LeOTTz5RXFycWrZsmWabESNGyNvb2/Lw9/d/oLoBAAAAPHtsPjiEnZ2d1XPDMFJMS838+fM1ZMgQLVy4UL6+vmm269+/vy5fvmx5nDx58oFrBgAAAPBscbTVinPkyCEHB4cUV5fOnTuX4irU3RYuXKhOnTrpm2++Uc2aNdNt6+LiIhcXlweuFwAAAMCzy2ZXnJydnRUaGqqoqCir6VFRUQoPD09zvvnz56t9+/aaN2+eGjRo8LDLBAAAAADbXXGSpD59+ui1115TuXLlFBYWpmnTpikmJkbdunWTdLub3V9//aU5c+ZIuh2a2rZtq08//VTPP/+85WqVm5ubvL29bbYdAAAAAJ5uNg1OERERunDhgoYNG6bY2FgVL15cq1atUmBgoCQpNjbW6jedpk6dqoSEBL355pt68803LdPbtWun2bNnP+ryAQAAADwjbBqcJCkyMlKRkZGpvnZ3GNq4cePDLwgAAAAA7mLzUfUAAAAA4HFHcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBh8+A0adIkBQUFydXVVaGhodqyZUu67Tdt2qTQ0FC5urqqQIECmjJlyiOqFAAAAMCzyqbBaeHCherVq5cGDBigXbt2qXLlyqpXr55iYmJSbX/s2DHVr19flStX1q5du/Tee++pZ8+e+u677x5x5QAAAACeJTYNTmPHjlWnTp3UuXNnhYSEaPz48fL399fkyZNTbT9lyhQFBARo/PjxCgkJUefOndWxY0eNGTPmEVcOAAAA4FniaKsV37p1Szt37lS/fv2spteuXVtbt25NdZ7o6GjVrl3balqdOnU0Y8YMxcfHy8nJKcU8N2/e1M2bNy3PL1++LEm6cuXKg25Cpkm6ed3WJaTpip1h6xKeTI/R8fUk4Vx4SnE+ZAjnw1OIcyHDOB+eQo/J+ZCcCQzD/H20WXA6f/68EhMT5efnZzXdz89PZ86cSXWeM2fOpNo+ISFB58+fV+7cuVPMM2LECA0dOjTFdH9//weo/tnhbesCnlQfs+eeNryjD4Dz4anDO5pBnAtPJd7VDHrMzoerV6/K2zv9mmwWnJLZ2dlZPTcMI8U0s/apTU/Wv39/9enTx/I8KSlJFy9elI+PT7rrwe0E7u/vr5MnTypLliy2LgewGc4F4H84H4D/4Xx48hmGoatXrypPnjymbW0WnHLkyCEHB4cUV5fOnTuX4qpSsly5cqXa3tHRUT4+PqnO4+LiIhcXF6tpWbNmzXjhz6AsWbLwYQCIcwG4E+cD8D+cD082sytNyWw2OISzs7NCQ0MVFRVlNT0qKkrh4eGpzhMWFpai/dq1a1WuXLlU728CAAAAgMxg01H1+vTpoy+++EIzZ87UgQMH1Lt3b8XExKhbt26Sbneza9u2raV9t27ddOLECfXp00cHDhzQzJkzNWPGDL399tu22gQAAAAAzwCb3uMUERGhCxcuaNiwYYqNjVXx4sW1atUqBQYGSpJiY2OtftMpKChIq1atUu/evfX5558rT548mjBhgpo1a2arTXiqubi4aPDgwSm6OgLPGs4F4H84H4D/4Xx4ttgZ9zL2HgAAAAA8w2zaVQ8AAAAAngQEJwAAAAAwQXACAAAAABMEJwC4B/nz59f48eMzvS3wLLn73LCzs9PSpUttVg8A3A+C0xNk69atcnBwUN26dW1dCmBT7du3l52dnezs7OTk5KQCBQro7bffVlxc3ENb5/bt2/X6669nelvgUbnzvHF0dFRAQIDeeOMN/fPPP7YuDcg0dx7ndz4OHz4sSdq8ebMaNWqkPHny3HNwT0xM1IgRIxQcHCw3Nzdlz55dzz//vGbNmvWQtwaPG5sOR477M3PmTPXo0UNffPGFYmJiFBAQYJM64uPj+cFh2FzdunU1a9YsxcfHa8uWLercubPi4uI0efJkq3aZdbzmzJnzobQFHqXk8yYhIUH79+9Xx44ddenSJc2fP9/WpQGZJvk4v1Py53JcXJxKlSqlDh063PPP2QwZMkTTpk3TZ599pnLlyunKlSvasWPHQ/3S4datW3J2dn5oy0fGcMXpCREXF6dFixbpjTfeUMOGDTV79myr15ctW6Zy5crJ1dVVOXLkUNOmTS2v3bx5U3379pW/v79cXFxUuHBhzZgxQ5I0e/ZsZc2a1WpZS5culZ2dneX5kCFDVLp0ac2cOVMFChSQi4uLDMPQ6tWr9cILLyhr1qzy8fFRw4YNdeTIEatlnTp1Sq1atVL27Nnl4eGhcuXKadu2bTp+/Ljs7e21Y8cOq/YTJ05UYGCgGCUfZlxcXJQrVy75+/urdevWatOmjZYuXZrm8Xr58mW9/vrr8vX1VZYsWfTiiy9qz549VstM7zy6u4vRkCFDFBAQIBcXF+XJk0c9e/ZMs21MTIwaN24sT09PZcmSRS1bttTZs2etllW6dGl99dVXyp8/v7y9vdWqVStdvXo183ccnmnJ502+fPlUu3ZtRUREaO3atZbXZ82apZCQELm6uio4OFiTJk2ymj+tz3RJOnLkiBo3biw/Pz95enqqfPnyWrdu3SPdPkD633F+58PBwUGSVK9ePQ0fPtzq893M8uXLFRkZqRYtWigoKEilSpVSp06d1KdPH0ubpKQkjRw5UoUKFZKLi4sCAgL04YcfWl7ft2+fXnzxRbm5ucnHx0evv/66rl27Znm9ffv2evnllzVixAjlyZNHRYoUkST99ddfioiIULZs2eTj46PGjRvr+PHjD7iHkFEEpyfEwoULVbRoURUtWlSvvvqqZs2aZQkXK1euVNOmTdWgQQPt2rVL69evV7ly5Szztm3bVgsWLNCECRN04MABTZkyRZ6enve1/sOHD2vRokX67rvvtHv3bkm3w1yfPn20fft2rV+/Xvb29mrSpImSkpIkSdeuXVPVqlV1+vRpLVu2THv27FHfvn2VlJSk/Pnzq2bNmim+EZo1a5blMjtwP9zc3BQfHy8p9eO1QYMGOnPmjFatWqWdO3eqbNmyqlGjhi5evCjJ/Dy607fffqtx48Zp6tSpOnTokJYuXaoSJUqk2tYwDL388su6ePGiNm3apKioKB05ckQRERFW7Y4cOaKlS5dqxYoVWrFihTZt2qSPP/44k/YOkNLRo0e1evVqyxXZ6dOna8CAAfrwww914MABffTRRxo4cKC+/PJLSel/pie/Xr9+fa1bt067du1SnTp11KhRI6sfsgeeRLly5dKGDRv0999/p9mmf//+GjlypAYOHKj9+/dr3rx58vPzkyRdv35ddevWVbZs2bR9+3Z98803Wrdunbp37261jPXr1+vAgQOKiorSihUrdP36dVWvXl2enp7avHmzfvzxR3l6eqpu3bq6devWQ91mpMHAEyE8PNwYP368YRiGER8fb+TIkcOIiooyDMMwwsLCjDZt2qQ638GDBw1JlrZ3mzVrluHt7W01bcmSJcadh8bgwYMNJycn49y5c+nWeO7cOUOSsW/fPsMwDGPq1KmGl5eXceHChVTbL1y40MiWLZtx48YNwzAMY/fu3YadnZ1x7NixdNcDtGvXzmjcuLHl+bZt2wwfHx+jZcuWqR6v69evN7JkyWI51pIVLFjQmDp1qmEY6Z9HhmEYgYGBxrhx4wzDMIxPPvnEKFKkiHHr1i3TtmvXrjUcHByMmJgYy+u///67Icn45ZdfDMO4fY65u7sbV65csbR55513jIoVK5rvDOAetWvXznBwcDA8PDwMV1dXQ5IhyRg7dqxhGIbh7+9vzJs3z2qeDz74wAgLCzMMw/wzPTXFihUzJk6caHl+57lhGIYhyViyZEnGNwq4y53HefKjefPmqba91+Pv999/N0JCQgx7e3ujRIkSRteuXY1Vq1ZZXr9y5Yrh4uJiTJ8+PdX5p02bZmTLls24du2aZdrKlSsNe3t748yZM5a6/fz8jJs3b1razJgxwyhatKiRlJRkmXbz5k3Dzc3NWLNmjWndyHxccXoCHDx4UL/88otatWolSXJ0dFRERIRmzpwpSdq9e7dq1KiR6ry7d++Wg4ODqlat+kA1BAYGprhv48iRI2rdurUKFCigLFmyKCgoSJIs3y7u3r1bZcqUUfbs2VNd5ssvvyxHR0ctWbJE0u17uKpXr678+fM/UK14NqxYsUKenp5ydXVVWFiYqlSpookTJ0pKebzu3LlT165dk4+Pjzw9PS2PY8eOWbqXpnce3a1Fixb6999/VaBAAXXp0kVLlixRQkJCqm0PHDggf39/+fv7W6YVK1ZMWbNm1YEDByzT8ufPLy8vL8vz3Llz69y5c/e+Q4B7UL16de3evVvbtm1Tjx49VKdOHfXo0UN///23Tp48qU6dOlmdI8OHD7c6R9L7TI+Li1Pfvn0tx7enp6f++OMPrjjhkUs+zpMfEyZMeKDlFStWTL/99pt+/vlndejQQWfPnlWjRo3UuXNnSbc/52/evJnm/yEHDhxQqVKl5OHhYZlWqVIlJSUl6eDBg5ZpJUqUsLqvaefOnTp8+LC8vLws52T27Nl148aNFLdG4NFgcIgnwIwZM5SQkKC8efNaphmGIScnJ/3zzz9yc3NLc970XpMke3v7FPcTJXd3utOdJ3uyRo0ayd/fX9OnT1eePHmUlJSk4sWLWy4fm63b2dlZr732mmbNmqWmTZtq3rx5DOGMe1a9enVNnjxZTk5OypMnj9UAEHcfr0lJScqdO7c2btyYYjnJ9/iZHa938vf318GDBxUVFaV169YpMjJSo0eP1qZNm1IMRGEYRqpdT++efvd8dnZ2li5QQGbx8PBQoUKFJEkTJkxQ9erVNXToUEuXoenTp6tixYpW8yTfG2J2jrzzzjtas2aNxowZo0KFCsnNzU3NmzenSxEeuTuP88xib2+v8uXLq3z58urdu7e+/vprvfbaaxowYIDpuZHW/wOSrKan9n9XaGio5s6dm2I+BiGyDa44PeYSEhI0Z84cffLJJ1bfnuzZs0eBgYGaO3euSpYsqfXr16c6f4kSJZSUlKRNmzal+nrOnDl19epVq2Gck+8JSc+FCxd04MABvf/++6pRo4ZCQkJSjC5TsmRJ7d6923IPSWo6d+6sdevWadKkSYqPj7+vmzXxbEv+jzEwMNB01LyyZcvqzJkzcnR0VKFChaweOXLkkKR0z6PUuLm56aWXXtKECRO0ceNGRUdHa9++fSnaFStWTDExMTp58qRl2v79+3X58mWFhITc8/qAh2Hw4MEaM2aMEhMTlTdvXh09ejTFOZLcm8DsM33Lli1q3769mjRpohIlSihXrlzcxI6nVrFixSTdvtJauHBhubm5pfl/SLFixbR7926rv7V++ukn2dvbWwaBSE3ZsmV16NAh+fr6pjgvvb29M3eDcE8ITo+5FStW6J9//lGnTp1UvHhxq0fz5s01Y8YMDR48WPPnz9fgwYN14MAB7du3T6NGjZJ0u/tPu3bt1LFjRy1dulTHjh3Txo0btWjRIklSxYoV5e7urvfee0+HDx/WvHnzUozYl5rk0V2mTZumw4cPa8OGDVajy0jSK6+8oly5cunll1/WTz/9pKNHj+q7775TdHS0pU1ISIief/55vfvuu3rllVfu61t/4F7VrFlTYWFhevnll7VmzRodP35cW7du1fvvv28Z2TG98+hus2fP1owZM/Tbb7/p6NGj+uqrr+Tm5qbAwMBU112yZEm1adNGv/76q3755Re1bdtWVatWTXPwCeBRqVatmp577jl99NFHGjJkiEaMGKFPP/1Uf/75p/bt26dZs2Zp7Nixksw/0wsVKqTFixdbvtxr3bo1V03x2Ll27ZrlS2hJOnbsmHbv3p1ul9LmzZtr3Lhx2rZtm06cOKGNGzfqzTffVJEiRRQcHCxXV1e9++676tu3r+bMmaMjR47o559/toxg3KZNG7m6uqpdu3b67bff9MMPP6hHjx567bXXLANIpKZNmzbKkSOHGjdurC1btujYsWPatGmT/vOf/+jUqVOZul9wbwhOj7kZM2aoZs2aqX6z0KxZM+3evVtZsmTRN998o2XLlql06dJ68cUXLcPDStLkyZPVvHlzRUZGKjg4WF26dLF865E9e3Z9/fXXWrVqlUqUKKH58+dryJAhpnXZ29trwYIF2rlzp4oXL67evXtr9OjRVm2cnZ21du1a+fr6qn79+ipRooQ+/vhjS7ePZJ06ddKtW7fUsWPHDOwhwJydnZ1WrVqlKlWqqGPHjipSpIhatWql48ePW/7TqlatWrrn0Z2yZs2q6dOnq1KlSpYrVcuXL5ePj0+q6166dKmyZcumKlWqqGbNmipQoIAWLlz4ULcZuFd9+vTR9OnTVadOHX3xxReaPXu2SpQooapVq2r27NmWK05mn+njxo1TtmzZFB4erkaNGqlOnToqW7asLTcNSGHHjh0qU6aMypQpI+n28V+mTBkNGjQozXnq1Kmj5cuXq1GjRipSpIjatWun4OBgrV27Vo6Ot+96GThwoN566y0NGjRIISEhioiIsNyn6u7urjVr1ujixYsqX768mjdvrho1auizzz5Lt1Z3d3dt3rxZAQEBatq0qUJCQtSxY0f9+++/ypIlSybtEdwPO+PuG1yAR+zDDz/UggULUu3mBAAAADwOuOIEm7l27Zq2b9+uiRMnWv14KAAAAPC4ITjBZrp3764XXnhBVatWpZseAAAAHmt01QMAAAAAE1xxAgAAAAATBCcAAAAAMEFwAgAAAAATBCcAAAAAMEFwAgAAAAATBCcAAAAAMEFwAgAAAAATBCcAAAAAMEFwAgAAAAAT/wd1A8d3f7IL9wAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Create a DataFrame for visualization\n",
    "metrics = ['Accuracy', 'Precision', 'Recall', 'F1 Score']\n",
    "logistic_values = [logistic_accuracy, logistic_precision, logistic_recall, logistic_f1]\n",
    "nb_values = [nb_accuracy, nb_precision, nb_recall, nb_f1]\n",
    "\n",
    "# Plotting\n",
    "x = range(len(metrics))\n",
    "\n",
    "plt.figure(figsize=(10,6))\n",
    "plt.bar(x, logistic_values, width=0.4, label='Logistic Regression', align='center')\n",
    "plt.bar(x, nb_values, width=0.4, label='Naive Bayes', align='edge')\n",
    "plt.xticks(x, metrics)\n",
    "plt.ylabel('Scores')\n",
    "plt.title('Comparison of Logistic Regression and Naive Bayes Models')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3ce14bc4-39e2-4a57-99a7-73b23f0c6d48",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 294,
   "id": "de61fb7c-6b24-4f79-b0b9-4a31e6d7da7d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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/Pz80LFjR/zzzz9YvXo1TExMsGjRIhgZPf49wcHBAX369MHPP/+MZs2aoVOnTrh27Ro2bdqEjh074uLFiy+kPh988AHS09PRvn17uLi4QCaTYd++fUhJSUGrVq3QunVrAI+jGYsWLUK/fv3g6+uLkJAQ1KxZEzt27MDhw4fRokULfPTRR1rVJSUlBR06dIC/v3+5bqCXmZlZYqemTp06mDJlCubPn482bdpgyJAh2LhxIxo2bIhTp05hw4YNqFmzJubPn6/yvLlz56Jdu3YIDQ1Fnz594O7ujj///BMHDhxAu3btsGfPHqmtSrJixQrEx8ejffv2qFu3LqysrHDq1Cls2bIFNjY2GDRokJS3Y8eO+Omnn9C3b1907doVZmZm8Pb2Rrdu3Uosf8qUKThw4ACWL1+OAwcOICgoCAqFAhcvXsTWrVuxb98+rX4lNzMzw/jx4zF69GhMmTIFiYmJ5X5f169fH+PHj8f06dPh7e2Nvn37wtjYGGvXroW3tzdOnDjxzOv4JIVCgZ9++glBQUHw9/dHp06dpIUW0tPTsXfvXtSoUQNnzpwBAMyaNQtJSUno0KED3NzcYGZmhj///BM7duxA3bp10atXLwDlaytN2rVrh1GjRmHu3Lnw8vJCnz59IITA2rVrcfXqVYwePVoae68LZmZm6Nu3LxYvXowrV67Aw8ND+lW72IMHD9CpUye4ubnB19cXderUwf3797Fp0yZkZWXh448/1upHlaZNmyIkJASrV69W2/eiP8969OgBKysrfPHFFygoKFDrRBWLj49HWloaxo0bh+XLl6Nly5awtrbG1atXkZqainPnziEzM1MtilKSn376SXptPXr0CFeuXMH69etx//59REREqPz9HTVqFEaNGoXXX38db731Fh49eoSkpCQIIdC4ceMSI59du3aFk5MTrl69ilq1aiEoKEgtj67eB1QJvMglpujVUd7l/FDCkpz3798X0dHRol69esLU1FRUrVpVBAUFlbjk6c2bN8W7774ratasKczMzISPj49Yu3atSExMVFtuttiZM2dERESEcHZ2FqampqJatWrC29tbjB49WmV9/OJ6luceBkI8Xi70p59+Ej179hSOjo7C1NRUmJubCy8vLzF69Ghx6tQptef89ddf4q233hI2NjbCxMREODs7i9GjR6utVy/E4+VmnZ2dNR67pPoW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999/H+3atcOMGTPQo0cP/PLLL9i+fTv27dsn5YmMjERYWBiaNWuGli1bYuHChUhPT8ewYcMAPB4CNWbMGEyfPh0eHh7w8PDA9OnTYW5ujv79+7+kq6OOHQsiIiIiIg0OHz6MDh06SI+L52YMGDAAS5YsQWZmpsq9JVxdXbFlyxaMHTsW8+bNg6OjI+bMmYM+ffpIeVq1aoXVq1dj4sSJiI6Ohru7O9asWQNfX18pT0hICG7evIkpU6YgMzMTXl5e2LJlC5ydnaU848aNw4MHDzB8+HDcunULvr6++O2332BpaanLS1Iq3seCXgpO9qs8OLmzcmF7Vy5s78qlIidvb6vxms7KDrxZsXenfpUxYkFEREREekVfhkJR+XDyNhERERERaY0RCyIiIiLSK7pcbpZ0hxELIiIiIiLSGiMWRERERKRXOMfCMDFiQUREREREWmPEgoiIiIj0CudYGCZGLIiIiIiISGuMWBARERGRXuEcC8PEiAUREREREWmNEQsiIiIi0isyOSMWhogdCyIiIiLSK0bsWBgkDoUiIiIiIiKtMWJBRERERHpFZsSIhSFixIKIiIiIiLTGiAURERER6RWZnL99GyK2GhERERERaY0RCyIiIiLSK1wVyjAxYkFERERERFpjxIKIiIiI9ApXhTJM7FgQERERkV7hUCjDxKFQRERERESkNUYsiIiIiEivyBixMEiMWBARERERkdYYsSAiIiIivSIz4m/fhoitRkREREREWmPEgoiIiIj0CpebNUyMWBARERERkdYYsSAiIiIivcL7WBgmdiyIiIiISK9wKJRh4lAoIiIiIiLSGiMWRERERKRXuNysYWKrERERERGR1hixICIiIiK9wjkWhokRCyIiIiIi0hojFkRERESkV7jcrGFixIKIiIiIiLTGiAURERER6RXOsTBM7FgQERERkV7hcrOGia1GRERERERaY8SCiIiIiPQKh0IZJkYsiIiIiIhKER8fD1dXV5iZmcHHxwd79+4tNf+8efPg6ekJpVKJ+vXrY9myZSr7CwoKMGXKFLi7u8PMzAyNGzfG1q1bVfK4uLhAJpOpbSNGjJDyhIeHq+338/N7cSdeToxYEBEREZFe0aeIxZo1azBmzBjEx8ejdevWWLBgAYKCgnDq1CnUqVNHLf/8+fMRFRWFRYsWoXnz5khJScGQIUNQrVo1BAcH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IiIiIqo0oqKiEBkZqZJW0q/7NjY2kMvlatGJ69evq0UxiimVSiQkJGDBggW4du0aHBwcsHDhQlhaWsLGxgbA485HWFiYNG/D29sbOTk5ePfddzFhwgQYGf3vt/8rV65g+/btWLt27TPPzcHBAc7Ozjh37twz8+oCIxZEREREpFd0OcdCoVDAyspKZSupY2FqagofHx8kJSWppCclJaFVq1alnoOJiQlq164NuVyO1atXo3v37lKHITc3V6XzADyOZgghIIRQSU9MTIStrW2J8y+edPPmTVy9ehUODg7PzKsLjFgQEREREZUgMjISYWFhaNasGVq2bImFCxciPT0dw4YNA/A4ApKRkSHdq+Ls2bNISUmBr68vbt26hbi4OJw4cQJLly6VygwODkZcXBxef/11+Pr64vz584iOjsabb74pDZcCgKKiIiQmJmLAgAEwNlb92n7//n3ExMSgT58+cHBwwOXLl/HJJ5/AxsYGvXr1eglXRh07FkRERESkV/RpudmQkBDcvHkTU6ZMQWZmJry8vLBlyxY4OzsDADIzM5Geni7lLywsxKxZs5CWlgYTExN06NABycnJcHFxkfJMnDgRMpkMEydOREZGBmrWrIng4GBMmzZN5djbt29Heno6Bg0apFYvuVyO48ePY9myZbh9+zYcHBzQoUMHrFmzBpaWlrq5GM8gE0/HW4h0oE3w7oquAr0k+zb6o9fIihnbSS/fum88+P6uRPZt9Gd7VyL7Nvo/O5OOpJy5o7OyWzSw1lnZlR0jFkRERESkV4oqugL0XNixICIiIiK9ok9DoajsuCoUERERERFpjRELIiIiItIrAoxYGCJGLIiIiIiISGuMWBARERGRXuEcC8PEiAUREREREWmNEQsiIiIi0iucY2GYGLEgIiIiIiKtMWJBRERERHqlSFR0Deh5sGNBRERERHqFQ6EME4dCERERERGR1hixICIiIiK9wuVmDRMjFkREREREpDVGLIiIiIhIrwhO3jZIjFgQEREREZHWGLEgIiIiIr1SxFWhDBIjFkREREREpDVGLIiIiIhIr3BVKMPEjgURERER6RVO3jZMHApFRERERERaY8SCiIiIiPSK4ORtg8SIBRERERERaY0RCyIiIiLSK0WcY2GQGLEgIiIiIiKtMWJBRERERHqFy80aJkYsiIiIiIhIa4xYEBEREZFe4X0s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+PAh/f392Gw2urq6aG5u3vK6YmJi6O7u5u3bt2RlZXH+/Hna2to2HBMbG8vg4CCpqakcO3YMm83G9evXjbKMr6qrq/n8+TN+v/8f9JDAeplCf38/hYWF+P1+zGYzJ0+eZHl52fhBUFRUtOk4+aukpCQ6OzvJz883Mh19fX2kpKREPHdvby/JyckUFhbicrlIT0+np6fnX22zfHPhwgU6Oztxu93cvXuXYDCIzWbD6XQSDAaNjMVWz2R7ezvJycnk5eVRWlqK2+3G4XD8yqb9b01PT2O327Hb7cD6Pbbb7TQ2Nv70PW63m76+PkpLSzGbzfh8PiwWC4ODg+zZs141fuXKFS5evEhjYyNWq5UTJ04Ya51MJhMDAwOsrKyQm5uLx+OhpKSE27dvb3qtJpOJly9fsn//fioqKrBarfj9fj59+kRCQsI29YjIzvnjy/dF4iKya1y9epXu7u6IZTYiIiIiO0kZC5FdaG1tjTdv3nDr1q0Nf74mIiIi8qsosBDZhWpraykoKMDpdKoMSkRERP4TVAolIiIiIiJRU8ZCRERERESipsBCRERERESipsBCRERERESipsBCRERERESipsBCRERERESipsBCRERERESipsBCRERERESipsBCRERERESipsBCRERERESi9ie8y9jIh+hX+gAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 800x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Create a DataFrame to hold the metric values for both models\n",
    "data = {\n",
    "    'Accuracy': [logistic_accuracy, nb_accuracy],\n",
    "    'Precision': [logistic_precision, nb_precision],\n",
    "    'Recall': [logistic_recall, nb_recall],\n",
    "    'F1 Score': [logistic_f1, nb_f1]\n",
    "}\n",
    "\n",
    "# Create a DataFrame with two rows: one for each model\n",
    "df = pd.DataFrame(data, index=['Logistic Regression', 'Naive Bayes'])\n",
    "\n",
    "# Plotting the heatmap\n",
    "plt.figure(figsize=(8, 6))\n",
    "sns.heatmap(df, annot=True, cmap='coolwarm', fmt='.3f', cbar_kws={'label': 'Score'}, linewidths=0.5)\n",
    "plt.title('Model Comparison: Logistic Regression vs Naive Bayes', fontsize=14)\n",
    "plt.yticks(rotation=0)  # Keep the labels horizontal\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0d95379d-c5f4-4bbb-9bfd-40c20c3cfd4a",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "anaconda-2024.02-py310",
   "language": "python",
   "name": "conda-env-anaconda-2024.02-py310-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
