{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "dc64b6f4",
   "metadata": {},
   "source": [
    "<h5 style=\"\n",
    "    background: linear-gradient(90deg, #4e54c8, #8f94fb);\n",
    "    color: white;\n",
    "    padding: 10px;\n",
    "    border-radius: 8px;\n",
    "    font-family: Arial, sans-serif;\n",
    "    font-weight: bold;\n",
    "    box-shadow: 0 2px 8px rgba(78,84,200,0.15);\n",
    "\">\n",
    "Name: Tareque Hasnat Tuhin<br>\n",
    "ID: 2513674\n",
    "</h5>\n",
    "\n",
    "\n",
    "<i style=\"color:yellow; font-weight: 600\">Decision Tree, Naive Bias & SVM</i><br>\n",
    "<h5 style=\"font-weight:600\">Activity: Implementing and Comparing ML Algorithms on the Diabetes Dataset</h5>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "fb9b4950",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.datasets import load_iris\n",
    "from sklearn.model_selection import train_test_split\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 confusion_matrix, ConfusionMatrixDisplay, accuracy_score, classification_report\n",
    "import matplotlib.pyplot as plt\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "399f75cc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Diabetes dataset - Training samples: 614, Testing samples: 154\n",
      "Diabetes dataset - Training features shape: (614, 9), Testing features shape: (154, 9)\n"
     ]
    }
   ],
   "source": [
    "\n",
    "# Load diabetes dataset\n",
    "data = pd.read_csv('diabetes.csv')\n",
    "X_d = data.drop('Outcome', axis=1)\n",
    "y_d = data['Outcome']\n",
    "X_train_d, X_test_d, y_train_d, y_test_d = train_test_split(X_d, y_d, test_size=0.2, random_state=42)\n",
    "print(f\"Diabetes dataset - Training samples: {X_train_d.shape[0]}, Testing samples: {X_test_d.shape[0]}\")\n",
    "print(f\"Diabetes dataset - Training features shape: {X_train_d.shape}, Testing features shape: {X_test_d.shape}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a9a8f28d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iris dataset - Training samples: 120, Testing samples: 30\n",
      "Iris dataset - Training features shape: (120, 4), Testing features shape: (30, 4)\n",
      "Iris dataset - Number of classes: 3\n"
     ]
    }
   ],
   "source": [
    "\n",
    "# Load iris dataset\n",
    "iris = load_iris()\n",
    "X_i = iris.data\n",
    "y_i = iris.target\n",
    "X_train_i, X_test_i, y_train_i, y_test_i = train_test_split(X_i, y_i, test_size=0.2, random_state=42)\n",
    "print(f\"Iris dataset - Training samples: {X_train_i.shape[0]}, Testing samples: {X_test_i.shape[0]}\")\n",
    "print(f\"Iris dataset - Training features shape: {X_train_i.shape}, Testing features shape: {X_test_i.shape}\")\n",
    "print(f\"Iris dataset - Number of classes: {len(np.unique(y_i))}\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "9b0c4aba",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "--- Decision Tree ---\n",
      "Diabetes Training Accuracy: 1.0\n",
      "Diabetes Testing Accuracy: 0.7662337662337663\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.84      0.79      0.81        99\n",
      "           1       0.66      0.73      0.69        55\n",
      "\n",
      "    accuracy                           0.77       154\n",
      "   macro avg       0.75      0.76      0.75       154\n",
      "weighted avg       0.77      0.77      0.77       154\n",
      "\n",
      "[[78 21]\n",
      " [15 40]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iris Training Accuracy: 1.0\n",
      "Iris Testing Accuracy: 1.0\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        10\n",
      "           1       1.00      1.00      1.00         9\n",
      "           2       1.00      1.00      1.00        11\n",
      "\n",
      "    accuracy                           1.00        30\n",
      "   macro avg       1.00      1.00      1.00        30\n",
      "weighted avg       1.00      1.00      1.00        30\n",
      "\n",
      "[[10  0  0]\n",
      " [ 0  9  0]\n",
      " [ 0  0 11]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "# Decision Tree\n",
    "print(\"\\n--- Decision Tree ---\")\n",
    "dt_diabetes = DecisionTreeClassifier()\n",
    "dt_diabetes.fit(X_train_d, y_train_d)\n",
    "y_pred_dt_d_train = dt_diabetes.predict(X_train_d)\n",
    "y_pred_dt_d_test = dt_diabetes.predict(X_test_d)\n",
    "print(\"Diabetes Training Accuracy:\", accuracy_score(y_train_d, y_pred_dt_d_train))\n",
    "print(\"Diabetes Testing Accuracy:\", accuracy_score(y_test_d, y_pred_dt_d_test))\n",
    "print(classification_report(y_test_d, y_pred_dt_d_test))\n",
    "print(confusion_matrix(y_test_d, y_pred_dt_d_test))\n",
    "ConfusionMatrixDisplay.from_estimator(dt_diabetes, X_test_d, y_test_d)\n",
    "plt.title(\"Decision Tree - Diabetes\")\n",
    "plt.show()\n",
    "\n",
    "dt_iris = DecisionTreeClassifier()\n",
    "dt_iris.fit(X_train_i, y_train_i)\n",
    "y_pred_dt_i_train = dt_iris.predict(X_train_i)\n",
    "y_pred_dt_i_test = dt_iris.predict(X_test_i)\n",
    "print(\"Iris Training Accuracy:\", accuracy_score(y_train_i, y_pred_dt_i_train))\n",
    "print(\"Iris Testing Accuracy:\", accuracy_score(y_test_i, y_pred_dt_i_test))\n",
    "print(classification_report(y_test_i, y_pred_dt_i_test))\n",
    "print(confusion_matrix(y_test_i, y_pred_dt_i_test))\n",
    "ConfusionMatrixDisplay.from_estimator(dt_iris, X_test_i, y_test_i)\n",
    "plt.title(\"Decision Tree - Iris\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "3c39c101",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "--- Random Forest ---\n",
      "Diabetes Training Accuracy: 1.0\n",
      "Diabetes Testing Accuracy: 0.7532467532467533\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.82      0.79      0.80        99\n",
      "           1       0.64      0.69      0.67        55\n",
      "\n",
      "    accuracy                           0.75       154\n",
      "   macro avg       0.73      0.74      0.74       154\n",
      "weighted avg       0.76      0.75      0.76       154\n",
      "\n",
      "[[78 21]\n",
      " [17 38]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iris Training Accuracy: 1.0\n",
      "Iris Testing Accuracy: 1.0\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        10\n",
      "           1       1.00      1.00      1.00         9\n",
      "           2       1.00      1.00      1.00        11\n",
      "\n",
      "    accuracy                           1.00        30\n",
      "   macro avg       1.00      1.00      1.00        30\n",
      "weighted avg       1.00      1.00      1.00        30\n",
      "\n",
      "[[10  0  0]\n",
      " [ 0  9  0]\n",
      " [ 0  0 11]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "# Random Forest\n",
    "print(\"\\n--- Random Forest ---\")\n",
    "rf_diabetes = RandomForestClassifier(n_estimators=100, random_state=42)\n",
    "rf_diabetes.fit(X_train_d, y_train_d)\n",
    "y_pred_rf_d_train = rf_diabetes.predict(X_train_d)\n",
    "y_pred_rf_d_test = rf_diabetes.predict(X_test_d)\n",
    "print(\"Diabetes Training Accuracy:\", accuracy_score(y_train_d, y_pred_rf_d_train))\n",
    "print(\"Diabetes Testing Accuracy:\", accuracy_score(y_test_d, y_pred_rf_d_test))\n",
    "print(classification_report(y_test_d, y_pred_rf_d_test))\n",
    "print(confusion_matrix(y_test_d, y_pred_rf_d_test))\n",
    "ConfusionMatrixDisplay.from_estimator(rf_diabetes, X_test_d, y_test_d)\n",
    "plt.title(\"Random Forest - Diabetes\")\n",
    "plt.show()\n",
    "\n",
    "rf_iris = RandomForestClassifier(n_estimators=100, random_state=42)\n",
    "rf_iris.fit(X_train_i, y_train_i)\n",
    "y_pred_rf_i_train = rf_iris.predict(X_train_i)\n",
    "y_pred_rf_i_test = rf_iris.predict(X_test_i)\n",
    "print(\"Iris Training Accuracy:\", accuracy_score(y_train_i, y_pred_rf_i_train))\n",
    "print(\"Iris Testing Accuracy:\", accuracy_score(y_test_i, y_pred_rf_i_test))\n",
    "print(classification_report(y_test_i, y_pred_rf_i_test))\n",
    "print(confusion_matrix(y_test_i, y_pred_rf_i_test))\n",
    "ConfusionMatrixDisplay.from_estimator(rf_iris, X_test_i, y_test_i)\n",
    "plt.title(\"Random Forest - Iris\")\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "5878f668",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "--- Naive Bayes ---\n",
      "Diabetes Training Accuracy: 0.752442996742671\n",
      "Diabetes Testing Accuracy: 0.7597402597402597\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.83      0.79      0.81        99\n",
      "           1       0.65      0.71      0.68        55\n",
      "\n",
      "    accuracy                           0.76       154\n",
      "   macro avg       0.74      0.75      0.74       154\n",
      "weighted avg       0.77      0.76      0.76       154\n",
      "\n",
      "[[78 21]\n",
      " [16 39]]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAATIAAAEWCAYAAADl+xvlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAeVElEQVR4nO3deZhcVbnv8e8vEwESAk0GEwgEZBJRIoZRDycYlFHg+AgyafSAgFckKCro8QKieDiXR654QC8ISiQMAZmVS+AGYkCZEgxTIhIgJIGQOZCEmKH7vX/s1VB0Ot21k6qu2t2/z/Psp/ZUa79VlX6z1tp7r62IwMysyLrVOgAzs03lRGZmhedEZmaF50RmZoXnRGZmhedEZmaF50TWQST9UNJ1tY6jqCT9X0mjy9x3lqRDqx2T1Q8nsjKlP475krYsWXe6pEnlvD8ifhYRp1chrkmS/ilphaS3JU2W9LFKH6eaJIWklekzLJY0UdKXSveJiCMiYmwHxOIkWEBOZPn0AMbUOohWnB0RfYBtgUnAjbUNZ6PsnT7D7sANwFWSLqptSFYUTmT5XA58V9LWrW2UdKWkOZLekTRV0r+UbLtY0rg0/4Cks1u891lJX0jze0h6SNISSS9JOqGc4CJiHXArsGdJuftJelzSMknzJF0lqVfadrWkn7eI4z5J56b5IZLukLRQ0muSzmlR7pT0WedLuqKcGMv4DIsi4kbgG8APJG2bjjdJ0ulp/sOSHk61t0WSbmrlN9lX0nRJSyX9TlLvktiPljQtfSd/lfTxtP5GYAfgvlQ7/H5af0Dab1n6nUaWlPVVSa9KWp6+o1Mq8T1YThHhqYwJmAUcCtwJ/DStOx2YVLLPqWS1oh7AecBbQO+07WJgXJr/CvCXkvftCSwDNgO2BOYAX0vl7AMsAj66gbgmAaen+V7ApcDkku2fBA5IZQ0DZgDnpm37AW8C3dJyf+BdYBDZf3JTgQtTuTsDrwKHpX0fB76c5vsAB2zCdxvALi3W9QTWAUe08jl3AT6bvq8BwGTgFy1+qxeAoUAD8JeS32wfYAGwP9AdGJ3236z0dy4paztgMXBk+k4+m5YHpN/qHWD3tO/gDf1Onqo7uUaW34XAtyQNaLkhIsZFxOKIWBcRPyf7Q9u9lTLuAoZL2jEtnwLcGRGrgaOBWRHxu1TOM8AdwBfbiOmXkpYBK4CzgR+XxDQ1Ip5IZc0CrgH+NW17CngbGJV2P5EsMc8H9gUGRMQlEbEmIl4FfpP2AVgL7CKpf0SsiIgn2ogvt4hYS5bAG1rZNjMiHoqI1RGxELii+TOVuCoi5kTEErLkflJa/3Xgmoh4MiIaI+t3W02W7FtzKnB/RNwfEU0R8RAwhSyxATQBe0naPCLmRcSLm/CxbSM5keUUES8AfwQuaLlN0nmSZqRO92VAP7JaTssylgN/4v2kcCJwU5rfEdg/NWOWpXJOAT7URljnRMTWQG+yRPiHkubSbpL+KOktSe8AP2sR01iyP1bSa3P/2o7AkBZx/JCstgZwGrAb8HdJT0s6urXA0tnGFWkqu9klqSdZrWdJK9sGSrpV0hvpM41j/e95Tsn868CQks91XovPNbRke0s7Ase32P/TwOCIWAl8CTgLmCfpT5L2KPczWuX0qHUABXUR8AzwXv9S6g87n6x282JENElaCmgDZdwCXCRpMrA58EhaPwf4c0R8Nm9QEdEEPCppJvA54Dng18DfgJMiYnnq/yqt3Y0DXpC0N/AR4O6SOF6LiF03cKyXgZMkdQO+QJY8t01/3KX7HZH3cyTHkjUtn2pl23+SNUc/HhGLJR0HXNVin6El8zuQNaEh+1yXRsSlGzhuy+Fg5gA3RsTXW905YgIwQdLmwE/Jaq3/0tq+Vj2ukW2EiJgJjAfOKVndl+wPbyHQQ9KFwFZtFHM/2f/2lwDjUxKCrLa3m6QvS+qZpn0lfaSc2CQdSNbn1tzE6UvWj7Mi1Ra+0eKzzAWeJquJ3RERq9Kmp4B3JJ0vaXNJ3SXtJWnfdJxTJQ1IcS9L72ksJ8Z24m9INbergf+KiMWt7NaXrBm9TNJ2wPda2eebkraX1EBWkxyf1v8GOEvS/spsKekoSX3T9vlk/YHNxgGfl3RY+g56SxqZyh4k6Rhll+SsTjFt8ndgG6HWnXRFmVi/E3go8E9SZz9Zx/H1ZEljHvD90vdQ0tlfUsb1ZDWAfVus352s6bmQrGP5YWD4BuKalOJYkaaZwLdLth8M/D1te5QscT7WooxTUxyHtFg/hKzm+BawFHii5POMI+s0X0GWNI/bhO82gJWprCVktdOTW/mczZ39HyU7EbECmEZ2YmVui9/qB8B0siQ7FtiiZPvhZMl7Wfqtbgf6pm3HArPTtu+mdfsDf06xLUy/zQ5knft/JutnXJZi3LPW/1a74qT0Q1kXJulgssQ0LN6vGZoVhpuWXVzqVB8DXOckZkXlRNaFpX63ZWRNpF/UNBizTeCmpZkVnmtkZlZ4dXUdWf+G7jFsaM9ah2E5vDyjX61DsBxWNb7DmsZVG7q2sSyHHbJlLF5S3lUmU59bPSEiDt+U45WjrhLZsKE9eWrC0PZ3tLpx1H5H1ToEy+Gvb92yyWUsWtLIkxO2L2vfnoNfWe/Olmqoq0RmZkUQNNbZCW4nMjPLJYCm9e7kqi0nMjPLrQnXyMyswIJgrZuWZlZkATS6aWlmRec+MjMrtAAa6+yOICcyM8utvnrInMjMLKcg3EdmZsUWAWvrK485kZlZXqJxg4+iqA0nMjPLJYAm18jMrOhcIzOzQssuiHUiM7MCC2Bt1NeYrE5kZpZLIBrrbHBpJzIzy60p3LQ0swJzH5mZdQKi0X1kZlZk2QixTmRmVmARYk10r3UYH+BEZma5NbmPzMyKLOvsr6+mZX1FY2YFkHX2lzO1WYq0u6RpJdM7ks6V1CDpIUkvp9dt2ovIiczMcmnu7C9narOciJciYnhEDAc+CbwL3AVcAEyMiF2BiWm5TU5kZpZbY6isKYdRwCsR8TpwLDA2rR8LHNfem91HZma5BGJtlJ06+kuaUrJ8bURc28p+JwK3pPlBETEPICLmSRrY3kGcyMwsl5yd/YsiYkRbO0jqBRwD/GBjY3IiM7NcgtzNxvYcATwTEfPT8nxJg1NtbDCwoL0C3EdmZrlVorO/xEm836wEuBcYneZHA/e0V4BrZGaWSwQVu9dS0hbAZ4EzS1ZfBtwm6TRgNnB8e+U4kZlZLllnf2VuUYqId4FtW6xbTHYWs2xOZGaWW71d2e9EZma5BPLAimZWfK6RmVmhZc+1dCIzs0Lzk8bNrOCyx8F5YEUzK7AIuWlpZsXnh4+YWaFl45G5j8zMCs2PgzOzgssuv3CNzMwKrJL3WlaKE5mZ5eYH9JpZoWXD+LhpaWYF5z4yMyu0bPQLNy3NrMCyW5ScyDqtOTM342dnDXtv+a3Zvfjy995i7wNX8MsLtmfNP7vRvUdw9n/OZY9PvFu7QO09/Qeu4ryLn2WbbVfTFOKBu4Zy7/id+PSoeZz89ZcZOmwF3/7aQcycsXWtQ60jXaxGJulw4EqgO3BdRFxWzePV2tBdVvPr//cSAI2NcMo+H+VTRyzjF98dyqnfeYt9P7Ocpyb25fqfDuHyO2bWOFoDaGwU1135EV55qR+bb7GOK3//GH97qj+vv9KXS7+/D2f/4IVah1iXusyV/ZK6A1eTPVhgLvC0pHsjYnq1jllPpj3al8E7rmbQ9muRYOXy7Lqble90p2HQ2hpHZ82WLu7N0sW9AVj1bg/mvNaHbQf8k2lPDahxZPWrq5213A+YGRGvAki6lexR6F0ikU26Z2tGHrcMgLMueYMfnvRhfnPJECLgf9/7cm2Ds1YNHPwuO+/+Di+9uHWtQ6l79da0rGY02wFzSpbnpnUfIOkMSVMkTVm4uLGK4XSctWvEEw/24+DPLwPgj2P7c+aP3+CmqdM58+I3ueI7O9Q2QFtP783X8R+XPcNvrtiTVSt71jqcutY8Zn85U0epZiJr7VPEeisiro2IERExYsC29XXbw8Z6+uG+7PKxd9lmwDoAHrq9gU8f+TYAB39+Gf+YtkUtw7MWundv4of/9QyPTBjCXyd9qNbh1L0A1kW3sqaOUs0jzQWGlixvD7xZxePVjUl3b/NesxJg20Free7xPgBMe6wPQ3ZaXaPIbH3BmP/5PHNe68PdN+9c62AKoym6lTV1lGr2kT0N7CppJ+AN4ETg5Coery78813xzKN9GfO/3m9Vn3v5HH594XY0NopemzVx7uVz2ijBOtKeey9l1JFv8NrLffnvcY8CMPZXu9OzVxNnnTedftus4eIrpvDqy1tx4Tn71TjaOtHBzcZyVC2RRcQ6SWcDE8guv/htRLxYrePVi95bBH948YOn7PfafyVXT/hHjSKytkx/toGj9juy1W2Pu5nZqi43sGJE3A/cX81jmFnHq1SNTNLWwHXAXmQ58t+Bl4DxwDBgFnBCRCxtq5z6OodqZnWveWDFCp21vBJ4ICL2APYGZgAXABMjYldgYlpuk29RMrNcArGuadPrQJK2Ag4GvgoQEWuANZKOBUam3cYCk4Dz2yrLNTIzy60JlTUB/ZuvE03TGSXF7AwsBH4n6W+SrpO0JTAoIuYBpNeB7cXjGpmZ5RO5+sgWRcSIDWzrAewDfCsinpR0JWU0I1vjGpmZ5VLBPrK5wNyIeDIt/4Essc2XNBggvS5oryAnMjPLrRKJLCLeAuZI2j2tGkV2L/a9wOi0bjRwT3vxuGlpZrkEorECnf3Jt4CbJPUCXgW+RlbBuk3SacBs4Pj2CnEiM7PcKnVBbERMA1rrQxuVpxwnMjPLJfJ19ncIJzIzyy2cyMys2LrQTeNm1nm5RmZmhRYBjU1OZGZWcF1qGB8z63wCNy3NrPDc2W9mnUCs9xih2nIiM7Pc3LQ0s0LLzlrW13gTTmRmlpublmZWeG5amlmhBXIiM7Piq7OWpROZmeUUEL5FycyKzk1LMyu8wpy1lPTftNEUjohzqhKRmdW1ot1rOaXDojCz4gigKIksIsaWLkvaMiJWVj8kM6t39da0bPc+A0kHSpoOzEjLe0v6VdUjM7M6JaKpvKmjlHPD1C+Aw4DFABHxLHBwFWMys3oXZU4dpKyzlhExR/pAdm2sTjhmVveiWJ39zeZIOgiI9DTgc0jNTDProorWRwacBXwT2A54Axiels2sy1KZU8dot0YWEYuAUzogFjMriqbKFCNpFrCcrLtqXUSMkNQAjAeGAbOAEyJiaVvllHPWcmdJ90laKGmBpHsk7bypH8DMCqr5OrJypvIcEhHDI2JEWr4AmBgRuwIT03Kbymla3gzcBgwGhgC3A7eUG6GZdT4R5U0b6Vig+TrWscBx7b2hnESmiLgxItalaRx119VnZh2qcpdfBPCgpKmSzkjrBkXEPID0OrC9Qtq617IhzT4i6QLg1nTQLwF/KitEM+ucym829pdUervjtRFxbcnypyLiTUkDgYck/X1jwmmrs38qWeJqjvjMkm0B/GRjDmhmxafy22SLSvq+1hMRb6bXBZLuAvYD5ksaHBHzJA0GFrR3kLbutdyp7FDNrOsIQQVuP5K0JdAtIpan+c8BlwD3AqOBy9LrPe2VVdaV/ZL2AvYEejevi4jf5w/dzDqFyvSSDwLuSncN9QBujogHJD0N3CbpNGA2cHx7BbWbyCRdBIwkS2T3A0cAjwFOZGZdVQUSWUS8CuzdyvrFwKg8ZZVz1vKLqdC3IuJr6cCb5TmImXUyBbxpfFVENElaJ2krso43XxBr1lUVaWDFElMkbQ38huxM5grgqWoGZWb1LcdZyw5Rzr2W/yPN/h9JDwBbRcRz1Q3LzOpaURKZpH3a2hYRz1QnJDOrd0Wqkf28jW0BfKbCsfCP57bgsCHDK12sVdFbY3asdQiWw5qbe1WmoKL0kUXEIR0ZiJkVRAefkSyHH9BrZvk5kZlZ0alCAytWihOZmeVXZzWyckaIlaRTJV2YlneQtF/1QzOzeqQof+oo5dyi9CvgQOCktLwcuLpqEZlZ/avsUNebrJym5f4RsY+kvwFExNL0WDgz66rqrGlZTiJbK6k7KXRJA6jYM1TMrIiKdEFss18CdwEDJV1KNhrGj6oalZnVryjgWcuIuEnSVLKhfAQcFxF+0rhZV1a0GpmkHYB3gftK10XE7GoGZmZ1rGiJjOyJSc0PIekN7AS8BHy0inGZWR0rXB9ZRHysdDmNinHmBnY3M+twua/sj4hnJO1bjWDMrCCKViOT9J2SxW7APsDCqkVkZvWtiGctgb4l8+vI+szuqE44ZlYIRaqRpQth+0TE9zooHjOrc6JAnf2SekTEuraGvDazLqooiYzsSUn7ANMk3QvcDqxs3hgRd1Y5NjOrRx08skU5yukjawAWk43R33w9WQBOZGZdVYE6+wemM5Yv8H4Ca1Zn+djMOlIla2SpL34K8EZEHC2pARgPDANmASdExNK2ymhrPLLuQJ809S2Zb57MrKuKMqfyjAFK79++AJgYEbsCE9Nym9qqkc2LiEvKDsXMuoYKPkVJ0vbAUcClQPM1q8cCI9P8WGAScH5b5bSVyOrrwXVmVjcq2LT8BfB9Pni96qCImAcQEfMkDWyvkLaalqM2KTwz67zKb1r2lzSlZDqjuQhJRwMLImLqpobT1gN6l2xq4WbWOeW4RWlRRIzYwLZPAcdIOpJsZJ2tJI0D5ksanGpjg4EF7R2knIePmJm9r9zaWDvNz4j4QURsHxHDgBOBhyPiVOBeYHTabTRwT3sh+bmWZpaLqHoH+mXAbZJOA2YDx7f3BicyM8uvwleSRsQksrOTRMRicvbRO5GZWW5FvEXJzOyDnMjMrNAKOrCimdkHuUZmZkXnPjIzKz4nMjMrOtfIzKzYgkINrGhmtp5CPXzEzGyDnMjMrOgU9ZXJnMjMLJ8KjhBbKU5kZpab+8jMrPB8i5KZFZ9rZGZWaAV90riZ2Qc5kZlZkfmCWDPrFNRUX5nMiczM8vF1ZJ3fd66Yzf6HLmfZoh6c+Znd31t/zL8v5JivLaZpHTw5cSuu/+mQGkZpzXp1X8fvTr6Hnj0a6dGtiYde2plfP7Yfuw1YxI8Om8wWvdby5tt9+cF9h7JyTa9ah1s3uszlF5J+CzQ/SXivah2n3jw4voF7f9ef71055711ex+0goMOe4dvjNqNtWu60W/btTWM0EqtaezO6bcew6q1PenRrZEbTrmbx17dgQsOfYwrHjmIqXOGcNzHZvDV/adx9aP71Trc+lFnNbJqPqD3BuDwKpZfl154sg/Ll37w/4ejv7KI8VcNZO2a7Ot+e3HPWoRmrRKr1ma/R49uTfTo1gQhhjUsY+qcwQA8Pmsoo3Z7tZZB1h1FeVNHqVoii4jJwJJqlV8k2314NXvtv5Ir//gyl98xk932frfWIVmJbmpi/Fdv45Fv3cATs7bn+XmDmLmogZG7zALgc3u8wof6rqhtkPUkgIjypg5SzRpZWSSdIWmKpClrWV3rcKqie3fo06+RMUfvwnU/GcJ/XPM6dVc378KaohtfuuEEPverr7DX4AXs0n8xF91/CCfu8wK3jL6dLXqtYW1Tzf9U6oqayps6Ss07+yPiWuBagK3U0Cn/uhfN68lf7u8HiJembUFTE/RraOTtJTX/+q3E8tWb8fScIRy08xx+/9Rwzrrt8wDsuM0yDt55do2jqx/1eB2Z/5vpAH99YCuGfzprmmy382p69greXtK9xlEZwDabr6LvZllLYLMe6zhgx7nMWrw1DVtkzX8RfP2gqdw+bc9ahllfym1WdmDT0lWCCrvgV6/z8QNX0K9hHeOmTOfGnw9iwq0NfOeKOVzz8EusXSsuHzOU7P81q7X+fd7lp0c9TDc10U3Bg3/fhcmvDOPkTz7Hifu8AMDEf+zM3c/vUeNI60slamSSegOTgc3IctEfIuIiSQ3AeGAYMAs4ISKWth1PlbKmpFuAkUB/YD5wUURc39Z7tlJD7K9RVYnHquOtMQfVOgTLYebNV7Bq/pxN+l+079bbxycOHlPWvo/e9/2pETGitW2SBGwZESsk9QQeA8YAXwCWRMRlki4AtomI89s6TtVqZBFxUrXKNrPaqkSNLLJaVPPp4J5pCuBYskoQwFhgEtBmInMfmZnlE0BjlDdB/+arEtJ0RmlRkrpLmgYsAB6KiCeBQRExDyC9DmwvJPeRmVluOWpkizbUtASIiEZguKStgbskbdRdQK6RmVl+FT5rGRHLyJqQhwPzJQ0GSK8L2nu/E5mZ5VaJW5QkDUg1MSRtDhwK/B24FxiddhsN3NNePG5amlk+lRvGZzAwVlJ3skrVbRHxR0mPA7dJOg2YDRzfXkFOZGaWiwA1bnomi4jngE+0sn4xkOs6LCcyM8vNTxo3s2LzCLFmVnwdex9lOZzIzCy3ehv9wonMzPJzjczMCi0qc9aykpzIzCy/+spjTmRmlp8vvzCz4nMiM7NCC6CrPKDXzDonEW5amlkn0FRfVTInMjPLx01LM+sM3LQ0s+JzIjOzYvNN42ZWdM1PUaojTmRmlpv7yMys+JzIzKzQAmhyIjOzQnNnv5l1Bk5kZlZoATTW16X9TmRmllNAOJGZWdG5aWlmhVaHZy271ToAMyugiPKmNkgaKukRSTMkvShpTFrfIOkhSS+n123aC8eJzMzyq0AiA9YB50XER4ADgG9K2hO4AJgYEbsCE9Nym9y0NLN8IqCxsQLFxDxgXppfLmkGsB1wLDAy7TYWmASc31ZZTmRmll/5nf39JU0pWb42Iq5tuZOkYcAngCeBQSnJERHzJA1s7yBOZGaWX/mJbFFEjGhrB0l9gDuAcyPiHUm5w3EfmZnlFNlZy3KmdkjqSZbEboqIO9Pq+ZIGp+2DgQXtleNEZmb5BEQ0lTW1RVnV63pgRkRcUbLpXmB0mh8N3NNeSG5amll+lblF6VPAl4HnJU1L634IXAbcJuk0YDZwfHsFOZGZWT4RFXkcXEQ8BmyoQ2xUnrKcyMwsP9+iZGZFF35Ar5kVmwdWNLOiq8Obxp3IzCyXAKICtyhVkhOZmeUTHljRzDqBcNPSzAqvzmpkijo6+yBpIfB6reOogv7AoloHYbl01t9sx4gYsCkFSHqA7Pspx6KIOHxTjleOukpknZWkKe2NAGD1xb9ZsfimcTMrPCcyMys8J7KOsd6ImFb3/JsViPvIzKzwXCMzs8JzIjOzwnMiqyJJh0t6SdJMSe0+m89qT9JvJS2Q9EKtY7HyOZFViaTuwNXAEcCewEnp4aNW324Aqn4Bp1WWE1n17AfMjIhXI2INcCvZg0etjkXEZGBJreOwfJzIqmc7YE7J8ty0zswqzImselp7qIKvdTGrAiey6pkLDC1Z3h54s0axmHVqTmTV8zSwq6SdJPUCTiR78KiZVZgTWZVExDrgbGACMAO4LSJerG1U1h5JtwCPA7tLmpseEmt1zrcomVnhuUZmZoXnRGZmhedEZmaF50RmZoXnRGZmhedEViCSGiVNk/SCpNslbbEJZd0g6Ytp/rq2bmiXNFLSQRtxjFmS1nvazobWt9hnRc5jXSzpu3ljtM7BiaxYVkXE8IjYC1gDnFW6MY24kVtEnB4R09vYZSSQO5GZdRQnsuJ6FNgl1ZYekXQz8Lyk7pIul/S0pOcknQmgzFWSpkv6EzCwuSBJkySNSPOHS3pG0rOSJkoaRpYwv51qg/8iaYCkO9Ixnpb0qfTebSU9KOlvkq6h9ftNP0DS3ZKmSnpR0hkttv08xTJR0oC07sOSHkjveVTSHhX5Nq3YIsJTQSZgRXrtAdwDfIOstrQS2CltOwP4UZrfDJgC7AR8AXgI6A4MAZYBX0z7TQJGAAPIRuxoLqshvV4MfLckjpuBT6f5HYAZaf6XwIVp/iiym+T7t/I5ZjWvLznG5sALwLZpOYBT0vyFwFVpfiKwa5rfH3i4tRg9da2px8alP6uRzSVNS/OPAteTNfmeiojX0vrPAR9v7v8C+gG7AgcDt0REI/CmpIdbKf8AYHJzWRGxoXG5DgX2lN6rcG0lqW86xhfSe/8kaWkZn+kcSf+W5oemWBcDTcD4tH4ccKekPunz3l5y7M3KOIZ1ck5kxbIqIoaXrkh/0CtLVwHfiogJLfY7kvaHEVIZ+0DWJXFgRKxqJZay73mTNJIsKR4YEe9KmgT03sDukY67rOV3YOY+ss5nAvANST0BJO0maUtgMnBi6kMbDBzSynsfB/5V0k7pvQ1p/XKgb8l+D5LdEE/ab3ianQycktYdAWzTTqz9gKUpie1BViNs1g1orlWeDDwWEe8Ar0k6Ph1DkvZu5xjWBTiRdT7XAdOBZ9IDNK4hq3nfBbwMPA/8GvhzyzdGxEKyPrY7JT3L+027+4B/a+7sB84BRqSTCdN5/+zpj4GDJT1D1sSd3U6sDwA9JD0H/AR4omTbSuCjkqYCnwEuSetPAU5L8b2Ihw83PPqFmXUCrpGZWeE5kZlZ4TmRmVnhOZGZWeE5kZlZ4TmRmVnhOZGZWeH9f6HAYyYmwOQ2AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iris Training Accuracy: 0.95\n",
      "Iris Testing Accuracy: 1.0\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        10\n",
      "           1       1.00      1.00      1.00         9\n",
      "           2       1.00      1.00      1.00        11\n",
      "\n",
      "    accuracy                           1.00        30\n",
      "   macro avg       1.00      1.00      1.00        30\n",
      "weighted avg       1.00      1.00      1.00        30\n",
      "\n",
      "[[10  0  0]\n",
      " [ 0  9  0]\n",
      " [ 0  0 11]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Naive Bayes\n",
    "print(\"\\n--- Naive Bayes ---\")\n",
    "nb_diabetes = GaussianNB()\n",
    "nb_diabetes.fit(X_train_d, y_train_d)\n",
    "y_pred_nb_d_train = nb_diabetes.predict(X_train_d)\n",
    "y_pred_nb_d_test = nb_diabetes.predict(X_test_d)\n",
    "print(\"Diabetes Training Accuracy:\", accuracy_score(y_train_d, y_pred_nb_d_train))\n",
    "print(\"Diabetes Testing Accuracy:\", accuracy_score(y_test_d, y_pred_nb_d_test))\n",
    "print(classification_report(y_test_d, y_pred_nb_d_test))\n",
    "print(confusion_matrix(y_test_d, y_pred_nb_d_test))\n",
    "ConfusionMatrixDisplay.from_estimator(nb_diabetes, X_test_d, y_test_d)\n",
    "plt.title(\"Naive Bayes - Diabetes\")\n",
    "plt.show()\n",
    "\n",
    "nb_iris = GaussianNB()\n",
    "nb_iris.fit(X_train_i, y_train_i)\n",
    "y_pred_nb_i_train = nb_iris.predict(X_train_i)\n",
    "y_pred_nb_i_test = nb_iris.predict(X_test_i)\n",
    "print(\"Iris Training Accuracy:\", accuracy_score(y_train_i, y_pred_nb_i_train))\n",
    "print(\"Iris Testing Accuracy:\", accuracy_score(y_test_i, y_pred_nb_i_test))\n",
    "print(classification_report(y_test_i, y_pred_nb_i_test))\n",
    "print(confusion_matrix(y_test_i, y_pred_nb_i_test))\n",
    "ConfusionMatrixDisplay.from_estimator(nb_iris, X_test_i, y_test_i)\n",
    "plt.title(\"Naive Bayes - Iris\")\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "39e9c7b1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "--- SVM Linear ---\n",
      "Diabetes Training Accuracy: 0.7736156351791531\n",
      "Diabetes Testing Accuracy: 0.7597402597402597\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.81      0.82      0.81        99\n",
      "           1       0.67      0.65      0.66        55\n",
      "\n",
      "    accuracy                           0.76       154\n",
      "   macro avg       0.74      0.74      0.74       154\n",
      "weighted avg       0.76      0.76      0.76       154\n",
      "\n",
      "[[81 18]\n",
      " [19 36]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iris Training Accuracy: 0.975\n",
      "Iris Testing Accuracy: 1.0\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        10\n",
      "           1       1.00      1.00      1.00         9\n",
      "           2       1.00      1.00      1.00        11\n",
      "\n",
      "    accuracy                           1.00        30\n",
      "   macro avg       1.00      1.00      1.00        30\n",
      "weighted avg       1.00      1.00      1.00        30\n",
      "\n",
      "[[10  0  0]\n",
      " [ 0  9  0]\n",
      " [ 0  0 11]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# SVM Linear\n",
    "print(\"\\n--- SVM Linear ---\")\n",
    "svm_linear_diabetes = SVC(kernel='linear', random_state=42)\n",
    "svm_linear_diabetes.fit(X_train_d, y_train_d)\n",
    "y_pred_svm_linear_d_train = svm_linear_diabetes.predict(X_train_d)\n",
    "y_pred_svm_linear_d_test = svm_linear_diabetes.predict(X_test_d)\n",
    "print(\"Diabetes Training Accuracy:\", accuracy_score(y_train_d, y_pred_svm_linear_d_train))\n",
    "print(\"Diabetes Testing Accuracy:\", accuracy_score(y_test_d, y_pred_svm_linear_d_test))\n",
    "print(classification_report(y_test_d, y_pred_svm_linear_d_test))\n",
    "print(confusion_matrix(y_test_d, y_pred_svm_linear_d_test))\n",
    "ConfusionMatrixDisplay.from_estimator(svm_linear_diabetes, X_test_d, y_test_d)\n",
    "plt.title(\"SVM Linear - Diabetes\")\n",
    "plt.show()\n",
    "\n",
    "svm_linear_iris = SVC(kernel='linear', random_state=42)\n",
    "svm_linear_iris.fit(X_train_i, y_train_i)\n",
    "y_pred_svm_linear_i_train = svm_linear_iris.predict(X_train_i)\n",
    "y_pred_svm_linear_i_test = svm_linear_iris.predict(X_test_i)\n",
    "print(\"Iris Training Accuracy:\", accuracy_score(y_train_i, y_pred_svm_linear_i_train))\n",
    "print(\"Iris Testing Accuracy:\", accuracy_score(y_test_i, y_pred_svm_linear_i_test))\n",
    "print(classification_report(y_test_i, y_pred_svm_linear_i_test))\n",
    "print(confusion_matrix(y_test_i, y_pred_svm_linear_i_test))\n",
    "ConfusionMatrixDisplay.from_estimator(svm_linear_iris, X_test_i, y_test_i)\n",
    "plt.title(\"SVM Linear - Iris\")\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "239d9960",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "--- SVM RBF ---\n",
      "Diabetes Training Accuracy: 0.744299674267101\n",
      "Diabetes Testing Accuracy: 0.7467532467532467\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.75      0.92      0.82        99\n",
      "           1       0.75      0.44      0.55        55\n",
      "\n",
      "    accuracy                           0.75       154\n",
      "   macro avg       0.75      0.68      0.69       154\n",
      "weighted avg       0.75      0.75      0.73       154\n",
      "\n",
      "[[91  8]\n",
      " [31 24]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iris Training Accuracy: 0.975\n",
      "Iris Testing Accuracy: 1.0\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        10\n",
      "           1       1.00      1.00      1.00         9\n",
      "           2       1.00      1.00      1.00        11\n",
      "\n",
      "    accuracy                           1.00        30\n",
      "   macro avg       1.00      1.00      1.00        30\n",
      "weighted avg       1.00      1.00      1.00        30\n",
      "\n",
      "[[10  0  0]\n",
      " [ 0  9  0]\n",
      " [ 0  0 11]]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAATIAAAEWCAYAAADl+xvlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAam0lEQVR4nO3deZwdZZ3v8c+3uwMJWUkCIRsQ5oYwCLJMFAOKAVRA5zW4oIIRdUaNOEYYxxlfzpURB+9w53Xv6CgDOhORRZYwbHPBwYFwCchyIZMQwhpADJCEJJLFsISQ9PK7f5xqOOl0uqtOn6Xq9Pf9etWrT1Wd89SvK6d/eZ6n6nlKEYGZWZG1NDoAM7OBciIzs8JzIjOzwnMiM7PCcyIzs8JzIjOzwnMis0KTtL+k1yW1NjoWaxwnshyT9F5J/0/SK5I2S3pA0rskzZK0VdLIXj7ziKR5kg6UFJKW9dg/XtIOSS/0cdxIyn9d0kuSflieKCTdI+nNZP8rku6VdHjZ/u9Jak/2dy/fqvAcXCHpf+xuf0SsiogREdFZSfnWHJzIckrSKOA/gH8GxgKTgb8DtkfEg8Aa4BM9PnMYcCiwoGzz8GR7t88Az6cI4YiIGAG8H/g08Gc99s9L9o8D7gGu6rH/35IE0738rxTHzERSW7XLtGJyIsuvgwEiYkFEdEbEtohYGBGPJfuvBD7X4zOfA26LiE1l264CPt/jPb9IG0REPAc8ABy5m/0dwHWUEmhNldUyvyhpFbCobFtb8p4vSFop6TVJz0uaU+u4rPGcyPLrWaBT0pWSTpW0d4/9VwHvk7Q/gKQWSrWtnknqauAMSa2S/hAYCSxOG4SkQ4D3Ac/tZv8ewBzgobRlVsH7gT8ETu4Ry3DgIuDUiBgJHAssr2Nc1iBOZDkVEa8C7wUC+BmwQdKtkiYk+1cDvwY+m3zkJGAocFuPotYAzwAfoFQzS1sbWyZpK7CCUtPxJz32XyRpC/A6MI9Ss7fcpyRtKVsmpTxuGt+LiK0Rsa2XfV3AYZKGRcS6iHiyise1nHIiy7GIWBERX4iIKcBhwCTgR2VvKW9engVcGxHtvRT1C+ALwJmUamhpHA2MoNQ/dgwwvMf+cyJiDKXk+cfAjZLeWbb/+ogYU7as7XkASXPKLgb8Z8q4AFb3tjEitibxng2sk3RbUqO0JudEVhAR8TRwBaWE1u1mYLKkE4CPs/va1k3AR4CVEfFihmNGRFwPPAh8dzfv6YqI+yg1PT+Utuzks9eUXQw4NctH+yjzjoj4IDAReJpSbdaanBNZTkk6RNI3JU1J1qdSqlG91ReV1EBuBC4HXoyIpb2VlbzvROBLFYbzD8BcSfvtJtZZlDr7G9qMkzRB0p8kfWXbKTV7fVvGIOBEll+vUWrSLU76qh4CngC+2eN9VwIH0E/fV0QsjYjfVhJIRDxOqT/ur8s2X9zdLKR04eG8iMjSPKyFFkrnZy2wmdJFgT9vaERWF/LEimZWdK6RmVnhOZGZWeE5kZlZ4TmRmVnh5WrQ7ZixrbHflFyFlCtrH+95T6pZNm+ylR2xXQMp4+QThsemzenuann4se13RMQpAzleGrnKGvtNaeNnt05pdBi5dcFBRzc6BCu4xXHXgMvYuLmTxXek+zsdMvG34wd8wBRylcjMrAiCzuhqdBA7cSIzs0wC6Nr9KLGGcCIzs8y6cI3MzAosCNrdtDSzIgug001LMys695GZWaEF0JmzySacyMwss3z1kDmRmVlGQbiPzMyKLQLa85XHnMjMLCvRyYCGa1adE5mZZRJAl2tkZlZ0rpGZWaGVboh1IjOzAgugPfI1J2u+ojGz3AtEJy2plv5IukzSy5KeKNs2VtKdkn6T/Ny7v3KcyMwss65QqiWFK4CeM8h+G7grIqYDdyXrfXIiM7NMuvvI0iz9lhVxL6WHKZc7jdKDp0l+frS/ctxHZmYZic70fWTjJS0tW58fEfP7+cyEiFgHEBHrJO3b30GcyMwsk9IMsakT2caImFnDcAAnMjPLKELsiNZaHuJ3kiYmtbGJwMv9fcB9ZGaWWRdKtVToVuDzyevPA7f09wHXyMwsk1Jnf3XqQJIWALMp9aWtAc4H/gG4XtIXgVXAJ/srx4nMzDLK1Nnfp4g4cze7TspSjhOZmWWSsbO/LpzIzCyzznQ3u9aNE5mZZRKI9shX6shXNGaWe9Xs7K8WJzIzyySQm5ZmVnzu7M+pW7+1P8/ePZrh4zr46u0rANi2pZUbvz6NV9bswegpOzj94ucZNrqzwZHmw8zZr3L299fS2hL854KxXH/xhEaHlCvNfH4iqNrtF9VS02gknSLpGUnPSep3Ko5GOuL0zcy5/Lmdtt3/L/sx7djXmHf3U0w79jUe+GnzfBkHoqUl+NqFL3HenGl8efYMTjhtC/tPf7PRYeVGs5+fUmd/a6qlXmqWyCS1ApcApwKHAmdKOrRWxxuoA979OsPG7FzbevbO0RzxiU0AHPGJTTxz55gGRJY/M456g7Uv7MH6VXvS0d7CPbeMYdbJrzQ6rNwYDOenWhMrVkstj/Ru4LmIWBkRO4DrKM0zVBivb2xj5L4dAIzct4Otm9wSBxi3Xzsb1u7x1vrGdUMYP7G9gRHlS7OfnyDdpIopJ1asilr+ZU4GVpetrwGOqeHxrE7Uy/czcvZ4sEYaDOcnb7df1DKa3tLxLv+ckuZKWipp6ZZNXTUMJ7sR4zt47eVSrn/t5TaGj+tocET5sHHdEPaZtOOt9fET29m0fkgDI8qXZj8/pedatqRa6qWWR1oDTC1bnwKs7fmmiJgfETMjYuaYcfnK8gd/4BUevWkcAI/eNI6DP9hc/RyVemb5XkyetoMJU7fTNqSL2adt4aGFoxsdVm40//lJN811PR8ZV8um5RJguqRpwEvAGcBnani8AbnpnAN5cfFI3vh9G/907GHMPncdx529nhvnTWP59eMYNWkHn7zk+UaHmQtdneKS70zmwmtX0tIKC68by4vPDm10WLnR7Oen9Di4+l2RTKNmiSwiOiTNA+4AWoHLIuLJWh1voD5x0Qu9bv/cNc/1un2wW7JoFEsWjWp0GLnVzOcnQnVtNqZR08twEfEr4Fe1PIaZ1V/eboj1/QRmlklpPjKPtTSzQqveDLHV4kRmZpmUbr9wjczMCqx7rGWeOJGZWWaexsfMCq00jY+blmZWcO4jM7NCK81+4aalmRVYaYiSE5mZFZprZGbWBHxnv5kVmq9amllTcNPSzAqte87+PHEiM7NMAujIWY0sX9GYWSFUa85+Sd+Q9KSkJyQtkFTRVLpOZGaWTcpHwfXX/JQ0GTgHmBkRh1GaSfqMSkJy09LMMqnyxIptwDBJ7cBe9PKAorSFmJllkqGzf7ykpWXr8yNiPkBEvCTpH4FVwDZgYUQsrCQeJzIzyyTjxIobI2Jmbzsk7Q2cBkwDtgA3SPpsRFydNSb3kZlZJoHo6GpJtfTjA8DzEbEhItqBm4FjK4nJNTIzy6xKfWSrgPdI2otS0/IkYGnfH+mdE5mZZRPVmY8sIhZLuhFYBnQAjwDzKynLiczMMqnmw0ci4nzg/IGW40RmZpl5iJKZFVogOvvvyK8rJzIzy8zzkZlZoUWVOvuryYnMzDILJzIzKzbPR2ZmTcA1sj6sfXw4Fxx0dKPDyK0TH9/a6BByb9HhwxsdQtOLgM4uJzIzKzhftTSzQgvctDSzwnNnv5k1gYhGR7AzJzIzy8xNSzMrtNJVS4+1NLOCc9PSzArPTUszK7RATmRmVnw5a1k6kZlZRgHhIUpmVnRuWppZ4RXmqqWkf6aPpnBEnFOTiMws14o21rKiB2WaWZMLoCiJLCKuLF+XNDwiPCGWmeWuadnvOANJsyQ9BaxI1o+Q9JOaR2ZmOSWiK91SL2kGTP0IOBnYBBARjwLH1zAmM8u7SLnUSaqrlhGxWtopu3bWJhwzy70oVmd/t9WSjgVC0h7AOSTNTDMbpIrWRwacDXwNmAy8BByZrJvZoKWUS330WyOLiI3AnDrEYmZF0dXoAHaW5qrlQZJ+KWmDpJcl3SLpoHoEZ2Y51H0fWZqlH5LGSLpR0tOSVkiaVUlIaZqW1wLXAxOBScANwIJKDmZmzSEi3ZLCj4HbI+IQ4Agq7H9Pk8gUEVdFREeyXE3uuvrMrK6qcPuFpFGUbuX6OUBE7IiILZWE09dYy7HJy7slfRu4Lgnt08BtlRzMzJpE+tsvxksqH+44PyLmJ68PAjYAl0s6AngYOLeSEUR9dfY/TClxdUf8lbJ9AXw/68HMrDkofZtsY0TM3M2+NuBo4OsRsVjSj4FvA3+bNZ6+xlpOy1qYmQ0CIajO8KM1wJqIWJys30gpkWWW6s5+SYcBhwJDu7dFxC8qOaCZNYEq9JJHxHpJqyXNiIhngJOApyopq99EJul8YDalRPYr4FTgfsCJzGywqt7lvq8D1ySjhlYCf1pJIWlqZKdTuiz6SET8qaQJwKWVHMzMmkSVEllELAd214eWWprbL7ZFRBfQkVwufZnS1YamNXP2q1x639Nc/sAKPjXvd40OJ5dWX93G4o8NY/FHh7H6Ks+Y3lNTf4eqeENstaRJZEsljQF+RulK5jLgv/r7kKTLkpEATwwsxPpqaQm+duFLnDdnGl+ePYMTTtvC/tPfbHRYufL6b8Tam4Yw89ptvOvGbWz8dRtvvJiv2RAaaTB8hxTplnrpN5FFxJ9HxJaI+Bfgg8DnIyJNO/YK4JQBxld3M456g7Uv7MH6VXvS0d7CPbeMYdbJrzQ6rFx5Y2ULo97ZSeswaGmDMTM72XCXa2XdBsV3KGfzke02kUk6uucCjAXaktd9ioh7gc1VjLUuxu3Xzoa1e7y1vnHdEMZPbG9gRPkzfHoXWx5upX0LdG6DTfe1sn29a2TdBsN3KG81sr7+G/1BH/sCOLEaAUiaC8wFGMpe1ShyQNTL32Pe5idvtOEHBQf8WTuPzB1K6zAYMaMLtTY6qvwYFN+hokysGBEn1COAZLjCfIBRGtvwf+6N64awz6Qdb62Pn9jOpvVDGhhRPk36eAeTPt4BwG9/PIQ9JzT8ny43mv47VOdmYxppOvsHlWeW78XkaTuYMHU7bUO6mH3aFh5aOLrRYeXOjk2ln2+uExv+bxsTTu1obEA5Mii+QznrI3MPbQ9dneKS70zmwmtX0tIKC68by4vPDu3/g4PM4385lPYtoqUtOPg72xnSZH+nAzEYvkPK2cSKNUtkkhZQGhEwXtIa4PyI+HmtjldNSxaNYsmiUY0OI9f+6Mrmup2g2pr+O5SzpmWaIUqiNNX1QRFxgaT9gf0ios97ySLizCrFaGY5Uu8rkmmk6SP7CTAL6E5MrwGX1CwiM8u/nN3Zn6ZpeUxEHC3pEYCI+H0ywNPMBquc1cjSJLJ2Sa0koUvah9w9Q8XM6ilvTcs0iewi4N+BfSX9PaXZMM6raVRmll9RwKuWEXGNpIcpTXom4KMR4SeNmw1mRauRJVcp3wB+Wb4tIlbVMjAzy7GiJTJKT0zqfgjJUGAa8AzwjhrGZWY5Vrg+sog4vHw9mfniK7t5u5lZ3WW+sz8ilkl6Vy2CMbOCKFqNTNJflq22UHoO3YaaRWRm+VbEq5bAyLLXHZT6zG6qTThmVghFqpElN8KOiIi/rlM8ZpZzokCd/ZLaIqIjzbTWZjbIFCWRUXpS0tHAckm3AjcAW7t3RsTNNY7NzPIoh7NfpOkjGwtsojRHf/f9ZAE4kZkNVgXq7N83uWL5BG8nsG45y8dmVk9FqpG1AiPYOYF1y9mvYWZ1lbMM0FciWxcRF9QtEjMrhhw+RamvRJavB9eZWW4UqWl5Ut2iMLNiKUoii4jN9QzEzIojb0OU/IBeM8sm7cN5U9baJLVKekTSf1QakhOZmWWiDEtK5wIDmnXaiczMsqtSjUzSFOAjwKUDCadmTxo3s+aV4arleElLy9bnR8T8svUfAd9i51l2MnMiM7Ps0ieyjRExs7cdkv4YeDkiHpY0eyDhOJGZWTbVm1jxOOBPJH2Y0vNARkm6OiI+m7Ug95GZWXZV6COLiL+JiCkRcSBwBrCokiQGrpGZWQWKdGe/mVnvqpzIIuIe4J5KP+9EViCLDh/e6BBy7461yxsdQq69++Q3qlKOa2RmVmxBoSZWNDPbRaEePmJmtltOZGZWdIp8ZTInMjPLpmAzxJqZ9cp9ZGZWeHmbWNGJzMyyc43MzAqtoE8aNzPbmROZmRWZb4g1s6agrnxlMicyM8vG95GZWTPw7RdmVnyukZlZ0bmz38yKLQAPGjezonMfmZkVmu8jM7Pii3DT0syKzzUyMys+JzIzKzrXyMys2ALozFcmcyIzs8xcIzOz4vNVSzMrOtfIzKzYPI2PmRWdAOWss7+l0QGYWfEoItXSZxnSVEl3S1oh6UlJ51Yaj2tkZpZN9ZqWHcA3I2KZpJHAw5LujIinshbkGlkvZs5+lUvve5rLH1jBp+b9rtHh5JLP0a5+8I2pfOrwdzD3hBlvbbv3l6P58uwZnDL5CJ59dFgDo6umeHu8ZX9LX6VErIuIZcnr14AVwORKIqpZIqtmtbGeWlqCr134EufNmcaXZ8/ghNO2sP/0NxsdVq74HPXuQ5/ezN9fs3KnbQce8ibfvfQFDn/P1gZFVRuKdAswXtLSsmVur+VJBwJHAYsriaeWTcuqVRvracZRb7D2hT1Yv2pPAO65ZQyzTn6FVb8Z2uDI8sPnqHeHv2cr61fvsdO2/advb1A0NZb+PrKNETGzrzdIGgHcBPxFRLxaSTg1q5FVs9pYT+P2a2fD2re/jBvXDWH8xPYGRpQ/PkeDXJSuWqZZ+iNpCKUkdk1E3FxpSHXp7B9otbGepF235ewm5obzObJqdPZLEvBzYEVE/HAgZdW8s7+/aqOkud3t53YaXw3fuG4I+0za8db6+IntbFo/pIER5Y/PkVXj9gvgOOAs4ERJy5Plw5XEU9NElqbaGBHzI2JmRMwcwp61DCeVZ5bvxeRpO5gwdTttQ7qYfdoWHlo4utFh5YrPkVXpquX9EaGIeGdEHJksv6oknJo1LatZbaynrk5xyXcmc+G1K2lphYXXjeXFZwd3J3ZPPke9+59fPYDHHhzBK5vbmPNHh3LWN9czcu9OfnLeZF7Z1MbfnnUQf/CObVy4YGX/heVZAIPo4SPd1cbHJS1Ptv33SjNuPS1ZNIoli0Y1Ooxc8zna1d/89MVetx936it1jqS2RKpmY13VLJFFxP2UhmWZWbPpyleVzEOUzCybQda0NLMmNWialmbWxJzIzKzY/IBeMys6P0XJzJqB+8jMrPicyMys0ALociIzs0JzZ7+ZNQMnMjMrtAA683VrvxOZmWUUEE5kZlZ0blqaWaH5qqWZNQXXyMys8JzIzKzQIqCzs9FR7MSJzMyyc43MzArPiczMii181dLMCi4gfEOsmRWehyiZWaFF+HFwZtYE3NlvZkUXrpGZWbF5YkUzKzoPGjezogsgcjZEqaXRAZhZwUQysWKapR+STpH0jKTnJH270pBcIzOzzKIKTUtJrcAlwAeBNcASSbdGxFNZy3KNzMyyq06N7N3AcxGxMiJ2ANcBp1USjiJHVx8kbQBebHQcZcYDGxsdRI75/PQvb+fogIjYZyAFSLqd0u+VxlDgzbL1+RExPynndOCUiPhSsn4WcExEzMsaU66algM9wdUmaWlEzGx0HHnl89O/ZjxHEXFKlYpSb8VXUpCblmbWKGuAqWXrU4C1lRTkRGZmjbIEmC5pmqQ9gDOAWyspKFdNyxya3+gAcs7np38+R7sRER2S5gF3AK3AZRHxZCVl5aqz38ysEm5amlnhOZGZWeE5kfWiWsMmmpWkyyS9LOmJRseSR5KmSrpb0gpJT0o6t9ExNTv3kfWQDJt4lrJhE8CZlQybaFaSjgdeB34REYc1Op68kTQRmBgRyySNBB4GPurvUO24Rrarqg2baFYRcS+wudFx5FVErIuIZcnr14AVwOTGRtXcnMh2NRlYXba+Bn8JrUKSDgSOAhY3OJSm5kS2q6oNm7DBTdII4CbgLyLi1UbH08ycyHZVtWETNnhJGkIpiV0TETc3Op5m50S2q6oNm7DBSZKAnwMrIuKHjY5nMHAi6yEiOoDuYRMrgOsrHTbRrCQtAB4EZkhaI+mLjY4pZ44DzgJOlLQ8WT7c6KCamW+/MLPCc43MzArPiczMCs+JzMwKz4nMzArPiczMCs+JrEAkdSaX8p+QdIOkvQZQ1hXJU2yQdKmkQ/t472xJx1ZwjBck7fK0nd1t7/Ge1zMe63uS/iprjNYcnMiKZVtEHJnMOLEDOLt8ZzJzR2YR8aV+ZmaYDWROZGb14kRWXPcB/y2pLd0t6VrgcUmtkv63pCWSHpP0FSjdbS7pYklPSboN2Le7IEn3SJqZvD5F0jJJj0q6Kxn0fDbwjaQ2+D5J+0i6KTnGEknHJZ8dJ2mhpEck/Su9j1vdiaT/I+nhZN6uuT32/SCJ5S5J+yTb/kDS7cln7pN0SFXOphVbRHgpyAK8nvxsA24BvkqptrQVmJbsmwucl7zeE1gKTAM+DtxJ6SEPk4AtwOnJ++4BZgL7UJr5o7usscnP7wF/VRbHtcB7k9f7UxqKA3AR8N3k9UcoDbYf38vv8UL39rJjDAOeAMYl6wHMSV5/F7g4eX0XMD15fQywqLcYvQyuxU9RKpZhkpYnr++jNJ7vWOC/IuL5ZPuHgHd2938Bo4HpwPHAgojoBNZKWtRL+e8B7u0uKyJ2N+fYB4BDS0MKARiVTCB4PKWESUTcJun3KX6ncyR9LHk9NYl1E9AF/Fuy/Wrg5mQ2iWOBG8qOvWeKY1iTcyIrlm0RcWT5huQPemv5JuDrEXFHj/d9mP6nI1KK90CpS2JWRGzrJZbUY94kzaaUFGdFxBuS7gGG7ubtkRx3S89zYOY+suZzB/DVZBoZJB0saThwL3BG0oc2ETihl88+CLxf0rTks2OT7a8BI8vet5DSwHqS9x2ZvLwXmJNsOxXYu59YRwO/T5LYIZRqhN1agO5a5WeA+6M0p9fzkj6ZHEOSjujnGDYIOJE1n0uBp4BlycNB/pVSzfvfgd8AjwM/BX7d84MRsYFSH9vNkh7l7abdL4GPdXf2A+cAM5OLCU/x9tXTvwOOl7SMUhN3VT+x3g60SXoM+D7wUNm+rcA7JD0MnAhckGyfA3wxie9JPA254dkvzKwJuEZmZoXnRGZmhedEZmaF50RmZoXnRGZmhedEZmaF50RmZoX3/wFk+dhUPwEgxQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# SVM RBF\n",
    "print(\"\\n--- SVM RBF ---\")\n",
    "svm_rbf_diabetes = SVC(kernel='rbf', random_state=42)\n",
    "svm_rbf_diabetes.fit(X_train_d, y_train_d)\n",
    "y_pred_svm_rbf_d_train = svm_rbf_diabetes.predict(X_train_d)\n",
    "y_pred_svm_rbf_d_test = svm_rbf_diabetes.predict(X_test_d)\n",
    "print(\"Diabetes Training Accuracy:\", accuracy_score(y_train_d, y_pred_svm_rbf_d_train))\n",
    "print(\"Diabetes Testing Accuracy:\", accuracy_score(y_test_d, y_pred_svm_rbf_d_test))\n",
    "print(classification_report(y_test_d, y_pred_svm_rbf_d_test))\n",
    "print(confusion_matrix(y_test_d, y_pred_svm_rbf_d_test))\n",
    "ConfusionMatrixDisplay.from_estimator(svm_rbf_diabetes, X_test_d, y_test_d)\n",
    "plt.title(\"SVM RBF - Diabetes\")\n",
    "plt.show()\n",
    "\n",
    "svm_rbf_iris = SVC(kernel='rbf', random_state=42)\n",
    "svm_rbf_iris.fit(X_train_i, y_train_i)\n",
    "y_pred_svm_rbf_i_train = svm_rbf_iris.predict(X_train_i)\n",
    "y_pred_svm_rbf_i_test = svm_rbf_iris.predict(X_test_i)\n",
    "print(\"Iris Training Accuracy:\", accuracy_score(y_train_i, y_pred_svm_rbf_i_train))\n",
    "print(\"Iris Testing Accuracy:\", accuracy_score(y_test_i, y_pred_svm_rbf_i_test))\n",
    "print(classification_report(y_test_i, y_pred_svm_rbf_i_test))\n",
    "print(confusion_matrix(y_test_i, y_pred_svm_rbf_i_test))\n",
    "ConfusionMatrixDisplay.from_estimator(svm_rbf_iris, X_test_i, y_test_i)\n",
    "plt.title(\"SVM RBF - Iris\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "7519c81b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "| Model         |   Training Accuracy |   Test Accuracy |   Precision |   Recall |   F1-score |\n",
      "|---------------|---------------------|-----------------|-------------|----------|------------|\n",
      "| Decision Tree |                1    |            0.77 |        0.77 |     0.77 |       0.77 |\n",
      "| Random Forest |                1    |            0.75 |        0.76 |     0.75 |       0.76 |\n",
      "| Naive Bayes   |                0.75 |            0.76 |        0.77 |     0.76 |       0.76 |\n",
      "| SVM (Linear)  |                0.77 |            0.76 |        0.76 |     0.76 |       0.76 |\n",
      "| SVM (RBF)     |                0.74 |            0.75 |        0.75 |     0.75 |       0.73 |\n"
     ]
    }
   ],
   "source": [
    "from tabulate import tabulate\n",
    "\n",
    "models = {\n",
    "    \"Decision Tree\": (dt_diabetes, X_train_d, y_train_d, X_test_d, y_test_d),\n",
    "    \"Random Forest\": (rf_diabetes, X_train_d, y_train_d, X_test_d, y_test_d),\n",
    "    \"Naive Bayes\": (nb_diabetes, X_train_d, y_train_d, X_test_d, y_test_d),\n",
    "    \"SVM (Linear)\": (svm_linear_diabetes, X_train_d, y_train_d, X_test_d, y_test_d),\n",
    "    \"SVM (RBF)\": (svm_rbf_diabetes, X_train_d, y_train_d, X_test_d, y_test_d)\n",
    "}\n",
    "\n",
    "table = []\n",
    "for name, (model, X_train, y_train, X_test, y_test) in models.items():\n",
    "    train_acc = accuracy_score(y_train, model.predict(X_train))\n",
    "    test_acc = accuracy_score(y_test, model.predict(X_test))\n",
    "    report = classification_report(y_test, model.predict(X_test), output_dict=True)\n",
    "    precision = report['weighted avg']['precision']\n",
    "    recall = report['weighted avg']['recall']\n",
    "    f1 = report['weighted avg']['f1-score']\n",
    "    table.append([name, f\"{train_acc:.2f}\", f\"{test_acc:.2f}\", f\"{precision:.2f}\", f\"{recall:.2f}\", f\"{f1:.2f}\"])\n",
    "\n",
    "print(tabulate(table, headers=[\"Model\", \"Training Accuracy\", \"Test Accuracy\", \"Precision\", \"Recall\", \"F1-score\"], tablefmt=\"github\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "20725c09",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "### Best Algorithm\n",
    "**Random Forest** usually performs best on test data due to its ensemble approach, reducing variance and improving generalization.\n",
    "\n",
    "---\n",
    "\n",
    "### Overfitting Signs\n",
    "**Decision Tree** often shows overfitting (very high training accuracy, much lower test accuracy) because it can memorize the training data.\n",
    "\n",
    "---\n",
    "\n",
    "### Naïve Bayes & Correlated Features\n",
    "**Naïve Bayes** assumes features are independent. If features are correlated, its performance drops compared to Decision Tree or SVM, which can model feature interactions.\n",
    "\n",
    "---\n",
    "\n",
    "### Random Forest vs Decision Tree\n",
    "**Random Forest** combines many trees, averaging their predictions, which reduces overfitting and improves accuracy compared to a single Decision Tree.\n",
    "\n",
    "---\n",
    "\n",
    "### Model Choice for Deployment\n",
    "**Random Forest** is recommended for diabetes prediction due to its balance of accuracy, robustness, and resistance to overfitting.\n",
    "\n",
    "---"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "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.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
