{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "38f72baa",
   "metadata": {},
   "source": [
    "# Importing libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "54625267",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "from sklearn.model_selection import cross_validate\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn import tree, model_selection\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import confusion_matrix, classification_report, accuracy_score"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c9a0c79e",
   "metadata": {},
   "source": [
    "# Loading dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ec13f5ae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>label</th>\n",
       "      <th>pixel1</th>\n",
       "      <th>pixel2</th>\n",
       "      <th>pixel3</th>\n",
       "      <th>pixel4</th>\n",
       "      <th>pixel5</th>\n",
       "      <th>pixel6</th>\n",
       "      <th>pixel7</th>\n",
       "      <th>pixel8</th>\n",
       "      <th>pixel9</th>\n",
       "      <th>...</th>\n",
       "      <th>pixel775</th>\n",
       "      <th>pixel776</th>\n",
       "      <th>pixel777</th>\n",
       "      <th>pixel778</th>\n",
       "      <th>pixel779</th>\n",
       "      <th>pixel780</th>\n",
       "      <th>pixel781</th>\n",
       "      <th>pixel782</th>\n",
       "      <th>pixel783</th>\n",
       "      <th>pixel784</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>9</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30</td>\n",
       "      <td>43</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 785 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   label  pixel1  pixel2  pixel3  pixel4  pixel5  pixel6  pixel7  pixel8  \\\n",
       "0      2       0       0       0       0       0       0       0       0   \n",
       "1      9       0       0       0       0       0       0       0       0   \n",
       "2      6       0       0       0       0       0       0       0       5   \n",
       "3      0       0       0       0       1       2       0       0       0   \n",
       "4      3       0       0       0       0       0       0       0       0   \n",
       "\n",
       "   pixel9  ...  pixel775  pixel776  pixel777  pixel778  pixel779  pixel780  \\\n",
       "0       0  ...         0         0         0         0         0         0   \n",
       "1       0  ...         0         0         0         0         0         0   \n",
       "2       0  ...         0         0         0        30        43         0   \n",
       "3       0  ...         3         0         0         0         0         1   \n",
       "4       0  ...         0         0         0         0         0         0   \n",
       "\n",
       "   pixel781  pixel782  pixel783  pixel784  \n",
       "0         0         0         0         0  \n",
       "1         0         0         0         0  \n",
       "2         0         0         0         0  \n",
       "3         0         0         0         0  \n",
       "4         0         0         0         0  \n",
       "\n",
       "[5 rows x 785 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df=pd.read_csv('./fashion-mnist_train.csv')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "340b93bd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 60000 entries, 0 to 59999\n",
      "Columns: 785 entries, label to pixel784\n",
      "dtypes: int64(785)\n",
      "memory usage: 359.3 MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "780355f2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>label</th>\n",
       "      <th>pixel1</th>\n",
       "      <th>pixel2</th>\n",
       "      <th>pixel3</th>\n",
       "      <th>pixel4</th>\n",
       "      <th>pixel5</th>\n",
       "      <th>pixel6</th>\n",
       "      <th>pixel7</th>\n",
       "      <th>pixel8</th>\n",
       "      <th>pixel9</th>\n",
       "      <th>...</th>\n",
       "      <th>pixel775</th>\n",
       "      <th>pixel776</th>\n",
       "      <th>pixel777</th>\n",
       "      <th>pixel778</th>\n",
       "      <th>pixel779</th>\n",
       "      <th>pixel780</th>\n",
       "      <th>pixel781</th>\n",
       "      <th>pixel782</th>\n",
       "      <th>pixel783</th>\n",
       "      <th>pixel784</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>103</td>\n",
       "      <td>87</td>\n",
       "      <td>56</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>34</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>14</td>\n",
       "      <td>53</td>\n",
       "      <td>99</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>63</td>\n",
       "      <td>53</td>\n",
       "      <td>31</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>137</td>\n",
       "      <td>126</td>\n",
       "      <td>140</td>\n",
       "      <td>0</td>\n",
       "      <td>133</td>\n",
       "      <td>224</td>\n",
       "      <td>222</td>\n",
       "      <td>56</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 785 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   label  pixel1  pixel2  pixel3  pixel4  pixel5  pixel6  pixel7  pixel8  \\\n",
       "0      0       0       0       0       0       0       0       0       9   \n",
       "1      1       0       0       0       0       0       0       0       0   \n",
       "2      2       0       0       0       0       0       0      14      53   \n",
       "3      2       0       0       0       0       0       0       0       0   \n",
       "4      3       0       0       0       0       0       0       0       0   \n",
       "\n",
       "   pixel9  ...  pixel775  pixel776  pixel777  pixel778  pixel779  pixel780  \\\n",
       "0       8  ...       103        87        56         0         0         0   \n",
       "1       0  ...        34         0         0         0         0         0   \n",
       "2      99  ...         0         0         0         0        63        53   \n",
       "3       0  ...       137       126       140         0       133       224   \n",
       "4       0  ...         0         0         0         0         0         0   \n",
       "\n",
       "   pixel781  pixel782  pixel783  pixel784  \n",
       "0         0         0         0         0  \n",
       "1         0         0         0         0  \n",
       "2        31         0         0         0  \n",
       "3       222        56         0         0  \n",
       "4         0         0         0         0  \n",
       "\n",
       "[5 rows x 785 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_test=pd.read_csv('./fashion-mnist_test.csv')\n",
    "df_test.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c16fe61d",
   "metadata": {},
   "source": [
    "# Defining x and y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a3aa839d",
   "metadata": {},
   "outputs": [],
   "source": [
    "x=df.drop('label',axis=1)\n",
    "y=df.label"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "21653dcd",
   "metadata": {},
   "source": [
    "# Splitting the data into training, validation, and test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4e3e9320",
   "metadata": {},
   "outputs": [],
   "source": [
    "x_test=df_test.drop('label',axis=1)\n",
    "y_test=df_test.label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "010b4850",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10000, 784)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "15bef476",
   "metadata": {},
   "outputs": [],
   "source": [
    "x, x_train, y, y_train = train_test_split(x, y, test_size=0.4, random_state=0)\n",
    "x_train, x_val, y_train, y_val = train_test_split(x_train, y_train, test_size=0.1, random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "c87b8112",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(21600, 784)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "020ccb41",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2400, 784)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_val.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e1717c16",
   "metadata": {},
   "source": [
    "# Normalize the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "37758c93",
   "metadata": {},
   "outputs": [],
   "source": [
    "normalize=MinMaxScaler()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "384d4e30",
   "metadata": {},
   "outputs": [],
   "source": [
    "x_test_norm=normalize.fit_transform(x_test)\n",
    "x_train_norm=normalize.fit_transform(x_train)\n",
    "x_val_norm=normalize.fit_transform(x_val)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a4ba0f53",
   "metadata": {},
   "source": [
    "# Model Bulding and evaluation"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e7d03661",
   "metadata": {},
   "source": [
    "## KNeighbors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "83bad7fc",
   "metadata": {},
   "outputs": [],
   "source": [
    "test_error_rate=[]\n",
    "train_error_rate=[]\n",
    "for k in range(1,11):\n",
    "    knn=KNeighborsClassifier(k)\n",
    "    operations=[('normalize',normalize),('knn',knn)]\n",
    "    pipe=Pipeline(steps=operations)\n",
    "    cross_dict=cross_validate(pipe,x_train,y_train,cv=5,scoring='accuracy', return_train_score=True)\n",
    "    test_error_rate.append(cross_dict['test_score'].mean())\n",
    "    train_error_rate.append(cross_dict['train_score'].mean())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "f3edeb9a",
   "metadata": {},
   "outputs": [],
   "source": [
    "train_error_rate=[1-acc for acc in train_error_rate]\n",
    "validation_error_rate=[1-acc for acc in test_error_rate]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5df4270d",
   "metadata": {},
   "source": [
    "### Finding the best k"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "394ab777",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.title('k v.s. validation_error_rate')\n",
    "plt.xlabel('k')\n",
    "plt.ylabel('error_rate')\n",
    "sns.lineplot(x=range(1,11),y=validation_error_rate, color='red');\n",
    "plt.grid(True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6adc4970",
   "metadata": {},
   "source": [
    "### Calculate the accurancy on test set-the best k"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "2136c325",
   "metadata": {},
   "outputs": [],
   "source": [
    "knn=KNeighborsClassifier(n_neighbors=4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "f7a2fc82",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsClassifier(n_neighbors=4)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn.fit(x_test_norm,y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "579983f2",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_test_pred=knn.predict(x_test_norm)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "42748ba8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "KNeighborsClassifier\n",
      "0.8876\n",
      "[[943   1   9   6   3   0  28   1   9   0]\n",
      " [  7 972   4  11   0   0   6   0   0   0]\n",
      " [ 11   0 878   4  50   0  54   0   3   0]\n",
      " [ 37   6  11 892  28   0  26   0   0   0]\n",
      " [  6   4 112  14 813   0  51   0   0   0]\n",
      " [  7   0   1   0   1 866   3  64   3  55]\n",
      " [189   1 100  13  62   0 628   0   7   0]\n",
      " [  0   0   0   0   0   4   0 978   0  18]\n",
      " [ 12   1  11   2   5   1   7   8 950   3]\n",
      " [  0   0   0   0   0   1   0  42   1 956]]\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.78      0.94      0.85      1000\n",
      "           1       0.99      0.97      0.98      1000\n",
      "           2       0.78      0.88      0.83      1000\n",
      "           3       0.95      0.89      0.92      1000\n",
      "           4       0.85      0.81      0.83      1000\n",
      "           5       0.99      0.87      0.93      1000\n",
      "           6       0.78      0.63      0.70      1000\n",
      "           7       0.89      0.98      0.93      1000\n",
      "           8       0.98      0.95      0.96      1000\n",
      "           9       0.93      0.96      0.94      1000\n",
      "\n",
      "    accuracy                           0.89     10000\n",
      "   macro avg       0.89      0.89      0.89     10000\n",
      "weighted avg       0.89      0.89      0.89     10000\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(type(knn).__name__)\n",
    "print(accuracy_score(y_test, y_test_pred))\n",
    "print(confusion_matrix(y_test, y_test_pred))\n",
    "print(classification_report(y_test,y_test_pred))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4f4978ba",
   "metadata": {},
   "source": [
    "## Decision Tree"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "22f03b05",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17,\n",
       "       18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,\n",
       "       35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "max_depth=50\n",
    "max_depth_list=np.arange(1,max_depth+1)\n",
    "max_depth_list"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c0918d60",
   "metadata": {},
   "source": [
    "### Defind weighted_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "a4a5a7b1",
   "metadata": {},
   "outputs": [],
   "source": [
    "def weighted_accuracy(confusion):\n",
    "    M=confusion.copy().astype('float32')\n",
    "    for k in range(0, M.shape[0]):\n",
    "        M[k]/=M[k].sum()+1e-8    \n",
    "    acc = M.diagonal().sum()/M.sum()\n",
    "    return acc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "e5981ce4",
   "metadata": {},
   "outputs": [],
   "source": [
    "acc_train_list=[]\n",
    "acc_val_list=[]\n",
    "\n",
    "for j in max_depth_list:\n",
    "    DecisionT= tree.DecisionTreeClassifier(max_depth=j)\n",
    "    DecisionT.fit(x_train_norm, y_train)\n",
    "    \n",
    "    y_val_pred=DecisionT.predict(x_val_norm)\n",
    "    confusion_val=confusion_matrix(y_val, y_val_pred)\n",
    "    acc_val=weighted_accuracy(confusion_val)\n",
    "    \n",
    "    y_train_pred=DecisionT.predict(x_train_norm)\n",
    "    confusion_train=confusion_matrix(y_train, y_train_pred)\n",
    "    acc_train=weighted_accuracy(confusion_train)\n",
    "    \n",
    "    acc_train_list.append(acc_train)\n",
    "    acc_val_list.append(acc_val)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5e321d04",
   "metadata": {},
   "source": [
    "### Finding the max_depth_best "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "b0e40c09",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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v/4qhBBi586dAoCoU6eOeP7558WmTZvEDz/8IDIyMsTJkyfFq6++KtasWSN27dolfvjhBxEWFiYcHBzEzp079d4DgJg2bZru8dKlSwUA0aBBAzF27Fixbds2sWjRIlG1alXRrVs3vX0fe+wxvZ/v2bNnBQBRv3598cQTT4jvv/9efP/996Jly5aiatWq4saNG7ptFy5cKACI5557Tvzwww9i1apVonHjxsLf31/4+/sXm5t3331XzJ49W/z4449i165dYsGCBSIgIMAgxq1btwonJyfRqlUrsWzZMrFjxw6xZMkS8cILL+i2OXr0qKhUqZKoX7++WLBggdi+fbtYuXKlGDhwoMjMzBRC3Psdf5A2X2fPntWt8/f3F7Vq1RINGjQQS5YsETt37hQHDx4UQggxYcIEMX/+fLF161axY8cOMXv2bOHj4yNGjBih97qLFi0SKpVKdO3aVXz99dfip59+ErGxsSIiIkIIIUROTo6oWbOmePHFF/X202g0onbt2mLAgAHF5pBIi8cdiccdITZu3CgAiMTERL31J06cEADEZ599pltn6v+zYcOGGfxf9/f3F8OGDdM9TktLEzVq1BB16tQRS5cuFfHx8eLFF18U9erVEwD0jl3z588X0dHRYtOmTWL37t3iq6++Eq1btxZNmjQRubm5QgghLly4IMaOHSsAiA0bNuh+Tjdv3hRCGB6/7ty5I1q1aiU8PDzEJ598IhISEsTbb78tHB0dRZ8+ffRi1x7nHnnkEbFu3ToRHx8vunbtKhwdHcWZM2eKzK85fytDhgwRKpVKjBo1SmzcuFFs2bJFvP/++2Lu3Lm6bd5++20BQDz77LPim2++EQkJCSImJka8/fbbheZa68EcWOJ7hUajEd26dROOjo5i0qRJIj4+XmzatEm89dZbYvXq1UKIwn/HfvzxRwFA/Pjjj0XmUGksnGyM9mDw6aef6q1v06aN7h+AlkajEdWrVxfPPvtsoa+Xl5cnNBqNCAsLE23bttV77u7du6Jt27YiICBAHD9+XPj6+orHHntM5OXlmRzv9evXhaurq3jmmWf01u/bt08A0PujjI6OFg4ODroDpta3334rAIj4+HjdOgDCzc1NpKWl6X2Wpk2bikaNGunWffPNNwb/VLUee+wxAUAcOHBAb33z5s1Fr169ivxc6enpwtnZWbz11lt66wcOHCh8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RERERMVg4URERERERFQMFk5ERERERETFYOFERERERERUDBZORERERERExWDhREREREREVAwWTkRERERERMVg4URERERERFQMFk5ERERERETFYOFERERERERUDBZORERERERExWDhREREREREVAwWTkRERERERMVg4URERERERFQMRQunn3/+Gf369UPt2rWhUqnw/fffF7vP7t27ERQUBFdXVzRo0AALFiywfqBERERERFShKVo43b59G61bt8a8efNM2v7s2bPo06cPunTpguTkZLz11lsYN24c1q9fb+VIiYioIomNjUVAQABcXV0RFBSEPXv2FLn9qlWr0Lp1a7i7u6NWrVoYMWIEMjIyyihaIiIqC45Kvnnv3r3Ru3dvk7dfsGAB6tWrhzlz5gAAmjVrhsOHD+OTTz7Bc889Z6Uoieh+QgAaDZCTA+TmylteHpCfr38rKCj6lpcnX0d70z4ubF8h7t2X9KaNX7tsjvx8B5w82QjHjztArbZsTu1Jfr4DbtyohT59lI7EetauXYvx48cjNjYWnTt3xsKFC9G7d28cP34c9erVM9h+7969GDp0KGbPno1+/frh4sWLCA8Px6hRo/Ddd98p8AnKN9XPP6N6cjLwxBNKh0JEFYyihZO59u/fj5CQEL11vXr1wuLFi6HRaODk5GSwT05ODnJycnSPMzMzAQAajQYajabQ99I+V9Q25R1zICmZh9xcICMDuHYNuH1bhdu3gdu3gawsIDsbyMpS4c4d4M4d4O5d7U2uy8mRxYi2qLn//t56ld42hd8ccedOXxQUqJGbW+ZpsBFqAC2UDsIGqNG+fb0S/z3Yw/+TmJgYhIWFYdSoUQCAOXPmYNu2bZg/fz6io6MNtv/ll19Qv359jBs3DgAQEBCA0aNHY9asWWUad4Vw+DDUPXsiWAiIDRuA6dOBp58GHDhkm4isz64Kp7S0NPj6+uqt8/X1RV5eHtLT01GrVi2DfaKjozFjxgyD9QkJCXB3dy/2PRMTE0secDnBHEilzUN+PpCV5YzMTHm7dctFtywfa5dddI+zsw1PBijH+L8LBwcBB4eC/+61j+VNpcJ/94bLjo4FUKsF1OoCODrKe7XacF/te9x/r1IBKtW9ZqP7H2uXVSrtc/cv31tHJRcQcBOJiQdKtG92draFo7Gs3NxcHDlyBFOmTNFbHxISgqSkJKP7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\n",
      "text/plain": [
       "<Figure size 1000x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1,2, figsize=(10,6))\n",
    "ax[0].plot(max_depth_list, acc_train_list, 'b')\n",
    "ax[0].set_title('max_depth v.s. training accuracy')\n",
    "ax[0].set_xlabel('max_depth')\n",
    "ax[0].set_ylabel('training accuracy')\n",
    "ax[0].grid(True)\n",
    "\n",
    "ax[1].plot(max_depth_list, acc_val_list, 'r')\n",
    "ax[1].set_title('max_depth v.s. validation accuracy')\n",
    "ax[1].set_xlabel('max_depth')\n",
    "ax[1].set_ylabel('validation accuracy')\n",
    "ax[1].grid(True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "b9f2e46e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Temp1 = np.argmax(acc_val_list,axis=0) \n",
    "max_depth_best =(max_depth_list[Temp1])\n",
    "max_depth_best"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "12c42919",
   "metadata": {},
   "source": [
    "### Calculate the accurancy on test set-the best depth"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "d284d8e3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "DecisionTreeClassifier\n",
      "0.794\n",
      "[[733   6  20  71   7   4 145   2  12   0]\n",
      " [  1 929   4  43   4   0  17   1   1   0]\n",
      " [ 24   5 664  19 179   1  94   1  12   1]\n",
      " [ 32  15  10 834  58   5  31   2  12   1]\n",
      " [  2   4 105  46 752   1  76   0  14   0]\n",
      " [  5   1   2   4   3 836   5  90  15  39]\n",
      " [170   3 120  47  99   2 541   0  18   0]\n",
      " [  0   0   0   1   0  53   0 868   1  77]\n",
      " [ 12   4  28   5  12  19  22   7 884   7]\n",
      " [  1   0   1   2   0  31   2  59   5 899]]\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.75      0.73      0.74      1000\n",
      "           1       0.96      0.93      0.94      1000\n",
      "           2       0.70      0.66      0.68      1000\n",
      "           3       0.78      0.83      0.81      1000\n",
      "           4       0.68      0.75      0.71      1000\n",
      "           5       0.88      0.84      0.86      1000\n",
      "           6       0.58      0.54      0.56      1000\n",
      "           7       0.84      0.87      0.86      1000\n",
      "           8       0.91      0.88      0.90      1000\n",
      "           9       0.88      0.90      0.89      1000\n",
      "\n",
      "    accuracy                           0.79     10000\n",
      "   macro avg       0.79      0.79      0.79     10000\n",
      "weighted avg       0.79      0.79      0.79     10000\n",
      "\n"
     ]
    }
   ],
   "source": [
    "DecisionT= tree.DecisionTreeClassifier(max_depth=10)\n",
    "DecisionT.fit(x_train_norm, y_train)\n",
    "prediction = DecisionT.predict(x_test_norm)\n",
    "print(type(DecisionT).__name__)\n",
    "print(accuracy_score(y_test, prediction))\n",
    "print(confusion_matrix(y_test, prediction))\n",
    "print(classification_report(y_test, prediction))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a388edf4",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
