{ "metadata": { "name": "", "signature": "sha256:2cdf988b0d48fc0c25cc8d3b303fbe139abcf45fa559ec0abc6cb11505084860" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "

Optimization and Machine Learning with Python

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This part of the advanced tutorial focuses more on some specific packages.\n", "The topics covered in this part are:\n", "\n", "- Optimization in Python with [OpenOpt](http://openopt.org/).\n", "- Easy and effective Machine Learning in Python with [Scikit-Learn](http://scikit-learn.org/stable/).\n", "\n", "**Prerequisites:** *Basic and Intermediate tutorials or some experience with Python, Numpy, Scipy, Matplotlib (optional). Basic knowledge in machine learning and optimization*." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. Optimization in Python with OpenOpt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this part, we'll learn how to solve optimization problems using the **OpenOpt** package.\n", "\n", "**OpenOpt** is a free-source package (under the license: [BSD](http://openopt.org/license)) for numerical optimization of a variety\n", "of linear, nonlinear problems, least-square problems, network and stochastic problems.\n", "\n", "It contains more than 30 different solvers (both free and commercial) including solvers written in C and Fortran.\n", "Some solvers are already included in the OpenOpt package (e.g. [`ralg`](http://openopt.org/ralg), \n", "[`gsubg`](http://openopt.org/gsubg), [`interalg`](http://openopt.org/interalg)) and other rely on other packagess \n", "(e.g. [`scipy`](http://www.scipy.org), [`IPOPT`](http://openopt.org/IPOPT), [`ALGENCAN`](http://openopt.org/ALGENCAN))\n", "\n", "In this demonstration we are considering solvers existing in OpenOpt and SciPy. The library workstations have already OpenOpt\n", "installed and Scipy is included in the Python distribution.\n", "For instructions how to install OpenOpt on other machines go to: [http://openopt.org/Install](http://openopt.org/Install). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Acknowledgements:\n", "\n", "- OpenOpt's [website](http://openopt.org)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Optimization formulation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The general formulation of an optimization problem is to \n", "An optimization problem can be expressed in the following way:\n", "\n", "- Given: a function $f : A \\to R$ from some set $A$ to the set of real numbers\n", "- Want to find a solution $x_0 \\in A$ such that $f(x_0)$ is the minimum (or maximum) of $f(x)$ for all $x \\in A$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For example the standard form of a continuous optimization problem is:\n", "\n", "$\n", " \\text{max (or min) } \\mathbf{f(x)}\n", "$\n", "\n", "$\n", " \\text{subject to } \\\\\n", "$\n", "\n", "$ \n", " \\mathbf{lb} \\le \\mathbf{x} \\le \\mathbf{ub} \\\\\n", " \\mathbf{A x} \\le \\mathbf{b} \\\\\n", " \\mathbf{A}_\\mathbf{eq} \\mathbf{x} = \\mathbf{b}_\\mathbf{eq} \\\\\n", " \\mathbf{c_i(x) \\le 0} \\quad \\forall i=0,...,I \\\\\n", " \\mathbf{h_j(x) = 0} \\quad \\forall i=0,...,J \\\\\n", " \\mathbf{x \\in R^n}\n", "$\n", "\n", "where $\\mathbf{f, c_i, h_j} :R^n \\to R$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "According to the type of the objective function $\\mathbf{f(x)}$ and constraints the optimization problem is either linear, quadratic, nonlinear, unconstrained, constrained etc." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### OpenOpt syntax\n", "\n", "In *OpenOpt* optimization problems are assigned in the following way:\n", "\n", "> from openopt import NLP\n", "\n", "or other constructor names: LP, MILP, QP, etc according to the problem\n", "\n", "Then we use\n", "\n", "> p = NLP(\\*args, \\**kwargs)\n", "\n", "to assign the constructor to object *p*. \n", "\n", "Each constructor class has its own arguments\n", "\n", "e.g. for NLP it is least *f* and *x0*, the objective function and the initial guess.\n", "\n", "thus using \n", "\n", "> p = NLP(objfun, initialguess)\n", "\n", "will assign *objfun* to f and *initialguess* to x0.\n", "\n", "We can use \n", "\n", "> p.kwargs\n", "\n", "to change any *kwargs* defined in the constructor.\n", "\n", "Finally we solve the problem by\n", "\n", "> r = p.solve(nameOfSolver, otherParameters)\n", "\n", "Object *r* contains all results, i.e. the minimizer, the objective function at solution and output\n", "parameters. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Adding OpenOpt path to PYTHONPATH\n", "\n", "The best way to see how it works is to go through some examples.\n", "\n", "But since OpenOpt is an additional package not included in the Python distribution we use first we need to include its path to the `PYTHONPATH`.\n", "\n", "If you are using a library workstation this can be done in the notebook by running:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import sys\n", "sys.path.append('/Library/Python/2.7/site-packages/openopt-0.5404-py2.7.egg')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "On other machines (Linux or Mac) add the following line in the .bashrc (Linux) or .bash_profile (Mac):\n", "\n", "> export OPENOPT=path-where-the-OOSuite-is\n", "\n", "> export PYTHONPATH=\\$PYTHONPATH:\\$OPENOPT\n", "\n", "If you don't have such a file then create one." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 1 : Linear problem\n", "\n", "A linear optimization problem has the following form:\n", "\n", "$\n", " \\text{max (or min) } \\mathbf{c}^T\\mathbf{x}\n", "$\n", "\n", "$\n", " \\text{subject to } \\\\\n", "$\n", "\n", "$ \n", " \\mathbf{lb} \\le \\mathbf{x} \\le \\mathbf{ub} \\\\\n", " \\mathbf{A x} \\le \\mathbf{b} \\\\\n", " \\mathbf{A}_\\mathbf{eq} \\mathbf{x} = \\mathbf{b}_\\mathbf{eq} \\\\\n", " \\mathbf{x \\in R^n}\n", "$\n", "\n", "Consider the following problem adapted from OpenOpt examples on [Linear Problems](http://trac.openopt.org/openopt/browser/PythonPackages/OpenOpt/openopt/examples/lp_1.py):" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\"\"\"\n", "Example:\n", "Let's concider the problem\n", "15x1 + 8x2 + 80x3 -> min (1)\n", "subjected to\n", "x1 + 2x2 + 3x3 <= 15 (2)\n", "8x1 + 15x2 + 80x3 <= 80 (3)\n", "8x1 + 80x2 + 15x3 <=150 (4)\n", "-100x1 - 10x2 - x3 <= -800 (5)\n", "80x1 + 8x2 + 15x3 = 750 (6)\n", "x1 + 10x2 + 100x3 = 80 (7)\n", "x1 >= 4 (8)\n", "-8 >= x2 >= -80 (9)\n", "\"\"\"\n", "\n", "from numpy import *\n", "from openopt import LP\n", "f = array([15, 8, 80])\n", "A = array([[1, 2, 3], [8, 15, 80], [8, 80, 15], [-100, -10, -1]]) \n", "b = array([15, 80, 150, -800]) \n", "Aeq = array([[80, 8, 15], [1, 10, 100]]) \n", "beq = array([750, 80])\n", "\n", "lb = array([4, -80, -inf])\n", "ub = array([inf, -8, inf])\n", "p = LP(f, A=A, Aeq=Aeq, b=b, beq=beq, lb=lb, ub=ub)\n", "#or p = LP(f=f, A=A, Aeq=Aeq, b=b, beq=beq, lb=lb, ub=ub)\n", "\n", "#r = p.minimize('glpk') # CVXOPT must be installed\n", "#r = p.minimize('lpSolve') # lpsolve must be installed\n", "r = p.minimize('pclp') \n", "#search for max: r = p.maximize('glpk') # CVXOPT & glpk must be installed\n", "\n", "print('objFunValue: %f' % r.ff) # should print 204.48841578\n", "print('x_opt: %s' % r.xf) # should print [ 9.89355041 -8. 1.5010645 ]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "------------------------- OpenOpt 0.52 -------------------------\n", "solver: pclp problem: unnamed type: LP goal: minimum\n", " iter objFunVal log10(maxResidual) \n", " 0 0.000e+00 2.90 \n", " 1 0.000e+00 -12.94 \n", "istop: 1000\n", "Solver: Time Elapsed = 0.0 \tCPU Time Elapsed = 0.01\n", "objFunValue: 204.48842 (feasible, MaxResidual = 1.13687e-13)\n", "objFunValue: 204.488416\n", "x_opt: [ 9.89355041 -8. 1.5010645 ]\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can easily verify that solution satisfies the constraints:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "print np.linalg.norm(np.dot(Aeq,r.xf)- beq)\n", "print np.dot(A,r.xf)- b <= 0" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1.21417595911e-13\n", "[ True True True True]\n" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 2: Solving nonlinear equations\n", "\n", "Solving nonlinear equations can be formulated as minimizing the 2-norm of the vector of equations.\n", "\n", "Below is a script solving a system of three equations (from OpenOpt examples on [Non-linear least squares](http://trac.openopt.org/openopt/browser/PythonPackages/OpenOpt/openopt/examples/nllsp_1.py))." ] }, { "cell_type": "code", "collapsed": false, "input": [ "\"\"\"\n", "Let us solve the overdetermined nonlinear equations:\n", "a^2 + b^2 = 15\n", "a^4 + b^4 = 100\n", "a = 3.5\n", "\n", "Let us concider the problem as\n", "x[0]**2 + x[1]**2 - 15 = 0\n", "x[0]**4 + x[1]**4 - 100 = 0\n", "x[0] - 3.5 = 0\n", "\n", "Now we will solve the one using solver scipy_leastsq\n", "\"\"\"\n", "%pylab inline --no-import-all\n", "from openopt import NLLSP\n", "from openopt import NLP\n", "\n", "f = lambda x: ((x**2).sum() - 15, (x**4).sum() - 100, x[0]-3.5)\n", "# other possible f assignments:\n", "# f = lambda x: [(x**2).sum() - 15, (x**4).sum() - 100, x[0]-3.5]\n", "#f = [lambda x: (x**2).sum() - 15, lambda x: (x**4).sum() - 100, lambda x: x[0]-3.5]\n", "# f = (lambda x: (x**2).sum() - 15, lambda x: (x**4).sum() - 100, lambda x: x[0]-3.5)\n", "# f = lambda x: asfarray(((x**2).sum() - 15, (x**4).sum() - 100, x[0]-3.5))\n", "#optional: gradient\n", "def df(x):\n", " r = zeros((3,2))\n", " r[0,0] = 2*x[0]\n", " r[0,1] = 2*x[1]\n", " r[1,0] = 4*x[0]**3\n", " r[1,1] = 4*x[1]**3\n", " r[2,0] = 1\n", " return r\n", "\n", "# init esimation of solution - sometimes rather pricise one is very important\n", "x0 = [1.5, 8]\n", "\n", "#p = NLLSP(f, x0, diffInt = 1.5e-8, xtol = 1.5e-8, ftol = 1.5e-8)\n", "# or\n", "# p = NLLSP(f, x0)\n", "# or\n", "p = NLLSP(f, x0, xtol = 1.5e-8, ftol = 1.5e-8)\n", "\n", "#optional: user-supplied gradient check:\n", "#p.checkdf() # requires DerApproximator to be installed\n", "\n", "r = p.solve('scipy_leastsq', plot=1, iprint = 1)\n", "\n", "print 'x_opt:', r.xf # 2.74930862, +/-2.5597651\n", "print 'funcs Values:', p.f(r.xf) # [-0.888904734668, 0.0678251418575, -0.750691380965]\n", "print 'f_opt:', r.ff, '; sum of squares (should be same value):', (p.f(r.xf) ** 2).sum() # 1.35828942657\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n", "\n", "------------------------- OpenOpt 0.52 -------------------------" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "solver: scipy_leastsq problem: unnamed type: NLLSP\n", " iter objFunVal \n", " 0 1.601e+07 \n", " 1 1.358e+00 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 2 1.358e+00 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "istop: 1000 (Both actual and predicted relative reductions in the sum of squares\n", " are at most 0.000000)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Solver: Time Elapsed = -0.05 \tCPU Time Elapsed = -0.051061\n", "Plotting: Time Elapsed = 0.36 \tCPU Time Elapsed = 0.361061\n", "objFunValue: 1.3582894\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nrFu3jr1793L//ffTvHlzqlevzmGHHYaIsHHjRgBeeeUVJk2aRHZ2Njk5OXz88ccFHmfUqFEsXbqU\nY445hrZt2/L2228DsHbt2nz5HXzwwdSuXbtYOSSDFShpLux18JafKUi3bt2YNWsW33//PSLCfffd\nR5MmTVi2bFmR26oqK1euzJvetm0bP/30Ew0bNgSgR48evPHGGyxcuJCvvvqKiy66qFixNW3alClT\nprBp06a8YceOHTRo0IBx48YxceJEpk+fzubNm/nuu+/yvdSqTZs2vP7662zYsIGLLroorxorXnVV\n8+bNGTduHBs2bOC+++6ja9eueceJzm/Hjh38+OOPxcohGaxAMcaknaVLl/Lee++xc+dOKleuTJUq\nVahQoQLXX389ffr0YdmyZagqixYt4qeffoq7j0mTJjF79mx27dpFnz59aN++PY0aNQKgcePGtGnT\nhquvvpquXbtSuXLlYsV300038eCDD+Y19G/YsIGJEycCrvCqXLkytWrVYvv27Tz44IN52+3evZux\nY8eyefNmypcvT9WqVSlfvjwA9erV48cff2TLli15648ZM4YNGzYAUL16dUSE8uXLc8kll/DWW2/l\n5de3b1/27dtXrBySwQqUNBf25xgsPxPPzp07eeCBB6hTpw4NGjRg48aNPProo/Tu3ZvLLruM8847\nj+rVq3PDDTfw66+/Avl/4YsI3bt3Z8CAAdSuXZv58+fnVXFF9OzZk88//7zY1V0Ad9xxB126dMm7\ni6x9+/bMmTMHcNVpzZo1o1GjRhx33HG0b98+X2xjxozhsMMOo3r16jzzzDOMHTsWgKOPPppu3bpx\n+OGHU6tWLdauXcs777zDcccdR9WqVbnzzjuZMGEClStX5thjj+Wpp56ie/fuNGzYkFq1auWrAguK\ndQ5pTBkW1s4hr7nmGho3bswjjzxS4DqzZs2iR48efP/99ymMLHkOO+wwRo0axdlnn51vvogwduxY\n1q9fz5///Od889U6hyxbwl4Hb/mZZCiqkNy9ezfDhw/P1/uuKT0rUIwxoVNYNylffvklNWvWZN26\ndfl+sa9YsYKqVaseMFSrVo1Vq1alKvSMZlVexpRhYa3yMvtZlZcxxpiMYwVKmgt7HbzlZ0x4WIHi\ng71799Kjx23s3bs36FCMMSYwFYIOIAwGDXqWV145mSOP/Bf9+t3o677D/hyD5Re8wDsUNKFhBUop\n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\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "x_opt: [ 2.74931062 2.55976255]\n", "funcs Values: [-0.88890684 0.06781965 -0.75068938]\n", "f_opt: 1.3582894266 ; sum of squares (should be same value): 1.3582894266\n" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 3: Least square problem\n", "\n", "Consider some 2D data. We would like to find a model to the measured data that minimizes the discrepancy between model predictions and the data. This can be formulated by minimizing the sum of the squares of the difference between values of model and measured data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First create some data and plot them:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import matplotlib.pyplot as plt" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "n = 200\n", "X = np.linspace(0,2,n)\n", "m = lambda X : 0.8*np.exp(-1.5*X)+1.2*np.exp(-0.8*X)\n", "perturb = 0.2*np.random.uniform(0,1,n)\n", "Y = m(X)*(1.0+perturb)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "plt.figure(figsize=(15,10), dpi=100) # changing figure's shape\n", "plt.plot(X,Y,'.')\n", "plt.xlabel('$X$',fontsize=16) # horizontal axis name\n", "plt.ylabel('Y',fontsize=16) # vertical axis name\n", "plt.title('Sample data',fontsize=18) # title \n", "plt.grid(True) # enabling grid" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAA4EAAAJxCAYAAAD8T7dhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X+wZWtZH/jvGxuVFp2j40gKLqR1hERSOhc5g0TGsOdX\nBk5ZCDX0qIwyVxPPVSQhWg6OxpkwGRN14hg0otI1IGByID06Iho62jOhb1ArEJVGFLBFuQoYuY5w\nVAQNyDt/rH1yz9339Nk/1t57rbXX51N1q3vts3rtdzf1sOvp9/2+b6m1BgAAgHH4c10PAAAAgO3R\nBAIAAIyIJhAAAGBENIEAAAAjogkEAAAYEU0gAADAiGgCAWBBpZQbpZR3bfH97iqlfKyU8le39Z4A\n7D5NIAAbVUr5rFLKlVLKO0opf1xKeX8p5W2llJeXUiZdj28Fgzlgt5RyZynlhaWUv9D1WADojwtd\nDwCA3VVK2U9yT5I/TfLKJL+a5KFJHpvkryX5wyQ3uhrfCNyZ5H9J8i+T/FbHYwGgJzSBAGzS303y\niUmeVGt96+wPSykP3/6QRql0PQAA+sNyUAA26TFJfv+sBjBJaq3vO31dSvnSUsprSym/VUr5k1LK\n75VSfryU8rmzf7aUcm8p5fWllM8rpVwvpfxhKeW+Uso/KqVcKKU8tJTyf5RS3ltK+XAp5Z5Syl+a\necZJ5u6/nC6bPHnft5RSvnTRD1lKeUwp5UdKKf+2lPKnpZR3lVL+91LKxSWe8TXTJbN/Ukr59VLK\n83NG81ZKecT0c92cLq39cCnlV0spLyil/LlT970wycuml6+ffs6PlVJ+ePrzh5VSvr2U8sbp3/PJ\n+35HKeWhi44bgOExEwjAJr0zyUEp5Zm11h9f4P6vT/L/JXlJkt9N8tlJDpP8XCnl82ut7zx1b01y\nR5KfSfLPkvxfSf6bJM9P8rEkj0vzPfcPkvxHSb4pyWtKKZ9Ta53N9X1XkotJvj9N4/VVSV5VSvnE\nWusrzhtwKeUJaZZbvj/JDyZ5b5plmH8ryZNLKU+ptX50zjP+dpLvSXIzybck+aTpeH/vjNs/L8kz\nk/zfSX4jyUOSPC3Jdyb5rCRfO73vx5L8+TR/f38/ydunr//G9Nc7kvz1JD+a5J8k+WiSSZIXJHl8\nkqeeN2YAhqs8+HsQANajlPKkNJnAh6RpCH82yZuS3Ki1vuOM+x9aa/3wzGt/KU1z9NJa69efev3e\nJI9OcrnW+mOnXv+FJJ+f5Cdqrc889frfTPK9SZ5aa/2Z6Wt3pZkt+60kn1dr/aPp65+S5JeTfHKS\nR9Za/2T6+o0kj661ftap575l+vn+01rrH596/RlpGrWvOq+RLKXspWkc35Vk/9R7PTLJO9I0p/95\nrfVfTV//xJN7Zp7zyiTPTnJHrfV3Zz7f5OTPn7r/IUk+Vmv9s5nX/16Sb0vyBbXWf3O7cQMwXJaD\nArAxtdZ/neQJSV6R5FOS3JXkB5K8bbo88zNn7v9wkpTGp5RSPj3NzOCtJE884y3ec7oBnPq56a//\neOb1n53++tlnPOcHTxrA6Tj+MMkPJfnUNLNjZ5ouU/3cJK9K8tBSyqef/Dcdx4fSbIBznr+WZrOc\nF59u7mqt703yTzOzJPT0PaWUjy+lfNr0/X4mzff6E+a838lzPnLSAE6Xz37q9Dn/7/SWs/6+AdgB\nloMCsFG11l9Js7wypZRHJ3lKkr+R5IuS/EQp5Qm11o9Mf/74JP/b9J5PmnnUb57x+LPO7PvAbX52\n8vp/eMafefs5r33mGT878TnTX//X6X9n+Yxz/nzSLOFMmlm/ueMqpVxI8j8leU6S/zgPzg1+6pz3\nO/2s56ZZPvq4PPgfhhd+DgDDogkEYGtqrb+d5EeS/Egp5Q1Jnpxmxunnpg3iv0pynOTvJfm1JCfL\nK1+UBzeFSfJnZ7w272fr3Cnz5FnfneRf3OaeD9zm9VV9T5LnJXl1mob5viQfSTMD+F1ZcJVPKeUb\n04z7p9P8/f5Okn+XJiv48kWfA8DwaAIB6Mqb0jSBj5hePzNNo/fFtdZ7Tt84Xab44WzO45L85Bmv\nJWfPQJ64Nf31Y7XWf7nie59s1PI5SV5/mzGc9pVJ7qm1Pvv0i6WUx55x73nB/69M8q5a69NmnmND\nGIAd51/5ANiYUsp/XUr5uDNef2iaLFxN8rbpyyczd39u5t6vSbLp8wS/broZzMl7/gdplkl+IM3G\nNmeqtb45ya8k+drZfOP0ORdKKfOWVV5P0+B+/emjGUopd6TZ6GW2kftoHvx39ElJvuGMZ39w+utZ\nS2A/Ov2zp4+VOFlqCsAOMxMIwCb9oySfVkp5bZpm6UNJHpWmuXlMklfUWn91eu/r0hxz8COllO9P\nsyz0yWmOP/iNbPY76/eSvHF6ht7JERF3JPkbZ+zEObuc9CvTHBHxy6WUl6Vpai+m2YDmmWmaqlfe\n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\n", "text": [ "" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's solve the least square problem:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\"\"\"\n", "In the DFP example we will search for z=(a, b, c, d) \n", "that minimizes Sum_i || F(z, X_i) - Y_i ||^2\n", "for the function\n", "F(x) = a*exp(-b*x) + c*exp(-d*x)\n", "\"\"\"\n", "from openopt import DFP\n", "\n", "f = lambda z, X: z[0]*exp(-z[1]*X[0]) + z[2]*exp(-z[3]*X[0])\n", "initEstimation = [0.2, 0.9, 1.9, 0.9]\n", "lb = [-np.inf, -np.inf, -np.inf, -np.inf]\n", "ub = [np.inf, np.inf, np.inf, np.inf]\n", "p = DFP(f, initEstimation, X, Y, lb=lb, ub=ub)\n", "\n", "p.df = lambda z, X: [exp(-z[1]*X[0]), -z[0]*z[1]*exp(-z[1]*X[0]), exp(-z[3]*X[0]), -z[2]*z[3]*exp(-z[3]*X[0])]\n", "\n", "r = p.solve('nlp:ralg', plot=1, iprint = 10)\n", "f = lambda z, X: z[0]*exp(-z[1]*X) + z[2]*exp(-z[3]*X)\n", "print('solution: '+str(r.xf)+'\\n||residuals||^2 = '+str(r.ff))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "------------------------- OpenOpt 0.52 -------------------------\n", "solver: ralg problem: unnamed type: DFP\n", " iter objFunVal \n", " 0 1.147e+00 \n", " 10 1.460e+00 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 20 6.557e-01 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 30 6.381e-01 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 40 6.384e-01 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 50 6.386e-01 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 60 6.387e-01 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 70 6.384e-01 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 80 6.379e-01 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 90 6.370e-01 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 100 6.380e-01 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 109 6.367e-01 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "istop: 4 (|| F[k] - F[k-1] || < ftol)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Solver: Time Elapsed = 2.59 \tCPU Time Elapsed = 2.608965\n", "Plotting: Time Elapsed = 2.36 \tCPU Time Elapsed = 2.341035\n", "objFunValue: 0.63670925\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nlKwd0DmXHCtXrow7Qs68YIjAqadexfTpZ6ZNaVw9NH36mZx6arKalJLcTpzk7OD5k66mpoYrrriC\nnXbaiR49enDJJZewzTbb0LNnTwYNGsT999/f6nvHjx/PgAEDqK6u5uc//zlDhw7l5ptvLktuv46h\nxCZNeoVx4/oCm4VTbiR4Nnwd8BMA7r7bMLuYW2/9NXvvHUzbb79dW6xn1Kjha82bMOHltcZXrOjK\n2LHXAHDZZTfSpQtceeXwqHbPOZenMWPGMG7cODbZZBMeeughnn32Wfr168ff//53jj32WN588036\n9u3b4j0ffPABRx55JLfddhuHHnooo0eP5qabbuL4448vS2YvGErs17++hQULMmsEA9KGd+Xzz6Gh\nIXilpk2c2PIdl1zS2rz0cQEDqK0NxhYvhlWr4Mori9qFtSS5nTjJ2cHzl0oprv8q5FIJSZx22mls\nvvnmABxxxBGr533/+9/nt7/9LZMmTeLQQw9t8b5HHnmEHXbYgcMPPxyA0047jStL/R+7DV4wlNhv\nfnMiU6bcwoIFI8Ip6b/erwegb9/rGTt2CIMHr5mWXVvz1rZixXDWXz+vtzjXKcR5/duWW265evj2\n22/n6quvXn077yVLlvDhhx+u9Z758+ezxRZbtJiWOR4l72MoscGDaznggAVA+jULjWnD73LggYsY\nPLi25Nvu0iWoMZT6P0GS24mTnB08f0eQul3F3LlzGT58ONdeey0fffQRH3/8MTvssEPWq7Y322wz\n3nnnndXjZtZiPGpeMETgmmvOZODA7B3MAwdexTXXnJl1XrGkoHBYsSKS1TvnirB06VIk0bt3b5qb\nm7n11luZNm1a1mUPPPBApk6dygMPPMDKlSu59tpref/998uW1QuGCPTo0YMLLqhjww1T1yzUAbDh\nhg9ywQX70b1798i23bVr6QuGSmknLkSSs4Pn70gGDhzIWWedxZ577km/fv2YNm0a++yzz+r56XdJ\n7d27N/fccw/nnnsuvXv3ZsaMGey+++6su+66ZcnqN9GL0LBhZ/HYYxcTXOS2hP33v5BHH422A6lX\nL5g7F6qrI92McxWjM9xEr7m5mS233JK//e1vDB06dK35krjzzjtZuHAhZ5xxRovpfhO9CnPzzWdS\nU3MV0EhNzVXccks0TUjpoqgxJLmdOMnZwfN3ZuPHj+eTTz7hyy+/5NJLLwVgyJAhZdm2FwwR2nzz\n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\nLxicc8618P+Rt2lQqIQyygAAAABJRU5ErkJggg==\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "solution: [ 0.33837813 2.26118336 1.86071125 0.90294692]\n", "||residuals||^2 = 0.636709253815\n" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "fun = lambda z, X: z[0]*exp(-z[1]*X) + z[2]*exp(-z[3]*X)\n", "\n", "plt.figure(figsize=(15,10), dpi=100) # changing figure's shape\n", "plt.plot(X,Y,'.')\n", "plt.plot(X,fun(r.xf,X),'r-',linewidth=1.5)\n", "plt.xlabel('$X$',fontsize=16) # horizontal axis name\n", "plt.ylabel('Y',fontsize=16) # vertical axis name\n", "plt.title('Sample data',fontsize=18) # title \n", "plt.grid(True) # enabling grid" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAA4EAAAJxCAYAAAD8T7dhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd0XNX1sOH3uFCECaIEEqpJMMU0AyaG0ASEpjh00yEm\ngCAYAvgHSQgtlAChmGqKA3xUYUzoxQRTbHo1poMJ4ISS0EU1zb7fH0cKQpYlzdyZuVPeZy2WPKOr\ne7ecnOW15+x9dkiSBEmSJElSbeiVdQCSJEmSpNIxCZQkSZKkGmISKEmSJEk1xCRQkiRJkmqISaAk\nSZIk1RCTQEmSJEmqISaBkiT1UAhhYgjh9RI+b3gIYWYIYf1SPVOSVP1MAiVJRRVC+EkIYUwI4aUQ\nwuchhA9DCC+EEC4NITRkHV8eKmbAbghhUAjhzyGEpbKORZJUPvpkHYAkqXqFEAYDk4CvgMuB54G5\ngWWBTYFPgIlZxVcDBgFHA/cA/8o4FklSmTAJlCQV0zHAXMBaSZI82/GbIYRFSh9STQpZByBJKh+W\ng0qSimkA8EFnCSBAkiTvtH8dQtgxhHBzCOFfIYQvQwjvhRBuCCGs3PFnQwjTQgj3hhBWCSFMCCF8\nEkJ4N4RwRgihTwhh7hDC6SGEt0II00MIk0IIy3e4R1vP3catZZNtz306hLBjT3/JEMKAEMIVIYT/\nhBC+CiG8HkI4JYRQl8M99mktmf0yhPBKCOEgOkneQgiLtv5eU1pLa6eHEJ4PIfw+hNCr3XV/Bi5p\nfXlv6+85M4Tw/1q/3y+EcEII4dHWv+e2554UQpi7p3FLkiqPO4GSpGL6J9AYQtgmSZIbenD9COB9\n4ELgv8AyQBPwYAhh9SRJ/tnu2gRYHLgTuAa4FtgMOAiYCQwk/jt3IvBD4FDgxhDCCkmSdOzr+ytQ\nB5xLTLz2BK4OIcyVJMllXQUcQliDWG75IXA+8BaxDPN3wDohhA2SJPm2m3scDIwCpgCHA/O0xvte\nJ5evAmwDXA+8CvQFtgBOBn4C7Nd63XXAj4h/f38BXmx9/9XWr4sDewF/B64EvgUagN8DqwGbdxWz\nJKlyhVn/HZQkqTBCCGsRewL7EhPCB4DHgIlJkrzUyfVzJ0kyvcN7yxOTo4uTJBnR7v1pwJLAsCRJ\nrmv3/hPA6sBNSZJs0+79A4GzgM2TJLmz9b3hxN2yfwGrJEnyaev7PwCeAeYFFkuS5MvW9ycCSyZJ\n8pN293269fdbM0mSz9u9vzUxUduzq0QyhFBPTBxfBwa3e9ZiwEvE5HTDJEnua31/rrZrOtzncmAX\nYPEkSf7b4fdraPv5dtf3BWYmSTKjw/vHAUcCQ5IkeXx2cUuSKpfloJKkokmS5BFgDeAy4AfAcOA8\n4IXW8sylO1w/HSBEPwghLETcGZwK/KyTR7zZPgFs9WDr13M6vP9A69dlOrnP+W0JYGscnwAXAPMT\nd8c61VqmujJwNTB3CGGhtv9a4/iCeABOVzYlHpYzun1ylyTJW8BVdCgJbX9NCGGOEMICrc+7k/jv\n+hrdPK/tPt+0JYCt5bPzt97n7tZLOvv7liRVActBJUlFlSTJc8TySkIISwIbAHsD6wE3hRDWSJLk\nm9bvrwYc33rNPB1u9Vont+9sZt9Hs/le2/sLdvIzL3bx3tKdfK/NCq1fj239rzMLd/HzEEs4Ie76\ndRtXCKEP8EdgD+CnzNo3OH83z2t/r/2J5aMDmfWD4R7fR5JUWUwCJUklkyTJv4ErgCtCCPcD6xB3\nnB5sTRDvA1qA44CXgbbyyjOZNSkEmNHJe919r5AnZbbd6zTgjtlc89Fs3s/XKOAAYCwxYX4X+Ia4\nA/hXeljlE0IYSYz7H8S/37eBr4m9gpf29D6SpMpjEihJyspjxCRw0dbX2xATvaFJkkxqf2FrmeJ0\nimcgcEsn70HnO5BtprZ+nZkkyT15PrvtoJYVgHtnE0N7uwOTkiTZpf2bIYRlO7m2q8b/3YHXkyTZ\nosN9PBBGkqqcn/JJkoomhLBJCKF3J+/PTeyFS4AXWt9u27nr1eHafYBizxP8bethMG3PnI9YJvkR\n8WCbTiVJ8hTwHLBfx/7G1vv0CSF0V1Y5gZjgjmg/miGEsDjxoJeOidy3zPp3NA9wSCf3/qz1a2cl\nsN+2/mz7sRJtpaaSpCrmTqAkqZjOABYIIdxMTJa+AJYgJjcDgMuSJHm+9drbiWMOrgghnEssC12H\nOP7gVYr7b9Z7wKOtM/TaRkQsDuzdyUmcHctJdyeOiHgmhHAJMamtIx5Asw0xqbp8dg9OkqQlhHAU\nsTTzoRDCFa0/vy9xp3G1Dj/yd2DfEMJY4iEui7TG+0Ent3+MOC7jiBDCAsTy2teSJHms9T4nAeND\nCDcQD+7ZhVgSKkmqYiaBkqRiOgTYClgX2A6oJyZ3zwAnJUlyaduFSZK8FkLYgjjX70/EncEHgPWB\n0cBSHe49u1LHpIvvzc4fWp8zgphUvQzsmiTJ2O7unSTJ060H2hwObEncQfyUeDDN/+O70zZnK0mS\nUSGEz4CRxN//38CpwCfAxR0uH9l6/x2If7f/Js5VfAK4q8N93wgh/Kb19zuPOMriUmJyeCoxod2L\n2BP4H+K8xUv5bndWklSFSjonMISwBPHT0IWJ/4iOSZLk7A7XNAA38V0PxnVJkpxQsiAlSTWjqzl6\nkiRVq1LvBH4DHJIkyZQQQj/gyRDChCRJOh6BPSlJki1LHJskSZIkVb2SHgyTJMl/kySZ0vrnz4jz\njxbt5NJCHt8tSZIkSWqV2emgIYT+xGb3Rzt8KwF+HkJ4OoRwewihs+OxJUkqlNL1RUiSVAZK2hP4\nv4fGUtCJwAlJktzY4XvzAjOSJPmi9YCAs5Ik6Wz2kSRJkiQpRyVPAkMIfYFbgfFJkpzZg+tfB9ZI\nkuTDDu/7ya0kSZKkmpYkSc6tdCU9GCaEEIhHXb8wuwQwhLAI8G6SJEkI4WfERPXDzq7NYhdTqhbD\nhw/n0ksvzToMqWK5hqT0XEdSOjG9yl2pTwddB9iNOFD3qdb3/gQsCZAkyYXA9sBvQwjfEocK71Ti\nGCVJkiSpapU0CUyS5AG6OYwmSZLRxKHAkoqof//+WYcgVTTXkJSe60jKRmang0rKVkNDQ9YhSBXN\nNSSl5zqSsmESKEmSJEk1xCRQkiRJkmpIJnMCCyGEkFRq7JIkSZKUVgghrxER7gRKkiRJUg0xCZRq\n1MSJE7MOQaporiEpPdeRlA2TQEmSJEmqIfYESpIkSVIFsidQkiRJktQtk0CpRtmHIaXjGpLScx1J\n2TAJlCRJkqQaYk+gJEmSJFUgewIlSZIkSd0yCZRqlH0YUjquISk915GUDZNASZIkSaoh9gRKkiRJ\nUgWyJ1CSJEmS1C2TQKlG2YchpeMaktJzHUnZMAmUJEmSpBpiT6AkSZIkVSB7AiVJkiRJ3TIJlGqU\nfRhSOq4hKT3XkZQNk0BJkiRJqiH2BEqSJElSBbInUJIkSZLULZNAqUbZhyGl4xqS0nMdSdkwCZQk\nSZKkGmJPoCRJkiRVIHsCJUmSJEndMgmUapR9GFI6riEpPdeRlA2TQEmSJEmqIfYESpIkSVIFsidQ\nkiRJktQtk0CpRtmHIaXjGpLScx1J2ajKJLCpCRoaoLERWlqyjkaSJEmSykdV9gQ2NMCkSfHPw4bB\nuHGli0uSJEmSSsGewHbq6uLXwYNhzJhsY5EkSZKkclKVSWBzc9wBnDAB6uuzjkYqT/ZhSOm4hqT0\nXEdSNvpkHUAx1NdbAipJkiRJnanKnkBJkiRJqnb2BEqSJEmSumUSKNUo+zCkdFxDUnquIykbJoGS\nJEmSVEMquidwiy0Smps9AVSSJElS7anJnsDx46GpKesoJEmSJKlyVHQS6DB4KX/2YUjpuIak9FxH\nUjYqOgl0GLwkSZIk5aaiewIrNXZJkiRJSqsmewIlSZIkSbkxCZRqlH0YUjquISk915GUDZNASZIk\nSaoh9gRKkiRJUgWyJ1CSJEmS1C2TQKlG2YchpeMaktJzHUnZMAmUJEmSpBpiT6AkSZIkVSB7Aous\nqQkaGqCxEVpaso5GkiRJkvJjEthDU6fCpEkwfnxMCKVKZx+GlI5rSErPdSRlwySwh+rq4tfBg2HM\nmGxjkSRJkqR82RPYQy0tcQdwzBiory/ZYyVJkiSpU/n2BJoESpIkSVIF8mAYSTmxD0NKxzUkpec6\nkrJhEihJkiRJNaSyy0EfeQSGDMk6FEmSJEkqudosBx02DN5/P+soJEmSJKliVHYS+M47sOuuMGNG\n1pFIFcc+DCkd15CUnutIykZlJ4Hnngt33gnHHZd1JJIkSZJUESq7J3DmTNhzT7j8crjtNthii6zD\nkiRJkqSSqN05gV98AWuvDW+8AU8+CUsvnXVokiRJklR0tXkwDEBdHVx3HcycCdtvD9OnZx2RVBHs\nw5DScQ1J6bmOpGxUfhIIsMwycOWVMHkyjBgBFbq7KUmSJEnFVvnloO0dfTQcfzyMGQP77JNNYJIk\nSZJUArXbE9jejBnwy1/CvffC/ffDz36WTXCSJEmSVGS12xPYXu/ecNVVsOiisT/w3XezjkgqW/Zh\nSOm4hqT0XEdSNqorCQRYcMF4UMx778EOO8A332QdkSRJkiSVjeoqB23viitgjz3g4IPhjDNKF5gk\nSZIklUC+5aB9ihFMWdh99zg38MwzYY01YLfdso5IkiRJkjJXfeWg7Z16KjQ0xJNCJ0/OOhqprNiH\nIaXjGpLScx1J2ajuJLBvX7jmGvjhD2GbbeD997OOSJIkSZIyVb09ge098QSsuy6ssw784x/Qp3qr\nYCVJkiTVBkdEdGXw4DhA/p574I9/zDoaSZIkScpMbSSBEE8KPfBAOP10aG7OOhopc/ZhSOm4hqT0\nXEdSNmonCYSYAK6/Puy9N0yZknU0kiRJklRytdET2N4778Ty0D59Yq/gggsWPjhJkiRJKjJ7Antq\nkUXg+uvhP/+BYcPgm2/yuk1TU5w+0dgILS2FDVGSJEmSiqX2kkCANdeMB8Xcey+MHJnXLaZOhUmT\nYPz4mBBKlcY+DCkd15CUnutIykbtzkrYYw949lk47TRYZZU4UD4HdXXxa9vBo5IkSZJUCWqvJ7C9\nGTNg6FC4++7433rr9fhHW1riDuCYMVBfny4MSZIkScpVvj2BtZ0EQszmhgyBjz6Cxx+HpZZKf09J\nkiRJKjIPhslXfT3cfDN8/TVstRV8/nnWEUklYR+GlI5rSErPdSRloyqSwNQndS63HIwdG3sEhw+H\nCt0dlSRJkqTuVEU5aENDPKkT4tSHcePyvOnpp8Ohh8Jxx8FRRxUkTkmSJEkqhnzLQavidNCCndQ5\nciQ88wwcfTSstBJss01B4pMkSZKkclEV5aDNzXEHcMKElCd1hgAXXhgPitl991geKlUp+zCkdFxD\nUnquIykbVZEE1tfHEtCCjGqYay64/nqYbz741a/g3XcLcFNJkiRJKg9V0RNYFE88AeuvD6utFmcI\nzjVX8Z7VTlMTTJ0aS1ybm51BKEmSJKlzjogotMGD4fLL4aGHYJ99SnZi6NSp8ZCb8eNjQihJkiRJ\nhWQS2JXtt4cTToArr4QTTyzJIwt2yI3UDfswpHRcQ1J6riMpGzWRBKaaI/inP8Fuu8GRR8Lf/170\nOAp2yI0kSZIkdaImegJ7Mkewy168L7+EjTeGp56C++6L23R5KMQ8Q3sGJUmSJIE9gV3qSYlll714\nc80FN9wAiywCW24Jb75ZtDi6Y8+gJEmSpDRqIgnsSYlltwnawgvDLbfAZ5/FRPDzz4sSR3fsGVSh\n2IchpeMaktJzHUnZqIkksCdzBHuUoK20EowdC08/HYfJz5xZ8Di6Y8+gJEmSpDRK2hMYQlgCuBxY\nGEiAMUmSnN3JdWcDWwBfAMOTJHmqk2uKOyewK2edBQcfDH/8I5x0UjYxSJIkSapp+fYE9ilGMF34\nBjgkSZIpIYR+wJMhhAlJkrzYdkEIoRFYJkmSASGEIcD5wFoljrNrv/sdvPginHwyLLss7Lln1hFJ\nkiRJUo+UtBw0SZL/JkkypfXPnwEvAot2uGxL4LLWax4F6kMIi5Qyzm6FAOecA5tsEk9nufvurCOS\ncmYfhpSOa0hKz3UkZSOznsAQQn9gNeDRDt9aDHij3es3gcVLE1UO+vaFa6+F5ZeH7baDF17IOiJJ\nkiRJ6lapy0EBaC0F/TtwUOuO4CyXdHjdafPf8OHD6d+/PwD19fUMGjSIhoYG4LtPlor++rbbYMgQ\nJm60EZx3Hg3bblva5/va1yletymXeHzta1/72te19brtvXKJx9e+LvfXU6ZMoaWlBYBp06aRr5IP\niw8h9AVuBcYnSXJmJ9+/AJiYJMnY1tcvARskSfJOh+uyOximoyefhPXXhxVXhIkTv5vjIEmSJElF\nUhHD4kMIAbgYeKGzBLDVzcAerdevBbR0TABLoakJGhqgsRFak+3ZW2MNuPpqeOIJ2HVXmDGjFCFK\nqbR9uiQpP64hKT3XkZSNkiaBwDrAbsCGIYSnWv/bIoSwbwhhX4AkSW4HXgsh/BO4ENi/xDECMHUq\nTJoE48fHhLBbW24JZ54JN94Ihx1W9PgkSZIkKR8lLwctlGKXgzY2xgRw8OAcB7MfdBCcfTacey6M\nGFG0+CRJkiTVtnzLQU0CZ6OlJe4AjhmTQwIIsRR0223h1lvhpptg6NCixShJkiSpdlVET2Alqa+H\nceNyTAABeveG5mZYbTXYaSeYPLko8Ulp2YchpeMaktJzHUnZMAkshnnmgVtugQUXhF/+ElIc3ypJ\nkiRJhWQ5aDG98AKssw786Efw4IOwwAJZRyRJkiSpSlgOWo4GDox9ga+9Fk8PnT4964gkSZIk1TiT\nwGJbf3244oq4E7jbbs4QVNmwD0NKxzUkpec6krJRs0lgTsPg09phBxg1Cq6/HkaOhHIvY5UkSZJU\ntWq2J7ChIQ6DBxg2LJ4EWnQjR8IZZ8Cpp8Khh5bggZIkSZKqVb49gX2KEUwlqKuLXwcPjrMAS+K0\n0+Ctt+Cww2CxxWDnnUv0YEmSJEmKarYctLk57gBOmJDHLMB89eoFl10W+wR//Wu4994SPVialX0Y\nUjquISk915GUjZpNAvMeBp/WXHPBjTfCgAGw9dbw7LMlDkCSJElSLavZnsDM/fvfsPbaEAI89BAs\nuWTWEUmSJEmqIM4JrDRLLgm33w6ffgqbbQYffJB1RJIkSZJqgElgllZdFW6+GV5/HX75S/j886wj\nUg2xD0NKxzUkpec6krJhEpi1DTaAq6+Gxx+PJ9V8803WEUmSJEmqYvYElou//S1OsN99d7j00niS\nqCRJkiTNhnMCK90++8A778BRR8HCC8eZgpIkSZJUYG43lZMjjoARI+D00+HUU7OORlXOPgwpHdeQ\nlJ7rSMqGO4HlJAQ46yx47z34/e/jjuCvf511VJIkSZKqiD2B5eirr+JpoRMnwk03xT+n0NQEU6dC\nXR00N0N9fWHClCRJkpSdfHsCTQLL1aefwoYbwgsvwF13wc9/nvetGhpg0qT452HDYNy4woQoSZIk\nKTsOi682884bh8kvvnjcCXzmmbxvVVcXvw4eDGPGFCg+VTz7MKR0XENSeq4jKRsmgQXU1BR33Rob\noaWlANcvvDBMmADzzAObbgqvvJLXM5ub4w7ghAmWgkqSJEm1znLQAsq17LLH17/4Iqy/fkwGH3wQ\nFlss72dKkiRJqg6Wg5aBXMsue3z9CivAHXfAhx/CJpvA++/n/UxJkiRJtc0ksIByLbvM6fo11oBb\nboHXX4cttoBPPsnrmVIb+zCkdFxDUnquIykbJoEFVF8fyzF7mozlej0bbADXXgtTpsBWW8H06bnf\nQ5IkSVJNsyewEjU3w267wdChcN110Ldv1hFJkiRJKjF7AmvJLrvA6NGxPPQ3v4GZM7OOSJIkSVKF\nMAmsVL/9LZxwAlx5JRx0EOSwK5rrKAtVJ/swpHRcQ1J6riMpG32yDkAp/OlPMYs77TTo1w9OPBFC\n97vBU6d+N1aiqcmxEpIkSVItsSewiJqaYsJVVxfb+IpyeEuSwP77wwUXwPHHw5FHdvsjjY0wfnwc\nK+GpopIkSVJlyrcn0CSwiEo2yH3mTNhzT7j8chg1Cg45pMvLW1pigjpmjAmgJEmSVKk8GKYMlWyQ\ne69ecPHFMdMcObLbhzlWQmAfhpSWa0hKz3UkZcOewCJqbi7hjlufPvGQmC++gP32ixnobrsV+aGS\nJEmSKo3loNXmyy/j/MB7743bfdttl3VEkiRJkorAnkB95/PPYbPN4LHH4MYb40kwKZTkgBtJkiRJ\nObEnUN+ZZx647TZYZRXYdlu4555Ut2sbKTF+fEwIVR3sw5DScQ1J6bmOpGyYBFar+eaDf/wDBgyA\nLbeEBx/M+1YlO+BGkiRJUtFZDlrt/vvfOKvirbfiUMC11sr5Fo6UkCRJksqPPYGavbffhg02gHff\nhbvugjXX7PJyewAlSZKk8mdPoGZv0UVjX+CCC8Kmm8LkyV1ebg9gbbAPQ0rHNSSl5zqSsmESWCuW\nWCKOjZhvPthkE3j66dleag+gJEmSVL0sB601r70WS0O//DImhSutNMsl9gBKkiRJ5c+eQPXcP/8Z\nE8Fvv4WJE2GFFbKOSJIkSVKO7AlUzy2zTOwR7NULNtoIXn4564iUAfswpHRcQ1J6riMpGyaBtWq5\n5eDuu2HGjJgI/vOfWUckSZIkqQQsB611zz0HG24Ic84ZewQHDMg6IkmSJEk9YDmo8rPSSnFH8Kuv\n4lB5S0MlSZKkqmYSKFhllbgL+M03MRF86aWsI1IJ2IchpeMaktJzHUnZMAksc01NMS9rbIyjG4pm\npZXiSaFJEh/4wgsFvX3Jfg9JkiRJXbInsMw1NMCkSfHPw4bBuHFFfuBLL8WDYmbMiGWincwRzEfJ\nfw9JkiSpytkTWKXq6uLXwYPj8PaiW375uCPYp088MOaZZwpy25L/HpIkSZI6ZRJY5pqb487ZhAlQ\nX1+ihy67bEwE55wz7gpOmZL6lpn8HuqSfRhSOq4hKT3XkZQNk8AyV18fSydLnjgNGBDrN+vqYOON\nYfLkVLfL7PeQJEmS9D32BKprr78ey0I//jhu4w0enHVEkiRJkrAnUMWy9NKxNLS+Hn7xC3jssawj\nkiRJkpSCSaC6179/LA1dcEHYZBN45JGsI1IB2IchpeMaktJzHUnZMAlUzyy5ZNwRXHhh2HRTeOih\nrCOSJEmSlAd7ApWbt96KJ4a+/Tbcdhusv37WEUmSJEk1yZ5AlcZii8UdwSWWgM03h3/8A4CmpjgQ\nvrERWloyjVCSJElSF0wClbsf/zj2CC63HGy5JdxwA1OnxrfGj48JocqffRhSOq4hKT3XkZQNk0Dl\n54c/hHvvhdVXh2HD+OVHVwJxgsSYMRnHJkmSJGm27AlUOp99BltuSTJxImNWv4Ad72pyILwkSZJU\nAvYEKhv9+sFttxEaG9n3yX2pv2RU1hFJkiRJ6oJJoNKbe264/noYNgz+7//guOPAXdqyZx+GlI5r\nSErPdSRlo0/WASh7TU0wdSrU1UFzM/mVc84xR/zhujo45hj49FM45RQIOe9OS5IkSSoiewKrTD4J\nXUNDPNkT4mbeuHEpApg5E373Oxg9GvbbL37t5YazJEmSVGj59gS6E1hl2kY1QEwIe5LQ1dXFrwU5\n2bNXLzjnnNgr+Ne/wuefwyWXQB//ryZJkiSVA7doqkw+CV1zc9wBnDAhz1LQjkKAk06CE06AK66A\nHXeEr77K+TYOoC8u+zCkdFxDUnquIykbJoFVJp+Err4+7hjmkgB2m6CFAEccAWecEQ+N2Xpr+OKL\nnj8AHEAvSZIkFYE9gcpLTn2EF10Us7j11oObb4b55uvRMxobYwI4eHABdyklSZKkKuGcQJVUTmWn\ne+8NV10FDz0Us8d33unRMwpepipJkiTJJFD5yTlB23lnuOWWWOO5zjrw2mvd/kg+ZarqOfswpHRc\nQ1J6riMpGyaBykteCdrmm8Ndd8GHH8ZE8JlnihafJEmSpM7ZE6jSe/55PhqyGX2//Iw/D76VI+9Y\n190+SZIkKUf2BKpyrLgi+630IG/NWITjH92EC4bemnVEkiRJUs0wCVQmPl1gKdblAV6vW4k/PLI1\nXH551iHVHPswpHRcQ1J6riMpGyaBykRzM2w47Ics+tI9hIYG+PWv4fTTsw5LkiRJqnr2BKoompri\nQaB1dTHh67Ln76uvYLfd4O9/hz/8AU46KQ6blyRJkjRb9gSqrEydGofJjx8fE8IuzTknjB0L++0H\nf/0r7LMPfPttSeKUJEmSao1JoIoip2HyAL17w3nnwVFHwcUXxyGEX35Z1BhrnX0YUjquISk915GU\nDZNAFUXOw+QhloAedxycfTbceGOcK/jxx//7dlMTNDRAYyO0tBQlbEmSJKnq2ROo8nT11bDHHjBw\nINx+Oyy2GA0NscQUYoI5blymEUqSJEmZsidQ1WXnneG22+C112DtteH553MvMZUkSZI0C5NAla9N\nN4X774+HxKy7LteMmJR7ialmyz4MKR3XkJSe60jKhkmgytugQfDww/DjHzPvtpsybrtrTAAlSZKk\nFOwJVGX48EPYeuu4M3jaaTByZF6zBHOaXyhJkiSVMXsCVd0WWADuvDOeCHPooXDwwTBjRs63yWl+\noSRJklSFTAJVOeaaKw6VP+SQOEZixx1h+vScbuHhMt+xD0NKxzUkpec6krJhEqjK0qsXjBoV/7v+\nethkE/jggx7/eF7zCyVJkqQqYk+gKte118Luu0P//rG+c+mlZ7nEHkBJkiRVK3sCVXvatvTefTfO\nEnzyyVkusQdQkiRJ+j6TQFW29daDBx+M/YIbbBCzvXbsAZw9+zCkdFxDUnquIykbJoGqfCusEGcJ\nLrss/OpXcOGF//uWPYCSJEnS99kTqOrx6afxxNDx4+McwVNOgd69s45KkiRJKgp7AqV554Wbb4YD\nDoinh263HXz+edZRSZIkSWXFJFDVpU8fOOecOEfwlltiz+Bbb2UdVVmyD0NKxzUkpec6krJhEqjq\ndOCBMQnFicd7AAAgAElEQVR85RUYMgSeeqpHP9bUBA0N0NgILS3FDVGSJEnKgj2Bqm7PPANDh8KH\nH8LVV8eDY7rQ0BBHSkA8UGbcuOKHKEmSJOXDnkCpM6usAo8+Gk8Q3WorOPNM6OLDA0dKSJIkqdqZ\nBKr6/fjHcXtvm23gkENgxAj49ttOL62lkRL2YUjpuIak9FxHUjZKngSGEC4JIbwTQnh2Nt9vCCF8\nHEJ4qvW/I0sdoypDTv17dXVw7bXwhz/A+efHEtGPP57lsvr6WAJa7QmgJEmSalfJewJDCOsBnwGX\nJ0myciffbwBGJkmyZTf3sSewxuXdv3fxxbDffrDccnDrrdC/f5EilCRJkoqnYnoCkyS5H/iom8ty\n/kVUe/Lu39trL/jHP+LoiCFDYs+gJEmSVCPKsScwAX4eQng6hHB7CGFg1gGpNHIdz5Cqf2+jjeDh\nh6FfP9hgA7jyynxCrmj2YUjpuIak9FxHUjbKMQmcDCyRJMmqwDnAjRnHoxKZOjWWd44fHxPC7qTu\n31t++bgLuPbasPvusV9wxow8byZJkiRVhj5ZB9BRkiSftvvz+BDCeSGEBZIk+bDjtcOHD6d/az9X\nfX09gwYNoqGhAfjukyVfV87r6dMBGhg8GPbYYyITJ5bo+XfeycRhw+CUU2h47jlobmZi63D5cvr7\nKcbrNuUSj6997Wtf+7q2Xre9Vy7x+NrX5f56ypQptLSWzE2bNo18ZTIsPoTQH7hlNgfDLAK8myRJ\nEkL4GTAuSZL+nVznwTBVpqUl7gCOGZPf7l5TU9xNrKuLpaI53+OCC+DAA2GZZeDmm2HAgNyDkCRJ\nkkqkYg6GCSFcDTwELBdCeCOE8JsQwr4hhH1bL9keeDaEMAU4E9ip1DEqG2nLO3MtJ53FfvvFBsP3\n3osHxtx1V36BVIi2T5ck5cc1JKXnOpKyUfJy0CRJdu7m+6OB0SUKR1Uk79NC22togMcfhy23hM03\nh1Gj4u5g+O4DltQ7jpIkSVKGMikHLQTLQdVR2nLS7/n003hYzE03xZESo0fDnHMCMU/Maz6hJEmS\nVEAVUw4qFUvq00Lbm3deuP56OPLIOFx+443h3XeBAu04SpIkSRkxCZRmp1cvOP54GDsWJk+GNdeE\nKVPSzScsI/ZhSOm4hqT0XEdSNkwCpe7suCPcfz/MnAnrrEP9XX8v3I6jJEmSVGL2BEo99d//wrbb\nwsMPwxFHwLHHQu/eOd/Gg2UkSZJUCPYESsX2ox/BvffCb34Df/kLDB0KH32U821Sj7KQJEmSUjAJ\nlHIx55xw0UVxsPzdd8fTYZ55JqdblMvBMvZhSOm4hqT0XEdSNkwCpVyFAPvuG7fzvvwS1l47Hh7T\nQ9VysIwkSZIqkz2BUhr//W/M6B54AEaOhL/+Ffr0yToqSZIk1QB7AqUs/OhHsSz0gANg1CjYdFN4\n772so5IkSZJmyyRQSmuOOeCcc+Cyy+LJoWusAY8/nnVU3bIPQ0rHNSSl5zqSsmESKBXKHnvAgw/G\nIfPrrQeXXJJ1RJIkSdIs7AmUCu3992HnneGuu2C//eCss+JuoSRJklRA9gRK5WKhheIQwN//Po6S\naGiAt9/OOiqammIojY3Q0pJ1NJIkScqKSaBqWtESoz594kmh48bFOYKrrx5HSmSo45B6+zCkdFxD\nUnquIykbJoGqaR0To4IbNgwefTQOBNxoIzj5ZJg5swgP6l65DKmXJElStuwJVE1rbIwJ4ODBRR7e\n/umnsPfecWdw6FC4/HKYf/4iPaxzLS0x0R0zxiH1kiRJ1SDfnkCTQNW0kiZGSQKjR8eh8ostBtde\nG7NPYgxTp8bduuZmkzRJkiR1z4NhpDzU18fNuZIkXSHEofL33x9LQtdZB84/H5Kk+GWpnbAPQ0rH\nNSSl5zqSsmESKHWhKAfHDBkCkyfDxhvD/vvD7ruzwByfAd/163mSpyRJkorFclCpCw0N3x3qOWxY\n3DUsmJkz4aST4OijmTFgOQ7tfx3HjF2B+vr8nmtJqSRJUm2xHFQqgqKeqNmrFxxxBNx5J70/+oAz\nHliT+tub835uFiWlkiRJqjwmgVIXmpvjTlxRTw7deGN46ilYbTXYdVfYf3+a/99XOT8318TRPgwp\nHdeQlJ7rSMqGSaDUhZIdHLPoonDPPXDYYXD++dQPXZdxp0zL6bklSVglSZJU8ewJlMrNTTfBr38d\nTxO9+GLYdtusI5IkSVIZsidQqhZbbRXLQ5ddFrbbDkaMgC+/zDoqSZIkVQmTQKkcLb10nCd46KFw\n3nmw1lrw8ssFfYR9GFI6riEpPdeRlA2TQKlczTEHnHoq3HYbvPkmrLEGXHZZ1lFJkiSpwtkTKKVU\nkvl8b70VTw6dNAn22ANGj4Z+/YrwIEmSJFWKfHsCTQKllDoOdq+vL1JSOGMGHH88HHdc7Be85hpY\nddUC3VySJEmVxoNhpIx0nM9XtKHtvXvDn/8cR0l88gkMGRL7BfP8MMQ+DCkd15CUnutIyoZJoJRS\nx/l8uQ5t74mmprjj2NgILYMa4OmnYaON4smh228PH31UmAdJkiSp6lkOKhVYS0tM2saMKVwpaMeS\n03HjgJkzYdQoOPxwWGwxGDs2niIqSZKkmmA5qFQm6utjklbIA2I63V3s1SuOkHjggThYfr314MQT\nY++gJEmSNBsmgVIF6Fhy+j1DhsTh8ttuC0ccEctE//3vbu9pH4aUjmtISs91JGXDJFCqAB13F7/X\nI9jSesHYsXDppTB5MqyySjw9VJIkSerAnkCpAnXaI9jm1VfjTMFHH40zBc89F+adtyhxlGRGoiRJ\nkjplT6BUQ7o8gfSnP4X774ejjoIrr4RBg+CRR4oSR9HGYUiSJKloTAKlCtRljyBA375xqPykSfGg\nmHXXjYPmv/32f5cUog+jGOMwpEphL5OUnutIyoZJoFSBenwC6brrxpmCO+4IRx8d60inTStYHN0m\no5IkSSo79gRKRVY2fXNXXQW//W0cJ3H++bDLLhkFIkmSpEKwJ1AqU2XTN7frrnFXcKWV4p933x0+\n/jjDgCRJkpQFk0CpyMqqb27ppWNGeuyxTGxuhlVX/e6YUUk5sZdJSs91JGXDJFAqsrLrm+vTJ/YH\nnn12PEBmww3h0EPhyy+zjkySJEklYE+gVKV61Iv4+edw2GGxR3DgQLjiClh99ZLHKkmSpNzZEyjp\ne3rUizjPPHDeeXDHHdDSAkOGwAknfG+UhCRJkqqLSaBUpbrrRfxeH8Zmm8Gzz8a61aOOiqMlpk4t\nSZxSpbKXSUrPdSRlwyRQqlI59yIusED8obFjYwI4aBCMHg0zZxY9VkmSJJXObHsCQwgHJklyTonj\n6TF7AqUievtt2GuvWCa6ySZwySWw+OJZRyVJkqR2itETeFYI4f4QwoAUcUmqRIsuCrffHg+MefDB\nOFvwqqvAD14kSZIqXldJ4EbAj4ApIYTDQgg5Z5iSyle3fRghwH77xQHzAwfCbrvBDjvA+++XJD6p\n3NnLJKXnOpKyMdskMEmSicAqwLnAicAjIYQVSxSXpHKxzDJw//1w0klw002w4opw/fVZRyVJkqQ8\n9WhOYAhhdeBiYAXgRuDrjtckSbJHwaPrOiZ7AqVSe+YZ2HNPmDwZdtwRzj0XFloop1v0aH6hJEmS\nupVvT2BPk8AfAGcCw4H/8P0kMABJkiRL5/rwNEwCpYx88w2ccgoce2zM4M4/H7bbDuhZgtfQEOcX\nQjy9dNy40oUuSZJUTYo2LD6EsBXwArANsE+SJIslSbJ0u//6lzoBlJRe3n0YffvCEUfAk0/CEkvA\n9tvHXcH33uvRgPqO8wubmmJi2NgY59VLlcJeJik915GUjdkmgSGEhUMI44AbgKeAFZMkubhkkUkq\nqtNOS5l8rbwyPPII/OUvcMMNMHAgm358LTD7AfUw6/zCjomjSaEkSVJxdTUn8AMgAQ5KkuSqkkbV\nA5aDSukUtCzzuedir+ATT/Dw4tsz8J7RzDdg4R6VhzY2xgRw8OCYGG69teWikiRJPVGMctB7gYHl\nmABKSq+gZZkrrQQPPwwnncTa797MfD9fEcaNY+rLSbfloR13BjvG1RPuHkqSJPVcjw6GKUfuBErp\n3HrrRC6/vIExY2LyVbCdwRdegOHD4fHHeWCR7djundEsOXiR/yV53WlpiUldW1w90TH2tjJTTyBV\nMU2cOJGGhoasw5AqmutISqdoB8NIqk79+sVEry1BymcHrlMDB8JDD8HJJ7POR7fwyhwrMnHvK6mf\nr2cf2tTXfz+unugYe08OqJEkSapV7gRKAvLbgevWiy/CXnvFUtHNN4cLLoCllirQzb/TMfaOfYbu\nBEqSpGpU1DmB5cgkUCq9vAa9z5gRZwkefjgkSTxN9IADoHfvosVZlIRWkiSpzFgOKikn+cxmyqvM\nsnfvmPQ9/zysvz4cfDCss048UbRI8ikplXLlfDMpPdeRlA2TQEk9lqpvcMkl4bbb4hbiq6/C6qvD\n0UfDV18VPE5JkiTNnuWgknqsYGWW778PI0fCFVfA8svDRRfF3UFJkiT1mD2BkirPHXfAfvvBv/8N\n++8PJ54IP/hB1lFJkiRVBHsCJeWkLPowNt889gYedBCcdx6suGIsGW0nq0HwDqBXd8piDUkVznUk\nZcMkUNJslSQR6tcPzjgjjpGor4ehQ2GnneA//wGym/nnrEFJklStLAeVNFsNDTERAhg2LJ64WVRf\nfw2nnAInnABzzgknncTQW/bltjt6l3zmn7MGJUlSubMcVFLBpToNNB9zzAFHHgnPPgs/+xmMGMGN\n7/2cQzeZUvJErLk5Jr4mgJIkqdqYBEo1qid9GJklQgMGwJ13wlVX0eeNaZx6z2Dqj/8/+OyzkoXg\nrEF1x14mKT3XkZQNk0BJs5VpIhQC7LILvPQS7L03jBoFK6wAN95Y8Ed5CIwkSaol9gRKqgwPPwz7\n7htLRbfcEs45Jw6gL4CS9z5KkiQVgD2Bkqrb2mvDk0/y95+dwvRb72L6TwYy/YTT4dtvU9+65L2P\nkiRJGTIJlGpURfZh9O3LuXMfxvIzX+CuGRsy91GHxszt0UdT3dZDYJSPilxDUplxHUnZMAmUVFHq\n6uDfLMVxa9zM55dfB++/H3cJ990XPvggr3t6CIwkSaol9gRKqigtLfEglzFjWpO2Tz+FY46Bs8+G\n+eaDk0+GvfaCXn7GJUmSqlu+PYEmgZKqw7PPwgEHwH33wZprwujR8askSVKV8mAYSTmpuj6MlVeG\niRPhyivhjTdgyJBUJaJSd6puDUkZcB1J2TAJlFQ9QoBdd4WXX4aDD4aLL4Zll4W//Q1mzsw6OkmS\npLJgOaik6mWJqCRJqmKWg0pSR5aISpIkzcIkUKpRNdOHMbsS0TFjYMaMrKNTBauZNSQVketIyoZJ\noKTa8IMfwKhR8NRTsNJKcUdwzTXh/vuzjkySJKmk7AmUVHuSBK65Bg47DN58E3baCf76V1hyyawj\nkyRJ6jHnBEpSrr74IiZ/p5wSy0b/8IeYGNbVZR2ZJElStzwYRlJO7MMgJnvHHgsvvQS/+hX8+c+w\nwgowblzcLSyxpiZoaIDGRmhpKfnjlSPXkJSe60jKhkmgJC21VCwPnTgR5p8fdtwxZmNTppQ0jKlT\nYdIkGD8+JoSSJEnFYDmopJrT1BQTrro6aG6G+vp235wxAy66CI44Aj76CPbZB44/Hn74w6LH1dgY\nE8DBg2HChA5xdRe3JEmqOZaDSlIPdbnj1rt3PDn0lVfgwANjQrjssnDWWfDNN0WNq7kZhg3rPAHs\nNm5JkqQeMgmUalQt92G0nfsyeHAcF9ip+eeHM8+EZ56Bn/0szhhceWW49dai9QvW18d2xNnt8PUo\nbpVMLa8hqVBcR1I2TAIl1Zzudty+Z+BAuOMOuPnmmPz96lfwi1+UvF8QOo/bw2QkSVKu7AmUpJ76\n5hu44IJ4iuhHH8Hw4XDCCbDoopmF1NAQS0QhJojjxmUWiiRJKjF7AiVpNgq2W9a3b+wT/Oc/YeRI\nuPJKGDAAjjsOPv+8UOHmxBJRSZKUK5NAqUbVUh9GwQ9UmX9+OO00ePHFmFkec0w8POayy2DmzAI8\noOdyKm1VQdXSGpKKxXUkZcMkUFLVK9pu2U9/CtdeC/ffz+vfLAbDh/PP+Qfz2S33FvAhXevuMBlJ\nkqSO7AmUVPVaWuIO4JgxxUuWNtxgJj++bywn80eW5A3Yais45ZS4QyhJklQE9gRK0myUYrds7nl6\ncTW7sMvqLzP9qBPh7rthxRVhxAh455287unJn5IkqRhMAqUaZR9GbrpLyNp68269e27mPu7weHjM\n3nvDhRfCMsvAscfCZ5/ldE+Hw5c315CUnutIyoZJoCT1QHcJ2Sy7jYssAuefD88/D5tuGsdKLLNM\nfO+bb3p0T0/+lCRJxWBPoCT1QGNjTNYGD87zJM6HH+aVbX7PgHce4M15lmX+805k2NXbMv6OMNt7\nlqKXUZIkVa58ewJNAiWpBwqRkDVskDDvfbdyMn9kRV7g2zXX4rh5TmHkDesVLclraoo7jnV1sWTV\nZFKSpOrhwTCScmIfRm46lnvmc2hL3TyBW/kVe63xNF+cfRF93vo3x01cn/o9toQXXihK3PYVFo9r\nSErPdSRlo+RJYAjhkhDCOyGEZ7u45uwQwishhKdDCKuVMj5J6ol8kqu2w2PuuKsPdQfuBa+8Aiee\nGG+08sqw117w1lsFjbNjX6EnjkqSpJKXg4YQ1gM+Ay5PkmTlTr7fCByQJEljCGEIcFaSJGt1cp3l\noJIyk7pHsL3334e//AVGj4beveGAA+CPf4QFF0wdZ8cy1oaGmHNCTEjHjUv9CEmSlJGKKQdNkuR+\n4KMuLtkSuKz12keB+hDCIqWITZJ6qm1XL3UCCLDQQnDGGfDyy7DDDnD66bD00nDccfDpp6lu3bGM\n1RNHJUlSOfYELga80e71m8DiGcUiVS37MNIpygD6pZeGyy6DZ5+FX/wCjjkGfvKTmCB++WVBHlHQ\n5LXGuYak9FxHUjbKMQkE6Lilad2npNqx4opw/fXw2GOw2mowciQMGAB/+xt8+22qW+eTvNpHKElS\ndemTdQCdeAtYot3rxVvfm8Xw4cPp378/APX19QwaNIiGhgbgu0+WfO1rX8/+dZtyicfXnby+804m\nnnEG/O1vNDQ1wamnMnGnnaChgYaNNirK84cOncibb8KiizbQ3AyPPTaRp58GaKCpCfbfv4z+fnzt\na19X9Ou298olHl/7utxfT5kyhZbWT2SnTZtGvjKZExhC6A/c0oODYdYCzvRgGEmVpuDz+ZIEbrkF\njjgCnnsOVl01HibT2Agh537wLjU0fP/wmM8+K+AhOJIkqWAq5mCYEMLVwEPAciGEN0IIvwkh7BtC\n2BcgSZLbgddCCP8ELgT2L3WMUi1o+3RJxVHw+XwhwJZbwpQpcOWV8cCYoUNhvfWgwP9bdjw8xj7C\nzrmGpPRcR1I2Sp4EJkmyc5IkiyZJMkeSJEskSXJJkiQXJklyYbtrDkiSZJkkSVZNkmRyqWOUpLSK\ndgpn796w667w0ktwwQXw+uuw4Yaw0UbwwAMFeUTHpM8+QkmSqksm5aCFYDmopHLWcT5f0UyfHh9y\n0knwzjuw6aZw7LGw1ixV9CXVsaTUeYSSJBVexZSDSlItKMoIic7MPTccdBC89hqcdhpMngxrrw2/\n/CU88URRHtmTXT7nEUqSVL5MAqUaZR9Glamrg//7v1geevLJ8MgjsOaasNVW8NRTBX1UT/oda6GP\n0DUkpec6krJhEihJ1aRfP/jDH2IyeMIJcN99sPrqsN12cQh9AfRkl69kO6GSJCln9gRKUjVraYGz\nzoJRo+CTT2CHHeCYY2DgwFS3LEm/oyRJ6lK+PYEmgZJUCz76KCaCZ54Jn38eazWPPBJWnmVcqyRJ\nqhAeDCMpJ/Zh1Jj554fjj49loocfHhv6VlkllolOmZJ1dBXJNSSl5zqSsmESKEm1ZKGF4C9/gWnT\n4Oij4e67YbXV4gEyRTpNVJIklRfLQSWplrW0wDnnwBlnxJLRxkY46qjM5wxKkqTu2RMoScrfJ5/A\n6NFw+unwwQewySZxp3DddQty+6amOFqiri6Oj/BAGUmS0rMnUFJO7MPQ9/zgB7FXcNo0OOWU2Ce4\n3nqw0UYwcSKk/NCtJ7MFK41rSErPdSRlwyRQkvSdfv3gsMNiMjhqFLz4Imy4YUwIx4/POxnsyWxB\nSZJUGpaDSpJmb/p0uOgiOPVUeOMNGDQo7hhutx307t3j2zhbUJKkwrMnUJJUPF9/DVddBSefHGs7\nBwyAP/4RdtsN5pgj6+gkSapJ9gRKyol9GGrT1AQNDfFg0JaW2Vw0xxyw557wwgtw7bWxbHSvveCn\nP4Wzz4YvvihlyGXBNSSl5zqSsmESKEk1LqdDW3r3hu23hyefjD+w9NJw0EG01C/FpcudyMf/ml0W\nKUmSyoXloJJU4xobYz43eDBMmJB7z96Bg+5ni6dPopHxfNHnB9QdNgIOPhgWXrg4AUuSJMByUElS\nnpqbYdiw/BJAgFcXXY9fcju7DpxMn19tHvsGl1oKRoyAV18tfMCSJCkVk0CpRtmHUZ161N/XQX09\njBuX/6mdbUnk6AdXY47rr4ljJXbZJZ4quuyysOOO8MQT+d28jLmGpPRcR1I2TAIlqYpkMZR9liRy\nueXg4ovh9dfjzME77oA114SNN4Z//CP14HlJkpSOPYGSVEXS9vcVxSefxAGBZ5wBb78Nq6wCv/89\n7LAD9O2bdXSSJFUs5wRKksp7KPvXX8fa0VNPjaMmllwSRo6Moyb69cs6OkmSKo4Hw0jKiX0Y1Slt\nf19RzTEHDB8Ozz4Lt9wSD485+OCYDB51FLz7btYR5sQ1JKXnOpKyYRIoSSqtXr1g6FC47z546KF4\nks1f/hKTwb33huefz+uAG0mS1DOWg0qSsvfyy3DmmXDZZTB9Oo/NvxlHfXQId7Ipw4YFxo3LOkBJ\nksqPPYGSpMr3/vtw4YV8ePy5LPDVf3l1rhX58SmHULfPrjDXXCUPp6kpnrhaVxfbGcuyzFaSVLPs\nCZSUE/swVJYWWgiOOIJe/5rGuWteRv9l+lD3u71jqeif/wzvvFPScLoaueEaktJzHUnZMAmUJGWu\nYw9g/SJzcsBje9D7mafgnntgyBA49th4mMxee8Fzz5Ukrrq6+HXw4HjiqiRJ1cByUElS5hoa4o4b\nwLBhdN4D+PLLcNZZcOmlMH06bLopHHIIbLYZhJwrYXqkrEduSJJqnj2BkqSK1ZMh9239eYv0+YBL\nfz6GuS86B/7zHxg4MI6a2G03mHvuWa63n0+SVK3sCZSUE/swVE6am+MO4OwSQPiuP2/c3Qvy65cO\nh2nT4PLL4/zBpqbv5g2+9db3ru+sn68QXENSeq4jKRsmgZKkzPVkyP0s/XlzzAG77w6TJ8O998La\na8d5g/37w047MfjLB4DEfj5JkjqwHFSSVBF61J/36qtw3nlwySXQ0sLr9YNY5PgDqdtr5++VikqS\nVA3sCZQkqc3nn8OVV8I558Dzz8OCC8Lee8P++8ey0SKyF1GSVCr2BErKiX0YqmrzzAP77gvPPhtH\nTGywAZx6Kiy9NGy7bSwfzeODxPajLG69dWKn1xS7F1GqJv5bJGXDJFCSVL1CgA03hOuug9dfh9//\nHu67DzbaCFZZBS68MO4a9lD7BO+00zq/JtfZgh1nJEqSVGyWg0qSasv06TB2bCwVfeopmG8++M1v\nYMQI+OlPu/zRnoyyyHW2YI9mJEqS1Al7AiVJFaMs+uaSBB56KCaD110HM2bELG/EiDiAvtesxTLF\nGB7fk8RSkqTO2BMoKSf2YShLZdE3FwKss07cFZw2DY48Eh5/PGZlyywDJ58M7777vR9pP8qiUGuo\nJzMSpWrlv0VSNkwCJUkll2vfXNEtthgcdxy/HfoGx64wlmc+XhIOPxwWXxx23jn2EeZZfdJdz19P\nZiRKklRIloNKkkquGGWVhSgxbd+fd/BmL3LG8hfCpZfCxx/DCivAfvvBHnvkdHN7/iRJxWI5qCSp\nYhRj96sQJabtdyiPGbsCnHkmvP12HD7frx8cdBAsuijstRc88UTO9yyLXU9JUs0zCZRqlH0YqjaF\nSLY67c+rq4M994THHouJ3667wtixTFxzzfiwiy/ucsyEPX/S7PlvkZQNk0BJUlUoRLLV7Q7lGmvA\n3/4Wdwd/9zv48kvYe++4O3jggfD887nfU5KkErMnUJKkfCUJPPggnH8+/P3v8PXXsN56sR51u+1g\n7rln+ZGyGI8hSaoKzgmUJNWUskum3nsvHiJz4YXw6qsxoN12izuFq676v8s8KEaSVCgeDCMpJ/Zh\nqNJlPWtwljX0wx/CYYfFwO65B7bYIjYnDhoEa64Zk8NPPsmrd7G7MRNSpfLfIikbJoGSpIpUtqdu\n9uoFG24YtyfffhvOOiv2Du63H/z4x9ywwG84YsOHmHBn0uPdy6wTXklSdbEcVJJUkQoxa7BkJaVJ\nAo8/DhddBFdfDZ99FucO7r037L573EXsQmNjTAAHD87v4JuyK52VJBWEPYGSJOUok/68zz6Da66J\nCeEjj0DfvrD11rDPPrDxxnEnsYO0Ca99iJJUnewJ/P/t3XuU1NWV6PHvAQQRxAZRFEFFEQE7CIII\nvkCMiuj1EXVFjTrm3gnmYZzJjQuTmDgak4kma0xWdJyYSUwy8aLR+FY0amKD+CIiDwFRQFARFY0K\nCqg8fveP003TZdP1+FVXdXV9P2vVaqrqV1WnknVS2WvvfbakvNiHoWrTXF9dmpLSgvdQ9+5x2PzT\nT8MLL8A3vgF//Sscfzzstx9cfTWsXNnkJdnGTGTrGWyzpbOqev4WSeVhEChJqgrN9dWVfZB7bS38\n/Oexd/C22+CAA+CKK2CffWDixPjYhg1Z3yZbz2DZv6ckqU2xHFSSVBXS9tWVzCuvwO9+B//zP/Da\na8k1Z7YAACAASURBVLDLLnD22XDhhXDYYRA+W/XTGt/NPkJJavvsCZQkqQXFOEimpLZsgbq6OHvw\nz3+OGcEDD4zB4Pnnw157bb20Nb6bfYSS1PbZEygpL/ZhqNpk66vLV6vvoQ4dYMKEmBF86614kMxu\nu8F3vwt77x3nEP7pT/Dxx0X/bmAfoUrD3yKpPAwCJUlq63r0iIfJPPEELFkC3/seLFwYy0T33BO+\n9jV49tk4iqJI7COUpPbLclBJkirRli3w+OOxXPTOO2O56ODBjeWiffuWe4WSpFZmT6AkSdVq7Vq4\n444YEM6cGUtJjz8+BoOnngrdupV7hZKkVmBPoKS82IchpVNXV5d1Pl/JbFsu+vLLsVx00SL40peg\nTx+44AJ45BHYvLmMi5Q+y98iqTwMAiVJKlC2+XxlccABceD88uVxceeeC/fdByecAP36wbe/DXPm\nFLV/UJJUWSwHlSSpQBUze/Djj2HaNLjlFnjgAdi4kVU1Q3mg53k8tc+5/OLufdru2iVJ22VPoCRJ\nJdYa8/lafUj7e+/BHXcwf8otDFs7E4BFvY9m6L+fB2eeCT17FvkDJUmtxZ5ASXmxD0NKp66urlXm\n8+VSYpqtF7HF53v1gosu4jtHPMEAXuHGvj/iwJ5vxxftsUcMBO+5Bz75pHhfStoOf4uk8jAIlCSp\nDcllSHu2QDGXQHLqVDj0rAGcu/ByOr70Ijz3XJw3+MQTcPrpcf7gRRdBXZ0HykhSO2M5qCRJbUgu\nJabZehFT9Spu2gSPPQZ//CPcey+sWxcDwi9+MQ6nHz0aQt6VR5KkVmBPoCRJVSJboFi0XsV16+DB\nB+HWW+PBMp9+CgMGxGDwnHOgttaAUJLKyCBQUl7q6uoYP358uZchVayq20Nr1sDdd8Ntt8VM4ebN\nMHRoDAbPPhsGDizJMlr94ByVVNXtI6nIPBhGkiS1nl12gQsvhIcfhlWr4MYbYddd4Qc/iLMJR42C\n//gPWLmyVZfRJmczSlKFMRMoSZKy2m4GbuXKeETqrbfGw2UAjjoqZgjPPBN2262o66iY2YySVAKW\ng0qSpFYzfnzMwAGcdVaM+z5j6dJYLnrrrbBoEXTsCBMmxBecfjr07p16Ha0xm1GSKpXloJLy4mwm\nKZ1q20O5jK5g4ED4/vdh4UJ44QW47DJYvrxxBuFxx8UXv/NOwetojdmMKp9q20dSW2EQKEmSsg6g\nnzo1JvRyLsGsrYUf/zjWkM6ZEwPCV1+Nswf32AOOPZZbjvwVpx2+erufKUlqHZaDSpKk3Mo900oS\nmD8f7rgj3l5+mc10YDrjWHbIWXzlwdNjgChJyok9gZIkqWCFHLiSalxDkvD1oxewx8w7OH/HOxjw\n8eI4c/Doo2MUesYZBoSSlIU9gZLyYh+GlE5720N5l3vy2XEN2UpKmwiBf7//cyw464f0XLUo9hD+\n4AesmrcaLr6YLXv2ZdMR4+CGG+CNN3L+HnmtQWXX3vaRVCkMAiVJUkEHrmQeFpPvDL+tn9kzxB7C\nq67i3IMXcRAL+CFX8OaCd+Gb34R+/WDsWPjpT+MJpC1wjqAkZWc5qCRJKkjmuIZizPD7zHusWgR3\n3w133QXPPx8vqq2FL3whjp04+OBYRrq917d2WasklZE9gZIkqayKMcOvxfdYsQLuuScGhDNnxoNm\nBgyIweAXvgBjx/LB2g55r6Ekh+JIUiswCJSUl7q6OsaPH1/uZUgVyz1UGtvN0r39Ntx3X8wSPvYY\nbNwYD5I59dQYEI4fD5075/QZxchgqjDuIykdD4aRJEntznZ7/Pr0ga98BaZNi8Pnp06FI4+EW26B\nE06A3XeH88+PWcN161r8jEIOxZGkSmYmUJIktVl5Z+k2bIgX3n13zBS+9x507QrHHQennAInnxwD\nSElqBywHlSRJbVohB7Ck6jPctAlmzGgMCF97DUJg2W5j+Gu3U5jd71SuvXdwPJ00JQ+XkVQOBoGS\n8mIfhpSOeyi7zMDotNPKeABLksC8eXDffbz0s/s48KPZALzZfSB7XnRqzBIefjh06pT1ezQX4Hm4\nTGHcR1I69gRKkqQ2JbOfL3OuYEmFAMOHwxVX8K2jnqMfr3PN3jfS+7CBcP31MG5cLBO94AK48074\n8MPtfo/mlPW7SVKezARKkqRWkdnPB+lHSBTDZ0pMP/wQHnkE7r0XHnww9hF27gwTJsCpp3L+7f+L\nWx7fq8W+xHzLVi0flVQMloNKkqQ2pRhzA0tu0yZ46qnYQ3jvvbB0KQDLeo5kr8kns+MZJ8HIkdAh\nXTGV5aOSisEgUFJe7MOQ0nEPtQ2tmlFLEli8OAaE990HzzwDW7bEstETT4STToLjj4cePfJ+60Jm\nE7bH7KH7SErHnkBJklR1cunXK1gIMGQIXHYZPPkkrF4d5xBOmBCzhGedBbvuCsceC9ddBy+9FAPH\nHDQ3m3Dy5JghnDQpZlEztep3lVRVzARKkqSKVUhGrSg2bYKnn449hA8+CAsWxMf33z9mCE86KR42\n06VLzm+ZrUS0bN9VUptlOagkSao6ufQdlqSM8tVXYdo0eOAB+Nvf4OOP2dChG3N2O47h3zuJnc6c\nBH37tvgW2YK8iuyxlNSqDAIl5cU+DCkd91DlKPkhLOvX853DHmfvBQ9yMg+wN6/Hx0eMgIkTYz/h\nmDGwww5NXlaOIK/cfYbuIykdewIlSZKaUfIZfjvtxPz+J/ENbuSMka+yduZ8+MlPoHt3+OlP4eij\noXdvOOMM+O//htdjkFhTEwPUUgZi9hlK1clMoCRJatfKkWHL/MyGjFvvHdbwhwv+SrcnHo6R18qV\n8QUHHRSzhBMnwlFH5dVLmEZmCeqUKe3vBFKpPbMcVJIkqY1qtiQ1SWDRInj44XibMQM+/TRGYBMm\nNJaO7rdfq60rM1h1fqFUWSwHlZSXurq6ci9BqmjuIeWj2ZLUEGIG8Nvfjmm4996D+++HL385BocX\nXxxPGx00CC65JB48s359UdeVWYKauc5sYyvSch9J5WEQKEmStI1cAp98g6Pm5gJ+RrducPLJcMMN\nsGwZLFkCv/wlHHAA/OY3cexEz54xS3jNNTB7dhxeX0SZ67RnUGqfLAeVJEnaRi4lkaUom2xycufN\nH1MzfwY88kiM0ObPjxc1DKs/7rh422efoq6hubEV5T5RVFKjQstBO7XGYiRJkipVLqeJluLE0YYs\nHMDkS3bk9tuPh+OPjw+8/TY89liMzB59tDEKPeCAxoDwmGNgl11SrWHq1M8eqtNkXZPtG5QqkeWg\nUpWyD0NKxz3UfuVSuplTeWdKLQaaffrAl74Ev/99PGF0wQL4+c9jEPiHP8Dpp8cs4eGHw7/9G8yc\nCRs35r2G5sZWFDMAdh9J5WE5qFSlHNArpeMeUmsreLTFp5/C0083Zgmfey72Du68c8wONmQKBw2K\nh9OUal3NcB9J6TgiQpIkSU1MngyrFr7P2A1/49Jhj9BlxqOwfHl8sn//GAx+/vMxONxjj/IuVlLe\nDAIlSZLURLMH2Cxb1pgl/NvfGo83HTo0njx6zDHxhb16lWnVknLlnEBJebEPQ0rHPaRyy2VMRbP9\ne/vvD1/9Ktx5J7zzDsyaBddeGzODN98MZ5wBvXvDIYfApZfCgw/C2rWt8h3cR1J5lDwIDCFMDCEs\nDiEsCSFc1szz40MIa0IIc+pv3y/1GiVJktq6XGb4ZT3AplMnOPRQmDIFHn4Y3n8fnngCrroqnix6\n/fVxdmGvXjB2LFx+eTyVdJuh9ZnBaLb7ksqvpOWgIYSOwEvA54E3gL8D5yRJ8uI214wH/m+SJKdk\neS/LQSVJUtXKnOE3ZUorzO/bsAGeegoefzyWjs6aBZs3Q+fOMSicMIFv3nUMN807jI105qyzYPXq\npiWomfcdKSEVT6WUg44GliZJsiJJko3AbcCpzVyX/1FVkiRJVSQzy5dLZjDvrFzXrnEY/Y9+FIPB\n99+P5aGXXAIffghXXsn1847mfXryVI8T+MPQaxn+6Sw6smlrCWopZipKyk+pg8C9gNe3ub+y/rFt\nJcDhIYR5IYRpIYShJVudVEXsw5DScQ+p3DJn+OUSbOUSKLZo551jBPmzn8Hs2fDuu6z7413MGPh/\nGN33Dbpe9R1+8fRhrO3Ui6dqJlHzq2v4078+zdlnbGy2JNV9JJVHpxJ/Xi71m88D/ZMkWR9COBG4\nBxjU3IUXXngh++67LwA1NTUMHz5866yZhv9R8b73vd/8/blz57ap9Xjf+5V2v0FbWY/3vT91Kpx2\nWh2XXgo1Nc1fv2FDvD9q1Hh+/esifP78+dCvJycu+WW8f9ddMHcu41evhhkzqPvuQwDcutNOcOZY\n6vbeG4YNY/xXvwo77sjcuXOL9v0nT4ZZs+ro0gX+8pfx1NS0rf9+vO/9YtyfO3cuH9Sn8VesWEGh\nSt0TOAa4MkmSifX3vwtsSZLk2hZesxwYmSTJexmP2xMoSZKUh2IOes/J6tXxoJnp02HGDJg/H5Ik\n9hQedhiMGwdHHw2HHw7dum192eTJ+fc3jh9v76GqT0XMCQwhdCIeDHMssAqYxWcPhukDrE6SJAkh\njAZuT5Jk32beyyBQkiSpkrz3Hjz5ZIzWpk+H55+HLVviKaUjR24NCk/6yZFMe3IXIPeALvOgnGIE\nuYUEo1IpVUQQCFBf4vkLoCPw2yRJfhJCuAggSZKbQgjfAL4GbALWE08KfaaZ9zEIlFKoq6vbWl4g\nKX/uISm9umnTGN+hQ8wSTp8Of/87bNzIZjowl+G8tPvRnHrdOLpNPAp23bXF92qNLKfZRbV1hQaB\npe4JJEmSh4CHMh67aZt//yfwn6VelyRJkkpsp51ipDVxYry/fj088wwbH5lBl5unc87aXxHO+0V8\n7qCD4Mgj4+2II2DffSE0/n/fhoNyGhQji+fJpmqvSp4JLBYzgZIkSZUp5wDtk09idnD6dJg5M46p\nWLs2Pte3bwwGGwLDYcNiWWm9YmTxSt5DKeWpYspBi8UgUJIkqTIVHKBt3gwLFsS+wpkz49/XXovP\nde8OY8ZsDQy/8NMx3P1o9609glOmpM8M2iOotsYgUFJe7GeS0nEPSYVrOMRl0KA6nn12fLpg6vXX\nG4PCmTO3nkCadOzI8p0PZq8vHkmXY4/kjOuO4K5n+gKFZwbtEVRbUzE9gZIkSapuU6fGrNoFF+SW\nTWsxA9e/P5x9drwBrFkDzzxDePJJ9ps5E/74G7jpl9wJvMIAFvc6gvFjj4SFR8KQIdChQ87rtkdQ\n7YWZQEmSJLVpqTJwGzfC3LlseHQm8258ktEbZ9Jh9dvxuZqaOK9w7Nh4Gz26xag0W4+g5aIqNctB\nJUmS1C4VdQZgksArrzQeNPP007HPMEniaaNDhjQGhWPG5JUttFxUpVZoEJh7/ltSu1JXV1fuJUgV\nzT0kpdewjyZPjgHUpEkx25Zp6tQYVBVlCHwIsP/+TH7ynxj/0k1M6jefD1Z8wHWTHuO3+/yQWe/s\ny5a77oZ//meorYVeveCEE+DKK+Hhh+H997f71paLqlLYEyhJkqSyevnlxgza5MmfzaC1xgzAJp95\naQ9WrzuW6SuOBeCsMxNu//GSmCVsuF19NWzZEl/QkC0cMyb+HToUOnTY2uvoSAm1dZaDSpIkqazy\nLfcsRtll5meee26WNXz4YZxZ2BAUPvMM/OMf8bkePWJvYUNQeOih0Lt3/ouS8mRPoCRJkipSvkPZ\ni9EjmPmZeQ+GTxJYurRpUDh/fmO2cL/94kEzDbcRIxrrRaUiMQiUlBdnnEnpuIek9ArdR3kHbKXy\n0Ufw3HMxYzhrFjz7bJxjCNCxIwwb1jQwHDIkPi4VyDmBkiRJqgqZPYJtRvfusVZ128D2zTcbg8JZ\ns1j3uz/R7aabAEi6dSOMGtU0MOzfPx5eU6+Q/sfM10yZ4ugKNWUmUJIkSSqRY8Zt4Y0ZSxnNLL40\ncBYn7joL5syBTz+NF/Tp0yQoPPmqQ3nwqZ5A7v2PmT2Tq1c7uqK9MhMoSZIktXFdu3VgCYPYZdQg\nxj56HtQQA8D587dmC5k1C+6/H4AHgCUM5JVeozj6cyOhbhQcckg8jGY7MkdVnHtu0/vFUIwTWlU+\nZgKlKmU/k5SOe0hKr9L3USGBUM79jGvWwOzZbJg+i/m/ncWhYTYdVr7W+PygQTByZIzsRo6MB8/U\nB4apD73JQTFOaFV6ZgIlSZKkEso237A5Ofcz7rILTJhA1wkTOOyq+sfeeQdmz463556DmTPh1lvj\ncyHEwHDUKGpGjuT2b46CTiOA7lk/s5BgNjPbWIz3VOmYCZQkSZIKUIxRFamDpdWrG4PChr9vvBGf\nCwEOPLAxWzhqFAwfHg+w2UYhWb1s2UUzhaXhiAhJkiSphIpRZpkZLNXUFCGD9tZbTTOGs2fDqlXx\nuRDiaIqGEtIRIzjrx8P582M1LQaz+QarxQiQlZ1BoKS8VHofhlRu7iEpvfa+j3IJnDKDpdNOa6UM\n2ptvNg0KZ8+Oj9V7u9sAek4YQefRMTDkkENgzz23Pp9vZq+QANkS0vzZEyhJkiS1Ibn0DE6d2jRY\narVeuz33hJNPjrcGb78dx1PMmUOf+r/cf1fj8336bM0WHr9mBCsZQa+R+/HrX3fI+nGFzHIspMdS\nhTETKEmSJLWCQkoiy95rt3YtzJu3NThkzhxYuBA2bQIg2XlnwvDhW4NDRoyAoUNhhx1Sf7QlpPmz\nHFSSJElqQ1pjNENzgVKrl1F+8gksWNA0MJw3D9avj8937gy1tTEgPPjgePvc56Bnz7w+pjX+82rv\nDAIl5aW992FIrc09JKXnPspfc4FSWU7i3LwZlizZGhQumjqHvqvnUrPx3cZr9t4bhg2LQWHD34ED\noWPHEiywOtgTKEmSJLVzzfXaZesjbBUdO8LgwfF2zjl8fRZMfyNhD97i4qPmcflJ82D+/JgxfOih\nGDQCH3foyqs717LvKcPocmh9cDhsWN5ZQ6VjJlCSJEmqYG2hjLLFfr5PPoFFi/jJOfPp8tI8hjGf\n0Z3n0eNTs4ZpWQ4qSZIkKatcegjz7TPMJRBtEig+klDz8VsxUzhvm6zh4sVbs4Z07Rp7DbcNDlNm\nDdvbGAqDQEl5sQ9DSsc9JKXnPiqPXHoIW6PPMKeMZX3WcGtQ2PD33cas4Tud9+LVHrXUnl3LjiNr\nY6A4dGhjXWwLytI/2YrsCZQkSZKUVS49hK3RZ5jZz9hsVq5Ll8bREw2SBN6KWcObvj6PrssXUvvu\nAjrceANs+QSALQSSAfvRcVh9UNhwGzQonl7ait8rF20tA2kmUJIkSaoiuWTkStFnWEhWrklJ6cOb\nufjEZaz/+wJqWcCJ/RYwducFMdpqKCnt1AkOPHBrULhuQC3f+X+1XP3HAdTsWrp+w8zvWlNTnKDQ\nclBJkiRJFaOQ4fCZwWmz7/HJJ/DSS3G24ba35csb36hr11hCWlvLHYtr+fv6Wt7ctZbr79qLmp55\nx1R5f9fTTitOWapBoKS82IchpeMektJzH1W3bNnGXEoo88pYfvRR7DfMDA7ffHPrJet22IVuhx4E\nBx0EQ4bEQHHIEOjfH0LhwWFOwWsB7AmUJEmSVDGam3m4rZdfbsyWTZ7c/LXZ3qOJ7t1h9Oh428YX\nP/8P3vzrQibtvZBvHbcAXn4B7roL/vGPpq8dPLgxKGz4u99+OY2xyFzn1Knpy20nTy7sdWAmUJIk\nSVIbVEi2rJADWLabTXznHXjxxZg93PbvG280XtOlSzx8JiM4/PrPD2DRsi5FPQgm87vFklLLQSVJ\nkiS1E4UcTlOSERBr1sR5hpnB4fLl8SRTYDMdWcr+LGIoDB7C6ZfXB4mDB0O3bgV9bOZ3++gjeOgh\ng0BJebAPQ0rHPSSl5z5SsRWj167gcQ7r18cXLlrErVe8SOdlixix44sM2LSEsGlT43X77BMzhoMH\nN94OPBB2373FvsPM7wbQs6c9gZIkSZKqWGavXSEBXS69iM3aaScYPhyGD+fESfG1x/4aQreNsHRp\nY8awIXtYVwcbNjS+vqYmBoMNQWFDgLj//tC5c1H6CBuYCZQkSZLULqWeRfgoTJnSNJDMvF9wQLZl\nC7z+ehxnsXhxvDX8e9Wqxus6dowH0DQTIIbddrMcVJIkSZIaFGMWYWYguXp16wx+b2Lt2vim2waG\nixfDkiVxDmK9AAUFgR2KsERJFaiurq7cS5AqmntISs99pNY2dWoM1PLpD2wY59Bw/U47xb+jRsXA\nMPN+Q/noQw+lG9uwrcmX9mD8paOYNPU8Pvj21XDHHfDCC7BuHSxbBtOmwXXXFfz+BoGSJEmS2qXM\ngK4QmYFk5v3MoLAYthtYNpSGnngifOtbBb+/5aCSJEmSVKBCRllkk2sZawiOiJAkSZKkipN5imnD\nY9kCy0KDQMtBpSplH4aUjntISs99JEWZ5Z/FKGNtiUGgJEmSJJVRa/QVtsRyUEmSJEkqo0L7Cu0J\nlCRJkqQqYk+gpLzYhyGl4x6S0nMfSeVhEChJkiRJVcRyUEmSJEmqQJaDSpIkSZKyMgiUqpR9GFI6\n7iEpPfeRVB4GgZIkSZJURewJlCRJkqQKZE+gJEmSJCkrg0CpStmHIaXjHpLScx9J5WEQKEmSJElV\nxJ5ASZIkSapA9gRKkiRJkrIyCJSqlH0YUjruISk995FUHgaBkiRJklRF7AmUJEmSpApkT6AkSZIk\nKSuDQKlK2YchpeMektJzH0nlYRAoSZIkSVXEnkBJkiRJqkD2BEqSJEmSsjIIlKqUfRhSOu4hKT33\nkVQeBoGSJEmSVEXsCZQkSZKkCmRPoCRJkiQpK4NAqUrZhyGl4x6S0nMfSeVhEChJkiRJVcSeQEmS\nJEmqQPYESpIkSZKyMgiUqpR9GFI67iEpPfeRVB4GgZIkSZJURewJlCRJkqQKZE+gJEmSJCkrg0Cp\nStmHIaXjHpLScx9J5WEQKEmSJElVxJ5ASZIkSapA9gRKkiRJkrIyCJSqlH0YUjruISk995FUHgaB\nkiRJklRF7AmUJEmSpApkT6AkSZIkKSuDQKlK2YchpeMektJzH0nlYRAoSZIkSVXEnkBJkiRJqkD2\nBEqSJEmSsjIIlKqUfRhSOu4hKT33kVQeBoGSJEmSVEXsCZQkSZKkCmRPoCRJkiQpK4NAqUrZhyGl\n4x6S0nMfSeVhEChJkiRJVcSeQEmSJEmqQPYESpIkSZKyMgiUqpR9GFI67iEpPfeRVB4GgZIkSZJU\nRewJlCRJkqQKZE+gJEmSJCmrkgeBIYSJIYTFIYQlIYTLtnPNL+ufnxdCGFHqNUrVwD4MKR33kJSe\n+0gqj5IGgSGEjsANwERgKHBOCGFIxjWTgIFJkhwATAb+q5RrlKrF3Llzy70EqaK5h6T03EdSeZQ6\nEzgaWJokyYokSTYCtwGnZlxzCvAHgCRJngVqQgh9SrtMqf374IMPyr0EqaK5h6T03EdSeZQ6CNwL\neH2b+yvrH8t2Tb9WXpckSZIkVYVSB4G5HueZecKNx4BKRbZixYpyL0GqaO4hKT33kVQeJR0REUIY\nA1yZJMnE+vvfBbYkSXLtNtf8CqhLkuS2+vuLgXFJkryd8V4GhpIkSZKqWiEjIjq1xkJa8BxwQAhh\nX2AV8EXgnIxr7gMuBm6rDxo/yAwAobAvK0mSJEnVrqRBYJIkm0IIFwN/AToCv02S5MUQwkX1z9+U\nJMm0EMKkEMJSYB3w5VKuUZIkSZLas5KWg0qSJEmSyqvkw+Lz5XB5KZ1seyiEMD6EsCaEMKf+9v1y\nrFNqi0IIN4cQ3g4hvNDCNf4GSS3Ito/8HZJaFkLoH0J4PISwMISwIIRwyXauy/n3qE0HgQ6Xl9LJ\nZQ/Vm54kyYj6249Kukipbfsdcf80y98gKSct7qN6/g5J27cR+FaSJAcBY4BvpI2J2nQQiMPlpbRy\n2UPw2bEskoAkSZ4A3m/hEn+DpCxy2Efg75C0XUmSvJUkydz6f38EvAj0zbgsr9+jth4EOlxeSieX\nPZQAh9eXDkwLIQwt2eqkyudvkJSev0NSjuqnLIwAns14Kq/fo1KPiMiXw+WldHLZC88D/ZMkWR9C\nOBG4BxjUusuS2hV/g6R0/B2SchBC6A78GfiX+ozgZy7JuL/d36O2ngl8A+i/zf3+xKi2pWv61T8m\nKYc9lCTJh0mSrK//90PADiGEXqVbolTR/A2SUvJ3SMouhLADcCdwS5Ik9zRzSV6/R209CNw6XD6E\n0Jk4XP6+jGvuAy4AaGm4vFSlsu6hEEKfEEKo//do4uiY90q/VKki+RskpeTvkNSy+v3xW2BRkiS/\n2M5lef0etelyUIfLS+nksoeAM4GvhRA2AeuBs8u2YKmNCSHcCowDeocQXgf+DdgB/A2ScpVtH+Hv\nkJTNEcB5wPwQwpz6x74H7A2F/R45LF6SJEmSqkhbLweVJEmSJBWRQaAkSZIkVRGDQEmSJEmqIgaB\nkiRJklRFDAIlSZIkqYoYBEqSJElSFTEIlCRJkqQqYhAoSVKOQghfCSE8EULYEkJ4OYRwdv3je4UQ\nFoQQNoYQHgwhnFnutUqStD0Oi5ckKQ8hhC7AG8CdSZJcVP9YAG4Abk6SZHY51ydJUjZmAiVJykOS\nJJ8AvwfODSH0qH/4cuBXBoCSpEpgJlCSpDyFEAYCLwH/CnQEZiVJ8lR5VyVJUm4MAiVJKkAI4RFg\nFHBukiQPl3s9kiTlynJQSZIK8zhQA6wr90IkScqHQaAkSXkKIYwDPgReBb5e5uVIkpSXTuVegCRJ\nlSSEMBwYmyTJNSGEnYErQwi7J0myutxrkyQpF2YCJUnKUf2BMGcmSXJN/UO/ARLgK+VblSRJ+fFg\nGEmSchBCGAr8C/DVZJsfzxDCrcDhwIAkSbaUa32SJOXKTKAkSS0IIUwKIdwNPA+MA/bb5rn/DYwF\n+gGPhhD+qTyrlCQpd2YCJUmSJKmKmAmUJEmSpCpiEChJkiRJVcQgUJIkSZKqiEGgJEmSJFURB3/q\nXQAAAC9JREFUg0BJkiRJqiIGgZIkSZJURQwCJUmSJKmKGARKkiRJUhUxCJQkSZKkKvL/AatvTrS7\nfC/sAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4: Nonlinear problem\n", "\n", "Finally, the following is an example of a non-linear problem (from OpenOpt [non-linear examples](http://trac.openopt.org/openopt/browser/PythonPackages/OpenOpt/openopt/examples/nlp_1.py)) as described at the beginning of this part." ] }, { "cell_type": "code", "collapsed": false, "input": [ "\"\"\"\n", "Example:\n", "(x0-5)^2 + (x2-5)^2 + ... +(x149-5)^2 -> min\n", "\n", "subjected to\n", "\n", "# lb<= x <= ub:\n", "x4 <= 4\n", "8 <= x5 <= 15\n", "\n", "# Ax <= b\n", "x0+...+x149 >= 825\n", "x9 + x19 <= 3\n", "x10+x11 <= 9\n", "\n", "# Aeq x = beq\n", "x100+x101 = 11\n", "\n", "# c(x) <= 0\n", "2*x0^4-32 <= 0\n", "x1^2+x2^2-8 <= 0\n", "\n", "# h(x) = 0\n", "(x[149]-1)**6 = 0\n", "(x[148]-1.5)**6 = 0\n", "\"\"\"\n", "\n", "from openopt import NLP\n", "from numpy import cos, arange, ones, asarray, zeros, mat, array\n", "N = 150\n", "\n", "# objective function:\n", "f = lambda x: ((x-5)**2).sum()\n", "\n", "# objective function gradient (optional):\n", "df = lambda x: 2*(x-5)\n", "\n", "# start point (initial estimation)\n", "x0 = 8*cos(arange(N))\n", "\n", "# c(x) <= 0 constraints\n", "c = [lambda x: 2* x[0] **4-32, lambda x: x[1]**2+x[2]**2 - 8]\n", "\n", "# dc(x)/dx: non-lin ineq constraints gradients (optional):\n", "dc0 = lambda x: [8 * x[0]**3] + [0]*(N-1)\n", "dc1 = lambda x: [0, 2 * x[1], 2 * x[2]] + [0]*(N-3)\n", "dc = [dc0, dc1]\n", "\n", "# h(x) = 0 constraints\n", "def h(x):\n", " return (x[N-1]-1)**6, (x[N-2]-1.5)**6\n", " # other possible return types: numpy array, matrix, Python list, tuple\n", "# or just h = lambda x: [(x[149]-1)**6, (x[148]-1.5)**6]\n", "\n", "\n", "# dh(x)/dx: non-lin eq constraints gradients (optional):\n", "def dh(x):\n", " r = zeros((2, N))\n", " r[0, -1] = 6*(x[N-1]-1)**5\n", " r[1, -2] = 6*(x[N-2]-1.5)**5\n", " return r\n", " \n", "# lower and upper bounds on variables\n", "lb = -6*ones(N)\n", "ub = 6*ones(N)\n", "ub[4] = 4\n", "lb[5], ub[5] = 8, 15\n", "\n", "# general linear inequality constraints\n", "A = zeros((3, N))\n", "A[0, 9] = 1\n", "A[0, 19] = 1\n", "A[1, 10:12] = 1\n", "A[2] = -ones(N)\n", "b = [7, 9, -825]\n", "\n", "# general linear equality constraints\n", "Aeq = zeros(N)\n", "Aeq[100:102] = 1\n", "beq = 11\n", "\n", "# required constraints tolerance, default for NLP is 1e-6\n", "contol = 1e-7\n", "\n", "# If you use solver algencan, NB! - it ignores xtol and ftol; using maxTime, maxCPUTime, maxIter, maxFunEvals, fEnough is recommended.\n", "# Note that in algencan gtol means norm of projected gradient of the Augmented Lagrangian\n", "# so it should be something like 1e-3...1e-5\n", "gtol = 1e-7 # (default gtol = 1e-6)\n", "\n", "# Assign problem:\n", "# 1st arg - objective function\n", "# 2nd arg - start point\n", "p = NLP(f, x0, df=df, c=c, dc=dc, h=h, dh=dh, A=A, b=b, Aeq=Aeq, beq=beq, \n", " lb=lb, ub=ub, gtol=gtol, contol=contol, iprint = 50, maxIter = 10000, maxFunEvals = 1e7, name = 'NLP_1')\n", "\n", "#optional: graphic output, requires pylab (matplotlib)\n", "p.plot = True\n", "\n", "solver = 'ralg'\n", "#solver = 'scipy_slsqp'\n", "\n", "# solve the problem\n", "r = p.solve(solver, plot=1) # string argument is solver name\n", "\n", "# r.xf and r.ff are optim point and optim objFun value\n", "# r.ff should be something like 132.05\n", "print r.ff" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "------------------------- OpenOpt 0.52 -------------------------\n", "solver: ralg problem: NLP_1 type: NLP goal: minimum\n", " iter objFunVal log10(maxResidual) \n", " 0 8.596e+03 5.73 \n", " 50 3.033e+02 3.79 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 100 2.047e+02 4.15 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 150 1.863e+02 3.89 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 200 1.685e+02 4.06 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 250 1.798e+02 4.21 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 300 1.670e+02 3.90 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 350 1.652e+02 4.18 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 400 1.524e+02 3.73 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 450 1.713e+02 3.90 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 500 1.518e+02 4.11 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 550 1.633e+02 3.87 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 600 1.603e+02 3.76 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 650 1.553e+02 3.19 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 700 1.632e+02 2.63 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 750 2.084e+02 0.98 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 800 2.076e+02 -1.99 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 850 1.479e+02 -3.01 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 900 1.363e+02 -3.56 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 950 1.321e+02 -7.10 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 1000 1.372e+02 -7.09 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 1050 1.372e+02 -7.08 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 1100 1.372e+02 -7.08 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " 1144 1.321e+02 -7.10 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "istop: 3 (|| X[k] - X[k-1] || < xtol)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Solver: Time Elapsed = 4.27 \tCPU Time Elapsed = 4.288232\n", "Plotting: Time Elapsed = 5.99 \tCPU Time Elapsed = 5.971768\n", "objFunValue: 132.06825 (feasible, MaxResidual = 7.98482e-08)\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "132.068251573\n" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. Machine Learning in Python\n", "Machine learning is a hot and popular topic nowadays. It is about building programs with tunable parameters that are adjusted automatically by adapting to previously seen data. It intervenes literally every sphere of our life ranging from science, engineering, and industry to economics, sociology, and even [personal relationships](http://www.wired.com/wiredscience/2014/01/how-to-hack-okcupid/all/). So if it is applicable everywhere, we need to have handy tools for doing machine learning." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Start pylab inline mode, so figures will appear in the notebook\n", "%pylab inline" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1. Quick Overview of Scikit-Learn\n", "*Adapted from http://scikit-learn.org/stable/tutorial/basic/tutorial.html*" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Load a dataset already available in scikit-learn\n", "from sklearn import datasets\n", "digits = datasets.load_digits()\n", "type(digits)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "sklearn.datasets.base.Bunch" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "digits.data" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "array([[ 0., 0., 5., ..., 0., 0., 0.],\n", " [ 0., 0., 0., ..., 10., 0., 0.],\n", " [ 0., 0., 0., ..., 16., 9., 0.],\n", " ..., \n", " [ 0., 0., 1., ..., 6., 0., 0.],\n", " [ 0., 0., 2., ..., 12., 0., 0.],\n", " [ 0., 0., 10., ..., 12., 1., 0.]])" ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "digits.target" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ "array([0, 1, 2, ..., 8, 9, 8])" ] } ], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn import svm\n", "clf = svm.SVC(gamma=0.001, C=100.)\n", "clf.fit(digits.data[:-1], digits.target[:-1])\n", "\n", "print \"Original label:\", digits.target[5]\n", "print \"Predicted label:\", clf.predict(digits.data[5])\n", "\n", "plt.figure(figsize=(3, 3))\n", "plt.imshow(digits.images[5], interpolation='nearest', cmap=plt.cm.binary)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Original label: 5\n", "Predicted label: [5]\n" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2. Data representation in Scikit-learn\n", "*Adapted from https://github.com/jakevdp/sklearn_scipy2013*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Data in scikit-learn, with very few exceptions, is assumed to be stored as a **two-dimensional array**, of size `[n_samples, n_features]`, and most of machine learning algorithms implemented in scikit-learn expect data to be stored this way.\n", "\n", "- **n_samples:** The number of samples: each sample is an item to process (e.g. classify). A sample can be a document, a picture, a sound, a video, an astronomical object, a row in database or CSV file, or whatever you can describe with a fixed set of quantitative traits.\n", "- **n_features:** The number of features or distinct traits that can be used to describe each item in a quantitative manner. Features are generally real-valued, but may be boolean or discrete-valued in some cases.\n", "\n", "The number of features must be fixed in advance. However it can be very high dimensional (e.g. millions of features) with most of them being zeros for a given sample. This is a case where scipy.sparse matrices can be useful, in that they are much more memory-efficient than numpy arrays." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2.1. Example: `iris dataset`\n", "To understand these simple concepts better, let's work with an example: `iris-dataset`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Don't know what iris is? Run this code to generate some pictures.\n", "from IPython.core.display import Image, display\n", "display(Image(filename='figures/iris_setosa.jpg'))\n", "print \"Iris Setosa\\n\"\n", "\n", "display(Image(filename='figures/iris_versicolor.jpg'))\n", "print \"Iris Versicolor\\n\"\n", "\n", "display(Image(filename='figures/iris_virginica.jpg'))\n", "print \"Iris Virginica\"" ], "language": "python", "metadata": {}, "outputs": [ { "jpeg": "/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgFBgcGBQgHBgcJCAgJDBMMDAsLDBgREg4THBgdHRsY\nGxofIywlHyEqIRobJjQnKi4vMTIxHiU2OjYwOiwwMTD/2wBDAQgJCQwKDBcMDBcwIBsgMDAwMDAw\nMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDD/wAARCAE+AZADASIA\nAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA\nAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3\nODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm\np6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA\nAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx\nBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK\nU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3\nuLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDyiPmr\ncIqOGEjtVyOPpxXMzquORM9qmWPkChVwKntky4JosTa5ct12qKW6l2Qsc08DC1Q1KT5Qo70jqWkS\nCzXfNuPOTXV6YAFFczpy/MK6fT+1c1c4qhsxD5arXyZU1bg+7UV4PlNccJWZkmclqC7ZKpbq09TT\n5jWaq5au5q6uaSV0IFZmGK04Lf5RUVtDlga17eLgcVCfKKL5SobXjpURjaNsittYMioLy2xGTiqj\nUvozdSUtGVLe4IYDNdHpMoce9cjJmNs9K2dFu9rCidO2qM5QsdO44ApjR8U+GRJgCDj61MwUDkis\niTn9WhAgkZugU1xZXDV2+vv5kZRBhe/vXHvFiQiuiD0KQyFSXArqdGiwBXP20JMgrrNJiworKqyZ\n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\n", "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Iris Setosa\n", "\n" ] }, { "jpeg": "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\n9a9XqXUjhf/Z\n", "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Iris Versicolor\n", "\n" ] }, { "jpeg": "/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsK\nCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQU\nFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAGQAZADASIA\nAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA\nAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3\nODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm\np6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA\nAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx\nBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK\nU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3\nuLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCpqfiB\nZdGg02eFZYTxGIU25Hua4TW/Ds2lOZPKBtpAfmAycdx7VU1TVtQtrhbSVJI/Kj8xXcYR174Pr7e9\naC+PpH0+KIpG6OuBG3G78ea+XWD5Zc1zonRujrPAPxOFmsOkeIJvN0oAJb3YXMlue2491HHPb3r1\nEyrhMyJOkinyriM5SUf3gfyr561HSJraGK4aNUSbkRg5GfStfwV8QbrwhE1lKrXWjb90tv1eM+sZ\n/p3wOlZTg07HnyjZ2PXby135Clg2MFSevvnrUU8aeIJEW/uXtb5VEcN2jeWrY6LJj9G9zUtrqFrq\nNjFcW8wms5RvSXdyo9G9CPSlntxcDcAAT3/vLWam4uwRk4s4nW49e0LUIYGuLpLVjl4ZEDsPdWPV\n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\n", "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Iris Virginica\n" ] } ], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "# Load the dataset from scikit-learn\n", "from sklearn.datasets import load_iris\n", "iris = load_iris()\n", "type(iris) # The resulting dataset is a Bunch object" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 23, "text": [ "sklearn.datasets.base.Bunch" ] } ], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "iris.keys()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ "['target_names', 'data', 'target', 'DESCR', 'feature_names']" ] } ], "prompt_number": 24 }, { "cell_type": "code", "collapsed": false, "input": [ "print iris.DESCR" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Iris Plants Database\n", "\n", "Notes\n", "-----\n", "Data Set Characteristics:\n", " :Number of Instances: 150 (50 in each of three classes)\n", " :Number of Attributes: 4 numeric, predictive attributes and the class\n", " :Attribute Information:\n", " - sepal length in cm\n", " - sepal width in cm\n", " - petal length in cm\n", " - petal width in cm\n", " - class:\n", " - Iris-Setosa\n", " - Iris-Versicolour\n", " - Iris-Virginica\n", " :Summary Statistics:\n", " ============== ==== ==== ======= ===== ====================\n", " Min Max Mean SD Class Correlation\n", " ============== ==== ==== ======= ===== ====================\n", " sepal length: 4.3 7.9 5.84 0.83 0.7826\n", " sepal width: 2.0 4.4 3.05 0.43 -0.4194\n", " petal length: 1.0 6.9 3.76 1.76 0.9490 (high!)\n", " petal width: 0.1 2.5 1.20 0.76 0.9565 (high!)\n", " ============== ==== ==== ======= ===== ====================\n", " :Missing Attribute Values: None\n", " :Class Distribution: 33.3% for each of 3 classes.\n", " :Creator: R.A. Fisher\n", " :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\n", " :Date: July, 1988\n", "\n", "This is a copy of UCI ML iris datasets.\n", "http://archive.ics.uci.edu/ml/datasets/Iris\n", "\n", "The famous Iris database, first used by Sir R.A Fisher\n", "\n", "This is perhaps the best known database to be found in the\n", "pattern recognition literature. Fisher's paper is a classic in the field and\n", "is referenced frequently to this day. (See Duda & Hart, for example.) The\n", "data set contains 3 classes of 50 instances each, where each class refers to a\n", "type of iris plant. One class is linearly separable from the other 2; the\n", "latter are NOT linearly separable from each other.\n", "\n", "References\n", "----------\n", " - Fisher,R.A. \"The use of multiple measurements in taxonomic problems\"\n", " Annual Eugenics, 7, Part II, 179-188 (1936); also in \"Contributions to\n", " Mathematical Statistics\" (John Wiley, NY, 1950).\n", " - Duda,R.O., & Hart,P.E. (1973) Pattern Classification and Scene Analysis.\n", " (Q327.D83) John Wiley & Sons. ISBN 0-471-22361-1. See page 218.\n", " - Dasarathy, B.V. (1980) \"Nosing Around the Neighborhood: A New System\n", " Structure and Classification Rule for Recognition in Partially Exposed\n", " Environments\". IEEE Transactions on Pattern Analysis and Machine\n", " Intelligence, Vol. PAMI-2, No. 1, 67-71.\n", " - Gates, G.W. (1972) \"The Reduced Nearest Neighbor Rule\". IEEE Transactions\n", " on Information Theory, May 1972, 431-433.\n", " - See also: 1988 MLC Proceedings, 54-64. Cheeseman et al\"s AUTOCLASS II\n", " conceptual clustering system finds 3 classes in the data.\n", " - Many, many more ...\n", "\n" ] } ], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "# Number of samples and features\n", "iris.data.shape\n", "print \"Number of samples:\", iris.data.shape[0]\n", "print \"Number of features:\", iris.data.shape[1]\n", "print iris.data[0]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Number of samples: 150\n", "Number of features: 4\n", "[ 5.1 3.5 1.4 0.2]\n" ] } ], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "# Target (label) names\n", "print iris.target_names" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "['setosa' 'versicolor' 'virginica']\n" ] } ], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "# Visualize the data\n", "x_index = 0\n", "y_index = 1\n", "\n", "# this formatter will label the colorbar with the correct target names\n", "formatter = plt.FuncFormatter(lambda i, *args: iris.target_names[int(i)])\n", "\n", "plt.figure(figsize=(7, 5))\n", "plt.scatter(iris.data[:, x_index], iris.data[:, y_index], c=iris.target)\n", "plt.colorbar(ticks=[0, 1, 2], format=formatter)\n", "plt.xlabel(iris.feature_names[x_index])\n", "plt.ylabel(iris.feature_names[y_index])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 28, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nNHBZbuDAgfxl0iRmY/2lrLEJX3777RW1NRoVQxaeRb5VJoUex1eWynPnFsMwjCvhjs4tN+tXRS43\nV243nVuulHMl3d+cq+vuEJEX8tnvTRHZ61xNt0Ne+xiGYRiFZzq3uJZv/VZEfnBRTlV1qKsDq2qq\niPRV1WQR8QRWisg1qpoz+F1EBgGNVbWJiHTDmpW7e37HLAnR0dEsWLAAPz8/xowZQ2BgYM62DRs2\nsHjxYgIDAxk7dqzbFwWdPHkyq1atokWLFkydOhVPT+vjUFXmzp3Ljh07aN68OSNGjMgZTJydnc2s\nWbNy1uMbPHiwWwcaJyUl8dlnnxEXF0e/fv3o0qVLocrt3r2bp59+mpSUFCZOnMjgwRfnOj958iRf\nf/01GRkZjBgxotCXCZctW8bUqVOx2+08++yztG/fPmfbrl27+P777/Hx8WH06NGXTNr97bffMn36\ndPz9/Xn11VepX79+IV998dx777388ssv1KtXj/nz5+fMj6mqzJ8/ny1bttCoUSNuvfXWnEHw2dnZ\nPPnkk2zatIkOHTrw4osvXrLtm2++yVmPL/d7WVypqal89tlnnD59moiICHr27JmzLTExkc8//5y4\nuDj69+9/RXONFsbhw4eZNWsWIsKoUaOoW7duzrZ9+/bx3XffYbfbue222wgNDXVrLBVFZWuzKzIX\n871FuLoVce44B7AOaHnZ8+8Bf8r1eBcQktfccyXh559/Voejqnp69lQfn/YaFhauZ8+eVVXVuXPn\nqsMRqJ6evdTXt402btxCExISSuS8eenatadCVYWeCjUvWatv/PgH1M+vjtps16qfX129554/q6q1\n/tqtt45WP79w57ba+uijf3NbjImJidqqfSttNbSl9nysuwbWrKrfzv62wHLR0dHq7e+lLUa10M5/\n6aR2h13feecdVVU9dOiQ1gyrqZ3u7qDdJnbRoBqBunHjxgKP+fXXX6td0E42tK1N1EtEV65cqaqq\nq1at0qp+ftrD01M7entrWM2aeuLECVVVfeGFF9QO2k3Q5h6iPp4eeuDAgSt4V1xr2rCh+oP2BK0F\n6ufpqWlpaaqq+sTTT2it5rW01997av3O9fX2O2/PmW+0dctmGmwT7SlosE20VYtmqnpxzb1wPz+9\n1mbT2n5++sRjj11RjCkpKdq5bVtt4XDoNR4eGuRw6CczZqiqakJCgrZs0kRb+/pqL09PDfT11e++\n++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\nAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 28 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Quick Exercise:**\n", "Change `x_index` and `y_index` and find the 2D projection of the data which maximally separate all three classes." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# your code goes here" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 29 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2.2. Other available datasets\n", "Scikit-learn makes available a host of datasets for testing learning algorithms. They come in three flavors:\n", "\n", "- **Packaged Data**: these small datasets are packaged with the scikit-learn installation, and can be downloaded using the tools in `sklearn.datasets.load_*`\n", "- **Downloadable Data**: these larger datasets are available for download, and scikit-learn includes tools which streamline this process. These tools can be found in `sklearn.datasets.fetch_*`\n", "- **Generated Data**: there are several datasets which are generated from models based on a random seed. These are available in the `sklearn.datasets.make_*`" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Where the downloaded datasets via fetch_scripts are stored\n", "from sklearn.datasets import get_data_home\n", "get_data_home()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 30, "text": [ "'/Users/hadjimy/scikit_learn_data'" ] } ], "prompt_number": 30 }, { "cell_type": "code", "collapsed": false, "input": [ "# How to fetch an external dataset\n", "from sklearn import datasets" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 31 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now you can type `datasets.fetch_` and a list of available datasets will pop up." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Exercise:\n", "Fetch the dataset `olivetti_faces`. Visualize various 2D projections for the data. Find the best in terms of separability." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.datasets import fetch_olivetti_faces" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "# your code goes here\n", "# fetch the faces data\n", "# Use a script like above to plot the faces image data.\n", "# Hint: plt.cm.bone is a good colormap for this data." ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 33 }, { "cell_type": "code", "collapsed": false, "input": [ "#%load solutions/sklearn_vis_data.py" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 34 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.3. Linear regression and classification\n", "In this section, we explain how to use scikit-learn library for regression and classification. We discuss `Estimator` class - the base class for many of the scikit-learn models - and work through some examples." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.datasets import load_boston\n", "data = load_boston()\n", "print data.DESCR" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Boston House Prices dataset\n", "\n", "Notes\n", "------\n", "Data Set Characteristics: \n", "\n", " :Number of Instances: 506 \n", "\n", " :Number of Attributes: 13 numeric/categorical predictive\n", " \n", " :Median Value (attribute 14) is usually the target\n", "\n", " :Attribute Information (in order):\n", " - CRIM per capita crime rate by town\n", " - ZN proportion of residential land zoned for lots over 25,000 sq.ft.\n", " - INDUS proportion of non-retail business acres per town\n", " - CHAS Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)\n", " - NOX nitric oxides concentration (parts per 10 million)\n", " - RM average number of rooms per dwelling\n", " - AGE proportion of owner-occupied units built prior to 1940\n", " - DIS weighted distances to five Boston employment centres\n", " - RAD index of accessibility to radial highways\n", " - TAX full-value property-tax rate per $10,000\n", " - PTRATIO pupil-teacher ratio by town\n", " - B 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town\n", " - LSTAT % lower status of the population\n", " - MEDV Median value of owner-occupied homes in $1000's\n", "\n", " :Missing Attribute Values: None\n", "\n", " :Creator: Harrison, D. and Rubinfeld, D.L.\n", "\n", "This is a copy of UCI ML housing dataset.\n", "http://archive.ics.uci.edu/ml/datasets/Housing\n", "\n", "\n", "This dataset was taken from the StatLib library which is maintained at Carnegie Mellon University.\n", "\n", "The Boston house-price data of Harrison, D. and Rubinfeld, D.L. 'Hedonic\n", "prices and the demand for clean air', J. Environ. Economics & Management,\n", "vol.5, 81-102, 1978. Used in Belsley, Kuh & Welsch, 'Regression diagnostics\n", "...', Wiley, 1980. N.B. Various transformations are used in the table on\n", "pages 244-261 of the latter.\n", "\n", "The Boston house-price data has been used in many machine learning papers that address regression\n", "problems. \n", " \n", "**References**\n", "\n", " - Belsley, Kuh & Welsch, 'Regression diagnostics: Identifying Influential Data and Sources of Collinearity', Wiley, 1980. 244-261.\n", " - Quinlan,R. (1993). Combining Instance-Based and Model-Based Learning. In Proceedings on the Tenth International Conference of Machine Learning, 236-243, University of Massachusetts, Amherst. Morgan Kaufmann.\n", " - many more! (see http://archive.ics.uci.edu/ml/datasets/Housing)\n", "\n" ] } ], "prompt_number": 35 }, { "cell_type": "code", "collapsed": false, "input": [ "# Plot histogram for real estate prices\n", "plt.hist(data.target)\n", "plt.xlabel('price ($1000s)')\n", "plt.ylabel('count')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 36, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 36 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Quick Exercise:** Try sctter-plot several 2D projections of the data. What you can infer from the plots?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# your code goes here" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 37 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Every algorithm is exposed in scikit-learn via an `Estimator` object. For instance a linear regression is:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.linear_model import LinearRegression\n", "clf = LinearRegression()\n", "clf.fit(data.data, data.target)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 38, "text": [ "LinearRegression(copy_X=True, fit_intercept=True, normalize=False)" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "predicted = clf.predict(data.data)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "# Plot the predicted price vs. true price\n", "plt.scatter(data.target, predicted)\n", "plt.plot([0, 50], [0, 50], '--k')\n", "plt.axis('tight')\n", "plt.xlabel('True price ($1000s)')\n", "plt.ylabel('Predicted price ($1000s)')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 40, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 40 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Examples of regression type problems in machine learning:\n", "\n", "- **Sales:** given consumer data, predict how much they will spend\n", "- **Advertising:** given information about a user, predict the click-through rate for a web ad.\n", "- **Collaborative Filtering:** given a collection of user-ratings for movies, predict preferences for other movies & users.\n", "- **Astronomy:** given observations of galaxies, predict their mass or redshift" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another example of regularized linear regression on a synthetic data set." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "from sklearn.linear_model import LinearRegression\n", "\n", "rng = np.random.RandomState(0)\n", "x = 2 * rng.rand(100) - 1\n", "\n", "f = lambda t: 1.2 * t ** 2 + .1 * t ** 3 - .4 * t ** 5 - .5 * t ** 9\n", "y = f(x) + .4 * rng.normal(size=100)\n", "\n", "plt.figure(figsize=(7, 5))\n", "plt.scatter(x, y, s=4)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 41, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAbYAAAE4CAYAAAA3s9bYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFmVJREFUeJzt3WusHGd9x/Hv33b6AmgVLJBDEtMIkahE4kVAcqzQKCsV\nqsRIpki0TaQqmEhVhOoS0VYlXKQcS0hteBVSA7WA0yRqRVJBCaHEIkbKgquq4ZILNweIIJITckGY\nS8CVGuf8++LsOTle7zlnd2cvM898P5LlvYx3Hj8zO795nnme2chMJEkqxZZ5F0CSpEky2CRJRTHY\nJElFMdgkSUUx2CRJRTHYJElFqRRsEbEzIu6PiO9FxHcj4j0DlulExK8i4qHenw9VWackSRvZVvHf\nPw+8NzMfjoiXAd+KiCOZeaxvua9m5t6K65IkaVOVWmyZ+XRmPtx7/BvgGHDugEWjynokSRrWxK6x\nRcQFwCXAA31vJXBZRDwSEfdGxMWTWqckSf2qdkUC0OuG/CxwQ6/lttaDwM7MPBkRVwF3AxdNYr2S\nJPWLqveKjIizgP8EDmfmLUMs/xPgjZl5ou91b1opSTpNZo58KavqqMgAPg18f71Qi4gdveWIiF0s\nh+mJQctmZqv/3HTTTXMvw7z/WAfWgXVgHaz8GVfVrsg3AX8BfDsiHuq99gHg1b2gOgS8A3h3RJwC\nTgJXV1ynJEnrqhRsmflfbNLqy8yPAR+rsh5JkoblnUdqpNPpzLsIc2cdWAdgHYB1UEXlwSOTEhFZ\nl7JIkuYvIshZDx6RJKluDDZJUlEMNklSUQw2SVJRDDZJUlEMNklSUQw2SVJRDDZJUlEMNklSUQw2\nSVJRDDZJUlEMNklSUQw2SVJRDDZJUlEMNklSUQw2SVJRDDZJUlEMNklSUQw2SVJRDDZJUlEMNklS\nUQw2SVJRDDZJUlEMNklSUQw2SVJRDDZJUlEMNklSUQw2SVJRDDZJUlEqBVtE7IyI+yPiexHx3Yh4\nzzrL3RoRP4qIRyLikirrlCRpI9sq/vvngfdm5sMR8TLgWxFxJDOPrSwQEXuA12bmhRFxKfAJYHfF\n9UqSNFClFltmPp2ZD/ce/wY4Bpzbt9he4PbeMg8AZ0fEjirrlSRpPRO7xhYRFwCXAA/0vXUecHzN\n8yeA8ye1XkmS1ppIsPW6IT8L3NBruZ2xSN/znMR6JUnqV/UaGxFxFvA54F8z8+4BizwJ7Fzz/Pze\n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\niwAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 41 }, { "cell_type": "code", "collapsed": false, "input": [ "x_test = np.linspace(-1, 1, 100)\n", "\n", "for k in [4, 9]:\n", " X = np.array([x**i for i in range(k)]).T\n", " X_test = np.array([x_test**i for i in range(k)]).T\n", " order4 = LinearRegression()\n", " order4.fit(X, y)\n", " plt.plot(x_test, order4.predict(X_test), label='%i-th order'%(k))\n", "\n", "plt.legend(loc='best')\n", "plt.axis('tight')\n", "plt.title('Fitting a 4th and a 9th order polynomial')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 42, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nrkJggg==\n", "text": [ "" ] } ], "prompt_number": 42 }, { "cell_type": "code", "collapsed": false, "input": [ "# Let's look at the ground truth\n", "plt.figure()\n", "plt.scatter(x, y, s=4)\n", "plt.plot(x_test, f(x_test), label=\"truth\")\n", "plt.axis('tight')\n", "plt.title('Ground truth (9th order polynomial)')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 43, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 43 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's use [Ridge regression](http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html) (with l1-norm regularization)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.linear_model import Ridge\n", "\n", "for k in [20]:\n", " X = np.array([x**i for i in range(k)]).T\n", " X_test = np.array([x_test**i for i in range(k)]).T\n", " order4 = Ridge(alpha=0.3)\n", " order4.fit(X, y)\n", " plt.plot(x_test, order4.predict(X_test), label='%i-th order'%(k))\n", "plt.plot(x_test, f(x_test), label=\"truth\")\n", "plt.scatter(x, y, s=4)\n", "plt.legend(loc='best')\n", "plt.axis('tight')\n", "plt.title('Fitting a 4th and a 9th order polynomial')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 44, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "plt.ylim?" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 45 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Exercise:\n", "For this exercise, you need to classify iris data with nearest neighbors classifier and with linear support vector classifier (LinearSVC).\n", "In order to measure the performance, calculate the accuracy or just use `clf.score` function built-in into the `Estimator` object." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import division # turn off division truncation -- division will be floating point by default\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.svm import LinearSVC\n", "from sklearn.datasets import load_iris\n", "iris = load_iris()\n", "\n", "# Splitting the data into train and test sets\n", "indices = np.random.permutation(range(iris.data.shape[0]))\n", "train_sz = floor(0.8*iris.data.shape[0])\n", "X, y = iris.data[indices[:train_sz],:], iris.target[indices[:train_sz]]\n", "Xt, yt = iris.data[indices[train_sz:],:], iris.target[indices[train_sz:]]\n", "\n", "# your code goes here" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "#%load solutions/iris_classification.py" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 48 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.4. Approaches to validation and testing\n", "It is usually an arduous and time consuming task to write cross-validation or other testing wrappers for your models. Scikit-learn allows you validate your models out-of-the-box. Let's have a look at how to do this." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn import cross_validation\n", "X, Xt, y, yt = cross_validation.train_test_split(iris.data, iris.target, test_size=0.4, random_state=0)\n", "print X.shape, y.shape\n", "print Xt.shape, yt.shape" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(90, 4) (90,)\n", "(60, 4) (60,)\n" ] } ], "prompt_number": 49 }, { "cell_type": "code", "collapsed": false, "input": [ "# Cross-validating your models in one line\n", "scores = cross_validation.cross_val_score(svc, iris.data, iris.target, cv=5,)\n", "print scores\n", "print scores.mean()" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "cross_validation.cross_val_score?" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "# Calculate F1-measure (or any other score)\n", "from sklearn import metrics\n", "f1_scores = cross_validation.cross_val_score(svc, iris.data, iris.target, cv=5, scoring='f1')\n", "print f1_scores\n", "print f1_scores.mean()" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Quick Exercise:** Do the same CV-evaluation of the KNN classifier. Find the best number of nearest neighbors." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.5. What to learn next?\n", "If you would like to start using Scikit-learn for your machine learning tasks, the most right way is to jump into it and refer to [the documentation](http://scikit-learn.org/stable/documentation.html) from time to time. When you acquire enough skills in it, you can go and check out the following resources:\n", "\n", "- [A tutorial from PyCon 2013](https://github.com/jakevdp/sklearn_pycon2013)\n", "- [A tutorial from SciPy 2013 conference](https://github.com/jakevdp/sklearn_scipy2013) (check out the advanced track!)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Scikit-learn algorithm cheatsheet](http://scikit-learn.org/dev/_static/ml_map.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Copyright 2015, Yiannis Hadjimichael, Maruan Al-Shedivat, ACM Student Member.*" ] } ], "metadata": {} } ] }