Created
December 15, 2013 00:49
-
-
Save dhammack/7967148 to your computer and use it in GitHub Desktop.
Code for a linear basis function model, with demos using it for regression and classification with different bases. Also shows the affect of regularization on model predictions and generalization. Based on Bishop 3.1 and part of 4.1.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"metadata": { | |
"name": "LinearModels" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "# Linear Basis Function Models for Regression and Classification #\n\nBased on Bishop ch 3 and ch 4.\n\n### Included in this workbook ### \n1. Code for a generic linear model with custom basis functions \n2. Using the model for regression \n3. Using the model for classification \n4. Demo of how regularization affects generalization \n\n## Linear Basis Function Model ##\nThis is a generic linear model, and it currently has one dimensional output. So it's suited for one-dimensional regression or binary classification. It supports using custom basis functions and training with either gradient descent or the normal equation. " | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "%pylab inline\n\nclass LinearModel(object):\n \"\"\"\n A generic linear regressor. Uses nonlinear basis functions, can fit with\n either the normal equations or gradient descent\n \"\"\"\n \n def __init__(self, basisfunc=None):\n \"\"\"\n Instantiate a linear regressor. If you want to use a custom basis function,\n specify it here. It should accept an array and output an array. The default\n basis function is the identity function.\n \"\"\"\n self.w = array([])\n self.basisfunc = basisfunc if basisfunc is not None else self.identity\n \n def identity(self, x):\n #identity basis function - for linear models in x\n return x\n \n def basismap(self, X):\n #return X in the new basis (the design matrix)\n Xn = zeros((X.shape[0], self.basisfunc(X[0,:]).shape[0]))\n for i, xi in enumerate(X):\n Xn[i,:] = self.basisfunc(xi)\n return Xn\n \n def fit_gd(self, X, y, itrs=100, learning_rate=0.1, regularization=0.1):\n \"\"\"\n fit using iterative gradient descent with least squares loss\n itrs - iterations of gd\n learning_rate - learning rate for updates\n regularization - weight decay. Greated values -> more regularization\n \"\"\"\n \n #first get a new basis by using our basis func\n Xn = self.basismap(X)\n \n #initial weights\n self.w = uniform(-0.1, 0.1, (Xn.shape[1],1))\n \n #now optimize in this new space, using gradient descent\n print 'initial loss:', self.loss(X,y)\n \n for i in range(itrs):\n grad = self.grad(Xn, y, regularization)\n self.w = self.w - learning_rate*grad\n \n print 'final loss:', self.loss(X,y)\n \n def grad(self, X, y, reg):\n \"\"\"\n Returns the gradient of the loss function with respect to the weights.\n Used in gradient descent training.\n \"\"\"\n return -mean((y - dot(X, self.w)) * X, axis=0).reshape(self.w.shape) + reg*self.w\n \n def fit_normal_eqns(self, X, y, reg=1e-5):\n \"\"\"\n Solves for the weights using the normal equation. \n \"\"\"\n Xn = self.basismap(X)\n #self.w = dot(pinv(Xn), y)\n self.w = dot(dot(inv(eye(Xn.shape[1])*reg + dot(Xn.T, Xn)), Xn.T) , y)\n \n def predict(self, X):\n \"\"\"\n Makes predictions on a matrix of (observations x features)\n \"\"\"\n Xn = self.basismap(X)\n return dot(Xn, self.w)\n \n def loss(self, X, y):\n #assumes that X is the data matrix (not the design matrix)\n yh = self.predict(X)\n return mean((yh-y)**2)\n ", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "Populating the interactive namespace from numpy and matplotlib\n" | |
} | |
], | |
"prompt_number": 165 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Let's test it out. First, let's make some basis functions:" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "def fourier_basis(x):\n #use sine waves with different amplitudes\n sins = hstack(tuple(sin(pi*n*x)) for n in arange(0,1,0.1))\n coss = hstack(tuple(cos(pi*n*x)) for n in arange(0,1,0.1))\n return hstack((sins, coss))\n\ndef linear_basis(x): #includes a bias!\n return hstack((1,x))\n\ndef polynomial_basis(x): #degree 10\n return hstack(tuple(x**i for i in range(10)))\n\ndef sigmoid_basis(x): #offset sigmoids\n return hstack(tuple((1+exp(-x-mu))**-1) for mu in arange(-9,9,0.5))\n\ndef heavyside_basis(x): #offset heavysides\n return hstack(tuple(0.5*(sign(x-mu)+1)) for mu in arange(-9,9,0.5))\n", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 177 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Now we'll generate some data." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "#generate some data\nX = arange(-8, 8, 0.1).reshape((-1,1))\ny = sin(X) + randn(X.shape[0],X.shape[1])*0.3\nscatter(X, y)\n", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 179, | |
"text": "<matplotlib.collections.PathCollection at 0x13cf3588>" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nMWZD/j/ThkvZIWFGwQAAAABJRU5ErkJggg==\n", | |
"text": "<matplotlib.figure.Figure at 0x13ce30f0>" | |
} | |
], | |
"prompt_number": 179 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Linear basis, without a bias." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel()\nmodel.fit_normal_eqns(X, y, reg=0.1)\nXn = arange(-8, 8, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\ntitle('Linear basis, no bias')\nshow()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n/3l/SU2PBSJzAAAAAElFTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x14971198>" | |
} | |
], | |
"prompt_number": 161 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Linear basis, with a bias. Since the data are centered, this won't be any different then the above. We'll see an example later where the bias is important." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=linear_basis)\nmodel.fit_normal_eqns(X, y, 0.1)\nXn = arange(-8, 8, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\ntitle('Linear Basis, with bias')\nshow()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nHDYAAAAASUVORK5CYII=\n", | |
"text": "<matplotlib.figure.Figure at 0x153a7358>" | |
} | |
], | |
"prompt_number": 160 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "We can obviously see that the data are from a sine wave. Using a sinusoidal basis..." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=fourier_basis)\nmodel.fit_normal_eqns(X, y, 0.1)\nXn = arange(-8, 8, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\ntitle('Fourier basis')\nshow()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x13cd7ef0>" | |
} | |
], | |
"prompt_number": 181 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Sine is an analytic function. We should be able to approximate it with a polynomial, right?" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=polynomial_basis)\nmodel.fit_normal_eqns(X, y, 0.1)\nXn = arange(-8, 8, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\ntitle('Polynomial basis')\nshow()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEKCAYAAAD+XoUoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdUFFcbBvBnC7A7u3QQsEuzi71rkNhr7CWWxJ7Yookm\nmqhojCZRY1RsMUZjr1H8LNgx9l6jRkQRxYqgdJZln++PJRsIqCBlKPM7xyOzc2fmnYV9d+bOLTKS\nhEQikUiKBLnYAUgkEokk70hJXyKRSIoQKelLJBJJESIlfYlEIilCpKQvkUgkRYiU9CUSiaQIkZK+\nJF8qW7YsDh06JHYYabRt2xZr1qzJVNk3xf/RRx9h8uTJORkaQkNDYWlpCakFtuRtlGIHICncypYt\ni2fPnkGhUECj0aBNmzbw8/ODRqN543YymQwymSyPosycPXv2ZLrsm+LPjXMrXbo0oqOjc3SfksJJ\nutKX5CqZTIZdu3YhOjoaFy9exPnz5zFjxgyxwxKddEUuEYuU9CV5pnjx4mjdujWuX78OANi5cycq\nV64MW1tbNGvWDLdu3Uq3zZMnT6DRaBAREWF67eLFiyhWrBj0ej1WrVqFxo0bY/z48bCzs4OrqysC\nAgJMZR89eoSOHTvC3t4eHh4e+PXXX03rfH190b17d/Tr1w9WVlaoVq0agoKCMGvWLDg5OaFMmTI4\ncOCAqby3tzdWrFgBAAgODoaPjw8cHBzg6OiIvn374tWrV5l+L8LDw9GyZUtYWVnB29sboaGhpnVj\nxoxB6dKlYW1tjdq1a+P48eOmdWfPnkXt2rVhbW0NZ2dnfP755wCAkJAQyOVyGAwGAMCqVavg5uYG\nKysruLq6Yv369ZmOTVK4SUlfkuv+uap98OAB9u7di5o1a+L27dvo06cPFixYgPDwcLRt2xYdOnSA\nXq9Ps62zszO8vb2xefNm02tr1qxB7969oVQaayfPnj2LChUq4MWLF5gwYQIGDRpkKturVy+ULl0a\njx8/xtatWzFp0iQcOXLEtH7Xrl3o378/IiMjUaNGDbRo0QKA8cti8uTJGDZsmKnsf6tlvv76azx+\n/Bg3b97EgwcP4Ovrm+n3Y926dZgyZQrCw8NRvXp1fPjhh6b1devWxZUrVxAZGYk+ffqge/fu0Ol0\nAIxfCGPHjsWrV69w9+5d9OjRI93+Y2NjMWbMGAQEBCAqKgqnTp1C9erVMxWbpAigRJKLypQpQ61W\nSxsbG5YpU4YjRoxgfHw8p0+fzp49e5rKGQwGlihRgkePHiVJli1blocOHSJJbty4kY0aNSJJ6vV6\nOjs789y5cyTJlStX0t3d3bSf2NhYymQyPn36lKGhoVQoFIyJiTGtnzhxIj/66COS5NSpU9myZUvT\nup07d1Kr1dJgMJAko6KiKJPJ+OrVK5Kkt7c3V6xYkeF5bt++nTVq1DAtp47/vwYMGMDevXublmNi\nYqhQKPjw4cMMy9va2vLq1askyaZNm3Lq1Kl8/vx5mjL37t2jTCZjcnIyY2JiaGNjw23btjEuLi7D\nfUqKLulKX5KrZDIZ/P39ERkZiZCQEPj5+UGlUuHx48coXbp0mnKlSpVCWFhYun106tQJN27cQEhI\nCA4cOGCq9viHs7Oz6WdBEAAAMTExePToEezs7NI8NC5dunSaYxQrVsz0s1qthoODg+lqXq1Wm/b1\nX0+fPkWvXr1QsmRJWFtbo1+/fnjx4kWm35OSJUualjUaDezs7PDo0SMAwJw5c1CpUiXY2NjA1tYW\nr169Qnh4OABgxYoVuH37NipWrIi6deti9+7d6fav0WiwadMmLF26FMWLF0f79u3x999/Zyo2SeEn\nJX2JKIoXL4779++blkniwYMHKFGiRLqyKpUK3bt3x9q1a7F27Vr0798/08eIiIhIk7RDQ0PTJNx3\nNWnSJCgUCly/fh2vXr3CmjVrTPXpmfHgwQPTzzExMYiIiEDx4sVx7NgxzJ49G1u2bMHLly8RGRkJ\na2trUxWZu7s71q9fj+fPn+PLL79Et27dEB8fn27/LVu2xP79+/HkyRNUqFABQ4YMyfY5SwoHKelL\nRNGjRw/s3r0bhw8fRlJSEubOnQuVSoWGDRtmWL5///5YuXIldu7ciX79+mXqGKVKlULDhg0xceJE\nJCYm4urVq/jtt9/Qt2/fbMcfExMDjUYDKysrhIWFYfbs2ZneliT27NmDEydOQKfTYfLkyWjQoAFK\nlCiB6OhoKJVKODg4QKfTYfr06YiKijJtu3btWjx//hwAYG1tDZlMBrk87cf42bNn8Pf3R2xsLMzM\nzKDRaKBQKLJ9zpLCQUr6ElF4enpi7dq1GDVqFBwdHbF7927873//Mz2c/a9GjRpBLpejVq1aKFWq\nlOn1jNq8p17esGEDQkJCULx4cXTp0gXTp0+Hj49PprbNaPkfU6dOxcWLF2FtbY0OHTqga9eumW57\n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\nTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x13cdb5c0>" | |
} | |
], | |
"prompt_number": 156 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Neural nets use sigmoids. Our sigmoid basis will be kind of like a neural net, but we won't modify the basis as we train." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=sigmoid_basis)\nmodel.fit_normal_eqns(X, y, 0.1)\nXn = arange(-8, 8, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\ntitle('Sigmoidal basis')\nshow()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x14955320>" | |
} | |
], | |
"prompt_number": 155 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Suppose we know the function is locally linear. We can use heavyside step functions to approximate it." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=heavyside_basis)\nmodel.fit_normal_eqns(X, y, 0.1)\nXn = arange(-8, 8, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\ntitle('Heavyside basis')\nshow()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x13ce6198>" | |
} | |
], | |
"prompt_number": 154 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Interesting. Let's try some different data, making it non-centered so the bias becomes important." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "X = arange(-10, 10, 0.5)\ny = 0.8*abs(X)**0.3 + 2 + randn(X.shape[0])*0.1\nscatter(X,y)\nX = X.reshape((-1,1))", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x13d0cd30>" | |
} | |
], | |
"prompt_number": 182 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Linear basis, no bias" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel()\nmodel.fit_normal_eqns(X, y, reg=0.1)\nXn = arange(-10, 10, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\ntitle('Linear basis, no bias')\nshow()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEKCAYAAAARnO4WAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xtck/X7P/DXGAM2jiICwlAQUJCUgwfUUjAlkhRMy1BL\nSk0+ltnRDmZfsVI7ePhY+DH156E+msc8kCIftVwmilSe8pSooJxE0UBgwNh2/f5AF8imjg0G7Ho+\nHnu47X7f7/u6mbvue9d9v+9bQEQExhhjbZ6FqQNgjDHWPDjhM8aYmeCEzxhjZoITPmOMmQlO+Iwx\nZiY44TPGmJnghM+M4tdff0VAQICpwwAAJCUl4YUXXjB6v/b29sjJyTF6v43l7e2Nn376Seu0lvR5\nsJaDEz7Ti64kM3DgQJw/f94EETUkEAiapN+ysjJ4e3s3Sd+NIRAIdK5rS/o8WMvBCZ/p5X5JxhRU\nKlWD93gsIWPaccJnRiGTyeDl5aV57e3tjYULFyI4OBhOTk6Ij49HdXW1ZvquXbsQEhKCdu3a4dFH\nH8Wff/6pmfbZZ5/Bz88PDg4OCAoKwo4dOzTT1q5di0cffRRvvfUWXFxcMGfOnAaxCAQCVFVVIT4+\nHg4ODujVqxdOnTr1UP1fvHgRERERcHJyQocOHRAfH6+ZZmFhgcuXLwMAUlNTERQUBAcHB0ilUixc\nuPCh/k4vvvgiXn31VQwfPhwODg7o16+fpk8AOHz4MPr06QMnJyf07dsXR44cuW9/mZmZCAoKgrOz\nMyZOnKj5G9/7eTR2nVkbQ4zpwdvbm3766acG7x84cICkUmm9duHh4VRYWEi3bt2iwMBA+uabb4iI\n6NixY+Tq6kqZmZmkVqvp22+/JW9vb1IoFEREtGXLFiosLCQiok2bNpGtrS1du3aNiIjWrFlDlpaW\nlJycTCqViiorKxvEMnv2bBKJRPTDDz+QUqmkBQsWkI+PDymVygf2Hx8fT/PmzSMiourqakpPT9f0\nKxAI6NKlS0RE5O7uTocOHSIiopKSEjp27NhD/f0SEhKoffv29Ntvv5FSqaTx48dTfHw8ERHdvHmT\nnJycaN26daRSqWjDhg3Url07unnzpta+OnfuTD169KC8vDy6desWPfroozRr1iytn0dj15m1LbyH\nz5rM9OnT4e7ujnbt2mHEiBE4ceIEAGDFihVITExEnz59IBAIMGHCBFhbW2v2Zp955hm4u7sDAMaM\nGQN/f38cPXpU06+HhwdeffVVWFhYwMbGRuuye/fujVGjRkEoFOKtt95CVVXVffvPzMwEAFhZWSEn\nJwf5+fmwsrLCgAEDtPZvZWWFM2fO4Pbt23B0dERoaOhD/U0EAgFGjRqF3r17QygUYvz48Zq/y+7d\nu9GtWzeMHz8eFhYWiI+PR0BAAH788UedfU2bNg2enp5o164dPvzwQ2zYsEFrW2OsM2v9OOGzJnM3\nwQCAWCxGeXk5AODKlStYuHAh2rVrp3nk5eWhsLAQAPDdd98hNDRUM+306dO4efOmpq+6pQpdpFKp\n5rlAIIBUKr1v/8XFxQCAL774AkSEvn374pFHHsGaNWu09v/DDz8gNTUV3t7eiIyMREZGxkP/Xdzc\n3LT+XQoKCtCpU6d6bTt37oz8/HydfdX9W3Tq1AkFBQVa2xljnVnrZ2nqAJj5uHuwt1OnTvjwww8x\nc+bMBm2uXLmCKVOm4Oeff0b//v0hEAgQGhpa70Dswxw0zs3N1TxXq9XIy8uDh4fHA/t3c3PDihUr\nAADp6ekYOnQoIiIi0KVLl3r99+7dGzt27IBKpcLXX3+NMWPG4OrVq/r/Uerw9PTEtm3b6r135coV\nDBs2TOc8dZd59epVeHh4NGhjrHVmrR/v4TO9KRQKVFVVaR7azpTR5m6Cefnll/HNN98gMzMTRISK\nigrs3r0b5eXlqKiogEAggIuLC9RqNdasWYPTp0/rHeMff/yB7du3Q6lU4t///jdsbGzQr1+/B/a/\nZcsW5OXlAQCcnJwgEAhgYVH/a1JTU4P169ejtLQUQqEQ9vb2EAqFmukWFhY4ePDgff8G2gwbNgwX\nLlzAhg0boFQqsWnTJpw/fx7Dhw/X2dfSpUuRn5+PW7duYe7cuVoPuBpjnVnbwJ8q01tMTAwkEonm\nMWfOnAeerll3eq9evbBy5UpMmzYNzs7O8Pf3x3fffQcA6N69O95++230798f7u7uOH36NB577DGt\n/dxvWSNHjsSmTZvg7OyM9evXY9u2bRAKhQ/s//fff0e/fv1gb2+PuLg4fPXVV5pz7+sud926dfDx\n8YGjoyNWrFiB9evXA6j9ZWFvb48ePXo88O9Q9z0AaN++PXbt2oWFCxfCxcUFCxYswK5du+Ds7Kyz\nr/Hjx+OJJ56Ar68v/P39MWvWrAb9GrLOrG0R0P12OR6SSqVC7969IZVKtR5gmj59Ovbs2QOJRIK1\na9c+9AEuxlqb9evX4+zZs5g7d66pQ2GsAaPU8JcsWYLu3bujrKyswbTU1FRcvHgRWVlZOHr0KKZO\nnarXAS7GWpPx48ebOgTGdDK4pJOXl4fU1FRMnjxZa30yJSUFCQkJAIDw8HCUlJSgqKjI0MUyxhjT\nk8EJ/80338SXX36p8yBPfn5+vVPHpFKp5gARY4yx5mNQwt+1axdcXV0bnDZ3r3untaRrsTDGmLkw\nqIZ/+PBhpKSkIDU1FVVVVbh9+zYmTJigOeMCqD23uO450Xl5efD09GzQl5+fHy5dumRIOIwxZlZ8\nfX1x8eLFh5/BWNdokMlkNHz48Abv7969m4YNG0ZEREeOHKHw8HCt8xsxlBZn9uzZpg6hSfH6tW68\nfq2XvnnTqCNt75Zqli9fDgBITExETEwMUlNT4efnB1tbWx62zRhjJmK0hB8REYGIiAgAtYm+ruTk\nZGMthjHGWCPxSNtmEBkZaeoQmhSvX+vG62c+jDLS1hgEAgHfqYgxxvSgb97kPXzGGDMTnPAZY8xM\ncMJnjDEzwQmfMcbMBCd8xhgzE5zwGWPMTHDCZ4wxM8EJnzHGzAQn/BbkwoUL2LFjB/78809Th8JY\ni6VQKEwdQqvFCd8EiAhXrlxBbm6uZpTcypWrERLyGBISVqFfv2h8/PFnAIBt27bB378XpNJAfPDB\nbKhUKlOGzpjJyGQyuLh4wcZGAm/vIJw5c8bUIbU+Rr9eZyO1oFCaVFlZGQ0YEEVisRvZ2HSgqKg4\nunbtGllbOxDwFwFEQCGJxR1o3bp1JBa7E7CXgOMkkQygmTOTTL0KjDUptVpNq1evpUGDRtDw4fF0\n7NgxunbtGtnZdSDgfwSoCFhFrq7epFAoTB2uSembN3kPv5m9++7/4dixDqiszENVVR4OHSLMnv0J\nRCJXAF3vtHKHlVUANm/egcrKNwFEAQiBXP4V1q3barrgGWsGX3/9H0ybNh8HD07Arl0DMHDgE0hJ\nSYFQ2APAE6gtTExERYUaV69eNXG0rYtRr4fPHiwz8ySqqt7D3T99ZeV4/PXXegiFZQBSAcQAOIqa\nmrOQSkMgFBbinypOIWxtbU0SN2PNZeHCbyCXrwXQDwAgl1/DoUNHUFNzAcBtAA4AclFT8zdcXFxM\nF2grxHv4TSgnJwcxMWMQEBCOSZOmoby8HIGBvhCJUgEQAIK19R707NkNu3f/ACenSRCL3SCRDMOm\nTWvx/vsz4OCwGULh6wDmQiyehC++mGWU2G7evImXXnoF4eFP4LXX3kFFRYVR+mVMHykpKXBz6wIb\nGwdER4/C33//rbWdm5s7nn9+FGxt+0IimQiJpD/mzfsEjo6OzRxx62bQ5ZGrqqoQERGB6upqKBQK\nxMXFYf78+fXayGQyxMXFoUuXLgCA0aNHY9ashkmrrV0eubS0FF27huDmzclQqQbD2vo/CA+/hS1b\n1mLAgChcv24JoAadO0uQnr4XDg4OUCqVKCoqQocOHWBlZQWg9h7Ay5evRFmZHM89Nwr9+/cHAOzf\nvx8//yyDu7srJk+eDIlE8tCxVVdXo2fP/sjOHoCamqdgY/NfhIUV49Ch//EN5lmzOXXqFPr1G4rK\nyq0AHoGV1UwMHFiIuLhovP/+Esjln6L2V+0n+O23gwgICMCBAwdw6dIlBAcHo2/fvgCAW7duYffu\n3SAixMTEmNVev95509CDBhUVFUREVFNTQ+Hh4fTrr7/Wm37gwAEaMWLEA/sxQigtyq5du8jB4fE7\nB2GJgBqysnKg4uJiqqyspIMHD1J6enqjDjolJy8jiaQTCQRJZGPzNHXv3ofkcvlDz5+enk729sEE\nqDWxicUd6fLly3rHwlhjLVmyhKytp9b5jpSTpaU1qVQqWrPmW4qMjKXY2LF07NgxnX3k5uaSq2tn\nsrV9mmxtR5GLixfl5OQ041qYlr550+Aa/t09S4VCAZVKBWdnZ20bFUMX0+qIRCIQlaO2dCMAUAki\nJUQiEWxsbDBw4MBG9UtEePfdmZDLjwDohqoqwpUrUdi+fTvGjRv3UH3U7sWr6/YKQA0LC67wsebj\n7OwMS8u/UF199ztyHnZ2zrCwsMCLL07Aiy9OeGAfH3zwMW7efB4q1acAgKqqOXj33SRs2sT3ztbG\n4G+4Wq1GSEgI3NzcMHjwYHTv3r3edIFAgMOHDyM4OBgxMTE4e/asoYtsFSIiIiCVqmFtnQBgFSSS\nGMTHPw8HBweD+iUiVFeXA+h05x0BiDqjrKzsofvo3bs3OnUSw9p6MoAfYGPzHPr1641OnTo9cF7G\njOXZZ5+Fn18VbG2fhKXl25BIhmPp0oV69XH16jWoVL00r1WqXsjNvWbsUNsMg/fwLSwscOLECZSW\nliI6OhoymazePSTDwsKQm5sLiUSCPXv2YOTIkbhw4YLWvpKSkjTPIyMjW/W9KK2trZGR8RPmz1+A\nrKxfMXDgc5g2barB/VpYWODxx5/CwYNTUV09B8AJACl4/PH3ceTIEUyZ8jZu3LiOIUMGY/nyxbCz\ns2vQh0gkQnr6Xsya9QnOnPkv+vbtiaSkmVy/Z83q7ndkw4YNuHHjBiIjd2rq8g8rJiYCv/++CHJ5\nBAALSCQLMWxYdNME3ALIZDLIZLJGz2/Ue9p+8sknEIvFeOedd3S28fHxwR9//NGg9NPWDto2pdLS\nUrz00jTIZAfQvr0rVq5chE6dOqFnz3BUVCQDCIa19RwMHarGrl2bTB0ua6NqamqwePFX+P330+jZ\nsyveeedN2NjYNGsMKpUKU6e+iTVrVgAAJkyYhOXLl8DS0jzOONc3bxqU8IuLi2FpaQknJydUVlYi\nOjoas2fPxpAhQzRtioqK4OrqCoFAgMzMTIwZMwY5OTkGB87qW758Od588ygqK1ffeacCQqEzFIrK\nZq/NHzp0CGlpe9G+fTtMnDiRT51rg4gIw4ePwYEDt1FZ+SzE4l0IC6vEwYN7THIs6O4lR4RCYbMv\n25T0zZsGbQYLCwuRkJAAtVoNtVqNF154AUOGDMHy5csBAImJidi6dSuWLVsGS0tLSCQSbNy40ZBF\nMh1sbW1hYVGAfw4SF8LKStzsZZp1675HYuI7qKycDCurTHz11f/DqVMZsLe3b9Y4WNPKycnBgQO/\norLyCgBrVFa+iBMnAnDy5EmEhoY2ezzmlugby6glHUPwHr5hKioqEBr6KK5e7Y7q6mBIJCvw8cfT\n8fbbrxvcNxHh+++/x6+/ZsLfvzNeffUVnT/dXV19cOPGRgDhAACxeDQWLhyKqVMNP37BWo7z58+j\nd+9hqKi4jNodDIK9fSj27VuOvn37IisrC1VVVQgMDIRIJDJ1uG1Ws+7hs5bD1tYWv/9+EP/5zzIU\nFFzHE08swfDhw43S9+uvv4tVq/ZDLn8BNja/YOPGFBw+vE/rF7mi4jYAb83rmhpv3L592yhxsOah\nVCpRUlKC9u3b6/yF6O/vD29vV2RlvQ6FYhwsLXeifXslunfvjuHDx0AmOwILC1u4udng0KH/wd3d\nvZnXgmllnNP/DdeCQmlzbt++TT///DNlZGSQUqnUe16RSELAzTuDY1RkZxdC+/fv19r+2WcTyMbm\nGQKyCfgficUd6Pjx43ot89KlSxQePoQcHTtS796DKSsrS6/5WeNt2LCJbGwcyNraiTw8/Oj06dM6\n2xYXF9OYMS+Sn18viosbRwUFBbRo0b9JLB5KQBUBarK0fI9GjIhvxjUwL/rmzRaTZTnhN41Lly6R\nm5sPOTgMIDu7bjRw4JNUXV2ts/2pU6do6tTXacqU1+i3336j69evk7W1051L0taOiHRwiKaUlBSt\n81dUVNC4cZOpXTspde78CO3evVuveCsrK8nDw48sLL4k4CpZWCwmNzcfzYhu9o+qqiq9RljXVVNT\nQx9+OIe6du1D4eFRdPjwYbpw4QJJJB0IOHHns15FHh5+pFarH7rfF16YQsDSOqNnj1Hnzj0aFSN7\nME74rJ7IyOFkYfF5nUsoxNDChYu0tj127BjZ2roQ8DEB80kicaFffvmFevUaRCLRKwScIYFgKbVr\n50HFxcVEVHvtcmNek/z48eNkb9+9TsIgcnAIpszMTKMto7VTqVQ0efI0EgqtSSi0pri4sVRVVaWz\nvVqtpnPnztGRI0eorKyMiIimT59BEskgAg4R8B1JJC60cOFCsrcfVe9vb2XlqPmsH8aCBYtILI4m\noPrOHv5MiokZY/A6M+044bN6PD0DCThV50v8b5o06VWtbZ95JoGARXXarqbHH4+jmzdv0siR46lj\nx64UHj6Uzpw5Q0RECxcuISsrW7KwENGgQcPo1q1bBsd7+fJlEotdCSi7E0MFicUd6fz58wb33VYs\nXvwVSSSPElBCgJzE4lh68833tbZVqVQ0duxEEos9yMGhF7m4dKJz586Ro2NHAi5pPmuh8E2aMiWR\nbG27EHD7zvsnyMbGgWpqah46NoVCQVFRcSSReJG9fXfy8Qmi/Px8Y606u4e+eZMP2rZxYWHBuH59\nNWpqFgEoh0SyCf36TdTaVi6vAlB3QJwz5PIqODs7Y/v2dfXa7t27Fx999G8oFH8CkCIjYxoSEl5B\nSsoGg+L18fHB6NFx2L59MCoqhsPWdg+GD49G165dHzyzmdi//zDk8n8BqB3fUFn5On7+eY7Wtps3\nb0ZKyilUVmahslICgWAZnntuMqysrAGUatoJhaXw9w/E2LFW2LAhBEJhMJTKQ1i9+v/pNYhJJBLh\nf//bjnPnzqGqqgpBQUGwtrYGEWHlylXYs+cXdOrkjlmz3kWHDh0M+TOwxmia7Y7+WlAobcr169cp\nKKgvSSQeZG3tRM8//zKpVCqtbbdv304SSac7t5E7QBKJP61evVZr25kzZxEwu86vgSvk5ORhlJjV\najWtX7+ePvjgQ/rvf/+rM15zNW3aWyQSvVpn73yuzgOjs2cnEfBhnc+pkOzsXOjrr/9DEkkXAv5D\nQuE71L69lAoLC4mI6PDhw7R582a6cOGC0WJ+++0PSCIJI2ANiUTTyNPTn0pLS43Wv7nSN2+2mCzL\nCb/pqFQqys7OpmvXrj2w7XffraPAwH7UtWsf+uabFTrbJScnk1g8vM4lln8gf/8wY4bN7lAoFFRY\nWKgprdy4cYM6dw4ke/shZG//FLm4eFF2drbWebds2UK2tiEElBJAZGGxkHr1iiAiom3bttG4cZPp\ntdfeptzc3CaLX6VSkUgkJuCaZsNjZ/cUrV+/vsmWaS444bNmIZfLKTh4ANnZDSRb2/Fka+vS4F4I\ndZ0/f54GDx5Bvr5hNGnSNCovL2/GaFuvtLQ0srNrTzY2LuTk5E4HDx4kIqKysjL64YcfaPPmzXTz\n5k2d86vVanr55dfIxqY92dsHkIeHH128eFGvGNRqNc2d+zl5egZSp06P0IoV/0+v+ZVKJQmFVnWO\nyxDZ2j5Ha9as0asf1hAnfNZsqquraevWrbR69er73jzlxo0b1K6dBwkEiwk4SjY2z9ETT4xsxkhb\np+vXr985a+rgnUSZSg4Orpozbe6lUCgoKWkuDRo0gl566RUqKirSTLty5QqdOnXqvmfz6LJ48ddk\naxtMwO8EHCKJxIe2bNmqVx9jxiSQWPwUAQdJIFhMjo7umhISazxO+KzF2bRpE9nbx9apI1eTpaUN\nn1v/AAcPHiRHx/71TpO0tw+kkydPam3/7LMTSCx+goBtJBK9SV5e3XRuHPQRFjaYgLR6Z2/Fxo7X\nq4+qqip68833qXv3/hQV9TSdO3fO4LgYn6XDWiArKysQleCfC7vV3gnM0tISarUaV69ehUgkgoeH\nh1lfk//333/Hpk0/QCKxwcsvT4JUKkV19QUAhQA6AsiGQlEADw+PBvOWl5dj+/YtUCqLAUhQU/M0\nSkqO4+eff0ZsbKxBcdnb2wIo0LwWCArg6GirVx/W1tZYtGj+gxuyJsX3tGNNLjo6Gh07lsLKaiKA\nFZBIovGvf01DZWUlwsMfR/fuA+DnF4y4uLGoqakxdbgmsW/fPkRExGDBAmvMnXsTPXr0hVAoxIcf\nvguJpBccHOIgFvfDggWfPeAm3XU3mEKjXJBw/vyZkEjeBfARLCxmwM5uCWbOfNPgflnz46tlsmZR\nWlqKL75YhEuX8jBkyABMnjwRL744FZs2KVFdvQKAAhJJLD766Am8/77uG+i0VSEhg3Dy5BsARgEA\nhMIZmD7dAosWfY5Tp04hKysLgYGBDW4hWtfIkeOwd+9tVFZOhaXlr3B1/QHnzx8zyqWpT506hfXr\nN8LSUoiJE1+Er6+vwX0yw/HVMlmL5OjoiLlz6w8O+u23k6iu/hK1PzRtIJePw9GjP5kkPlMrL68A\n8E+pRqXyRGlpFgCgZ8+e6Nmz5wP72Lx5LZKS5uHAga/RpYsXFiw4aLT7EDxsDKxl44TPTKZbN19k\nZe2BUvkYADVsbNLQvXuAqcMyifHjn8aCBW9BLv8GwC1IJAsQH79Grz6srKwwb15Sk8TH2gaDSjpV\nVVWIiIhAdXU1FAoF4uLiMH9+wwMz06dPx549eyCRSLB27Vqtd8Thko75KSgoQP/+Q1BSYg+1Wo6u\nXZ1x8OAe2Nrqd0CwLVCpVJg162N8++1GWFvbYO7c9zFu3FhTh8VauGa9py0AyOVySCQSKJVKPPbY\nY1iwYAEee+wxzfTU1FQkJycjNTUVR48exeuvv46MjAyDA2dtQ2VlJX777TeIRCL06dPngddtodpT\niR9439Tbt29jxYoVuHHjFqKjh+Lxxx83ZtiMtQj65k2Dz9KRSCQAAIVCAZVKBWdn53rTU1JSkJCQ\nAAAIDw9HSUkJioqKDF0sayPEYjEGDRqE/v373zfZExFmz/4UYrEDrK0liI9/CdXV1VrblpWVISTk\nUcyadQxffCHGiBEJWLVKv/IIY22RwQlfrVYjJCQEbm5uGDx4cIOzCPLz8+Hl5aV5LZVKkZeXZ+hi\nmZlZt249FizYhOrqs1Aqi5CSUowZMz7S2nbjxo0oKvJFdfX3AD6CXP4jZsyY1bwBM9YCGXzQ1sLC\nAidOnEBpaSmio6Mhk8kQGRlZr829Pzl0Da5JSkrSPI+MjGzQDzNfu3cfgFz+GoDanYfKyplIS5uu\ntW1ZWRmUSq8673ihsrK86YO8R0VFBRIT38TevfvRvr0Lli9fgEGDBjV7HKztkMlkkMlkjZ7faGfp\nODo64qmnnsLvv/9eL1F7enoiNzdX8zovLw+enp5a+6ib8BmrSyp1hUh0AnfHZQkEJ+Hu7qq1bXR0\nND76KBIKRTSAANjYzMRTT8U1X7B3PP/8FKSlKVFVlYYbN05j2LDROH48na/tzxrt3h3hOXO03wdB\nF4NKOsXFxSgpKQFQe/Bt3759Dc7AiY2NxXfffQcAyMjIgJOTE9zc3AxZLDND77//NtzcfoKtbSwk\nkgmws5uN5GTtQ/WDgoKwc+cG+PvPhovLUIwe7YRvv13WzBEDu3dvR1XVCgBdAYyCWj0Ke/fubfY4\nGLvLoD38wsJCJCQkQK1WQ61W44UXXsCQIUOwfPlyAEBiYiJiYmKQmpoKPz8/2NraYs0aPnjG9Ofi\n4oLTpzOxY8cOKBQKPPnk3HrHhu41dOhQXLjwRzNG2JC1tS1qavJx985UQmE+7Oz6mzQmZt740gqM\nNZGlS7/Bu+9+Brl8CqytT0MqPY0TJw7Dzs4ORASlUgmRSGTqMFkr1uynZTJmStXV1ZgxYxZCQiIw\nYsRYXLp0ydQhabz66r+wbdtyvPVWKT7+OBTHjh2CnZ0dNm/eAgeHDrC2FiM4+FE+a401G97DZ63a\nM89MQGrqTVRWvg0Li0w4OSXjr79OPOCKksZXUFCAb75Zgdu3K/DMM3H1Bh/Wdfr0afTt+zgqK9MA\nBEMo/ARBQftw8mR6s8bL2oZmH2lrLJzwmb4UCgUkEnuoVLcA1F6Owc7uaSxf/izGjRvXbHEUFBSg\nZ89wlJaOhFLZERLJ11i/fhlGjhzZoO3KlSvxxhtHIJevvvOOChYWNqiqknN5h+mNSzrMbFhYWNwZ\n06Go824VhEJhs8bxzTcrUFoaB6XyawAzIZevxYwZn2ht6+bmBguLkwDuXvf/JCQSxwdeUoIxY+CE\nz1otS0tLvPzyVEgkTwFYD5HodTg5XcawYcP06kepVGLVqlWYNesj7NixQ+9fmmVlFVAqO9Z5pyPk\n8gqtbYcPH44BAzrBzq4/JJKJEIufxKpVy8z6Tl+s+XBJh7VqarUaX3/9H+zdewidO3fEnDkz0aFD\nB73mj44ehSNHSlFREQFb2y2YOvVpfPnlpw/dR3p6OqKiRqOyci0AD0gk0/DKKwPx5ZdztbZXqVRI\nTU3FtWvX0L9/fzzyyCMPvSzG6uIaPmN6SE9Px5NPTkZ5+SkAIgDFEIm8UVxcAAcHh4fuZ+fOnZgx\n4xPI5RUYO3Y05s9P4jINa3J8xyvG9HD79m0IhVLUJnsAaA9LS1uUlZXplfDj4uIQF9f8l29gTB+c\n8JlZ69u3L4DTANYCGAqh8Bt06iRFx44dtbYnIvz3v/9FZuYJBAR0wZQpU2BlZdWMETPWeFzSYWbv\n5MmTGD/+X8jNzUZISC9s2LASHh4eWtu+/PJr+P77DMjlYyAW/4S+fS3w88+7HnhDFsaaAtfwGdOB\niPDVV/+MLynMAAAVLElEQVTB+vU74OBgh/nzZ6JPnz4PPf+NGzcglfpBobiK2uvjKGFn9wj27VuL\nfv36NVncjOnCNXzGdJg370vMn/89KirmAcjD4MExOHpUhqCgoIeaXy6XQyi0BXC3tm8JCwtXVFRo\nPwWTsZaGf4cys7F06SpUVKwFEANgCuTyyfj++40PPb+Xlxd8fKQQid4F8BcEgq9gZXVFr18JjJkS\nJ3xmNmrr7Io6rxV6jcq1sLDAgQO7MGRIDtzcnkJ4+C6kp+/T62wexkyJa/jMbCQnL8N77y2CXP5/\nEAjyYGe3GMePH4Gvr6+pQ2OsUfigLWP38f33G7F+/Q44Odnho4/eQUBAgKlDYqzRmjXh5+bmYsKE\nCbh+/ToEAgGmTJmC6dPr31haJpMhLi4OXbp0AQCMHj0as2bNMjhwxhgzd816lo5IJMLixYsREhKC\n8vJy9OrVC1FRUQgMDKzXLiIiAikpKYYsijHGmIEMOmjr7u6OkJAQAICdnR0CAwNRUFDQoB3vuTPG\nmOkZ7SydnJwcHD9+HOHh4fXeFwgEOHz4MIKDgxETE4OzZ88aa5GMMcb0YJSBV+Xl5XjmmWewZMkS\n2NnZ1ZsWFhaG3NxcSCQS7NmzByNHjsSFCxe09pOUlKR5HhkZicjISGOExxhjbYJMJoNMJmv0/Aaf\npVNTU4Phw4dj2LBheOONNx7Y3sfHB3/88QecnZ3rB8IHbRljTC/NeotDIsKkSZPQvXt3ncm+qKhI\nE1BmZiaIqEGyZ4wx1vQMKumkp6dj3bp16NmzJ0JDQwEA8+bNw9WrVwEAiYmJ2Lp1K5YtWwZLS0tI\nJBJs3PjwQ9kZY4wZDw+8YoyxVqpZSzqMMcZaD074jDFmJjjhM8aYmeCEzxhjZoITPmOMmQlO+Iwx\nZiY44TPGmJnghM8YY2aCEz5jjJkJTviMMWYmOOEzxpiZ4ITPGGNmwig3QGGsLaqqqkJGRgYEAgH6\n9esHa2trU4fEmEE44TOmRXFxMfr1exzXr1sDILi7q5CR8RPfy4G1alzSYUyLGTP+D1evRqKsLBNl\nZb/hypV++OCDOaYOizGDGJTwc3NzMXjwYAQFBeGRRx7BV199pbXd9OnT4e/vj+DgYBw/ftyQRTLW\nLM6fv4yammgAAgACKBTROHfusqnDYswgBiV8kUiExYsX48yZM8jIyMDSpUtx7ty5em1SU1Nx8eJF\nZGVlYcWKFZg6dapBATPWHPr3D4WNzRoANQAUEIvXYsCAUFOHxZhBDEr47u7uCAkJAQDY2dkhMDAQ\nBQUF9dqkpKQgISEBABAeHo6SkhIUFRUZsljGmtzcuf+HAQOqYWPTEdbWHTFwoABz5nxo6rAYM4jR\nDtrm5OTg+PHjCA8Pr/d+fn4+vLy8NK+lUiny8vLg5uZmrEUzZnRisRj796egsLAQAoEA7u7uEAgE\npg6LMYMYJeGXl5fjmWeewZIlS2BnZ9dg+r33XOQvDmsNBAIBPDw8TB0GY0ZjcMKvqanB6NGj8fzz\nz2PkyJENpnt6eiI3N1fzOi8vD56enlr7SkpK0jyPjIxEZGSkoeExxlibIZPJIJPJGj2/gPS55fk9\niAgJCQlo3749Fi9erLVNamoqkpOTkZqaioyMDLzxxhvIyMhoGIied19njDFzp2/eNCjhHzp0CIMG\nDULPnj01ZZp58+bh6tWrAIDExEQAwLRp05CWlgZbW1usWbMGYWFhBgfOGGPmrlkTvjFxwmeMMf3o\nmzd5pC1jjJkJTviMMWYmOOEzxpiZ4ITPGGNmghM+Y4yZCU74jDFmJjjhM8aYmeCEzxhjZoITPmOM\nmQlO+IwxZiY44TPGmJnghM8YY2aCEz5jjJkJTviMMWYmOOEzxpiZ4ITPGGNmwuCEP3HiRLi5uaFH\njx5ap8tkMjg6OiI0NBShoaH49NNPDV0kY4yxRjD4JuYvvfQSXnvtNUyYMEFnm4iICKSkpBi6KMYY\nYwYweA9/4MCBaNeu3X3b8K0LGWPM9Jq8hi8QCHD48GEEBwcjJiYGZ8+ebepFMsYY08Lgks6DhIWF\nITc3FxKJBHv27MHIkSNx4cKFpl4sY4yxezR5wre3t9c8HzZsGF555RXcunULzs7ODdomJSVpnkdG\nRiIyMrKpw2OMsVZDJpNBJpM1en4BGaHAnpOTgxEjRuDPP/9sMK2oqAiurq4QCATIzMzEmDFjkJOT\n0zAQgYBr/Ywxpgd986bBe/hjx47FL7/8guLiYnh5eWHOnDmoqakBACQmJmLr1q1YtmwZLC0tIZFI\nsHHjRkMXyRhjrBGMsodvDLyHzxhj+tE3b/JIW8YYMxOc8BljzExwwmeMMTPBCZ8xxswEJ3zGGDMT\nnPAZY8xMcMJnjDEzwQmfMcbMBCd8xhgzE5zwGWPMTHDCZ4wxM8EJnzHGzAQnfMYYMxOc8BljzExw\nwmeMMTPBCZ8xxsyEQQl/4sSJcHNzQ48ePXS2mT59Ovz9/REcHIzjx48bsjjGGGMGMCjhv/TSS0hL\nS9M5PTU1FRcvXkRWVhZWrFiBqVOnGrI4xhhjBjAo4Q8cOBDt2rXTOT0lJQUJCQkAgPDwcJSUlKCo\nqMiQRTLGGGukJq3h5+fnw8vLS/NaKpUiLy+vKRfJGGNMB8umXsC9N9gVCAQ62yYlJWmeR0ZGIjIy\nsomiYoyx1kcmk0EmkzV6/iZN+J6ensjNzdW8zsvLg6enp872dRM+Y4yx+u7dEZ4zZ45e8zdpSSc2\nNhbfffcdACAjIwNOTk5wc3NrykUyxhjTwaA9/LFjx+KXX35BcXExvLy8MGfOHNTU1AAAEhMTERMT\ng9TUVPj5+cHW1hZr1qwxStCMMcb0J6B7i+wmIhAIGtT7GWOM6aZv3uSRtowxZiY44TPGmJnghM8Y\nY2aCEz5jjJkJTviMMWYmOOEzxpiZ4ITPGGNmghM+Y4yZCU74jDFmJjjhM8aYmeCEzxhjZoITPmOM\nmQlO+IwxZiY44TPGmJnghM8YY2aCEz5jjJkJgxN+WloaAgIC4O/vj88//7zBdJlMBkdHR4SGhiI0\nNBSffvqpoYtkjDHWCAbd4lClUmHatGnYv38/PD090adPH8TGxiIwMLBeu4iICKSkpBgUKGOMMcMY\ntIefmZkJPz8/eHt7QyQSIT4+Hjt37mzQjm9dyBhjpmdQws/Pz4eXl5fmtVQqRX5+fr02AoEAhw8f\nRnBwMGJiYnD27FlDFskYY6yRDCrpCASCB7YJCwtDbm4uJBIJ9uzZg5EjR+LChQta2yYlJWmeR0ZG\nIjIy0pDwGGOsTZHJZJDJZI2eX0AG1FsyMjKQlJSEtLQ0AMD8+fNhYWGB9957T+c8Pj4++OOPP+Ds\n7Fw/ED3vvs4YY+ZO37xpUEmnd+/eyMrKQk5ODhQKBTZt2oTY2Nh6bYqKijQBZWZmgogaJHvGGGNN\nz6CSjqWlJZKTkxEdHQ2VSoVJkyYhMDAQy5cvBwAkJiZi69atWLZsGSwtLSGRSLBx40ajBM4YY0w/\nBpV0jIlLOowxpp9mLekwxhhrPTjhM8aYmeCEzxhjZoITPmOMmQlO+E1MrQb+/tvUUTDGmIGnZbIH\nu3YNCAgAhELAxwfo0qX237rPvb0Ba2tTR8oYa+v4tMxmQATcvAlkZ9c+Ll+u/29uLtChg/aNQZcu\nQMeOgAX/FmOM3UPfvMkJvwVQKoH8fO0bg8uXgdJSoHNn7RsDHx/AycnUa8AYMwVO+G2QXA7k5Gjf\nGGRnAyKR7nJR585cLmKsreKEb2aIgOJi3eWivDzA1VV3ucjdnctFjLVWnPBZPUplbdLXVS66fbv2\nV8C9ZaK7/zo6mnoNGGO6cMJneqmo0F4uuvvc2lr3sYPOnQErK1OvAWPmixM+M5q75SJdxw7y8wE3\nN+0bg7vlooe4Rw5jrJE44bNmo1TWnlKqbWOQnQ2UlWkvF9197uBg6jVgrHXjhM9ajPLy+5eLbGx0\nHzvo1InLRYw9CCd81ioQATdu6N4YFBTUloS0bQx8fLhcxBhggoSflpaGN954AyqVCpMnT9Z6P9vp\n06djz549kEgkWLt2LUJDQw0OnLVtNTUNy0V1n5eX116SQtvGwMeHy0XMPDRrwlepVOjWrRv2798P\nT09P9OnTBxs2bEBgYKCmTWpqKpKTk5GamoqjR4/i9ddfR0ZGhsGBM/NWXq57Y5CdDYjFuo8ddOpU\nO1iNsdZO37xp0MXTMjMz4efnB29vbwBAfHw8du7cWS/hp6SkICEhAQAQHh6OkpISFBUVwc3NzZBF\nMzNnZwf06FH7uBcRcP16/Q3A0aPAxo217xUW1l6fSNfoZDc3LhextsmghJ+fnw8vLy/Na6lUiqNH\njz6wTV5eHid81mQEgtqk7eYG9O/fcHpNDXD1av1fBj/++M8GQi6vXy66d8Ngb9/sq8SYURiU8AUP\nuRt0708OXfMlJSVpnkdGRiIyMrKxoTGmk0gE+PrWPrQpK2tYJvrpp3/es7XVfakKLy8uF7GmI5PJ\nIJPJGj2/QQnf09MTubm5mte5ubmQSqX3bZOXlwdPT0+t/dVN+IyZir090LNn7eNeREBRUf2NwZEj\nwPff176+dg3w8NA9OtnVlctFrPHu3RGeM2eOXvMblPB79+6NrKws5OTkwMPDA5s2bcKGDRvqtYmN\njUVycjLi4+ORkZEBJycnLuewVksgqD0l1N1de7lIoag9u6ju6aY7d/7zurJS98bAx6f22ARjTcWg\nhG9paYnk5GRER0dDpVJh0qRJCAwMxPLlywEAiYmJiImJQWpqKvz8/GBra4s1a9YYJXDGWiIrq/uX\ni27frl8uunQJ2Lev9nVOTm3C13WpCi8vwJLvUccMwAOvGGshiGpLQrouVXG3XKRrdHKHDlwuMjc8\n0paxNkqhqD27SNfF7Kqr718usrU19RowY+OEz5iZKi3VfSOcnJza0ce6NgZcLmqdOOEzxhpQq+9f\nLioqAjw9dZeLXFy4XNQSccJnjOmtulp7ueju85oa7YPQ7j6XSEy9BuaJEz5jzOhKSrRfs+jyZeDK\nldpbYeoqF0mlXC5qKpzwGWPNSq2uvT6RrovZXb9em/R1XcyufXsuFzUWJ3zGWItSXV37K0DbxuDy\n5do7p+naGHh7c7nofjjhM8Zalb///mdDcO/G4MoVoF073ccOpFJAKDT1GpgOJ3zGWJuhVtfe/UzX\n6aY3btSeUqrrYnbOzm27XMQJnzFmNqqqan8FaNsYXL4MvPoqMHeuqaNsOpzwGWPsDqWybZ8hpG/e\ntGjCWBhjzKTacrJvDE74jDFmJjjhM8aYmeCEzxhjZqLRFa5bt27hueeew5UrV+Dt7Y3NmzfDycmp\nQTtvb284ODhAKBRCJBIhMzPToIAZY4w1TqP38D/77DNERUXhwoULGDJkCD777DOt7QQCAWQyGY4f\nP262yd6Qmw63Brx+rRuvn/lodMJPSUlBQkICACAhIQE7duzQ2dbcT7ds6//heP1aN14/89HohF9U\nVKS5GbmbmxuKioq0thMIBBg6dCh69+6NlStXNnZxjDHGDHTfGn5UVBSuXbvW4P259wxdEwgEEOgY\nv5yeno6OHTvixo0biIqKQkBAAAYOHGhAyIwxxhqFGqlbt25UWFhIREQFBQXUrVu3B86TlJRECxYs\n0DrN19eXAPCDH/zgBz8e8uHr66tX3m70WTqxsbH49ttv8d577+Hbb7/FyJEjG7SRy+VQqVSwt7dH\nRUUF9u7di9mzZ2vt7+LFi40NhTHG2ENo9LV0bt26hTFjxuDq1av1TsssKCjAyy+/jN27d+Py5csY\nNWoUAECpVGL8+PH44IMPjLoCjDHGHk6LuXgaY4yxpmXSkbZbtmxBUFAQhEIhjh07pnk/JycHYrEY\noaGhCA0NxSuvvGLCKBtP1/oBwPz58+Hv74+AgADs3bvXRBEaT1JSEqRSqeYzS0tLM3VIBktLS0NA\nQAD8/f3x+eefmzoco/P29kbPnj0RGhqKvn37mjocg02cOBFubm7o0aOH5r1bt24hKioKXbt2xRNP\nPIGSkhITRmgYbeun9/dOr4q/kZ07d47++usvioyMpD/++EPzfnZ2Nj3yyCMmjMw4dK3fmTNnKDg4\nmBQKBWVnZ5Ovry+pVCoTRmq4pKQkWrhwoanDMBqlUkm+vr6UnZ1NCoWCgoOD6ezZs6YOy6i8vb3p\n5s2bpg7DaA4ePEjHjh2rlztmzJhBn3/+ORERffbZZ/Tee++ZKjyDaVs/fb93Jt3DDwgIQNeuXU0Z\nQpPStX47d+7E2LFjIRKJ4O3tDT8/vzYxCpnaUHUwMzMTfn5+8Pb2hkgkQnx8PHbu3GnqsIyuLX1m\nAwcORLt27eq9p88A0ZZO2/oB+n2GLfbiadnZ2QgNDUVkZCQOHTpk6nCMqqCgAFKpVPNaKpUiPz/f\nhBEZx9dff43g4GBMmjSpVf90BoD8/Hx4eXlpXreVz6gucxgU+bADRFszfb53TZ7wo6Ki0KNHjwaP\nH3/8Uec8Hh4eyM3NxfHjx7Fo0SKMGzcOZWVlTR1qozRm/bTRNXCtJdG1rikpKZg6dSqys7Nx4sQJ\ndOzYEW+//bapwzVIa/g8DJWeno7jx49jz549WLp0KX799VdTh9Sk7jdAtLXS93vX5PeD2bdvn97z\nWFlZwcrKCgAQFhYGX19fZGVlISwszNjhGawx6+fp6Ync3FzN67y8PHh6ehozrCbxsOs6efJkjBgx\noomjaVr3fka5ubn1fpW1BR07dgQAdOjQAU8//TQyMzPb3Ch4Nzc3XLt2De7u7igsLISrq6upQzKq\nuuvzMN+7FlPSqVuHKi4uhkqlAgBcvnwZWVlZ6NKli6lCM4q66xcbG4uNGzdCoVAgOzsbWVlZrf4s\nicLCQs3z7du31zuToDXq3bs3srKykJOTA4VCgU2bNiE2NtbUYRmNXC7X/Gq+OyiytX9m2twdIApA\n5wDR1kzv752RDyTrZdu2bSSVSsnGxobc3NzoySefJCKirVu3UlBQEIWEhFBYWBjt2rXLlGE2mq71\nIyKaO3cu+fr6Urdu3SgtLc2EURrHCy+8QD169KCePXtSXFwcXbt2zdQhGSw1NZW6du1Kvr6+NG/e\nPFOHY1SXL1+m4OBgCg4OpqCgoDaxfvHx8dSxY0cSiUQklUpp9erVdPPmTRoyZAj5+/tTVFQU/f33\n36YOs9HuXb9Vq1bp/b3jgVeMMWYmWkxJhzHGWNPihM8YY2aCEz5jjJkJTviMMWYmOOEzxpiZ4ITP\nGGNmghM+Y4yZCU74jDFmJv4/cy4YoRUTlN8AAAAASUVORK5CYII=\n", | |
"text": "<matplotlib.figure.Figure at 0x14d6eeb8>" | |
} | |
], | |
"prompt_number": 183 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "The bias allows us to compensate for non-centered data. Let's see how the predictions change once we add it." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=linear_basis)\nmodel.fit_normal_eqns(X, y,)\nXn = arange(-10, 10, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\ntitle('Linear basis, with bias')\nshow()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAEKCAYAAADticXcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVPX+x/HXsAnDpoKCgIbiCiigJJgb5L6kXiMzb0aL\nxjWta9vtZ92umLlVXlPbyEwrraxbWt3MNHXc0qyEXDNUVFAwURFhgIGZ7+8Pcq7ErgODw+f5eMzj\nwZzzne95nwE+c+Z7No1SSiGEEMIm2Fk7gBBCCMuRoi6EEDZEiroQQtgQKepCCGFDpKgLIYQNkaIu\nhBA2RIq6KGfHjh107tzZ2jEASExMZOLEiRbv193dnZMnT1q834oMHz6cDz74oNL5999/P88//3yN\n+jp58iR2dnaYTKYK58+bN4/JkydfV05hGxysHUBYT2BgIMuXL2fAgAFlpvft25dff/3VSqnK0mg0\nddLvlStX6qTfiqxfv97888qVK1m+fDk7duwwT9NoNBZbzxkzZlikH3Hzki31RsySxcQSjEZjuWly\nbpwQtSNFXZSj0+lo3bq1+XlgYCALFy4kLCyMpk2bMn78eIqKiszz//vf/xIeHk6zZs3o3bs3Bw4c\nMM+bP38+7du3x8PDg5CQENatW2eet3LlSnr37s0TTzyBt7c3s2bNKpdFo9FQWFjI+PHj8fDwoEeP\nHuzfv79G/R87doz+/fvTtGlTWrRowfjx483z7OzsOHHiBFC6JR0SEoKHhwcBAQEsXLiw2vcoLS2N\nZs2amZ9PnjwZHx8f8/OJEyeyePFiAGJiYli+fDm//vorf/vb39i9ezfu7u40b97c3P7ixYuMHDkS\nDw8PoqOjzdkqs3z5cvz9/fHz8yuT98/DVXfddRetWrWiadOm9O/fn8OHD5vnXc96i5uAEo1WYGCg\n2rx5c7npW7duVQEBAWXaRUVFqczMTHXx4kXVpUsX9dZbbymllNq3b59q2bKl2rt3rzKZTOq9995T\ngYGBymAwKKWU+vTTT1VmZqZSSqk1a9YoV1dXlZWVpZRSasWKFcrBwUG99tprymg0qoKCgnJZZs6c\nqRwdHdVnn32mSkpK1CuvvKLatm2rSkpKqu1//Pjxau7cuUoppYqKitSuXbvM/Wo0GnX8+HGllFK+\nvr5q586dSimlcnJy1L59+2r0/rVp08bctmPHjiooKEgdOXLEPC8lJUUppVRMTIxavny5UkqplStX\nqj59+pTpJz4+Xnl5eakff/xRlZSUqL/+9a9q/PjxFS4zLS1NaTQaNWHCBKXX69WBAwdUixYt1Hff\nfaeUUioxMVHde++95vYrVqxQeXl5ymAwqOnTp6vw8HDzvOtdb9GwyZa6qJHHHnsMX19fmjVrxh13\n3EFKSgoAb7/9NgkJCdx6661oNBruu+8+mjRpwu7duwGIi4vD19cXgHHjxtGhQwd++OEHc79+fn5M\nnToVOzs7nJ2dK1x2ZGQkY8eOxd7enieeeILCwsIq+9+7dy8ATk5OnDx5kjNnzuDk5MRtt91WYf9O\nTk4cOnSI3NxcPD09iYiIqNF70r9/f3Q6HVlZWWg0GuLi4ti2bRtpaWnk5uYSFhZW7jWqguEkjUbD\n2LFjiYyMxN7enr/+9a/m97cyM2fOxMXFhdDQUB544AE++uijCvu///77cXV1xdHRkZkzZ/LLL7+Y\n9ydc73qLhk2KuqiRq4UTwMXFhby8PABOnTrFwoULadasmfmRkZFBZmYmAO+//z4RERHmeQcPHuTC\nhQvmvq4d5qlMQECA+WeNRkNAQECV/WdnZwPw0ksvoZSiZ8+ehIaGsmLFigr7/+yzz1i/fj2BgYHE\nxMSwZ8+eGr0nV4v6jh076NevH/3792fbtm1s376dvn371qiPq64durn2/a3Mte9bmzZtOHv2bLk2\nRqOR//u//6N9+/Z4enrStm1bNBqN+f253vUWDZsUdXFdru5gbdOmDc899xyXLl0yP/Ly8rj77rs5\ndeoUDz/8MK+//joXL17k0qVLhIaGltmarMmO2vT0dPPPJpOJjIwM/Pz8qu3fx8eHt99+mzNnzpCU\nlMQjjzxS4Vh1ZGQk69at4/z584wZM4Zx48bV6D3o378/O3bsQKfTERMTQ58+fdi1axfbtm0jJiam\nyvftRp0+fbrMz/7+/uXafPjhh3z55Zds3ryZy5cvk5aWhlLK/P5c73qLhk2KeiNnMBgoLCw0Pyo6\nAqUiVwvD5MmTeeutt9i7dy9KKfLz8/n666/Jy8sjPz8fjUaDt7c3JpOJFStWcPDgwVpn/Pnnn1m7\ndi0lJSW8+uqrODs7Ex0dXW3/n376KRkZGQA0bdoUjUaDnV3ZP/ni4mJWr17N5cuXsbe3x93dHXt7\ne/N8Ozs7tm/fXmGu9u3b4+zszKpVq+jfvz/u7u60bNmSzz77jP79+1f4Gh8fHzIyMiguLi73XtbG\n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\nne4DW9IAAAAASUVORK5CYII=\n", | |
"text": "<matplotlib.figure.Figure at 0x14d4ea20>" | |
} | |
], | |
"prompt_number": 184 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Let's try a fourier basis." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=fourier_basis)\nmodel.fit_normal_eqns(X, y)\nXn = arange(-10, 10, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\ntitle('Fourier basis')\nshow()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAEKCAYAAADticXcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVPX++PHXsAgMKCooCqgkroAsbmipQbivXbWb+tWL\nVl5/ZnW13dsilmvWNbVuLmWZlXrrWmaaW0ouaZaCuGW4JSioiGyyDMx8fn+MciUQGJ1hYHg/Hw8e\nMed8zue8TzjvOfM5n0WjlFIIIYSwCXbWDkAIIYT5SFIXQggbIkldCCFsiCR1IYSwIZLUhRDChkhS\nF0IIGyJJXdikyZMnM2vWLLPVZ2dnx9mzZ81WH8DcuXOZOHGiWesUQiP91EVV8vPz48qVK9jb2wOg\n0Wj4/fffadKkiZUjK5+dnR2nT5+mZcuW1g5FiHLJnbqoUhqNhu+++47s7Gyys7PJysoye0I3GAx3\nfWxRUZEZIxGi6klSF9VCQUEBU6dOxcfHBx8fH6ZNm4ZOpwPgk08+oWfPniXK394cMn78eCZPnszA\ngQNxc3Nj165djB8/ntdee624/HfffUdoaCgNGjTggQce4OjRo8X7/Pz8eOuttwgODqZu3bp3/FDY\ntGkT/v7+NGrUiBdffJFbX3LPnDnDQw89hKenJ40aNWLs2LFkZmYWHzd//nx8fX2pV68e7dq1Y+fO\nnQDExMQwbtw4APLz8xk7diyenp40aNCArl27cuXKlXv93ypqIUnqosqV1eI3e/ZsDh48yJEjRzhy\n5AgHDx40qU18zZo1vPbaa+Tk5NCjRw80Gg0ajQaAuLg4Hn/8cVasWEF6ejqTJk1i6NChFBYWFh+/\ndu1avv/+ezIyMrCzK/tt8c0333Do0CEOHz7Mhg0bWLlyZfG+V155hZSUFE6ePElSUhIxMTEAnDp1\nivfff59ff/2VrKwstm3bhp+fH0CJGFetWkVWVhbJycmkp6ezbNkyXFxcKn39QtwiSV1UKaUUDz/8\nMA0aNKBBgwYMHz4cgM8//5zXX38dT09PPD09mTFjBqtXr650vQ8//DDdu3cHwMnJqcS+5cuXM2nS\nJLp06YJGo+Fvf/sbTk5OHDhwADAm12eeeQYfH59Sx97upZdeon79+jRr1oypU6eyZs0aAPz9/YmK\nisLR0RFPT0+mTZvGjz/+CIC9vT0FBQUcP36cwsJCmjdvXtwur5Qq/oCrU6cO165dIzExEY1GQ1hY\n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\nZMn7XLmSzuDBfWVxF1EtyYReQghhQ+RBqRBC1GKS1IUQwoaUm9STkpKIjIwkMDCQoKAgFi9eXGa5\nZ555htatWxMSEkJcXJxFAhVCCFGxcpO6o6MjCxcu5Pjx4xw4cID333+fkydPliizefNmTp8+TWJi\nIsuXL2fy5MkWDbi6upeFYqs7W742kOur6Wz9+kxVblJv0qQJoaGhALi5udG+fXsuXbpUosy3335L\ndHQ0AOHh4WRkZHD58mULhVt92fI/LFu+NpDrq+ls/fpMVek29fPnzxMXF0d4eHiJ7RcvXqRZs2bF\nr319fUlOTjZfhEIIISqtUkk9JyeHkSNHsmjRItzc3Ert/3N3m1sLVAshhKhiqgI6nU717dtXLVy4\nsMz9kyZNUmvWrCl+3bZtW5WamlqqnL+/vwLkR37kR37kx4Qff3//itJ0CQ6UQynF448/TkBAAFOn\nTi2zzNChQ3nvvfcYNWoUBw4coH79+nh5eZUqd/r06fJOJYQQwgzKHVG6d+9eevXqRXBwcHGTypw5\nc7hw4QIAkyZNAuCpp55iy5YtuLq68vHHH9OxY8cqCF0IIcSfVdk0AUIIISzPoiNKv/zySwIDA7G3\nt+fw4cPF28+fP4+LiwthYWGEhYXx5JNPWjIMi7nT9QHMnTuX1q1b065dO7Zt22alCM0nJiYGX1/f\n4r/Zli1brB2SWWzZsoV27drRunVr5s+fb+1wzM7Pz4/g4GDCwsLo2rWrtcO5J4899hheXl506NCh\neFt6ejp9+vShTZs29O3bl4yMDCtGeG/Kur67et+Z1AJvopMnT6pTp06piIgIdejQoeLt586dU0FB\nQZY8dZW40/UdP35chYSEKJ1Op86dO6f8/f2VXq+3YqT3LiYmRr3zzjvWDsOsioqKlL+/vzp37pzS\n6XQqJCREnThxwtphmZWfn5+6du2atcMwi927d6vDhw+XyB0vvPCCmj9/vlJKqXnz5qmXXnrJWuHd\ns7Ku727edxa9U2/Xrh1t2rSx5Cms6k7Xt2HDBkaPHo2joyN+fn60atWKgwcPWiFC81I21lJ38OBB\nWrVqhZ+fH46OjowaNYoNGzZYOyyzs5W/W8+ePWnQoEGJbbcPfoyOjuabb76xRmhmUdb1gel/P6tN\n6HXu3DnCwsKIiIhg79691grDIi5duoSvr2/xa19fXy5evGjFiMxjyZIlhISE8Pjjj9for7m3lDVw\nzhb+TrfTaDT07t2bzp07s2LFCmuHY3aXL18u7m3n5eVlk6PZTX3f3XNS79OnDx06dCj1s3Hjxjse\n4+3tTVJSEnFxcfzrX/9izJgxZGdn32soFnE311eWmjAg607X+u233zJ58mTOnTtHfHw8TZs25bnn\nnrN2uPesJvxN7tW+ffuIi4vj+++/5/3332fPnj3WDsliNBqNzf1N7+Z9V24/9crYvn27ycfUqVOH\nOnXqANCxY0f8/f1JTEysll0h7+b6fHx8SEpKKn6dnJyMj4+POcOyiMpe6xNPPMGQIUMsHI3l/fnv\nlJSUVOIbli1o2rQpAI0aNeIvf/kLBw8epGfPnlaOyny8vLxITU2lSZMmpKSk0LhxY2uHZFa3X09l\n33dV1vxye7tQWloaer0egLNnz5KYmEjLli2rKhSLuP36hg4dytq1a9HpdJw7d47ExMQa3/MgJSWl\n+Pevv/66xBP6mqpz584kJiZy/vx5dDod69atY+jQodYOy2xyc3OLvwHfuHGDbdu22cTf7XZDhw5l\n1apVAKxatYqHH37YyhGZ112978z48LaU9evXK19fX+Xs7Ky8vLxU//79lVJKffXVVyowMFCFhoaq\njh07qu+++86SYVjMna5PKaVmz56t/P39Vdu2bdWWLVusGKV5jBs3TnXo0EEFBwerYcOGlTkVRE20\nefNm1aZNG+Xv76/mzJlj7XDM6uzZsyokJESFhISowMDAGn99o0aNUk2bNlWOjo7K19dXrVy5Ul27\ndk1FRUWp1q1bqz59+qjr169bO8y79ufr++ijj+7qfSeDj4QQwobIcnZCCGFDJKkLIYQNkaQuhBA2\nRJK6EELYEEnqQghhQySpCyGEDZGkLoQQNkSSuhBC2JD/DyaOmoKK+rVlAAAAAElFTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x13cfcc18>" | |
} | |
], | |
"prompt_number": 185 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Polynomial basis." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=polynomial_basis)\nmodel.fit_normal_eqns(X, y)\nXn = arange(-10, 10, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\ntitle('Polynomial basis')\nshow()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAEKCAYAAADticXcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlYVGX7wPHvsAkDgoqKCyqJCyAiqInmEriiuWVWZhlq\ni6+ZZYtvr22SlWZZplZqpS3appVpaZobuaeJiKUplgYqqKig7DDz/P44xk9iHZhhYLg/18Ulc85z\nzrkPODfPPOdZdEophRBCCJtgZ+0AhBBCmI8kdSGEsCGS1IUQwoZIUhdCCBsiSV0IIWyIJHUhhLAh\nktSFVfj4+LB161Zrh1HIkCFDWLFiRbnKlhb/+PHjeeGFF8wZGgkJCdStWxfpgSzK4mDtAETN5uPj\nw4ULF7C3t8fV1ZXBgwfzzjvv4OrqWupxOp0OnU5XRVGWz4YNG8pdtrT4LXFvLVu25Nq1a2Y9p7BN\nUlMXlaLT6fjhhx+4du0aMTEx/Prrr7zyyivWDsvqpEYtrEWSujCbZs2aERERwW+//QbAunXr6NCh\nA/Xr1yc8PJw//vijyDHJycm4urpy+fLlgm0xMTE0btyY/Px8Pv74Y3r16sX06dNp0KABrVu3ZuPG\njQVlz507x/Dhw/H09KRt27Z8+OGHBfuioqK48847GTduHO7u7gQFBREfH8+cOXPw8vKiVatWbN68\nuaB8WFgYy5YtA+DPP/+kb9++NGzYkEaNGnHfffeRlpZW7p9FSkoKAwcOxN3dnbCwMBISEgr2Pf74\n47Rs2RIPDw+6du3Krl27Cvbt37+frl274uHhQZMmTXjqqacAOH36NHZ2dhiNRgA+/vhjfH19cXd3\np3Xr1nz++efljk3YNknqotL+qZUmJiby448/0rlzZ06cOMHYsWNZuHAhKSkpDBkyhGHDhpGfn1/o\n2CZNmhAWFsaqVasKtq1YsYJ77rkHBwetdXD//v34+flx6dIl/vvf//LAAw8UlB0zZgwtW7YkKSmJ\nr7/+mmeffZbt27cX7P/hhx+4//77uXLlCiEhIQwYMADQ/hi88MILTJo0qaDsv5tNnnvuOZKSkjh2\n7BiJiYlERUWV++fx2Wef8eKLL5KSkkJwcDD33ntvwf5u3bpx+PBhrly5wtixY7nzzjvJzc0FtIT/\nxBNPkJaWxl9//cVdd91V5PwZGRk8/vjjbNy4katXr7J3716Cg4PLFZuoBZQQldCqVSvl5uam6tWr\np1q1aqWmTJmisrKy1KxZs9Tdd99dUM5oNKrmzZurn3/+WSmllI+Pj9q6datSSqkvv/xS9ezZUyml\nVH5+vmrSpIk6cOCAUkqpjz76SLVp06bgPBkZGUqn06nz58+rhIQEZW9vr9LT0wv2z5gxQ40fP14p\npdTMmTPVwIEDC/atW7dOubm5KaPRqJRS6urVq0qn06m0tDSllFJhYWFq2bJlxd7nmjVrVEhISMHr\nG+P/t8jISHXPPfcUvE5PT1f29vbqzJkzxZavX7++iouLU0op1adPHzVz5kx18eLFQmVOnTqldDqd\nMhgMKj09XdWrV0998803KjMzs9hzitpLauqiUnQ6HWvXruXKlSucPn2ad955B2dnZ5KSkmjZsmWh\nci1atODs2bNFzjFixAiOHj3K6dOn2bx5c0GzxD+aNGlS8L1erwcgPT2dc+fO0aBBg0IPZVu2bFno\nGo0bNy743sXFhYYNGxbUxl1cXArO9W/nz59nzJgxeHt74+Hhwbhx47h06VK5fybe3t4Fr11dXWnQ\noAHnzp0DYN68eQQEBFCvXj3q169PWloaKSkpACxbtowTJ07g7+9Pt27dWL9+fZHzu7q68tVXX7Fk\nyRKaNWvG0KFDOX78eLliE7ZPkrqwiGbNmvH3338XvFZKkZiYSPPmzYuUdXZ25s4772TlypWsXLmS\n+++/v9zXuHz5cqGknJCQUCihVtSzzz6Lvb09v/32G2lpaaxYsaKgPbs8EhMTC75PT0/n8uXLNGvW\njJ07d/LGG2+wevVqUlNTuXLlCh4eHgVNWG3atOHzzz/n4sWLPPPMM4wePZqsrKwi5x84cCA//fQT\nycnJ+Pn58dBDD1X6noVtkKQuLOKuu+5i/fr1bNu2jby8PN58802cnZ255ZZbii1///3389FHH7Fu\n3TrGjRtXrmu0aNGCW265hRkzZpCTk0NcXBzLly/nvvvuq3T86enpuLq64u7uztmzZ3njjTfKfaxS\nig0bNrB7925yc3N54YUX6NGjB82bN+fatWs4ODjQsGFDcnNzmTVrFlevXi04duXKlVy8eBEADw8P\ndDoddnaF36YXLlxg7dq1ZGRk4OjoiKurK/b29pW+Z2EbJKkLi2jXrh0rV65k6tSpNGrUiPXr1/P9\n998XPPz8t549e2JnZ0eXLl1o0aJFwfbi+nzf+PqLL77g9OnTNGvWjFGjRjFr1iz69u1brmOLe/2P\n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\nAAAAAElFTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x14e752e8>" | |
} | |
], | |
"prompt_number": 190 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Sigmoid basis." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=sigmoid_basis)\nmodel.fit_normal_eqns(X, y, 0.1)\nXn = arange(-10, 10, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\ntitle('Sigmoid basis')\nshow()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAEKCAYAAADticXcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVPX+x/HXsDOA4goKKgq4K6AGaZm4kGm5VGqZGaml\nZWlm+63707pllnVLb2bYTcvMJc3MBbd7b5gbkoorrqUFqJi7si+f3x+jBIECMsPA8Hk+HjxqZr5z\nzucIvDnzPd/v9xhERFBKKWUT7KxdgFJKKfPRUFdKKRuioa6UUjZEQ10ppWyIhrpSStkQDXWllLIh\nGurKqr755ht69+5d6fYbHh7OF198UexrkydPZvjw4WavycPDgxMnTph9u6p60VBXFrd582a6dOmC\np6cnderU4c4772THjh0ADBs2jHXr1lV4TSXt12AwYDAYbviaJVy5cgU/Pz+LbFtVHw7WLkDZtsuX\nL3PfffcRFRXFkCFDyMzMZNOmTTg7O1u7tFum8/VUZaZn6sqijhw5gsFg4KGHHsJgMODi4kJERATt\n2rUD4Msvv6Rr16757devX0+LFi3w9PTkmWeeoVu3bvndIF9++SV33HEHEydOpFatWgQEBLB161bm\nzp1L48aN8fLyYt68efnbunTpEo899hj169fHz8+Pd955Jz+Q/7rfDRs20LJlSzw9PRk3bhwicsPw\nNhgMZGRk8PDDD1OjRg06duzI3r1781+fOnUqAQEB1KhRgzZt2rB8+fL8144dO0a3bt3w9PSkXr16\nPPzww/mv2dnZ8euvvwIQHR1NmzZtqFGjBr6+vnz44Ye3/D1Q1YuGurKoFi1aYG9vz+OPP87atWu5\ncOHCDduePXuWwYMH895773H+/HlatGjBtm3bCnV3xMXFERQUxPnz5xk6dChDhgxh165d/PLLL8yf\nP59nn32WtLQ0AMaNG8eVK1c4fvw4GzduZN68ecydO7fY/T744INMmTKFc+fO4e/vz5YtW27YzSIi\n/PDDDwwZMoQLFy7wyCOPMHDgQHJzcwEICAhg8+bNXL58mUmTJvHoo4+SkpICwN///nfuueceLl68\nSHJyMuPHjy92H6NGjWL27NlcvnyZAwcO0KNHj9L9g6tqT0NdWZSHhwebN2/GYDDw5JNPUr9+fQYM\nGMCZM2eKtI2OjqZt27YMHDgQOzs7xo8fj7e3d6E2TZs2JTIyEoPBwJAhQzh58iT/93//h6OjIxER\n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\nV0opG/L/MgXbf2lMAP0AAAAASUVORK5CYII=\n", | |
"text": "<matplotlib.figure.Figure at 0x14e7c6a0>" | |
} | |
], | |
"prompt_number": 192 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "It loses accuracy over to the left because the basis functions stop at -8. I suspect the same problem will happen with the heavyside function" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=heavyside_basis)\nmodel.fit_normal_eqns(X, y, 0.2)\nXn = arange(-10, 10, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\nylim([2,4])\ntitle('Heavyside step function basis')\nshow()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nxNmpMyNF6QAAAABJRU5ErkJggg==\n", | |
"text": "<matplotlib.figure.Figure at 0x13ce7c88>" | |
} | |
], | |
"prompt_number": 196 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "We can also fit with gradient descent." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=fourier_basis)\nmodel.fit_gd(X, y, regularization=1e-5, itrs=100, learning_rate=0.1)\nXn = arange(-10, 10, 0.05).reshape((-1,1))\nyh = model.predict(Xn)\nscatter(X, y)\nplot(Xn, yh)\ntitle('Fourier basis, fit with gradient descent')\nshow()\n", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "initial loss: 10.60546158\nfinal loss: " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.0112470387183\n" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x14e8fb70>" | |
} | |
], | |
"prompt_number": 201 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "That was fun. Let's do classification.\n\n# Classification #\n\nWe can use the same model for classification - just predict {0,1} instead of a real number." | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Let's try it out" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "from sklearn.datasets import make_classification\nX,y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, \n n_repeated=0, n_classes=2, n_clusters_per_class=1)\n\nscatter(X[:,0], X[:,1], c=['r' if yi == 1 else 'b' for yi in y])\ny = y.reshape((-1,1))", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x12a78d68>" | |
} | |
], | |
"prompt_number": 73 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "def heavyside_basis(x):\n return hstack(tuple(0.5*(sign(x-mu)+1)) for mu in arange(-5,5,0.3))\n\ndef linear_basis(x):\n return hstack((1,x)).ravel()\n\ndef sigmoid_basis(x):\n return hstack(tuple((1+exp(-x-mu))**-1) for mu in arange(-5,5,0.3))\n\ndef polynomial_basis(x):\n return hstack(tuple(x**i for i in range(5)))\n\ndef rbf_basis(x):\n return hstack(tuple(exp(-(x-mu)**2) for mu in arange(-5,5,0.3)))\n\n#some nice plotting code\ndef plot_contour_scatter(model, title_text):\n #sample from a lattice (for the nice visualization)\n x1, x2 = meshgrid(arange(-5,5,0.1), arange(-5,5,0.1))\n Xnew = vstack((x1.ravel(), x2.ravel())).T\n \n Z = model.predict(Xnew).reshape((-1,1))\n \n #plot - contour plot and scatter superimposed\n contourf(arange(-5,5,0.1), arange(-5,5,0.1), Z[:,0].reshape(x1.shape),\n cmap ='cool',levels=[-1e10,0.499,0.5, 1e10])\n colorsToUse= ['r' if yi == 1 else 'b' for yi in y]\n scatter(X[:,0],X[:,1], c=colorsToUse)\n title(title_text)\n show()\n", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 74 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Now that we got the auxillary work taken care of, the fun part:" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=linear_basis)\nmodel.fit_normal_eqns(X, y, 0.1)\n#model.fit_gd(X, y, itrs=100, regularization=0.1, learning_rate=0.01)\nplot_contour_scatter(model, 'Linear basis')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nkR72I2DWAAAAAElFTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x11341c18>" | |
} | |
], | |
"prompt_number": 75 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=heavyside_basis)\n#model.fit_normal_eqns(X, y, 0.0)\nmodel.fit_gd(X, y, itrs=100, regularization=0.1, learning_rate=0.01)\nplot_contour_scatter(model, 'Heavyside Basis')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "initial loss: " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.320790210969\nfinal loss: " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.0413932329954\n" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x122477f0>" | |
} | |
], | |
"prompt_number": 76 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Note - the heavyside design matrix is singular for this problem, so using the normal equations is futile." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=polynomial_basis)\nmodel.fit_normal_eqns(X, y, 0.1)\n#model.fit_gd(X, y, itrs=100, regularization=0.1, learning_rate=0.01)\nplot_contour_scatter(model, 'Polynomial Basis (degree 3)')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nO+UCHCGEcDMS3EII4WYkuIUQws1IcAshhJuR4BZCCDcjwX0Z2dnZepegC29stze2Gbyz3Z7SZgnu\ny/CUH/DV8sZ2e2ObwTvb7SltluAWQgg3I8EthBBuxuFXTppMJtatW+fITQghhMfp1q3bZYd2HB7c\nQggh7EuGSoQQws1IcAshhJuR4K6DOXPmYDAYOH36tN6lONykSZNISUmhbdu29OvXj7Nnz+pdkkNl\nZWWRnJxMq1atmDlzpt7lOFxOTg7du3enTZs2XHvttbz++ut6l+Q0ZrOZ9PR0+vbtq3cpNpPgvoKc\nnBxWrVpFfHy83qU4Rc+ePdm+fTtbtmwhKSmJzMxMvUtyGLPZzOOPP05WVhY7duxgyZIl7Ny5U++y\nHMrX15fXXnuN7du38+OPP/Lmm296fJsvmDdvHqmpqSiKoncpNpPgvoIJEyYwa9YsvctwmoyMDAwG\n7WvRsWNHjhw5onNFjrNhwwYSExNp0aIFvr6+DBo0iKVLl+pdlkNFR0fTrl07AEJCQkhJSeHo0aM6\nV+V4R44cYcWKFTz44IMe8XwACe5aLF26lNjYWNLS0vQuRRfz58+nT58+epfhMLm5ucTFxVmnY2Nj\nyc3N1bEi5zp48CCbN2+mY8eOepficOPHj2f27NnWTom78/pHl2VkZJCfn3/R69OnTyczM5OVK1da\nX/OE39Rw+TbPmDHDOv43ffp0/Pz8GDJkiLPLcxpP+JO5voqLixkwYADz5s0jJCRE73Icavny5URF\nRZGenu4xl7x7fXCvWrXqkq9v27aNAwcO0LZtW0D7U6t9+/Zs2LCBqKgoZ5Zod5dr8wULFixgxYoV\nrFmzxkkV6SMmJoacnBzrdE5ODrGxsTpW5ByVlZX079+foUOHctddd+ldjsOtX7+eZcuWsWLFCsrK\nyigsLGT48OEsXLhQ79LqTxV10qJFC/XUqVN6l+FwX3/9tZqamqqeOHFC71IcrrKyUk1ISFAPHDig\nlpeXq23btlV37Nihd1kOZbFY1GHDhqnjxo3TuxRdZGdnq7fffrveZdjMMwZ8nMBb/qweM2YMxcXF\nZGRkkJ6ezqOPPqp3SQ5jNBp544036NWrF6mpqdx7772kpKToXZZDff/99yxevJhvvvmG9PR00tPT\nycrK0rssp/KEfVkueRdCCDcjPW4hhHAzEtxCCOFmJLiFEMLNSHALIYSbkeAWQgg3I8EthBBuRoJb\nCCHcjAS3EEK4mf8HNWaisHuCStQAAAAASUVORK5CYII=\n", | |
"text": "<matplotlib.figure.Figure at 0x12b8e8d0>" | |
} | |
], | |
"prompt_number": 77 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=sigmoid_basis)\nmodel.fit_normal_eqns(X, y, 0.1)\n#model.fit_gd(X, y, itrs=100, regularization=0.1, learning_rate=0.01)\nplot_contour_scatter(model, 'Sigmoid Basis')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nJErRAAAAAElFTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x12a695f8>" | |
} | |
], | |
"prompt_number": 78 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=rbf_basis)\n#model.fit_normal_eqns(X, y, .5)\nmodel.fit_gd(X, y, itrs=1000, regularization=0.01, learning_rate=.1)\nplot_contour_scatter(model, 'RBF Basis')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "initial loss: 0.401877752627\nfinal loss:" | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": " 0.00210904171445\n" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nERGb+X+UWQ8oitEMBgAAAABJRU5ErkJggg==\n", | |
"text": "<matplotlib.figure.Figure at 0x12a80080>" | |
} | |
], | |
"prompt_number": 79 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Now how about we modify the basis functions to take interaction between dimensions into account. In other words, instead of $\\phi_i(x_j)$, make $\\phi_i(x_0, ... , x_n)$.\n\nI'll do this by first projecting x into a higher dimensional space of interactions (via a random matrix), and then doing the regular basis functions there." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "A = uniform(-0.5, 0.5, (10,2))\ndef heavyside_basis(x):\n xn = dot(A,x)\n return hstack(tuple(0.5*(sign(xn-mu)+1)) for mu in arange(-5,5,0.5))\n\ndef linear_basis(x):\n xn = dot(A,x)\n return hstack((1,xn)).ravel()\n\ndef sigmoid_basis(x):\n xn = dot(A,x)\n return hstack(tuple((1+exp(-xn-mu))**-1) for mu in arange(-5,5,0.3))\n\ndef polynomial_basis(x):\n xn = dot(A,x)\n return hstack(tuple(xn**i for i in range(5)))\n\ndef rbf_basis(x):\n xn = dot(A,x)\n return hstack(tuple(exp(-(xn-mu)**2) for mu in arange(-5,5,0.3)))\n", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 80 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "I expect linear models to be the same. Composition of linear functions is linear." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=linear_basis)\nmodel.fit_normal_eqns(X, y, 0.1)\n#model.fit_gd(X, y, itrs=100, regularization=0.1, learning_rate=0.01)\nplot_contour_scatter(model, 'Linear basis')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nEgAAAABJRU5ErkJggg==\n", | |
"text": "<matplotlib.figure.Figure at 0x12c9de48>" | |
} | |
], | |
"prompt_number": 81 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=heavyside_basis)\n#model.fit_normal_eqns(X, y, 0.2)\nmodel.fit_gd(X, y, itrs=100, regularization=0.1, learning_rate=0.01)\nplot_contour_scatter(model, 'Heavyside basis')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "initial loss: " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "1.38533954693\nfinal loss: " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.0143174964811\n" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nH3qTHJBEybT0AAAAAElFTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x12ca13c8>" | |
} | |
], | |
"prompt_number": 82 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=sigmoid_basis)\n#model.fit_normal_eqns(X, y, 0.1)\nmodel.fit_gd(X, y, itrs=100, regularization=0.1, learning_rate=0.01)\nplot_contour_scatter(model, 'Sigmoid basis')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "initial loss: " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.328485404567\nfinal loss: " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.0937578444874\n" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x12a95dd8>" | |
} | |
], | |
"prompt_number": 83 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=polynomial_basis)\n#model.fit_normal_eqns(X, y, 0.1)\nmodel.fit_gd(X, y, itrs=1000, regularization=0.1, learning_rate=0.01)\nplot_contour_scatter(model, 'Polynomial basis')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "initial loss: 0.458981318706\nfinal loss:" | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": " 0.0162158979183\n" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nAAAAAElFTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x1227dda0>" | |
} | |
], | |
"prompt_number": 84 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=rbf_basis)\n#model.fit_normal_eqns(X, y, 0.1)\nmodel.fit_gd(X, y, itrs=200, regularization=0.1, learning_rate=0.01)\nplot_contour_scatter(model, 'RBF basis')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "initial loss: " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.384524839697\nfinal loss:" | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": " 0.0102805578989\n" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nAABJRU5ErkJggg==\n", | |
"text": "<matplotlib.figure.Figure at 0x12a71f98>" | |
} | |
], | |
"prompt_number": 85 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "# Regularization #\n\nLet's compare how regularization affects the model. Let's make a classification problem:" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "from sklearn.datasets import make_classification\nX,y = make_classification(n_samples=20, n_features=2, n_informative=1, n_redundant=0, \n n_repeated=0, n_classes=2, n_clusters_per_class=1)\n\nscatter(X[:,0], X[:,1], c=['r' if yi == 1 else 'b' for yi in y])\n", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 95, | |
"text": "<matplotlib.collections.PathCollection at 0x13d70f28>" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEACAYAAAC9Gb03AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHvJJREFUeJzt3Xt0VPWh9vHv5EaYhHKpECCJhuZCwi0EgRyxyCBEXhKT\ngqKAl1KhNq8WkKOtyNu+mpwqSrVeKJaiLYg3pHhKQY1zuMhEBEMUolJACGogF5MFck8CCZN9/iiN\nYkhIMkn2ZOf5rDVrZc/8dn4Ps/Bh+5vZe9sMwzAQERHL8jE7gIiItC4VvYiIxanoRUQsTkUvImJx\nKnoREYtT0YuIWJxHRV9YWMjYsWMZOHAggwYNYvHixZccN3fuXKKjo4mPjycvL8+TKUVEpIn8PNnZ\n39+fZ555hqFDh3LmzBmuvvpqkpKSiIuLqx2TlZXFwYMHyc/PZ8eOHdxzzz3k5OR4HFxERBrHoyP6\n3r17M3ToUACCg4OJi4ujpKTkojHr169nxowZACQmJnLixAnKyso8mVZERJqgxdboCwoKyMvLIzEx\n8aLni4uLCQ8Pr90OCwujqKiopaYVEZHLaJGiP3PmDFOmTOG5554jODi4zuvfv8qCzWZriWlFRKQR\nPFqjB6iurubmm2/mjjvuYNKkSXVeDw0NpbCwsHa7qKiI0NDQOuOioqL44osvPI0jItKhREZGcvDg\nwQbHeHREbxgGs2bNYsCAAcybN++SY9LS0nj55ZcByMnJoVu3boSEhNQZ98UXX2AYhh6GwSOPPGJ6\nBm956L3Qe6H3ouFHYw6QPTqi37ZtG6+++ipDhgwhISEBgIULF3L48GEA0tPTSU5OJisri6ioKIKC\nglixYoUnU4qISBN5VPQ//vGPqampuey4JUuWeDKNiIh4QGfGeiGHw2F2BK+h9+Jbei++pfeiaWyG\nYXjFjUdsNhteEkVEpN1oTHfqiF5ExOJU9CIiFqeiFxGxOI9PmJKW98UXX+ByuejevTupqan4+/ub\nHUlE2jF9GOtl3nvvPVJTpwIT8fH5gthYfz744H/o1KmT2dFExAvpw9h2aObMuVRUrKSi4mXOnNnK\n3r2deOWVV8yOJSLtmIreyxw9WgpcfWHLh7Nnh1FaWmpmJBFp51T0Xubaa6/D3/93wHkgn8DA1xg9\nerTZsUSkHVPRe5nXX3+RESPy8fGx06nTMH7/+//HmDFjzI4lIu2YPoz1UlVVVfj7++va/SLSoMZ0\np4peRKQd07duRERERS8iYnUqehERi1PRi4hYnIpeRMTidFEzEWnQN998w5YtWwgICCApKYnOnTub\nHUmayOMj+pkzZxISEsLgwYMv+brL5aJr164kJCSQkJDAo48+6umUItJGDh48SHxMDCtnzuQPd9zB\nNUOGcPLkSbNjSRN5XPR33XUXTqezwTFjxowhLy+PvLw8fvvb33o6pYi0kQfvvZd5J07w1unTuE6f\nZtjhwzy5cKHZsaSJPC760aNH07179wbH6EQokfap6NAhrq2pAcAGjKqqovirr8wNJU3W6h/G2mw2\ntm/fTnx8PMnJyezdu7e1pxSRFjJq7FieDQykCjgOvGi3c83115sdS5qo1Yt+2LBhFBYW8umnnzJn\nzhwmTZrU2lOKSAtZ+PTTVI8ZQ1c/P/r4+jJqxgx+/otfmB1LmqjVv3XTpUuX2p8nTpzIvffey7Fj\nx+jRo0edsRkZGbU/OxwOHA5Ha8cTkQbY7Xb+7nRSXl6On5+f7nTmBVwuFy6Xq0n7tMhFzQoKCkhN\nTWX37t11XisrK6NXr17YbDZyc3O59dZbKSgoqBtEFzUTEWmyxnSnx0f006dPJzs7m6NHjxIeHk5m\nZibV1dUApKen8+abb7J06VL8/Pyw2+288cYbnk4pIiJNoMsUi4i0Y7pMsYiIqOjbm7Nnz7J//35O\nnDhhdhQRaSdU9O3IRx99RN++kQwfnkLv3lfx/PPLzI4kIu2A1ujbCcMw6NXrKo4efRa4CfgSu/1a\nduzYyKBBg8yOJyIm0Rq9hRw/fpxTp07yr5IH+BG+vj/mn//8p5mxRKQdUNG3E926daNTpwDggwvP\nfIPbvYPIyEgzY4lIO6Cibyd8fHxYs+ZVgoIm07XrGDp3HsicOXcxYsQIs6OJiJfTGn07U1ZWxp49\newgNDaV///5mxxERkzWmO1X0IiLtmD6MFRERFb2IiNWp6EVELE5FLyJicSp6ERGLU9GLiFicil5E\nxOJU9CIiFqeiFxGxOBW9iIjFeVz0M2fOJCQkhMGDB9c7Zu7cuURHRxMfH09eXp6nU4qISBN4XPR3\n3XUXTqez3tezsrI4ePAg+fn5vPDCC9xzzz2eTikiIk3gcdGPHj2a7t271/v6+vXrmTFjBgCJiYmc\nOHGCsrIyT6cVEZFGavU1+uLiYsLDw2u3w8LCKCoqau1pRUTkAr+2mOT7l9C02WyXHJeRkVH7s8Ph\nwOFwtGIqEZH2x+Vy4XK5mrRPqxd9aGgohYWFtdtFRUWEhoZecux3i15EROr6/kFwZmbmZfdp9aWb\ntLQ0Xn75ZQBycnLo1q0bISEhrT2tiIhc4PER/fTp08nOzubo0aOEh4eTmZlJdXU1AOnp6SQnJ5OV\nlUVUVBRBQUGsWLHC49AiItJ4upWgFzty5AhFRUX069ePbt26mR1HRLyQbiXYjv31ry9x5ZUxOBwz\nCAuL4t13322x3+12u2v/r0tErE9F74UKCgqYM+fXnD27g1OnPqO8fD233HInFRUVHv1ewzB46KGH\nCQwMJjAwiJ/8ZDqVlZUtlLppampqePbZP5Kaehvz5j3IsWPHTMkh0hGo6L1Qfn4+AQGDgZgLz4zC\nZuvq8fkHr7zyKn/84zrOn/+KmpqTbNhQzX/+5wKP8zbH3XfP4Te/Wc3bb09k6dJTDB9+ncf/kInI\npanovVBUVBRVVbuBLy888xE1Ncfr/VpqY23YsJWKiv8L9AY6c/bsfDZufN/DtE139uxZVq78KxUV\n7wB3UlW1lCNHrmDjxo1tnkWkI1DRe6F+/frx1FOPERg4gq5dR2K3T+T1118iKCjIo9975ZW9CQjY\nWbtts31M3769PY3bZG63+8JJc4H/ToLNZuf8+fNtnkWkI9C3brxYSUkJhw4dIioqip49e3r8+44f\nP87VV4/myJG+QA98fFxs27aJQYMGeR62iW688Vbee89NZeUcfH2306PHMvbv/6TB6yaJSF2N6U4V\nfQdTXl7O22+/zblz5xg/fjx9+/Y1JUdlZSUPPvgw2dk5XHVVKIsXP06/fv1MySLSnqnoRUQsTt+j\nFxERFb2IiNWp6EVELE5FLyJicSp6ERGLU9GLiFicil5ExOJU9CIiFqeiFxGxOBW9iIjFqehFRCzO\n46J3Op3ExsYSHR3NokWL6rzucrno2rUrCQkJJCQk8Oijj3o6pYiINIGfJzu73W5mz57Npk2bCA0N\nZcSIEaSlpREXF3fRuDFjxrB+/XqPgoqISPN4dESfm5tLVFQUERER+Pv7M23aNNatW1dnnK5KKSJi\nHo+Kvri4mPDw8NrtsLAwiouLLxpjs9nYvn078fHxJCcns3fvXk+mFBGRJvJo6eZft4Nr2LBhwygs\nLMRut/Puu+8yadIkDhw4cMmxGRkZtT87HA4cDocn8VrcZ599xrPP/plz56q5++7bvS6fiFify+XC\n5XI1aR+PbjySk5NDRkYGTqcTgMcffxwfHx/mz59f7z79+vVj586d9OjR4+IgXn7jkc8++4xRo8ZR\nXn4/EEznzo/x5pvLSU5ONjuaiHRgrX7jkeHDh5Ofn09BQQFVVVWsXr2atLS0i8aUlZXVhsjNzcUw\njDol3x48/fRSyssfABYAc6isXEJm5jNmxxIRuSyPlm78/PxYsmQJEyZMwO12M2vWLOLi4li2bBkA\n6enpvPnmmyxduhQ/Pz/sdjtvvPFGiwRva2fPVgFdvvNMF86dqzIrjoi0ofPnz+N2u+nUqZPZUZpF\n94xtpM2bN5OaegeVlX8CgrHb5/D00w+Qnn632dFEpJUYhkHmb37DE08+iWEYJI8bxyv//d8EBweb\nHa2Wbg7ewt566y0yMp6hurqae+/9KenpP2/UB9Ii0j6tWrWKhXffzcbycroDMzt14gdTp7J05Uqz\no9VS0YuIeOCXs2bRf/ly5l7Y/gS4Izycfx4+bGasi7T6h7EiIlbW56qryO3UiX/X6EdA39BQMyM1\ni47oRUTqcerUKRwjRtC1pIQrgK0+PmzYupUhQ4aYHa2Wlm5ERDxUWVlJVlYWlZWVjBs3jj59+pgd\n6SIqehERi9MavYiIqOhFRKxORS8iYnEqehERi1PRi4hYnIpeRMTiVPQiIhanohcRsTgVvYiIxano\nRUQsTkUvImJxKnoREYtT0YuIWJzHRe90OomNjSU6OppFixZdcszcuXOJjo4mPj6evLw8T6cUEZEm\n8Kjo3W43s2fPxul0snfvXlatWsW+ffsuGpOVlcXBgwfJz8/nhRde4J577vEosIiINI1HRZ+bm0tU\nVBQRERH4+/szbdo01q1bd9GY9evXM2PGDAASExM5ceIEZWVlnkwrYklvvfUWkb1784PAQCbfcAPH\njh0zO5Ilud1uTp482aHuf+FR0RcXFxMeHl67HRYWRnFx8WXHFBUVeTKtiOXs3r2bWdOmsaKsjIJz\n5+idnc3PpkwxO5blrFyxgm5BQYT27ElCTAxfffWV2ZHahJ8nO9tstkaN+/6/nPXtl5GRUfuzw+HA\n4XA0N5pIu+Jyubi5pobrLmz/oaqK7u+/j2EYjf7vTBqWl5fHQ7Nn89G5c/QHnvryS6bdeCM79uwx\nO1qTuFwuXC5Xk/bxqOhDQ0MpLCys3S4sLCQsLKzBMUVFRYTWcxf17xa9SEfSo0cP9vv6YgA24HOg\nR3CwSr4F5ebmkgLEXti+v6aGBfv2cf78efz8PKrCNvX9g+DMzMzL7uPR0s3w4cPJz8+noKCAqqoq\nVq9eTVpa2kVj0tLSePnllwHIycmhW7duhISEeDJtu9aR1gWl8aZMmUJ1TAwTgoK439+fFLudp59/\n3uxYlhIWFsbHPj6cu7CdA/Ts2rVdlXxzefQn9PPzY8mSJUyYMAG3282sWbOIi4tj2bJlAKSnp5Oc\nnExWVhZRUVEEBQWxYsWKFgne3hw/fpxbbvkZLpeToKBuLF78FDNm3Gl2LPESnTp1YtOHH/L6669z\n9OhR1o0Zw8iRI82OZSnJycm8Pn48wzZtYqDNxha3m5defdXsWG3CZnjJIWZj7mTenk2cOIX33utB\nVdWzQD52+0Q2bnyTUaNGmR1NpMMwDIMtW7ZQVlbGyJEjiYyMNDuSxxrTnSr6NmK3d6ey8gDQEwBf\n3wf53e+6s2DBAnODiUi71pju1CUQ2kj37j2B3Re2DDp12k3Pnj3NjCQiHYSO6NtIVlYWU6bMwDBu\nxtc3n8jISnbseI/AwECzo4lIO6alGy+zZ88eXC4X3bp1Y8qUKXTq1MnsSCLSzqnoRUQsTmv0IiKi\nohcRsToVvYiIxanoRUQsTkUvImJxKnoREYtT0YuIWJyKXrzSP/7xDyIiBtOzZwTp6fdx7ty5y+8k\nIpekE6bE63z44YeMGzeZysrXgCvp3Hkud94Zw7Jlz5kdTcTr6IQpaZfeeusdKivTgXFANJWVi/n7\n39ddbjcRqYeKXrxO165dCAgo/M4zhQQFdTEtj0h7p6Ub8TpHjx5l8OBEjh27jqqqK+nceRmvvbaU\nyZMnmx1NxOvoombSbn3zzTf85S9/5cSJU6SlpXDNNdeYHUnEK6noRUQsrjHd2eybgx87doypU6dy\n6NAhIiIi+Nvf/ka3bt3qjIuIiOAHP/gBvr6++Pv7k5ub29wpRUSkGZr9YewTTzxBUlISBw4cYNy4\ncTzxxBOXHGez2XC5XOTl5ankpU29tHw5ibGxJMbGsvwvfzE7johpmr10ExsbS3Z2NiEhIZSWluJw\nOPj888/rjOvXrx8ff/wxP/zhDxsOoqUbaUGr33iDBbNm8WJFBTbgbrudR194gem33252NJEW1arf\noy8rKyMkJASAkJAQysrK6g0xfvx4hg8fzosvvtjc6USa5I0XX2RhRQXjgOuBJyoqWPXCC2bHEjFF\ng2v0SUlJlJaW1nn+scceu2jbZrNhs9ku+Tu2bdtGnz59OHLkCElJScTGxjJ69OhLjs3IyKj92eFw\n4HA4LhNf5NIC7XaOfWf7GyAwKMisOCItxuVy4XK5mrSPR0s3LpeL3r178/XXXzN27NhLLt18V2Zm\nJsHBwTzwwAN1g2jpRlrQRx99RLLDwbwLSzfP2O28/d57JCYmmh1NpEW16tJNWloaK1euBGDlypVM\nmjSpzpiKigpOnz4NQHl5ORs2bGDw4MHNnVKk0UaMGMHGbds4cs89lKWns+GDD1Ty0mE1+4j+2LFj\n3HrrrRw+fPiir1eWlJRw991388477/Dll19y0003AXD+/Hluv/12FixYcOkgOqIXEWkynTAlImJx\nunqliIio6EVErE5FLyJicSp6ERGLU9GLiFicil5ExOJU9CIiFqeiFxGxOBW9iIjFqehFRCxORS8i\nYnEqehERi1PRN1NVVRXffPONLsQm7UZOTg7XDBrEj3r14me33sqpU6fMjiRtREXfDIsX/4ng4O70\n7fsj+vcfxuHDh82OJNKgQ4cOkTp+PPft2cP/HDkC69fz05tvNjuWtBFdpriJtm/fTlLSVCoqsoF+\n+PgsZMgQJ3l5W82OJlKvFStWsHnOHF4tLwfgHNDFx4fys2fx9/c3N5x4RJcpbgW5ubm43T8BfgTY\nqKm5n927d7SLf6Sk4woKCqLEZuPff0u/BgL8/PDza/C20WIRKvomCg8Px89vB1B14ZkPuOKKsHpv\nji7iDdLS0jgdHs6tgYE8DiTZ7fzX736nv7cdhJZumqimpoa0tGlkZ+/Bx6c/bvdW1q17g3Hjxpkd\nTaRB5eXlLFu2jNKiIq67/npuvPFGsyNJC9CtBFtJTU0N2dnZHD16lMTERK688kqzI4lIB9Wqa/Rr\n1qxh4MCB+Pr6smvXrnrHOZ1OYmNjiY6OZtGiRc2dzqv4+PgwduxYbrnlFpW8iHi9Zhf94MGDWbt2\nLdddd129Y9xuN7Nnz8bpdLJ3715WrVrFvn37mjuliIg0Q7M/co+Njb3smNzcXKKiooiIiABg2rRp\nrFu3jri4uOZOKyIiTdSq37opLi4mPDy8djssLIzi4uLWnFJERL6nwSP6pKQkSktL6zy/cOFCUlNT\nL/vLm/rVrYyMjNqfHQ4HDoejSfuLiFidy+XC5XI1aZ8Gi37jxo2e5CE0NJTCwsLa7cLCQsLCwuod\n/92iFxGRur5/EJyZmXnZfVpk6aa+r/YMHz6c/Px8CgoKqKqqYvXq1aSlpbXElCIi0kjNLvq1a9cS\nHh5OTk4OKSkpTJw4EYCSkhJSUlIA8PPzY8mSJUyYMIEBAwYwdepUfRArItLGdMKUiDRJRUUFD86Z\nw5YNG+gVEsLvly5lxIgRZsfqsHRmbAe2f/9+Dhw4QExMDP379zc7Tqtxu91s3bqV06dPc80113DF\nFVeYHcnybp88mXNOJw+fPcsnwK+Cg8ndvbv2a9TStlT0HdTixX/ioYcy8fe/murqnTz++MPcd98v\nzY7V4qqqqvjJ+PEU5eUR6uPDpzYbzuxs4uPjzY5mWTU1NXQOCOAbt5vgC8/9zG5n1DPP8Itf/MLU\nbB2VLlPcAZWWljJ//m+prNzBqVNZVFbm8tBD/5+SkhKzo7W45cuX4965k0/OnMF56hQLT57klz/9\nqdmxLM1msxHo78+R7zx3xGajc+fOpmWSy1PRW0xRUREBAVcBEReeuYqAgAiKiopMTNU6Dn35JddV\nVOB7YdsBHLbgn9Ob2Gw2fvvww/wfu51ngJ8FBHCoVy8mT55sdjRpgO46YDFRUVHU1BQB2cAY4H3c\n7kKio6NNTtbyRvzHf/BwUBDp5eVcATzv58fwq682O5bl/XrBAiL792eL00lkaCjP3ncfwcHBl99R\nTKM1egvatGkTkydPp6bGHx+fav7+99dJSkoyO1aLMwyDh+fP5+lnnyXQx4eYmBjWbdpEr169zI4m\n0mb0YWwHVlVVRVlZGSEhIQQEBJgdp1WdOXOGiooKevbsqTsmSYejohcRsTh960ZERFT0IiJWp6IX\nEbE4Fb2IiMWp6EVELE4nTImIqdxuN8v+/Gfytm8ncsAA7rv/fl1SoYXp65XSoP379/P7jAxOHTtG\n6vTp3Dljhr6rLi1q1m23kb9uHbdVVLAhMJDjgwezcft2/Px0HNoY+h69eKSgoIDEIUOYd+YMEYbB\nf9ntpGdmMu9XvzI7mlhEWVkZ/a+8kuKqKoIANxAfHMwyp5Nrr73W7Hjtgr5HLx55/bXXmFpZyQLD\nYDqwqqKCPz75pNmxxELOnTtHoK8v/16o8QW6+vhw7tw5M2NZjope6lVTU4P/d44U/C88J9JSwsLC\niI6NZXZAADuBhb6+lNrtumNVC2t20a9Zs4aBAwfi6+vLrl276h0XERHBkCFDSEhIYOTIkc2dTkxw\n69SpvBwYyPPAO8Cddjs//6X1bmAi5vHx8WH95s1UTprErH79+Pj663kvJ4cuXbqYHc1Smr1G//nn\nn+Pj40N6ejp/+MMfGDZs2CXH9evXj507d9KjR4+Gg2iN3it98sknPLZgAaeOHyd12jR+ed99+jBW\nxIs0pjub/bF2bGxso8eqwNuvoUOHsubdd82OISIeaPU1epvNxvjx4xk+fDgvvvhia08nIiLf0+AR\nfVJSEqWlpXWeX7hwIampqY2aYNu2bfTp04cjR46QlJREbGwso0ePbl5aERFpsgaLfuPGjR5P0KdP\nHwB69uzJ5MmTyc3NrbfoMzIyan92OBw4HA6P5xcRsRKXy4XL5WrSPh6fMDV27Fieeuoprr7EvTor\nKipwu9106dKF8vJybrjhBh555BFuuOGGukH0YayISJO16glTa9euJTw8nJycHFJSUpg4cSIAJSUl\npKSkAFBaWsro0aMZOnQoiYmJ3HjjjZcseRERaT26BIKISDumSyCIiIiKXkTE6lT0IiIWp6IXEbE4\nFb2IiMWp6EVELE5FLyJicSp6ERGLU9GLiFicil5ExOJU9CIiFqeiFxGxOBW9iIjFqehFRCxORS8i\nYnEqehERi1PRi4hYnIpeRMTiVPQiIhbX7KL/9a9/TVxcHPHx8dx0002cPHnykuOcTiexsbFER0ez\naNGiZgcVEZHmaXbR33DDDezZs4dPP/2UmJgYHn/88Tpj3G43s2fPxul0snfvXlatWsW+ffs8CtwR\nuFwusyN4Db0X39J78S29F03T7KJPSkrCx+dfuycmJlJUVFRnTG5uLlFRUURERODv78+0adNYt25d\n89N2EPpL/C29F9/Se/EtvRdN0yJr9MuXLyc5ObnO88XFxYSHh9duh4WFUVxc3BJTiohII/k19GJS\nUhKlpaV1nl+4cCGpqakAPPbYYwQEBHDbbbfVGWez2VoopoiINJvhgRUrVhijRo0yKisrL/n6hx9+\naEyYMKF2e+HChcYTTzxxybGRkZEGoIceeuihRxMekZGRl+1qm2EYBs3gdDp54IEHyM7O5oorrrjk\nmPPnz9O/f382b95M3759GTlyJKtWrSIuLq45U4qISDM0e41+zpw5nDlzhqSkJBISErj33nsBKCkp\nISUlBQA/Pz+WLFnChAkTGDBgAFOnTlXJi4i0sWYf0YuISPvgNWfGNvYErI5gzZo1DBw4EF9fX3bt\n2mV2HFPoRLt/mTlzJiEhIQwePNjsKKYrLCxk7NixDBw4kEGDBrF48WKzI5nm7NmzJCYmMnToUAYM\nGMCCBQsa3qHpH8G2jg0bNhhut9swDMOYP3++MX/+fJMTmWffvn3G/v37DYfDYezcudPsOG3u/Pnz\nRmRkpPHVV18ZVVVVRnx8vLF3716zY5ni/fffN3bt2mUMGjTI7Cim+/rrr428vDzDMAzj9OnTRkxM\nTIf9e2EYhlFeXm4YhmFUV1cbiYmJxtatW+sd6zVH9I05AaujiI2NJSYmxuwYptGJdt8aPXo03bt3\nNzuGV+jduzdDhw4FIDg4mLi4OEpKSkxOZR673Q5AVVUVbrebHj161DvWa4r+u+o7AUs6Bp1oJ5dT\nUFBAXl4eiYmJZkcxTU1NDUOHDiUkJISxY8cyYMCAesc2eMJUS/P0BCwracx70VHpRDtpyJkzZ5gy\nZQrPPfccwcHBZscxjY+PD5988gknT55kwoQJuFwuHA7HJce2adFv3LixwddfeuklsrKy2Lx5cxsl\nMs/l3ouOLDQ0lMLCwtrtwsJCwsLCTEwk3qK6upqbb76ZO+64g0mTJpkdxyt07dqVlJQUPv7443qL\n3muWbpxOJ08++STr1q0jMDDQ7Dhew+iA334dPnw4+fn5FBQUUFVVxerVq0lLSzM7lpjMMAxmzZrF\ngAEDmDdvntlxTHX06FFOnDgBQGVlJRs3biQhIaHe8V5T9PWdgNURrV27lvDwcHJyckhJSWHixIlm\nR2pTOtHuW9OnT2fUqFEcOHCA8PBwVqxYYXYk02zbto1XX32VLVu2kJCQQEJCAk6n0+xYpvj666+5\n/vrrGTp0KImJiaSmpjJu3Lh6x+uEKRERi/OaI3oREWkdKnoREYtT0YuIWJyKXkTE4lT0IiIWp6IX\nEbE4Fb2IiMWp6EVELO5/AfRO9MkANtSNAAAAAElFTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x140bd6d8>" | |
} | |
], | |
"prompt_number": 95 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Now we'll insidiously swap labels." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "for i in range(5):\n y[i] = 1-y[i]\n \nscatter(X[:,0], X[:,1], c=['r' if yi == 1 else 'b' for yi in y])\ny = y.reshape((-1,1))", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x12a696d8>" | |
} | |
], | |
"prompt_number": 96 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "And now let's run a classifier with no regularization" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=sigmoid_basis)\nmodel.fit_normal_eqns(X, y, 0.0)\nplot_contour_scatter(model, 'Sigmoid basis, no regularization')\nprint 'size of weight vector:', norm(model.w)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nRU5ErkJggg==\n", | |
"text": "<matplotlib.figure.Figure at 0x12ca4828>" | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "size of weight vector: 35016673.5307\n" | |
} | |
], | |
"prompt_number": 103 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "And again, with regularization" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=sigmoid_basis)\nmodel.fit_normal_eqns(X, y, 0.9)\nplot_contour_scatter(model, 'Sigmoid basis, with regularization')\nprint 'size of weight vector', norm(model.w)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n/h9nOLoRIjR45gAAAABJRU5ErkJggg==\n", | |
"text": "<matplotlib.figure.Figure at 0x12a6bac8>" | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "size of weight vector 0.675961545611\n" | |
} | |
], | |
"prompt_number": 105 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "So we can see that the regulization pulls the size (l2 norm) of the weight vector to zero, which makes the decision boundary \"less complicated\". It can also be seen as putting a centered gaussian prior on the weight vector. Let's look at regularization in regression. " | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "X = arange(-5, 5, 0.5).reshape((-1,1))\ny = sin(X)\n#now add some corruption\ny[2] += 1\ny[-3] -= 1\ny[5] += 2\ny[7] -= 0.2\ny[15] += 1\ny[10] -= 1\n#plot it\nscatter(X,y)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 110, | |
"text": "<matplotlib.collections.PathCollection at 0x14969d30>" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEACAYAAAC9Gb03AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtYVHXCB/DvwIAyYJiigAxJAgoiIoKiPlqDcREQvOSa\nl5JX0CVNXcvyUlvCbl6r9TXdKNsyqdZMW9NNZHVrxwpDUrEsTEEhBxCUEFduDgzn/UPj1bjPhTNz\n+H6eh+eZOfM7/r5T+vX4m3POyARBEEBERJJlJXYAIiIyLRY9EZHEseiJiCSORU9EJHEseiIiiWPR\nExFJnEFFr9FoEBoaCj8/PwwbNgyvv/56i+OWLVsGb29vBAQEICcnx5ApiYiok+SG7GxjY4MtW7Zg\nxIgRqKqqQlBQEMLDw+Hr69s0Jj09Hfn5+cjLy8OJEyewaNEiZGVlGRyciIg6xqAjehcXF4wYMQIA\n4ODgAF9fX5SUlNwz5uDBg4iPjwcAhISEoLKyEmVlZYZMS0REnWC0NfrCwkLk5OQgJCTknu3FxcVw\nd3dveq5UKlFUVGSsaYmIqB1GKfqqqirMmDEDW7duhYODQ7PXf3uXBZlMZoxpiYioAwxaoweA+vp6\nPProo3j88ccxderUZq+7ublBo9E0PS8qKoKbm1uzcV5eXrh48aKhcYiIuhVPT0/k5+e3OcagI3pB\nEJCYmIihQ4di+fLlLY6Ji4tDWloaACArKwu9e/eGs7Nzs3EXL16EIAiS/Vm7dq3oGfje+P74/qT3\n05EDZIOO6DMzM/HBBx9g+PDhCAwMBACsX78ely9fBgAkJSUhOjoa6enp8PLygr29PXbu3GnIlERE\n1EkGFf348ePR2NjY7rjt27cbMg0RERmAV8Z2EZVKJXYEk5HyewP4/iyd1N9fR8gEQTCLLx6RyWQw\nkyhERBajI93JI3oiIolj0RMRSRyLnohI4lj0REQSZ/CVsdS6xsZGvP/++/juux8xbJgP4uPjYW1t\nLXYsIupmeNaNiQiCgLlzF+DAgR9RUzMFCsUhREQMxD/+8QHv9UNERtOR7mTRm0hBQQH8/MagtvYS\nAHsAtVAovHHy5NF77tdPRGQInl4poqqqKsjlfXC75AHADnJ5P1RVVYkZi4i6IRa9iQwePBi9ewuw\ntl4H4BKsrF6Fvf1NDBs2TOxoRNTNsOhNpEePHvjqq39h3LhM9O0bijFjjuLrr4/Azs5O7GhE1M1w\njZ6IyIJxjZ6IiFj0RERSx6Inok55//0PMXHiVMTFzcHp06fFjkMdwDV6Iuqw1NQdePbZV1BTsw7A\nVdjbpyAr6z88m0xEXKMnIqN69dVU1NS8C2AmgCWorl6Md99NEzsWtYNFT0QddvvI8e5beMjQ2Mh/\niZs7g4s+ISEBzs7O8Pf3b/F1tVoNR0dHBAYGIjAwEC+//LKhUxKRSFaseBIKRQKAfQDegL39X5GY\nOE/sWNQOg+9eOX/+fCxduhTz5rX+P/vhhx/GwYMHDZ2KiET21FNPwsHBHu++m4ZevRRITj7c6kEe\nmQ+Di37ChAkoLCxscww/ZCWSjvj4JxAf/4TYMagTTL5GL5PJcPz4cQQEBCA6Ohq5ubmmnpKIiO5i\n8i8eGTlyJDQaDRQKBQ4fPoypU6fiwoULpp6WiIjuMHnR9+rVq+lxVFQUFi9ejIqKCvTp06fZ2OTk\n5KbHKpUKKpXK1PGIiCyKWq2GWq3u1D5GuWCqsLAQsbGxOHv2bLPXysrK0L9/f8hkMmRnZ2PmzJkt\nrunzgikios7rSHcafEQ/e/ZsHDt2DOXl5XB3d0dKSgrq6+sBAElJSdi3bx9SU1Mhl8uhUCjw0Ucf\nGTolGdmVK1ewcuVaXLpUhNDQMXjppdWwtbUVOxYRGQlvgdDN3bx5Ez4+I3H16nQ0NIyHnd0biIpy\nwiefvC92NCLqAH5nLLXr008/xbx523Hz5r/vbKmBXO6EysprsLe3b3NfIhIf73VD7ZLJZAB++5uE\nf+ESSQmLvpubOHEiHB2LIJc/C+BT2NlNw7RpM3k0TyQhXLohlJWVYdWqZFy6VISJE8fghRdWwsbG\nRuxYRNQBXKMnIpI4rtETERGLnohI6lj0REQSx6InIpI4Fj0RkcSx6ImIJI5FT0QkcSx6IiKJY9ET\nEUkci56ISOJY9EREEseiJyKSOBY9EZHEseiJiCTO4KJPSEiAs7Mz/P39Wx2zbNkyeHt7IyAgADk5\nOYZOSUREnWBw0c+fPx8ZGRmtvp6eno78/Hzk5eVhx44dWLRokaFTEtFdGhsbkZ+fj4KCAn6nA7XI\n4KKfMGEC7r///lZfP3jwIOLj4wEAISEhqKysRFlZmaHTdjlBEPDf//6Xf5DIrNy8eRNjxjyCgAAV\n/PzG4ZFH4lBXVyd2LDIzJl+jLy4uhru7e9NzpVKJoqIiU0/bpvr6+k6Nz8nJgaurJ/r2dYWjozOO\nHDliomREnfPss3/E998PRE3Nz6itvYysLDnWrdssdiwyM/KumOS3R8EymazFccnJyU2PVSoVVCqV\nUXPk5eUhJuYx5Od/B0dHZ3z00U5ERka2uY9Wq0VExBSUl28GMAs3b36J6dMfRX7+Wbi4uBg1H1Fn\nnTx5FrdurQFgDcAatbWzcOLEXrFjkQmp1Wqo1epO7WPyondzc4NGo2l6XlRUBDc3txbH3l30xtbY\n2IiwsDhoNIsgCEtQWfk1pk9/FOfOncIDDzzQ6n4ajQa1tVYAZt3Z8hDkcn+cPcuiJ/H5+Xnjhx/+\nCa02DICAHj0+g7+/t9ixyIR+exCckpLS7j4mX7qJi4tDWloaACArKwu9e/eGs7Ozqadt5tq1a7h6\n9RoEYRluv+2HIJePw8mTJ9vcz8nJCQ0NFQAK7my5Dq32JwwYMMDEiYna95e/rMPAgV+hV68AODj4\nwde3ACkpL3Ro37q6OnzzzTc4deoUdDqdiZOSmAw+op89ezaOHTuG8vJyuLu7IyUlpWkNPCkpCdHR\n0UhPT4eXlxfs7e2xc+dOg0Prw9HREY2NdQDyAXgBqIVOl9vuUbmjoyNeeWUTVq0aB2trFRobs/D7\n38fDz8+vK2ITtcnJyQk//HACp0+fhrW1NQIDAyGXt//H+sqVKxg79hFcv94TOl0Vhg8fiC+++Cd6\n9uzZBampq8kEMzmNRCaTmfyMltTUHXj22WQAUbCyykZs7Gh8+OHfWv3M4G7fffcdvv/+e3h6emLc\nuHEmzUlkalOmzEF6ugcaGtYD0KFnz9/h+eeD8eKLz4sdjTqpI93ZrYoeAE6dOoVTp26vy0dGRnao\n5ImkZvDgUcjL2wZgzJ0tf8OMGV9j7973RExF+uhId3bJWTfmJCgoCEFBQWLHIGqmpKQEn3zyCQRB\nwPTp06FUKk0218iR/vj55w+g1YYAuAWF4mOMHj3JZPORuLrdET2RObp48SKCgyegtjYSgDV69PgM\n2dnHMGTIEJPMV1FRAZUqBpculaCxsQ4TJz6M/fs/hI2NjUnmI9Ph0g2RhZg9OxEff+yBxsYXAQAy\n2SuIizuDTz/90GRz6nQ6XLp0Cba2tnjggQe4jGmhuHRDZCGuXq1AY+P/L50Igg+uXv3CpHNaW1vD\n25vn3HcHvE0xkRmYNi0CCsUG3L5e42coFC9j2rQIsWORRPCInsgMPPXUkygpKcO2baMhCAKefPL3\nWLHiD2LHIongGj0RkQXrSHdy6YaISOJY9EREEseiJyKSOBY9EZHEseiJiCSORU9EJHEseiIiiWPR\nExFJHIueiEjiWPRERBLHoicikjiDiz4jIwM+Pj7w9vbGpk2bmr2uVqvh6OiIwMBABAYG4uWXXzZ0\nSiIi6gSD7l6p0+mwZMkS/Pvf/4abmxtGjRqFuLg4+Pr63jPu4YcfxsGDBw0KSkRE+jHoiD47Oxte\nXl7w8PCAjY0NZs2ahQMHDjQbx7tSUnfS0NCAEydO4Ouvv0Ztba3YcYgMK/ri4mK4u7s3PVcqlSgu\nLr5njEwmw/HjxxEQEIDo6Gjk5uYaMiWRWauurkZIyESEhSUgOno5fH2DUVpaKnYs6uYMWrrpyHdM\njhw5EhqNBgqFAocPH8bUqVNx4cKFFscmJyc3PVapVFCpVIbEI+py69e/gtzcAairUwOwQm3taixZ\nshL79qWJHY0kQq1WQ61Wd2ofg4rezc0NGo2m6blGo4FSqbxnTK9evZoeR0VFYfHixaioqECfPn2a\n/Xp3Fz2RJfrhh3zU1UXh138sNzTE4Ny5VeKGIkn57UFwSkpKu/sYtHQTHByMvLw8FBYWQqvVYs+e\nPYiLi7tnTFlZWdMafXZ2NgRBaLHkiaQgJGQ47Ox2A6gD0IgePXZh1KgAsWNRN2fQEb1cLsf27dsR\nGRkJnU6HxMRE+Pr64q233gIAJCUlYd++fUhNTYVcLodCocBHH31klOBE5ui5557G8eMn8fnn7rCy\nsoWvrxe2buUZZyQufmcskZEJgoCioiI0NDRg4MCBsLLidYlkOh3pTha9mdLpdKioqEDfvn1ZFETU\nKn45uIU6evQo7r/fBe7uQ+DkpMTx48fFjkREFoxH9Gbm2rVrePDBoaiu/gTAQwAOwdFxAUpKLkKh\nUIgdj4jMDI/oLdC5c+cglw/G7ZIHgBg0NjqioKBAzFhEZMFY9GZGqVTi1q0LAMrubCmEVlsKFxcX\nMWMRkQVj0ZuZQYMGYfXqZ6BQBKFXr+mwsxuDzZvXo2/fvmJHIyILxTV6M3XmzBlcuHABfn5+8PPz\nEzsOEZkpnl5JRCRx/DCWiIhY9EREUseiJyKSOBY9EZHEGXT3SiKijvr555+hVqtx3333ISYmBra2\ntmJH6jZ41g0Rmdzx48cRETEFQDhkMg28vAQcP34UdnZ2YkezeDzrhojMQkLCH1BdnYrq6r+jqupL\nnD/fB++8847YsboNFj0RmdzVq6UAgu88k6G2NhjFxVfEjNStsOiJyOTGjx8PW9sNAOoB/AyFYhce\nemi82LG6DRY9EZncrl1vICREA2trB9jaDkVy8hJERUWJHavb4IexRNRlbt26BRsbG35rmhF1yYex\nGRkZ8PHxgbe3NzZt2tTimGXLlsHb2xsBAQHIyckxdEoislA9evRgyYvAoP/iOp0OS5YsQUZGBnJz\nc7F7926cO3funjHp6enIz89HXl4eduzYgUWLFhkUmIiIOsegos/OzoaXlxc8PDxgY2ODWbNm4cCB\nA/eMOXjwIOLj4wEAISEhqKysRFlZWUu/HBERmYBBRV9cXAx3d/em50qlEsXFxe2OKSoqMmRaIiLq\nBINugSCTyTo07rcfFLS2X3JyctNjlUoFlUqlbzQiIklSq9VQq9Wd2segondzc4NGo2l6rtFooFQq\n2xxTVFQENze3Fn+9u4ueiIia++1BcEpKSrv7GLR0ExwcjLy8PBQWFkKr1WLPnj2Ii4u7Z0xcXBzS\n0tIAAFlZWejduzecnZ0NmZaIiDrBoCN6uVyO7du3IzIyEjqdDomJifD19cVbb70FAEhKSkJ0dDTS\n09Ph5eUFe3t77Ny50yjBiYioY3jBFBGRBePdK7uZqqoqPP/8WkyfPg+vvfa/0Ol0YkciIjPAI3qJ\n0Gq1GDVKhfPnH8StW2FQKNIwefJA7NnzntjRiMiEOtKdLHqJUKvViIt7BjdvngIgA1ANW9sBKC6+\nCCcnJ7HjEZGJcOmmG6mvr4dMZo/bJQ8APWFlZQOtVitmLCIyAyx6iRg7dizs7a/A2joZQCZ69FiA\nESNGwNXVVexoRCQyFr1EODg44MSJ/yA6+jx8fFZg9mw7/Otf/+jw1ctEJF1coycismBcoyciIhY9\nEZHUseiJiCSORU9EJHEseiIiiWPRExFJHIueiEjiWPRERBLHoicikjgWPRGRxLHoiYgkjkVPRCRx\nehd9RUUFwsPDMXjwYERERKCysrLFcR4eHhg+fDgCAwMxevRovYMS6SsrKwuhoXEICpqILVu28eZ5\n1O3offfKlStXwsnJCStXrsSmTZtw/fp1bNy4sdm4Bx98EKdOnUKfPn3aDsK7V5IJnD17FmPGTERN\nzSYAblAoVmP16sfw4ourxY5GZBQmvXvlwYMHER8fDwCIj4/Hp59+2upYFjiJ5e9/34Pa2t8DSAAQ\niZqad5GaulPsWERdSu+iLysrg7OzMwDA2dkZZWVlLY6TyWQICwtDcHAw3n77bX2nI9KLXG4Nmazu\nri11sLa2Fi0PkRjkbb0YHh6O0tLSZtvXrVt3z3OZTNbqNxllZmbC1dUV165dQ3h4OHx8fDBhwoQW\nxyYnJzc9VqlUUKlU7cQnatv8+fHYunUsqqr6QBDcoFD8GX/8I5dtyHKp1Wqo1epO7aP3Gr2Pjw/U\najVcXFxw5coVhIaG4qeffmpzn5SUFDg4OGDFihXNg3CNnkzk/PnzWLfuL7hxowpz507FzJm/EzsS\nkdGYdI0+Li4Ou3btAgDs2rULU6dObTampqYGN2/eBABUV1fjyJEj8Pf313dKIr0MGTIEaWlv4cCB\nD1ny1C3pfURfUVGBmTNn4vLly/Dw8MDHH3+M3r17o6SkBAsXLsShQ4dw6dIlTJ8+HQDQ0NCAuXPn\nYs2aNS0H4RE9EVGndaQ7+eXgREQWjF8OTkRELHoiIqlj0RMRSRyLnohI4lj0REQSx6InIpK4Nm+B\nQERkqa5evYozZ86gf//+CAgIaPU2Ld0Bi56IJCczMxNRUdNhZeWH+vqLmDEjCu+9l9pty54XTBGR\n5Li6eqG0dAuAWADVcHAYgz17NiE6OlrsaEbHC6aIqNtpbGxEWVkBgEl3ttijoWE8Ll26JGYsUbHo\niUhSrKys4O09AjLZr99/UQwrq8MYMWKEqLnExKUbshjl5eVITX0T5eWViIuLwiOPPCJ2JDJT58+f\nx8SJk3Hjxi3U119HcvJarFnzrNixTII3NSPJqKiowLBho1FerkJ9vScUijfw17+uw//8zzyxo5GZ\namhogEajwf3334/evXuLHcdkWPQkGVu3bsXq1dmoq/vwzpYTcHaeg9LSi6LmIhIbP4wlyaiurkZ9\n/YC7tgxAbW21aHmILAmLnvR24cIFTJo0A/7+47FixfO4deuWyeaKiYlBjx67ABwEkAs7uyebvtSG\niNrGpRvSS1lZGXx8AnHjxrMQhCDY2b2C2Fgn7NnznsnmPHr0KJYufQE3blRiypQYbN26ET169DDZ\nfESWgGv0ZDJpaWlYvPifqK7ee2dLFayt+6KurhpyOS+4JuoqXKMnk7GxsYFMVnPXllrIZLJue4k5\nkTnTu+j37t0LPz8/WFtb4/Tp062Oy8jIgI+PD7y9vbFp0yZ9pyMzExMTA0fHPNjYLAOwCwpFNJ56\n6g+wtrYWOxqR3kpLSzFuXARsbe3h6uqFo0ePih3JKPQuen9/f+zfvx8PPfRQq2N0Oh2WLFmCjIwM\n5ObmYvfu3Th37py+U5IZue+++5CTk4mkJFvExR3Bq68uxJYtG8WOZVTZ2dmYPHkWJk6cig8/3C12\nHOoCkybNwLffBqG+/gpKS9/E1KlzcPGi5Z/Cq/diqo+PT7tjsrOz4eXlBQ8PDwDArFmzcODAAfj6\n+uo7LZmRfv36Ydu2V8WOYRJnzpxBaGgMamr+BKAvTpxYg9raWixYkCB2NDKRmpoa/PDDSeh0X+L2\nMXAYrKzCkZmZCU9PT7HjGcSka/TFxcVwd3dveq5UKlFcXGzKKYmMYseO91BT8wcAiwDMRE3N37B5\nc6rYsciEevbsCWtrOYBfj+AbAJxH3759RUxlHG0e0YeHh6O0tLTZ9vXr1yM2NrbdX7yzH8wlJyc3\nPVapVFCpVJ3an4hIX1ZWVti6dQtWrAhFQ8MM2NicRFCQCyZNmtT+zl1IrVZDrVZ3ap82i97QDyLc\n3Nyg0Wianms0GiiVylbH3130RGJKSpqPXbvCUFPTB4ATFIo1WLnyBbFjkYk9+eRCDB/uh2+++Qau\nrqMxc+ZMszvB4LcHwSkpKe3uY5QTnls7hzM4OBh5eXkoLCzEgAEDsGfPHuzezQ+1yPwFBATgP/85\nhD//eQuqq2uRmPgy5s6dLXYs6gLjxo3DuHHjxI5hVHpfMLV//34sW7YM5eXlcHR0RGBgIA4fPoyS\nkhIsXLgQhw4dAgAcPnwYy5cvh06nQ2JiItasWdNyEF4wRUTUabwylohI4nhlLBERseiJiKSORU9E\nJHEseupyhYWFePzxhXjkkWnYtu0NfjZDZGK8nyx1qbKyMgQFjUdl5QI0NkYgK2szNJoSbN78stjR\niCSLZ91Ql3rzzTfxzDNfo7b2gztbNLCz80dNTaWouYgsFc+6IbNz+zfk3VcayvkXPJGJseipS02Z\nMgW2tkdgZbUZwCEoFDOwYMFCsWMRSRqXbqjLXbhwAStXpqCs7BfExYVh5cqnze5+IkSWglfGEhFJ\nHNfoiYiIRU9E5k2n06GwsBDXr18XO4rFYtETkdkqKCiAp+dw+PmNh4vLQLzwQvv3XqfmWPREZLZ+\n97v50GjmoaamCFptPrZu/TsyMjLEjmVxWPREZLZ+/DEHjY2/nn7bH3V1U5CTkyNqJkvEoicis6VU\nDgLwrzvP6tCzpxqDBg0SM5JF4umVRGS2Tp48ibCwWAC+aGj4GRERY7FvXxqsrHiM+iueR09EFu+X\nX37BqVOn0KdPHwQFBUEmk4kdyayYtOj37t2L5ORk/PTTT/j2228xcuTIFsd5eHjgvvvug7W1NWxs\nbJCdna13WCIiuldHulPv2xT7+/tj//79SEpKajeEWq1Gnz599J2KiIgMoHfR+/j4dHgsj9SJiMRj\n8k80ZDIZwsLCEBwcjLffftvU0xER0W+0eUQfHh6O0tLSZtvXr1+P2NjYDk2QmZkJV1dXXLt2DeHh\n4fDx8cGECRP0S0tERJ3WZtEfPXrU4AlcXV0BAP369cO0adOQnZ3datEnJyc3PVapVFCpVAbPT0Qk\nJWq1Gmq1ulP7GHx6ZWhoKF599VUEBQU1e62mpgY6nQ69evVCdXU1IiIisHbtWkRERDQPwrNuiIg6\nzaS3Kd6/fz/c3d2RlZWFmJgYREVFAQBKSkoQExMDACgtLcWECRMwYsQIhISEYPLkyS2WPBERmQ4v\nmCIismD84hEiImLRExFJHYueiEjiWPRERBLHoicikjgWPRGRxLHoiYgkjkVPRCRxLHoiIolj0RMR\nSRyLnohI4lj0REQSx6InIpI4Fj0RkcSx6ImIJI5FT0QkcSx6IiKJY9ETEUkci56ISOL0LvrnnnsO\nvr6+CAgIwPTp03Hjxo0Wx2VkZMDHxwfe3t7YtGmT3kGJiEg/ehd9REQEfvzxR3z33XcYPHgwNmzY\n0GyMTqfDkiVLkJGRgdzcXOzevRvnzp0zKLClUqvVYkcwGSm/N4Dvz9JJ/f11hN5FHx4eDiur27uH\nhISgqKio2Zjs7Gx4eXnBw8MDNjY2mDVrFg4cOKB/Wgsm5d9sUn5vAN+fpZP6++sIo6zRv/vuu4iO\njm62vbi4GO7u7k3PlUoliouLjTElERF1kLytF8PDw1FaWtps+/r16xEbGwsAWLduHWxtbTFnzpxm\n42QymZFiEhGR3gQD7Ny5Uxg3bpxQW1vb4uvffPONEBkZ2fR8/fr1wsaNG1sc6+npKQDgD3/4wx/+\ndOLH09Oz3a6WCYIgQA8ZGRlYsWIFjh07BicnpxbHNDQ0YMiQIfj8888xYMAAjB49Grt374avr68+\nUxIRkR70XqNfunQpqqqqEB4ejsDAQCxevBgAUFJSgpiYGACAXC7H9u3bERkZiaFDh+Kxxx5jyRMR\ndTG9j+iJiMgymNWVsdu2bYOvry+GDRuGVatWiR3HJF577TVYWVmhoqJC7ChG1dEL6CyNlC/402g0\nCA0NhZ+fH4YNG4bXX39d7EhGp9PpEBgY2HTyiJRUVlZixowZ8PX1xdChQ5GVldX64M5/BGsaX3zx\nhRAWFiZotVpBEATh6tWrIicyvsuXLwuRkZGCh4eH8Msvv4gdx6iOHDki6HQ6QRAEYdWqVcKqVatE\nTmS4hoYGwdPTUygoKBC0Wq0QEBAg5Obmih3LaK5cuSLk5OQIgiAIN2/eFAYPHiyp9ycIgvDaa68J\nc+bMEWJjY8WOYnTz5s0T3nnnHUEQBKG+vl6orKxsdazZHNGnpqZizZo1sLGxAQD069dP5ETG98wz\nz2Dz5s1ixzCJjlxAZ2mkfsGfi4sLRowYAQBwcHCAr68vSkpKRE5lPEVFRUhPT8eCBQsgSGyF+saN\nG/jqq6+QkJAA4PbnoY6Ojq2ON5uiz8vLw5dffokxY8ZApVLh5MmTYkcyqgMHDkCpVGL48OFiRzG5\n1i6gszTd6YK/wsJC5OTkICQkROwoRvP000/jlVdeaToAkZKCggL069cP8+fPx8iRI7Fw4ULU1NS0\nOr7NC6aMrbULsNatW4eGhgZcv34dWVlZ+PbbbzFz5kxcunSpK+MZrK33t2HDBhw5cqRpmyUeYRh6\nAZ2l6S4X/FVVVWHGjBnYunUrHBwcxI5jFJ999hn69++PwMBASd4CoaGhAadPn8b27dsxatQoLF++\nHBs3bsSf/vSnlnfomtWk9k2aNElQq9VNzz09PYXy8nIRExnP2bNnhf79+wseHh6Ch4eHIJfLhYED\nBwplZWViRzOq9i6gszSdueDPUmm1WiEiIkLYsmWL2FGMas2aNYJSqRQ8PDwEFxcXQaFQCE888YTY\nsYzmypUrgoeHR9Pzr776SoiJiWl1vNkU/Ztvvim89NJLgiAIwvnz5wV3d3eRE5mOFD+MPXz4sDB0\n6FDh2rVrYkcxmvr6emHQoEFCQUGBcOvWLcl9GNvY2Cg88cQTwvLly8WOYlJqtVqYPHmy2DGMbsKE\nCcL58+cFQRCEtWvXCitXrmx1bJcu3bQlISEBCQkJ8Pf3h62tLdLS0sSOZDJSXBJYunQptFotwsPD\nAQBjx47FG2+8IXIqw9x9wZ9Op0NiYqKkLvjLzMzEBx98gOHDhyMwMBAAsGHDBkyaNEnkZMYnxT9z\n27Ztw9y5c6HVauHp6YmdO3e2OpYXTBERSZz0Po4mIqJ7sOiJiCSORU9EJHEseiIiiWPRExFJHIue\niEjiWPSWw+BsAAAAD0lEQVRERBLHoicikrj/A6clY+pD4jW1AAAAAElFTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x140dfc88>" | |
} | |
], | |
"prompt_number": 110 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Now let's fit two models, with and without regularization." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "def sigmoid_basis(x):\n return hstack(tuple((1+exp(-x-mu))**-1) for mu in arange(-7,7,0.5))", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 125 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "This model doesn't have regularization." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=sigmoid_basis)\nmodel.fit_normal_eqns(X, y, 0.0)\nyh = model.predict(arange(-7,7,0.1).reshape((-1,1)))\nplot(arange(-7,7,0.1), yh)\nscatter(X,y)\nylim([-4,2])\nprint 'size of weight vector', norm(model.w)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "size of weight vector 2.52076671123e+13\n" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x140d3278>" | |
} | |
], | |
"prompt_number": 137 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "This is obviously a horrible model - it's just hitting the training points. Even a tiny, nonnegative amount of regularization helps." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=sigmoid_basis)\nmodel.fit_normal_eqns(X, y, 0.00001)\n#model.fit_gd(X, y, itrs=100, regularization=0.001, learning_rate=0.1)\nyh = model.predict(arange(-7,7,0.1).reshape((-1,1)))\nplot(arange(-7,7,0.1), yh)\nscatter(X,y)\nylim([-4,2])\nprint 'size of weight vector', norm(model.w)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "size of weight vector 124.134729356\n" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x13d02438>" | |
} | |
], | |
"prompt_number": 138 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Better. Let's increase the regularization" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "model = LinearModel(basisfunc=sigmoid_basis)\nmodel.fit_normal_eqns(X, y, 0.01)\n#model.fit_gd(X, y, itrs=100, regularization=0.001, learning_rate=0.1)\nyh = model.predict(arange(-7,7,0.1).reshape((-1,1)))\nplot(arange(-7,7,0.1), yh)\nscatter(X,y)\nylim([-4,2])\nprint 'size of weight vector', norm(model.w)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "size of weight vector 8.07893778044\n" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x13cf3d68>" | |
} | |
], | |
"prompt_number": 140 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "And now we can see how regularization is important for models, espescially when we have a lot of parameters (which my basis function mappings did). " | |
} | |
], | |
"metadata": {} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment