{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Multi-class Calssification\n",
    "\n",
    "For this example, we will use one-vs-all logistic regression and <a href=\"https://github.com/Mr-MayankThakur/Machine-Learning-Implementations-with-Numpy/tree/master/Neural%20Networks\">neural networks</a> to recognize handwritten digits (from 0 to 9). Automated handwritten digit recognition is widely used today - from recognizing zip codes (postal codes)\n",
    "on mail envelopes to recognizing amounts written on bank checks. This\n",
    "example will show you how the methods you’ve learned can be used for this\n",
    "classification task.\n",
    "In the first part of the example, we will extend our previous implemention of logistic regression and apply it to one-vs-all classification.\n",
    "\n",
    "**NOTE: The example and sample data is being taken from the \"Machine Learning course by Andrew Ng\" in Coursera.**\n",
    "\n",
    "## Dataset\n",
    "\n",
    "We are given a data set in ex3data1.mat that contains 5000 training examples of handwritten digits. The .mat format means that that the data has\n",
    "been saved in a native Octave/MATLAB matrix format, instead of a text\n",
    "(ASCII) format like a csv-file. These matrices can be read directly into your\n",
    "program by using the loadmat command from scipy.io library."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# initial imports\n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "%matplotlib inline\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# imports from my models\n",
    "from models.data_preprocessing import add_bias_unit\n",
    "from models.logistic_regression import cost_function, predict, gradient_descent, gradient_function, sigmoid"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# loading dataset\n",
    "import scipy.io as sio  # sio for loading matlab file .mat\n",
    "data = sio.loadmat('data/ex3data1.mat')\n",
    "X = data['X']  # (5000, 400)\n",
    "y = data['y']  # (5000, 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There are 5000 training examples in ex3data1.mat, where each training\n",
    "example is a 20 pixel by 20 pixel grayscale image of the digit. Each pixel is\n",
    "represented by a floating point number indicating the grayscale intensity at\n",
    "that location. The 20 by 20 grid of pixels is “unrolled” into a 400-dimensional\n",
    "vector. Each of these training examples becomes a single row in our data\n",
    "matrix X. This gives us a 5000 by 400 matrix X where every row is a training\n",
    "example for a handwritten digit image.\n",
    "\n",
    "$$X = \\begin{bmatrix}\\dots & \\left( x^{(1)} \\right)^{T}  & \\dots \\\\\n",
    "\\dots & \\left( x^{(2)} \\right)^{T} & \\dots \\\\\n",
    "& \\vdots & \\\\ \n",
    "\\dots & \\left( x^{(m)} \\right)^{T} & \\dots\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "The second part of the training set is a 5000-dimensional vector y that\n",
    "contains labels for the training set. To make things more compatible with\n",
    "Octave/MATLAB indexing, where there is no zero index, we have mapped\n",
    "the digit zero to the value ten. Therefore, a “0” digit is labeled as “10”, while\n",
    "the digits “1” to “9” are labeled as “1” to “9” in their natural order.\n",
    "\n",
    "## Loading and Visualizing Data\n",
    "\n",
    "We will begin by visualizing a subset of the training set. the below code randomly selects 100 rows from X using random.choice function and maps each row to a 20 pixel by\n",
    "20 pixel grayscale image and displays the images together.\n",
    "\n",
    "Note: This is a subset of the MNIST handwritten digit dataset (http://yann.lecun.com/exdb/mnist/)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loading and Visualizing Data ...\n",
      "Randomly selecting 100 data points to display\n"
     ]
    }
   ],
   "source": [
    "# Setting up initial variables we will be needing for the script.\n",
    "input_layer_size  = 400  # 20x20 Input Images of Digits\n",
    "num_labels = 10          # 10 labels, from 1 to 10\n",
    "                         # (note that we have mapped \"0\" to label 10)\n",
    "\n",
    "print('Loading and Visualizing Data ...')\n",
    "\n",
    "m = X.shape[0]\n",
    "\n",
    "print(\"Randomly selecting 100 data points to display\")\n",
    "rand_indices = np.random.choice(range(0,m), 100)\n",
    "rand_samples = X[rand_indices, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAJBCAYAAACwDzogAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydeaBVZdX/P76vjZaadLnmEA6QlWMq5i0TowBnERzSxMQBU0MRzTKTFHOehxxRU7PSsMigFCUVZ5xxynJAKe2qiOVQEvft94e/77O/m7u593i555x9juvzj9fFuffsZz/D3s9a6/mupf773//+lyAIgiAIgqBb/qfeFxAEQRAEQdAoxItTEARBEARBhcSLUxAEQRAEQYXEi1MQBEEQBEGFxItTEARBEARBhcSLUxAEQRAEQYUs0YvTzJkzGTZsGEOGDOHiiy/urWsKgiAIgiAoJT1+cero6GDixIlMmjSJadOmMXXqVJ5++unevLYgCIIgCIJSsXRPf3H27Nn069ePVVddFYBtttmGGTNm0L9//8X+Tv/+/eno6OjpV5aGvn37cu+993ayDxgwoCna19LS8r5sHzR/G2MONgZdjdFm78NoX2OwuPbBu21cuHBhja+o92ltbS1sY49fnNrb21lxxRVzXzB79uwuf6ejo4NXX321p19ZGr7whS8U2js6Opg3b16Nr6b32WCDDQrtzd4+aP42dnR08PLLL9f4anqfrubg/Pnza3w1vU93Y/SVV16p4dVUh676sNnHaHt7e42vpvdZXPsAFi5cyN///vcaXk112HDDDQvtPX5xCoJq4pWA/u///i/3X2fppbMhvNRSS1X/wqqMt1G70kZro/quqA//93//N9kaoS1d4e0r8iCorY3ezqA50HjtzhP0P//zbgaPz9VGoahtvn72Fj3OcWptbc29Uba3t9Pa2torFxUEQRAEQVBGevzitO666zJnzhzmzp3LggULmDZtGoMHD+7NawuCIAiCICgVPfZhLb300kyYMIF9992Xjo4ORo4cyYABA3rz2irG3eQLFizoZKvUVS5XplyVAB/96Ed74xIrxl2N//nPfzr9e5EbVTa/7kZFfaB+BFhhhRUA6NOnT7Kprc8//3yyKRzUiKERXfuHP/zhZJMH1/Mh3nnnHaB8bfSx+sEPfhDIz53lllsOgJdeeinZNNYbISTgIdR///vfACyzzDLJttpqqwFZ/wC88MILQD6k96EPfaialxkEQPb883mp+bjGGmskm9YRX0/efPNNgFyemY/hsuHPTM1DX1O05vgzZUlZouDfoEGDGDRoUG9dSxAEQRAEQalp6ORw7QKXX375ZNt8882Bd49KLvq57pAX4/XXX0+26667LvdvvUnRW7zvBtZdd91O//7aa68B8Le//a2TzU+DKSGuzLt59YvvGHS9X/3qV5Pt4IMPBmCTTTZJtgceeACA3XbbrdPfKxPq4yIPkfe/dkPf+MY3ku30008HYNddd022mTNnAtVJeKwUv255XzbaaKNk++Y3vwmQkybR6ZTLLrss2S666CKA3EnbsnlN1S+f+MQnkm2rrbYCsrUGYI899gDInXa76qqrALjllluSTeP2Ax/4QJWuuDM+L9Qe93yVzXtZL+Slcc+EvKdlXkeFR1k++clPArDWWmslm8btAQcckGxaR9ROgKuvvhqAsWPHJpvmednmJ5BLEdKce+utt5Jtxx13BOCxxx5LtiWdf+W7C0EQBEEQBCUlXpyCIAiCIAgqpOFCdR7Wkdtw/Pjxybb33nsD8LGPfSzZ5KruTndFv/PUU08l27XXXpv7rt5A1+Eu9DFjxgCw5557Jpvcrc6//vUvIO+K/Oc//wnAlClTkk3hgT/96U/J5u7YeuFucN3vL33pS8n2ta99DYARI0Yk26c+9Skg3+YbbrgByCfjlsWNXDS2PByi6/T+Vyhol1126fR3lKxZbzT3PCl65513BmD06NHJphCWt1lt/d73vpdsL774IkCuzmU9k6eLDofIzb/PPvsk28CBA4F8uFSim35vfvjDHwIwbNiwZNM8nzNnTrJVK+yq8ePhmn333ReAc889N9mUxF5pOMrXUY2JemqNVar55tele+Ofk6DjQQcdlGwKJz/44IPJVoZ1tOhA1GabbZZsJ5xwAgCrr756sul54muwfvb7ICHrt99+O9nqmRrgeLK7DqOdeOKJyaaDRB4yr0YKRzmeNEEQBEEQBA1AOV4jK6Bot6udge8Gtau49NJLk+2ZZ54B8m/ac+fOBWDZZZdNtra2NiD/tloNL4Z2C9qtA/z4xz/O/RfgkksuAfI7HCXcrrfeesm2xRZbAHDssccmm/72gQcemGzypNUyMVXord9LSSj5cKeddkq2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tIw1pYJifCyFDn76v2lMQxU5CIIgqCftznHq1q1bzvswa9YsunXrVpVGBUEQBEEQlJF2Pzj17t2bGTNmMHPmTD7++GMmTZpE//79q9m2IAiCIAiCUtHuOMdiiy3GqFGjGDZsGC0tLQwePJhevXpVs20VM3r06PRa4Zyzzjor2f7zn/8AUSy2DHjYVGP1ySefJJuK/HoIbokllgBg6aWXTjaFYl966aVk888pGx5mVIK9z8cIOQZB/VD439eMomRm/Z3fq3rt92z8tixaLNRq3a9fv5qWxgiCIAiCICgTTb3NlffiL3/5S7KdcsopAKy44orJ9pOf/ASAjz/+eJ73BvXFPS//93//B8A+++yTbLvvvjsAX/ziF5NtrbXWAuBLX/pSsj366KMADB48ONl0UqVMY6v+Lr744sm28cYbA+ROncycOXOe92oXW7aDDl6lSf0r2q27dIXa7eNahr60h6IqVbJ5n8rcv7YqbZW57e3F+yxv0SabbJJsq6+++jx/p/t27ty5yaZ15tlnn022ekc1FqZSWkcZW60v7ZE90Pj72roghH8xCIIgCIKgQuLBKQiCIAiCoEKaOlQnd+XNN9+cbMsvvzyQTxg/44wzAHjttdeSrb0uumqgdnvocGFcr63xhS98Ib2ut4vWv0/uVE/GHDRoEABnnnlmsnXu3BkgJxD3xBNPADB27Nhkmzx5MkBOKK8sLmh3HcvVf8wxxyTbHnvsAeTn429/+1sAPvzww2RT4rvCkpC5pxuRTK6x8+usSgGe67jUUksBMGDAgGSbPXs2AMcee2yyaYzLllhblMjvNl17DztqPfnoo4/q0cQFwtcW9UcHLiDrj8+9ooMWGnf/PL0uc6K07kcfG1W8+PnPf55sffv2BfJ917h6qO69994D4O677042/d78+9//rmbT50HpDb6ua9yKxll/7//ejIreRaFwneL3cGvRb4De+/777yfbHXfcAcArr7ySbAuyppZrhgdBEARBEJSYpvY4CX/6fuCBB4D87mKllVYC8gm4jfQ4aae69dZbJ5t26UW7Bkft9idr/V3RTtDr7PiOspaobb6z0c5nt912S7Zf/vKXuX8D+NWvfgXAhRdemGxPPfXUPJ8nynSMv0j1XMnrhxxySLJp/LXrBdhiiy2AfB81h2+44YZkO+2004DMgwO1uQZFau3rrrsuAH369Em2zTbbDCBX4FsewmWXXTbZ9txzTyDvpamVl3V++PfJq1B0v3m7JbGyyiqrJJv6P3DgwGST+O9hhx2WbPKK+sGAelK0S99mm20A+OlPf5ps6qPaC/DnP/8ZgAcffDDZPvjgAyAvC6J719dWJUo30gPs81ZRiK9+9avJtv322wOZ9wjgmmuumedz5EHy+02eUvUTavt74r8D8q5cccUVyaZ2+N/pflx//fWTTWV63Ov75JNPAuVaR1vDr7MOEnkJLc15X2eWW245IPuNBdhll10AGDJkSLK9/fbb83zH/AiPUxAEQRAEQYXEg1MQBEEQBEGFlNo/V5RcXBSu8WS+tddeG4CuXbsmW71DAkV4G5ZcckkADj300GRbeeWVgbyLedVVVwXyLsZ//OMfQD4JUe5bqW4D3HXXXQDstdde87Sh1i50jZGH4EaOHAnkQxkKsbqLWf33cJBCAw8//HCyFfWlEeNclAju1/yHP/whkE+YVR/ffPPNZJsxYwaQDxNpLnuY79VXXwXyCfVF4duFRW10V7/CPJqDkCW9e/Ks7kcljkMWTvA+11vzxkP6Smb3e+vrX/86AD169Ei2jTbaCIA11lgj2ZS0//TTTyfbOuusk/svwG233QY0LlSncdh0002TTSEerUGQhVaVHA1ZCOP5559PNo2drzMKifzsZz9LNh3W8fu/lhSFYBWegSwsecABBySb0hb23nvvZJs0aRJQfKCmSJ/LbQp11WJOexhNobUf/ehHyfblL38ZyOYqZOPiY/DNb34TyI9fGX4bK0HX2n/rjzrqKCCv76d1y0N1SokZMWJEsun+d71Hze8I1QVBEARBEFSRUnuc/OlSiX3Dhw9PNu0MfLero97undDOsJHHZH138s477wB5T0LR3+nIsO841Fd5qABuuukmACZMmJBsJ554IgDvvvtustUrIV7t9R3e4YcfDuQ9KhoP3x1IRdzfq6RGJUYDXHrppUDeQ1fPZNSiGlbyIP74xz9OtmWWWWae9yqRVjsmyNTv/frIO3fwwQcn26677grA1VdfnWwLslOqFPXr9ddfTzZJJiiJEjJviu9slUS+7777Jtu9994L5A9t1Gu85BV0L4R2n36UWd4n97LosMKUKVOSTdfEx0reJafR8hiaoy49oDX14osvTrbzzjsPyHuhdtxxRyC/3upa+d8pudrnRL36rf6510Re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m8Jghx9+eLJJVK4R2hZyiXv/zj77bCDvOn3yyScBcuVtFNby8J0+Z9iwYcl22223AfDss88mW7WS490N3rt3bwDGjh2bbArVefhuqaWWAuD9999PNoUWTzzxxGRrZq0RjetGG22UbD//+c8B2GyzzZJN4cr77rtvns/w8Vcoyw8H6Po1Ipygcfd5pMR+D/MIt2meeALrn//8ZyCbG5AlwjcyXOLzW/2rtD0entTn+HvLOL/VZu/3z372MwDWX3/9ZHvuuefm+bsyhHq8PbrW6667brL17dsXgE022STZVAXD70GldHjyeyMPrmiu3H///cm25557ArDiiismm34ffG2VmOOxxx6bbPqN8XSXl156CSjnAR2/l3QtPPS47bbbArDbbrsl29NPPw1Ud16W78oEQRAEQRCUlMZvDVpB3iPInpY9aXTVVVcF8js2iXKedNJJyfbiiy8CWRIdwC677ALACSeckGz67EoTXauJnu5d0uH8888H4JZbbkk2eRy8jdpV7LTTTsk2YMAAgFx5DXmmarGT8COhRxxxBABf/epXk02eMvcEPvbYY0B+Jzho0CAA7rrrrmTTDtAPBpQZn7err746kE+eladpypQpyTZy5EgAXn311WQrGifNR09qrffO0BNOt956ayC/67v++usB+OMf/5hsaqN7HJWsqh0uZLvh9957b573NgJd5xVWWCHZdLiiSC6k6L2+Pmk++AENSYY0OgHZ1xS93m677ZJNr13WRUnIZUHX3A+hKNLgXhXNLz+Eonnt3m55cfwwRiPRHPn3v/+dbJ7YLXTPuOdtxowZAOy6667Jpt9BP0wlb1UZPU6+tsqLLzkGKO53LSjflQmCIAiCICgp8eAUBEEQBEFQIaUM1RUV7/3mN78J5CtOv/766wDcfffdyfbQQw8B+eRphauOOeaYZFPCuEJaAF/72tcAmDp1arK5rk4tkYvxwgsvTDYl0rqrX9fEk2zVh+OPPz7ZlKz7i1/8Itn+8Y9/APnE4mrhbl3pZnm49IorrgDgrbfemue9StQE2GuvvYBMjwuKE6bLiMbGr4XCAwppAfztb38D4PTTT082has8gbFIJV80IqyjUIaL3p533nlAcQjWr4Nc7IMHD042XRNPVlXYql73XRF+3TUeHtLX+F155ZXJpvvNQwS6z/bff/9k0+uJEycm28knn5z7rkbh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8hWOPfZY9tprL+bOncuIESNYY401OvLYOgylqzx8q5oLT2UtueSSQHOEbBVW90bBK620EgD//e9/k021BGVp5qlx8XqEInS87t8SSyxRuwNbCIrSoz73ioomi2ot5FtnaOjp9UybbbYZAL/73e+Sbb311gPy8+y5554D8uerLPNQaKx8zIoajip9tSh6wmUcZ5+32gi0++67J9uGG24IwAEHHJBs7733HtAYf3T+vZZu1113BWDvvfdOtnfffReAJ598Mtma4b6/OOLXnK5Dn7d67X+n+63Pk4W59yxSjdPmm2/O5ptvvigfEQRBEARB0Glo2uLwopXfOuusk15rpbTMMssk21133QXAm2++mWy13HXR0fiquGvXrgDsu+++yfaLX/wCgMsvvzzZRo8eDeQjN/VCY+TRJfXI2mqrrZKt6Nj+85//AOS2ir700ktAx215X1h0/n3ufec73wFgtdVWS7ZevXq1ee/LL7/cxvb8888DMGfOnGQr26pYEcJ111032caMGQPkfX7iiSeArCgXsvNVlmusKDq4wgorANk4AkyfPh3I3ydU3+lztdrok+boRx991J7DrgmKIPq4Xn311QC53dQnnngiQK7etZGRM51zH4dvfvObALz44ovJpnt9WeZeUB1F0XwfQ421/9avueaaQH5evv766wA88sgjyabrvprfjPLFhoMgCIIgCEpKPDgFQRAEQRBUSdPGKV1rpLW1FcgXMCp89/HHHyfbCy+8AJBrHdMZQrny1Yujhw0bBsBBBx2UbK+88goAkyZNSrZ6h9U91Ko0z84775xshx9+OJBPEaiQ89///neyffvb3wbyoda99toLgH/961/JVuvUlqdHlZrScQD069cPyFI+8IXiLuRDwvLRbUpDHnnkkcmmlEgj0yFFKWE/xrXXXhvIwuEAv/nNb4B8MW4ZivndFxWw77jjjskmDSBtrAD4xz/+AeTvE+qY4D7NL1Xn46e00sEHH7zwDnQgnqJUOvmMM85Itp49ewJw6KGHJtuf//xnIO9PGQr8/f4vv1x8WQXsZThWp2jOuC/++su2ove6TfdC/00r44aEIorKIHTN+WYF3W91j4Uv1L8hP9Z///vfAdhpp52STb+P1fzmd46zFgRBEARBUALKH05ZSFTUqCdPgN/+9rdA/ilU/OEPf0ivH3roIaAcK+EF4SsPRW4O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\n",
      "text/plain": [
       "<Figure size 720x720 with 100 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# displaying the 100 random samples using matplotlib\n",
    "sns.set_style('white')\n",
    "fig, axis = plt.subplots(10,10,sharex=True, sharey=True, figsize=(10,10))\n",
    "fig.subplots_adjust(wspace=0.1, hspace=0.1)\n",
    "axis_flt = axis.flatten()\n",
    "for i in range(100):\n",
    "    axis_flt[i].imshow(rand_samples[i, :].reshape([20,20]).T, cmap='gray')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Vectorize Logistic Regression\n",
    "\n",
    "In this part of the example, We will reuse our logistic regression code from the last exercise. Our task here is to make sure that our regularized logistic regression implementation is vectorized. After that, we will implement one-vs-all classification for the handwritten digit dataset.\n",
    "\n",
    "We will be using multiple one-vs-all logistic regression models to build a\n",
    "multi-class classifier. Since there are 10 classes, you will need to train 10\n",
    "separate logistic regression classifiers. To make this training efficient, it is\n",
    "important to ensure that your code is well vectorized."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Test case for CostFunction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Testing logistic regression CostFunction() with regularization\n",
      "\n",
      "Cost: 2.534819\n",
      "\n",
      "Expected cost: 2.534819\n",
      "\n",
      "Gradients: [ 0.14656137 -0.54855841  0.72472227  1.39800296]\n",
      "Expected gradients: [0.146561 -0.548558 0.724722 1.398003]\n"
     ]
    }
   ],
   "source": [
    "print('\\nTesting logistic regression CostFunction() with regularization')\n",
    "theta_t = np.array([-2, -1, 1, 2]).reshape(4,1)\n",
    "\n",
    "X_t = np.hstack([np.ones([5,1]), np.arange(1,16).reshape(5,3, order='F')/10.0])\n",
    "y_t = (np.array([1,0,1,0,1]) >= 0.5).astype(np.int64).reshape(5,1)\n",
    "lambda_t = 3\n",
    "\n",
    "J = cost_function(theta_t, X_t, y_t, lambda_t, regularized=True)\n",
    "grad = gradient_function(theta_t, X_t, y_t, lambda_t, regularized=True)\n",
    "\n",
    "print('\\nCost: {:.6f}\\n'.format(J[0,0]))\n",
    "print('Expected cost: 2.534819\\n')\n",
    "print('Gradients: {}'.format(grad))\n",
    "print('Expected gradients: [0.146561 -0.548558 0.724722 1.398003]')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## One-vs-All Training\n",
    "\n",
    "Here we are going to Train num_labels(10 in our case) logistic regression classifiers and return each of these classifiers in a matrix all_theta, where the i-th row of all_theta corresponds to the classifier for label i.\n",
    "\n",
    "We will implement one-vs-all classification by training multiple regularized logistic regression classifiers, one for each of the K classes in our dataset. \n",
    "\n",
    "\n",
    "In the handwritten digits dataset, K = 10, but our code should work for any value of K. In particular, our code should return all the classifier parameters\n",
    "in a matrix Θ ∈ R<sup>K×(N+1)</sup> , where each row of Θ corresponds to the learned\n",
    "logistic regression parameters for one class. You can do this with a “for”-loop\n",
    "from 1 to K, training each classifier independently.\n",
    "Note that the y argument to this function is a vector of labels from 1 to\n",
    "10, where we have mapped the digit “0” to the label 10 (to avoid confusions\n",
    "with indexing).\n",
    "When training the classifier for class k ∈ {1, ..., K}, you will want a mdimensional vector of labels y, where y$_{j}$ ∈ 0, 1 indicates whether the j-th\n",
    "training instance belongs to class k (y$_{1}$ = 1), or if it belongs to a different\n",
    "class (y$_{j}$ = 0). You may find logical arrays helpful for this task."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training One-vs-All Logistic Regression...\n"
     ]
    }
   ],
   "source": [
    "print('Training One-vs-All Logistic Regression...')\n",
    "\n",
    "lamda = 0.1\n",
    "X_bias = add_bias_unit(X)\n",
    "n=X_bias.shape[1]\n",
    "\n",
    "# mapping zeros in 'y' back to 0 instead of 10\n",
    "y[y==10] = 0\n",
    "\n",
    "from scipy.optimize import minimize\n",
    "\n",
    "op_list = []\n",
    "\n",
    "for i in np.arange(num_labels):\n",
    "    initial_theta = np.zeros(n)\n",
    "    op_list.append(minimize(fun=cost_function, x0=initial_theta, jac=gradient_function, args=(X_bias, (y==i), lamda, True), method='CG'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## One-vs-all Prediction\n",
    "\n",
    "As we have trained our one-vs-all classifier, we can now use it to predict the\n",
    "digit contained in a given image. For each input, it should compute the\n",
    "“probability” that it belongs to each class using the trained logistic regression\n",
    "classifiers. Our one-vs-all prediction function will pick the class for which the\n",
    "corresponding logistic regression classifier outputs the highest probability and\n",
    "return the class label (1, 2,..., or K) as the prediction for the input example."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "all_theta = np.ones([n, num_labels])  # to store the values of all the individual thetas into one\n",
    "\n",
    "for i, op in enumerate(op_list):\n",
    "    all_theta[:,i] = op.x\n",
    "    \n",
    "temp = sigmoid(X_bias @ all_theta) # predictions on each example with each classifier\n",
    "p = temp.argmax(axis=1).reshape(m,1)  # selecting the number(index) for which classifier is most confident\n",
    "\n",
    "print(\"The Accuracy of our classifier is: {:.2f}%\".format((p==y).mean()*100))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "prediction for the random samples displayed in earlier part of this example\n",
      "[[5 8 3 4 0 3 4 7 0 1]\n",
      " [3 2 5 9 0 0 0 4 2 9]\n",
      " [4 0 0 1 3 8 2 1 1 5]\n",
      " [4 8 6 4 3 1 6 8 8 6]\n",
      " [1 6 7 4 6 0 9 2 2 8]\n",
      " [7 4 7 2 2 1 1 6 8 8]\n",
      " [3 7 5 0 3 7 7 5 7 8]\n",
      " [0 3 3 5 4 4 1 3 3 1]\n",
      " [6 8 8 9 8 5 9 8 8 0]\n",
      " [1 1 8 8 6 5 6 6 7 8]]\n"
     ]
    }
   ],
   "source": [
    "print('prediction for the random samples displayed in earlier part of this example')\n",
    "\n",
    "random_samples_pred = sigmoid(add_bias_unit(rand_samples) @ all_theta)\n",
    "p_rand = random_samples_pred.argmax(axis=1)\n",
    "\n",
    "print(p_rand.reshape([10,10]))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}