{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "2b9f01b9-9f61-439a-a37b-40c8be2b37c4",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import accuracy_score, classification_report, confusion_matrix\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.naive_bayes import GaussianNB\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.metrics import accuracy_score,confusion_matrix,classification_report,precision_score,recall_score,f1_score\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "00bbc080-ae48-4997-9755-7c52c1bfffcf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PatientId</th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>148</td>\n",
       "      <td>72</td>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "      <td>33.6</td>\n",
       "      <td>0.627</td>\n",
       "      <td>50</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>85</td>\n",
       "      <td>66</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>26.6</td>\n",
       "      <td>0.351</td>\n",
       "      <td>31</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>8</td>\n",
       "      <td>183</td>\n",
       "      <td>64</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>23.3</td>\n",
       "      <td>0.672</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>66</td>\n",
       "      <td>23</td>\n",
       "      <td>94</td>\n",
       "      <td>28.1</td>\n",
       "      <td>0.167</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>137</td>\n",
       "      <td>40</td>\n",
       "      <td>35</td>\n",
       "      <td>168</td>\n",
       "      <td>43.1</td>\n",
       "      <td>2.288</td>\n",
       "      <td>33</td>\n",
       "      <td>1</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",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>763</th>\n",
       "      <td>764</td>\n",
       "      <td>10</td>\n",
       "      <td>101</td>\n",
       "      <td>76</td>\n",
       "      <td>48</td>\n",
       "      <td>180</td>\n",
       "      <td>32.9</td>\n",
       "      <td>0.171</td>\n",
       "      <td>63</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>764</th>\n",
       "      <td>765</td>\n",
       "      <td>2</td>\n",
       "      <td>122</td>\n",
       "      <td>70</td>\n",
       "      <td>27</td>\n",
       "      <td>0</td>\n",
       "      <td>36.8</td>\n",
       "      <td>0.340</td>\n",
       "      <td>27</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>765</th>\n",
       "      <td>766</td>\n",
       "      <td>5</td>\n",
       "      <td>121</td>\n",
       "      <td>72</td>\n",
       "      <td>23</td>\n",
       "      <td>112</td>\n",
       "      <td>26.2</td>\n",
       "      <td>0.245</td>\n",
       "      <td>30</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>766</th>\n",
       "      <td>767</td>\n",
       "      <td>1</td>\n",
       "      <td>126</td>\n",
       "      <td>60</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.1</td>\n",
       "      <td>0.349</td>\n",
       "      <td>47</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>767</th>\n",
       "      <td>768</td>\n",
       "      <td>1</td>\n",
       "      <td>93</td>\n",
       "      <td>70</td>\n",
       "      <td>31</td>\n",
       "      <td>0</td>\n",
       "      <td>30.4</td>\n",
       "      <td>0.315</td>\n",
       "      <td>23</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>768 rows × 10 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     PatientId  Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin  \\\n",
       "0            1            6      148             72             35        0   \n",
       "1            2            1       85             66             29        0   \n",
       "2            3            8      183             64              0        0   \n",
       "3            4            1       89             66             23       94   \n",
       "4            5            0      137             40             35      168   \n",
       "..         ...          ...      ...            ...            ...      ...   \n",
       "763        764           10      101             76             48      180   \n",
       "764        765            2      122             70             27        0   \n",
       "765        766            5      121             72             23      112   \n",
       "766        767            1      126             60              0        0   \n",
       "767        768            1       93             70             31        0   \n",
       "\n",
       "      BMI  DiabetesPedigreeFunction  Age  Outcome  \n",
       "0    33.6                     0.627   50        1  \n",
       "1    26.6                     0.351   31        0  \n",
       "2    23.3                     0.672   32        1  \n",
       "3    28.1                     0.167   21        0  \n",
       "4    43.1                     2.288   33        1  \n",
       "..    ...                       ...  ...      ...  \n",
       "763  32.9                     0.171   63        0  \n",
       "764  36.8                     0.340   27        0  \n",
       "765  26.2                     0.245   30        0  \n",
       "766  30.1                     0.349   47        1  \n",
       "767  30.4                     0.315   23        0  \n",
       "\n",
       "[768 rows x 10 columns]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.read_csv('diabetes.csv')\n",
    "X = data.drop(columns=[\"Outcome\"]) \n",
    "y = data[\"Outcome\"]\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "3bcda3f2-8b48-4e78-a5f0-5271b4ba0677",
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, X_test, Y_train, Y_test = train_test_split(X, y, test_size=0.2, stratify=y, random_state=42)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "dfb8c784-752d-45f1-b46f-1bdbfe569373",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PatientId</th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>148</td>\n",
       "      <td>72</td>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "      <td>33.6</td>\n",
       "      <td>0.627</td>\n",
       "      <td>50</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>85</td>\n",
       "      <td>66</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>26.6</td>\n",
       "      <td>0.351</td>\n",
       "      <td>31</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>8</td>\n",
       "      <td>183</td>\n",
       "      <td>64</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>23.3</td>\n",
       "      <td>0.672</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>66</td>\n",
       "      <td>23</td>\n",
       "      <td>94</td>\n",
       "      <td>28.1</td>\n",
       "      <td>0.167</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>137</td>\n",
       "      <td>40</td>\n",
       "      <td>35</td>\n",
       "      <td>168</td>\n",
       "      <td>43.1</td>\n",
       "      <td>2.288</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PatientId  Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin  \\\n",
       "0          1            6      148             72             35        0   \n",
       "1          2            1       85             66             29        0   \n",
       "2          3            8      183             64              0        0   \n",
       "3          4            1       89             66             23       94   \n",
       "4          5            0      137             40             35      168   \n",
       "\n",
       "    BMI  DiabetesPedigreeFunction  Age  Outcome  \n",
       "0  33.6                     0.627   50        1  \n",
       "1  26.6                     0.351   31        0  \n",
       "2  23.3                     0.672   32        1  \n",
       "3  28.1                     0.167   21        0  \n",
       "4  43.1                     2.288   33        1  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "21f1ead3-71f8-4096-a696-4d82423bf95a",
   "metadata": {},
   "outputs": [],
   "source": [
    "x =  data.drop(columns = 'Outcome',axis=1)\n",
    "y = data['Outcome']"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d7c0fee0-0f3a-422b-8c66-6aa144cfc857",
   "metadata": {},
   "source": [
    "Decision Tree"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "f11bd761-1c0a-4f6f-9e09-58dc570631c5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeClassifier(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 fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;DecisionTreeClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.5/modules/generated/sklearn.tree.DecisionTreeClassifier.html\">?<span>Documentation for DecisionTreeClassifier</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>DecisionTreeClassifier(random_state=42)</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "DecisionTreeClassifier(random_state=42)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#TRAINING MODEL\n",
    "decisiontree_model =  DecisionTreeClassifier(random_state=42)\n",
    "decisiontree_model.fit(X_train, Y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "ed4de302-3f73-4fdb-a91e-0e90e633cca0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.6883116883116883\n",
      "Precision: 0.5576923076923077\n",
      "Recall: 0.5370370370370371\n",
      "F1 Score: 0.5471698113207547\n"
     ]
    }
   ],
   "source": [
    "y_pred_dt = decisiontree_model.predict(X_test)\n",
    "\n",
    "accuracy = accuracy_score(Y_test, y_pred_dt)\n",
    "precision = precision_score(Y_test, y_pred_dt)\n",
    "recall = recall_score(Y_test, y_pred_dt)\n",
    "f1 = f1_score(Y_test, y_pred_dt)\n",
    "\n",
    "print(\"Accuracy:\", accuracy)\n",
    "print(\"Precision:\", precision)\n",
    "print(\"Recall:\", recall)\n",
    "print(\"F1 Score:\", f1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "1411fa50-b7f4-49b1-b106-38ab0eded10d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "CM = confusion_matrix(Y_test, y_pred_dt)\n",
    "plt.figure(figsize=(3, 4))\n",
    "sns.heatmap(CM, annot=True, fmt='d', cmap='Blues')\n",
    "plt.xlabel('Predicted')\n",
    "plt.ylabel('Actual')\n",
    "plt.title('Confusion Matrix')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a342b8c5-4c67-45aa-ae16-15b87d8f9aab",
   "metadata": {},
   "source": [
    "Random Forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "f8868e82-63bd-4920-919a-ddde5d499eb6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-2 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-2 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-2 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-2 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-2 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-2 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-2 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-2 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-2 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-2 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-2\" 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 fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;RandomForestClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.5/modules/generated/sklearn.ensemble.RandomForestClassifier.html\">?<span>Documentation for RandomForestClassifier</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>RandomForestClassifier(random_state=42)</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "RandomForestClassifier(random_state=42)"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#TRAINING MODEL\n",
    "randomforest_model = RandomForestClassifier(n_estimators=100,random_state=42)\n",
    "randomforest_model.fit(X_train, Y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "d63ee791-733c-4073-94bc-8a882f00d6d4",
   "metadata": {},
   "outputs": [],
   "source": [
    "#TEST\n",
    "y_pred_rf = randomforest_model.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "749416d7-d28f-484a-978c-0cbec13d8b23",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.7402597402597403\n",
      "Precision: 0.64\n",
      "Recall: 0.5925925925925926\n",
      "F1 Score: 0.6153846153846154\n"
     ]
    }
   ],
   "source": [
    "accuracy = accuracy_score(Y_test, y_pred_rf)\n",
    "precision = precision_score(Y_test, y_pred_rf)\n",
    "recall = recall_score(Y_test, y_pred_rf)\n",
    "f1 = f1_score(Y_test, y_pred_rf)\n",
    "\n",
    "print(\"Accuracy:\", accuracy)\n",
    "print(\"Precision:\", precision)\n",
    "print(\"Recall:\", recall)\n",
    "print(\"F1 Score:\", f1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "2dbee5c1-b117-46cf-bc9f-98914635c569",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "CM_rf = confusion_matrix(Y_test, y_pred_rf)\n",
    "plt.figure(figsize=(3, 4))\n",
    "sns.heatmap(CM_rf, annot=True, fmt='d', cmap='Blues')\n",
    "plt.xlabel('Predicted')\n",
    "plt.ylabel('Actual')\n",
    "plt.title('Confusion Matrix')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1803dda2-d1aa-484b-88aa-9c9dc394c475",
   "metadata": {},
   "source": [
    "Navie bayes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "a89692e9-9f17-4235-8c1c-57556f05169e",
   "metadata": {},
   "outputs": [],
   "source": [
    "#TRAINING THE MODEL\n",
    "naivebayes_model = GaussianNB()\n",
    "naivebayes_model.fit(X_train, Y_train)\n",
    "y_pred_nb = naivebayes_model.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "27c92721-a5ef-4413-93ee-587382c978e0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.7142857142857143\n",
      "Precision: 0.5862068965517241\n",
      "Recall: 0.6296296296296297\n",
      "F1 Score: 0.6071428571428571\n"
     ]
    }
   ],
   "source": [
    "accuracy = accuracy_score(Y_test, y_pred_nb)\n",
    "precision = precision_score(Y_test, y_pred_nb)\n",
    "recall = recall_score(Y_test, y_pred_nb)\n",
    "f1 = f1_score(Y_test, y_pred_nb)\n",
    "\n",
    "print(\"Accuracy:\", accuracy)\n",
    "print(\"Precision:\", precision)\n",
    "print(\"Recall:\", recall)\n",
    "print(\"F1 Score:\", f1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "8312d945-fb59-48ff-b682-05e7e9775255",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Confusion Matrix')"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "CM_nb = confusion_matrix(Y_test, y_pred_nb)\n",
    "plt.figure(figsize=(3, 4))\n",
    "sns.heatmap(CM_nb, annot=True, fmt='d', cmap='Blues')\n",
    "plt.xlabel('Predicted')\n",
    "plt.ylabel('Actual')\n",
    "plt.title('Confusion Matrix')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "aa2246d0-c0b7-44c9-b256-c880c07c30b1",
   "metadata": {},
   "outputs": [],
   "source": [
    "svm_model = SVC(kernel='linear', random_state=42)\n",
    "svm_model.fit(X_train, Y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8e18ba2a-3d79-430a-86a2-bab1a7b2477b",
   "metadata": {},
   "outputs": [],
   "source": [
    "#test\n",
    "y_pred_svm = svm_model.predict(X_test)\n",
    "accuracy = accuracy_score(Y_test, y_pred_svm)\n",
    "precision = precision_score(Y_test, y_pred_svm)\n",
    "recall = recall_score(Y_test, y_pred_svm)\n",
    "f1 = f1_score(Y_test, y_pred_svm)\n",
    "\n",
    "print(\"Accuracy:\", accuracy)\n",
    "print(\"Precision:\", precision)\n",
    "print(\"Recall:\", recall)\n",
    "print(\"F1 Score:\", f1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bf7668f8-f734-49dd-aae3-97cc7791814f",
   "metadata": {},
   "outputs": [],
   "source": [
    "cm_svm = confusion_matrix(Y_test, y_pred_svm)\n",
    "plt.figure(figsize=(3, 4))\n",
    "sns.heatmap(cm_svm, annot=True, fmt='d', cmap='Blues')\n",
    "plt.xlabel('Predicted')\n",
    "plt.ylabel('Actual')\n",
    "plt.title('Confusion Matrix')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:base] *",
   "language": "python",
   "name": "conda-base-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.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
