{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# CS109A Introduction to Data Science \n", "\n", "\n", "## Lab 3: plotting, K-NN Regression, Simple Linear Regression\n", "\n", "**Harvard University**
\n", "**Fall 2019**
\n", "**Instructors:** Pavlos Protopapas, Kevin Rader, and Chris Tanner
\n", "\n", "**Material prepared by**: David Sondak, Will Claybaugh, Pavlos Protopapas, and Eleni Kaxiras.\n", "\n", "---" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#RUN THIS CELL \n", "import requests\n", "from IPython.core.display import HTML\n", "styles = requests.get(\"https://raw.githubusercontent.com/Harvard-IACS/2018-CS109A/master/content/styles/cs109.css\").text\n", "HTML(styles)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Learning Goals\n", "\n", "By the end of this lab, you should be able to:\n", "* Review `numpy` including 2-D arrays and understand array reshaping\n", "* Use `matplotlib` to make plots\n", "* Feel comfortable with simple linear regression\n", "* Feel comfortable with $k$ nearest neighbors\n", "\n", "**This lab corresponds to lectures 4 and 5 and maps on to homework 2 and beyond.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Table of Contents\n", "\n", "#### HIGHLIGHTS FROM PRE-LAB \n", "\n", "* [1 - Review of numpy](#first-bullet)\n", "* [2 - Intro to matplotlib plus more ](#second-bullet)\n", "\n", "#### LAB 3 MATERIAL \n", "\n", "* [3 - Simple Linear Regression](#third-bullet)\n", "* [4 - Building a model with `statsmodels` and `sklearn`](#fourth-bullet)\n", "* [5 - Example: Simple linear regression with automobile data](#fifth-bullet)\n", "* [6 - $k$Nearest Neighbors](#sixth-bullet)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import scipy as sp\n", "import matplotlib as mpl\n", "import matplotlib.cm as cm\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import time\n", "pd.set_option('display.width', 500)\n", "pd.set_option('display.max_columns', 100)\n", "pd.set_option('display.notebook_repr_html', True)\n", "#import seaborn as sns\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "# Displays the plots for us.\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "# Use this as a variable to load solutions: %load PATHTOSOLUTIONS/exercise1.py. It will be substituted in the code\n", "# so do not worry if it disappears after you run the cell.\n", "PATHTOSOLUTIONS = 'solutions'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 1 - Review of the `numpy` Python library\n", "\n", "In lab1 we learned about the `numpy` library [(documentation)](http://www.numpy.org/) and its fast array structure, called the `numpy array`. " ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "# import numpy\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 1, 4, 9, 16])" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# make an array\n", "my_array = np.array([1,4,9,16])\n", "my_array" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Size of my array: 4, or length of my array: 4\n", "Shape of my array: (4,)\n" ] } ], "source": [ "print(f'Size of my array: {my_array.size}, or length of my array: {len(my_array)}')\n", "print (f'Shape of my array: {my_array.shape}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Notice the way the shape appears in numpy arrays\n", "\n", "- For a 1D array, .shape returns a tuple with 1 element (n,)\n", "- For a 2D array, .shape returns a tuple with 2 elements (n,m)\n", "- For a 3D array, .shape returns a tuple with 3 elements (n,m,p)" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1, 4],\n", " [ 9, 16]])" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# How to reshape a 1D array to a 2D\n", "my_array.reshape(-1,2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Numpy arrays support the same operations as lists! Below we slice and iterate. " ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "array[2:4]: [ 9 16]\n", "element: 1\n", "element: 4\n", "element: 9\n", "element: 16\n" ] } ], "source": [ "print(\"array[2:4]:\", my_array[2:4]) # A slice of the array\n", "\n", "# Iterate over the array\n", "for ele in my_array:\n", " print(\"element:\", ele)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Remember `numpy` gains a lot of its efficiency from being **strongly typed** (all elements are of the same type, such as integer or floating point). If the elements of an array are of a different type, `numpy` will force them into the same type (the longest in terms of bytes)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "data": { "text/plain": [ "array(['1', '2.3', 'eleni', 'True'], dtype='\n", " \n", "Notice that the list slicing syntax still works! \n", "`array[2:,3]` says \"in the array, get rows 2 through the end, column 3]\" \n", "`array[3,:]` says \"in the array, get row 3, all columns\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Pandas Slicing (a reminder...)\n", "\n", "`.iloc` is by position (position is unique), `.loc` is by label (label is not unique)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
titleyearnametypecharactern
0Closet Monster2015Buffy #1actorBuffy 431.0
1Suuri illusioni1985Homo $actorGuests22.0
2Battle of the Sexes2017$hutteractorBobby Riggs Fan10.0
3Secret in Their Eyes2015$hutteractor2002 Dodger FanNaN
4Steve Jobs2015$hutteractor1988 Opera House PatronNaN
\n", "
" ], "text/plain": [ " title year name type character n\n", "0 Closet Monster 2015 Buffy #1 actor Buffy 4 31.0\n", "1 Suuri illusioni 1985 Homo $ actor Guests 22.0\n", "2 Battle of the Sexes 2017 $hutter actor Bobby Riggs Fan 10.0\n", "3 Secret in Their Eyes 2015 $hutter actor 2002 Dodger Fan NaN\n", "4 Steve Jobs 2015 $hutter actor 1988 Opera House Patron NaN" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# import cast dataframe \n", "cast = pd.read_csv('../data/cast.csv', encoding='utf_8')\n", "cast.head()" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
titleyearnametypecharactern
10When the Man Went South2014Taipaleti 'Atu'akeactorTwo Palms - Ua'i Paame8.0
11Little Angel (Angelita)2015Michael 'babeepower' VieraactorChico9.0
12Mixing Nia1998Michael 'babeepower' VieraactorRapperNaN
\n", "
" ], "text/plain": [ " title year name type character n\n", "10 When the Man Went South 2014 Taipaleti 'Atu'ake actor Two Palms - Ua'i Paame 8.0\n", "11 Little Angel (Angelita) 2015 Michael 'babeepower' Viera actor Chico 9.0\n", "12 Mixing Nia 1998 Michael 'babeepower' Viera actor Rapper NaN" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# get me rows 10 to 13 (python slicing style : exclusive of end) \n", "cast.iloc[10:13]" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
titleyear
0Closet Monster2015
1Suuri illusioni1985
2Battle of the Sexes2017
3Secret in Their Eyes2015
4Steve Jobs2015
\n", "
" ], "text/plain": [ " title year\n", "0 Closet Monster 2015\n", "1 Suuri illusioni 1985\n", "2 Battle of the Sexes 2017\n", "3 Secret in Their Eyes 2015\n", "4 Steve Jobs 2015" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# get me columns 0 to 2 but all rows - use head()\n", "cast.iloc[:, 0:2].head()" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
titleyear
10When the Man Went South2014
11Little Angel (Angelita)2015
12Mixing Nia1998
\n", "
" ], "text/plain": [ " title year\n", "10 When the Man Went South 2014\n", "11 Little Angel (Angelita) 2015\n", "12 Mixing Nia 1998" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# get me rows 10 to 13 AND only columns 0 to 2\n", "cast.iloc[10:13, 0:2]" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
titleyearnametypecharactern
10When the Man Went South2014Taipaleti 'Atu'akeactorTwo Palms - Ua'i Paame8.0
11Little Angel (Angelita)2015Michael 'babeepower' VieraactorChico9.0
12Mixing Nia1998Michael 'babeepower' VieraactorRapperNaN
13The Replacements2000Steven 'Bear'BoydactorDefensive Tackle - Washington SentinelsNaN
\n", "
" ], "text/plain": [ " title year name type character n\n", "10 When the Man Went South 2014 Taipaleti 'Atu'ake actor Two Palms - Ua'i Paame 8.0\n", "11 Little Angel (Angelita) 2015 Michael 'babeepower' Viera actor Chico 9.0\n", "12 Mixing Nia 1998 Michael 'babeepower' Viera actor Rapper NaN\n", "13 The Replacements 2000 Steven 'Bear'Boyd actor Defensive Tackle - Washington Sentinels NaN" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# COMPARE: get me rows 10 to 13 (pandas slicing style : inclusive of end)\n", "cast.loc[10:13]" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yeartype
52015actor
62015actor
72009actor
82014actor
92014actor
102014actor
\n", "
" ], "text/plain": [ " year type\n", "5 2015 actor\n", "6 2015 actor\n", "7 2009 actor\n", "8 2014 actor\n", "9 2014 actor\n", "10 2014 actor" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# give me columns 'year' and 'type' by label but only for rows 5 to 10\n", "cast.loc[5:10,['year','type']]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Python Trick of the Day" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import re\n", "names = ['mayday','springday','horseday','june']" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['may', 'spring', 'horse', 'june']" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# TODO : substitute these lines code with 1 line of code using list comprehension\n", "\n", "cleaned = []\n", "for name in names:\n", " this = re.sub('[Dd]ay$', '', name)\n", " cleaned.append(this)\n", "cleaned" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# your code here\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['may', 'spring', 'horse', 'june']" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# solution\n", "cleaned2 = [re.sub('[Dd]ay$', '', name) for name in names]\n", "cleaned2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 2 - Plotting with matplotlib and beyond\n", "
\n", " \n", "\n", "`matplotlib` is a very powerful `python` library for making scientific plots. \n", "\n", "We will not focus too much on the internal aspects of `matplotlib` in today's lab. There are many excellent tutorials out there for `matplotlib`. For example,\n", "* [`matplotlib` homepage](https://matplotlib.org/)\n", "* [`matplotlib` tutorial](https://github.com/matplotlib/AnatomyOfMatplotlib)\n", "\n", "Conveying your findings convincingly is an absolutely crucial part of any analysis. Therefore, you must be able to write well and make compelling visuals. Creating informative visuals is an involved process and we won't cover that in this lab. However, part of creating informative data visualizations means generating *readable* figures. If people can't read your figures or have a difficult time interpreting them, they won't understand the results of your work. Here are some non-negotiable commandments for any plot:\n", "* Label $x$ and $y$ axes\n", "* Axes labels should be informative\n", "* Axes labels should be large enough to read\n", "* Make tick labels large enough\n", "* Include a legend if necessary\n", "* Include a title if necessary\n", "* Use appropriate line widths\n", "* Use different line styles for different lines on the plot\n", "* Use different markers for different lines\n", "\n", "There are other important elements, but that list should get you started on your way.\n", "\n", "We will work with `matplotlib` and `seaborn` for plotting in this class. `matplotlib` is a very powerful `python` library for making scientific plots. `seaborn` is a little more specialized in that it was developed for statistical data visualization. We will cover some `seaborn` later in class. In the meantime you can look at the [seaborn documentation](https://seaborn.pydata.org)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, let's generate some data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Let's plot some functions\n", "\n", "We will use the following three functions to make some plots:\n", "\n", "* Logistic function:\n", " \\begin{align*}\n", " f\\left(z\\right) = \\dfrac{1}{1 + be^{-az}}\n", " \\end{align*}\n", " where $a$ and $b$ are parameters.\n", "* Hyperbolic tangent:\n", " \\begin{align*}\n", " g\\left(z\\right) = b\\tanh\\left(az\\right) + c\n", " \\end{align*}\n", " where $a$, $b$, and $c$ are parameters.\n", "* Rectified Linear Unit:\n", " \\begin{align*}\n", " h\\left(z\\right) = \n", " \\left\\{\n", " \\begin{array}{lr}\n", " z, \\quad z > 0 \\\\\n", " \\epsilon z, \\quad z\\leq 0\n", " \\end{array}\n", " \\right.\n", " \\end{align*}\n", " where $\\epsilon < 0$ is a small, positive parameter.\n", "\n", "You are given the code for the first two functions. Notice that $z$ is passed in as a `numpy` array and that the functions are returned as `numpy` arrays. Parameters are passed in as floats.\n", "\n", "You should write a function to compute the rectified linear unit. The input should be a `numpy` array for $z$ and a positive float for $\\epsilon$." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "def logistic(z: np.ndarray, a: float, b: float) -> np.ndarray:\n", " \"\"\" Compute logistic function\n", " Inputs:\n", " a: exponential parameter\n", " b: exponential prefactor\n", " z: numpy array; domain\n", " Outputs:\n", " f: numpy array of floats, logistic function\n", " \"\"\"\n", " \n", " den = 1.0 + b * np.exp(-a * z)\n", " return 1.0 / den\n", "\n", "def stretch_tanh(z: np.ndarray, a: float, b: float, c: float) -> np.ndarray:\n", " \"\"\" Compute stretched hyperbolic tangent\n", " Inputs:\n", " a: horizontal stretch parameter (a>1 implies a horizontal squish)\n", " b: vertical stretch parameter\n", " c: vertical shift parameter\n", " z: numpy array; domain\n", " Outputs:\n", " g: numpy array of floats, stretched tanh\n", " \"\"\"\n", " return b * np.tanh(a * z) + c\n", "\n", "def relu(z: np.ndarray, eps: float = 0.01) -> np.ndarray:\n", " \"\"\" Compute rectificed linear unit\n", " Inputs:\n", " eps: small positive parameter\n", " z: numpy array; domain\n", " Outputs:\n", " h: numpy array; relu\n", " \"\"\"\n", " return np.fmax(z, eps * z)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's make some plots. First, let's just warm up and plot the logistic function." ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "x = np.linspace(-5.0, 5.0, 100) # Equally spaced grid of 100 pts between -5 and 5\n", "\n", "f = logistic(x, 1.0, 1.0) # Generate data" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(x, f)\n", "plt.xlabel('x')\n", "plt.ylabel('f')\n", "plt.title('Logistic Function')\n", "plt.grid(True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Figures with subplots\n", "\n", "Let's start thinking about the plots as objects. We have the `figure` object which is like a matrix of smaller plots named `axes`. You can use array notation when handling it. " ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,1) # Get figure and axes objects\n", "\n", "ax.plot(x, f) # Make a plot\n", "\n", "# Create some labels\n", "ax.set_xlabel('x')\n", "ax.set_ylabel('f')\n", "ax.set_title('Logistic Function')\n", "\n", "# Grid\n", "ax.grid(True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wow, it's *exactly* the same plot! Notice, however, the use of `ax.set_xlabel()` instead of `plt.xlabel()`. The difference is tiny, but you should be aware of it. I will use this plotting syntax from now on.\n", "\n", "What else do we need to do to make this figure better? Here are some options:\n", "* Make labels bigger!\n", "* Make line fatter\n", "* Make tick mark labels bigger\n", "* Make the grid less pronounced\n", "* Make figure bigger\n", "\n", "Let's get to it." ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,1, figsize=(10,6)) # Make figure bigger\n", "\n", "# Make line plot\n", "ax.plot(x, f, lw=4)\n", "\n", "# Update ticklabel size\n", "ax.tick_params(labelsize=24)\n", "\n", "# Make labels\n", "ax.set_xlabel(r'$x$', fontsize=24) # Use TeX for mathematical rendering\n", "ax.set_ylabel(r'$f(x)$', fontsize=24) # Use TeX for mathematical rendering\n", "ax.set_title('Logistic Function', fontsize=24)\n", "\n", "ax.grid(True, lw=1.5, ls='--', alpha=0.75)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice:\n", "* `lw` stands for `linewidth`. We could also write `ax.plot(x, f, linewidth=4)`\n", "* `ls` stands for `linestyle`.\n", "* `alpha` stands for transparency." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The only thing remaining to do is to change the $x$ limits. Clearly these should go from $-5$ to $5$." ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "#fig.savefig('logistic.png')\n", "\n", "# Put this in a markdown cell and uncomment this to check what you saved.\n", "# ![](../images/logistic.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Resources\n", "If you want to see all the styles available, please take a look at the documentation.\n", "* [Line styles](https://matplotlib.org/2.0.1/api/lines_api.html#matplotlib.lines.Line2D.set_linestyle)\n", "* [Marker styles](https://matplotlib.org/2.0.1/api/markers_api.html#module-matplotlib.markers)\n", "* [Everything you could ever want](https://matplotlib.org/2.0.1/api/lines_api.html#matplotlib.lines.Line2D.set_marker)\n", "\n", "We haven't discussed it yet, but you can also put a legend on a figure. You'll do that in the next exercise. Here are some additional resources:\n", "* [Legend](https://matplotlib.org/api/_as_gen/matplotlib.pyplot.legend.html)\n", "* [Grid](https://matplotlib.org/api/_as_gen/matplotlib.pyplot.grid.html)\n", "\n", "`ax.legend(loc='best', fontsize=24);`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise
\n", "\n", "Do the following:\n", "* Make a figure with the logistic function, hyperbolic tangent, and rectified linear unit.\n", "* Use different line styles for each plot\n", "* Put a legend on your figure\n", "\n", "Here's an example of a figure:\n", "![](../images/nice_plots.png)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAocAAAGoCAYAAAA0Bk+cAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydeXhU1fn4P2cyySQhG1kIqyTsCciuYoUW95XFFZfi1qptta7dUFGUIrW1Ui39tVJbsbTqF6sWRFBAwQXFBVmEhH2RXUgg+zLJnN8f984wM5lJJskkM5N5P89zn5l77jnnvve+M3PfOee876u01giCIAiCIAgCgCXUAgiCIAiCIAjhgxiHgiAIgiAIggsxDgVBEARBEAQXYhwKgiAIgiAILsQ4FARBEARBEFyIcSgIgiAIgiC4EONQEIQ2RSk1XymllVIzQi1LoCilZpgyzw+1LELzUEr91tTdi6GWRRAiFTEOBaEDopSabD4gtVJqeRudI800oma0Rf9thVNmpVRaqGUJFkqp8W76bmzbEGpZW4pSyuKmu5RQyyMIHRlrqAUQBKFNuMXt/flKqZ5a6wNBPkca8Lj5fkYj9Q4D24DjQT5/S3HKPB846afOcQyZD7eHQEHmOFDfyLFIxcIp3b0IlPqpd4zI1Z0ghAVKMqQIQsdCKZWB8WC0A/8DbgSmaa1/F+Tz5AB7ALTWKph9tyVKKeePXq7Wem8oZQkWSqnxwCpzt8NclztKKSvGZxqgVxv82REEwUSmlQWh43EjEAssAl4wy27xX10QBEEQTiHGoSB0PJyG4H+Aj4FvgUFKqTObaqiU6qSU+oVS6lOlVLFSqloptVsptVgpdZNSKtastxpz1NDc917bNsPtWAOHFKXUD82yI0qpmEbkOdusV2uOiDrL05VStyil3lBKbVVKlSmlKpRSBUqpZ5VS3X30Nd9t1BBgj5fM893qNuqQYq5/+5FS6kO3+7RHKTVPKdXPTxvnusC95v45SqklSqnjSqkqpdRGpdQ9Sql2G4VVSn1iyvTDRuocMOuM9Sr3cPxQSt2mlPpCKVWulCpRSr2vlDq/ifPHKaV+opT6wLwPNUqpfUqp95RSP1ZKJZr1/s2pUUOA/V66e9Gtz0YdUpRSMWbfHymlTrh9xl9QSvXx0+YCs8+d5v73lVJLlVJFSqlKpdQGpdTP/OlOKZWtlHpGKbXF/JxWK6X2m9+zJ5RSpzV2nwShvZE1h4LQgVBKDQZGAUXAcq21Vkq9Cvwaw2j8opG2+cA7QI5ZVAeUA7nmNgFYA+wFijHWr2WadY96dVfehKj/AyqBbOB8wJ/TzA3m63KtdZFb+cPAQ277pUACkGduP1RKXaC13uRWp8SUM9vc916bV9KEzACYBstbwEVmkd28lhzgDmCqUup6rfWiRvq4FWPdnMWUPR4YCvwZ6AfcH4gs4YJS6iXgVozPTBWQApwHjFdKXeXrXiilemJ83oaaRQ6Me3GauV0EbAU+wVgb6q67Y2Z9J4HqrhPGiLrTaHXqLhe4E0N312mtlzTSx4+AeYDi1OduGPAXoA/wC6/6ucCnQFezqB4oA3qa29nAfozPgyCEBTJyKAgdC+eo4UKttXOk5T/m6/VKqThfjZRS6cC7GAbOHmAy0Elr3RnjQT8OeAnj4Y/W+irgDGd7rXVXr+2ZxoTUWpcDb5u7N/iqY44oXmfuvuJ1+CDwO2AkkKy1TgVswGjgPSALeMV9JEdrfZ/WuqtbH2d4yXxfYzK78SyG4VID/MQ8fxowEFiNYei9opQa4Kd9FsZ0/1+BbmbbzhiGIcC9ppEfKVwNTAHuAlK11ilAXwyjzgLM9R4dVkrFA0swDMNjwFSM+9gZ6AScCTyPYWiitb4Hw5ByMtJLd+5/FBrjOQzDsBrDkHfqLg9jlD0BeE0p1ddP+64Yevsz0NVNd//PPP6gUmqQV5snzHbbMb5HseZ1JpjXP4uGf64EIbRorWWTTbYOsAExwCFAA2O9jm0yy6/20/b35vFjQI8Az5djttFN1Jtv1pvhVT7RLC8B4n20u8A8XoFhqAZ6H2zAFrPtD3wc1+aW00gfM8w6873Ke2OM/GjgLh/tEoGd5vF/eR0b73buv/s5r1NPjzVT9+59HwOO+NlSvNp9Yrb5YSN9H/Dzmfqt2zmn+GjXE6g1j3/P69i9ZnklMDjAa7S6na9nI/Wccr3oVd4XY7RRAz/y0a4TsNs8/k8/n0UN/NVHW+X2mXvY69j2xr57sskWjpuMHApCx+EioBuwD2P61x3n6KE/x5Sp5uszWuuDbSCbL5ZhTE+nAJf5OO4cUVykta4ItFOtdQ2wwtw9p1USNuQqjNGwI/iYBtRaV2IY2gBXeY+YuTHbT7lz+nVIK2TMxJh+9bW1xW/+bq31/3kXasObeJ256309N5uv/9Bab2kDmXxxFYYRdxBjFNwD8zPmHPG+Rinl71418PrXWmtgsbnrfa3OkDvdmiuwIIQKMQ4FoePgNPxeNR9W7ryKMXpxqVIqy/2AMkLSOKdbl7algO5oY9r7DXP3Ri+ZbBgPc2g4peysM0gpNVcptUkpVaqUcjgdFADnFHEDx5RWMtJ8/Vhr7S+W4AfmayeMqWZvirXWu/20dRrmnVsoHxihbJSfzV9cx9bwVSPHGlyPqdvh5m67fd44pbuPtNYOP3WcukvGWPvpzXda631+2vrTnfMan1FK/Vkp9QNzWl0QwhYxDgWhA6CUSgUmmbsNjCmt9bcYa6qseBlinFrkD4Znc3vilPVy5Zn14lKMINvFGGsIPVBKXY8xBXs3cDqGIeZ0ODmKMRWNWR5MnIZ1Y6Or7vH3snwcL2ukbbX5GtscoUJMc68nE2MJBLTv5y1UunsKw/HGBtyDsS61TCm1RhmRAVIb6VMQQoIYh4LQMZiC4QgBsEn5SJ0GfN887j21HMoA1h9iPJDjgSvdyp1Tyq/rU441AJgjn3/HeAj/H4YTSrzWurM2HRSAOc7qbSS3rZFjklmgcUIdML0x3QUdrXW11voK4HvAH4DPMddhmvvblFKtWUYgCEFHjENB6Bg0J8j1CKXU6W77R9ze9w6SPAFhTn8716vdAKCUSgKuMMt8TSlfCiQBBcCNWut13gYknqOhweSY+drYferlo364Ume+NjbNGew8xsc4FUKoPT9vgejO3SM6qLrTWn+mtf6V1noMkA7chPHHKBvjz44ghA1iHApChKOMoMvfM3eHY6x58rc5w8e4jEltpFpzGoi+HEP84Vq31crAzU4D8AKlVBeM6fFEjNhvH/uo73yAb/K1dsyU5bxGzucc2WuJzF+br2c5AzT7wHnuCowcv+GMcw1iT18HzbAsycE8oekwtMHcbdHnjdbpbkwja/6cuivF8DpvE7TW5VrrVzBCIQGcqZRKaKvzCUJzEeNQECIfp6G3UWu9UWt90t8GvG7WvcnLk3aB+fqQUqpHgOctdXuf1lLhtdZfYwQ7jgGu5dSayNd8ONbAqYDHQ/wYpXdghC3xh1Pulsj8JoaRkoERNNkD02D8pbNuI04r4cI35uskP8d/00bn/Zf5+qNAYzqafwSca0lbors3MP4YdAF+7H3QDJDtDGD9RiNOK83CX2xRkyrz1YIkpRDCCDEOBSGCMY0jZxiaNwNo8jZGVoiuwMVu5U9jLNTPBD5WSk10PtSUUknKSP32mpnVAgDT2Dxk7t7WuivhVfP1LuBC871PL2VgJcZDfgjwvFIqzZQzRSn1S4xMFUV+2oIRjw7g5kZCzfjE9FSdZ+7+Til1p+l9ixn0+h0ML9dKjHh74Y7zz8JwZaQdTAVXure5wPWcMmCCyTwMwzQe+EAZqRkTzHMnKKXOUkq9qJQa7dWuNbrbDfzD3P2DmULP+RkfiOFVnIthgM5q0VX5plApNUspNVqdSj+plFJjMAJ9A3ymtW7M2UUQ2hUxDgUhshnPqTVUbzRSD3AZdM5wHe5Ty0UYa/kOYDwgFwHlSqkTGB6aqzCcXrxHN5yx/v6ojJy6e82tuenfnIbg6RiOJoVa6w2+KmqttwF/MnfvAU4opYoxPJt/D7wP/K2Rczllvh/jGveZMjea1cWNhzDiKNowMp2UmfdpG4Y+ajDWQm4PsL+QoY30gs7MLA9g3MsTwGGMKc87MO5rsM9bjZGOsQBjJO/fGPexGMM4Wwv8iIZrIZ26+4VZ36m7BrEH/XA/xuc/HmOdX5lS6iTGyPX3MTyOr9da72rxxTUkGyPd45dAlVKqCOMz8hkwGPgO4z4LQtggxqEgRDZOA297M4IJO43ISc5RNwCt9TcYD6tHMWLXVWE8RHdj5EK+Ac9QHwBPYuRt3oSxDqy3uTVr2k9rvRPPvM/+Rg2d9R/EmNZdj/GgtWKsY7sfuJxTjha+2r6E8TD+wqzXy5Q5018br/aVGIb0jzHWRFZirJHch2G8nK4byaschtyHYWRvwriXDoxUiuO11gsaa9gazFHYURg6W4PxJyQRI7zNuxjG4ddebf6OMbr8JYZTy2k0T3cVGMHi78TIDlOFkcZuL4axOEQ3kle5hUzACJz9KYbRnYSROWYjRpibwe0YCFwQAkL5XtIjCIIgCIIgRCMycigIgiAIgiC4EONQEARBEARBcCHGoSAIgiAIguBCjENBEARBEATBhRiHgiAIgiAIgguJyB5EMjMzdU5OTqjFCDqVlZUAJCb6yxYmhDOiv8gmmvRX66hlx4kdrv0YFcOg9EEhlKh1RJPuOiLRoL9169Yd11pneZeLcRhEcnJy+Oqrr0ItRtA5fvw4AJmZAYUSE8IM0V9kE036szvs7Dq5i4KiAgqKCgB4dMyjIZaq5UST7joi0aA/pdQ+n+US5zB4jB49WndE41AQBEEQhI6HUmqd1to7TaWsORQEQRAEQRBOIcah0CRbtmxhyxbJ7hSpiP4iG9Ff5CK6i2yiWX+y5lBokqqqqlCLILQC0V9kI/qLXER3kU00609GDgVBEARBEAQXMnIoCIIghJxle5axr3Qf+Rn55Gfkk5nQcT1EBSHcEeNQEARBCDlLdi/howMfufZ/N+53XN7n8hBKJAjRi0wrC4IgCCHHGdfQSf/O/UMkiSAIMnIoNEl6enqoRRBagegvsokG/R2rPMbxquOufVuMjT6pfUIoUXCIBt11ZKJZf2IcCk3Sp0/k/0hHM6K/yCYa9Gez2nj87McpKCqgsKgQm9WG1RL5j6do0F1HJpr1F/nfvgjH4XBw4sQJysvLqa6uxuFwhFokQYhKLBYL8fHxJCUl0blzZywWWXXTXqTEpXDNgGtc+5K5SxBCixiHIaSuro79+/djtVpJT08nMTERi8WCUirUonlQW1sLQFxcXIglEVqC6K9ptNY4HA4qKys5efIkpaWl9OrVC6s19D+R+/fvB6BXr14hlqT9CLffwJYSjbrrSESz/uSvcQgpLi7GZrPRs2dPkpOTiYmJCcsfRbvdjt1uD7UYQgsR/TWNUoqYmBiSk5Pp2bMnNpuN4uLiUIsFwNGjRzl69GioxRBagOgusolm/YlxGEJKSkrIyMgIS4NQEKIVpRQZGRmUlJSEWhRBEISQIMZhCKmrq5OpPkEIQ+Li4qirqwu1GIIgCCEh9AtqohwZNRSE8EO+l+3Hhu82UG4vJz8jn/T46A0dIgjhhBiHgiAIQsj4V8G/WLFvBQDZidk8fvbjjOs5LsRSCUJ0I8ah0CQyihLZiP4im5iYmFCL0Ka4Z0Y5WnmUzvGdQyhNcOnouuvoRLP+wt44VEolA+cCZwCjzdcM83Ce1nprK/tPAX4FXA30BqqADcBftdb/bU3fHYXExMRQiyC0AtFfZDNixIhQi9BmlNSUcLD8oGs/RsV0qLR5HVl30UA06y/sjUPgfOCttuhYKdUT+AjINYvKgRTgPOA8pdTftNY/bYtzC4IgRDuFxYUe+33T+mKLsYVIGkEQnESKt/J3wFLgCeDOYHSojLm2/2IYhnuBc7TWyUAyxkiiA/iJUuqOYJwvkqmrqxPPzQhG9BfZlJSUdNiwOoVFnsZhfkZ+iCRpGzqy7qKBaNZfJBiHb2uts7XWl2utZwArgtTvJOAsDCPwSq31pwBa62qt9R+A5816TyqlojreTE1NDTU1NaEWQ2ghor/IZseOHezYsSPUYrQJ3sZhXnpeiCRpGzqy7qKBaNZf2BuHWuv6Nur6JvN1pdZ6g4/jzwAa6IoxzSx0MMaOHYvVamXnzp2hFqXZOBwOBg0aRFJSUtRG8Bcin4LiAo/9jjZyKAiRStgbh23IePP1PV8HtdYHgS3mrhiHYcqJEydQSqGUYtGiRQG3W7x4MWvWrOH666+nX79+bShh45SVlbF48WKmT5/OpZdeSmZmput6tm7172tlsViYNm0aFRUVzJw5sx0lFoTgUF5bzr7Sfa59i7IwoPOAEEokCIKTSHBICTpKqS5Aprm7pZGqBcAQQP7OhikbNpwa9B0+fHhAbRwOBw8//DBKKR555JG2Ei0g3n//fa688soWtb3pppt44oknmDdvHg899BC5ublNNxKEMMHbGSU3JZfE2CB71msN1SVQdQKqT0JthbmVQ0258d5eCXU1UFdtvPY9FwZe2rCv6hJ4ZQo46syt3ti026t2gMNhvGoHQ2trUDhg5zlw/X98y/i3cVC825AVbb7S8L3zepz7sYkwbb/vPt+8E7553atNgNz9BWQNoN6hqbbXU22vp6bOge2rv5HxyYzm9WWyrP8TbM68hDqHxuHQ1Dk09Q5Nz9L13Lnrnhb1uSRxMv9MuhOHBq218Yomtr6at05e06I+16t8fhI7E62NO26vtaOB2HdX8HrdfeRysKkuGlCpbZyh/wW4tOhSydPqz0y0fNIiWS+ufYZd9GhQfqtlKY9aFwTUx/uOkX6PRaVxCHRze3+okXrOY90aqeOisrKSr776qkF5jx496NbN6GL79u2UlpYCYLVaqaioAIx4SvHx8QDY7XZqa2t9niMxMRGlFPX19VRXV/usY7PZsFqtLpm0jx8Hq9WKzWZ4BdbU1Ph0WFBKucKgaK1dsnqTkJCAxWLB4XBQVVXls05cXByxsbEAVFVV4XA4GtRxvwe1tbXY7XaffXXq1AmA+vp6vvjiCwA6d+5MZmamS8b4+HhXjCpvuZcvX86WLVsYO3YseXnGGqfq6mrq6xuuYLBYLCQkJACB6aWxe+BLL9XV1WRlZTFy5EhGjhxJz549ufvuu133wNc9d+rFarUydepUnnzySebMmcPs2bM96jn1AoZTiq++2kov/j6bjenFSWxsrCutZGv1Eshn09/3paamxvV9zsjIcBnf+/bt49ixYz7lHjZsGAAnT570u1whPz+fxMREHA4HX3/9tc86PXv2pGvXrgCUlpZSV1fX4LclJSWFAQOMkbbDhw9z8KDvB9fo0aMB434XFhb6rNO/f39SU1MBWL9+vc97np2dTa9evQDYvXs3xcXFDeokJCQwePBgAI4fP87evXt9nm/o0KEN1htmk+1xjTk5OWRmGv/ht2zZ4qk/rYmr/o7kLjnkDjTOt3//ftcSi9Sjn5Oz8Wms9jKUbviZbpTYBL4qy2pQHGMvZ8S3nzWrK+di9bLvvmWbl/5GjhxpfDZrKrDUljdPRqC+rpb1X31FVlYWvXv3RmvNlu272H+kiMGHv+O05l63ycS5n1BYtxN7vedz40cxO5ke26IueW/LUf7n2NWg/Ex1lDtb6Jx+tLSGr4tPNihPoBriW9Znbb2Do1U+1mfX1FIfp1s811pR63t1XH1sMw13N+q0ps7Hs12rwPv0ZRs4iVbjsJPbe99PDINK8zXJXwWl1J2YHtTOH3Oh/di0aRMAQ4YMCbjN/PnzAbj22mvbQqRmcdlllzFhwgTX/oEDB5rVfsqUKTz55JO8+uqrPPnkky5DTxDCHe+Rw94JvX1XPPktKQc+IK14F/Hl35rbfmLqqzl8/l/ANA7dcVisxNa20Mu0zrfzlra05nHZyAO7hTHq7fWax1YXU1V/kjL7Dk5U1lLvMM7zp9gaTmth/OaK2jrszR1tFDoc0Wocun8dW/Ut0FrPA+YBjB49Wjv/pfvD+U8foLCw0DXa4k5sbGyTD/mYmBifbb0JJACyzWZzjSL6wjlq1FS0eIvFEpBMzhGfxoiLi3ONHvkjJiaGzZs3AzBq1Ci/53YvLyoqYtmyZSiluOGGG1zlzmsEWLhwIVOmTMFqtbJ161b69u0LeOrl5ptvZsGCBeTk5LB27VrXOQK9B/704q6HuLi4JvvKz89n2LBhbNy4kVWrVvmcog5Uf8HUSyD3IJA67nrxRyDfl5boxWaz+Vyq0Lt3b3r39mPImKSlpdHUb4HFYmmyDsBZZ50FNH6/unXr5pqd8EenTp0COl8ggX/79OlDnz59Gq2TmZnpGvnzhXtmFICLhl3E6C4j4LtC+PYzWP1X+HYtlB6gl58+unU69fPdq1cv18gmh6zweZOX4Zu6at/3qd4Oy1rWZbKfe19RU4fVoWjJ4JlDQ8Fx36P4gtBaotU4dB/Db8x6ch5r/ph/ByJcUwjV1ta6pskCXW+4atUq7HY7AwYMICur4dQRGCOKs2fPZsOGDcyaNYt//vOfHscfe+wxFixYQHp6OsuWLSM7OxuA1atXc+6557rOM378+BZeWfM455xz2LhxI8uXL/dpHIar/oTACMSojTQq7ZXsKdnjUZb32d9h27vG2sBAKTvsuzzBLQVfXJKxH58GtmSI62RuSWBLAms8xCaA1Wa8z244EgmAxQq3LjVeLVawWIxXFWO+WkApsMSY7y2gYtDAkQoHW7d+x7ajZez6rpy9RRXsLarkWFkNnZiGQuMw5yyNlYfKfH9qHMO7rLFRjQftP+NB+8/c2gaO+znjYy3Ex8Zgs1pYEXM1H1mvJc5qwWa1EGe1EBtjvI+NMTajTGG1WLDGKGJjLFgtitNiLDwYY5ZZLMRYFNYYhYXBvGa5FotFEaPMMqWIsRivFoXx3mPfgsWiOF0p/quMZTYxFoUCLEqhFBSo/YYqzH2LAjDeu9dTzjKzn17AZ+7lRjOM3jdw3CxzpiQ13mO+V65hp1NlBpvdUpg63xlFF1NlljSV5dTjPBj/U3y3uZQ6/tx4ZybjAX7r+/kQrcah+zrD7sA3fup1N1/9/AK1HTm/eae9T9mm7P3d5UHvc/Pmza71b4Eah2vWrAGMkUZ/KKWYOXMmEyZMYMGCBTz66KOuUZKXXnqJmTNnYrPZWLRoEYMGDWrlVbQe54jExx9/HGJJBCEwtp3YhnYzWXJq7XTa+FrzOolPNQwxX6T2hF/sMAxCa5DC1CoFOec0WsVe72D70TI27i/hm4Mn2HaklO1Hyymv8R+EvoKmR+wDJTEuhpT4WFISrKQmxJrvY0myWUmKtxqvNiudbFaSbDEkxFlJjIshITaGxLgYEuOsJMTGYIs1jD7Jyx69RKVxqLU+ppQ6juGxPBg/4Ww45aVc4Oe4EEKcnspxcXHk5wfmUO50YBk6dGij9a644grGjBnD2rVreeqpp3jxxRdZsWIFd911F0opFixYwNixY1t3AUHC6QRRUFBAWVkZycnJHsedjh8dcQQqGnA6aQQyJRwpeE8p5/lxKAIgxgY9RkG3oZA5wNiyBkKnLP/DLZYYSOoSRIl9811ZNZ/vLmbD/pNs3H+SzYdKqLa3zBHEFzEWRWZSHF2S48lKttEl2UZWso3MJBvpneJI7xRH58Q4MpLiSEuMxWaVWYJg0hG/e4ESlcahySrgWuBC4Fnvg0qpHhiGI8D77SiXECBO43Dw4MEBO2IcPmwMAje2FsrJrFmzOP/883n55ZeZOHEiU6dOxW6388c//tGnM8v48eMb9f5qK5zXorXm6NGjDYxDQQg5jnojZIzN+Gw2SJsX2xkoMnbi0+C0s+G0MdD7e9BtmDHlGwYUV9SydncRn+0q4rPdRez8rnUrjmIsil6dE8jJ7ESvzon06JxA97QEeqTF0z0tgS7J8cRYZPROaH+i2Th8BcM4vEgpNUxrvdHr+IMYywMOYxiSQpixfv16IPApZTDCa4AR+qYpzjvvPM4991xWrVrFpEmTALj33nt58MEHWyBt2+F+LcePHw9pUG9B8MDhgMJFsGo2nHYWTDTWQnlnRsnrewl0OQFDrobcH0BMeDyatNYUHC5lRcFRVhYeZfPB0hb1k2yzMqBrMgOykxmQnURuZidyMjrRo3MCsTHRnItCCFfC4xvYBEop92Ee96d6mtexYq1PBXdSyhXw5wkzL7M7izD82c4C3lJK3ai1XquUsgH3APeb9R7XWjcy59E2tMUavZYSjtOSWmtXGJvmGIfOHMNNedw6ueeee1i1yvhvMGHCBObMmdNMSdsed49ef7H8BKHdObEX3vgxHPjS2C/aCWMfoDqlO7tP7vaoOmjsr8CW2v4y+qCu3sHa3cWsKDjCysLvOHiyed+prGQbw3ulMaxnKnEV39Er1col486U9XtCRBERxiHQMOKsgXdE0lxgbyAdaq21Uuoa4COz3WdKqXKM8JnO+/I3rfXfmy+u0Nbs3r3bFUy8OcZheno6R44c4eTJpj0ii4qKmDZtmmvf4XC4gkqHEydOnHC9z8jICKEkgmBSsBgW3QM1brEGdT18+Hu2j/0Z9fpUUOCeST1JDQPDsPBwKW+sO8D/NhzieLnvWIfexFgUp/dI5aw+6YzolcawXml0TYl3GYJffWVcvxiGQqQRKcZhm6C1PqCUGg78GrgKyAHKgA3AX7XWr4dQPKERnOsNlVIuh4xAyMzM5MiRIx4GlS+qq6uZNGkS27dvZ8SIEWzcuJF33nmHzz77jLPPPrtVsgcb92sJZC2lILQZdTWwfDp88ULDY2Zol8LjXlPKGXntJFxDisprWLThEG98fYAth5qeMlYKBndP4ew+GZzdN4MzctJJjpfA80LHIyKMQ611i/52BdJOa10KPGJugg/CMeuG0zjMyclxpf0KhIEDB7J582b27Nnjt47WmqlTp7JmzRoGDhzIypUrufvuu3nttdd45JFH+OCDD1otfzBxpihLTU31maUnHPUnBE6PHg3zp4Ylxbvh9dvg8IaGx/pfBBfNgqwBFH46w+NQfkb7p64vOFTKi5/s5u2NhwslykgAACAASURBVBqkifMmPtbC2H5ZXJSfzbmDupCVHLhzTMToTvBJNOsvIoxDIbQEuj6vPXE6owSSzcGdc845hzfeeMNnDmwnDz30EP/973/p0qULS5cuJT09nccee4yFCxeyatUqPvjgA84777xWyR9MvvzSWNN1zjnn+Jz2Dkf9CYHTVOaTsGD7cnjjR1DjNfpmiYULn4AxP3OFnfEOY5Of3j7GocOh+XD7MV78ZDdrdhY1WjfZZuXiIV25KD+bcf2zSIhrWYiYiNCd4Jdo1p8Yh0JE4hw5zMvLo7zcfzgJpZSHI40zNuH69eupr69vkD3k+eefZ86cOSQkJPD222+7gl/n5eVx3XXXuUYPP/vMe7lryzOkOD2owXOK+OTJkx7H0tPTfRp/TuNw3LhxAZ1PEILK7tXwfzdBvZffXtppcM186Hkq4HxtfS07Tu7wqDYoo20DydfVO3hz/UHmfbS70dAzFgVj+2dx9cgeXDy4K/GxEjNQiF7EOBSapLq6Gggsz217UFRUxMGDBwEjFuGsWbP81h08eLAr/zIYwUz79OnD7t27Wb16Neeff77r2FtvvcUDDzyAxWLhlVde4cwzz/Toa/r06SxcuJC1a9eyZMkSrrjiiqBcj780ft5rG/fs2UNOTo5HWXV1NatWrUIp5TP2orMOhI/+hOaxfft2wDMve9hwYB28emNDwzBvAkycCwlpHsU7T+6kznEqW0jXTl1Jj09vE9G01ry35Sh/eG8ru45V+K2Xk5HIlDNO48oRPeiaGtzvSFjrTmiSaNZf+LleCmFHfX099fX1TVdsJ5xTyoHg7cmslOL2228H4LXXTqXrWrt2LTfddBMOh4Nnn32WyZMnN+grPz/fZYBNnz69QcBrZ4DtxMTEgDO2tJYlS5ZQVlbG+PHj6du3r8864aY/oXmUlpa6PPPDiu+2wn+uBruX4XXxU3DdggaGIUCFvYJ+af2wKOPR01ZTymt3F3HVXz/lJ/9e59cwPDM3nXlTR/HBQ+P56fi+QTcMIYx1JwRENOtPRg6FiOOCCy5oVSaS2267jSeeeII333yTuXPnYrPZGDNmDJWVlU22fe211zyMSnc+/PBDAH7605/SpUvgqbtacy2vvvoqAHfccUeL+xCEFrHhP1Dl5fV/8VNw9t1+m5zR9QzemvQWlfZKtp/YjtUS3EfQjqNlPLW0kFXbfEc/i7EoLj+9Gz8el8vQng2NV0EQDMQ4FKKO7t27c9dddzF37lxeeuklfvKTnwSl3w8//JCEhAR++ctfBqW/pti5cyeLFi0iPz+fKVOmtMs5BcHFBU+AdsBnc4397/+yUcPQncTYRIZ3CTw+aVPU1NXzl1W7+OvqnT69jy0Krh7Zk/su6E/PzolBO68gdFTEOBSikunTpzN//nyefvppfvzjH2O1tu6rcOzYMbZu3cr9999PdnZ2kKRsnNmzZ1NfX8+sWbPCMji30MGxWOCi30JCZyg7AueGJhrYun3F/PqNb/w6m1yYn80vLx7IgGzJOS4IgSLGoRCVdOnShX/9619s3LiRAwcONHD0aC5ZWVmtmh5uLg6Hg759+/KHP/zB5/pIQWgXlILv/wK0doWqaS/Kqu384b1tLFi7D19fvTNyOvPrSwYxOqdtHF4EoSMjxqHQJN7hXjoKV155JVdeeWWoxWgRFouFhx9+OKC6HVV/0UJycgSMeLWzYfjpruM8tHAjh0uqGxzLTLIxY2I+l5/eLeRp6yJCd4Jfoll/YhwKTSIhUCIb0V9kM3DgwFCLANUlUHEcMnx7xAdCnaOu1Q4oDofm/63eybMrtuPwMVo4ZXQvHr4sj9TE8MgKFBa6E1pMNOtPjENBEAShcZY/Cpteh/MehTE/BUvzR6Nvf+92TlSfIC89j/yMfCb2m9isGIcnKmp5YOEGVvvwRM7JSOSpq07ne30lt7ggBAMxDoUmsdvtgOTojVREf5HNkSNHAHzmzW4Xdn0AX//LeL/8EdjyFkxZACndA+6i3lHP1uKtVNVVsbd0L8v2LuOS3EsCbr9u3wl+/srXHPKaRlYK7hzXhwcuHBCWGU1CrjuhVUSz/sQ4FJqkttbIfiDGRWQi+otsDhw4AIToAVVTDovv8yorg4TmOXnsLd1LVV2Vaz89Pp3sxKa9+rXWvLRmL08tLaTOax45vVMcc6YM5wcDfGcYCgdCqjuh1USz/sQ4FARBEHzz/hNQ8q1bgYJJcyG2eetY95buRaHQGAZeXkZek84i9Q7Nk29v4eXP9jU4Nqp3Z+beOIJuqQnNkkMQhMAQ41AQBEFoyL5P4Yt5nmVjfga9zvRdvxHOP+181t64lm0ntlFQVECXxMYzCFXb63lw4QaWfnOkwbE7xuXyq0sGERsjsT0Foa0Q41AQBEHwpK4GFt3jWdY513BIaSGJsYmM6DKCEV1GNFqvpMrOnf/6is/3FHuUJ9usPHPdMC4eHH1TfILQ3ohxKAiCIHiy/t9QvMuzbOKfIa5tU88dKanm1pe+YOuRMo/yrinxzL/9DAZ1TWnT8wuCYCDGoSAIgnCK+jpY85xn2ahbIXdcm55253dl3PyPLxp4JPfrksTLt59JjzRZXygI7YUYh0KTJCZKovpIRvQX2YwcObJ9T7jlTTjp5gQSEwc/+HWbnnLXsXKun7eW4+W1HuWjenfmH7eMJi0xrk3P31a0u+6EoBLN+hPjUGiSUKegElqH6C+ysVja0fHC4YBP5niWDbuhWTENm8v+4kp++OLnDQzDC/KymXvjiLCMXxgo7ao7IehEs/7EOBSapL6+HpAcvZGK6C+yqaysBNppBHj7u/Bdwal9ZYFz7vNfPwAe//RxauprXJlRTs88nXirEQrnaGk1P/zH5w1yJN9wZi9mThqCNcI9kttVd0LQiWb9iXEoNEl1tfHD3alTpxBLIrQE0V9kU1BgGGujR49u2xNpDR//0bNs8JWtyqestWbFvhWU1Zbxzu53AFhy5RJ6p/SmuKKWH774OfuKKj3aTBndi6euPL1DjHi3m+6ENiGa9RfZf8sEQRCE4HB8Bxze4Fk29sFWdXmg/ABltac8j5Nik+iV3IuSKjtT//E5O74r96g/YVh3nrqqYxiGghDJiHEoCG1ATk4OSilWr17dqn7Gjh2L1Wpl586dwRGsFTgcDgYNGkRSUhJHjx4NtThCsMkaAPdugDPvAms8DLgEug5pVZeFRYUe+4PSB1Ftd3D7/C/ZcqjU49gFedk8e90wYixiGApCqBHjUIhY5s+fz4wZM9iwYUPTlSOQxYsXs2bNGq6//nr69evncezbb7/lT3/6ExMmTOC0007DZrORnJzMsGHD+M1vfsPhw4eDLo/FYmHatGlUVFQwc+bMoPcvhAFpveCy38P9m+GS37W6u8JiT+MwLz2f+17bwLp9JzzKx/bLZO6NIyTriSCECfJNFCKW+fPn88QTT3RI49DhcPDwww+jlOKRRx7xOLZ//35ycnJ44IEHWLJkCfv37yc+Pp6qqio2bdrE008/zeDBg1m1alXQ5brpppvIzc1l3rx57NmzJ+j9C2FCUhak57a6m4KiAo/9vYfTWFHgOeo8undn5t08KqK9kgWhoyHGoSCEIe+99x5btmxh7Nix5OXleRxzeh9ffvnlvP766xQXF1NSUkJlZSVLly4lNzeXEydOMHnyZI4caZibtjVYrVZuueUW7HY7c+fODWrfQsdCa91gWvnddZ4+kPndUvjnbWeQGCe+kYIQTohxKDSJzWbDZrOFWoyo4sUXXwTg+uuvb3Csc+fOrF+/niVLlnDNNdfQuXNnAOLi4rj00ktZunQp8fHxlJaW8sILLwRdfzfccAMACxYswG63B61fwTf9+vVrsKwgEjhaeZQTNaemj7UjDkdtpms/MymOF28ZTUp8bCjEaxciVXeCQTTrT4xDoUmsVitWa/j8s58/fz5KKT788EMAbrvtNpRSri0nJ8dVt7i4mJdffpmrr76aQYMGkZycTKdOncjPz+fBBx/k0KFDfs/j7lRSXFzMgw8+SG5uLjabjR49enDHHXcEtLavuW2Liop4++23UUpx7bXXNjiemprKsGHD/J5v0KBBjBkzBoB169b51N/ChQtRShEbG8uuXbt8dcPNN9+MUorc3FwPB5QBAwYwbNgwjh07xpIlS5q8fqF1pKWlkZaW1jad11ZAqf/vQGvYUrTFY7++uhvOR05sjOJvPxxF9w6eEq9NdSe0OdGsPzEOhYgjISGB7OxsYmONEYeUlBSys7NdW1ZWlqvuU089xa233sqbb77Jtm3bsFgs1NTUUFhYyJw5cxg+fDibNm1q9HwHDhxg5MiRzJkzh++++w6lFIcOHeLFF1/ke9/7HidOnAhq21WrVmG32+nfv7/HtTSHjIwM4NQUtDfXXnstw4cPp66ujlmzZjU4/thjj7FgwQLS09NZtmwZ2dnZHsfPOeccAJYvX94i+YQwYctb8Gw+vDwBvl4A1SVB69p7StlR3cP1/reThzA6Jz1o5xIEIbiEz3CQ4JsZqS1r120Y3PWR72MvfB8Ob2yhPH4eHovvha9fDrx+K5gyZQpTpkxh/PjxfPjhhzz33HPceuutPuv26NGD3/zmN1x33XX079+fpKQk6uvr2bBhA4888gjvvfceN954I998843f2Go///nPycnJ4dVXX+Xss8+mrq6OpUuXcsstt7B3715mz57N73//+6C1XbNmDQCjRo1q0f2pq6tz9TFkyBCfUf6VUsycOZMJEyawYMECHn30Ufr06QPASy+9xMyZM7HZbCxatIhBgwY1OIczKOzHH3/cIhmFwNm40fiuNjZa3GI2LQQ07PnI2E7shfOnB6Vrb+OwvtpIwXfr93KYcsZpQTlHuNOmuhPanGjWn4wcCh2aBx54gNmzZzNixAiSkpIAI43cqFGjWLRoEfn5+WzZsoWPPvJjSGOsuVy5ciVnn302YEyzT5w4kUcffRSA//73v0Ft+8UXXwAwdOjQFlwx/OUvf+HIkSNYLBZuvvlmtNZorRvUu+KKKxgzZgx1dXU89dRTAKxYsYK77roLpRQLFixg7NixPs/h/LEsKCigrKzMZx0hONjt9rZZ21l62DAI3Rl6XdC6//roNx77juqenNMvg0cvz/PTouPRZroT2oVo1p8Yh0LUYrPZuPDCC4FTo3W+uPPOO13TtO5MnjwZgD179lBRURG0ts61iJmZmQ3aNcWmTZt4+OGHAbjnnnsYPHhwo/WdU8ovv/wyixcv5pprrsFut/PMM8/4XO/oxCmb1loCYkcqm98A3P40dB0KWQOD0vWGg99SXufujGKlZ1Jv5t4wMuLzJQtCNCDfUqHDs3XrVu655x6GDh1KSkoKFovF5bzy3HPPATTqmHLGGWf4LO/R49QaqpMnTwat7fHjxwFcXsiBcvjwYSZPnkxlZSWjRo3i6aefbrLNeeedx7nnnktdXR2TJk2itLSUe++9lwcfbDxtmrtsTnmFCOObhZ77QRo1rKt38Ksl73iU6Zru/H3qWXTuFBeUcwiC0LbImsNwpw3W7Pldi+gH58hWp06d/Fea+LyxhRmvvfYaN998s2tqwGKxkJqa6grtUl5eTkVFhd+RP4Dk5GSf5fHx8a73/qYeWtK2pqYGMELTBEpxcTEXXXQRe/bsoX///rzzzjse52iMe+65xxUwe8KECcyZM6fJNu59V1VVBSynECYc2+617ljBkKuD0vXcVTvZW7Ydm9vHb2S3IQzs6vu7IAhC+CEjh0KH5dixY9xxxx3Y7XamTJnCV199RXV1NSdOnODIkSMcOXKEBx54AMDnmrxQkZ5ueHH6G430pqSkhIsvvpjNmzdz2mmnsXLlygbexf4oKipi2rRprn2Hw4HF0vTPgruXta9pcyHM8R41zB0HKd1b3e26fcU8//4OLPGeI/GT885sdd+CILQfYhwKTRJucQ4DZdmyZZSXl5Ofn88rr7zCqFGjXOFvnITjejnner7GQuQ4qaio4LLLLuOrr76ia9eurFy5ktNO8/QE9ae/6upqJk2axPbt2xkxYgQWi4V33nmHzz77rMnzusvWkrWRQuBkZWW1OKSRT7SGb173LDu99VPKZdV27nttAw4NMfEHPY7lZ+S3uv9IJOi6E9qVaNafGIdCk4RrhhTnCJe/Ub8DBw4Ahtevr9EwrTUffPBB2wnYQgYONJwCmspdXFVVxYQJE/j000/JyMhg5cqV9O/fv0E9X/rTWjN16lTWrFnDwIEDWblyJdddZxgI3rmcfbF3717ACMjdtWvXQC5LaCG9e/emd+/ewevwwJdGyBonMTbIn9jqbh9ftIUDJ6pQMeVYYk8th4m1xNIvLTqzTARdd0K7Es36ixjjUCnVVSn1nFJql1KqWil1VCn1tlLq/Fb2e6VSaolS6rBSyq6UKlNKbVBK/U4pFdjcnBASUlJSAP/Tr6mpRozIzZs3+zQg//73v/vNDhJKnAGmv/rqK791amtrueqqq1i1ahVpaWksX768Sc9kdx566CH++9//0qVLF5YuXUp6ejqPPfYYFouFVatWNWk0f/nlly5ZA5mGFsKITV5TygMuhvgWxlM1WbzxEG+uN0YLLV6jhv079yc2puOmyBOEjkhE/KorpYYCm4F7gT5ADZAJXAGsUEr9pgV9WpRS/wbeBC4HugJVQAIwDPg1UKCU8u1uGkXU1NS4nCTCCacx9Oabb1JS0tBx54ILLkApxebNm7n33ntdRmRpaSl/+MMfuPvuu8NyvZwztuD69et9Zjipr6/nxhtv5N133yU5OZlly5YxcuRIv/156+/5559nzpw5JCQk8Pbbb7uCX+fl5QU8eug0DseNG9e8ixOazZ49e5ocRQ6YejtsedOzrJVeysfLa5j+v82u/Riv9YZ56dET19CboOpOaHeiWX9hbxwqpRKAxUAGsB4YorVOBToDfwQUMFspdVEzu74DuMl8/xyQrbVOAeKBS4BvgXTgVaVU2N+ntqSuro66urpQi9GAqVOnEhcXxyeffEJmZiY9evQgJyfHZVwNHDiQ+++/H4C5c+fSuXNn0tPTSU9P51e/+hXnn38+P/nJT0J5CT4ZPXo0ffr0oaKigtWrVzc4vmbNGt544w3A8HSePHkyXbt29bmdccYZHvp76623eOCBB7BYLLzyyiuceaano8D06dOxWCysXbvWb97k6upqVq1a5Tf3sxBcioqKKCoqCk5nu1ZBpVtf8anQv7k/nZ7MeqeQkqpTHvfWBE/jMFrXG0KQdSe0O9Gsv0gweu4CegPlwASt9RYArXWp1voXwP/MerOb2e+N5usqrfX9WuvvzH7rtNbvAbeYx/sCLUtVIbQpgwYNYsWKFVxyySWkpqZy5MgR9u3b51prCPDss88yb948RowYgc1mo66ujuHDh/OnP/2Jd955JywdbZRS3H777YARiscbh8Phel9dXc3Ro0f9bseOHXPVXbt2LTfddBMOh4Nnn33WFYjbnfz8fJfBN336dJ/T8UuWLKGsrIzx48fTt2/fVl+v0I54eynnTwJry9cTf7LjOG+t95xGTuvs6eQVzcahIEQqKpxCePhCKfUlMBqYp7W+y8fx7wHO9BZ5WuutAfa7FRgI/NE0Mr2PJwOl5u5YrbX/FBomo0eP1o2tE/OmsLCQvLzwn3IJKM6hEFQOHTpETk4OycnJHDp0qFUOQcHW39VXX82bb77JK6+8wg033BCUPsORcPl+On9TnPmsW4zW8Pdz4dD6U2W3LDHC2LSAans9l/zpI/YWVbrKBnSzcDjtV679GBXD5zd9ji0m/Bza2oOg6U4ICdGgP6XUOq11gwsM65FD00AbZe6+56faWsC54Oy8ZnS/13wd4ee487w1QEEz+hWEVtO9e3fuuusuiouLeemll0ItjoudO3e6clJPmTIl1OIIzUEpuGMV3PkhnH0P9BgFvc9pcXd/WbXTwzBUCqb+wHMkvm9a36g1DAUhkglr4xDIw1hTCLDFVwWttQPYZu42Z/7i7+breUqpOUqpLgBKKatS6mLgZfP4k1rrpgPOCUKQmT59OklJSTz99NNhs+Zz9uzZ1NfXM2vWLPFSjkSUgu7D4eJZcMcH0EId7jhaxt8+9PT0/+FZvbFb93uUyZSyIEQm4bfgypNubu/9J789daxbI3U80Fq/oZR6BHgSuB+4XylVBiQCMRjG6G1a6/mB9llZWekz/EiPHj3o1s0Qbfv27ZSWGrPVVqvVNeUXExPjSklmt9upra31eY7ExESUUtTX11NdXe2zjs1mc62lq6ys9LluzGq1uqYqa2pqfBofSinX+bTWflPMJSQkYLFYcDgcflOpxcXFuQJQV1VVeaybc+J+D2pra/2mpHNOjzZ2D+Lj44mJiQHwK3dsbKwrRV11dbVPz2CLxUJCQgIQmF4auwfN1Utqairz5s3jm2++Yfv27a54W069gOEs5M+T3KkXpRR1dXU+70Nz9OJwOMjJyWHWrFlceOGFDfoLR70E8tn0p5eamhrX9zkjI4Pc3FwA9u3b57GW013uYcOGAUZ4pZ07d/o8X35+PomJiTgcDr7++mufdXr27OmKH1lZWUltbW2D35aUlBQGDBgAGHm1Dx482KAfODUlVlFRQWFhoc86/fv3d4V+8ucln52dTa9evXA4NA+++iX2+lOf37R4CxdkV1JR1ZX7Rt5HYVEhm49tJqk8yedv4tChQ4mLi6O2tpZNmzb5lCknJ8cVYH3Lli0+9Zeenu7ytt+/f7/PoPYxMTGMGGFMEJWUlLBjxw6f58vLy3N9hv0tD/L3W+5OcnKyK1ZpXV0d5eXlPvsbOXIkFouFyspKCgp8T07169ePtLQ0ADZu3OjzNzErK8v127Bnzx6fDhQ2m43TTz8dMJws/Hngnn766dhsNux2Oxs3bvRZp3fv3q7A0AUFBVRWVjaok5aWRr9+RmzLAwcOcOTIkQZ1LBaLK8pCaWkp27dv93m+QYMGkZSUBMC6det8/m52796d7t2NDD87duzwGb2iU6dOrmUiR48eZf/+/Q3qAIwYMYKYmBiqq6tdES689denTx9XJqtNmzb5/P3JzMwkJycHMOLC+spBHxcXx9ChhktDcXExu3fv9inTkCFDiI+Pp76+nvXr1/us06tXL1dmrMLCQp+/r6mpqa5YuIcOHeLQIf9mVbgbh+6LpBpL4Or8dCY1s//ZwD7gBfNc7sk/OwGZSimLOTrpE6XUncCdQIcNBpyYmNioESK0HRMnTmTixNYFKE5ISPD5A95cLBYLv/71r/0a7ULbkJ2dTVlZWajFcPH6uv18c8Tz5/j24cl0irWQmdCbywZfBsDx48ejNgyIk5ycHA8HOSGycBrm0UhYO6QopW4C/m3uxmqtfc6tKaX+g+F9vFxrfXGAfScDr2LEOFwCzMRYW5iBEcrmKYxQNq9prQNadd9RHVIEIRqR72dDjpfXcP4fP/QIXXPuwCz+eesZKKUaaSkIQjgSkQ4pGOFrnCQ0Ui/RR/2meBbDMFyptZ6gtf5Ca12utd6ntX4BuBLQwPVKqUubJXUHI1zjHAqBIfqLbIISa60+OPr/w7vbPAzDhNgYnpw0RAxDP0RznLyOQDTrL9ynld0nxLtzyvHEm+7m6+FAOlVKpQC3mbt/8lVHa/2RUuprDK/lScCyQPruiDink8MxJqDQNKK/yMY5NdvibD5VJ+BPw6D32dD3fOh3PmQ0Pz5l4eFSFq7zXKf1wIX96ZWe6KeF0GrdCSElmvUX7iOHWzFG7wB8Jo41s5cMNHcDDTnTH8PpBKCxRTHO1aE5AfYrCIIQXuxeDTUlsP1dWPZL+L8ftqibp5YW4r4KqW9WJ247Jzc4MgqCEFaEtXGotS4DnIv4LvRT7SzAmTX+/QC7dncwOa2Rer3N1/BZDS4IgtAcdnr9LPZtTjhYg9XbvuPjHZ7elg9flkdszKlHyNLdS9l8fDM19eK4JgiRTiTMM70CnAHcpJR6UmvtPXXszG6yTmvtb9rZm61ANUYe5TuBd70rKKVGAiPN3c+bLbUgCEKo0Rp2feBZ1u/8ZnVRV+/gqaWeIXDO7pPBeYO6uPYr7ZX85uPfoNHEqBj6pfXj1SteJdYS22LRBUEIHWE9cmjyAka4mWRgiVIqHwxvY6XU74GrzHoPezdUSmlzm+FerrWuAv5l7l6plPq7UqqX2SZeKTUJI2ezFSOF3vygX5UgCEJbc2wblLrFP7QmwGnfa1YXr687wPajp3z9lIJHLs/zcELZdmIb2lwBVK/rqamvEcNQECKYsB851FpXmcba+xgjeVuUUqUYMQ0tGGsSH9ZaL29m1w9hZFQZC/wY+LFSqgLDK9ppNJcB12qtG0avFARBCHd2rvTczxkLsfEBN6+oqeOPyz2DE185ogdDeqR6lBUUeS73zkuXEECCEMmEvXEIoLXeqJQaAkwDrgB6AEXAF8AcrXWgaw3d+yxXSo0Hbgaux8ix3Bkj2PYeYAXwnNZ6X1AuIoJxZqIQIhPRX2TjzGzRInZ5/TQ2c0r5hQ93cbz81BpCm9XCLy4a2KBez6SeXNj7QgqKCjhYflDS5pm0SndCyIlm/UWEcQigtT4C3GdugbZpNPiW1roeeMncBD9IDt3IRvQX2TjTKTYbexXs+9SzrN8FATc/UlLNvI8903ndMa4P3dMa/tn4Qa8f8INePwCgpKZh6rJopcW6E8KCaNZfxBiHQuhw5tsVIyMyEf1FNs50hc4c2AGzbw3UueW4Tj0NMvoF3PyZ5duotp8K7JCZFMdPxjcdHzHVltpknWihxboTwoJo1p88LYQmqaqq8pn0XogMRH+RzcaNG9m4cWPzG3qHsOl3nuFNEgDbjpTxxteeOYEfuHAASTYZT2gOLdadEBZEs/7EOBQEQeiINDAOA59Sfu797R4Br/t3SWLK6F5BEkwQhHBHjENBEISORskBOO4W9lXFQO73A2paeLiUpd8cv/eOJwAAIABJREFU8Sj75cUDscbI40IQogX5tgtCE1xxxRUopfjjH/8Y9L7Hjh2L1Wpl586dQe87mnE4HAwaNIikpCSOHj0aanHaH+9Rw15nQnxgawGfW7nDY39IjxQuzM/2W3/XyV3U1tc2W0RBEMIXMQ4FoQk2bNgAwLBhw4La7+LFi1mzZg3XX389/foF7ijQVhw5coT77ruPvn37Eh8fT3Z2NhMmTOD995sdKSpofZeVlbF48WKmT5/OpZdeSmZmJkoplFJs3brVbzuLxcK0adOoqKhg5syZrZY/4vCObxhgCJsth0p4d4vnqOH95w/wCHjtTm19Lde8fQ1nvXIW1719HY9/+jh2h71FIguCED6IcSgIjVBUVMTBg0aGieHDhwetX4fDwcMPP4xSikceeSRo/baUTZs2MWTIEJ5//nl2796NzWbj+PHjLFmyhAsvvJDf/e53Ien7/fffZ9KkSfz2t7/l3XffpaioKODz3nTTTeTm5jJv3jz27NnTYvkjkjPvhLPvgaxBxn7fwIzD59/3HDU8vUcq5+d18VMbdpzcQZ2jjjpHHYXFhXx66FPJjCIIHQAxDoUmiYuLIy4uLtRihIT169cD0KNHDzIzM4PW73vvvceWLVsYO3YseXltm02iKf1VVVUxceJEioqKGDFiBJs3b6akpIQTJ07w0EMPobVm2rRpLF/e3CREwem7S5cuXHbZZTz++OPMmzcv4HNbrVZuueUW7HY7c+fObbbs4ULv3r3p3bt38xrljoOLZ8Hdn8MDW6Bb039sthwq4b0tnlPw91/Q3++oIUBhkWfO5fx0CX7tTot0J4QN0aw/MQ6FJomNjY3KOE+AK4xBMEcNAV588UUArr/++qD264um9PfCCy+wb98+kpKSePvttxk8eDAAKSkpPPPMM0yePBmAadOmNfvcre17woQJHD16lHfeeYcZM2Zw4YUXNuv8N9xwAwALFixwxSyLNLKyssjKymp5B6k9IYAYl3/yWms4rGcq5w3yP2oIDY3DvAxJm+dOq3UnhJRo1p8Yh0JEM3nyZJRSzJ49m/Lycp588kkGDx5MQkICVquV6upTQYC//PJLbr/9dvr27UtCQgIpKSmMGzeO1157zW///tYbaq1JSUlBKcXnn3/us+3+/ftRSmGxWCgrK3OVFxUV8fbbb6OU4tprr/XZduHChSiliI2NZdeuXT7r3HzzzSilyM3NbZXTxX/+8x8AbrzxRnr06NHg+C9/+UsAvv7660bX+bVF3zExMc06nzcDBgxg2LBhHDt2jCVLlrSqr47M5oMlrCjwHjX0v9bQiXdOZUmbJwgdAzEOhSYJ5yDKmzZtAow0R6effjqPP/44e/bswWKx0L9/f+Lj46mvr+fnP/85Z555Ji+99BK7d+8mLi6OsrIyPvnkE2644QYefPBBn/07jUPvkcNdu3ZRVlaGxWLxm3/TOSWdm5tLcnKyq3zVqlXY7Xb69+/v91/ptddey/Dhw6mrq2PWrFkNjj/22GMsWLCA9PR0li1bRnb2KW/S1atXu5w2Vq9e3aj+ysrKWLduHQAXX3yxzzpjxowhNdXwdP3ggw981mnvvpvDOeecA9CiafFwoKCggIKCgqYrtoIGo4a90hg/sPERE7vDzvYT2z3KxDj0pD10J7Qd0aw/CXcf5pz+ctsn/r66/9XM+N6MgM7/zS3f+Kw349MZvLHjjQbl/uoHg9LSUvbu3QsYxlJOTg4ffPAB48ePRynFvn37ALj//vuZO3cugwYNYsaMGVxxxRV06tSJsrIy5s6dyyOPPMKcOXO4+uqrXYYEQE1NjWs0y9s4dE43DxgwgMTERJ/yOY3DoUOHepSvWbMGgFGjRvm9NqUUM2fOZMKECSxYsIBHH32UPn36APDSSy8xc+ZMbDYbixYtYtCgQY3eJ2f6PF8UFhaizWjHzilfbywWCwMHDuSLL75o1g9lW/bdHEaPHg3Axx9/3Cb9tzWVlZVt2v83B0pYWdi8tYYAu0/uptZxKoRNVkIWmQnBW5fbEWhr3QltSzTrT0YOhYhl06ZNLuOjW7durFmzhnPPPdf1UOvduzcLFy5k7ty5nHHGGXz22WdMmTKFTp06AZCcnMy0adOYOnUqAK+//rpH/5s3b6auro6kpKQGoWb8jSi68/XXXwMNp6S/+OILoKHR6M0VV1zBmDFjqKur46mnngJgxYoV3HXXXSilWLBgAWPHjm20j6Y4fPiw63337t391nMec68fyr6bg/P+FxQUeEzvd0gOroOCxVD+XcBNnnvfc/RveK80xg9oep2VTCkLQsdFjEMhYnGO3iml+Oc//+mannRit9uZNm0aVquVl19+mbS0NJ/9nHnmmYCxRtBX/0OHDm0wihKIcehv5NBpBAXi/eycUn755ZdZvHgx11xzDXa7nWeeecbvesXx48ejtUZrzfjx4xvtv6KiwvU+ISHBbz3n6Gh5eXmTMrdH383BeZ+11h0/IPa6l2HhVHimPzw/wjAUG2HbkTJWFnoakg9c2PRaQ4DCYnFGEYSOikwrCxGL03g766yzGDduXIPjS5cuZffu3VitVs4991y//TinDrynhxsLft2UF3NRUZHL2PRuf/z4cQA6d+7sVyYn5513Hueee+7/Z+++w+OqzsSPf8+od1nFlmXLkmXZluSGZRlDSIBAIKGF4gRC2w1pJPllUxaSTdjApiwhBFI22fTdEAgQElOW3jEQwAbbMq6yZVnFkmXZ6r3OnN8fVyPpzow0RTOaGc37eZ55pHvnzL1HvL6Xd8655xy2bt3K5ZdfDsBXv/rVKZ+R9JaevICunwXy2N6Y/N+5tbU1JCYcD5iGSYOj2msg1vUjD3Z/eLPGtL0uL52zl3vWNew0UjlDkkMh5gpJDkNcIJ/Z8/T89hYge3esK9/7wPemfG4xUOwJmj1pcvTcc88BMDo66lGL0bJly0zbU7UOtre3jyd+UyWH9i7l5OTk8WcF7YaGhgA8njvyK1/5Clu3bgWMqV1+/vOfe/Q5TyQnJ4//PjAwYBo4M5k9gZ5cPpjH9kZ8fLypHnNWfzu0TB7xrWDxximLn+ga4Mn3j5v2femcQo9aDa02K4c7Dpv2SbeyEHOHJIfCrZlOJxIINpuN/fv3A3D22We7LHPgwAEAHnvsMa666iqvz2EfCT3VYJScnBzTKOHJdu7cCcCaNWuc/mebkZFBc3MznZ2dbuvQ1tZmmgPQZrNh8WDOusmmi9/kZwGbmppYuXKly3JNTU2A8WynpwJ5bG90dHSM/56ZmRmQcwTSVI9DOGncYd5esGra9ZT/9FYto7aJ1t2lWUlcUJrj0anquusYGJ1ItDPiM1iQOPX6y5HK49iJkBTJ8ZNnDoVb8fHxptaXUFBdXU1/fz8Wi2XKgR2nThnPUkVHe/8dqKamhq6uLqKiopymqpkqaZzsqaeMZ71cdUnbn4GbnLS4Mjg4yOWXX05VVRXr16/HYrHw7LPPsm3bNq/+luniV1xcPJ682pNpRzabjcOHjVai0lLPW4cCeWxvTP7v7M9VbmZLUVGRZ13hxxz+XeRtmrJo18AID797zLTv8x8qJMrivtUQnAejlGSWeNTiGGk8jp0ISZEcP0kORViyt94VFRVN2R1pb2GzJx++HH/FihVOgymOHDkyfm5X9u7dOz4xtqvE1d6CNt16v1prbrzxRt5++21WrlzJK6+8wtVXXw3g17WYU1JSxqd6efnll12Weffdd+nq6gLg/PM9W6M30Mf2hn26o7S0NHJyPGsZC0vHHCZjX3LmlEUfereevmHr+HZWchxXlTlPUj4Vp5HKsmyeEHOKJIfCreHhYYaHh90XnEWeLGu3evVqwFjCbfJKKY66u7sZHR017ZtuMIp9oIW9ZXKyvr4+rr322vEyrj5vn0vR3vXsyi233MKjjz7K/Pnzee6558jIyOCOO+7AYrGwdetWryaMdhe/6667DjBWM3E1ncy9994LGPMyTtU1HIxje2rHDqO79ayzzvK6Sz4UNDY20tjYOH2h0WFoqjDvW+K65XBwxMp9b9eZ9t10VgHxMZ4/PiIjlT3jUexEyIrk+IXfnVLMupGRkZBbl9aeHK5fv37KMp/5zGcAYzWTCy64gJ07d44ngSMjI+zatYvvfve7rF+/3um5vOmmqrEnMU888QRbtmwZ/+/zwgsvcOaZZ9Le3g4YU+y4Wj3FPjfh7t27sVqtTu//8pe/5Oc//zkJCQk8/fTT4wNaSkpKPGo9dFwhxV38br75ZvLz8+np6eHSSy8dn4y6p6eHb33rWzz++OMA43MtOvrzn/88fj57K52/jg3GCGP7a3IXcWdnp+m9qSb7tieHrka0h4Pm5maam5unL3RiD4xO+gKUkgtpeS6L/t/u47T0DI1vJ8VGccOmfI/rY9M2DrWblzqUwSiueRQ7EbIiOX6SHIqw5EnL4cUXX8ytt94KwFtvvcXGjRtJTEwkIyOD+Ph4ysvLufPOO8nJyfFqHsMbb7yR7OxsRkZGuPrqq0lISCA+Pp6LLrqI+Ph4/vM//xNwXjbPrry8nMLCQvr6+nj99ddN7z3xxBN84xvfwGKx8PDDD4/PwWh3++23Y7FY2L59u9/WCk5ISODJJ58kMzOTiooKVq1aRVpaGunp6dxzzz3ja1dfeOGFQTl2dnb2+KusrGx8/5lnnml679ixY06fHRwcZOvWrdOuYz0nNGw3by/ZBC6eAbTatNP0NdeevoS0xBiPT3Ws+xh9IxNzWKbGppKbNPUk50KI8CPJoQg7HR0dbqeSsbvnnnt44YUXuOKKK0yjYUtKSti8eTMPPPAAzz77rOkznZ2d44mGq+PPmzePf/zjH1x66aVkZWWRlJTExo0b+fWvf80777wzPm3OVANllFLjrZqPPPLI+P7t27dz/fXXY7PZ+NnPfsYVV1zh9NnS0tLxJOf22293OZegvfs2MTHR40Ee69atY//+/Xz1q1+lsLCQoaEhMjMzueSSS3j55Zf59re/7dFxZvvY7jzzzDP09PRw7rnnOk1VNKccc0gO885wWezlgyepaZ1I7KItis98cKlXp3LVpSyDUYSYW1SoTFQ7F5SXl+vpniNzVFlZSUlJ6D+r48k8h8I7TU1NFBQUkJKSQlNTE3FxcX479he/+EV+//vfc8stt3DvvfdGdPw2b97M448/zsMPP8y1117r1WdD5fq031Psg3ucaG2siNLXMrHvC69D7nqHYporf/MO7zdMTKF0Vdkifnb19F+wHP1050/584E/j2/ftPom/nWDfyZln2vcxk6EtEiIn1Jql9ba6Q+UlkMhgiA3N5ebb76Z9vZ27rvvPr8e+4033iAhIYFvfvObfj1uuKmurubJJ5+ktLSUa665JtjVCZz2GnNiGJMEC5yfdd1R12FKDAFuPtv71lTHlVFkpLIQc48kh0IEye23305ycjJ3332302hpX7W0tHDo0CFuvvnmKSfojhR33XUXVquVO++8MyxHKdtZLJbp6+/Ypby4HKKc5/b837fMzxqeVzyflTmuV62Zitaag+0O09jIYJQpuY2dCGmRHD9ZIUW4FYndkbNh/vz5PPDAA+zZs4fGxkYKCgpmfMzs7Gyn5xAjMX42m41ly5Zxzz33uHx2M5xMHoTj0vFd5u0lzs8bNrT38/JB8xKSn/9QoVM5dxp7G+kZ7hnfTo5JZnHKYq+PEyncxk6EtEiOnySHQgTRlVdeyZVXXhnsasw5FouF2267LdjVmB0X3wPlNxktiA3vQuGHnYr8ZXs9k1bKo2RhKmcUZnh9Kscu5eKMYiwqMltWhJjLJDkUbtnn4gvFNZaFexK/8Nbd3Q1Aamqq6wKWKMhZY7xO/7zT2/3Dozzynnman5s+UODTCGOnlVGkS3labmMnQlokx0++8gm3BgcHp11hRIQ2iV94q6qqoqqqyufPP15xnO7BiWdaM5Ji+fhpvs1L2NDTYNqWlVGmN9PYieCK5PhJy6EQQsxRWmv+/E6dad+1p+d5tVTeZPeecy+n+k9R2V7JwbaDrJ8/9QpFQojwJcmhEELMUW9Vt1J9qnd8O8qiuOEMz5fKc6SUYkHSAhYkLeDcvHP9UEMhRCiSbuUgk0nIhQg9c+W6/PPbdabti1bnsDAtITiVEUKEDWk5DKKoqCisVivR0RIGIUKJ1WoN/QE8LVXw6veNlVDsr8SJEch1rX28dviU6SM3nVUwy5UUQoQjyUqCKDExkd7eXtLT04NdFSHEJL29vSQmJga7GtNrfA8OPWO8AJZfCNdvGX/7/m11TG4AXbMojbIl82a3jkKIsCTJYRClpqbS2tpKSkpKSLdSxMfHB7sKYgYkft6xWq20t7eTlZUV7KoAUFxc7PqN4xXm7dyJCXt7h0bZsrPR9PZNZ/k2fY3w3ZSxE2EhkuMnyWEQpaSkMDAwQH19PRkZGSQnJxMVFRVyN/BQTlyFexI/97TWWK1Went7aW9vJykpiZQU75aWC5Tk5GTXbzQ5JIeLJpLDR3c20Ds0MX1NVnIsl6xd6HMdTvWf4tY3bqUko4TSzFJWZ61mWbr36zJHmiljJ8JCJMdPksMgUkoxf/58enp66O7u5tSpU+MTFgshZldUVBSJiYlkZWWRkpIScl/STEaHoHm/eV+uMa2Mzaa5f1u96a3rNuUTF+37l4TKtkp2n9rN7lO7AVibtZaHLnnI5+MJIUJb2CSHSqkc4DvApcAioAt4D/iF1vrVGR57PvC1sWMXAFHACWAn8IjW+smZHN/NuUlNTQ3pGdh37TLWbt2wYUOQayJ8IfELby7jd/IA2EYmtlMXQ/J8AP5R3Upta9/4WzFRihs2LZlRHQ62m1dGkcmvPSPXXniL5PiFRXKolFoLvAZkju3qBrIwkrlLlFK3aa1/7OOxLwYeBOxPag8AVqBo7JUNBCw5DAdzZVqPSCXxC28u4+fUpTwxGfWD282thhevWcj81Jk9dyrL5vlGrr3wFsnxC/nkUCmVADyFkRjuBm7UWh9QSqUCdwC3AHcppSq01i95eewPAU8AscDfgP/UWu8fey8DOAdY6rc/Rggh/KFpt3l7rEu5qXOAVytPmt66cQaTXtv9+6Z/54qiK6hsq6SyvZI1WWtmfEwhROgK+eQQuBnIB3qBy7TWxwG01t3ArUqpZcAVwF2Ax8mhUioeuA8jMfyD1vrmye9rrdsxEkchhAgtxx2TQ2MwyiPvHcM2qbGjOCeFDfkzn74mJymHnKQczl9y/oyPJYQIfeGwQsr1Yz8ftieGDu4Z+1mmlPJm3Pk1wDKgA6P1UQghQt9wH7RUmvflnsaI1cYjOxpMu68/Iz+0B9YIIUJSSCeHSqkUwP4k6ItTFNuOMTgF4DwvDm9POh/VWvdOW1IIIUJF8z7QtontjEJImMcrB09yqmdofHdSbBRXrl8UhAoKIcJdqHcrlwD2r70HXBXQWtuUUoeB0wGPnpJWxlfpTWObbymlyoDvAh8CUoBGjGT0J1rretdHcdbf38/OnTud9i9atIiFC405xqqqquju7nYqk5KSwsqVKwFobm6msbHRqQxAWVkZFouF/v5+Dh486LJMUVHR+Kore/bsYWRkxKlMdnY2+fnGs0i1tbW0tbU5lYmLi2PNmjXk5ubS09Pj8m8DWLNmDXFxcYyMjLBnzx6XZfLz88nOzgbg4MGD9Pf3O5VJT0+nqKgIgMbGRpqbm53KWCwWysqMLrTu7m6qqqpcnq+4uHh8jqpdu3a5fLA4NzeX3NxcAI4cOUJXV5dTmaSkJEpKjJGZJ0+epKGhwakMwPr164mKimJwcJD9+/e7LFNYWEhGhrG82d69exkeHnYqk5WVRUFBAQB1dXW0trY6lYmNjWXt2rUAtLe3U1NT4/J8q1evJj4+npycHGpra13GLy8vjwULFgBQWVlJX1+fU5m0tDSWL18OQFNTE01NTU5llFLjI/p6e3s5dOiQyzqtWLFifGR+RUUFNpvNqUxOTg6LFy8GoLq6ms7OTqcyiYmJlJYal3tLSwv19a4v03Xr1hETE8PQ0BD79u1zWWbp0qVkZhpj3fbt28fQ0JBTmczMTJYuNR4/rq+vp6WlxalMTEwM69atA6Czs5Pq6mqX5ystLSUxMRGbzUZFRYXLMosXLyYnJwcwHoofHBwcj9/8micxjT3OLePEiRP85mXzv7uzFsdyaN/7lJeXA9DX10dlpUOL45jly5eTlpYGwO7du11OqbVgwQLy8vIAqKmpob293alMQkICq1atAqC1tZW6ujqX51u7di2xsbEMDw+zd+9el2UKCgrGJyI/cOAAAwMDTmUyMjIoLCwEoKGhgZMnTzqViYqKYv1645nMrq4ujhw54vJ8JSUlJCUlAUx5r/P2Xp6YmEhbW5vL4wXjXg7Q1tZGbW2ty/PJvdx8L7f/m3OMX7Du5Varld27d7ss4697ud2MWw6VUklKqUKl1OlKqXOUUqvHpp3xh8mztk79V0y85+ksrwsA+9wxqzBaH68EEoERjO7mLwN7xgatTEkp9QWl1E6l1M6Ojg4PTx9ecnNzQ2a1COG9hQsXkpCQEOxqCB+lpqaa4pfUddhcIHc9xzoG2XfK/D+oCwsl5sGWkZEh114YS0hIiNj4KW+HaiulojCmkLkQo6WtlInWvcm6gLeBfwBbtNauv6pMf67rAPtMqzFa69Epyj0EXAe8pLX+qAfHLQbsX6E1cBy4CXhVa62VUh/AGKyyAjgFFGut3WZ+5eXleqpvnEII4Re/2gBtk1olb3qeH+5L53/fmrjFbsifx2Nf+sCMT9U11MXv9vyO0sxSSjJKWJq2lCiLrLgjxFyhlNqltS533O9xt7JSKh/4CnAjxtx/7p5yTgcuAS4GfqSU2gr8UWv9d49r7f4cvprcYqqAG7TWb9h3aK3fUUp9AngfmA98jomBLxHH3g1jb44W4UXiF95M8RsdhphEUFGgraAsDGat4tFd75o+c8MZM5v02q6yvZIHKx8c316TtYaHL3nYL8eOBHLthbdIjp/b5FAplQ3cDnwBY9oXgD0YrYI7x35vxRj1O4gxmfQ8jJVGNo69PgycD5ynlPou8O9a66c9qN/kgSIJQM8U5RJdlPf0uHsmJ4Z2Wut9SqlXMFpIP0IEJ4eunt8Q4UPiF95M8YuOhS/+A4b7jYEp7Ud5urKbroGJZ9HmJcZw0Wrf11GezHHya1lP2Tty7YW3SI6fJy2HNUASUAvcD/xVa+36iV5Dy9irirF5B5VScRhd0dcBHwf+Tyn1Ta31z9yce/JzhrnA4SnK5Y79POHmeHYnMVZBiZrmmIy9dyGQ5+FxhRAi8GITYckmWLKJB3/9tumtq8vziI/xT9dvZZt5AIusjCJEZPBkQEoj8Glghdb6B24SQ5e01kNa68e01psxRiDbJ5925xDGM4FgDBxxopSyACvHNl0P+XJRH+CofdOTj3hyXCGEmE37j3exp8E8mvu6Ga6jPJljy2FJhqypLEQk8KTlsFT7cYFBrXU18DnlwcysWusepdROjK7pC4DHXRTbBKSN/f6qF1V5FWPAyXQTZ9vf83g6GyGEmC2O6yifvSKb/Mwkvxy7Z7iHYz3HxrctysKKeSv8cmwhRGhz23LoKjEcew5xRrxIOO1PP1+vlHL1IM2tYz93aa2n6yJ29Jexn+uUUuc6vqmUWoPxnCTAc14cVwghAq5ncISn9phn+LrBj62Gh9rNc1UuTV1KYkziFKWFEHOJr/McbldKzdbwnd9jtNylAM8opUrBWD1FKfUT4Kqxcrc5flAppcde33N8T2u9jYm1k/+ilDrf3pqplDoTeBTjv0898Cf//knhJSkpaXxyWBF+JH7hbTx+Dt+nn9rTRP/wxGTVOanxnFc832/ndexSlucNvSfXXniL5Pj5ukLKUuBtpdTlY0lWwGitB5RSl2N0A5cBB5RS3UAyRvKmgdu01i/5cPhPYww2KQdeAfqVUlaMRBSMAS6Xa62dp4CPIPZZ5UV4kviFt/H4vX437Pkr5K6HRWW8+V4WE3P5w9Ub84iO8t+KqJXt5sEoJZny78hbcu2Ft0iOn693kgeBLOBVpdRV7gorpS5RSu3y8VxorfcAq4FfYoyejgPagGeBC7TWP/bxuN3AB4BbgF0YI5ijMQa2/BhYN3ZuIYQIrqYK6KiFA4/DS98lrWXilqoUXLPRv5MqOI5UlsEoQkQOn1oOtdb/pJSqw1iP+O9KqVu01v/lWG7sWb47gTNmUsmxczYDXxt7efoZTwa9jAA/G3sJF+zrldrXbRThReIX3k6ePAlas6DJvKbqPlvh+O/nrshmUbr/lvnqH+mntsu8qJW0HHpPrr3wFsnx87VbGa31HUqpWuB3wM+UUvla638FUEptwkgKP4yxAokN2OKH+oogsC9QHokXyFwg8QtvDQ0NxAy0sKD35Pi+QR1DlV48vn3t6f4biAJwuOMwetIMXgWpBSTFROazVzMh1154i+T4+ZwcAmit71NKNWIM3viaUqoQo6v6EiaSwr8BP9RaV059JCGEEFNJ6jJPxHBAF2DFmOh6fkqcXweigMxvKESkm1FyCKC1flkpdQPwJHCZfTdGUvgDrfWhKT8shBDCrcTOKtP23kldyleX+3cgCshIZSEi3YzuKEqpAqXUHzBaDsFoLVTA+8CXJTEUQoiZS+oyJ4f7bEuBwAxEARmpLESk8yk5VEotVUr9D8baw58FYoCtwGbgCLAeY6qbfH9VVAghIpLWJHaZVy3dp42Www8tzyYvw78TUw+ODlLTWWPaV5wx3UJSQoi5xteWw0PATRhJ4bvA+Vrr87XWTwBnAtsw1lDeppTa4JeaCiFEBIoZbCVmeGL95AEdS402Fou67nT/txpWdVRh1ROTay9OXkxaXNo0nxBCzDW+PnMYg9F1fLvW+tnJb2it25VS52PMhbgZeEMpda3W+umZVVUEy/r164NdBTEDEr/wtjrTatqywHJoAAAgAElEQVQ+qPOxEkVWchznl/h/FKXTYBTpUvaZXHvhLZLj52vL4TVa6zLHxNBOaz2ktf4k8AsgEXhcKfUVXyspgisqKoqoqKhgV0P4SOIX3qJO7jVt77cVAPDJ8sXE+HkgCjg/byiDUXwn1154i+T4+XRn0Vp7NGfh2LyHX8cYpPILX84lgm9wcJDBwcFgV0P4SOIX3qyN5sWl9mtjMMqnAjAQBZxXRinNkOTQV3LthbdIjp//v3Y60Fr/EvgkMBToc4nA2L9/P/v37w92NYSPJH7hzdpoXhllv20pHyzKIj/T/5NSD1uHOdJpHvwi3cq+k2svvEVy/AKeHAKMDVQ5bzbOJYQQc0ZPM7FDbeObQzqGI3oRnwrAQBSAI51HGLWNjm8vTFrIvPh5ATmXECJ0uU0Ox1Y9mTGt9buTjmlRSvl3vSchhJhrRgepTDuHo7aF2LSiUi8hNSmRC0oDs5yXrIwihADPRisfUkr9FfiR1vqw29LTUErFYEyB82/A/cAPZnI8IYSY0+YVcIv1KxwcHiGJATJVN5s3LSIuOjAPyTs9byiDUYSISJ50K78H3AgcUEptVUrdrJTK9PQEyvBhpdTvgSbgt0A2sMenGgshRIQ42tLLwdYRAPpI4JhewDUbA9fp4pgcyvOGQkQmty2HWusPKqU+DvwIOAc4G/i1UuoIsAvYC7QCHcAwkA7MA5YC5RirpSRhjFgeAX4N/FBr3eL3v0YIIeaQv+1oMG1vLJhH0fzkgJ3vzNwzSYhJoLKtkt6RXmk5FCJCeTQJttb6KaXU08DHgM8BlwIrx17XTvNRNfazBvgTcJ/W+oTv1RXBUFjol8dORZBI/MLT8KiNx3Y1mvZ9KoCthgBfLfsqADZt43jvcbISsgJ6vrlOrr3wFsnx83iFFK21Bp4HnldKZQAfBs4CTgcWAllAHNCO0ZJ4GHgbeEtrvdPP9RazKCMjI9hVEDMg8QtPr1SepK1veHw7JT6ai9csnJVzW5SFvJTAjIiOJHLthbdIjp9Py+dprduBx8ZeQggh/Oz5bbtJYJAB4gG4cv0iEmIjc7UGIcTs8nVtZRFB9u41lu9au3ZtkGsifCHxCz8N7f1c3PAzfhG3k6M6l/16KesK7wh2tYSX5NoLb5EcP0kOhVvDw8PuC4mQJfELP3/f2cDVqo4opVmhjrOC45Aht+twI9deeIvk+Pl8t1FKJQLXACsADdQB+4E9Wus+v9ROCCEizKjVxgs7DnKLZWJCBytRRM1fFbBzdg930z3UzaLkRSil3H9ACDGn+ZQcKqWWAq8Di128rZVStcD7GHMZvo+RMDa4KCuEEGKSN6pamN93GGIn9g2k5JMcEx+4cza8wW1v3UZqbColmSVcsvQSrlx+ZcDOJ4QIbb62HN4L5AGjwDMYcxwWAmuADGDZ2Osq+weUUh1aa5kXQQghpvHX9xpYo2pN+wbTVxC42Q0nls3rHu7m3RPvsjYr8p6xEkJM8DU5/ABGV/I1WusnJr+hlMoDTgPWjf08DWNCbFm9XQghptHcNcjWw6e4IqrOtL8vbTmB/GbtuKayTH4tRGTzNTlMBAYcE0OAse7jBuBp+z6lVDJGsijCUFaWNPiGM4lf+NiyswGrTbM62txyGLtkY0DPmxybTFJMEn0jxuPismyef8i1F94iOX6+JoeHAI+/WmqtezEmxBZhqKCgINhVEDMg8QsPVpvmkR0NpNJHgeXkxBvKwsLTLgjouX99/q+xaRvHuo9xqP0QuUm5AT1fpJBrL7xFcvwsPn7uQSBRKbXJn5URQohI9Y8jLRzvHGCVpc78RtZKiE0M+PktykJBWgEfW/oxGbEsRIRzmxwqpb6hlDpvbMk8u99iTFvzU6WUTL41x9XV1VFXVxfsaggfSfzCw1/fOwbAKlVn2t+bWiTxC1Ny7YW3SI6fJy2HPwVeBlqUUseUUk8BdwD/AxQDr48NQhFzVGtrK62trcGuhvCRxC/0neoe5NXKUwCssZifN2yPXyLxC1Ny7YW3SI6fJ61+z2EMJlmEMa/hYuCSSe+fCRxRSr2MMa3NLmC/1nrQz3UVQog5acuuRkZtGoDVDtPY9KctD0aVhBARzG1yqLW+FGCsW3k95ilqiseOEYuRMF489jGbUqoKYwLs8ZfWugUhhBDjbDbNIzuMLuUkBlhmOTHpXUV/alHAzm21WbEoizxjKIQw8fh5Qa11O/Dq2AsApVQssBpzwrgWSANKxl6fsh/Cm/MJIUQkePtoKw3tAwCsdnjekKzl2KITAnbuV469wp3b76Qks4SSjBLOWnQWG3MCO22OECL0zShZ01oPAxVjr3Fjy+tNThjXY6yoIoQQYhL7QBSARp3Fk9lf5PL5J6FpNyzaENBzV7ZV0jHUwTtN7/BO0zuM2EYkORRCBKYlT2tdC9QC/2ffp5RKC8S5RODFxsa6LyRClsQvdLX0DPHSgYk5DY+TTc5Fl0FhprHDOkrsgYNTfHrmHFdGkcmv/UuuvfAWyfGbtW5erXXXbJ1L+NfatbLOajiT+IWuRycNRAEozE7i9KWTZg2Lig5Y/LTWVLZXmvbJsnn+JddeeIvk+Pk6CbYQQogZmDwQxe6605fM2uCQ5r5mOoc6x7cTohPIT8mflXMLIUKbJIfCrfb2dtrb24NdDeEjiV9o2lbTRn1b//h2bJSFq8oWO5ULVPwcu5SLM4qJskT5/TyRTK698BbJ8Qub5FAplaOU+i+l1FGl1KBS6qRS6mml1Pl+PEeUUmqnUkqPvb7nr2OHs5qaGmpqaoJdDeEjiV9oevg9c6vhx1bnkJHk/IxToOJ3sN2cHEqXsv/JtRfeIjl+YZEcKqXWYizX91WgEBgCsoBLgZeVUt/206n+BQjs8EAhRMQ71TPIi/ubTfu+lFsNDTtgZHbWD6hsMz9vWJIhg1GEEIaQTw6VUgnAU0AmsBtYrbVOA+ZhLO2ngLuUUhfO8DyLgR8C9cBJN8WFEMJnf9/R4DQQpXjnHfC/H4G7FsHvPghdxwN2fq21U7eytBwKIexCPjkEbgbygV7gMq31AQCtdbfW+lYmpsu5a4bn+RWQjNE6KUv/CSECwmrT/PW9BtO+z52WiOppMjZso9BSBcnzA1aHloEW2gbbxrfjouJYmrY0YOcTQoSXcEgOrx/7+bDW2tVX6XvGfpYppYp9OYFS6uPAFcAzWuunfDmGEEJ4YuuhUxzvHBjfjo+xcHmWuYuZnDUQFROwOjh2Ka+ct5JoiyxgJYQwhHRyqJRKYeIZwBenKLYdsM+heJ4P50gC/hsYwGg1FEKIgHnw3XrT9mVrc0lq22culLs+oHWQya+FENMJ9a+KJRjPFAIccFVAa21TSh0GTgd8eWjmhxhL+90+trKLcLB69epgV0HMgMQvdDS09/NGVYtp3w1n5MMbFeaCi8rGfw1E/GSk8uyQay+8RXL8Qj05XDjp96ZpytnfWzhNGSdKqfUYrYVVwE+8q5qz/v5+du7c6bR/0aJFLFxoVK2qqoru7m6nMikpKaxcuRKA5uZmGhsbXZ6jrKwMi8VCf38/Bw+6XlarqKiI9PR0APbs2cPIyIhTmezsbPLzjQlva2traWtrcyoTFxfHmjVriI+Pp62tjf3797s835o1a4iLi2NkZIQ9e/a4LJOfn092djYABw8epL+/36lMeno6RUVFADQ2NtLc3OxUxmKxUFZm/I+zu7ubqqoql+crLi4mOTkZgF27dqG1diqTm5tLbm4uAEeOHKGry3kRn6SkJEpKjFaVkydP0tDQ4FQGYP369URFRTE4ODjlf6fCwkIyMozVL/bu3cvw8LBTmaysLAoKCgCoq6ujtbXVqUxsbOz4zP3t7e1TTrWwevVq4uPjiYmJYffu3S7L5OXlsWDBAgAqKyvp6+tzKpOWlsby5csBaGpqoqnJ+VJUSrFhg9HI39vby6FDh1yeb8WKFaSmpgJQUVGBzWZzKpOTk8PixcZ8f9XV1XR2djqVSUxMpLTUSGhaWlqor693KgOwbt06YmJiGBoaYt++fS7LLF26lMxMY7m6ffv2MTQ05FQmMzOTpUuNZ/Lq6+tpaWlxKhMTE8O6desA6OzspLq62qnMg/t6mPxPsXBeNCPNRxipf4/JncgtsUvIHvu9vr6enp4ep2OlpqayYsUKAE6cOMHx464HsJSXlwPQ19dHZaXRnbznhPk6zYvNG/999+7dWK1Wp+MsWLCAvDyjXE1Njcv53xISEli1ahUAra2t1NXVuazT2rVriY2NZXh4mL1797osU1BQQFZWFgAHDhxgYGDAqUxGRgaFhYUANDQ0cPKk81jCqKgo1q83WmK7uro4cuSIy/OVlJSQlJQE4PI+Dt7fyzs7O0PqXg7Q1tZGba3rdhC5l4f2vdxqtQb8Xm4X0t3KQNKk353vDBPs/zqTPT2wUsoC/B6IAr6itXaOrmfH+cLY3Ig7Ozo6fDlEyLNarS7/Jy7Cg9VqdXlDFbNrxKp5rdZ8G/toYSKxAyeJGZlIMqxR8VjTJwaH2Gw2v8ava7SLjtGJe1W0imZpqgxGCQR/x07MLq11xMZPhfIfrpS6HnhwbDNGaz06RbmHgOuAl7TWH/Xw2P8C/BL4u9b6Gof36jBGSH9fa/09T+tbXl6up/rGGc7sf5O9BUKEF4lfaHjy/eN87ZH3x7dT4qN597bzSTzyNGz59ETB/LPgpufGN/0dv7eOv8WXXvnS+HZpZil/u/Rvfjm2MJNrL7xFQvyUUru01k5/YKi3HPZO+j1hmnKJLspPSSmVC/znWPl/9a1qQgjhuQe3m7u+N5ctJjE2GpocuolmezCKTH4thHAQ6snh5A7x3GnK2d874eFx7wJSgbuBLqVU8uQXE4NgYiftE0IInxxq7mZHnfmxkxvOWGL8ctxhMEqAk0PHaWxkMIoQwlGoJ4eHAHu/9ypXBcaeHVw5tun6qV5n+WM/fwj0uHiN3bX5zqR9Qgjhk4e2m9dRPqMwg6L5KWCzgcPgkMkjlQOhsl2SQyHE9EI6OdRa9wD2h/gumKLYJiBt7PdXA14pIYTwQt/QKE/sNo8kvuGMse+n7UdhaNKI1/h0mBe4wSGdg50c752oS7SKZvm85QE7nxAiPIV0cjjm4bGf1yulXE1Vc+vYz11a68OeHFBrfa7WWk31wlhfGYwBKfZ9Qgjhtcd3H6d3aGIsXVZyHBeW5hgbrrqUVeBuN46thsvSlxEXFRew8wkhwlOoz3MIxnQzX8foCn5GKXWj1vrg2OoptwNXjZW7zfGDSil7l7RXo46FmX1uMxGeJH7Bo7Xmz2+b55T71MY8YqPHvpc3TT35tZ0/4+eYHMrKKIEl1154i+T4hXxyqLUeUEpdjtFlXAYcUEp1Y8xpaMF4JvE2rfVLQazmnGafWFOEJ4lf8LxV3crRlonJaKMsaqJLGeCcf4PlFxpJ4vHdxjQ2DvwZP8eRyvK8YWDJtRfeIjl+IZ8cAmit9yilVmMMELkUWAS0Ae8BP9day7OGQoiQc9/bdabti1bnkJMWP7EjMQOKzjdes8BxpLJMYyOEcCUskkMArXUz8LWxl6ef8enhHa11gS+fm6vsS27Zlx4S4UXiFxy1rX28duiUad9NZxV4fRx/xa9nuIdjPROjpi3KwsqMldN8QsyUXHvhLZLjFzbJoQgeV2s0ivAh8QuOB7bVmbbXLk6jbMk8r4/jr/glRiey5bItVLZVcqDtAN3D3SRET7e2gJgpufbCWyTHT5JDIYTws57BEbbsbDTt+/QHClABHInsTpQliuKMYoozirly+ZVBq4cQIvSFw1Q2QggRVh7b1eg0fc0la13NxCWEEKFHkkMhhPAjm01z/zbzOsrXb1pCXHTUxI6hHnjs87Djf6B5P9iss1xLIYSYmnQrCyGEH71R1UJt68SzSjFRius3LTEXatwB+/5uvAAWbYDPvzaLtRRCiKlJcijcSktLc19IhCyJ3+y675060/YlaxYyPzXeXOjYu+btBS6XjgckfuFMYhfeIjl+khwKt5Yvl7VXw5nEb/ZUn+rlzaoW076bznKxVnLDdvN23hlTHtMf8Xuz8U0OtB1gVeYqSjJKyE7MnvExhXty7YW3SI6fJIdCCOEn9zu0Gq5fks66vHRzIesoNO4071sydXLoDy/WvchTR58a3/7O6d/hupLrAnpOIUT4kgEpwq2mpiaampqCXQ3hI4nf7OjsH+bRXc7T1zg5dQCGeye2E7Mgo3DK4/ojfo7L5hWlF83oeMIzcu2Ft0iOnySHwq1IvkDmAonf7PjLtnoGRiZGHc9PiePiNS6mrznm0KW85AyYZv7DmcZvYHSAmq4a077izGKfjyc8J9deeIvk+Em3shBCzNDgiJU/O3Qpf+aDS4mJcvH921VyGEBaa+444w4Oth2ksr2SgdEBUmNTA3pOIUR4k+RQCCFm6NFdjbT1DY9vJ8dFc53j9DV2DQ4jlacZjOIPiTGJbF6xmc1sBoxkUQghpiPdykIIMQNWm+aP/zB3216/aQmp8THOhTsboPv4xHZ0PCxcF+AamgVzCT8hRHiQ5FAIIWbgxQPN1Lf1j2/HRCnX09eAc6thbhlExwawdkII4T3pVhZuSUtDeJP4BY7Wmt+9cdS078r1i8hJi3f9AafnDTe5PYfEL3xJ7MJbJMdPkkPh1oYNG4JdBTEDEr/A2VbTxt7GLtO+L5w99bQ03kx+bSfxC18Su/AWyfGT5FAIIXz0+zfMzxp+pGQBRfNTXBce7IaTB8z78k4PUM0MlW2VtA22UZJRQmZCZkDPJYSYOyQ5FG719hoT9iYnJwe5JsIXEr/AqDzRzRsOS+V98ZxpWg27j0N6PnTUGtvZxZCY4fY8M4nflqotbKnaAsD8xPncWn4rFy29yOvjCN/ItRfeIjl+khwKtw4dOgRAeXl5kGsifCHxC4w/vGluNdyQP4/ygmmSvfkl8LX3oeekMTBFW6cuO8lM4lfZVjn++6n+UyTFJHl9DOE7ufbCWyTHT5JDIYTwUmNHP0/tMa+c8MVzlnn24ZQFUPrxANTKbMQ2QlVHlWlfaWZpwM8rhAh/MpWNEEJ46X/+UYvVNjGZ9LLsJM4vnh/EGjmr6axh2DYxMff8hPlkJWQFsUZCiHAhyaEQQnihuWuQh987Ztp389nLsFhCa9qLg20HTdslmSVBqokQItxIciiEEF747evVDI/axrcXpSdw+frcINbINcfkULqUhRCekuRQCCE8dKJrgL++12Da9/8+XERcdNT0Hxwdnv79AKhsrzRtl2RIy6EQwjMyIEW4tWLFimBXQcyAxM9/fvv6UYat5lbDT2xYPP2HtIZflUFCOiw5E/I2QcllEB3n0Tl9id+obZTD7YdN+6RbefbJtRfeIjl+khwKt1JTU4NdBTEDEj//aOoc4BGHVsOvnFdEbLSbDpiuholX8z6oeABKPB+t7Ev86rrqGLQOjm9nxGewIHGB18cRMyPXXniL5PhJt7IQQnjgN69Xm1oNF89LYHOZm1ZDgPpt5u1FGyA61s+1M3PqUs4sieh1YoUQ3pHkULhVUVFBRUVFsKshfCTxm7njnQP8bYdDq+GHPWg1BDj6qnl7yZlenduX+DkNRsmQwSjBINdeeIvk+Em3snDLZrO5LyRClsRv5n6ztZoR68S8hnkZCWx296whgM0GR18z7ys636tz+xI/GakcGuTaC2+RHD9pORRCiGk0dvTz953mVsN/+fByYqI8uH2e3Ad9k9Zfjk2BxRv9XEMzm7ZxqP2QaZ8MRhFCeEOSQyGEmMavtx41tRouyUjkyrJFnn242qFLufAciIrxY+2c1XfX0z/aP76dFpdGblLozcMohAhdkhwKIcQUjrX1s2Wn8whlj1oNwTk59LJL2ReVbc7zG8pgFCGENyQ5FEKIKdz94iFGJ62hnJ+ZyFXrPWw1HOqBhu3mfcsCnxzK84ZCiJmSASnCrZycnGBXQcyAxM83u+o7eHbvCdO+r52/nGhPWw1r/wG20YntzCKYl+91PbyNn6tpbERwyLUX3iI5fpIcCrcWL/ZgVKYIWRI/72mtufNZcwvc6kWpXHGah62GANWvmLd9bDX0Jn5aa6duZZnGJnjk2gtvkRw/6VYWQggHz+9vpuJYp2nfv19cisXixbN7jvMbFn3EDzWbXmNPIz0jPePbKTEp5KXkBfy8Qoi5RZJD4VZ1dTXV1dXBrobwkcTPO0OjVn78vHkqmI+ULODMZZmeH6TtKHTUTWxHxULBWT7Vx5v4HWw3t3YWZxbLYJQgkmsvvEVy/KRbWbjV2dnpvpAIWRI/7/xlWz3H2iemgomyKL59UbF3B3EcpbzkTIhN8qk+3sRPupRDi1x74S2S4xc2LYdKqRyl1H8ppY4qpQaVUieVUk8rpXx6kEcpla2UulkptWXSMfuUUpVKqf9WShX5+28QQoS2zv5hfvnqEdO+6zctoWh+sncHKr4ELvkZrLwEYpNnpUsZnEcqy2AUIYQvwqLlUCm1FngNsPfrdANZwKXAJUqp27TWP/bysE2Y//5eIBYoHnt9Vin1Ga31X2dUeSFE2Pjlq9V0D06MME6Ji+Zr5y/3/kBpi2DjZ43X6DDYRvxYS9e01jJSWQjhFyHfcqiUSgCewkgMdwOrtdZpwDzgp4AC7lJKXejloaOBN4F/BhZqrVOAROCDwPtAPPDAWGIqhJjj6lr7+Mv2OtO+L3+4iMzkuJkdODrW5y5lbzT3NdM5NNENlhidSEFqQcDPK4SYe0I+OQRuBvIxWvYu01ofANBad2utbwX+b6zcXV4e9xyt9Tla6we01s1jx7Rqrd8GLgROYSSQ3/DHHyGECG13PV9pWiZvUXoCN51VELwKeal9qJ2i9CIsyritF2cUj/8uhBDeCIdu5evHfj6stT7u4v17gCuAMqVUsdb6kIsyTrTWb07zXotS6jng08AGL+s75yQmJga7CmIGJH7uvXLwJC8eOGna962PrSQ+JipINZrgafxWZa7iicufYGB0gKqOKkYnT8AtgkKuvfAWyfEL6eRQKZXCRHL24hTFtgNdQBpwHuBRcuiBtrGfwf+/Q5CVlsqIx3Am8Zte39Ao//HUAdO+dXnpXLY2N0g1MvM2fgnRCazLXheg2ghvyLUX3iI5fqHe51CC8UwhwAFXBbTWNuDw2KY/I3nO2M/9fjymECLE/OKVKo53DoxvR1kUP7pytXcTXtsdeQVeuxOObQertNwJIcJTSLccAgsn/d40TTn7ewunKeMxpdTlQPnY5n2efq6/v5+dO3c67V+0aBELFxpVq6qqoru726lMSkoKK1euBKC5uZnGxkaX5ygrK8NisdDf38/BgwddlikqKiI9PR2APXv2MDLiPFIyOzub/Hxjndfa2lra2tqcysTFxbFmzRpaWlro7u6mo6PD5fnWrFlDXFwcIyMj7Nmzx2WZ/Px8srOzATh48CD9/f1OZdLT0ykqMmYQamxspLm52amMxWKhrKwMgO7ubqqqqlyer7i4mORkY/qRXbt2obV2KpObm0turtE6dOTIEbq6upzKJCUlUVJijPg8efIkDQ0NLs+3fv16oqKiGBwcZP9+198nCgsLycjIAGDv3r0MDw87lcnKyqKgoACAuro6WltbncrExsaydq0xTqq9vZ2amhqX51u9ejXx8fE0NzdTXV1NfHy8U5m8vDwWLFgAQGVlJX19fU5l0tLSWL7cGLHb1NREU5PzpaiUYsMGo5G/t7eXQ4dcN+CvWLGC1NRUACoqKrDZbE5lcnJyxpetqq6udjnXWGJi4vi3+paWFurr612eb926dcTExDA0NMS+ffuc3q/pGOFPb7Wb9l28LIGBpiPsnPRnZmZmsnTpUgDq6+tpaWlxOlZMTAzrqh+BfVvgzZ8wGp3EsTVfp33ReaZypaWlJCYmYrPZqKiocFnvxYsXj6/rWlFRQX9/v1P8UlNTWbFiBQAnTpzg+HFXT91AeblxK+vr66OystJlmeXLl5OWlgbA7t27sVqtTmUWLFhAXp6x2kpNTQ3t7e1OZRISEli1ahUAra2t1NXVuTzf2rVriY2NZXh4mL1797osU1BQQFZWFgAHDhxgYGDAqUxGRgaFhYUANDQ0cPLkSacyUVFRrF+/HoCuri6OHDniVAagpKSEpCRj4JCr+zh4fy8/fPgwLS0tLq+9YNzLAdra2qitrXV5PrmXm+/l9n8HjvEL1r3carWye/dul2X8dS+3C/WWw8lD/JzvDBPs/zq9nIzMmVJqEfCHsc2ntNYvuCn/BaXUTqXUzqmSp3BXX1/v8uIW4aGhocHlDTzSWbXmDxXdTBqDQnZiFNes8vE2YhuFo6+Nb0aP9jGUsGCGtTQm4pX4hadTp05J7MJYf39/xMZPucrCQ4VS6nrgwbHNGK21y34apdRDwHXAS1rrj87gfMnAVoxWw3qgXGvtnO5Poby8XE/1jTOc2f8mewuECC8SP9fuf6fO6VnD//3ncs4v8TGhq34FHtw8sR2fBt+sgaiZddB4Ej+rzUqUJeIfjw45cu2Ft0iIn1Jql9ba6Q8M9W7l3km/JwA9U5SzDynqneJ9t5RS8cCTGIlhC/BRbxJDIUT4aO4a5J4XD5v2Xbwmx/fEEGDvFvN2yWUzTgw99Y3Xv0FtVy0lGSWUZJZw8dKLWZA081ZLIURkCvXkcHKHeC4TA08c2YcVnvDlJEqpWOBRjNHOncCFWuupziWECHPff/oAvUMTHRHJcdH8x2WrfD/gcD8cesa8b83Vvh/PSwfaDnCq/xR13XU8X/c8Z+aeKcmhEMJnof7M4SHA3u/t8s6tlLIAK8c2XT/VOw2lVDTwV+ASjJbHi7XW73tfVSFEOHhhfzPP7zc/Q/utj61kQarzoAGPHX4Ohid1XKQshIIP+n48L7QOtHKq/9T4dowlhmXpy2bl3EKIuSmkk0OtdQ9gf4jvgimKbcKY4xDgVW+OP5ZY3g9chTHg5YHNbCAAACAASURBVONa620+VFUIEQZOdg/yncfNo2PX5aVz/ab8mR14n0OX8urNMEvPANZ21ZpWQlkxbwUxlphZObcQYm4K9W5lgIeBjcD1SqkfaK0du45vHfu5y5uuYKWUwhiVfB0wDFyltd7qjwrPNevWyYS64UziZ7DZNLdu2UNH/8R0INFjcxpG+TKnoV1fmzEYZbK1/utSdhe/jTkb2XbtNqo6qjjQdoDkmBlP2iD8RK698BbJ8QuH5PD3wNcx1ld+Ril1o9b64NjqKbdjtPoB3Ob4QaWUvUv6+1rr7zm8/TPgs8AocLW7KWsiWUyMtEKEM4mf4U9v1/KPI+YxZv964QpW5aZN8QkPHXzCmMbGLmsl5Kyd2TEn8SR+iTGJnDb/NE6bf5rfzitmTq698BbJ8Qv55FBrPTA2KfWrQBlwQCnVjTGnoQXjmcTbtNYveXpMpdQSjISTsc//Xin1+2nqkONr/eeCoaEhwJhIVYQfiR8cbOrmJy+YOxY2Lc3g5rP98Gye4yjlNZ8ENYOWSAcSv/AlsQtvkRy/kE8OAbTWe5RSq4HvAJcCizDWPn4P+LnW2qtnDTE/axkDyLC+adhXlpjLcz3NZZEev8ERK197ZDfD1onVWFLjo/n5NafNrDsZoKMeGrab9635xMyO6SDS4xfOJHbhLZLjFxbJIYDWuhn42tjL08+4vPNrreuYWLNZCDGH3fVcJUdOmadA/dFVa8hNT5j5wR0Hoiw+HTKWzvy4QggRRCE9WlkIIWZi66FT3L/NvO7y5rLFXLo2d4pPeEFr5+TQjwNRhBAiWMKm5VAIIbxxvHOAW7fsMe1bkpHI9z5e6p8TaA3nfhv2/h2OvAzaBquu9M+xPXTvjntpGWihNLOU0sxSVmetJiHaDy2iQoiIJsmhEGLO6R8e5fP376Stb3h8X5RF8fNrTiMl3k8jEC0WIxlcdSX0t0PjDkjK8s+xPfRaw2s09DTwXO1zADx48YOsy47c6TeEEP4h3cpCiDlFa803t+zl4Ilu0/6vnb+cDfnzAnPSxAxY8dHAHHsK3cPdNPQ0jG9blIUV81bMah2EEHOTtBwKt5YulQfsw1mkxe+/X6vm2X3mufIvLF3AVz5cFKQazcxU8Tvcbp6apzCtULqUQ0ykXXtzTSTHT5JD4VZmZmawqyBmIJLi99KBZn76cpVp38oFKfzsmtOwzHTamiCZKn4H28xLyZdm+ulZSuE3kXTtzUWRHD/pVhZCzAmHm3v4xt/eN+1LT4zhj/9UTnKcH78HW0fdl5kFjslhSUZJkGoihJhrJDkUbu3bt298MlARfiIhfh19w3zugR30DVvH90VZFL+5vowlmYn+Pdnz34K/XAV1bxkjlgNsqvg5JYeZkhyGmki49uaySI6fdCsLt+xLCInwNNfj1zc0ymfu30FD+4Bp/39cVsoHlvl59HDPSdj9IFiH4OirkLcJPnEfpC3y73kmcRW/vpE+6rsn5m9UKIozigNWB+GbuX7tzXWRHD9pORRChK3BESufu38nu491mvZfe/oSbjwj3/8n3P5rIzG06z4ByfP9fx43DrcfRjPRapmfmk9STNKs10MIMTdJciiECEvDoza+/FAF22raTPs3Lc3g+x9fhVJ+HoAy0AE7/te876yvQpSf5k30gnQpCyECSZJDIUTYsdo03/jb+7x26JRp/9rFafzxn8uJjQ7Are29/4HhSWs0J2XD+hv8fx4PVLZXmrZXZa4KSj2EEHOTJIdCiLBis2n+7bG9TnMZrlyQwv03nU6qv1ZAmWy4D7b/xrzvjC9DTHDmFZSRykKIQJIBKcKtSJ7raS6YS/HTWvP9pw/w6K5G0/6CzET+8rnTmZcUG5gTVzwAA+0T23GpsPGzgTmXA8f4DYwOUNNVY9pXnCmDUULRXLr2IlEkx0+SQ+FWJM8SPxfMlfiNWG185/F9TonhovQEHvr8GcxPiQ/MiUeH4Z1fmfed/nmITwvM+Rw4xq+qowqbto1v56XkkRqbOit1Ed6ZK9depIrk+ElyKIQIef3Do3z5oQpeP9xi2p+VHMeDn9vEovQAdu/u/Rt0H5/Yjo6HTV8K3PnckC5lIUSgSXIo3KqvN+ZTy88PwNQgIuDCPX5tvUN85v6d7GkwT1eTkRTLQ5/bxNKsAE7hYrPC278w7yv7J0jODtw5HTjGr7LNPBhFls0LXeF+7UW6SI6fDEgRbrW0tNDS0uK+oAhJ4Ry/Y239fOJ325wSw7yMBB770gdYmZMS2Aq8+3toq57YtkTDB/4lsOd04Bg/x5HKMo1N6Arna09Edvyk5VAIEZL2H+/i0/ftoLXXvErBqtxU7rtpY+CeMbRrr4FXf2Det/YaSF8S2PNOY8g6RHVHtWlfaYa0HAoh/EuSQyFESNFa87cdDdzx1AGGR22m984qyuR3N2wgJRDT1Th6/tswOmlJvvg0OO/2wJ93GtUd1Yzq0fHt3KRc0uPTg1gjIcRcJMmhECJk9A+P8t0n9vP47uNO7318XS73fnJdYCa4duWiu43ksPZNY/ujd0Hqwtk59xQOtsvKKEKIwJPkUAgREqpP9fDlhyqoOtnr9N7nPriU2y4uwWLx85J408lYCv/0FFTcD0e3wmnXzd65p+A4UlkGowghAkGSQ+FWTMzsrx0r/Ccc4vfk+8f5zuP76B+2mvYnxETxo6tWc+X6xcGpmFKw4dPGK0gmx89xpLJMYxPawuHaE1OL5PhJcijcWrduXbCrIGYglOPX0jPE954+wLN7Tzi9VzQ/md9eX8byBQEekRzi7PEbsY5Q1VFlek+6lUNbKF97wr1Ijp8kh0KIWae1ZsuuRu58tpKugRGn9684LZc7r1xDUpzcouyOdh1lxDbx32p+4nyyErKCWCMhxFwld17hVmenMcdcerqMigxHoRa/+rY+bntiH29Xtzm9Fxtt4XuXreLa0/NQahafLxwdgmf/FdZdBwVnzd55PWCPn9Pk1zKFTcgLtWtPeCeS4yfJoXCrutqYV628vDzINRG+CJX4DQxb+dPbtfzqtSMMjtic3l+9KJWfbF5Hae4srxNsHYXHPguVT8PuB2Hj5+Ej34O45NmtxxTs8VtXtI6vl32dyvZKDrYdlMEoYSBUrj3hm0iOnySHQoiAGrXa2LKrkV+8UsXJ7iGn9+NjLNxywUpuOquA6KhZXrRJa3jm60ZiaLfjjzDQDp/40+zWxY3C9EIK0wvHt7XWQayNEGIuk+RQCBEQWmte2N/MPS8dpqalz2WZDxZl8aMr17AkM3GWa4eRGL58O+z+i3l/1gq46J7Zr4+XZrXbXQgRUSQ5FEL4lc2mee3QKf57azXvO6yJbJeWEMPtl5ayuWxR8JKct34O7/zKoWJ5cOMTkJQZnDoJIUQIkORQCOEXA8NWHq1o5E9v1VLb6rqlMC7awqc/UMCXzl1GemLsLNdwkp1/gle/b96XmAU3/h+kBWlORSGECBGSHAohZuRU9yB/2V7Pg9vr6eh3npYGwKLgkxvy+PoFy1mYljDLNZzEZoXXfwxvOnQbx6XCjY9DVlFw6iWEECFEkkPhVmmpjIoMZ4GI39ColVcrT/HYrkZer2rBapt6cMRHVy3gmx9dSdH8IE9m3X0CHvsc1L9l3h8dD9c+AgtDc8LbzIJM7q64m676Ls7OO5sYS+Su2hBu5N4Z3iI5fpIcCrcSE4MwWED4jb/ip7VmT2MXj+5q4Ok9J1xOXm0XbVF8fF0un/3QUlblpvnl/DNS/Qo8/gXod5hb0RINVz8QcnMbTvbi8Rd5+8TbvH3ibTLiM/jSui/xqeJPBbtawgNy7wxvkRw/SQ6FWzabMSedxTLL04wIv5hJ/EasNt6rbeflgyd5+eBJjncOTFs+NT6a68/I55/PLCAnLd6n+vrd9t/BC//mvD95AWz+H1h69uzXyUM2beOJI0+Mb7cPtgexNsJbcu8Mb5EcP0kOhVsVFRVAZE4EOhd4G7/W3iHeOdrGq5Un2XroFN2Do24/s3JBCteenscny/NCb8m7grMgKg6sk+ZYLDwXrvojJM8PVq088v6p92nqaxrfjouK4+LCi4NYI+ENuXeGt0iOX4jdxYUQs62zf5jtNe1sO9rKtpo2qk72evS5eYkxXH7aIj6xYTGrclNDd969nDVw0Y/hmW+AssC534EP3QKWqGDXzK3189fzH4X/wZsdb7Kjdwfn5p1LauwsryAjhIg4khwKEUGGR20cbu7h/cZO9jZ0sqexkyOnevF0sY24aAvnrMjmqrLFnFc8n9joEOlusVmh9g0o+BBEuRiwseEmaDkMJZdBwQdnv34+UkpRkFBAQUIBd592N73DniXuQggxE2GTHCqlcoDvAJcCi4Au4D3gF1rrV2dw3FTgW8BmIB8YAN4Hfqu1fnSm9RYiWFp7h6hq7uHlI/00dI/S+u7bHDzRzfCo87rG08lIiuW84vlcULqADy3PIjE2RG4bWsPxCtj/KOx/HHqb4bL/gg2fdi6rFFx096xX0Z8SohNIiA7iNEBCiIgRInf56Sml1gKvAfZlC7qBLIxE8RKl1G1a6x/7cNzFwJvA0rFdvUAqcB5wnlLqd1rrL820/kIEysCwlbq2Pupa+6hr6x/72Uf1qV7a+oYdS3t0TIuC1YvSOHNZJh8pWUDZknlEWUKky3h0GE7sgaoXYP9j0FFrfv+Ne2DdtRAdF5z6CSHEHBDyyaFSKgF4CiMx3A3cqLU+MNbidwdwC3CXUqpCa/2SF8dVwKMYiWEdcL3W+h2lVDzwL8CPgS+OHfePfv2jhPBA39Aop3qGaOkZ4lTPIM1dgxzvHKCpc4CmzkGaOgdcJIDeUwpKclI5c1kmZxZmsnFpBmkJITKX3mAXNO6AY9uNV+NOGJ0mye1uhIoH4PTPz14dhRBijgn55BC4GaO7txe4TGt9HEBr3Q3cqpRaBlwB3AV4nBwClwObABtwpdb6/bHjDgL3KKVyga8DP1BK3a+1nvn/hcPU4sWynNhMaK3pHRqla2CE7oFRugdH6BowXp39w7T1DdPRN0x73wgd/cO09Q5xqmeI/mFrQOqTkxrPuv/f3p1HyVWedx7/PlW9qVvdElq7tTZCQjtCMgQYwpjdNosZFieOGZxx7GMHTIIXznEMDniJg+NkbDCMbXwmnjM4ceLAsTGGiY3BGBLMYgkhhCRLgBYL7Rtq9VrbM3/cW9XVXbda3a3urmr173NO6da99633Pq23q/qp9973vbMnsGL2RM6cNZFlsybQUFMmyWDWr78WJHktu/r/mso6WHQlzDp7+OIaIa2JVsZXjQf0/hvN1Haj21huv9GQHN4YLn+YTQx7+XuC5HCVmS1y998NsN6nsolhL/8A3AY0Epxm/vkAYj6pNDY2ljqEIefupDJOMp0hmXIS6UzwSGXoSqXDZfd6RyJDZzJNZypNZzJ43pFI055I05FM0Z59nkhzrCtFW1eK1s5wmUj1e8DHUKqqiLFg2ngWNtazcHo9pzfWs6SpgekNwzT/oDukE5Bog0RrsOw8Cu2HoeNI+DgcTER9bC+07IabfgJ1UwrrSnX1LzGMV8GCy2H5DbDgPVA1+ietbUu2cdkjl7Fi2gquX3A9F866kMqoQTZS9k7Gz86xZCy3X1knh2ZWD7wrXP1FkWIvEgxOmUCQxPU3Obywr3rdfZeZbQCW0c/ksO3Ifl585L7jHtjpmSkcbljEkYbF9M4f4ukOmvf8nKjMIn9LVOLRVjOdXZPOKyjv7szb++9UZLryXtcdkYf/eO8XAslYFZunvhf34BWeLefOnHdeYnzXPty9Rx3Z/ZnstrC+DB6UdVg38VK6qCbjTsYJl05T+xZmdb6R25Y9Zn4ZzwR1pTPBz5bd/tvYCvYwhVQ6SACzieDU9AHO8XWkBpGsbcw0s8GbC7aPo5Or4y9QDUyKeJ3Fog9mOLt9Cs9mom/bdn3sOcZZV65sdml5r48bTKytYFJtFZPrKplUW0nDhAlUnfMx5k6uK7xWcN2P4NCb4BnwdLDMpIOHpyGT6l7PpIJkL5OEdBJu+D5U1RUG+sw98NJ3gmQwc/w5EXto2RWdHE45vfhr6ptgzrkw/zJYfBXUlMEdWE5QMpOkPdlOW7KNX2z/Ba3JVp7f9TzP73qehacs5OGrHy7fqYJE5KRT1skhsBhyfws3RBVw94yZbQb+AOjXjRDNbBrBgJai9YY2EiSH/aq3rmMX575+V3+K9nBv6jruTd1QsH0aR3i55u4B1wfwVHolX05G/9F8qfrrTLd3BlznPp/IJ16dF7nvf1d+n0vjawdcJ8DfvTmb/ZxSsP1TFT/nv1f8eFB1fjTxWXZk3lWw/Q9iW7mn6nuDqvPe1HVsSDUXbK+ng69XDu6y1KfSK4smh5+r/Fem9aedEuEjW7S+Ca76VG735s2bAVi4cCGsfxje/OWgYiXZGZ0cphNBD+FgtOyJvqfx1DA5tHiQKM45F+acFywnzgkulCwDHakO9rTtySV22Ud7sp22VN7z7L5Uz/X2ZDutyVaSmeK3Ilw6bilbtmwJ2k9GlR7vPRl1xnL7lXty2JT3fHfRUt37mvooMxL1igzI9Lo4fzJzPA3VRn11jNlTT2HJaXOYVl9D3f0V/R1g3EMikeC11atZtmwZNTU1tLS0cOTIEY4dO8b8lhYmDjbYdILdu3eze3fPt0zT/kPMHGSV219/gYPHevYcNjY2MqtxGdzyEm8eyfDOsfZgRxJ46wBwgNraWpYsCb6zHThwgB07dkTWv2LFCiorK+ns7GTNa2vozHTSme6kM9NJylOcVnsap556KpMnBxMhrF+/nq6uLp469BRvdryZK/uRBR/hyjOvBGDHjh0cOHAAgFePvcp9vz/+2YITsdSXsmPHDo4dO9Zje0NDA6efHiTRe/bsYdeu6NPw2bs7tLW1sWnTpsgyCxYsYMKE4Mvk2rVrSacLr3edPn06s2fPBmDr1q0cPlx4K79x48axdOlSAA4ePMj27dsjj3fGGWdQVVUV/K6+9lpkmebmZqZMCX43NmzYQEdH4Zth0qRJzJsXfGHduXMn+/btKygTj8dZuXIlAEePHuWNN96IPN7ixYupqwu+/KxevTqyzMyZM2lqCv4cbNmyhZaWloIy9fX1uWRi//79dHR0FLQdwKpVq4jFYrS3t7Nx48bI482fP5+JE4N37Lp160gmC79ETJ06lblz5wKwbds2Dh06VFCmurqa5cuXA3Do0CG2bdtWUAZg+fLlVFdXk0wmWbduXWSZuXPnMnXqVAA2btxIe3t7QZmJEycyf/58AN5++2327t1bUCYWi7Fq1SoAWlpa2LJlS+TxFi1axPjxwfW3a9aswSNOlc2YMYMZM2YA8MYbb3D0aOGX1bq6OhYvXgzAvn372LlzZ+TxVq5cSTwep7OzM/e50rv95s2bx6RJwXmi1157jUSicEjClClTaG5uBmD79u0cPHiwoExVVRVnnHEGAIcPH2br1q2RMWU/y9PpNGvXRnfCzJ49m+nTpwOwadMm2traCspMmDCBBQsWAER+lucr9+Qwv5uirz+T2d/O8SNdr5l9HPg4wLuaymRCYBkW8yeP45LacVTFoSpm1FQY1RXG5EwC3hxcnbMbKrh+cfev45QpdTRPrwcgxeB6x4zi8xi6ncBdQTJJoj4yPFbVvRKrwKvGk6CKTEUN6Yo6UlUNpCvrSVU1MKHxVGomNsL4aWzec4z22iJpZUU1ycmn0XJoPQcTB+nIdASJXZjcZdoyrN20lrZkGweOHmD/kf3d+/Me6W1p2pPttKfaSXvPhKcuXscDix6IPPyW9i38tuW3ufWDXYUf7AA1seG9f/SFsy9kClNIpQZ4ul5E5ARYVBZeLszsRuCfwtVKd4/8hDSzfwY+BDzp7u/pR73nA/8Zrs5397eKlPsqcAewxd2P26+8ZM4kf+izxz18gU0TLmDThAuCY+Ztr0m1cMXu8I9XjzzBCjfl7zXYO24+L03744LtAO/Z+S1q0sci9uXVaN1rHe1B/hyrn8azp34ay+4zw8LXrtz1r0xt3xLWZfnV9Kjb8urObn9l0e2kqycQN8MMYmbEY0bT3qdp2vNMcLzca6x7GW6LhU9iBoYRM+Poij8jM2058ZhRGY+FS6Pq4AaqVn+PeMywgSZfi64IRsP21vEOPHln/v9mYZlip0GnL4dzPh6975d3Q1dLd325Oizied6yuh4u+nyummwvyFlnnQXrHwmuObR4UD4WD24pF6sIHrnn8WAZr+peznt39GnlrlZIJ8hU1tLuKcyMusrCcsl0kh9s+kHudGoyk+QL534h8kf/q//4K57Y+kT0/8sQqbAKXrnplchr+e56/i5+8uZPcut3n3c3N5xeeOnHhkMb+ODjHzzhWGIWo66ijtrKWuoq66irrGPp5KXccuYtvPV68PE0Fu/vOtr1eO/JqDMW2s/M1rh7wQ9Y7j2H+feKGgcU9s0HskMU+3tvqfxyfQ1vHFC9tdPmcdZt/9LPELr1/Wt3/oDry3pf0T0PDqie/DdI8UlCBn6tZdb8ons+HD4GrugQhTkrYc53BlVnUeMmwjX/a2jrBLjsS0Nf5/LuBMfd6Ux3FlwX156KuH6uvY3W1S9HXkuXLd8Rzj/4wYUf5M5z7yw8tsE313wztxqzGHeec2dkclYTH94eOYCUp0hkElTHCyfM7p3ctiULT9EANFQ1MLdhLrUV3UldLsGr6LWe3R9RtiZeowEnIlI2yj05zD8hPgPYXKTcjHC5Z5D1rh+iekVG3J7WPaw/uD6XqM1tmMsfziy8f3DGM1z702tpTbbmTrVmfGC30uuP9lThNUgAlbFKqmJVJDKJXDwdqQ5qKwu/n0VtO1FVsaoeCVltRS2JdHRyeMWpV7Bk8pJcEtfc0BxZ5+z62Tx+7eNDHquISCmVe3L4O4LZUAxYSkRyaGYxIHvKN/qq3l7c/YCZHSQYsbyU4tPkZEcp96vek1VDQ0OpQxi10pl0rmct1zsXNYq1V49dftns8wcueYAVUwtH9r6892W+8Hz36dkr513ZIznMtl/MYuxp25Pr4RsuxXrZIOiRS3R1X7zdnmqPTATrKuuIW7xoL1xtRW2fPXK9H7WVtVTG+j9X4PKpy1k+dfnAfvBhovff6KW2G93GcvuVdXLo7sfMbDVwNnAZEDWvyTl0n0V8egDVPwN8IKz3G713mtlMgsRxoPWedLIjIseavW17Odx5OHfKdNmUZUyqKZzJ8JV9r/CPr/9j5OnZoUzEWhPRVzcc7xRofvvVVtQOa3I4rmIc8T4GvXx46YdJZpLdyV5FdA/hn5/x59yy4hadamXsvv9OBmq70W0st19ZJ4ehHxIkhzea2Zfdvfcp3tvD5Rp3L3bauVi9HwAuN7MV7t573P5nCHos9xAkklKmEunE8XvgouaYS7VTV1HHfRdHT0Vy1/N38cKeF3Lr377k21ww64KCcke6jvDc288N28+XVaxHrnfPW3sy+rQuBInkoc7uqS56n2rNPa+oK7gurveAid5lx1WMIx7rezT0x5Z/rF8/6/HqERGR4TMaksMHCe5xPBd43MxucveN4d1T/hq4Lix3R+8Xmll2KPaX3P2LvXb/FHiJoOfxJ2b2IXd/0cyqgVvDYwLcPZbvqwzBHGpAbn6vE5V/qjWRTjCnYU5kucfeeowNBzfkErkep2UT3adnUwO9K0eeidXFZ/0r6JFLRSdnUSNzh0Ox5LCxtpFL5lyS64mbN7HnROX57ffdS79LPBYf1KlWKY2hfv/JyFHbjW5juf3KPjl09w4zu4bg1O4qYIOZtRDMPRgjuCbxDnd/coD1upndADwHnAq8YGatQA3d/y/fdffB3friJPL222+T8ASVEysLR7FG9Mi1Jds4t+lc3nvqewvqeqfzHS74UXfvW31VPb/5k99EHvfZnc/y5I4BNeuA9XV9XH975Ooq+k4Oe49Oza5ne+HGV44v3luX12PXUBV9/cu8ifO496J7ix4/OzlyU1MTsxtm9xmrlJ/89pPRRW03uo3l9iv75BDA3deZ2TLg88BVwEzgEPAy8E13H9Q1ge7+tpmdCXyOoAeymWC6nFeB77j7w0MQfklkPEPMCiflTmaSPP7W45FTlvQ1aMJxiL65QqTqeHVkchiVcLl75LVlI9Ejl8wkSaaTVMYLe9Bm1c9i4SkLc4nalHER9wAGmic0862LvtU9WCIv0autrI1sBxERkXI1KpJDAHffC9wWPvr7muNeze7uLcCd4aNk0pl0jx64YvdmvWb+NZFJyhNbn+D+tffTmmylLdnGDQtuiJxrzjDu+s3g5yTsr2I9clXxKipiFblTwWlP05XuoqaicF67/iaHfY1q7WsUa7ZMseTt5hU3c/OKm497/Pqqei6ac1G/YhURESl3oyY5HA3akm08u/PZoqdaiyV8bck2OtOd/TrG2Y1nRyaHiXSCXa3d91YtNtdcRayC6ng1Xemuwf2Q/VTs+AD1lfV0pbtySVqx5PDiORfTVNfU56nWuso6quPVGtUqIiIyRJQcDqHtLdu59Ve3DusxivXI9feODtmyA00OK62S+ur66DtBRPTOzW2YW7SuZ//42X4lc2c3ns3ZjcXvySIiIiJDT8nhKFN0UESv5LCvuezef9r76Ux1RvfI5fXMZfdtem0TFVYxZPeXVC+fiIhI+TJ3P34p6RczOwDsKHUcw2QKcLDUQcigqf1GN7Xf6KW2G91O9vab6+5Te29Ucij9Ymar3X1oug5lxKn9Rje13+ilthvdxmr7aY4NEREREclRcigiIiIiOUoOpb++V+oA5ISo/UY3td/opbYb3cZk++maQxERERHJUc+hiIiIiOQoORQRERGRHCWHMmTMLG5mq83Mw8cXSx2TRDOzqWb2CTN72MzeMrNOM2szs01m9oCZzS91jGOdmTWa2X157bPPzH5mZpeUOjaJZmZzzOxTYTv93sy6zOyYqROgbgAAB9dJREFUma0zs6+ZWVOpY5T+M7PxZrYz72/a/yh1TCNFd0iRofQXwLtKHYT0y256vv9bgSpgUfj4qJn9mbv/SymCG+vM7AzgV8DkcFMLwWS8VwFXmtkd7v61UsUnhcxsNrAdyL8FVAtQB5wRPj5uZte7+zMjH6EMwt8As0odRCmo51CGhJnNAr5CcIeYfSUOR46vAngO+FOgyd3rgVrgD4FXgRrgoTBJkRFkZuOAxwgSw7XAMnefAJwC/E+C5OMeM7u8dFFKhHi4fAL4ADApbLda4ApgG0EbPmpmjaUJUfrLzFYBtwIvlTqWUlByKEPlfmA88JdAZ4ljkeN7t7u/290fcve9AO6edvfngcuB/QQJ5KdLGeQY9QlgLkFv7tXuvgHA3Vvc/Xbg0bDcPSWKT6IdAVa6+1Xu/oi7HwFw94S7/ztBgtgJNBC0sZQpM4sBD4arN5cyllJRcignzMzeD/w34HF3f6zU8cjxuftzfew7APy/cFWXCYy8G8PlD919V8T+vw+Xq8xs0QjFJMfh7kfdfV0f+38HvBiu6n1V3v4COAv4jruvLXUwpaDkUE6ImdUBDwAdBL2GcnI4FC7jfZaSIWVm9XQnDr8oUuxF4Gj4/OJhD0qGkt5XZc7MZhJcIrUP+EKJwykZJYdyor4CzAb+1t23lToYGTLvDpevlzSKsWcx3QMaNkQVcPcMsDlcXTISQcmJM7MK4PxwVe+r8nU/UA/c7u5Hj1f4ZKXkUAbNzFYS9BZuAb5e4nBkiJjZNQSnVAD+TyljGYPypzrZ3Ue57D5NjTJ6fBJoBDLAQyWORSKY2dXAtcCv3f2fSh1PKSk5lEHJu2A3Dtzq7okShyRDIDylkr2X6GPu/vNSxjMG1eU97+ijXHu4HD+MscgQCUf9/224+kB2kJGUj7xLpJIEifyYpuRwDDGzu8wsNcjHV3tV90ngbODf3P2XJfhxxpwhbr+o+scTjISdRjAl0UeH+2eSAnb8IjKahBNfP0owpc0a4HOljUiK+DIwB/imu28sdTClpkmwx5YYg78QOvc6M5tBMDloK/CZIYhL+mdI2i+KmdUAPyU4nXwAeI+7HxzksWTwWvOejwOOFSlXG1FeyoyZTQKeBE4F3gCudHdN9VVmzOxM4DZgJ0GSOOYpORxD3P2LwBeHoKp7CObq+mvgaNjjlC/b+1GV3efu+iN2goaw/XowsyrgEYKRr+8Al7v75r5fJcMk/zrDGXQPPOltRrjcM7zhyGCZ2QSCEefLgN8Dl7q7bhBQnu4j+AJ9J2ARf9OyqsN9GXdvL1LmpGDuXuoYZJQxs1/TPZq1X9xdp8vKUDiC8kfAdQS9UJe7+wuljWrsCqeyOUrwBet6d/9xRJkYcBiYAHzS3b89slHK8YTXrz0J/BdgL/Bf3f2N0kYlxZjZdoKJ5/trh7s3D0805UHXHIqMUWGS8X8JEsMO4P1KDEvL3Y8Bq8PVy4oUO4cgMQR4etiDkgEJb3/4M4LE8BBBj6ESQxlVlBzKgLn7he5uxR4EgxkAvpS3TcqImRnBqOQPAQngOnd/prRRSeiH4fLGcDBDb7eHyzU6/V9ewks0fgxcRPclGhqZXObcvfk4f9OyPhJuay5VrCNFyaHI2PQNgtHIKeCPNGVNWXmQ4AtWPfC4mS2B4JSzmX2doKcX4I4SxScRzCxOkNi/l2Ag0fvc/ZXSRiUyOBqQIjLGmNkc4FPhqgMPmtmDxcq7e+OIBCYAuHtHOBH508AqYIOZtRDMaRgjaLM73P3JEoYphc4Hrg+fVwKPBh30kXa6+9kjEpXIICg5FBl78s8YVALTSxWIRHP3dWa2DPg8cBUwk+D6tZcJ5mHTtYblJ/99VRM+itF0NlLWNFpZRERERHJ0zaGIiIiI5Cg5FBEREZEcJYciIiIikqPkUERERERylByKiIiISI6SQxERERHJUXIoIiIiIjlKDkVEREQkR8mhiIiIiOQoORQRERGRHCWHIiIiIpKj5FBEREREcpQcioiIiEiOkkMRkTJhZn9kZm5mSTM7rUiZh8Iy28xs+kjHKCInPyWHIiLl42HgVaACuLP3TjP7MnATcBh4n7vvG9nwRGQsMHcvdQwiIhIys6uAnwEpYKG7bw23fwT4PtAFXOru/1m6KEXkZKaeQxGRMuLujwMvEvQe3gFgZpcBDwIO3KTEUESGk3oORUTKjJldDDxN0Ht4PfADoAH4rLt/o5SxicjJT8mhiEgZMrNfARflbfqWu99WqnhEZOzQaWURkfL0QN7znwGfLlUgIjK2KDkUESkzZjYZuCdvU8zdM6WKR0TGFiWHIiJlxMxqgJ8CpwNrgQxwpZmdV9LARGTMUHIoIlImzMwIBp+cD2wGLgX+Ldz91VLFJSJjiwakiIiUCTP7BsG1hfuB89x9q5ktBl4n+DJ/ibv/qpQxisjJTz2HIiJlwMz+kiAx7ACuzk5+7e6bUO+hiIwg9RyKiJSYmV0LPBKuXu/uj/bavwRYT/CF/upwomwRkWGhnkMRkRIys3OBfyb4PP5M78QQwN03Etx3GeAr4bWJIiLDQj2HIiIiIpKjnkMRERERyVFyKCIiIiI5Sg5FREREJEfJoYiIiIjkKDkUERERkRwlhyIiIiKSo+RQRERERHKUHIqIiIhIjpJDEREREclRcigiIiIiOUoORURERCTn/wPKq5Tc6tt8SwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# your code here\n", "\n", "# First get the data\n", "f = logistic(x, 2.0, 1.0)\n", "g = stretch_tanh(x, 2.0, 0.5, 0.5)\n", "h = relu(x)\n", "\n", "fig, ax = plt.subplots(1,1, figsize=(10,6)) # Create figure object\n", "\n", "# Make actual plots\n", "# (Notice the label argument!)\n", "ax.plot(x, f, lw=4, ls='-', label=r'$L(x;1)$')\n", "ax.plot(x, g, lw=4, ls='--', label=r'$\\tanh(2x)$')\n", "ax.plot(x, h, lw=4, ls='-.', label=r'$relu(x; 0.01)$')\n", "\n", "# Make the tick labels readable\n", "ax.tick_params(labelsize=24)\n", "\n", "# Set axes limits to make the scale nice\n", "ax.set_xlim(x.min(), x.max())\n", "ax.set_ylim(h.min(), 1.1)\n", "\n", "# Make readable labels\n", "ax.set_xlabel(r'$x$', fontsize=24)\n", "ax.set_ylabel(r'$h(x)$', fontsize=24)\n", "ax.set_title('Activation Functions', fontsize=24)\n", "\n", "# Set up grid\n", "ax.grid(True, lw=1.75, ls='--', alpha=0.75)\n", "\n", "# Put legend on figure\n", "ax.legend(loc='best', fontsize=24);\n", "\n", "fig.savefig('../images/nice_plots.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise
\n", "\n", "These figures look nice in the plot and it makes sense for comparison. Now let's put the 3 different figures in separate plots.\n", "\n", "* Make a separate plot for each figure and line them up on the same row." ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "# your code here\n" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# %load solutions/three_subplots.py\n", "# First get the data\n", "f = logistic(x, 2.0, 1.0)\n", "g = stretch_tanh(x, 2.0, 0.5, 0.5)\n", "h = relu(x)\n", "\n", "fig, ax = plt.subplots(1,3, figsize=(20,6)) # Create figure object\n", "\n", "# Make actual plots\n", "ax[0].plot(x, f, lw=4, ls='-', label=r'$L(x;1)$')\n", "ax[1].plot(x, g, lw=4, ls='--', label=r'$\\tanh(2x)$')\n", "ax[2].plot(x, h, lw=4, ls='-.', label=r'$relu(x; 0.01)$')\n", "\n", "# Make the tick labels readable\n", "ax[0].tick_params(labelsize=24)\n", "ax[1].tick_params(labelsize=24)\n", "ax[2].tick_params(labelsize=24)\n", "\n", "# Set axes limits to make the scale nice\n", "ax[0].set_xlim(x.min(), x.max())\n", "ax[0].set_ylim(h.min(), 1.1)\n", "ax[1].set_xlim(x.min(), x.max())\n", "ax[1].set_ylim(h.min(), 1.1)\n", "ax[2].set_xlim(x.min(), x.max())\n", "ax[2].set_ylim(h.min(), 1.1)\n", "\n", "# Make readable labels\n", "ax[0].set_xlabel(r'$x$', fontsize=24)\n", "ax[0].set_ylabel(r'$h(x)$', fontsize=24)\n", "ax[0].set_title('Activation Functions', fontsize=24)\n", "\n", "ax[1].set_xlabel(r'$x$', fontsize=24)\n", "ax[1].set_ylabel(r'$h(x)$', fontsize=24)\n", "ax[1].set_title('Activation Functions', fontsize=24)\n", "\n", "ax[2].set_xlabel(r'$x$', fontsize=24)\n", "ax[2].set_ylabel(r'$h(x)$', fontsize=24)\n", "ax[2].set_title('Activation Functions', fontsize=24)\n", "\n", "# Set up grid\n", "ax[0].grid(True, lw=1.75, ls='--', alpha=0.75)\n", "ax[1].grid(True, lw=1.75, ls='--', alpha=0.75)\n", "ax[2].grid(True, lw=1.75, ls='--', alpha=0.75)\n", "\n", "# Put legend on figure\n", "ax[0].legend(loc='best', fontsize=24);\n", "ax[1].legend(loc='best', fontsize=24);\n", "ax[2].legend(loc='best', fontsize=24);\n", "\n", "#fig.savefig('../images/nice_sub_plots.png')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise
\n", "\n", "* Make a grid of 2 x 3 separate plots, 3 will be empty. Just plot the functions and do not worry about cosmetics. We just want you ro see the functionality." ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [], "source": [ "# your code here\n" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 123, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# %load solutions/six_subplots.py\n", "\n", "# First get the data\n", "f = logistic(x, 2.0, 1.0)\n", "g = stretch_tanh(x, 2.0, 0.5, 0.5)\n", "h = relu(x)\n", "\n", "fig, ax = plt.subplots(2,3, figsize=(20,6)) # Create figure object\n", "\n", "# Make actual plots\n", "ax[0][0].plot(x, f, lw=4, ls='-', label=r'$L(x;1)$')\n", "ax[1][1].plot(x, g, lw=4, ls='--', label=r'$\\tanh(2x)$')\n", "ax[1][2].plot(x, h, lw=4, ls='-.', label=r'$relu(x; 0.01)$')\n", "ax[0][2].plot(x, h, lw=4, ls='-.', label=r'$relu(x; 0.01)$')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 3 - Simple Linear Regression\n", "\n", "Linear regression and its many extensions are a workhorse of the statistics and data science community, both in application and as a reference point for other models. Most of the major concepts in machine learning can be and often are discussed in terms of various linear regression models. Thus, this section will introduce you to building and fitting linear regression models and some of the process behind it, so that you can 1) fit models to data you encounter 2) experiment with different kinds of linear regression and observe their effects 3) see some of the technology that makes regression models work.\n", "\n", "\n", "### Linear regression with a toy dataset\n", "We first examine a toy problem, focusing our efforts on fitting a linear model to a small dataset with three observations. Each observation consists of one predictor $x_i$ and one response $y_i$ for $i = 1, 2, 3$,\n", "\n", "\\begin{align*}\n", "(x , y) = \\{(x_1, y_1), (x_2, y_2), (x_3, y_3)\\}.\n", "\\end{align*}\n", "\n", "To be very concrete, let's set the values of the predictors and responses.\n", "\n", "\\begin{equation*}\n", "(x , y) = \\{(1, 2), (2, 2), (3, 4)\\}\n", "\\end{equation*}\n", "\n", "There is no line of the form $\\beta_0 + \\beta_1 x = y$ that passes through all three observations, since the data are not collinear. Thus our aim is to find the line that best fits these observations in the *least-squares sense*, as discussed in lecture." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise (for home)
\n", "\n", "* Make two numpy arrays out of this data, x_train and y_train\n", "* Check the dimentions of these arrays\n", "* Try to reshape them into a different shape\n", "* Make points into a very simple scatterplot\n", "* Make a better scatterplot" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "# your code here" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "numpy.ndarray" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# solution\n", "x_train = np.array([1,2,3])\n", "y_train = np.array([2,3,6])\n", "type(x_train)" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(3,)" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x_train.shape" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(3, 1)" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x_train = x_train.reshape(3,1)\n", "x_train.shape" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(3, 1) (3,)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# %load solutions/simple_scatterplot.py\n", "# Make a simple scatterplot\n", "plt.scatter(x_train,y_train)\n", "\n", "# check dimensions \n", "print(x_train.shape,y_train.shape)\n" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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2gUXXICZsWnTJs455xwWLlxIX18f73vf+3juuecAuPnmm1mxYgWZTIYlS5awevXqked/+tOfxszYsWPHhGk/+eSTdHd389nPfrbmvC+55BLMjLvvvptTTz2V173udWQyGd75zndy7733Tsj21FNPccYZZ7Bw4UK6u7s59NBDueaaayac4VnN9MILL4wM+/znP4+ZsXXrVr74xS/ypje9iXQ6zYoVK7j//vtHxlu5ciVvectbALj44osxM8yML3/5yyPjvPzyy1x++eUcfvjhzJkzh3333ZelS5dy9tlnT2XRj+ju7qa7u3uvnhsHyhdfnrNBZ+RrJPZ76jLRhg0bSKfT/MEf/AFHHHEEF198MevXr+eGG27gz/7sz1i8eDH33Xcfp59+OolEgiuvvJLTTz+dzZs3s2DBAo4++mi+/e1vs3btWlauXDlm2ueeey777rsvl156ac15P/TQQySTSU455RSOOeYYLrvsMrZu3cq1117LBz7wAZ5++mkOOuggAO644w4+/OEPs3DhQs4++2z2228/br/9ds4//3xeeOEFvvrVr47JtHjxYvbff/8x85ozZw4f+MAHWLp0Keeffz47d+7k6quv5g//8A/Ztm0bqVSKs846i6GhIW6//Xa++c1vjtwy+OijjwZgcHCQ3/7t32bLli188pOfZOnSpWSzWR599FE2bdo0k6tGRKS1Qgix/lm+fHmYzOOPPz7pOHvrB+u3hWOuuCu88YLbwzFX3BV+sH7bjE17aGgoDA0NTfl58+fPD0C45ZZbxgx/xzveEYBwwgknhEKhMDL82muvDUD48Y9/HEII4YknnghAuPDCC8c8//bbbw9A+MY3vlF33osXLw5AuOaaa8YMv+mmmwIQrr322hBCCE8//XTo6+sLxx57bBgYGBgz7rve9a7Q09MzZvj8+fPDSSedNGa8efPmBSD8wz/8w5jhF110UQDCpk2bRoZ96EMfCgsWLKhZ86233hqAsGbNmrq5JjN+G8vn8yGfz+/19Nqd8sWX52whdEY+4MFQpyfG/vB7iPBGA6s3bOfC2x5l+54cAdi+J8eFtz3K6g3bZ2T61ZU0Fdu2bWPXrl186EMf4rTTThvz2H777UdXVxff+c53xnwus++++wKv3VN4yZIlzJs3j7Vr146MUywWOe+883j729/Opz71qZrzfvHFF9m6dSvHHnss55133pjH3vve9wKwefNmAC6//HKy2Sw33HADmUxmzLjHHXccg4ODbNmyZUymZcuWjYyzZcsWdu/ezQknnMAf/dEfjXl+9QsP0un0yLD169ePef74ugHWrl07Y3coLJVKlEqlGZlWO1K++PKcDTojXyOxb+pRumrNk+SKY291misOcdWaJyOqqNK8AD760Y9OeOyxxx7jPe95DwcccMCY4Rs3bgQqzbzqqKOO4sEHHxx5U3HdddexadMmrr322rrfgb5hwwYAzjzzzAmPVZtlf38/5XKZ1atXc9xxx42ZZ1V1nn19fWMyjW7K1XmdcsopNXPus88+LFy4EIBdu3axbds2li9fXrPuj3zkIxxxxBF8+ctf5uCDD+ZP/uRPuP32213fglhEfFJTn4Yde3JTGj4bqs1u/Fnezz33HDt37qx59vf69es5+OCDOfDAA0eGHXXUUbz00ks8+eST/PrXv+ayyy5j5cqVI3vctTz00EMAHHnkkRMee+CBB4BKY962bRsvvvgiS5curTmdxx57jP3224/Xv/71YzKNbsr1cgKsW7eOZcuWjZxEuW7dugnPH23evHmsW7eOH/3oR3z0ox/lzjvv5IMf/CDHHnsshUKhbl4RkXajpj4NB89NT2n4bNiwYQNz587lzW9+85jh1b3dWo1tw4YNE4ZXTyJbu3YtX/rSlxgcHOSaa65pOO9qU691LfnXvvY15s2bx/vf//6RZlvr0oznnnuOO++8kw9/+MMj423YsIH58+ezaNGiMfOaM2cOhxxyyJjn79mzh2effbbmG4B6TR0gmUxy/PHHc9111/HMM8/wsY99jJ/97Gc8/PDDDTOLiLQTNfVpWHX8EtKpsYei06kkq46feEh5ttRq0PDa3ur4O7Jt3ryZ3bt3T3jOu971LhKJBDfeeCM33XQTn/vc5ya8Uag1b4Cf/OQnY4bfeOONPPDAA1x88cX09/ezaNEi5syZw3333TdmvFwux8c//nGSySQXXnjhmOmO/zy8mnP8JY3r16+vnkA5MuzZZ58FYPHixRNq3rlz54TzFpLJJMlkEjMbOYQvIhIHuqRtGlYuq7zgX7XmSXbsyXHw3DSrjl8yMny6pnoN/u7du9m6dSsnn3zyhMfWr1/P/PnzRw5pjx4OE/di99lnH5YuXcq9997LgQceyEUXXdRw3oODgzzxxBMsW7aMc889ly1btvDGN76Re+65h+9973ucfPLJfO5znxvJ9aUvfYkLLriAE088kRNPPJGXXnqJ73znO2zZsoVbb72VQw89dEym0Z+dv/DCCzz33HM1zxuolaf6ZuScc87h6KOPJplMctppp2FmnH/++dx///2cdNJJHHrooZTLZdasWcPtt9/OqlWrOPjggxvmrmdv7i8QJ8oXX56zgfLFvqlHvQJXLls4Y018vKlma3SYed26dXUPvdd7zjvf+U4ee+wxrrjiCvbZZ5+G837ssccolUqcd9557Nmzh2uuuYYdO3ZwyCGH8PWvf50///M/H/MmZdWqVZgZ3/rWt7jjjjvYf//9ec973sNtt93G2972tgn11TpJrl7OTCbDYYcdNjLsnHPO4fHHH+f73/8+3/rWt1i8eDGnn346UDkrf9euXdx6663s3LmTefPmsXTpUlavXs1JJ53UMHMjo8+890j54stzNlA+i/KSsJlw5JFHhgcffLDhOBs3buStb33rLFXkQ7FY5LDDDhu5tG2yowY33ngjZ555Jg8//DCHH374LFXZPrSNichsMbN1IYSJZyTjYE897m9KGqlmi+JWuFdffTW//OUvueWWW5qa/4YNG0ilUmP2kBuJMttsqF5LOp0voGlnyhdfnrNB5+SrJ/apPTf16nXS9a4Ln2m7d+9mzZo1PPLII1x11VWcd955TX8BykMPPcSSJUuavufybGebbYODg4DfFxbliy/P2aBz8tXjM7XslTVr1nDaaadxwAEHcO6553LllVc29bwQAo888ggnnnhiiysUEZFG1NRlxKmnnsqpp5465eeZGS+//HILKhIRkanwfe6/iIhIB1FTFxERcUJNXURExIm2aOpmNs/Mrjazp80sb2Y7zezfzey3J3tu1DefaaVEIuE2n+dsULlBhOebYChffHnOBp2Rr5HIT5QzszcA9wD9wI3AJmAOcDjQ0Tfe9noNN/jOBr7fbILyxZnnbKB8kTd14J+o1HF4COE/WzWTEELsGonnG7R4ylbrXgme8tWifPG0esN2rl7zBDv25DhobmZGv6uiXXhdd1WT3Zsl0rc0ZvZfgGOBvw4h/KeZpcwsM5VpVG9i0kgqlSKXi+47zvdWuVxuKl8cecqWy+Xo6ekZMyybzZLNZiOqqPWUL35Wb9jOhbc9SjaXY24PbN+T48LbHmX1hu1RlzajPK67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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# %load solutions/nice_scatterplot.py\n", "def nice_scatterplot(x, y, title):\n", " # font size\n", " f_size = 18\n", " \n", " # make the figure\n", " fig, ax = plt.subplots(1,1, figsize=(8,5)) # Create figure object\n", "\n", " # set axes limits to make the scale nice\n", " ax.set_xlim(np.min(x)-1, np.max(x) + 1)\n", " ax.set_ylim(np.min(y)-1, np.max(y) + 1)\n", "\n", " # adjust size of tickmarks in axes\n", " ax.tick_params(labelsize = f_size)\n", " \n", " # remove tick labels\n", " ax.tick_params(labelbottom=False, bottom=False)\n", " \n", " # adjust size of axis label\n", " ax.set_xlabel(r'$x$', fontsize = f_size)\n", " ax.set_ylabel(r'$y$', fontsize = f_size)\n", " \n", " # set figure title label\n", " ax.set_title(title, fontsize = f_size)\n", "\n", " # you may set up grid with this \n", " ax.grid(True, lw=1.75, ls='--', alpha=0.15)\n", "\n", " # make actual plot (Notice the label argument!)\n", " #ax.scatter(x, y, label=r'$my points$')\n", " #ax.scatter(x, y, label='$my points$')\n", " ax.scatter(x, y, label=r'$my\\,points$')\n", " ax.legend(loc='best', fontsize = f_size);\n", " \n", " return ax\n", "\n", "nice_scatterplot(x_train, y_train, 'hello nice plot')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "#### Formulae\n", "Linear regression is special among the models we study because it can be solved explicitly. While most other models (and even some advanced versions of linear regression) must be solved itteratively, linear regression has a formula where you can simply plug in the data.\n", "\n", "For the single predictor case it is:\n", " \\begin{align}\n", " \\beta_1 &= \\frac{\\sum_{i=1}^n{(x_i-\\bar{x})(y_i-\\bar{y})}}{\\sum_{i=1}^n{(x_i-\\bar{x})^2}}\\\\\n", " \\beta_0 &= \\bar{y} - \\beta_1\\bar{x}\\\n", " \\end{align}\n", " \n", "Where $\\bar{y}$ and $\\bar{x}$ are the mean of the y values and the mean of the x values, respectively." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Building a model from scratch\n", "In this part, we will solve the equations for simple linear regression and find the best fit solution to our toy problem." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The snippets of code below implement the linear regression equations on the observed predictors and responses, which we'll call the training data set. Let's walk through the code.\n", "\n", "We have to reshape our arrrays to 2D. We will see later why." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise
\n", "\n", "* make an array with shape (2,3)\n", "* reshape it to a size that you want" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "# your code here\n" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(3, 2)" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#solution\n", "xx = np.array([[1,2,3],[4,6,8]])\n", "xxx = xx.reshape(-1,2)\n", "xxx.shape" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(3, 1)\n" ] } ], "source": [ "# Reshape to be a proper 2D array\n", "x_train = x_train.reshape(x_train.shape[0], 1)\n", "y_train = y_train.reshape(y_train.shape[0], 1)\n", "\n", "print(x_train.shape)" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "() ()\n" ] } ], "source": [ "# first, compute means\n", "y_bar = np.mean(y_train)\n", "x_bar = np.mean(x_train)\n", "\n", "# build the two terms\n", "numerator = np.sum( (x_train - x_bar)*(y_train - y_bar) )\n", "denominator = np.sum((x_train - x_bar)**2)\n", "\n", "print(numerator.shape, denominator.shape) #check shapes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Why the empty brackets? (The numerator and denominator are scalars, as expected.)" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The best-fit line is -0.33 + 2.00 * x\n", "The best fit is -0.3333333333333335\n" ] } ], "source": [ "#slope beta1\n", "beta_1 = numerator/denominator\n", "\n", "#intercept beta0\n", "beta_0 = y_bar - beta_1*x_bar\n", "\n", "print(\"The best-fit line is {0:3.2f} + {1:3.2f} * x\".format(beta_0, beta_1))\n", "print(f'The best fit is {beta_0}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise
\n", "\n", "Turn the code from the above cells into a function called `simple_linear_regression_fit`, that inputs the training data and returns `beta0` and `beta1`.\n", "\n", "To do this, copy and paste the code from the above cells below and adjust the code as needed, so that the training data becomes the input and the betas become the output.\n", "\n", "```python\n", "def simple_linear_regression_fit(x_train: np.ndarray, y_train: np.ndarray) -> np.ndarray:\n", " \n", " return\n", "```\n", "\n", "Check your function by calling it with the training data from above and printing out the beta values." ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [], "source": [ "# Your code here" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [], "source": [ "# %load solutions/simple_linear_regression_fit.py\n", "def simple_linear_regression_fit(x_train: np.ndarray, y_train: np.ndarray) -> np.ndarray:\n", " \"\"\"\n", " Inputs:\n", " x_train: a (num observations by 1) array holding the values of the predictor variable\n", " y_train: a (num observations by 1) array holding the values of the response variable\n", "\n", " Returns:\n", " beta_vals: a (num_features by 1) array holding the intercept and slope coeficients\n", " \"\"\"\n", " \n", " # Check input array sizes\n", " if len(x_train.shape) < 2:\n", " print(\"Reshaping features array.\")\n", " x_train = x_train.reshape(x_train.shape[0], 1)\n", "\n", " if len(y_train.shape) < 2:\n", " print(\"Reshaping observations array.\")\n", " y_train = y_train.reshape(y_train.shape[0], 1)\n", "\n", " # first, compute means\n", " y_bar = np.mean(y_train)\n", " x_bar = np.mean(x_train)\n", "\n", " # build the two terms\n", " numerator = np.sum( (x_train - x_bar)*(y_train - y_bar) )\n", " denominator = np.sum((x_train - x_bar)**2)\n", " \n", " #slope beta1\n", " beta_1 = numerator/denominator\n", "\n", " #intercept beta0\n", " beta_0 = y_bar - beta_1*x_bar\n", "\n", " return np.array([beta_0,beta_1])\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Let's run this function and see the coefficients" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reshaping features array.\n", "Reshaping observations array.\n", "The best-fit line is 0.666667 + 1.000000 * x\n" ] } ], "source": [ "x_train = np.array([1 ,2, 3])\n", "y_train = np.array([2, 2, 4])\n", "\n", "betas = simple_linear_regression_fit(x_train, y_train)\n", "\n", "beta_0 = betas[0]\n", "beta_1 = betas[1]\n", "\n", "print(\"The best-fit line is {0:8.6f} + {1:8.6f} * x\".format(beta_0, beta_1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise
\n", "\n", "* Do the values of `beta0` and `beta1` seem reasonable?\n", "* Plot the training data using a scatter plot.\n", "* Plot the best fit line with `beta0` and `beta1` together with the training data." ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [], "source": [ "# Your code here" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# %load solutions/best_fit_scatterplot.py\n", "fig_scat, ax_scat = plt.subplots(1,1, figsize=(10,6))\n", "\n", "# Plot best-fit line\n", "x_train = np.array([[1, 2, 3]]).T\n", "\n", "best_fit = beta_0 + beta_1 * x_train\n", "\n", "ax_scat.scatter(x_train, y_train, s=300, label='Training Data')\n", "ax_scat.plot(x_train, best_fit, ls='--', label='Best Fit Line')\n", "\n", "ax_scat.set_xlabel(r'$x_{train}$')\n", "ax_scat.set_ylabel(r'$y$');\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The values of `beta0` and `beta1` seem roughly reasonable. They capture the positive correlation. The line does appear to be trying to get as close as possible to all the points." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 4 - Building a model with `statsmodels` and `sklearn`\n", "\n", "Now that we can concretely fit the training data from scratch, let's learn two `python` packages to do it all for us:\n", "* [statsmodels](http://www.statsmodels.org/stable/regression.html) and \n", "* [scikit-learn (sklearn)](http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html).\n", "\n", "Our goal is to show how to implement simple linear regression with these packages. For an important sanity check, we compare the $\\beta$ values from `statsmodels` and `sklearn` to the $\\beta$ values that we found from above with our own implementation.\n", "\n", "For the purposes of this lab, `statsmodels` and `sklearn` do the same thing. More generally though, `statsmodels` tends to be easier for inference \\[finding the values of the slope and intercept and dicussing uncertainty in those values\\], whereas `sklearn` has machine-learning algorithms and is better for prediction \\[guessing y values for a given x value\\]. (Note that both packages make the same guesses, it's just a question of which activity they provide more support for.\n", "\n", "**Note:** `statsmodels` and `sklearn` are different packages! Unless we specify otherwise, you can use either one." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below is the code for `statsmodels`. `Statsmodels` does not by default include the column of ones in the $X$ matrix, so we include it manually with `sm.add_constant`." ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "import statsmodels.api as sm" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1. 1.]\n", " [1. 2.]\n", " [1. 3.]]\n", "The regression coef from statsmodels are: beta_0 = 0.666667 and beta_1 = 1.000000\n" ] } ], "source": [ "# create the X matrix by appending a column of ones to x_train\n", "X = sm.add_constant(x_train)\n", "\n", "# this is the same matrix as in our scratch problem!\n", "print(X)\n", "\n", "# build the OLS model (ordinary least squares) from the training data\n", "toyregr_sm = sm.OLS(y_train, X)\n", "\n", "# do the fit and save regression info (parameters, etc) in results_sm\n", "results_sm = toyregr_sm.fit()\n", "\n", "# pull the beta parameters out from results_sm\n", "beta0_sm = results_sm.params[0]\n", "beta1_sm = results_sm.params[1]\n", "\n", "print(f'The regression coef from statsmodels are: beta_0 = {beta0_sm:8.6f} and beta_1 = {beta1_sm:8.6f}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Besides the beta parameters, `results_sm` contains a ton of other potentially useful information." ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: y R-squared: 0.750\n", "Model: OLS Adj. R-squared: 0.500\n", "Method: Least Squares F-statistic: 3.000\n", "Date: Thu, 19 Sep 2019 Prob (F-statistic): 0.333\n", "Time: 16:11:35 Log-Likelihood: -2.0007\n", "No. Observations: 3 AIC: 8.001\n", "Df Residuals: 1 BIC: 6.199\n", "Df Model: 1 \n", "Covariance Type: nonrobust \n", "==============================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "------------------------------------------------------------------------------\n", "const 0.6667 1.247 0.535 0.687 -15.181 16.514\n", "x1 1.0000 0.577 1.732 0.333 -6.336 8.336\n", "==============================================================================\n", "Omnibus: nan Durbin-Watson: 3.000\n", "Prob(Omnibus): nan Jarque-Bera (JB): 0.531\n", "Skew: -0.707 Prob(JB): 0.767\n", "Kurtosis: 1.500 Cond. No. 6.79\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" ] } ], "source": [ "import warnings\n", "warnings.filterwarnings('ignore')\n", "print(results_sm.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's turn our attention to the `sklearn` library." ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [], "source": [ "from sklearn import linear_model" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The regression coefficients from the sklearn package are: beta_0 = 0.666667 and beta_1 = 1.000000\n" ] } ], "source": [ "# build the least squares model\n", "toyregr = linear_model.LinearRegression()\n", "\n", "# save regression info (parameters, etc) in results_skl\n", "results = toyregr.fit(x_train, y_train)\n", "\n", "# pull the beta parameters out from results_skl\n", "beta0_skl = toyregr.intercept_\n", "beta1_skl = toyregr.coef_[0]\n", "\n", "print(\"The regression coefficients from the sklearn package are: beta_0 = {0:8.6f} and beta_1 = {1:8.6f}\".format(beta0_skl, beta1_skl))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We should feel pretty good about ourselves now, and we're ready to move on to a real problem!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The `scikit-learn` library and the shape of things" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before diving into a \"real\" problem, let's discuss more of the details of `sklearn`.\n", "\n", "`Scikit-learn` is the main `Python` machine learning library. It consists of many learners which can learn models from data, as well as a lot of utility functions such as `train_test_split()`. \n", "\n", "Use the following to add the library into your code:\n", "\n", "```python\n", "import sklearn \n", "```\n", "\n", "In `scikit-learn`, an **estimator** is a Python object that implements the methods `fit(X, y)` and `predict(T)`\n", "\n", "Let's see the structure of `scikit-learn` needed to make these fits. `fit()` always takes two arguments:\n", "```python\n", "estimator.fit(Xtrain, ytrain)\n", "```\n", "We will consider two estimators in this lab: `LinearRegression` and `KNeighborsRegressor`.\n", "\n", "It is very important to understand that `Xtrain` must be in the form of a **2x2 array** with each row corresponding to one sample, and each column corresponding to the feature values for that sample.\n", "\n", "`ytrain` on the other hand is a simple array of responses. These are continuous for regression problems." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![](../images/featurematrix.png)\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Practice with `sklearn` and a real dataset\n", "We begin by loading up the `mtcars` dataset. This data was extracted from the 1974 Motor Trend US magazine, and comprises of fuel consumption and 10 aspects of automobile design and performance for 32 automobiles (1973–74 models). We will load this data to a dataframe with 32 observations on 11 (numeric) variables. Here is an explanation of the features:\n", "\n", "- `mpg` is Miles/(US) gallon \n", "- `cyl` is Number of cylinders, \n", "- `disp` is\tDisplacement (cu.in.), \n", "- `hp` is\tGross horsepower, \n", "- `drat` is\tRear axle ratio, \n", "- `wt` is the Weight (1000 lbs), \n", "- `qsec` is 1/4 mile time,\n", "- `vs` is Engine (0 = V-shaped, 1 = straight), \n", "- `am` is Transmission (0 = automatic, 1 = manual), \n", "- `gear` is the Number of forward gears, \n", "- `carb` is\tNumber of carburetors." ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0mpgcyldisphpdratwtqsecvsamgearcarb
0Mazda RX421.06160.01103.902.62016.460144
1Mazda RX4 Wag21.06160.01103.902.87517.020144
2Datsun 71022.84108.0933.852.32018.611141
3Hornet 4 Drive21.46258.01103.083.21519.441031
4Hornet Sportabout18.78360.01753.153.44017.020032
\n", "
" ], "text/plain": [ " Unnamed: 0 mpg cyl disp hp drat wt qsec vs am gear carb\n", "0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4\n", "1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4\n", "2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1\n", "3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1\n", "4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "#load mtcars\n", "dfcars = pd.read_csv(\"../data/mtcars.csv\")\n", "dfcars.head()" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
car namempgcyldisphpdratwtqsecvsamgearcarb
0Mazda RX421.06160.01103.902.62016.460144
1Mazda RX4 Wag21.06160.01103.902.87517.020144
2Datsun 71022.84108.0933.852.32018.611141
3Hornet 4 Drive21.46258.01103.083.21519.441031
4Hornet Sportabout18.78360.01753.153.44017.020032
\n", "
" ], "text/plain": [ " car name mpg cyl disp hp drat wt qsec vs am gear carb\n", "0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4\n", "1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4\n", "2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1\n", "3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1\n", "4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Fix the column title \n", "dfcars = dfcars.rename(columns={\"Unnamed: 0\":\"car name\"})\n", "dfcars.head()" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(32, 12)" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfcars.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Searching for values: how many cars have 4 gears?" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "12" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(dfcars[dfcars.gear == 4].drop_duplicates(subset='car name', keep='first'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, let's split the dataset into a training set and test set." ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [], "source": [ "# split into training set and testing set\n", "from sklearn.model_selection import train_test_split\n", "\n", "#set random_state to get the same split every time\n", "traindf, testdf = train_test_split(dfcars, test_size=0.2, random_state=42)" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shape of full dataset is: (32, 12)\n", "Shape of training dataset is: (25, 12)\n", "Shape of test dataset is: (7, 12)\n" ] } ], "source": [ "# testing set is around 20% of the total data; training set is around 80%\n", "print(\"Shape of full dataset is: {0}\".format(dfcars.shape))\n", "print(\"Shape of training dataset is: {0}\".format(traindf.shape))\n", "print(\"Shape of test dataset is: {0}\".format(testdf.shape))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we have training and test data. We still need to select a predictor and a response from this dataset. Keep in mind that we need to choose the predictor and response from both the training and test set. You will do this in the exercises below. However, we provide some starter code for you to get things going." ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
car namempgcyldisphpdratwtqsecvsamgearcarb
25Fiat X1-927.3479.0664.081.93518.901141
12Merc 450SL17.38275.81803.073.73017.600033
0Mazda RX421.06160.01103.902.62016.460144
4Hornet Sportabout18.78360.01753.153.44017.020032
16Chrysler Imperial14.78440.02303.235.34517.420034
\n", "
" ], "text/plain": [ " car name mpg cyl disp hp drat wt qsec vs am gear carb\n", "25 Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1\n", "12 Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3\n", "0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4\n", "4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2\n", "16 Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "traindf.head()" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "25 27.3\n", "12 17.3\n", "0 21.0\n", "4 18.7\n", "16 14.7\n", "5 18.1\n", "13 15.2\n", "11 16.4\n", "23 13.3\n", "1 21.0\n", "2 22.8\n", "26 26.0\n", "3 21.4\n", "21 15.5\n", "27 30.4\n", "22 15.2\n", "18 30.4\n", "31 21.4\n", "20 21.5\n", "7 24.4\n", "10 17.8\n", "14 10.4\n", "28 15.8\n", "19 33.9\n", "6 14.3\n", "Name: mpg, dtype: float64" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Extract the response variable that we're interested in\n", "y_train = traindf.mpg\n", "y_train" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise
\n", "\n", "Use slicing to get the same vector `y_train`\n", "\n", "----" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, notice the shape of `y_train`." ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((25,), pandas.core.series.Series)" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_train.shape, type(y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Array reshape\n", "This is a 1D array as should be the case with the **Y** array. Remember, `sklearn` requires a 2D array only for the predictor array. You will have to pay close attention to this in the exercises later. `Sklearn` doesn't care too much about the shape of `y_train`.\n", "\n", "The whole reason we went through that whole process was to show you how to reshape your data into the correct format.\n", "\n", "**IMPORTANT:** Remember that your response variable `ytrain` can be a vector but your predictor variable `xtrain` ***must*** be an array!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 5 - Example: Simple linear regression with automobile data\n", "We will now use `sklearn` to predict automobile mileage per gallon (mpg) and evaluate these predictions. We already loaded the data and split them into a training set and a test set." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We need to choose the variables that we think will be good predictors for the dependent variable `mpg`. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise in pairs
\n", "\n", "* Pick one variable to use as a predictor for simple linear regression. Discuss your reasons with the person next to you. \n", "* Justify your choice with some visualizations. \n", "* Is there a second variable you'd like to use? For example, we're not doing multiple linear regression here, but if we were, is there another variable you'd like to include if we were using two predictors?" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(32,)" ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x_wt = dfcars.wt\n", "x_wt.shape" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [], "source": [ "# Your code here\n" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Car MPG')" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# %load solutions/cars_simple_EDA.py\n", "y_mpg = dfcars.mpg\n", "x_wt = dfcars.wt\n", "x_hp = dfcars.hp\n", "\n", "fig_wt, ax_wt = plt.subplots(1,1, figsize=(10,6))\n", "ax_wt.scatter(x_wt, y_mpg)\n", "ax_wt.set_xlabel(r'Car Weight')\n", "ax_wt.set_ylabel(r'Car MPG')\n", "\n", "fig_hp, ax_hp = plt.subplots(1,1, figsize=(10,6))\n", "ax_hp.scatter(x_hp, y_mpg)\n", "ax_hp.set_xlabel(r'Car HP')\n", "ax_hp.set_ylabel(r'Car MPG')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise
\n", "\n", "* Use `sklearn` to fit the training data using simple linear regression.\n", "* Use the model to make mpg predictions on the test set. \n", "* Plot the data and the prediction. \n", "* Print out the mean squared error for the training set and the test set and compare." ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
namempgcyldisphpdratwtqsecvsamgearcarb
0Mazda RX421.06160.01103.902.62016.460144
1Mazda RX4 Wag21.06160.01103.902.87517.020144
2Datsun 71022.84108.0933.852.32018.611141
3Hornet 4 Drive21.46258.01103.083.21519.441031
4Hornet Sportabout18.78360.01753.153.44017.020032
\n", "
" ], "text/plain": [ " name mpg cyl disp hp drat wt qsec vs am gear carb\n", "0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4\n", "1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4\n", "2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1\n", "3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1\n", "4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2" ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.linear_model import LinearRegression\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.metrics import mean_squared_error\n", "\n", "dfcars = pd.read_csv(\"../data/mtcars.csv\")\n", "dfcars = dfcars.rename(columns={\"Unnamed: 0\":\"name\"})\n", "\n", "dfcars.head()" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [], "source": [ "traindf, testdf = train_test_split(dfcars, test_size=0.2, random_state=42)\n", "\n", "y_train = np.array(traindf.mpg)\n", "X_train = np.array(traindf.wt)\n", "X_train = X_train.reshape(X_train.shape[0], 1)" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [], "source": [ "y_test = np.array(testdf.mpg)\n", "X_test = np.array(testdf.wt)\n", "X_test = X_test.reshape(X_test.shape[0], 1)" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
namempgcyldisphpdratwtqsecvsamgearcarb
0Mazda RX421.06160.01103.902.62016.460144
1Mazda RX4 Wag21.06160.01103.902.87517.020144
2Datsun 71022.84108.0933.852.32018.611141
3Hornet 4 Drive21.46258.01103.083.21519.441031
4Hornet Sportabout18.78360.01753.153.44017.020032
\n", "
" ], "text/plain": [ " name mpg cyl disp hp drat wt qsec vs am gear carb\n", "0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4\n", "1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4\n", "2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1\n", "3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1\n", "4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Let's take another look at our data\n", "dfcars.head()" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((25,), (25, 1))" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# And out train and test sets \n", "y_train.shape, X_train.shape" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((7,), (7, 1))" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_test.shape, X_test.shape" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "R^2 = 0.68798\n" ] } ], "source": [ "#create linear model\n", "regression = LinearRegression()\n", "\n", "#fit linear model\n", "regression.fit(X_train, y_train)\n", "\n", "predicted_y = regression.predict(X_test)\n", "\n", "r2 = regression.score(X_test, y_test)\n", "print(f'R^2 = {r2:.5}')" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.7701379909791617\n", "12.475985659918823\n", "7.773697766387515\n", "Coefficients: \n", " -5.336941400557082 36.93731031351842\n" ] } ], "source": [ "print(regression.score(X_train, y_train))\n", "\n", "print(mean_squared_error(predicted_y, y_test))\n", "print(mean_squared_error(y_train, regression.predict(X_train)))\n", "\n", "print('Coefficients: \\n', regression.coef_[0], regression.intercept_)" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmIAAAF1CAYAAABLbYZYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deZzNdf//8cfLNGoSDdFCSUlaJLJEipJSSUSUXSX1ra5S1iEzzBjb2PedlEgSVy6XJRdXKxnGGmNLC0L2ZTDL+/eHw09dlsGc+Zw587zfbnObcz5zlqc+jnl2zvvz+phzDhERERHJfDm8DiAiIiKSXamIiYiIiHhERUxERETEIypiIiIiIh5RERMRERHxiIqYiIiIiEf8VsTM7Coz+9HMVprZWjPr6ts+wcx+NrMVvq9S/sogIiIiEsiu8ONjHweqOucOm1ko8K2Z/dv3s7bOuWl+fG4RERGRgOe3IuZOToo97Lsa6vu6pOmx+fPnd0WKFMmgZCIiIiL+s2zZsj+dcwXSc1t/viOGmYUAy4A7gKHOuSVm9n9ArJlFAguADs654+d7nCJFihAfH+/PqCIiIiIZwsx+Se9t/bpY3zmX6pwrBdwMlDezEkAEcBdQDsgHtD/bfc2spZnFm1n87t27/RlTRERExBOZctSkc24/sAh4yjm3w510HBgPlD/HfUY558o658oWKJCud/dEREREshR/HjVZwMzCfZfDgGrAejO7ybfNgNrAGn9lEBEREQlk/lwjdhPwoW+dWA5gqnNulpn9x8wKAAasAN7wYwYRERGRgOXPoyZXAaXPsr2qv55TREREJCvRZH0RERERj6iIiYiIiHhERUxERETEIypiIiIiIh5RERMRERHxiIqYiIiIiEdUxERERCTopaWlMW3aNJKSkryO8hcqYiIiIhK0nHPMmTOHsmXLUq9ePT7++GOvI/2FipiIiIgEpR9++IHHHnuMp59+mn379vHRRx/xyiuveB3rL1TEREREJKisWbOGWrVq8dBDD7F+/XqGDBlCYmIijRs3JiQkxOt4f6EiJiIiIkFh69atNGvWjJIlS7Jo0SJiY2PZvHkzb731Fjlz5vQ63ln586TfIiIiIn63c+dOYmNjGTFiBCEhIbRp04b27dtz3XXXeR3tglTEREREJEs6cOAAffv2pV+/fhw7doxXXnmFyMhIbr75Zq+jpZuKmIiIiGQpSUlJDBs2jO7du7N3717q1atHTEwMxYsX9zraRdMaMREREckSUlJSGDt2LHfeeSdt2rShbNmyxMfHM3Xq1CxZwkBFTERERAKcc45p06ZRokQJWrRoQaFChfjPf/7D3LlzKVOmjNfxLouKmIiIiAQk5xzz58+nfPny1KtXj5CQEL744ovT88GCgYqYiIiIBJwff/yRatWq8eSTT7J7924mTJjAqlWrqF27NmbmdbwMoyImIiIiAWPdunXUqVOHBx98kNWrVzNw4EASExNp1qxZwA1jzQg6alJEREQ89+uvv9KlSxc+/PBDcuXKRXR0NK1atSJ37txeR/MrFTERERHxzO7du+nRowdDhw7FzGjVqhURERHkz5/f62iZQkVMREREMt2hQ4fo168fffv25ciRIzRv3pyoqCgKFy7sdbRMpSImIiIimeb48eOMGDGCbt268eeff1K3bl1iYmK4++67vY7mCS3WFxEREb9LSUlh/Pjx3HnnnbRq1YpSpUrx448/Mm3atGxbwkBFTERERPzIOccXX3xByZIleeWVV7j++uuZP38+8+fPp1y5cl7H85yKmIiIiPjFf/7zHypUqECdOnVIS0vj888/Pz0fTE5SERMREZEMFR8fz5NPPsnjjz/O9u3bGTt2LGvWrKFOnTpBNYw1I6iIiYiISIZITEykfv36lCtXjuXLl9O3b182btzIK6+8whVX6PjAs9F/FREREbksv//+O127dmX8+PFcddVVREZG0rp1a/LkyeN1tICnIiYiIiKXZM+ePfTo0YMhQ4aQlpbG22+/TceOHbn++uu9jpZlqIiJiIjIRTl8+DADBgwgLi6Ow4cP06RJE7p06UKRIkW8jpblqIiJiIhIupw4cYJRo0YRExPDrl27qF27Nt26dePee+/1OlqWpSImIiIi55Wamsonn3xCZGQkW7du5dFHH2XmzJlUqFDB62hZno6aFBERkbNyzvHll19SqlQpmjZtSr58+Zg7d+7p+WBy+VTERERE5H98/fXXVKpUieeee47jx4/z6aefsnTpUp588knNAstAKmIiIiJy2ooVK3jmmWeoUqUKv/zyCyNHjmTt2rXUr1+fHDlUGzKa/ouKiIgImzZtokGDBpQuXZrFixfTu3dvNm3aRMuWLQkNDfU6XtDSYn0REZFsbPv27URHRzN27Fhy5sxJp06daNOmDeHh4V5HyxZUxERERLKhvXv30qtXLwYNGkRqaipvvPEGnTp14sYbb/Q6WraiIiYiIpKNHDlyhEGDBtGrVy8OHjxIo0aN6Nq1K7fffrvX0bIlFTEREZFs4MSJE4wZM4bo6Gh27tzJs88+S2xsLCVLlvQ6WramIiYiIhLE0tLSmDJlCp07d2bLli088sgjfP7551SqVMnraIKOmhQREQlKzjlmz57NAw88QKNGjcidOzezZ8/mv//9r0pYAFERExERCTLffvstlStXpkaNGhw+fJhPPvmE5cuX8/TTT2sYa4BRERMREQkSq1atombNmjzyyCNs2rSJ4cOHs27dOho0aKBhrAFKe0VERCSL27JlC40bN6ZUqVJ8++239OzZk82bN/PGG29oGGuA02J9ERGRLOqPP/4gJiaGUaNGERoaSvv27WnXrh158+b1Opqkk4qYiIhIFrN//37i4uIYMGAAJ06c4LXXXqNz587cdNNNXkeTi+S3ImZmVwFfA1f6nmeacy7KzG4DpgD5gOVAE+fcCX/lEBERCRZHjx5lyJAh9OzZk3379vHSSy8RExPDHXfc4XU0uUT+XCN2HKjqnLsfKAU8ZWYVgF5Af+dcMWAf8KofM4iIiGR5ycnJjBo1imLFitG+fXsqVqxIQkICkydPVgnL4vxWxNxJh31XQ31fDqgKTPNt/xCo7a8MIiIiWVlaWhqffvop9957L6+//jpFihThv//9L//6178oVaqU1/EkA/j1qEkzCzGzFcAuYD6wGdjvnEvx3eR3oJA/M4iIiGQ1zjnmzJlD2bJleemll7jyyiv55z//eXo+mAQPvxYx51yqc64UcDNQHrj7bDc7233NrKWZxZtZ/O7du/0ZU0REJGD88MMPPPbYYzz99NPs27ePjz76iBUrVlCzZk0NYw1CmTJHzDm3H1gEVADCzezUQQI3A9vPcZ9RzrmyzrmyBQoUyIyYIiIinlm7di21a9fmoYceYt26dQwePJjExEQaN25MSEiI1/HET/xWxMysgJmF+y6HAdWAdcBC4AXfzZoBM/2VQUREJNBt3bqVZs2acd9997Fw4UJiYmLYvHkzb7/9Njlz5vQ6nviZP+eI3QR8aGYhnCx8U51zs8zsJ2CKmXUDEoCxfswgIiISkHbt2kVsbCzDhw8nJCSE1q1b06FDB6677jqvo0km8lsRc86tAkqfZfsWTq4XExERyXYOHDhA37596devH8eOHeOVV14hMjKSm2++2eto4gFN1hcREckEx44dY+jQofTo0YM9e/ZQv359YmJiuPPOO72OJh7SSb9FRET8KCUlhbFjx1KsWDHatGlDmTJliI+P59NPP1UJExUxERERf3DOMW3aNEqUKEGLFi0oWLAgCxYsYO7cuZQpU8breBIgVMREREQy2FdffUX58uWpV68eOXLk4IsvvmDx4sVUrVrV62gSYFTEREREMsjSpUupVq0aTzzxBLt27WL8+PGsXr2a2rVraxirnJWKmIiIyGVat24ddevWpXz58qxatYoBAwawYcMGmjdvrmGscl46alJEROQS/frrr3Tt2pUJEyaQK1cuunbtynvvvUfu3Lm9jiZZhIqYiIjIRdq9ezc9evRg6NChmBmtWrUiIiKC/Pnzex1NshgVMRERkXQ6dOgQ/fr1o0+fPhw9epTmzZsTFRVF4cKFvY4mWZSKmIiIyAUcO3aMESNGEBsby59//kndunWJiYnh7rvv9jqaZHFarC8iInIOqampTJgwgeLFi/Pee+9RsmRJlixZwrRp01TCJEOoiImIiPyNc44vvviCkiVL8vLLL3P99dczf/58FixYQPnyOl2yZBwVMRERkTMsXLiQihUrUqdOHVJTU5k2bRo//vgj1apV8zqaBCEVMREREWDZsmVUr16dqlWrsm3bNsaMGcOaNWuoW7euhrGK36iIiYhItpaYmEj9+vUpW7Ysy5Yto2/fvmzcuJFXX32VK67QMW3iX/obJiIi2dLvv/9OdHQ048aN46qrrqJz5860bt2aa6+91utoko2oiImISLayZ88eevbsyeDBg0lLS+PNN9/kgw8+4Prrr/c6mmRDKmIiIpItHD58mIEDB9K7d28OHTpE06ZN6dKlC0WKFPE6mmRjKmIiIhLUTpw4wahRo4iJiWHXrl3UqlWLbt26UaJECa+jiaiIiYhIcEpNTeWTTz4hMjKSrVu3UqVKFWbMmEHFihW9jiZymo6aFBGRoOKc48svv6RUqVI0bdqUvHnzMmfOnNPzwUQCiYqYiIgEja+//ppKlSrx3HPPcfz4cT799FPi4+OpXr26ZoFJQFIRExGRLG/FihU888wzVKlShV9++YVRo0axdu1a6tevT44c+lUngUt/O0VEJMvatGkTDRs2pHTp0ixevJjevXuzadMmXnvtNUJDQ72OJ3JBWqwvIiJZzvbt24mJiWHMmDHkzJmTjh070rZtW8LDw72OJnJRVMRERCTL2LdvH71792bgwIGkpKTw+uuv88EHH3DjjTd6HU3kkqiIiYhIwDt69CiDBg2iV69eHDhwgEaNGtG1a1duv/12r6OJXBYVMRERCVjJycmMGTOG6Oho/vjjD5599lliY2MpWbKk19FEMoSKmIiIBJy0tDSmTJlCZGQkmzdv5uGHH2batGlUqlTJ62giGUpHTYqISMBwzjF79mweeOABGjVqRK5cufjXv/51ej6YSLBRERMRkYDw3XffUaVKFWrUqMGhQ4eYNGkSCQkJPPPMMxrGKkFLRUxERDy1atUqatasycMPP8zGjRsZNmwY69ato2HDhhrGKkFPf8NFRMQTW7ZsoXHjxpQqVYpvv/2W7t27s2nTJv7v//6PnDlzeh1PJFNosb6IiGSqP/74g5iYGEaNGkVoaCjt27enXbt25M2b1+toIplORUxERDLF/v37iYuLY8CAAZw4cYIWLVrQuXNnChYs6HU0Ec+oiImIiF8lJSUxZMgQevTowb59+2jQoAHR0dHccccdXkcT8ZzWiImIiF+kpKQwevRoihUrRrt27ahQoQIJCQl88sknKmEiPipiIiKSodLS0pg6dSr33HMPLVu2pHDhwixatIjZs2dTqlQpr+OJBBQVMRERyRDOOebOnUu5cuV48cUXufLKK5k5c+bp+WAi8r9UxERE5LItXryYqlWr8tRTT7F3714mTpzIihUreO655zSMVeQ8VMREROSSrV27ltq1a1OxYkV++uknBg8eTGJiIk2aNCEkJMTreCIBT0VMREQu2tatW2nWrBn33XcfCxcupFu3bmzevJm3335bw1hFLoLGV4iISLrt2rWL2NhYhg8fTo4cOWjdujUdOnTguuuu8zqaSJakIiYiIhd08OBB+vTpQ79+/Th27Bgvv/wyUVFR3HzzzV5HE8nSVMREROScjh07xrBhw+jevTt79uyhXr16xMTEULx4ca+jiQQFrRETEZH/kZKSwtixYylWrBitW7emTJkyxMfHM3XqVJUwkQykIiYiIqc55/j8888pUaIELVq0oGDBgixYsIC5c+dSpkwZr+OJBB19NCkiIgB89dVXREREEB8fz913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JyJn5Zxj3rx5lCtXjvr16xMaGsrMmTP57rvvqFKlynnvu31/0kVtFxER/0nPR5NP+T2FiKTbkiVLiIiIYOHChRQpUoSJEyfSsGFDQkJC0nX/guFhbDtL6SoYHpbRUUVE5AIu+I6Yc+6X831lRkgRgbVr1/L8889ToUIF1q5dy+DBg1m/fj1NmjRJdwkDaFu9OGGhf719WGgIbasXz+jIIiJyAel5R0xEPPTLL78QFRXFRx99xDXXXENMTAytWrXimmuuuaTHO7UgX0dNioh4T0VMJEDt2rWL7t27M3z4cMyMVq1aERERQf78+S/7sWuXLqTiJSISAFTEJKBovhUcPHiQfv360bdvX44ePcorr7xCZGQkt9xyi9fRREQkg6mIScDI7vOtjh07xvDhw4mNjWXPnj288MILxMTEcNddd3kdTURE/CQ94ytEMkV2nW+VkpLCuHHjuPPOO3n//fd54IEHWLp0KZ999plKmIhIkFMRk4CR3eZbOeeYPn069913H6+++io33XQTCxYsYN68eZQtW9breCIikglUxCRgnGuOVTDOt1qwYAEPPvggdevWxcyYPn06ixcvpmrVql5HExGRTKQiJgEjO8y3Wrp0KU888QTVqlXjjz/+YPz48axevZrnn38eM/M6noiIZDIVMQkYtUsXoked+ygUHoYBhcLD6FHnvqBYqL9+/Xrq1atH+fLlWbFiBf3792fDhg00b978ooaxiohIcNFRkxJQgm2+1W+//UbXrl0ZP348V199NVFRUbz//vvkyZPH62giIhIAVMRE/ODPP/+kZ8+eDBkyBOcc77zzDh07dqRAgQJeRxMRkQCiIiaSgQ4fPkz//v2Ji4vjyJEjNGvWjKioKG699Vavo4mISABSERPJAMePH2fkyJF069aN3bt38/zzz9OtWzfuuecer6OJiEgA02J9kcuQmprKhx9+SPHixXn33XcpUaIEixcvZvr06SphIiJyQSpiIpfAOcfMmTMpWbIkzZs357rrrmPevHmn54OJiIikh4qYyEVatGgRDz30ELVr1yYlJYWpU6eeng+mWWAiInIxVMRE0mn58uU89dRTPPbYY/z222+MHj2atWvXUq9ePXLk0EtJREQunn57iFzAhg0bePHFFylTpgxLly4lLi6OjRs30qJFC664Qse7iIjIpdNvEZFz2LZtG9HR0YwdO5ar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ERERuSgqYumUlpbGZ599xr333strr73GLbfcwsKFC5kzZw4PPPCA1/FEREQkC1IRuwDnHPPmzaN8+fLUr1+fK664ghkzZpyeDyYiIiJyqVTEzmPJkiU8/vjjVK9enT///JMJEyawatUqatWqpWGsIiIictlUxM7ip59+ok6dOlSoUIE1a9YwcOBAEhMTadasmYaxioiISIbRUZNn+OWXX+jSpQsTJ04kV65cREdH06pVK3Lnzu11NBEREQlCKmLA7t276d69O8OGDcPMaNWqFREREeTPn9/raCIiIhLEVMSAMWPGMGjQIF5++WWioqK45ZZbvI4kIiIi2YA55/zzwGbjgGeBXc65Er5t+YBPgSLAVqC+c27fhR6rbNmyLj4+3i85AY4cOcKvv/7K3Xff7bfnEBERkezBzJY558qm57b+XKw/AXjqb9s6AAucc8WABb7rnsuVK5dKmIiIiGQ6vxUx59zXwN6/ba4FfOi7/CFQ21/PLyIiIhLoMnt8xQ3OuR0Avu/XZ/Lzi4iIiASMgJ0jZmYtzSzezOJ3797tdRwRERGRDJfZRWynmd0E4Pu+61w3dM6Ncs6Vdc6VLVCgQKYFFBEREcksmV3E/gk0811uBszM5OcXERERCRh+K2JmNhn4AShuZr+b2atAT+AJM9sIPOG7LiIiIpIt+W2gq3OuwTl+9Li/nlNEREQkKwnYxfoiIiIiwU5FTERERMQjKmIiIiIiHlERExEREfGIipiIiIiIR1TERERERDyiIiYiIiLiERUxEREREY+oiImIiIh4REVMRERExCMqYiIiIiIeURETERER8YiKmIiIiIhHVMREREREPKIiJiIiIuKRK7wO4LUZCduIm5vI9v1JFAwPo2314tQuXcjrWCIiIpINZOsiNiNhGxHTV5OUnArAtv1JRExfDaAyJiIiIn6XrT+ajJubeLqEnZKUnErc3ESPEomIiEh2kq2L2Pb9SRe1XURERCQjZesiVjA87KK2i4iIiGSkbF3E2lYvTlhoyF+2hYWG0LZ6cY8SiYiISHaSrRfrn1qQr6MmRURExAvZuojByTKm4iUiIiJeyNYfTYqIiIh4SUVMRERExCMqYiIiIiIeURETERER8YiKmIiIiIhHVMREREREPKIiJiIiIuIRFTERERERj6iIiYiIiHhERUxERETEI+ac8zrDBZnZbuCXy3yY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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,1, figsize=(10,6))\n", "ax.plot(y_test, predicted_y, 'o')\n", "grid = np.linspace(np.min(dfcars.mpg), np.max(dfcars.mpg), 100)\n", "ax.plot(grid, grid, color=\"black\") # 45 degree line\n", "ax.set_xlabel(\"actual y\")\n", "ax.set_ylabel(\"predicted y\")\n", "\n", "fig1, ax1 = plt.subplots(1,1, figsize=(10,6))\n", "ax1.plot(dfcars.wt, dfcars.mpg, 'o')\n", "xgrid = np.linspace(np.min(dfcars.wt), np.max(dfcars.wt), 100)\n", "ax1.plot(xgrid, regression.predict(xgrid.reshape(100, 1)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 6 - $k$-nearest neighbors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that you're familiar with `sklearn`, you're ready to do a KNN regression. \n", "\n", "Sklearn's regressor is called `sklearn.neighbors.KNeighborsRegressor`. Its main parameter is the `number of nearest neighbors`. There are other parameters such as the distance metric (default for 2 order is the Euclidean distance). For a list of all the parameters see the [Sklearn kNN Regressor Documentation](https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsRegressor.html).\n", "\n", "Let's use $5$ nearest neighbors." ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [], "source": [ "# Import the library\n", "from sklearn.neighbors import KNeighborsRegressor" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [], "source": [ "# Set number of neighbors\n", "k = 5\n", "knnreg = KNeighborsRegressor(n_neighbors=k)" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "kNN model with 5 neighbors gives R^2 on the train set: 0.87181\n" ] } ], "source": [ "# Fit the regressor - make sure your numpy arrays are the right shape\n", "knnreg.fit(X_train, y_train)\n", "\n", "# Evaluate the outcome on the train set using R^2\n", "r2_train = knnreg.score(X_train, y_train)\n", "\n", "# Print results\n", "print(f'kNN model with {k} neighbors gives R^2 on the train set: {r2_train:.5}')" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([20.14, 14. , 15.3 , 26.3 , 19.56, 17.06, 16.88])" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "knnreg.predict(X_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise
\n", "\n", "Calculate and print the $R^{2}$ score on the test set" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [], "source": [ "# Your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Not so good? Lets vary the number of neighbors and see what we get." ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1: KNeighborsRegressor(algorithm='auto', leaf_size=30, metric='minkowski',\n", " metric_params=None, n_jobs=None, n_neighbors=1, p=2,\n", " weights='uniform'),\n", " 2: KNeighborsRegressor(algorithm='auto', leaf_size=30, metric='minkowski',\n", " metric_params=None, n_jobs=None, n_neighbors=2, p=2,\n", " weights='uniform'),\n", " 4: KNeighborsRegressor(algorithm='auto', leaf_size=30, metric='minkowski',\n", " metric_params=None, n_jobs=None, n_neighbors=4, p=2,\n", " weights='uniform'),\n", " 15: KNeighborsRegressor(algorithm='auto', leaf_size=30, metric='minkowski',\n", " metric_params=None, n_jobs=None, n_neighbors=15, p=2,\n", " weights='uniform')}" ] }, "execution_count": 108, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Make our lives easy by storing the different regressors in a dictionary\n", "regdict = {}\n", "\n", "# Make our lives easier by entering the k values from a list\n", "k_list = [1, 2, 4, 15]\n", "\n", "# Do a bunch of KNN regressions\n", "for k in k_list:\n", " knnreg = KNeighborsRegressor(n_neighbors=k)\n", " knnreg.fit(X_train, y_train)\n", " # Store the regressors in a dictionary\n", " regdict[k] = knnreg \n", "\n", "# Print the dictionary to see what we have\n", "regdict" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's plot all the k values in same plot." ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,1, figsize=(10,6))\n", "\n", "ax.plot(dfcars.wt, dfcars.mpg, 'o', label=\"data\")\n", "\n", "xgrid = np.linspace(np.min(dfcars.wt), np.max(dfcars.wt), 100)\n", "\n", "# let's unpack the dictionary to its elements (items) which is the k and Regressor\n", "for k, regressor in regdict.items():\n", " predictions = regressor.predict(xgrid.reshape(-1,1)) \n", " ax.plot(xgrid, predictions, label=\"{}-NN\".format(k))\n", "\n", "ax.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise
\n", "\n", "Explain what you see in the graph. **Hint** Notice how the $1$-NN goes through every point on the training set but utterly fails elsewhere. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets look at the scores on the training set." ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, '$R^{2}$')" ] }, "execution_count": 110, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ks = range(1, 15) # Grid of k's\n", "scores_train = [] # R2 scores\n", "for k in ks:\n", " # Create KNN model\n", " knnreg = KNeighborsRegressor(n_neighbors=k) \n", " \n", " # Fit the model to training data\n", " knnreg.fit(X_train, y_train) \n", " \n", " # Calculate R^2 score\n", " score_train = knnreg.score(X_train, y_train) \n", " scores_train.append(score_train)\n", "\n", "# Plot\n", "fig, ax = plt.subplots(1,1, figsize=(12,8))\n", "ax.plot(ks, scores_train,'o-')\n", "ax.set_xlabel(r'$k$')\n", "ax.set_ylabel(r'$R^{2}$')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Exercise
\n", "\n", "* Why do we get a perfect $R^2$ at k=1 for the training set?\n", "* Make the same plot as above on the *test* set.\n", "* What is the best $k$?" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [], "source": [ "# Your code here\n" ] }, { "cell_type": "code", "execution_count": 127, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, '$R^{2}$')" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# %load solutions/knn_regression.py\n", "ks = range(1, 7) # Grid of k's\n", "scores_test = [] # R2 scores\n", "for k in ks:\n", " knnreg = KNeighborsRegressor(n_neighbors=k) # Create KNN model\n", " knnreg.fit(X_train, y_train) # Fit the model to training data\n", " score_test = knnreg.score(X_test, y_test) # Calculate R^2 score\n", " scores_test.append(score_test)\n", "\n", "# Plot\n", "fig, ax = plt.subplots(1,1, figsize=(12,8))\n", "ax.plot(ks, scores_test,'o-', ms=12)\n", "ax.set_xlabel(r'$k$')\n", "ax.set_ylabel(r'$R^{2}$')\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# solution to previous exercise\n", "r2_test = knnreg.score(X_test, y_test)\n", "print(f'kNN model with {k} neighbors gives R^2 on the test set: {r2_test:.5}')" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 1 }