{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Week 2+3. Regularization, Linear Classification, towards Logistic regression\n", "\n", "Augustin Cosse\n", "\n", "__Material covered:__ Ridge and LASSO regression, linear classification through Multiple Discriminant, OLS and Normal Equations, one-vs-rest and one-vs-one classifiers. Use of the meshgrid function to display the classification boundaries. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 1. Binary discriminant through OLS and Normal Equations\n", "\n", "In this first demo, we will solve the classification problem as follows.\n", "\n", "- We first assign 0/1 labels to each of the points (recall that we are in the classification framework so the target now take a finite set of values). That is we define our targets as +1 and 0 depending on whether our points are from the yellow or purple class. This gives a vector \n", "$$\\mathbf{t} = [t^{(1)}, t^{(2)}, \\ldots, t^{(N)}]$$\n", "\n", "if we have $n$ points\n", "\n", "- We then store the sample points in a matrix $\\mathbf{X}$ as we did for regression. In this case the points are 2D, we thus have \n", "\n", "$$\\mathbf{X} = \\left[\\begin{array}\n", "(\\mathbf{x}^{(1)})^T\\\\\n", "\\mathbf{x}^{(2)})^T\\\\\n", "\\vdots\\\\\n", "(\\mathbf{x}^{(N)})^T\n", "\\end{array}\\right]$$\n", "\n", "where each $\\mathbf{x}^{(i)} = \\left[\\begin{array}{c}\n", "x^{(i)}_1\\\\\n", "x^{(i)}_2\n", "\\end{array}\\right]$ now encodes the two coordinates of the corresponding point in the dataset below. We want to learn a model of the form \n", "\n", "$y(\\mathbf{x}) = \\beta_0 + \\beta_1X_1 + \\beta_2X_2$ \n", "\n", "that outputs a prediction $y(\\mathbf{x}^{(i)})$ that is as close as possible to the target of the point $t^{(i)}$. We will encode this model by adding an additional column of $1$'s to the matrix $\\mathbf{X}$ above to get\n", "\n", "$$\\mathbf{X} = \\left[\\begin{array}{cc}\n", "1 & (\\mathbf{x}^{(1)})^T\\\\\n", "1& \\mathbf{x}^{(2)})^T\\\\\n", "\\vdots & \\vdots\\\\\n", "1& (\\mathbf{x}^{(N)})^T\n", "\\end{array}\\right]$$\n", "we can then write the model as $\\mathbf{y} = \\mathbf{X}\\mathbf{\\beta}$ and we want $\\mathbf{y}$ as close as possible to $\\mathbf{t}$ (given that what we can achieve is limited by the linearity of the model)\n", "\n", "A natural approach, given what we learned so far, is thus to minimize the OLS criterion,\n", "\n", "$$\\min_{\\beta_0, \\beta_1, \\beta_2} \\sum_{i=1}^N \\frac{1}{N}|t^{(i)} - (\\beta_0 + \\beta_1X^{(i)}_1 + \\beta_2X^{(i)}_2)|^2$$\n", "\n", "As we saw in regression, this model can read in matrix form as \n", "\n", "$$\\mathbf{v} = \\mathbf{X}\\mathbf{\\beta} - \\mathbf{t}$$\n", "\n", "and then \n", "\n", "$$\\min_{\\mathbf{\\beta}}\\frac{1}{N}\\mathbf{v}^T\\mathbf{v} = \\min_{\\mathbf{\\beta}} \\left(\\mathbf{X}\\mathbf{\\beta} - \\mathbf{t}\\right)^T(\\mathbf{X}\\mathbf{\\beta} - \\mathbf{t})$$\n", "\n", "Instead of using a gradient descent approach, we could alternatively set the derivative of the loss with respect to the weights $\\mathbf{\\beta}$ to zero and solve the equations. In this case (you can verify it by computing the derivatives with respect to each of the $\\beta_j$ and setting them to zero), this gives the set of equations\n", "\n", "$$\\mathbf{X}^T\\left(\\mathbf{X}\\mathbf{\\beta} - \\mathbf{t}\\right) = 0 \\leftrightarrow \\mathbf{X}^T\\mathbf{X}\\mathbf{\\beta} = \\mathbf{X}^T\\mathbf{t}$$\n", "\n", "which can solve by using the inverse of $\\mathbf{X}^T\\mathbf{X}$ as $\\mathbf{\\beta} = \\left(\\mathbf{X}^T\\mathbf{X}\\right)^{-1}\\mathbf{X}^T\\mathbf{t}$\n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAD8CAYAAABzTgP2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi40LCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcv7US4rQAAIABJREFUeJzs3XeYVOX1wPHvmb6VthSVamwoFnQV\nsUQs2BVjTMQWNBpsmNh7N/YWWyxRLEls0V8UExW7sQMqCoIURaT3Zdv0Ob8/7rDs7Myys+zszi57\nPs+zj7v3vnPvGU3mzH3LeUVVMcYYY9Zx5TsAY4wx7YslBmOMMSksMRhjjElhicEYY0wKSwzGGGNS\nWGIwxhiTwhKDMcaYFDlJDCIyXkSWi8j0Rs6PEJG1IjI1+XNtvXOHisgsEZkrIpfnIh5jjDEbT3Kx\nwE1EfglUA8+o6pAM50cAF6vqkQ2Ou4HZwEhgITAZOEFVZ7Q4KGOMMRvFk4uLqOr/RGTgRrx0D2Cu\nqv4IICLPA6OADSaGsrIyHThwY25njDGd15dffrlSVXs21S4niSFLw0XkG2AxztPDd8AWwIJ6bRYC\nwzK9WETGAmMB+vfvz5QpU1o5XGOM2bSIyPxs2rXV4PNXwABV3Rl4AHiluRdQ1cdUtVxVy3v2bDLh\nGWOM2UhtkhhUtVJVq5O/vw54RaQMWAT0q9e0b/KYMcaYPGmTxCAifUREkr/vkbzvKpzB5q1FZJCI\n+IDRwIS2iMkYY0xmORljEJHngBFAmYgsBK4DvACq+ghwHHC2iMSAIDBanelQMREZB0wE3MD45NiD\nMcaYPMnJdNW2Vl5erjb4bIwxzSMiX6pqeVPtbOWzMcaYFG05XdUYY1qNxpei1Q9D5FNw9UaKxyL+\nX+Y7rA7JEoMxpsPT+FJ05VGgNUAM4vPRNdPQkktxFZ2U7/A6HOtKMsZ0eFr9yPqkUCcI1XehGs5X\nWB2WJQZjTMcX+ZTUpFBPbF6bhrIpsMRgjOn43H0yH9couHq0bSybAEsMxpgOT4r+ABQ0OOoD316I\n20roNJclBmNMhyf+faHkUpAi5wcf+IYjXe/Jd2gdks1KMsZsElxFJ6GFv3HGFFw9EHdZvkPqsCwx\nGGM2GSI+8G6b7zA6POtKMsYYk8ISgzHGmBSWGIwxxqSwxGCM6XA0sRZNVOc7jE2WJQZj2hHVCJpY\nQ0csh98WNDqHxMpj0OXD0eV7kFh1Mhpfku+wNjmWGIxpB1TDJNZejS7bFV2+D7piPzT0br7Dalc0\nUYmuPgFiM3DKX8Qg+iW6ajSqjZTDMBvFEoMx7YCuvQKCrwIRIAqJpWjFBWhkar5Dazc0OMEpcZEi\nDloJ4f/lJaZNVU4Sg4iMF5HlIjK9kfMnici3IjJNRD4VkZ3rnfspeXyqiNi2bKbT0cRqCL0FNKwC\nGnb2FzCO+E84OwM3oFGIL2zTUFTjbXq/tparJ4angEM3cH4esJ+q7gjcBDzW4Pz+qrpLNlvOGbPJ\niS8F8WU4oRCf3+bhtBXVIJqozbq9eHcBKcxwwgPeHXIYWeMSwddJLB+BLhtMYtkwEjVPb5LjQTlJ\nDKr6P2D1Bs5/qqprkn9+DvTNxX2N2SS4+0PGPnIX+HbOcLxj0/hiEqt/hy7bDV1eTmLVCWjs56Zf\nGDgYXL0Ab72DfvBsD95dWyvcOhp6F9ZeDonFyQNroOoetPbJVr93W8vHGMPpwBv1/lbgLRH5UkTG\n5iEeY/JKXMVQdDqp1UEFpAApOidfYbUK1Qi66niITGL9APLX6Krfopqhm6geER/S40UoON4ppe3q\nBUW/R7qPR0RaP/bqe4FQg6NBqH4Y1USr378ttWmtJBHZHycx7FPv8D6qukhEegFvi8j3ySeQhq8d\nC4wF6N+/f5vEa0xbkeI/ou7NoeZvkFgN3l2RkksQz4B8h5Zb4fdAq4H6H6QJ0BAE34DCYzf4cnF1\nRbpcC1zbmlFmFl+Q+bjWgNaCFLdtPK2ozRKDiOwEPA4cpqqr1h1X1UXJfy4XkX8DewBpiUFVHyM5\nNlFeXr7pdeqZTk1EkMLfQOFv8h1K64r9DBm32qxF4z/T+t/7W8A9KDlVtgEpSZb63nS0SVeSiPQH\n/g84RVVn1zteJCIl634HDgYyzmwyxmwCvINB/OnHpRDxDm77eJpBSi4CAg2OFkDx+W3SldWWcvLE\nICLPASOAMhFZCFxHcoRIVR/Bee7rAfw1+S8wlpyB1Bv4d/KYB3hWVd/MRUzGmHbIt7cz2B77AWfN\nBoAXXL3Bf0A+I2uS+PeFbg+glbc7U2fdvaHoj7gKf5Xv0HJOOuJUq/Lycp0yxZY8GNNSGl/sDARL\nF/Dv7exn0Nr3TFSj1X+B4GuAQuBwpOQCxNWl1e/d2YnIl9ksC7CNeozphFQVrboDav8B4gYE8EH3\npxHvdq16b3EVI6VXQ+nVrXofs/EsMRjTGUU+hNpngbAzYRyAGnTNH6Dnh4ikDz9qdBZEPgdXF/CP\nRFxtP+CqqhD7HjQI3iGAGyIfQ2wuuLcE/y8Rcbd5XJsaSwzGdEJa8xyZy0tUQ3RaysI6VUUrr4Dg\n6zjTTD3A9WjgYHB1RQIjwVve7AFYjX6HVt3p3M/VEyk+Fyk4qvH2sR/QNWdCYiXOvBkFioAaZ6aT\n+J21DT2eQ1zdmxWLSWWJwZjOSBsrRSHOmoL6wm86awzqFnclB41DryQv9QIUHAGlN2edHDQ6E111\nInXJKV6Frr0aTazAVfT79PYaQ1edAFrR4ExNvUYxiC9AK29Euv4lqzhMZlZd1ZgOQOOL0Ois3JWX\nDhxJ6krrdRLg2yX13rX/IuPTRZ0ghP4L0clZ316r7yPzKuIHUI2kt6+8KUNSyCQGobedpxwNodHZ\nTpFC0yyWGIxpxzS+lMTK49AVh6KrR6PLh5MIvpU8t5xE5S0kVh5JYvUZaPiLrK8rhb9KrilYV5TO\nAwSg9BYkuc5Ao9NIrDkXIlnMANQQGnyj6XbrRKdTb3Cj3nWiaM3f0dj6aqmaWAvBf2V/bRSteRJd\nPgxdfTy6/Jck1pzXrIJ9+aYaJlF1J4lle5JYNpRExQVofGmb3d+6koxpp1QVXX1astx0fP2K4bUX\nk3A9DBUXJstLRIHZaGQSWnotrsLjmry2iA+6/x3C76ChD8DVHSn8DeLZ0rl3+CN0zbk4pcCzmdIu\nIA0Xf22Aux8klmc4EYGaB9Dqe9HCE5CSK53EJL5GCg025ALPYKi5zxmgXif8AVp5ZYfpYtI1Z0Lk\nS+pKsYfeRCNfQNlbTm2tVmZPDMa0V7FpkFgCNKz9H4XKm0GrnN/rhKDqloxdMZmIeJHAYbi63o6r\n9LL1SUEVrbzeuV5WSQHAhxQcnWVbkOJxpK8iTtJaIOI8JYTfTdYgamzsQqjrEpNCcJUB0dSkAEAY\nQu+gicqsY2yKht4nsfIYEst2J7HqJDTyVW6uG50Bka9I3Z8jDokaNPhyTu7RFEsMxrRX8XWzb9JO\nJDemyfQNWiH2U8vuq7UQX9zISQ8EjgX8QCHOh7Ifiv/UrJIW4t8butwKrp402nGhtWjtc+ArB8k0\nHuKFbk8gXW6Ewj8gpdchPd+BRGNjEe4NnGueRO0EtOJPTu0kXQvRyejqU9Fsut2aEpsFGaYLQxCi\n37b8+lmwriRj2ivvjpDx238ApCtohj5njUJLp2qKH6eiTYZdyly9cHW9DU1cmayUGgb/foi7T7Nv\n4yo4Ag0choY/hLUXOlVKG9Kgsy6h23h0ze+TTwLivM+Si3D5nULN9fOG+oZB6DVSK7jidEe5N292\nnGkhqUL17aQPnofQqjuRHi+07AbuxqpH+8GzVcuunSVLDMa0U+LuiRaeAsFn63WN+Jy9CBrbu8Az\nBHGXtey+4kELjoPgS6R++BUk940AcZVCwTEtuo9zLxf4926kw6ogOXsKZzV2z48gMtkZV/GVI66u\nma9ZfB4afi/ZJbUuuQWg5ArnvWkcIp9AbD54t2v+GgytgcSazOdis7K/TmO8u9arJ1Wvq1C8SMFv\nW379LFhiMKYdk5JLwbsjWvsMJCohMNL54Fh7fuYXeAbl5r6ll6NaBaE3kgO/USg8CSk8OSfXT7mX\n+NDS22HtxdRt3iOF4NkaKfx1vXZu8O/Z9PU8/aHHK2jNI04dKPcWSNFYxL8XGl+Jrj7BWSSnMacc\niHsrpxRItiu5pcB5qso0GO7qnd01NnR5Eej+DLr2GmeMBQXP9kiXWxB3jxZfP6sYrIieMR2Lht5C\n116enJHUgH9/XN0ezd29Equd8Qb3AMRVsoF21ZBYCq7NEVeGfZmzuVfsJzT4L0isRHz7QWAkIt6m\nX9gMiTVnQfh/pI7P+KBwNK5m1G5KVN0PNU+Qur6jAEr/jKuw8dXbzeVMJEggzZnxtQFWRM+YTZV3\nl0bGHgrAt1+zLqWacLpVot+CezPwH5rywS6u7uDqjmqQROVNEHzFubd/X6T0KnD1Riv/DMGXQTyg\ncTRwuPNtOrHYaVd4YlaVU8UzECm5pFnxN++9RjIkBXBmQL3arKJ+UjwOJQG1T4HGnam6xefnNCkA\nbVLtNuN97YnBmI4nUXmnUxm17hurH9ybI2WvIBln8KRTDaKrT3EK0GkQKADxIT2eRRoMciZWnQTR\nb1i/h4LLGQAvGAW1z5E+ECs4U1394OrmxJXn+kWqEXTZzmQcVJdiXL2bP91UNQKJKqdmVAco3pft\nE4NNVzWmA5KSi5Gud4F3GHi2h+JzkR4vZ50UALT6bxCdlRykVaAWdC1acWFqu+g0iE1nfVIAZ5/m\n2mRyapgUYP36hzAkVqE1jzfr/bUGER94h5K+JsID/oM2+pri7tEhkkJzWFeSMR2QiDh98IGRG3+R\n4CukLqICZx3Ej2h8BeLu6RyKziHzArNMCSGTKITeg5JLNzrUXJEuN6Orjk+uIg86g9zSxRnkN3Vy\ntbXneOBIYLmqDslwXoD7gMOBWuBUVf0qeW4MsK5z78+q+nQuYjLG5IhnYMuv4erW8ms0k2oEQm+g\noTfB1QUpOAHx7Qw930ODEyD2A+IbAoHDNji4q7F5aPUjzjiMZxBSfBbi3akN30nby9UTw1PAg8Az\njZw/DNg6+TMMeBgYJiLdcfaHLsd59vxSRCaoaiOThI0xOVNwDNT8jdSnBgHPluufFsDpfnEPgths\nUktwZH0jpOjUFoXaXKoRdPXvIDoTZxxG0ODraMlFuIrGIEUnZned6Pfo6tHJUuQJiP+Ihj+Gbg8i\n/l+25lvIq5yMMajq/4AN1bYdBTyjjs+BriKyGXAI8Laqrk4mg7eBQ3MRkzFmw6T4D84CLynE6SpK\ndqt0vSe1nQjS/WkINOf/mq5kjSM/FP0e/AfnMPIshF6vlxTA+d4Zgqq7nGqtWdKq25NjMOtWUTvX\n0bXX0xEn7mSrrcYYtgAW1Pt7YfJYY8eNMa1MpAC6vwCRT51d1Nx9wH9IxnUI4ipFut5NYuVCiH3d\nxJUDUHo94u4N3u2RfHQjhSaScQ8J8TqrpwNZDjZHGtljIrHIWQEtrV/pNB86zOCziIwFxgL0799Y\nLRFjTHM4JSn2cX6yaV96Ebr6DFIHnj04nQ9RcPdHSq9C/CNyH2xzuEpZP2W2Ho2hkUkgJeDbI4tS\nGBmmtjoXQnE3WvO1rlX0O7TqPqfYnrs/Unwe4h+e1VvIp7aarroI6Ffv777JY40dT6Oqj6lquaqW\n9+zZM1MTY0wrE98eSLe/gmdrwO2UgCi5Gnp9i/Sejqvn2/lPCoAUnIBTAbahENQ+j1acia46Ootu\npca+OwvChsuba+QbZzvSyIfO3hPRKeiaM0kEJ2bxDvKrrRLDBOB34tgTWKuqS4CJwMEi0k1EugEH\nJ48ZY9op8e+Dq+y/uPrMxNXrI1xFJ+JyuXJevqIlxLcLlFwI+JPdPfU/4EPOuEHsR7Tyhg1fyLtr\nIzcoAynd4Eu1al0F1vpPLSGourndj0/karrqc8AIoExEFuLMNPICqOojwOs4U1Xn4kxXPS15brWI\n3ASs68i7UVVtg1ZjTEaqCqH/ojWPQWKV0x1UfD7iGZDW1lV0KlpwDEQmoxUXkV4KIwqhiahqo11K\nUnqZU3RP63/AB6D02qa7oWIzMh9PrGz34xNWEsMY0yY0sQatfd7ZqtPzC6TwZKcSajMkqh+G6kdY\nP7DsAilCeryKePo2/rqlO5K+mM95vfSe4Yy1NBZ3dA5afb+zT7WnP1J8LuLbo+lYVxwE8Z/TT0gh\n0uvLvKyWtpIYxph2Q+NL0RWHQfVfIfIR1P4DXXkU2tisn0zXSNRC9cOkzjZySnNozSMbfrF/P9I/\n7lzgG7bBpAAg3q1xdXsAV6/3cXV/OqukAEDRORl2ngtAwUntvoSGJQZjTKvTqnucLTDrvrXHgCC6\n9qrs+9vjPzkVXNNPQOTLxu8dmui8FmX9R14BSClSemN2994IUvArKBoHUuTcjwAU/hYpuaDV7pkr\nHWa6qjGdlWrC2THMVYxIppk2HUD4QzJO/YwvAl0DkkXlVVevRsqNA+7My58SNU9D9T0NdrzzQNGp\nSNHpzk50rUREkOI/oEVjIL4MXD02eq+KtmZPDMa0Y4ng6+iKfdAV+6HLykmsvSa5eUsHIxvaHS27\nTWjEXZbsEmqYHANI8Zlp7VUjUP2XBklBcUpbLGzVpFCfiA/x9OswSQHsicGYdkvDX8Day0lZTBZ8\nFdUw0vWOvMWVDY0thNh3KB4I/teZiZPGC/79mvWBKV3vQtdeDaGJOAPPhVB6DeLbPb1xfCFpC9wA\nSECk+XsvdCaWGIxpp7TmYdJLW4cg9DqauCqrXdHammocrbzKSQZ4gJoMrTyAF7zbIF1uzeKa6nzI\nSwBx90S63o0mbgCtBFfvxgdyXWWZ92UGcG+e5TvqnCwxGNNeZZrqCE69n8QKaI+JofY5CL6BM8ic\naXpoUtcHcAWark6qkSloxcWQWA0kUO9gpOtfEPcWwIbXAYirFA0cmny6qB9LAVJ89obvqxHAm0XJ\njE2TjTEY0155dyHz/0UT4G58zn5e1f6djMXr6pMA0mgNovU0vhRdc7qzdzQhIALRaeiqk1Ft+vXg\nbMxD4AiccYmAsx1p6XVII7WhNPwJiRWHoMt2QpcPJVF5B6obU2q8Y7MnBmPaKSkeh4bfSw6eJvvK\npQCKzt3gxjJ5pZm6jhq2iWWV2LT2X5CWABKgFRD5HPx7N3kNET/S9TY0cY0zXXYDXU8anYauOZu6\n7rvk1qWqFUiXW5q8V2tQVYh+iYY/RVxdIXAE4u7R6ve1JwZj2inxbIl0fxH8I5xvuu6tkNKbcBWP\nzXdoKTQyicTKXzurixM1bPhjxeuU4vZu3fSF4wshU6E6TTjTP5tBXEWIe/MNLizT6odJ7/4KQfC1\nZu3hkCuqcbRinPPUVPMQWnUnuvIANPxJq9/bnhiMacfEuw3S7dF8h9EojXzZoAz3ug9WD84iNjfO\nJjcu58d/QNbfvsU3DA1PTG6Uk3JX8DVva03VBJBAMi6QS4rNJeMsJvFCfHHbj+mEXofIx/Wm24ZB\nQSv+BL0+a9WihZYYjOkEVBMQ/Qa0CrxDEVdJbq5bdTfpM6cA3ODb29kjufBkVEogsRJx98j+3gVH\nQM0jziK4ui1FC8A/AvFslV18iWq06qbkLKkY6t0ZKb0J8W6T3tg7JDngn2hwkSi4+6W3zxHViFND\nKjgBxIsUjobAUWjw/xqswVgnAdGpkGmKbo5YYjBmE6exH9DVv3emdyKgUbTkUlxFp7T84rE5jZ6S\nLrci7jI09A5UXg2JIEoc9e2BdL27yZ3dRPzQ4yW05lEIvQn4ofAEpDC7/ZoBpxsm+h11XVLRr509\nnMsmpu5rDUjR2WjoXVIHzwug8ETE1TqVUFXjyb2pZ7AuwWrlDAh/QuNdcq1f+NTGGIzZhKkm0NWn\nQWKpMzCs1UAYqu5EI01t0ZmFxr5JixtcXdDoDLTiwuR00yAQgcgX6Jqzsrq8uEpxlVyCq+e7uHq+\njqvolKwL0Gl0BsS+J22cYt039Ib38m6N9PgHeHcH/MlNiM5HSi7J6n6NxqFBNPQuGpqIJqpST4Y/\nSMZY76lLg04i9O+NU2OpIS94h7YopqbYE4Mxm7Lo1073Udq3zDBa+yzia9kHjJT8CV1zHqndSQVQ\neBoiXhI1T5I+gByF6Ew09gPi+UWL7r9BsXmgmb77RqD2CRLiQ4pOTak/Jd4dkR7/zFkIGv4YrRgH\n6zYB1ThaehOuwlHJ859kGENZxweBkRB6G4g6Yx0I0u2hDY+V5IAlBmM2ZYlk91EadQrztZD490O7\n3AZVtzmL7qQQik5HipJPBPGFpPXZg1MlNb4MWjMxeLam0T2btRaqH0LD70P3Z5ssvb0xNFGJrjmX\ntHUdlVejvqHOXhTuXoCPtOQpbsRdhhTdhUa/g/CnzuB34NA2qfFkicGYTZlvV2fwNE0BEjg4J7dw\nFRyOBg7DmZHkS/2Q9Q13NrhpOA1Uo+DdLif3b4x4t0F95RCZnH5/AEJON07kU2hkwVuLhN4hc1KO\no8HXkJJzkYJjktNkG/KCf38AxLsDeHfIfXwbkJM0KSKHisgsEZkrIpdnOH+viExN/swWkYp65+L1\nzk3IRTzGGIe4ukDJRTh91es+pArAMwgKRuXuPiKIBNK+eUvRyeBquOdyARSegrjSS22rKpqoyNlq\nY+n2MBSeTHpF1nU3rHW621qD1pL5iSVWtxBQ3H2Qbn8F6eZUoJVCcG2BdH8mryXWW/zEIM5I0EPA\nSGAhMFlEJqhq3YanqnpBvfbnAfU7NoOquktL4zDGZOYqOhX17ojW/hMSFeA/BCk8pk0+eMTVHXq8\nilY/5OzJ4OqCFP0eAkentU0E/wtVtzgx4kELRyMll7SoP13E7+zb7N0GXXsDzpbz9RU4g8ytwb8v\nVN2eIagCJHDA+j/9e0OvTyE2E/CCZ5u812jKRVfSHsBcVf0RQESeB0YBjeyEzQnAdTm4rzEmS+Lb\nDfHtlp97u3shXW7YYBsNfwJrr2D9IHYUap9DNYJ0ycHHhf8QkFvSx+DFA4HDW379DMQzAC0cA8G/\ng4YAdZ4I/AeBN/W/hYjbWUfRTuSiK2kLYEG9vxcmj6URkQHAIOC9eocDIjJFRD4XkWNyEI8xpoPR\n6gfJWGI8+JKz13MLiasQ6f5PcG9JXUE990Ck+99bbY0CgKv0YqTb41DwawiMQrreh3S5M+9PBE1p\n68Hn0cBLmloacYCqLhKRLYH3RGSaqv7Q8IUiMhYYC9C/f/+2idYY0zbiCxo54YLEKsjB7mfi3Qbp\n+aaziRAK7r5t8gEtvt0zbyTUjuXiiWERUH+VS9/ksUxGA8/VP6Cqi5L//BH4gNTxh/rtHlPVclUt\n79mzZ6YmxpiOyjuEjDN4xAXu3I4BiKevs9VmO//Wnk+5SAyTga1FZJCI+HA+/NNmF4nIdkA34LN6\nx7pJcgRMRMqAvWl8bMIYs4mS4j+RvvdzARSPw/lYMW2pxYlBVWPAOGAiMBN4UVW/E5EbRaT+1IPR\nwPOqWn/4ZzAwRUS+Ad4Hbqs/m8kY0zmId7Cz4tg3HKQY3IOg9EZcRafnO7ROSVI/pzuG8vJynTJl\nSr7DMMaYDkVEvlTV8qbaWRE9Y4wxKSwxGGOMSWGJwRjTYhp6n8TKY0gsKyex6kQ08mW+QzItYInB\nGNMiieBrznaTsRnOZkDRKejq09DI5HyHZjaSJQZjzEZTVafkdoZVy1p1Rz5CMjlgicEYs/G0pvF9\nHWKz2zYWkzOWGIwxG08KQBouTEty9WnbWEzOWGIwxmw0ETcU/Z70vYkLoGhcPkIyOWA7uBljWkSK\nzkE1DrVPgsacp4ji83EVHpXv0MxGssRgjGkRERdS8ie0+BzQKpAuzpOE6bAsMRhjckLEC5K+Xafp\neGyMwRhjTApLDMYYY1JYYjDGGJPCEoMxxpgUlhiMMcaksMRgjDEmhSUGY4wxKXKSGETkUBGZJSJz\nReTyDOdPFZEVIjI1+XNGvXNjRGRO8mdMLuLp7OZNm8/H//6CRXOX5DsUY0wH1OIFbuIscXwIGAks\nBCaLyARVndGg6QuqOq7Ba7sD1wHlgAJfJl/bSLlGsyE1lbVcfeStzPnqR9weN7FIjGFH7MqVz56P\nx2trGY0x2cnFE8MewFxV/VFVI8DzwKgsX3sI8Laqrk4mg7eBQ3MQU6d0/zmPM2vyXMK1EWorg0RC\nUSa9/jXP3vJ/+Q7NGNOB5CIxbAEsqPf3wuSxhn4tIt+KyEsi0q+Zr0VExorIFBGZsmLFihyEvWmJ\nRWN89NJnRMOxlOPhYIT/PPJWnqIyxnREbTX4/BowUFV3wnkqeLq5F1DVx1S1XFXLe/bsmfMAO7pY\nNE48nsh4LlQTbuNojDEdWS4SwyKgX72/+yaP1VHVVaq67tPpcWC3bF9rshMo9DNwSL+04y6XsNvI\nnfMQkTGmo8pFYpgMbC0ig0TEB4wGJtRvICKb1fvzaGBm8veJwMEi0k1EugEHJ4+ZjXDhY2dRUBzA\n43MGmn0BL0Vdixh71yl5jswY05G0eKqKqsZEZBzOB7obGK+q34nIjcAUVZ0A/FFEjgZiwGrg1ORr\nV4vITTjJBeBGVV3d0pg6q21334rHp9/Dqw9NZN60+Ww/fBuOPOtguvbsku/QjDEdiKhqvmNotvLy\ncp0yZUq+wzDGmA5FRL5U1fKm2tnKZ2OMMSksMRhjjEnRqZbDRkIRPnjhU6a+P50+g3px+BkHUrZF\nj3yHZYwx7UqnSQw1a2sYt+eVrFy4ilBNGK/fy7/umsAtr1/FjvsOznd4xhjTbnSarqTnb3+FZT8t\nr1vsFQ1HCdWEue2U++mIA/DGGNNaOk1i+PDF9HIRAGtXVrJ03vI8RGSMMe1Tp0kM/gJfxuOJuOIN\neNs4GmOMab86TWI48qyR+Av9KcdcLmHLnQdQtnn3PEVljDHtTydKDAez55G74SvwESjyU1ASoKxv\nD6554cJ8h2aMMe1Kp5mV5Ha7ufr5C5g/YwEzv5hL2RbdGXrgENxud75DM8aYdqXTJIZ1BmzfjwHb\np1chNcYY4+g0XUnGGGOy0+meGEzuLJm3jKnvTae4WzHDDh+KL5B55pcxpmOxxGCaTVV59JJneO2v\nE3G5XbhcLlxuF7e9dQ3blv9fqQH1AAAgAElEQVQi3+EZY1rIupJMs01642v+++jbRELO6vHaqiDV\nFTVcc9StxOPxfIdnjGkhe2LYgEg4ys8zF1Lao4Re/cryHU5eqSozP5/NojlLefPJ9zLuIx2qDTPz\n8zkM2Xu7PERojMkVSwyNmPjU+/z1T0+iQCwaY7s9tubaf13YKXdDq66o4dKRN7Lg+8UgEK5NTwoA\nIkIkFG3j6IwxuZaTriQROVREZonIXBG5PMP5C0Vkhoh8KyLvisiAeufiIjI1+TOh4WvzYfrHM3lg\n3BPUVgUJVgWJhqLM/GwW1x1zR75Dy4v7z/kb86b9TKgmRKg6hCYyFx3UhLLDXtu0cXTGmFxrcWIQ\nETfwEHAYsD1wgohs36DZ10C5qu4EvATU/4QNquouyZ+jWxpPLrx073+IBFO/FceicX6Y+hOL5i7J\nU1T5EY/H+ejlL4hF0gsQruPxuvEX+LjoiXPwF/gbbWeM6Rhy0ZW0BzBXVX8EEJHngVHAjHUNVPX9\neu0/B07OwX1bzYoFq8hUidvt87BmaQVbbLVZ2weVJ5pQEvFExnMen4dDTh1BaVkph5w6olP9ezFm\nU5aLxLAFsKDe3wuBYRtofzrwRr2/AyIyBYgBt6nqKzmIqUXKD96ZedN+JhpO7S+PRWIM2mlAI6/a\nNHm8HgbvuTUzPpuVkixdLmHPI3fj/EfOzF9wxphW0abTVUXkZKAcuLPe4QGqWg6cCPxFRDJOhBeR\nsSIyRUSmrFixolXjPPb8IyjpVoTHtz5vBor8/O6631BUWtiq926PLnjsTApLC/ElS5f7C32U9ijh\n7HvG5DkyY0xrkJbuXiYiw4HrVfWQ5N9XAKjqrQ3aHQQ8AOynqhl3xhGRp4D/qOpLG7pneXm5Tpky\npUVxN2XN8rX8665X+eL1r+nWqwvHXXgUex65W1q7ZfNXMO2jmXQpK2HXg3bC7clfUb4VC1fx0J/G\nM+n1r3F7XOx/wj6cedfvcpLMKlas5c3x7zNv2ny23X0rDh4zguKuRTmI2hjTVkTky+QX8Q23y0Fi\n8ACzgQOBRcBk4ERV/a5em6E4g86Hquqcese7AbWqGhaRMuAzYJSqzmAD2iIxNEVVefTip5nw8Ft4\nPG4QIVDo4853r2tRkb7qiho+eOFTKpavZcd9B7PTftsjImntZk2ey/irnmXOV/Po1b+M4y89hkcu\nfIqKFZV1YwIen4dBO/bnoUm3ZbyGMaZzyTYxtHiMQVVjIjIOmAi4gfGq+p2I3AhMUdUJOF1HxcC/\nkh9QPydnIA0GHhWRBE631m1NJYX24tNXJ/Pfx94hGooSxRmLCFUHufqo23hm7oMb9UE84/PZXH7I\nTSTiSiQYwV/oY8je23HTa5fj8a7/TzVr8lwu2v86wrURAKpWV3P7mAcQl6QMFMciMRbOWsy0j2ay\n0y8bThQzxpjMcrLATVVfB15vcOzaer8f1MjrPgV2zEUMbe21hyemrf5VhYoVlfzwzU9stcugZl0v\nkUhw43F3EawK1R0L1YSZ/vH3vPHEexx11sF1xx+/4p91SWGdeDRzKYp4PMFP0xdYYjDGZM1qJW2k\nYHUo43GXSzKWi2jKT9MXUFMZTDseqg0z8cn3U47N/Xpe1td1u130227zZsdjjOm8LDFspBGj98Zf\nmLnM9DYbXWE083hPw16pDdVtcrnWN/Z43fQe2JOdR+ywkfEYYzojSwwb6Yg/HMSA7fsRKHJW+rqT\nq38vfuIcfH5vs683cEi/jLN8AkV+DjntgJRjJ1/7m7Sk5C/0cfgZBzL0wB1xuV14fB72PW5P7v7g\nBlwu+89sjMlei2cl5UN7mJUEEI1E+ejlL5j0+ld036wrh59xEH232fhum+8nzeGyg28iEU8QCUXx\nBbzs+MvtuenVy9Kmwb7++Ds8ccU/CdWEEZeLo885mNNvPQm3200ikUBEbCaSMSZFm01XzYf2khha\nQ01lLf/712esWbaWnX45mB323q7RD/h4PE7lyiqKuhZt1FOKMaZzabPpqia3ikoLOez0A7Nq63a7\n6da7aytHZIzpbKzzuROKRWOEGtlTwRhj7ImhnlBtmC/++xW1lbXsetBO9B7Qs81jCAfDfPjiZ0z/\n5Hv6brMZB48ZkbPNgYLVQR447wk+eO4T4vEE/QdvwQWPnsn2w7fNyfWNMZsGG2NI+u7TWVx5+M2o\nal2p6eMuOorTbjohp/fZkMrVVYzb4wrWLFtLqCaEr8CHx+Pm7g9uYKuhzVswl8mlI29k+sffp1SN\nDRT5eXTqXWz+iz4tvr4xpn3LdozBupJwZhddfdSt1FYGCVaFCNWEiYSi/N+9/2Xq+9PbLI6nr3uR\nFQtXEapxFs9FghFqq4Lc/rsHWnzthbMXM+PTWWmlxKORGP++//VGXmWM6YwsMQDffjiDRCx9M5pQ\nbZg3nnivzeL46OXPM+6UtnDOEipWrG3RtRfNXZpSRnydeDTOvGk/t+jaxphNi40xgLOBfSNT/hvb\n+L41eDN8cANoIpFSRG9jDBrSj0iDpwUAr9/D9sPb5z7N1RU1vPX0B8z56ke23GkAh5y2P6XdS/Id\nljGbPEsMwM4jdshYhC5Q5Gf/E/Zp9furKt998j3blP+ClYtWp22lmUgoC2YtZvCwrTf6Hr3692Tf\nY4fxySuT6grwiUvwF/gZNe6wFsXfGpbMW8Z5w64gVBsmXOtUmn3u1n9z/2e30Hdr20LUmNZkXUlA\nYUkB5z86Fl+Br26FcaA4wM4jdmCfY/do1XtXrFjLH3a6kCsOv4XJb07NuL+yJpR/3LTBvYuyculT\n4zjhimPpvlk3AsUBhh9VzoOTbqXHZt1afO1ce+iP46laXV2XxMK1EarX1HD/OX/Lc2TGbPpsVlI9\nC2cvZuLTH1C9pprhR+1O+SE7N6vOUMWKtaxZtpbNf9Ebf4E/q9dcecQtfPX2t8Rjmctmr9Nji+48\nv+BR4rF4XneJayuHBU7ION7icrt4M/I8i39YSrAqxKAd+3eKfx/G5IKVxGhlweogL9w5gfef+xiX\n24XP72XBrMV4fG40AWNu+C3HXXhUk9c4tsdpxBrZS6E+cQkut4t4NE63Pl057abR7PjL7Xnj8XdY\nvbSC3Q8dyr6/HobXt2mUxji69JSMpc09Pg/9B2/BotlLcHlceDxuLh5/LnuN2j0PURrTsVhiaEWx\naIxzyi9j0ZwlzsB1Bv5CP5f//Tz2+dWwRq9TubqK4zcfm/GbcVO8fg+JhPPfLh6NEyjy039wX+75\n8Iasn1bas/vOfoyJT32QMr3W43Xj9XsJ14br3js4lWUfmnRbi7ZUNaYzaNN1DCJyqIjMEpG5InJ5\nhvN+EXkhef4LERlY79wVyeOzROSQXMTT2j55ZTJL5y1vNCmAM5vp+dte2eB1SruXsMVW6QvLxCWN\nzpJaJxqOEY/G6wbNQzVh5s9YwOuPv9v0G6inclUV/7z5JS4deSP3n/s3Fsxa1KzXt5axd57CVkMH\nESjy1/1stmVvFFKSAjhbmL72yFv5CdSYTVCLZyWJiBt4CBgJLAQmi8iEBns3nw6sUdWtRGQ0cDtw\nvIhsD4wGdgA2B94RkW1Utem+lTya9tGMRndwq2/VkjVNtrnkqXFccsD1xKJxouEogUI/Rd2KiAQj\nVK2ublZc4doI7z37Mb867/Cs2q9cvJqzd72U2spaIqEo3374HW89/SE3vnoZux6Y3x1XC4oLuO+T\nP/P9pLnMn7GQ/tttzspFq7n79IfT2sZjCVb8vCoPURqzacrFE8MewFxV/VFVI8DzwKgGbUYBTyd/\nfwk4UJxa0qOA51U1rKrzgLnJ67VrvQf0xBfYcF++yyXstF/T+yxvW/4Lxn9/H8dfOophR+zKSdf8\nmvEz/sKwI3bF5W7+f56CkkDWbZ++9nmqVlfVPfnEYwnCtWHuPv2vtIcuRhFh8LCtOfS0/dl++LZs\nP3wbohm63fyFfsoP3SUPERqzacpFYtgCWFDv74XJYxnbqGoMWAv0yPK17c5Bp+y3wZkwLreLgpIC\nxlz/26yuN+2jmUz465t888F3PHP9i9x60n2MvuwYiroU4nI30qeU4XCgyM9RZ2XfGzfp9a+JZ1jx\nXbF8bVZPO22tbIseHH32wXW75gH4Al569u3ByN/tl8fIjNm0dJgFbiIyFhgL0L9//7zEoKrM/Hw2\n3/5vJseefwRv//1D1i6vJKFK156lFHUpJBKMsNOIHTjxymPZbFDvJq8547NZ3H36X+vm6wN8+dY3\nVK2pIRaJkYinfnN3uV1s9oveHH3OoTx3y/8RCUZQTRCPJTj09wewz6+yf+Aq7FLI6qUVaccTCaWg\nqH0OYJ959xgG77kNrzz4BjVra/nlb4bzqz8eTqCwfcZrTEeUi8SwCKg/HaRv8limNgtFxAN0AVZl\n+VoAVPUx4DFwZiXlIO5micfiXHfsnXzz/nSi4RhevweX28W5D57Oy/e8xtJ5y6mpDBKPxtlql4Fs\nNqg3qtrk9pov3vkqkWAk5Vg0EmPm57Mzdud4/V4e+epOAoV+jj77YL56ZxprV1YyZJ/tskpE9f3q\nj4fz2CV/Tyn74fG52W3kThR1Sd9/uj0QEfb77V7s99u98h2KMZusXCSGycDWIjII50N9NHBigzYT\ngDHAZ8BxwHuqqiIyAXhWRO7BGXzeGpiUg5hy7s3x7zH1vel1H6LrFqTdd9ZjdWW6wfmAf+ySf/DW\n0x8y9+t5eLxu9h+9N2ffe2rGD9ulP60gU3f+uvLfDbk9LhbPXcqWOw3A4/Wwx2FDN/o9HXnmSH6Y\n+hNvP/MhvoCHeDTBwCH9uPTpcRt9TWNMx9fixKCqMREZB0wE3MB4Vf1ORG4EpqjqBOAJ4O8iMhdY\njZM8SLZ7EZgBxIBz2+OMpO8nzeFvl/8jY0G9TDWWIqEIs6f84PweT/Desx8zb/rPPPjFbWlPELvs\nP4T5MxYQi2T3tkM1Ybr1yc12ni6XiwsePZOTrzmOH6b+RO8BZQzacUBOrm2M6bhsgVsTJk+cyg2/\nvjNlDGBjBIoC3PrmVQzZe7uU4ysXr2bszhdRu7a2biA4UOhnv+OH8/bTH6bN2Xe5Xdz4yqUMO2K3\nFsVjjOl8bKOeHFBVHjj38RYnheTVWPB9+vBJ2ebdeeSrOzl4zAh69S9jm/ItuXj8OZx+68lIhumq\niXiCF+54NQfxGGNMZpYYNiAcjLBs/opGzxcUBzj2/CPwZzkjpv/gvmnHqitqeOa6F3jv2Y9ZvbSC\nHpt3Z/DwbVi7orLRtRLtcSqpMWbT0WGmq+aD1++pq83TUHG3Ip6e8wCl3UsYflQ5N/z6Lqorahq9\nzoDt+6VtiKOqXHzA9cyfsbCuXtIX//mS77+Yy+Pf3ZNxRpPLJXTv041Fc5ewxVa2L4ExJvfsiWED\n3G43R555EP4CX8rxQKGfMTccX7eb2C77D+Gaf12Ev9CXfg2vm4NO2Y873rk27YP+2w9nsHju0pQi\neomEEqwO8tFLn3PW3WPSnkYSCWX2lLmM3ekiHr3kmXaxQtkYs2mxxNCEM247mREn7I3X76WwtABf\nwMcxfzyMUecemtJu1wN35OrnL2TzZFG8ku7FnHH7ybwReo4LHzuLwpKCtGv/9N2CjPswhGrC/PDt\nfA47/UBumnAZQw/a0SmslxQJRYmEovznkbf4+t1pOX7H2YlFY3w6YTKvPvQmsybPzUsMxpjWYV1J\nTfB4PVz8+DmMveMUVixYxWZb9s74IQ+w55G7seeRuxGPx3G7m948pv/gLZKlNVKrtAaK/GyZnDY6\n9IAdiccSzJo0l9rKYEq7UE2YN8a/x64H7bRxb24jLZm3jAv2vYbaqhDxaBxxCTvuO5gbX710k9kP\nwpjOzJ4YslTavYRf7Dyw0aRQXzZJAZy9pvsM6oXHtz4/u9wuAkV+Djhx/V7T8Wjj+zXEIo2X/t5Y\nS35cxsMXPMVlB9/IU9e9wJplqWUzbj7hL6xeWkGwKkgkFCFcG2ba/2bw7/tez2kMU9+fzprla3N2\nTWNMdiwx5JHL5eLuD25gv9/uVVdio/yQnXng81tTElA0Ekt7WgDnyeKAE/bNaUwzPp/N2F0uZsJf\n3+Srd6bx4h2v8vvtz2fxD0sBWLOsgh+/+SltVXY4GGn2XhCZ1FYFueyQmzhjxwu5/tg7OWng2Tz4\nxydIJNKL/RljWod1JeVZSbdiLn/mPC5LlqFoOEC9fMFKbj3pvoyvHXrgTuzdjKJ52fjLmY8SqrfX\nRDQcJRaN8dilf+f6ly8hFo03Wv9pY3aia+jesY8w7X8ziIZjdTWk3hz/Pv0H9+XoszvEPk7GdHj2\nxNBOiEjGD9w3Hn+30Z3i9vvtnrhcuftPGKwJ8fPMhWnHNaF89fa3AJRt0Z1e/cvS2nj9XkaMbryw\nXTwe58u3v+Gtpz9odJe4UG2YT16ZRDScmmDCtWFevvc/zXkrxpgWsMTQzs34bHaj575+Z3rG4wtn\nL+abD79rdF1FY7w+T6OJZt0GQCLC5f/4E4UlBfiS03gDxQE227IXA3fozz///DIfvfw5sXrjIkt/\nWs7vfjGOG467mwfOe4Kzhl7CrSffn9Y9FKppfFe86jXNey/GmI1nXUntXNdepY2eKyhev1tbPBbn\ngxc/5cmrnmP1kjV4A15ikRijL/8Vp1z7m6zu5fF62O/4vfjwxU9TvrX7C3wcfc766bnblv+CZ354\nkLef+ZClPy1n0JD+PH/7K9x/7t8IVYcJFPnpUlbK/Z/dTLfeXbnxuLtYuXBVSt2nT16ZxBuPv8sR\nY0fWHetSVkq3Pl1ZPn9lSlwulzA0z1uNGtOZ2BNDOzfi+L1T1jCs4/a42HWkM0115aJVjNn6PO4Y\n8yDL5q+oG6yOhKK8cOerfPR/X2R9v/MePIPth2+Lv8BHYWkhvoCX4aN2Z/Rlx6S061JWynEXHsW4\n+09n6vvTWbFgFcGqEKpKsDrEioWreOC8J1i+YCXzZyxMKwYYrg3z2sNvpRwTES549Cz8hb66bU09\nPg+FXQo5/ZaGldyNMa3FnhjauT0OH8rAHfoxf8aCut3c3B4XfbfdnD0Od/ZiuPO0v7Ji4arknhCp\nwjVhXrp7AvseOyyr+xWWFHDXe9czf+ZClvywjIFD+tFnYK8NvuaTVyalLdSLx+J8NmEKp900utG9\nq8PB9FIj5QfvzAOf3cK/7nmNhbOWMGSf7Tj2/CMo27x7VvEbY1rOEkM753a7ufejm3jm+hd579mP\nQZX9T9yHMTccj9vtJlgT4psPv8uYFNapWFHZ7PsOGNyXARmK/jXX5lv1oahrEaGa1CTg9XvZ7/i9\nM75m0I4DuPRJ2yzImHyxxNABFJUWcvY9p3L2Paemncu0y1t9Hq+bYYfv2ux7qiof/3sS/77vv1Su\nrmLvUXtw3EVHUdKtOK3t8KN355N/pz41uD1uhh+1G263m8ufOY9rjr6NeDRONBIjUOSnZ78yfnPR\nUc2OyxjT+myjnk3AuGFXMHvK3LQtQsUldO1ZyqNT76Jb7+bt+vbk1c/xf/f9t+6bvtfvoXufbjz6\nzV0UlRamtF2zrILzhl9J5aoqgtUhCooClPQo5oHPbqF7n26Asx7j9cffZdlPyxl6wI6MOH4vfIH0\nooPGmNaT7UY9LUoMItIdeAEYCPwE/FZV1zRoswvwMFAKxIGbVfWF5LmngP2AdXUPTlXVqU3d1xJD\nqvkzF3LBvtcQCUUJ14ZxeVy43W5GjTuU0ZcdQ5eyxmc2ZVKxYi0nDTg7bf2Ev8DHmBuP5zcXHZ32\nmmgkymcTpjB/xkL6D+7LXqPKrW6SMe1MtomhpV1JlwPvquptInJ58u/LGrSpBX6nqnNEZHPgSxGZ\nqKrrCvBcoqovtTCOTm3A4L78/YcHefefH7NwzmK2230r9vn1nvj8G/fBPGvyD3h83rTEEA5GmPzm\n1IyJwevz8svjhm/U/Ywx7UtLE8MoYETy96eBD2iQGFR1dr3fF4vIcqAnkFqZrY3M+Hw2T1zxT+ZN\n+5k+A3vyu+uPZ88jO/7+yUVdijj6nNyUjOjepyuJeHo5cJdL6NWvR07uYYxpv1q6jqG3qi5J/r4U\n6L2hxiKyB+ADfqh3+GYR+VZE7hWR7PbI3EjTP/meSw+6gW8/nEHV6mrmfDWPP4++h3ef/ag1b9vh\nbDV0EH0G9kqbZuoNeDnmvMPzFJUxpq00mRhE5B0RmZ7hZ1T9duoMVjQ6YCEimwF/B05T1XVzK68A\ntgN2B7qT3g1V//VjRWSKiExZsaLxfZg35PHL/0G4NpJyLFwb4dGLbSe0+kSEWydezda7bYmvwEdB\nSYCiroVcMv5ctho6KN/hGWNaWZNdSap6UGPnRGSZiGymqkuSH/zLG2lXCvwXuEpVP6937XVPG2ER\neRK4eANxPAY8Bs7gc1NxZ/LjN/MzHq9aVUVtZS1FXYo25rKbpLLNu/Pg57ey9KflVFfUMHCHfni8\nNrvZmM6gpV1JE4Axyd/HAK82bCAiPuDfwDMNB5mTyQRxyooeA2SuCpcjZX0z9497A14C9eoO5VJN\nZS1PXfs8p233R84aejH/efRt4hn679urPgN7sdUugzaYFCpWrGXJvGX21GXMJqKlXwFvA14UkdOB\n+cBvAUSkHDhLVc9IHvsl0ENETk2+bt201H+KSE9AgKnAWS2MZ4NOufY33H3Gw4Rr16/C9Rf6Ofb8\nI7Leda05IqEI5+15JUt/Wk40OcPnkYueZtpHM7niH3/M+f3a2uqla7h59F+Y+cUcXG6hpFsxlzx5\nbptvNWqMya1Ot8Btwl/f5MlrnicSjOByuzjmvMM47c8n5HRfg3XefuZDp+Jog3IQvgIfj3x1B/22\n3aLR11auqiJUE6Jnv7JGN8bJJ1XljB0vZNHsxcRj68tx+Av9PDr1TrbYarM8RmeMyaSt1jF0OEef\ncyhHnDmSylXVFHctbNVFWF+9Ny0tKYAz7XPGZ7MzJoY1yyq45aT7+O6T7xGXi649S7n0qXHsPGIH\npn/yPRPHv0coGGHEb/di+NHlKQlNVflh6k9Uralm2923ymp/6o0184s5rPh5ZUpSAIhFY7z28ETO\nuvvUVru3MaZ1dbrEAE5hum69urT6fXoP6InX5yHaYMtLl8tFjwzVQlWVSw66gYWzltTVHVr+80qu\nPvJWDjvjQF5//F0iwQiqyuevTWHXg3biupcvxuVysWTeMq487BZWLlqFy+0iHo3zhztOZtS5h7XK\ne1u1aHXGcuDxaJzFPyxrlXsaY9qG7cfQig4/40Dc3tSxC5dLKO5WxNADh6S1n/nFHJbNX5lWwjoa\njfHKg28Qrg3XDfCGasJ89e40vnz7W1SVKw79M4vmLiFUE6a2Mkg4GOFvl/2D6Z983yrvbevdtsy4\nx7O/0Mcu+6e/N2NMx2GJoRX16lfGn1+7gh5bdCdQ5McX8LLlLgO5+4MbMg52r1iwClcj38IzjTOE\nqkN8+uok5nz1I6uXVKRVWo0EI7zy4Bu5e0P19BnYiwNO3Bd/4fo1iR6fhy5lpRxy2v6tck9jTNvo\nlF1JbWnnETvw3M+PsGjOEnwFPnr1K2u07Ta7bZnW7QTOBy6QtueC2+OiqLSQqtXVGbt1VKFi2dq0\n47lywWNnsu3uW/Hqg28QrA6x96/24MQrj02rvmqM6VgsMbQBEaHvNps32W6zLXsz4vi9+N+/Pq+b\nUuvxuunSs5SatbVpXTdur4eRY0ZQtnk3YpH0tRH+Ah97jdo9N28iA5fLxZFnjuTIM0c23dgY02FY\nV1I7c/ET5/CHO06m/3ZbUNa3O0ecOZKHv7yDm/9zBUVdCiksLaCwpABfwMe4B37PgMF9KepSxOm3\nnpDSreMv8NFrQE8OO+PAPL4bY0xH1OnWMXRkkXCUr9+dRiQUZegBQyjumlrC45sPv+PVB9+kYvla\n9jl2GIedfgAFxa03ZdUY07G0yUY9+dJZEsMP3/zET9MX0Hebzdim/BftcqGbMabjsAVuHVg4GObq\no25j5udzcLkEVWXgkP7c9uZVVujPGNPqbIyhHRp/1XN89+kswrVhgtUhQjVhfvh6Hg/+cXy+QzPG\ndAKWGNqhiU++X1d0b51oJMYHL3xKIpFo5FXGGJMblhgaiMfjeS+LHQ2nr2UAiMfiaYvYjDEm1ywx\nJK1cvJprjr6NIwpO5IiCE7n6qFtZuWhVXmLZ7eCd0lZAi8AOe22L25P78uDGGFOfJQYgGonyx+FX\nMumNr4nHEsRjCSa/OZXzhl9FJBxt+gI5dva9p1LcvRh/gQ8AX8BLYWkh5z8yts1jMcZ0PjYrCfj0\n1SlUV9SklJxIxBPUVNTw6SuTGHH83m0az2aDevPUrPt5c/x7zJr8A1vuPIDDTj+wTSrCGmOMJQZg\n4azFhKrT900I1oRYMGtxHiKCkm7F/Oaio/Nyb2NM52ZdScDAIf0IFPvTjhcUBRi0Y/88RGSMMfnT\nosQgIt1F5G0RmZP8Z7dG2sVFZGryZ0K944NE5AsRmSsiL4iIryXxbKw9j9yNHpt1w1Nv7wSP1023\nPl0ZflSTiwSNMWaT0tInhsuBd1V1a+Dd5N+ZBFV1l+RP/f6R24F7VXUrYA1wegvj2Shuj5v7PrmZ\nA07cl0CRn0CRn/1P2If7P73ZZgEZYzqdFtVKEpFZwAhVXSIimwEfqOq2GdpVq2pxg2MCrAD6qGpM\nRIYD16vqIU3dt7PUSjLGmFzKtlZSS58YeqvqkuTvS4HejbQLiMgUEflcRI5JHusBVKjqutVcC4Et\nGruRiIxNXmPKihUrWhi2McaYxjQ5K0lE3gH6ZDh1Vf0/VFVFpLHHjwGqukhEtgTeE5FpQLO2FlPV\nx4DHwHliaM5rjTHGZK/JxKCqBzV2TkSWichm9bqSljdyjUXJf/4oIh8AQ4GXga4i4kk+NfQFFm3E\nezDGGJNDLe1KmgCMSf4+Bni1YQMR6SYi/uTvZcDewAx1BjfeB47b0OuNMca0rZYmhtuAkSIyBzgo\n+TciUi4ijyfbDAamiBgcUO8AAAWfSURBVMg3OIngNlWdkTx3GXChiMzFGXN4ooXxGGOMaSHbwc0Y\nYzqJtpqVZIwxZhPTIZ8YRGQFML+Vb1MGrGzle+RaR4wZOmbcFnPbsJhza4Cq9myqUYdMDG1BRKZk\n88jVnnTEmKFjxm0xtw2LOT+sK8kYY0wKSwzGGGNSWGJo3GP5DmAjdMSYoWPGbTG3DYs5D2yMwRhj\nTAp7YjDGGJOiUyeGbDYaEpFdROQzEflORL4VkePrnXtKRObV24Rol1aM9VARmZXc1Cht3wsR8Sc3\nO5qb3PxoYL1zVySPzxKRJsuat2HMF4rIjOS/13dFZEC9cxk3d2oHMZ8qIivqxXZGvXNjkv9bmiMi\nYxq+No8x31sv3tkiUlHvXL7+PY8XkeUi8v/tnV1oXEUUx3+HllT8TihClKoJVEorftRSJBSlWrCt\nYBR9iFioGtCqCL5ZyYsURKwPiij4ENSqkKoBURHB9EN8CLEoNCYFbZO0IFoqpEUQIRY9PszZOne5\nm727ZHe2zfnBZc983fufk8mdOzO7dyYrpIuIvGF1+lFE1kZpqfxcTfMjpnVCREZF5OYo7YTFHxaR\n1v91rqou2gPYDew0eyfwSk6eG4CVZl8NnASutPB7wENN0LkEmAa6gTZgHFhdludp4G2z+4CPzF5t\n+ZcBXXaeJS2ieSNwsdlPlTRb+M8E7aGI5keBN3PKdgAz9tludnsraC7L/yzwTko/23XvANYCkxXS\ntwJfAQLcDnyX0s8FNfeUtABbSpotfAJYnsLX9RyLesQA9AJ7zN4D3F+eQVWPquoxs38jvEG26g9E\nFpj1wJSqzqjq38BegvaYuC7DwN0iIha/V1XnVPU4MGXnS65ZVQ+q6l8WHCO8YTclRfxciXuAEVU9\nrapngBFgc4N0xtSq+WFgqAm65kVVvwVOz5OlF3hfA2OENzF3ks7PVTWr6qhpgtZoz3Wz2DuGohsN\nASAi6wlPZdNR9Es2fHyt9BbZBnAN8EsUztvU6FweDa8x/4PwYsIiZRtBrdftJzwhlsjb3KnRFNX8\noP3Nh0VkRY1lF5rC17Wpui7gQBSdws9FqFSvVH6ulfL2rMDXIvKDiDyRSFNhqu7HcL4jC7PREPa0\n8gGwXVX/tegXCB1KG+Eras8DuxZC92JCRLYB64A7o+jrtGxzJ1Wdzj9DU/kCGFLVORF5kjBKuyux\npqL0AcOq+k8U16p+Pm8RkY2EjmFDFL3B/HwVMCIiP9kIpCW54EcMqrpJVW/MOT4DTtkNv3Tjz91o\nSEQuB74EBmxYWzr3SRvqzgHv0rgpml+BFVE4b1Ojc3lEZClwBTBbsGwjKHRdEdlE6KTvMz8C2c2d\ngG8Imzs1mqqaVXU20jkI3Fa0bIOo5bp9lE0jJfJzESrVK5WfCyEiNxHaRa+qzpbiIz//DnxKc6Zz\n6yf1IkfKA3iV7OLz7pw8bcB+4LmctE77FOB1wl4TjdC5lLDI1sX/C4xryvI8Q3bx+WOz15BdfJ6h\nOYvPRTTfSpiWW1kW3w4sM3s5cIx5FlSbrLkzsh8AxszuAI6b9nazO1pBs+VbRVgAldR+jq5/PZUX\ncu8lu/h8KKWfC2q+lrCG11MWfwlwWWSPApubpbmueqYWkLTyYQ5+v/1D7Cs1MMK0xqDZ24CzwOHo\nuMXSDgATwCTwIXBpA7VuBY7ajXTA4nYRnrQBLgI+sYZ5COiOyg5YuZ+BLU30bzXN+4BTkV8/t/ge\n8+u4ffa3kOaXgSOm7SCwKir7uPl/CnisVTRb+EXKHlwS+3mI8A2/s4R1gn5gB7DD0gV4y+o0Aaxr\nAT9X0zwInIna8/cW320+Hre2M9AszfUe/stnx3EcJ8MFv8bgOI7j1IZ3DI7jOE4G7xgcx3GcDN4x\nOI7jOBm8Y3Acx3EyeMfgOI7jZPCOwXEcx8ngHYPjOI6T4T94XiesGtmgbAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "[0.05629461 0.48213025 0.43630057]\n" ] } ], "source": [ "# We start by generating data using the make_blobs function from scikit learn. \n", "# We first consider a two classes dataset. We then learn the discriminant by solving the normal equations\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.datasets import make_blobs\n", "\n", "\n", "\n", "X, t = make_blobs(n_samples=100,n_features=2,centers=[[0,0], [1,1]],cluster_std = [.2, .2])\n", "\n", "plt.scatter(X[:,0], X[:,1], c = t)\n", "plt.show()\n", "\n", "num_samples = X.shape[0]\n", "\n", "# 1) Learn the discriminant through the normal equations\n", "\n", "sampleMat = np.hstack((np.ones((num_samples,1)), X))\n", "\n", "RHS = np.dot(sampleMat.T,t)\n", "normalMat = np.dot(sampleMat.T, sampleMat)\n", "\n", "# beta = (XT*X)^{-1}*(X^t t)\n", "# the line below is just solving the system nomalMat*beta = RHS\n", "\n", "beta = np.linalg.solve(normalMat, RHS)\n", "\n", "print(beta)\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0. 0. 0. ... 1. 1. 1.]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# To represent our model, Now that we have learned the beta, we can divide the space into a grid of equispaced points. \n", "# Concretely, we first compute the minimum and maximum X1 and X2. Once we have those, we then generate all the \n", "# points between X1_{min} and X1_{max} on the one hand, as well as between X2_{min} and X2_{max} on the other. Once we \n", "# have those two vectors, let us call them v1 and v2. Those two vectors contain the X1 coordinates and X2 coordinates \n", "# of the grid points. \n", "\n", "\n", "x1min = np.amin(X[:,0])\n", "x1max = np.amax(X[:,0])\n", "\n", "x2min = np.amin(X[:,1])\n", "x2max = np.amax(X[:,1])\n", "\n", "x1mesh = np.linspace(x1min, x1max, 100)\n", "x2mesh = np.linspace(x2min, x2max, 100)\n", "\n", "# To compute the prediction, we however need to generate all the pairs $(X1, X2)$ for all the points \n", "# on the grid. This is achieved through the meshgrid function. This function takes as first and second arguments \n", "# the vectors of X1 and X2 coordinates respectively and returns the X1 and x2 coordinates of all the points on the grid. \n", "# As an example if we want a grid with X1 = (1,2,3) and X2 = (1,2,3), meshgrid(X1, X2) will return the matrices \n", "# (1 2 3; 1 2 3; 1 2 3) and (1 1 1; 2 2 2; 3 3 3). \n", "\n", "x1MeshMat, x2MeshMat = np.meshgrid(x1mesh.reshape(-1,1), x2mesh.reshape(-1,1))\n", "\n", "# Meshgrid thus gives us the X1 and X2 coordinates \n", "# of all the points on the grid (nopt just the border). Those coordinates are returned as matrices, so to \n", "# build the X matrix to compute our prediction, we need to flatten the X1 and X2 meshgrid matrices and then \n", "# add a column of 1 on top of those coordinates\n", "\n", "\n", "x1MeshMat = x1MeshMat.flatten()\n", "x2MeshMat = x2MeshMat.flatten()\n", "\n", "X12 = np.vstack((x1MeshMat, x2MeshMat)).T\n", "\n", "totalNumPointsGrid = len(x1MeshMat)\n", "\n", "# generating the additional vector of ones\n", "addon = np.ones((totalNumPointsGrid, 1))\n", "\n", "# stacking it to the matrix of prototypes coordinates\n", "\n", "pointsGrid = np.hstack((addon.reshape(-1,1), X12))\n", "\n", "# Now that we have computed the X matrix, and since we have previously obtained the weights of our discriminant, \n", "# we can now get the predicted labels for the points over the whole space.\n", "\n", "prediction = np.dot(pointsGrid, beta)\n", "\n", "# reorganize my targets (according to original values given). Since we chose the targets to be 0 or 1. We classify our \n", "# points depending on whether the output of the model gives a value larger or smaller than 1/2 \n", "\n", "prediction[prediction<.5] = 0\n", "prediction[prediction>.5] = 1\n", "\n", "print(prediction)\n", "\n", "# To display the class of each point, we will use the function contourf. This function takes as first \n", "# argument a matrix of X1 coordinates (coordinates of all points on the grid ) and a matrix of X2 coordinates. \n", "# The reverse of meshgrid if you will. \n", "\n", "coordinatesX1 = np.reshape(x1MeshMat, (100,100))\n", "coordinatesX2 = np.reshape(x2MeshMat, (100,100))\n", "reshaped_prediction = np.reshape(prediction, (100,100))\n", "\n", "\n", "fig, ax = plt.subplots(constrained_layout=True)\n", "plt.scatter(X[:,0], X[:,1], c = t)\n", "ax.contourf(coordinatesX1, coordinatesX2, reshaped_prediction, alpha=0.1)\n", "plt.show()\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 2. From the Binary classifier to multiclass discriminant. \n", "\n", "__Material covered__ : one vs rest, one vs one, multiclass discriminant, one hot encoding " ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(10000, 2)\n", "(100, 1)\n" ] } ], "source": [ "print(np.shape(coordinates_grid))\n", "\n", "print(np.shape(np.ones((numSamplePoints, 1))))" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "(array([0]),)\n" ] } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.datasets import make_blobs\n", "\n", "\n", "\n", "X, t = make_blobs(n_samples=100,n_features=2,centers=[[-1,0], [1,0], [.5, 1]],cluster_std = [.2, .2, .2])\n", "\n", "plt.scatter(X[:,0], X[:,1], c = t)\n", "plt.show()\n", "\n", "# we first consider a 3 classes problem for which we code the one vs rest and one vs one classifiers \n", "\n", "K = 3\n", "dim = 2\n", "numSamplePoints = X.shape[0]\n", "\n", "# 1) one vs rest \n", "\n", "target = np.zeros((numSamplePoints,K))\n", "Xtilde = np.hstack((np.ones((numSamplePoints, 1)), X))\n", "beta = np.zeros((dim+1, K)) \n", "\n", "\n", " \n", "for i in np.arange(0, K):\n", "\n", " target[np.where(t==i), i] = 1\n", " beta[:,i] = np.dot(np.linalg.inv(np.dot(Xtilde.T, Xtilde)), np.dot(Xtilde.T, target[:,i]))\n", " \n", " \n", " \n", "\n", "# plotting and generating the grid \n", "x1min = np.amin(X[:,0])\n", "x1max = np.amax(X[:,0])\n", "x2min = np.amin(X[:,1])\n", "x2max = np.amax(X[:,1])\n", "\n", "x1mesh = np.linspace(x1min, x1max, 100) \n", "x2mesh = np.linspace(x2min, x2max, 100)\n", "\n", "X1meshMat, X2meshMat = np.meshgrid(x1mesh, x2mesh) \n", "\n", "coordinates_grid = np.vstack((X1meshMat.flatten(), X2meshMat.flatten())).T\n", "coordinates_tilde = np.hstack((np.ones((np.shape(coordinates_grid)[0], 1)),coordinates_grid ))\n", " \n", "# getting the predictions\n", " \n", "out_classifier = np.zeros((np.shape(coordinates_grid)[0],K))\n", "indClassification = np.zeros((np.shape(coordinates_grid)[0], K))\n", " \n", " \n", "target_out_total = np.zeros((np.shape(coordinates_grid)[0], 1))\n", "\n", "for i in np.arange(0, K):\n", " \n", " out_classifier[:,i] = np.dot(coordinates_tilde, beta[:,i])\n", " indClassification[np.where(out_classifier[:,i]>0.5),i] = 1\n", " target_out_total[np.where(out_classifier[:,i]>0.5)] = i\n", "\n", " \n", "# looking for overlaps\n", "\n", "misclassification = np.sum(indClassification, axis=1)\n", "\n", "ind_misclassified1 = np.where(misclassification>1) \n", "ind_misclassified2 = np.where(misclassification==0)\n", "\n", "\n", "target_out_total[ind_misclassified1] = K\n", "target_out_total[ind_misclassified2] = K\n", "\n", "print(ind_misclassified)\n", "\n", " " ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ " \n", "# plotting the resulting classifier\n", "\n", "fig, ax = plt.subplots(constrained_layout=True)\n", "plt.scatter(X[:,0], X[:,1], c = t) \n", "ax.contourf(X1meshMat, X2meshMat, target_out_total.reshape((100,100)), alpha=0.2)\n", "plt.show() \n", "\n", "# The representation below also shows that the classifier cannot properly classify some regions in \n", "# the (x_1, x_2) space (show in yellow). For those regions, points are either classified as belonging to \n", "# multiple classes (such as in the center) or they are do not get any label at all (such as the triangles on the border)\n" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# I now code the one vs one classifier. We still consider the three classes dataset from above \n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.datasets import make_blobs\n", "\n", "X, t = make_blobs(n_samples=100,n_features=2,centers=[[-1,0], [1,0], [.5, 1]],cluster_std = [.2, .2, .2])\n", "plt.scatter(X[:,0], X[:,1], c = t)\n", "plt.show()\n", "\n", "# we first consider a 3 classes problem for which we code the one vs rest and one vs one classifiers \n", "\n", "K = 3\n", "dim = 2\n", "numSamplePoints = X.shape[0]\n", "\n", "\n", "\n", "Xtilde = np.hstack((np.ones((numSamplePoints, 1)),X))\n", "\n", "# we will sore our beta vectors in a 3D array\n", "\n", "\n", "beta_tensor = np.zeros((K,K, 3))\n", "\n", "\n", "\n", "# generating the grid (we will classify the points from the grid in real time)\n", "x1min = np.amin(X[:,0])\n", "x1max = np.amax(X[:,0])\n", "x2min = np.amin(X[:,1])\n", "x2max = np.amax(X[:,1])\n", "\n", "x1mesh = np.linspace(x1min, x1max, 100) \n", "x2mesh = np.linspace(x2min, x2max, 100)\n", "\n", "X1meshMat, X2meshMat = np.meshgrid(x1mesh, x2mesh) \n", "\n", "coordinates_grid = np.vstack((X1meshMat.flatten(), X2meshMat.flatten())).T\n", "coordinates_tilde = np.hstack((np.ones((np.shape(coordinates_grid)[0], 1)),coordinates_grid ))\n", " \n", "# define vector counting the votes for each point\n", "\n", "count = np.zeros((np.shape(coordinates_grid)[0], K))\n", "\n", "for i in np.arange(0, K):\n", " \n", " for j in np.arange(0,K):\n", " \n", " if i > j:\n", " \n", " \n", " XtildeLocal = Xtilde[np.squeeze(np.hstack((np.where(t==i), np.where(t==j)))), :]\n", " tlocal = t[np.squeeze(np.hstack((np.where(t==i), np.where(t==j))))] \n", " tlocal2 = np.zeros(np.shape(tlocal))\n", " tlocal2[tlocal == i] = 1 # here we do i vs j\n", " tlocal2[tlocal == j] = 0\n", " \n", " beta_ij = np.dot(np.linalg.inv(np.dot(XtildeLocal.T, XtildeLocal)), np.dot(XtildeLocal.T, tlocal2))\n", " \n", " beta_tensor[i,j, :] = beta_ij\n", " beta_tensor[j,i, :] = beta_ij\n", " \n", " \n", " prediction = np.dot(coordinates_tilde,beta_ij)\n", " ind_i = np.where(prediction > 0.5)\n", " ind_j = np.where(prediction < 0.5)\n", " count[ind_i, i] += 1\n", " count[ind_j, j] += 1\n", " \n", " \n", " \n", "# Now that we have all the beta, we compute each of the regions. We will proceed through a majority vote. \n", "# That is we start by getting all the labels for each of the binary classifiers. And we add one each time a point \n", "# is classified in a given class\n", "\n", "\n", "\n", "count_final = np.squeeze(np.zeros((np.shape(coordinates_grid)[0], 1)))\n", "\n", "for i in np.arange(np.shape(coordinates_grid)[0]):\n", " count_final[i] = np.argmax(count[i,:])\n", " \n", "\n", " \n", "# add a few lines highlighting the regions where points are classified at random\n", "\n" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n1AAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plotting the resulting classifier\n", "\n", "fig, ax = plt.subplots(constrained_layout=True)\n", "plt.scatter(X[:,0], X[:,1], c = t) \n", "ax.contourf(X1meshMat, X2meshMat, count_final.reshape((100,100)), alpha=0.2)\n", "plt.show() \n", "\n", "# note that here although the plot does not show it, we can have regions in space that get the same \n", "# number of votes and there is thus also some form of ambiguity. When taking the max of the votes, in case of an \n", "# equality numpy selects an index at random which is why it is not visible on the plot. \n" ] }, { "cell_type": "code", "execution_count": 142, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "(100, 1)\n", "(100, 2)\n" ] } ], "source": [ "# To conclude, we consider a K class discriminant function. We still consider the 3 classes example from above \n", "# In this case, the first step is to encode the \n", "# each of the targets through a 1-hot encoding. We have \n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.datasets import make_blobs\n", "\n", "X, t = make_blobs(n_samples=100,n_features=2,centers=[[-1,0], [1,0], [.5, 1]],cluster_std = [.2, .2, .2])\n", "plt.scatter(X[:,0], X[:,1], c = t)\n", "plt.show()\n", "\n", "# we first consider a 3 classes problem for which we code the one vs rest and one vs one classifiers \n", "\n", "K = 3\n", "dim = 2\n", "numSamplePoints = X.shape[0]\n", "\n", "\n", "oneHotEncodingT = np.zeros((len(t),K))\n", "oneHotEncodingT[np.arange(0,len(t)), t] = 1\n", "\n", "\n", "vec_ones = np.ones((numSamplePoints, 1))\n", "# As before, we build the matrix Xtilde by adding a column of 1 to X. \n", "\n", "\n", "print(np.shape((np.ones((np.shape(X)[0],1)))))\n", "print(np.shape(X))\n", " \n", " \n", "\n", "Xtilde = np.hstack((np.ones((np.shape(X)[0],1)), X))\n", "\n", "# we then solve the matrix system Xtilde*BETA = T (here both X and BETA are matrices)\n", "\n", "solutionBeta = np.dot(np.linalg.inv(np.dot(Xtilde.T, Xtilde)), np.dot(Xtilde.T, oneHotEncodingT))\n", "\n", "# if you print the shape of the matrix you now see that this matrix has size numClasses*3 so that we \n", "# now have 3 weight vectors. If we apply this weight matrix to the meshgrid data, as we did before, \n", "\n", "x1min = np.amin(X[:,0])\n", "x1max = np.amax(X[:,0])\n", "x2min = np.amin(X[:,1])\n", "x2max = np.amax(X[:,1])\n", "\n", "x1mesh = np.linspace(x1min, x1max, 100) \n", "x2mesh = np.linspace(x2min, x2max, 100)\n", "\n", "X1meshMat, X2meshMat = np.meshgrid(x1mesh, x2mesh) \n", "\n", "Xmeshgrid = np.vstack((X1meshMat.flatten(), X2meshMat.flatten()))\n", "\n", "XmeshgridTilde = np.hstack((np.ones((np.shape(Xmeshgrid.T)[0],1)),Xmeshgrid.T ))\n", "\n", "\n", "prediction_grid = np.dot(XmeshgridTilde, solutionBeta)\n", "\n", "\n", "# From this, we can then define our class to be the index of the row that gives the highest value for t[i,j], for each column j\n", "# the columns corresponding to the dataset points\n", "\n", "final_classificationTargets = np.squeeze(np.zeros((np.shape(prediction_grid)[0],1)))\n", "\n", "for i in np.arange(0, len(final_classificationTargets)):\n", " \n", " final_classificationTargets[i] = np.argmax(prediction_grid[i,:])\n", "\n", "# Now we display the prediction using contourf\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 143, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plotting the resulting classifier\n", "\n", "fig, ax = plt.subplots(constrained_layout=True)\n", "plt.scatter(X[:,0], X[:,1], c = t) \n", "ax.contourf(X1meshMat, X2meshMat, final_classificationTargets.reshape((100,100)), alpha=0.2)\n", "plt.show() " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# we are now guaranteed to predict a single class for each of the points from our dataset \n", "# (except if our classifier outputs twice the same value which is quite unlikely). \n", "# The OLS classifier which we used throughout the various steps above is however not robust to outliers. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 2. The sigmoid function " ] }, { "cell_type": "code", "execution_count": 145, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nwEdAkwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# to resolve the lack of robustness of the OLS classifier vis a vis outliers, we can consider an additional \n", "# non linear function which should return approximately the same value regardless of the distance of a point to \n", "# the separating plane. This means that we would like the function to return a value alpha_0 when the output to the \n", "# OLS classifier is positive and a value alpha1 when the output to the classifier is negative. A further improvement \n", "# can be achieved if we could 'force' those values to be 0 and 1. In this case taking the decision regarding the \n", "# classes becomes a lot easier. As we will see, this is what the sigmoid will approximately give us. \n", "\n", "# From the two figures below, you can see that the sigmoid always return a value between 0 and 1 and it \n", "# quickly saturates as we move aways from 0. \n", "\n", "\n", "x = np.linspace(-10,10, 100)\n", "\n", "sigmoid = np.true_divide(1, 1+np.exp(-x))\n", "\n", "plt.plot(x, sigmoid)\n", "plt.show()\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 146, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n8yQYdI+6AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "\n", "x = np.linspace(-100,100, 100)\n", "\n", "sigmoid = np.true_divide(1, 1+np.exp(-x))\n", "\n", "plt.plot(x, sigmoid)\n", "plt.show()\n", "\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 2 }