Skip to content

Instantly share code, notes, and snippets.

@iateadonut
Created May 30, 2019 13:48
Show Gist options
  • Save iateadonut/fa10f21f4d1f0fa3af5b3aefc959b7c5 to your computer and use it in GitHub Desktop.
Save iateadonut/fa10f21f4d1f0fa3af5b3aefc959b7c5 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"https://cocl.us/corsera_da0101en_notebook_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size=5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Module 4: Model Development</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>In this section, we will develop several models that will predict the price of the car using the variables or features. This is just an estimate but should give us an objective idea of how much the car should cost.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some questions we want to ask in this module\n",
"<ul>\n",
" <li>do I know if the dealer is offering fair value for my trade-in?</li>\n",
" <li>do I know if I put a fair value on my car?</li>\n",
"</ul>\n",
"<p>Data Analytics, we often use <b>Model Development</b> to help us predict future observations from the data we have.</p>\n",
"\n",
"<p>A Model will help us understand the exact relationship between different variables and how these variables are used to predict the result.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# path of data \n",
"path = 'https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>1. Linear Regression and Multiple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Linear Regression</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"<p>One example of a Data Model that we will be using is</p>\n",
"<b>Simple Linear Regression</b>.\n",
"\n",
"<br>\n",
"<p>Simple Linear Regression is a method to help us understand the relationship between two variables:</p>\n",
"<ul>\n",
" <li>The predictor/independent variable (X)</li>\n",
" <li>The response/dependent variable (that we want to predict)(Y)</li>\n",
"</ul>\n",
"\n",
"<p>The result of Linear Regression is a <b>linear function</b> that predicts the response (dependent) variable as a function of the predictor (independent) variable.</p>\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
" Y: Response \\ Variable\\\\\n",
" X: Predictor \\ Variables\n",
"$$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <b>Linear function:</b>\n",
"$$\n",
"Yhat = a + b X\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li>a refers to the <b>intercept</b> of the regression line0, in other words: the value of Y when X is 0</li>\n",
" <li>b refers to the <b>slope</b> of the regression line, in other words: the value with which Y changes when X increases by 1 unit</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Lets load the modules for linear regression</h4>"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from sklearn.linear_model import LinearRegression"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Create the linear regression object</h4>"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm = LinearRegression()\n",
"lm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How could Highway-mpg help us predict car price?</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For this example, we want to look at how highway-mpg can help us predict car price.\n",
"Using simple linear regression, we will create a linear function with \"highway-mpg\" as the predictor variable and the \"price\" as the response variable."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"X = df[['highway-mpg']]\n",
"Y = df['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fit the linear model using highway-mpg."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.fit(X,Y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can output a prediction "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([16236.50464347, 16236.50464347, 17058.23802179, 13771.3045085 ,\n",
" 20345.17153508])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Yhat=lm.predict(X)\n",
"Yhat[0:5] "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>What is the value of the intercept (a)?</h4>"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"38423.305858157386"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.intercept_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>What is the value of the Slope (b)?</h4>"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([-821.73337832])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What is the final estimated linear model we get?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we saw above, we should get a final linear model with the structure:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"Yhat = a + b X\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plugging in the actual values we get:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>price</b> = 38423.31 - 821.73 x <b>highway-mpg</b>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 a): </h1>\n",
"\n",
"<b>Create a linear regression object?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm1 = LinearRegression()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm1 = LinearRegression()\n",
"lm1 \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #1 b): </h1>\n",
"\n",
"<b>Train the model using 'engine-size' as the independent variable and 'price' as the dependent variable?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm1.fit(df[['engine-size']], df[['price']])\n",
"lm1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm1.fit(df[['engine-size']], df[['price']])\n",
"lm1\n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 c):</h1>\n",
"\n",
"<b>Find the slope and intercept of the model?</b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Slope</h4>"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-821.73337832])"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Intercept</h4>"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-7963.33890628])"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm1.intercept_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# Slope \n",
"lm1.coef_\n",
"# Intercept\n",
"lm1.intercept_\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 d): </h1>\n",
"\n",
"<b>What is the equation of the predicted line. You can use x and yhat or 'engine-size' or 'price'?</b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# You can type you answer here\n",
"Yhat=38423.31-821.733*X"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# using X and Y \n",
"Yhat=38423.31-821.733*X\n",
"\n",
"Price=38423.31-821.733*engine-size\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Multiple Linear Regression</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>What if we want to predict car price using more than one variable?</p>\n",
"\n",
"<p>If we want to use more variables in our model to predict car price, we can use <b>Multiple Linear Regression</b>.\n",
"Multiple Linear Regression is very similar to Simple Linear Regression, but this method is used to explain the relationship between one continuous response (dependent) variable and <b>two or more</b> predictor (independent) variables.\n",
"Most of the real-world regression models involve multiple predictors. We will illustrate the structure by using four predictor variables, but these results can generalize to any integer:</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"Y: Response \\ Variable\\\\\n",
"X_1 :Predictor\\ Variable \\ 1\\\\\n",
"X_2: Predictor\\ Variable \\ 2\\\\\n",
"X_3: Predictor\\ Variable \\ 3\\\\\n",
"X_4: Predictor\\ Variable \\ 4\\\\\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"a: intercept\\\\\n",
"b_1 :coefficients \\ of\\ Variable \\ 1\\\\\n",
"b_2: coefficients \\ of\\ Variable \\ 2\\\\\n",
"b_3: coefficients \\ of\\ Variable \\ 3\\\\\n",
"b_4: coefficients \\ of\\ Variable \\ 4\\\\\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The equation is given by"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"Yhat = a + b_1 X_1 + b_2 X_2 + b_3 X_3 + b_4 X_4\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From the previous section we know that other good predictors of price could be:</p>\n",
"<ul>\n",
" <li>Horsepower</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Highway-mpg</li>\n",
"</ul>\n",
"Let's develop a model using these variables as the predictor variables."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"Z = df[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fit the linear model using the four above-mentioned variables."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.fit(Z, df['price'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What is the value of the intercept(a)?"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-15806.624626329198"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.intercept_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What are the values of the coefficients (b1, b2, b3, b4)?"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([53.49574423, 4.70770099, 81.53026382, 36.05748882])"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" What is the final estimated linear model that we get?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we saw above, we should get a final linear function with the structure:\n",
"\n",
"$$\n",
"Yhat = a + b_1 X_1 + b_2 X_2 + b_3 X_3 + b_4 X_4\n",
"$$\n",
"\n",
"What is the linear function we get in this example?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>Price</b> = -15678.742628061467 + 52.65851272 x <b>horsepower</b> + 4.69878948 x <b>curb-weight</b> + 81.95906216 x <b>engine-size</b> + 33.58258185 x <b>highway-mpg</b>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2 a): </h1>\n",
"Create and train a Multiple Linear Regression model \"lm2\" where the response variable is price, and the predictor variable is 'normalized-losses' and 'highway-mpg'.\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm2 = LinearRegression()\n",
"lm2.fit(df[['normalized-losses' , 'highway-mpg']],df['price'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm2 = LinearRegression()\n",
"lm2.fit(df[['normalized-losses' , 'highway-mpg']],df['price'])\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #2 b): </h1>\n",
"<b>Find the coefficient of the model?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.49789586, -820.45434016])"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm2.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm2.coef_\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>2) Model Evaluation using Visualization</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we've developed some models, how do we evaluate our models and how do we choose the best one? One way to do this is by using visualization."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"import the visualization package: seaborn"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# import the visualization package: seaborn\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Regression Plot</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>When it comes to simple linear regression, an excellent way to visualize the fit of our model is by using <b>regression plots</b>.</p>\n",
"\n",
"<p>This plot will show a combination of a scattered data points (a <b>scatter plot</b>), as well as the fitted <b>linear regression</b> line going through the data. This will give us a reasonable estimate of the relationship between the two variables, the strength of the correlation, as well as the direction (positive or negative correlation).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's visualize Horsepower as potential predictor variable of price:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"text/plain": [
"(0, 48273.737778056806)"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"width = 12\n",
"height = 10\n",
"plt.figure(figsize=(width, height))\n",
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We can see from this plot that price is negatively correlated to highway-mpg, since the regression slope is negative.\n",
"One thing to keep in mind when looking at a regression plot is to pay attention to how scattered the data points are around the regression line. This will give you a good indication of the variance of the data, and whether a linear model would be the best fit or not. If the data is too far off from the line, this linear model might not be the best model for this data. Let's compare this plot to the regression plot of \"peak-rpm\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 47422.919330307624)"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(width, height))\n",
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Comparing the regression plot of \"peak-rpm\" and \"highway-mpg\" we see that the points for \"highway-mpg\" are much closer to the generated line and on the average decrease. The points for \"peak-rpm\" have more spread around the predicted line, and it is much harder to determine if the points are decreasing or increasing as the \"highway-mpg\" increases.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #3:</h1>\n",
"<b>Given the regression plots above is \"peak-rpm\" or \"highway-mpg\" more strongly correlated with \"price\". Use the method \".corr()\" to verify your answer.</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>peak-rpm</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>-0.058598</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm highway-mpg price\n",
"peak-rpm 1.000000 -0.058598 -0.101616\n",
"highway-mpg -0.058598 1.000000 -0.704692\n",
"price -0.101616 -0.704692 1.000000"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[[\"peak-rpm\",\"highway-mpg\",\"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"The variable \"peak-rpm\" has a stronger correlation with \"price\", it is approximate -0.704692 compared to \"highway-mpg\" which is approximate -0.101616. You can verify it using the following command:\n",
"df[[\"peak-rpm\",\"highway-mpg\",\"price\"]].corr()\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Residual Plot</h3>\n",
"\n",
"<p>A good way to visualize the variance of the data is to use a residual plot.</p>\n",
"\n",
"<p>What is a <b>residual</b>?</p>\n",
"\n",
"<p>The difference between the observed value (y) and the predicted value (Yhat) is called the residual (e). When we look at a regression plot, the residual is the distance from the data point to the fitted regression line.</p>\n",
"\n",
"<p>So what is a <b>residual plot</b>?</p>\n",
"\n",
"<p>A residual plot is a graph that shows the residuals on the vertical y-axis and the independent variable on the horizontal x-axis.</p>\n",
"\n",
"<p>What do we pay attention to when looking at a residual plot?</p>\n",
"\n",
"<p>We look at the spread of the residuals:</p>\n",
"\n",
"<p>- If the points in a residual plot are <b>randomly spread out around the x-axis</b>, then a <b>linear model is appropriate</b> for the data. Why is that? Randomly spread out residuals means that the variance is constant, and thus the linear model is a good fit for this data.</p>"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuwAAAJQCAYAAADVKDHyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3X9w2/d95/nXGyAgAhIl0bZguRZTm6kcxtpL2lR17VkNy03dxOnOKr0b713Vm21mLz5ymvbc5s6eJp2J4qiT2ei62Y216SZUtZ78mDuniW5zVW7sOnZUHs8Xy42URE54pm0t5YR0LEM/IIkUQAH44nN/AKRI/bBAfUl8v198n48ZDoQPAeIDipRe+OD9eX/MOScAAAAA4ZQIegIAAAAAro3ADgAAAIQYgR0AAAAIMQI7AAAAEGIEdgAAACDECOwAAABAiBHYAQAAgBAjsAMAAAAhRmAHAAAAQqwj6AmEzS233OLuuOOOoKcBAACANnfkyJFTzrkN17sdgf0yd9xxhw4fPhz0NAAAANDmzOxnzdyOkhgAAAAgxAjsAAAAQIgR2AEAAIAQI7ADAAAAIUZgBwAAAEKMwA4AAACEGIEdAAAACDECOwAAABBiBHYAAAAgxAjsAAAAQIgR2AEAAIAQI7ADAAAAIUZgBwAAAEKMwA4AAACEGIEdAAAACDECOwAAABBiBHYAAAAgxAjsAAAAQIgR2AEAAIAQI7ADAAAAIdYR9ASAoI2M5zU8OqHJQlE93VkN9fdqoC8X9LQAAAAkscKOmBsZz2vngTHlp2e1PpNSfnpWOw+MaWQ8H/TUAAAAJBHYEXPDoxNKJU3ZdIfM6peppGl4dCLoqQEAAEgisCPmJgtFZVLJRWOZVFJThWJAMwIAAFiMwI5Y6+nOqlTxFo2VKp42dWcDmhEAAMBiBHbE2lB/ryqeU7FclXP1y4rnNNTfG/TUAAAAJBHYEXMDfTnt2r5Fua5OnStVlOvq1K7tW+gSAwAAQoO2joi9gb4cAR0AAIQWK+wAAABAiBHYAQAAgBAjsAMAAAAhRmAHAAAAQozADgAAAIQYgR0AAAAIMdo6hsDIeF7DoxOaLBTV053VUH8vbQYBAAAgiRX2wI2M57XzwJjy07Nan0kpPz2rnQfGNDKeD3pqAAAACIHAAruZ9ZjZP5jZy2Y2ZmZ/2hi/ycyeNbPXGpfdjXEzsz1mdszMXjKz9y34Wh9p3P41M/vIgvFfN7OfNO6zx8ys9c/07Q2PTiiVNGXTHTKrX6aSpuHRiaCnBgAAgBAIcoW9Kul/cc69W9K9kv7YzO6W9AlJ33PObZb0vcZ1SfqQpM2Nj0FJX5LqAV/SpyX9pqR7JH16LuQ3bjO44H4PtOB5LclkoahMKrloLJNKaqpQDGhGAAAACJPAArtz7k3n3A8bf56W9LKk2yV9WNJXGzf7qqTfa/z5w5K+5uoOSVpvZrdJ+qCkZ51zZ5xzBUnPSnqg8bm1zrkXnHNO0tcWfK3Q6OnOqlTxFo2VKp42dWcDmhEAAADCJBQ17GZ2h6Rfk/SipFudc29K9VAvaW735e2SJhfcbaox9nbjU1cZv9rjD5rZYTM7fPLkSb9PZ0mG+ntV8ZyK5aqcq19WPKeh/t6WzgMAAADhFHhgN7M1kv4PSX/mnDv/dje9ypi7gfErB53b65zb6pzbumHDhutNeVkN9OW0a/sW5bo6da5UUa6rU7u2b6FLDAAAACQF3NbRzFKqh/X/zTn3nxvDb5nZbc65NxtlLXPtUqYk9Sy4+yZJv2iMD1w2PtIY33SV24fOQF+OgA4AAICrCrJLjEn6T5Jeds79uwWfOiBprtPLRyT93YLxP2x0i7lX0rlGycwzkj5gZt2NzaYfkPRM43PTZnZv47H+cMHXAgAAACIhyBX2fyrpX0n6iZn9uDH2F5I+J+mbZvZRST+X9C8bn3tK0u9KOiapKOlfS5Jz7oyZ/aWkHzRut8s5d6bx5z+S9BVJGUlPNz4AAACAyLB6AxXM2bp1qzt8+HDQ0wAAAECbM7Mjzrmt17td4JtOAQAAAFwbgR0AAAAIMQI7AAAAEGIEdgAAACDECOwAAABAiAV6cBIA/0bG8xoendBkoaie7qyG+ns5iAsAgDbCCjsQYSPjee08MKb89KzWZ1LKT89q54ExjYznr39nAAAQCQR2IMKGRyeUSpqy6Q6Z1S9TSdPw6ETQUwMAAMuEwA5E2GShqEwquWgsk0pqqlAMaEYAAGC5EdiBCOvpzqpU8RaNlSqeNnVnA5oRAABYbgR2IMKG+ntV8ZyK5aqcq19WPKeh/t6gpwYAAJYJgR2IsIG+nHZt36JcV6fOlSrKdXVq1/YtdIkBAKCN0NYRiLiBvhwBHQCANsYKOwAAABBiBHYAAAAgxAjsAAAAQIgR2AEAAIAQI7ADAAAAIUZgBwAAAEKMwA4AAACEGIEdAAAACDECOwAAABBiBHYAAAAgxAjsAAAAQIgR2AEAAIAQI7ADAAAAIUZgBwAAAEKMwA4AAACEGIEdAAAACDECOwAAABBiBHYAAAAgxAjsAAAAQIgR2AEAAIAQI7ADAAAAIUZgBwAAAEKMwA4AAACEGIEdAAAACDECOwAAABBiBHYAAAAgxAjsAAAAQIgR2AEAAIAQI7ADAAAAIUZgBwAAAEKMwA4AAACEGIEdAAAACDECOwAAABBiBHYAAAAgxAjsAAAAQIgR2AEAAIAQI7ADAAAAIUZgBwAAAEKMwA4AAACEGIEdAAAACDECOwAAABBiBHYAAAAgxDqCngAAf0bG8xoendBkoaie7qyG+ns10JcLeloAAGCZsMIORNjIeF47D4wpPz2r9ZmU8tOz2nlgTCPj+aCnBgAAlgmBHYiw4dEJpZKmbLpDZvXLVNI0PDoR9NQAAMAyIbADETZZKCqTSi4ay6SSmioUA5oRAABYbgR2IMJ6urMqVbxFY6WKp03d2YBmBAAAlhuBHYiwof5eVTynYrkq5+qXFc9pqL836KkBAIBlQmAHImygL6dd27co19Wpc6WKcl2d2rV9C11iAABoI7R1BCJuoC9HQAcAoI0R2EOAPtoAAAC4FkpiAkYfbQAAALwdAnvA6KMNAACAt0NgDxh9tAEAAPB2COwBo482AAAA3g6BPWD00QYAAMDbIbAHjD7aAAAAeDu0dQwB+mgDAADgWlhhBwAAAEKMwA4AAACEGIEdAAAACLFAA7uZPWFmeTP76YKxx8zsDTP7cePjdxd87pNmdszMXjGzDy4Yf6AxdszMPrFg/E4ze9HMXjOzvzWzdOueHQAAAOBf0CvsX5H0wFXG/71z7lcbH09JkpndLen3JW1p3Oc/mlnSzJKS/lrShyTdLWlH47aStLvxtTZLKkj66Io+GwAAAGCZBdolxjk3amZ3NHnzD0v6hnPuoqTjZnZM0j2Nzx1zzk1Ikpl9Q9KHzexlSe+X9AeN23xV0mOSvrQ8s8dyGRnPa3h0QpOFonq6sxrq76VrDgAAQEPQK+zX8idm9lKjZKa7MXa7pMkFt5lqjF1r/GZJZ51z1cvGESIj43ntPDCm/PSs1mdSyk/PaueBMY2M54OeGgAAQCiEMbB/SdI7Jf2qpDclfb4xble5rbuB8SuY2aCZHTazwydPnlz6jHHDhkcnlEqasukOmdUvU0nT8OhE0FMDAAAIhdAFdufcW845zzlXk/Q3ulT2MiWpZ8FNN0n6xduMn5K03sw6Lhu/2mPudc5tdc5t3bBhw/I9GVzXZKGoTCq5aCyTSmqqUAxoRgAAAOESusBuZrctuPpfS5rrIHNA0u+b2Sozu1PSZkn/KOkHkjY3OsKkVd+YesA55yT9g6QHG/f/iKS/a8VzQPN6urMqVbxFY6WKp03d2YBmFD0j43nt2HtI23Yf1I69hygnAgCgzQTd1vFJSS9IepeZTZnZRyX9r2b2EzN7SdI/k/RxSXLOjUn6pqT/T9LfS/rjxkp8VdKfSHpG0suSvtm4rST9uaT/ubFB9WZJ/6mFTw9NGOrvVcVzKparcq5+WfGchvp7g55aJLAHAACA9mf1hWjM2bp1qzt8+HDQ04iVuS4xU4WiNtElZkl27D2k/PSssulLDZ+K5apyXZ16cvDeAGcGAACux8yOOOe2Xu92gbZ1BCRpoC9HQL9Bk4Wi1mdSi8bYAwAAQHsJXQ07gOaxBwAAgPZHYAcijD0AAAC0PwI7EGEDfTnt2r5Fua5OnStVlOvq1K7tWygxAgCgjVDDDkQcewAAAGhvrLADAAAAIUZgBwAAAEKMwA4AAACEGIEdAAAACDECOwAAABBiBHYAAAAgxAjsAAAAQIgR2AEAAIAQ4+AkIOJGxvMaHp3QZKGonu6shvp7OUgJAIA2wgo7EGEj43ntPDCm/PSs1mdSyk/PaueBMY2M54OeGgAAWCYEdiDChkcnlEqasukOmdUvU0nT8OhE0FMDAADLhMAORNhkoahMKrloLJNKaqpQDGhGAABguRHYgQjr6c6qVPEWjZUqnjZ1ZwOaEQAAWG4EdiDChvp7VfGciuWqnKtfVjynof7eoKcGAACWCYEdiLCBvpx2bd+iXFenzpUqynV1atf2LXSJAQCgjdDWEYi4gb4cAR0AgDbGCjsAAAAQYgR2AAAAIMQI7AAAAECIEdgBAACAECOwAwAAACFGYAcAAABCjMAOAAAAhBiBHQAAAAgxDk6CbyPjeQ2PTmiyUFRPd1ZD/b0c5AMAALBMWGGHLyPjee08MKb89KzWZ1LKT89q54ExjYzng54aAABAWyCww5fh0QmlkqZsukNm9ctU0jQ8OhH01AAAANoCgR2+TBaKyqSSi8YyqaSmCsWAZgQAANBeCOzwpac7q1LFWzRWqnja1J0NaEYAAADthcAOX4b6e1XxnIrlqpyrX1Y8p6H+3qCnBgAAcE0j43nt2HtI23Yf1I69h0K9/47ADl8G+nLatX2Lcl2dOleqKNfVqV3bt9AlBgAAhFbUmmbQ1hG+DfTlCOgAACAyFjbNkKRsukPFclXDoxOhzDSssAMAACBWotY0g8AOAACAWIla0wwCOwAAAGIlak0zCOwAAACIlag1zWDTKQAAAGInSk0zCOwAANygkfG8hkcnNFkoqqc7q6H+3sgEAADRQUkMAAA3IGp9nAFEF4EdAIAbsLCPs1n9MpU0DY9OBD01AG2GwA4AwA2IWh9nANFFYAcA4AZErY8zgOgisAMAcAOi1scZQHQR2AEAuAFR6+MMILpo69gGaCsGAMGIUh9nANHFCnvE0VYMAACgvbHCHnEL24pJUjbdoWK5quHRiaZXfVihBwAACC9W2CPOb1sxVugBAADCjcAecX7binHwBwAAQLgR2CPOb1sxDv4AAAAINwJ7xPltK8bBHwAAAOHGptM24Ket2FB/r3YeGFOxXFUmlVSp4nHwBwAAQIiwwh5zHPwBAAAQbqywg4M/AAAAQowVdgAAACDECOwAAABAiBHYAQAAgBAjsAMAAAAhRmAHAAAAQozADgAAAIQYgR0AAAAIMfqwQyPjeQ2PTmiyUFRPd1ZD/b30ZQcAAAgJVthjbmQ8r50HxpSfntX6TEr56VntPDCmkfF80FMDAACAWGGPveHRCaWSpmy6/qOQTXeoWK5qeHQiNqvsvMMAAADCjMAec5OFotZnUovGMqmkpgrFgGbUWnPvMKSStugdhl1SZEI7LzgAAGhvlMTEXE93VqWKt2isVPG0qTsb0Ixaa+E7DGb1y1TSNDw6EfTUmjIyntcj+4/qR5MFvXV+Vj+aLOiR/UcpaQIAtL2R8bx27D2kbbsPasfeQ239fx+BPeaG+ntV8ZyK5aqcq19WPKeh/t6gp9YSk4WiMqnkorEovcPwuadf1tliRa4mJc3katLZYkWfe/rloKcGAMCKidsePAJ7zA305bRr+xblujp1rlRRrqtTu7ZviU1JRdTfYTh+uqiESYmEycyUSJgSVh8HAKBdRf0d8qWihh0a6MvFJqBfbqi/VzsPjKlYriqTSqpU8WL1DgMAAFEUtz14ga6wm9kTZpY3s58uGLvJzJ41s9cal92NcTOzPWZ2zMxeMrP3LbjPRxq3f83MPrJg/NfN7CeN++wxM2vtM0TYRf0dht5bVqvmpJpzcnKqOaeaq48DANCuov4O+VIFXRLzFUkPXDb2CUnfc85tlvS9xnVJ+pCkzY2PQUlfkuoBX9KnJf2mpHskfXou5DduM7jgfpc/FqCBvpyeHLxX/8+fv19PDt4bmbAuSX/+QJ+6symZpKpXk0nqzqb05w/0BT01AABWTNz24AUa2J1zo5LOXDb8YUlfbfz5q5J+b8H411zdIUnrzew2SR+U9Kxz7oxzriDpWUkPND631jn3gnPOSfragq8FtIWBvpz+6sH36tfe0a3b1mX0a+/o1l89+N5IvegAAGCpov4O+VKFsYb9Vufcm5LknHvTzOa+87dLmlxwu6nG2NuNT11lHGgrcd6DAACIrzj9/xd0ScxSXK3+3N3A+JVf2GzQzA6b2eGTJ0/6mCIAAACwvMK4wv6Wmd3WWF2/TdJcQ80pST0LbrdJ0i8a4wOXjY80xjdd5fZXcM7tlbRXkrZu3XrVUA8AANBOOCk7OsK4wn5A0lynl49I+rsF43/Y6BZzr6RzjdKZZyR9wMy6G5tNPyDpmcbnps3s3kZ3mD9c8LUAAABiK24HD0Vd0G0dn5T0gqR3mdmUmX1U0uck/Y6ZvSbpdxrXJekpSROSjkn6G0kfkyTn3BlJfynpB42PXY0xSfojSfsa9/kvkp5uxfMCAAAIs7gdPBR1gZbEOOd2XONTv32V2zpJf3yNr/OEpCeuMn5Y0j/xM0cAAIB2E7eDh6IujCUxAAAAWEFxO3go6gjs8G1kPK8dew9p2+6D2rH3EPVvAACEXNwOHoo6Ajt8YdMKAADRE7eDh6IujG0dESELN61IUjbdoWK5quHRCX7pAQAIsTgdPBR1rLDDl8lCUZlUctEYm1YAAACWD4EdvrBpBQAAYGUR2OELm1YAAABWFoEdvrBpBQAAYGWx6RS+sWkFAABg5bDCDgAAAIQYgR0AAAAIMQI7AAAAEGIEdgAAACDECOwAAABAiBHYAQAAgBAjsAMAAAAhRmAHAAAAQozADgAAAIQYgR0AAAAIMQI7AAAAEGIEdgAAACDECOwAAABAiBHYAQAAgBAjsAMAAAAhRmAHAAAAQozADgAAAIRYR9ATAAAAiKI9z72qfc8f14Wyp9XppB7adqcevv+uoKeFNkRgBwAAWKI9z72qxw8eU8KkjoRUqnh6/OAxSSK0Y9lREgMAALBE+54/3gjrCSUs0bisjwPLjcAOAACwRBfKnhK2eCxh9XFguRHYAQAAlmh1OqmaWzxWc/VxYLlRww5E3Mh4XsOjE5osFNXTndVQf68G+nJBTwsA2tpD2+7U4wePqVqrKWH1sF5z9XFgubHCDkTYyHheOw+MKT89q/WZlPLTs9p5YEwj4/mgpwYAbe3h++/Sn77/V5RJJVWtSZlUUn/6/l9hwylWBCvsQIQNj04olTRl0/Vf5Wy6Q8VyVcOjE6yyA8AKe/j+uwjoaAlW2IEImywUlUktrpfMpJKaKhQDmhEAAFhuBHYgwnq6sypVFnckKFU8berOBjQjAACw3AjsQIQN9feq4jkVy1U5V7+seE5D/b1BTw0AQm9kPK8dew9p2+6D2rH3EPt/EFoEdiDCBvpy2rV9i3JdnTpXqijX1ald27dQvw4A18GmfUQJm06BiBvoyxHQAWCJ2LSPKCGwAwCA2JksFJU0aeLkjMpeTelkQresSbNpH6FESQwAAIidrlUdeuPsrKo1p2TCVK05vXF2VmtWsZaJ8OGnEgAAxI5zrvEHLbqcHwdChBV2AAAQOzNlT7ev71RH0uQ5p46k6fb1nbpQ9q5/Z6DFWGEHAACx09OdVX56Vr0b1syPFctV5bo6A5wVcHWssAMAEFNx7kPOORaIEgI7AAAxFPc+5JxjgSihJAYAgBiiDznnWCA6COxAxI2M5zU8OqHJQlE93VkN9ffyHxCA65osFLU+k1o0lkkl6UMOhBCBHYiwube0U0lb9Jb2LonQHhO8YPMnzt+/uU2XcyvsklSqeNrUnQ1wVgCupukadjP7ZTO7v/HnjJl1rdy0ADRj4VvaZvXLVNI0PDoR9NTQAnGvQfYr7t8/Nl0C0dFUYDez/1HSfknDjaFNkv7PlZoUgOZMForKpJKLxnhLOz54weZP3L9/bLoEoqPZkpg/lnSPpBclyTn3mpnxGw0EjLe0440aZH/4/rHpEoiKZktiLjrnynNXzKxDlw7zBRAQ3tKOt57urEqVxacy8oKteXz/AERFs4H9/zazv5CUMbPfkfQtSd9ZuWkBaAZvaccbL9j84fsHICrMuesvlJtZQtJHJX1Akkl6RtI+18ydI2br1q3u8OHDQU8DAJoy1+VkqlDUpph1OVkOfP8ABMnMjjjntl73dk0G9tWSZp1zXuN6UtIq51zbFfoR2IGliXNbPAAA/Gg2sDdbEvM9SZkF1zOSnruRiQFoH3FviwcAQCs0G9g7nXMzc1caf2ZXDhBzcW+LBwBAKzQb2C+Y2fvmrpjZr0sqrcyUAEQFfeABAFh5zfZh/zNJ3zKzXzSu3ybpv1uZKQGICvrAAwCw8ppaYXfO/UBSn6Q/kvQxSe92zh1ZyYkBCD/a4gEAsPLedoXdzN7vnDtoZv/NZZ/abGZyzv3nFZwbgJAb6Mtpl0RbPAAAVtD1SmJ+S9JBSf/iKp9zkgjsACRx9DEAACvlbQO7c+7TjUOTnnbOfbNFcwIQEXNtHVNJW9TWcZfEKjsAAMvkuptOnXM1M/sTSQR2AIssbOsoSdl0h4rlqoZHJ5oO7By8BADA22u2S8yzZvaIpL+VdGFu0Dl3ZkVmBSASJgtFrc+kFo0tpa0jK/T+8YIHANpfs4H9f1C9RPVjl43TCgKIMb9tHYdHJ1TxPJ2eqars1ZROJrQ207GkFfo44wUP/OIFHxANzR6cdLekv5Z0VNKPJf0HSVtWalIAosFvW8fX8tM6NV1WteaUTJiqNadT02W9lp9e4Zm3B06ahR9zL/jy07OLXvCNjOeDnhqAyzQb2L8q6d2S9qge1t/dGAMQYwN9Oe3avkW5rk6dK1WU6+rUru1bml6hK1drkkkJM5lMCTPJGuO4Lk6ahR+84AOio9mSmHc559674Po/mNnRlZgQgGgZ6Mvd8FvoqaSpVJFqNSczyTV6Q6aTtowzbF+cNAs//O5BAdA6za6w/8jM7p27Yma/Ken/XZkpAYiLu25dq5tXp9WRNHnOqSNpunl1WptvXRv01CKBk2bhR093VqWKt2iMF3xAODUb2H9T0vfN7HUze13SC5J+y8x+YmYvrdjsALS1of5epTuS2riuU++6tUsb13Uq3ZEkcDbJb0kS4o0XfEB0mHPXP5/QzH757T7vnPvZss0oYFu3bnWHDx8OehpAbMx1qZgqFLWJLhVAS/H7BwTLzI4457Ze93bNBPY4IbADAACgFZoN7M2WxAAAAAAIQGgDe6Ne/idm9mMzO9wYu8nMnjWz1xqX3Y1xM7M9ZnbMzF4ys/ct+Dofadz+NTP7SFDPBwAAALgRoQ3sDf/MOferC94q+ISk7znnNkv6XuO6JH1I0ubGx6CkL0n1gC/p06pvmr1H0qfnQj4AAAAQBWEP7Jf7sC4d2PRVSb+3YPxrru6QpPVmdpukD0p61jl3xjlXkPSspAdaPWkAAADgRoU5sDtJ3zWzI2Y22Bi71Tn3piQ1Lue2st8uaXLBfacaY9caX8TMBs3ssJkdPnny5DI/DQAAAODGNXvSaRD+qXPuF2aWk/SsmY2/zW2vdiyie5vxxQPO7ZW0V6p3ibmRyQIAAAArIbSB3Tn3i8Zl3sy+rXoN+ltmdptz7s1GyUu+cfMpST0L7r5J0i8a4wOXjY+s8NSBlprrozxZKKqHPsoAALSdUJbEmNlqM+ua+7OkD0j6qaQDkuY6vXxE0t81/nxA0h82usXcK+lco2TmGUkfMLPuxmbTDzTGgLYwMp7XzgNjyk/Pan0mpfz0rHYeGNPIeP76dwYAAJEQ1hX2WyV928yk+hz/d+fc35vZDyR908w+Kunnkv5l4/ZPSfpdScckFSX9a0lyzp0xs7+U9IPG7XY558607mkAK2t4dEKppCmbrv8qZ9MdKparGh6dYJUdAIA2EcrA7pybkPTeq4yflvTbVxl3kv74Gl/rCUlPLPccgTCYLBS1PpNaNJZJJTVVKAY0IwAAsNxCWRIDoDk93VmVKt6isVLF06bubEAzAgAAy43ADkTYUH+vKp5TsVyVc/XLiuc01N8b9NQAAMAyIbADETbQl9Ou7VuU6+rUuVJFua5O7dq+hfp1AADaSChr2AE0b6AvR0AHAKCNscIOAAAAhBiBHQAAAAgxAjsAAAAQYgR2AAAAIMQI7AAAAECIEdgBAACAEKOtI4BYGxnPa3h0QpOFonq6sxrq76VNJgAgVFhhBxBbI+N57Twwpvz0rNZnUspPz2rngTGNjOeDnhoAAPMI7ABia3h0QqmkKZvukFn9MpU0DY9OBD01AADmEdgBxNZkoahMKrloLJNKaqpQDGhGAABcicAOILZ6urMqVbxFY6WKp03d2YBmBADAlQjsAGJrqL9XFc+pWK7KufplxXMa6u8NemoAAMwjsAOIrYG+nHZt36JcV6fOlSrKdXVq1/YtdIkBAIQKbR0BxNpAX46ADtwg2qICrcEKOwAAWDLaogKtQ2AHAABLRltUoHUI7AAAYMloiwq0DjXsAABgyXq6s3r99IzOl6oqezWlkwmtzXTojpvXBD01oO2wwg4AAJbsvt6blJ8uq+zVlDCp7NWUny7rvt6bgp4a0HYI7AAAYMlemDijDWvSSicTqjkpnUxow5q0Xpg4E/TUgLZDSQwAAFiyyUJRt6xZpQ1dnfNjzjlq2IEVwAo7AABYsp7urEoVb9FYqeJpU3c2oBkB7YvADgAAlmyov1cVz6lYrsq5+mXFcxrq7w16akDbIbADAIAlG+jLadf2Lcp1depcqaJcV6d2bd/CSafACqCGHQAA3JCBvhwBHWgBVtgBAACAECOwAwAAACFGYAfgFlWGAAAgAElEQVQAAABCjMAOAAAAhBiBHQAAAAgxAjsAAAAQYgR2AAAAIMToww4g0kbG8xoendBkoaie7qyG+nvpCw0AaCussAOIrJHxvHYeGFN+elbrMynlp2e188CYRsbzQU8NAIBlQ2AHEFnDoxNKJU3ZdIfM6peppGl4dCLoqQEAsGwI7AAia7JQVCaVXDSWSSU1VSgGNCMAAJYfgR1AZPV0Z1WqeIvGShVPm7qzAc0IAIDlR2AH4MvIeF479h7Stt0HtWPvoZbWjw/196riORXLVTlXv6x4TkP9vS2bAwAAK40uMYBPce5SMrfpM5W0RZs+d0kt+R4M9OW0S/Va9qlCUZti9v0HAMQDgR2Bi3LgDTqwBm3hpk9JyqY7VCxXNTw60bLnP9CXi8X3+lqi/PsDAGgOJTEIVNTb8sW9S0kYNn0GWZITtKj//gAAmkNgR6CiHnjDEFiDFPSmz7gH1qj//gAAmkNgR6CiHniDDqxBC3rTZ9wDa9R/fwAAzSGwI1BRD7xBB9agDfTltGv7FuW6OnWuVFGuq1O7tm9pWQ113ANr1H9/AADNYdMpAjXU36udB8ZULFeVSSVVqniRCrx0KQl202dPd1b56dn5Ta9SvAJr1H9/AADNIbAjUO0QeKPepSTKXUbiHljb4fcHAHB95pwLeg6hsnXrVnf48OGgpwG0xMK2lAsDbyvLWvyae8FBYAWWLsov2IF2YGZHnHNbr3c7VtiBGAtDH3W/gSHq73AAQYn7ORJAlLDpFIixoDdtxr0tIxCkuHdZAqKEwA7EWNBdRggMQHCCfsEOoHkEdiDGgm5LSWAAghP0C3YAzSOwAxE3Mp7Xjr2HtG33Qe3Ye2hJ5SRB91EnMADBCfoFO4Dm0SXmMnSJQZREvcvLyHhej+4/qunZqqq1mjoSCXV1duivHnxvJOYPRB1dloBg0SUGiIHh0QlVPE+nZ6oqezWlkwmtzXQsqctL0G3dnCSZZGaSNa4DaAm6LAHRQGAHIuy1/LTOFStKJEzJhKlaczo1XVbFm27q/kG3dRsendC6TEq3rcvMj7W6rSQAAGFHDTsQYeVqTTIpYSaTKdFYpS5Xa03dP+guLWw6BQDg+gjsQISlkiZJqtWcnHOq1eoFJenG+PUEHZjZdAoAwPUR2IEIu+vWtbp5dVodSZPnnDqSpptXp7X51rVN3T/owEyXCsCfPc+9qvc89oze+RdP6T2PPaM9z70a9JQArAACOxBhQ/29SncktXFdp951a5c2rutUuiPZdOANOjAH3VYSiLI9z72qxw8eU6niqSNRf7H9+MFjhHagDdHW8TK0dUTU+G3LRls3IJre89gzjbB+ae2tWqspk0rqpcc+GODMADSLto5ATPhty0ZbNyCaLpQ9JeR0serJOclMSlp9HEB7IbADCFTQfeCBqFqVTKhY8TS3xdw5qeKkbIpqV6DdENiBiIty4A26DzwQZTetTql41rvisLGbVqcCmQ+AlcPLcCDC5gJvfnp2UeAdGc8HPbWmBN0HHog0M21Yk1KiscSeMGnDmlT91GAAbYUVdiDCFgZeScqmOyJ1Uuhkoaj1mcWrgRychFba89yr2vf8cV0oe1qdTuqhbXfq4fvvCnpaTenpzio/PauN6y61YS2Wq8p1dQY4KwArgRV2IMKCPvjIr6D7wCPeot4WMei2rABah8AORFgYAu/IeF479h7Stt0HtWPvoSWV4xA4EKR9zx9XwqSOREIJSzQu6+NRwDkGQHxQEgNE2FB/r3YeGFOxXFUmlVSp4rU08PrdNDrQl9MuiT7wuGF+Nl1fKNdX1hdKRKwtIm1ZgXggsAM+BdmlJejAuxw19EEHjih32Yk7vy8YV6eTunCxKqdLfcxN0upV/NcIIFz4VwnwIQxtCYMMvMuxaTTIwByGvz/cOL8vGH+7b4O+/eM356/PHfz9230bVmS+AHCj2r6G3cweMLNXzOyYmX0i6PmgvcS9LaHfGvqg21LG/e8v6vxuuj5xvqzubMeitojd2Q6dOF9e7qkCgC9tHdjNLCnpryV9SNLdknaY2d3BzgrtJOpdWvzyu2k06MAc97+/qOvpzur0hYuaODmj8RPnNXFyRqcvXGz6BeNkoajb12e15ZfW6b+6fZ22/NI63b4+y98/gNBp68Au6R5Jx5xzE865sqRvSPpwwHNCGwlDl5Yg+e1SEXRgjvvfX9Td13uT8tNllb2aEiaVvZry02Xd13tTU/fn7x9AVLR7YL9d0uSC61ONsWv62c9+pu985zuSpGq1qsHBQT311FOSpNnZWQ0ODuq73/2uJGlmZkaDg4M6ePCgJOns2bMaHBzU6OioJOnUqVMaHBzU97//fUnSiRMnNDg4qBdffLE+makpDQ4O6siRI5Kk119/XYODgzp69Kgk6dixYxocHNTY2Jgk6ZVXXtHg4KBeeeUVSdLY2JgGBwd17NgxSdLRo0c1ODio119/XZJ05MgRDQ4OampqSpL04osvanBwUCdOnJAkff/739fg4KBOnTolSRodHdXg4KDOnj0rSTp48KAGBwc1MzMjSfrud7+rwcFBzc7OSpKeeuopDQ4OqlqtSpK+853vaHBwcP57+e1vf1sf+9jH5q9/61vf0sMPPzx//cknn9THP/7x+etf//rX9eijj85f/8pXvqJPfvKT89f37dunT33qU/PXv/zlL+szn/nM/PUvfvGL+uxnPzt//Qtf+IJ27949f/3zn/+8Pv/5z89f3717t77whS/MX//sZz+rL37xi/PXP/OZz+jLX/7y/PVPfepT2rdv3/z1T37yk9p89vD8CvOZf3hChaPPza8wf/zjH9eTTz45f/uHH35Y3/rWt+avf+xjH9O3v/3t+euDg4OR/Nkb6MvpE7+Z0bv/yzf0bz6wUQN9uaZ/9m5bVVWp4ml28qc6/ff/QbXZGZUqntaffbUlP3tz7xAUjj6nM//wxPw7BJvPHg79z95XvvKV+euPPvqovv71r89fj8vP3gsTZ3TLxTe15gdPSDOnlE4mdEtpSt96fGdT/+4N9feqNDmm/NN75JWmVSxXVfrZS/JGh/l3r4GfPf7PncPP3sr97DWj3QP71c5ndlfcyGzQzA6b2eFKpdKCaaFd9ObWzK8wV7ya1qzqaHkf5JHxvAa/dlg/mjyrv3rmlZbVfy+Hf3XvO1TxnC5WPTlJxUZbyg/cfWtLHn/uHYI1qzpU8Wrz7xD05ta05PHhz2ShqFRy8T/zqaTpYrXW1P0H+nL67+95h9LJhM7P1k8I3fEbPVqfTV3/zgDQQubcFfm1bZjZfZIec859sHH9k5LknPs317rP1q1b3eHDh1s0Q8CfhV1OFvZhj9LhKXNdYujDjqX60BdG9Vp+RsmEyaze5cWrOW3OrdHTf9Yf9PQA4LrM7Ihzbuv1btfubR1/IGmzmd0p6Q1Jvy/pD4KdErB8lqMPetCC7sOO6JpfcJpbd3KXjQNAm2jrwO6cq5rZn0h6RlJS0hPOubGApwUsm+Xogx40Di7CjZope7p9fadOzdQ3nqaTCW1cs2pJJ5Xy8wcgCto6sEuSc+4pSU8FPQ9gJfR0Z5Wfnp1fYZei1eWCg4vgx9zPf++GS3sOiuV6LXozRsbzemT/Uc1crMqrOZ2auahH9h/Vv33wvfz8AQiVdt90CrQ1v33QgxZ0H3ZE21B/r86VKnotP63xE+f1Wn5a50qVpn/+P/f0yzo1U9ZspaaK5zRbqenUTFmfe/rlFZ45ACxN26+wA2Hn5y35gb6cdkm+Nm0GWRLQDiU9CJZJkmvUrTu7amuwaxl/a2ZJ4wAQFAI7EKDlKAnxs2kz6JKUqJf0hEGca7CHRye0NpPSxnWZ+bGobboGgGZQEgMEaDlKQkbG89qx95C27T6oHXsPLakPe9AlKVEv6ZH8ff+X47F3HhhTfnp20QuuKPXi92OyUFTVq2ni5IzGT5zXxMkZVb0a79AAaDsEdiBAk4WiMqnkorGllIT4DWx+H9+vuYOLcl2dOleqzB9cFJXV0aADc9AvuILWtapDU4WSihVPVc+pWPE0VShpzSrePAbQXvhXDQiQ35KQ4dEJlaueTs9U59vadXV2NF0SEIaSlCj3YQ+6D37c9wBMl8ryFrZcd5LXGG9G16qEpi9eeSpq1yrWsgCEC/8qAQHyWxLy6lvndfpCWVXPKWmmqud0+kJZr711viWPH3fL8Q6Fn5Kanu6sSpXFPcfjtAfg5IXKFZtMrTHejPXZVUsaB4CgENiBAPktCak0lhcTCZOZKZGox5ey19xJj1EvSQma38A8Mp7Xo/uP6kc/L+jEuZJ+9POCHt1/tOnQvhwvuIKswffLq9V0+U+6a4w348S52SWNA0BQKIkBAuanJCTdkVCp7KnmnMwk5yS5+ngrHj/uhvp7tfPAmIrlqjKppEoVb0mBefffj6tQrCiZMHUkE3JOKhQr2v334039nfht6xl0l6C5Odxol5tkIqHqVcJ5MtHcz3/VXf2F7bXGASAorLADEbY516VbutLqSJi8mlNHwnRLV1qbc11BTy0W/L5DMXHqghImJcxkMiXMlLD6+FLdSMQMetOq3027tdrVn/W1xq9wrZst4ZsZ5XcoAEQHK+xAhM2t8G5c13FDK7zwL8h3KPyukAe9adXvpt1EwmQ1tyhfW2O8Kaarh/Mm7x6GdygAxAMr7ECEUYMebXfenFXN1VeEnXOq1Zxqrj7eDL8r5EFvWvW7aXdNOnHVGvY16eb+a7tW5UuzFTFBv0MBID5YYQcijhr06PrEh96t/+nJH+pC2VPNSQmTVqeT+sSH3t3U/f2ukA/19+qR/Uf1xtmSvJpTMmFas6pDn/rndy/5udwIv21FZ8pX31x6rfHlFvQ7FADigxV2AAhQZyqpdDKhjoSUTibUedmK89tZjhVykyQnOeck13Q1yLLw2+XmYvXqwfxa45e7VuVMsxU1Qb9DASA+COwAEJDh0QmtzaS0+dYuvfu2ddp8a5fWZlJNl1T4Dbx+H98vvyVdZpcu5z4Wjl/PXbk1V+3jflduTVP35xwDAK1CSQxiz09bOcAPvyUVfts6hqGkw09J1+1rV2nq3MUras5vX9vcwUef+NC79cj+o5q5WF1UEtRsSZLf7z8ANIvAjlijywOC5LeGW/IXeJfj8YP03/7GO/TvnnvtquPNGOjL6d8++F5fgZs9JABagcCOWPPbVg7wY6i/V4/uP6o3CiVVazV1JBLq6mzdps+h/l49/OQPNbNg0+uadLJlj+/XCxNntHHtKk3PVlX2akon69+/FybO6OEmvwaBG0AUENgRa2EoCUC8OUkyycwku7EDkG7US1Nn58O6JNWcNFP29NLU2UiE2MlCUbesWaUNXZ3zY845fn8BtB02nSLW6PKAIA2PTmhdJqXNuS71bVyrzbkurWvhps99zx9XMmHKpJLzH8mEad/zx1vy+H7x+wsgLgjsiDW6PCBIfg8O8utC2buihWHC6uNRwO8vgLggsCPWOCkUQQp6hXh1OjlfDjOn5urjUcDvL4C4oIYdscemMwRlqL9XOw+MqViuKpNKqlTxWrpC/NC2O/X4wWOq1mpKWD2s11x9PCr4/QUQB6ywA0BABvpyevB9t+vk9EW9fGJaJ6cv6sH33d6yAPrw/XfpT9//K8qkkqrW6uU4f/r+X9HD99/VkscHADSHFXbEHgcnISgj43nt/+Eb2tC1Su9orLDv/+Ebes+m9S0N7QR0AAg3AjtiLQwHJ8X9BUOcn38YzgGI8/cfAKKCkhjE2sLAZFa/TCWtZW31RsbzemT/Uf1osqC3zs/qR5MFPbL/qEbG8y15/KDNvWDKT88uesEUl+cfdJeYuH//ASAqCOyItaAD0+eefllnixW5mpQ0k6tJZ4sVfe7pl1vy+EEL+gVT0Hq6szo1c1ETJ2c0fuK8Jk7O6NTMxZZ1iRkenVDF83Ti3KxeeWtaJ87NquJ5sfn+A0BUENgRa0G31Tt+uqhazemiV9NstaaLXk21mtPx0/E4qTHoF0xBu6/3Jr11/qIulOvdYS6UPb11/qLu672pJY//Wn5ap6bLqtackglTteZ0arqs1/LTLXl8AEBzCOyItaAPXqlUa6pdNlZrjMdB0C+YpHpZyI69h7Rt90Ht2HuopeUg3zoypcvaoMs1xpvlZ/7lak0151TxarpYqani1a+XY/LzBwBRQWBHrAV+8IotcbzNBP2CKega7qlCSZJkdulj4fj1+J1/zdXkNXqvO9UvPSc5R2AHgDChSwxij4NXgjPQl9Mu1WuppwpFbWpxl5Kgu7Rcvrp+vfHL+Z2/d41czgI7AIQLgR0I0JpVHbpwsSonybnGKquk1avi86sZ5AumyUJR6zOpRWOtrKHPpBIqVWpy7srxZvidf7V29ZcG1xoHAASDkhggQA9tu1MyUzJhSnfUL2UWqaPh/drz3Kt6z2PP6J1/8ZTe89gz2vPcqy177KBr6P/ot94p06UKqLk//9FvvbOp+/vuMuN3iR8A0BIEdiBAcT8afs9zr+rxg8dUqnjqSNTD8uMHj7UstAddQ//w/Xfp4/dvVldnh5IJU1dnhz5+/+am//7v671JJ2fKKns1JUwqezWdnCk33WUmlbz6fwHXGg+jIDcNA0CrxOd9dyCk4nw0/L7njythUkeiHhATJlVrNe17/nhLvicDfTk9OHVW+54/rgtlT6vTST207c4llej4PSnUz9//CxNnlOtK63ypqrJXUzqZ0NpMh16YOKOHm7h/InH1pfTkNcbDJgwnFQNAKxDYgYiL8tHyF8r1lfWFElYfb4WR8bz2//ANbehapXekkipVPO3/4Rt6z6b1TX0Pgw6Mk4Wibl69Sres6Zwfc841XcOesIQSVmvc71KXGrNorLAHvWkYAFolGv8qA23Mz1v6Qbcl9Gt1OqnL9zfWXH28FfyetBr0Sa1+a/DTHQklzZRKJrQqlVAqWb+evvxVVEjF/eAtAPERjX+VgTblN3AHHRglfy84Htp2p2quXgZTc7XGpVq26dZv4JssFFX1aos2fVa9WssCo98a/M25Lt3SlVZHwuTVnDoSplu60tqc61rhmS+PoDcNA0CrENiBAPkN3EGvMPp9wRH0plu/gW9NOqk3zs6q6jklzVT1nN44O9uydwj8Hvw11N+rVDKpjes69a5bu7RxXadSyWTLNt36FfSmYQBoFWrYEXtB1oD77aPd051Vfnp2voZXau0K43LUEAe56Xaov1c7D4ypWK4q06hhX0rgs/mib13qzegWjLeAnz72QR9c5VfU5w8AzSKwI9aC3jTY053V8VMzmp691OWjq7NDd96ypqn7+w2cfgV98JBffgPf9MWqbl/fqVON1orpZEIb167SzMXqyk58GUX9pN+ozx8AmkFgR6wF3WXivt6b9OLx0/MbLyuep1LF0x/c846m7h/0CmPQK/yS/3dI/AS+ueffu+HSC6xiuapcV+fb3AsAgKUhsCPWgl4hfvqnJ+arKZwuVVY8/dMTTZeJBLnCGPQKf9DvkAz19+rR/Uf1RqGkaq2mjkT9HZJP/fO7V/yxAQDxwaZTxFrQXSYmTl2QWb3/tUnzf544daElj++X302PfoWhS46TJGvUrVvjOgAAy4gVdsRa0CvENedUrTX2K1r98Jqqk8yiE/uCXOEP+h2S4dEJrcukdNu6zPxY1A7u2fPcq1ec9BrXk3cBIKwI7Ii1oGvAOxKmiufqq7Ju8Xhc+KlBD7qGPugXDH7tee5VPX7wmBImdSTq37vHDx6TJEI7AIQIgR2xF+QKcTad1MVqTc4tqGG31p30GTS/NehB15AvxwuGINuK7nv+eCOs16sjE1Y/xGrf88cJ7AAQItSwAwG669a1ynWtUjadbNRiJ5XrWqXNt64NemotsRw16EHWkPs9uGdkPK9H9h/VjyYLeuv8rH40WdAj+48u6bRYPy6UPck5Xax6mq14ulitX79Q9q5/ZwBAyxDYgQAN9fcq3bH4pMl0R3ROmvTL70mtczXkm3Nd6tu4VptzXVqXSbVs06nfTbefe/plnS1W5GpS0kyuJp0tVvS5p19ueg4j43nt2HtI23Yf1I69h5YU9ld1JFSp1fdOzO2hqNTq4wCA8KAkBghQ0DX0QfNbUhKGGnI/JVXHTxeVMCnR2LNgJrma0/HTzc3fb0nRTZkOFcveFXsobsrwXwMAhAn/KgMBi/NJjX5r0Hu6s3r99IzOly6dFLs206E7bm7upNioGx6dULnq6fTM4pNym+5Sk0how5qUTl+oqObqNew3r07JEqywA0CYENgBBMpPDfp9vTfpH18/U1+lNqns1ZSfLmvHb9y0QrNdXr23rNb4iWmVvUs14yapb2NzLzhefeu8zs9WlZApaaaq53T6QllV73xT9597h2PjukvvaHBSKwCED8soAALjtwb9hYkz2rAmrXQyoZqT0smENqxJ64WJMys880v81JD3bVxzxQsUp+YDe8Wr3zuRMJnZfGlN2WvuZY/fTbMAgNZghR1AYPzWoE8WirplzSptWLAi7JxrWQ273xry742f1FzLfefqNexz481IdyRUKnuqOVevf3eSXH28GWHYQxFkW0sAiAoCO4DA+N10uhx90P2c9LmwLaUkZdMdSzrp9ELZUyppStilgF1ztabbKm7OdV1Zw786taQa/iD3UPh9wQMAcUFJDBAwPyUVUee3JMPv/edO+ixVvEUnfe557tWm7u+3LeXqdFK1y6pXaq75g7OG+nuVSi5uC5pKRqct6HL04QeAOCCwAz75CdxzK4z56dlFK4xxCe1++5j7vf/Ckz4Tlmhc1seb0dOdVamyeDV8KSv8D227UzVXP1205mqNy/p4M/w+/6D5fcEDAHFBSQzgg9+39P2WVLQDvyUZfu5/oVxfWV8oYWq6JGWov1c7D4ypWK4qk0qqVPGWtML/8P136fipGR146YQqnlMyYdr+no1Nl+RI/r9/QdaQL0dJEwDEASvsgA9+39JfjhXGOJfU+OW3JMXvCvfIeF5Hfn5Od9yc1T/5pbW64+asjvz8XMv+DoN+h4cuNQDQHFbYAR/8djnxu8LIpj1/Htp2px4/eEzVWk0Jq4f1pZSkSP5WuIN+hyXoxw9DlxoAiAICO+CD38Dtt6Qi6MAVdctRkuKH3xd8UX98Kd4n/QJAsyiJAXzw+5b+QF9OD77vdp2cvqiXT0zr5PRFPfi+25sOMGza8yfokpSe7qxOzVzUxMkZjZ84r4mTMzo1c7FlNdx+N80CAFqDwA74sBw1zPt/+IY2dK3Suzd2aUPXKu3/4RtNB0YClz9BtxW8r/cmnZwpq+zVS3LKXk0nZ8q6r/emljw+NeQAEA2UxAA+BVnD7LekJu6CLgl5YeKMcl3pxQcfZTr0wsQZPdyCx6eGHACigcAOBMhvYBzoy+nBqbNXnNRJ4GpO0G0FJwtF3bx6lW5Z0zk/5pyjhhwAsAglMUCA/Ja0+C2pibugS0IoaQIANIPADgTIb2AMugY76gb6cvr1d6zT66eL+ukvzuv100X9+jvWtWzFOegXDACAaCCwAwHyu2mVLjH+7HnuVR146YQSJq3qMCVMOvDSCe157tWWPL7fv38AQDxQww4EzE8NcdA12GEwMp7X8OiEJgtF9Sxx0+S+548rYVJHor52kTCpWqtp3/PHW9aLnRpyAMD1sMIORFjcSyrmTnrNT88uOum12Rr+C2VPCVs8lrD6eKuMjOe1Y+8hbdt9UDv2HmL/AQDgCgR2IMLiXlLht4Z/dTqpmls8VnP18Vbw+4IDABAPlMQAERfnkgq/bTEf2nanHj94TNVa/eCimqt/PLTtzpWY7hX89uEHAMQDK+wAIstvW8SH779L9/zyelU8p4tVp4rndM8vr29Z/TqbhgEAzSCwA4gsvzX8e557Vf/4s7NKJU2rOkyppOkff3a2ZV1i6MMOAGhG6AK7mT1mZm+Y2Y8bH7+74HOfNLNjZvaKmX1wwfgDjbFjZvaJBeN3mtmLZvaamf2tmaVb/XwArBy/NfwLu8QkLNG4rI+3Qtw3DQMAmhO6wN7w751zv9r4eEqSzOxuSb8vaYukByT9RzNLmllS0l9L+pCkuyXtaNxWknY3vtZmSQVJH231EwHQGu76N7lC0F1i4r5pGADQnChtOv2wpG845y5KOm5mxyTd0/jcMefchCSZ2TckfdjMXpb0fkl/0LjNVyU9JulLLZ01gBUz12UllbRFXVZ2SU2F3tXppEqVxaG9lV1ipHhvGgYANCesK+x/YmYvmdkTZtbdGLtd0uSC20w1xq41frOks8656mXjVzCzQTM7bGaHT548uZzPA8AK8tvW8aFtd6rm6ocl1Vytcdm6LjESfdgBANcXSGA3s+fM7KdX+fiw6ivg75T0q5LelPT5ubtd5Uu5Gxi/ctC5vc65rc65rRs2bFjy8wEQDL9dVh6+/y5tf89G1Zx0sepUc9L292xsWZcY+rADAJoRSEmMc+7+Zm5nZn8j6f9qXJ2S1LPg05sk/aLx56uNn5K03sw6GqvsC28PoA30dGf1+ukZnS9VVfZqSicTWpvp0B03r2nq/iPjeR35+TndcXNWmVS9POb/b+/+g+w6ywKOf5+9u9tNmrVJadJCk9pGM4ZGsWJkRGqsgFLQKaD8UtEqKGGAUUdRRJwgGTsjzmgRRSbIj3YQKVitBAQUbOOKVDBpizQ0QN1Wk5Z2+bFNtt1sdu/dxz/u2bDZ7iY3Obv3ns39fma29973nHPPu8++0/OcN+95333/d5g9B0baMkzFedglSa2o3JCYiHjirI8vBO4u3u8GXhYR50TEZcAm4PPAfwGbihlh+mk+mLo7MxO4DXhRcfy1wEfa8TtIao+nbzyfkbFJJhvNhY8mG9OMjE3y9I3nt3T8rqFhJusNHjo8wZcfHuOhwxNM1hstD6mBckNanIddktSKKj50+icRcQXN4Sv3A9sBMnN/RO4opIoAABKoSURBVHwY+BJQB16bmQ2AiHgd8M9ADXhvZu4vvusNwE0R8UfAncB72vmLSK3Yc2CEXUPDHBwdZ8OalWzfttHe1RbdPvwt1q7qZ2zi2z3sgwO93D78LX69heO/8vARjkzU6SGoRVBvJN98bJJ640hL5y/70OuGNSsZGZs43sMOzsMuSXq8yiXsmfmLJ9l2HXDdPOUfBz4+T/kw355JRqqcsglftzs4Os4Fq85h7eDA8bLMbLmHeqrRfKylp5gmJgKmp5PJRmuTRJYd0rJ920Z27N7P+GT9+JAc52GXJM1VuSExUjcpO8tJtyu7Umh/bw8kTGeSJNOZkEV5C8oOaXEedklSKyrXwy51k4Oj46xe0XdCmWOYW1e2h3rTusHHP7R6bl/LD60uxpAW52GXJJ2KPexSB5XtIe52ZXuot2/bSF+txkXnDfA9Fw5y0XkD9NVqLSf827dtZKqRjE/WyWy+OqRFkrTY7GGXOsgxzOWV6aG+avM6dtIcmnRodJz1p/nQb9njJUlqRTRnP9SMrVu35t69eztdDXWRt3/6K7z7M/fx2GSDc/tr/OqVl7Vt4R5JktQ5EbEvM7eeaj972KUO2nNghJvveIC1g+dwSdHDfvMdD/CU9avtpW0Tb5gkSVVnwi6VVGYedVe67Ky3f/or/Pmt99IT0NvTfH7gz2+9F6DlpN159CVJS82HTtX1yqxUOTOP+sjYxAnzqLf6HQdHx6k3phn++qMceOgIw19/lHpj2lli2uTdn7mvSNZ76Ime4rVZ3oqyf39Jklphwq6uVjbhKjuP+qr+Gg88MkG9kcdX2nzgkQnO7a+d+mCV9thkg2LNpON6olneCufRlyS1gwm7ulrZhKvswjkRQWYyOT3Nsfo0k9PTZCYRceqDVdq5/TXqjeRYvcHEVINj9Qb1RrZ8w1T27y9JUitM2NXVyiZcZedR//qjx5pvmgtsFv+ZVa4l9azNa2kkTBfxn05oZLO8Fc6jL0lqBxN2dbWyCVfZhXMm69P09AQDfTVW9NUY6KvR0xNM1qdP+3fR6XvoyCRrVvYeHxbTE7BmZS8PHZls6XgXTpIktYMJu7pa2YSr7EqbfbVgOpOJqQZHp5rDMqYz6a85JKYdDo6Oc/HqlWx50nl838XnseVJ53Hx6pUt/wtL2b+/JEmtcFpHdbXFWKmyzEqba1edw+hjUyeU5TRcsOqcM/o+nZ4Na1YyMjZxfFpNOP0hLWX+/pIktcKEXV2vkwlXRNDTE9R6ggjIhMa0D522y/ZtG9mxez/jk3VWFAtXOaRFklQ1DomROmjsWJ2LVw/Q2xM0ppPenuDi1QM8eqze6ap1BYe0SJKWA3vYpQ6aGZKxce2q42Xjk3XWDQ50sFbdxSEtkqSqs4dd6iBnGZEkSadiD7vUQYvx0Gu323NghF1DwxwcHWeD8ZMknYVM2KUOc0jGmdtzYIQdu/fTVwtWr+hjZGyCHbv3sxOMqSTprOGQGEnL1q6hYfpqwcr+XiKar321YNfQcKerJknSorGHXeowh3ScuYOj46xe0XdC2Yq+WssLH0mStByYsKvrdTJhdkhHOYux8JEkSVXnkBh1tZmEeWRs4oSEec+Bkbac3yEd5TjLjiSpG5iwq6t1OmE+ODrOir7aCWUO6WidCx9JkrqBQ2LU1To9BtohHeU5y44k6WxnD7u62oY1Kzk61TihrJ0Js0M6JEnSqZiwq6t1OmF2SIckSToVh8Soq1VhpVGHdEiSpJMxYVfXM2GWJElV5pAYSZIkqcJM2CVJkqQKM2GXJEmSKsyEXZIkSaowE3ZJkiSpwkzYJUmSpApzWkeppD0HRtg1NMzB0XE2dGAed0mSdHYzYZdK2HNghB2799NXC1av6GNkbIIdu/ezE0zau4Q3bJKkpWbCLpWwa2iYyXqDbz5aZ7IxTX+th8GBXnYNDZu0tUknE2Zv2CRJ7eAYdqmErzx8hG8+Nkm9kdQiqDeSbz42yVcfPtLpqnWFmYR5ZGzihIR5z4GRtpx/19AwfbVgZX8vEc3Xvlqwa2i4LeeXJHUHE3aphKlGAtDTE0QEPT0BwGRRrqXV6YT54Og4K/pqJ5St6KtxaHS8LeeXJHUHE3aphP7eHkiYziRJpjMhi3ItuU4nzBvWrOToVOOEsqNTDdavWdmW80uSuoNZhVTCpnWDXDDYT29P0JhOenuCCwb72bRusNNV6wqdTpi3b9vIVCMZn6yT2XydaiTbt21sy/klSd3BhF0qYfu2jfTValx03gDfc+EgF503QF+tZsLWJp1OmK/avI6d12xh3eAAh49OsW5wgJ3XbPGBU0nSoopMx9rOtnXr1ty7d2+nq6FlZGaWkkOj46x3Wr+2M/6SpOUqIvZl5tZT7mfCfiITdkmSJLVDqwm7Q2IkSZKkCjNhlyRJkirMhF2SJEmqMBN2SZIkqcJM2CVJkqQK6+10BaTlbmZawYOj42xwWkFJkrTITNilEvYcGGHH7v301YLVK/oYGZtgx+797IS2Je3eMEiSdHZzSIxUwq6hYfpqwcr+XiKar321YNfQcFvOP3PDMDI2ccINw54DI205vyRJWnom7FIJB0fHWdFXO6FsRV+NQ6PjbTl/p28YJEnS0jNhl0rYsGYlR6caJ5QdnWqwfs3Ktpy/0zcMkiRp6ZmwSyVs37aRqUYyPlkns/k61Ui2b9vYlvN3+oZBkiQtPRN2qYSrNq9j5zVbWDc4wOGjU6wbHGDnNVva9tBnp28YJEnS0nOWGKmkqzav69isLFdtXsdOmmPZD42Os95ZYiRJOuuYsEvLXCdvGCRJ0tJzSIwkSZJUYSbskiRJUoWZsEuSJEkVZsIuSZIkVZgJuyRJklRhJuySJElShZmwS5IkSRVmwi5JkiRVmAm7JEmSVGEm7JIkSVKFmbBLkiRJFWbCLkmSJFWYCbskSZJUYSbskiRJUoV1JGGPiBdHxP6ImI6IrXO2vTEi7o2IL0fEc2aVX12U3RsRvzer/LKI+FxEfDUiPhQR/UX5OcXne4vtl7br95MkSZIWS6d62O8GfgYYml0YEZcDLwO2AFcDfxURtYioAe8AngtcDvxcsS/AW4HrM3MTMAq8sih/JTCamd8NXF/sJ0mSJC0rHUnYM/OezPzyPJueD9yUmccy8z7gXuBpxc+9mTmcmZPATcDzIyKAZwI3F8ffCLxg1nfdWLy/GXhWsb8kSZK0bFRtDPvFwMFZnw8VZQuVPwF4JDPrc8pP+K5i++Fif0mSJGnZ6F2qL46ITwMXzbPpTZn5kYUOm6csmf/GIk+y/8m+6/EnjXgV8CqASy65ZIGqSZIkSe23ZAl7Zj77DA47BGyY9Xk98GDxfr7ybwCrI6K36EWfvf/Mdx2KiF7gPOBbC9T1XcC7ALZu3TpvUi9JkiR1wpIl7GdoN/C3EfFnwJOATcDnafaWb4qIy4AHaD6Y+vOZmRFxG/AimuParwU+Muu7rgVuL7bfmpmnTMb37dv3jYj43zOs/wU0byJ0ZoxfOcavHONXjvErx/iVY/zKMX7llInfd7ayU7SQwy66iHgh8BfAWuAR4K7MfE6x7U3AK4A68JuZ+Ymi/HnA24Aa8N7MvK4o30gzWT8fuBN4eWYei4gB4P3AD9DsWX9ZZg4v8e+1NzO3nnpPzcf4lWP8yjF+5Ri/coxfOcavHONXTjvi15Ee9sy8BbhlgW3XAdfNU/5x4OPzlA/TnEVmbvkE8OLSlZUkSZI6qGqzxEiSJEmaxYR9cb2r0xVY5oxfOcavHONXjvErx/iVY/zKMX7lLHn8OjKGXZIkSVJr7GGXJEmSKsyE/QxExHsjYiQi7p5V9ocR8UBE3FX8PK+TdayyiNgQEbdFxD0RsT8ifqMoPz8iPhURXy1e13S6rlV0kvjZBlsQEQMR8fmI+EIRv7cU5ZdFxOeK9vehiOjvdF2r6CTxuyEi7pvV/q7odF2rLCJqEXFnRHys+Gz7Ow3zxM/216KIuD8ivljEaW9R5vW3RQvEb8mvvybsZ+YG4Op5yq/PzCuKn8fNaKPj6sBvZ+aTgR8GXhsRlwO/B/xrZm4C/rX4rMdbKH5gG2zFMeCZmfn9wBXA1RHxw8BbacZvEzAKvLKDdayyheIH8Duz2t9dnavisvAbwD2zPtv+Ts/c+IHt73T8eBGnmakIvf6enrnxgyW+/pqwn4HMHGKBVVN1apn5tcy8o3g/RvN/uhcDzwduLHa7EXhBZ2pYbSeJn1qQTY8WH/uKnwSeCdxclNv+FnCS+KlFEbEe+Cng3cXnwPbXsrnx06Lw+ltxJuyL63UR8d/FkBn/OakFEXEpzcWtPgdcmJlfg2ZSCqzrXM2WhznxA9tgS4p/Tr8LGAE+BfwP8Ehm1otdDuFN0ILmxi8zZ9rfdUX7uz4izulgFavubcDvAtPF5ydg+zsdc+M3w/bXmgT+JSL2RcSrijKvv62bL36wxNdfE/bF807gu2j+E/HXgD/tbHWqLyJWAX9Pc0XbI52uz3IzT/xsgy3KzEZmXgGsp7nw2pPn2629tVo+5sYvIr4XeCOwGfghmitPv6GDVaysiPhpYCQz980unmdX2988Fogf2P5OxzMy86nAc2kOqdzW6QotM/PFb8mvvybsiyQzHy4uYtPAXzPP6qv6tojoo5lsfiAz/6EofjginlhsfyLN3jvNY7742QZPX2Y+Auyh+SzA6oiYWf15PfBgp+q1XMyK39XFUK3MzGPA+7D9LeQZwDURcT9wE82hMG/D9teqx8UvIv7G9te6zHyweB2huer80/D627L54teO668J+yKZaeiFFwJ3L7RvtyvGa74HuCcz/2zWpt3AtcX7a4GPtLtuy8FC8bMNtiYi1kbE6uL9CuDZNJ8DuA14UbGb7W8BC8TvwKyLfdAc/2r7m0dmvjEz12fmpcDLgFsz8xew/bVkgfi93PbXmog4NyIGZ94DP0kzVl5/W7BQ/Npx/e099S6aKyI+CFwFXBARh4A3A1cV00glcD+wvWMVrL5nAL8IfLEYBwvw+8AfAx+OiFcC/we8uEP1q7qF4vdztsGWPBG4MSJqNDstPpyZH4uILwE3RcQfAXfSvCnS4y0Uv1sjYi3N4R13Aa/uZCWXoTdg+yvjA7a/llwI3NK8r6EX+NvM/GRE/Bdef1uxUPzev9TXX1c6lSRJkirMITGSJElShZmwS5IkSRVmwi5JkiRVmAm7JEmSVGEm7JIkSVKFmbBL0jIXEZdGxOPm/Y2InRHx7FMc+4cR8fqlq50kqSznYZeks1Rm7uh0HSRJ5dnDLklnh1pE/HVE7I+If4mIFRFxQ0S8CCAinhcRByLiMxHx9oj42KxjL4+IPRExHBG/Xuz/u7PeXx8RtxbvnxURf1O8f2dE7C3O+ZZZ22+Z+eKI+ImI+Ie5lY2IX46If4yIj0bEfRHxuoj4rYi4MyL+MyLOL/bbExFvi4jPRsTdEfG0onxtRHwqIu6IiF0R8b8RccGSRFaSOsyEXZLODpuAd2TmFuAR4GdnNkTEALALeG5mXgmsnXPsZuA5wNOAN0dEHzAE/GixfSuwqii/Evj3ovxNmbkVeArwYxHxFOBW4MnFqpMAvwK8b4E6fy/w88V5rwPGM/MHgNuBX5q137mZ+SPAa4D3FmVvprks/VOBW4BLThEfSVq2TNgl6exwX2beVbzfB1w6a9tmYDgz7ys+f3DOsf+Umccy8xvACM3lt/cBPxgRg8Axmkn0VppJ/EzC/pKIuAO4E9gCXJ7N5bPfD7w8IlYDTwc+sUCdb8vMscz8OnAY+GhR/sU59f8gQGYOAd9RfO+VwE1F+SeB0ZPERpKWNcewS9LZ4dis9w1gxazPcZrH9mbmVETcT7OH/LPAfwM/DnwXcE9EXAa8HvihzByNiBuAgeI73kcz+Z4A/i4z6xHxQpq94gC/Os95p2d9nubE61POqW+28DtJ0lnDHnZJOvsdADZGxKXF55e2eNwQzaR8iGav+quBu4pe9O8AHgMOR8SFwHNnDsrMB4EHgT8AbijKbsnMK4qfvadZ/5cCRMSVwOHMPAx8BnhJUf6TwJrT/E5JWjbsYZeks1xmHo2I1wCfjIhvAJ9v8dB/B94E3J6Zj0XERFFGZn4hIu4E9gPDwH/MOfYDwNrM/NIi/AqjEfFZmjcJryjK3gJ8MCJeCvwb8DVgbBHOJUmVE82OEknS2SwiVmXmoxERwDuAr2bm9Ut4vr8E7szM95T8nj3A6+f2ykfEOUCjGG7zdOCdmXlFmXNJUlXZwy5J3eHXIuJaoJ/mQ6K7lupEEbGP5nCZ316qc9CcFebDEdEDTAK/toTnkqSOsoddkiRJqjAfOpUkSZIqzIRdkiRJqjATdkmSJKnCTNglSZKkCjNhlyRJkirMhF2SJEmqsP8H7Cv8sicTl/MAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"width = 12\n",
"height = 10\n",
"plt.figure(figsize=(width, height))\n",
"sns.residplot(df['highway-mpg'], df['price'])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<i>What is this plot telling us?</i>\n",
"\n",
"<p>We can see from this residual plot that the residuals are not randomly spread around the x-axis, which leads us to believe that maybe a non-linear model is more appropriate for this data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Multiple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>How do we visualize a model for Multiple Linear Regression? This gets a bit more complicated because you can't visualize it with regression or residual plot.</p>\n",
"\n",
"<p>One way to look at the fit of the model is by looking at the <b>distribution plot</b>: We can look at the distribution of the fitted values that result from the model and compare it to the distribution of the actual values.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First lets make a prediction "
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Y_hat = lm.predict(Z)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAu0AAAJcCAYAAABNKJq3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xl4VdW9//H3lzGMghEcmBJlCmPAYFVEJqtoLVBxgOtcO6h1qq1VO1hvh9tq7cVatf21dawKKKhYpdgrCKhYFRBRpoIQFWSeBGVM1u+PtQ+GkOEkOfvsM3xez3Oeneyzz9rfk/jI56x899rmnENERERERFJXvagLEBERERGRqim0i4iIiIikOIV2EREREZEUp9AuIiIiIpLiFNpFRERERFKcQruIiIiISIpTaBcRCYGZDTGzNRGef7GZDQlx/CvM7PV0G7uKcx5tZnPMbKeZ/T6Z5w7OP8jMlif7vCKSPhTaRSQjmdksM9tmZo3jPD7PzJyZNQi7tkQxs0fNbJ+Z7SrzuAjAOdfTOTcrOO5OM3ui3Gtnmdm3Qqgpx8y2m9mwCp4bb2aTE33OBPkOsBlo6Zz7QV0HCz54lAS/k8/MbKGZnVvZ8c6515xz3ep6XhHJXArtIpJxzCwPGAQ4YGSkxYTvbudc8zKPSVEW45zbA0wCLiu738zqA+OAx6KoKw6dgCWuFnccrOKD3pvOueZAK+Ah4GkzO7IGrxcROUihXUQy0WXAv4FHgcvLPmFmTczs92b2kZntMLPXzawJMCc4ZHswO3pK+Rnq8rPxZnalmS0NWipWmdl34ynOzP5sZveU2zfVzG4Ovr7VzNYG4y43s+E1/QGYWbGZnWFmI4AfAxcF7+s9M/s1/kPN/cG++4PXdDez/zOzrcF5LywzXq6ZvRDMGr8NnFDF6R8DxphZ0zL7zsL/m/PPYLzbzOzD4D0uMbNvVPI+DvsLSPm/EpjZN4PfwzYze9nMOgX7LZjd3xj8rheZWa8KzvEo/r+THwU/jzPMrLGZ3WtmnwaPe2N/tYm1PgW/p/XAI1X8LHDOlQIPA02A4yt6vZVrpzKzDmb2rJltMrMtsd9RVe9XRDKbQruIZKLLgCeDx1lmdnSZ5+4BTgROBY4EfgSUAqcHz7cKZqzfjOM8G4FzgZbAlcB4M+sfx+uewodoAzCz1sCZwEQz6wZcBwxwzrXAh93iOMaskHNuOvA/wKTgffV1zv0EeA24Lth3nZk1A/4vqK0tflb8QTPrGQz1ALAHOBb4ZvCo7JxzgXXAeWV2Xwo85Zw7EHz/If6DwxHAfwNPmNmxNX1/ZjYa/6HkPKBN8L4mBE+fif+9dsXPdl8EbKmg3ivw/63E/mrxCvAT4GSgEOgLnAT8tMzLjsH/99MJ31pTVY0NgG8Bu4AV1b0++KvEi8BHQB7QDpgYx/sVkQym0C4iGcXMTsMHoaedc/Px4fC/gufq4cPmjc65tc65EufcXOfc3tqcyzn3knPuQ+fNBv6FD6LVeQ3fuhM79nx8K8WnQAnQGOhhZg2dc8XOuQ+rGOuH5nvIt5vZ5tq8j8C5QLFz7hHn3AHn3AJgCnB+ECLHAHc45z53zn1A9W0ujxO0yJhZS2BU2dc4555xzn3qnCsNWnpW4INxTX0X+I1zbmnwgeB/gMJg9nk/0ALoDlhwzLo4x70Y+IVzbqNzbhP+g8WlZZ4vBX7unNvrnNtdyRgnm9l2YD3+Q9A3nHM74nj9ScBxwC3Bz3uPcy52YW5V71dEMphCu4hkmsuBfznnYgH2Kb5skTkKyMEH+Tozs7PN7N9BO8l24JzgHFUK+qYn4oMc+A8VTwbPrQRuAu4ENprZRDM7rorh7nHOtQoe1Z67Cp2Ar5T5ALAdH1yPwc/oNgA+KXP8R9WM9zgw1Mza4T+UrHTOvRt70swuM39xZuxcvYjjZ1dJ3X8oM85WwIB2zrmZwP34vxJsMLO/BB8g4nEch77Hj4J9MZuC/v2q/Dv2e3HOnRzM4Mfz+g7AR2X+KlFWpe+3mlpEJM0ptItIxjDfm34hMNjM1gf9wt8H+ppZX/zqIHuouB+7ogsQPwfK9mUfU+ZcjfEz0fcARzvnWgHT8AEqHhPws9idgK8EY/lCnHvKORf7i4ED7opzzMpU9N7K7/sEmF3mA0CsTegaYBNwAB8mYzpWeULnPsb/ReFi/Az147Hngvf8V3wbUG7ws/uAin92nwfbCn8PQd3fLVd3k6BFB+fcfc65E4Ge+DaZW6qqu4xP8T//mI7BvoNvMc5xKlPV6z8BOlrFF6hW+X5FJHMptItIJhmNby/pge9FLgQK8OHxsjIXBP6vmR1nZvXNX3DaGB9MS4Hjy4y3EDjdzDqa2RHA7WWea4RvY9kEHDCzs/E91HEJZp03AX8DXnbObQcws25mNiyoaQ+wO3hPdbEByAvag8ruK/teXwS6mtmlZtYweAwwswLnXAnwLHCnmTU1sx6Uu8C3Eo/hg/lAgr8kBJrhQ+sm8Bf04mfaDxO0pqwFLgl+X9/k0A9dfwZuj/Xem9kRZnZB8PUAM/uKmTXEh/89xP+znAD81MzamNlRwB3AE9W8JlHexl8T8Fsza2Z+Gc2BwXOVvl8RyWwK7SKSSS4HHnHOfeycWx974FskLg5mLn8IvA+8g28tuAuo55z7Avg18EbQenCyc+7/8MsXLgLm44MtAM65ncANwNPANnyLyws1rHcCcAa+hSemMfBb/F8F1uMvCv1xDcct75lgu8XMFgRf/wE/07/NzO4L3s+ZwFj8jPJ6/M8mts79dUDzYP+jVLNiSmAy0BqYUbaX3Dm3BPg98Cb+w0Nv4I0qxvk2foZ8C37G/OCssnPuuaDOiWb2GX7G/uzg6Zb4Gf1t+PaWLfi/jMTjV8A8/O/+fWBBsC90wYekrwOdgY+BNfiLaKt7vyKSwawWS9KKiIiIiEgSaaZdRERERCTFKbSLiIiIiKQ4hXYRERERkRSn0C4iIiIikuIqWgM26x111FEuLy8v6jJEREREJMPNnz9/s3OuTXXHKbRXIC8vj3nz5kVdhoiIiIhkODOr7g7TgNpjRERERERSnkK7iIiIiEiKU2gXEREREUlx6mkXERERyTD79+9nzZo17NmzJ+pSJJCTk0P79u1p2LBhrV6v0C4iIiKSYdasWUOLFi3Iy8vDzKIuJ+s559iyZQtr1qwhPz+/VmOoPUZEREQkw+zZs4fc3FwF9hRhZuTm5tbpLx8K7SIiIiIZSIE9tdT196HQLiIiIiKS4hTaRURERCQUzz33HGbGsmXLqj320Ucf5dNPP631uWbNmsW55557yL7PP/+c3NxcduzYccj+0aNH8/TTT9dorKgptIuIiIhIKCZMmMBpp53GxIkTqz22rqG9Is2aNePMM8/k+eefP7hvx44dvP766ykXyquj0C4iIiIiCbdr1y7eeOMNHnroocNC+913303v3r3p27cvt912G5MnT2bevHlcfPHFFBYWsnv3bvLy8ti8eTMA8+bNY8iQIQC8/fbbnHrqqfTr149TTz2V5cuXV1nHuHHjDjn/c889x4gRI2jatGlcY915553cc889B7/v1asXxcXFADzxxBOcdNJJFBYW8t3vfpeSkpLa/KjioiUfRURERDLZTTfBwoWJHbOwEO69t8pDnn/+eUaMGEHXrl058sgjWbBgAf379+ef//wnzz//PG+99RZNmzZl69atHHnkkdx///3cc889FBUVVTlu9+7dmTNnDg0aNOCVV17hxz/+MVOmTKn0+BEjRvCtb32LLVu2kJuby8SJE7n++utrNVZZS5cuZdKkSbzxxhs0bNiQa6+9lieffJLLLrssrtfXlEK7iIiIiCTchAkTuOmmmwAYO3YsEyZMoH///rzyyitceeWVNG3aFIAjjzyyRuPu2LGDyy+/nBUrVmBm7N+/v8rjGzVqxMiRI5k8eTJjxoxh4cKFnHnmmbUaq6wZM2Ywf/58BgwYAMDu3btp27Ztjd5LTSi0i4iIiGSyambEw7BlyxZmzpzJBx98gJlRUlKCmXH33XfjnItr+cMGDRpQWloKcMj65j/72c8YOnQozz33HMXFxQfbZqoybtw4fvWrX+GcY9SoUQfvShrPWGXrKFuLc47LL7+c3/zmN9WePxHU0y4iIiIiCTV58mQuu+wyPvroI4qLi/nkk0/Iz8/n9ddf58wzz+Thhx/miy++AGDr1q0AtGjRgp07dx4cIy8vj/nz5wMc0rKyY8cO2rVrB/iLV+MxdOhQVqxYwQMPPMC4ceNqNFZeXh4LFiwAYMGCBaxevRqA4cOHM3nyZDZu3HjwfXz00Udx1VMbCu0iIiIiklATJkzgG9/4xiH7xowZw1NPPcWIESMYOXIkRUVFFBYWHrzI84orruDqq68+eCHqz3/+c2688UYGDRpE/fr1D47zox/9iNtvv52BAwfGfeFnvXr1GDNmDFu2bOH000+v0Vhjxoxh69atFBYW8qc//YmuXbsC0KNHD371q19x5pln0qdPH7761a+ybt26Gv2casKcc6ENnq6KiorcvHnzoi5DREREpFaWLl1KQUFB1GVIORX9XsxsvnOu6qtv0Uy7iIiIiEjKU2gXEREREUlxCu0iIiIiIilOoV1EREREJMUptIuIiIiIpDiFdhERERGRFBdqaDezEWa23MxWmtltFTzf2MwmBc+/ZWZ5ZZ67Pdi/3MzOqm5MM8sPxlgRjNko2N/RzF41s3fNbJGZnRPmexaRWvh//w8efBC0BK2ISMaoX78+hYWFBx/FxcXMmzePG264AYBZs2Yxd+7cg8c///zzLFmypMbnad68+WH7hgwZwssvv3zIvnvvvZdrr722xmOlitBCu5nVBx4AzgZ6AOPMrEe5w64CtjnnOgPjgbuC1/YAxgI9gRHAg2ZWv5ox7wLGO+e6ANuCsQF+CjztnOsXjPlgGO9XRGrpmWfg6qvhe9+DSy6B3bujrkhERBKgSZMmLFy48OAjLy+PoqIi7rvvPiBxob0i48aNY+LEiYfsmzhx4iF3Q003Yc60nwSsdM6tcs7tAyYCo8odMwp4LPh6MjDczCzYP9E5t9c5txpYGYxX4ZjBa4YFYxCMOTr42gEtg6+PAD5N8PsUkdr64AO48ko4+WT4xS/gqafg9NNh7dqoKxMRkRDMmjWLc889l+LiYv785z8zfvx4CgsLmT17Ni+88AK33HILhYWFfPjhh3z44YeMGDGCE088kUGDBrFs2TIAVq9ezSmnnMKAAQP42c9+VuF5zj//fF588UX27t0LQHFxMZ9++imnnXYau3btYvjw4fTv35/evXszderUSuuMue6663j00UcBmD9/PoMHD+bEE0/krLPOOngX1Pvuu48ePXrQp08fxo4dm8gfGwANEj7il9oBn5T5fg3wlcqOcc4dMLMdQG6w/9/lXtsu+LqiMXOB7c65AxUcfyfwLzO7HmgGnFFRsWb2HeA7AB07dozrDYpIHWzfDt/4BrRoAVOmwHHHQZ8+frZ9wACYOtVvRUSkTm66CRYuTOyYhYVw771VH7N7924KCwsByM/P57nnnjv4XF5eHldffTXNmzfnhz/8IQAjR47k3HPP5fzzzwdg+PDh/PnPf6ZLly689dZbXHvttcycOZMbb7yRa665hssuu4wHHnigwnPn5uZy0kknMX36dEaNGsXEiRO56KKLMDNycnJ47rnnaNmyJZs3b+bkk09m5MiR+Dngqu3fv5/rr7+eqVOn0qZNGyZNmsRPfvITHn74YX7729+yevVqGjduzPbt2+P5MdZImKG9ondevmG1smMq21/RXwaqOh5gHPCoc+73ZnYK8Hcz6+WcKz3kYOf+AvwFoKioSI21ImEqLYWLL4biYnj1VR/YAUaNgjffhHPPhXHjYMUKiON/oiIiknpi7TG1sWvXLubOncsFF1xwcF9s1vyNN95gypQpAFx66aXceuutFY4Ra5GJhfaHH34YAOccP/7xj5kzZw716tVj7dq1bNiwgWOOOabaupYvX84HH3zAV7/6VQBKSko49thjAejTpw8XX3wxo0ePZvTo0VUNUythhvY1QIcy37fn8NaU2DFrzKwBvn1lazWvrWj/ZqCVmTUIZtvLHn8Vvi8e59ybZpYDHAVsrNO7E5Ha+9WvYNo0eOABOO20Q5/r1Qt++Uu47DJ4/XUYNCiaGkVEMkR1M+KpqLS0lFatWlUa+uOZFR89ejQ333wzCxYsYPfu3fTv3x+AJ598kk2bNjF//nwaNmxIXl4ee/bsOeS1DRo0oLT0y/nd2PPOOXr27Mmbb7552Pleeukl5syZwwsvvMAvf/lLFi9eTIMGiYvaYfa0vwN0CVZ1aYS/CPSFcse8AFwefH0+MNM554L9Y4PVZfKBLsDblY0ZvObVYAyCMWMNSh8DwwHMrADIATYl/N2KSHz274ff/963xlxzTcXHnHceNG8OQf+giIhknhYtWrBz584Kv2/ZsiX5+fk888wzgA/L7733HgADBw48eJHpk08+Wen4zZs3Z8iQIXzzm9885ALUHTt20LZtWxo2bMirr77KRx99dNhrO3XqxJIlS9i7dy87duxgxowZAHTr1o1NmzYdDO379+9n8eLFlJaW8sknnzB06FDuvvtutm/fzq5du+ry4zlMaKE9mPG+DngZWIpfwWWxmf3CzEYGhz0E5JrZSuBm4LbgtYuBp4ElwHTge865ksrGDMa6Fbg5GCs3GBvgB8C3zew9YAJwRRDyRSQKc+fCZ5/BpZdW3vrSrBlceCE8/TR8/nly6xMRkaT4+te/znPPPUdhYSGvvfYaY8eO5Xe/+x39+vXjww8/5Mknn+Shhx6ib9++9OzZ8+AFo3/4wx944IEHGDBgADt27KjyHOPGjeO999475MLQiy++mHnz5lFUVMSTTz5J9+7dD3tdhw4duPDCCw+2vPTr1w+ARo0aMXnyZG699Vb69u1LYWEhc+fOpaSkhEsuuYTevXvTr18/vv/979OqVasE/rTAlF8PV1RU5ObNmxd1GSKZ6dZbYfx42LwZWras/LhYa8xjj/lWGRERidvSpUspKCiIugwpp6Lfi5nNd84VVfda3RFVRJJr2jQfxqsK7AADB0LnzmqRERERQaFdRJLp44/92uxf+1r1x5rBFVf41WVWrw69NBERkVSm0C4iyfPPf/rtOefEd3ys7/3xx8OrSUQkQ6kFOrXU9feh0C4iyfPSS5CfD926xXd8x44wfLjvay8trf54EREBICcnhy1btii4pwjnHFu2bCEnJ6fWY4S5TruIyJf27IEZM+DKK2t2w6Qrr/Q3YpozB4YMCa08EZFM0r59e9asWcOmTVrlOlXk5OTQvn37Wr9eoV1EkmPOHPjii/hbY2JGj/YXrT7yiEK7iEicGjZsSH5+ftRlSAKpPUZEkmPaNMjJgaFDa/a6pk19cH/pJbXIiIhI1lJoF5HkmDYNhg2DJk1q/tqhQ2HLFli6NPF1iYiIpAGFdhEJ34oV/lHT1piYQYP89rXXEleTiIhIGlFoF5HwTZvmt7UN7ccfD8cd5/viRUREspBCu4iEb9o0KCjwyz3WhpmfbZ8zB7R8mYiIZCGFdhEJV2kpzJ3r+9nr4vTTYe1aKC5OSFkiIiLpRKFdRMJVXAy7dkFhYd3GOf10v1Vfu4iIZCGFdhEJ16JFftunT93G6dEDWrdWX7uIiGQlhXYRCdeiRb4nvWfPuo1Tr96Xfe0iIiJZRqFdRML1/vtwwgnQrFndxxo0yC8duX593ccSERFJIwrtIhKuRYvq3hoTo752ERHJUgrtIhKeL76AlSuhd+/EjNevHzRtqtAuIiJZR6FdRMKzZIlf8jFRM+0NG8Kpp6qvXUREso5Cu4iEJ7ZyTKJm2sH3tS9aBNu3J25MERGRFKfQLiLhef99385y/PGJG/P00/1dUd94I3FjioiIpDiFdhEJz6JF0KsX1K+fuDG/8hXfJqMWGRERySIK7SISDud8aE9kawxAkyYwYIAuRhURkayi0C4i4diwATZvTtxFqGWdcgosWAAHDiR+bBERkRSk0C4i4QjjItSYfv1g715YtizxY4uIiKQghXYRCUfYoR3g3XcTP7aIiEgKUmgXkXC8/z4cdxwcdVTix+7aFXJyYOHCxI8tIiKSghTaRSQcYVyEGtOgge+V10y7iIhkCYV2EUm8/fv93VDDuAg1prDQz7Q7F945REREUoRCu4gk3ooVsG9feDPt4Pvat22Djz8O7xwiIiIpQqFdRBIvdhFqmDPtuhhVRESyiEK7iCTe++/7vvPu3cM7R+/eUK+eLkYVEZGsoNAuIom3aBF06waNG4d3jqZN/Tk00y4iIllAoV1EEi/MlWPKKixUaBcRkayg0C4iibVnj784tKAg/HP16weffAJbtoR/LhERkQgptItIYn30kd/m54d/rtjFqOprFxGRDKfQLiKJtWqV3x5/fPjnKiz0W4V2ERHJcArtIpJYyQztRx0F7durr11ERDKeQruIJNaqVZCTA8cck5zz6WJUERHJAgrtIpJYq1f7fnaz5JyvXz9Ytgx2707O+URERCKg0C4iibVqVXJaY2L69YPSUn9DJxERkQyl0C4iieNc8kN77GJUtciIiEgGU2gXkcTZsgV27kxuaM/LgyOO0AoyIiKS0RTaRSRxVq/222Ss0R5jpotRRUQk4ym0i0jiJHO5x7IKC31Pe2lpcs8rIiKSJArtIpI4sdCezJl2gF694IsvoLg4uecVERFJEoV2EUmcVaugbVto3jy55+3Rw28XL07ueUVERJJEoV1EEie2RnuyxUL7kiXJP7eIiEgSKLSLSOIke7nHmFatoF07zbSLiEjGUmgXkcTYvx8+/jia0A7Qs6dCu4iIZCyFdhFJjE8+gZKSaEP70qVaQUZERDKSQruIJEZUK8fE9OwJu3d/uVa8iIhIBlFoF5HEiIXlqGbatYKMiIhkMIV2EUmMVaugQQNo3z6a82sFGRERyWAK7SKSGKtWQV4e1K8fzfmPOMJ/YNBMu4iIZKBQQ7uZjTCz5Wa20sxuq+D5xmY2KXj+LTPLK/Pc7cH+5WZ2VnVjmll+MMaKYMxGwf7xZrYwePzHzLaH+Z5FstaqVdH1s8doBRkREclQoYV2M6sPPACcDfQAxplZj3KHXQVsc851BsYDdwWv7QGMBXoCI4AHzax+NWPeBYx3znUBtgVj45z7vnOu0DlXCPwReDas9yyS1Vavjq6fPSa2gkxJSbR1iIiIJFiYM+0nASudc6ucc/uAicCocseMAh4Lvp4MDDczC/ZPdM7tdc6tBlYG41U4ZvCaYcEYBGOOrqCmccCEhL1DEfF27IAtW1IjtO/ZoxVkREQk44QZ2tsBn5T5fk2wr8JjnHMHgB1AbhWvrWx/LrA9GKPCc5lZJyAfmFlRsWb2HTObZ2bzNm3aFOdbFBEg+pVjYrSCjIiIZKgwQ7tVsM/FeUyi9pc1FpjsnKvw7+bOub8454qcc0Vt2rSp6BARqUzUa7THaAUZERHJUGGG9jVAhzLftwc+rewYM2sAHAFsreK1le3fDLQKxqjsXGNRa4xIOFJlpr1lS+jQQTPtIiKSccIM7e8AXYJVXRrhQ/ML5Y55Abg8+Pp8YKZzzgX7xwary+QDXYC3KxszeM2rwRgEY06NncTMugGtgTdDeJ8ismoVtGoFrVtHXYlWkBERkYwUWmgP+suvA14GlgJPO+cWm9kvzGxkcNhDQK6ZrQRuBm4LXrsYeBpYAkwHvuecK6lszGCsW4Gbg7Fyg7FjxuEvbC3fMiMiibBqVfSz7DE9e8KyZVpBRkREMoopxx6uqKjIzZs3L+oyRNJHt27QuzdMnlz9sWF75BH45jfhP/+BLl2irkZERKRKZjbfOVdU3XG6I6qI1E1pKRQXR38RaoxWkBERkQyk0C4idbN5M+zbBx07Rl2JpxVkREQkAym0i0jdrFnjt+3bR1tHTIsW/gOEZtpFRCSDKLSLSN2kWmgHrSAjIiIZR6FdROpm7Vq/bVf+hscR0goyIiKSYRTaRaRu1qyB+vXh6KOjruRLBQWwd6+/QFZERCQDKLSLSN2sWQPHHeeDe6ooKPDbpUujrUNERCRBFNpFpG7WrEmt1hiA7t39VqFdREQyhEK7iNTN2rWpdREqQOvWvl1HoV1ERDKEQruI1J5zfqY91UI7+BaZZcuirkJERCQhFNpFpPZ27IDPP0/N0N69u59pdy7qSkREROpMoV1Eai8Vl3uMKSiA7dthw4aoKxEREakzhXYRqb1UvLFSTGwFGbXIiIhIBlBoF5HaS4fQrotRRUQkAzSIugARSWOx0H7ccdHWUZF27aB581BDu3Pw/vvQpIn/3NKkSWinEhGRLKeZdhGpvbVroW1baNQo6koOZ+YvRg2pPWbVKjjnHOjbF7p2haZNoU0buP122L8/lFOKiEgW00y7iNReqi73GFNQAK++mtAhDxyAe+6B//5vaNAA7r7bLwm/Zg28+y789rcwaxZMmAB5eQk9tYiIZDGFdhGpvTVrID8/6ioq1707/P3vsHMntGiRkCF/8AO47z447zz4wx8O/8zyzDPwrW9Bv37wxBPwta8l5LQiIpLl1B4jIrWXDjPtkLAWmX/+0wf266+HKVMqfusXXOBn3I8/HsaMgbffTsipRUQkyym0i0jtfPEFbNuWmmu0xyQwtG/cCFdeCb16+ZaYqhx/PLz8Mhx7LIweDZ9+WufTi4hIllNoF5Haid1YKZVn2k84wTee13EFGefgqqv8vZqeegpycqp/zVFHwQsvwGef+eC+e3edShARkSyn0C4itZPKa7THNGwInTvXObT/7W/w4otw113Qu3f8r+vd2/e1v/MOfPe7dSpBRESynEK7iNROOsy0g2+RqUN7zL59fqWYgQN9L3tNjR4Nd97pr4d95plalyEiIllOoV1Eaic2057KPe3gQ/vKlbVePH3CBP/55Cc/gXq1/D/mT34CRUVw7bWwaVPtxhARkeym0C4itbNmDbRqBc2aRV1J1bp394urr1xZ45c659dk79ULRoyofQkNGsAjj8COHbWbrRcREVFoF5HaSfXlHmNiK8jUoq99+nT44AO45RZ/g9W66NUL7rgDJk2IYxLTAAAgAElEQVSC556r21giIpJ9FNpFpHbWrk2P0N69u9/Woq/97rv9Wxw7NjGl3Hqrv+nSNdfA1q2JGVNERLKDQruI1M6aNanfzw7QvLlP3jWcaX/nHZg1C266CRo1SkwpDRvCww/D5s1w222JGVNERLKDQruI1Nz+/bBhQ3rMtINvkalhaL/nHjjiCPj2txNbSmGh/yDw17/CG28kdmwREclcCu0iUnPr1vmrNNMptC9b5muOw9atvu/8yiuhZcvEl3PnndChA1x9da0XtRERkSyj0C4iNZcON1Yqq6AAPv/8y7qr8eyzPkxffHE45TRvDvff7y9yHT8+nHOIiEhmUWgXkZpLlzXaY2IXo8bZIjNhgr+R6oknhlfSyJEwapSfdS8uDu88IiKSGRTaRaTm0nGmHeIK7evWwauvwrhxdV/msTp//CPUr+/bZOLs3BERkSyl0C4iNbd2LTRt6m+ulA7atoXWreNa9vHpp32AHjcu/LI6dIDf/hZefhkefzz884mISPpSaBeRmovdWCnsqehEMfMtMnHMtE+YAH37fjk5H7ZrroGBA+H734f165NzThERST8K7SJSc+myRntZcSz7uGoVvPVWcmbZY+rVg4cegi++gOuuS955RUQkvSi0i0jNxWba00lBAWzcWOWtSCdO9NtE3QE1Xt26wc9/DlOmwOTJyT23iIikB4V2EamZ0lL49NP0C+2xFWSq6GufMMG3qnTqlKSayvjhD/1qNd/5Dnz0UfLPLyIiqU2hXURqZvNmOHAAjj026kpqppoVZFas8OumX3RREmsqo2FDP9NfUgIXXgj79kVTh4iIpCaFdhGpmXXr/DbdQnteHjRuXOlM+0sv+e255yavpPI6d4aH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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(width, height))\n",
"\n",
"\n",
"ax1 = sns.distplot(df['price'], hist=False, color=\"r\", label=\"Actual Value\")\n",
"sns.distplot(Yhat, hist=False, color=\"b\", label=\"Fitted Values\" , ax=ax1)\n",
"\n",
"\n",
"plt.title('Actual vs Fitted Values for Price')\n",
"plt.xlabel('Price (in dollars)')\n",
"plt.ylabel('Proportion of Cars')\n",
"\n",
"plt.show()\n",
"plt.close()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We can see that the fitted values are reasonably close to the actual values, since the two distributions overlap a bit. However, there is definitely some room for improvement.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Part 3: Polynomial Regression and Pipelines</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Polynomial regression</b> is a particular case of the general linear regression model or multiple linear regression models.</p> \n",
"<p>We get non-linear relationships by squaring or setting higher-order terms of the predictor variables.</p>\n",
"\n",
"<p>There are different orders of polynomial regression:</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center><b>Quadratic - 2nd order</b></center>\n",
"$$\n",
"Yhat = a + b_1 X^2 +b_2 X^2 \n",
"$$\n",
"\n",
"\n",
"<center><b>Cubic - 3rd order</b></center>\n",
"$$\n",
"Yhat = a + b_1 X^2 +b_2 X^2 +b_3 X^3\\\\\n",
"$$\n",
"\n",
"\n",
"<center><b>Higher order</b>:</center>\n",
"$$\n",
"Y = a + b_1 X^2 +b_2 X^2 +b_3 X^3 ....\\\\\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We saw earlier that a linear model did not provide the best fit while using highway-mpg as the predictor variable. Let's see if we can try fitting a polynomial model to the data instead.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We will use the following function to plot the data:</p>"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def PlotPolly(model, independent_variable, dependent_variabble, Name):\n",
" x_new = np.linspace(15, 55, 100)\n",
" y_new = model(x_new)\n",
"\n",
" plt.plot(independent_variable, dependent_variabble, '.', x_new, y_new, '-')\n",
" plt.title('Polynomial Fit with Matplotlib for Price ~ Length')\n",
" ax = plt.gca()\n",
" ax.set_facecolor((0.898, 0.898, 0.898))\n",
" fig = plt.gcf()\n",
" plt.xlabel(Name)\n",
" plt.ylabel('Price of Cars')\n",
"\n",
" plt.show()\n",
" plt.close()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"lets get the variables"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"x = df['highway-mpg']\n",
"y = df['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's fit the polynomial using the function <b>polyfit</b>, then use the function <b>poly1d</b> to display the polynomial function."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 3 2\n",
"-1.557 x + 204.8 x - 8965 x + 1.379e+05\n"
]
}
],
"source": [
"# Here we use a polynomial of the 3rd order (cubic) \n",
"f = np.polyfit(x, y, 3)\n",
"p = np.poly1d(f)\n",
"print(p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's plot the function "
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"PlotPolly(p, x, y, 'highway-mpg')"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-1.55663829e+00, 2.04754306e+02, -8.96543312e+03, 1.37923594e+05])"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.polyfit(x, y, 3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We can already see from plotting that this polynomial model performs better than the linear model. This is because the generated polynomial function \"hits\" more of the data points.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #4:</h1>\n",
"<b>Create 11 order polynomial model with the variables x and y from above?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 3 2\n",
"-1.557 x + 204.8 x - 8965 x + 1.379e+05\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"f1 = np.polyfit(x, y, 11)\n",
"p1 = np.poly1d(f1)\n",
"print(p)\n",
"PlotPolly(p1,x,y, 'Length')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# calculate polynomial\n",
"# Here we use a polynomial of the 3rd order (cubic) \n",
"f1 = np.polyfit(x, y, 11)\n",
"p1 = np.poly1d(f1)\n",
"print(p)\n",
"PlotPolly(p1,x,y, 'Length')\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The analytical expression for Multivariate Polynomial function gets complicated. For example, the expression for a second-order (degree=2)polynomial with two variables is given by:</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"Yhat = a + b_1 X_1 +b_2 X_2 +b_3 X_1 X_2+b_4 X_1^2+b_5 X_2^2\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can perform a polynomial transform on multiple features. First, we import the module:"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.preprocessing import PolynomialFeatures"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We create a <b>PolynomialFeatures</b> object of degree 2: "
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pr=PolynomialFeatures(degree=2)\n",
"pr"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"Z_pr=pr.fit_transform(Z)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The original data is of 201 samples and 4 features "
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 4)"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Z.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"after the transformation, there 201 samples and 15 features"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 15)"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Z_pr.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Pipeline</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Data Pipelines simplify the steps of processing the data. We use the module <b>Pipeline</b> to create a pipeline. We also use <b>StandardScaler</b> as a step in our pipeline.</p>"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.pipeline import Pipeline\n",
"from sklearn.preprocessing import StandardScaler"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We create the pipeline, by creating a list of tuples including the name of the model or estimator and its corresponding constructor."
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Input=[('scale',StandardScaler()), ('polynomial', PolynomialFeatures(include_bias=False)), ('model',LinearRegression())]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we input the list as an argument to the pipeline constructor "
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Pipeline(memory=None,\n",
" steps=[('scale', StandardScaler(copy=True, with_mean=True, with_std=True)), ('polynomial', PolynomialFeatures(degree=2, include_bias=False, interaction_only=False)), ('model', LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False))])"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pipe=Pipeline(Input)\n",
"pipe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can normalize the data, perform a transform and fit the model simultaneously. "
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/preprocessing/data.py:625: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.partial_fit(X, y)\n",
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/base.py:465: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.fit(X, y, **fit_params).transform(X)\n"
]
},
{
"data": {
"text/plain": [
"Pipeline(memory=None,\n",
" steps=[('scale', StandardScaler(copy=True, with_mean=True, with_std=True)), ('polynomial', PolynomialFeatures(degree=2, include_bias=False, interaction_only=False)), ('model', LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False))])"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pipe.fit(Z,y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Similarly, we can normalize the data, perform a transform and produce a prediction simultaneously"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/pipeline.py:331: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" Xt = transform.transform(Xt)\n"
]
},
{
"data": {
"text/plain": [
"array([13102.74784201, 13102.74784201, 18225.54572197, 10390.29636555])"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ypipe=pipe.predict(Z)\n",
"ypipe[0:4]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #5:</h1>\n",
"<b>Create a pipeline that Standardizes the data, then perform prediction using a linear regression model using the features Z and targets y</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/preprocessing/data.py:625: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.partial_fit(X, y)\n",
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/base.py:465: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.fit(X, y, **fit_params).transform(X)\n",
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/pipeline.py:331: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" Xt = transform.transform(Xt)\n"
]
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"Input=[('scale',StandardScaler()),('model',LinearRegression())]\n",
"pipe=Pipeline(Input)\n",
"pipe.fit(Z,y)\n",
"ypipe=pipe.predict(Z)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"</div>\n",
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"Input=[('scale',StandardScaler()),('model',LinearRegression())]\n",
"\n",
"pipe=Pipeline(Input)\n",
"\n",
"pipe.fit(Z,y)\n",
"\n",
"ypipe=pipe.predict(Z)\n",
"ypipe[0:10]\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Part 4: Measures for In-Sample Evaluation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>When evaluating our models, not only do we want to visualize the results, but we also want a quantitative measure to determine how accurate the model is.</p>\n",
"\n",
"<p>Two very important measures that are often used in Statistics to determine the accuracy of a model are:</p>\n",
"<ul>\n",
" <li><b>R^2 / R-squared</b></li>\n",
" <li><b>Mean Squared Error (MSE)</b></li>\n",
"</ul>\n",
" \n",
"<b>R-squared</b>\n",
"\n",
"<p>R squared, also known as the coefficient of determination, is a measure to indicate how close the data is to the fitted regression line.</p>\n",
" \n",
"<p>The value of the R-squared is the percentage of variation of the response variable (y) that is explained by a linear model.</p>\n",
"\n",
"\n",
"\n",
"<b>Mean Squared Error (MSE)</b>\n",
"\n",
"<p>The Mean Squared Error measures the average of the squares of errors, that is, the difference between actual value (y) and the estimated value (ŷ).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Model 1: Simple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the R^2"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R-square is: 0.4965911884339175\n"
]
}
],
"source": [
"#highway_mpg_fit\n",
"lm.fit(X, Y)\n",
"# Find the R^2\n",
"print('The R-square is: ', lm.score(X, Y))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 49.659% of the variation of the price is explained by this simple linear model \"horsepower_fit\"."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the MSE"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can predict the output i.e., \"yhat\" using the predict method, where X is the input variable:"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The output of the first four predicted value is: [16236.50464347 16236.50464347 17058.23802179 13771.3045085 ]\n"
]
}
],
"source": [
"Yhat=lm.predict(X)\n",
"print('The output of the first four predicted value is: ', Yhat[0:4])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"lets import the function <b>mean_squared_error</b> from the module <b>metrics</b>"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.metrics import mean_squared_error"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we compare the predicted results with the actual results "
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean square error of price and predicted value is: 31635042.944639895\n"
]
}
],
"source": [
"mse = mean_squared_error(df['price'], Yhat)\n",
"print('The mean square error of price and predicted value is: ', mse)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Model 2: Multiple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the R^2"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R-square is: 0.8093562806577458\n"
]
}
],
"source": [
"# fit the model \n",
"lm.fit(Z, df['price'])\n",
"# Find the R^2\n",
"print('The R-square is: ', lm.score(Z, df['price']))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 80.896 % of the variation of price is explained by this multiple linear regression \"multi_fit\"."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the MSE"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" we produce a prediction "
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Y_predict_multifit = lm.predict(Z)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" we compare the predicted results with the actual results "
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean square error of price and predicted value using multifit is: 11980366.870726489\n"
]
}
],
"source": [
"print('The mean square error of price and predicted value using multifit is: ', \\\n",
" mean_squared_error(df['price'], Y_predict_multifit))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Model 3: Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the R^2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"let’s import the function <b>r2_score</b> from the module <b>metrics</b> as we are using a different function"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.metrics import r2_score"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We apply the function to get the value of r^2"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R-square value is: 0.6741946663906517\n"
]
}
],
"source": [
"r_squared = r2_score(y, p(x))\n",
"print('The R-square value is: ', r_squared)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 67.419 % of the variation of price is explained by this polynomial fit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>MSE</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also calculate the MSE: "
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"20474146.426361226"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mean_squared_error(df['price'], p(x))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Part 5: Prediction and Decision Making</h2>\n",
"<h3>Prediction</h3>\n",
"\n",
"<p>In the previous section, we trained the model using the method <b>fit</b>. Now we will use the method <b>predict</b> to produce a prediction. Lets import <b>pyplot</b> for plotting; we will also be using some functions from numpy.</p>"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create a new input "
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"new_input=np.arange(1, 100, 1).reshape(-1, 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Fit the model "
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.fit(X, Y)\n",
"lm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Produce a prediction"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([37601.57247984, 36779.83910151, 35958.10572319, 35136.37234487,\n",
" 34314.63896655])"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"yhat=lm.predict(new_input)\n",
"yhat[0:5]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can plot the data "
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(new_input, yhat)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Decision Making: Determining a Good Model Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Now that we have visualized the different models, and generated the R-squared and MSE values for the fits, how do we determine a good model fit?\n",
"<ul>\n",
" <li><i>What is a good R-squared value?</i></li>\n",
"</ul>\n",
"</p>\n",
"\n",
"<p>When comparing models, <b>the model with the higher R-squared value is a better fit</b> for the data.\n",
"<ul>\n",
" <li><i>What is a good MSE?</i></li>\n",
"</ul>\n",
"</p>\n",
"\n",
"<p>When comparing models, <b>the model with the smallest MSE value is a better fit</b> for the data.</p>\n",
"\n",
"\n",
"<h4>Let's take a look at the values for the different models.</h4>\n",
"<p>Simple Linear Regression: Using Highway-mpg as a Predictor Variable of Price.\n",
"<ul>\n",
" <li>R-squared: 0.49659118843391759</li>\n",
" <li>MSE: 3.16 x10^7</li>\n",
"</ul>\n",
"</p>\n",
" \n",
"<p>Multiple Linear Regression: Using Horsepower, Curb-weight, Engine-size, and Highway-mpg as Predictor Variables of Price.\n",
"<ul>\n",
" <li>R-squared: 0.80896354913783497</li>\n",
" <li>MSE: 1.2 x10^7</li>\n",
"</ul>\n",
"</p>\n",
" \n",
"<p>Polynomial Fit: Using Highway-mpg as a Predictor Variable of Price.\n",
"<ul>\n",
" <li>R-squared: 0.6741946663906514</li>\n",
" <li>MSE: 2.05 x 10^7</li>\n",
"</ul>\n",
"</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Simple Linear Regression model (SLR) vs Multiple Linear Regression model (MLR)</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Usually, the more variables you have, the better your model is at predicting, but this is not always true. Sometimes you may not have enough data, you may run into numerical problems, or many of the variables may not be useful and or even act as noise. As a result, you should always check the MSE and R^2.</p>\n",
"\n",
"<p>So to be able to compare the results of the MLR vs SLR models, we look at a combination of both the R-squared and MSE to make the best conclusion about the fit of the model.\n",
"<ul>\n",
" <li><b>MSE</b>The MSE of SLR is 3.16x10^7 while MLR has an MSE of 1.2 x10^7. The MSE of MLR is much smaller.</li>\n",
" <li><b>R-squared</b>: In this case, we can also see that there is a big difference between the R-squared of the SLR and the R-squared of the MLR. The R-squared for the SLR (~0.497) is very small compared to the R-squared for the MLR (~0.809).</li>\n",
"</ul>\n",
"</p>\n",
"\n",
"This R-squared in combination with the MSE show that MLR seems like the better model fit in this case, compared to SLR."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Simple Linear Model (SLR) vs Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li><b>MSE</b>: We can see that Polynomial Fit brought down the MSE, since this MSE is smaller than the one from the SLR.</li> \n",
" <li><b>R-squared</b>: The R-squared for the Polyfit is larger than the R-squared for the SLR, so the Polynomial Fit also brought up the R-squared quite a bit.</li>\n",
"</ul>\n",
"<p>Since the Polynomial Fit resulted in a lower MSE and a higher R-squared, we can conclude that this was a better fit model than the simple linear regression for predicting Price with Highway-mpg as a predictor variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Multiple Linear Regression (MLR) vs Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li><b>MSE</b>: The MSE for the MLR is smaller than the MSE for the Polynomial Fit.</li>\n",
" <li><b>R-squared</b>: The R-squared for the MLR is also much larger than for the Polynomial Fit.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Conclusion:</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Comparing these three models, we conclude that <b>the MLR model is the best model</b> to be able to predict price from our dataset. This result makes sense, since we have 27 variables in total, and we know that more than one of those variables are potential predictors of the final car price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"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.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment