{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "49318024-22be-4f0b-8061-bbb3943ad4d2",
   "metadata": {},
   "source": [
    "# MNIST Fashion Dataset - Data Downloading & Simple Example"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a31f6421-4a36-45d9-a170-3b356049add3",
   "metadata": {},
   "source": [
    "**Overview of this Example**\n",
    "\n",
    "- Loads the Fashion MNIST dataset (28x28 grayscale images).\n",
    "- Flattens images (784 features).\n",
    "- Normalizes pixel values to the range [0,1].\n",
    "- Applies PCA to reduce dimensions (features) while retaining 95% variance. Effect: (1) speeds up training and may remove noise and (2) improve generalisation.\n",
    "- Trains a Decision Tree Classifier on PCA-reduced data.\n",
    "- Evaluates accuracy after PCA."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "338f1952-10e7-4ce6-9881-ba28c3a8cddb",
   "metadata": {},
   "outputs": [],
   "source": [
    "# ## If you do not have Tensorflow installed run the following to do so\n",
    "\n",
    "# #!pip install tensorflow\n",
    "# !conda install -c conda-forge tensorflow"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "eae96941-26c6-4b1d-9c69-ed6172215823",
   "metadata": {},
   "outputs": [],
   "source": [
    "# import tensorflow as tf\n",
    "# print(tf.__version__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "2f5af665-251c-4d25-bb41-0e50a4eddcb1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load libraries\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from tensorflow.keras.datasets import fashion_mnist\n",
    "from sklearn.decomposition import PCA\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "# Load Fashion MNIST dataset\n",
    "(X_train, y_train), (X_test, y_test) = fashion_mnist.load_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "332556e1-a38a-4ccf-b6d1-8382972bcbae",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training data shape: (60000, 28, 28)\n",
      "Testing data shape: (10000, 28, 28)\n"
     ]
    }
   ],
   "source": [
    "# Define class labels for Fashion MNIST\n",
    "class_labels = [\"T-shirt/Top\", \"Trouser\", \"Pullover\", \"Dress\", \"Coat\", \"Sandal\", \"Shirt\", \"Sneaker\", \"Bag\", \"Ankle Boot\"]\n",
    "\n",
    "# Check dataset shape\n",
    "print(f\"Training data shape: {X_train.shape}\")\n",
    "print(f\"Testing data shape: {X_test.shape}\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "332ead94-c7b5-485c-8165-736974bf5794",
   "metadata": {},
   "source": [
    "## Check the class distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "8902e816-c856-403a-af25-6a08c2de6a48",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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3749y4ZfIPlEr0WLFmHbtm1ISkpK85LIlPXcvHkTw4YNg7+/v6GrQu+JPcBEREREpCr8qUpEREREqsIATERERESqwgBMRERERKrCk+AyKCkpCQ8ePICNjQ0nvCYiIiIyQvL/Lyrl4uLyxpNSGYAz6MGDB3B1dTV0NYiIiIjoLe7evYt8+fKlu54BOINsbGwAJD+htra2Bq4NEREREb0uKioKrq6uSm5LDwNwBumGPdja2jIAExERERmxtw1X5UlwRERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoGD8D379/Ht99+CwcHB+TIkQNly5bFqVOnlPUigqCgILi4uCB79uyoWbMmLl68qLeN2NhY9OnTB7ly5YKVlRX8/Pxw7949vTIREREICAiAVquFVqtFQEAAnj9//jmaSERERERGxKABOCIiAr6+vjAzM8Nff/2FS5cuYerUqciZM6dSZtKkSZg2bRrmzJmDkJAQODs7o27dunjx4oVSJjAwEJs3b8batWtx6NAhvHz5Ek2aNEFiYqJSxt/fH6GhoQgODkZwcDBCQ0MREBDwOZtLREREREZAIyJiqJ0PHToUhw8fxsGDB9NcLyJwcXFBYGAghgwZAiC5t9fJyQkTJ05Et27dEBkZidy5c2PlypX4+uuvAQAPHjyAq6srtm/fjvr16yMsLAzFixfHsWPH4O3tDQA4duwYfHx8cPnyZXh4eLy1rlFRUdBqtYiMjIStre1HegaIiIiI6GPJaF4zaA/wtm3b4OXlha+++gqOjo4oV64cFi1apKy/efMmwsPDUa9ePWWZhYUFatSogSNHjgAATp06hfj4eL0yLi4uKFmypFLm6NGj0Gq1SvgFgMqVK0Or1SplXhcbG4uoqCi9GxERERFlfqaG3PmNGzcwb948DBgwAD/88ANOnDiBvn37wsLCAt999x3Cw8MBAE5OTnqPc3Jywu3btwEA4eHhMDc3h52dXaoyuseHh4fD0dEx1f4dHR2VMq8bP348xowZ88Ft/BATzvxr0P2/r6HlcmW4rBraCLCdxo7v2dTU0E41tBFQRzvV0EZAPe38HAzaA5yUlITy5ctj3LhxKFeuHLp164YuXbpg3rx5euU0Go3e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ws/PD3PmzPm8jSUiIiIio2DQALx27do3rtdoNAgKCkJQUFC6ZSwtLTF79mzMnj073TL29vZYtWrV+1aTiIiIiLIQoxoDTERERET0qTEAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqGE0AHj9+PDQaDQIDA5VlIoKgoCC4uLgge/bsqFmzJi5evKj3uNjYWPTp0we5cuWClZUV/Pz8cO/ePb0yERERCAgIgFarhVarRUBAAJ4/f/4ZWkVERERExsYoAnBISAgWLlyI0qVL6y2fNGkSpk2bhjlz5iAkJATOzs6oW7cuXrx4oZQJDAzE5s2bsXbtWhw6dAgvX75EkyZNkJiYqJTx9/dHaGgogoODERwcjNDQUAQEBHy29hERERGR8TB4AH758iW++eYbLFq0CHZ2dspyEcGMGTMwfPhwtGjRAiVLlsSKFSvw33//Yc2aNQCAyMhILFmyBFOnTkWdOnVQrlw5rFq1CufPn8fu3bsBAGFhYQgODsbixYvh4+MDHx8fLFq0CH/88QeuXLlikDYTERERkeEYPAD36tULjRs3Rp06dfSW37x5E+Hh4ahXr56yzMLCAjVq1MCRI0cAAKdOnUJ8fLxeGRcXF5QsWVIpc/ToUWi1Wnh7eytlKleuDK1Wq5RJS2xsLKKiovRuRERERJT5mRpy52vXrsXp06cREhKSal14eDgAwMnJSW+5k5MTbt++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K65cuYJ+/fohIiJC6d21srJCjx498P333yM4OBiXLl1Cly5d8N9//6FTp05vbaOnpycqV66MIUOGoG3btsiePft7P19ElPUwABMRZVDZsmUxbdo0TJw4ESVLlsTq1asxfvx4vTKJiYno1asXPD090aBBA3h4eGDu3Lnvvc++ffti4MCBGDhwIEqVKoXg4GBs27YNRYoU+aC2fPnllzhy5AjMzMzg7++PYsWKoW3btoiMjMSPP/4IAOjevTtatGiBr7/+Gt7e3nj69Cl69uypt50uXbrAw8NDGSd8+PBh5MiRA3///Tfy58+PFi1awNPTEx07dkR0dDRsbW0BQAmm3333HXx8fGBtbY369evD0tJS2faECRPQsmVLBAQEoHz58vjnn3+wY8cO2NnZZaiNnTp1QlxcHIc/EFEqGnmXsyGIiIg+gaSkJHh6eqJ169b43//+91G2+dNPP2Ht2rU4f/78R9keEWUdpoauABERqc/t27exc+dO1KhRA7GxsZgzZw5u3rypd5Lc+3r58iXCwsIwe/bsjxamiShr4RAIIiL67LJly4bly5ejYsWK8PX1xfnz57F79+4PGi+t07t3b1StWhU1atTg8AciShOHQBARERGRqrAHmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFTl/wHq9COMR0VURgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 800x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Count occurrences of each class\n",
    "unique, counts = np.unique(y_train, return_counts=True)\n",
    "\n",
    "# Plot\n",
    "plt.figure(figsize=(8, 5))\n",
    "plt.bar(unique, counts, color=\"skyblue\")\n",
    "plt.xticks(ticks=unique, labels=class_labels, rotation=45)\n",
    "plt.title(\"Class Distribution of Training Data (MNIST Fashion)\")\n",
    "plt.xlabel(\"Fashion Category\")\n",
    "plt.ylabel(\"Count\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "d2c464ef-f69c-482a-ab47-26cfe4c74f8e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAAIFCAYAAADcCkvoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB6mklEQVR4nO3dd1gUV9sG8HvpIkVEAVEEVMReUVSMShR7b7HG3ht2jQ2NvbeoUWOJJZZYkxh7iTUBFXsXu9gFC53n+4Nv52UFFBXdhbl/17WX7szZ3WfYdu+ZM2c0IiIgIiIiIlIJI30XQERERET0NTEAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowAFOGcvbsWXTo0AHu7u6wsLCAlZUVSpUqhalTp+L58+dKuypVqqBKlSr6KzQFGo1GuRgbG8POzg7FixdHt27dcOLEiSTtb926BY1GgxUrVnzU46xduxazZ8/+qNsk91gBAQHQaDR4+vTpR93X+1y8eBEBAQG4detWknXt27eHm5tbmj3Wl/D8+XO0aNECDg4O0Gg0aNiwYZI2K1as0HmuU7qk1bYeO3YMAQEBePnyZZJ1+nwvVKlSRdlWIyMjWFtbI1++fGjWrBl+//13xMfHf/J9f8pr/GN07NgRNWvWVK5r3x8ajQYBAQEp3kbbJjHt3yHx/b17v9OnT1eWHTx4EBqNBr///rtO23///ReNGjVC7ty5YW5uDkdHR5QvXx4DBw4EkDavO+1jJ3dp2rTph/5sH0Vbb1BQ0Afbfo3X8S+//IKcOXPizZs3X/Rx6Osw0XcBRGllyZIl6NmzJzw9PTF48GAUKlQIMTExCAoKwqJFi3D8+HFs2bJF32V+UNOmTTFw4ECICMLDw3H+/Hn8+uuvWLx4Mfr27Ys5c+YobXPkyIHjx48jb968H/UYa9euxfnz5+Hv75/q23zqY32sixcvYuzYsahSpUqSL+JRo0ahX79+X/TxP9ePP/6ILVu2YNmyZcibNy+yZs2apE2dOnVw/PhxnWXly5dXnnstc3PzNKnp2LFjGDt2LNq3b48sWbLorFuwYEGaPManypMnD9asWQMAePPmDUJCQrB161Y0a9YM33zzDf744w/Y2tp+9P1+yms8tU6fPo2VK1fi33//TbLO2toaK1aswOjRo2Fk9L8+ptevX2Pjxo2wsbFBeHh4sve7a9cu7N+/H99+++1H1/TXX3+hfv36qFKlCqZOnYocOXLg4cOHCAoKwrp16zBjxow0fd1NnDgRvr6+Osvs7e0/uu608jVex+3atcOUKVMwdepUjB079os/Hn1ZDMCUIRw/fhw9evSAn58ftm7dqvMB7ufnh4EDB2Lnzp16rDD1HB0dUa5cOeV6jRo14O/vj65du2Lu3LkoUKAAevToASDhiypx2y8hLi4OsbGxX+WxPuRLh++0cP78eeTNmxetW7dOsU327NmRPXv2JMvffe6/hkKFCn3Vx3tXpkyZkmxz586dsXz5cnTs2BFdu3bF+vXr9VRd8iZPnoyyZcvCy8srybrvvvsOS5cuxb59++Dn56csX79+PeLi4tCwYUOsXr06ye3y58+P2NhYDBkyBIGBgUl6iT9k6tSpcHd3x65du2Bi8r+v9hYtWmDq1KkA0vZ15+HhoffPg8S+xuvYxMQE3bp1w48//oihQ4fC0tLyiz8mfTkcAkEZwsSJE6HRaLB48eJkey/MzMxQv379997H2LFj4e3tjaxZs8LGxgalSpXCL7/8AhHRabd//35UqVIF9vb2yJQpE3Lnzo0mTZrg7du3SpuFCxeiePHisLKygrW1NQoUKIAffvjhk7fP2NgY8+fPR7Zs2TBt2jRleXLDEp48eYKuXbvCxcUF5ubmyJ49O3x8fLB3714ACbsK//rrL9y+fVtn92Xi+5s6dSrGjx8Pd3d3mJub48CBA+8dbnH37l00btwYNjY2sLW1RZs2bfDkyROdNintGnZzc0P79u0BJOzybNasGQDA19dXqU37mMkNgYiMjMTw4cPh7u4OMzMz5MyZE7169Uqyu9/NzQ1169bFzp07UapUKWTKlAkFChTAsmXLPvDXT/D8+XP07NkTOXPmhJmZGfLkyYMRI0YgKipK52+3d+9eXLp0San94MGDqbr/5Fy7dg2tWrWCg4MDzM3NUbBgQfz00086beLj4zF+/Hh4enoiU6ZMyJIlC4oVK6bsKQgICMDgwYMBAO7u7knqenfXceJd7jNnzoS7uzusrKxQvnz5ZIfhLFmyBPnz54e5uTkKFSqEtWvXpslQlQ4dOqB27drYuHEjbt++rSz/6aefUKlSJTg4OCBz5swoWrQopk6dipiYGKXN+17jQOrf68l59OgRtmzZgrZt2ya73tPTExUqVEjyulq2bBkaN26cYm+2qakpJkyYgJMnT35S4H/27BmyZcumE361EvdEf2lPnjxBz549UahQIVhZWcHBwQHffvstDh8+nKRtaj8nX716hR49eiBbtmywt7dH48aN8eDBA502yQ2B+NB7Vkuj0aB3795YtWoVChYsCEtLSxQvXhx//vlnklpat26N8PBwrFu37hP+OmRI2ANM6V5cXBz279+P0qVLw8XF5ZPv59atW+jWrRty584NADhx4gT69OmD+/fvY/To0UqbOnXq4JtvvsGyZcuQJUsW3L9/Hzt37kR0dDQsLS2xbt069OzZE3369MH06dNhZGSE69ev4+LFi5+1nZkyZUK1atWwbt063Lt3D7ly5Uq2Xdu2bXHq1ClMmDAB+fPnx8uXL3Hq1Ck8e/YMQMKuwq5du+LGjRspDgmZO3cu8ufPj+nTp8PGxgYeHh7vra1Ro0Zo3rw5unfvjgsXLmDUqFG4ePEi/v33X5iamqZ6G+vUqYOJEyfihx9+wE8//YRSpUoBSLnnV0TQsGFD7Nu3D8OHD8c333yDs2fPYsyYMTh+/DiOHz+u84PozJkzGDhwIIYNGwZHR0csXboUnTp1Qr58+VCpUqUU64qMjISvry9u3LiBsWPHolixYjh8+DAmTZqE4OBg/PXXX8oQkZ49eyIsLEzZrf+pPVMXL15EhQoVkDt3bsyYMQNOTk7YtWsX+vbti6dPn2LMmDEAEnr+AgICMHLkSFSqVAkxMTG4fPmy8gOgc+fOeP78OebNm4fNmzcjR44cqarrp59+QoECBZRxtKNGjULt2rUREhKihLjFixejW7duaNKkCWbNmoWwsDCMHTs2ScD4VPXr18eOHTtw+PBhuLq6AgBu3LiBVq1aKT94zpw5gwkTJuDy5ctK6PzQazw17/WU7N69GzExMUl2/yfWqVMn9OrVCy9evICdnR2uXLmCY8eOYfz48di0aVOKt/vuu+8wffp0jBw5Ek2aNPmo90758uWxdOlS9O3bF61bt0apUqU+6vYfKz4+HrGxsTrLTExMlGMtxowZAycnJ7x+/RpbtmxBlSpVsG/fPiWkfsznZOfOnVGnTh2sXbsWd+/exeDBg9GmTRvs378/xfpS855N7K+//kJgYCDGjRsHKysrTJ06FY0aNcKVK1eQJ08epZ2TkxMKFCiAv/76Cx07dvzUPx8ZAiFK50JDQwWAtGjRItW3qVy5slSuXDnF9XFxcRITEyPjxo0Te3t7iY+PFxGR33//XQBIcHBwirft3bu3ZMmSJdW1JAZAevXqleL6oUOHCgD5999/RUQkJCREAMjy5cuVNlZWVuLv7//ex6lTp464uromWa69v7x580p0dHSy6xI/1pgxYwSA9O/fX6ftmjVrBICsXr1aZ9vGjBmT5DFdXV2lXbt2yvWNGzcKADlw4ECStu3atdOpe+fOnQJApk6dqtNu/fr1AkAWL16s8zgWFhZy+/ZtZVlERIRkzZpVunXrluSxElu0aJEAkA0bNugsnzJligCQ3bt3K8sqV64shQsXfu/9Jefd575GjRqSK1cuCQsL02nXu3dvsbCwkOfPn4uISN26daVEiRLvve9p06YJAAkJCUmy7t33gvZ5Llq0qMTGxirL//vvPwEgv/32m4gkvEecnJzE29tb5/5u374tpqamyb6+knvs9/2t/v77bwEgU6ZMSXa99n3666+/irGxsfI3EUn5NZ7Sfbz7Xk9Jjx49JFOmTEnaaf9u06ZNk1evXomVlZXMnz9fREQGDx4s7u7uEh8fL7169ZJ3v3oT/x327t0rAGTevHlJ7lfrwIEDAkA2btyoLHv69KlUrFhRAAgAMTU1lQoVKsikSZPk1atXKW7Phz5z3qV97OQu165dS9I+NjZWYmJipGrVqtKoUSNleWo+J5cvXy4ApGfPnjrLp06dKgDk4cOHyrJ3X8cf854FII6OjhIeHq4sCw0NFSMjI5k0aVKSulq3bi2Ojo7vrZ0MH4dAEP2//fv3o1q1arC1tYWxsTFMTU0xevRoPHv2DI8fPwYAlChRAmZmZujatStWrlyJmzdvJrmfsmXL4uXLl2jZsiW2bduWpjMkSCp20ZYtWxYrVqzA+PHjceLECZ1dw6lVv379j+o9ene8a/PmzWFiYoIDBw589GN/DG0PkHYIhVazZs2QOXNm7Nu3T2d5iRIllF4/ALCwsED+/Pl1drGn9DiZM2dOcpS79nHffZzPFRkZiX379qFRo0awtLREbGyscqlduzYiIyOV4Qhly5bFmTNn0LNnT+zatSvFA6w+Vp06dWBsbKxcL1asGAAof6srV64gNDQUzZs317ld7ty54ePjkyY1JPd6P336NOrXrw97e3vlffr9998jLi4OV69eTdX9pua9npIHDx4ge/bs7x2ja2VlhWbNmmHZsmWIjY3Fr7/+ig4dOqRqXG/VqlVRvXp1jBs3Dq9evUrV9gAJB6AdPnwYgYGBmDx5Mho0aICrV69i+PDhKFq0aJp+DgHAlClTEBgYqHPR7oFbtGgRSpUqBQsLC5iYmMDU1BT79u3DpUuXlNt/zOfku8PX3n0tJudj37O+vr6wtrZWrjs6OsLBwSHZx3BwcMDjx4+T9IBT+sIATOletmzZYGlpiZCQkE++j//++w/Vq1cHkDCm8ejRowgMDMSIESMAABEREQASdsXv3bsXDg4O6NWrF/LmzYu8efPqzMzQtm1bLFu2DLdv30aTJk3g4OAAb29v7Nmz5zO2MoH2w9jZ2TnFNuvXr0e7du2wdOlSlC9fHlmzZsX333+P0NDQVD+Odjd5ajk5OelcNzExgb29vTLs4kt59uwZTExMkhzYo9Fo4OTklOTxkztK3dzcXHl+3/c4Tk5OSQKMg4MDTExM0nw7nz17htjYWMybNw+mpqY6l9q1awOAEhiGDx+O6dOn48SJE6hVqxbs7e1RtWrVVE0d9T7v/q20Q0m0fyvtNjs6Oia5bXLLPsW7r/c7d+7gm2++wf379zFnzhwl8GnHRX/oeQRS/15PSUREBCwsLD74OJ06dVKGIj158iTJj7T3mTJlCp4+faoz9VlqeXl5YejQodi4cSMePHiA/v3749atW8qBcGklT5488PLy0rmYm5tj5syZ6NGjB7y9vbFp0yacOHECgYGBqFmzps7f9mM+Jz/0WkzOx75nP+azwcLCAiKCyMjIFB+fDB8DMKV7xsbGqFq1Kk6ePIl79+590n2sW7cOpqam+PPPP9G8eXNUqFAh2SO8AShTM4WFheHEiRMoX748/P39dQ6K6NChA44dO4awsDD89ddfEBHUrVv3gz2N7xMREYG9e/cib968KY7/BRJ+EMyePRu3bt3C7du3MWnSJGzevPmjvoA/9gj0d8N1bGwsnj17pvOlYm5unuzY0M8Jj/b29oiNjU1ywJ2IIDQ0FNmyZfvk+373cR49epSkR1LbC5RWj6NlZ2cHY2NjtG/fPkkvm/aiDcImJiYYMGAATp06hefPn+O3337D3bt3UaNGDZ0DM9Oa9rl99OhRknUf82PrfbZv3w6NRqOMz966dSvevHmDzZs3o02bNqhYsSK8vLxgZmaW6vv8mPd6crJly6Yzp3hKfHx84OnpiXHjxsHPz++jjk8oUaIEWrZsiZkzZyb7900tU1NTZaz4+fPnP/l+Psbq1atRpUoVLFy4EHXq1IG3tze8vLyS7c3+Ep+TWl/yPfv8+XOYm5vDysrqc8skPWIApgxh+PDhEBF06dIF0dHRSdbHxMTgjz/+SPH2Go0GJiYmOrt8IyIisGrVqhRvY2xsDG9vb6X36dSpU0naZM6cGbVq1cKIESMQHR2NCxcufMxmKeLi4tC7d288e/YMQ4cOTfXtcufOjd69e8PPz0+nvtT0en4M7QFfWhs2bEBsbKzOUdlubm44e/asTrv9+/fj9evXOstS07ujVbVqVQBIMq3Upk2b8ObNG2X956patSpev36NrVu36iz/9ddfdepIK5aWlvD19cXp06dRrFixJD1tXl5eyfZYZcmSBU2bNkWvXr3w/Plz5WQiH/M3TS1PT084OTlhw4YNOsvv3LmDY8eOffb9L1++HH///TdatmypDFvR/jBLfGCjiGDJkiVJbp/Sa/xT3uuJFShQAM+ePUNYWNgH244cORL16tXTmWM3tcaPH4/o6OhUzzf78OHDZJdrhx28b69RWtJoNElm4jl79myS+YcTS6vPycS+5Hv25s2bep8+kD4fZ4GgDKF8+fJYuHAhevbsidKlS6NHjx4oXLgwYmJicPr0aSxevBhFihRBvXr1kr19nTp1MHPmTLRq1Qpdu3bFs2fPMH369CQf5IsWLcL+/ftRp04d5M6dG5GRkcqR59WqVQMAdOnSBZkyZYKPjw9y5MiB0NBQTJo0Cba2tihTpswHt+XRo0c4ceIERASvXr1SToRx5swZ9O/fH126dEnxtmFhYfD19UWrVq1QoEABWFtbIzAwEDt37kTjxo2VdkWLFsXmzZuxcOFClC5dGkZGRh/VC/auzZs3w8TEBH5+fsosEMWLF9cZH9q2bVuMGjUKo0ePRuXKlXHx4kXMnz8/ybRQRYoUAZAww4C1tTUsLCzg7u6ebODz8/NDjRo1MHToUISHh8PHx0eZBaJkyZIpTlX1sb7//nv89NNPaNeuHW7duoWiRYviyJEjmDhxImrXrq0892lpzpw5qFixIr755hv06NEDbm5uePXqFa5fv44//vhDGf9cr149FClSBF5eXsiePTtu376N2bNnw9XVVZm9o2jRosp9tmvXDqampvD09NQZ8/ixjIyMMHbsWHTr1g1NmzZFx44d8fLlS4wdOxY5cuRI9dRbERERynjmiIgI3Lx5E1u3bsWff/6JypUrY9GiRUpbPz8/mJmZoWXLlhgyZAgiIyOxcOFCvHjxIsn9pvQaT+17PSVVqlSBiODff/9VhlKkpE2bNmjTpk2q7vdd7u7u6NGjh87wqvepUaMGcuXKhXr16qFAgQKIj49HcHAwZsyYASsrq692Apm6devixx9/xJgxY1C5cmVcuXIF48aNg7u7u86Y2c/9nPyQL/WejY+Px3///YdOnTp9do2kZ/o59o7oywgODpZ27dpJ7ty5xczMTDJnziwlS5aU0aNHy+PHj5V2yc0CsWzZMvH09BRzc3PJkyePTJo0SX755Redo+ePHz8ujRo1EldXVzE3Nxd7e3upXLmybN++XbmflStXiq+vrzg6OoqZmZk4OztL8+bN5ezZsx+sH4mOqDYyMhIbGxspWrSodO3aVY4fP56k/bszM0RGRkr37t2lWLFiYmNjI5kyZRJPT08ZM2aMvHnzRrnd8+fPpWnTppIlSxbRaDTKUenJHXGe0mOJ/G8WiJMnT0q9evXEyspKrK2tpWXLlvLo0SOd20dFRcmQIUPExcVFMmXKJJUrV5bg4OAks0CIiMyePVvc3d3F2NhY5zHfnQVCJGEmh6FDh4qrq6uYmppKjhw5pEePHvLixQuddq6urlKnTp0k2/WhGUG0nj17Jt27d5ccOXKIiYmJuLq6yvDhwyUyMjLJ/aXFLBAiCX/zjh07Ss6cOcXU1FSyZ88uFSpUkPHjxyttZsyYIRUqVJBs2bKJmZmZ5M6dWzp16iS3bt3Sua/hw4eLs7OzGBkZ6cyykdIsEMm9BpDMTB6LFy+WfPnyiZmZmeTPn1+WLVsmDRo0kJIlS35wmytXrqzzms+cObPkyZNHmjZtKhs3bpS4uLgkt/njjz+kePHiYmFhITlz5pTBgwcrs0Uknjkkpde4SOre6ymJi4sTNze3JDMTvO/vltiHZoFI7MmTJ2JjY5OqWSDWr18vrVq1Eg8PD7GyshJTU1PJnTu3tG3bVi5evJhiPcm97t4nucdOLCoqSgYNGiQ5c+YUCwsLKVWqlGzdujXJezc1n5PaWSACAwOTrSHx853c+zi179mU/gbJfTbt27dP+cyj9E0jkorDyomIiFLh5cuXyJ8/Pxo2bIjFixfru5wvYsaMGZgwYQLu37+PTJky6bsc+oratm2Lmzdv4ujRo/ouhT4TAzAREX2S0NBQTJgwAb6+vrC3t8ft27cxa9YsXL58GUFBQShcuLC+S/wiIiMjUbBgQfTq1QuDBg3Sdzn0ldy4cQMFCxbE/v37UbFiRX2XQ5+JY4CJiOiTmJub49atW+jZsyeeP38OS0tLlCtXDosWLcqw4RdImAZr1apVOH36tL5Loa/ozp07mD9/PsNvBsEeYCIiIiJSFU6DRkRERESqwgBMRERERKrCAExEREREqsKD4FIpPj4eDx48gLW19UefJpaIiIiIvjz5/5NIOTs7v/eEPAzAqfTgwYOPOpc7EREREenH3bt3kStXrhTXMwCnkvaUoXfv3oWNjY2eqyEiIiKid4WHh8PFxeWDp3pnAE4l7bAHGxsbBmAiIiIiA/ah4ao8CI6IiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhURa8B+J9//kG9evXg7OwMjUaDrVu36qwXEQQEBMDZ2RmZMmVClSpVcOHCBZ02UVFR6NOnD7Jly4bMmTOjfv36uHfvnk6bFy9eoG3btrC1tYWtrS3atm2Lly9ffuGtIyIiIiJDpNcA/ObNGxQvXhzz589Pdv3UqVMxc+ZMzJ8/H4GBgXBycoKfnx9evXqltPH398eWLVuwbt06HDlyBK9fv0bdunURFxentGnVqhWCg4Oxc+dO7Ny5E8HBwWjbtu0X3z4iIiIiMjwaERF9FwEAGo0GW7ZsQcOGDQEk9P46OzvD398fQ4cOBZDQ2+vo6IgpU6agW7duCAsLQ/bs2bFq1Sp89913AIAHDx7AxcUFO3bsQI0aNXDp0iUUKlQIJ06cgLe3NwDgxIkTKF++PC5fvgxPT89U1RceHg5bW1uEhYXBxsYm7f8ARERERPRZUpvXDHYMcEhICEJDQ1G9enVlmbm5OSpXroxjx44BAE6ePImYmBidNs7OzihSpIjS5vjx47C1tVXCLwCUK1cOtra2SpvkREVFITw8XOdCREREROmfib4LSEloaCgAwNHRUWe5o6Mjbt++rbQxMzODnZ1dkjba24eGhsLBwSHJ/Ts4OChtkjNp0iSMHTv2s7bhc00+/VSvj/+phpXMluq2athGgNtp6PiaTUoN26mGbQTUsZ1q2EZAPdv5NRhsD7CWRqPRuS4iSZa96902ybX/0P0MHz4cYWFhyuXu3bsfWTkRERERGSKDDcBOTk4AkKSX9vHjx0qvsJOTE6Kjo/HixYv3tnn06FGS+3/y5EmS3uXEzM3NYWNjo3MhIiIiovTPYAOwu7s7nJycsGfPHmVZdHQ0Dh06hAoVKgAASpcuDVNTU502Dx8+xPnz55U25cuXR1hYGP777z+lzb///ouwsDClDRERERGph17HAL9+/RrXr19XroeEhCA4OBhZs2ZF7ty54e/vj4kTJ8LDwwMeHh6YOHEiLC0t0apVKwCAra0tOnXqhIEDB8Le3h5Zs2bFoEGDULRoUVSrVg0AULBgQdSsWRNdunTBzz//DADo2rUr6tatm+oZIIiIiIgo49BrAA4KCoKvr69yfcCAAQCAdu3aYcWKFRgyZAgiIiLQs2dPvHjxAt7e3ti9ezesra2V28yaNQsmJiZo3rw5IiIiULVqVaxYsQLGxsZKmzVr1qBv377KbBH169dPce5hIiIiIsrY9BqAq1SpgvdNQ6zRaBAQEICAgIAU21hYWGDevHmYN29eim2yZs2K1atXf06pRERERJRBGOwYYCIiIiKiL4EBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFSFAZiIiIiIVIUBmIiIiIhUhQGYiIiIiFTFoANwbGwsRo4cCXd3d2TKlAl58uTBuHHjEB8fr7QREQQEBMDZ2RmZMmVClSpVcOHCBZ37iYqKQp8+fZAtWzZkzpwZ9evXx71797725hARERGRATDoADxlyhQsWrQI8+fPx6VLlzB16lRMmzYN8+bNU9pMnToVM2fOxPz58xEYGAgnJyf4+fnh1atXSht/f39s2bIF69atw5EjR/D69WvUrVsXcXFx+tgsIiIiItIjE30X8D7Hjx9HgwYNUKdOHQCAm5sbfvvtNwQFBQFI6P2dPXs2RowYgcaNGwMAVq5cCUdHR6xduxbdunVDWFgYfvnlF6xatQrVqlUDAKxevRouLi7Yu3cvatSokexjR0VFISoqSrkeHh7+JTeViIiIiL4Sg+4BrlixIvbt24erV68CAM6cOYMjR46gdu3aAICQkBCEhoaievXqym3Mzc1RuXJlHDt2DABw8uRJxMTE6LRxdnZGkSJFlDbJmTRpEmxtbZWLi4vLl9hEIiIiIvrKDLoHeOjQoQgLC0OBAgVgbGyMuLg4TJgwAS1btgQAhIaGAgAcHR11bufo6Ijbt28rbczMzGBnZ5ekjfb2yRk+fDgGDBigXA8PD2cIJiIiIsoADDoAr1+/HqtXr8batWtRuHBhBAcHw9/fH87OzmjXrp3STqPR6NxORJIse9eH2pibm8Pc3PzzNoCIiIiIDI5BB+DBgwdj2LBhaNGiBQCgaNGiuH37NiZNmoR27drByckJQEIvb44cOZTbPX78WOkVdnJyQnR0NF68eKHTC/z48WNUqFDhK24NERERERkCgx4D/PbtWxgZ6ZZobGysTIPm7u4OJycn7NmzR1kfHR2NQ4cOKeG2dOnSMDU11Wnz8OFDnD9/ngGYiIiISIUMuge4Xr16mDBhAnLnzo3ChQvj9OnTmDlzJjp27AggYeiDv78/Jk6cCA8PD3h4eGDixImwtLREq1atAAC2trbo1KkTBg4cCHt7e2TNmhWDBg1C0aJFlVkhiIiIiEg9DDoAz5s3D6NGjULPnj3x+PFjODs7o1u3bhg9erTSZsiQIYiIiEDPnj3x4sULeHt7Y/fu3bC2tlbazJo1CyYmJmjevDkiIiJQtWpVrFixAsbGxvrYLCIiIiLSI4MOwNbW1pg9ezZmz56dYhuNRoOAgAAEBASk2MbCwgLz5s3TOYEGEREREamTQY8BJiIiIiJKawzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqDMBEREREpCoMwERERESkKgzARERERKQqBh+A79+/jzZt2sDe3h6WlpYoUaIETp48qawXEQQEBMDZ2RmZMmVClSpVcOHCBZ37iIqKQp8+fZAtWzZkzpwZ9evXx7179772phARERGRATDoAPzixQv4+PjA1NQUf//9Ny5evIgZM2YgS5YsSpupU6di5syZmD9/PgIDA+Hk5AQ/Pz+8evVKaePv748tW7Zg3bp1OHLkCF6/fo26desiLi5OD1tFRERERPpkou8C3mfKlClwcXHB8uXLlWVubm7K/0UEs2fPxogRI9C4cWMAwMqVK+Ho6Ii1a9eiW7duCAsLwy+//IJVq1ahWrVqAIDVq1fDxcUFe/fuRY0aNb7qNhERERGRfhl0D/D27dvh5eWFZs2awcHBASVLlsSSJUuU9SEhIQgNDUX16tWVZebm5qhcuTKOHTsGADh58iRiYmJ02jg7O6NIkSJKm+RERUUhPDxc50JERERE6Z9BB+CbN29i4cKF8PDwwK5du9C9e3f07dsXv/76KwAgNDQUAODo6KhzO0dHR2VdaGgozMzMYGdnl2Kb5EyaNAm2trbKxcXFJS03jYiIiIj0xKADcHx8PEqVKoWJEyeiZMmS6NatG7p06YKFCxfqtNNoNDrXRSTJsnd9qM3w4cMRFhamXO7evfvpG0JEREREBsOgA3COHDlQqFAhnWUFCxbEnTt3AABOTk4AkKQn9/Hjx0qvsJOTE6Kjo/HixYsU2yTH3NwcNjY2OhciIiIiSv8MOgD7+PjgypUrOsuuXr0KV1dXAIC7uzucnJywZ88eZX10dDQOHTqEChUqAABKly4NU1NTnTYPHz7E+fPnlTZEREREpB4GPQtE//79UaFCBUycOBHNmzfHf//9h8WLF2Px4sUAEoY++Pv7Y+LEifDw8ICHhwcmTpwIS0tLtGrVCgBga2uLTp06YeDAgbC3t0fWrFkxaNAgFC1aVJkVgoiIiIjUw6ADcJkyZbBlyxYMHz4c48aNg7u7O2bPno3WrVsrbYYMGYKIiAj07NkTL168gLe3N3bv3g1ra2ulzaxZs2BiYoLmzZsjIiICVatWxYoVK2BsbKyPzSIiIiIiPTLoAAwAdevWRd26dVNcr9FoEBAQgICAgBTbWFhYYN68eZg3b94XqJCIiIiI0hODHgNMRERERJTWGICJiIiISFU+KQDnyZMHz549S7L85cuXyJMnz2cXRURERET0pXxSAL516xbi4uKSLI+KisL9+/c/uygiIiIioi/low6C2759u/L/Xbt2wdbWVrkeFxeHffv2wc3NLc2KIyIiIiJKax8VgBs2bAggYeaFdu3a6awzNTWFm5sbZsyYkWbFERERERGltY8KwPHx8QASzsAWGBiIbNmyfZGiiIiIiIi+lE+aBzgkJCSt6yAiIiIi+io++UQY+/btw759+/D48WOlZ1hr2bJln10YEREREdGX8EkBeOzYsRg3bhy8vLyQI0cOaDSatK6LiIiIiOiL+KQAvGjRIqxYsQJt27ZN63qIiIiIiL6oT5oHODo6GhUqVEjrWoiIiIiIvrhPCsCdO3fG2rVr07oWIiIiIqIv7pOGQERGRmLx4sXYu3cvihUrBlNTU531M2fOTJPiiIiIiIjS2icF4LNnz6JEiRIAgPPnz+us4wFxRERERGTIPikAHzhwIK3rICIiIiL6Kj5pDDARERERUXr1ST3Avr6+7x3qsH///k8uiIiIiIjoS/qkAKwd/6sVExOD4OBgnD9/Hu3atUuLuoiIiIiIvohPCsCzZs1KdnlAQABev379WQUREREREX1JaToGuE2bNli2bFla3iURERERUZpK0wB8/PhxWFhYpOVdEhERERGlqU8aAtG4cWOd6yKChw8fIigoCKNGjUqTwoiIiIiIvoRPCsC2trY6142MjODp6Ylx48ahevXqaVIYEREREdGX8EkBePny5WldBxERERHRV/FJAVjr5MmTuHTpEjQaDQoVKoSSJUumVV1ERERERF/EJwXgx48fo0WLFjh48CCyZMkCEUFYWBh8fX2xbt06ZM+ePa3rJCIiIiJKE580C0SfPn0QHh6OCxcu4Pnz53jx4gXOnz+P8PBw9O3bN61rJCIiIiJKM5/UA7xz507s3bsXBQsWVJYVKlQIP/30Ew+CIyIiIiKD9kk9wPHx8TA1NU2y3NTUFPHx8Z9dFBERERHRl/JJAfjbb79Fv3798ODBA2XZ/fv30b9/f1StWjXNiiMiIiIiSmufFIDnz5+PV69ewc3NDXnz5kW+fPng7u6OV69eYd68eWldIxERERFRmvmkMcAuLi44deoU9uzZg8uXL0NEUKhQIVSrVi2t6yMiIiIiSlMf1QO8f/9+FCpUCOHh4QAAPz8/9OnTB3379kWZMmVQuHBhHD58+IsUSkRERESUFj4qAM+ePRtdunSBjY1NknW2trbo1q0bZs6cmWbFERERERGltY8KwGfOnEHNmjVTXF+9enWcPHnys4siIiIiIvpSPioAP3r0KNnpz7RMTEzw5MmTzy6KiIiIiOhL+agAnDNnTpw7dy7F9WfPnkWOHDk+uygiIiIioi/lowJw7dq1MXr0aERGRiZZFxERgTFjxqBu3bppVhwRERERUVr7qGnQRo4cic2bNyN//vzo3bs3PD09odFocOnSJfz000+Ii4vDiBEjvlStRERERESf7aMCsKOjI44dO4YePXpg+PDhEBEAgEajQY0aNbBgwQI4Ojp+kUKJiIiIiNLCR58Iw9XVFTt27MCLFy9w/fp1iAg8PDxgZ2f3JeojIiIiIkpTn3QmOACws7NDmTJl0rIWIiIiIqIv7qMOgiMiIiIiSu8YgImIiIhIVRiAiYiIiEhVGICJiIiISFUYgImIiIhIVRiAiYiIiEhVGICJiIiISFUYgImIiIhIVRiAiYiIiEhVGICJiIiISFUYgImIiIhIVRiAiYiIiEhVGICJiIiISFUYgImIiIhIVRiAiYiIiEhVGICJiIiISFUYgImIiIhIVRiAiYiIiEhVGICJiIiISFXSVQCeNGkSNBoN/P39lWUigoCAADg7OyNTpkyoUqUKLly4oHO7qKgo9OnTB9myZUPmzJlRv3593Lt37ytXT0RERESGIN0E4MDAQCxevBjFihXTWT516lTMnDkT8+fPR2BgIJycnODn54dXr14pbfz9/bFlyxasW7cOR44cwevXr1G3bl3ExcV97c0gIiIiIj1LFwH49evXaN26NZYsWQI7OztluYhg9uzZGDFiBBo3bowiRYpg5cqVePv2LdauXQsACAsLwy+//IIZM2agWrVqKFmyJFavXo1z585h7969+tokIiIiItKTdBGAe/XqhTp16qBatWo6y0NCQhAaGorq1asry8zNzVG5cmUcO3YMAHDy5EnExMTotHF2dkaRIkWUNsmJiopCeHi4zoWIiIiI0j8TfRfwIevWrcOpU6cQGBiYZF1oaCgAwNHRUWe5o6Mjbt++rbQxMzPT6TnWttHePjmTJk3C2LFjP7d8IiIiIjIwBt0DfPfuXfTr1w+rV6+GhYVFiu00Go3OdRFJsuxdH2ozfPhwhIWFKZe7d+9+XPFEREREZJAMOgCfPHkSjx8/RunSpWFiYgITExMcOnQIc+fOhYmJidLz+25P7uPHj5V1Tk5OiI6OxosXL1Jskxxzc3PY2NjoXIiIiIgo/TPoAFy1alWcO3cOwcHBysXLywutW7dGcHAw8uTJAycnJ+zZs0e5TXR0NA4dOoQKFSoAAEqXLg1TU1OdNg8fPsT58+eVNkRERESkHgY9Btja2hpFihTRWZY5c2bY29sry/39/TFx4kR4eHjAw8MDEydOhKWlJVq1agUAsLW1RadOnTBw4EDY29sja9asGDRoEIoWLZrkoDoiIiIiyvgMOgCnxpAhQxAREYGePXvixYsX8Pb2xu7du2Ftba20mTVrFkxMTNC8eXNERESgatWqWLFiBYyNjfVYORERERHpQ7oLwAcPHtS5rtFoEBAQgICAgBRvY2FhgXnz5mHevHlftjgiIiIiMngGPQaYiIiIiCitMQATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaowABMRERGRqjAAExEREZGqMAATERERkaoYdACeNGkSypQpA2trazg4OKBhw4a4cuWKThsRQUBAAJydnZEpUyZUqVIFFy5c0GkTFRWFPn36IFu2bMicOTPq16+Pe/fufc1NISIiIiIDYdAB+NChQ+jVqxdOnDiBPXv2IDY2FtWrV8ebN2+UNlOnTsXMmTMxf/58BAYGwsnJCX5+fnj16pXSxt/fH1u2bMG6detw5MgRvH79GnXr1kVcXJw+NouIiIiI9MhE3wW8z86dO3WuL1++HA4ODjh58iQqVaoEEcHs2bMxYsQING7cGACwcuVKODo6Yu3atejWrRvCwsLwyy+/YNWqVahWrRoAYPXq1XBxccHevXtRo0aNr75dRERERKQ/Bt0D/K6wsDAAQNasWQEAISEhCA0NRfXq1ZU25ubmqFy5Mo4dOwYAOHnyJGJiYnTaODs7o0iRIkqb5ERFRSE8PFznQkRERETpX7oJwCKCAQMGoGLFiihSpAgAIDQ0FADg6Oio09bR0VFZFxoaCjMzM9jZ2aXY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",
      "text/plain": [
       "<Figure size 800x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Count occurrences of each class in y_test\n",
    "unique, counts = np.unique(y_test, return_counts=True)\n",
    "\n",
    "# Plot\n",
    "plt.figure(figsize=(8, 5))\n",
    "plt.bar(unique, counts, color=\"skyblue\")\n",
    "plt.xticks(ticks=unique, labels=class_labels, rotation=45)\n",
    "plt.title(\"Class Distribution of Testing Data (MNIST Fashion)\")\n",
    "plt.xlabel(\"Fashion Category\")\n",
    "plt.ylabel(\"Count\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "0518c3fa-9d26-4280-a6a3-6556054d572e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load dataset\n",
    "# (X_train, y_train), (X_test, y_test) = cifar10.load_data()\n",
    "\n",
    "# Flatten images from 32x32x3 to 1D (3072 features)\n",
    "X_train = X_train.reshape(X_train.shape[0], -1)\n",
    "X_test = X_test.reshape(X_test.shape[0], -1)\n",
    "\n",
    "# Convert labels to 1D array\n",
    "y_train = y_train.flatten()\n",
    "y_test = y_test.flatten()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "952b2b1f-e566-43b1-843b-793baac5ea34",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Decision Tree Accuracy: 0.7683\n"
     ]
    }
   ],
   "source": [
    "\n",
    "# Train Decision Tree Classifier on PCA-reduced data\n",
    "dt_model = DecisionTreeClassifier(random_state=42, max_depth=20)\n",
    "dt_model.fit(X_train_pca, y_train)\n",
    "\n",
    "# Make predictions\n",
    "y_pred = dt_model.predict(X_test_pca)\n",
    "\n",
    "# Evaluate model performance\n",
    "accuracy = accuracy_score(y_test, y_pred)\n",
    "print(f\"Decision Tree Accuracy: {accuracy:.4f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "fa081036-79ed-468f-95a8-308f2f2108b3",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[719   9  38  50  14   4 144   1  19   2]\n",
      " [ 12 939   7  29   5   0   6   0   2   0]\n",
      " [ 28   8 658  17 148   2 117   0  20   2]\n",
      " [ 50  34  19 785  56   2  45   0   9   0]\n",
      " [ 14   2 154  48 665   1 105   0  11   0]\n",
      " [  4   0   2   4   3 819   3  91  18  56]\n",
      " [165   8 130  46 136   4 479   2  28   2]\n",
      " [  2   0   0   0   0  75   0 847   6  70]\n",
      " [  3   3  25  10  13  18  26  16 882   4]\n",
      " [  0   0   0   1   1  33   2  70   3 890]]\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0      0.721     0.719     0.720      1000\n",
      "           1      0.936     0.939     0.938      1000\n",
      "           2      0.637     0.658     0.647      1000\n",
      "           3      0.793     0.785     0.789      1000\n",
      "           4      0.639     0.665     0.652      1000\n",
      "           5      0.855     0.819     0.837      1000\n",
      "           6      0.517     0.479     0.497      1000\n",
      "           7      0.825     0.847     0.836      1000\n",
      "           8      0.884     0.882     0.883      1000\n",
      "           9      0.867     0.890     0.879      1000\n",
      "\n",
      "    accuracy                          0.768     10000\n",
      "   macro avg      0.767     0.768     0.768     10000\n",
      "weighted avg      0.767     0.768     0.768     10000\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn import metrics\n",
    "# display the metrics of the model's classification through confusion matrix and classification report\n",
    "# (accuracy / precision / recall / f1)\n",
    "print(metrics.confusion_matrix(y_test, y_pred))\n",
    "\n",
    "print(metrics.classification_report(y_test, y_pred, digits=3))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd887da2-86c2-43ea-b16a-463e3a99c9e5",
   "metadata": {},
   "source": [
    "# A version with Feature Selection with PCA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "492682fe-5f22-4a0d-99dc-873791a6243f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Flatten images from 28x28 matrix for each image to a row (1D) with 784 features.\n",
    "X_train = X_train.reshape(X_train.shape[0], -1)\n",
    "X_test = X_test.reshape(X_test.shape[0], -1)\n",
    "\n",
    "# Normalize pixel values (0-1 range)\n",
    "X_train = X_train / 255.0\n",
    "X_test = X_test / 255.0\n",
    "\n",
    "# Apply PCA to reduce dimensions (e.g., keep 95% variance)\n",
    "pca = PCA(n_components=0.95, whiten=True)  # Keep 95% variance\n",
    "X_train_pca = pca.fit_transform(X_train)\n",
    "X_test_pca = pca.transform(X_test)\n",
    "\n",
    "print(f\"Original feature count: {X_train.shape[1]}\")\n",
    "print(f\"Reduced feature count: {X_train_pca.shape[1]}\")\n",
    "\n",
    "# Train Decision Tree Classifier on PCA-reduced data\n",
    "dt_model2 = DecisionTreeClassifier(random_state=42, max_depth=20)\n",
    "dt_model2.fit(X_train_pca, y_train)\n",
    "\n",
    "# Make predictions\n",
    "y_pred2 = dt_model2.predict(X_test_pca)\n",
    "\n",
    "# Evaluate model performance\n",
    "accuracy = accuracy_score(y_test, y_pred2)\n",
    "print(f\"Decision Tree Accuracy after PCA: {accuracy:.4f}\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d83c2cbd-a496-4538-8141-043d9d506367",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import metrics\n",
    "# display the metrics of the model's classification through confusion matrix and classification report\n",
    "# (accuracy / precision / recall / f1)\n",
    "print(metrics.confusion_matrix(y_test, y_pred))\n",
    "\n",
    "print(metrics.classification_report(y_test, y_pred, digits=3))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "anaconda-panel-2023.05-py310",
   "language": "python",
   "name": "conda-env-anaconda-panel-2023.05-py310-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
