Created
September 8, 2014 11:14
-
-
Save tijptjik/6525a94272ccdfe2c4e7 to your computer and use it in GitHub Desktop.
LEsson 5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "metadata": { | |
| "name": "", | |
| "signature": "sha256:cb4edf32db27c812da32cfcdc3e01b0d64defc326079fed544c62b8dda6d0163" | |
| }, | |
| "nbformat": 3, | |
| "nbformat_minor": 0, | |
| "worksheets": [ | |
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "%%javascript\n", | |
| "function is_local(){\n", | |
| " return (document.location.hostname == \"localhost\" || document.location.hostname == '127.0.0.1')\n", | |
| "}\n", | |
| "var url = is_local() ? \"http://127.0.0.1:8888/files/theme/custom.js\" : \"http://odhk.github.io/hyrule_theme/custom.js\"\n", | |
| "$.getScript(url)" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "javascript": [ | |
| "function is_local(){\n", | |
| " return (document.location.hostname == \"localhost\" || document.location.hostname == '127.0.0.1')\n", | |
| "}\n", | |
| "var url = is_local() ? \"http://127.0.0.1:8888/files/theme/custom.js\" : \"http://odhk.github.io/hyrule_theme/custom.js\"\n", | |
| "$.getScript(url)" | |
| ], | |
| "metadata": {}, | |
| "output_type": "display_data", | |
| "text": [ | |
| "<IPython.core.display.Javascript at 0x7ffbe83a7d50>" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 1 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# The Linear Regression" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "> Statistics show that of those who contract the habit of eating, very few survive.\n", | |
| "\n", | |
| "<footer>~ George Bernard Shaw</footer>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "1. [Introduction To Regression Data Problems](#Intro-to-Regression-Data-Problems)\n", | |
| "1. [How Regressions Work](#How-Regressions-Work)\n", | |
| "1. [Determining Cost](#Cost-Of-Linear-Regressions)\n", | |
| "\n", | |
| "**Labs:**\n", | |
| "1. [Implementing The Linear Model](#Implementing-the-Linear-Regression)\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "" | |
| ] | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 2, | |
| "metadata": {}, | |
| "source": [ | |
| "Intro to Regression Data Problems" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "| \t|continuous\t|categorical \t|\n", | |
| "|:-:\t|:-:\t|:-:\t|\n", | |
| "|**supervised** \t|**regression** \t|classification \t|\n", | |
| "|**unsupervised** \t|dimension reduction \t|clustering \t|" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "A regression model is a functional relationship between input & response\n", | |
| "variables.\n", | |
| "\n", | |
| "The **simple linear regression** model captures a linear relationship between a single input variable x and a response variable y:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$y = \u03b1+\u03b2x+\u03b5$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "* $y$ = response variable (the one we want to predict)\n", | |
| "* $x$ = input variable (the one we use to train the model)\n", | |
| "* $\u03b1$ = intercept (where the line crosses the y-axis)\n", | |
| "* $\u03b2$ = regression coefficient (the model \u201cparameter\u201d)\n", | |
| "* $\u03b5$ = residual (the prediction error)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "We can extend this model to several input variables, giving us the multiple linear regression model:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$y = \u03b1 + \u03b2_1x_1 + ... + \u03b2_nx_n + \u03b5$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| " [Regression Analysis By Example](http://type.hk:2551/calibre/browse/book/294)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Linear regression involves several technical assumptions and is often presented with lots of mathematical formality.\n", | |
| "\n", | |
| "In order for us to gain a deeper understanding of the \u201cmagic\u201d behind a regression (and to see why we want a machine to do this!), let\u2019s review the math behind this algorithm!" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "" | |
| ] | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 2, | |
| "metadata": {}, | |
| "source": [ | |
| "How Regression Works" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Linear regression is, for the most part, just matrix algebra (the stuff we did already!)\n", | |
| "\n", | |
| "Let\u2019s go over the math by hand so we can understand how we determine the regression coefficient." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "A linear regression in its simplest form:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$y = \u03b1 + \u03b2x + \u03b5$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "but we can assume that our \u03b1 is either 0 or 1, and \u03b5 is zero!" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$y = \u03b2x$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "but we want to solve for \u03b2, which means our new equation looks more like this:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$\u03b2 = ( X^TX)^{-1} X^Ty$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "How did we get there?" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$\u03b2 = \\frac{y}x$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "That's problematic, as we cannot divide by a matrix! So we first square the matrix." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$\\frac{xy}{x^2}$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "That's how we avoid division by a matrix" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$\\frac{1}{x{^2}} * \\frac{xy}1$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "By using inversion; since raising $x$ to the power of negative 1 is equal to $1$ over $x$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$(XX)^{-1}XY$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "And finally to make it programmer friendly" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$\u03b2 = ( X^TX)^{-1} X^TY$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "So if we had data:\n", | |
| "\n", | |
| " Input Output\n", | |
| " 3.385 44.5\n", | |
| " 0.48 15.5\n", | |
| " 1.35 8.1\n", | |
| " 465 423\n", | |
| " 36.33 119.5" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "These would be the steps we moved through" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$\u03b2=\\left(\n", | |
| " \\begin{array}{r}\n", | |
| " \\begin{matrix}\n", | |
| " 1 & 1 & 1 & 1 & 1 & \\\\\n", | |
| " 3.385 & 0.48 & 1.35 & 465 & 36.33\n", | |
| " \\end{matrix}\n", | |
| " \\begin{matrix}\n", | |
| " 3.385 & 1 & \\\\\n", | |
| " 0.48 & 1 & \\\\\n", | |
| " 1.35 & 1 & \\\\\n", | |
| " 465 & 1 & \\\\\n", | |
| " 36.33 & 1\n", | |
| " \\end{matrix}\n", | |
| " \\end{array}\n", | |
| " \\right)^{-1}\n", | |
| " \\cdots$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$\u03b2 = ( X^TX)^{-1} \\cdots$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$\\cdots\n", | |
| " \\left(\n", | |
| " \\begin{array}{r}\n", | |
| " \\begin{matrix}\n", | |
| " 1 & 1 & 1 & 1 & 1 & \\\\\n", | |
| " 3.385 & 0.48 & 1.35 & 465 & 36.33\n", | |
| " \\end{matrix}\n", | |
| " \\begin{matrix}\n", | |
| " 44.5 & \\\\\n", | |
| " 15.5 & \\\\\n", | |
| " 8.1 & \\\\\n", | |
| " 423 & \\\\\n", | |
| " 119.5\n", | |
| " \\end{matrix}\n", | |
| " \\end{array}\n", | |
| " \\right)\n", | |
| " $$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$ \\cdots X^TY$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$\u03b2=\\begin{array}{r}\n", | |
| " \\begin{bmatrix}\n", | |
| " 0.2617 & -0.0006 & \\\\\n", | |
| " -0.0006 & 0.000006\n", | |
| " \\end{bmatrix}\n", | |
| " \\begin{bmatrix}\n", | |
| " 610.6 & \\\\\n", | |
| " 201205.4425\n", | |
| " \\end{bmatrix}\n", | |
| " \\end{array}\n", | |
| "$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$\u03b2 = ( X^TX)^{-1} X^TY$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$ \\begin{bmatrix}\n", | |
| " 37.2 & \\\\\n", | |
| " 0.838\n", | |
| " \\end{bmatrix}\n", | |
| " = \\begin{array}{r}\n", | |
| " \\begin{bmatrix}\n", | |
| " 0.2617 & -0.0006 & \\\\\n", | |
| " -0.0006 & 0.000006\n", | |
| " \\end{bmatrix}\n", | |
| " \\begin{bmatrix}\n", | |
| " 610.6 & \\\\\n", | |
| " 201205.4425\n", | |
| " \\end{bmatrix}\n", | |
| " \\end{array}\n", | |
| "$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$\u03b2 = ( X^TX)^{-1} X^TY$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$ \\begin{array}{c}\n", | |
| " Intercept : 37.2 & \\\\\n", | |
| " \u03b2 : 0.838\n", | |
| " \\end{array}\n", | |
| "$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "**Q: How did we do compared to a computer?**\n", | |
| "\n", | |
| "A: Not bad!" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "**Q: Cool! That means we can do all of our regressions by\n", | |
| "hand now, right?**" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "If you are interested in the mathematical derications of the formulas we use in class, I'd suggest picking up" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "[Matrix Algebra as a Tool](http://book.type.hk/calibre/browse/book/464)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 3, | |
| "metadata": {}, | |
| "source": [ | |
| "Steps in Regression Analysis" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "1. Statement of the Problem \n", | |
| "1. Selection of Potentially Relevant Variables\n", | |
| "1. Data Collection \n", | |
| "1. Model Specification \n", | |
| "1. Method of Fitting \n", | |
| "1. Model Fitting \n", | |
| "1. Model Criticism and Selection" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "" | |
| ] | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 2, | |
| "metadata": {}, | |
| "source": [ | |
| "Cost Of Linear Regressions" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "** Q: How do measure error in a linear regression model?**\n", | |
| "\n", | |
| "A: In theory, minimize the sum of the squared residuals\n", | |
| "(**RSS**, or **SSE**).\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$SST = \\Sigma(y_i-\\bar{y})^2$$\n", | |
| "$$SSR = \\Sigma(\\hat{y_i}-\\bar{y})^2$$\n", | |
| "$$SSE = \\Sigma(y_i-\\hat{y_i})^2$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "SST = Total Sum of Squared Deviations in $Y$ from its mean $\\hat{y}$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "SSR = Sum of squares due to regression" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "SSE = Sum of Squared Residiuals" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "In some cases the total sum of squares equals the sum of the two other sums of squares defined above" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$SST = SSR + SSE$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "In practice, any respectable software can do this for you.\n", | |
| "\n", | |
| "In python, we can find this with some quick code." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "import numpy as np\n", | |
| "\n", | |
| "prediction = np.array([1, 2, 3])\n", | |
| "actual = np.array([1.12, 1.89, 3.02])\n", | |
| "\n", | |
| "np.mean((prediction - actual) ** 2)" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 45, | |
| "text": [ | |
| "0.0089666666666666835" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 45 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "**Q: How do measure goodness of fit?**\n", | |
| "\n", | |
| "A: In theory, we want to maximize $R^2$ (as close to $1$ as possible)." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$R = 1 - \\frac{SSE}{SST}$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Scikit Learn already calculates this for us, as do any other stats packages and programs.\n", | |
| "\n", | |
| "If you want to get serious into regression, learn more about the coefficient of determination." | |
| ] | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 3, | |
| "metadata": {}, | |
| "source": [ | |
| "Review : Cost" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "1. What values are we looking for when we consider SSE?\n", | |
| "What is the best value we could potentially have?\n", | |
| "2. What is the best value we could have for $R^2$ ?\n", | |
| "3. What\u2019s the primary difference between these two values?" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "" | |
| ] | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 2, | |
| "metadata": {}, | |
| "source": [ | |
| "Implementing the Linear Regression" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "* Work through various data and scatterplots\n", | |
| "* Create linear models with simple relationships (one feature)\n", | |
| "* Create linear models with multiple features\n", | |
| "* Evaluate model performance" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "%matplotlib inline\n", | |
| "import pandas as pd\n", | |
| "import numpy as np\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "\n", | |
| "# Set some Pandas options\n", | |
| "pd.set_option('max_columns', 30)\n", | |
| "pd.set_option('max_rows', 20)\n", | |
| "\n", | |
| "# Store data in a consistent place\n", | |
| "DATA_DIR = '../data/'" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 13 | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 3, | |
| "metadata": {}, | |
| "source": [ | |
| "Build an incredibly basic linear model function." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "from numpy import array, dot\n", | |
| "from scipy.linalg import inv\n", | |
| "\n", | |
| "X = array([ [1, 1], [1, 2], [1, 3], [1, 4] ])\n", | |
| "y = array([ [1], [2], [3], [4] ])\n", | |
| "\n", | |
| "print X\n", | |
| "print X.T\n", | |
| "\n", | |
| "print dot(X.T, X)\n", | |
| "\n", | |
| "n = inv(dot(X.T, X))\n", | |
| "\n", | |
| "print n\n", | |
| "\n", | |
| "k = dot(X.T, y)\n", | |
| "\n", | |
| "print k\n", | |
| "\n", | |
| "coef_ = dot(n, k)\n", | |
| "\n", | |
| "print coef_" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "[[1 1]\n", | |
| " [1 2]\n", | |
| " [1 3]\n", | |
| " [1 4]]\n", | |
| "[[1 1 1 1]\n", | |
| " [1 2 3 4]]\n", | |
| "[[ 4 10]\n", | |
| " [10 30]]\n", | |
| "[[ 1.5 -0.5]\n", | |
| " [-0.5 0.2]]\n", | |
| "[[10]\n", | |
| " [30]]\n", | |
| "[[ -3.55271368e-15]\n", | |
| " [ 1.00000000e+00]]\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 14 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "This can all be turned into one relatively simple algorithm, though it is rather limiting in features." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "def regression(input, response):\n", | |
| " return dot(inv(dot(input.T, input)), dot(input.T, response))" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 15 | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 3, | |
| "metadata": {}, | |
| "source": [ | |
| "Practice: Plotting Data" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "We're gonna start by playing with data about mammals brain and body size. \n", | |
| "\n", | |
| "Use the gist [link](https://gist.github.com/tijptjik/2f6307ee4d192ce8927b\n", | |
| ") and find the \"< >\" button to get the actual raw data file.\n", | |
| "\n", | |
| "Lets load the data into pandas and generate a scatterplot:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "!curl https://gist.githubusercontent.com/tijptjik/2f6307ee4d192ce8927b/raw/c56f694bf4e7bbeeec92e24d33a8f49f7da37be8/mammals.csv > ../data/mammals.csv " | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| " % Total % Received % Xferd Average Speed Time Time Time Current\r\n", | |
| " Dload Upload Total Spent Left Speed\r\n", | |
| "\r", | |
| " 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0" | |
| ] | |
| }, | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "\r", | |
| " 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0" | |
| ] | |
| }, | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "\r", | |
| "100 1402 0 1402 0 0 1250 0 --:--:-- 0:00:01 --:--:-- 1250\r\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 26 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "mammals = pd.read_csv(DATA_DIR + 'mammals.csv')\n", | |
| "mammals.describe()" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "html": [ | |
| "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>body</th>\n", | |
| " <th>brain</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>count</th>\n", | |
| " <td> 62.000000</td>\n", | |
| " <td> 62.000000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>mean</th>\n", | |
| " <td> 198.789984</td>\n", | |
| " <td> 283.134194</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>std</th>\n", | |
| " <td> 899.158011</td>\n", | |
| " <td> 930.278942</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>min</th>\n", | |
| " <td> 0.005000</td>\n", | |
| " <td> 0.140000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>25%</th>\n", | |
| " <td> 0.600000</td>\n", | |
| " <td> 4.250000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>50%</th>\n", | |
| " <td> 3.342500</td>\n", | |
| " <td> 17.250000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>75%</th>\n", | |
| " <td> 48.202500</td>\n", | |
| " <td> 166.000000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>max</th>\n", | |
| " <td> 6654.000000</td>\n", | |
| " <td> 5712.000000</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "<p>8 rows \u00d7 2 columns</p>\n", | |
| "</div>" | |
| ], | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 32, | |
| "text": [ | |
| " body brain\n", | |
| "count 62.000000 62.000000\n", | |
| "mean 198.789984 283.134194\n", | |
| "std 899.158011 930.278942\n", | |
| "min 0.005000 0.140000\n", | |
| "25% 0.600000 4.250000\n", | |
| "50% 3.342500 17.250000\n", | |
| "75% 48.202500 166.000000\n", | |
| "max 6654.000000 5712.000000\n", | |
| "\n", | |
| "[8 rows x 2 columns]" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 32 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "plt.figure(figsize=(20,8))\n", | |
| "plt.scatter(mammals['body'], mammals['brain'])\n", | |
| "plt.show()" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "display_data", | |
| "png": "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\ndrQeBaWGhoZceuml3UGpra0tmzZtyj777JMkOeyww9Lc3Jzly5dn2rRpSZK99947W7Zsyfr167N8\n+fI0NTUlSaZPn57m5ubeOBcAAAAAdoA/GpSuvPLKjB49eqvHqlWrcuyxx271c21tbamrq+t+PmLE\niLS2tqatrS0jR478o+vDhw9Pa2trb54TAAAAANtRpXjp+9ZKaGlpyeWXX55vfvObaWtry4QJE/Lw\nww8nSb7yla9ky5YtGTRoUDZu3JizzjorSfLe9743d955Z6ZNm5bbbrste+65Zx566KGce+65uemm\nm7Y6fn19fR577LFXeXoAAAAAvOgd73hH1q5d+6qPM6AXZkldXV0GDRqUxx9/PPvss0/uuOOOLFiw\nIP3798/ZZ5+dT37yk3niiSdSFEX22GOPNDQ05JZbbsns2bNz6623plqt/sExe+PkAAAAAOh9PQ5K\nlUollUql+/lll12W448/Ps8991wOO+ywjB07NkkyefLkTJgwIV1dXVm0aFGS5Nxzz83s2bOzePHi\n7LnnnlmyZMmrPA0AAAAAdpQev+UNAAAAgF1Tjz7lrTddf/31Of7447ufr1ixIuPHj8+kSZNywQUX\ndK+ff/75GTduXBoaGrJy5cokyfr16zNt2rRUq9V86EMfSkdHxw6fn9rq6urKnDlzMnHixEyZMsV9\nt3Zx9913X6ZMmZLk+bfNTpo0KdVqNfPmzev+VMrFixdn7NixmTBhQpYuXZok6ejoyKxZs1KtVjNj\nxoysX7++ZufA9rd58+accMIJqVarGTduXG666Sb7hZf13HPP5aMf/WgmTZqUyZMn5+GHH7Zf+KN+\n85vfZO+9986jjz5qr/BHvfe9782UKVMyZcqUnHzyyfYLL+uzn/1sJk6cmLFjx+aaa66xV3hZ11xz\nTffryvjx4zNkyJCsWrVq++2XooZOP/30Yv/99y+OO+647rWDDjqoePzxx4uiKIoPfOADxQMPPFCs\nWrWq+Mu//MuiKIriF7/4RTF27NiiKIri7//+74trrrmmKIqi+NznPlf84z/+4w4+A2rtu9/9bvGR\nj3ykKIqiWLFiRXHEEUfUeCJq5fOf/3wxevToYsKECUVRFMXhhx9e3HXXXUVRFMWcOXOK66+/vnjy\nySeL0aNHF52dnUVra2sxevToYtOmTcVFF11UnH/++UVRFMW1115bnHHGGTU7D7a/q666qvj4xz9e\nFEVR/Pa3vy323nvvYubMmfYL23TDDTcUJ598clEURdHS0lLMnDnTfuFldXZ2FkceeWTxzne+s/jx\nj3/s3yJeVkdHRzFmzJit1uwXtuU//uM/isMPP7woiqJ45plnik9/+tP+HeIVOe2004rFixdv1/1S\n0yuUGhoacumll3YXsra2tmzatCn77LNPkuSwww5Lc3Nzli9fnmnTpiVJ9t5772zZsiXr16/P8uXL\n09TUlCSZPn16mpuba3Mi1MxL98C4ceNy//3313giaqW+vj7XXXdd9+vJ6tWru2/4/+Lrw8qVK9PQ\n0JCBAwemrq4u9fX1WbNmzVb7qKmpyWvJTu6YY47pvgK2q6srAwcOtF94WUcccUQuv/zyJMnPfvaz\n7L777lm1apX9wjadddZZmTt3bt74xjcm8W8RL++hhx7Khg0bcthhh2Xq1KlZsWKF/cI23XHHHRk9\nenSOPPLIHH744Zk5c6Z/h/iT7r///vzoRz/KKaecsl33yw4JSldeeWVGjx691WPVqlU59thjt/q5\ntra21NXVdT8fMWJEWltb09bWlpEjR/7R9eHDh6e1tXVHnA6vIb+/Z/r375+urq4aTkStHHXUURkw\n4L8/Z6B4ye3hXslryYv76MU1dl7Dhg3L8OHD097enmOOOSYXXnjhVq8b9gu/r3///jnppJNyxhln\n5Pjjj/f6wjZdffXV2XPPPbv/T9CiKOwVXtawYcNy1lln5fbbb+/+cKOXsl940dNPP51Vq1bl3/7t\n33LZZZflwx/+sNcW/qSFCxfmvPPOS7J9/3dRjz/lrYyTTz45J5988p/8ubq6urS3t3c/b2try6hR\nozJo0KCt1tvb2zNq1KjU1dWlra0te+65Z/cau5bf3zNdXV3p16/mtwbjNeCl++DF15Lf3y8vfS15\ncd1rya7hiSeeyFFHHZXTTjstxx13XM4+++zu79kvbMvVV1+ddevW5eCDD87GjRu71+0XXnTVVVel\nUqmkubk5Dz74YGbPnp2nn366+/v2Ci+13377pb6+Pkmy7777Zo899sgDDzzQ/X37hRe9/vWvz7ve\n9a4MGDAg++23X3bbbbf86le/6v6+vcLv+93vfpdHH300hxxySPL/t3P/LI1EURjGn0Ew2NgEe8FG\nRERBAzKOFoEoWAnpExELmzS2VhYRBIsU2lgEFPwI/i00sfEbCBYWFoJlEAQVZ7YQs4LrSgpXWZ9f\nd7oZeDl37uHe4XP3Rd9q593Z2Ul7ezuXl5ckScLh4SHj4+OEYcjBwQFJknB1dUWSJKTTacIwZHd3\nF4C9vb3mMS79HK8zcHZ2xsDAwBc/kb6LoaEharUa8Ls/ZDIZTk9Pub+/p9FocH5+Tn9/v73kh7m5\nuSGXy7G6ukqxWATMi963vb3NysoKAB0dHbS1tTE8PGxe9EatVuPk5ITj42MGBwfZ2tpiamrKrOiP\nqtUqi4uLAFxfX3N7e0sulzMvemNsbIz9/X3gOSt3d3dks1mzonfV63Wy2Wyz/szv3H9yQulvgiAg\nCIJm/XLk8+npicnJSUZGRgCIoojR0VHiOGZ9fR2ApaUlCoUCm5ubdHV1sbOz8yXvoK8zMzPD0dER\nYRgCz4uzfraXfrK2tsb8/DwPDw/09fWRz+cJgoBSqUQURcRxTLlcJpVKsbCwQKFQIIoiUqmUveQ/\nVy6XaTQaLC8vN/+lVKlUKJVK5kVv5PN5isUiExMTPD4+UqlU6O3ttb/oQ0EQuBbpXXNzc8zOzjY3\na9VqlXQ6bV70xvT0NPV6nUwmQxzHbGxs0N3dbVb0rouLC3p6epr1Z65FQfL6Qp0kSZIkSZL0gW91\n5U2SJEmSJEnfnwMlSZIkSZIktcSBkiRJkiRJklriQEmSJEmSJEktcaAkSZIkSZKkljhQkiRJkiRJ\nUkscKEmSJEmSJKklDpQkSZIkSZLUkl/0GOyHwnGSkwAAAABJRU5ErkJggg==\n", | |
| "text": [ | |
| "<matplotlib.figure.Figure at 0x374b2d0>" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 50 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "plt.figure(figsize=(20,8))\n", | |
| "plt.hist(mammals['body'], bins=range(0, 10000, 100))\n", | |
| "plt.show()" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "display_data", | |
| "png": "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\nAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAA\nAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAA\nkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQ\niBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCI\nGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkMhJxaB33303pk6dGvv27Yv9+/fHnDlz\nolwux8qVK6MoilrvEQAAAIAqGTIGHT9+PL75zW/GpEmToiiKuOuuu6KjoyO6u7ujKIrYtm3baOwT\nAAAAgCoYMgatWbMm7rjjjrjgggsiImLPnj1RLpcjImLBggXR2dlZ2x0CAAAAUDWDxqCtW7fG+eef\nH/PmzYuIiKIoTvhYWF1dXfT09NR2hwAAAABUzYTBHtyyZUuUSqXo7OyMl156KW699dY4dOjQwOO9\nvb0xefLkQVZY94nvmz76AgAAAOBkVCqVqFQqVV2zVJzkGaCbm5tj06ZNsWbNmmhvb4+5c+fGihUr\noqWlJZYtW/bphUuliBjeyaXr6xtj587HorGxcVivBwAAADgdlUqlEV/Ma9Ajg/7dP/jAAw9EW1tb\n9PX1RUNDQyxdunREGwAAAABg9Jx0DNqxY8fA99U+PAkAAACA0THk1cQAAAAAOH2IQQAAAACJiEEA\nAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiYhBAAAAAImIQQAA\nAACJiEEAAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiYhBAAAA\nAImIQQAAAACJiEEAAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiYhBAAAAAImIQQAAAACJiEEAAAAA\niYhBAAAAAImIQQAAAACJiEEAAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiYhBAAAAAImIQQAAAACJ\niEEAAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiYhBAAAAAImI\nQQAAAACJiEEAAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiYhB\nAAAAAImIQQAAAACJiEEAAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiYhBAAAAAImIQQAAAACJiEEA\nAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiYhBAAAAAImIQQAAAACJiEEAAAAAiUwY6gkffPBBtLW1\nxb59+6JUKsWmTZvijDPOiNbW1hg3blzMmDEjNm7cGKVSaTT2CwAAAMAIDHlk0FNPPRXjxo2LnTt3\nxr333hvf+c53or29PTo6OqK7uzuKooht27aNxl4BAAAAGKEhY9CNN94YDz/8cEREvP7663HuuefG\n7t27o1wuR0TEggULorOzs7a7BAAAAKAqTuqcQePHj4/W1tZYvXp13HLLLVEUxcBjdXV10dPTU7MN\nAgAAAFA9Q54z6GNbt26NgwcPxqxZs+K9994buL+3tzcmT55ck80BAAAAUF1DxqBHH300/va3v8Xa\ntWvjrLPOivHjx8eVV14ZXV1dMXfu3Ni+fXu0tLR8xqvXfeL7po++AAAAADgZlUolKpVKVdcsFZ/8\nzNe/cfTo0WhtbY133nknjh8/HmvXro1LL7002traoq+vLxoaGmLz5s2fuprYh7cHXfoz1dc3xs6d\nj0VjY+OwXg8AAABwOiqVSjFEyhl6jaFi0LAXFoMAAAAAqqoaMeikTiANAAAAwOlBDAIAAABIRAwC\nAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhEDAIA\nAABIRAwCAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAA\nAEhEDAIAAABIRAwCAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhEDAIAAABIRAwCAAAA\nSEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhEDAIAAABI\nRAwCAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhE\nDAIAAABIRAwCAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQM\nAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhEDAIAAABIRAwC\nAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhEDAIAAABIRAwCAAAASEQMAgAAAEhkwmAP\nHj9+PG6//fZ444034tixY/G9730vLrvssmhtbY1x48bFjBkzYuPGjVEqlUZrvwAAAACMwKBHBv3s\nZz+L888/P7q7u+Ppp5+OVatWRXt7e3R0dER3d3cURRHbtm0brb0CAAAAMEKDxqBly5bFPffcExER\n/f39MXHixNizZ0+Uy+WIiFiwYEF0dnbWfpcAAAAAVMWgMWjSpElRV1cXvb29sWzZsrj33nujv79/\n4PG6urro6emp+SYBAAAAqI5BzxkUEXHgwIFYsmRJrFq1Km666aa4++67Bx7r7e2NyZMnD/LqdZ/4\nvumjLwAAAABORqVSiUqlUtU1B41BBw8ejHnz5sVDDz0Uzc3NERExc+bM6Orqirlz58b27dujpaVl\nkBXWVXGrAAAAALk0NTVFU1PTwO3169ePeM1BY1BHR0f09PTEPffcM3DuoAcffDDuvPPO6Ovri4aG\nhli6dOmINwEAAADA6CgVRVHUZOFSKSKGt3R9fWPs3PlYNDY2VndTAAAAAKewUqkUI005g55AGgAA\nAIDTixgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAA\nAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAA\nkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQ\niBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCI\nGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgY\nBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgE\nAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQAAACQiBgEAAAAkIgYBAAAAJCIGAQA\n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\n/Ojs7Byzn4NTz7Jly+Kee+6JiA+PgJw4caL5Y1TceOON8fDDD0dExOuvvx7nnntu7N692+wxatas\nWRN33HFHXHDBBRHhdy+j4+WXX44jR47E9ddfHy0tLbFr1y6zx6h55plnorGxMRYvXhwLFy6MRYsW\n+d3LqHrhhRfiz3/+c3zjG9+o6exVNQYdPnw46uvrB26PHz8++vv7q/lPkNiSJUtiwoT/vQBe8YnT\nXZ199tnR09MThw8fjnPOOeff3v/xbH58H5ysSZMmRV1dXfT29sayZcvi3nvvPeG9zfxRS+PHj4/W\n1tZYvXp13HLLLd77GDVbt26N888/P+bNmxcRH/7eNX+MhkmTJsWaNWvid7/7XWzatCluueWWEx43\ne9TSoUOHYvfu3fHLX/4yNm3aFDfffLP3PkZVR0dH/OAHP4iI2v7NO6xLy3+W+vr66O3tHbjd398f\n48ZVtTfBgE/O1uHDh2Py5MmfmsHe3t5P3f/xffCfOHDgQCxZsiRWrVoVN910U9x9990Dj5k/am3r\n1q1x8ODBmDVrVrz33nsD95s9amnLli1RKpWis7MzXnrppbj11lvj0KFDA4+bP2pl+vTpMW3atIiI\nuPjii2PKlCnx4osvDjxu9qil8847Ly677LKYMGFCTJ8+Pc4888x48803Bx43f9TSP//5z9i3b1/M\nnTs3Imr7N29VS811110Xv/3tbyMiYteuXXH55ZdXc3k4wcyZM6OrqysiIrZv3x7lcjlmzZoVv//9\n7+PYsWPR09MTf/nLX2LGjBknzObHz4WTdfDgwZg3b17cf//90draGhHmj9Hx6KOPxoYNGyIi4qyz\nzorx48fHlVdeafYYFV1dXVGpVGLHjh3x5S9/OX7605/G/PnzzR81t2XLlmhvb4+IiLfeeit6e3tj\n3rx5Zo9RMWfOnHj66acj4sP5O3LkSLS0tJg/RkV3d3e0tLQM3K7l3xxVvbR8URSxcuXK2Lt3b0R8\n+EY+ffr0ai0P8frrr8fNN98czz33XLzyyivR1tYWfX190dDQEJs3b45SqRQ/+clP4sc//nH09/fH\nd7/73fjqV78aR48ejVtvvTXefvvtOOOMM+Kxxx6LL3zhC2P943CKWL16dfziF7+ISy65ZOC+Bx98\nMO68807zR00dPXo0Wltb45133onjx4/H2rVr49JLL/Xex6hrbm6Ohx9+OEqlkvmj5t5///247bbb\n4o033oiIiPvvvz+mTJli9hg13/72t2PHjh3R398fGzZsiAsvvND8MSp+9KMfxec+97m48847IyJq\n+jdvVWMQAAAAAP/dnNAHAAAAIBExCAAAACARMQgAAAAgETEIAAAAIBExCAAAACARMQgAAAAgETEI\nAAAAIBExCAAAACCR/weQFSSfJtNlTwAAAABJRU5ErkJggg==\n", | |
| "text": [ | |
| "<matplotlib.figure.Figure at 0x44ded90>" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 51 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "plt.figure(figsize=(20,8))\n", | |
| "plt.hist(mammals['brain'], bins=range(0, 10000, 100))\n", | |
| "plt.show()" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "display_data", | |
| "png": "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\naWtry6hRozJ+/Pjs2bPnLft/7ty52bp167v2OqA3CxcuzF/+5V8mef2Izra2NnudIefqq6/OnXfe\nmSR5+umnc84552TXrl32OUPOqlWrctNNN2Xs2LFJvHdh6PnhD3+YV155JVdccUVmz56dRx55xD5n\nyPne976Xiy66KPPnz8+VV16Zq666alDft7Q8Bh08eDCjRo06/vPw4cNz7NixVv8aGDQLFizIiBG/\n+KK9+oTTap111lk5cOBADh48mLPPPvtX3v7m/n/zNngvGjlyZNrb29PV1ZWFCxfmlltuecu/1fY6\nQ8Xw4cOzaNGirFixItdee61/0xlyNm/enDFjxmTOnDlJXn/fYp8z1IwcOTKrVq3Kd7/73axfvz7X\nXnvtW+63zxkKXnzxxezatSv/8i//kvXr1+eaa64Z1H/PT+mr5XszatSodHV1Hf/52LFjGTas5c0J\nTpsT9+/BgwczevTok/Z5V1fXSbe/eRu8V+3bty8LFizIsmXL8qlPfSqf+9znjt9nrzOUbN68Ofv3\n78+0adNy5MiR47fb5wwFmzZtSlVV2bp1ax577LFcd911efHFF4/fb58zFEycODHjx49PkkyYMCHn\nnntudu/effx++5yh4Dd+4zfy4Q9/OCNGjMjEiRPza7/2a3n22WeP39/qfd7ySnP55ZfnP/7jP5Ik\njzzySD7ykY+0+lfAaTVlypRs3749SfLtb387HR0dmTZtWv7zP/8zr776ag4cOJD/+Z//yYUXXviW\n/f/mY+G9aP/+/ZkzZ07WrVuXRYsWJbHXGXruuuuu3HrrrUmS97///Rk+fHguueQS+5whZfv27Wk2\nm9m2bVs++tGP5u/+7u8yd+5c+5whZdOmTens7EyS/PSnP01XV1fmzJljnzOkzJgxI9/5zneSvL7P\nX3nllcyePXvQ9nnLv1q+russXbo0e/bsSfL6X9yJEye28lfAoHv66adzzTXX5OGHH84TTzyRxYsX\np7u7O5MnT87GjRtTVVW+8Y1vZMOGDTl27Fi+8IUv5JOf/GQOHz6c6667Ls8991ze97735R//8R9z\n3nnnvdsvB06yYsWK3HPPPZk0adLx27761a9m+fLl9jpDxuHDh7No0aI8//zz6enpyerVq/OhD33I\nv+kMWY1GI3feeWeqqrLPGVKOHj2a66+/Ps8880ySZN26dTn33HPtc4acP/3TP822bdty7Nix3Hrr\nrfnd3/3dQdvnLY9BAAAAALx3OZkPAAAAQEHEIAAAAICCiEEAAAAABRGDAAAAAAoiBgEAAAAURAwC\nAAAAKIj4vODIAAAAFElEQVQYBAAAAFAQMQgAAACgIP8fUYyqZ3ygeEUAAAAASUVORK5CYII=\n", | |
| "text": [ | |
| "<matplotlib.figure.Figure at 0x44e6190>" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 52 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "For the most part, we know that this data is a _long tail_ distribution, so we could take the log of each feature to create something that is not just more readable, but new features that could be a better representation of the data!\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "from numpy import log\n", | |
| "plt.figure(figsize=(20,8))\n", | |
| "\n", | |
| "mammals['log_body'] = log(mammals['body'])\n", | |
| "mammals['log_brain'] = log(mammals['brain'])\n", | |
| "\n", | |
| "plt.scatter(mammals['log_body'], mammals['log_brain'])" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 53, | |
| "text": [ | |
| "<matplotlib.collections.PathCollection at 0x46c6710>" | |
| ] | |
| }, | |
| { | |
| "metadata": {}, | |
| "output_type": "display_data", | |
| "png": "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\np556embNejo777xNTjnli+nfv/8KfcYll1yaiy66MqusUpfTTvtStttuuxV6/65qamrKt771nTz4\n4Ky8972b5dRTv5K6urqiYwHQByh9AADo9X70o/Ny8slnp7Hx9CTzUl8/Jffdd0dGjx5ddDQAKIyN\nnAEA6PW+//3z09h4UZKDkpyQhobjctFFvyg6FgD0GkofAABWSv+4N1C54vcLAoAVSekDAMBK6Qtf\nODZ1dUcm+U2SH6a+/vwcddThRccCgF7Dnj4AAKy0fvGLX+bii/87gwbVZcqUL2bbbbctOhIAFMpG\nzgAAwNtqb2/PhRdemIcempkxY0bl2GOPSXV1ddGxAFgOSh8AAOCfKpfLOeigw3Pjjc+nsfGA1NVd\nn/Hjh+b666+0ZxJAL6D0AQAA/qmnnnoqY8bsnKamZ5LUJmlOXd3I/PGPN2TLLbcsOh4A78CR7QAA\nwD/V2NiYqqrBSQYuGxmQ6upV09jYWGQsALqB0gcAAPqQzTbbLGusMSDV1d9MMjNVVd/O4MFLM3r0\n6KKjAbCCKX0AAKAPqampyV133ZRdd52Vddb5cMaPvz93331zamtri44GwApmTx8AAACAXsKePgAA\nAAB9nNIHAAAAoAIpfQAAAAAqkNIHAAAAoAIpfQAAutns2bPz3veOzaBBq2ebbcbmiSeeKDoSANAH\nvKvS55VXXsn666/vFxcAgLfR2NiYceP2zCOPHJKGhpl5+OHJGTduzzQ1NRUdjYL89re/zTbbTMjm\nm78/Z511jhNvAeg21V29sLW1Ncccc0zq6+tXZB4AgIoya9asLF06OOXyiUmScvkzaWr6aR5//PFs\ns802Baejp9155505+OCj09R0fpJV841v/L+Uy+V84QufLToaABWoyzN9vvSlL+W4447L2muvvSLz\nAABUlKFDh6a1dV6SJctGFqelZV6GDBlSZCwKcsklv05T08lJDkgyPo2NP8pPf3p50bEAqFBdKn0u\nvvjirLHGGvnABz6QJKakAgC8jU022SSTJx+Qurqdk+yT/v23yN57T8p73vOeoqNRgIED+6dUWvCW\nkQUZMKB/YXkAqGylchcam/Hjx6dUKqVUKuXPf/5zRo0alWuvvTZrrbXW325cKuXUU0998/WECRMy\nYcKEFRIaAKA3WbBgQUaO3CYLFoxKsn5qaq7J7353VcaNG1d0NHrY7Nmzs/32Y9PQcFzK5dVSV/ed\n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\ngQceWGH3njZtWs4444xceumlafvbBkoAAPwfZvoAQC91yy235IADPprW1o+kuvrFrLHGzDz88L0Z\nOnRoobm+JeGxAAAgAElEQVSWLl2a9dcflVdfPTXJR5NcmyFDPptnn33sXWc766xz8o1vnJWWlskZ\nMGB6dthhcG699dpUVVX9y+seffTRTJ58ZJ59dnY22WTL/Pd/X5zNNtvsXWUBACiCmT4A0AeccMIp\naWz8WVpbz05T03/n5Ze3zwUX/KToWHnyySfT3FyX5KgkA5IcnGTDzJw58x/eWy6Xs2TJkuX6xaW1\ntTWnnHJKGhvvTFvb99LQcHseeGBObrvttn953eLFizNhwt6ZPfuENDe/kFmzDs+ECXtn6dKlXfr5\nAAB6C6UPAPRSCxbMTzLqzdctLaPy6quvFxdomWHDhqWl5eUkf1k2sjAtLc9l9dVX/7v3PfLII1l/\n/VFZddU1MmTIWrnpppv+5X2bmppSLpeSbLBspDql0oi8/vq//plnzJiRtrbhSY5MMjTl8vFpbByY\nJ554ogs/HQBA76H0AYBe6oMf3DMDB56cZF6SB1NXd0H22usDRcfK2muvnZNO+mzq6/8tAweekPr6\nf8snPnFoRo36W0HV2tqaSZP2y5w530hbW2MWL74qH/7wx/LSSy+97X0HDx6czTffKtXVX0vyepLf\npqPjzuy0007/Ms9qq62W1tYXkyxZNjI/ra3zsuqqq76rn7NcLufee+/N1VdfnWeeeeZd3QsAoDtU\nFx0AAOiac8/9fpYuPTHXXbd5amsH5bvf/VZ23XXXomMlSc44Y0p2331cZsyYkZEj980ee+zxd/98\nzpw5aWhoT/LxZSNjU129TR5++OGss846b3vfm266OpMnH5kHH9w4a6yxbn75y6uywQYbvO37k2TU\nqFE55JAP5cord05z8+4ZMOB3OfLIo7L++ut3+ecrl8s56qgTcuWVN6WqanTa2o7JFVdclH333bfL\n9wQAWNFs5AwA9LjFixdnjTXWTXPzn5KMSLIwdXWjc++912errbZa4c8rl8u55pprMnv27IwePTof\n/OAH39VR8tOmTcs++xyThoYHkwxK8sfU1++VxYtfdUQ9ANCtOtO3mOkDAPS4VVZZJf/1X2fmi18c\nm379JqZcvi9HHHFItxQ+yRu/HH3oQx9aYfd7/vnnUyptnzcKnyTZIc3NjWloaMigQYP+1aUAAD3G\n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\nndKVPidy7NixLFq0KPPmzUtDQ0NeeeWVIp6GUeLtt9/O3XffnTlz5uRzn/tcnnvuubIn8RHo6urK\nxIkT09fXV/YUCtTd3Z2FCxemvr4+s2fPTmdnZ9mTKMDAwEDuuOOOzJ49O/Pnz3dPvorr7+/PsmXL\nMnfu3MyaNSu/+MUvyp7ER+DVV1/N5MmTc+DAgbKnULCWlpbMnj071157bX74wx+WPYcCDQwM5Ktf\n/WrmzJmTuXPnZv/+/WVPoiC/+tWvMn/+/CTJoUOHhs78zjvv/MA31yok+mzcuDFXXnllduzYkS99\n6Uv57ne/W8TTMEr86Ec/yltvvZWdO3fm2WefzR/+8IeyJ1Gwnp6erF69OhMmTCh7CgV75JFH0tDQ\nkLa2tmzYsCGrVq0qexIFePbZZ9PX15ddu3Zl7dq1Wb16ddmTKNCPf/zj1NXVpb29Pc8991zuuuuu\nsidRsP7+/qxYsSJnn3122VMoWFtbW55//vns2rUrbW1tefHFF8ueRIG2bduW3t7e7Ny5M9/61rfy\nzW9+s+xJFODhhx9Oc3Nz/vGPfyRJ7r333jz00ENpb2/P4OBgNm/e/L6PLyT61NbW5ujRo0neeZXY\njZ6rbdu2bbnoooty8803p7m5OYsWLSp7EgUaHBzMihUr0tLSktra2rLnULB77rkny5cvT/LODw3O\nvJo6Ojpy0003JUlmzZqVX//61yUvokiNjY35zne+k+SdV4nHjx9f8iKK9o1vfCMrV67MpEmTyp5C\nwbZt25Zp06Zl8eLFWbhwYW655ZayJ1Gg2tradHd3Z3Bw0M/dFTZ16tQ888wzQ1f0/Pa3v83cuXOT\nJF/4wheyffv29338Kf8tv379+jz66KNDH9fU1OT73/9+1q5dm6uuuiqvv/562tvbT/VpGCX+/3kn\nSV1dXWpra7Nly5a0t7fn9ttvz44dO0payEh6r/OeMmVKli5dmunTpyfJB15OyOnjvc57w4YNueaa\na/Lyyy9n2bJleeyxx0paR5F6enryiU98YujjcePGZWBgIGecUchrQ5Ts/672eOONN9LY2Jg1a9aU\nvIgibdiwIXV1dbnxxhvT0tLi7+2K++tf/5ojR45ky5YtefHFF3PLLbekq6ur7FkU5Prrr8/x48fz\n6U9/OkePHvXruhW1ZMmSHD58eOjjd38fP+ecc9Ld3f2+jy/kRs7Lly/Ptddem+bm5uzduzdf/vKX\ns3v37pF+GkaJpqamNDY2ZsmSJUmSSZMm5S9/+UvJqyjK5ZdfnosvvjhJ0tnZmVmzZqWtra3cURRq\n709LFkUAAAKcSURBVN69aWpqyrp167JgwYKy51CA1atX57rrrktjY2OSZPLkyTly5EjJqyjSkSNH\nsmTJkqxatSq33XZb2XMo0Lx581JTU5Oampr87ne/yxVXXJHNmzfnk5/8ZNnTKMD999+furq63Hvv\nvUmSGTNmZPv27bngggtKXkYRHnroofT29mbNmjV56aWX8vnPfz4vvPCCK34q6PDhw2lqasrzzz//\nT/+ftnnz5mzfvj2PP/74CR9byEt4vb29Q68Y1tXVpaenp4inYZSYM2dOfvnLXyZJdu/enSlTppS8\niCIdPHgwra2taW1tzYUXXpht27aVPYkC7du3L42NjfnJT34i+FTY9ddfP/R9vLOzc+hKPqrplVde\nyY033piHH35Y8BkDduzYkba2trS2tmbGjBnZuHGj4FNhc+bMGXpTlT//+c/p7e3N+eefX/IqivLu\nn7vPO++89Pf35+233y55FUWbOXPm0G/WbN26dehXvU6kkCt9/vSnP6W5uTnHjx/PW2+9lQcffDA3\n3HDDSD8No0RfX19WrlyZffv2JUmeeOKJzJgxo+RVfBQuvfTSdHV1eTWhwhYvXpw9e/YMxdyJEydm\n06ZNJa9ipA0ODubOO+/Mnj17kiRPPfVUPvWpT5W8iqLcfffdefrpp3PFFVcMfW7r1q1uzj8GzJ8/\nPz/4wQ/8911x9913X1pbWzMwMJCWlpY0NDSUPYmC/O1vf8vtt9+e1157Lf39/fn617+epUuXlj2L\nAhw+fDi33nprdu3alYMHD6a5uTl9fX35zGc+kyeffDI1NTUnfGwh0QcAAACAcrlDIwAAAEAFiT4A\nAAAAFST6AAAAAFSQ6AMAAABQQaIPAAAAQAWJPgAAAAAVJPoAAAAAVJDoAwAAAFBB/wsyW+pJbPnP\n1gAAAABJRU5ErkJggg==\n", | |
| "text": [ | |
| "<matplotlib.figure.Figure at 0x4284910>" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 53 | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 3, | |
| "metadata": {}, | |
| "source": [ | |
| "Practice: Using Linear Regressions" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "from sklearn import linear_model\n", | |
| "\n", | |
| "# Make the model object\n", | |
| "regr = linear_model.LinearRegression()\n", | |
| "\n", | |
| "# Fit the data\n", | |
| "body = [[x] for x in mammals['body'].values]\n", | |
| "brain = mammals['brain'].values\n", | |
| "\n", | |
| "regr.fit(body, brain)" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 36, | |
| "text": [ | |
| "LinearRegression(copy_X=True, fit_intercept=True, normalize=False)" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 36 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Above we go through some steps to get our data 'presentable' for scikit learn. There is a regression model available in PANDAS, but let's stick with the models available in scikit learn." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# Display the coefficients:\n", | |
| "print regr.coef_\n", | |
| "\n", | |
| "# Display our SSE:\n", | |
| "print np.mean((regr.predict(body) - brain) ** 2)\n", | |
| "\n", | |
| "# Scoring our model (closer to 1 is better!)\n", | |
| "print regr.score(body, brain)" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "[ 0.96649637]\n", | |
| "108423.210573\n", | |
| "0.872662084304\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 24 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Our performance here is okay (~87% accuracy), and can verify this with a plot:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "plt.figure(figsize=(20,8))\n", | |
| "plt.scatter(body, brain)\n", | |
| "plt.plot(body, regr.predict(body), color='blue', linewidth=3)\n", | |
| "plt.show()" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "display_data", | |
| "png": "iVBORw0KGgoAAAANSUhEUgAABJQAAAHeCAYAAADNUVHoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XuU1XW9PvBng0giDHjJ1MzSyJRMs8KDAQOKKEiaitnN\nI1ZiQmUXtCL7KZlR2bGjKd7Q1DzhNRMTCeMU4l28Ukc7XkqP9yKTGXQAdfbvj2+BF9gzDDN7bq/X\nWqw1fHk7vfdqL6Nnns9nl8rlcjkAAAAA0Ew92nsBAAAAADoXgRIAAAAA60SgBAAAAMA6ESgBAAAA\nsE4ESgAAAACsE4ESAAAAAOukRYHSxRdfnD333DN77rlnhgwZko022ih33313hg0bltra2kyePDnl\ncjlJMnPmzAwePDh77LFH5syZkyRpaGjI+PHjU1tbm3HjxmXJkiWt94oAAAAAaFOl8r+Snxb60pe+\nlA984AP59a9/nSlTpqS2tjaTJk3KvvvumyFDhmSfffbJ3XffnYaGhgwbNix33XVXzjzzzCxbtiwn\nnHBCLr/88tx222057bTTWus1AQAAANCG1uvI21133ZUHHnggRx55ZO6+++7U1tYmScaOHZv58+dn\n0aJFGTp0aHr16pWampoMHDgwixcvzi233JIxY8YkScaMGZP58+ev/ysBAAAAoCrWK1CaPn16Tjzx\nxCTJa4tO/fr1y9KlS1NXV5f+/fuv8XlNTc3rngEAAADQOWzQ0n/whRdeyEMPPZQRI0YkSXr0WJ1N\n1dXVZcCAAampqUl9ff2q5/X19W96/q9nbzRw4MA8+uijLV0PAAAAgDd497vfnUceeWS9v0+LA6WF\nCxdm1KhRq36/22675cYbb8yIESMyd+7cjBo1KrvvvnuOP/74rFixIsuXL8+DDz6YnXfeOUOHDs31\n11+fwYMHZ+7cuauOyr3Wo48+mvW83oluZNq0aZk2bVp7r0En4L3CuvB+obm8V1gX3i80l/cK68L7\nheYqlUqt8n1aHCg99NBDefe7373q96eeemomTpyYlStXZtCgQTnkkENSKpVyzDHHZPjw4WlsbMz0\n6dPTu3fvTJo0KRMmTMjw4cPTu3fvzJo1q1VeDAAAAABtr8WB0rHHHvu637/nPe/JggUL3jR35JFH\n5sgjj3zds4022ihXXHFFS/+jAQAAAGhH63UpN3QUI0eObO8V6CS8V1gX3i80l/cK68L7hebyXmFd\neL9QbaVyB72oqFQquUMJAAAAoBW1Vt6ioQQAAADAOhEoAQAAALBOBEoAAAAArBOBEgAAAADrRKAE\nAAAAwDoRKAEAAACwTgRKAAAAAKwTgRIAAAAA60SgBAAAAMA6ESgBAAAAsE4ESgAAAACsE4ESAAAA\nAOtEoAQAAADAOhEoAQAAALBOBEoAAAAArBOBEgAAAADrRKAEAAAAwDoRKAEAAACwTgRKAAAAAKwT\ngRIAAABAE15+OTnxxOSLX0waG9t7m/ZXKpfL5fZeYk1KpVI66GoAAABAN/H73yd77fX6Z1tvnTz1\nVPvss75aK2/RUAIAAAB4jRdeSPbfPymV3hwmJcnTT1d/p45GoAQAAACQ5MILixBpk02S665b+9yy\nZdXbqaMSKAEAAADd1l/+krzvfUWQ9LnPrX3uk59M6uuTcjnZeOPq7ddRCZQAAACAbuXVV5P/9/+K\nEGn77ZMHHljz3IYbJrfcUoRIl16a9O1b3T07sg3aewEAAACAarjjjmTkyGT58spz3/52ctJJSc+e\nVVmrUxIoAQAAAF3Wiy8mRx2VzJpVeW7HHZM5c4rGEk1z5A0AAADocq66qjjS1rdv5TDpgguKI20P\nPihMWhcaSgAAAECX8MwzycEHJ7ffXnnuox9Nfv7z4tPcaBkNJQAAAKDTKpeTH/+4aCNtvXXlMOm3\nvy3mf/1rYdL60lACAAAAOp3Fi5PRo5O//rXy3DHHFIHThhtWZ6/uQqAEAAAAdAorViRf/WpyzjmV\n57bZJpk3Lxk0qDp7dUcCJQAAAKBD+81vkrFjm5477bSikVQqtf1O3Z1ACQAAAOhw/v735NOfTm64\nofJcbW1yxRXJ295Wnb0ouJQbAAAA6BDK5eTcc4uG0eabVw6TrrmmmL/xRmFSe9BQAgAAANrVww8n\n++2XPPJI5bkjjkhmzEj69KnKWlSgoQQAAABU3SuvJN/8ZtFG2mGHtYdJNTXJokVFG+nCC4VJHYWG\nEgAAAFA1N91U3HvUlJNOSo4/PumhCtMhCZQAAACANlVXl3z2s8nVV1ee+8AHktmzk223rc5etJyc\nDwAAAGgTv/hFcaStf//KYdIllxRH2u69V5jUWWgoAQAAAK3m//4v+djHkvvuqzw3fnzys58VdyTR\n+WgoAQAAAOulsTH53veKNtI737n2MKlHj2ThwqKNdNVVwqTOTEMJAAAAaJG770722qu4I6mSb3wj\n+f73kw2kEF2G/yoBAACAZnvppeSLX0wuuqjy3MCByfXXJ+95T1XWosoESgAAAECTZs9ODjyw6blz\nzkmOOqo4/kbXJVACAAAA1ui555JDDy3uPapkn32SWbOSzTarzl60vxZfyv2DH/wgH/nIRzJ48OBc\nfPHFeeSRRzJs2LDU1tZm8uTJKZfLSZKZM2dm8ODB2WOPPTJnzpwkSUNDQ8aPH5/a2tqMGzcuS5Ys\naZ1XAwAAAKyXcjk5/fSiYbTllpXDpLlzi/l584RJ3U2LAqUFCxbktttuy6233poFCxbkz3/+c6ZM\nmZLp06dn4cKFKZfLmT17dp599tmcccYZufXWWzNv3rxMnTo1K1euzNlnn51dd901CxcuzOGHH56T\nTz65tV8XAAAAsA4eeCB5xzuKT2L76lfXPnf00cny5UWQNGZM9fajY2lRoHTDDTfk/e9/fw488MDs\nv//+OeCAA3L33XentrY2STJ27NjMnz8/ixYtytChQ9OrV6/U1NRk4MCBWbx4cW655ZaM+ee7bsyY\nMZk/f37rvSIAAACgWVauTL785aKN9L73JU8+uea5LbZI7r+/CJHOPjvp3bu6e9LxtOgOpb/97W95\n4oknct111+XPf/5z9t9//1VH3JKkX79+Wbp0aerq6tK/f/81Pq+pqXndMwAAAKA65s9PRo9ueu6U\nU5Jjj3XBNm/WokBp8803z0477ZQNNtggO+ywQ97ylrfkqaeeWvXndXV1GTBgQGpqalJfX7/qeX19\n/Zue/+vZmkybNm3V1yNHjszIkSNbsi4AAAB0e//4R3LYYcn111eeGzIk+eUvk623rs5etK0FCxZk\nwYIFrf59S+XXVouaac6cOTn99NNzww035Omnn86IESMyaNCgfP3rX8+IESNy9NFHZ9SoUamtrc3o\n0aOzaNGiLF++PEOGDMl9992XGTNmpL6+PieeeGIuu+yy3HTTTZkxY8brFyuV0oLVAAAAgNe44ILk\nyCObnrvyyuSQQ9p+H9pXa+UtLWoojRs3LgsXLszuu++exsbGnHXWWXnXu96ViRMnZuXKlRk0aFAO\nOeSQlEqlHHPMMRk+fHgaGxszffr09O7dO5MmTcqECRMyfPjw9O7dO7NmzVrvFwIAAAAU/vznZNy4\n5E9/qjx32GHJOeckG29cnb3oOlrUUKoGDSUAAABovldfTU44IZk+vfJcnz7J736X/Nu/VWcvOpZ2\nbSgBAAAAHcNttyUjRxaf2FbJCScUv3r2rMpadHECJQAAAOhkli1LJk5MLrus8tzOOyfXXptst111\n9qL76NHeCwAAAADNc8UVSamU9OtXOUy68MKkXE7+8AdhEm1DQwkAAAA6sKeeSg4+OLnzzspzBxyQ\nXHxxMmBAdfaie9NQAgAAgA6mXE5+9KOijbTNNpXDpN/9rpifPVuYRPVoKAEAAEAHcf/9yd57J0uW\nVJ776leTU05JevWqzl7wRgIlAAAAaEfLlydf/nJy/vmV57bdNvnNb5KddqrOXlCJI28AAADQDq6/\nvjjSttFGlcOkn/40aWxMHn9cmETHoaEEAAAAVfK3vyWf/GRx71ElI0cml1+ebLFFVdaCdSZQAgAA\ngDZULidnnZV86UtNz157bbL//m2/E+vuxRdfzFVXXZW6urqMHj06O+64Y3uv1K5K5XK53N5LrEmp\nVEoHXQ0AAACa9L//m4wZkzz2WOW5z30uOfPM4ugbHdOyZcvywQ8Oz9NPb5VXX902PXr8Mr/+9eXZ\na6+92nu1ddZaeYuGEgAAALSSl19OvvWt5Cc/qTy36abJ/PnJbrtVZy/Wz8yZM/PEEwOzfPkVSUpJ\nxuULXzg2Dz98T3uv1m4ESgAAALCebryxuPeoKdOnJ9/8ZtLDR2R1Ks89tyTLl++cIkxKkp3z/PNL\n2nOlductDAAAAC2wdGly0EHFJ7VVCpM+/OHkiSeKu5SmThUmdUajR++VPn0uSPLHJPXp3fs72Xvv\nUe29VrvyNgYAAIB1cMklRYg0YEByzTVrn7v00iJEWrQo2Wab6u1H6xs1alROPfX/paZmVDbYYIvs\ns8+rueCCM9p7rXblUm4AAABowuOPJwcckCxeXHnu0EOT889P+vWrzl5UX7lcTqlUanqwg2qtvEVD\nCQAAANagsTH57neLNtK73rX2MGmDDZKbby7aSJdfLkzq6jpzmNSaXMoNAAAAr7FoUbLXXsmyZZXn\nvvWt5HvfKwIl6G687QEAAOj2XnopmTQp+fnPK8/tsEMyZ04ycGB19oKOSqAEAABAt3XNNcUntTXl\nvPOSI48sjr8BAiUAAAC6mWefTT7+8eLeo0rGjEl+8Ytk002rsxd0Ji7lBgAAoMsrl5P//M+iYbTV\nVpXDpHnzivm5c4VJsDYaSgAAAHRZf/xjMnp00UqqZPLk5Cc/SXr3rs5e0NkJlAAAAOhSVqxIvv71\n5KyzKs9tuWVyww3J+99fnb2gKxEoAQAA0CXccEOy775Nz516avK1r7lgG9aHQAkAAIBO6/nnk898\nJvnNbyrPDRuWXHll0UoC1p9LuQEAAOhUyuVk5syiYbTZZpXDpKuvLuZvukmYBK1JQwkAAIBO4dFH\nk/32Sx56qPLc4YcnZ5+d9OlTnb2gO9JQAgAAoMN65ZVk6tSijTRw4NrDpL59kzvvLNpIF18sTIK2\npqEEAABAh3PLLcnIkUWgVMm0acl3vpP07FmNrYB/ESgBAADQIdTXJ0cemVxxReW5XXZJrr02eec7\nq7MX8GaOvAEAANCuLrusONJWU1M5TLr44uJI2/33C5OgvWkoAQAAUHVPPpkcdFBy112V5w48MLno\noqR//6qsBTSThhIAAABV0diYTJ9etJHe8Y7KYdLvf1+0kX71K2ESdEQaSgAAALSpe+9N9toreeGF\nynNTpiQ/+EHSq1d19gJaTqAEAABAq2toSL70peRnP6s8t/32yfXXJ+99b3X2AlqHQAkAAIBWc911\nyf77Nz131lnJ0UcXx9+AzkegBAAAwHr561+TT3wiWbCg8tzeeyeXXppsvnlV1gLakEu5AQAAWGfl\ncnLGGUXD6G1vqxwmzZlTzP/2t8Ik6Co0lAAAAGi2P/0p2Xff5P/+r/LcUUclp5+evOUt1dkLqC4N\nJQAAACp6+eXka18r2kg77bT2MGnzzYtPdCuXk3PPFSZBV6ahBAAAwBr9/vfJXns1PffDHybHHZf0\nUFmAbkOgBAAAwCovvJBMmJBce23lud13T66+Onn726uzF9CxyI8BAADIxRcXR9o22aRymHT55cWR\ntjvuECZBd6ahBAAA0E099liy//7JH/9Yee6Tn0xmzkz69q3KWkAnoKEEAADQjbz6avL//l/RRtpu\nu7WHSRtumNx6a9FGuvRSYRLwehpKAAAA3cAddyQjRybLl1ee+/a3k5NOSnr2rMpaQCclUAIAAOii\nXnwxOeqoZNasynM77pjMmZNsv3119gI6vxYfefvgBz+YPffcM3vuuWc+//nP55FHHsmwYcNSW1ub\nyZMnp1wuJ0lmzpyZwYMHZ4899sicOXOSJA0NDRk/fnxqa2szbty4LFmypHVeDQAAAPnlL4sjbX37\nVg6TLrigONL24IPCJGDdlMr/Sn7WwfLly/ORj3wk99xzz6pnBxxwQI499tjU1tZm0qRJ2XfffTNk\nyJDss88+ufvuu9PQ0JBhw4blrrvuyplnnplly5blhBNOyOWXX57bbrstp5122usXK5XSgtUAAAC6\npWeeSQ4+OLn99spzH/1o8vOfF5/mBnQ/rZW3tKihdP/99+ell17Kvvvum1GjRuX222/PPffck9ra\n2iTJ2LFjM3/+/CxatChDhw5Nr169UlNTk4EDB2bx4sW55ZZbMmbMmCTJmDFjMn/+/PV+IQAAAN1N\nuZz8+MdFG2nrrSuHSfPnF/O//rUwCVh/LbpDaeONN85xxx2Xz3/+83n44YdXhUP/0q9fvyxdujR1\ndXXp37//Gp/X1NS87hkAAADNs3hxMnp08te/Vp475pgicNpww+rsBXQfLQqUdthhhwwcODBJ8p73\nvCebbbZZ7r333lV/XldXlwEDBqSmpib19fWrntfX17/p+b+ercm0adNWfT1y5MiMHDmyJesCAAB0\neitWJF/9anLOOZXnttkmmTcvGTSoOnsBHduCBQuyYMGCVv++LbpD6dxzz83ixYszY8aMPP300xk1\nalS23377fOMb38iIESNy9NFHZ9SoUamtrc3o0aOzaNGiLF++PEOGDMl9992XGTNmpL6+PieeeGIu\nu+yy3HTTTZkxY8brF3OHEgAAQObNS95wKGSNTjutaCSVSm2/E9B5tVbe0qJA6ZVXXslnP/vZPP74\n40mSU045JZtttlkmTpyYlStXZtCgQZk5c2ZKpVLOP//8nHfeeWlsbMzxxx+fgw46KA0NDZkwYUKe\neeaZ9O7dO7NmzcoWW2zRJi8QAACgs/n735NPfzq54YbKc7W1yRVXJG97W3X2Ajq/dg2UqkGgBAAA\ndCflcnLeecnRRzc9e801ycc+1vY7AV1Pa+UtLbpDCQAAgNbx8MPJfvsljzxSee6II5IZM5I+faqy\nFkBFPdp7AQAAgO7mlVeSb36zuO9ohx3WHibV1CSLFhXtpQsvFCYBHYeGEgAAQJXcfHMyYkTS2Fh5\n7qSTkuOPT3qoAAAdlEAJAACgDdXVJZ//fHLVVZXnPvCBZPbsZNttq7MXwPqQdwMAALSBWbOKI239\n+1cOk/7rv4ojbffeK0wCOg8NJQAAgFbyxBPFp6/de2/lufHjk5/9rLgjCaAz0lACAABYD42Nyfe+\nV7SRtt127WFSjx7JwoVFG+mqq4RJQOemoQQAANACd9+d7LVXcUdSJd/4RvL97ycb+H9fQBfiX2kA\nAADN1NCQTJ6cXHRR5bmBA5Prr0/e856qrAVQdQIlAACAJlx7bXE3UlPOOSc56qji+BtAVyZQAgAA\nWIPnnksOPbS496iSffYpPtFts82qsxdAR+BSbgAAgH8ql5PTTy8aRltuWTlMmju3mJ83T5gEdD8a\nSgAAQLf3wAPJvvsmTz5Zee7oo5PTTkt6967OXgAdlUAJAADollauTI47LvnpTyvPbbFF8tvfJrvs\nUp29ADoDgRIAANCt/Pd/J3vv3fTcKackxx7rgm2ANREoAQDr5YUXXshZZ52d5577e8aO3Ttjxoxp\n75UA3uQf/0j+/d+TOXMqzw0Zkvzyl8nWW1dnL4DOqlQul8vtvcSalEqldNDVAIB/qquryy67DMkz\nzwzOypWD0qfP2fnxj6dm8uQvtPdqAEmSn/0s+fznm5678srkkEPafh+A9tZaeYtACQBosfPPPz9f\n+cqcvPTSr/755I+pqdk7S5c+2657Ad3bn/+cjBuX/OlPlecOOyw555xk442rsxdAR9BaeUuPVtgF\nAOimli1blldf3eo1T7bOihUvtts+QPf16qvJ8ccX9x29+91rD5P69Eluvz0pl5NLLhEmAbSUQAkA\naLGxY8emZ88rk/wyyYN5y1uOzAEHjG/vtYBu5Lbbkt69kw02SKZPX/vcCSckr7ySvPhi8m//Vr39\nALoqR94AgPWycOHCTJ78zfz973/P2LGjM2PGf2SjjTZq77WALmzZsmTixOSyyyrP7bxzcu21yXbb\nVWcvgM7AHUoAAEC3cuWVyaGHNj134YXJEUe0+ToAnVJr5S0btMIuAAAAbeLpp5ODDkruvLPy3AEH\nJBdfnAwYUJ29ALo7dygBAAAdSrmc/OhHxQXbb3975TDpd78r5mfPFiYBVJOGEgAA0CHcf3+y997J\nkiWV57761eSUU5JevaqzFwBvJlACAADazfLlyVe+kpx3XuW5bbdNfvObZKedqrMXAJUJlAAAgKqb\nOzfZb7+m53760+RLXyqOvwHQcQiUAACAqliyJPnkJ5P//u/KcyNHJpdfnmyxRVXWAqAFXMoNAAC0\nmXI5mTGjaBi99a2Vw6Rrry3mf/97YRJAR6ehBAAAtLr//d9kzJjksccqz33uc8mZZyYbbVSVtQBo\nJRpKAABAq3j55WTKlKKNtOOOaw+TNt00ueeeoo10wQXCJIDOSEMJAABYLzfeWNx71JTp05NvfjPp\n4cfaAJ2eQAkAAFhnS5cmRxyRXHNN5bkPfzj51a+SbbapyloAVImfDQAAAM12ySXFkbYBAyqHSbNm\nFUfaFi0SJgF0RRpKAABARY8/nhxwQLJ4ceW5Qw9Nzj8/6devOnsB0H40lAAAgDdpbEy++92ijfSu\nd609TNpgg+Tmm4s20uWXC5MAugsNJQAAYJVFi5K99kqWLas8961vJd/7XhEoAdD9+Nc/AAB0cy+9\nlEyalPz855XndtghmTMnGTiwOnsB0HEJlAAAoJu65prkoIOanjvvvOTII4vjbwCQCJQAAKBbefbZ\n5OMfL+49qmTMmOQXv0g23bQ6ewHQubiUGwAAurhyOfnP/ywaRlttVTlMmjevmJ87V5gEwNppKAEA\nQBf1P/+T7LNP8vTTlecmT05+8pOkd+/q7AVA5ydQAgCALmTlymTKlOTMMyvPbbVVcsMNyc47V2cv\nALoWgRIAAHQBv/1t0UZqyqmnJl/7mgu2AVg/AiUAAOiknn8+Oeyw4r6jSoYNS668Mtlyy+rsBUDX\n51JuAADoRMrlZObMomG02WaVw6Srry7mb7pJmARA69JQAgCATuDRR5P99kseeqjy3OGHJ2efnfTp\nU529AOieNJQAAKCDeuWVZOrUoo00cODaw6S+fZM77yzaSBdfLEwCoO2tV6D017/+Ne94xzvy0EMP\n5ZFHHsmwYcNSW1ubyZMnp1wuJ0lmzpyZwYMHZ4899sicOXOSJA0NDRk/fnxqa2szbty4LFmyZP1f\nCQAAdBG33pr06lX8+uEP1z43bVoROtXXJ4MHV209AGh5oPTyyy/nC1/4QjbeeOOUy+V8/etfz/Tp\n07Nw4cKUy+XMnj07zz77bM4444zceuutmTdvXqZOnZqVK1fm7LPPzq677pqFCxfm8MMPz8knn9ya\nrwkAADqd+vrkE58o2khDhxZB0Zrsskvy2GNFG+nEE5OePau6JgAkWY9A6bjjjsukSZOy1VZbJUnu\nueee1NbWJknGjh2b+fPnZ9GiRRk6dGh69eqVmpqaDBw4MIsXL84tt9ySMWPGJEnGjBmT+fPnt8JL\nAQCAzueyy4oQqaYmueKKtc9dfHERIt1/f/LOd1ZvPwBYkxYFShdddFHe+ta3Zp999kmSlMvlVUfc\nkqRfv35ZunRp6urq0r9//zU+r6mped0zAADoLp58sjiiVioln/rU2ucOPDB54YUiSDr88OrtBwBN\nadGnvF144YUplUqZP39+7rvvvkyYMCF/+9vfVv15XV1dBgwYkJqamtTX1696Xl9f/6bn/3q2JtOm\nTVv19ciRIzNy5MiWrAsAAO2usTH50Y+Sb3+76dnf/z7xV18AWsOCBQuyYMGCVv++pfJrq0UtsOee\ne+acc87JcccdlylTpmTEiBE5+uijM2rUqNTW1mb06NFZtGhRli9fniFDhuS+++7LjBkzUl9fnxNP\nPDGXXXZZbrrppsyYMeP1i5VKWc/VAACg3d13XzJqVPL885XnpkxJfvCD4iJuAGgrrZW3tKih9Eal\nUimnnnpqJk6cmJUrV2bQoEE55JBDUiqVcswxx2T48OFpbGzM9OnT07t370yaNCkTJkzI8OHD07t3\n78yaNas11gAAgA6hoSH58peTCy6oPLfddsncucl731udvQCgtax3Q6mtaCgBANDZXHddsv/+Tc+d\ndVZy9NHFHUoAUE0dqqEEAADd1V//mnziE0lT11PsvXdy6aXJ5ptXZS0AaFMt+pQ3AADozsrl5Iwz\niobR295WOUyaM6eY/+1vhUkAdB0aSgAA0Ex/+lOy777J//1f5bmjjkpOPz15y1uqsxcAVJuGEgAA\nVPDyy8nXvla0kXbaae1h0uabJ/feW7SRzj1XmARA16ahBAAAa/D73yd77dX03A9/mBx3XNLDj2oB\n6EYESgAA8E8vvJBMmJBce23lud13T66+Onn726uzFwB0NH6OAgBAt3fxxcWRtk02qRwmXX55caTt\njjuESQB0bxpKAAB0S489luy/f/LHP1ae++Qnk5kzk759q7IWAHQKGkoAAHQbr76anHhi0Ubabru1\nh0kbbpjcemvRRrr0UmESALyRhhIAAF3enXcme+6ZvPRS5blvfzs56aSkZ8/q7AUAnZVACQCALunF\nF5MvfCH5xS8qz+24YzJnTrL99tXZCwC6AkfeAADoUn75y+JIW9++lcOkCy4ojrQ9+KAwCQDWlYYS\nAACd3jPPJAcfnNx+e+W5j340+fnPi09zAwBaTkMJAIBOqVxOfvzjoo209daVw6T584v5X/9amAQA\nrUFDCQCATuUPf0j23jv5618rzx1zTBE4bbhhdfYCgO5EoAQAQIe3YkXy1a8m55xTeW6bbZJ585JB\ng6qzFwB0VwIlAAA6rHnzkjFjmp477bSikVQqtf1OAIBACQCADubvf08+/enkhhsqz9XWJldckbzt\nbdXZCwBYzaXcAAC0u3I5OffcomG0+eaVw6Rrrinmb7xRmAQA7UVDCQCAdvPww8l++yWPPFJ57ogj\nkhkzkj5y9UmLAAAgAElEQVR9qrIWANAEDSUAAKrqlVeSb36zaCPtsMPaw6SammTRoqKNdOGFwiQA\n6Eg0lAAAqIqbb05GjEgaGyvPnXRScvzxSQ8/+gSADkugBABAm6mrSz7/+eSqqyrPfeADyezZybbb\nVmcvAGD9+LkPAACtbtas4khb//6Vw6T/+q/iSNu99wqTAKAz0VACAKBVPPFEcuCByT33VJ4bPz75\n2c+KO5IAgM5JQwkAgBZrbEy+//2ijbTttmsPk3r0SBYuLNpIV10lTAKAzk5DCQCAdXbPPcleeyVL\nl1ae+8Y3isBpA3/rBIAuxf+0AwDQLA0NyeTJyUUXVZ4bODC5/vrkPe+pyloAQDsQKAEAUNG11yYf\n+1jTc+eckxx1VHH8DQDo2gRKAAC8yXPPJYceWtx7VMk++xSf6LbZZtXZCwDoGFzKDQBAkuLC7NNP\nLxpGW25ZOUyaO7eYnzdPmAQA3ZGGEgBAN/fAA8m++yZPPll57uijk9NOS3r3rs5eAEDHJVACAOiG\nVq5Mjjsu+elPK89tsUXy298mu+xSnb0AgM5BoAQA0I387nfJqFFNz51ySnLssS7YBgDWTKAEANDF\n/eMfyeGHJ9ddV3lujz2Sq65Ktt66OnsBAJ2XS7kBALqoCy8sGkabblo5TLryyuKC7VtvFSYBAM2j\noQQA0IX85S/JRz9aXLRdyWc+k5x7brLxxtXZCwDoWjSUAAA6uVdfTb7znaKNtP32aw+T+vRJbr+9\naCP9138JkwCAltNQAgDopG6/PRk5MlmxovLcCScUv3r2rMpaAEA3IFACAOhEli1LjjoqufTSynM7\n75xce22y3XbV2QsA6F4ceQMA6ASuvLI40tavX+Uw6cILiyNtf/iDMAkAaDsaSgAAHdTTTycHHZTc\neWfluQMOSC6+OBkwoDp7AQBoKAEAdCDlcvKjHxVtpLe/vXKY9LvfFfOzZwuTAIDq0lACAOgA7r8/\n2XvvZMmSynNf/WpyyilJr17V2QsAYE0ESgAA7WT58uQrX0nOO6/y3LbbJr/5TbLTTtXZCwCgKQIl\nAIAqmzs32W+/pud++tPkS18qjr8BAHQkAiUAgCpYsiT51KeS+fMrz40cmVx+ebLFFlVZCwCgRVp0\nKferr76az33ucxk2bFiGDx+e//mf/8kjjzySYcOGpba2NpMnT065XE6SzJw5M4MHD84ee+yROXPm\nJEkaGhoyfvz41NbWZty4cVnS1GUBAACdULmcnH120TB661srh0nXXlvM//73wiQAoONrUaB03XXX\npUePHrn55ptz8skn59vf/namTJmS6dOnZ+HChSmXy5k9e3aeffbZnHHGGbn11lszb968TJ06NStX\nrszZZ5+dXXfdNQsXLszhhx+ek08+ubVfFwBAu3nooWT77ZMePZLJk9c+97nPJS+9VARJ++9fvf0A\nANZXiwKlj33sYzn33HOTJI899lg22WST3H333amtrU2SjB07NvPnz8+iRYsydOjQ9OrVKzU1NRk4\ncGAWL16cW265JWPGjEmSjBkzJvOb6n4DAHRwL7+cHHts0UZ673uTv/xlzXObbprcc08RIl1wQbLR\nRtXdEwCgNbQoUEqSnj175ogjjshXvvKVfOYzn1l1xC1J+vXrl6VLl6auri79+/df4/OamprXPQMA\n6IwWLixCpA03TE49de1z06cnr76a/P3vyW67VW8/AIC2sF6Xcl900UV57rnnsvvuu2f58uWrntfV\n1WXAgAGpqalJfX39quf19fVvev6vZwAAncXSpckRRyTXXFN57sMfTn71q2SbbaqyFgBA1bQoULrk\nkkvy5JNPZurUqdloo43Ss2fPfPjDH86NN96YESNGZO7cuRk1alR23333HH/88VmxYkWWL1+eBx98\nMDvvvHOGDh2a66+/PoMHD87cuXNXHZV7o2nTpq36euTIkRk5cmRL1gUAaBWXXJIcfnjTc7NmFZ/o\nBgDQ3hYsWJAFCxa0+vctlV97Vq2ZGhoacsQRR+TZZ5/Nyy+/nKlTp2bHHXfMxIkTs3LlygwaNCgz\nZ85MqVTK+eefn/POOy+NjY05/vjjc9BBB6WhoSETJkzIM888k969e2fWrFnZ4g0fZ1IqldKC1QAA\nWtXjjycHHJAsXlx57tBDk/PPT/r1q85eAAAt0Vp5S4sCpWoQKAEA7aWxMfne95LXlKXXaIMNkgUL\nkqFDq7EVAMD6a628Zb3uUAIA6EruuivZc89k2bLKc9/6VhE4beBvUgBAN+WvQQBAt/bSS8mkScnP\nf155bocdkjlzkoEDq7MXAEBHJlACALqla65JDjqo6bnzzkuOPDIpldp+JwCAzkKgBAB0G88+m3z8\n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\n", | |
| "text": [ | |
| "<matplotlib.figure.Figure at 0x46e6410>" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 55 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "" | |
| ] | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 3, | |
| "metadata": {}, | |
| "source": [ | |
| "Classwork" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "[Download](http://bit.ly/16bZqir) the cleaned up aggregation nytimes data\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "1. Go through the same steps, but this time generate a new model use the log of brain and body, which we know generated a much better distribution and cleaner set of data. Compare the results to the original model. Remember that exp() can be\n", | |
| "used to \"normalize\" our \"logged\" values. ***Note: Make sure you start a new linear regression object!***\n", | |
| "\n", | |
| "2. Using your aggregate data compiled from nytimes1-30.csv, write a python script that determines the best model predicting CTR based off of age and gender. Since gender is not actually numeric (it is binary), investigate ways to vectorize this feature. ***Clue: you may want two features now instead of one.***\n", | |
| "\n", | |
| "3. Compare this practice to making two separate models based on Gender, with Age as your one feature predicting CTR. How are your results different? Which results would you be more confident in presenting to your manager? Why's that?\n", | |
| "\n", | |
| "4. Evaluate what data you could still use to improve your nytimes model. Consider plotting your model to service your explanations and write a short blurb about insights gained and next steps in your \"data collection.\"" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "" | |
| ] | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 2, | |
| "metadata": {}, | |
| "source": [ | |
| "Resources" | |
| ] | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 4, | |
| "metadata": {}, | |
| "source": [ | |
| "Handbooks" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "* [Regression Analysis by Example](http://type.hk:2551/calibre/browse/book/294) (**Chapter 1 - 2**) - Samprit Chatterjee\n", | |
| "* [Matrix Algebra as a Tool](http://book.type.hk/calibre/browse/book/464) - Ali S. Hadi" | |
| ] | |
| } | |
| ], | |
| "metadata": {} | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment