Contact Us!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
Avatar for stephanie's main branch.

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

| Download

"Guiding Future STEM Leaders through Innovative Research Training" ~ thinkingbeyond.education

Views: 1082
Image: ubuntu2204
{
  "cells": [
    {
      "cell_type": "code",
      "source": [
        "\"\"\"\n",
        "First Code - No C Parameter, Only Gamma Parameter - Not Used for Poster\n",
        "Using Digits Dataset of Scikit, Not MNIST Dataset\n",
        "\"\"\""
      ],
      "metadata": {
        "id": "sRpzyF7V272x"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "jAVRTY9Be1in",
        "outputId": "8061d033-2d2d-4660-f0ae-b3df4a2d08c2"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Classification Report for Classifier SVC(gamma=0.001):\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "           0       0.99      0.99      0.99       123\n",
            "           1       0.95      0.97      0.96       127\n",
            "           2       0.98      0.97      0.98       122\n",
            "           3       0.98      0.91      0.94       128\n",
            "           4       0.98      0.96      0.97       128\n",
            "           5       0.94      0.96      0.95       128\n",
            "           6       0.99      0.98      0.98       128\n",
            "           7       0.96      1.00      0.98       126\n",
            "           8       0.93      0.93      0.93       121\n",
            "           9       0.90      0.94      0.92       127\n",
            "\n",
            "    accuracy                           0.96      1258\n",
            "   macro avg       0.96      0.96      0.96      1258\n",
            "weighted avg       0.96      0.96      0.96      1258\n",
            "\n",
            "\n"
          ]
        }
      ],
      "source": [
        "import matplotlib.pyplot as plt\n",
        "from sklearn import datasets, metrics, svm\n",
        "from sklearn.model_selection import train_test_split\n",
        "\n",
        "digits = datasets.load_digits()\n",
        "\n",
        "\"\"\"\n",
        "_, axes = plt.subplots(nrows = 1, ncols = 4, figsize = (10, 3))\n",
        "for ax, image, label in zip(axes, digits.images, digits.target):\n",
        "    ax.set_axis_off()\n",
        "    ax.imshow(image, cmap = plt.cm.gray_r, interpolation = \"nearest\")\n",
        "    ax.set_title(\"Training: %i\" % label)\n",
        "\"\"\"\n",
        "\n",
        "n_samples = len(digits.images)\n",
        "data = digits.images.reshape((n_samples, -1))\n",
        "clf = svm.SVC(gamma = 0.001)\n",
        "\n",
        "X_train, X_test, y_train, y_test = train_test_split(\n",
        "    data, digits.target, test_size = 0.7, shuffle = False\n",
        ")\n",
        "\n",
        "clf.fit(X_train, y_train)\n",
        "predicted = clf.predict(X_test)\n",
        "\n",
        "\"\"\"\n",
        "_, axes = plt.subplots(nrows=1, ncols=4, figsize=(10, 3))\n",
        "for ax, image, prediction in zip(axes, X_test, predicted):\n",
        "    ax.set_axis_off()\n",
        "    image = image.reshape(8, 8)\n",
        "    ax.imshow(image, cmap=plt.cm.gray_r, interpolation=\"nearest\")\n",
        "    ax.set_title(f\"Prediction: {prediction}\")\n",
        "\"\"\"\n",
        "\n",
        "print(\n",
        "    f\"Classification Report for Classifier {clf}:\\n\"\n",
        "    f\"{metrics.classification_report(y_test, predicted)}\\n\"\n",
        ")"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\"\"\"\n",
        "Code using MNIST Dataset - 10,000 Images\n",
        "Used Fixed Hyperparameters:\n",
        "Gamma = 0.05\n",
        "C = 1\n",
        "Generated Classification Report and Confusion Matrix\n",
        "\"\"\""
      ],
      "metadata": {
        "id": "jqGKLGbS3UMy"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "from sklearn.datasets import fetch_openml\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn import svm, metrics\n",
        "from matplotlib.colors import Normalize\n",
        "\n",
        "mnist = fetch_openml('mnist_784', version = 1, as_frame = False)\n",
        "\n",
        "X = mnist.data\n",
        "y = mnist.target.astype(int)\n",
        "\n",
        "random_indices = np.random.choice(len(X), 10000, replace = False)\n",
        "X_subset = X[random_indices]\n",
        "y_subset = y[random_indices]\n",
        "\n",
        "X_subset = X_subset / 255.0\n",
        "\n",
        "X_train, X_test, y_train, y_test = train_test_split(X_subset, y_subset, test_size = 0.2, random_state = 42)\n",
        "\n",
        "param_C = 1.0\n",
        "param_gamma = 0.05\n",
        "classifier = svm.SVC(C = param_C, gamma = param_gamma)\n",
        "\n",
        "import datetime as dt\n",
        "start_time = dt.datetime.now()\n",
        "print(f\"Start learning at {start_time}\")\n",
        "\n",
        "classifier.fit(X_train, y_train)\n",
        "\n",
        "end_time = dt.datetime.now()\n",
        "print(f\"Stop learning at {end_time}\")\n",
        "elapsed_time = end_time - start_time\n",
        "print(f\"Elapsed learning time: {elapsed_time}\")\n",
        "\n",
        "predicted = classifier.predict(X_test)\n",
        "\n",
        "print(\"Classification Report:\\n\", metrics.classification_report(y_test, predicted))\n",
        "print(\"Accuracy:\", metrics.accuracy_score(y_test, predicted))\n",
        "\n",
        "cm = metrics.confusion_matrix(y_test, predicted)\n",
        "\n",
        "class HighContrastNormalize(Normalize):\n",
        "    def __init__(self, vmin = None, vmax = None, midpoint = None, clip = False):\n",
        "        super().__init__(vmin, vmax, clip)\n",
        "        self.midpoint = midpoint\n",
        "\n",
        "    def __call__(self, value, clip = None):\n",
        "        x, y = [self.vmin, self.midpoint, self.vmax], [0, 0.5, 1]\n",
        "        return np.ma.masked_array(np.interp(value, x, y))\n",
        "\n",
        "plt.figure(figsize = (10, 8))\n",
        "plt.imshow(\n",
        "    cm,\n",
        "    interpolation = 'nearest',\n",
        "    cmap = plt.cm.coolwarm,\n",
        "    norm = HighContrastNormalize(vmin = 0, vmax = cm.max(), midpoint = cm.max() / 2)\n",
        ")\n",
        "plt.title(\"High-Contrast Confusion Matrix\", fontsize = 16)\n",
        "plt.colorbar()\n",
        "classes = np.arange(10)\n",
        "plt.xticks(classes, classes, fontsize = 12)\n",
        "plt.yticks(classes, classes, fontsize = 12)\n",
        "plt.ylabel(\"True Label\", fontsize = 14)\n",
        "plt.xlabel(\"Predicted Label\", fontsize = 14)\n",
        "\n",
        "thresh = cm.max() / 2\n",
        "for i in range(cm.shape[0]):\n",
        "    for j in range(cm.shape[1]):\n",
        "        plt.text(\n",
        "            j, i, f\"{cm[i, j]}\",\n",
        "            horizontalalignment = \"center\",\n",
        "            color = \"white\" if cm[i, j] > thresh else \"black\"\n",
        "        )\n",
        "\n",
        "plt.tight_layout()\n",
        "plt.show()\n",
        "\n",
        "_, axes = plt.subplots(nrows = 2, ncols = 5, figsize = (10, 5))\n",
        "for ax, image, true_label, prediction in zip(axes.flatten(), X_test[:10], y_test[:10], predicted[:10]):\n",
        "    image = image.reshape(28, 28)\n",
        "    ax.set_axis_off()\n",
        "    ax.imshow(image, cmap = plt.cm.gray_r, interpolation = \"nearest\")\n",
        "    ax.set_title(f\"True: {true_label}\\nPred: {prediction}\")\n",
        "\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "QE4sELJdUUSi",
        "outputId": "843f2fc6-56ef-47e8-fca6-81800a7eb3c2"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Start learning at 2024-12-03 12:03:13.908212\n",
            "Stop learning at 2024-12-03 12:03:42.315214\n",
            "Elapsed learning time: 0:00:28.407002\n",
            "Classification Report:\n",
            "               precision    recall  f1-score   support\n",
            "\n",
            "           0       0.98      1.00      0.99       213\n",
            "           1       1.00      0.99      0.99       235\n",
            "           2       0.95      0.97      0.96       225\n",
            "           3       0.97      0.95      0.96       187\n",
            "           4       0.97      0.97      0.97       175\n",
            "           5       0.98      0.97      0.98       198\n",
            "           6       0.99      0.96      0.97       181\n",
            "           7       0.96      0.99      0.98       192\n",
            "           8       0.96      0.97      0.96       193\n",
            "           9       0.99      0.97      0.98       201\n",
            "\n",
            "    accuracy                           0.98      2000\n",
            "   macro avg       0.98      0.97      0.98      2000\n",
            "weighted avg       0.98      0.98      0.98      2000\n",
            "\n",
            "Accuracy: 0.9755\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1000x800 with 2 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2sAAAMWCAYAAABvCR6PAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAChM0lEQVR4nOzdd3gU5drH8d9setuQBEiIhN6rCFJUEEGp6lGxo2JB1CMi6lEPliNYDsdewXJeD4qCKCp2UVCxAaIIoiC9k9ASkpCQbDbZef9AVsMukGyymdnk+7muuXSn7Nx7Z2bJneeZ5zFM0zQFAAAAALAVh9UBAAAAAAB8UawBAAAAgA1RrAEAAACADVGsAQAAAIANUawBAAAAgA1RrAEAAACADVGsAQAAAIANUawBAAAAgA1RrAEAAACADVGsATbTrFkzGYahV1555aj79e/fX4ZhaOLEieXWL1iwQIZhqH///tUWk2EYMgyj2t7Pn99//1233nqrunXrppSUFEVERCglJUV9+vTRhAkT9Pvvvwf1/PCvsLBQzzzzjIYMGaL09HRFRUUpPj5ebdu21WWXXab3339fHo/H6jA1bdo09ejRQ3Fxcd7rdfPmzTV2/ldeeUWGYejKK6+ssXNW1qHvhkPLsmXLjrp/x44dvfuOHj26hqKsmIkTJ/r9/gOA2oZiDYClSktLdcstt6hTp0568skntXXrVp144om68MIL1bt3b23atEn/+c9/1KlTJz333HOWxRkKv4wfsnnzZhmGoWbNmlXpfT7//HM1b95cN998s7744gs1adJE55xzjgYPHqyYmBjNmDFD55xzjnr37l09gQfo448/1tVXX62VK1dqwIABGjVqlEaNGqX4+HhL47K7//3vf0fctnjxYq1ataraz0mRBQCVE251AACqV8+ePfX7778rNjbW6lAq5LLLLtObb74pp9Opp59+WpdffrnCwsK8203T1Lx58zRhwgStX7/ewkjrlo8//lh/+9vfVFZWpquvvlqTJ09Ww4YNy+2zdetW/fvf/9Zbb71lUZQHzZ49W5L0zDPP6Nprr7UkhnPPPVe9e/dWYmKiJeevjCZNmqi4uFgzZ87UY489pqioKJ99DhVyJ554on788ceaDvGYxo4dq4svvlj169e3OhQACCpa1oBaJjY2Vu3atVOTJk2sDuWY/ve//+nNN99URESEPv/8c1155ZXlCjXpYBfMQYMGafHixbrooossirRuyc7O1mWXXaaysjKNGzdOL7/8sk+hJh38pf+FF17Qe++9V/NB/sXWrVslSa1bt7YshsTERLVr106NGjWyLIaKioiI0GWXXaacnBy/P7sDBw5o1qxZOu644zR48OCaD7AC6tevr3bt2lGsAaj1KNaAWuZYz6x99913GjJkiOrVq6f4+HideOKJmj59uqSKPZv2zjvv6JRTTpHT6VRcXJxOPvlkffLJJ5WO0zRNPfTQQ5KkG264Qb169Trq/hEREerTp4/P+iVLlujCCy9Uenq6IiMj1bBhQ5111lmaN2+e3/e58sorvc8Ebtq0SZdffrnS0tIUFRWlli1b6p577pHL5Sp3TLNmzXTVVVdJkl599dVyz/38Nc+HniNcsGCBvv32W5111llq0KCBHA6H9xnE/fv367///a/OO+88tW7dWnFxcYqLi1Pnzp119913Kzc312/cWVlZuvnmm9WmTRtFR0crNjZWGRkZGjhwoB577LFyn6958+aSpC1btpSLtaLPHT733HPKzc1Vw4YN9cgjjxxz/379+vmsy8nJ0V133aWOHTsqNjZWCQkJ6t69ux555BEVFRX57P/X69btduvhhx9Wx44dFRMTo5SUFJ133nk+zy0e+ll+9dVXkqTTTjvN+zkPdVc9VvfVo3UZXbp0qS666CI1btxYkZGRcjqdatGihUaMGKH333+/3L7HOk9NXKeVcfXVV0vy3xVy9uzZ2r9/v6644gqfP5781bvvvqvRo0erU6dOSkpKUnR0tJo3b66rr75aa9as8dnfMAxNmjRJkjRp0qRy1+Vf83boud3Nmzfr/fff14ABA5ScnOy9tyT/3SlzcnLUtGlTGYahF154wef8BQUFateunQzD0MMPP1yRNAGA5egGCdQhs2bN0siRI+XxeNS5c2d16tRJO3bs0FVXXVWh51Puu+8+PfDAAzrppJM0bNgwrV69WgsXLtSZZ56pd955R+eee26FY/n111+1ceNGSdKoUaMC+jz//e9/df3118vj8ahbt27q37+/tmzZoo8++kgfffSRJk6cqPvuu8/vscuXL9fNN9+spKQknXrqqcrJydH333+vhx56SCtXrtScOXO8+55//vlavHixvv/+e7Vs2VKnnHKKd1u7du183nv27Nl64YUX1K5dO51++unKycnxdjX75ZdfNGbMGDVo0EBt27ZV9+7dtW/fPi1dutTbpXDx4sVKSUnxvt/OnTvVo0cPZWZmqkmTJhoyZIiio6OVmZmp5cuXa+nSpfrHP/4hSTrllFNUUFCgd955R3FxcTr//PMrnddDhchFF13kt4vcsWzcuFEDBgzQli1b1KBBAw0bNkxut1tfffWV7rzzTr355puaP3++kpKSfI51u90aNmyYFi5cqH79+ql9+/ZasmSJ5syZo6+++krLli3zFlaHfg5z587Vrl27NHjwYKWlpZXbFqgvvvhCQ4cOldvtVteuXdWnTx+VlZVpx44d+vjjj1VWVqa//e1vFXqvmrpOK6Njx47q2bOn5s+fr23btikjI8O77eWXX5YkXXXVVZoxY8YR3+PCCy9UVFSUOnTooAEDBqi0tFS//fabpk2bprfeekuff/65TjrpJO/+o0aN0vLly/XLL7+oa9euOv74473b/P28Hn/8cT333HPq0aOHhgwZoszMzKMWj8nJyXrrrbfUt29f3XLLLerdu3e5c4wZM0Zr1qzR8OHDdccdd1QkTQBgPROArTRt2tSUZE6bNu2o+5166qmmJPO+++4rt/6rr74yJZmnnnpqufU7duww4+PjTUnm008/XW7b119/bcbFxZmSTH9fC4fW16tXz1y8eHG5bffdd58pyWzTpk2FP6NpmubLL79sSjIjIyNNt9tdqWNN0zRXrFhhhoeHm4ZhmNOnTy+37ZNPPjEjIyNNSebnn39ebtuoUaO8n+fuu+82S0tLvdt+/fVXbx4WLlxY7rhp06aZksxRo0YdMaZDPxNJ5pQpU/zus23bNnP+/PlmWVlZufWFhYXmFVdcYUoy//73v5fbNmnSJFOSOWbMGNPj8ZTbVlJSYs6fP7/cuk2bNpmSzKZNmx4x1iNxu92mw+EwJfnktaJ69eplSjLPPvtss6CgwLt+9+7d5gknnGBKMi+99NJyxxy6biWZ3bp1M7OysrzbioqKzMGDB3tzcLhDef/qq698th3r53akXJ122mmmJPP111/3OSY3N9dctGhRhc5T09fp0RzKccuWLU3TNM0XX3zRlGTef//93n3Wrl1rSjL79etnmuaf9/c111zj836zZs0q9/M1TdP0eDzmlClTTElmx44dfa7XQ+93+PfWXx36DgwLCzPff/99v/sc7X2efPJJU5LZunVrMz8/3zRN03z++edNSWaTJk3M7OzsI54bAOyGbpCATV111VU+Xdj+unz99deVer+XX35ZBQUF6tOnj8aNG1duW79+/XTDDTcc8z3uv/9+n+6KEyZMUGJiotauXatt27ZVOJ49e/ZIOvjX8PDwyjfyP/300yotLdW5556ryy+/vNy2oUOHasyYMZKkRx991O/x3bt31wMPPFDuL/WdOnXyvtf8+fMrHdMhAwYM0N///ne/2xo3bqyBAwfK4Sj/9RsbG6vnn39e4eHh3gEzDtm1a5ckaciQIT5dGSMiIjRw4MCAYz1cdna2dyh+f8+pHct3332nH374QbGxsXrppZcUFxfn3dagQQO99NJLkg628m7fvt3neMMwNG3aNG8LmSRFR0d7u89V5edSGYdyPmzYMJ9tiYmJFR4B087X6cUXX6zY2Fi98sorMk1T0p/dIg91kzyaiy66qNzPVzr48/v73/+uPn36aOXKlVWacmPUqFE6++yzK33c+PHjdd5552ndunW69tprtWzZMo0fP14RERF68803lZycHHBMAFDT6AYJ2NTJJ5+sVq1aHXH7oa5fFXWouBs5cqTf7SNHjiz37JM/Z511ls+6qKgotWjRQsuWLdOOHTvKdacKpkPPrhzpGaFrrrlGzz33nL799luVlZX5dJ8688wz/T7D1b59e0nSjh07Ao6tIl0PFy5cqG+//VZbt27VgQMHvL8sR0ZGas+ePdq3b5+3m2DPnj01depU/fOf/5Rpmho0aJBth6U/9HMZMmSIUlNTfbZ3795dXbt21S+//KKvv/7a53ps0qSJunbt6nNcdfxcKqNnz55atWqVRo4cqbvuuku9e/cO6I8Kdr5OnU6nRowYoddee00LFixQv379NH36dCUkJOiCCy6o0HusX79ec+fO1fr167V//36VlZVJ+rPYXbNmjTp06BBQfIF04T3kf//7n5YvX64333xTc+fOlcvl0uOPP275NBMAUFkUa4BNjR49+qhzevXv379SxdqhVowjzb1VkTm5jjTCpNPplCQVFxd71/3nP//R6tWrffZ97LHHVL9+fTVo0EDSwUEB/P2SeiyHfkk9NJjG4Vq2bOmNKTs726eVqDKfpbKOlsvdu3drxIgR+u677476Hvn5+d5i7fLLL9e8efM0Y8YMjRgxQmFhYerQoYNOOeUUnX/++RowYEDA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9AFyu3K1de00uf+YaLJDz0d8HuStS8iJr52b35Mk/fp9+fuldbcJSm0yzIKI7KGuXSuOlHRFD77C+zryxEGSpNL1v6hk4QeSpLBmHSXDUOmmlX7fw/XtHEX2GqqoQZdJpqmyratVsmRu8IO3WF27ViqiIHeNfls03vt686opkqSGjYeodbcJFkVlLXLiH/ePL64V2IlhmqYZyIETJkzQww8/LMMwFBcXp8LCQu9zaqZp6t5779WkSZMq/b7Z2dlq06aN7rrrLt12222SpP79+2vv3r367bffjnjcxIkT/Z6v5+CPFR7BACU4OkdYmNUh2I6njMErDjfvgm+sDsGWzpjNXESH8zfwFuBPgL+G1WrcP+WVugv1w9xhysvLk9MZWtP65OfnKzExUet/+EoJ8daNTLy/oECtep0WkjkMeBzLyZMn67PPPtOZZ56p2NhYhYWFyePxaMiQIfr0008DKtQk6Z577lFycrJuuummSh03YcIE5eXleZdt27YFdH4AAAAAsIOAukEecsYZZ+iMM86orli0bt06vfTSS3rqqaeUmZnpXV9cXCy3263NmzfL6XQqOdm3aT4qKkpRUXX3+R4AAAAAtUuVirXqtmPHDnk8Ho0bN87v827NmzfXzTffHLIjRAIAAAB1jWkYMi3s3mrluauqSsXazz//rFdffVXLli1TXl6eEhMT1a1bN40aNUonnHBCpd+vU6dOmjNnjs/6e+65R/v379fTTz+tli1bViVkAAAAAAgJARdrt99+u5588kl5PJ5y67/77jtNmTJFt956qx555JFKvWf9+vV1zjnn+Kw/1JLmbxsAAAAA+zINh0wj4KEyquX8oSqgyJ977jk9/vjjat26tV577TVt3rxZRUVF2rx5s6ZPn65WrVrp8ccf19SpU6s7XgAAAACoEwJqWZs6daoyMjK0ZMkSJSQkeNc3adJEl112mc466yx17txZzz33nP7+979XOcgFCxZU+T0AAAAAIJQE1LK2adMmjRgxolyh9leJiYkaMWKENm3aVKXgAAAAAIQ2U4blS6gKqFhr2LBhhfZLTU0N5O0BAAAAoM4LqFi75JJL9M4776igoMDv9vz8fL3zzju65JJLqhQcAAAAANRVARVrkyZN0vHHH6+ePXtq1qxZ2r59u9xut7Zv36433nhDvXv31gknnKBJkyZVd7wAAAAAQsih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7Z1y/voavfq+j0RERPeLxRoRUQObMGECHBwcMHnyZPznP/+xWH79+nWza6NGjhwJAEhPTzcNLQSA4uJiLF++/K73O3HiRAA3J9CoG8JXR6/Xm52l8/T0BAAUFRVZbGfAgAEIDg7G0qVLsX//fovltbW1+Ne//mW2vkajwerVq1FQUGC23pw5c+46f334+PjAxcUF+fn5Zvc7u3btmum+eLezfPlynDt3zvRcp9PhjTfeAACkpKSY2uv7PhIREd0vDoMkImpgbdu2xYoVKzB+/HhERUWhX79+aNWqFSoqKvDLL7/gm2++QUpKClauXAkA6N27N0aNGoU1a9YgJiYGAwcOhFarxebNm9GlSxdkZmbe1X779euHGTNmYPHixYiIiMDAgQPh4+OD4uJi7NmzBzNmzEBqaioA4Mknn8TixYsxduxYDB48GG5ubggJCcHIkSOhVquxdetW9O3bF3FxcXjyyScRExMDlUqFs2fPIjs7G15eXqbJNTw8PPDBBx8gJSUFHTt2xPDhw+Hh4YHMzEy4uLjA39+/3n24d+9es8Lp17p3744xY8ZgwoQJWLJkCWJjY5GUlITy8nLs3LkTISEhCAgIuO22u3TpgtjYWAwbNgxubm7YsWMHTp48iUGDBmHw4MGm9er7PhIREd032fcOICJSojvdZ80aACIuLu6O6xw8eFAMHz5cBAQECEdHR+Ht7S0ef/xx8frrr4uffvrJbF29Xi8WLlwoWrZsKZycnETLli3FggULxM8//3zX91mr88UXX4jevXsLDw8PoVarRWhoqBg5cqQ4fvy42XqLFi0SERERwtHR0erPc+7cOTF16lQREREh1Gq10Gg04ne/+50YM2aM2LNnj8V+v/zyS9GhQwehVquFj4+PGDNmjLh69aoICQmp933W7vSo6wudTicyMjJM+YKDg8X06dNFRUWF1X3W3Wft9OnT4p133hHh4eHCyclJhISEiHnz5gmtVms1092+j7zPGhER3S+VEEJIqBGJiIiIiIjoDnjNGhERERERkQKxWCMiIiIiIlIgFmtEREREREQKxGKNiIiIiIhIgVisERERERERKRCLNSIiIiIiIgVisUZERERERKRALNaIiIiIiIgUiMUaERERERGRArFYIyIiIiIiUiAWa0RERERERArEYo2IiIiIiEiBWKwREREREREp0P8DIrKZh9wmNmMAAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1000x500 with 10 Axes>"
            ],
            "image/png": "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pZWUlKRGjRr57b2PHz8uySxoy7KUkpKiq1ev+u29ELwCWYNVq1aV5Py50CNHjuj222/323shOAWy/v5s2bJlOn/+PB9hyWKoPwRaMNRgtmzZVLly5bTx6tWrJcm1er/Rssyajb9SunRp2+fsJGn69OlGA/DQQw9p48aNWrlypXGOM2fO2BoDbx95dq1jfffdd235smXLlJycrCpVqmToWhCaAlmD5cqVU6VKlbR06VKdPHkyLf/000916NAhNW7c2JdLQggJZP392TvvvKOoqCg98MADGbwChDLqD4EWLDV4TWJiol577TXdeeedmabZyPJ3Np588kk988wzatu2rRo3bqxvv/1WK1eu1C233GI7bsCAAVq2bJlatGihLl26qGrVqkpOTtauXbv0v//9TwkJCWmvGTRokN5++23t37//bxcHtWzZUnfccYdefvllHThwQDVq1NAvv/yiiRMnqnDhwnriiSfcvHQEiUDWoCT9+9//VuPGjVW7dm1169ZNZ8+e1bhx4xQXF8fH+LKAQNefJJ06dUqffPKJ2rZtm2k+owzvUH8ItEDXYHx8vGrWrKkyZcro2LFjmj59upKSkrR8+XLddFPmuCeQ5ZuNp556Svv379fMmTO1YsUK1alTR6tWrVLDhg1tx0VFRemLL77QqFGjtHDhQs2ZM0fR0dGKi4vT8OHDlTdv3gy/d44cObRu3TqNGDFCH330kRYsWKA8efKoTZs2GjVqlFHoyJwCWYOSVL9+fa1YsUIvvPCCBg8erKioKLVp00avv/46P3izgEDXn/THU16uXLmiDh06XO/lIMRQfwi0QNdg1apVtXDhQv3666+Kjo5W48aNNWLECJUqVcoflxcUwizLsgI9CQAAAACZT+a4PwMAAAAg6NBsAAAAAHAFzQYAAAAAV9BsAAAAAHAFzQYAAAAAV9BsAAAAAHAFzYYflCxZUl26dAn0NJCFUYMIJOoPgUYNIpCov78X8s3G7NmzFRYWlvYnZ86ciouLU69evXT8+PFAT88rR48e1dNPP63Y2FhFRkaqdOnS6tevn3777bdATw1eyAw1mJqaqtdff12xsbHKmTOn7rzzTi1YsCDQ04IXQr3+hg0bZpu/55/169cHeopIBzWIQAr1+pOkX375Re3atVP+/PkVFRWl2rVra+3atYGelt9kmh3EX375ZcXGxurixYv6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pEkTrVmzRnXr1g30FOGFUK2/GTNmaObMmWrbtq169Oihs2fPatq0aapRo4ZWrFihRo0aBXqK8FKo1qAk7dixQ/Xq1VPRokX13HPPqUCBAjp48KAOHToU6KnBS6Fcf9ckJSVp4MCBypUrV6Cn4l9WiJs1a5Ylyfrmm29seb9+/SxJ1jvvvPOXr01KSvLLHEqUKGF17tzZp9fOnz/fkmQtX77clr/44ouWJGvbtm1+mCHcFOo12KNHDys8PNz68ccf07Lk5GSrePHi1l133eWX+cE9oV5/W7Zssc6fP2/LTp48acXExFi1atXyw+zgtlCvwZSUFKtixYrWPffcY/3+++9+mQ9unFCvvz/717/+ZZUrV87q2LGjlStXruufWJDItP9k3qBBA0nS/v37JUldunRR7ty5tXfvXjVr1kx58uRRx44dJUmpqakaP3687rjjDuXMmVOFChVSt27ddPr0ads5LcvSyJEjVaxYMUVFRal+/fravXu34/vv3btXe/fuTXee586dkyQVKlTIlhcuXFiSFBkZmYGrRjAJlRpct26dqlSponLlyqVlUVFRatWqlbZt26Y9e/b4dP0IrFCpv6pVqxofFyhQoIDq1KmjH374IcPXjeARKjX46aef6rvvvtNLL72kyMhI/f7770pJSbmeS0cQCJX6u2bPnj3697//rXHjxik8PNN88EhSJvoYladr/4ELFCiQll29elX33XefateurTFjxqTdVuvWrZtmz56trl276tlnn9X+/fs1ceJEbd++XevXr1f27NklSS+++KJGjhypZs2aqVmzZtq2bZuaNGmiy5cvG+/fsGFDSVJCQsLfzrNu3bq66aab1KdPH40dO1bFihXTzp079corr6hNmza6/fbb/fHlQACESg1eunRJ+fPnN/Jrc9u6davKli2b8S8AAipU6u+vHDt2TLfccotPr0VwCJUaXL16tSQpIiJC1apV09atW5UjRw498MADmjx5sm6++ebr/lrgxguV+rumb9++ql+/vpo1a6b333//ei49+AT0voofXLt9tnr1aisxMdE6dOiQ9e6771oFChSwIiMjrcOHD1uWZVmdO3e2JFnPP/+87fXr1q2zJFnz58+35StWrLDlJ06csHLkyGE1b97cSk1NTTtu8ODBliTj9lmJEiWsEiVKeHUNM2bMsPLly2dJSvvTuXNn68qV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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\"\"\"\n",
        "Looped the Gamma Hyperparameter with C = 1\n",
        "\"\"\""
      ],
      "metadata": {
        "id": "Qb8x8uO94j-L"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "from sklearn.datasets import fetch_openml\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn import svm, metrics\n",
        "import datetime as dt\n",
        "\n",
        "mnist = fetch_openml('mnist_784', version=1, as_frame = False)\n",
        "\n",
        "X = mnist.data\n",
        "y = mnist.target.astype(int)\n",
        "\n",
        "random_indices = np.random.choice(len(X), 10000, replace = False)\n",
        "X_subset = X[random_indices]\n",
        "y_subset = y[random_indices]\n",
        "\n",
        "X_subset = X_subset / 255.0\n",
        "\n",
        "X_train, X_test, y_train, y_test = train_test_split(X_subset, y_subset, test_size = 0.2, random_state = 42)\n",
        "\n",
        "param_C = 1.0\n",
        "gamma_values = np.arange(0.001, 1, 0.005)\n",
        "\n",
        "accuracies = []\n",
        "learning_times = []\n",
        "\n",
        "for gamma in gamma_values:\n",
        "    classifier = svm.SVC(C = param_C, gamma = gamma)\n",
        "\n",
        "    start_time = dt.datetime.now()\n",
        "    classifier.fit(X_train, y_train)\n",
        "    end_time = dt.datetime.now()\n",
        "\n",
        "    elapsed_time = (end_time - start_time).total_seconds()\n",
        "    learning_times.append(elapsed_time)\n",
        "\n",
        "    predicted = classifier.predict(X_test)\n",
        "    accuracy = metrics.accuracy_score(y_test, predicted)\n",
        "    accuracies.append(accuracy)\n",
        "\n",
        "    print(f\"Gamma: {gamma:.5f}, Accuracy: {accuracy:.4f}, Learning Time: {elapsed_time:.2f}s\")"
      ],
      "metadata": {
        "id": "Uxga5DcAc-ym"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "\"\"\"\n",
        "Values were taken out and a graph was made using matplotlib.\n",
        "\"\"\""
      ],
      "metadata": {
        "id": "L_nuLGRc5unn"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "\"\"\"\n",
        "Looping the C Hyperparameter with Gamma = 0.026, the value of Gamma where accuracy peaked.\n",
        "\"\"\""
      ],
      "metadata": {
        "id": "6iZhUogm6-Oi"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "from sklearn.datasets import fetch_openml\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn import svm, metrics\n",
        "import datetime as dt\n",
        "\n",
        "mnist = fetch_openml('mnist_784', version=1, as_frame = False)\n",
        "\n",
        "X = mnist.data\n",
        "y = mnist.target.astype(int)\n",
        "\n",
        "random_indices = np.random.choice(len(X), 10000, replace = False)\n",
        "X_subset = X[random_indices]\n",
        "y_subset = y[random_indices]\n",
        "\n",
        "X_subset = X_subset / 255.0\n",
        "\n",
        "X_train, X_test, y_train, y_test = train_test_split(X_subset, y_subset, test_size = 0.2, random_state = 42)\n",
        "\n",
        "param_C_values = np.arange(0.01, 2, 0.01)\n",
        "gamma = 0.026\n",
        "\n",
        "accuracies = []\n",
        "learning_times = []\n",
        "\n",
        "for param_C in param_C_values:\n",
        "    classifier = svm.SVC(C = param_C, gamma = gamma)\n",
        "\n",
        "    start_time = dt.datetime.now()\n",
        "    classifier.fit(X_train, y_train)\n",
        "    end_time = dt.datetime.now()\n",
        "\n",
        "    elapsed_time = (end_time - start_time).total_seconds()\n",
        "    learning_times.append(elapsed_time)\n",
        "\n",
        "    predicted = classifier.predict(X_test)\n",
        "    accuracy = metrics.accuracy_score(y_test, predicted)\n",
        "    accuracies.append(accuracy)\n",
        "\n",
        "    print(f\"C Parameter: {param_C:.5f}, Accuracy: {accuracy:.4f}, Learning Time: {elapsed_time:.2f}s\")"
      ],
      "metadata": {
        "id": "YR27iPDe7BKr"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "#Moving on to MLP with Quantum Approach"
      ],
      "metadata": {
        "id": "GpKSV-TCDRDd"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "cj649e9EWVgC",
        "outputId": "956321e4-de9d-4b79-a044-07b4ef8f8754"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Requirement already satisfied: pennylane in /usr/local/lib/python3.10/dist-packages (0.39.0)\n",
            "Requirement already satisfied: numpy<2.1 in /usr/local/lib/python3.10/dist-packages (from pennylane) (1.26.4)\n",
            "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from pennylane) (1.13.1)\n",
            "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from pennylane) (3.4.2)\n",
            "Requirement already satisfied: rustworkx>=0.14.0 in /usr/local/lib/python3.10/dist-packages (from pennylane) (0.15.1)\n",
            "Requirement already satisfied: autograd in /usr/local/lib/python3.10/dist-packages (from pennylane) (1.7.0)\n",
            "Requirement already satisfied: toml in /usr/local/lib/python3.10/dist-packages (from pennylane) (0.10.2)\n",
            "Requirement already satisfied: appdirs in /usr/local/lib/python3.10/dist-packages (from pennylane) (1.4.4)\n",
            "Requirement already satisfied: autoray>=0.6.11 in /usr/local/lib/python3.10/dist-packages (from pennylane) (0.7.0)\n",
            "Requirement already satisfied: cachetools in /usr/local/lib/python3.10/dist-packages (from pennylane) (5.5.0)\n",
            "Requirement already satisfied: pennylane-lightning>=0.39 in /usr/local/lib/python3.10/dist-packages (from pennylane) (0.39.0)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from pennylane) (2.32.3)\n",
            "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from pennylane) (4.12.2)\n",
            "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from pennylane) (24.2)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->pennylane) (3.4.0)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->pennylane) (3.10)\n",
            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->pennylane) (2.2.3)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->pennylane) (2024.8.30)\n"
          ]
        }
      ],
      "source": [
        "#Importing Necessary Libraries\n",
        "!pip install pennylane\n",
        "import pennylane as qml\n",
        "import numpy as np\n",
        "from sklearn.datasets import fetch_openml\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn.metrics import accuracy_score\n",
        "from sklearn.preprocessing import StandardScaler\n",
        "from sklearn.model_selection import cross_val_score\n",
        "from sklearn.neural_network import MLPClassifier"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "s5eVjFZMWkOW"
      },
      "outputs": [],
      "source": [
        "#Loading MNIST Dataset\n",
        "mnist = fetch_openml('mnist_784',version=1)\n",
        "X,y = mnist.data / 255.0, mnist.target.astype(int)\n",
        "X_train , X_test ,y_train , y_test = train_test_split(X,y,test_size=0.2,random_state=42)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "qnpzcUN1xtWw",
        "outputId": "f6dae2c3-408f-4d0b-b739-701574624af8"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Training data dimension:(8000, 784),Test data dimension:(2000, 784)\n",
            "Training labels dimension:(8000,),Test labels dimension:(2000,)\n"
          ]
        }
      ],
      "source": [
        "#feature scaling and data preprocessing\n",
        "scaler = StandardScaler()\n",
        "X_train = scaler.fit_transform(X_train)\n",
        "X_test = scaler.transform(X_test)\n",
        "print(f\"Training data dimension:{X_train.shape},Test data dimension:{X_test.shape}\")\n",
        "print(f\"Training labels dimension:{y_train.shape},Test labels dimension:{y_test.shape}\")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "2q-JMkQ-z4Eq",
        "outputId": "547aca14-a12d-41f5-9dac-6743b6e1996f"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Quantum Circuit:\n",
            "0: ──RX(3.00)──┤  <Z>\n",
            "1: ──RX(-1.10)─┤  <Z>\n",
            "2: ──RX(-0.18)─┤  <Z>\n",
            "Testing quantum circuit with params:[ 2.99742779 -1.09737333 -0.17626929]\n",
            "Quantum circuit output:[-0.9896262315339532, 0.45593546069885144, 0.9845047525219398]\n"
          ]
        }
      ],
      "source": [
        "#Quantum Device setup\n",
        "n_qubits = 3\n",
        "dev = qml.device('default.qubit',wires=(n_qubits))\n",
        "\n",
        "#Defining Quantum Circuits\n",
        "@qml.qnode(dev)\n",
        "def Quantum_Circ(p):\n",
        "  for i in range(n_qubits):\n",
        "    qml.RX(p[i],wires=i)\n",
        "  return[qml.expval(qml.PauliZ(i)) for i in range(n_qubits)]\n",
        "\n",
        "#Visualizing and Testing the Quantum Circuit\n",
        "test_params = np.random.uniform(-np.pi,np.pi,n_qubits)\n",
        "print('Quantum Circuit:')\n",
        "print(qml.draw(Quantum_Circ)(test_params))\n",
        "print(f\"Testing quantum circuit with params:{test_params}\")\n",
        "qvalues = Quantum_Circ(test_params)\n",
        "print(f\"Quantum circuit output:{qvalues}\")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "bKjhLuw63kkR",
        "outputId": "3bba5033-c08d-424c-e1df-6dce58afcd5b"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Translated hyperparameter:(0.0006181697348790358, 245, 0.14840202477694178)\n"
          ]
        }
      ],
      "source": [
        "#Translating Quantum Output to Hyperparameters\n",
        "def translate_quantum_to_classic(qvalues):\n",
        "  #learning_rate- Maps qvalues between -1 and 1 to Appropriate range between 0.0001 and 0.1\n",
        "  learning_rate = 0.0001 + (0.1 - 0.0001)*((qvalues[0] + 1)/2)\n",
        "  #num_neurons- Maps qvalues between -1 and 1 to Appropriate range between 16 and 256\n",
        "  num_neurons = int(16 + (256 - 16)*((qvalues[1] + 1 / 2)))\n",
        "  #alpha- Maps qvalue between -1 and 1 to Appropriate range between 0.0001 and 0.1\n",
        "  alpha = 0.0001 + (0.1 - 0.0001)*((qvalues[2] + 1 / 2))\n",
        "  return learning_rate,num_neurons,alpha\n",
        "\n",
        "print(f\"Translated hyperparameter:{translate_quantum_to_classic(qvalues)}\")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "vGwtUGqJ53Kq",
        "outputId": "09643b72-d47b-4e4f-ba43-c983a151348b"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/usr/local/lib/python3.10/dist-packages/sklearn/neural_network/_multilayer_perceptron.py:690: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (20) reached and the optimization hasn't converged yet.\n",
            "  warnings.warn(\n",
            "/usr/local/lib/python3.10/dist-packages/sklearn/neural_network/_multilayer_perceptron.py:690: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (20) reached and the optimization hasn't converged yet.\n",
            "  warnings.warn(\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "cross-validation scores:[0.94375703 0.9343832  0.94073518]\n",
            "Fitness for test quantum values[-0.9896262315339532, 0.45593546069885144, 0.9845047525219398]:0.9396251387556301\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/usr/local/lib/python3.10/dist-packages/sklearn/neural_network/_multilayer_perceptron.py:690: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (20) reached and the optimization hasn't converged yet.\n",
            "  warnings.warn(\n"
          ]
        }
      ],
      "source": [
        "#Fitness Function for Mlp Evalution\n",
        "def fitness_function(qvalues):\n",
        "  try:\n",
        "    learning_rate , num_neurons , alpha = translate_quantum_to_classic(qvalues)\n",
        "    model = MLPClassifier(hidden_layer_sizes=(num_neurons,),learning_rate_init=learning_rate,alpha = alpha, max_iter=20)\n",
        "    cv_scores = cross_val_score(model,X_train,y_train,cv=3,scoring='accuracy')\n",
        "    print(f\"cross-validation scores:{cv_scores}\")\n",
        "    return np.mean(cv_scores)\n",
        "  except Exception as e:\n",
        "    print(f\"Error during fitness evalution:{e}\")\n",
        "    return -np.pi\n",
        "\n",
        "#Running the Fitness Function\n",
        "test_qvalues = Quantum_Circ(test_params)\n",
        "print(f\"Fitness for test quantum values{test_qvalues}:{fitness_function(test_qvalues)}\")"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        " Evaluation Results :\n",
        "  \n",
        "  Cross-Validation scores:\n",
        "  Fold1: 0.94375703 ,Fold2: 0.9343832 , Fold3: 0.94073518\n",
        "  \n",
        "  Average Accuracy:\n",
        "  0.9396251387556301\n",
        "  \n",
        "  Fitness for test quantum values:\n",
        "  [-0.9896262315339532, 0.45593546069885144, 0.9845047525219398]\n",
        "\n",
        "\n",
        ">\n",
        "\n"
      ],
      "metadata": {
        "id": "inS80IjjJ8RL"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "#Visualizing Cross-Validation fold scores and Fitness score For Model  Performance Comparison using Bar Graph\n",
        "import matplotlib.pyplot as plt\n",
        "import numpy as np\n",
        "cv_scores = [0.94375703,0.9343832,0.94073518]\n",
        "fitness_score = 0.9396251387556301\n",
        "labels = ['Fold 1', 'Fold 2', 'Fold 3']\n",
        "plt.figure(figsize=(8,6))\n",
        "bars = plt.bar(labels, cv_scores, color=['#4CAF50','#2196F3','#FFC107'],alpha=0.8)\n",
        "plt.axhline(y=fitness_score, color='red', linestyle='--',linewidth=1.5,label=f'Fitness score:{fitness_score:4f}')\n",
        "for bar,score in zip(bars, cv_scores):\n",
        "  plt.text(bar.get_x() + bar.get_width() / 2, bar.get_height() + 0.003,f'{score:.4f}', ha='center',fontsize=10)\n",
        "plt.title('Cross-Validation scores and Fitness score', fontsize=14)\n",
        "plt.ylabel('Accuracy', fontsize=12)\n",
        "plt.xlabel('Cross-Validation Folds', fontsize=12)\n",
        "plt.legend()\n",
        "plt.tight_layout()\n",
        "plt.show()\n"
      ],
      "metadata": {
        "id": "LP2gtec2u9Rw",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 607
        },
        "outputId": "c865ab64-1250-4339-e279-39805209d76b"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 800x600 with 1 Axes>"
            ],
            "image/png": "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l5fp2LGjefHFF0358uWNJNOxY8c034vrbdu2zbi5uRlPT0/ToUMH079/f/Pss8+aevXqmeLFi9vV7tq1ywQGBhpJpm7duqZfv36mV69epn79+iZv3rx2taNHjzaSTL58+cyzzz5rXnrpJVO6dGkjybRs2dIkJSXZavfv328kmTp16hgfHx9Tp04dEx0dbbp27WqOHDlijDGmf//+RpIpUqSIefLJJ82LL75oatasaSSZNm3a2M27X79+tvW9V69epn///qZz586mRIkS5rXXXsvQ61K2bFlTuXJl07VrV9O/f3/TvXt3U6BAASPJvPfee3a1yf0PDw83+fPnN/Xq1TPR0dHm0UcfNZJM3rx5TUxMjN04t7oOpiV53pGRkenW3fhZOHPmjBk8eLDx9fU1vr6+tvV08ODBZtWqVXbjNG3a1Hh4eJimTZvarfshISHmypUrdvPZuHGj8fX1Nc7OzqZly5bm5ZdfNo8//rhxdnY2BQsWNHv37rXVZnTdy+j3VHratm1rJJkqVaqYPn36mH79+pkOHTqYQoUKmSlTptjVRkdH29bdJ5980vTv39906tTJFCpUyIwdO9ZWd+LECRMSEmIkmfr165v+/fubdu3aGScnJ+Pp6WnWrl1rN92bfXfv2bPHFC1a1EgyjRs3Ni+99JLp3Lmz8fT0NF5eXmbjxo03XU4gpxEsgBxSv359I8ksX778lsZL/uNUtGhRc/DgQbthiYmJtj90S5cutRv28ssvG0nmySeftLW99957RpIZN25civmcPn3a9v8FCxYYSeaFF15IUXfhwgUTGxt7034fOXLEODk5maCgIJOYmGg3bP78+Sk2EA8ePGiuXr1qV5eUlGSefPJJI8msW7fOblhGg0ViYqIpWbKkcXBwsPvDn5SUZDp27GgkpZjO8ePHzYULF1Is0yeffGIkmeHDh9u1J79H+/fvT/W1SC1YDB061EgynTp1stvo3rp1q3F1dTV+fn7m/PnztvbkYOHr62t27dpla798+bIpU6aMcXR0tG2Upyd5I+rbb79NMezUqVN2z5M35D/66KMUtYcPH7b9f8+ePbYNyUOHDtnaY2NjTd26dY0k8+mnn9rakzeO0wqeP/zwg23j+eLFi7b2pKQk8+yzzxpJZt68ebb2fPnymcKFC5tLly6lmNb163V6rt8ATnbhwgVTuXJl4+vrazft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97ZWrVqqVauWfvzxR02ZMiVF/fWBqGPHjnJ2dtaYMWPszkWIj4/XK6+8Ikl21+6/meeff17StVCa2r1YYmJitHPnTknXQvj69etT1Fy6dEkXL16Ui4vLTQ9zSWv9mzVrlu0wQCtudR3MTvny5dOpU6dSXQdu1aOPPqrixYtrzJgx+vHHH1MMT0hIsFvejK57Gf2eSsvJkydTvQ/EmTNnFBcXZzd+r169JEl9+vSxHZ6U7OrVq7Z5urq6qkOHDjp16lSK76SlS5fq+++/V6lSpWx7pm8mNDRUtWvX1uzZszV37twUw5OSkm4adoDcgHMsgBw0fPhwxcbGauzYsSpbtqwaNmyoSpUqycXFRfv379fy5ct1+vRpDR8+PEPTc3R01IwZMxQZGammTZvq8ccfV1BQkDZs2KDVq1crJCREI0eOtNV/9tln+vDDD1WvXj2FhITIx8dHf/75pxYvXqx8+fLZDk9atmyZXn75ZdWpU0dlypRR/vz5tW/fPi1YsEDu7u62P8YZ1b17d/3000/66aef5Ofnp8cee8xueGhoqEJDQ/XFF1/o2LFjuv/++3Xo0CEtWLBAzZo107x5825pfje+Rh999JGaNm2qiIgItWvXToULF9bKlSt17NgxValSRb/99ptdfc+ePW0312revLnOnz+vJUuWKCgoSIULF04xj4YNG+rdd9/V008/rdatW8vLy0tBQUEpTry+Xr9+/bRo0SJ99tln2rlzpxo1aqQTJ05o7ty5unr1qqZMmaI8efJkernTMmrUKK1atUr16tVTiRIl5O7urq1bt2rFihUqWbKkWrVqZaudOXOm6tevr6efflqfffaZwsLCFBsbqx07dmjbtm22jf6QkBCNGjVKL730kqpUqaK2bdvKy8tLCxcu1O7du/Xoo4/qiSeeyHAfH374Yb3++usaNmyYSpUqpYcfflhBQUE6ffq09uzZo7Vr12r48OEqX768rly5YltPa9SooeLFi+vixYv67rvvFBMTo759+8rNzS3d+XXu3FmjRo3Sc889p1WrVikoKEi//vqrVqxYoccee0xff/115l7s/3er62B2atiwoTZv3qwmTZrowQcflKurq+rVq6d69erd8rTc3Nw0b948NWnSROHh4WrYsKEqV65suxHf2rVrlT9/ftuJyBld9zL6PZWWI0eOqHr16qpataqqVKmiIkWK6PTp05o/f74SEhLUt29fW23Tpk3Vt29fvfvuuypdurRatWqlggUL6siRI1qxYoX69u2rF154wdb/NWvWaPjw4Vq/fr1q166tAwcO6Msvv5Snp6emT59+0xB7vdmzZ6tBgwZq3769xo0bp/vuu08eHh46dOiQNmzYoJMnT2ZJAASyVfZfeArAzfzyyy/mySefNKVKlTIeHh7Gzc3NBAcHm44dO5ply5bZ1d7sUqbGGPPbb7+ZNm3aGH9/f+Pi4mKCgoJMnz597G6OZ8y1m1k988wzplKlSsbPz894eHiY0qVLm969e9td2vPPP/80ffr0MdWrVzf58+c3bm5upmTJkqZr165mx44dt7y8Fy9eNHny5DGSTM+ePVOtOXHihHnyySdN4cKFjbu7u6lcubKZOHGi2bdvn5Fkunbtald/KzfIM+bapXnr1atnPDw8TL58+czjjz9uDh48mOp04uPjzZtvvmlKly5t3NzcTPHixc1LL71kLly4kOblOt9++21TunRp4+LiYrt5WrK0xrl48aJ5/fXXTZkyZWz3rmjSpEmKG20Z898lZZNvZna96dOnG0l2N+VLy9KlS02XLl1M2bJlTZ48eYy3t7epUKGCefXVV1OsL8YYExMTY/r06WNKlixpXF1dTb58+Uzt2rXNmDFjUtTOnz/fhIeHmzx58hg3NzdTuXJlM3r06BQ3NEu+ZOqN7+mNli1bZpo3b24KFChgXFxcTKFChUxYWJgZNmyY7X4Z8fHxZtSoUaZx48amaNGixtXV1QQEBJh69eqZWbNm3fRyo8m2b99uGjdubPLmzWvy5MljwsPDzfLly1N9bW/W/xvf/2S3sg6mJbM3yEt24cIF06NHDxMYGGi7zG1yTXqfn/SW+Z9//jF9+vSxfV58fHxM+fLlzVNPPWVWrFhhq8voupfR76m0nDlzxgwZMsTUq1fPBAYGGldXV1O4cGHz8MMPmyVLlqQ6zldffWUaNGhgfH19bd/HnTt3Nn/88Ydd3cmTJ83zzz9vgoKCjIuLi/H39zdt2rRJ9bKwGfnu/vfff83AgQNNpUqVjIeHh/H29jalS5c2HTt2NF9//fVNlxXIaQ7GXLfPHQAAAAAygXMsAAAAAFhGsAAAAABgGcECAAAAgGUECwAAAACWESwAAAAAWEawAAAAAGDZPX+DvKSkJB09elR58uSRg4NDTncHAAAAyDWMMbpw4YIKFy5805s+3vPB4ujRoypWrFhOdwMAAADItQ4fPqyiRYumW3PPB4s8efJIuvZi+fj45HBvAAAAgNzj/PnzKlasmG2bOT33fLBIPvzJx8eHYAEAAACkIiOnDHDyNgAAAADLCBYAAAAALCNYAAAAALCMYAEAAADAMoIFAAAAAMsIFgAAAAAsI1gAAAAAsIxgAQAAAMAyggUAAAAAywgWAAAAACwjWCDXmzhxooKDg+Xu7q7atWtr06ZNadYmJCTojTfeUEhIiNzd3VW1alUtXbo0zfqRI0fKwcFBL7zwgl37M888o5CQEHl4eKhAgQJ69NFHtWvXLruaX375RY0aNZKfn5/y5s2ryMhI/frrr5aWFQAA4E5FsECuNnfuXEVHR2vw4MHaunWrqlatqsjISJ04cSLV+oEDB+rDDz/U+++/rz///FPPPvusWrVqpW3btqWo/eWXX/Thhx+qSpUqKYbVqFFD06dP186dO/X999/LGKPGjRsrMTFRknTx4kU9/PDDKl68uH7++WetW7dOefLkUWRkpBISErL2RQAAIBNy4oe52NhY9erVS/nz55e3t7dat26t48eP24bPmDFDDg4OqT7S+tuOO4i5x507d85IMufOncvpriAVoaGhplevXrbniYmJpnDhwmbEiBGp1gcGBpoJEybYtT322GOmU6dOdm0XLlwwpUuXNsuWLTPh4eGmT58+6fbj119/NZLMnj17jDHG/PLLL0aSOXTokK3mt99+M5LM33//fSuLCABAlpszZ45xdXU106ZNMzt27DA9evQwfn5+5vjx46nW9+vXzxQuXNgsWrTI7N2710yaNMm4u7ubrVu3pqjdtGmTCQ4ONlWqVEnx9/PZZ581xYoVMytWrDCbN282999/v3nggQdswy9fvmyOHTtm94iMjDTh4eFZufjIQreyrcweC+Ra8fHx2rJliyIiImxtjo6OioiI0IYNG1IdJy4uTu7u7nZtHh4eWrdunV1br1691KxZM7tpp+XSpUuaPn26SpQooWLFikmSypYtq/z582vq1KmKj4/XlStXNHXqVJUvX17BwcG3uKQAAGStMWPGqEePHoqKilKFChU0efJkeXp6atq0aanWf/bZZ3r11VfVtGlTlSxZUv/73//UtGlTjR492q7u4sWL6tSpk6ZMmaK8efPaDTt37pymTp2q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NbNmzZIkPfHEE5bmdeXKFTk7Z++fmkmTJsnf31/dunWza69Xr56uXLkiV1fXbJ1/WooWLaoRI0akaC9cuHAO9AYAsh/BAgBuwf79+9W+fXsFBQVp5cqVCgwMtA3r1auX9uzZo0WLFqU5flJSkuLj4+Xu7n47upumTp066fXXX9fGjRt1//33pxg+e/ZslStXTvfdd5+l+eTkcjo6Oubo/H19fS0HMwC4k3AoFADcgrffflsXL17U1KlT7UJFslKlSqlPnz625w4ODurdu7dmzpypihUrys3NTUuXLpUkbdu2TU2aNJGPj4+8vb3VqFEjbdy40W56CQkJGjp0qEqXLi13d3flz59fdevW1bJly2w1MTExioqKUtGiReXm5qbAwEA9+uijOnDgQJrL0alTJ0n/7Zm43pYtW7R7925bzfz589WsWTMVLlxYbm5uCgkJ0bBhw5SYmHjT1yu1cyzWrVunWrVqyd3dXSEhIfrwww9THXf69Olq2LChChYsKDc3N1WoUEEffPCBXU1wcLB27NihNWvW2A41Sj4fIa1zDr788kvVqFFDHh4e8vf31xNPPKEjR47Y1XTr1k3e3t46cuSIWrZsKW9vbxUoUEB9+/bN0HJnxNWrVzVs2DCFhITIzc1NwcHBevXVVxUXF3fTcf/55x+1bNlSXl5eKliwoF588cVUx/v777/VunVrFSpUSO7u7ipatKjat2+vc+fOZckyAMD12GMBALdg4cKFKlmypB544IEMj7Ny5Up98cUX6t27t/z9/W0bww8++KB8fHzUr18/ubi46MMPP1T9+vW1Zs0a1a5dW9K1k5pHjBihp556SqGhoTp//rw2b96srVu36qGHHpIktW7dWjt27NBzzz2n4OBgnThxQsuWLdOhQ4dSnEydrESJEnrggQf0xRdfaOzYsXJycrINSw4bHTt2lCTNmDFD3t7eio6Olre3t1auXKlBgwbp/Pnzeuedd27p9fv999/VuHFjFShQQEOGDNHVq1c1ePBgBQQEpKj94IMPVLFiRbVo0ULOzs5auHChevbsqaSkJPXq1UuSNG7cOD333HPy9vbWa6+9JkmpTivZjBkzFBUVpVq1amnEiBE6fvy4xo8fr59++knbtm2Tn5+frTYxMVGRkZGqXbu23n33XS1fvlyjR49WSEiI/ve//910WRMTE3Xq1Cm7Nnd3d3l7e0uSnnrqKX3yySdq06aNXnrpJf38888aMWKEdu7cqW+++SbN6V65ckWNGjXSoUOH9Pzzz6tw4cL67LPPtHLlSru6+Ph4RUZGKi4uTs8995wKFSqkI0eO6LvvvtPZs2fl6+t702UAgFtiAAAZcu7cOSPJPProoxkeR5JxdHQ0O3bssGtv2bKlcXV1NXv37rW1HT161OTJk8fUq1fP1la1alXTrFmzNKd/5swZI8m88847GV+Q/zdx4kQjyXz//fe2tsTERFOkSBETFhZma7t8+XKKcZ955hnj6elpYmNjbW1du3Y1QUFBdnWSzODBg23PW7Zsadzd3c3BgwdtbX/++adxcnIyN/5JSm2+kZGRpmTJknZtFStWNOHh4SlqV61aZSSZVatWGWOMiY+PNwULFjSVKlUyV65csdV99913RpIZNGiQ3bJIMm+88YbdNKtXr25q1KiRYl43Cg8PN5JSPLp27WqMMWb79u1Gknnqqafsxuvbt6+RZFauXGk3reuXb9y4cUaS+eKLL2xtly5dMqVKlbJb3m3bthlJ5ssvv7xpfwEgK3AoFABk0Pnz5yVJefLkuaXxwsPDVaFCBdvzxMRE/fDDD2rZsqVKlixpaw8MDFTHjh21bt0627z8/Py0Y8cO/f3336lO28PDQ66urlq9erXOnDlzS/1q166dXFxc7A6HWrNmjY4cOWI7DCp5HskuXLigU6dO6cEHH9Tly5dv6QpHiYmJ+v7779WyZUsVL17c1l6+fHlFRkamumzJzp07p1OnTik8PFz79u3L1KE8mzdv1okTJ9SzZ0+7cy+aNWumcuXKpXpuzLPPPmv3/MEHH9S+ffsyNL/g4GAtW7bM7tGvXz9J0uLFiyUpxVW3XnrpJUlK9zydxYsXKzAwUG3atLG1eXp66umnn7arS94j8f333+vy5csZ6jMAWEGwAIAM8vHxkXRt4/pWlChRwu75yZMndfnyZZUtWzZFbfny5ZWUlKTDhw9Lkt544w2dPXtWZcqUUeXKlfXyyy/rt99+s9W7ublp1KhRWrJkiQICAlSvXj29/fbbiomJsdWcO3dOMTExtse///4rScqfP78iIyP1zTffKDY2VtK1w6CcnZ3Vtm1b2/g7duxQq1at5OvrKx8fHxUoUMB2UvKtbOCfPHlSV65cUenSpVMMS+21+OmnnxQRESEvLy/5+fmpQIECevXVV295vskOHjyY5rzKlStnG57M3d1dBQoUsGvLmzdvhgOcl5eXIiIi7B7JAfPgwYNydHRUqVKl7MYpVKiQ/Pz8UvTlxuUoVapUivt+3LhcJUqUUHR0tD7++GP5+/srMjJSEydO5PwKANmGYAEAGeTj46PChQvrjz/+uKXxrv/l/VbVq1dPe/fu1bRp01SpUiV9/PHHuu+++/Txxx/bal544QX99ddfGjFihNzd3fX666+rfPny2rZtmySpT58+CgwMtD0ee+wx27hPPPGEzp8/r++++07x8fH66quvbOdASNLZs2cVHh6uX3/9VW+88YYWLlyoZcuWadSoUZKuXeUqO+zdu1eNGjXSqVOnNGbMGC1atEjLli3Tiy++mK3zvd71551kl6y+KeCNRo8erd9++02vvvqqrly5oueff14VK1bUP//8k63zBXBvIlgAwC145JFHtHfvXm3YsCHT0yhQoIA8PT21e/fuFMN27dolR0dHFStWzNaWL18+RUVFafbs2Tp8+LCqVKmS4kpLISEheumll/TDDz/ojz/+UHx8vEaPHi1J6tevn93hOMntktSiRQvlyZNHs2bN0pIlS3TmzBm7w6BWr16t06dPa8aMGerTp48eeeQRRUREKG/evJlabg8Pj1QP67rxtVi4cKHi4uK0YMECPfPMM2ratKkiIiJSDWkZ3TgPCgpKdV7JbcnDb4egoCAlJSWleC2OHz+us2fPptuXoKAg7d27V8YYu/bUlkuSKleurIEDB+rHH3/U2rVrdeTIEU2ePNn6QgDADQgWAHAL+vXrJy8vLz311FM6fvx4iuF79+7V+PHj052Gk5OTGjdurPnz59tdEvb48eOaNWuW6tatazvs6vTp03bjent7q1SpUrZLi16+fNl2GFOykJAQ5cmTx1ZToUIFu8NxatSoYav18PBQq1attHjxYn3wwQfy8vLSo48+atdXSXYbsfHx8Zo0aVK6y5jWckdGRurbb7/VoUOHbO07d+7U999/n6L2xvmeO3dO06dPTzFdLy8vnT179qbzr1mzpgoWLKjJkyfbXZp1yZIl2rlzp5o1a3ari5RpTZs2lXTtqlbXGzNmjCSl25emTZvq6NGjmjdvnq3t8uXLKW7KeP78eV29etWurXLlynJ0dMzQJW0B4FZxuVkAuAUhISGaNWuW2rVrp/Lly9vdeXv9+vX68ssvU9wBOjXDhw/XsmXLVLduXfXs2VPOzs768MMPFRcXp7fffttWV6FCBdWvX181atRQvnz5tHnzZs2bN0+9e/eWJP31119q1KiR2rZtqwoVKsjZ2VnffPONjh8/rvbt22domZ544gl9+umn+v7779WpUyd5eXnZhj3wwAPKmzevunbtqueff14ODg767LPPUvxanlFDhw7V0qVL9eCDD6pnz566evWq3n//fVWsWNHu3JHGjRvL1dVVzZs31zPPPKOLFy9qypQpKliwoI4dO2Y3zRo1auiDDz7Q8OHDVapUKRUsWFANGzZMMW8XFxeNGjVKUVFRCg8PV4cOHWyXmw0ODrYdZnU7VK1aVV27dtVHH31kO9xs06ZN+uSTT9SyZUs1aNAgzXF79OihCRMmqEuXLtqyZYsCAwP12WefydPT065u5cqV6t27tx5//HGVKVNGV69e1WeffSYnJye1bt06uxcRwL0oZy9KBQB3pr/++sv06NHDBAcHG1dXV5MnTx5Tp04d8/7779tdglWS6dWrV6rT2Lp1q4mMjDTe3t7G09PTNGjQwKxfv96uZvjw4SY0NNT4+fkZDw8PU65cOfPmm2+a+Ph4Y4wxp06dMr169TLlypUzXl5extfX19SuXdvuUqQ3c/XqVRMYGGgkmcWLF6cY/tNPP5n777/feHh4mMKFC5t+/fqZ77//3u7SpsZk7HKzxhizZs0aU6NGDePq6mpKlixpJk+ebAYPHpzicrMLFiwwVapUMe7u7iY4ONiMGjXKTJs2zUgy+/fvt9XFxMSYZs2amTx58hhJtkuz3ni52WRz58411atXN25ubiZfvnymU6dO5p9//rGr6dq1q/Hy8krxWqTWz9SEh4ebihUrpluTkJBghg4dakqUKGFcXFxMsWLFzIABA+zWn+Rp3Xg53YMHD5oWLVoYT09P4+/vb/r06WOWLl1qt7z79u0zTz75pAkJCTHu7u4mX758pkGDBmb58uU37T8AZIaDMZn82QkAAAAA/h/nWAAAAACwjGABAAAAwDKCBQAAAADLCBYAAAAALCNYAAAAALCMYAEAAADAMoIFAAAAAMsIFgAAAAAsI1gAAAAAsIxgAQAAAMAyggUAAAAAywgWAAAAACwjWAAAAACw7P8AB363t3f9THEAAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        }
      ]
    }
  ],
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}