{ "metadata": { "name": "ch6" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].\n", "For more information, type 'help(pylab)'.\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "from pandas import *\n", "import numpy as np\n", "from sklearn.grid_search import GridSearchCV\n", "import sklearn.cross_validation as cv\n", "import sklearn.metrics as metrics\n", "from sklearn.svm import l1_min_c\n", "from sklearn.linear_model import Lasso, LassoCV, LogisticRegression\n", "import scipy.linalg as la\n", "from math import pi\n", "import matplotlib.pyplot as plt\n", "import statsmodels.api as sm\n", "from statsmodels.formula.api import ols\n", "from patsy import dmatrix\n", "import re\n", "import os\n", "import math\n", "from tdm_df import tdm_df" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fitting sine wave data by polynomials" ] }, { "cell_type": "code", "collapsed": true, "input": [ "sin_data = DataFrame({'x' : np.linspace(0, 1, 101)})\n", "sin_data['y'] = np.sin(2 * pi * sin_data['x']) + np.random.normal(0, 0.1, 101)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "sin_linpred = ols('y ~ x', df = sin_data).fit().predict()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot(sin_data['x'], sin_data['y'], 'k.')\n", "plt.plot(sin_data['x'], sin_linpred, 'r-', label = 'Linear Model Prediction')\n", "plt.title('Sine wave with Gaussian noise')\n", "plt.legend(loc = 'upper left')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 5, "text": [ "" ] }, { "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAZkAAAEjCAYAAADg9HzdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVPX6B/DPgDuiIIhbICqgiEZWJKJecEfQygXzaq43\nUdNscSvzVwZqZqZZmkq2qGVetFRM0dTcyrVSC0VxwQ0UFFDAXXh+f5zLyDoMy8yZYT7v16tXzZwz\nZ545TOeZ832+i0ZEBERERAZgpXYARERUcTHJEBGRwTDJEBGRwTDJEBGRwTDJEBGRwTDJEBGRwTDJ\nWICTJ0/CyckJH3zwgdqhVDj6ntvffvsNAwYMQJ06dbBixQojRaeuMWPGwNnZGcnJyWqHUirmHr+p\nYJKpACIjI9G+fXt4e3ujZcuWePLJJzFhwgTt9szMTKSlpeHq1asqRlkx6XtuPTw8EBQUhJs3b0Kj\n0ZT6/Y4cOYLhw4fD09MTbdq0gaurK5o3b44BAwbg9OnTpT6uISQmJuLGjRu4d++e2qGUirnHbzKE\nzNr8+fOlcuXKsm3bNu1zCxcuFDs7uzz73bhxQ7KysowdnkUo7NyGhYXJjBkz8jy3a9cu0Wg0smLF\nilK9z/vvvy/W1tby7rvvSnp6uvb56Oho0Wg0snnz5lId11AePXokKSkpaodRauYev6ngnYwZu3//\nPqZPn45//etf6N69u/b5zp07F/i17ODgACsr/rkNIf+5vX79OhYvXlyu7/HNN98gLCwM06ZNw8yZ\nM2Fra6vdFhgYiLp165br+5UHa2tr1KlTR+0wSs3c4zcVvOqYsYyMDNy9excJCQnIysrSPt+yZUvs\n27cPAHDq1CmMGjUKTk5O2lrAnj170KNHD9SqVQuDBw/GiBEj4Ofnhzp16mDSpEkF3mft2rXw9fWF\nl5cXGjdujPnz5xcZ086dO1G/fn1YWVmhYcOG+O677wAAFy5cgJWVFZYtWwYAOH36NNzc3GBtbY2+\nffsCUC7OY8eORfv27dG8eXM88cQT2v0BwMfHB1ZWVqhWrRpefPHFPMepXLmy9jjGirmwc3vu3DkE\nBgYiOTkZS5cuRZs2beDv75/n/TIzMzF79my4ubnBwcEB7777bpGxAUBWVhbeffdd1KxZE1OnTi10\nn19//RXt27fXPi7uXG7btg19+vRB9erVcenSJQDAoUOHMHjwYNSqVQt79uzR7rtixQo8/fTTePLJ\nJ+Hs7IwpU6Zot82dOxfe3t7a87xgwQIAwKJFi9C+fXs0a9YsT5x//fUX+vfvjw4dOqBRo0bw9vbG\nb7/9BgC4e/cuhg0bhiZNmsDT0xMTJ05E79694ejoiI4dO+LKlStFnqOYmBi88MILcHBwQHBwMEJD\nQ9GpUyfY29tj6NChePjwYZ799+zZA39/f3h5ecHNzQ1DhgxBYmKidntR8es6F7dv38Zbb70Fb29v\nNGnSBO3atcMff/xRZMwWQ+1bKSqb5s2bi0ajkeDgYDlz5kyB7XFxcfLee+8VaKbZvXu3aDQamT59\nuva5+fPni0ajkV27dmmf+/LLL8XFxUUuXbokIiLbtm0TjUYjy5YtKzKmw4cPi0ajkU8++aTAsV98\n8UXtc/v375f27dtrH7du3VqaNGmiffzWW2+JlZWVnDp1Svucj4+PuLq65nm/rVu3Sv/+/Y0ec1Hn\n9sKFC6LRaOSDDz7I8x45zWVt2rSR+fPnS0REhLRu3Vo0Go3s3bu32Ni6dOlS5D75FXcu9+3bJ/37\n9xeNRiMXL14UEZG//vpLxo4dKxqNRvbs2SMiIr///rtYWVlJdHS0iCjnOiAgQEREVq9eLRqNRmJj\nY0VEZOnSpTJ8+HAREfnpp5+kZcuWeWK4cuWKVKtWTUaMGCEiIvfv35d27dpJo0aN8sTeuHFjad26\ntaSmpoqIyOXLl6VmzZoybNgwnZ8557wPHz5cHj58qI1Do9HIN998o91vz549UqlSJZk5c6aIiGRm\nZkrbtm2lSZMmkpaWVmT8us7Fo0ePxN/fX1555RXJysqS7OxsGTx4sNSuXVuuX7+uM+6KjncyZm7N\nmjVwdnbGli1b0KJFC/Tp0wcHDhzQbnd3d0enTp0KvE7+Ny+qu7u79rmgoCAAyq9NALhz5w6mTJmC\ncePGwdnZGQDQvXt3ODo64ptvvikypmeeeQZ16tTB3r17tc+tX78e3bp1w86dO/Ho0SMAwPbt2xEc\nHKzdp3379ujdu7f2cY8ePSAiOH78uPa5gQMH4uLFi9oYAWDVqlUYNmyY0WMu7twW5Y033sCbb76J\nUaNGae8udP3ijY+PBwA0aNBA53FzK+5cdujQAV5eXnle06ZNGzz33HN5ntu/fz9EBJUrVwag3E2O\nHj0aAPD7778DgHZb9+7dERISAgDo06dPgSY8EUG/fv3Qtm1bAECVKlUQEBCAxMTEAj24HB0dYW9v\nDwB44okn0KpVqzx/88LknPcmTZqgUqVKAAp+pwFgwoQJaNSokfYO0sbGBvPmzcOFCxcwb968IuPX\ndS4iIyOxd+9ezJw5E1ZWVtBoNBg0aBDS09Px448/6oy7omOSMXNPPfUUTp48idmzZ6NOnTrYuHEj\nOnTogA8//LDEx6patSoApTkHAA4cOICbN29i2bJlaNOmjfafKlWq6OxxY2Vlhc6dO2ub7JKTk3H9\n+nVMmzYNmZmZ2uaRX375RXsRAIAlS5Zg4cKFuH//Pnbs2IG1a9cCQJ73eumll6DRaLTbMjMzsX//\nfvTs2VOVmMsqJ3FkZGQUuU/OBfPBgwcFtvn4+KBhw4ZwdHSEq6urNmnpcy714efnB41Gg5CQEERE\nRKB27doYOHAgACVRAUCnTp2wbt06NGnSROe5eeKJJ/Ddd99h9OjRSE1Nxbp167B//3694qpatar2\ne1kS+b/TZ8+exd9//12gCbN9+/aoXLkyoqOjizyWrnOxZcsWWFtbIzAwUPudmzx5MurXr4+0tLQS\nx12RMMlUADY2Nnj77bcRHx+PN998EyKC6dOn49SpU2U67rVr1wAAn332GY4ePar958qVKzh69KjO\n13bv3h1paWk4fvw4oqKi0KdPH3To0AG1a9dGdHQ0bt26hStXrsDb21v7msuXL2PUqFFo1aoVdu3a\nhSeffLLAcRs1aoT27dtj3bp1AICffvoJffr0gbW1tSoxG4OHhwcAFPr3PHLkCP7zn/8gNTUVn3/+\nufaXtT7nUh9+fn7YsmULnJycMGbMGLRq1QonT54EoNxVrlq1CtnZ2RgwYAD8/PyQkJCg83gHDhxA\ncHAwOnfujISEBLRo0aJUcZVWUlISABQo6Gs0Gjg4OGi3F0bXubh27Rrs7OzyfOdOnDiBxMREvP32\n24b7QGaAScaM/f333/joo4+0j21sbPDJJ59g5MiREBHExMSU6fg5zRXnz58v8Wu7du0KQCmwbtiw\nAf3794e1tTV69OiBLVu24Ndff0W3bt20+ycmJuLpp5/GiRMn8Oeff2LWrFlo3bp1ocd+6aWXcO7c\nORw7dixPU5mxYzaWVq1aoUWLFoiJiSl0LExOgs35d0nOpT569OiBEydO4LPPPkN8fDwGDRqk3TZ4\n8GCcOXMG//d//4eDBw9i3LhxRR4nOjoaHTp0QNOmTXHs2DG8/vrrqF+/fqnjKo2cJrAbN27keV5E\nkJqaCicnJ52vL+pc2NvbIzU1Fenp6YYJ3IwxyZix8+fP49NPPy3w/BNPPAEAaN68eZmO365dO1Sr\nVq1Ubcqurq5wd3fHpk2bcP78eTz99NMAgF69euHEiRP46quv0KtXL+3++/btQ0pKCoYNG4ZatWrp\nPHZISAisra3x6aefIjU1Nc+vdD8/P6PFXJSc7uOlad4pSk7vuPHjx2vrQ0XR91zWrFkTAHDr1q0i\n95k+fTq2bdsGa2trjB8/HiNHjtT28hoxYgRiYmJQvXp1fPDBBwgMDNTZAywqKgoigvHjx+uM35A8\nPDzQtGlT7N69O0/tbP/+/Xjw4EGeGmF+us5Fly5dICL46aefDP4ZzA2TjJlLTk7GmTNntI//+ecf\nfPnllxgyZEiBX6+5/6fK+e/s7OwCz+X8297eHtOnT8fevXsxe/bsPO+RU+DVJadonvt/3J49e0Kj\n0WDnzp3aOwfgcUI8ePAgAKVGkVNHyB0jADg5OSEgIAArV67EkCFD8myzs7MzWsy55T63OXdTGzdu\nxKVLl3D27Nk8iaGwv0NxnQUCAwPxxRdfaLvebtu2DSkpKUhJSSnQRKXvuXzqqacAKAksLS0N8fHx\n2LlzZ554EhISsH37dgDAw4cPERsbq020Fy5cwO7duwEoCTU+Pr5AEs79ufLHdfHiRe375f8e5v+b\ni0ix50if73TO57169aq2bnn79m1MnjwZrq6umDhxYpHx6zoXw4cPR+vWrTFp0iT8/fffAJSu56tW\nrcrT2mCRjNCDjQwkNjZWgoKCpGHDhtK8eXN58sknpV27dhIREaHdZ+3ateLp6SlWVlbStGlT+fjj\njws8t27dOjl37py0adNGrKyspEGDBjJv3jztMZYvXy5eXl7i4uIizz33nPTq1UvWrl1bbHwbN24U\nKysrOXjwYJ7n/fz8pGvXrgX2DwsLkzp16shzzz0nr732muzcuVM0Go3Uq1dPPvroozz7Ll++XKpU\nqSLJycmFvrcxYs5/HnOfs9dff11sbGykfv36MmzYMImMjMyz7/r16+X8+fPy1FNPac/57Nmzi43v\nn3/+kZEjR4qbm5tUq1ZN7O3txc/PT6ZPny5JSUklPpcTJkwQOzs7qVevnrz66qsya9Ys0Wg00rJl\nS4mOjpalS5eKm5ubNG7cWNq0aSNjx46VjIwMERGZMWOGuLi4iJubmzz11FMybdo0efTokYiI9OrV\nS6pVqybW1tbSuXNnSU5Olrt370r//v2lVq1a0qNHDwkPD5eFCxeKRqORZs2aSVRUlHTq1EmsrKyk\nevXqMmrUKBERCQ0NzXOswuzbt0/7/W3YsKEsXrxYbt++Le3atRMrKyuxt7eXSZMmafffvn27+Pn5\niaenp7i5ucnw4cPl6tWr2u35409KStJ5LkREUlNTZfTo0dKgQQNp1aqVPPfcc/Lqq6/K6dOni/27\nVmQakWJ+HhAREZWS2TWXJSYmYurUqfD09MTmzZsLbA8ICIC7uzvc3d3h4eGhs72ZiIgMq5LaAZSU\ng4MDZs2ahcOHDxc6m61Go8lToyAiIvWYXZLJGVxVFCsrK0yaNAmxsbHo2LFjgT7qDx48QEpKira7\nJxERFS8rKwsODg6oUqVKiV5ndkmmOFFRUbCxsUFGRgbatm0Ld3d39OvXT7s9NTUVN2/ehIODg4pR\nEhGZl5y1kEo6tqnCJRkbGxsAgK2tLYKDgxETE5MnyVhZWcHBwaHYQVdERFR2Zlf4zy2nY1xMTAwS\nEhJw9erVPOMYjh8/Dl9fX7XCIyKyeGZ5JzN37lzEx8cjMjISTk5OWLhwIby9vTFx4kS4urpiwoQJ\nyM7ORs+ePdGjRw+1wyUislgWN04mZ0pxNpcREemvtNdOs24uIyIi08YkQ0REBsMkQ0REBsMkQ0RE\nBsMkQ0REBsMkQ0REBsMkY+ZWr14NLy8vtcMos4SEBPTp06fIRcFyhIWFwd7eHpcuXTJKXLNnz0ad\nOnW07zdnzhz07NmzRMfYt28fGjRogLt37xoiRCKTxiRjBr7++mvUr18fPj4++OOPP/Js69ixI95/\n/32jx7Rp0yY0b94clStX1q6OmOO1115DtWrV0KVLF5w9e1av4zVq1AgvvvgisrKydO733nvvFbl8\nwzvvvINq1aohICAAw4YNQ7t27bBkyRK93r8o06ZNw82bN7WPe/fujddff13na7Kzs/Hzzz9rH7du\n3RqzZs1C9erVyxQLkTlikjEDI0eOhKenJ3r37o1nn302zzZnZ2cMGDDA6DH17t0bfn5+6NKlC374\n4Qft848ePcLFixfRoEEDDBs2DG5ubnofs6zjgj/88EM0aNAAI0eOxIoVK7B69WpMmDABR48eLdNx\nc/Py8kJgYKDOfdauXYsff/xR+9jOzg4jR44stxiIzAmTjBlLTk7O08S0ePFiNGrUCGPGjEGnTp1Q\np04drFq1Srv/7Nmz8corr+D555/HvHnzAACXL1/GoEGDMHHiRHTo0EG7/9tvvw1HR0d8//33aNiw\nIRYvXlxoDEOHDsXatWvx4MEDAEB0dHSBi3BGRgZCQ0PxxhtvYMiQIZg9e7Z222+//YYuXbogNDQU\nK1asyPO6wuItiSZNmqB27do4d+5coZ8nPT0doaGhePXVV9G9e3fs2LEDgDLb7Msvv4yXXnoJ48aN\n0x4vLi4OXbt2zZMw5syZg6FDh2Lw4MGYMGECLl26hI8//hj79+/HqFGjcOjQIQwbNgwtWrTQvmbr\n1q0YMGAAJk6ciD59+uD06dO4c+cO+vfvDxcXF7z55ptwd3eHl5cXEhMTS/y5iUyKmms/qyEpKSnP\nWug6AYb/R08BAQHywQcfFHj+22+/lYCAAO1jV1dX2bBhg4iILFu2TJ588kkREfnuu++kb9++IiJy\n9+5dsbW1lbNnz8r333+vXUt906ZN4uXlJSIid+7cEY1GIx9++KGcOXNGTp48WeC9hw8fLhcuXBA3\nNzf573//KyIigwYNktTUVHF1dZUVK1aIiMjo0aPltddeExGRrKws8fLykh9++EGuXbsm9vb22jXQ\nc3+WwuI9d+6ciIhoNBq5ePFioefJ1dVVvv32WxERWbdunTg5OUlSUlKhn+eVV16Rzz77TERE9u7d\nKy4uLiIi0r9/f3nvvfe0x8z9fjNmzJARI0aIiMj3338vzzzzjIgoa8x37NixwD4iIrt37xZXV1cR\nEYmPj5datWpp15Nfs2aNtGzZUrKzs2X37t3SsGFDuXPnjmRnZ0v79u1l/vz5hX5OImMr0bUzF7Oc\nINNozGBaNykkRnt7ewCAh4cH0tPTASjr7Ny8eRPvvPMOAKBt27a4ceMGBg0ahMDAQKxYsQIHDx7E\n7du3AUBbPxg0aBBcXFx0xvDyyy9j5cqV6NatW573z7F+/Xp8/fXXAJSlFrp3746NGzciMzMTTZo0\ngYeHR4HPUli8169fR9OmTYs9J0uXLsWmTZtgb2+Pffv25ZlrKffniYqKQlZWFt555x3cu3cPjRs3\nxv3797F+/foi61wioo0zKioKXbp0AQB06NABe/fuLbBP/s+1ZcsWeHh4aNfkCAwMxL///W+cOXMG\nIoIqVapoz727u7v270dkrphkzFRO3UNfIgJ/f3+89957eZ7/8ssvsXLlSkRERMDV1RVbt24tURwa\njQZDhgzBrFmzsGDBAgwaNKjAPtnZ2QUuutnZ2bh16xYePXpUonj1MXbsWAwdOrTY/UQEI0aMQMeO\nHbXP3bhxA9nZ2Xj48GGhr9FoNNplvx89eoSMjIwSxZb/XOR+vqj3IzJnrMmYify/jqdOnYqrV68W\nuW9+PXr0wKpVq5CWlgZAWSH08uXL+PbbbzFw4EB4enoWemEt7Fj5tzdt2hTPPfccvvrqK2333tzx\n9u7dG9u2bQOgLOG6Y8cO9O3bF35+foiJicHvv/8OAMjMzNQZ75UrV/SKS99tPXr0wOeff6597vTp\n06hVqxY8PDywdOnSPDHl7JP7cwUHB2Pt2rXauNLT0yEisLa2RmpqaqHv36NHD5w+fVr7t4uOjoaX\nlxeaN29eaKzFnX8iU2c9Y8aMGWoHYUw5zUE5K2iag6+//hqRkZFIS0tDbGwstm/fji1btiAwMBDL\nly9HbGws3N3d8eeffyIyMhIPHjzA888/jxkzZuDYsWNo0aIFBg0ahKSkJEycOBGbNm3C/v370a1b\nN9jZ2eHTTz/VXsS3b9+OevXq4ffff8fWrVuh0WjwzDPPoEaNGnliioqKwjfffIP4+Hh0794dGo0G\nDRo0QGBgIBYvXoyNGzciNTUVfn5+6Nu3LzZu3IhffvkFa9asQffu3TF69Gg4OztDRDBhwgTs27cP\nKSkpOH78OJ599lm8+OKLBeLt2rUrlixZgp07d0JEtO+bY/HixdiwYQPS0tLg5uYGZ2dn7bbPP/9c\nm+hyPk9AQAB+/vlnhIWFYevWrbh8+TK6deuGtm3bYu7cuVi2bBnS09Oxd+9e2Nraon79+li0aBEu\nXLiAVq1a4fnnn0d6ejomT56MqKgo/PnnnwgODkZ2djbmzZuHuLg41K1bF1999RWOHTsGZ2dnBAQE\noFWrVggPD8ehQ4ewf/9+fPXVV6hevTpmzpyJY8eOoWXLlrh37x6++OILJCUlwd/fv0ATJJGxlfba\nyfVkiIioWFxPhoiITA6TDBERGQyTDBERGQyTDBERGQyTDBERGQyTTAUWGhqKgIAABAUF5ZlJmIjI\nWJhkKrC4uDjs2bMH0dHRCA0NLdUxyiNRMdkRWS4mmQosZwClj48PIiIiSnWM8khU5XEMIjJPTDIV\n2OrVqxESEoJffvkFdnZ2pTpGeSSq8jgGEZknjvgnnW7evInQ0FBEREQUSFShoaGIi4tDjRo1sHr1\n6iITma5jEJF5KO21k0mGSi0gIAB79uwBAISEhCAyMlLliIjIUDitDBkdm8GIqDhMMlRqpan5sKcZ\nkWUxuySTmJiIqVOnwtPTE5s3by6w/eDBgxg2bBgmTJiAJUuWqBCh5bCzs0NkZGSJ6izsaUZkWcxu\nZUwHBwfMmjULhw8fLrBqoIhg6NCh2L9/PxwdHdGuXTt07doV7u7uKkVL+bGJjciymN2dTNWqVVGp\nUuG5MS4uDhqNBo6OjgAAX1/fEi8nTIZVHt2qich8mN2djC4pKSmwtbXVPra1tUVSUpKKEZknXV2T\n9e22XJScJjYisgxmdyeji5OTU5514tPT09GgQQMVIzJPuuomrKkQUUmYdZLJGeITExODhIQEuLm5\nwdraGjdu3AAAHDp0CIGBgWqGaJZ01U30ramwFxkRAWaaZObOnYv4+HhERkbiyJEjmDNnDlavXg0A\n+PbbbzF+/HiMHTsWL7/8Mpo1a6ZytOZHV91E35qKse54mMyITBtH/JNBBAUFITo6Gj4+PjoTUllr\nPJx1gMg4OOKfimXMX/3GuuNhl2gi02Z5SebyZeC//wVu31Y7EqMzZtFe34GaZU0S7BJNZNosL8nc\nvw/s2AG4uAATJgAnT6odUYmV9o7EFH/1l3VqGgAlnnWAiIzHcmsy9+4BX34JLF8OeHgAY8YAffsC\nVauqHGHxSluHyD3l/pQpU8pUC1ET6zBExseaTEm5uADh4cClS8BrrynJxsUFeOcdID5elZD0vUMp\n7R1J7iYscx7vYop3ZERUOMtNMjkqVwb69wd27gT27lWa03x8gKAgYNMmICvLaKHoe+E3lRUv1cI6\nDJH5sNzmMl23fHfvApGRwJIlwNWrwKhRwCuvAPXrGzQ2fbv95leabsDmtlqlvp+xrF2iiahwpR7+\nIRYmKSlJkpKS9H/BX3+JhIaK2NmJ9O8vsnOnSHa2QWJLS0uTkJAQSUtLK9Hr/P39BYAAkJCQEIPE\npjZ9P6O++40aNUr8/f2lZ8+eJT7fRJaoxNfO/2FzWXHatAGWLQMuXAACApQeaS1aAAsWAGlp5fpW\n+bv9GrpGY070/Yz67mfONSkis2KAhGfSSpuNtbKzRfbtExk0SKR2bZHhw0UOHTLI3Y2+v8pLeweU\nm6n/stf3M+q7X8+ePQWA+Pj4mOTnJTI1pb12siZTFtevA998AyxdCtjZAWPHAoMGATY2ZT828tZo\nWrZsiQsXLhis1lDWbsHmVgsxt5oUkdpYk9FTme9kCpOVJRIdLfLCCyL29iLjxon880+ZD5v7V7mh\naw1l/WVvCXUhIkvGmoyarKyAwEBgwwbg+HHAwQHo0QPo2BFYvVrpFl0KuWs0hq41lLVbsCXUhYio\n5NhcZigPHwJRUUpT2t9/A8OHA6NHA02b5tlN32YmfZt3StsNuqzKo/nJ3JrciCxJaa+dTDLGEBcH\nREQAK1YAzz6rTGETHAxUqlTuU6SYc63BkNPFGHJJaSJLwGllTJmHBzBvnjKFzb//DXz0EdCkCRAW\nhieslD9BeTUz6Tv7sSkyZJMbl5QmUgeTjDFVrw4MHQrs3w/8/DOQmIiVf/2FA40a4dd334VdrVpq\nR6gqQ04XUx5LShNRybG5TG3p6cB33ym1m3v3lKa0YcOUzgNUbnQ1I5pzEyORsbAmoydTSDKF1gBE\ngAMHlPnSNm0CXnhBGXfTti2g0agWq1pYJyEyLazJmJFCawAaDeDnB6xaBZw9C7RuDbz88uNpbTIy\n1A3ayFgnIaoYmGRUUGwNwNERmDRJ6ZU2dy6wbRvQuDHw6qvAP/8YOVp1qFUnKe2qo0RUOCYZFehd\n4LayArp3B376SRlr4+SkDPrs0AH4/nulhlNBqbVmDO+giMoXazLm5tEjpWazZAlw7JjSSWDMGKBZ\nM7UjqxDUGsxKZOpYk7EUlSoBffoAv/yidIUGAF9fZRqbDRuUJESlxlU3icoX72Qqgnv3gLVrlW7Q\nFy8+XsmzUSO1I1MVe6gRlR/eyZgwgxeTq1UDhgwBfv8d2LwZuHZN6Z3Wty+wfTuQnV3+72kGWF8h\nUh+TjBEY9WLn7a3Uay5eVDoNTJ4MNG8OfPIJkJJi2Pc2MRzJT6Q+JhkjUOViZ2urdAg4ehRYuVJZ\ngqBZM2VamwMHlMGfFVx51FfYpZmobFiTMQKTmbYkJQX49luldmNjoyShwYOVhESFMuTM0ETmhDUZ\nE2YyMyM7OAATJwKnTyuzQm/frgzyHDtWGYdDBbDJjahszPJOJjw8HLdu3UJycjKmTZuGFi1aaLcF\nBAQgISEBAKDRaHDkyBHUrl1bu91YdzJm07MpIQFYvhz48ksl4YwZA4SEKJ0JyHTuQolUZjETZO7e\nvRvz589HVFQUYmNjERoain379mm3d+rUCbt27Sry9cZKMmbXzPLokbL8wNKlwJ9/Ph7k6eamdmRE\nZAIsprls27Zt8PPzAwB4enrixIkTyMg1eaSVlRUmTZqE4OBgzJkzR60wza+ZpVIl4MUXga1bgYMH\nlSlt/PxIjaZ1AAAcl0lEQVSAbt2UaW0ePlQ7QiIyQ2aXZFJTU1GzZk3t45o1a2ozLABERUVh3rx5\nWLNmDVauXIkff/xRjTDNe+R4s2bKxJyXLwMjRgALFgCursD77wNXrqgdHRGZEbNLMk5OTsjMzNQ+\nzszMRL169bSPbWxsAAC2trYIDg5GTEyM0WMETKjYXxZVqwKDBgH79il3ODduAE8++XhaGwsd5ElE\n+jO7JBMUFIQDBw4AAGJjY+Hl5YWLFy8iISEBV69eRdeuXbX7Hj9+HL6+vmqFWrG0bg0sXgxcugT0\n7AlMnQp4eAAff6wkHyKiQphd4R8AwsLCkJKSgmvXriEsLAzh4eHw9vbGxIkTERoaiho1aiA7OxvN\nmjXDm2++mee1FXLuMjWIAIcPK7MLbNgA9OqldIX287PIlTyJKjqL6V1WVkwyBpCa+niQZ7VqSq+0\nl18GatVSOzIiKicW07uMTFCdOsBbbwGnTimdBH799fGYm2PH1I6u3HCKGaKSY5IpRxZ/EbKyArp0\nAdatA06cUJYa6N0baNcOWLECuHtX7QjLhLM6E5Uck0w54kUol4YNgf/7PyA+HnjnHWDNGsDFRZnW\nJi5O7ehKJf/YJ4v/UUGkByaZcmR2AzCNoVIl4Pnngeho4NAhoHJloGNHoGtX4McfzWqQZ/6xT/xR\nQVQ8Fv7LEee50tP9+0qCWboUOHtWWcVz1CjA2VntyEokKCgI0dHR8PHxMc9Bt0QlwN5lemLvMhMT\nE6Mkmx9+UO5wxoxRFluzMv2bbP6oIEvCJKMnJhkTlZmp1G2WLAFu3gRGj1amtKlbV+3IiAjswkzm\nrmZNpdnsjz+Uu5rYWGVGgcGDlWltLOu3EFGFwSRTQuxRZGAaDfDcc8A33wDnzwM+Pkq9pnVrYNEi\n4NYttSMkohJgkikh9igyInt74I03lLuazz8H9u5VZoMeNQr46y+1oyMiPTDJlBC7KatAowE6dQIi\nI5WE4+qqzATdtq0ynY2ZD/IkqshY+C+h3D2KpkyZYh5LLFdEWVnK2JslS5TxN0OGKD3TmjdXOzKi\nComFfyPJvU4Mm85UZG2tzPy8eTNw5IgyMae/P9C5M7B2LfDggdoREhGYZMqETWcmokkT4MMPlbVu\nRo9W1r1p3BiYPl15johUwyRTBma9xHJFVKUK8NJLwO7dwM6dQHo60KaNMq3Nli1KExsRGRVrMlSx\n3b79eJBnSgoQGgr85z9AOf/9Q0NDtfU5JycnXLhwQVurY+2OKgKO+NcTk4wF++MPJdn89BMQGKis\n5NmxY7ms5BkQEIA9e/YAAOrWrYvr168DAEJCQpCcnKzdFhISgsjIyDK/H5GxsfBPVJxnnwW++koZ\n5NmunVK/adVKGYNTxkGeuetz3t7e2v+OiIhg7Y4sGu9kyHKJAHv2KBN0btsG9Oun3N0880yJD5W7\nazuAPBNnciJNqgjYXKYnJhkq1LVrylQ2y5Yp9ZoxY4CBA4H/3YUQWTo2lxGVRf36ygqe584B77+v\n1G1cXJRpbU6dUjs6IrPFJEOUm7U1EBwM/Pwz8OefgI0NEBDweFqbMg7y5ASrZGmYZIiK0rgxMGuW\nMqBz7FilZ1rjxsC77wIXL5bqkJwlgiwNkwxRcapUAQYMAHbtAn79VRl78/TTj6e1KcEgT/Y0I0vD\nwn8hcg+s42A6KtSdO48HeV6//niQZ716Ol/GCVbJHIWGhuLs2bNYs2YNe5cVR58kk3tgHQfTUbH+\n/FPpBr1uHdC9u9K05u9f7CDP/N+znElXmXTI1AQEBODIkSOIj49n77LykL9Jg00cpNMzzwBffgnE\nxwMdOgDjxgEtWwILFwI6ivv5v1e56zVPP/00OwiQyahRlq78YmGSkpIkKSlJ5z5paWkSEhIiaWlp\nhT4m0ik7W2TvXpGBA0Xs7ERGjhQ5fLjAbvm/Vz179hQA4uPjI+3btxcAAkBCQkKM/QmI8sj5rhZ3\n7SyMRTeX5a+9sHmCyl1yMvD118ogTwcHpSlt4ECla3Q+ues1gwYNQnR0NHx8fDjLN6ki//Xxwf+6\n71tETSY8PBy3bt1CcnIypk2bhhYtWmi3HTx4EEuWLEHt2rXh6emJsWPH5nlt7iSTv02ctRYymKws\n4JdflI4Cv/8ODB6szCrQsmWhu3MqGlJb/uvjokWLAJRitpRyvqsyuF27dknv3r1FROTkyZPSoUMH\n7bbs7Gxxd3eX69evi4iIr6+vxMXF5Xl97uay3M0TbAojo7l4UWT6dJH69UX+9S+RH34QuX9f7aiI\n8sh/fdSn1FAYsyv8b9u2DX5+fgAAT09PnDhxAhkZGQCUgW4ajQaOjo4AAF9fX2zdurXIY3HRMVKF\niwsQHq4M8hw/HoiIUJ6bNg24cEHt6MhC5Z+Noryuj2aXZFJTU1GzZk3t45o1a2qbwFJSUmBra6vd\nZmtri6SkpCKPZWdnh8jISCYYUkflykBIiDLAc/du4O5dZTmC4GBg0yau5ElGlX82ivK6PppdknFy\nckJmZqb2cWZmJur9bwBc/m3p6elo0KBBntcPHDgQI0aMYLdQMi0tWgALFgCXLyuJZ+ZMoEkT5d/X\nrqkdHVkAQw3VMLskExQUhAMHDgAAYmNj4eXlhYsXLyIhIQFubm6wtrbGjRs3AACHDh1CYGBgntcf\nOnQIu3fv5rxRZJqqVweGDwcOHQI2bFCa1Dw9H09rY379dMhMGKp8YJa9y8LCwpCSkoJr164hLCwM\n4eHh8Pb2xuTJk3HkyBF88sknsLe3R6tWrTBu3Lg8r7WxsYG3tze2bNmS50SyOzOZrFu3gO++U3qm\nPXqk9EobNgywt1c7MrIgXLRMTwMGDMDs2bPh5uaW53l2ZyaTJwL89psyhc3mzUCfPsq4Gx+fYqew\nISpMSX5cc9EyPS1atAi1atUq8DynjiGTp9EAHTsC338PnDmj1HEGDlQ6CyxfrswOTVQCxlh6wuKS\nTFHYnZnMSt26wNSpwNmzypo3mzYp3aBfew04cULt6MhMGOPHtcU1l5X2lo/I5F2+rEzUuXw54Oam\n1G769QOqVlU7MjJRJZlZgjUZPTHJkLkrth394UMgKkrpKPDPP0pvtdGjgaZNVYmXKgbWZIgsRLHt\n6JUrK3cwO3YA+/YpPdLatgV69lSSDwd5khExyRCZmRK1o3t4AJ98ooy3GTgQ+PBDZZBneDhw9aoR\noiVLxyRDZGZK1UmlenVlbM2BA8rdTEKCMgN0//7Azp0c5EkGw5oMkaVKT388yPPBg8eDPOvUUTsy\nMkGsyRBRydSqBbz6KvD338rCan/9BTRrpnQUOHiQdzdULphkiCydRgO0bw+sWqUM8vTyUhZVe/pp\nZRmCXJPOEpUUkwwRPeboCEyerCSbjz4CoqOVQZ7jxgExMWpHR2aISYbIxOVfTMoorKyA7t2B9euV\n5jRHR6BHD6BDB2Vam/v3jRMHmT0mGSITZ4z5pXR64gnggw+UVTvfegtYsQJwdgamTAHOnTN+PGRW\nmGSITJzJTN5auTLQty/wyy/A778D2dmAry8QGKisffPokXqxkcliF2YiE1eS+aWM7t49YO1aZfmB\nixeBUaOUfxo2VDsyKmecu0xPTDJEBnL8uJJs1qwBOndW1rrp3Fmp75BRGWIRRo6TISJ1eXsrAzsv\nXQK6dgUmTlTWvPnkEyAlRe3oLIrqdbxcmGSIqHzZ2ip3MceOKZ0Ejh9XBnkOHapMa2NZjSeq0FXH\nM3ZvRSYZIgtjtIuMRgO0awesXKn0QvP2VhJNmzZKs1pGhuHe28Lpmt/O2Hc5TDJEFVRRyUSVphQH\nB6X57PRp4OOPlR5qLi7KHc/ffxsnBgtiZ2eHyMhI2NnZFfgeGLu3IpMMkRnTdVdSVDJRtUu0lRXQ\nrRvw00/KDAL16wNBQYCfnzKtzb17xo3HAuT/Hhh7qXkmGSIzpuuupKhkYuyLTJEaNQLef18Z5Dll\nijKTgLMzMGkScPasenFVMPm/B7nvcoyBSYbIjOm6KykqmRj7IlOsSpWAF18Etm5VZn+2slLubHKm\nteEgz0LpW1tT+0cFx8kQmTGTHqhZFvfuAevWKR0ELlwAXnlFGeTZqJHakZmMgIAA7NmzBwAQEhKC\nyMhIg74fx8kQWSCTuyspL9WqAS+/DPz2G7BlC5CcDLRuDfTpo3QayM5WO0LVmcx0Q8XgnQxRBWGI\nUd4mJSMDWL1aGfB5+zYwerSywJqjo9qRqcLYd7GcVkZPTDJUURm7+UQ1IkrtZulSYONGoHdvZelo\nPz9lbA4ZBJvLiCycuTSflFnOIM8VK5RBnm3aACNGKIM9v/gCSE9XO0LKhUmGqILQ1YtIlYXPjMHB\nQVnj5tQpYMEC4NdfgcaNlTub48fVjo5ghs1l4eHhuHXrFpKTkzFt2jS0aNEiz/aAgAAkJCQAADQa\nDY4cOYLatWtrt7O5jCyRxTSlAUBiIvDVV0BEhDLuZswYICQEqF5d7cjMmkU0l+3evRtHjhzBvHnz\n8M4772DUqFEF9tFoNDhz5gzOnDmDuLi4PAmGyFJZTFMaoKxl83//B8THA1OnAj/8oExhM3EicOaM\n2tFZHLNKMtu2bYOfnx8AwNPTEydOnEBGvkn2rKysMGnSJAQHB2POnDlqhElkctQekKeKSpWAF14A\noqOBQ4eUxx06KNPa/Pgj8PCh2hFahEpqB5Bbt27dCn1++/btAIDU1FQ0yjUYq2bNmkhOToatra32\nuaioKNjY2CAjIwNt27aFu7s7+vXrZ9jAiUxczngai9W0KfDRR0BYmJJgPv0UmDBBGeT5yitKsxoZ\nhEklmZxkUhQnJydkZmZqH2dmZqJevXp59rGxsQEA2NraIjg4GDExMUwyRKSoWhUYNEj5JyZG6Qbt\n7Q38619K7aZ7d67kWc7M6mwGBQXhwIEDAIDY2Fi0atUKNWvWRExMDBISEnD16lV07dpVu//x48fh\n6+urVrhEZMpatQIWLVJW8gwOBqZNA9zclDue69fL/e0qbA+/Yphd77KwsDCkpKTg6tWrmDlzJjw8\nPPDyyy/D29sbEydORGhoKGrUqIHs7Gw0a9YMb775Zp7Xs3cZERVKBDhyRJlRYP16JfGMHQu0b18u\ngzz17eFX2pkbDD3jA0f864lJhiivCj8dTWmkpiorei5dClSurDSlDRkC1KpV6kMGBQUhOjoaPj4+\nOjtglLa7uaG7qVtEF2YiKn+qrJRp6urUAd54A4iNBRYuBPbsUQZ5hoYCR4+W6pD69vDL3908dzPb\n8OHDi2xyM9lu6mJhkpKSJCkpSe0wiExGz549BYD4+PhIWlqa2uGYrsREkfBwEWdnkbZtRb75RuTO\nnXJ/m7S0NAkJCdH+Lfz9/QWAAJC6detq/zskJETn68pbaa+dbC4jsnBFzebLZrQiZGUpyw8sWQIc\nPgwMHarMCN28uUHeLnczW+3atbFjx45im9wMgTUZPTHJEOnHoqaiKa3z54EvvwS+/lrprTZmjLLK\nZ+XK5fYWuX8EAFBtkTomGT0xyRDpR1ehmnc5+dy/r/RIW7JEmbrmP/9RVvJ0cVE7snLDwj8RlStd\nhWp2FsinalVg4EClg8COHcCtW8oSBM8/r0xrY8EreTLJEFGhdC3tbLI9mUxBy5bAZ58pgzyffx6Y\nPl0Z5DlnjrKMtIVhkiGiErPICTdLysZGmRftjz+A//4XiIsDPDyAf/8b2LtXGfz5PxV5NgDWZIiI\njCUt7fEgT2tr7SDPgBdeMPlOFiz864lJhohUJ6LUb5YsAX75BVtr1sS0K1dQSYWuyfpi4Z+IyFxo\nNEBAgNKMFhsL/xEjsK1GDezPyoLd+vXAnTtqR1humGSIiNRUvz6qh4Whbno6KuWsd+Piokxrc+qU\n2tGVGZMMEemlqOJ0RS5al1SZzoW1tTLz888/K50FbGyUu51OnYDISODBA4PEbGisyRCRXoqaASD/\n83Z2dhY7ULPcZ0l48ODxIM/Tp4GRI5VJOhs3LodoS4Y1GSIyqKLGxuR/3pIHapb7+KEqVYCXXgJ2\n7wZ+/RXIzASefhro1QvYvFmZR83EMckQkV6KGhuT/3lLHqhp0PFDnp7KsgOXLwN9+wIffAA0awbM\nng0kJZXve5UjNpcRUbkqalZnMoA//1Sa0n78EejRQ1nJ81//KpeVPPPjOBk9MckQkT7MahLQmzeB\nVauUhAMogzyHDgXKMWbWZIiozNhT7DGzqi3Z2QGvvQacOKEkmgMHgCZNlNmg//hD1dCYZIhIy6wu\nrAamb23JpBKzRgP4+wM//KCMsXFzA/r3B3x8gK++UmWQJ5MMEWlZctE+P32L+CabmOvVA955Bzh3\nTukksGED4OwMvP46cPKk0cJgkiEiLc6u/JiupQ5yM/nEbG0NBAUBmzYBf/0F2NoCXbooAz3XrDH4\nIE8W/onIopR3Qd8se9M9eABs3KjUb06eBEaMAEaPBlxdi3wJC/9EZLaMWdco7+Ytfe94TEqVKkBI\niDLAc/du4N494NlnH09rU46DPJlkiMhg9E0exqxrlKZ5y6SK++WtRQtgwQJlJc/+/YGwMKBpU2DW\nLODatTIfnkmGiAxG3+RhzLpGaepOJlvcL081aijNZocPAz/9BFy8qMwyMGAAsGtXqQ/LJENEBqNv\n8jBmh4PSNG+ZfHG/vD3zDBARAVy4oMwgMH58qQ/Fwj8RGUz+orghR9Eb8tjlXdw3q9kEAEAEydev\nA+C0MsVikiFST2mmwtf3glzu0+wbkDnFmsMiepclJiZi6tSp8PT0xObNmwvd5+DBgxg2bBgmTJiA\nJTnz+BCRSShNs5Mp1nXKypxiLTMxI/fu3ZOHDx9KQECAbN68ucD27OxscXd3l+vXr4uIiK+vr8TF\nxeXZJykpSZKSkowSLxHllZaWJiEhIZKWlqb3a3r27CkAxMfHR+frch971KhR4u/vLz179izRe+mr\nrMcvzXlQW2mvnWZ1J1O1alVUqlSpyO1xcXHQaDRwdHQEAPj6+mLr1q3GCo+IilGaonvuTgFTpkwp\nsitx7mMbujdYWY9vlmNrSqnoK7YKunXrVujz27dv1+v1KSkpsLW11T62tbVFkgkv5kNExcu5IAOP\nL+6AUqspqpZRksktS1OAN/TxKxKTSjL6JpOiODk5ITMzU/s4PT0d7u7uZQ2LiIysqItzSbpE69Mb\nTN+kZezjVyRm1VyWm+TqFBcTE4OEhAS4ubnB2toaN27cAAAcOnQIgYGBaoVIRDroGkVfVHOUvuNp\nDD25ZYWZPNMYyr88ZFgfffSRNG7cWIYOHSqHDx8WEZHBgwfL3LlzRUTk8OHD8tJLL8mYMWNk0aJF\nBV7Pwj+RafD39xcAAkBCQkLybNO32F9Whi7Am2OBvyilvXZynAwRqSIoKAjR0dHw8fEpcGdi8YMf\nTVBpr51MMkSkCmNOkW+Ogx9NTWmvnSZV+Cciy5G715ihsTeYesy28E9EpC+zX0rZjPFOhogqPH3v\nmtgbrPzxToaI6H+MueSApWDhn4jMFmsoxmMRszATEeXGGorpY5IhIrPFGorpY5IhIrPFGorpY02G\niIiKxZoMERGZHCYZIiIyGCYZIiIyGCYZIiIyGCYZIiIyGCYZIiIyGCYZIiIyGCYZIiIyGCYZIiIy\nGCYZIiIyGCYZIiIyGCYZIiIyGCYZIiIyGCYZIiIyGCYZIiIyGCYZIiIyGCYZIiIyGCYZIiIyGCYZ\nIiIyGLNKMomJiZg6dSo8PT2xefPmQvcJCAiAu7s73N3d4eHhgVu3bhk5SiIiylFJ7QBKwsHBAbNm\nzcLhw4eh0WgK3Uej0eDMmTNGjoyIiApjVkmmatWqxe5jZWWFSZMmITY2Fh07dsTbb7+dZ3t2djbS\n0tIMFSIRUYWUkpICOzu7Er/OpJJMt27dCn1++/bteh8jKioKNjY2yMjIQNu2beHu7o5+/fppt9ep\nUwciUuZYiYgsib29PerUqVPi15lUkilJMimKjY0NAMDW1hbBwcGIiYnJk2SqVKmCBg0alPl9iIio\neGZV+M8t991ITEwMEhIScPXqVXTt2lX7/PHjx+Hr66tGeEREBBO7k9HH3LlzER8fj8jISDg5OcHH\nxwdz5syBt7c3Jk6cCFdXV0yYMAHZ2dno2bMnevTooXbIREQWSyMsUBARkYGY3Z1MSYSHh+PWrVtI\nTk7GtGnT0KJFC+22gwcPYsmSJahduzY8PT0xduxYFSM1PF3nYvXq1Th69CguX74MW1tbREREFNlF\nvCLQdS5ybN26FePHj8fZs2dViNB4ijsXX3zxBfbv3w9vb29MnjxZpSiNQ9e5WLduHTZu3Ii6devi\n4cOH+Oyzzyrs/yOJiYlYuHAhoqKiMG/ePAQHB+fZXuJrp1RQu3btkt69e4uIyMmTJ6VDhw7abdnZ\n2eLu7i7Xr18XERFfX1+Ji4tTJU5j0HUuREQaNWokly5dEhGRdu3aycaNG40eo7EUdy5ERM6cOSOB\ngYHSpEkTY4dnVMWdi3nz5sn777+vQmTGV9y5cHJykpSUFBER6d27t+zYscPoMRrLvXv35OHDhxIQ\nECCbN2/Os600106zLfwXZ9u2bfDz8wMAeHp64sSJE8jIyAAAxMXFQaPRwNHREQDg6+uLrVu3qhar\noek6FwBw8uRJODs7AwDq1q0La2trVeI0huLORWZmJt5++23MnTu3wnd113Uubt++jQ8//BB37txB\nv379MGXKFDx69EjNcA2quO9Fo0aN8Pnnn+PevXtIT0+Hp6enWqEaXNWqVVGpUuGNXKW5dlbYJJOa\nmoqaNWtqH9esWRPJyckAlEFFtra22m22trZISkoyeozGoutcAECtWrUAAEePHkVmZmaB2+OKpLhz\nMX78eISFheX5flRUus7FyZMnYW9vjxkzZmDdunU4efIkli9frlaoBlfc92L69OnYu3cvXF1d4eXl\nhXr16qkRpupKc+2ssEnGyckJmZmZ2seZmZnaL0b+benp6RV67Iyuc5EjLi4O4eHhWLt2rbHDMypd\n5yIuLg6xsbF49913MXr0aCQnJ2PmzJlqhWpwus5F1apVUaVKFdSoUQMajQadO3fGyZMn1QrV4HSd\ni0uXLiEiIgI7d+7EqVOnEBsbiwULFqgVqqpKc+2ssEkmKCgIBw4cAADExsbCy8sLFy9eREJCAtzc\n3GBtbY0bN24AAA4dOoTAwEA1wzUoXecCAA4cOICPP/4Yq1atQq1atSr0L1Zd58LDwwOHDh3C+vXr\nERERAScnJ0yfPl3liA1H17lwd3dHWlqadoLZU6dOaZuTKiJd5+LBgwe4f/8+AMDOzg7t27fH7du3\n1QzXaHKajHPGIpbm2lmhuzCHhYUhJSUF165dQ1hYGMLDw7W9ZI4cOYJPPvkE9vb2aNWqFcaNG6d2\nuAZV1LkYOXIknJ2d4eLiAo1Gg6ysLPTq1Qvz589XO2SD0fW9yHHhwgV07twZ58+fVzFSw9N1Ln7+\n+WesXLkSLi4usLKywty5c9UO16B0nYtPP/0UJ06cgI2NDdLS0vDFF19oZxepiObOnYsvvvgC/v7+\nGD9+PBYuXFjqa2eFTjJERKSuCttcRkRE6mOSISIig2GSISIig2GSISIig2GSISIig2GSISIig2GS\nISIig2GSISIig2GSISIig2GSISIig2GSISIig2GSISIig2GSISIig2GSISIig2GSISIig2GSISIi\ng2GSISIig2GSISIig2GSISIig2GSISIig2GSISIig2GSISIig2GSISIig2GSISIig2GSISIig2GS\nISIig2GSISIig2GSISIig2GSISIig2GSISIig2GSISIig/l/TygIsHSfDj0AAAAASUVORK5CYII=\n" } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In a polynomial regression, we want to approximate the data with by the sum of a finite number of orthonormal polynomial (OP) basis functions. In a regression setting, this means making the multiple regressors by computing the OP transformations of $x$. Then, we have:\n", "\n", "$y(x_i) = \\sum_{d=1}^{D}\\mathcal{P}_d(x_i) + \\varepsilon_i$\n", "\n", "where $\\mathcal{P}_d$ is the $d$th order OP basis functions, and $\\varepsilon_i$ is random noise.\n", "\n", "Fortunately, patsy has a method for computing OP transformations, via the `dmatrix` function." ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = sin_data['x']\n", "y = sin_data['y']\n", "Xpoly = dmatrix('C(x, Poly)')\n", "Xpoly1 = Xpoly[:, :2]\n", "Xpoly3 = Xpoly[:, :4]\n", "Xpoly5 = Xpoly[:, :6]\n", "Xpoly25 = Xpoly[:, :26]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "polypred1 = sm.OLS(y, Xpoly1).fit().predict()\n", "polypred3 = sm.OLS(y, Xpoly3).fit().predict()\n", "polypred5 = sm.OLS(y, Xpoly5).fit().predict()\n", "polypred25 = sm.OLS(y, Xpoly25).fit().predict()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting the fits of polynomial models of increasing order, we see that by D = 3, we've pretty much captured the salient features of the data, and much beyond that we're probably over-fitting." ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.figure(figsize(10, 8))\n", "fig, ax = plt.subplots(2, 2, sharex = True, sharey = True)\n", "fig.subplots_adjust(hspace = 0.0, wspace = 0.0)\n", "fig.suptitle('Polynomial fits to noisy sine data', fontsize = 16.0)\n", "\n", "# Iterate through panels (a), model predictions (p), and the polynomial \n", "# degree of the model (d). Plot the data, the predictions, and label\n", "# the graph to indicate the degree used.\n", "for a, p, d in zip(ax.ravel(), [polypred1, polypred3, polypred5, polypred25],\n", " ['1', '3', '5', '25']):\n", " a.plot(x, y, '.', color = 'steelblue', alpha = 0.5)\n", " a.plot(x, p)\n", " a.text(.5, .95, 'D = ' + d, fontsize = 12,\n", " verticalalignment = 'top',\n", " horizontalalignment = 'center',\n", " transform = a.transAxes)\n", " a.grid()\n", "\n", "# Alternate axes that have tick labels to avoid overlap.\n", "plt.setp(fig.axes[2].get_yaxis().get_ticklabels(), visible = False)\n", "plt.setp(fig.axes[3].get_yaxis(), ticks_position = 'right') \n", "plt.setp(fig.axes[1].get_xaxis(), ticks_position = 'top')\n", "plt.setp(fig.axes[3].get_xaxis().get_ticklabels(), visible = False)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 8, "text": [ "[None, None, None, None, None, None]" ] }, { "output_type": "display_data", "png": "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\nOgAAAABJRU5ErkJggg==\n" } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just for shits and giggles, a home-rolled function to build the orthonormal-polynomial basis functions from a vector. This will test we understand what `Poly` does. If you check it, you'll find this function and `Poly` provide the same results." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def poly(x, degree):\n", " '''\n", " Generate orthonormal polynomial basis functions from a vector.\n", " '''\n", " xbar = np.mean(x)\n", " X = np.power.outer(x - x.mean(), arange(0, degree + 1))\n", " Q, R = la.qr(X)\n", " diagind = np.subtract.outer(arange(R.shape[0]), arange(R.shape[1])) == 0\n", " z = R * diagind\n", " Qz = np.dot(Q, z)\n", " norm2 = (Qz**2).sum(axis = 0)\n", " Z = Qz / np.sqrt(norm2)\n", " Z = Z[:, 1:]\n", " return Z" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "np.random.seed(1)\n", "rand_ind = arange(100)\n", "np.random.shuffle(rand_ind)\n", "train_ind = rand_ind[:50] \n", "test_ind = rand_ind[50:]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A polynomial fit to the sine wave data using lasso regularization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the book, the authors set up an explicit cross-validation scheme, by separating the data\n", "into training and testing sets. For a series of candidate lasso penalty parameters, they fit the model on the training data, then evaluate the MSE of that model on the testing data.\n", "\n", "We're going to use sklearn's `LassoCV`, which automatically performs cross-validation. The function return the optimal lasso penalty parameter across the CV folds (i.e., the one that minimizes the average MSE across the folds).\n", "\n", "*Some notes:* sklearn calls its lasso penalty parameter `alpha`, compared to R's `glmnet` which calls it `lambda`. (I'm more accustomed to the latter, myself). This can get confusing, because `glmnet` also has an `alpha` parameter that weights the L1 and L2 cost functions. \n", "\n", "Also, sklearn seems to weight its L1 cost function differently than `glmnet` leading to different values for the lasso parameter. I haven't looked closely yet at the source of the discrepancy. The other model parameters and the model predictions, though, should be roughly the same for both sklearn's `Lasso` and `glmnet`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "lasso_model = LassoCV(cv = 15, copy_X = True, normalize = True)\n", "lasso_fit = lasso_model.fit(Xpoly[:, 1:11], y)\n", "lasso_path = lasso_model.score(Xpoly[:, 1:11], y)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "# Plot the average MSE across folds\n", "plt.plot(-np.log(lasso_fit.alphas_), np.sqrt(lasso_fit.mse_path_).mean(axis = 1))\n", "plt.ylabel('RMSE (avg. across folds)')\n", "plt.xlabel(r'$-\\log(\\lambda)$')\n", "# Indicate the lasso parameter that minimizes the average MSE across folds.\n", "plt.axvline(-np.log(lasso_fit.alpha_), color = 'red')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 12, "text": [ "" ] }, { "output_type": "display_data", "png": "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\nWrdunekoAADgMlDC3AAlDAAA10MJcwNdu3bV2rVrTccAAACXgRLmBpo3b6709HT9/vvvpqMAAIBL\nRAlzA15eXrrlllu0fv1601EAAMAlooS5CaYkAQBwLZQwN8HifAAAXAslzE20bt1ahw8f1okTJ0xH\nAQAAl4AS5ia8vb0VERHBujAAAFwEJcyNMCUJAIDroIS5ka5du1LCAABwEZQwN3LjjTdq7969ysrK\nMh0FAACUghLmRipXrqz27dvr559/Nh0FAACUghLmZpiSBADANVDC3EyXLl3YtBUAABdACXMzHTp0\n0I4dO3T69GnTUQAAwF+ghLmZatWqqXXr1tq4caPpKAAA4C9QwtwQU5IAADg/SpgbYnE+AADOjxLm\nhjp27KhffvlF586dMx0FAACUgBLmhgIDA1WvXj3t3LnTdBQAAFACSpib6tChA4vzAQBwYpQwN9Wx\nY0dt2rTJdAwAAFACSpib6tChAyUMAAAnRglzUy1atNDhw4d18uRJ01EAAMBFUMLclLe3t9q2bavN\nmzebjgIAAC6CEubGWJwPAIDzooS5MRbnAwDgvChhbuz84nybzWY6CgAA+BNKmBurU6eOfH19dfDg\nQdNRAADAn1DC3BxTkgAAOCeHlbDo6GiNHz9ejzzyiPbs2XPB+VmzZumhhx7SG2+84agIEIvzAQBw\nVt6OeNO4uDht3rxZS5YsUVJSkoYOHar169fbz8+YMUPZ2dn617/+5YhvjyI6dOighQsXmo4BAAD+\nxCEjYTExMYqIiJAkhYeHa9euXcrOzpYknT59WtOmTVNOTo4GDBig5557TufOnXNEDEhq166ddu7c\nqby8PNNRAABAEQ4pYRkZGfL397cf+/v7Ky0tTZK0e/duBQcH65VXXtHChQu1e/duzZkzxxExIMnP\nz0/XXnutEhMTTUcBAABFOKSEhYSEyGq12o+tVqtCQ0MlSb6+vqpcubKqVasmi8WiHj16aPfu3Y6I\ngf9icT4AAM7HISUsMjJS8fHxkqSkpCQ1b95cKSkpOnLkiJo2barMzExlZWVJkvbs2WOfuoRjsDgf\nAADnY7E5aCfPyZMnKz09XampqZo8ebKio6PVqlUrTZgwQd9//73mzZun+vXry8vLS6+//nqx156f\nugwJCXFENI+TlJSkqKgo9gsDgPJisUhshI3/KmtvcVgJuxKUsPJVWFioGjVqaO/evfxvCgDlgRKG\n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\nowAA4PJKLGGHDh1S165diz1ms9m0f/9+h4eCc4qKilLv3r1ls9lksVhMxwEAwKWVuEVFTk6OqlWr\nJkk6efKk9u/fr2uvvVZeXl7y9/d3aCi2qHBONptNjRo10tKlS9WiRQvTcQDAHLaoQBFl7S0lrgk7\nX8C+/fZbNW/eXE888YSaNWummJiYK4gJV2axWLhKEgCAclLqwvzY2FglJydr27ZtOnjwICXMw7F7\nPgAA5aPUElarVi1VrlxZklSlShXVqlXL4aHgvLp3767ExERlZmaajgIAgEsrtYRJfyzIHjNmjPr0\n6aOCggJHZ4ITq1q1qm655RatWrXKdBQAAFxaiSXsjTfekCRNmTJFo0ePVp06dTR69Gj9/e9/r7Bw\ncE6sCwMA4MqVWMLOXzT56quvqnfv3nruuefUp08fJSQkVFg4OKfIyEitWLFChYWFpqMAAOCyStwn\nrEaNGurevbuSk5MVFxdnf/y3337Tvn37KiIbnFRYWJhCQkKUkJCgjh07mo4DAIBLKrGEDRkyRAMG\nDNCXX36pPn362EfGvv/++woLB+d11113adGiRZQwAADKqMTNWk1is1bnt2XLFj300EPas2eP6SgA\nUPHYrBVFlPtmrcBfadeunaxWq5KSkkxHAQDAJVHCUCYWi0X9+vXTokWLTEcBAMAllVrCPvjgA23b\ntk379u3TM888o8TExIrIBRfQv39/ShgAAGVUagnbuXOnwsPD9fDDD+u6667T7NmzKyIXXECXLl20\nf/9+HTlyxHQUAABcTqklLDMzU9OmTVODBg00YsQIhYaGVkQuuAAfHx9FRUVp8eLFpqMAAOBySi1h\nTz75pE6ePKl3331Xixcv1unTpysiF1wE68IAACibUkvY7t27NXjwYJ06dUpr1qzRQw89VBG54CJ6\n9+6tjRs38oHeAABcpsteE/b+++9XRC64CD8/P3Xv3l3Lly83HQUAAJfCmjBcMaYkAQC4fKwJwxXr\n27evVq1apdzcXNNRAABwGaWWsE6dOik8PFzR0dE6fvy4Xn/99YrIBRdy1VVXqXXr1lq9erXpKAAA\nuIxSS9iYMWOUmJioxo0ba8uWLRozZkxF5IKLYUoSAIDL413aE6655hpNmjTJfvzqq686NBBcU79+\n/TR16lSdO3dO3t6l/lgBAODxSh0JO3jwoI4fPy5JSk1N1cGDBx0eCq4nLCxM9evX17p160xHAQDA\n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\nkrZs2aLvvvtOVqtVXbp0Ud++feXr6+vQUIyEoahly5Zp0qRJ2rp1qywWi+k4AMBIGIop9zVh5914\n440aMWIK1QUwAAAgAElEQVSEateurSFDhqhLly5lSwiUUZ8+fZSfn88O+gAAt1JiCUtPT9f777+v\nrl27qmvXrsrMzNSaNWu0adOmiswHyMvLSxMmTNDrr79uOgoAAOXmL3fMX7lypYYPH67Vq1drxIgR\nCg4O1pQpUyoyHyBJGjRokJKSkrR161bTUQAAKBclrgm79dZbLzr1uG7dOq1evdqhoVgThot56623\n9NNPP+mbb74xHQWAp2NNGIooa28psYSlpKSoQYMGFzyemJioNm3alCHipaOE4WJycnLUuHFjxcTE\nqGXLlqbjAPBklDAUUe4L8+vVq6eNGzfq999/tz92+PBhvfTSS2WMCFyZatWqafz48XyMEQDALZRY\nwkaMGKGhQ4eqa9eu9pGHyMhIDR48uALjAcUNHz5c69ev186dO01HAQDgipS4WavVatWOHTuUk5Oj\n9u3b66OPPlJERERFZgMu4Ofnp3Hjxik6Olpffvml6TgAAJRZiSWsXr16ysnJkc1mU+/evdW6dWvl\n5OTo008/1YgRI0p94+joaGVlZSktLU0TJ05Us2bN7OfmzZunbdu26eDBg6pTp45mzpxZPn8aeISn\nnnpKjRs31u7du3X99debjgMAQJmUuDDfy+viM5UWi0UFBQV/+aZxcXF68803tWTJEiUlJWnYsGFa\nv369/Xzjxo21bds2+fv7q1mzZpo3b55uuukm+3kW5qM0r732mrZt26YvvvjCdBQAnoiF+Sii3Bfm\nf/bZZyosLLzg9vHHH5f6pjExMfapy/DwcO3atUvZ2dn28wcOHJC/v78yMjJks9lUv379ywoNjBw5\nUqtXr1ZSUpLpKAAAlEmJJezBBx+86OOXsjA/IyND/v7+9mN/f397Szzvs88+06233qqHHnpIV199\n9SXGBf4QEBCgZ555hs2DAQAuq9TPjiyLkJAQWa1W+7HValVoaGix5zz88MNKTExUYmLiJY2uAX82\natQorVq1Snv27DEdBQCAy+aQEhYZGan4+HhJUlJSkpo3b66UlBQdOXJE2dnZeu655+zP9fPzUwnL\n0oC/VL16dT377LPsXQcAcEklLsy/UpMnT1Z6erpSU1M1efJkRUdHq1WrVho3bpweffRRhYaGqqCg\nQJUqVdL06dNlsVjsr2VhPi5Vbm6umjZtqoULF6pjx46m4wDwFCzMRxHl/rFFJlHCcDnmzJmjf/3r\nX1qzZk2xMg8ADkMJQxHlfnUk4CoGDx6sY8eOaeXKlaajAABwyShhcHne3t6aOnWqXnjhBRUWFpqO\nAwDAJaGEwS3069dP1apV0+eff246CgAAl4QSBrdgsVj02muv6f/9v/+nvLw803EAACgVJQxuo2vX\nrrr++uv1/vvvm44CAECpKGFwK9OmTdPUqVOVlZVlOgoAAH+JEga30rJlS0VFRfFxRgAAp8c+YXA7\nqampatGihTZs2KBrr73WdBwA7oh9wlAE+4QB/3X11VfrhRde0NixY01HAQCgRJQwuKXRo0dr3759\nWr58uekoAABcFCUMbqly5cp66623NHbsWJ09e9Z0HAAALkAJg9uKjIxUo0aN9N5775mOAgDABViY\nD7e2Z88e3Xzzzdq1a5dCQ0NNxwHgLliYjyJYmA9cRLNmzfToo4/qpZdeMh0FAIBiKGFwe3/729+0\nfPlyxcfHm44CAIAdJQxuLzAwUG+++aaGDRum/Px803EAAJBECYOHuO+++1S3bl1Nnz7ddBQAACRR\nwuAhLBaLZs2apRkzZujAgQOm4wAAQAmD52jYsKGef/55DR8+XE54UTAAwMNQwuBRnnnmGR0/flyf\nf/656SgAAA9HCYNH8fHx0Ycffqjx48crIyPDdBwAgAejhMHj3HTTTbr33ns1fvx401EAAB6MEgaP\n9H//939as2YNH/ANADCGEgaPFBAQoE8++UTDhg1jWhIAYAQlDB6re/fuuueee/T000+bjgIA8ECU\nMHi0qVOnasuWLVq4cKHpKAAAD0MJg0erVq2aPv30U40aNUrHjh0zHQcA4EEoYfB4HTt21OOPP65h\nw4axiSsAoMJQwgBJL7/8sg4dOqR58+aZjgIA8BCUMECSr6+v5s2bp/Hjx2vfvn2m4wAAPAAlDPiv\nVq1a6dVXX9V9992nvLw803EAAG6OEgYUMWLECDVq1EgTJkwwHQUA4OYoYUARFotFc+bM0dKlS7Vo\n0SLTcQAAbowSBvxJUFCQvvjiCz355JNKSUkxHQcA4KYoYcBFdOzYUePHj9egQYOUn59vOg4AwA1R\nwoASPPvsswoKCtLEiRNNRwEAuCFKGFACLy8vzZs3TwsXLtSCBQtMxwEAuBlv0wEAZ1arVi0tWrRI\nPXv2VLNmzdS6dWvTkQAAboKRMKAUrVq10syZM9W/f3+dOHHCdBwAgJughAGX4L777tPAgQN13333\n6dy5c6bjAADcACUMuERTp06Vt7e3nnvuOdNRAABugBIGXKJKlSrpiy++0JIlS/TPf/7TdBwAgItj\nYT5wGWrUqKGlS5eqW7duqlevnm699VbTkQAALoqRMOAyhYeH66uvvtKgQYO0Y8cO03EAAC6KEgaU\nQdeuXfX222+rb9++OnLkiOk4AAAXxHQkUEYPPPCAfv31V0VFRWn9+vUKCAgwHQkA4EIYCQOuwPPP\nP6+OHTvq3nvv5TMmAQCXhRIGXAGLxaKZM2fK29tbgwcPVkFBgelIAAAXYbHZbDZHvHF0dLSysrKU\nlpamiRMnqlmzZvZzn3/+uRITE3X48GEFBAToww8/lMVisZ9PS0uTJIWEhDgiGlDucnNzFRkZqaZN\nm+qDDz4o9vMMwA1ZLJJjfn3CBZW1tzhkJCwuLk6bN2/W9OnT9eKLL2ro0KHFzj/33HMaPXq0FixY\noF27dmnp0qWOiAFUmKpVq2rJkiXavn27xo0bJwf92wYA4EYcUsJiYmIUEREh6Y/L+Xft2qXs7Gz7\n+d27d6tevXqSpKuuukqVKlVyRAygQgUEBGjFihVas2aNXn75ZdNxAABOziElLCMjQ/7+/vZjf39/\n+1CdJFWvXl2SlJiYKKvVqqioKEfEACpccHCwYmNj9fXXX+v11183HQcA4MQcskVFSEiIrFar/dhq\ntSo0NLTYc/bu3avo6Gh9/fXXjogAGBMSEqIffvhBXbp0kZeXl8aPH286EgDACTlkJCwyMlLx8fGS\npKSkJDVv3lwpKSn2TS3j4+P1xhtv6LPPPlP16tU1Z84cR8QAjKlTp47Wrl2rjz76SJMnT2aNGADg\nAg4ZCevUqZPatWunMWPGKDU1VXPmzFF0dLRatWqlxx9/XLfeeqvq16+vG2+8UQUFBerbt68jYgBG\n1a1bV+vWrVPPnj2Vk5OjadOmcdUkAMDOYVtUXAm2qIA7OXHihHr37q3OnTvr7bfflpcX2/MBLo8t\nKlCEU21RAeB/atWqpdWrV2vLli168skn2dAVACCJEgZUiKCgIMXGxio5OVkDBgxQTk6O6UgAAMMo\nYUAF8ff31/Lly1W9enV179692LYtAADPQwkDKlDlypX16aefqlevXoqIiNC+fftMRwIAGOKQqyMB\nlMxisWjKlCmqX7++brnlFn333Xfq1KmT6VgAgArGSBhgyLBhw/TJJ5/ozjvv1Keffmo6DgCgglHC\nAIMiIyMVFxenKVOmaMyYMcrPzzcdCQBQQShhgGHNmzdXQkKC9u3bp169eun48eOmIwEAKgAlDHAC\nwcHBWrp0qSIiItS+fXtt3brVdCQAgINRwgAnUalSJU2dOlXTp09X79699d577/GZkwDgxihhgJO5\n5557FB8fr3nz5qlfv35KT083HQkA4ACUMMAJNWnSRD///LOaNm2q1q1ba+3ataYjAQDKGSUMcFKV\nK1fW9OnT9eGHH+r+++/XpEmTlJeXZzoWAKCcUMIAJ9enTx8lJiZqx44duvHGG7VlyxbTkQAA5YAS\nBriAq6++WosWLdKLL76oqKgoTZw4UWfOnDEdCwBwBShhgIuwWCx64IEHtG3bNu3Zs0dt27ZVfHy8\n6VgAgDKihAEu5uqrr9Y333yjl19+WQMGDNCQIUN04sQJ07EAAJeJEga4IIvFovvuu09JSUny8/PT\n9ddfr48++kiFhYWmowEALhElDHBhgYGBeueddxQbG6u5c+cqIiKCKUoAcBGUMMANtG7dWj/99JOG\nDx+u+++/X1FRUfrll19MxwIA/AVKGOAmvLy8NHjwYO3du1eRkZG68847dffdd2vHjh2mowEALoIS\nBrgZX19fjRw5Uvv379fNN9+sXr166Y477tAPP/zAZ1ECgBOhhAFuqmrVqho3bpwOHjyou+66S2PH\njtUNN9ygDz/8UDk5OabjAYDHo4QBbq5atWoaMmSItm/frnfffVfLli1TgwYN9Mwzz2jnzp2m4wGA\nx6KEAR7CYrGoR48eWrx4sRISEhQQEKDbb79dnTp10scffyyr1Wo6IgB4FEoY4IEaNmyo6OhoHTp0\nSJMmTdLSpUtVv359Pfvss/r1119NxwMAj0AJAzyYt7e3oqKitGjRIv373/+WxWJRmzZt9MADD7DF\nBQA4GCUMgCSpfv36mj59ug4ePKh27dqpX79+6tGjh2JiYriqEgAcwGJzwr9d09LSJEkhISGGkwCe\nKz8/XwsWLNDrr78ub29vPf/887rnnnvk7e1tOhpgnsUiOd+vTxhS1t7CSBiAi/Lx8dHDDz+s7du3\na8qUKfrHP/6ha6+9VrNnz1Zubq7peADg8ihhAP6SxWJRVFSU1q9fr88++0zLly9Xo0aN9Pe//12n\nTp0yHQ8AXBYlDMAl69y5s5YuXarY2Fht375djRo10ksvvWQfigcAXDpKGIDLdsMNN2j+/PlKSEhQ\nRkaGrrvuOg0ZMoTNXwHgMlDCAJRZo0aNNHv2bO3du1cNGjRQr169dNttt2nlypVcUQkApeDqSADl\nJi8vTwsWLNBbb72lnJwcDRkyRIMHD+a/Zbgfro5EEVwdCcA4X19fPfroo0pMTNS8efO0Z88eXXvt\ntbr33nsVGxurwsJC0xEBwGkwEgbAobKysvT555/ro48+UlpamgYNGqQHH3xQrVq1ksViMR0PKBtG\nwlAEI2EAnFJgYKBGjBihrVu3KiYmRj4+PurXr59atGihqVOnau/evaYjAoARjIQBqHA2m00bNmzQ\n559/ru+++07BwcHq37+/+vfvr7Zt2zJCBufHSBiKKGtvoYQBMKqwsFAJCQn67rvv9N133+nMmTOK\njIzU7bffrh49eqh69eqmIwIXooShCEoYAJdns9mUlJSklStXauXKlYqPj1e7du3Uu3dv9ejRQ23b\ntpWPj4/pmAAlzA2dOHFCKSkpOnbsmFJTU3Xs2DGlpaVpxowZ8vL669VblDAAbuf06dOKi4tTbGys\n4uLilJycrM6dO6tbt27q0qWL2rZtK19fX9Mx4YkoYW7hzJkzWrx4sebOnauNGzeqUaNGCg0NLXYb\nNWqUKleu/JfvQwkD4PZOnDihdevWKS4uTuvWrdO+ffvUsmVLderUSR07dlSHDh1Uv3591pTB8Shh\nLm3r1q36+OOP9eWXX6p169Z67LHH1L9/f1WrVq1M70cJA+BxrFartmzZovj4eG3cuFGbNm1Sfn6+\n2rZta7/dcMMNatKkSan/kgUuCyXM5eTk5OjLL7/U7NmzdezYMT3xxBN69NFH1aBBgyt+b0oYAEg6\nevSoEhMTtXXrVm3dulU7d+7Ur7/+qrCwMDVr1kzh4eFq0qSJGjVqpIYNG6pu3bry9vY2HRuuhhLm\nMvbu3avZs2frs88+U4cOHTRixAj16dNHlSpVKrfvQQkDgBLk5eVp//79SkpKUlJSkg4cOKCDBw8q\nOTlZaWlpqlu3rurVq6fatWurTp069ts111yj0NBQXX311fL392eaE/9DCXNqNptNsbGxeuedd/TL\nL7/oiSee0LBhwxQWFuaQ70cJA4AyyMvLU0pKin777TcdOXJEv//+u44cOaIjR47Yr5I6evSoJCk0\nNFQ1a9ZUzZo1VaNGjQu+rlGjhv1Ws2ZNBQYGluu/tuFEKGFO6fTp05o3b57effddVa5cWWPGjNED\nDzygKlWqOPT7OmUJi46OVlZWltLS0jRx4kQ1a9bMfm7WrFlasWKF/Pz8tGDBgmKvo4QBcDZWq1Wp\nqanKyMhQenp6sVtGRkaxW3p6ujIzM3Xq1ClVr17dXsxq1aplv9WsWVO1atXSVVddVewWHBxc6uXw\ncAKUMKdy7Ngxvffee/rggw908803a8yYMeratWuFjV6Xtbc4bCFEXFycNm/erCVLligpKUlDhw7V\n+vXr7ecfeeQR+fn56fvvv3dUBAAoN/7+/mrSpMllvaagoEAnT55URkaGTpw4YS9tJ06c0IkTJ3To\n0CEdP3682C07O/uCwna+xAUHB9vvg4KCFBgYWOze0f/aB5zNnj17NGPGDC1cuFCDBg3Shg0b1LRp\nU9OxLpnDSlhMTIwiIiIkSeHh4dq1a5eys7MVEBAg6Y+/0JxwJhQAyk2lSpXsU5aX+oshPz/fXtpO\nnDih48ePKzMzUxkZGcrMzFRycrIyMzOVlZWlkydP2u9Pnjwpi8WioKAge0kLDg4uVtzO31/sVrVq\nVda8wSXYbDatXbtWM2bMUEJCgp566int3btXV111lelol81hJSwjI0N16tSxH/v7+ystLc1ewgAA\nF/Lx8bFvEnm5cnNzlZmZqZMnTyozM/OCW3JysrZu3XrB4ydPntS5c+cUFBRU7FZ0pC0wMFDVq1e3\n3wICAlS9enX7uaCgIIocHCo/P19fffWV3nzzTZ0+fVrjxo3TV199papVq5qOVmYOK2EhISGyWq32\nY6vVesFfKvzHCgDlp2rVqqpatapq16592a89c+aMfVTtzyNt579OS0tTdna2Tp06pezsbGVlZenU\nqVP25507d65YWTtf1AICAuTv71/s5ufnJz8/P1WrVu2C+6K3qlWrqnLlyvy+8EA2m0379+/Xzz//\nrJ9//lkrVqzQtddeq8mTJ6tPnz5usXbSYSUsMjJSr732miQpKSlJzZs3V0pKioKCguwjZExHAoBz\nqFKliqpUqVKmEbjz8vLylJWVVayonTp1SqdOndLp06dltVpltVqVmZmpw4cPKycnRzk5OTp9+rT9\nPjc3t9jjubm5OnfunD1f1apV5evrK19fX1WuXNn+9fnj84+d/9rHx8d+f/7m7e1tvz9/q1Spkv2+\nUqVK8vLyst+fv1ksFvv93ZIWL14si8Vywa0k53/n/fn+/NdFb5fyWGFh4QXPKe12/jWFhYXFvi56\n/s+P//mxi50v6b4sr7PZbLJarUpISJCvr686d+6szp0765lnnlHz5s3L/PPpjBxWwjp16qR27dpp\nzJgxSk1N1Zw5cxQdHa1WrVppwoQJWrlypZYuXar//Oc/mjt3rh577DFHRQEAVABfX1+FhISU+5Xt\nBQUFysvL05kzZ5Sbm6u8vLwLbmfPnrXfn/86Pz9fZ8+etd+fPXtWBQUFys/PV15ens6dO6f8/HwV\nFBTo3Llzxe7Pl4bCwkL7cdGicrekjz/++KJFqSibzVasmJ3/uuh9SV8XfezP586Xwcu5FS2Sfy6V\npZ0vWkYrVap0wfMu5XWlPa/o+SpVqmjWrFmqV69euf4sORv2CQMA4HKxRQWKKGtvcf0JVQAAABdE\nCQMAADCAEgYAAGAAJQwAAMAAShgAAIABlDAAAAADKGEAAAAGUMIAAAAMoIQBAAAYQAkDAAAwgBIG\nAABgACUMAADAAEoYAACAAZQwAAAAAyhhAAAABlDCAAAADKCEAQAAGEAJAwAAMIASBgAAYAAlDAAA\nwABKGAAAgAGUMAAAAAMoYQAAAAZQwgAAAAyghAEAABhACQMAADCAEgYAAGAAJQwAAMAAShgAAIAB\nlDAAAAADKGEAAAAGUMIAAAAMoIQBAAAYQAkDAAAwgBIGAABgACUMAADAAEoYAACAAZQwAAAAAyhh\nAAAABlDCAAAADKCEAQAAGEAJAwAAMIASBgAAYAAlDAAAwABKGAAAgAGUMAAAAAMoYQAAAAZQwgAA\nAAzwdtQbR0dHKysrS2lpaZo4caKaNWtmP7dx40bNnj1bgYGBCg8P14gRIxwVAwAAwCk5pITFxcVp\n8+bNWrJkiZKSkjR06FCtX79ekmSz2fTII49ow4YNqlWrljp16qSePXuqadOmjogCAADglBxSwmJi\nYhQRESFJCg8P165du5Sdna2AgADt3btXFotFtWrVkiR17NhRK1euLFbCCgsLlZmZ6YhoAABcuWrV\npLQ00yngJNLT0xUUFHTZr3PImrCMjAz5+/vbj/39/ZX23x/W9PR0BQQE2M8FBATo2LFjxV5fo0aN\nMv1hAACoEMnJphPAiQQHB6tmzZqX/TqHjISFhITIarXaj61Wq0JDQy967tSpUxdMRVauXFnXXHON\nI6IBAAA4BYeMhEVGRio+Pl6SlJSUpObNmyslJUVHjhxRkyZNVKlSJZ04cUKStGnTJt1+++2OiAEA\nAOC0LDabzeaIN548ebLS09OVmpqqyZMnKzo6Wq1atdKECRO0efNmzZgxQ8HBwWrRooVGjhzpiAgA\nAABOy2ElDAAAACVzus1a8/Ly9Oyzz+qFF15Qjx49tGjRItORnMKZM2c0duxYPfvss+rSpYtWrFhh\nOpJTeeCBB/Tqq6+ajuEUDh06pOrVq6tp06Zq2rSphg8fbjqS00hLS9NTTz2lIUOG6KeffjIdxykM\nHjxYTZo0sf+8VK5cWenp6aZjGVVQUKBhw4Zp/PjxevDBB7V06VLTkZyCzWbThAkTNG7cOA0YMEDr\n1q0zHcmY33//Xc8//7zCw8O1bNkySdLx48f1yCOP6KWXXtLTTz+twsLC0t/I5mRiY2NtPXr0sNls\nNtt//vMfW40aNQwncg5r1qyxDRw40Gaz2Ww///yzrVmzZoYTOY8ZM2bYbrrpJturr75qOopTSE5O\ntg0ePNh0DKeTn59v69Kli2379u2moziVN9980/712rVrbY8//rjBNM5h2bJltr59+9psNpstPT3d\nVrduXcOJnMO//vUv27Bhw2w22x9/zzRo0MBsIIPOnDljy8/Pt3Xr1s22bNkym81msz366KO2b7/9\n1maz2WzPPfecbc6cOaW+j9ONhPXq1UvffvutJKlWrVry8nK6iEZ069ZNX375pSQpOTlZLVu2NJzI\nOaxevVqZmZmKjIyUjZl1u3//+98aOnSo7rjjDm3YsMF0HKcwf/58nT17VrNmzVJUVJS+//5705Gc\nwtixY+1fv/LKK4woS7rmmmuUkJCghIQEHThwQJ06dTIdySls3LhR1113nSQpLCxMubm5F2wx5Sl8\nfX3l7V18g4nY2Fj7z0pERISWL19e6vs47GOLrkRgYKAkadq0afq///s/w2mcy2OPPaaEhAR98skn\npqMYd+jQIc2ZM0fz58/X5MmTZbFYTEdyCnXr1tWmTZtUuXJlrVq1SnfeeaeOHj0qHx8f09GMSkhI\nUPfu3TV16lSlpKSoXbt22r9/P3sS/teiRYvUtm1b1a1b13QU41q2bKm+fftqwoQJ2r17tz7//HPT\nkZzCtddeqx9++EHjxo1TVlaWbDabzpw5YzqW0yi6D6q/v/8lFVSnLGGSNHv2bAUEBGjYsGGmoziV\nuXPnKjU1VS1atFBycnKxjW89zVdffaX09HQNGDBAe/bskfTHSOr5T2vwVEX/ddarVy9ZLBYdPXpU\n9evXN5jKvCpVqig4OFiS1KBBA9WuXVvJyclq06aN4WTmFRYW6o033mDt03+98cYb6t69uz7++GNt\n3LhRffr00a5du1S7dm3T0YwaPny4Dhw4oH79+iksLEyVKlVSgwYNTMdyGuf3QfXz81N2drauvvrq\nUl/jdHN9NptN0dHRqly5sv72t78pNjZWyexMrJUrV9ovUqhWrZpsNpvHj/w899xzio2N1Xfffaf7\n779fgwYN8vgCJkkffPCB3nvvPUlSSkqK/Pz8VK9ePcOpzOvYsaN++eUXSVJOTo6ys7PVrFkzw6mc\nw7x58xQZGakaNWqYjuIUrFarCgoKJEk33XSTAgMDdfbsWcOpzPPx8dHbb7+tRYsWycfHRy+99JLp\nSE7h/FKYyMhI+/KP+Ph4RUZGlvpapxsJmzVrlqZPn67atWtr+vTpyszMVGxsrOlYxtWuXVsvvvii\ntm7dqgMHDmjevHnFPhoKOK9r164aO3asTpw4oeTkZH3zzTceX9gl6Z577tGaNWv0zDPP6OTJk/rw\nww9VtWpV07GMy8vL09tvv83awSLGjx+v0aNHa/v27Tp27JhefPFFhYWFmY7lFP7+979r586duvvu\nu9W/f3/TcYx6/fXXlZycrK+++kohISGaOnWqRo4cqfj4eJ0+fVqDBw8u9T3YJwwAAMAAp5uOBAAA\n8ASUMAAAAAMoYQAAAAZQwgAAAAyghAEAABhACQMAADCAEgYA/2W1WnX8+PESz6ekpNg38QSAK0UJ\nA+BWvvnmGzVv3vyyX5eYmKixY8cqLy9P999/vx5//HHNnDmz2HNSU1M1aNAgj/3QYgDli81aAbid\nhg0bXvbHnfXo0UMxMTHy8fHR6tWrdeutt+quu+7S4sWLiz1vx44deumll7RkyZLyjAzAAzESBsAt\nFRQU6KmnntKUKVP0+OOPa/369ZKkAwcO6P7779dbb72lWrVqaeTIkUpMTFT9+vXl4+MjSbr11lvt\n73PmzJli73vDDTdo+/btysrKqrg/DAC35HSfHQkAf6VXr14XfXzVqlXFjj/++GNZLBZNmjRJqamp\nav//27dDllajOADjj7pgcCuCGwoaJiaDxU3EL7DgFxBnMQkDXTJYtuIHUMM+wcuawWRShGmxODDo\nwoIobGh544vMGy4IXr3hgvhyt+dXD384pz1wzllc5OHhgZOTEyYnJymXy1xcXFAsFmm322QymQ/z\nzVhF04IAAAGqSURBVGaTs7Mzrq+vWVlZ+bA2MTFBu91mYWHhew8naaAYYZL+K3/G1t/c3NwwOzsL\nQCaTIQxDXl5e2NzcpFQqsb+/z+rqKktLS9TrdUZGRt5n397eKJVKHB0dcXV19SnCEokEURR936Ek\nDSSvIyX1pfn5ee7v7wF4enoilUoxPj5OMpkkiiLCMCSdTtPr9ZiamuL5+fl9tlarkc/nWV9fp9ls\nEkURjUbjfb3b7TI9Pf3jZ5LUX4wwSX3l+PiYMAzJZrP0ej2q1Sp7e3sEQQDA6ekpMzMzLC8vEwQB\nOzs75HI5bm9vgd8/IGu1GtVqleHhYcbGxtjY2OD8/ByAx8dHUqnUp+tLSfpX/o6UNFCKxSJra2sU\nCgVarRaHh4ccHBwQBAGtVovd3V1GR0e/nO10OpTLZba3t8nn8z+8c0n9xgiTNFAajQaVSoVCocDr\n6ytbW1skk0kA7u7uGBoaYm5u7svZy8tLstks6XT6J7csqU8ZYZIkSTHwTZgkSVIMjDBJkqQYGGGS\nJEkxMMIkSZJiYIRJkiTFwAiTJEmKgREmSZIUAyNMkiQpBr8A4Yel/9AAovYAAAAASUVORK5CYII=\n" } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we look at the resulting coefficients, we see that the lasso shrunk nearly all the coefficients to zero except those on the first and third polynomial. This makes sense, since we ought to be able to capture all the important features of a sine wave on [0, 1] using just\n", "a third degree polynomial, as we saw in the chart above." ] }, { "cell_type": "code", "collapsed": false, "input": [ "print 'Deg. Coefficient'\n", "print Series(np.r_[lasso_fit.intercept_, lasso_fit.coef_])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Deg. Coefficient\n", "0 -0.003584\n", "1 -5.359452\n", "2 0.000000\n", "3 4.689958\n", "4 -0.000000\n", "5 -0.547131\n", "6 -0.047675\n", "7 0.124998\n", "8 0.133224\n", "9 -0.171974\n", "10 0.090685\n" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we'd expect this simplified model does a good job of fitting the data without over-fitting." ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot(x, y, '.')\n", "plt.plot(np.sort(x), lasso_fit.predict(Xpoly[:, 1:11])[np.argsort(x)],\n", " '-r', label = 'Training data lasso fit')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 14, "text": [ "[]" ] }, { "output_type": "display_data", "png": "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\npqbSpsXPlPfaHTx4UBMnTtTvv/+uXr166dFHH9WxY8fsLBcnOd3PXtOmTfXCCy/o0KFD2r9/v+Li\n4sOtEhQAAAKnSURBVOwqFaWoXbu2atQofSKwKrnFZ4Frz549ioiIKP48IiJCeXl5kkwjscjIyOLb\nIiMjtWPHDl+VhtMo77WTpHr16kmSvvvuOxUUFJwy7Ap7ne71GzhwoMaOHVviZxD+obzXbv369WrQ\noIHGjBmj999/X+vXr9err75qV6koxel+9kaPHq2vvvpKLVq0UNu2bdW4cWM7ykQVVCW3+CxwxcTE\nqKCgoPjzgoKC4v+5Tr5t//799OfyI+W9dkVycnI0btw4vffee74uD6dR3uuXk5Oj7OxsPf744+rX\nr5/y8vI0fvx4u0rFScp77WrXrq1atWopLCxMDodDnTt31vr16+0qFaUo7/X75ZdflJaWpn/961/a\nsGGDsrOzNXXqVLtKRSVVJbf4LHAlJSVp+fLlkqTs7Gy1bdtWW7ZsUW5urlq1aqXq1atr165dkqSV\nK1eqR48evioNp1HeaydJy5cv16RJk/Tmm2+qXr16vMv2M+W9fq1bt9bKlSv14YcfKi0tTTExMRo9\nerTNFaNIea9dbGys9u7dq3379kmSNmzYUDx9Bf9Q3ut35MgRHT58WJIUFRWlyy+/XAcPHrSzXJSj\naLlFUZ/RquQWn7aFGDt2rHbv3q3t27dr7NixGjduXPHOmtWrV2vKlClq0KCBLrjgAj344IO+KgsV\nUNZrd++996pZs2Zq3ry5HA6Hjh8/rmuvvVbPP/+83SXjBOX97BX5+eef1blzZ/300082VoqTlffa\nffLJJ5o7d66aN2+uatWqKTU11e5ycZLyXr9p06Zp3bp1Cg8P1969ezVz5szi01ngH1JTUzVz5kx1\n6tRJAwcO1PTp06ucW+jDBQAAYDGfTSkCAACEKgIXAACAxQhcAAAAFiNwAQAAWIzABQAAYDECFwAA\ngMX+Hwyaq1PV7Y/BAAAAAElFTkSuQmCC\n" } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Predicting O'Reilly book sales using back-cover descriptions" ] }, { "cell_type": "code", "collapsed": false, "input": [ "ranks_df = read_csv('data/oreilly.csv')\n", "ranks_df.columns = ['ipfamily', 'title', 'isbn', 'rank', 'long_desc']\n", "print ranks_df.head()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " ipfamily title isbn rank \\\n", "0 9780596000271.IP Programming Perl, 3E 9780596000271 1 \n", "1 9781565923928.IP Javascript: The Definitive Guide, 3E 9781565923928 2 \n", "2 9780596007126.IP Head First Design Patterns 9780596007126 3 \n", "3 9780596009205.IP Head First Java, 2E 9780596009205 4 \n", "4 9780596529529.IP Mac OS X Leopard: The Missing Manual 9780596529529 5 \n", "\n", " long_desc \n", "0 Perl is a powerful programming language that ... \n", "1 JavaScript is a powerful scripting language th... \n", "2 You're not alone.
\\r
\\rAt any given ... \n", "3 Learning a complex new language is no easy tas... \n", "4 With Leopard, Apple has unleashed the greatest... \n" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "# Reverse the ranks, so that 100 is the best seller, and 1 is the worst.\n", "ranks = ranks_df['rank']\n", "rank_rev_map = {i: j for i, j in zip(ranks, ranks[::-1])} \n", "ranks = ranks.replace(rank_rev_map)\n", "\n", "docs = ranks_df['long_desc']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating a term-document matrix from the descriptions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looking at a sample document (back-cover description), we see that there is some html markup we should strip out before processing." ] }, { "cell_type": "code", "collapsed": false, "input": [ "print docs[0]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Perl is a powerful programming language that has grown in popularity since it first appeared in 1988. The first edition of this book, Programming Perl, hit the shelves in 1990, and was quickly adopted as the undisputed bible of the language. Since then, Perl has grown with the times, and so has this book.\r", "\r", "\r", "\r", "Programming Perl is not just a book about Perl. It is also a unique introduction to the language and its culture, as one might expect only from its authors. Larry Wall is the inventor of Perl, and provides a unique perspective on the evolution of Perl and its future direction. Tom Christiansen was one of the first champions of the language, and lives and breathes the complexities of Perl internals as few other mortals do. Jon Orwant is the editor of \r", "\r", "The Perl Journal, which has brought together the Perl community as a common forum for new developments in Perl.\r", "\r", "\r", "\r", "Any Perl book can show the syntax of Perl's functions, but only this one is a comprehensive guide to all the nooks and crannies of the language. Any Perl book can explain typeglobs, pseudohashes, and closures, but only this one shows how they really work. Any Perl book can say that my is faster than local, but only this one explains why. Any Perl book can have a title, but only this book is affectionately known by all Perl programmers as \"The Camel.\" \r", "\r", "\r", "\r", "This third edition of Programming Perl has been expanded to cover version 5.6 of this maturing language. New topics include threading, the compiler, Unicode, and other new features that have been added since the previous edition.\n" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "tag_pattern = r'<.*?>'\n", "docs_clean = docs.str.replace(tag_pattern, '')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "print docs_clean[0]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Perl is a powerful programming language that has grown in popularity since it first appeared in 1988. The first edition of this book, Programming Perl, hit the shelves in 1990, and was quickly adopted as the undisputed bible of the language. Since then, Perl has grown with the times, and so has this book.\r", "\r", "\r", "\r", "Programming Perl is not just a book about Perl. It is also a unique introduction to the language and its culture, as one might expect only from its authors. Larry Wall is the inventor of Perl, and provides a unique perspective on the evolution of Perl and its future direction. Tom Christiansen was one of the first champions of the language, and lives and breathes the complexities of Perl internals as few other mortals do. Jon Orwant is the editor of \r", "\r", "The Perl Journal, which has brought together the Perl community as a common forum for new developments in Perl.\r", "\r", "\r", "\r", "Any Perl book can show the syntax of Perl's functions, but only this one is a comprehensive guide to all the nooks and crannies of the language. Any Perl book can explain typeglobs, pseudohashes, and closures, but only this one shows how they really work. Any Perl book can say that my is faster than local, but only this one explains why. Any Perl book can have a title, but only this book is affectionately known by all Perl programmers as \"The Camel.\" \r", "\r", "\r", "\r", "This third edition of Programming Perl has been expanded to cover version 5.6 of this maturing language. New topics include threading, the compiler, Unicode, and other new features that have been added since the previous edition.\n" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "To create the term-document matrix, we'll use the `tdm_df` function we created in chapter 3, and used again in chapter 4. Again, for comparability with the book, we'll use the stopwords from R's `tm` package." ] }, { "cell_type": "code", "collapsed": false, "input": [ "rsw = read_csv('../ch3/r_stopwords.csv', squeeze = True).tolist()\n", "desc_tdm = tdm_df(docs_clean, stopwords = rsw)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lasso regression\n", "\n", "Our goal is to predict the rank of book $i$, based on what terms appear in its description. That is,\n", "\n", "$y_i = \\beta_0 + \\beta_1 x_{1i} + \\beta_2 x_{2i} + \\ldots + \\beta_K x_{Ki} + \\varepsilon_i$ \n", "\n", "where $x_{ki}$ is the number of times that term $k$ appears in the description of book $i$.\n", "\n", "Let's fit the model with the lasso regularizer, using `LassoCV` to find the best value of the lasso parameter. Again, we'll let `LassoCV` do our cross-validation, instead of doing the explicit training-testing evaluation in the book.\n", "\n", "*Note*: We're running 10 CV folds, which can be a bit slow to run. If it's too slow, it's ok to turn down the value. This also may throw a convergence warning sometimes." ] }, { "cell_type": "code", "collapsed": false, "input": [ "lasso_model = LassoCV(cv = 10)\n", "lasso_fit = lasso_model.fit(desc_tdm.values, ranks.values)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we look at the RMSE from this model, we can see we don't do a very good job. The regularizer essentially doesn't find any of the covariates worth keeping." ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot(-np.log(lasso_fit.alphas_), np.sqrt(lasso_fit.mse_path_), alpha = .5)\n", "plt.plot(-np.log(lasso_fit.alphas_), np.sqrt(lasso_fit.mse_path_).mean(axis = 1), \n", " lw = 2, color = 'black')\n", "plt.ylim(0, 60)\n", "plt.xlim(0, np.max(-np.log(lasso_fit.alphas_)))\n", "plt.title('Lasso regression RMSE')\n", "plt.xlabel(r'$-\\log(\\lambda)$')\n", "plt.ylabel('RMSE (and avg. across folds)')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 27, "text": [ "" ] }, { "output_type": "display_data", "png": "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\n9T6tsN3c3CwqKipEOp3uMmS1traKAw44QEiSJCRJEnvssYd4+OGHtzn+yJEjhcvlEjNnzhQzZ84U\nw4cPZ8gi6iU2FxINMb/4xS/wyCOPQNM0vPXWW1i8eDEA2FfATZw4EVVVVfjVr36FK664Au3t7fYV\nZXvssQd8Ph8uvvhi/PrXv4aqqjj//PMBmFehCSFw0EEHFb3ewQcfDCEEnn322W7LJIQAAJx77rmI\nRCIIhULYY4898MILL0DTNFx33XX2lWn77bcfamtrkUwmAXT0E9I0zT6epmldNovNmTMHhxxyCADg\nO9/5DjRNw8svv4z33nuv6Oq3d999FzU1NWhoaMDcuXMhSRJOOOEE3HfffSgtLcVJJ50EAPYVnAcd\ndBAee+wxjB49GkceeWS377Onc/Tcc891+1yv1wsAdhNnT04//XSsXbsWH374IXw+H0466SS0trZ2\nu/8PfvADSJKERx55BACwdOlSHHXUUfD5fF3uH4lE8Oqrr+KRRx7BlClT8N577+HUU0/FUUcdBV3X\nt9n3gw8+wAcffIBXXnmly35aRLQthiyiIaalpQWXXXYZJk2ahL/+9a+YPn160ePhcBhvvvkmDj74\nYPzud7/D6NGj8fjjjwMARo0ahddeew319fX46U9/inHjxuGNN94AADQ2NgLANh29rf4832asqC1b\ntgAAHnvsMftD+oMPPsDmzZvxj3/8AwBw8sknQ1EU/Pa3vwVgDk3w+eefb9PPrLtzoes6TjvttKLj\nr1u3Dps3b8bo0aMxd+5cPPPMM6iursYFF1yAqVOn4tNPPwUAnHTSSViyZAkMw8CJJ56IuXPnbtNH\nqVBP58h6vC/V19fjvvvuw4YNG/DHP/6x2/1233137L///vjb3/6GTCaDhx9+GKeeeup2jy1JEk46\n6SSsXr0aDzzwAPx+P5555hk88MAD3T5n/PjxeP/997/1+yHalTBkEQ0BqVQKTz31FDKZDPbee2/8\n85//xBtvvIHbbrsN++677zb7jx8/Hi+88AKeffZZhEIhnHLKKXYA2HPPPbFy5Uo8/PDDSCaTOP74\n46HrOqqqqgAAzc3NRcey1qurq79xuSORCABg3bp13e4ze/ZsPP/883j88cdRX1+Pe++9F6+//jrm\nzp3b4/FLS0shSdJ2jw8A3/ve9/DJJ5/g9ttvx/r164s65Z9yyin4/PPPce2112LFihVF40h15sQ5\n6o0DDzwQtbW1eOmll7a738KFCxGLxXDHHXdg3bp1dq1fZ+l0GhdddJFd+ylJEs4880zce++9AFB0\nBWN3WltbtxvGiIghi2hIWLVqFS6++GKsWrUK69atw4IFC7Dbbrt1ue+TTz6Jm266CYAZLn77298i\nl8uhqakJd911l928uHDhQlx99dVoaWlBKpXCEUccAQB4+eWXi473yiuvQJZl+/Fv4uCDDwYAuyat\nO5MmTcLWrVvx0Ucf4YknnsDee+/dq+OHQiHstddeeOGFF+zmx86uueYaPP/881AUBRdddBHOOuss\nfP311wCAM888Ex9//DH8fj9uuOEGHH744fZjXXHiHPWGJEn47ne/i3feeQe5XK7b/U444QS4XC5c\ne+21dvNhV7LZLO666y5s3LixaLvVRDtx4sQey/T+++/jzjvv/AbvgmjXw5BFNIgYhgGgo4+TxRrp\ne/To0XC5XFi5ciWEEMhms/Zl+9Zz29ra8Oyzz0JVVQDARx99hLFjx2LKlCloamrCs88+C2Fe9ILV\nq1fjgAMOQDgcxne+8x0sWLAAd999t92ctmzZMjzyyCNYtGgRxo8f3225rfJ2LvekSZNwzjnnYMmS\nJViyZIm9/c0338Q555xjr7/66quIRqOYPn06jj76aNx4441Fo5tbx+58fAC45ZZbkM1msXDhQqTT\naQBm0+aFF16ITz/9FJs2bcKLL74IAFBVFWvWrMFRRx0FAPjyyy/x6quvAjD7Sq1fv95+rPN7A9Dr\nc2Q9x/qZbO8cdZbNZgHAfi+W0047DfF4HNddd12XxweAiooKHHbYYcjlckVNhdZ+nftavf766/Zy\nc3MzbrjhBkyZMgVnn322vV3X9S7L/Nlnn233fRAROIQD0WDxxz/+UYwePVrIsiwikYh9NdfMmTNF\nVVWVfZXb/fffL2pra8XUqVPFeeedJ95++23h9XpFJBIRl1xyiVi2bJmYPXu2qK2tFXPmzBFHHXWU\nfdXb3//+d1FfXy+GDRsmZs+eLU4++WTR0NBgl0FVVXH99deLCRMmiOnTp4spU6aI//3f/91uuR97\n7DExYcIEIcuyGD16tPjhD39Y9Liu6+KWW24R48aNE2PHjhV77bWXOOGEE+yr/b7++muxYMECcf75\n54vrr79eHH/88SIUCgmPxyOefvppEY1Gxbx584SiKCIQCIhDDz20aERyIcxhFA488EBRU1Mj9thj\nDzFv3jxx6623inQ6Le655x4xbtw4MXLkSDFr1ixx4YUXing8LoQQ4vrrrxd1dXVi3LhxYubMmeKn\nP/2p0DRNCCHEUUcdJXw+n1AURRx88MGisbGxV+fojjvuEKNGjRKyLIv6+nrxxhtviGXLlonJkycL\nWZbFmDFjxJIlS7o8l7fccovwer1ClmUhy7I45JBDih6/+eabRVlZmaioqBD33nuvmDhxopBlWUyc\nONEeomLJkiVi0qRJ9nMuv/xyUVpaKmRZFuFwWFx44YUim82KU089VYwZM0aMHj3a/j372c9+Zp+b\nr776yv65Wlc4Fk6BQEDMmjVru78bRLs6SYgevlYRETlov/32w8iRI+2r4gCzA/nUqVOx995746mn\nnhrA0hERfXsupw7c1NSE66+/HrlcDmeccQYmTpyIyy67DLvvvjtisRhuu+023jqEiLBq1SrMmDGj\naFtNTQ0qKiowbdq0ASoVEdGOcyTlaJqGE044ARdccAHuv/9+7L///rjiiitw3HHH4eabb0YgELA7\n3xLRru2QQw7BkiVLsGLFCgBmn6Vf/vKX8Pl8+OlPfzrApSMi+vYcaS588MEHcc8992DmzJnYuHEj\nLrjgApx//vl4//33UVtbiyeffBIPPfRQ0RVHuVwOLS0tUBSlr4tDRINYW1sbbrzxRrz88ssIBAIo\nKyvDMcccg7POOgsej2egi0dE1CVd11FRUbHd/1OONBe+8847OOigg/DLX/4SGzZswOzZs5FMJhEO\nhwGYl113HrSvtbUV0Wh0mzvAE9HOLRKJ7NCNk4mIBkI0GoUkSaitre12H0dCls/nswchHDlyJIYN\nG4Z169YhkUggGAwiHo9vUyhZllFRUeHYYH5ERERE/cmRPln77LMP3nvvPQDmSNWJRAKnnnoqli1b\nBgBYvnz5du8PRkRERDTUOdInSwiBRYsWwePxIBqN4pRTTsHs2bOxaNEi1NXVIZlM4o477ii6utC6\nLxprsoiIiGiw601uGTTjZDFkERER0VDRm9zCgaqIiIiIHMCQRUREROQAhiwiIiIiBzBkERERETmA\nIYuIiIjIAQxZRERERA5gyCIiIiJyAEMWERERkQMYsoiIiIgcwJBFRERE5ACGLCIiIiIHMGQRERER\nOYAhi4iIiMgBDFlEREREDmDIIiIiInIAQxYRERGRAxiyiIiIiBzAkEVERETkAIYsIiIiIgcwZBER\nERE5gCGLiIiIyAEMWUREREQOYMgiIiIicgBDFhEREZEDGLKIiIiIHMCQRUREROQAhiwiIiIiBzBk\nERERETmAIYuIiIjIAQxZRERERA5gyCIiIiJyAEMWERERkQMYsoiIiIgcwJBFRERE5ACGLCIiIiIH\nMGQREREROYAhi4iIiMgBDFlEREREDmDIIiIiInIAQxYRERGRAxiyiIiIiBzAkEVERETkAIYsIiIi\nIgcwZBERERE5gCGLiIiIyAEMWUREREQOYMgiIiIicgBDFhEREZEDGLKIiIiIHMCQRUREROQAhiwi\nIiIiBzBkERERETmAIYuIiIjIAQxZRERERA5gyCIiIiJyAEMWERERkQMYsoiIiIgcwJBFRERE5ACG\nLCIiIiIHMGQREREROYAhi4iIiMgBDFlEREREDmDIIiIiInIAQxYRERGRAxiyiIiIiBzAkEVERETk\nAIYsIiIiIge4nDjol19+ienTp6OmpgYAcMghh+Cmm27CpZdeirq6OsRiMdx2222QZWY8IiIi2jk5\nlnIWLFiAzz//HJ9//jnuueceXH755Tj++ONx8803IxAIYPHixU69NBEREdGAcyxkffjhhzj33HNx\n9NFH46233sILL7yAfffdFwAwd+5cPPPMM069NBEREdGAc6S5cMSIEXj77bfh8Xjw4osv4phjjkE0\nGkU4HAYAhEIhNDY2OvHSRERERIOCIzVZLpcLHo8HAHDYYYdBkiQMHz4c8XgcABCPx1FbW+vESxMR\nERENCo6ErHvvvRd33HEHAGDDhg0IBoM44ogjsHz5cgDA8uXLceSRRzrx0kRERESDgiPNhfPmzcOl\nl16K5uZmrF+/Hk888QRGjRqFRYsWYfny5UgmkzjjjDOceGkiIiKiQUESQoiBLgQANDU1AQCqq6sH\nuCRERERE29eb3MKBqoiIiIgcwJBFRERE5ACGLCIiIiIHMGQREREROYAhi4iIiMgBDFlEREREDmDI\nIiIiInIAQxYRERGRAxiyiIiIiBzAkEVERETkAIYsIiIiIgcwZBERERE5gCGLiIiIyAEMWUREREQO\nYMgiIiIicgBDFhEREZEDGLKIiIiIHMCQRUREROQAhiwiIiIiBzBkERERETmAIYuIiIjIAQxZRERE\nRA5gyCIiIiJyAEMWERERkQMYsoiIiIgcwJBFRERE5ACGLCIiIiIHMGQREREROYAhi4iIiMgBDFlE\nREREDmDIIiIiInIAQxYRERGRAxiyiIiIiBzAkEVERETkAIYsIiIiIgcwZBERERE5gCGLiIiIyAEM\nWUREREQOYMgiIiIicgBDFhEREZEDGLKIiIiIHMCQRUREROQAhiwiIiIiBzBkERERETmAIYuIiIjI\nAQxZRERERA5gyCIiIiJyAEMWERERkQMYsoiIiIgcwJBFRERE5ACGLCIiIiIHMGQREREROYAhi4iI\niMgBDFlEREREDmDIIiIiInIAQxYRERGRAxiyiIiIiBzAkEVERETkAIYsIiIiIgcwZBERERE5gCGL\niIiIyAEMWUREREQOYMgiIiIicgBDFhEREZEDGLKIiIiIHMCQRUREROQAl9MvcPLJJ2PixIlYtGgR\nLr30UtTV1SEWi+G2226DLDPjERER0c7J0ZRz66234osvvgAAXHHFFTj++ONx8803IxAIYPHixU6+\nNBEREdGAcixk/etf/0JbWxuOPPJIAMDzzz+PfffdFwAwd+5cPPPMM069NBEREdGAcyRkffnll7j/\n/vtxww03QAgBIQRaWloQDocBAKFQCI2NjU68NBEREdGg4EifrL/+9a9oaWnBggULsHbtWgCAEAKJ\nRALBYBDxeBy1tbVOvDQRERHRoCAJIYSTL3DDDTcAABoaGvC9730Pxx13HK666ipMnDgRZ511lr1f\nU1MTAKC6utrJ4hARERHtsN7kFsevLgQASZJw8803Y9GiRVi+fDmSySTOOOOM/nhpIiIiogHheE1W\nb7Emi4iIiIaK3uQWDlRFRERE5ACGLCIiIiIHMGQREREROYAhi4iIiMgBDFlEREREDmDIIiIiInIA\nQxYRERGRA7Y7GGkul8Pzzz+PL774AtlsFiNHjsQhhxyCqqqq/iofERER0ZDUbU3WG2+8gT333BOP\nPvooNm/ejPb2drz44os49NBDceedd/ZnGYmIiIiGnC5rsuLxOB544AGsXLkSHo9nm8evu+46fPLJ\nJ6ivr3e8gERERERDUZe31dm6dSuy2SxGjBjR5ZMymQw2bNiAiRMn9llBeFsdIiIiGiq+9W11qqqq\n7IB1wQUX4J133sFTTz2FmTNn4qGHHoLP5+vTgEVERES0s9lux3cAqKysxKxZszB16lT8/e9/x+LF\ni/ujXERERERDWo9DOKxduxZHH300FixYgOHDhyMajfZHuYiIiIiGtB5rsu6++24sW7YM3//+9/HW\nW2/hwAMP7IdiEREREQ1t3YasBx98EAAgSRKEEHjkkUcghMC//vUvnHzyyf1WQCIiIqKhqNuQ9dRT\nT2Hq1Kl4/fXXccABBwAAhBBobm7ut8IRERERDVXdhqx77rkHFRUVuPHGG3Httdfa288+++x+KRgR\nERHRUNZtx/eKigoAwGeffYbXXnsNra2t+Oc//4k33nij3wpHRERENFT12PH9xhtvxLnnnosVK1ag\nrq6Ot9QhIiIi6oUeQ9bo0aPx0ksv2ev//ve/HS0QERER0c6g25B1zjnnQNf1bbavWbMGK1ascLRQ\nRERERENdtyErEongqKOOgnVrQ2soh7///e/9VjgiIiKioarLG0R3tnbtWnz88ceYPn06JkyY4EhB\neINoIiIiGiq+9Q2iC/3hD3/AggULsGTJEsyfPx933XVX35WQiIiIaCfVY8f3L774Ap988om9fskl\nlzhaICIiIqKdQY81WURERET0zfUYssaOHYtp06bh2GOPRX19PUaPHt0f5SIiIiIa0rrt+H7FFVfg\nN7/5DeLxOL7++musXr0a9fX1qK+vd6Qg7PhOREREQ8UOdXwfPnw4AOA3v/kNJk+ejBNPPBH19fVF\nA5MSERERUde67fg+YsQIzJgxAxs3bsSSJUvs7e3t7Whtbe2XwhERERENVT2Ok/Xcc8/h8MMPt9ef\neuopHHXUUX1eEDYXEhER0VDRm9zSq8FI+wNDFhEREQ0VfTIYKRERERF9cwxZRERERA7oMWRdc801\neOedd/D2229j/vz5eP755/ujXERERERDWo8hS9d17LnnnjjnnHNw/vnn46mnnuqPchERERENaT2G\nrC+++ALnnnsu9ttvPxxxxBHwer39US4iIiKiIa3HkHXjjTdi2rRp+O1vf4t//OMfvPqPiIiIqBd6\nDFlLlizBvvvui08++QR/+tOfMGPGjP4oFxEREdGQxj5ZRERERA5gnywiIiIiB/QYsn7xi1+wTxYR\nERHRN9RjyBo2bBgaGxtx0kkn4Z133sEFF1zQH+UiIiIiGtJ6DFk/+clPUFpairPOOgvBYBA/+clP\n+qNcREREREOaq6cdxo8fj6uuuspev+mmmxwtEBEREdHOoMearLVr1+Ldd99FNBrF22+/jbVr1/ZH\nuYiIiIiGtB5rsq688kqcc845WLVqFaZOnYo//vGP/VEuIiIioiGtx5C1ZMkSPP300ygvL++P8hAR\nERHtFHpsLnz//fdRVlZWtE5ERERE29djTVYoFMKhhx6KkSNHAgDWrFmDFStWOF4wIiIioqGsx5AV\niURwySWXAACEEHj22WcdLxQRERHRUNdjyPp//+//we12Y9SoUQDMmi0iIiIi2r4e+2T96Ec/wr/+\n9S97/c9//rOT5SEiIiLaKfQYsg466CCcffbZ9jrHySIiIiLqWY/NhZs2bcJFF12EMWPG4LXXXkNN\nTU1/lIuIiIho0Mlms2hra8P69esxduzY7e4rCSHE9nbQNA1/+tOfsGrVKkyZMgXnnHMOPB5PnxYY\nAJqamgAA1dXVfX5sIiIiot7QdR3RaBRtbW3bzNva2qBpGiKRCDweD4455pjt5pYeQxYAbN68Gaqq\nAgCWLl2Kyy+/vO/eTR5DFhEREfWHXC6HtrY2tLa22nNrORaLoaSkBJFIBJFIBGVlZUXzQCAASZJ6\nlVt6DFnz589HU1MTYrEYqqqqEI/H8e677/btuwVDFhEREfWdTCZjB6iWlpaiIJVOpxGJRFBeXm7P\nram0tBSKovR4/N7klh77ZM2ePRs///nPcfvtt+PHP/4xHnrooW/wFomoJ7quIxaLob29HdFoFOl0\nGkIIGIZRNO+8zeVyoayszJ56+4+BiGhnkclkigJU4aSqalF4qqurw4wZM1BeXo6SkhJIkuR4+XoM\nWRs2bMAzzzyDzZs3Y+nSpXj00Udx2mmnOV4wop2Fpmn2tycrSLW3t9tTKpVCOBxGaWkpSktL7apo\nWZaL5pIkwe1229tUVcVXX32F1atXo62tDfF4HMFg0K7Wtqby8nJUV1fD7/cP9KkgIvrGstmsHZxa\nWlrsUNXS0gJN01BRUWEHqVGjRmHOnDkoLy9HMBjslyC1PT02F3722WeIxWIYNmwYLr30Uhx++OE4\n66yz+rwgbC6koU5VVTQ3N2Pr1q321NzcjGg0aocdK0iVlpbatU+hUAiy3ONoKj0yDAOxWKyoo2Y0\nGkVrayuamprg9XpRU1NTNFVUVLD2i4gGlBACiUTC7lheOLW2tiKbzdohqqKiwg5VFRUVAxqk+qRP\nVn9hyKKhQtM0NDc3o7GxEU1NTXagisfjqKioQGVlJaqqquxpMAQZIQSi0ahd5sbGRjQ2NiIajaKy\nsnKb8DUYvgES0c7D6mheeJWeNUWjUXg8nqI+UoVTOBwelP+PGLKIdoAQArFYzA4kVkBpbW1FJBJB\ndXU1ampqUF1djaqqKkQikT6pkepPqqpi69ataGxsxJYtW9DU1IQtW7ZAluVtgldVVRVcrh57GBDR\nLkgIgfYkIcbLAAAgAElEQVT2drS2tm4TpKLRKHK53DZX6RVOTgwN5TSGLKJvKJFI4NNPP8WaNWvQ\n0NAAt9tth6nCQLUzhw2r6r4wXDY2NqKlpQVlZWWorq5GMBiEx+OB1+uF1+stWi5cDwaDO/W5ItqV\nCCGQTCaL+kZZU1tbG/x+/zbhyQpVoVBoUNZG7Yg+D1mZTAYffvgh9tlnnx0vXScMWTRQEokE1qxZ\ng08++QRbtmzBhAkTMGXKFNTV1SEQCAx08QYNXdfR3NyMpqYmpNNp5HI5ZLNZZLPZbpeTySR8Ph9K\nS0tRUlKCkpISe9mah8PhAW9OJaIOqqra4am5uRnNzc32uizLdr+owqm8vHxI1kbtiD4PWa+++ipO\nP/10bNiwYbv7ZTIZXH311ZBlGStXrsTVV1+NPfbYA5dddhl23313xGIx3HbbbUVNKwxZ1J+SyaQd\nrBoaGjB+/HjU19dj3LhxrHnpQ4ZhIJlM2kNUFM6t5WQyiXA4bNcSVlVVobq6GpWVlbvcP22i/iKE\nQDweLwpR1nIymUQkEkFlZaXdz9QKU/zi2aFPQtb69esxevTob/TCr776Ku6++248+uijWLZsGc46\n6yzsu+++OOaYY3DcccfhqquuwoQJE4puPM2QRU5LpVJ2sNq0aVNRsHK73QNdvF2WYRhoa2vD1q1b\niy4kaGlpQTAYLApftbW1qK6uHnJ934gGSjqd3qZpz5q8Xu82QaqyshJlZWX8G+uFPglZ3//+9/Gd\n73wHP/nJT6CqKg444ADU1tbi1ltvxeTJk3ssxMMPP4wnn3wSb775Jt5//33U1tbiySefxEMPPYTH\nH3/8GxWW6JvK5XL47LPPsHr1amzYsAFjx47F1KlTMX78eAarQa6r8NXQ0IBYLIbddtsNw4cPx4gR\nIzB8+PB+G1iQaLDpPJixNVlBStf1Lpv3Kioq4PV6B7r4Q1qfjPje0NAAv9+P22+/HbvtthuOPfZY\nXHfddfjd737XY8g688wzsXLlSjzwwAN48sknEQ6HAQChUAiNjY3f5L0Q9ZqmafjPf/6Djz/+GJ9/\n/jnq6uowdepULFiwgP9UhpDCvh+TJk2yt2cyGWzatAmbNm3CRx99hKeffhqSJNmBa8SIERg2bBh/\n1jTkCSGQTqcRj8ftqTBIRaNRJBIJhEKhogGIR44ciVmzZg34OFLUi5B12mmn4ZJLLsGPfvQjrFy5\nEmeffTYkSUI6ne7x4IsXL8aWLVswdepUhEIhJBIJBINBxONx1NbW9skbIALMWo8vv/wSH3/8Mdas\nWYPq6mpMmzYNRx55JPsQ7GR8Ph/Gjh2LsWPHAui4dPzrr7/Gpk2b8Morr2DLli0IBoOoqalBbW2t\nPS8rK+MHDg0owzCQzWaRSqWQTqeRTqeRSqWQSCTsIBWLxRCPx5FIJOB2uxEOh+2prKwMo0ePtgc0\nLikp4YUjg1iPIevdd9/FrFmzsHDhQkyfPh1//etf8corr+D999/v9jnPPfccMpkM5s+fj0AgACEE\njjvuOCxbtgzHHXccli9fjiOPPLJP3wjteoQQ2LJlC1atWoWPP/4YoVAI06ZNwwUXXIDS0tKBLh71\nE0mS7G/wU6dOBWB+kLW2ttrjf33wwQfYsmULstlsUfCqqqpCOBy2h6Qg6i1N0+yQlE6nkclktrtu\nTdlsFl6vF36/v2iybq01YsSIolDFbg1DW499spqamtDQ0IAZM2YAADZu3IgXX3wRxxxzDKqqqrp8\nzqpVq3D11Vdjzpw5+OKLL3DyySdjn332waJFi1BXV4dkMok77riDVxfSt9LW1obVq1dj1apV0HUd\n06dPx7Rp01BZWTnQRaNBLpVK2cGrsbERzc3NSCQSSCQSkGUZwWAQoVAIoVBom2XrQy8UCrHmYIAY\nhoFUKoVkMolkMglN02AYRq8mXde7nDo/pmla0byrbaqqwjAMOyD5fL6iwNR5vfNj7FS+c+iTju+H\nHHIIrrvuOhxwwAF9W7pOGLJoe1KpFD799FOsWrUKzc3NqK+vx/Tp0zFixAg2/9AOE0Igl8vZgSuZ\nTBbNraYca9mqebBCV2HNQyAQsCd+oG5f4Xm3gtP2pkwmA7/fj2AwiEAgALfbDVmWe5wURYGiKEXL\nnSfrMZfLVTTvapvb7bZv1k5DlxACqi6gGgZUzYBqCKi6kZ+EPdcMA5q1X367ZghEW5pxyMTqHQtZ\nr732GuLxON58801UVVVh4cKFGDZsWJ+/2Z0pZAkhoKqqPTDj9iZVVaGq6naPZ/0hS5IEj8cDn89n\nT16vt2jZ6/UO+X/qhmHY/RSampqwevVqrF+/HuPHj8e0adMwbtw41iTQgLFqUwo7I1tTIpFAKpWy\np2w2a9dqFIYva7JqyawpEAjsFOO0GYZR1L/I6mPUVXAqrEG0zkHn82JNfr9/yP9/ox1jiI7wk9PM\nQJTLT9Y2zehYt/fVrSBlQNXMwKTpAi5FgluW4VIkeBQZbkWCW5HzkwSXIsMtd8zdirmvW5ERa21G\nddi3YyFr48aNqKmpwTPPPIO77roLn332GTZu3NjnJ26whSxd1+0P+sJ5Ybt6JpOxR7YuXM5ms1AU\nxb69SE+Ty+Wyg9T2fhxWh0nr9azXLFzOZrPweDxFTR3dTcFgEEII+/ldHdOadF23y9FVGa1tkiR1\n+02xcLIGqSys+reWM5mMfUsWq5/N5MmTebUYDTnWFwbrf0jnqXMNTiqVgtvtLgoW1qCQ1jSQF3II\nIZDNZrcJl4VBKhaLIZVKIRAI2CP6W/OuwhP7HO28hBDQjMIaIQEtXwtk1xZZtUQFQUkzCgNSQUjS\nzX2tIORxmWHICkeegnBkBaXOwcmTD06efFiSd6A2sk+aCydPnoxkMolDDz0Up5xyCg466CBHvkk4\nFbKs6ujOYamnuaqq8Pl8CAQC9rdQa965FsmqQSpcHqiaFuufYGEzR3dTMpmEJElFNWPd1ZBZ3647\nV493XhdC9KrfgyRJ9rfWzvNAIMBvq7RLsr70WKErkUigra3NHom7ubkZkiQVhS5rCgaDRc1jPTVl\n6bpu3wKpq3nnoQOsCYDdNGqFJ2vZmkKhEP+GhxCrdiinGcgVBh6tuEZIMzqaznQhoOWDk25Yjwm7\nWU3TBXRDQJEls0ZI7qgBcslSR02R3BGCrODjLtjmKghPVmAaLM20fTJO1vz583H99df3Sy1Ce3s7\nAoEADMMo6mjYudOhta2rGpeuJpfLtU1YspbLy8u7fMzn8w2aH+Q3URiaKioqtruvEGJIvkeinZUk\nSfb/oK4u5BBCIJVKFYWuL7/8Es3NzUilUkWdvCVJKgpd1rJhGMjlctB1vehm3p3nPp8P4XAYNTU1\nRWGKNcqDmxACWc1ARtWRVg1kNH2b5YxqIK2ayzmrdshl1vJYYcajyEXb3IoMr0tGUFbgUmQokgSX\nIsElm0FJkfPLBc1vLnnwBKKB0qt7FzY0NEBVVQghsHTpUlx++eV9XpCmpiYsXry46J+Cy+Uq6nDY\nufNhVzUwXU3sv0NEu5qurq4zDAOSJNm107v6B+BgI4RZ+6MVTYa5LV9rlNXMkJTJz7NWcMoHq6xm\nwKXI8Ltl+FwK/G4FPrcMn1spWjfnCrwumWHoW+qT5sL58+ejqakJsVgMVVVViMfjePfdd/u2pBh8\nfbKIiIh2lFWzlMzpSOY0JLOauWzNcxpSOR2aIWAYAnK+RkjpNLdqjLwFgcmXD1JFc7eyQ/2MqPf6\npLlw9uzZ+PnPf47bb78dP/7xj/HQQw/1XQmJiIgGAatfktWvSC+oSTL7HVm1SYX9j4r7InV+LKcb\nSGZ1yBIQ9LoQ9LgQ9CgIel2oDnvtbQG3ArdiBirWKO1cegxZGzZswDPPPIPNmzdj6dKlePTRR3Ha\naaf1R9mIiIh6zRr3KJXTkFJ1pHLmlNX0oivUsgWX/quauV03hN0RW1EKa486Om0rhev5/kdel2Ju\nV7Z9zKPICHpc8Lh4EcCuqseQdeWVVyIWi+Hiiy/GpZdeigULFvRHuYiIiIrkNAOxjIpYRkM8qyKZ\n1fNhSrMDlSQBfreCoEeB3+NCwGP1RZLyHbnlgqvVOraxXxI5oVcd3/sD+2QREe3aDCGQyumIZVTE\nM5odqGIZFfGsBt0QCPtcKPG6EfZ1NL/5PQoC+WY31hpRf+mTPllERER9QQiBjGogllWRyGiIZTXE\nMxoSWTNIJXM6vC4ZJT4XSnxulPhcqIsE7HWfW2ZtEw0pDFlERNRnDCGQzGqIZTS0Z1SzNiptLscz\nGhRZQonPhZDXDE4VQQ9GVwQQ9roQ8rng4iCmtBPpNmS99tprAMzB8axBK4UQeOmll3DjjTf2WwGJ\niGjw0QwDLYkcmpM5M0ylrb5SGvxuOV8T5Uap34WasM9u5mNzHu1Kuu2TddBBB2HUqFFYtWoVpk+f\nbm9fu3Ytli9f3ucFYZ8sIqLBSQiBRFZDUzyLxkQWTfEsWpM5lPndqAx5UeY3w1SJz42w1wWXwiDV\nF4QQULUcMmoaWTWNnJaFYRiAEDCEAQEBIQyYn+L5bULkl4W5LER+P1Gwj7m/EAKKrMDl8sCtuOFW\nPHC58nPFDbfLYy/zNknb2qE+WQ8++CDq6upw00034ZprrrG3X3zxxX1YRCIiGkyEEEirOqJpFU3x\nrD0BQHXYi5oSL/YeWY7KkAduhqlvTAiBTC6FVDaBVCaBZDaBVDaBbC6NnJZBJpdGVs0gq5pzl+KG\n1+2D1+2Dx+WDLJv90mRJBmDOrX5qsiQDkgQpvx0SIMG8alLK7ydByu9jtlSpag5aOgZVz5mTloOm\nq1C1HFRdhaar0PQcFNkFl+KGS3bB5cqHMMVtbiuaXJAlBYqsQJFd5h1cZBcUWYEsd2xXZAUuxQNF\ncRUdZ2frc9dtyKqrqwNg1lxt2LABI0eOxOrVq/HCCy/0W+GIiKhvqbqBZFZDIqchkdWRyGpFUzKn\nw61IKPG5UR32YmxlEPuOLkfIy9vwdMcwDOS0LHJqBlktg5yaQU7LIpvLmGEqm0AyE0cqE0cql4Rb\n8SDoCyPgCyHgNadQSRhetx9ejx8+tw8etw9etx+KPPC3hRNC5MOWCs3QoGlm8OoIYRo0PWcvG0KH\nquag6xoMYUA3NOiGDsPQoRu6vW4fMz/phgZFNoNaR4jz2OuFkxXMlKKw58rvX3gMM8gN1HnsseP7\nZZddhkMPPRRbtmyBoii47bbb+qNcRET0DVm3cElkzb5R1jxpXcWX06DqAiGvgpDXhZDH7IC+W4kP\nQa9ir+8KzX0i3+Sm61rBh75Zk5PTsvmaHHO987acmkVWy0BVs8hqWWi6Co/LA4/LrHFyu7x27VPA\nF0JZqNIOVEFvCIoytK45kyTJbDp0eRx9ncIwV1iLZoa44kCm6iqyagZqJlawXdtmHz0/lyTJrIXL\nhzZFccElu4sCmVlb54Ji1dgVBDe34obL5e44hsuNrJqB1+3b/rnr7ThZzc3NKCsrw5YtWzBixIg+\nOaGF2CeLiKh3MvnmPHPKIZpS7VAlSZJ5pZ7XZc+DXgVhrxshr3mD4J2pRko3dGRyKWRyKaSzKaRz\nSWRyaWRySaRzKaSzSahaNl+DoudrTHTohgpAyn+4KnDJ5oerx+W1A4VbMeddbfNatU0uH9wuz051\nTndGHTVnVmjToBtmMNN1DZpRGNLMx8yQpuUDm1kzZ4c/LYf2aBxH7rVwx8bJeu655/C3v/0NuVwO\nALBmzRqsWLGi7945ERFtQwiBWEYzQ1RaRTSloj1jBitDAGV+tz1NqvGhxOdGyDs0b+FiBqUkUpkE\n0rmUXWvU0TeoY7mwv1Amv6/P7YfPG4DfE4TfE4DPG0TIX4qq0t3g8wTgdnnNGop8TYUsK3DJ7My9\nK1Hy/cF6qnn6JqzKoe3pMWRddNFF+PWvf43KykoAYJ8sGjIMw4Cmq/Y/7JyWhabn4HH74PME4PcE\n4FLcA11MImiGgWhKRUsyh5ZkDs1J8+o9j0tGJOBBmd/sHzWhOowy/9AalNMwDCQyMSTS7XZn73Q2\niVSuYzmrZeBzBxDwBuH3Bu2aI/MKNy8CvrB59VtBh2uzNskPr9vPsESDVo8h67vf/S7+67/+y14f\nN26cowUi6klOyyKRNv9pJ9LtiKfbkczEkVOzdn8J85tvDi6lo6rf4/JCkV1QtSzS+eYFWVbgc/vh\n9wbh8/jh8wTsAGYu++FzB/LfhtkkQDsuo+poTeXDVCKHllQWsbSGsM+FiqAHlUEvRpYHUBH0wOce\n+E7PvSGEQDITRzwdRSwVRTwVRSzVZv5tpmPweQII+0sR9IXh9wZRGqrAMO9I+L1BBHwh+NwBBiXa\nKfXYJ2ufffbB5MmT7XWnmgvZJ4ss1iXOsVQU8XQ0H6ZiiKeiiKfboRsaQv5ShPwlCPlLEfaVIugv\ngdfthVvxwuP2wK14ewxF1hg0Vh+Oor4c2RSyajq/nkJGTUM3NPjcAXg9vnzwMkOZx+XtuoNk0dUx\nZl8PfpDsOnRDoD2tojWVQ2syh5b8XNUNRAIeM1CFvKgIehDxuwe0s3lhfxVVK+g4bHX01qwO4AWd\nv/PLWTWDRLodHrcPJYEyhP1l5jxgzkP+UtYY006pT+5dOGfOHJx44omwstjTTz/dR8WjXV0ml0Y8\nXfCtN9WOWKoNsVQUiqygJBBBOFCKkL8UwypGITzCDFU+T6BPapQkSYLH7YXH7UVpsOf9dV1DRk3Z\nwSurZsxOtXoOyWymqIOkpnW+usXsbBn0hc1g6DffVzhQhnA+LPKDaHAyhICqG9AMAU0X5twwipfz\nj+V0A22pHFpTObSnNYS9LpQHPSgPeDClNozygOcbDYUghIBh6EVXWqkFAci+CkvLQTO0okvkDaPg\n0nmhQ9et7dseTwjR8YXA1XFJfGFHb7fL/FsJ+ksKtpk1xGF/qeNXnhENRT2GrD/84Q9F61u3bnWs\nMLTzEkKgPdmKhtaNaGjdiOb2BhhCoCRQlg9TZRheORqTA7MQDpT1aefEvqIoLgSVEgR9Jd/q+bqu\nIW7VyuVr6La0fYV4KopkJg6P22c3qZhj5fjh8/jtfifefF8y1oj1TDfMYJTLT6pmBiDVnkTBYwbU\n/P6Fj2m6gZwuYBgCbkWCS5ahKBJccn5SZLhkCe783FoeXurHtGGlXdZOWeMpmTVA+VrSgtrSwvWs\nmkEml4KAKKoRLeybZI0D1HFpuTlwpSy7oOQHgZRlBYqkQFY6BoHsfDxZ3rmuOCQaLHpsLjz33HPx\nwgsvIJPJIBAIAADWr1/f5wVhc+HOJ5NLY0vbV9jcsgENLRshSRJ2K6/DsIqRqC4b1mc1UjsDwzCQ\nyiaQyPcvy6ppZNQMsrm0PfKz+cGbRk7LwZMfh6erS8sLOwy7882X1m01BIpvsyE63XKjt8wPa1fB\n4H+ujhGhC8ac+bY/XyEEVF0gq+nIaAaymo6saiCjmUEopxnI5uddLZs1MzI8igy3SzLn1roiw61I\n2yy77Mel/HJHgOrqfRReEZfKJpHK5q+MUzNF4yoVznVDzf+cvHZotvsCus25Nx+urcdYw0k0OPVJ\nc2FlZSXWr1+Pe++9FxdeeCH+8pe/9F0JaaeiGzqa27egodUMVe2pNlSXDcOw8pGoHzkHJYEIQ1U3\nZFnO9zHruZbMrA0xb79hNU+qWsGU7/yfTMftW2UU3VoDHaGh+DYbXYeJzoQQ+WYorXjwPyM/3ky+\nadQQOgLeMEoCEZSGylEaiKAkWI6wvwya8KA9o9nDEqRyuhmo1Hyg0gwosgSvS4bXpcDnNuceRYbX\nJcPjkhH0uuxlr2LOrWWli2BkBjezX1FOzSGnpaDpORiGYU66jrQQSBg6hMhvE4bZ1Gbo5hVx2YQ9\nN4cOMK+IC/hC5vAB3hBCvnDR2EodQdgMvfwbINp19BiyotEoli9fjnXr1uHdd9/Fs88+i1NPPbU/\nyjYkGEKY357z37CzWr6JIr9uCEAXZpODLsybduqGgG6Yz7XWhUD+hp6AAQFDWCMSd8yNHsaN7erh\nnv6fb+9x8+5W1rK5ryxJkCVzPatlkEhHkcyYV/mlMjEEvEFEwlWIhKajvCYCQ1bwdRr4+msNQEdT\ns1WBKoRZfyLy792sT+lYlgC7xsHrytc6uMwaB4/1wZqf2802igRF6l1gGIpkWbavghzMMjkNm9tb\nsbm1DRvbo2j8qgnNiS/RlsrAJRkoD/pQFQ6ipqQEpX4/yv0K/CVu+L1u+N1ueFxm7Zh1SwxFdgEQ\nyKlZ5LRMR7NbKotEQW2RNdm1SGp+Xc9Bkc0LEDxur33BgizLkCUZsmQ2mcmyYt8PzlpWZAWRcBWG\nV4wyA5U3yCviiKhHPYasU089Fel0GmeffTZOP/10fP/733esMF80J6F7Mwh4FAQ8Sr/ffNQQAhlV\nR1o1kFH1/LLZXJHOr2fy67l8mNJ0UfRBX/it2q1IkCXzA1/J99dQ8iFFlqX8sgRZLggvdoiRtt0m\nFYeeQtvLE53DV3dRTXT3iACyahbN8Sa0xbaiJW5OkqQgEqrCsKpKlAXrEA6Wwy27ty1cN8z3aJVd\ngiR1hDkpvy4E7L4zVnBNqzra0ypyurB/DoX9aVTdAAC4FBnufOhyyx3NQGbtSEHNiNv8mXldil0z\n4nPJkOV8bQ8wKAObkQ/vVgA3CsJ44XYB2L+DSr7vkLUsf4v3Zd1AOJnTkcrf/y6Z05DKmfNk1txu\nCKDE70KZP4KRNdWYMcocOLPU74auZ9CebEMs1Yr2ZBtyajvSaQ2JpGZ30LY6bZujMWswDA2AZIck\nt+Ix5wU1RiF/aacapI5A5VY8DEVE1K+67JO1efNmxGIxTJo0qcsnxWIxrFu3DjNnzuyzgjQ1NWHF\nl60QvhKkVB3pnA5JAnxuBQG3Gbr87vzkMbe5880CcucPEKnwQwTQDIFkzjxmKqfZx0/m9PyHhYa0\nqiOnGfC6ZPjcCnz51/K5ZHPuNpss/G6l48M4339jMH4Af1uarqI92Yr2ZCuiyVZEE81oT7Yiq2ZQ\nHq5CZeluqCypQUVJDYK+8EAXt1tWx2fzqq/ijs1Zq+9Ovv9ONt9Elcs/llU7+vVYNWpAR3a0ftyS\nfSf7jiAs58OhLHUx72XZBQpCk7FtgLJqPgEzrMsFNYzyNsHdfF3drkEV9rKmC0gSigOXMMO2Yb3v\nfEizalTzm+Bzywh4XAh6FAS9+bnHvH1LwG3OPcrQGTCTiOib6k2frC5DVjabxXnnnYff//73KC8v\nL3osl8vh8ssvxxVXXIHdd9/dscJaHV9T+dqjVD4QpXIa0qpZm6EZhv3BoRldf4gA5oeIFcysWrKA\nx9UR3jwKgm4XvG75W32zH4p0Q0c00YL2ZAuiiRZEky1oT7YinU2iJFCGslAlSoPl9hT2l+3StQB2\nwIDVxCnygQTbNPUKu2apuMm3t93KrZozRbJCVPcBakcZBeFLM4Rdm2gduyggSoW1j7vG3wkRUXe+\ndcgCgI0bN+Kiiy5CIpFAdXU1FEVBc3Mz4vE4fvnLX+LAAw/s98J+G4YQg7a5p7/ouoZosgUtsUa0\nxreiJdaIWKoNIX8pIgVhqixYgZC/dJcOU0RERL2xQyHL0tzcjA0bNkBVVQwfPrxPa68KcQiHvqHp\nKqKJFrTGm9ASa0JrvAmxVBvC/lKUh6tRXlKDinAVIuEqXhpORET0LfXZEA7WzaFpcElnk2hNbEVb\nfCva4s1oSzQjmYkhHChDebgaFSU1GDe8HpFQJQMVERFRLwkhoKoqUqkU0uk0UqlU0XI6ncbWrVtx\n+OGHb/c4PYYsGniqlkMsFTU7oyea0RrfirbEVgghEAlVmpeWV47C1FF7oiQYgSIPjZvKEhER9Qdd\n15FIJBCPx7cJTJ3Dk7VNlmX4/X4EAgF7bi1HIhF7gPbtYcgaJIQQSGXj5mXtyTa0p1oRT0XNy9u1\nDML+UpQEyxEJVWLS7jMRCVci4A3t0n3NiIho12YYBlKpFJLJJOLxOOLxOGKx2DbLqVQKwWAQ4XAY\nwWCwKDTV1tYWBSlr7nZvvwXIai7cnm5D1plnnoljjz0W8+fPt7fdd999uOuuu/Dhhx9+g1NAhcww\nlUA02YJovokvmmxBPBWF2+XNj4odQUkgghFVY1AaKEfQF2aYIiKinZIQArlcbpspm80im83aIarz\nPJlMIpvNwufz2QGqpKQE4XAY1dXVGDduHMLhMMLhMEKh0IBc1NVtyKqoqMCxxx6L//7v/8Ynn3yC\nu+++G+eddx4aGhr6s3xDmqrlzDCVaEY00WIGqkQzJElGJFSJslAlast3x6TdZ6IkGIHH5R3oIhMR\nEfUJwzAQi8UQjUYRjUbR1tZmz+PxuB2mNE2D2+2Gx+MpmrxeLzweD4LBIAKBAGpqahAIBBAMBu1t\nfr9/UF8R323IikTM+8zdeuutuOGGGzBmzJj+LNeQk1UzaI03oTXWhNb4VrTGm5DKJlASiNiBakTV\nGJQFK+D3Bge6uEREg5YwB5sDhAFh5G9qbhj5QeoKliFBMm+hYd5/U5YBWba39dQCIPLHy4+8C0AC\nurkhOHVN13W0tbWhubkZzc3NaG1ttYNULBZDMBhEWVkZysrKEIlEMGrUKMycORMlJSV2iHK73Tvt\nOe82ZD333HNob2+HEALLli1DMpmEEALLly/Hdddd159lHHTS2aQZqPJhqjXWhKyWRSRUifKSagyv\nHIVpo/dESaB8UCdsIuo984PfgJFTIVQNQs3ByGkQqrluqCqEqgKGGQKEbgCGYQYCa66bc2EY9nE7\nPlukjg2FtxcwrFBhALqAEIXHFfYcEiC5XJAUBZLLmlydtrkARYHszm+35i6lYNkF2e0yg4sVPoQw\nw07BCLwdAUVA6Hr+/Zpze13X7WWh68XnKmeeL0PNn8OcBkPNQaha/v0UBJ6iEGXe6BySVTTrfBQE\nsIJzgsL/wYWBquhWDpJ9PAgBWCEtP0GSICmyvc0ckVcuKE++rLIMSHLBcsfcLne370mybh/R5XOK\nQ4ZLHMIAACAASURBVGTBayuKuU2Rix6HohQfewel02k7SBVO7e3tKCkpsUciGDZsGOrr61FWVobS\n0lK4XEOr63dxwC/8G8v/jhkdf8NqSxvcFZHtHq/bdy/LMoJBs8blsMMOgyRJEELA4/H07TsaZIQQ\nSOeSSGbiSKZj5jwTRzLbsS5JkjnmVLgaI6vHY9bY/RAOlO20SZxoZyN0HXoyDSOTgZHNQeRUGLmc\nuZzNdSwXbldVQJIgu91mIHG7O5Y95lx2u+1AI3vc9oef/cEndax3FEYUzwu2CyE6PjjzH8yS0unD\nOf84hIDQdAhNMwONlp90rWO7pkNkMtAT+XVVK57n9zM0DdB12OFDlvNZpCAI2DcbzX/AK4r5wa4U\nfMjnt5uPyfb5cgX8kD3u4nPodue3uXpVC9Xjz9gKgVaglaSO92Pf0WDb17A+ZIvCcdE8/0FrHduw\ngm9HDZtd05a/PVdhjVzHczsCKlQDZoa1jieKlwue01Voh5EPsQWPmSHXACA6gpkVyGQZUAqCWT4w\nakJHWyKJtngMbYkY2uJxtMRiaIvHoBsGKsoiqCgrQ0UkgnGRCPaeNA2R0lK43O6O3wkASOaAZBMy\nmws6htvnuuCcC6MjtBfWVBaeH+vnCNFxPvJ/H8VhH53Oc8HPpfP51I3icG6dXz1fhsLQXFgzWhhi\nZRnJZAJlB+673d/DbgcjbWhowG677Wavt7W1QZZlpFKpou19ZSAGI01nk2iJNaEltgUt8Sa0J1uR\nyibMG836ShDwhRHMT4XrXrePgYpokDJUDXo8AT2VhpH6/+y9WYyk2VXv+//mMeaMyKnGHqonc2hw\n+2IGWfce33OMLQ5HbQtZCHF5AGT5xUJCFpIFvOAHxJuZLITEZCyQEEII2UKWLK78YIRlg5GvG7vb\n3VWVWZVTZMzf/O3hPuzv+zIia67OrBxq/6SttfeOyMiIyIyIf6y19lqxsHEsRFWcgEYReE6guQ5U\n24Zqm1BME6ppQrVMKKYB1RJrxTLFB79ZWE2WR5GcLQ4LL04pZpMp9vb2MNjvY38wwHA4xGAwwCwI\n0KjV0Gk00W420Wo0sdRsolVvwHNsKFAOvLCMFdpnTihVgqj85XfO57cU9ZBoV+fnanEdtRLzZWsv\nzAl8lG2+yi8hd/UAKsV1D257IcysHQjNR/H8vauK7x/72Mewvr6O3//938c///M/46Mf/Sjq9Tr+\n+I//GB/96Ecf6g48CsctsrI8xWC2i8G0HHsgNEO7toxOXRTubHoduLYvC3dKJGcAThnIdAYynoKM\nJyCjCch4Cpok0H0PqusIIXXYOjZU25JflCTnGkophsPhXUN8uq5X4b2lpSV0Oh10Oh20Wi2Z4vII\nvKuK7xcuXMDnPvc5cM7xa7/2a/iTP/kT/PzP/zx+9Vd/9VhE1lFCaF61lSlFVZSGaNe66NSXcan3\nHH7kuZ9CzWnIN1qJ5JTDGQMNIpBJIabGUyGoZgE034PerMNoNuA8exl6qwHN98Q3UonkKSDPcwwG\nA+zt7aHf71djMpmg0WhUQurKlSt47bXXsLS0BMdxTvpuPzXcU2SNRiMAwN/+7d/C93384i/+IgCg\n2Ww+mXv2kFBGMQ72MZjuYn+6i+F0F7N4gobXRqe2jOXWBbxy+TU0PJmELpGcZoSYCoWImkxBJjMh\nqqYBNNuC1qhDb9Rhra3Ae/ka9EZNJHJLJE8BaZpiMBgsCKl+v4/pdIp2u41ut4tut4sf+qEfQrfb\nRbvdPnNJ5+eRe/4F3v/+96PX6yEMQ3zpS19CHMf44he/iP/4j/94kvdvgSSLMA6HGAcDTMIBhtM9\njMMBfKeBTn0Znfoyrq3/EFr+EjRN/nNJJKcNzrnIi5oFILMAdBaK+XRWiSm9WYiplR7cF5+D3qiL\n024SyTmHMYbxeIz9/X0MBoPKDgYDJEmCTqdTialXX30V3W4XrVYLmswVPLXcMycLALa2tmAYBrrd\nLuI4xle+8hWsra3hfe9735HfkfnYZponlZASdohxOABjFE1/CQ2vjabXQbveRcvvwtDP94lHieQs\nwSkDDSPQIAQNApCpEFJ0FoAEIVRdh1bzodU86KVt1KDVpZiSnE4452CMgRACSikopXe9zmEYY1XV\n8vuNKIowGAwwHo/h+z46nU6VK1Xaer0u01tOCErpQoue6XSK6XSK7e1tfOQjH3m8nKzf+Z3fwS/9\n0i+BEIKNjQ0AwKuvvoq//uu/PhaRBQBf+86XASMHYaQSUg2vLdrLeG3Zq08iOQVwzsHTDCQIhScq\nCISgmoXCRjE014Hme9BqHrSaD7N7SQgr3xOlDSSSEyDP87v2tyvXSZJUQuqwVRQFuq5D07QFz9Hd\nPpOUuRIRlmXBsizYtl3Ny9FsNqvL2u022u32A/vlSR4dSin6/T62trawvb2N8XhcCaUHjdlshjAM\n73q7ruvi+vXr9/3d9/Rk2baNWq12x34QBIjj+DEe5v3Z29tDf7KNKxevwrVkrz6J5CS5a1hvWs4D\nQFEqEaWXYsoXIkrzXHEkWiJ5gnDOEcfxQuuWsp1L+YFJCKl62ZWj7HVXq9XgOE4lpA5bmdN7ukjT\ntPr7jsdjDIdDbG9vY2tr646xs7NzV+/jw6IoCnzfR71eXxi1Wg2f//znH8+T9elPfxqDwQDve9/7\n8LGPfQz1eh0A8E//9E+PfUcfRLexCs+uH9vtSySSRTjnoLMQ+WAEMhyBTOfCeoZeeZ/0mg/r0hrc\nmg+95kO1ZIhe8uRJkuSOPnjzc03TFlq49Ho9XLt2DY1GoxJR8gv8yZNlGYbDYSV+J5PJgj28Ny+m\nxuMxJpMJkiR5pN9ZVqNfXV1Fu91eEEqHxVO532g0UK/X4XneXUV2meZ0P+6bkwUA3/zmN/EP//AP\nCIIAH/jAB/AzP/MzsKyjb2R8EsVIJZKnCc45WBghH4wWhmoa0DstGO0m9HpNhvUkJwYhZKH33fwH\n62g0AmOsElGlkJq3tm2f9EN4Kilzyspk/bKcxHxZifm9yWTyrn+nYRhotVpoNBrV/8Dq6irW1tbu\nGCsrK8fSreZd1ckqee2117CysoIvfvGL+JVf+RVcu3YN//Zv/3Z091IikRw5nHOwKL5DUCmqCqPT\ngtFpwXvpeeidFjRHfjBJnhyMMUyn04WTc+UIggCNRgPtdrsSUhcuXKg+RKUn6skQhiG2t7exs7OD\n7e1tbG9vo9/vLwip+b/bo6YQaZqGTqdTeYrq9fo95/V6vRLR88O2z0bnlXuKrMFggL/7u7/D3/zN\n3+DWrVv4uZ/7OfzLv/wLXn311Sd5/yQSyUNA40SE/AYj5IMh8sEI4BAeqk4L7gvPwui0oLmyCKHk\nycE5x2AwwNtvv42bN29if38fw+EQrusuVBp//vnn0el00Gw2Ze7TMcE5x2w2q/KUbt++XSWCHxZU\nQRA80m1bllX9LZeWltDr9dDtdu+w5fxp+jvfM1zoOA4+9KEP4eMf/zh+/Md/vFKMX/jCF/Cbv/mb\nR35HZLhQInk4WJIiH44rMZXvj8ApKTxU7cpTpbryW7/kyROGIa5fv463334b77zzDgDgmWeewdWr\nV9Hr9dBut48ldPM0k2VZJZzKMS+kynGvU3KHsSwLq6urWF1dxcrKClZXV9Hr9RZKSsyLKtd1n8r3\nmnfVu/CDH/wgPvCBD9yx/7WvfQ1f/epXj+guHiBFlkRyJyzNkA8Pwn1kMAJLMxjtVuWlMjotaDXv\nqXyTk5w8ZZmfUlQNh0NcuXIFzzzzDJ599ll0Oh35v/mYJEmCvb097O7uVrYUUbdu3arm/X7/oW7P\ndV2sr68v5CuVYmpeUDUasuXcw/CucrL+7M/+DJcvX75j/yQrvksk5xHOOViSgkUxaBSLdjKFqGJp\nCr3dhNFpwb60DuNH3gOtJuvFSZ48eZ7fteHwYDBAr9fDs88+iw9/+MNYX1+XFcjvAecc4/F4QTiV\nY3d3d0FM7e3tYTqdPtTtapqGlZUVXLhwAevr69WYF1Pr6+uo1WR5pCfNPT1ZjDF84xvfwKVLl7C2\ntgYA2NzcxCc+8Ql8+ctfPvI7Ij1ZkvMC5xygFCwn4DkBJwQ8z8GSFDSKQcMYLIpAoxgsSkCjCIph\nQPMcUcSz5h94qOryTVHyZCjrTJXFOSeTyYKYms1maLVaVcPh+XEcJ87PAmWe0+HmzPNjXjT1+33k\nef7Qt6/rOnq9HpaXlytbCqZ5QbW8vCyF7QnwrjxZn/zkJ/H1r38dSZLgD//wD/HpT38anHP81m/9\n1tHfU4nkGOGMgRMKTik4IQBj4JSBMwZQWlix5vRgj1PxM6DFvLyNap+K28kJWJ4XYkoMqAoUXYdq\nGFAMHYqhQ7UsaK4D1XNgtBvQXBeq60BzbdnoWHLscM7R7/dx+/bthUrnQRBU1jRN1Go1+L6PRqOB\npaUlXLlyBUtLS2g2m0/FB3kpnMpE8J2dnWqU693d3UpEZVn2SLdfr9fR6/UWxNNhIVXaZrMpv2Sd\nce75zh4EAb7zne8giiK8733vw5/+6Z/iJ37iJ57kfZM8JXDOhYDJc+HxyUkxL0QLJXMiaU7kkEPC\nh9CD65bznACcQ9E0KLoORdcAVYWilVaFoqrVnqKqgFbua+L6miZEkmNX+9A1cX1NXEcxDKiGDsUw\nxO+RFc8lpwDOOXZ3d/HGG2/gjTfeQJ7nuHLlCur1OrrdLq5evVpVO/d9H/o5FftlmG4+HHc4NLe7\nu1uJqUcpSeB5XnVy7m5jXkh1u104jjzhe9ZgnCOjFDmllSWMYXcywcVG474/e89X1MWLFxFFETjn\n+NCHPoRXX30VURThL//yL/HJT37yyB+E5GzDORcCKc3AswwsnZ9nYFkGnhbzPBfzOSEFTT0QKfOC\nxdAPhEwhalTTEMJH16BoQtCUAkopBNEdokp+G5Q8JXDOsbOzgzfeeAPf/e53wTnHyy+/jNdffx1r\na2vn5rVAKcVgMKgE0/yYF1Ll+lHCdK7rLiSDHx6lcCpP1klOJ5xzpJQiJQQpIUgKmxIhljJKkBBh\nM0KRUoqsWJdzwigY59BVDaamwdBUmJoGXdWQzaYPFFn3zMm6Vw0LRVHeVQ+geyFzsk4XLCdgcQIW\nx6BxApakQhgVoulASKXFOoeia1AtE4ppQrVMqKYJxSrnhpgXlymmUYTSCiH1lNRMkUiOA845tra2\nKo+Voih4+eWX8corr2BlZeXMCCtKKYbDYeVVmreH9/r9PhhjD33bZZhueXm5GvPrcr66ugrf94/x\nUUoeFs45CGOVMEooQZIXQomWwulOEZVUQopAVzXYug7b0GFpOixdg6nrsDVhTU0Te5oGs7jc0nSY\nugZDE/uaotz1NfSucrK+8IUv4Bd+4Rfu2P+Lv/iLx3iqJE+KMun6IIzG7swhmgu3sTQVIiqKweIU\nNI7B4gScMWiOA9Wxobo2VNuCaprQPBdGq3kgnkpRZZoyRCaRPGGiKMK3v/1tfOtb3wIAvPLKK/j4\nxz+O5eXlUyGsKKXY399fEEb7+/sLieHz6+FwiAd0elug3W4viKa7iadyLcN0JwdlDHGeI8pzxDlB\nnOdI5j1LVIiiw96mlBAAEAJJPxBJjmHA0jRYug7XMNByHNi6WNt6cd1irr6L1wHnHDxNwKIQLArA\nohA8CoWNI4R7u/A++DP3vY0H9i58UkhP1iLij5uBhtHciEWu0lyCNSPF6bWs2CdEhMfmQ2lakVdU\nzIXVRYjOtqDaNjTXhurYQli5tvAwnYI3aYlEsgjnHBsbG/jWt76FN998Ey+++CLe+9734sKFC8f+\nmi2TwofDIQaDQVXSYd7DVI4yTPco3iYAaLValTgqQ3N3s91uVxY1PQEY50iIEErxnGiKydy82I/y\nDHFOQBiFYxhwDQNOMexDgqgUTdYhsaQfYZSDcw462AMPA/AsA8+LkWXgeQqeZcDcmiWJOMDk+lBc\nD6rrQXFcqK4H1fWxH8VQa41317tQcnxwykAmU5DxBDQohVQIGsagYQRFU6F5LjTXhea5UD0Hat0T\nuUZlgrWhi/ylYq7oMvQmkZxHkiTBf/7nf+Kb3/wmOOd47bXX8OEPf/ieHpqyJEMYhgsjiiLEcbww\n7rYXBEElpEo7HA4fKbcJADqdTiWO5hPCl5aWFmy320W73YZhyMbkTwLKGKI8F+E3ShDnB6G2+bBb\nQkSILilEVEYJTE2HY+iVYHIMHY4uRFTbceCaxb5uwDWF1+kkv7RzzkF3biP5zrfAkwRaqw3FMAGj\niMTUG1CK+YG1oNjOfU9+q4Vz6H5IT9YTglOKfDQBGY6QD8bIh2OQybQIvzWg1fyiTpIL1StElSnf\nbCSSpxHGGCaTCYbDIb7//e/jm9/8Jt58803UajW0Wi2oqorxeIzRaITxeIzxeIzpdHqHmDqOt3fP\n89Butxdaq8x7mObnvV5PiqYnQJngXYqh0tMU5TmiTHiZoqwM1wmbUzrnUTJg6Rpsw4CtCWvp2sJl\nji7ElG0Y7yoE9yRZEFdZCvs9Pwr90jNH5oh4VzlZkseHZRnIaCKE1LAQVLMAet0X7VDaTTjPXobe\nakI15J9AIjnPEEKwv7+/UC5gZ2enqvRdNk0ejUaYTCZVzaqjEEiWZcHzvIXhui4cx6nsvYbneZWI\nKkVVu92GbdtH8KxI7gfjHFGWIcpzhFmOMMsQ5lkhmAiS/EBIlV4nXdVgGzqcItQ2H55b9v2FUJ1b\niKvzmhJy3OLqUZCf8O8CzjnoLAQZjQsv1RhkPAFLUujNBvRWA0a3A/fFZ6E3GyI3SiKRnBkIIUjT\nFEmSVEU758d0OsVsNsN4PMZkMlmoxVQmcj9sa5TD1Go1NJtNdDodtFotNJtNNJvNhfn8ular3SGo\nnobioWeROM8xThKM4xjjOME4SYSQyjKEWY6E5JUY8kwTrmnCMwzULAs934OtG7CNQkwVuUuaTBM5\nVeKqRIqsh4QlaZE/NRWCajQBGY2hWCaMVhN6qwH7mUsw2k1ovifzoiSSJwTnHGmaYjKZVBW59/f3\nMR6Pq/Ywh8VRGIYIggBxHCPP8zsGIQR5nh+JN0lRFLRaLXS7XfR6vaoJb+kZarVaaLfbC/Nms3lu\nC4M+DXDOEec5RoeE1KiYM87Rcmy0HAdNx8GFRgO+acIzhahyzlBI7qThjIEnMehoH+l3v31qxFXJ\nsbyK0zTFZz7zGRiGgW984xv41Kc+hZ/8yZ/Er//6r+PixYuYTqf43Oc+d89aXCcJy/JKTJHxpLKc\nUOGdatahN+twrlyE3mpAteTpFonkKOCcIwxDTCYT9Pt9bG9vV16h+cTryWSCyWSC6XSKIAgQhiHi\nOH7k9iYPg6qqME0TpmnC8zz4vl9VSK/X62g0GqjX69VerVarxFRZRqDT6UiP0jmEcY5pkmKSJBgn\nB0JqUogpTVHRsG20XQdN28aVVhOvrq2iZdtw5Onth4JzDp7ERdmEuRIKYQAWBWIeRyJ5vdaAde2V\nUyOuSo5FZH3ta1/Dt7/9bXz1q1/Fm2++ife///342Z/9Wbz++ut4/fXX8Ru/8Rv48z//c/zyL//y\ncfz6B8IpE6f4pgHILKgsmUzB0gx6ow6jWYfWqMNbXRZiynXki0IieQgopdje3sbm5iYGg0GVnD0a\njapmw/P7pVh6t4nauq5XOUStVguNRqMSQfN2fl6r1WBZFizLgmma1bxcS2/S0w3nHLM0xSgWwmkU\nxxgWNkhTuIaJhm2j6dho2DZe7C6hYYu5IxP+HwinRAinYCZEVBiCRwFYuY5CUULB86G4PlTXh+p6\n0JttqJ4P1fGguK4oSXRKObbThZPJBI1GA8PhEC+88AIMw8C///u/Y2VlBf/4j/+Iv/qrv8Lf//3f\nV9c/6tOFnHOwKAaZzEAmU5E7NQtApzPQMILmOtDqPrSaD71eO7C+e6pUsERymuCcYzgcYnNzE5ub\nm9jY2MDGxgY2Nzdx8+ZN3Lx5Ezs7O4/dFcJ13TsE0bwwKnOUDidkdzod+L4vvwhJHhnOOWJCMC7E\nUymohlGEcZzA0nW0HActV4T3ytGw7SOt4XQe4ZyDx5EQTcGksFNhZ1PwLBU1p0oR5flQvdrC+n4l\nFE6aEz1d2Cj6+fzu7/4uPvvZz+JTn/oUarUaAMD3fezu7h7Z76JxchDem8yqMJ+iqtAbdWiNGvS6\nD3O1B73ui5wp6b6XSCo451VO09bW1h3j9u3b2N7exvb2NtI0feDttVqt6gh/u93G0tISlpaWqryj\n+aTtRqOBZrOJer0uj/tLjgXOOaI8r3KiyqTzUSxCfQDQtB20HBtt18VznTZaF9bRchxYp/hD/iTh\nnINnqQjnxRFYHBU2LETUBDycAboBtdaA6teg+nXoK+tQ/TpUvwbFPv9OjWP97/n85z8P3/fxiU98\nAp/97GcRBAE8z8NsNsPKysod1//Sl76E5eXlO1z2pTUNA1qaQQ0iqEEMNYhApzNwxopcKZEzZV++\nAL1Zh+bIo8aSpw/OOQghSJIE4/G4ym/a2tpaaJpbtjQpSwg8bE6T4zhYWlrC6uoqLly4gGeeeQbP\nP/88nn/+eVy6dAkXLlyAZVnH/CglkkUIY5gUOVGTJME4npsnCQxVQ9Ox0XQctGwbz3baRajPgXOO\nyxm8GzjnYNMJyPYm2GQEVggqnkRgcSyKX9sOVMeF4rhQbBeq40HvrVWiSnnKvzgdi8jinOOzn/0s\n1tbW8Nu//dv4yle+gpdffhlf//rX8frrr+Nf//Vf8ZGPfOSOn3v++edhGAbSNEUUhhhs3kY0HCIa\njpCMJoimU1BVBTF0EF2DYltodJdQb7dQ13PUlAw1lqBOEtSyuEpEld+OJWcZzjl2d3fx1ltv4fr1\n67h58yZu3bqFfr9flRU4XMk7SRKkafpILU1c10W3262a5K6vr2N9fR2XLl3CxYsXsb6+jtXVVXie\nd4yPViK5N4QxjKIYwzjCMIqrRPNJkiDOc9Qsq8qJatg21ut1MXds2NIj9VDwPAPZuQ2ytQmyfQvg\nHPrqBajtJeiOB8VxoNruA6uhSwTHkpP1R3/0R/jMZz6DtbU1AMBoNMKXv/xl/N7v/R4uXbqEMAzx\nB3/wBwunC/f29hC9+TZamoF8OAGZTKH7HvR2E0anBaPdFMU756qgZ1l215o1h0ez2cTVq1dx5coV\nXLlyRX5ISE4FeZ5jd3e3Cse98847uHHjBm7dulV5msoClaRolPqoOI6DZrNZlQ0oK3Ifni8vL8P3\n/SN+hBLJ4xHlOYaREFLDIj9qWCSb120bHdetcqOato2GbcG3LFn24DHgnIONBoWo2gQd7kPrLkNf\nvQh97SLUelN6+e7Bw+Rknaq2OsF3voeVC+vQW40jq4bOOcfOzg5u3LhReQEOiy5ZwVhyFJQlCPb3\n9xdCceX89u3b2NzcrMJ2k8nkoU/TeZ53R5Pcbrdb5TaVyeHz80ajIRvoSk49OaXYDQJsTWfYmk6x\nPZshpwxt10HHddF2HbQdtyqFIItuvjs452CzCejuNsjeFsjObSimBX31ghBWy2vSQ/WQnDmRBRx/\n70LGGLa2tnD9+nXcuHEDm5ubWFpaqgTXxYsX79lwVfJ0kmUZdnZ2sLW1ddfE8H6/XwmpJEke+nZV\nVUWn01kIzc17mEoxJb1MkvNEkKbYms5wezrF1nSG/TBE23WxXq9hrV7HWr2GmmVJ78kRcYeo2t2G\noijQllehd1dFInqtftJ380zAOQdhHJQJu7u7h5qtS5F1PwghuH37duXlun37NlqtFi5dulSN8qSk\n5PzBOcdoNML169cXxo0bNxZE1MOi63pVfqDT6aDb7S6IqFJIra6uotfryTpMknMJYQyzNK2KdU7T\nFKM4LrxUtBJT6/U6ln0fhjztfWSUyeq0EFRkdwuKpkLrrUHvrUJbXhUJ6edMxHLOkVOOnDHklIMw\nBkI5csqq/XJNmLicMg5CebEuxROr9uj8HuPgHNBUpRrpbIT/9Z5VKbIeBUopdnZ2sLGxgZs3b2Jj\nYwOmaS6Irm63e+7+Qc8zSZLg+vXrePvtt/HOO+/cIahms9l9f15V1apwpeu6aLVa6PV6WF9fx8WL\nF6vQ87PPPoulpaUn9KgkkpODc44gy6q6UtNCSE2SBNMkRZzn8C1RqLNuW2hYwq7W6mg5tnz/PEI4\n52CTEcjeduGt2j4QVcur0HtrUPzaqX/OOedICUOcUyR5YYmYC6HEkJWC6S5rQjl0TYGhqsJqKoy5\nta4Wa02FrirQNQWaokAv14Vw0ovri8vKvUJYKcrC8yjDhUcA5xyDwaAqunjz5k0EQVD1GisLIpZz\nWRDxZBiNRnj77bfvOm7fvn3f3CfP87C2toZOp4N6vQ7LstBut3HlypVKQHW73arGkyxPIHkaKIt0\njuIYoyiuKp6PkwSjKIapa0XvPRtN265O9tUtmYR+nHDOwcbDQlRtCVFlmNCX16D1VqryCacRzjkG\nUYbb4xj9ICsElRgpYdA1FY6hwtY1OIYGu5gbugqzEE3CimFqSnWZripP/LNXiqxjIk1TDIfDhX5q\n5TzPc7RaLXQ6HdRqB98e7vc0l56SMom52WzKZPxDlGL3Bz/4QTXeeuutaj4cDu/5s5qm4fLly7h8\n+TJWV1fRarXgui70ojbO4dN2KysrMgdKcq7JKUWY5QiyFFGWI8gyhFlW2TDLMEszcHC0HAftuUrn\npbCSRTqPD57nYHHRpy8KRZHPKAQLZ6D9XSiWDX15FVpvFfryKlT39L5fRRnBrXGMW+MYW+MEhq7g\nQtNBz7fhmhrsOTGlqWdLmEuRdQIkSVIJryAI7nm9ecVNCMFkMsF4PK6GqqoLoqscS0tLaLVa57Lh\n7Gw2q0K0pdfwxo0blZAaj8f3/FnP83D58mWsra1VVcYbjUYlptI0he/7aDQa6PV6lZjq9XryBJ7k\nXcE5R0YpUkKQUQoFCjRVLfI2VBF2UFWoysN90+acgxeWFbedEIKUkDtsnBOklCDJCQhjYMXPybxO\nHwAAIABJREFUMC5ySTjKubiMcyClBJQxuKYJ3zThVdaAa5jwLROeYaJmmbKR8RHCGVuskJ4mYl4M\nFgWianoUglMq2s24HhTHher6UIq11ulBdU9vGSJCGXZmSSWsgpRivWHjQtPBetNB3T4/dSulyDqj\ncM4Rx/GC6Cob7A4GA0ynUzQajapVyfw4rScjy4KapXA6LKY2NjbuK6IAoFar4erVq7hw4QKWlpYq\nEaVpGmq1Glqt1h097+YbAavy6LdkDsoY4jwv8joockaLXA+K7C7rlBKkRIipA6FDkVECTVVh6zpM\nTQOHSPxmZXItZ6CMVUmzqqJW39hL4VMKKiGKAAUoRBlgaBpsXYel67DnhnVoz9A0qIoihlpYiFwS\npdjXFKW6PSme3j08z4VASkuxlNyxZkkk5mkKxTRFhXTbES1lbFusLacSUYrjQTkjpys555gkBPtB\nin6QYj9IMQgztD2zElVd//yGjqXIOqcQQjAcDrG/v4/BYFDVY9rf34emaVhaWkKv16tGt9s99gKs\neZ5je3sbGxsblYgqbTke1PPOtu2qunjpjarX6/B9v+oEUFYlX1paQrfbreaywKxkHs45EkLECbc0\nrU66za+jLIdtCGFkaBoMVStyPcTaVA/mhqbC0ubFjbYgch7mQ0Qc/2agnFeV+EvxU1pVUaAAZ+ID\n9mmA5xnYbAo2mwgbTKsGxzyNwTkKweQciCfLXlzbthBUln2m+/RxzjEtBVWYoh9kGAQpLF3Dkm+i\n61vo+haWfBOWfv4iLXdDiqynDM45giDA/v4+9vb20O/3sbe3h729PWiatiC8SvH1MLlfcRxje3sb\nt27duufY2dl5YGHNdruNy5cv48qVK1hfX0en00Gz2YTrurAsqxKPWZZVhwna7faCmJJJ5xKgKPya\nZZiWZQLSBLMkxaQQUJMkgQIFddtCzbJQtw5suVeTydkSFEJqOgGdTRbF1GwCkByq34BaqxdNjutQ\na3Uong/VdoFz6hFknGMc5RiEGfbDtLAZTE0phJSFJU8IK9t4OgTV3ZAiSwJAfCDNZjPcunULGxsb\nuHXrFra2trCzs4Msy8AYAyFE9IyMIgRBUOWIlf3xHkSZQL6ysoK1tbVKFDWbTdTrdXieB8YYwjBE\nGIYAsHAyc37IE5pPN5SxhSTsIMsQpKUVQipIU5iajrpdCie7ElANy0bNtmSvOkkFpwQsmIFNJ2Cz\ncWEnoNMJQDKotaYQUbX6gqBSHPfcvxfllGEYZdgPMgzCDIMwxSjK4VkaOp4QUx3PxJJnwTGfPkHF\nGEeeEeQZRZYSMTJh9/b28NxLK/fVLfJd6AThnGM6nWI8HiOKooUGv+X8sE3TtBpZli2s5/dKMRME\nQTXP8/yx7qemaQs5TmUIr0wkb7VaVWkDy7Lg+z48z7vnKMN/5/3NS3InpQdqkqaYxAmmaYJJEcYT\np9pyJCSHN5eQ7ZsiGXu9XhfeqEJYyQKWksNwzsHjCHQ0ABsNQIvBogCq60OtN6DWGtA6XRhXnoNa\nb4gcqKfkvYgwJrxSQYa9WYr9MMUsIWg6BpZ8Ex3PwrWej7ZrwtTPbmjzYWGMI0tzJPH8yKp5luYg\nOYNhaDAsHaapwbT0atQbD86Blp6sIySOY+zt7WF3dxe7u7vY29vDYDC473jcxr+Pg6ZpdwigTqdT\nhQ7nw4jlvNlsAhDtiHRdv2PIZHLJ3YiyDLenUwyiGNM0qSp/z9IUlq6jbommvqUHqmZZlZhyDEOG\n8SQPhDMmvFGVoNoHHQ0AzqG1lqC1l6C2OtCabai1BpSnTJQzzisP1d5MJKWP47wQVBa6voluzULL\nMc9c6YSHheQUSXIgntJ4UVBlaQ7D1GE7BizbgO0YsF0TdjG3bAO6oUG9x/PzMLpFerLuQxRFVXL5\n/Oj3+5WQmh8Pqhx+N3zfr+o2ua4Lx3EqOz93XRe2bcO2bViWBdM0K89ROeb3DnuOPM+DaZpPzTc2\nyZMlyjLcmkyxOZlgczLBLE2xVq9jyXXR83w831mSHijJY1P13xvugw72QAd9sNEAiuNCa3Wgtjow\nX3gPtFbnqfJMHWaa5LgxiHBzGGI/zOCZepGQbuKFZR8d14SunY8vxpxzpAmZ8zxlCwIqjTNwALZt\nwHKMQjiZaC15sB2zElHaMT8fT5XIStO0EkQ7Ozt3iKR+v78gph6l2S8AGIZRNfRdXl6u8pI6nc49\nh0zklpxFojzH7ckEm+MJNiYTTJMU6406LjYa+Olrz6Pn+9IbJXksRMgvBB30D8awD8UwoLW70Do9\nGP/tNWjtJSjm0/3+yTnHIMxwYxjhxjBEkjFcarv44QtNrNTsMx3yEyIqRxwVAirKEccZkihDkuRI\n4xy6ocFxhWCyHRN+zUanWyvWwgt10oL7TIus8jRdGZq7m50fk8nkkW7fsqxKDM2LpaWlpQUxVY5m\ns3nif1CJ5LgYRBHe7O/jrcEA4zipRNWHrj2PZSmqnmp4noFFEXgcVgU1WVxUKo8j8CgASxKAc6Co\n/yWqgQFQFDGgiK3iOlqnB63Thfnie6C1u1Ad9+Qe4CmCcY6daYIbwwg3BxGgAFc7Ln7qmSX0amfr\nxCzJKeIoq0YSZYijXMzjDIapw3GFgLJdE42mi+W1BhzHhOUcvxfqKDhVIms6nYJSekftp7uNsjzB\no3ibdF1Hr9e7q0BaWVlBt9tdEFSue/5Plkgk96MUVt/f30eSE1xb6uC/P/sM1ur1M/Vm/rTBOQco\nFRXG8xw8z4A8Ayc5eJ4DnAGMgzMqRA2jYs0ZwMTgjAGUgBMyZyk4JQAh4OVengHgUBwfqutWFcpV\nvw61uwLF8aA6Yl+IqOpOigXnB+VfCnNWinE+KQhjuD1OcGMQ4uYogm/quNJx8T9fWkbbPd2HiEoh\nFYUpolDYOMwQhxkoZbBdE45rwnENuL6FTq8mvFOueSZE1IM4VYnvV69eRRRFj/RzrutieXm5Ek/z\nthwrKytYXl5Gq9WSidoSyQMYhBHe3F8UVte6S1iv10/1m/nTAmcMLJwdFMksyhLwJFkQVYqmAroJ\nxTChGAYU04JiGKK2k6oVHiQV0FQoiirWqgqoxVpVxXV1HYqmi/ldrLjN0/1BfxYhlGFzHOP6IMTG\nKEbbNXC14+FK20XtlLWmYYwjiTKEQYowSBHPCSpKGBxPCCnXs+D6JhzXguuZMK2zXWfszCW++76P\nWq2Gdru90CqmzG2aH51OB8vLy7LSt0RyBIziGN/b6y8Iq//7uWelsDpBOGOggz2w8RB0WhbKnICF\nAVTbKeo6NaDWG9DXLkB1PCiGCZSiSh4wOHNkhGFjFOH6IMTtcYxuzcLVjof3X2nDNU/+45oxhjjK\nEc4ShLMUYZAgDFJEQQrTMuDXLLi+hVrTwfJ6E65nwrKfbgF+qjxZwNku4SCRnCWiPMeb/X28sbeH\ncZzghe4SXpAeqxOFJQnI9ibI1gbI1q2iIXC3qu9UFsxUtJP/wJUcDUFKcLvwWO1ME6zUbVzteLjc\ndk+0mnqWEswmMWbTBME0RjATHirLMeD5Njzfglez4PlCWOlPSSudec6cJ0sikRwvhDG8Mxjijb09\nbIwneKbdwo9dvIgrrSY0GUp/4nDOwUYD5FsbILc3wCYj6Mtr0Ncuwf6RH4Pq+id9FyVHTJASbE8S\nbE9jbE0SZJRhreHgua6P/36t98RPBHLOEUcZgmmC2TTBbBIjmCaglKFWt1FrOOj0arj8bBeub52L\nPKkniRRZEsk5h3OO29Mp3tjbw5v9AXq+h5d6PXz4hWuwZOuZJw6nVHirbt1EvrUJRTegr1+E/d9e\ng9ZbkV6qc0aQEuxME2xNDkTVat3GWsPBe1YbaD2hxPUy1BcFqUhCL2wwTaDpGmoNB7W6jbWLLdQa\nDmzn6Q7zHRXy1SyRnFMGUYT/2uvjjb09mJqGl3pd/D8/+irqD9EUXHL00NE+snfeRH7jB9DqTegX\nr8J7+Yeh1ZsnfdckR8woyvDWXoDrwxBJzrDWsLFat/HKauNYTwMyxooCnTniKEUUiGT0KEyRRBks\nW5zgcz2zypvyazZMS0qB40I+sxLJOSLKMnyvyLOapSle7Hbxv196CT3/6a2CfZKwJEZ+4wfI33kT\nPEthPHMN3v/839BqjZO+a5IjJsoI3t4P8dZegCineL7r44PXeuh4777TBuccJKfIM4o0zZHGRBTk\nLEecI0lykJzCtHRYtgHHM+H5FlYvNOH6FpxzUhLhrCFFlkRyxiGM4e3BAN/d3cPt6RTPttv4ycuX\ncbnVlLWsToAyHJi//X2QvW3o65dh/+j7oS2vSaF7ziCU4eYwwpv9ALuzFJdbLn7sShurDfuurz3G\nOAihIBlFXtpcDJJR5Bk5WBeiKs8JSM6g6SoMQ4M11ybG9Uy0Ol61Nkz9nn32JCeDPF0okZxByjyr\n7+7u4a39AZZ9Dy8v9/BcpyPzrJ4gZQsYUatqCjoeIt94B2qtDvOZF2BcfkaUVZCcGzjn2J4meHN3\nhnf6ATqWjkt1G8ueCUYKYZQSZLkQTfNCihIGXVehmxoMQ4Nh6NANIZ50Uxd7xWW6ocEo9u7XpFhy\ncsjThRLJOYNzjjf39/Fvm7dAGcMry8v4pff+CGqyB+axwRkTbWJmE7BgWhUBpcEUPJgChgWtVq9K\nLHj/43/JPKszCOcclDBkGUGWEuQZRZYSZBlBnhIEcYbNfohbgxCgDG1Lx8WGDd8xQdMc+1MhiExL\nh+2aqJs6DFObE1TaqeilJ3mySJElkZwBGOf43l4f/7a5CUPT8JOXL+OZdku+Yb9LOKWiv14UgkWB\n6LEXhUJUFYOnSVH8sy5axdQaMJZ6sGp1qH5DVDyXnEoYY4fEEq1E1LyAKvcURYFp6TAtHYapwzQ1\nhJTj1izBbpTjwpKPD7+6jrWWC9PSZQcRyQORIksiOcVQxvBGIa5808T/9ewzuHzGGpFzzpEShoQw\npIQiyQ9ZwpBTBso4SDHEnIFQXu1TxsHukd1w+PnQVAW2rsIxNNiGdjDXVdjhCPZgG0Z/C/psCMvz\noHq+qJjuelC9mui55/lQXQ+K7UKRH6anAsa4yFuaF04ZQVas83JdiClKGAxTeJdMU4dhCeFkWjpc\n353bK7xORUFNQhne3g/xxs4UCed4+bkufrpXO9HioJKziRRZEskphDCG/29nF9+4dQst28ZPX3se\nFxpn40RakBK8vR/gnf0Qs5QgIwy6psLWVVi6CtvQKmvrKtquCUNToKsqdE2BpijCqsWeqkBXxbpM\nJua4i9ia2yKMIyEMSU6RhBHSrVsg25tg27cwU3XstFYxbT6D8fJ7kXEFNVtHwzbQcAzUbR31Yu6Z\nMrxznHDORb5SKoSSEEyLHqc8O/A6kZyJ0FshlgxTrwRUrWEXYqnce/Tw3DjO8V87U7zVD9DzLbz3\nUgsXmo48QCJ5bGTiu0RyisgoxXd2dvDNW7fR9Ty8/9JFrNXrJ323HkiUEVwfRPhBP8AkyXGl7eHZ\nJQ9t14RlqE/0Q4pzDjYZFa1pNkGH+9C6K9DXLsJYuwS1tvh85pRhkuSYxDmmCcE0zjFNckxigoyy\nSoC5pgbX1OAYGlxTn5tr8kN4DkIo8lSUGsjmQnHzeU6lNyrPKXRdLYRRkeg9J5KqsF0hpI46ATzO\nKHZmCbanCXanCYKU4IVeDS+u1FA/ZU2YJaePh9EtUmRJJCcMZQw3RmN8r9/HO8MhLjeb+LGLF7Fc\nO90tVZKc4sYwwtv7AfpBhkst0RpkveFAe4InoTjnYNMJ6N4WyO42yO4WFE2Dvn4Z+tpF6MtrUB7z\nxGVGGKZpjmlMEOcUYUYQZxRRThFlFHFGkRAKS1fhmBpcQ4ehKTA1FYYmPHOGpsJQlWpdXVZ46HRt\n0Vt3Wj1nnHPkGUUSZ0jivBhiPi+mOOMwLQOWfSCQLGsxLGda5Um6J1dygHOOWVF9XYwUUU6xXLOw\nUrexUrPRrZnQZWhY8pBIkSWRnFI459iazfBfu3t4c3+ApmPj5V4P15Y6cM3Te+SfUIYbQ+Gx2pkm\nWG86eHbJx6WWA/0JFTrknIvTfbvbIIWwUlQFWm8N+vIq9N4aFL/2xMQK4xxxTivxlROGnHHklCGn\nHIQy5EzMcyryzDLKivwzsS5z0Rjj0FRlIXyqqwosXavEm6mrC9bQRBjW0FQYpagr7MN62Mpcpyoh\nPBXFLueFVBrnUFUFlmPAcU3YtgHbNUXdJlsIKNPSoenqiQtFxjmClGAc5xhHOfpBip1pAs6BlYaN\nlZqFlYaNtmtKL6TksZEiSyI5ZQzCCG/s7eG/+n0YqoqXel282O2h6ZzuVjf7QYrv7c7w9n6Irm/h\nua6HK23vSJvZcs4BkoPnGXhWjDwt5il4nokw4AmLquOE8SLRnxYCjAlBllOGlAihlhGGjLI7bCnq\nMspAKEOWM6iMQeMcKuOFZVAoBycMnFAwwsByClAm6jIV4TmrqBpuOQYcR1jXNWCaOjRFhVZ43bTC\nA1cKwCf9N8gIE0IqzjCJ82KeY5YQ2IaKpmOi4ehY8oS3qm7r5+L/RHI6kCJLIjlBGOcYxTH2wxD9\nMMI7wyGiLMeLvS5e6nZPfaubJKd4ez/E93ZnyAjDC8s+rvVq8B+xzxmnBDyKwOJIFO6Mo6JsQlDY\nCDxNwPMMiqZBMS3ANKEYxTBNKIYFxTSh1urnSlQdhnMOluVgaQaW5aBZDlXXoLk2NMcGoRx5SpAW\neU1pMp8YTqt5nhFQyqEZKlRDg6ppUHQViq5C1VWohg61vEwXlzEu/mfLk5zV4Hefk+K0J6EHXrvS\ng1Z524p56V27n9eovIQDB6dLK8F52Osnfh/jvDqw0CxGwzXQsA0YsoWM5JiRxUglkicA5xxRnqMf\nhuiHIfbDCPthiGEUw7NMLLkuup6H//OZq7jQaJzq8ATnHFuTBN/fm2FjFONi08H7r7Sx1rDvEDWc\nMfAkFkIpDgsbVTWmqv08h+o4UBxPlERwXKiOB73Rguq4UFwPiuVAMQwo2vk7Is8ZQz6ZIR1OkI0m\nyEZTZOMJaJwKIZWmyOMMWRgjjzMwRQVTVFCooIqKPMlAwhg0TqBYJgzPheE5MHwXZt2DVXNh1T3U\nGz6sVg3uxSbsdh2Wd+ff7Dhh/EBspUVZjsOetuo5ecBX+9JDNh8yXZwrVZj0PIptyflBerIkkkeE\nMobdIMDmZILN8QR7QQjGObqeh67nYsnzsFRY8xSJBs65CLtlKXiaCu9RloIlMcbTAP3hDFvDELrC\nsV4zsVqzYCgcnDGAMYAzMacEPEnAklh4l8r6Uo4rhJTjQnHdal+xnuyH/UlAswz5aIpsPEU2miId\nTZANx8jGU+STAJprA64Pajugpo1cN5FDQ0YVEA5olgm75sLynaoPnWnrwhbFMXVdBbIMJEpAoxgk\nisU8LOZhBBJEyIMQZBYCigLD96D7LvSaV82Nmgfdc8W+70Jzzv/fRyI5DqQnSyI5AhjnQlSNJ9gY\nj7E1naFhW7jUbOKHV1exWvPhmeaRfFBVeUmUAYwClBYih4JTKsRONacifynPgbzIZSIEPM+AuTnP\ns0JQZeKUnWkhVQ2MqIpBrmA/V2A6DjqtGl79oRU0XUuE7VQVUDVAVaCoGqCqgKpCUTUotiPGKRKR\nxwlnDPk0KLxQU+TjA0GVjSdgWQ6jUYdW98EsB9SyQTprSLtXkKgGsozBdk14vgXft+D6FmzHhGWL\n3CftYUNbhg7dcx98f4uwI5mFyGchSBgJOwuR7O4jD4QgI2EEluXQPWdBeBmeC63wlumeW12mWkfz\nf35W4JyLrgCEghECTig4ZeL1pxQnQcvnQ8GhdXF5eWJUVavLFbW06sH1JOcS6cmSSA7BS1E1mWBj\nPMHtyRR128KlRgMXmw2sNxpwH7GVCqcUPIlFOC0pcpLiWOQoFSE3HkfCO6QqgKqLN2VNA1StsCqg\naZXgUXQd0A2Rt6TrohGxYYiwm2FC0Y1ibSKBhu2E4/Y0w+1JDMaB9YaD9aaN9aYDz3y6vm9xzsHy\nXHiBKk9QLDxE856hci9KoLk2FM8DXA/ccsBsG9SykRs2MujIkhwcgOcJEeXVLLieBc+34HjmqW3B\nwggRj7kQXaQQYHkYgQShuKx4LjilQnC5TiXIdMeGoutFbpc2Ny+sJuaKphbiXYgLRVWhaKVwF3Mh\n7BWRmMULLyrn4ssHKy0TlhevKyo8rNW8+GIyv2aEily3Mt8tz6s1zQ7mnORgZE5UUSbum64dPKby\ntVh+dHIuiuNyXu3x4v6Xj2Hh/lePC9XjU1QVqm1Csy1olgXNscR8bqilNXSour7wXKuGLp7jufsp\nhdvxc+YS329PYly9sAbf0mStEskTZZamuDEa4+ZohJvjMRzDwKVGA5eaTVxo1O9aVoEzJjxESSTC\nZ4WAYnFcCKkYLIlE3lKWQbGdg9wk26lCablhIzMdZJqJVDeRcnWhlcx8InKZDFyuOVBVOucQldCL\nz5/qDT8hDGFGsVYXgmq9YaPhGOfuTZhmmRAIs/COUBqNkwMhVcwVRYHuOdBcF5prg+sGmG6C6TqI\naoBqBnJFQ67oyLgKQjkMU4ftGMUwq9BeuXfeGwCzPD8QZNGB5fPChDFwQiqxsjAvxQ8rxBITc85K\noVSEppV5Tw+E0DnkBRJz7UC8aXNiTZvbV1WopgHVMIQthlbO5/dPQKzwQnSxJAVNMtA4AU1S0PRg\nzpIMJEnAkvRABOZ58ZxTcErAcrIgDlVdg2Lo4vEZ4rGVj7F6rMbc82CZ0CwTqmVCNYyDuXkwP8//\n24/DmRNZ/+8P+qBWHWFK4BgaarYO3xItLmqWmJd7pzl5WHL6ySjFrckEN0dj3BiNEOU5LjebuNxs\n4pJlwMsK0ZQmQiQVlqUJeJIcnIazLBE2sxwwywExLOSmjVy3kGkWMsMSwkkxkVBe9OyjVcuXlDAY\nmgrbUGHros9eVSNprkCldsdchYgwKeLzBvNRCzER++J4fds7u/WAOOcgYYRsMEY+DUTYq8w9KkRV\nHkbglC7mG7kOVMeCYlpgmgGq6SCaDqLooIqGjAJpnCNJcpCciqKZtlHVfbIK8TS/d1q9URLJPKWn\nludEeOlyIcJYloORci+/w7tH0wwsLTx8aVaccs1A0wycUCHEHAu64whvm2MLT5tjF/t24YUr94UH\nTj1jaQWcsSo8zHIinkdCFuacEOz1+2i89NzZEVmAUISMc4QpwawYQUIwTQiCNMcsJYgyCs/U4Vla\nZV1DWN/U4Vk6HEN7olWnJacbxjl2ZjNsFsJqezLBBU3BZU3BmsLQyFPw6QRsOgZ0A1q9cZC0bTtQ\nCwvTQgQd/VzFTsKxF2QIMtGfT1MVWLo4sm7poi+fqamwDBWmps0JqQNr6fL/tITECbLBGNlognQw\nRjocIxuMkY4mUDQVVrsJs1kXIqrmQXMdcMsC1QwQ3UTOFGQpQZrkxRBzVVMP6j6VhTNto9qzHeOJ\nVh6XSM4inDHhYYtT4R1OUuFpixPQOAVNChsnIHEKlqSF9y2DomtCiFnmgTCzizQHTTsUAtWg6nrh\nVRSeyNLLWXrpqlDw4fW8Z5RSEaItfnbei1r9HCFgh3PuCAXn/CA8XN63eVuMURJh9X/81NkTWQ+C\nMlHNN8yE4AozgjAtbEYRpqIFhq1r8Cytqpasq4sVke++fvyqyZLTA+Mce+UJwH4fw9u3sJSGWCMZ\nupygwSgMvw610YRWb0JtNKHWm1BrDajWQWFQyjgGYYbdmWjFsTtLAQ4s1y0s12ws1yzUbQOmrkqx\n9BBwzpGPp0gHIyT9EdLBCGl/iHQ4BqcMVrsJvVmHWvOh+DXA88AdT3ie0hxpJaJELSjD1A+8TkXx\nzMoTZYkTerp+tr5FSyTnifIQRhUGLQVZ4R2rBE5ODkKfcyFRMH5nCFhToWj63fcP5fgt5P2VYyF3\nUOQNVuHhQtg9TGj0zIULgaNLfC9bXYQpRUZp1dIipweF7ObXWdEKgxyqmpxTDlVVYGqix5ihKbC0\nwlNReCIsXYVtCGvpwkthGWIuc8ueDJxz9MMQG8MRtrduYXR7A604wGqWoA2O5uoa3OU1aJ0u1GYb\nql+/68k4xjn6sxQbowg70wT7YYaarWOlZgtRVbdQs44+T4MxhjjMEAYp8oxC1RSoxakktRD6qiby\nUdRiT9MUGKb+8CfTjhFeJCczxsEZB80J0sEYcX+IaGeAZH+IpD9Euj8GTBNaow6lVoNSqwO+D+56\nyBUdeU7BKKuqjpt3jIMQnmlJ75NEIjk5nuoSDqqiiFDiuzw1xYsKyKUgKwvsJTlDSkROTUIoJnFe\nzVPCkOZiripKET4qhyZCSMXanNu35+aWIT1o94Nzjv0wwuZwiN2b72CycR2NaIZenuKlZgudi5fh\nLr8H+tIy1EbrvqUGUkJxaxTj5ijCrXEM19RwqeXiRy420fPtI20dQ3KKMEwRzVKEQYooTBHOUiRx\nBssx4Pk2TFMD4xyMFsKFcjDGKgFTXkYpQ54RKKoCw9BhWqLhrmFqRSNesafrWiWAGC1/ns3ddvl7\nGCgrr8cW7eE5Y2IdRiCTGdhsCj4LgCAAC2bgSQLN86C3GjDbTZidFsxXLqDWacH0bOi6Bt3QoOsq\nNF2DYWqVqDrvyeMSieTp4dyKrKNCUZQqbPiolAItJaLvWEYKYUaFCMsowzTJq8tTciDcMsKqxrCW\nLvJ6yvCnb4rkf8/S4Zs6bOP8Vz3mnGMQRdgcj7F1axOTm++gMR1iJYvx3PIqOi9cQ23tovBUWffv\nA8g5xzjOsTGKsDGMMAgzrNRtXGq7+D8utx+5bczdIDlFMEsQBSmCWYKwEFUkp3CLOkmeZ2FlvQnX\nt+C45mN5pDjnoIQhywjyjIqWKvnBPApSEEILj1jhBVOFJ6zc0w218phpqgJVVStPWjnnaYpsf4is\nP0C2P0A+FLlTmmXA7rZhPdeE1bkCq9OE1WnBaNbOXLKrRCKRHDVSZB0j8wLNtx7tZzm+nMGNAAAa\nxklEQVQXIct58ZXkDGFGMEly3J4kCFKCICWgjAvxVYgu39Lhmhq80hpnT4gxztEPQmzNpri9u4vR\nzetoTAdYiwNc8310rj6H2sWfgL68Knrd3QfOOSYJQX+WYneWYHMcg3OOSy0XP3yhibW6Df0xQ26E\nUESB8EYFswRhkCKcJcgzCs+34NVseDUL7W4Nnm/BPuLSCYqiCI+QoQHe0dwmiRMk233EO30E23uI\nd/ogQQR7eQnOShftl67C6nZgtRvQ7Ef8x5ZIJJKniHObk/U0kVNWCa5yRBlFlFEExeEAwjhcQ1sQ\nX74pSmLUbQMNW39soXEUzNIU29MZtmcz7IxHmG3dQjeYYCWeoc0ZWpevon7pKvSVC1Br9fveVpgJ\nQbUXpOgHKfpBBktT0a1Z6PkW1psO2u7/3969x8hV1/8ff545M2fuM7uzs7eWgqUU24CX39cvtuHH\nVwhIvkJ/fJWYGCRiFCIJQtQGCQGMkauEYEwVhX+UxD/wknir8RfAEPhKoEpNCAVEinxrhe52L7O7\nc7+dcz6/P2Z2utvSpfLr2W23r0cymTPnzNme/eTD8sr5fM7nfexhxxhDs9HuDu+1qFWanVe1Savp\ndheejJFKR0mmOqEqnjjx15QxxuCWq9Qnpml0X4cHqviaIeKjQ0QH+jprFomICHCKT3yXxVyvsyBl\nJ3x1nsKstFzKDZdivbM0RjwSIhuPdENXp7J9Nt5Zo+x4PjnX9jwmKhXG5kNVqYRdLnJ6s8pwrUxf\nrUxmZA3xNacTHl2LPTAEloXnG5qeT9v1aS4oPNtyfeptn+lKJ1j5xjCYivZeQ6kocWfpoStjDO22\nR73aol5tUat250tVmtSrLexwiGR3mC+RPDTcF41HTorJ177r0pyapT4xRWOiQGOyQGNiGitkERvK\nExvOExseUKASETlGCllyzHzTWRajWG93Xo02pbrLXKNNtemScGwSTpikY/e2E47d+RzpbEfDh4Yk\njTF4prMqedP1GCuV2T87x1tzRSaqFQawGKmXyVdKZIoz2NEYzdwI9f4RaplBmqFwZw6b53ceNnB9\nLKvzZGckbOHYnYcGDj1EYJNPOgymj/70nzGGVtOlXusGqVqLerXZ2wZIJBziSYd4Mkoi6fRCVSRy\ncswv8j2P1kyR5vQMzalZGtMzNCcLNGeLRPuz3TCVJzY0QGw4TziVOOHvuImInIgUsuS4cH2/N/w4\nfyessz6ZR619aNvzDeGQRcvzKNbrzDUrlJo1yq0G2XCEM7wm65oVhqpFom4Tkx/FH1qDNbwWJ50h\n0g1M8+/O/HY3WB3LchjGGNotj9p8eKp2h/iqTeq1FqGQRSLZGc6LJx0SiWg3VDlETqKn2rxmi/Zc\nicZ0d52p6RkaU7O05oo4mTTRwRzRfH9nUno+R3Swn1BYUzBFRI6XU3oJBzl+wqEQmViITOydiyJ7\nvs/BSoX9M3Psn5tjtlJhMBvlo3aE0xphcpU2oZlx7Fwee3Qj4ZHTsHP59zQk5boerYZLs9lZkHLh\nCt/zocqyrE6ASnYC1OBIphuoHCInQSFk3/NwSxVaxQpuuUKrWO6Uk5l/L1U6JWSyGWKD/UTzOTKb\nz2LoP/pxBvoUpkREThD6ayz/spbnMV4q83axyIFSifFymVw8zrpYlPP8Bnm/Smj/37EiUcKjpxHe\n/EHCw2uwIu9QZNl013tqerRandDUbrm97VbLozVfIqXZBgPO/Gre0UOrfacz8d4dKec4Bqn5Ugy9\nAreHl2DwPA6/F3zEzbDuDr/tLipD4fa2F5ajaOC32oRTCSKZFE42TSSTIjaYI33WGUQyKSKZFHY8\ndtLcdRMROVUpZMm7qrfbjHVD1dvFEtO1KkPJFGvTKf49HiHvhghN/A9+pUJ4ZE0nWP3bVkKpdPfJ\nPJdKqUm9WqFWbVGvtWjUW7SaHu2WC9BbONNxwkSiYRwnTCzukMmGO6Gqu8J3uDvvy2u2OoWBy1Xc\n6izuVI2m69JYWMfK8xa8Du1fVP/K9RbVveqUdVhwzHRKOszX1QqFbayQ3SvLMF+64fCkdcQovDGd\nyvbxKHYiTjgWxcmmsUfy2Ik4dmxBcdV4TBPPRURWAc3JkkWMMczU6oyVy4yVSoyVSpSaTUbTadZl\ns5wWdRiozMHBA7jjbxNKpgiPnkZodB01J0O13AlR83Og6tUWth0ikXKId+c/JZIOsbjTDVT2otpy\nxhjcao12sUK7VO68l6u4lW6gKldpV6pgDOF0kkgqSTidJJyIdwqKLqxj1a1JZdkhQovqWx3ab4XD\nnYU5F3xedP4x1rASEZFTy0k38X32pdcYHh3tDK8YA916aL13/9BnzOLq2vimW2F7QcXt7mueZVmH\nxnIsa8GwTmd/yLYJRSOEog4hJ4IddQg5C7YX7F8tdxqarsvBcoXxcokDpTLjpTLRsM3aTIbRTJrR\nZIqBVg1v/ADu2D/xy0XCw2sIjZ5GPZGnWIe5Qo3ibJVo3CGTjfcCVSLpEE84nYUyu3zXxS1XaRUr\ntIsl2sUKrVKZ9lyZdrFMq1Qm5ERwMmki3aGySDq5KFBF0klC0RN/HSoREVm9TrqQNfnffyZjO2BM\nJ8RYVjf/dMORZR2xbdk2VsjqVtu2IbRgn20vCkO9gNb5sHifAeN5eM0WfqvVqRrebOE324e2F+y3\n7FAncDmRXhCbf9ndMBaKdPctDG2Rzmd7wf5Q1FmWEiQN12WqUmWyWmGiUmWqUmGu3mAolWI0k2Zt\nJs2aTIZ4q4k7/jbuwbdxD44RSiSxhtfQSA1RIsncXIPiXI14wqF/IElfLknfQJJIOIRbqdEqlrsT\ntivdidrzd6QqePUmkXSCyIIQ5fRlOmEqmyaSTWE7R87dEhEROZGcdCELTo7hQmMMxnXxWwsDWGfb\nbx/2udlavG9haGt3j7faWGEbOx7DjnXm5IS7c3PmP9vd+TrhRJxwIo6d7MzjOdp6UJVWi4lKpRuq\nqkxUKtTbbQaTSYaSSQZTKYZTSfLJJLbn4k6M4Y53hgBNu4mVH6WezFMOZ5mrQalYI2EbUg4kbZ9Y\nyMPU6rTL3afeylXcSg07HiWSSeNkU4TT8xO3k71QFU7GV81dQBEROXVpCYeAWJaFFencqToe9eKM\nMfjNVvfpss5TZn6z2dt2q3WahVm8WgO3Vset1fFqDbxWi0Y8SiUaoRx1KEdsSrZF0QI7FCIfjZKP\nxRiKRjknFifrpLB9G1NqwNg4Zq5AYWocf7ZAO5ygZiUoeQ6lCrRqbxCL/J14xMKxLQaMSzgRxcmk\nsTIp/GyKSDpFfHSQSDpJJJMinEmpKLCIiEiXQtYJwLKszh2rWBSnv7PP9X1arkuz+5Sb63m03DYz\n9TqFWp1CtUahWiXiG7KhEFksTidE2vPIuoY4VueOm+9jWh5mZoxmsYCZm8YtzuBaDo1wklo4Q8l6\nH5YdJd2fJp1PszafITWQJhyL9uaihROxTqgUERGRY6KQtczansdcvcFsvc5M91VqNGh5Hk3XpeV5\ntFwPACds49g20XC4994fj7Mum+VDoyMMJBLE3mHhSd/zaExOUtu/n8bb47QOjtMKOdSi/dRG1mJ/\nYJR4X5pE0iHfF6evP0nsXyiYLCIiIu9OISsgTddlrFTuhKlajdl6ndl6g1q7RTYWoz8e7wWm7PAQ\nsXCYiG0TtW2ccPhdS8h4nk+9VGVqqkBjukCzUKA9O4tbnMMvzuJH49iDozijpxHbvIVcLsNpqU45\nGdvWnCgREZGgKWQdR57v8z8zs/xtaop9M7MMp1IMJOLkEgk2DAzQH4+TiUUJHcMdI2MMptmkXSlT\nnZ6jMjVLbbbYCVJzc1ApEQ55hDNZwn39RPpzJN+/kXg+R2Ioj5NOLcNvLCIiIkejkPX/yRjD28US\nr01NsneqQD6ZYPPQIJectYFEJNJZIsJtY9otTLOGX5nDa7eh1cS0u/tbTUyjjlutUp8t0pgr0yyV\nabYNLSI46RTRvjTJ/iyxzWcSHxwgls9jp1Ia4hMRETlBKWS9B77nMTkzwxsH3uIf42MkPY/1iTgf\niTnESxX8iX14jTqlZgPTbmHZYYg4WI6DFXGwIhGMHaHRhlrTp9owVFsWTeMQz51F8ow+UoN9jPSn\nSKajhLTkgYiIyElHIesojDGYehW/VMQrzeEX55iZmqBwcJzCzDSuHWZwIM+lg4NkBnKEYnGseKL3\nbsUTWNFYpyiyZVGrNCnO1SjN1SnN1alVmiRTUTLDcfr6Eqzri5NIRgmFdGdKRERkNTjlQ5YxBlOt\n4M1O483N4Jfm8EtF/NIcbijEnO0wjsU/XQhlsqw57z/YuG4da7N9Rx2qazbanTA1Nkdxtka5WCfi\nhMn0J8hk44ys7SOdjWsCuoiIyCoWSMgaGxtjx44d7Ny5kwcffJBt27YxNTXFzTffzLp16yiVSuzY\nsWPZh8GMMfjlIv7MNN5sAW9mGm9mGmwbO5fHzvZT7x/irewgb7Zc3q43WJvJcGYux2W5HH3x2BE/\n03U9ysV67w5VcbaG7/lk+hJk+uKcvmGQTF8cxznl86yIiMgpJZD/8w8MDHDvvffywgsv9O723HLL\nLVx55ZVceeWV3HrrrTz66KNcd911QfzzQDdQlYp4M1N4M9P4M1N4swUsJ4qdyxPK5XE2fYBQX45p\nH/ZOT/P3QoF6scaZA/18cCTH/+nrI7pgHSrP86lVmt1AVaM4V6dRa5HKxMhk4wyOZNiwaZh4QsWL\nRURETnWBhKxoNHrEvieffJL7778fgPPPP5+f/OQnxy1kGWPwKyX8wlT37lTn3YrGsHOD2Lk8kXP/\njVB/nlAshjGGg5UKe6em2fvqa1iWxdn5PP959kZG02ksy6Ld9qgU60wUG1RKDcqlzjyqeDJKOhsj\n25dg7Rk5UpmYJqaLiIjIEZZtDKtQKJBOpwFIpVJMTEy8p59jjMHUqniFSbwFocqKRLqBapDoOf+r\nF6gWnjdWLrP3wBhvTBcI2yHOzue5YtMm0laEWrVF5WCDl/fOUik1aLVcUukY6UyMbH+C096XI5mO\naR6ViIiIHJNlC1lDQ0NUKhWSySTlcpmRkZFjOs9vNvBnpnHnQ9V0p+q1nR/C7g752QODhGLxI881\nhrFSqXPHarpAyIe1sRQfSQzhtC1q/2zyt9f+ScQJk0xHSaVjDK/JsmHTCPGEoyf9RERE5D0LPGQZ\nYwC4/PLLef7557nyyivZtWsXl19++ZHf9T3c6YlOmCpM4k1PYepV7IFB7IEhnPUbsf/9f2Mlkked\n81RrtHh9fJK/jU/x9+kCEd9iMBRn1EQZTKdIhqMk41GS/VGSZ+ZJpKKEw3agbSAiIiKnnsBC1gMP\nPMC+ffv4xS9+wdDQEPfddx833ngju3btolqt8oUvfOGIc6r/95ckR0axBwYJD60huvlDhLL9WIfN\nefJ9Q63apFZpUqs2KcxV+fv0NG/OzDLZqDKcSrFhIMd/rT+b4f4MyXSUeNJRmBIREZFlY5n5W00r\nbHJyEuN5DI+OLtrv+z7VcpNysU651Oi+12mGfGatFhNujYppc2Y+x+bRYd4/kifhOCv0W4iIiMip\nYHKyM31paGjoqN85oRZvaruGuZlqL0xVSg1qlSbReAQTtyiHXOacJtOZBuFwiPW5frYMnMnpfX2E\n9YSfiIiInEBOqJD10gv/YGh4iGQ6hheF9pBNKRfiQHkWmxCnZbJszoywri9LXyymtahERETkhHVC\nhazE+zMctF3emjtAuBliXTbL+oEcHztzPdlYVKFKREREThonVMgqVGtsOuMMPrb+fWRjR5awERER\nETlZnFAh62Pr37fkBDIRERGRk4Vmi4uIiIgEQCFLREREJAAKWSIiIiIBUMgSERERCYBCloiIiEgA\nFLJEREREAqCQJSIiIhIAhSwRERGRAChkiYiIiARAIUtEREQkAApZIiIiIgFQyBIREREJgEKWiIiI\nSAAUskREREQCoJAlIiIiEgCFLBEREZEAKGSJiIiIBEAhS0RERCQAClkiIiIiAVDIEhEREQmAQpaI\niIhIABSyRERERAKgkCUiIiISAIUsERERkQAoZImIiIgEQCFLREREJAAKWSIiIiIBUMgSERERCYBC\nloiIiEgAFLJEREREAqCQJSIiIhIAhSwRERGRAChkiYiIiARAIUtEREQkAApZIiIiIgFQyBIREREJ\ngEKWiIiISAAUskREREQCoJAlIiIiEgCFLBEREZEAKGSJiIiIBEAhS0RERCQAClkiIiIiAVDIEhER\nEQmAQpaIiIhIABSyRERERAKgkCUiIiISAIUsERERkQAoZImIiIgEQCFLREREJAAKWSIiIiIBUMgS\nERERCYBCloiIiEgAFLJEREREAqCQJSIiIhIAhSwRERGRAChkiYiIiARAIUtEREQkAApZIiIiIgFQ\nyBIREREJgEKWiIiISAAUskREREQCEF7uf/Duu++mWCwyOTnJ7bffzqZNm5b7EkREREQCt6wh65ln\nnmH37t3s3LmT1157jS996Us8++yzAPi+z+zs7HJejoiIiMh7UigU6OvrW/I7yxqynnjiCc4//3wA\nNm/ezKuvvkq5XCadTpPL5TDGLOfliIiIiLwn/f395HK5Jb+zrCFrZmaGtWvX9j6nUikmJydJp9M4\njsPo6OhyXo6IiIhIYJZ14vvQ0BCVSqX3uVKpMDw8vJyXICIiIrIsljVkXX755ezatQuA1157jXPP\nPZdUKrWclyAiIiKyLCyzzBOh7rrrLgqFAuPj49xzzz2cffbZy/nPi4iIiCyLZQ9Z85ZayuFPf/oT\nDz/8MNlsls2bN3PDDTesxCWuqKXa56KLLuLAgQMAWJbF7t27yWazK3WpK2JsbIwdO3awc+dOHnzw\nQbZt27bouPrQu7fRqd6Pms0mt99+O5FIhBdeeIGvfOUrfOpTn+odVx969zY61fsQQKPR4LbbbiMU\nCrF7925uu+02Lrvsst7xU70fvVv7rPo+ZFbA008/ba644gpjjDF//etfzQUXXNA75vu+2bhxo5ma\nmjLGGLN161azd+/elbjMFbNU+xhjzEUXXbQSl3VCaTQapt1um4suusj8/ve/X3RMfahjqTYyRv3o\nySefNBdffLExxpjXX3/d5HK53jH1oY6l2sgY9SFjOn+vP/OZzxhjjHnuuefMpk2besfUj5ZuH2NW\nfx9akRXfj7aUA8DevXuxLIt8Pg/A1q1befzxx1fiMlfMUu0DEAqF+PrXv862bdu4//77V+oyV1Q0\nGiUcfueHY9WHOpZqI1A/uvTSS/nVr34FQD6fJxQ69OdQfahjqTYC9SHo3In5+c9/DsC+ffv44Ac/\n2DumfrR0+8Dq70PLvuI7LL2UQ6FQIJ1O946l02kmJiZW4jJXzFLtA7Bz506SySTlcpktW7awceNG\nPv3pT6/U5Z5w1IeOjfoRvWGJb3/729x77729/epDhxytjUB9aKEvfvGLvPDCC/z4xz/u7VM/OuSd\n2gdWfx9akTtZSy3lcPixUql0yq2f9W5LXSSTSaDzH+y2bdt45ZVXlv0aT2TqQ8dG/ajj4YcfJp1O\nc/311/f2qQ8t9k5tBOpDCz366KM89dRTbNu2rTfyoH50yDu1D6z+PrQiIevwpRzOOecc9u/fz4ED\nBzjrrLOwbZvp6WkA/vznP/OJT3xiJS5zxSzVPuPj43z84x/vffell15i69atK3WpJwTTfXbjlVde\nUR86isPbSP2o0yZ33303juPwzW9+kyeffJKXX35ZfWiBpdpIfajj8ccf5ze/+Q0AiUQCYwz/+Mc/\n1I+6lmqfU6EPrdjThfNLORw8eJC77rqLu+++mw996EPccsst7N69m+985zv09/dz7rnncuONN67E\nJa6oo7XPzTffzPXXX08ikcD3fTZs2MD27dtX+nJXxAMPPMAPf/hDLrzwQm666SZ27NihPnSYo7WR\n+hH84Ac/4Pbbb2fNmjVAZ5j+vPPO48ILL1Qf6lqqjdSHOvbs2cNtt93GRz7yEd58802uvvpqfvrT\nn+pvUddS7XMq9KEVC1kiIiIiq9mKDBeKiIiIrHYKWSIiIiIBUMgSERERCYBCloiIiEgAFLJERERE\nAqCQJSIiIhIAhSwROaVVKhWmpqaOenz//v14nreMVyQiq4VCloic9H75y19yzjnn/Mvnvfjii2zf\nvp1ms8lVV13Ftddey0MPPbToOwcPHuSzn/3sKVtzTkTeOy1GKiKrwvr169m3b9+/dM7FF1/ME088\nQSQS4amnnuKSSy7hk5/8JL/97W8Xfe/ll1/mjjvuYOfOncfzkkVkldOdLBFZNTzP48tf/jL33HMP\n1157Lc8++ywAb775JldddRXf/e53yefz3Hjjjbz44oucfvrpRCIRAC655JLez2k0Got+7gc+8AH2\n7NlDsVhcvl9GRE564ZW+ABGRd3PppZe+4/4//OEPiz7/6Ec/wrIsvvGNb3Dw4EHOO+883nrrLX73\nu9+xZs0atm/fzh//+EeuueYa9u3bx8jIyKLz9+zZw9NPP81f/vIXLrjggkXHhoaG2LdvHx/+8IeP\n7y8nIquWQpaInPAOD1NH89JLL3HWWWcBMDIyQqlUolAocN1113HTTTdx3333ccUVV7B161Z+9rOf\nYdt271xjDDfddBMPPfQQu3btOiJkhcNhWq3W8fulRGTV03ChiKwa5557Lnv37gVgbGyMTCbDwMAA\n6XSaVqtFqVRieHgY3/dZu3Yt09PTvXMfeeQRtmzZwuc+9zn27NlDq9Xiueee6x2fnJzk9NNPX/bf\nSUROXgpZInLS+/Wvf02pVGLDhg34vs+dd97JHXfcwWOPPQbAE088wRlnnMH555/PY489xte+9jU+\n+tGP8uqrrwKdJwgfeeQR7rzzTkKhEKlUis9//vM888wzABw4cIBMJnPE8KKIyFL0dKGIrHrXXHMN\nV199NZdddhlvvPEG3//+9/ne977HY489xhtvvMGtt95KLBZ7x3MnJibYvn07X/3qV9myZcsyX7mI\nnMwUskRk1Xvuuef41re+xWWXXYbrutxwww2k02kAXn/9dSzL4uyzz37Hc59//nk2bNjA8PDwcl6y\niKwCClkiIiIiAdCcLBEREZEAKGSJiIiIBEAhS0RERCQAClkiIiIiAVDIEhEREQmAQpaIiIhIABSy\nRERERAKgkCUiIiISgP8HxYDJrvD/SSAAAAAASUVORK5CYII=\n" } ], "prompt_number": 27 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Logistic regression \n", "\n", "Let's simplify the rank data, so instead of trying to predict the rank, we simply try to predict whether or not a book is in the top-50 sellers. This binary classification let's use a logistic regression.\n", "\n", "Scikits-learn let's us use an L1-regularizer (lasso) with our logistic model. But it doesn't provide an automatic CV method. So we'll set up an explicit cross-validation, similar to what's done in the book. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The lasso penalty parameter in the `LogisticRegression` function is called `C`. The smaller `C` is, the larger the penalty. \n", "\n", "For a given set of data, there is a minimum `C`, below which, the regularizer will set all the model parameters to zero. There's no point in use evaluating the fit of models for values of `C` less than this minimum. The function `l1_min_c` computes this minimum." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Create the TDM.\n", "desc_tdm = tdm_df(docs_clean, stopwords = rsw)\n", "\n", "# Make the rank variable binary, indicating Top 50 status.\n", "top50 = 1 * (ranks_df['rank'] <= 50)\n", "\n", "# Compute the minimum value of the L1 penalty parameter. Below this\n", "# value, all model parameters will be shrunk to zero.\n", "min_l1_C = l1_min_c(desc_tdm.values, top50.values) \n", "\n", "# Create a space of penalty parameters to test.\n", "cs = min_l1_C * np.logspace(0, 3, 10)\n", "\n", "# Create a dictionary whose keys are the candidate values of C. \n", "# The dictionary will hold the error rates in each CV trial for that\n", "# value of C.\n", "cdict = {}\n", "for c in cs:\n", " cdict[c] = []\n", " \n", "# Add the target variable to the data, so it gets shuffled and split along\n", "# with the predictor data.\n", "desc_tdm['Top50'] = top50\n", "\n", "# Set up logistic model\n", "logit_model = LogisticRegression(C = 1.0, penalty = 'l1', tol = 1e-6)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 28 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to split our data into training and testing sets. We created a function to do this in chapter 4. Let's just define it again here." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def train_test_split(df, train_fraction = .5, shuffle = True, \n", " preserve_index = True, seed = None):\n", " '''\n", " Split a dataframe into training and test sets by randomly assigning\n", " its observations to one set or the other.\n", "\n", " Parameters\n", " ----------\n", " df: a DataFrame\n", " train_fraction: the fraction of `df` to be assigned to the \n", " training set (1-train_fraction will go to the test set).\n", " preserve_index: If True, the split dataframes keep their index\n", " values from `df`. If False, each set gets a new integer index\n", " of arange(# rows).\n", " seed: the random number generator seed for row shuffling.\n", " '''\n", " if seed: \n", " random.seed(seed)\n", " \n", " nrows = df.shape[0]\n", " split_point = int(train_fraction * nrows)\n", " \n", " rows = range(nrows)\n", " if shuffle: \n", " random.shuffle(rows)\n", " \n", " train_rows = rows[:split_point]\n", " test_rows = rows[split_point:]\n", " \n", " train_index = df.index[train_rows]\n", " test_index = df.index[test_rows]\n", " \n", " train_df = df.ix[train_index, :]\n", " test_df = df.ix[test_index, :]\n", " \n", " if not preserve_index:\n", " train_df.index = np.arange(train_df.shape[0])\n", " test_df.index = np.arange(test_df.shape[0])\n", " \n", " return train_df, test_df" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 29 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's the cross-validation procedure. For 50 folds, we'll randomly split the data into training and testing sets. Then for each candidate value of the penalty parameter `C`, we'll fit the model on the training data, and compute its error rate in the testing data. The error rate is the proportion of books in the test data that the model misclassifies. \n", "\n", "At the end we'll have 50 error rate curves (where the curve is over values of `C`). Then we'll compute the average error rate, for each candidate `C`, across the 50 trials. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "np.random.seed(4)\n", "for i in xrange(50):\n", " # Split the data\n", " train_docs, test_docs = train_test_split(desc_tdm, .8)\n", " trainy, testy = train_docs.pop('Top50'), test_docs.pop('Top50')\n", " trainX, testX = train_docs, test_docs\n", " \n", " # Fit the model for each candidate penalty parameter, C.\n", " # then compute the error rate in the test data and add\n", " # it to the dictionary entry for that candidate.\n", " for c in cdict:\n", " logit_model.set_params(C=c)\n", " logit_fit = logit_model.fit(trainX.values, trainy.values)\n", " predy = logit_fit.predict(testX.values)\n", " error_rate = np.mean(predy != testy)\n", " cdict[c].append(error_rate)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 30 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting mean error rates across penalty parameter candidates, we find an optimal value of `C` around 0.15." ] }, { "cell_type": "code", "collapsed": false, "input": [ "error_path = DataFrame(cdict).mean()\n", "error_path.plot(style = 'o-k', label = 'Error rate')\n", "error_path.cummin().plot(style = 'r-', label = 'Lower envelope')\n", "plt.xlabel('C (regularization parameter)')\n", "plt.ylabel('Prediction error rate')\n", "plt.legend(loc = 'upper right')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 31, "text": [ "" ] }, { "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAApgAAAIYCAYAAADJgZwRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8FfW9//H3nC3bSQgEQhAUMEBBQPSisrQouLAEQduq\ntWqttlI3IF6Fnyvei9HqVdsi+LAuuKFVe1vLIpGlLhGqIriAiFEkYFBJOIGQkIWsZ35/2JxLDIST\nnCQzk/N6Ph55mJnMmfmcLyrvfL7fOWOYpmkKAAAAaCMuqwsAAABA50LABAAAQJsiYAIAAKBNETAB\nAADQpgiYAAAAaFMETAAAALQpj9UFOElWVpZKS0sVCAR0xx13aPDgwaGfjR8/Xt99950kyTAMbdq0\nSV26dGn2NQAAAJ0RATNMOTk52rRpk1asWKHc3FzNmDFD69evD/3cMAx99dVXLXoNAABAZ0TADNOa\nNWs0duxYSdKQIUO0bds2lZWVKTExUZLkcrk0Z84c5ebmaty4cbrtttuO+RpJqqys1O7du+Xx8EfR\nUg3PCDAMw+JKnInxiwzjFxnGr/UYu8gwfpFJSEhQSkqKfD5fs8eRasJUXFys3r17h7b9fr8CgUAo\nLK5YsUIJCQkqKyvTqFGjNHDgwGO+RpJ2796twsJC9enTp+PeTCdRUVEh6ftxRcsxfpFh/CLD+LUe\nYxcZxi8yJSUlMgxDaWlpzR5HwAxTamqqysvLQ9vl5eXq2bNnaDshIUGSlJiYqKlTp+qzzz475msk\nyePxqE+fPhowYEA7v4POp6SkRJKUnJxscSXOxPhFhvGLDOPXeoxdZBi/yAQCgbCO4y7yMGVkZOj9\n99+XJOXm5mro0KHKz8/Xd999p4KCAp177rmhY7ds2aLRo0c3ec2wYcP4jQkAAHR6dDDDNGbMGI0c\nOVKZmZkqLCzU4sWLlZWVpREjRuiWW25Rv379NHv2bAWDQU2ZMkWTJk2SpNBrCgoKtHjxYovfBQAA\nQPszzIbVrrDEjh07JIkp8lZgmiMyjF9kGL/IMH6tx9hFhvGLTMMUeWpqarPHMUUOAACANkXABAAA\nQJsiYAIAAKBNETBt4P3339ekSZM0fvx4TZo0SdnZ2VaXBAAA0GrcRW6x999/XwsWLNDHH38c2peX\nlydJmjp1qlVlAQAAtBodTIv9/e9/1549exrty8vL06JFiyyqCAAAIDIETIvV1NQccX9VVVUHVwIA\nANA2CJgWO9rD4mNjYzu4EgAA2k52dna73l/wyiuvqGfPnho1apRmzZqlWbNmqV+/ftqyZUubXqct\nfP3117asqz2xBtNiF110kb799lsVFhaG9qWnp2vWrFkWVgUAQOtlZ2crMzMzdE+B1Pb3F1x66aV6\n4oknNGHCBN19992SpOOPP15xcXFtcv629OCDD2rUqFEaMWKE1aV0GDqYFhszZoxuuukmnXXWWZKk\nCRMm6JFHHuEGHwCAYy1cuLBRuJTa7/6ChgcSPvrooxo1apQGDRqkBQsWqHfv3nr88cc1aNAgzZ07\nV1deeaUSExP12muvqX///srOzlZhYaEuv/xyzZkzRxdffLGeeeYZSTri6w/3xhtvaMSIEZo7d66m\nTJmiM844Q7W1tbruuus0Z84cTZs2TTNnzpQk/fOf/9SyZcv07LPPasaMGaqqqtKGDRt06aWXasaM\nGbrwwgt14MCBNh8Xq/GoSIs1PCqytrZWJ510kr777jsdd9xxFlflDDzuKzKMX2QYv8gwfq1n9dgZ\nhtHu1wg3mowfP14VFRU67bTT9N5772nRokU688wzVV1drR/96EeaPn26brnlFhUVFSkhIUFDhw7V\n448/ruHDh6tPnz6aMWOGJk6cqJtvvlmVlZXq27evXnvtNZ166qlNXn/aaaeFrltXV6err75a+fn5\nevbZZ/Xtt9+qZ8+e+u1vf6t33nlHVVVVSkpKUlFRkVJSUjRhwgRdffXVuvLKK1VaWqrhw4fr448/\nVvfu3XXNNdeod+/emj9/fnsNZ5sK91GRTJHbRHl5uaTv/6UFAMCuwgl/kyZN0tq1a4+4f/Xq1W1W\ni2EYmjZtmu6++269/vrr6tatmyQpJiZGhmHooosuUt++fdW3b199/fXXkqRLLrlEkuT1evXPf/5T\nf/jDHyRJ8fHxGjdunJYvX67Ro0c3ef3hPB6PPB6Pzj33XKWnpys9PV2S9Pbbb2vVqlX6/PPPJUkV\nFRVKSUlp9Nr33ntPVVVVoeseOnSoQ0J7RyNg2kRZWZkkAiYAwPlmz56tvLy8RtPk7X1/QUZGhurq\n6pSbm6shQ4Yc8/hgMNgkLJumGXb39Ic2bdqkq666Sn/84x9166236vbbbz/qdf1+v+6///5WXccp\nWINpEwRMAEBnMXXqVD3yyCOaNGmSzjrrLE2aNKld7i/4YSD84osv9OSTTzb6+dEkJiZq/PjxoY5q\nRUWF3n33XV144YVhvf6H1166dKlOOukkTZo0KfR3ecPPXS6X9u/fL0kaPXq0Dhw4oNdeey10zNat\nW8N+z05BB9MmCJgAgM5k6tSp7XrD6iuvvKIvvvhClZWVoU9i+frrrzVkyBC98sor2r9/v5577jn1\n6dNH6enpWrRokQzD0IMPPqibb75ZkvTiiy8qMzNTs2fPVkFBgR5++GGNHj1aL7/8cpPXH27Dhg36\n6KOP9PXXX2vcuHE6++yzdckll+jiiy/WnDlzNHDgQCUlJen3v/+9nnjiCZ1zzjl66KGH9M033+iu\nu+7Sq6++qjlz5uj+++9XWlqarr76ag0fPrzdxsoK3ORjsYabfN544w1df/312rJli04++WSLq3IG\nqxe6Ox3jFxnGLzKMX+sxdpFh/CIT7k0+TJHbBB1MAADQWRAwbYKACQAAOgsCpk0QMAEAQGdBwLQJ\nAiYAAOgsCJg2wQetAwCAzoKAaRN0MAEAQGdBwLSJsrIyxcfHEzABAIDjETBtoqysTF27diVgAgAA\nxyNg2gQBEwAANCc/P18XXHCBzj33XKtLOSYCpk2Ul5crOTmZgAkAQBieeeYZpaWl6fTTT9eHH35o\ndTkdom/fvvrZz36m+vp6q0s5JgKmTdDBBAAgfL/5zW80ZMgQTZs2TaeddprV5XQYpzzhm4BpA8Fg\nUFVVVerSpQsBEwCACH311Vf6xS9+oTlz5uinP/2psrOzJUmXXXaZjj/+eK1Zs0aSNGHCBC1atEiS\ndN1112nChAkqLi7Whg0bdOmll2rGjBm68MILdeDAAb388ssaOHCg/ud//kdnnHGGLr744ibX/eKL\nL3TZZZfpuuuu05QpU5Sfn6+cnBydcsopmjZtmn7+858rJSVFN9xwgyTpqaeeksvl0rx58yRJjz/+\nuIYPH65t27Zpz549+vWvf60bbrhBEydO1ObNm4/4XpcsWaLLLrtMN998sy655BIVFBSosLBQGRkZ\nOvnkk3XllVcqLS1NF1xwgUpLSyXpiO+vzZmw1KBBg8wBAwaYkswRI0aYTz/9tNUlOcaBAwfMAwcO\nWF2GYzF+kWH8IsP4tZ7lYye1/1eYxo8fb86fP7/Rvrq6OvOkk04yX331VdM0TfObb74x/X6/mZ+f\nbxYVFZkej8f8+uuvzcLCQnPIkCHmxIkTTdM0zYULF5o5OTlmSUmJefzxx5tFRUWmaZrmb3/7W/Pu\nu+82q6urzXHjxpkXXXSRmZ+fb7777rtNrjt48GBz69atpmma5j333GNeeeWVpmma5lVXXWXedNNN\npmma5pdffmkahhH6MzzrrLNCf/e/+uqr5ssvv2yapmmee+655muvvWaapmkuWbLEPPPMM03TNM1n\nn33WHD9+vGmapvnee++ZaWlp5qFDh0zTNM0HHnjAnDRpkmmapvncc8+Zo0aNMk3TNA8ePGgOHTrU\nvOWWW476/sK1d+9ec+/evcc8ztP2kRUtcfDgwdD3n376qf7xj3/oN7/5jYUVAQDQDJtP0X755ZfK\nzc3VpEmTJEl9+vTRwIEDtXr1av3ud7/T8OHDtX79epWXl+uRRx7RxRdfrPLycm3YsEE33nij1qxZ\no6qqKv3hD3+QJB06dEiGYcjn88ntdmvatGk64YQTdMIJJzS67vbt27Vz50699NJLMk1Te/fuVWxs\nbOjnycnJkqRBgwZJ+v7v/+TkZF1++eV65ZVX9Jvf/EbLly/XU089pcrKSr311lsaNmyY3n33XZWW\nloZef7ilS5fqJz/5Seg6kydP1p133qmqqiqZpqm4uDhJUmJioq666iq99NJLOvfcc4/4/toaAdNG\nTNNUTk6O1WUAAOBI+fn5qq2tbbLfNE0Fg0FJ0jnnnKP169erpqZG1113ncaOHavly5crLi5OLpdL\nwWBQfr9f999/f4uuHQwGZRiGsrKy5Ha7m/z8aCHuoosu0k033aTPPvtM3bp1k8/nU3V1tSTp5ptv\n1vHHH3/Ua5qm2WRN5pH2SZLX61V8fHyr319LsQbTBuZL2irpPUkuB9wZBgCAHfwwTN16661KSEjQ\ngAEDtHr1aknSt99+q7y8PE2ZMkXS9wHz9ddfV1pamiRp+vTpmjdvniZOnChJGj16tA4cOKDXXnst\ndI2tW7ce8XqH+9GPfqRevXrpscceC+3bsmXLUV/XsN21a1dNnDhRv/zlL3XllVdK+r7jOHbsWC1Y\nsKDJuQ53/vnn61//+pcOHTokSVq1apUmTpwY6lw2CAaDWrp0qX760582+/7aEh1MG3hC0kJJGyQl\ntEObGgCAzuaZZ57Rl19+qbq6OpWXl0uS/vWvf8nn82n58uW6/fbbtW7dOu3evVv/+7//q759+0qS\nTjvtNJWVlelnP/uZJGnatGm66aabQgE0JSVFr776qubMmaP7779faWlpuuqqq7Rnzx7l5eVp2bJl\nGjZsmEaOHNmoHo/Ho6VLl+rGG2/UkiVL1Lt3b11wwQWqrKzUxx9/rK+//lpXXXWV3njjDRmGocWL\nFysrK0uSdPnll+u+++7TqaeeGjrfCy+8oGuvvVannHKK+vbtqzFjxigpKUn/+Mc/lJeXp+XLl+uC\nCy7QvffeqyuuuEJ9+vRRIBDQ888/HzrHl19+qVmzZmnPnj0aO3asbrrpJrnd7ibv7+qrr9bw4cPb\n9M/HMI8WxdEhevXqJUkqLCzUfkm/PfNMLX3nHWuLcoiSkhJJOuK6FBwb4xcZxi8yjF/rMXaRiZbx\ne+655/T888/r7bffbtPzBgIBSVJqamqzx9HBtFiXLl1UX1+v7t27S6WlGj92rNUlAQAARIQ1mBZb\nuXKlVq1apaKiIrljY2XW1FhdEgAAcLBvv/1Wjz/+uLZs2aKFCxdaUgMdTBsx3W4FCZgAACACffr0\n0YYNGyytgQ6mjQTdbplH+HgFAAAAJyFg2kjQ7ZboYAIAAIcjYNqI6XazBhMAADgeAdNGTKbIAQBA\nJ0DAtJGgxyMRMAEAgMMRMG3EJGACAIBOgIBpJ0yRAwCAToCAaSOm1yvV1VldBgAAQEQImDZiejwy\n6GACAACHI2DaicdDBxMAADgej4psgaysLJWWlioQCOiOO+7Q4MGDmxyzevVqzZw5Uzt27FB9fb2u\nv/56JSUlqaCgQJdeeqmmTZt29AsQMAEAQCdAwAxTTk6ONm3apBUrVig3N1czZszQ+vXrGx2zY8cO\nLViwQMFgUJK0Zs0aFRQU6Mknn1RxcbFGjBjRbMA0vV4Z5eXt+j4AAADaG1PkYVqzZo3Gjh0rSRoy\nZIi2bdumsrKy0M/Ly8t122236aGHHpJpmpKktLQ0bdy4URs3blReXp7GjBnT7DUMj0eqr2+/NwEA\nANAB6GCGqbi4WL179w5t+/1+BQIBJSYmSpJmzpype+65R/Hx8aFjRowYofPPP19z587V559/rpde\neqnJeU3TVEVFhUpKSlTm98ssK1NJSUn7v6FO4ODBg1aX4GiMX2QYv8gwfq3H2EWG8esYBMwwpaam\nqvyw6evy8nL17NlTkrR9+3bl5ubqzjvvVGVlpQKBgLKysuTz+TR+/Hg9/fTT2rBhg6ZMmaJt27bp\nuOOOO/JFvF656GACAACHI2CGKSMjQw888IAkKTc3V0OHDlV+fr6Sk5M1aNAgffDBB5Kk/Px8jR8/\nXvPmzdNdd90VWo95xhlnqEuXLqqpqWl0XsMw5Pf7lZycrMpgUK6DB5WcnNyxb87hGK/IMH6RYfwi\nw/i1HmMXGcavdQKBQFjHETDDNGbMGI0cOVKZmZkqLCzU4sWLlZWVpREjRmju3Lmh40zTlGEYkqQ5\nc+Zo9uzZ+vTTT7V3717dfvvt6tev39Ev4vPJxV3kAADA4QiYLXD33Xc32n7xxRebHNOvXz/t3LlT\n0ve/HS1ZsiTs8xtMkQMAgE6Au8htxPB6ZRAwAQCAwxEwbcTw+ehgAgAAxyNg2ggBEwAAdAYETBsx\nfD4Z/77rHAAAwKkImDbi8vnkpoMJAAAcjoBpI66YGLnoYAIAAIcjYNqI4fMRMAEAgOMRMG3EFRMj\nNwETAAA4HAHTRgiYAACgMyBg2oibgAkAADoBAqaNuHw+uU3T6jIAAAAiQsC0EVdsLB1MAADgeARM\nG3HHxMhDBxMAADgcAdNGXD6fPJKCdDEBAICDETDtxOuVzzBUV1dndSUAAACtRsC0EwImAADoBAiY\nduLxyCsRMAEAgKMRMO3E65WXDiYAAHA4AqadMEUOAAA6AQKmnXg88ogpcgAA4GwETDvxelmDCQAA\nHI+AaScETAAA0AkQMO2EKXIAANAJEDDthA4mAADoBAiYduL1ymOaBEwAAOBoBEw7YYocAAB0AgRM\nO6GDCQAAOgECpp0QMAEAQCdAwLQTj0duAiYAAHA4AqaduN1yS6qrqbG6EgAAgFYjYNqJYajWMFRf\nVWV1JQAAAK1GwLSZepdLQTqYAADAwQiYNlNPBxMAADgcAdNm6l0uBaurrS4DAACg1QiYNkPABAAA\nTkfAtJkgazABAIDDETBthg4mAABwOgKmzdS7XDLpYAIAAAcjYNqMyRQ5AABwOAKmzdS73XQwAQCA\noxEwbSZIwAQAAA5HwLQZ0+1WsLbW6jIAAABajYBpM0G3W6KDCQAAHIyAaTNMkQMAAKcjYNqM6XbL\nZIocAAA4GAHTZkyPRyJgAgAAByNg2ozp8dDBBAAAjkbAtBnT7aaDCQAAHI2A2QJZWVmaM2eOrrzy\nSn3xxRdHPGb16tUaMGBAaDsQCOiGG27QNddco3/961/HvAZT5AAAwOk8VhfgFDk5Odq0aZNWrFih\n3NxczZgxQ+vXr290zI4dO7RgwQIFg0FJUl1dnS6++GI9+uijGj58eHgX8nikurq2Lh8AAKDDEDDD\ntGbNGo0dO1aSNGTIEG3btk1lZWVKTEyUJJWXl+u2227TQw89pOnTp0uS/vKXv6impkaPPfaYdu/e\nreuvv17nn39+o/OapqmKigqVlJRIkir8ftW63aFtHN3BgwetLsHRGL/IMH6RYfxaj7GLDOPXMQiY\nYSouLlbv3r1D236/X4FAIBQwZ86cqXvuuUfx8fGhYzZu3KgJEybo97//vfLz8zVy5Ejt2LFDycnJ\nR72O6fXKoIMJAAAcjIAZptTUVJWXl4e2y8vL1bNnT0nS9u3blZubqzvvvFOVlZUKBALKyspSbGys\nunbtKknq27evjjvuOO3atUunnnpq6DyGYcjv94dCZ0JdnbwVFc2GUDTGWEWG8YsM4xcZxq/1GLvI\nMH6tEwgEwjqOm3zClJGRoffff1+SlJubq6FDhyo/P1/fffedBg0apA8++EBLly7Vk08+qdTUVM2b\nN0+jR4/WRx99JEmqrKxUWVmZBg8e3PyF6GACAACHo4MZpjFjxmjkyJHKzMxUYWGhFi9erKysLI0Y\nMUJz584NHWeapgzDkCRddNFFevvtt3XTTTeppKRETz75pOLi4pq/EAETAAA4HAGzBe6+++5G2y++\n+GKTY/r166edO3dK+n76+7HHHmvZRQiYAADA4ZgitxnD65VRX291GQAAAK1GwLQbOpgAAMDhCJg2\nY3i9ctHBBAAADkbAtBnD52OKHAAAOBoB02boYAIAAKcjYNqM4fMRMAEAgKMRMG3GiImRKxi0ugwA\nAIBWI2DajIspcgAA4HAETJuhgwkAAJyOgGkzLp9PbjqYAADAwQiYNuPy+ehgAgAARyNg2owrJkZu\nAiYAAHAwAqbNuGJi5DZNq8sAAABoNQKmzbi4yQcAADgcAdNm3DEx8tDBBAAADkbAtBlXbCxrMAEA\ngKMRMG3GzRpMAADgcARMm2GKHAAAOB0B02bcsbEETAAA4GgETJtxx8UxRQ4AAByNgGkznpgYea0u\nAgAAIAIETJtx/TtgBrmTHAAAOBQB0268Xnkk1dXVWV0JAABAqxAw7cbjkVcETAAA4FwETLvxegmY\nAADA0QiYdsMUOQAAcDgCpt0wRQ4AAByOgGk3Xq98kupqa62uBAAAoFUImHbjcqleUl11tdWVAAAA\ntAoB04bqJNUTMAEAgEMRMG2ozjBUd+iQ1WUAAAC0CgHThuoMgw4mAABwLAKmDdUTMAEAgIMRMG2o\n3jAUrKqyugwAAIBWIWDaUJ3LpXoCJgAAcCgCpg3VG4aCNTVWlwEAANAqBEwbqne5WIMJAAAci4Bp\nQ/Uul4IETAAA4FAETBsKEjABAICDETBtqN7lYg0mAABwLAKmDdW7XDLpYAIAAIciYNpQ0O2mgwkA\nAByLgGlDQZdLJgETAAA4FAHThoJuNwETAAA4FgHThpgiBwAATkbAtCHT7ZZZW2t1GQAAAK1CwLSh\noNst0cEEAAAORcC0ITqYAADAyQiYLZCVlaU5c+boyiuv1BdffHHEY1avXq0BAwY02X/ZZZdp/vz5\nYV2HgAkAAJzMY3UBTpGTk6NNmzZpxYoVys3N1YwZM7R+/fpGx+zYsUOPPPKIgsFgo/1//OMflZeX\np8GDB4d1raDHwxQ5AABwLAJmmNasWaOxY8dKkoYMGaJt27aprKxMiYmJkqTy8nLddtttevDBBzV9\n+vTQ6958800dOHBAGRkZMk2zyXlN01RFRYVKSkpC+yqTknTI5Wq0D00dPHjQ6hIcjfGLDOMXGcav\n9Ri7yDB+HYMp8jAVFxfL7/eHtv1+vwKBQGh75syZuueee0KBU5K+/vprLV68WPPnzz9iuDwql0ti\nihwAADgUHcwwpaamqry8PLRdXl6unj17SpK2b9+u3Nxc3XnnnaqsrFQgEFBWVpZiYmK0f/9+/fzn\nPw+t2TzvvPNCnVBJMgxDfr9fycnJoX2xdXUKVlQ02oejY5wiw/hFhvGLDOPXeoxdZBi/1jm8udYc\nAmaYMjIy9MADD0iScnNzNXToUOXn5ys5OVmDBg3SBx98IEnKz8/X+PHjNW/ePEnS//t//0+SNH/+\nfBmG0ShcHo3p8dDBBAAAjkXADNOYMWM0cuRIZWZmqrCwUIsXL1ZWVpZGjBihuXPnho4zTVOGYUR2\nMY9HqquLsGIAAABrEDBb4O677260/eKLLzY5pl+/ftq5c2eT/f/1X/8V/oW8XhnV1S2uDwAAwA64\nyceO6GACAAAHI2Dakdcrg4AJAAAcioBpRwRMAADgYARMGzK8Xhn19VaXAQAA0CoETDsiYAIAAAcj\nYNqQwRQ5AABwMAKmDRk+n1x0MAEAgENFdcBcsWKFBg8erOnTpysYDOq///u/rS7pez4fU+QAAMCx\nojpg/v3vf9e7776rc845Ry6XSwUFBVaXJElyeb10MAEAgGNFdcCMjY0NPey+urpaeXl5ltaTnZ2t\nSZMm6S9/+5tK9+1Tdna2pfUAAAC0RlQ/KnLSpEkaMGCAXC6XFi1apHvuuceyWrKzs5WZmam8vDx5\nJAUlZWZmSpKmTp1qWV0AAAAtFdUB85RTTtEnn3yir776SieeeKKKi4stq2XhwoWhDmqdJK+kvLw8\nLVq0iIAJAAAcJaqnyP/yl78oOTlZp59+ulJSUrRw4ULLaqmurg59X6vvA6YkVVVVWVIPAABAa0Vt\nB/Oyyy7TqlWr9Oyzz0qSampq1Lt3b8vqiYmJCX1fLalhKzY21pJ6AAAAWitqA+aLL76otWvXavLk\nyVaXIkmaPXu28vLylJeXFwqY6enpmjVrltWlAQAAtEjUBkyXy6UzzzxT77//vmpra2Wapv72t7/p\n0UcftaSehnWWixYtUvI33yguN1ePPPII6y8BAIDjRG3AlKQLL7xQKSkpKigoUP/+/VVYWGhpPVOn\nTtXUqVP19T//KSMjg3AJAAAcKapv8jn77LP18ssva9q0aXr22Wd18cUXW12SJMnr98trmlaXAQAA\n0CpRHTC//PJLvfTSSyotLdVDDz2k559/3uqSJEm+xER5g0GrywAAAGiVqA6Y8+fP12mnnaabb75Z\nRUVFuuOOO6wuSdL3AdNHBxMAADhUVK/BHDlypHbs2KEuXbrowQcftLqckJguXawuAQAAoNWiuoM5\ne/Zsffzxx9q9e7fy8/N17733Wl2SJMnn9ytWksk0OQAAcKCo7mA+//zzeuutt0Lb33zzje666y4L\nK/qey+NRjSSzvFwxSUlWlwMAANAiUR0wn332WY0bNy60vXXrVguraaxaknnwIAETAAA4TlQHzMPD\npSQNHz7cokqaqjEMmWVlVpcBAADQYlEdMO2sxjBkHjxodRkAAAAtFtU3+axevVqVlZVWl3FENS6X\nasvLrS4DAACgxaI6YGZmZsrr9Ya2CwoKLKymsVoCJgAAcKioniKfPHmy7r33XqWnp8s0Tb355pta\nsmSJ1WVJkurcbpkETAAA4EBR3cHcvHmzXC6Xdu3apV27dmn//v1WlxRS63arrqLC6jIAAABaLKo7\nmH/961+Vlpamffv2qXv37iouLra6pJB6OpgAAMChorqD+dVXX+n4449Xenq6TjjhBG3bts3qkkLq\nPB7V2/QGJAAAgOZEdcB89tlntWnTJpWWlmrDhg165plnrC4ppJ6ACQAAHCqqp8hPPPFEpaWlSZKO\nO+449evXz9qCDhP0eGQeOmR1GQAAAC0W1QFzz549uvHGGzVgwABt375dwWDQ6pJC6n0+GXQwAQCA\nA0X1FPmrTQfbAAAgAElEQVSiRYt08skna8eOHTr55JP16KOPWl1SiOn1qp4OJgAAcKCo7mAOHDhQ\nH374oa699lqrS2ki6PNJBEwAAOBAUd3BvO6661RaWhrafvHFFy2spjHT55NZXW11GQAAAC0W1R3M\nhx9+WH/+859D2yUlJbriiissrOgwMTFSVZXVVQAAALRYVAfMBQsW6LLLLgttv/feexZW8wMETAAA\n4FBRPUWemZnZaIp87NixFlbzAzExElPkAADAgaI6YM6ePVsff/yxdu/erfz8fN17771Wl/R/YmNl\n1NRYXQUAAECLRfUU+XPPPae33nortP3NN9/orrvusrCi/2MQMAEAgENFfcAcN25caPuzzz6zsJrG\nXHFxUm2t1WUAAAC0WFRPkXu9Xk2ePFkzZsxQMBjUm2++aXVJIa64OLnoYAIAAAeK6oD5pz/9Sffd\nd5/S09Plcrm0fft2q0sKccXFyUUHEwAAOFBUB8y0tDSNHDlScXFxMk1TO3bssLqkEHd8vNx1dVaX\nAQAA0GJRvQZz4MCBGjlypFwul15++WVdcsklVpcU4o6PlwiYAADAgaI6YM6cOVPnnnuutm7dqiFD\nhmjYsGHNHp+VlaXS0lIFAgHdcccdGjx4cJNjVq9erZkzZ2rHjh2qrq7WHXfcIa/Xq40bN2r27Nm6\n8MILw6rN4/cTMAEAgCNFdcCUpMGDBx8xKP5QTk6ONm3apBUrVig3N1czZszQ+vXrGx2zY8cOLViw\nQMFgUJK0bt06bd68WW+++aa2b9+uMWPGhB0w3QkJMurrW/6GAAAALBb1ATNca9asCT3pZ8iQIdq2\nbZvKysqUmJgoSSovL9dtt92mhx56SNOnT5cknXfeeTrjjDMkSd27d5fL1XTJq2maqqioUElJSaP9\nNT6f5Pc32Y//c/DgQatLcDTGLzKMX2QYv9Zj7CLD+HWMqL7J54cOf2zkDxUXF8vv94e2/X6/AoFA\naHvmzJm65557QoGzQZcuXSRJ999/v+67776wa3HHxcnz704oAACAk0R1B3Pz5s1atWqVav79eZMb\nN25Udnb2EY9NTU1VeXl5aLu8vFw9e/aUJG3fvl25ubm68847VVlZqUAgoHvvvTf0VKA///nPSkxM\n1O9+97sm5zUMQ36/X8nJyY32l/XoIR040GQ/mmKMIsP4RYbxiwzj13qMXWQYv9Y5vLnWnKjuYF50\n0UXyer3q16+f+vbtq27duh312IyMDL3//vuSpNzcXA0dOlT5+fn67rvvNGjQIH3wwQdaunSpnnzy\nSaWmpuquu+6SaZrKysqSz+fT3XffrbVr12rXrl1h1eb1++WjgwkAABwoqjuYZ555pubMmRPablg7\neSRjxozRyJEjlZmZqcLCQi1evFhZWVkaMWKE5s6dGzrONE0ZhiFJeuyxx/Twww/ruOOO08MPP6wD\nBw5o7dq1YdXmS0yUYZqtfGcAAADWMUwzelPMxIkT9ZOf/EQNQ9DcFHl7afhw9wEDBjTaX15YKKNX\nLyVE7x/PMTXcAMU0R+swfpFh/CLD+LUeYxcZxi8yDVPkqampzR4X1R3MLl26qG/fvpJkuyf5xCQl\nybC6CAAAgFaI6oD54osvateuXfrss8908skn65e//KXVJYV4YmMVlFRXVSVPbKzV5QAAAIQtqm/y\nWbx4sX7+85/rhRde0IUXXqinn37a6pJCDJdL1ZKq+bwuAADgMFHdwczLy9O2bdtC25mZmRZW01SN\nYcgsK1PCMdY5AAAA2ElUB0y7awiYAAAAThLVU+Tp6ekaPny4LrjgAg0dOlT9+/e3uqRGagxDtYd9\nuDsAAIATRHUH88Ybb9TZZ5+trVu3atiwYTrppJOsLqmRGpdLYg0mAABwmKjsYC5btkyHDh3S7t27\nlZCQoFGjRikhIUGPPvqo1aU1Uud208EEAACOE5UdzOeff16nnnqqJk+erLS0tND+b775RjNnzrSw\nssZqXS6posLqMgAAAFokKgPm0qVLJUlPPPGEzjzzzND+devWWVXSEdW73TIJmAAAwGGicoq8QU5O\nTqPtNWvWWFPIUdR5PKonYAIAAIeJyg6mJP3617/WunXr9Pbbb0uSampqtHfvXt13330WV/Z/6jwe\npsgBAIDjRG3AfOKJJ/T8889r8uTJMk1ThmGoZ8+eVpfVSNDjkXnokNVlAAAAtEjUTpHHxsYqJSVF\nX331lfr166e+fftq+fLlVpfVSL3Xq2BlpdVlAAAAtEjUBkxJevXVV+X1ekPbb775poXVNBX0+RSs\nqrK6DAAAgBaJ2ilySerVq5fOOussSVJFRYW2bNlicUWNmV6vRAcTAAA4TFQHzIEDB2r48OHq37+/\nPvroI2VmZlpdUiOmzyfRwQQAAA4T1QHz+uuv14QJE7R161bdf//9Gjp0qNUlNULABAAAThSVazAP\nf1RkfHy8zjjjDPn9fts9KlIxMVJ1tdVVAAAAtEhUdjCd8qhIxcayBhMAADhOVAbMhkdF/vWvf9XJ\nJ58c2v/pp59aVdKRxcZKBw5YXQUAAECLRGXAfP755yVJhmFo8+bNkiTTNPXmm29qyZIlVpbWiBET\nI9XUWF0GAABAi0RlwFy5cqWGDRumdevW6cwzz5T0fcDct2+fxZU1ZsTFOSJgZmdna+HChaqurlZM\nTIxmz56tqVOnWl0WAACwSFQGzMcff1wpKSnKysrSvHnzQvt/+9vfWlhVU664OKm21uoympWdna3M\nzEzl5eWF9jV8T8gEACA6ReVd5CkpKZKkL7/8Uu+8846Ki4v12muvaf369RZX1pgrLk4um3cwFy5c\n2ChcSt8HzEWLFllUEQAAsFpUdjAbZGVlacaMGdqwYYNOOOEE231MkTs+Xqqrs7qMZlUf5WOUqvj8\nTgAAolZUB8z+/ftryZIlKi0t1aBBg1RYWGh1SY244uNl2HyKPCYm5oj7A4GAdu3apf79+3dwRQAA\nwGpROUXeYN68eZoyZYruu+8+ud1u23UwPfHxctfXW11Gs2bPnq309PRG+3r27Km0tDSNHj1aQ4YM\n0S233KI33njjqN1OAADQuUR1wKysrNSWLVt0+umnS5L27NljcUWNefx+eWw+RT516lQ98sgj6tu3\nr/r166dJkybp6aef1ltvvaWCggK98MIL6tKli+bNm6fU1FRdcMEFeuKJJ7R7926rSwcAAO0kqqfI\ni4qK9OmnnyoYDGrbtm0qKCiwuqRGPAkJks07mJKUkZEhSXrttdc0bNiw0H6Xy6XTTjtNp512mu6+\n+27t27dPa9as0apVq3TnnXcqLS1NGRkZmjJlin784x/L5/NZ9RYAAEAbiuqAeeutt2rGjBnaunWr\nXnrpJT311FNWl9SIJyFBRjBodRnHtGXLFnk8Hg0dOrTZ47p3767LL79cl19+uerr6/Xhhx/q9ddf\n16233qrt27fr7LPPDgXO3r17d1D1AACgrUV1wHzhhRe0cuVKdevWzepSjsjr98twQAdz2bJluvDC\nC2UYRtivcbvdGjVqlEaNGqX58+crEAhozZo1ocDZp0+fUNgcM2aMvF5vO74DAADQlqJ6DebHH3+s\n5OTkRtt24ktKktc0rS7jmBoCZiRSU1P1q1/9Si+//LL27t2rP//5z3K73frP//xPpaam6uKLL9az\nzz5ru2UMAACgqajuYPr9fp177rnq27evJCk3N1cbNmywuKr/4/X7bT9FvmvXLu3Zs0djxoxps3N6\nPB6NHTtWY8eO1b333quCggKtXr1aq1at0s0336z+/fsrIyNDEyZM0CmnnNJm1wV+iMegAkDrRHXA\n7NatmzIzM2X+u0u4atUqiytqzJeYKMPmHczly5dr+vTpcrvd7XaNXr166eqrr9bVV1+t2tpabdiw\nQa+//rruuusuFRQUaMyYMZoyZYomT56s1NTUdqsD0YXHoAJA60VtwFyzZo3OOuss9evXL9TBHD9+\nvLVF/UBMUpLCX9VojWXLlmnOnDkddj2v16tx48Zp3LhxKikpUUFBgd59910tX75cs2fP1sCBA0Nr\nN08//fR2Db7o3Jp7DCoBEwCaF5VrMG+66SbNnz9fK1eu1DnnnKN3333X6pKOyOf3K0aSadNp8n37\n9umTTz7ROeecY1kNvXr10jXXXKNXX31VgUBADz30kA4dOqQZM2YoLS1NV1xxhf7yl79o3759ltUI\nZ+IxqADQelHZwSwrK9N7770nSSotLdUdd9yhH//4xxZX1ZTL41G1JJWXKyYpyepymli5cqXOO+88\nxcXFWV2KJMnn82n8+PEaP368HnzwQe3evVurVq3S3/72N91www0aMmSIMjIylJGRof/4j/+QyxWV\nv191WqZp6tChQ6qoqFBFRYXKy8sb/fNo3x9t365du454nY0bN2rcuHHq06ePevToodTUVKWlpYWe\nYNXwPZ/rCiCaRWXAjImJ0eeffy7p+7+Uqqur9fnnn+vpp5/WH/7wB4ura6xakllSYsuAuXTpUl18\n8cVWl3FUJ5xwgq699lpde+21qq6u1vr167Vq1Sr96le/UnFxsSZPnqwpU6Zo4sSJtv2oqs6orq4u\n7JDXkmBYWVkpn8+nhIQE+f1+JSQkHPV7v9+vxMREpaWlNdp3+HEffPCBsrKyGgXN/v3767bbbtOQ\nIUO0e/duFRUVqaioSBs2bFBhYWHoKxAIKDExsVHo/GEIbfjq3r07SzkAdDqGadr8LpJ2kJiYqO7d\nuzfZX1xcrNLS0g6tZceOHZKkAQMGHPHn+1wumVu3qscxPsS8o1VUVKhXr17Kz89X165dLamhpKRE\n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\nN95Qq1atNGLEiAaotGH88Ic/lN1ud3UZTisvL9eSJUvUpk0bTZ8+3dXlAP/zCJgA8B9fffWViouL\n61xRfSOrV69WWlqa+vfvryZNmmjatGkNUGHD+PjjjzVkyBCtXr1aY8eOdXU5TvnXv/6l6upqde/e\n3dWlABABEwAAABbjTj4AAACwFAETAAAAliJgAgAAwFIETAAAAFiKgAkAAABLETABAABgKQImAAAA\nLEXABAAAgKUImAAAALAUARMAAACWImACAADAUgRMAAAAWIqACQAAAEsRMAEAAGApAiYAAAAsRcAE\nAACApQiYAAAAsBQBEwAAAJYiYAIAAMBSBEwAAABYioAJAAAASxEwAQAAYCkCJgAAACxFwAQAAICl\nCJgAAACwFAETAAAAliJgAgAAwFIETAAAAFiKgAkAAABLETABAABgKQImAAAALEXABAAAgKUImAAA\nALAUARMAAACWImACAADAUgRMAAAAWIqACQAAAEsRMAEAAGApAiYAAAAsRcAEAACApQiYAAAAsBQB\nEwAAAJYiYAIAAMBSBEwAAABYioAJAAAASxEwAQAAYCkCJgAAACxFwAQAAIClCJgAAACwFAETAAAA\nliJgAgAAwFIETAAAAFiKgAkAAABL/T8LPNl764ADEQAAAABJRU5ErkJggg==\n" } ], "prompt_number": 31 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll re-fit the model at the optimal `C`, and check out what terms the lasso keeps in the model. If turns out we keep about 9 or so terms. (This will change if you change the seed above, since it depends on the randomized CV folds). \n", "\n", "These are the terms that are most informative about whether a book is a Top 50 seller. What are they?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# If you run this block, you have to re-run the blocks starting from four above\n", "# this block (it starts with the comment '# Create the TDM'). Otherwise the\n", "# attempt to pop Top50 will throw an error ('cause you can't pop it twice).\n", "\n", "min_error_c = error_path.index[error_path.argmin()]\n", "logit_model_best = LogisticRegression(C = min_error_c, penalty = 'l1')\n", "\n", "ally = desc_tdm.pop('Top50')\n", "allX = desc_tdm\n", "\n", "logit_fit_best = logit_model_best.fit(allX.values, ally.values)\n", "keep_terms = desc_tdm.columns[np.where(logit_fit_best.coef_ > 0)[1]]\n", "\n", "print Series(keep_terms)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "0 unix\n", "1 perl\n", "2 html\n", "3 server\n", "4 java\n", "5 plsql\n", "6 palm\n", "7 os\n", "8 awk\n", "9 javascript\n" ] } ], "prompt_number": 32 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using scikit-learn's built-in cross-validation functions\n", "\n", "scikit-learn has a built-in function for finding model hyper-parameters by cross-validation, as we did above, called `GridSearchCV`.\n", "\n", "Here we'll perform the CV differently than the authors do in the book and rely more on built-in scikit-learn functions to do so. \n", "\n", "First, we'll split the data into an 80-observation training set and a 20-observation test set using the `train_test_split` function from the `sklearn.cross_validation` module (instead of the handmade one we used above).\n", "\n", "Second, we'll use `GridSearchCV` to perform CV fits for each value of the regularization parameter we supply. To choose the parameter to minimize the error rate, we'll maximize the `zero_one_score` function from the `sklearn.metrics` module. The result of this function is equal to 1 minus the error rate we were using above.\n", "\n", "Finally, we'll fit this CV-optimized model on the 20 test observations, and use scikit-learn's other metrics functions to assess the model fit on the test set." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, split the data into test and training sets. Then define the array of parameter values we'll grid-search over, and the number of CV folds we want to use in the search process." ] }, { "cell_type": "code", "collapsed": false, "input": [ "trainX, testX, trainy, testy = cv.train_test_split(\n", " allX, ally, test_size = 0.2)\n", "\n", "# Dictionary holding parameters to perform a grid-search over, \n", "# and the arrays of values to use in the search.\n", "c_grid = [{'C': cs}]\n", "\n", "# No. of CV folds\n", "n_cv_folds = 20" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 33 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define and fit the model." ] }, { "cell_type": "code", "collapsed": false, "input": [ "clf = GridSearchCV(LogisticRegression(C = 1.0, penalty = 'l1'), c_grid, \n", " score_func = metrics.zero_one_score, cv = n_cv_folds)\n", "clf.fit(trainX, trainy)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 34, "text": [ "GridSearchCV(cv=20,\n", " estimator=LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", " intercept_scaling=1, penalty='l1', tol=0.0001),\n", " fit_params={}, iid=True, loss_func=None, n_jobs=1,\n", " param_grid=[{'C': array([ 0.00633, 0.01364, 0.02938, 0.06329, 0.13636, 0.29377,\n", " 0.63291, 1.36357, 2.93771, 6.32911])}],\n", " pre_dispatch='2*n_jobs', refit=True,\n", " score_func=, verbose=0)" ] } ], "prompt_number": 34 }, { "cell_type": "markdown", "metadata": {}, "source": [ "What is the optimal regularization parameter chosen by the grid search? And what is the error-rate for this optimized model on the training data?\n", "\n", "We get similar results to the authors, even though our CV procedure is different" ] }, { "cell_type": "code", "collapsed": false, "input": [ "clf.best_params_, 1.0 - clf.best_score_" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 35, "text": [ "({'C': 0.29377144516536563}, 0.375)" ] } ], "prompt_number": 35 }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we did above, let's plot the training data error rates vs. candidates for the regularization parameter. Since fitting the `GridSearchCV` function provided the output for each CV fold, we can add standard errors around the average error rate." ] }, { "cell_type": "code", "collapsed": false, "input": [ "rates = np.array([1.0 - x[1] for x in clf.grid_scores_])\n", "stds = [np.std(1.0 - x[2]) / math.sqrt(n_cv_folds) for x in clf.grid_scores_]\n", "\n", "plt.fill_between(cs, rates - stds, rates + stds, color = 'steelblue', alpha = .4)\n", "plt.plot(cs, rates, 'o-k', label = 'Avg. error rate across folds')\n", "plt.xlabel('C (regularization parameter)')\n", "plt.ylabel('Avg. error rate (and +/- 1 s.e.)')\n", "plt.legend(loc = 'best')\n", "plt.gca().grid()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAApgAAAIYCAYAAADJgZwRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt8k/XdP/7XdUjSIz0ALVAoTISBIAg45CDaIYqAMB0e\nGB4mCugmFhVwgocbYbdzP+YcIFNcHaBsiF8VrSA4vAEFBWSiKFAUKpS2NITSU5K2OVzX9fsjTWho\nCqVJeyXN6/l4YElyJXnnotgX78/hEjRN00BEREREFCKi3gUQERERUdvCgElEREREIcWASUREREQh\nxYBJRERERCHFgElEREREIcWASUREREQhxYB5CRYvXoy5c+fivvvuw5EjRxo8/ve//x333HMPlixZ\nAgA4ceIE2rVrh169eqFXr154+OGHW7tkIiIiolYn611ApNixYwf27duH3Nxc5OXlYcaMGdi5c6fv\n8ZdeeglWqxVr1671e97kyZOxatWq1i6XiIiISDcCN1pvmvnz5yMpKQlPPfUUACA1NRUFBQVITEyE\n3W5H9+7d8cADDyA/Px89e/bECy+8gKKiItx22224+uqrYTabMX/+fIwYMcLvdaurq3Hy5EnIMrP+\npfJ+6wqCoHMlkYnnLzg8f8Hh+Ws+nrvg8PwFJz4+Hu3bt4fRaLzgcUw1TVRWVoaMjAzf7YSEBFgs\nFiQmJuLw4cNISUnBwoULERsbi4kTJyInJwfTp0/H3r17YTQasXXrVkyaNAklJSUwGAy+1zl58iTM\nZjO6du2qx8eKaHa7HYDnz4IuHc9fcHj+gsPz13w8d8Hh+QtORUUFBEFAp06dLngcA2YTpaWlwWaz\n+W7bbDakp6cDAEwmE4xGI+Li4gAAo0ePxuHDh/26kjfeeCMEQUBJSQkyMzN998uyjK5du+Lyyy9v\npU/SdlRUVAAAkpOTda4kMvH8BYfnLzg8f83Hcxccnr/gWCyWJh3HRT5NNH78eOzevRsAkJeXh379\n+qGgoADFxcXo1asXysvLUVlZCQA4cuQIRowYgZUrV2L58uUAgIKCAsTHx6Nbt266fQYiIiKi1sAO\nZhMNHz4cQ4YMwezZs2E2m5GTk4PFixdj4MCBmDdvHl5//XXMmDEDmZmZSE5OxpQpU3DkyBE8/vjj\nKC0txfHjx/Hee+9xzgcRERG1eVzko7Njx44BAIfIm4HDHMHh+QsOz19weP6aj+cuODx/wfEOkael\npV3wOA6RExEREVFIMWASERERUUgxYBIRERFRSDFgEhEREVFIMWASERERUUgxYBIRERFRSDFgEhER\nEYU5t9uN+fPnY9iwYcjOzg54TEVFBe699178/Oc/b/BYcXExbrvtNowZM6alSwXAgElERNRqNm3a\nhLFjxyIrKwtjx47Fpk2bWuy97r77btxzzz0t9vqRZMOGDXqXELQVK1agXbt22LVrFx5//PGAxyQn\nJ2P69OlwOp0NHsvIyMCtt94KRVFaulQAvJIPERFRq9i0aRNmz56N/Px8333e30+YMCGk71VZWYm8\nvDwcOXIElZWVSEpKCunrR5LCwkLMnz8ft912m96lBGXLli2YMmUKZFnGz372s0aPu9D1c1rz2jrs\nYBIREbWCZcuW+YVLwBMwly9fHvL3WrduHRYuXIjBgwfjX//6l+/+f/zjHxBFEc8++ywA4LXXXsOV\nV16JQ4cO4auvvsJdd92Fp556CvHx8cjKysK77757wfepqqrCQw89hN///ve46aab8Omnn6KwsBA3\n3ngjxowZg/nz5yM2Nha5ubkYMGAA5s2bh3HjxmHo0KEAgDfffBNTp07FE088gTvvvBMlJSUBn2+1\nWv3e97777kNiYiLef/99pKamYuPGjdixYwfuvvtuZGdnY+jQofj2228BAHPmzMGpU6cwY8YMvPPO\nO3C5XHj22Wfx8MMPY9y4cX7np75nnnkGs2bNwpQpUzB58mSoqgoA2LNnD2677TYsWLAAw4cPR1FR\nUYN6Nm3aBLPZjLvvvhtz587FHXfcgX/+858AgKKiIkyaNAmPPPIIhg8fjpKSEmzbtg2//vWvMX36\ndIwfP75BLdu3b8d3332HnJwczJ8/v9FzF8iuXbtwww03YObMmVizZo3vktXfffcdbr31Vjz88MO4\n5pprQh8+NdLV0aNHtaNHj+pdRkQqLy/XysvL9S4jYvH8BYfnLzht7fwBaPFfXk05d5MnT9YURdH+\n9a9/aYMHD/Z77Prrr9feeOMNTdM07b333tPWrVunaZqmDRs2TPvggw80TdO0Rx99VMvOzr7o554+\nfbq2bNkyTdM07fPPP9cyMzM1TdO0lStXal26dNF27dqlffbZZ5rD4dDuuecebdSoUdqxY8e0HTt2\naF9++aXWqVMnraamRtM0TXvxxRe1sWPHaqqqNni+0+n0e9/Dhw9rgiBob731lnbw4EHt5MmT2pw5\n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\nEVFIMWASERERUUgxYBIRERFRSDFgEhEREVFIMWASERERUUgxYBIRERFRSDFgEhEREVFIMWASERER\nUUgxYBIRERFRSDFgEhEREVFIMWASERERUUgxYBIRERFRSDFgEhEREVFIMWASERERUUgxYBIRERFR\nSDFgEhEREVFIMWASERERUUgxYBIRERFRSDFgEhEREVFIMWASERERUUgxYBIRERFRSDFgEhEREVFI\nMWASERERUUgxYBIRERFRSDFgEhEREVFIMWASERERUUgxYBIRERFRSDFgEhEREVFIMWASERERUUgx\nYBIRERFRSDFgEhEREVFIMWASERERUUgxYBIRERFRSDFgEhEREVFIyXoXEEkWL16MyspKWCwWLFiw\nAH369PF7/O9//zu+/PJLDBw4EPPmzWvSc4iIiIjaGgbMJtqxYwf27duH3Nxc5OXlYcaMGdi5c6fv\n8ZdeeglWqxVr165t8nOIiIiI2iIOkTfRJ598ghEjRgAA+vbti0OHDsFqtQIA7HY7/vSnP6G6uhqT\nJ0/Gk08+CbfbfcHnEBEREbVV7GA2UVlZGTIyMny3ExISYLFYkJiYiMOHDyMlJQULFy5EbGwsJk6c\niJycnAs+x0vTNOQVnEaZU0bvLsmt+pkiXVVVld4lRDSev+Dw/AWH56/5eO6Cw/PXOhgwmygtLQ02\nm81322azIT09HQBgMplgNBoRFxcHABg9ejQOHz58wefU53C5Yat1t/AnICIiImodDJhNNH78eLz4\n4osAgLy8PPTr1w8FBQVITk5Gr169UF5ejsrKSiQlJeHIkSMYPXo0unfv7vec/v37IyEhwe91BUGA\nKSYeprgEJCezg9kcPG/B4fkLDs9fcHj+mo/nLjg8f81jsViadBwDZhMNHz4cQ4YMwezZs2E2m5GT\nk4PFixf7Voy//vrrmDFjBjIzM5GcnIwpU6YAgO85JSUlyMnJafT1VU1rrY9CRERE1KIETWOy0dOx\nY8dwuLAcyekZuO6KLnqXE1EqKioA8F+hzcXzFxyev+Dw/DUfz11weP6C4+1gpqWlXfA4riIPE+xg\nEhERUVvBgBkmVFXvCoiIiIhCgwEzTLCDSURERG0FA2aY4FRYIiIiaisYMMMEh8iJiIiorWDADBOq\nxoRJREREbQMDZphQOUJOREREbQQDZpjgEDkRERG1FQyYYUIFW5hERETUNjBghgmVY+RERETURjBg\n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\nIiIiimBRGzCzs7P1LqEByeDpYLKFSURERJEsagPmoEGD9C6hAYMsQ+EcTCIiIopwURsww5FBNnrm\nYDJfEhGPxAtAAAAgAElEQVQRUQRjwAwjslHyzMHkGDkRERFFMAbMMGKsu5IPW5hEREQUyRgwAXz9\n9dd6lwAAMBgNnmuR610IERERURCiah/Mvn37ora2tsH9VVVVOHv2rA4V+ZNFCQA8K8mJiIiIIlRU\ndTBffvllHD9+HNOnT8fx48d9v+bMmaN3aQAAUQREUYLiZsAkIiKiyBVVAfPmm28GAJjNZt99qqoi\nNzdXr5L8CIIASZbgdrv1LoWIiIio2aJqiNyrR48eyMrKwpVXXom9e/eie/fuepcEABAFAaIkw80h\nciIiIopgURkw58yZg2HDhmH37t0YNWoUbrvtNr1LAgCIgud65G63S+9SiIiIiJotqobIvWpqaiCK\nIn7xi18gPT0dCxcu1LskAIAoCpAkGW4XO5hEREQUuaKygzly5Eh06dIFHTt2BAAcPnwY//u//6tz\nVYAAASI7mERERBThojJgduvWDR9++KHvdlFRkY7VnCOKgCTJXEVOREREES0qA2aHDh3w+eefAwA0\nTcN//vOfsOhgioIASZLgUtjBJCIiosgVlQHzwIEDWLVqFQBPwMzLywubgClKnuuRExEREUWqqAyY\n69atQ69evXy3f/zxRx2rOce3yIdD5ERERBTBojJg5ufnY8mSJXC73dA0DQcOHMD+/fv1LguCb5si\ndjCJiIgockXlNkUrV67E5MmTkZaWht/+9re444479C4JACCCG60TERFR5IvKgHn11Vdj5MiRMBqN\nyMrKgiRJepcEwDNELkoSVG5TRERERBEsKgOmw+HAypUr0bt3b/Tv3x8bNmzQuyQA54bIXexgEhER\nUQSLmjmYtbW1EAQBJpMJixYt8t0/ePBg9OjRAwBQWVmJpKQknSr0bLTu2QeTczCJiIgockVNwKyo\nqMDrr7+O5557zu/+K664AgDwwQcfIDU1Fdddd50e5QGo62DKkbvIR9U0qKrWau/nVlS/r61JlqKy\n+U9ERNQkURMwO3XqhK5du2LKlCkYN24c0tPTIUkSSktL8dlnnyEmJgZ/+9vfdK1REM51MDVNgyAI\nutZzqbYfLEal3dlq7+essQEAjLEVrfaeAKABkEQBcUYZMQYJ8TEGtE+MQWqCCfExMiSR4ZOIiKJb\n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\nw4ZpxYoVWrZsmS699FJddtllev7556NnoQeDwcOeO3bsWG3fvj36/meffaaTTz650VFvzYXTprZu\n3apLLrlEV155ZXTK/v7772/22h/+8IfaunWr+vXrp7vuuuuwZ9T3RUNjxozRhg0bdMMNN0iK9K+k\n6Nd07LHHyrIs/exnP1NKSopmz57dYvu/+uornXzyya1+TQA6FwETQI/Wv39/rVq1Sr/85S/Vt29f\npaenH1b8MmTIEFVUVCgYDMrn8+mVV17RF198oTfeeEPf+973tGDBAl1//fX661//qtzcXF1xxRVa\nuXKlfv7zn6tXr16aNWuWbr75Zl1wwQUqLi7WzTffrLS0NBUWFmrXrl3auHGjdu7cqTvvvFOlpaV6\n+OGHVVRUpC1btmjTpk3atm2bXnjhBY0fP147duzQ559/rhUrVmj48OF69913dfbZZ+uOO+7Qrl27\n9IMf/ECLFy9WTU2NKioq9PTTT2vWrFn66quvdNttt+kHP/hB9P5Zs2ZpxowZ0eA2a9YsDRs2TAUF\nBSovL1d5ebnWrl2r8vJyHThwQFlZWY365e6779aXX36pc889VxMmTNCkSZP029/+VhdccIEk6emn\nn1ZZWVmjvpo8ebLuuOMO5efnKxAI6JVXXok+44svvoj2xXnnnadt27bplVde0X333afXX39dF154\noUaMGKHx48fryiuvVG5urmbPnq1/+7d/0/z58zVp0iSNGDFCgwYN0tVXX92o3+rPg3///fd17733\ndsF3FoAjoYocACStW7dOzz33nO6880716tWr1euHDh2qwsJCZWRk6A9/+IP69u2riy++uAta2jWO\nOeYYFRUVxbsZMautrdU999yj/v37a9asWfFuDnDUI2ACQJ3PP/9c+/bta1RR3ZJHHnlEa9eu1Tnn\nnCOv16vrr7++C1rYNd555x1deOGFeuSRR3T55ZfHuzkx+eSTTxQOh3XiiSfGuykARMAEAACAyzjJ\nBwAAAK4iYAIAAMBVBEwAAAC4ioAJAAAAVxEwAQAA4CoCJgAAAFxFwAQAAICrCJgAAABwFQETAAAA\nriJgAgAAwFUETAAAALiKgAkAAABXETABAADgKgImAAAAXEXABAAAgKsImAAAAHAVARMAAACuImAC\nAADAVQRMAAAAuIqACQAAAFcRMAEAAOAqAiYAAABcRcAEAACAqwiYAAAAcBUBEwAAAK4iYAIAAMBV\nBEwAAAC4ioAJAAAAVxEwAQAA4CoCJgAAAFxFwAQAAICrCJgAAABwFQETAAAAriJgAgAAwFUETAAA\nALiKgAkAAABXETABAADgKgImAAAAXEXABAAAgKsImAAAAHAVARMAAACuImACAADAVQRMAAAAuIqA\nCQAAAFcRMAEAAOAqAiYAAABcRcAEAACAqwiYAAAAcBUBEwAAAK4iYAIAAMBVBEwAAAC4ioAJAAAA\nVxEwAQAA4Kr/Dwgw5ycNq/WIAAAAAElFTkSuQmCC\n" } ], "prompt_number": 36 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use the `predict` method to fit this optimized model on the test-set inputs. Then,\n", "we can use the `classification_report` and `confusion_matrix` functions to assess the fit on the test set." ] }, { "cell_type": "code", "collapsed": false, "input": [ "print metrics.classification_report(testy, clf.predict(testX))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " precision recall f1-score support\n", "\n", " 0 0.78 0.44 0.56 16\n", " 1 0.18 0.50 0.27 4\n", "\n", "avg / total 0.66 0.45 0.50 20\n", "\n" ] } ], "prompt_number": 37 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The confusion matrix. Rows represent the actual class of the test data, the columns represent the predicted class." ] }, { "cell_type": "code", "collapsed": false, "input": [ "print ' Predicted'\n", "print ' Class'\n", "print DataFrame(metrics.confusion_matrix(testy, clf.predict(testX)))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " Predicted\n", " Class\n", " 0 1\n", "0 7 9\n", "1 2 2\n" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }