diff --git a/HandwrittenDigitRecognition_SVM.ipynb b/HandwrittenDigitRecognition_SVM.ipynb new file mode 100644 index 0000000..aebd2e6 --- /dev/null +++ b/HandwrittenDigitRecognition_SVM.ipynb @@ -0,0 +1,1397 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "<a href=\"https://colab.research.google.com/github/Orrm23/DeepSeek-Coder/blob/main/HandwrittenDigitRecognition_SVM.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "l-FmNW1v-wEx" + }, + "source": [ + "#Handwritten Digit Recognition | SVM**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "aPZ-cSea-8Pz" + }, + "source": [ + "### *Importing Basic Libraries*" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "KgOTIpQe-Sij" + }, + "source": [ + "import numpy as np\n", + "from sklearn.datasets import load_digits" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tAEv1LgB_OxV" + }, + "source": [ + "### *Load Dataset*\n", + "" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mEkoGFM3_Rl6" + }, + "source": [ + "dataset = load_digits()" + ], + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fIw9RCUrACG9" + }, + "source": [ + "### *Summarize Dataset*" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "OKcoy2EJAFj2", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "6ca48cd3-8140-4383-f915-8586948f2b80" + }, + "source": [ + "print(dataset.data)\n", + "print(dataset.target)\n", + "\n", + "print(dataset.data.shape)\n", + "print(dataset.images.shape)\n", + "\n", + "dataimageLength = len(dataset.images)\n", + "print(dataimageLength)" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[ 0. 0. 5. ... 0. 0. 0.]\n", + " [ 0. 0. 0. ... 10. 0. 0.]\n", + " [ 0. 0. 0. ... 16. 9. 0.]\n", + " ...\n", + " [ 0. 0. 1. ... 6. 0. 0.]\n", + " [ 0. 0. 2. ... 12. 0. 0.]\n", + " [ 0. 0. 10. ... 12. 1. 0.]]\n", + "[0 1 2 ... 8 9 8]\n", + "(1797, 64)\n", + "(1797, 8, 8)\n", + "1797\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "epmSBzRtCgdh" + }, + "source": [ + "### *Visualize the Dataset*" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "sGYJfmAvCj3a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 593 + }, + "outputId": "992865b4-a1ad-4ebd-91c9-1918361c48b6" + }, + "source": [ + "n=7 #No. of Sample out of Samples total 1797\n", + "\n", + "import matplotlib.pyplot as plt\n", + "plt.gray()\n", + "plt.matshow(dataset.images[n])\n", + "plt.show()\n", + "\n", + "dataset.images[n]" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "<Figure size 640x480 with 0 Axes>" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "<Figure size 480x480 with 1 Axes>" + ], + "image/png": "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\n" + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 0., 0., 7., 8., 13., 16., 15., 1.],\n", + " [ 0., 0., 7., 7., 4., 11., 12., 0.],\n", + " [ 0., 0., 0., 0., 8., 13., 1., 0.],\n", + " [ 0., 4., 8., 8., 15., 15., 6., 0.],\n", + " [ 0., 2., 11., 15., 15., 4., 0., 0.],\n", + " [ 0., 0., 0., 16., 5., 0., 0., 0.],\n", + " [ 0., 0., 9., 15., 1., 0., 0., 0.],\n", + " [ 0., 0., 13., 5., 0., 0., 0., 0.]])" + ] + }, + "metadata": {}, + "execution_count": 5 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "woyBgG8hGXI-" + }, + "source": [ + "### *Segregate Dataset into X(Input/IndependentVariable) & Y(Output/DependentVariable)*\n", + "\n", + "### *Input - Pixel | Output - Class*" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "OYBk3bVmGbxW", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "7c8e67fc-c7d2-46b7-faea-74357fe4eba2" + }, + "source": [ + "X = dataset.images.reshape((dataimageLength,-1))\n", + "X" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 0., 0., 5., ..., 0., 0., 0.],\n", + " [ 0., 0., 0., ..., 10., 0., 0.],\n", + " [ 0., 0., 0., ..., 16., 9., 0.],\n", + " ...,\n", + " [ 0., 0., 1., ..., 6., 0., 0.],\n", + " [ 0., 0., 2., ..., 12., 0., 0.],\n", + " [ 0., 0., 10., ..., 12., 1., 0.]])" + ] + }, + "metadata": {}, + "execution_count": 6 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Of_82fBDHC4R", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "3f1ff0b9-0774-4f1d-c2b1-7815cd863753" + }, + "source": [ + "Y = dataset.target\n", + "Y" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0, 1, 2, ..., 8, 9, 8])" + ] + }, + "metadata": {}, + "execution_count": 7 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QbO0qzzeHM7d" + }, + "source": [ + "### *Splitting Dataset into Train & Test*" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "1760lRsBHNw2", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "6f87d4c7-8adf-4809-a053-dd8e776af375" + }, + "source": [ + "from sklearn.model_selection import train_test_split\n", + "X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size = 0.25, random_state = 0)\n", + "print(X_train.shape)\n", + "print(X_test.shape)" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(1347, 64)\n", + "(450, 64)\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "e8DmcF1oHzTS" + }, + "source": [ + "### *Training*" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "uI79KiPYH3Ud", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 80 + }, + "outputId": "9ab5c2bf-7039-4578-95ba-fc5e2f2edda3" + }, + "source": [ + "from sklearn import svm\n", + "model = svm.SVC(kernel='linear')\n", + "model.fit(X_train,y_train)" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "SVC(kernel='linear')" + ], + "text/html": [ + "<style>#sk-container-id-1 {\n", + " /* Definition of color scheme common for light and dark mode */\n", + " --sklearn-color-text: #000;\n", + " --sklearn-color-text-muted: #666;\n", + " --sklearn-color-line: gray;\n", + " /* Definition of color scheme for unfitted estimators */\n", + " --sklearn-color-unfitted-level-0: #fff5e6;\n", + " --sklearn-color-unfitted-level-1: #f6e4d2;\n", + " --sklearn-color-unfitted-level-2: #ffe0b3;\n", + " --sklearn-color-unfitted-level-3: chocolate;\n", + " /* Definition of color scheme for fitted estimators */\n", + " --sklearn-color-fitted-level-0: #f0f8ff;\n", + " --sklearn-color-fitted-level-1: #d4ebff;\n", + " --sklearn-color-fitted-level-2: #b3dbfd;\n", + " --sklearn-color-fitted-level-3: cornflowerblue;\n", + "\n", + " /* Specific color for light theme */\n", + " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", + " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n", + " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", + " --sklearn-color-icon: #696969;\n", + "\n", + " @media (prefers-color-scheme: dark) {\n", + " /* Redefinition of color scheme for dark theme */\n", + " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", + " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n", + " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", + " --sklearn-color-icon: #878787;\n", + " }\n", + "}\n", + "\n", + "#sk-container-id-1 {\n", + " color: var(--sklearn-color-text);\n", + "}\n", + "\n", + "#sk-container-id-1 pre {\n", + " padding: 0;\n", + "}\n", + "\n", + "#sk-container-id-1 input.sk-hidden--visually {\n", + " border: 0;\n", + " clip: rect(1px 1px 1px 1px);\n", + " clip: rect(1px, 1px, 1px, 1px);\n", + " height: 1px;\n", + " margin: -1px;\n", + " overflow: hidden;\n", + " padding: 0;\n", + " position: absolute;\n", + " width: 1px;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-dashed-wrapped {\n", + " border: 1px dashed var(--sklearn-color-line);\n", + " margin: 0 0.4em 0.5em 0.4em;\n", + " box-sizing: border-box;\n", + " padding-bottom: 0.4em;\n", + " background-color: var(--sklearn-color-background);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-container {\n", + " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", + " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", + " so we also need the `!important` here to be able to override the\n", + " default hidden behavior on the sphinx rendered scikit-learn.org.\n", + " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", + " display: inline-block !important;\n", + " position: relative;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-text-repr-fallback {\n", + " display: none;\n", + "}\n", + "\n", + "div.sk-parallel-item,\n", + "div.sk-serial,\n", + "div.sk-item {\n", + " /* draw centered vertical line to link estimators */\n", + " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", + " background-size: 2px 100%;\n", + " background-repeat: no-repeat;\n", + " background-position: center center;\n", + "}\n", + "\n", + "/* Parallel-specific style estimator block */\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item::after {\n", + " content: \"\";\n", + " width: 100%;\n", + " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", + " flex-grow: 1;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel {\n", + " display: flex;\n", + " align-items: stretch;\n", + " justify-content: center;\n", + " background-color: var(--sklearn-color-background);\n", + " position: relative;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item {\n", + " display: flex;\n", + " flex-direction: column;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n", + " align-self: flex-end;\n", + " width: 50%;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n", + " align-self: flex-start;\n", + " width: 50%;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n", + " width: 0;\n", + "}\n", + "\n", + "/* Serial-specific style estimator block */\n", + "\n", + "#sk-container-id-1 div.sk-serial {\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: center;\n", + " background-color: var(--sklearn-color-background);\n", + " padding-right: 1em;\n", + " padding-left: 1em;\n", + "}\n", + "\n", + "\n", + "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", + "clickable and can be expanded/collapsed.\n", + "- Pipeline and ColumnTransformer use this feature and define the default style\n", + "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", + "*/\n", + "\n", + "/* Pipeline and ColumnTransformer style (default) */\n", + "\n", + "#sk-container-id-1 div.sk-toggleable {\n", + " /* Default theme specific background. It is overwritten whether we have a\n", + " specific estimator or a Pipeline/ColumnTransformer */\n", + " background-color: var(--sklearn-color-background);\n", + "}\n", + "\n", + "/* Toggleable label */\n", + "#sk-container-id-1 label.sk-toggleable__label {\n", + " cursor: pointer;\n", + " display: flex;\n", + " width: 100%;\n", + " margin-bottom: 0;\n", + " padding: 0.5em;\n", + " box-sizing: border-box;\n", + " text-align: center;\n", + " align-items: start;\n", + " justify-content: space-between;\n", + " gap: 0.5em;\n", + "}\n", + "\n", + "#sk-container-id-1 label.sk-toggleable__label .caption {\n", + " font-size: 0.6rem;\n", + " font-weight: lighter;\n", + " color: var(--sklearn-color-text-muted);\n", + "}\n", + "\n", + "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n", + " /* Arrow on the left of the label */\n", + " content: \"▸\";\n", + " float: left;\n", + " margin-right: 0.25em;\n", + " color: var(--sklearn-color-icon);\n", + "}\n", + "\n", + "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n", + " color: var(--sklearn-color-text);\n", + "}\n", + "\n", + "/* Toggleable content - dropdown */\n", + "\n", + "#sk-container-id-1 div.sk-toggleable__content {\n", + " max-height: 0;\n", + " max-width: 0;\n", + " overflow: hidden;\n", + " text-align: left;\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-toggleable__content.fitted {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-toggleable__content pre {\n", + " margin: 0.2em;\n", + " border-radius: 0.25em;\n", + " color: var(--sklearn-color-text);\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", + " /* Expand drop-down */\n", + " max-height: 200px;\n", + " max-width: 100%;\n", + " overflow: auto;\n", + "}\n", + "\n", + "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", + " content: \"▾\";\n", + "}\n", + "\n", + "/* Pipeline/ColumnTransformer-specific style */\n", + "\n", + "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "/* Estimator-specific style */\n", + "\n", + "/* Colorize estimator box */\n", + "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n", + "#sk-container-id-1 div.sk-label label {\n", + " /* The background is the default theme color */\n", + " color: var(--sklearn-color-text-on-default-background);\n", + "}\n", + "\n", + "/* On hover, darken the color of the background */\n", + "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "/* Label box, darken color on hover, fitted */\n", + "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "/* Estimator label */\n", + "\n", + "#sk-container-id-1 div.sk-label label {\n", + " font-family: monospace;\n", + " font-weight: bold;\n", + " display: inline-block;\n", + " line-height: 1.2em;\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-label-container {\n", + " text-align: center;\n", + "}\n", + "\n", + "/* Estimator-specific */\n", + "#sk-container-id-1 div.sk-estimator {\n", + " font-family: monospace;\n", + " border: 1px dotted var(--sklearn-color-border-box);\n", + " border-radius: 0.25em;\n", + " box-sizing: border-box;\n", + " margin-bottom: 0.5em;\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-estimator.fitted {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + "/* on hover */\n", + "#sk-container-id-1 div.sk-estimator:hover {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "#sk-container-id-1 div.sk-estimator.fitted:hover {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", + "\n", + "/* Common style for \"i\" and \"?\" */\n", + "\n", + ".sk-estimator-doc-link,\n", + "a:link.sk-estimator-doc-link,\n", + "a:visited.sk-estimator-doc-link {\n", + " float: right;\n", + " font-size: smaller;\n", + " line-height: 1em;\n", + " font-family: monospace;\n", + " background-color: var(--sklearn-color-background);\n", + " border-radius: 1em;\n", + " height: 1em;\n", + " width: 1em;\n", + " text-decoration: none !important;\n", + " margin-left: 0.5em;\n", + " text-align: center;\n", + " /* unfitted */\n", + " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", + " color: var(--sklearn-color-unfitted-level-1);\n", + "}\n", + "\n", + ".sk-estimator-doc-link.fitted,\n", + "a:link.sk-estimator-doc-link.fitted,\n", + "a:visited.sk-estimator-doc-link.fitted {\n", + " /* fitted */\n", + " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", + " color: var(--sklearn-color-fitted-level-1);\n", + "}\n", + "\n", + "/* On hover */\n", + "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", + ".sk-estimator-doc-link:hover,\n", + "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", + ".sk-estimator-doc-link:hover {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-3);\n", + " color: var(--sklearn-color-background);\n", + " text-decoration: none;\n", + "}\n", + "\n", + "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", + ".sk-estimator-doc-link.fitted:hover,\n", + "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", + ".sk-estimator-doc-link.fitted:hover {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-3);\n", + " color: var(--sklearn-color-background);\n", + " text-decoration: none;\n", + "}\n", + "\n", + "/* Span, style for the box shown on hovering the info icon */\n", + ".sk-estimator-doc-link span {\n", + " display: none;\n", + " z-index: 9999;\n", + " position: relative;\n", + " font-weight: normal;\n", + " right: .2ex;\n", + " padding: .5ex;\n", + " margin: .5ex;\n", + " width: min-content;\n", + " min-width: 20ex;\n", + " max-width: 50ex;\n", + " color: var(--sklearn-color-text);\n", + " box-shadow: 2pt 2pt 4pt #999;\n", + " /* unfitted */\n", + " background: var(--sklearn-color-unfitted-level-0);\n", + " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", + "}\n", + "\n", + ".sk-estimator-doc-link.fitted span {\n", + " /* fitted */\n", + " background: var(--sklearn-color-fitted-level-0);\n", + " border: var(--sklearn-color-fitted-level-3);\n", + "}\n", + "\n", + ".sk-estimator-doc-link:hover span {\n", + " display: block;\n", + "}\n", + "\n", + "/* \"?\"-specific style due to the `<a>` HTML tag */\n", + "\n", + "#sk-container-id-1 a.estimator_doc_link {\n", + " float: right;\n", + " font-size: 1rem;\n", + " line-height: 1em;\n", + " font-family: monospace;\n", + " background-color: var(--sklearn-color-background);\n", + " border-radius: 1rem;\n", + " height: 1rem;\n", + " width: 1rem;\n", + " text-decoration: none;\n", + " /* unfitted */\n", + " color: var(--sklearn-color-unfitted-level-1);\n", + " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", + "}\n", + "\n", + "#sk-container-id-1 a.estimator_doc_link.fitted {\n", + " /* fitted */\n", + " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", + " color: var(--sklearn-color-fitted-level-1);\n", + "}\n", + "\n", + "/* On hover */\n", + "#sk-container-id-1 a.estimator_doc_link:hover {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-3);\n", + " color: var(--sklearn-color-background);\n", + " text-decoration: none;\n", + "}\n", + "\n", + "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-3);\n", + "}\n", + "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(kernel='linear')</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>SVC</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.svm.SVC.html\">?<span>Documentation for SVC</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>SVC(kernel='linear')</pre></div> </div></div></div></div>" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "umVph3jWO1_l" + }, + "source": [ + "### *Predicting, what the digit is from Test Data*" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Cf1TTKbAO8i9", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 535 + }, + "outputId": "cc0a3dca-d97c-4390-f1c0-6d1f52fa84c0" + }, + "source": [ + "n=13\n", + "result = model.predict(dataset.images[n].reshape((1,-1)))\n", + "plt.imshow(dataset.images[n], cmap=plt.cm.gray_r, interpolation='nearest')\n", + "print(result)\n", + "print(\"\\n\")\n", + "plt.axis('off')\n", + "plt.title('%i' %result)\n", + "plt.show()" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[3]\n", + "\n", + "\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "<ipython-input-11-e7c448382e0f>:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", + " plt.title('%i' %result)\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7LeUrxqkJP6w" + }, + "source": [ + "### *Prediction for Test Data*" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2mcLDrhzJTwh", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "c1e6ad1e-6f04-4441-deba-6d4e9c4cca64" + }, + "source": [ + "y_pred = model.predict(X_test)\n", + "print(np.concatenate((y_pred.reshape(len(y_pred),1), y_test.reshape(len(y_test),1)),1))" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[2 2]\n", + " [8 8]\n", + " [2 2]\n", + " [6 6]\n", + " [6 6]\n", + " [7 7]\n", + " [1 1]\n", + " [9 9]\n", + " [8 8]\n", + " [5 5]\n", + " [2 2]\n", + " [8 8]\n", + " [6 6]\n", + " [6 6]\n", + " [6 6]\n", + " [6 6]\n", + " [1 1]\n", + " [0 0]\n", + " [5 5]\n", + " [8 8]\n", + " [8 8]\n", + " [7 7]\n", + " [8 8]\n", + " [4 4]\n", + " [7 7]\n", + " [5 5]\n", + " [4 4]\n", + " [9 9]\n", + " [2 2]\n", + " [9 9]\n", + " [4 4]\n", + " [7 7]\n", + " [6 6]\n", + " [8 8]\n", + " [9 9]\n", + " [4 4]\n", + " [3 3]\n", + " [1 1]\n", + " [0 0]\n", + " [1 1]\n", + " [8 8]\n", + " [6 6]\n", + " [7 7]\n", + " [7 7]\n", + " [1 1]\n", + " [0 0]\n", + " [7 7]\n", + " [6 6]\n", + " [2 2]\n", + " [1 1]\n", + " [9 9]\n", + " [6 6]\n", + " [7 7]\n", + " [9 9]\n", + " [0 0]\n", + " [0 0]\n", + " [5 5]\n", + " [1 1]\n", + " [6 6]\n", + " [3 3]\n", + " [0 0]\n", + " [2 2]\n", + " [3 3]\n", + " [4 4]\n", + " [1 1]\n", + " [9 9]\n", + " [2 2]\n", + " [6 6]\n", + " [9 9]\n", + " [1 1]\n", + " [8 8]\n", + " [3 3]\n", + " [5 5]\n", + " [1 1]\n", + " [2 2]\n", + " [8 8]\n", + " [2 2]\n", + " [2 2]\n", + " [9 9]\n", + " [7 7]\n", + " [2 2]\n", + " [3 3]\n", + " [6 6]\n", + " [0 0]\n", + " [5 5]\n", + " [3 3]\n", + " [7 7]\n", + " [5 5]\n", + " [1 1]\n", + " [2 2]\n", + " [9 9]\n", + " [9 9]\n", + " [3 3]\n", + " [1 1]\n", + " [7 7]\n", + " [7 7]\n", + " [4 4]\n", + " [8 8]\n", + " [5 5]\n", + " [8 8]\n", + " [5 5]\n", + " [5 5]\n", + " [2 2]\n", + " [5 5]\n", + " [9 9]\n", + " [0 0]\n", + " [7 7]\n", + " [1 1]\n", + " [4 4]\n", + " [4 7]\n", + " [3 3]\n", + " [4 4]\n", + " [8 8]\n", + " [9 9]\n", + " [7 7]\n", + " [9 9]\n", + " [8 8]\n", + " [2 2]\n", + " [1 6]\n", + " [5 5]\n", + " [2 2]\n", + " [5 5]\n", + " [8 8]\n", + " [4 4]\n", + " [1 8]\n", + " [7 7]\n", + " [0 0]\n", + " [6 6]\n", + " [1 1]\n", + " [5 5]\n", + " [5 9]\n", + " [9 9]\n", + " [9 9]\n", + " [5 5]\n", + " [9 9]\n", + " [9 9]\n", + " [5 5]\n", + " [7 7]\n", + " [5 5]\n", + " [6 6]\n", + " [2 2]\n", + " [8 8]\n", + " [6 6]\n", + " [9 9]\n", + " [6 6]\n", + " [1 1]\n", + " [5 5]\n", + " [1 1]\n", + " [5 5]\n", + " [9 9]\n", + " [9 9]\n", + " [1 1]\n", + " [5 5]\n", + " [3 3]\n", + " [6 6]\n", + " [1 1]\n", + " [8 8]\n", + " [9 9]\n", + " [8 8]\n", + " [7 7]\n", + " [6 6]\n", + " [7 7]\n", + " [6 6]\n", + " [5 5]\n", + " [6 6]\n", + " [0 0]\n", + " [8 8]\n", + " [8 8]\n", + " [9 9]\n", + " [8 8]\n", + " [6 6]\n", + " [1 1]\n", + " [0 0]\n", + " [4 4]\n", + " [1 1]\n", + " [6 6]\n", + " [3 3]\n", + " [8 8]\n", + " [6 6]\n", + " [7 7]\n", + " [4 4]\n", + " [9 5]\n", + " [6 6]\n", + " [3 3]\n", + " [0 0]\n", + " [3 3]\n", + " [3 3]\n", + " [3 3]\n", + " [0 0]\n", + " [7 7]\n", + " [7 7]\n", + " [5 5]\n", + " [7 7]\n", + " [8 8]\n", + " [0 0]\n", + " [7 7]\n", + " [1 8]\n", + " [9 9]\n", + " [6 6]\n", + " [4 4]\n", + " [5 5]\n", + " [0 0]\n", + " [1 1]\n", + " [4 4]\n", + " [6 6]\n", + " [4 4]\n", + " [3 3]\n", + " [3 3]\n", + " [0 0]\n", + " [9 9]\n", + " [5 5]\n", + " [3 9]\n", + " [2 2]\n", + " [1 1]\n", + " [4 4]\n", + " [2 2]\n", + " [1 1]\n", + " [6 6]\n", + " [8 8]\n", + " [9 9]\n", + " [2 2]\n", + " [4 4]\n", + " [9 9]\n", + " [3 3]\n", + " [7 7]\n", + " [6 6]\n", + " [2 2]\n", + " [3 3]\n", + " [3 3]\n", + " [1 1]\n", + " [6 6]\n", + " [9 9]\n", + " [3 3]\n", + " [6 6]\n", + " [3 3]\n", + " [2 2]\n", + " [2 2]\n", + " [0 0]\n", + " [7 7]\n", + " [6 6]\n", + " [1 1]\n", + " [1 1]\n", + " [9 9]\n", + " [7 7]\n", + " [2 2]\n", + " [7 7]\n", + " [8 8]\n", + " [5 5]\n", + " [5 5]\n", + " [7 7]\n", + " [5 5]\n", + " [2 2]\n", + " [3 3]\n", + " [7 7]\n", + " [2 2]\n", + " [7 7]\n", + " [5 5]\n", + " [5 5]\n", + " [7 7]\n", + " [0 0]\n", + " [9 9]\n", + " [1 1]\n", + " [6 6]\n", + " [5 5]\n", + " [9 9]\n", + " [7 7]\n", + " [4 4]\n", + " [3 3]\n", + " [8 8]\n", + " [0 0]\n", + " [3 3]\n", + " [6 6]\n", + " [4 4]\n", + " [6 6]\n", + " [3 3]\n", + " [2 2]\n", + " [6 6]\n", + " [8 8]\n", + " [8 8]\n", + " [8 8]\n", + " [4 4]\n", + " [6 6]\n", + " [7 7]\n", + " [5 5]\n", + " [2 2]\n", + " [4 4]\n", + " [5 5]\n", + " [3 3]\n", + " [2 2]\n", + " [4 4]\n", + " [6 6]\n", + " [9 9]\n", + " [4 4]\n", + " [5 5]\n", + " [4 4]\n", + " [3 3]\n", + " [4 4]\n", + " [6 6]\n", + " [2 2]\n", + " [9 9]\n", + " [0 0]\n", + " [1 1]\n", + " [7 7]\n", + " [2 2]\n", + " [0 0]\n", + " [9 9]\n", + " [6 6]\n", + " [0 0]\n", + " [4 4]\n", + " [2 2]\n", + " [0 0]\n", + " [7 7]\n", + " [9 9]\n", + " [8 8]\n", + " [5 5]\n", + " [4 4]\n", + " [8 8]\n", + " [2 2]\n", + " [8 8]\n", + " [4 4]\n", + " [3 3]\n", + " [7 7]\n", + " [2 2]\n", + " [6 6]\n", + " [9 9]\n", + " [1 1]\n", + " [5 5]\n", + " [1 1]\n", + " [0 0]\n", + " [8 8]\n", + " [2 2]\n", + " [8 1]\n", + " [9 9]\n", + " [5 5]\n", + " [6 6]\n", + " [2 8]\n", + " [2 2]\n", + " [7 7]\n", + " [2 2]\n", + " [1 1]\n", + " [5 5]\n", + " [1 1]\n", + " [6 6]\n", + " [4 4]\n", + " [5 5]\n", + " [0 0]\n", + " [9 9]\n", + " [4 4]\n", + " [1 1]\n", + " [1 1]\n", + " [7 7]\n", + " [0 0]\n", + " [8 8]\n", + " [9 9]\n", + " [0 0]\n", + " [5 5]\n", + " [4 4]\n", + " [3 3]\n", + " [8 8]\n", + " [8 8]\n", + " [6 6]\n", + " [5 5]\n", + " [3 3]\n", + " [4 4]\n", + " [4 4]\n", + " [4 4]\n", + " [8 8]\n", + " [8 8]\n", + " [7 7]\n", + " [0 0]\n", + " [9 9]\n", + " [6 6]\n", + " [3 3]\n", + " [5 5]\n", + " [2 2]\n", + " [3 3]\n", + " [0 0]\n", + " [8 8]\n", + " [8 3]\n", + " [3 3]\n", + " [1 1]\n", + " [3 3]\n", + " [3 3]\n", + " [0 0]\n", + " [0 0]\n", + " [4 4]\n", + " [6 6]\n", + " [0 0]\n", + " [7 7]\n", + " [7 7]\n", + " [6 6]\n", + " [2 2]\n", + " [0 0]\n", + " [4 4]\n", + " [4 4]\n", + " [2 2]\n", + " [3 3]\n", + " [7 7]\n", + " [1 8]\n", + " [9 9]\n", + " [8 8]\n", + " [6 6]\n", + " [8 8]\n", + " [5 5]\n", + " [6 6]\n", + " [2 2]\n", + " [2 2]\n", + " [3 3]\n", + " [1 1]\n", + " [7 7]\n", + " [7 7]\n", + " [8 8]\n", + " [0 0]\n", + " [3 3]\n", + " [3 3]\n", + " [2 2]\n", + " [1 1]\n", + " [5 5]\n", + " [5 5]\n", + " [9 9]\n", + " [1 1]\n", + " [3 3]\n", + " [7 7]\n", + " [0 0]\n", + " [0 0]\n", + " [7 7]\n", + " [0 0]\n", + " [4 4]\n", + " [5 5]\n", + " [8 9]\n", + " [9 3]\n", + " [3 3]\n", + " [4 4]\n", + " [3 3]\n", + " [1 1]\n", + " [8 8]\n", + " [9 9]\n", + " [8 8]\n", + " [3 3]\n", + " [6 6]\n", + " [2 2]\n", + " [1 1]\n", + " [6 6]\n", + " [2 2]\n", + " [1 1]\n", + " [7 7]\n", + " [5 5]\n", + " [5 5]\n", + " [1 1]\n", + " [9 9]]\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gfNRnb-MJi9P" + }, + "source": [ + "### *Evaluate Model - Accuracy Score*" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "irsPBj9KJnl-", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "9fcd5e90-df75-4aee-d182-d3c938032b54" + }, + "source": [ + "from sklearn.metrics import accuracy_score\n", + "print(\"Accuracy of the Model: {0}%\".format(accuracy_score(y_test, y_pred)*100))" + ], + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Accuracy of the Model: 97.11111111111111%\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "C95vmesVLUrO" + }, + "source": [ + "### *Play with the Different Method*" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "BVv7Pux6LdpH", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "cb5ae2d4-1583-4f09-8641-98028ef13223" + }, + "source": [ + "from sklearn import svm\n", + "model1 = svm.SVC(kernel='linear')\n", + "model2 = svm.SVC(kernel='rbf')\n", + "model3 = svm.SVC(gamma=0.001)\n", + "model4 = svm.SVC(gamma=0.001,C=0.1)\n", + "\n", + "model1.fit(X_train,y_train)\n", + "model2.fit(X_train,y_train)\n", + "model3.fit(X_train,y_train)\n", + "model4.fit(X_train,y_train)\n", + "\n", + "y_predModel1 = model1.predict(X_test)\n", + "y_predModel2 = model2.predict(X_test)\n", + "y_predModel3 = model3.predict(X_test)\n", + "y_predModel4 = model4.predict(X_test)\n", + "\n", + "print(\"Accuracy of the Model 1: {0}%\".format(accuracy_score(y_test, y_predModel1)*100))\n", + "print(\"Accuracy of the Model 2: {0}%\".format(accuracy_score(y_test, y_predModel2)*100))\n", + "print(\"Accuracy of the Model 3: {0}%\".format(accuracy_score(y_test, y_predModel3)*100))\n", + "print(\"Accuracy of the Model 4: {0}%\".format(accuracy_score(y_test, y_predModel4)*100))" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Accuracy of the Model 1: 97.11111111111111%\n", + "Accuracy of the Model 2: 99.11111111111111%\n", + "Accuracy of the Model 3: 99.55555555555556%\n", + "Accuracy of the Model 4: 96.66666666666667%\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Z22DqlQn_DaS" + }, + "source": [] + } + ] +} \ No newline at end of file