Skip to content

Instantly share code, notes, and snippets.

@grahamhindle
Created November 12, 2019 11:57
Show Gist options
  • Save grahamhindle/5a7c403048f4a061d020ffaa5b975afb to your computer and use it in GitHub Desktop.
Save grahamhindle/5a7c403048f4a061d020ffaa5b975afb 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/DA0101EN_edx_link_Notebook_link_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": 1,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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/edx_DA0101EN_objectstorage\">HERE</a> for free storage."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 2,
"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": 3,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 4,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 4,
"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": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 6,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 6,
"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": 7,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([16236.50464347, 16236.50464347, 17058.23802179, 13771.3045085 ,\n",
" 20345.17153508])"
]
},
"execution_count": 7,
"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": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"38423.305858157386"
]
},
"execution_count": 8,
"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": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([-821.73337832])"
]
},
"execution_count": 9,
"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,
"jupyter": {
"outputs_hidden": 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,
"jupyter": {
"outputs_hidden": 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",
"X = df[['engine-size']]\n",
"y= df['price']\n",
"lm1.fit(X, y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm1.fit(df[['highway-mpg']], 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,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([166.86001569])"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm1.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Intercept</h4>"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"-7963.338906281049"
]
},
"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": [
"\n",
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# using X and Y \n",
"Yhat=-7963.34 + 166.86*X\n",
"\n",
"Price=-7963.34 + 166.86*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": {},
"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,
"jupyter": {
"outputs_hidden": 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,
"jupyter": {
"outputs_hidden": 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,
"jupyter": {
"outputs_hidden": 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,
"jupyter": {
"outputs_hidden": 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",
"Z = df[['normalized-losses', 'highway-mpg']]\n",
"y= df['price']\n",
"lm.fit(Z,y)"
]
},
{
"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",
"\n",
"lm.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": {},
"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": 25,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 48277.36540408245)"
]
},
"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": [
"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": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 47422.919330307624)"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuAAAAJNCAYAAABwXMA5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzde3Bc533m+ec9p7uBblwI8AJRISFLGGsCm1nJlmnFnqi4nDiZKJUs7ewqiTS1iWvHs2Il3o2nss7Gma1wa1kzW1bFlaxTW/FSsWcjZ6ciazizCSc1SsqxBsNkIlk3R/bSQkYaSDZIXZoX3Pt+zrt/nNNAdwMgG0D36T7d308VqtEv0OALkkA//Z7f+3uNtVYAAAAAouF0egIAAABAPyGAAwAAABEigAMAAAARIoADAAAAESKAAwAAABEigAMAAAARSnR6AlE7ePCgvfPOOzs9DQAAAPS4l1566Zq19lDjeN8F8DvvvFMvvvhip6cBAACAHmeM+d5W45SgAAAAABEigAMAAAARIoADAAAAESKAAwAAABEigAMAAAARIoADAAAAESKAAwAAABEigAMAAAARIoADAAAAESKAAwAAABEigAMAAAARIoADAAAAESKAAwAAABEigAMAAAARIoADAAAAESKAAwAAABEigAMAAAARIoADAAAAEUp0egLAXszMZnXu4pzmF3KaHM/o9IkpnZye6PS0AAAAtsUKOGJrZjarMxcuKbtS0Fg6qexKQWcuXNLMbLbTUwMAANgWARyxde7inJKuUSaVkDHBbdI1OndxrtNTAwAA2BYBHLE1v5BTOunWjaWTri4v5Do0IwAAgFsjgCO2Jsczype9urF82dPR8UyHZgQAAHBrBHDE1ukTUyp7VrlSRdYGt2XP6vSJqU5PDQAAYFsEcMTWyekJnT11TBMjg1rKlzUxMqizp47RBQUAAHQ12hAi1k5OTxC4AQBArLACDgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARCjR6QkAAOJnZjarcxfnNL+Q0+R4RqdPTOnk9ESnpwUAscAKOABgR2Zmszpz4ZKyKwWNpZPKrhR05sIlzcxmOz01AIgFAjgAYEfOXZxT0jXKpBIyJrhNukbnLs51emoAEAsEcADAjswv5JROunVj6aSrywu5Ds0IAOKFGnDEGnWoQPQmxzPKrhSUSW08heTLno6OZzo4KwCID1bAEVvUoQKdcfrElMqeVa5UkbXBbdmzOn1iqtNTA4BYIIAjtqhDBTrj5PSEzp46pomRQS3ly5oYGdTZU8e4+gQATaIEBbE1v5DTWDpZN0YdKhCNk9MTBG4A2CVWwBFbk+MZ5cte3Rh1qAAAoNsRwBFb1KECAIA4IoAjtqhDBQAAcUQNOGKNOlQAABA3rIADAAAAESKAAwAAABFqewA3xrjGmG8ZY/40vL/fGPN1Y8xr4e14zef+hjHmdWPM3xpjfqJm/EPGmO+EH/tdY4wJxweMMV8Lx79pjLmz3d8PAAAAsBdRrIB/RtKrNfc/J+kb1tq7JX0jvC9jzPslPSzpmKQHJf2eMcYNH/MlSY9Kujt8ezAc/5SkBWvteyX9jqTH2vutAAAAAHvT1gBujDkq6ackfblm+OOSngjff0LSJ2rGn7TWFq21b0h6XdL9xpjbJY1aa5+11lpJX214TPVrnZf0serqOAAAANCN2r0C/n9I+p8l+TVjt1lr35ak8LbawuKIpPmaz7scjh0J328cr3uMtbYiaUnSgdZ+CwAAAEDrtC2AG2N+WlLWWvtSsw/ZYszeZPxmj2mcy6PGmBeNMS9evXq1yekAAAAArdfOFfAfkXTKGPOmpCcl/agx5v+R9G5YVqLwNht+/mVJkzWPPyrprXD86BbjdY8xxiQk7ZN0o3Ei1trHrbXHrbXHDx061JrvDgAAANiFtgVwa+1vWGuPWmvvVLC58hlr7X8r6YKkT4af9klJfxK+f0HSw2Fnk7sUbLZ8PixTWTHGfCSs7/7FhsdUv9ZD4Z+xaQUcAAAA6BadOAnz85KeMsZ8StL3Jf2sJFlrLxljnpL0XUkVSZ+21nrhY35J0h9ISkt6OnyTpK9I+kNjzOsKVr4fjuqbAAAAAHbD9NuC8fHjx+2LL77Y6WkAAACgxxljXrLWHm8c5yRMAAAAIEIEcAAAACBCBHAAAAAgQgRwAAAAIEIEcAAAACBCBHAAAAAgQgRwAAAAIEIEcAAAACBCBHAAAAAgQgRwAAAAIEIEcAAAACBCBHAAAAAgQgRwAAAAIEIEcAAAACBCBHAAAAAgQgRwAAAAIEIEcAAAACBCBHAAAAAgQgRwAAAAIEIEcAAAACBCBHAAAAAgQgRwAAAAIEIEcAAAACBCBHAAAAAgQgRwAAAAIEIEcAAAACBCiU5PAAAAdLeZ2azOXZzT/EJOk+MZnT4xpZPTE52eFhBbrIADAIBtzcxmdebCJWVXChpLJ5VdKejMhUuamc12empAbLECDgDYMVZE+8e5i3NKukaZVBAZMqmEcqWKzl2c498c2CVWwAEAO8KKaH+ZX8gpnXTrxtJJV5cXch2aERB/BHAAwI7UrogaE9wmXaNzF+c6PTW0weR4RvmyVzeWL3s6Op7p0IyA+COAAwB2hBXR/nL6xJTKnlWuVJG1wW3Zszp9YqrTUwNiiwAOANgRVkT7y8npCZ09dUwTI4Naypc1MTKos6eOUf8N7AGbMAEAO3L6xJTOXLikXKmidNJVvuyxItrjTk5PELiBFmIFHACwI6yIAsDesAIOANgxVkQBYPdYAQcAAAAiRAAHAAAAIkQJCoDY4PRFAEAvYAUcQCxw+iIAoFcQwAHEAqcvAgB6BQEcQCxw+iIAoFcQwAHEAqcvAgB6BQEciKGZ2aweefw5PfDYM3rk8ef6og769IkplT2rXKkia4NbTl8EAMQRARyImX7djMjpiwCAXkEbQiBmajcjSlImlVCuVNG5i3M9H0Y5fREA0AtYAQdihs2IAADEGwEciBk2IwIAEG8EcCBm2IwIAEC8EcCBmDk5PaGH7juiqytFvfrOiq6uFPXQfUeojQYAICYI4EDMzMxmdf7lKzo0MqD3HR7RoZEBnX/5Ss93QQEAoFcQwIGY4Uh2AADijQAOxAxdUAAAiDcCOBAzdEEBACDeCOBAzNAFBQCAeCOAAzHDkewAAMQbR9EDMcSR7AAAxBcr4AAAAECECOAAAABAhChBAWJoZjarcxfnNL+Q0+R4RqdPTFGSAgBATLACDsTMzGxWZy5cUnaloLF0UtmVgs5cuMRJmAAAxAQr4EDM1J6EKUmZVEK5UkXnLs6xCg6gLbjqBrQWK+BAzHASJoAocdUNaD0COBAznIQJIEq1V92MCW6TrtG5i3OdnhoQWwRwIGY4CRNAlLjqBrQeARyIGU7CBBAlrroBrccmTCCGOAkTQFROn5jSmQuXlCtVlE66ypc9rroBe8QKOAAA2BZX3YDWYwUcAADcFFfdgNZiBRwAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIgQJ2ECAICbmpnN6tzFOc0v5DQ5ntHpE1OcjAnsASvgAABgWzOzWZ25cEnZlYLG0kllVwo6c+GSZmaznZ4aEFsEcAAAsK1zF+eUdI0yqYSMCW6TrtG5i3OdnhoQW5SgADHE5WAAUZlfyGksnawbSyddXV7IdWhGQPyxAg7EDJeDAURpcjyjfNmrG8uXPR0dz3RoRkD8EcCBmOFyMIAonT4xpbJnlStVZG1wW/asTp+Y6vTUgNgigAMxM7+QUzrp1o1xORhAu5ycntDZU8c0MTKopXxZEyODOnvqGGVvwB5QAw7EzOR4RtmVgjKpjR9fLgcDaKeT0xMEbqCFWAEHYobLwQAAxBsBHIgZLgcDABBvlKAAMcTlYAAA4osAjqbRexoAAGDvKEFBU+g9DQAA0BoEcDSF3tMAAACtQQBHU+g9DQAA0BoEcDSFo4gBAABagwCOptB7GgAAoDUI4GgKvacBAABagzaEaBq9pwEAAPaOFXAAAAAgQqyAAwB2jIO5AGD3WAEHAOwIB3MBwN4QwAEAO8LBXACwNwRwAMCOcDAXAOwNARwAsCMczAUAe0MABwDsCAdzAcDeEMABADvCwVwAsDe0IQQA7BgHcwHA7rVtBdwYM2iMed4Y84ox5pIx5n8Lx/cbY75ujHktvB2vecxvGGNeN8b8rTHmJ2rGP2SM+U74sd81xphwfMAY87Vw/JvGmDvb9f0AAAAArdDOEpSipB+11t4r6QOSHjTGfETS5yR9w1p7t6RvhPdljHm/pIclHZP0oKTfM8ZUt9l/SdKjku4O3x4Mxz8lacFa+15JvyPpsTZ+PwAAAMCetS2A28BqeDcZvllJH5f0RDj+hKRPhO9/XNKT1tqitfYNSa9Lut8Yc7ukUWvts9ZaK+mrDY+pfq3zkj5WXR0HAAAAulFbN2EaY1xjzN9Iykr6urX2m5Jus9a+LUnhbbWI8Iik+ZqHXw7HjoTvN47XPcZaW5G0JOlAe74bAAAAYO/aGsCttZ619gOSjipYzf6hm3z6VivX9ibjN3tM/Rc25lFjzIvGmBevXr16q2kDAAAAbRNJG0Jr7aKkGQW12++GZSUKb7Php12WNFnzsKOS3grHj24xXvcYY0xC0j5JN7b48x+31h631h4/dOhQi74rAAAAYOfa2QXlkDFmLHw/LenHJM1KuiDpk+GnfVLSn4TvX5D0cNjZ5C4Fmy2fD8tUVowxHwnru3+x4THVr/WQpGfCOnEAAACgK7WzD/jtkp4IO5k4kp6y1v6pMeZZSU8ZYz4l6fuSflaSrLWXjDFPSfqupIqkT1trq2cd/5KkP5CUlvR0+CZJX5H0h8aY1xWsfD/cxu8HAAAA2DPTbwvGx48fty+++GKnpwEAAIAeZ4x5yVp7vHGco+gBAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIJTo9AcTHzGxW5y7OaX4hp8nxjE6fmNLJ6YlOTwsAACBWWAFHU2Zms/rs+Vf0rfkFvbtc0LfmF/TZ869oZjbb6akBAADECgEcTfn8069qMVeW9SXXGFlfWsyV9fmnX+301AAAAGKFEhQ05Y3rOTlGchwjSTJGsr7VG9dzHZ4ZAABAvLACDgAAAESIAI6mTB0ckm8l31pZWfnWyrfBOAAAAJpHAEdTfv3BaY1nkjKSKp4vI2k8k9SvPzjd6akBAADECgEcTTk5PaHfeuheffCOcd2+L60P3jGu33roXtoQAgAA7BCbMNG0k9MTBG4AAIA9YgUcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiFCi0xNAfMzMZnXu4pzmF3KaHM/o9IkpnZye6PS0AAAAYoUVcDRlZjarMxcuKbtS0Fg6qexKQWcuXNLMbLbTUwMAAIgVAjiacu7inJKuUSaVkDHBbdI1OndxrtNTAwAAiBUCOJoyv5BTOunWjaWTri4v5Do0IwAAgHgigKMpk+MZ5cte3Vi+7OnoeKZDMwIAAIgnAjiacvrElMqeVa5UkbXBbdmzOn1iqtNTAwAAiBUCOJpycnpCZ08d08TIoJbyZU2MDOrsqWN0QQEAANgh2hCiaSenJwjcAAAAe8QKOAAAABAhAjgAAAAQIQI4AAAAECFqwHsEx8QDAADEAyvgPYBj4gEAAOKj6QBujHmPMebHwvfTxpiR9k0LO8Ex8QAAAPHRVAA3xvz3ks5LOhcOHZX0x+2aFHaGY+IBAADio9kV8E9L+hFJy5JkrX1NEgXGXYJj4gEAAOKj2QBetNaWqneMMQlJtj1Twk5xTDwAAEB8NBvA/4Mx5p9KShtjflzSv5L0b9s3LewEx8QDAADEh7H21gvZxhhH0qck/QNJRtKfS/qybebBXeb48eP2xRdf7PQ0AAAA0OOMMS9Za483jjfbBzwt6V9Ya38//GJuOMYuPwBAW3C+AYBe1WwJyjcUBO6qtKS/aP10AADgfAMAva3ZAD5orV2t3gnfp8UGAKAtON8AQC9rNoCvGWPuq94xxnxIUr49UwIA9DvONwDQy5qtAf8nkv6VMeat8P7tkn6+PVMCAPS7yfGMsisFZVIbT1OcbwCgVzS1Am6tfUHStKRfkvTLkt5nrX2pnRMDAPQvzjcA0MtuugJujPlRa+0zxpj/uuFDdxtjZK39N22cGwCgT52cntBZBbXglxdyOkoXFAA95FYlKP+lpGck/VdbfMxKIoADANri5PQEgRtAT7ppALfW/q/hITxPW2ufimhOAAAAQM+6ZQ24tdaX9D9EMBcAAACg5zXbhvDrxpjPGmMmjTH7q29tnRkAAADQg5ptQ/iPFNR8/3LDONvRAQAAgB1oNoC/X0H4fkBBEP9LSf9XuyYFAAAA9KpmA/gTkpYl/W54/5Fw7OfaMSkAAACgVzUbwH/QWntvzf1/b4x5pR0TAgB0v5nZrM5dnNP8Qk6T9OgGgB1pdhPmt4wxH6neMcb8sKT/2J4pAQC62cxsVmcuXFJ2paCxdFLZlYLOXLikmdlsp6cGALHQ7Ar4D0v6RWPM98P7d0h61RjzHUnWWntPW2YHoCVYrUQrnbs4p6RrlEkFTyGZVEK5UkXnLs7x/woAmtBsAH+wrbMA0DbV1cqka+pWK89KhCXsyvxCTmPpZN1YOunq8kKuQzMCgHhpKoBba7/X7okAaA9WK9Fqk+MZZVcK6/+nJClf9nR0PNPBWQFAfDRbAw4gpuYXckon3boxViuxF6dPTKnsWeVKFVkb3JY9q9MnOBoCAJpBAAd63OR4RvmyVzfGaiX24uT0hM6eOqaJkUEt5cuaGBnU2VPHuKICAE1qtgYcQEydPjGlMxcuKVeqKJ10lS97rFZiz05OT7Q9cLN5GECvYgUc6HGsViKOaHUIoJexAg70gShWK4FWYvMwgF7GCjgAoOuweRhALyOAAwC6DpuHAfQyAjgAoOvQ6hBALyOAAwC6DpuHAfQyAjgAoKvZTk8AAFqMAA4A6Dq0IQTQywjgAICuU9uG0JjgNukanbs41+mpAcCeEcABAF2HNoQAehkH8fQIjmwG0EsmxzPKrhTWD+KRaEMIoHewAt4DZmaz+rXzr+hb31/QO0t5fev7C/q1869QKwkgtmhDCKCXEcB7wGN/NquFXFlWUsJ1ZCUt5Mp67M9mOz01ANgV2hAC6GWUoPSAuWtrcozkGCNJMkayxmru2lqHZwYAu3dyeoLADaAnsQIOAAAARIgA3gPuOpCRbyXft7LWyvetfBuMAwAAoLsQwHvA537yfRrLJGUcybNWxpHGMkl97iff1+mpAQAAoAEBvAecnJ7QFx66Vx+cHNfh0UF9cHJcX3joXmonAQAAuhCbMHsEm5UAAADigRVwAAAAIEIEcAAAACBCBHAAAAAgQm0L4MaYSWPMvzfGvGqMuWSM+Uw4vt8Y83VjzGvh7XjNY37DGPO6MeZvjTE/UTP+IWPMd8KP/a4xwYkzxpgBY8zXwvFvGmPubNf3AwAAALRCO1fAK5L+J2vt+yR9RNKnjTHvl/Q5Sd+w1t4t6RvhfYUfe1jSMUkPSvo9Y4wbfq0vSXpU0t3h24Ph+KckLVhr3yvpdyQ91sbvBwAAANiztgVwa+3b1tqXw/dXJL0q6Yikj0t6Ivy0JyR9Inz/45KetNYWrbVvSHpd0v3GmNsljVprn7XWWklfbXhM9Wudl/Sx6uo4AAAA0I0iqQEPS0M+KOmbkm6z1r4tBSFdUrV33hFJ8zUPuxyOHQnfbxyve4y1tiJpSdKBdnwPAAAAQCu0vQ+4MWZY0r+W9E+stcs3WaDe6gP2JuM3e0zjHB5VUMKiO+6441ZTBoC2mZnN6tzFOc0v5DQ5ntHpE1P08AeAPtPWFXBjTFJB+P6X1tp/Ew6/G5aVKLzNhuOXJU3WPPyopLfC8aNbjNc9xhiTkLRP0o3GeVhrH7fWHrfWHj906FArvjUA2LGZ2azOXLik7EpBY+mksisFnblwSTOz2Vs/GADQM9rZBcVI+oqkV621v13zoQuSPhm+/0lJf1Iz/nDY2eQuBZstnw/LVFaMMR8Jv+YvNjym+rUekvRMWCcOAF3n3MU5JV2jTCohY4LbpGt07uJcp6cGAIhQO0tQfkTSL0j6jjHmb8Kxfyrp85KeMsZ8StL3Jf2sJFlrLxljnpL0XQUdVD5trfXCx/2SpD+QlJb0dPgmBQH/D40xrytY+X64jd8PAOzJ/EJOY+lk3Vg66eryQq5DMwIAdELbAri19q+0dY22JH1sm8f8c0n/fIvxFyX90BbjBYUBHgC63eR4RtmVgjKpjV+9+bKno+OZDs4KABA1TsIEgIicPjGlsmeVK1VkbXBb9qxOn5jq9NQAABEigANARE5OT+jsqWOaGBnUUr6siZFBnT11jC4oANBn2t6GEACw4eT0RNsDN60OAaC7sQIOAD2EVocA0P1YAQeAGnFfPa5tdShJmVRCuVJF5y7Oxer7kOL/bwEA22EFHABCvbB6PL+QUzrp1o3FsdVhL/xbAMB2COAAEOqFg3ImxzPKl726sTi2OuyFfwsA2A4BHABCvbB63CutDucXcqp4vuaurmr2nWXNXV1VxfNj9W8BANshgANAqBdWj3ul1eFwytWVxYIqnpVrjCqe1ZXFgoZS7q0fDABdjk2YABA6fWJKZy5cUq5UUTrpKl/2Yrl6HEWrw3YzJjxI2WjjTGVbMw4AMUYAB4DQyekJPXR5UV/+qze0VvI0lHL1jx+4q6Vhls4ezVkpVnRkbFDXVksqeb5SrqPDowNaLVY6PTUA2DMCeJfiSRrYrN0/FzOzWZ1/+YoOjQzojnAF/PzLV3TP0bGW/DnVzh5J19R19jgr8fPdYHI8o+xKQVOHhtfHcqWKJkYGOzgrAGgNasC7EO23gM2i+Llod+cNOns0r1c2kwLAVgjgXYgnaWCzKH4u2t0FpRe6rETl5PSEHrrviK6uFPXqOyu6ulLUQ/cdafmVgpnZrB55/Dk98NgzeuTx51joABAJAngX4kka2CyKn4t2d0HphS4rUaktB3rf4REdGhnQ+ZevtDQgc7URQKcQwCOw0xUWnqSBzaL4uWh32QNlFc2L4ooHVxsBdAoBvM12s8LCkzSwWRQ/F+3uod0rPbqjEMUVD642AugUuqC0We0KiyRlUgnlShWduzi37ZPuyekJnQ0fe3khp6N0QQEi+7lodw/tXujRHYVqF5Tq706p9Vc8ovgzAGArfRfASxVf37+e00DSUcp1lEoEb0m3PRcD5hdyGksn68aaWWHhSRqt1CttLfm56B+nT0zp186/oisLeVV8XwnH0chgQr/5U+9v6Z/RCwcvAYifvgvgklTxfVWKvtZqxhxj1sN4KhGGc9eR4+zt1DVWWNBp9J5GXFlJMuHplya830JcbQTQKX0ZwLfiW6tC2VOhYZNX0t1YIU+6Jrx15DYZzFlhQaftpgwK6LRzF+e0L53U7fvS62Pt+H/LVRUAnUAAv4Wy56vs+ZvGXccoEYbylOusB/Oka4LVmhArLOi03ZZBAZ00v5CTa6S5q6vrR9EfHE7x/xZATyCA75LnW3m+p2J588dqw3jCdfTDUwf0wN0HlWhTnTlwM5RBIY5GBhJ6Lbsq1zFyHaOKb3VlsaC7J4Zv/WAA6HIE8DbYbtXcGFO3Yp4IS1paUWsObIcyKMSRtWHFd7Xw2zaMA0CMEcAjZK1VqWJVqmwO5wmnPpAnE0YJJ6g/B/aCMqju0isdadptteTpyNigrq2W1ktQDg8PaK3k3frBANDlCOAReH7uhp58YV5vL+d1+2haD394UvdP7a/7nIrvq+Jr0yZQY4wSjlnfCJqoWUFvdiMowEaz7kBHmuZVS6emDm2UnORKFU2MDHZwVgDQGiyvttnzczf0xWde0/W1okYHE7q+VtQXn3lNz8/daOrx1lqVPV9rxYoWcyVdWynqrcW8vnd9Td+7vqYri3llVwpaypWVL3nyfC7PAt2Ko8+bx4nAAHoZK+Bt9uQL86p4nhZznsqer6TraHjA1ZMvzG9aBd+p2o2gq6qsj1dLV6pvA208aAhA8+hI0zxKp5pHWRMQPwTwNvvejTWt5MsyjpET7uRfWCur4q/d+sG7VPF9VUq+cqWNMceY9dM/B5Lu+imgAKLTSx1pogh9lE7dGmVNQDyRwNqsVPElEwRgIyMnPNFtq42Y7eRbq3zJ01K+rOxyQZcXcnrz2preWszr+mpRq8VK5HMCdmpmNqtHHn9ODzz2jB55/DnNzGY7PaUd6ZWyimroy64U6kJf3P49egFlTUA8EcDbLOkGGyV938paKz+s0U65nd9AWT39szGUv70UhPKVQlnFikfbL3SFmdmsPnv+FX1rfkHvLhf0rfkFffb8K7EKfSenJ3T21DFNjAxqKV/WxMigzp46FruVSkJf95hfyCmddOvGKGsCuh8lKG1254FhXV5Y01ppowZ8KJXQ0fGhTk9tS9WV8rw2urGs9y9POBpw3bAji+FgIUTq80+/qsVcWa4xcsV8b6YAACAASURBVI2R9aXFXFmff/rV2AVYaaO9dRxxSmX36KWyJqCfkKDa7OEPTyqZcHVweEB3HRzSweEBJROuHv7wZKen1rSgf7mv1UJF19eKenspr+/f2ChhubpS1FI+6MJS2eIAIqAV3riek+9bFT1fhYqvoufL963euB6f0NcrpRsjAwldWSyo4tu6UyqHB1jTidrpE1Nazpf12rsrevXtJb327oqW8+XYlTUB/Ybflm12/9R+fUZ368kX5vXOcl6Ht+kDHkfVEpbG3uWOMUomHCWd4GChZLhinnIdGdP50hvEU9nz1fjyzg/H46K2dEOSMqmEcqWKzl2ci9UqPqdUdhcrSSa4WikT76srQL8ggEfg/qn9PRG4m+Vbq2LZU3GLjyXdoC1i0B4xKGfhQCE0Y7sW93Fqfd8rbQg5pbJ7nLs4p33ppG7fl14fi+OLOqDfEMARqbLnByuWNencdYJ68qRrlHSC0z6TrqOEQ505ekuv1OtySmX36JUXdUC/Id2g4zw/WDFfLVS0kCvpanja5/dv5PTGtTXN38jpnaWCrq8Gtea5UtAykcvd/WW7KyVxuoLSK20Ie+X76AWT4xnlG8oA4/iiDug3BHB0NWutyp6vXKmipXxZ11eLemcpbJl4PafLCzllVwpazJWUK1XYBNrDTt1zeEfj3ejk9IQeuu+Irq4U9eo7K7q6UtRD9x2JXalAr7RT7AW8GALiiRIUxFbQncVuOkCosaQlmQjKWZIu9eZx9jsP3yfpZV349jvywu4bp+45HI7Hw8xsVudfvqJDIwO6I+kqX/Z0/uUruufoWGzDK9ehOuvk9ITOKqgFv7yQ01GOogdiwfTbZfx7PnCf/eOvX+z0NNAh6+E8vE3U1J0nHEOXFrTVI48/t6kGvFo7/UePfqSDM9uZ2uPP0+ELibJnWQUHgAbGmJestccbx1kBR1/xfCvP37pDizFBCA8OGgpCecp1WDlHy/TKATa90k4RADqFAA6Egnpzu2Vfabfa09x1glCe2LgPNGs45eq17Kp8G5RuVDxPlxfyunti+JaP7SZ03kA7zMxmde7inOYXcpqklAY9jgAONKG6ct546JAxZv2QIQ4dar+4P0GvlTx5VjIK3iTJs4pd/+xeaaeI7lFb1lR7SuxZKVY/40CzCODAHmy3EVTS+gp50q2eDBq8T2/z3emFJ+jsSlEJJzg8yFrJGMk1wfjNdNsLj9MnpnTmwiXlSpW6GnA6b2C3KGtCvyGAA22yfuhQA8eYupXy2qDOqvn2euUJ2jGmrnTJ82/eOrMbX3jQeQOtRlkT+g0BHIiYb4ODh4rl+vHaTaAp1wluE9SZV/XCE/RdBzJ6/eqajG9lTLAK7lvpvQe3L93o1hceJ6cnCNxoGcqa0G94Zge6RPXQobVicCLou8sFzd/I6c1ra3prMa9rfX4SaC+c+Pe5n3yfxjJJGUfyrJVxpLFMUp/7yfdt+5j5hZzSSbduLG4vPHZrZjarRx5/Tg889oweefw5zcxmOz0ltAkHCqHfEMCBLudbq0LZ03LDSaBvXFvT966v6cpiXtmVgpZyZeVLnny/N4N5LzxBn5ye0BceulcfnBzX4dFBfXByXF946N6briT3wguP3aiW3mRXCnWlN4Tw3sTpqug3HMQD9KCk62gg6Wgg4Wog0Tu9zKubEfup7nhmNqtfO/+KVgoVVXxfCcfRyGBCv3WL4B53vXJoEYD+xkE8QB+pbgBdVWV9zDEmOPnTdZRw4tmZpV/rjq0kmWCfgEx/HP/eCzX/ALCdvgvgb1xb0//4R9/SvnRy/W10/f1E3fjQQEIOXSnQI/ybtEysO2go3ATajcG829rxReHcxTntSyd1+770+lg3bMJsNzblAehlfRfAS56vS28tN/W5jlFDQL91aE8nXVrJIXa2O2hou5aJCcfIibikpRvb8UWhX1eC6TUOoJf1XQC/bWRA/93fu1NL+fKmt+VCWYXyxuqgb6WFXFkLufJNvmK9hGO2COn1Qb0x0A82dDgAusV2LROlIJy7TlDW4jpGrglWzBPhWNJxWhrSu7UdX7v160owvcYB9LK+C+BjmZR+4aPv2fbjxbKn5UKlLpgv5oJwvpQva7k6lt+4X/Y2KjIrvtX1tZKur5WantNAwtm0wn6zlfbRdJLe0Og431r5nlX5JqeoBwHdUbJ6G9agp9ydh3NWgvtvJbhfa/4B9L6+C+C3MpB0dSjp6tDIQFOfb61Vvuw1rKaHAT5X0nKhsh7aa99qO8UVK76yK8VbHkddK5Nyd7TKPjqY7IkuGIiXamnLVv+zE46jZMLUlbXcbOWclWBWggGgVxDA98iY4JJ4JpWo2yR1M9ZarRUbQ3tNKcwWYyuFSl3ng1zJU67k6e2lQtNzHRlMrIfxZkL78CCbUNE+Fd9XpSTltXkJvbZji+sEofyTH32P/pc//o4uL+Tk22B1fXggod/8qfd3YPbRYiUYAOLD9628W7T5JoB3gDFGw4MJDQ8mdGS8udDu+VYrhbKW85Vt69cbx9aK9cFmpVDRSqEiKd/Un+kYrYf1ZlfaMyk2oWLvturYspgLrhxZG/xycxTcrhTKWimUa1bRu7s8qx87uQBAt7HWhs8p4a2sbPgcY1X/MdngeckqvA0/ZhV8vmetfN8GpZnhxyRpaGD7mE0AjwnXMRrLpDSWSTX9mLLnazlf3lTTvv6W2xzcGzehLob17s1iEyra5ckX5jU8kNCh4Y3ysHzZ01f+6k0dO7JvfWzLzaGOI9etbhQ1HdtD0a+dXABAunXo3f5xCsPuRuhVQ1CuhuMgLDd8bItg3WkE8B6WdB0dGB7QgeHm6tmljU2oi2H9+nblMdWV+MV8qWWbUDe3e9w6tI8OJpVKdPcqJ1rv7eW8Rgfrf2UNJh29s1x/RaeZzaHGmOAwItdZD+TJMLAnnPadGtqvnVwAxFc1wG5eAQ5Xfq2V9cPfvTYovah+vudvvN8twbdbEMBRZzebUAsVf9OK+mJuI7AvblHX3upNqKODiYbwvjm4swk13m4fTev6WlHpmismhbKvw6PNlXHVstaq7FmVvc2HEklBQHeNkeMEm0Wrtwk3CO4JZ3e90Pu1kwuA1qtdTW4MxjspoVi/r6CsTw1jhOb2IIBjT4wxSiddpZOuDo8ONvWYxk2oi/lSXW37+ip7odoCMugks9dNqMMDifWV9dpgPsYm1Fh4+MOT+uIzrylf9jSYdFQo+6r4Vg9/eLLlf5a1VhVrJV8qaeuQLm2Uu7iOkWOMnPC4+OB+/fuOMToyltbVlYKGBjZCeL7s6chYen2VSZJM9dh5ALGz59rims9f/1hDMPYJxbFHAEfkdrsJdbVY2VhV36J+vX7FvaLVYqXua6wWg7Eri83Ns34TamLLE1EbV9qH2ITaNvdP7ddndLeefGFe7yzndXg0rYc/PKn7p/Z3bE7NlLvU+pkPHNEXn3lNZa9U9yLiEx84ojeurdV9rjEbwd2YjbBvjGS08THHGBlHG/XtLT4AqZPYsIrtVDe8rdcDa6OGuJlsWvuYTfXFfrxrixEPpt/+s9zzgfvsH3/9YqR/5vNzN/TkC/N6ezmv27sgNPSSm/3dVjx/vY69GswbD1Varunbvpgv1W1C3Q23ZhNq40r7dqF9MOEQ2vtI9f9sO19E1LZxrJbMuGH5TFDnbrr+/1zthtXaA4jOnjpGCN+CDettfbtRi+tbhTW4G8/zRg3/7ia44hK+K2NMeLvxuY3/VYzZWJ2t/nm1NcDSxhUcU/OYm8+/fiW4GnarX7N2RZjVX8TF0EBCh/elX7LWHm/8GAG8zZ6fu6EvPvOaEo6pW/H6zI/eTQjfo3b83ZbCevbGmvXaOvbG0F67CXU3UglH+wZ3FtrZhIq9qq6oO9VyGW2UzVRX3KXNAWo9wDUEt+BzNsJb9XNrg9emIFcTBoPAt7Hy/w9//5ubDl7KlSqaGBnUHz36kT1//61krd31CxpbG2Ibbms3rtUFa3/7tmcAusfNAjglKG325AvzSjhmfeNYdSXnyRfmCeB71I6/21TC0aGRgV1tQt3qAKWlLUL7Ur4sr2YXaqni6+pqUVdXm9+Emk66Ta20125S7fb+2IhWtXxmi3OQusLctVWNDiZUrGxM0DVGb15b1fyNjU2rW+VeY0xdTX1tiUBw/9ZhtfpiovbP2ChbaP5rbBqreZ+V3HpcLUY/IYC3WbOt07Bz3fB3u6dNqIVtQnuuXPOxjRKa2qfqfNlTvuzpneW9bUKt1riPZTaH9hE2oaKDtup6ky97um00vW33mlaq1v4Gd3b/NTaN7XpGva32iuboYELX14r64jOv6TPiajF6EwG8zVrZOg314vp3W7cJdWwHm1ALlU2hfbmuRKZSdypqcOrpht1sQh3ZYWlMuzeh9sIK2R/+9Zt66qXLypc9pZOufu5DR/ULf+/OTk+r60TZ9Qadx9Vi9BsCeJvxJNI+/fR36zpG+zJJ7cskb/3JIc+3Na0cw5X1LctjNkpj8jXtPHyr9fGdzHOrnuw3C++DyeY2ofbCCtkf/vWbeuK578kxkutIxYqnJ577niTFLoS3+8VQN3a9Qft0wxVNIEoE8DbjSaR9+Lu9OdcxGs+kNJ5JNf2Y6ibU9S4xda0ew6CeK2kp7M2+mC+rVNkoB/B8q4VcWQu55kN70jXbBvaxmrH/+z++KSk4OdXIxHKF7KmXLofhO6zHN5J8X0+9dDlWATzqF0OUbfS+uF7RBHaLAB4hnkRa7/6p/bEJX3Gw002oklQoe1tsOG0I7Q0fq9RsQi17VtdWS7q2Wmr6zzQm2JDnOkbvLhf0v/+7V29eItMlm1DzZU+N0zBGdVce4iCKcoFeuOKB5vXTFU1AIoC3HU8i6HWDSVeDSVe37WATaq7kbVEKs31oXy6UVZPZZa1UsXY9yP/Fq9lb/rlDA+4WwXz70D48mJDb4gNt0kk36OpR82WtVd2qXxxEUS5ATXB/4Yom+g0BvM14EgHqGWM0NJDQ0EBCP9DkJlTfWl3826v60n/4z8Hqt2PWV8g+ODmmTCqxEdjDuvfGk1DXip7Wip7eWmyuc4yRNLLDevahgZtvQv25Dx0Nar59v+Ywk2A8TqIoF6AmuP9wRRP9hADeZjyJAHvnGKOT0xOav5FruoNIdRNq42r6xmmolU3jtaUgVtJyoaLlQkXzC839vN5qE+rhsbQ+9oMT+svXr6lY8ZVOOrHsgvLwhyf12J/P6t3lgjzfynWCF1WfPvnelv0Z1AQ3rxe6AwH9hgDeZjyJAK3x/NwN/dl339X+odR6jeifffdd/eDh0S3Dxm43odaG9vU2j7mylgubS2P2ugk1V/b1L1+Y17/9/97ZCOyD9cG9tkd79a1rTkKtnobZhs6T1AQ3hzJHIJ4I4G3GkwjQGk++MK9yxdNiyVPZ85V0HQ2l3JaWc6USjg4OD+jgcPObUPNlbz2oNx6etLjN5tTGTajXV0u6voNNqINJp6nSmNrV+FZuQn3yhXkNDyR0qObvqdWlddQEN4cyRyCeCOBtxpMI0BpvXl/VarEiIyPHGFU8q8V8WZ6/2tF5VU9C3ckm1LWSt+WBSpsOVaqpa6/dhFoo+yqUi3p3udj0PIdS7rb16xvjG4F9ZDC57SbUqErrqAm+NcocgXgigEeAJxFg78qele9LVsER4dXKh5IXrwafxhgNDyQ0vMNNqKuF+pNOlxpC+kZte7VzTMMm1JKntZKnt5d2tgl1q9DuGqPrqyUNJl25jpFrjMqer9tGmnsRgtahzBGIJwI4gNjwa9636p/e+o4xGg1Xqpvl+VYrheqKemNpTCm4X3Oo0lK+rFxp602ol7fdhFpf6/72ckH/zZf+eutymC1W2felk0onb945BjdHmSMQTwRwALFhVB+6iW3bcx2jsUxKY7vYhLq8TSlMbZnMtZXiptIY32pXJ6HWBfbBW4f2gZj1TW8nyhyBeCKAA4gFa/1NK95Wkqy/xWdjN3azCbVQswl129BeKGspF9wu58sqe3vchJpwdlTPPppOKtkFJ6G2C2WOQPwQwAHEgjGOjIISiWoNePCB3g1WcVA9CXViB5tQ8+WGk1Bz5bpSmOrbO0sF3Vgr1XWNkaRCxVdhpajsSqs2oW7Uuo81sQkVAPaKAA4gFlIJR8WyJ+OY9VMkrW+7pyd2G/XSQSvGGGVSCWVSCd2+b/uNgtX+1rfvG9RAwihf8lXyfD1031Ed2Z/eNrRXV99XCpW6Kyat3IS6XWnM0EBCDvXsAJpAAAcQC+/ZP6Qri2taLW70AR9OJ3RkbKjTU2urfj1opbG/9dCAI6fs6dm5G/rtD997y8d7/kbnmK3elgtB55ja0L62402o9RyjW/Zkb/xYJsUmVKAfEcCBHld9crf25j1DjDFBaz8jGQWrzKreD+80ftyEg7X3HRP06TZO9f3gdv3r1T52i/lVZ1mdrg1HPv33/47O/ul3NTyYXD9spOxZ/fLJv7NpJdXKyvODtoWeDd+vubU2+Pq+Db76rf5uOqlfD1rZa39r1zHal0lqX6b5zjFlz29YUa8/VKlxtX05X1ah5iTU3WxCTThmm8OU6mvYx2o+xiZUIP4I4MA2TEN4rN6vDZDGNLyvjYBaPaa7Gkobg22txrBprdaDYWMg3e5rVt93aue6xR+2HnRrv15XrMDdfA4/fuywXn17WV/+qze0VvI0lHL1jx+4S//ghw635E/3qyHdbgR331r5fhDc68b9jTDfbv160Eon+lsnXUcHhgd0YAebUItlT8vbrbTnavu2b7zVbkKt+FbX10q6vra3TaijW4T2jdX3ZF+UagFxQgBHR9WurNatkprtA+a2gTf8Qo1ZsjEj3SzAVldvtwuvvWD97zxm397MbFbnX76iQyMDuiNcBT7/8hXdc3RMJ6cn9vz1HcfIkdnRL0UbrqpXwjBe8a08z66vute+7Tas3z6a3lx6M+D2fOlNXPpbDyRdHUq6OjTSXGi31qpQ9rWYL613jGl8azxUaSnfcBLqLjahZlLuLVfZ9zWE9qg3ofbSXgfgVgjgEWu8lL8+rs2hqLoyebPL/k7N5+x9bluMqW6SdZ9XDcG1389WYdmp+R6k3g22aK9zF+eUdIMNfJKUSSWUK1V07uJcSwL4bhhjlHCNEk1UBDSG9cYSGWs3B3dJ+uDkPn37ymL4sx6USVxf8/XT/8W+Nn93ndWr/a2NMUqnXKVTad3e5D+hb61yRW/b0L5ViUzjJtRcyVNuB5tQpWATajWMNxPahwd3vwm1X/c6oH8RwGuYxqBYUy7gOBvlCLV1rbW1rq4xNauojSu6hE50zsxsVucuzml+IafJ8YxOn5jqWGjdrfmFnMYaToJMJ11dXsh1aEY7s5OwLm0E9u++vaKDwymtFioqeb5SrqOhgYReubKkf+Q6kZXCdAL9rQOOMRoeTGh4MCGNN/eY2k2oWwX3rUpj1ope3ddYKVS0UqhIan4TajWsN7vSXt2E2q97HdC/+i6ApxKO7joYXLolFKMfzMxm9dnzr2i1WJHnW11bLeqz51/RFx66N1YhfHI8o+xKYX0FXJLyZU9HxzMdnFX7VAP7laW8JkYGddvoxu8ra62urhQ1uT/43v1wZb3s+ap4ViXPX3+/4sf3oCJKEnavdhPqHWruZ6Ts+VqphvZcaVNt+/IWJTKFcv0m1MVwNb5Z1U2oS/mykq6R6zhyHck1Ro5j9Mb1Vb3w5o260D7IJlT0gL4L4BLBG/3l80+/qsVcWW54lcb60mKurM8//WqsAvjpE1M6c+GScqVKXReU0yemOj21tmrmhYfjGKUcs+VGO9+3Kvu+yp5VuRIE8yCg267u/kJJQvSSrqP9QyntH0pJam6PQeMm1MWGjafL68G9osV8adtNqNX3pc0vGH/9X3+n7v5Awtmm3SObUBEffRnAgX7yxvVcUBLlbOwzsL7VG9fjUbpRdXJ6QmcV1IJfXsjpaExLaXZqry88HMdowHE1kJDUsE+w7PnrdeleuFq+fj+87VRIpyQhHna1CbXib1pR/87lJc38p6ysre51CP4PDiZd5UqVuk2oxYqv7F42oW5zwFJjcOckVLQTARxAbJycnuj5wN2onS88kq6jW13ND4K4L99XXUCveGHJS5tCer+2X+x1xgQvqtJJV4dHB9fHf/z9t+mB9x7cctOttVZrRW9zt5jaFfbCxkp7NdzvdRPq8EBifWV9u8Deqk2o6D8E8C7VC5vm0B2mDg5p9p0VlbyNDVZG0vTh4c5NCjvSyRcermPkOtWUvnVar4RBPAjm/vrqZXWFfTebRDvRBxydtd2mW1OzCfXIeHP//p5vtVqs1K20b9/mMfi81WKl7musFitaLVZ0ZbG5+ddvQr15aK9+bIiTUPsWAbwLzcxmdebCJSVdo7F0UtmVgs5cuKSzEiEcOzaWTqgx/thwHGiFhOvctLtLdRW9umperUEvV/xtw3lc+oCjO7k1J4w2q+L56/Xsm0J7Qz17dTxf3ljY2M0m1Np53mqlvfqxwYRDaO8BPAN3oW7sd4z4ev57Wy/fbDfezbgyFE/VVfSBLZ5xqqvnpWrXFs9X2bf66HsPSFLP9QFH90rUbUJtTqmhnn2rt9rQvpgv1W1C9XyrG2sl3djBSaiphKN9gzsL7WxC7T4E8C4U937H6C7VA11qF0ys3RiPC64M9abq6vlWreUmxzP6xH1HVA5XzEthF5eyF9/WitheHNtOphKODo0M7HwTam5zL/babjGNK+21v69LFV9XV4u6utr8JtR00m1qpb06PjqYUMIltLcTAbwLTY5n9Ob1VS3nNw7eGE0ndOcBanaxc65jtgzbcdvhz5Wh/uM4RoOOuymcW2vXy1iqNecV31e5Eu++5/2sX9pOrm9C3efq8L7BWz9Awf/3tVK4CXWL4L7+livXldDU/tbPlz3ly57eWd7ZJtTRmtaOm09FDd8ywe0Im1B3hADehT46tV/Pv3kjPE1TKnm+sislPfLh3vkl1Mu6rUzi1D2H9f/+zdtqLLU9dc/hzkxol7gyhCpjjAYSW5e0WGvXN4FW686rbRX3sikU7UXbye0ZYzQ8kNDwQEJHxna+CbUa2uvLZKqr6xsHLgWnnm6obkJ9a7G50O4YaWSHpTH9vAmVAN6Fnp27oUPDKa3UHD09MpjQs3M39CudnlyX6baw241lEr/z8H2SXtaFb78jz7dyHaNT9xwOx+Oj307CxO4YY5RKVJ/Qt94ZWvZ8FSu+imVPJc9Xsbz9ZlBEg7aTrVW3CbXJ1y+eb+tX1xtW2xdzjWUylU2bUKufu5N5jg4mtg3oW70NJntjEyoBvAvNL+R0cHhAh0Y2Lk9Za1npa9CNYbdbyyQ+/oGjeme5tP5C5eMfONqxuexWv56EidYL+p87Gq5ZQi9Vgu4spcrGG+Us0aHtZOe5jtF4JqXxzO43oa53iynU17BXA/1SoaxSZePnyvOtFnJlLeSaD+1J1zQV2Me6fBMqAbwLsdLXnG4Mu91YJtGNL1R2o19PwkQ0UgkneJKu2Uvnh91ZimEgL1aCF32dOh20l9F2Mp52uglVkgrl+kOVlmuCe21ory2ZqdTsYyp7VtdWS7q22nznmMGks6NV9ig2oRLAuxArfc3pxrDbjS+euvGFym7140mY6JytNoFaa8PylSCQFyt0ZWmF+6f26zO6m7aTfWAwGfxM3Tba/CbUXGlzaN9Ycd8c2pcLZdX2HiiUfRXKRb273HznmKEBd4tgfvOTUHfS3IAA3oVY6WtON4bdbnzx1I0vVIBmdNseDymoMa8GCCn4ubK2egpozYFDfrDhs7oJlFXzW9vuJEz0N2OMhgYSGhpI6Aea3ITqW6vVQqW50B7WuTduQl0relorek1vQjWSRhrq2Q8Mb39lgADepVjpu7VuDLvd+OJpcjyjN66tbtrUe9dB2lqie8WpdMoYo6RrFCyUb7/xsxrMqwcOVVsp7jWcx7F/NtBOjjEaDctMmi1i8nxbF8irIb02uDeG+VxpYxOqlbRcqGi5UNH8wq03DxPAEVvdGHar8+r0HGpt1dby6mpJ//B+nqA7oRtXdbtRL5VOSdWNn1Jam3ual72wr3lYzlKs+E2vmvdL/2yg3VzH7P4k1MLmuvWlfEVrxYp+f5vHti2AG2P+haSflpS11v5QOLZf0tck3SnpTUk/Z61dCD/2G5I+JcmT9CvW2j8Pxz8k6Q8kpSX9O0mfsdZaY8yApK9K+pCk65J+3lr7Zru+H3Snbgu73ejZuRuaGEltOtiJtpbRi9Oqbqf1S+lUtW1i4wbQ2sOGyjUdWhqDOf2zgc651SbUoYFE9AFcQWj+PxWE5KrPSfqGtfbzxpjPhfd/3RjzfkkPSzom6Qck/YUx5u9aaz1JX5L0qKTnFATwByU9rSCsL1hr32uMeVjSY5J+vo3fT6RYJUOrzC/klGrYzZ1ynZ4LMnHQa6u67TQ5ntGrby9puVCRb4OrN6ODCb3v9n2dnlok6g4bagjm6yd/elbvrhTC/tlGVlay9M8G4qBtPVastRcl3WgY/rikJ8L3n5D0iZrxJ621RWvtG5Jel3S/MeZ2SaPW2mdt8JL/qw2PqX6t85I+ZnqhM7s2VsmyK4W6VbKZ2Wynp4YYGk65urJYUMWzco1RxbO6sljQUGrrWlVsbWY2q0cef04PPPaMHnn8uV39PM4v5FTxfM1dXdXsO8uau7qqiufzYmgLh0dTWsxX1jsZ+FZazFd0eLT5y8O9KFgxd5RJBZu97jwwpIpvgzaKbtBKseJbTY5nNJpOKpNKKNnmdmoAdi7qn8rbrLVvS1J4W13yOSJpvubzLodjR8L3G8frHmOtrUhaknSgbTOPUO0qmTEm/AVqdO7iXKenhhhaf11qat5qx3FLrXpRPDKQCF4MhSeSVvzgxdDwVmeq97k//+7Wf7fbjfer0yemVPascqWgg0O+7MnzpU///ffqEwnv4QAAHUtJREFU4PCADu8b1OT+jO46OKSj4xndNjqo/UMpDQ8mlEr0xomCQBx1y2/9rX4D2JuM3+wxm7+4MY8qKGPRHXfcsZv5Rapfah8RjZViRUfGBnVttbReA354dECrxcqtHwxJrSsdWa/drf6msg3jWFftLlCbD61VXdcBNL8Zva7WvEG1n3m1t3ntSYUA2iPqAP6uMeZ2a+3bYXlJdSnjslTXKeaopLfC8aNbjNc+5rIxJiFpnzaXvEiSrLWPS3pcko4fP971z3Td2N8a8TU5ntGb11frxkqerzsP0IawWa16Ubxa8ja/GBoe0BqhchNjgsC91Tjq7XUzelBr7krhuSh1hw15QSDnBFCgtaIuQbkg6ZPh+5+U9Cc14w8bYwaMMXdJulvS82GZyoox5iNhffcvNjym+rUekvSM7ZHfDrWXFIMToCod72+N+Pro1H5lV4LAV21DmF0p6aN0SGja5HhG+XJ9SN7Ni+LJ8YxKDacmljyfF9dbODIa7Dy0duOtdhztUz1saF8mqYmRQR0dz+jOAxkdGU/r0MiARtNJpVPujk79Azrh+bkb+tWvvaJHfv85/erXXtHzc1uu03ZE2wK4MeaPJD0r6QeNMZeNMZ+S9HlJP26MeU3Sj4f3Za29JOkpSd+V9GeSPh12QJGkX5L0ZQUbM/+zgg4okvQVSQeMMa9L+lUFHVV6wsnpCZ09dUwTI4Naypc1MTKos6eO0SVhC63YGNfrnp27oUPDKaVcR74NOqAcGk7p2S76RdTtWvWimBdDzftnP3OPRgZcVTOeY6SRAVf/7Gfu6ezE+lS1K8vIYFIHhwd0+7603nNgSO85MKTb96V1YHhAI4NJDSYJ5ugO1R7519eKdT3yuyWEmx5ZNG7a8ePH7YsvvtjpaaAFansq156EyYuVeg889ozG0sm6zVbWBid+/eWv/2gHZxYv1dagezn06ZHHn9v2VNI/evQjbZp5fLXi7xydUQl7mJeqPczDg4b8Pssc6Jxf/dorur5WXO+RLwVXLg8MDei3f/7eSOYwNJDQ4X3pl6y1xxs/1i2bMIEdo6dyc9hT0Fp7iQ/zCzkdHB7QoZHBja9nLRust/Hty4u69NaS1kqelvJlffvyIj/bMZFwHSVcKd3Q7rSyHsYtwRxt9fZyXq6R5heKKnu+kq6j8Uyya3rkE8ARW3SLac7pE1P6zNe+peX82nprodF0Qr/5U+/v9NRio1UnWPJiqHm/+xf/SV985nU5Rko4wd/TF595XZL0Kz/2dzs8O+xWEMwdqaGde20wL3re+gmgBHPs1lAqoe9dX5PjGDlh29d3l4t6z4GhTk9NUvSbMIGWadXGuF737cuLWs7Xtxxczlf07cuLHZpR/LSqNz8brJv35b96IwzfjhzjhLfBOHpPwg0PFwo3fh4ZS+vOg0Oa3P//t3f3MXJdZx3Hf8+987Lv3vXLJq3t1F7q1EraJE1TU1MrhDSiKUVpkIKUAKJUDU2hJVEloK2gFQoF0VaoJAiipKa0UEpUAhVWKS1NTUiNnHcSBxMnNusIO46ziV/3xbuzc+/hj3tnd2Y9Y++ud+/MvfP9SKvZOTu7c66P78wz5z7nOV26eMVs7fJi3qd2Oeanuuxr5au6vcmYAUdq3XHtkD6/Y68mSuWaHHCCmVrbdx1UzjflvNnP2+Uw1PZdB5lJnKelutoy35rNkMZLgeaWrPZMlGyso5Irf+jEhNZn7P9U3veU9z11zZkxnw5CTQfhbI45pRIxx/h0oIv6ijoxMV2VglLQxHRrvIYQgLeoLL+gLhWCmfkhkLlwy5E6Qphwbt2F6EN1dUGN0EXtmLVU6VFpM9/AnFSW9vWmvk4dG5/S+qrX6TPTgQa7W6OUKQF4C2rXF9TFuNANKNpBd8HXeKks5wI5F21kYhblx6XNvQ+/pO27Dmq8FKi74Ov2bRsTmcVfqqstnNvzd/u2jbpn5wGVw6hkY+iir9u3bWx211rK/Y8Oq1QOdGystrJOuy5GbxSYB6GLAvN40Wdl1jwICcyz6tZ3r9c9O/frzHSgjrynyelQ5dDp1nevP/8vJ4Ac8Ba0VPmmgCS9b/MaBWEUvDhFt0EYtadJZVHememgZlHevQ+/tOzPvVS1+Tm35+/OGy7VXde/VZ15X+UwSvm56/q3kjY1x0uvndax8ZLKgZNvpnLgdGy8pP2vnW5211qK70WbC/V15LWqqo75JSu7ojrm3UX1dORUyHnkmGfElqGVuuv6TVrVXdToZFmruou66/pN2tIi+y6kbwqsDVDdA0vphVdHZapNebC4PU2qF+VJURpNkrnsS3G1hXN7Ye684VIC7vOYDqIz24tzdcykMHQqBczszkdtucTZc3MmhaUmxzxs/IfQkrYMrWyZgHsuAvAWRKkyLKWDxyaU901+1SLMIAx18Fi6gr4s5LJzbmOpFXKezpQChc7JLC7w4KJ2LF4h50X/hlXpws65mgWflaCcwByLQQDegqjugaUWhE7lsCoHXFLOT9dl1u6Cr/Gpspxqj6O7mJ6XscWe2+26KLtdj3shNg326uVjYzp9ZjYHvK87rw2reprdtcwxMxVzvoq52oXA0RWH2cWfleC8HBKYozE+Iregpco3BSRpsLeowM3JAXdRe5q8b/OauseRplz2xZzblYWbI6OTNQs3H9k3kmDPk9eux71Qd1w7pLzv6+IVHXrbRb26eEWH8r7PhE2CvDi/vDfOL794RYcuWdWlDau69eb+Tq3uLWpFZ16dBb+mHCzaW3qmjtoM1T2wVFyDWZhG7a3q6OmSBrpyOnWmrNBF6ScrOnM6errU7K4tyELP7eqFm5LUVchpolTOfJWLdj3uhaIca+vyPFOH56sjX3/GvJLOUklloSJLeyEABzLu6Gj9APW1Bu2t6tCJCa3t79K6gdnUGedc6hYwLjStol0XbrbrcS8GEzbp0igwL8+USXSaCgJNTZNfnmUE4EDGNZpVKadstmX9QJcOvjGm0cnaescbV6cn13UxdcDXD3SdnePbmct8ji8LVtFuooosnlSQKhVZnHOaKoeaKtfu+smOn+lHMhKAVNg6tFKvj5VUCqKNWUpBqNfHStraoiWm6llMHfCtQys1Mlp73COj6Truxbjj2iFNB04TpbKci25ZjI52Yxbll6/ozGtNb1Fr+zu1YVWX1g50ak1vUX2deXXkfXnULk8dZsCBjJtbA7y6PU12Dx/XYG/hrJng3cPHdWezOzdPh05MyDdp+PWxmWNY3VM4Z1rF7uHj6uvwdepMWdNVue9pOu7FILcZqK+6GktvVXsll7xyO1WOdn5ktrw1EYAj1ShTdn6eJ9Vbb5m2xfiHTkxoVXdRq3s6ZtrSlgPeW8xp/8iYfM/ke6Zy6PTKyUltGmycTrJ/ZFRjk4HyvjdT53lsMtD+kXRtpLQYew6f1N4jpzReCnTqzLT2HD7J+V0Hr4OQZmuXd9epXV5dt5xNhVoDAThSazH5tO2o3OB1tlF7q8pCTrBz0WxUqezkFF2F8EznnKEqlUPJNHOJ2UwKLXozzbJ7H35J9+w8EO9+Go31PTsPSBK7Y1bhdRDnMjtbrrqbCk0Hrma3T2bMk5OyOTCkySP7RnTbA49p2xd36rYHHlvy+r33PzqsUjnQ0VOTevG1UR09NalSOThnPi3SKws5wW+Ml6KdCiv5P/GM9hvjjSvS5OMNk8L4jTGMF88WUraR0kJt33UwDr49eebFt1E7Zi1mXQFQCcx7ijkNdBd0UV+H1q/s0oZVXVo30KXBvg4NdBXUU8zFV9+y/XrTDMyAY1kkMSvz0mundXqyLE8m30zlwOnYeEnl4PSS/H20lizkBJfKoXzfajbjKIfhOWezL72or071l3yqqr8sxngpkCenqfLszqe+Re2YRblGLCUzUyFnKuS8s2bMpwNXk8JSmUFnxnxxCMCxLO5/dFjTQaBjY7UL5pZyE43pIDrpPa/q0nzoVAp4MciqtNc7zvumM9PR/9NKPrd07tnsyvb1F6/ILWj7+rQr+p4mpmeDbRfvgtqV58JttSykZqH1VQfm3XM2Ua4E5JXgnMB8fgjAsSz2j4zq1MS0vKrFZm+MljQdLN3CsULO05lSoNBVBTMuascsz6LApV47knXpRX164dVTOj05u5tnX0dOmy7qa/g7WZj5Xwzfq//m3ai9XVU+oE2Uym31AQ2to7L4c66awHxm5pzAvIIAHMsiiYVjmwZ7z96gpDuf+Q1KFqoj72uizmX7ubuwpUHaqz1sHVqpJ14+Lt8z5eMPRqNTwXlreqd95n8xxkr1Xysatberdv2AhtbXKDCvN1s+XQ4VtllgTgCOZbGYS+0L1a6X5hdqZWeubgC+sjNdp38Wqj3sHj6uzrynsanZ8egp+pmv6b0YldeM6rVfzs22Y1ZWPqDd+/BL2r7roMZLgboLvm7ftpGKNxmU9z3lfU9dhdr2SmA+XY4qtJSCMNOBebregZEaSSwcY+ZnnjxPfUVPp6dmZw77ip4sZYXAq6s9SFJXIaeJUnlJ1xUst71HTmlsKqjZBGlsKtDeI6ea1qdW1ZX3oxxwd3Y7soeyk6gE5poTmJer6piXgtm0lqBebmWKEIBjWSQ1O52VmZ/l1FPwdeRk7WX7sVKoN/enK5DJQrWHmQoe1RG4o7JHPR//6SH92Y/216xf8CxqR/ZE5SWdglAqx1VvLC47SQDe3nK+p5wvdRZq37NmAvOgdoOhtATmBOBYFtdtHtQth0+edTmRYDl5b4yXzlqEGZ6n9nQrykK1h0oN77lXVMOUvGEkqRJ0kZLQHsamooXJJs3Uxw9d1A7UMxOYqzYwD8KoXOJUubUDcwJwLItH9o3ooWde0Zreoi6JZ8AfeuYVXbGunyA8YcfG6gfajdpb1R3XDum3H3pOr5w8oyB08j1TTzGnz33wsmZ3bd56O3IzAUWltrUk9RR5Ka7nzhsuJeBuE1ZZLFS1SZWc2AAGC+Z7Jt/zzyo0UJ3KMhUETa/Kkq4kUKQGu7O1jkYvLa01FzA/Jkku3rrd1WZypMHt2zZKimb2nGbLQ1bagXbVmY/O5spC20pM1JVP21mOVpXzPXUWfK3oymuwt0PrBmp3/lzRmVdnwZefUI1epl2wLLKQr4vWcv+jw8r5UV35wEW3ufhDXVquqlyxrl/dBV/jpWCmDnh3wdcV6/qb3TWgqdYPdOuFo2fvE7FuoLsJvUG7qN5gqPpKZBDGiz6XcbacABzLIgv5ulmRlY149o+M6sR4SaEkOakcBpqMF/emxf2PDmuwr6PmvEhbJZckferBZ7Rjz9GZlKObrrhYX7n16mZ3C8vAOaecZ/LNZkrXBo5NW9AcvmfqLPjxws9oMtE5N7OhUKUiS6m8+NxyAnAsC3Znax1ZSUGZmAoUVKedOCmI29Pi0IkJ+SYNvz42U55zdU8hlVeGlntTpE89+Iy+8+yrM/eD0MX3nyEIz6CxUqC1/R16Y6w0c25c3FOkQhBahpmpmPNVzJ2dW14dmFcWf54POeBYFtdtHtTdN12uwd4OnTozrcHeDt190+XM8jVBo72PlnBPpESUguiN2FV9VbenQW8xp1dOTqocz+iWQ6dXTk6mbhFmZVOkkdHJmk2RHtk3smTPsWPPUUmz5egqa/Eq7ciW9QNdmpqzU/JUOeSqKVpezvfUVcipv6ugwb4OrV/ZpQ2ruvXm/k71deQb/16CfUSboUZ3a7i4t6jDp6bqtqeJ73lyLoyC70qd4Lg9LWYup1c+Pbg57SmRxKZIjS7rtlopMSyNrUMr9cTLx+VZlB5XCkK9PlbSL21Z2eyuAQvmeaYO79x7baTnnQvAojTa8TJtO2EOre6WmSnveyrmox3TzExDq9OzSKtymT3nmwLnlPNNa/s7UneZ/dCJCXXOKfG11IusK5UI5lbFSKpCAZK1e/i4BnsLKvieQicVfE+DvQXtHj7e7K4By4IZcCDjjp6aXFB7q/r0jZv1Ow89p9HJsspBqJznaaArr0/fuLnZXZu3yuLkoTU9M20TpbIGezua2KuFWz/QpZePjen0mfJMvm5fZ04bVvWc/5fnactb+rX74Im67cieQycmtKq7qNU9s+eCcy6V6yOA+UjXFBiABSvHU4dzc2nLKUt7uG7zoL58y5V65yUDetOKTr3zkgF9+ZYrU5XmdMe1Q5oOnCZKZTkX3aZxcfLWoZUaGY0Wy1XSBUZGS9o6tHTpAoeO1w+8GrUj3dYPdOnMdO2VICpnIcsIwIGMqyy2POtSfoqv5Kfro8OsrCxO3j18XGt6atMF1vQsbbrAK3XWLZyrHemWlQ+nwHyRggJk3KbBXr14dFTOqhYvuqg9TSqVN/K+1VTeuFtKVQCbhcXJh05MaHVPUWt6ly9dICvlMzE/120e1N2KFvgePjGhdctQ2hJoJQTgQMbV5E6HUe50b0cuVbnTUjKVNzA/SWy0ZaofbKf4wg3OIwsfToH5IgUFyLgs5E5LyVTewPwkkS6wtr/+wtRG7QCQJsyAA20gCzNLScy6Yn6SSBf4ws3v0J1//4zGSoFCF9WG7in4+sLN71iy5wCAZiEAB5AKd1w7pM/v2KuJUlmdeV9npgMWaTXRcn+ou27zoO697WpyggFkEikoAFIhKxVEMH97Dp/U3iOndOTUpPYeOaU9h082u0sAsCSYAQeQGllIpXlk34juf3RYh05MaD2zug3d+/BLumfnAXkm5bwo3eienQckSXfecGmTewcAF4YZcKANPLJvRLc98Ji2fXGnbnvgMT2yb6TZXWpLlVKKI6OTNaUUGY+zbd91UC50mg6cpsrRrQudtu862OyuAcAFIwAHMo6gr3VUl1I0i27zvun+R4eb3bWWMzpZVjinLYzbASDtSEEBMi5L9bPTnr5x6MSE+jvzNW2UUqyPjXgAZBkBOJBxSQV9yx0cJ7UT5nIeB6UUAQASKShA5q0f6NKZ6aCmbamDviTSXJJI31ju40hiA5us6OvInbXrpcXtAJB2BOBAxiUR9CURHCexE+ZyHwelFOfv9m0b5XmmvG8q5qJbzzPdvm1js7sGABeMqQQg45LYtTCJNJck0jeSOI4slFJMQqXU4PZdBzVeCtRd8HX7to2UIASQCQTgQBtY7qAvieA4iZ0wydFuLXfecCkBN4BMIgUFwAVLIs0lifQNcrQBAEkw59qrqNM111zjnnrqqWZ3A8icSvWQ5UpzSUpWjgMA0Hxm9rRz7pqz2gnAAQAAgKXXKAAnBQUAAABIEAE4AAAAkCACcAAAACBBBOAAAABAggjAAQAAgAQRgAMAAAAJIgAHAAAAEkQADgAAACSIABwAAABIEAE4AAAAkCACcAAAACBBBOAAAABAggjAAQAAgAQRgAMAAAAJIgAHAAAAEkQADgAAACSIABwAAABIEAE4AAAAkCACcAAAACBBBOAAAABAggjAAQAAgAQRgAMAAAAJIgAHAAAAEkQADgAAACSIABwAAABIEAE4AAAAkCACcAAAACBBBOAAAABAggjAAQAAgAQRgAMAAAAJIgAHAAAAEkQADgAAACSIABwAAABIEAE4AAAAkCACcAAAACBBBOAAAABAggjAAQAAgAQRgAMAAAAJIgAHAAAAEkQADgAAACSIABwAAABIEAE4AAAAkCACcAAAACBBBOAAAABAggjAAQAAgAQRgAMAAAAJIgAHAAAAEkQADgAAACSIABwAAABIEAE4AAAAkKDUB+BmdqOZvWhmB8zsM83uDwAAAHAuqQ7AzcyX9BeSPiDpMkm3mdllze0VAAAA0FiqA3BJWyQdcM4NO+dKkh6U9KEm9wkAAABoKO0B+FpJh6ruH47bAAAAgJaUa3YHLpDVaXNnPcjsY5I+Ft8dM7MXl7VXaIbVkt5odieQGMa7vTDe7YXxbi9ZH++31GtMewB+WNL6qvvrJB2Z+yDn3AOSHkiqU0iemT3lnLum2f1AMhjv9sJ4txfGu72063inPQXlSUmbzGyjmRUk3SppR5P7BAAAADSU6hlw51zZzD4p6QeSfElfc87tbXK3AAAAgIZSHYBLknPue5K+1+x+oOlIMWovjHd7YbzbC+PdXtpyvM25s9YsAgAAAFgmac8BBwAAAFKFABwtzcx8M/svM/tufP8PzOwVM3s2/vq5qsd+1swOmNmLZvb+qvZ3mdnz8c/uNbN65SvRZGb2cjxOz5rZU3HbSjP7oZntj28Hqh7PeKdYg/Hm/M4oM+s3s4fMbJ+ZvWBmWzm/s6vBeHN+VyEAR6u7S9ILc9q+4py7Kv76niSZ2WWKquBcLulGSX9pZn78+PsU1YHfFH/dmEjPsRg/E49rpSTVZyT9yDm3SdKP4vuMd3bMHW+J8zur7pH0fefcZklXKnpd5/zOrnrjLXF+zyAAR8sys3WSPihp+zwe/iFJDzrnppxzByUdkLTFzN4kqc85t9tFCx7+RtLNy9ZpLLUPSfpG/P03NDt2jHd7YbxTzMz6JF0r6a8kyTlXcs6dFOd3Jp1jvBtpy/EmAEcr+zNJvyspnNP+STPbY2Zfq7pkuVbSoarHHI7b1sbfz21H63GS/s3MnrZo91pJusg596okxbeDcTvjnX71xlvi/M6iIUmvS/rrOKVwu5l1i/M7qxqNt8T5PYMAHC3JzH5e0ohz7uk5P7pP0k9IukrSq5L+tPIrdf6MO0c7Ws97nXNXS/qApE+Y2bXneCzjnX71xpvzO5tykq6WdJ9z7p2SxhWnmzTAeKdbo/Hm/K5CAI5W9V5JN5nZy5IelHS9mX3TOfeacy5wzoWSvippS/z4w5LWV/3+OklH4vZ1ddrRYpxzR+LbEUnfUTS2r8WXIRXfjsQPZ7xTrt54c35n1mFJh51zj8f3H1IUoHF+Z1Pd8eb8rkUAjpbknPusc26dc26DosUZO51zv1J5sY79gqT/jr/fIelWMyua2UZFizWeiC9rjprZe+LV078q6Z+TOxLMh5l1m1lv5XtJP6tobHdI+nD8sA9rduwY7xRrNN6c39nknDsq6ZCZvS1uep+k/xHndyY1Gm/O71qp3wkTbedLZnaVostQL0u6Q5Kcc3vN7NuKXtTLkj7hnAvi3/kNSV+X1CnpX+MvtJaLJH0nrjCVk/Qt59z3zexJSd82s49K+j9Jvygx3hnQaLz/lvM7s35L0t+ZWUHSsKSPKJoE5PzOpnrjfS/n9yx2wgQAAAASRAoKAAAAkCACcAAAACBBBOAAAABAggjAAQAAgAQRgAMAAAAJIgAHANQws6+b2S3N7gcAZBUBOADggpiZ3+w+AECaEIADQEaY2QYz22dm3zCzPWb2kJl1mdm7zOw/zOxpM/tB1fbfv25mT5rZc2b2j2bWVedv/mE8I+7Nab/OzP7dzL4l6flGzx0/9mUz+2Mz221mT5nZ1XE//tfMPp7IPw4AtBACcADIlrdJesA5d4Wk05I+IenPJd3inHuXpK9J+qP4sf/knHu3c+5KSS9I+mj1HzKzL0kalPQR51xY57m2SPo959xlDZ77N6see8g5t1XSjxXtbHeLpPdIuvsCjxcAUocAHACy5ZBz7j/j778p6f2S3i7ph2b2rKTfl7Qu/vnbzezHZva8pF+WdHnV3/mcpH7n3B2u8ZbJTzjnDp7jubdV/WxHfPu8pMedc6POudclTZpZ/yKOEwBSK9fsDgAAltTcYHlU0t549nmur0u62Tn3nJn9mqTrqn72pKR3mdlK59xxM/tJSffHP/u8ohnu8fM8d/X9qfg2rPq+cp/3IgBthRlwAMiWS8ysEmzfJukxSWsqbWaWN7PKTHevpFfNLK9oBrza9yX9iaR/MbNe59zjzrmr4q8dqm/uc+9aqoMCgCwhAAeAbHlB0ofNbI+klYrzvyV90cyek/SspJ+KH/s5SY9L+qGkfXP/kHPuHyR9VdIOM+tcxHPfd4HHAgCZZI1T+wAAaWJmGyR91zn39nZ6bgBIG2bAAQAAgAQxAw4AAAAkiBlwAAAAIEEE4AAAAECCCMABAACABBGAAwAAAAkiAAcAAAASRAAOAAAAJOj/Ad7M+NmTXEBZAAAAAElFTkSuQmCC\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": 52,
"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": 52,
"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 \"highway-mpg\" has a stronger correlation with \"price\", it is approximate -0.704692 compared to \"peak-rpm\" 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": 53,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"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.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": 28,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"Y_hat = lm.predict(Z)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/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": "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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,
"jupyter": {
"outputs_hidden": 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": 34,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 35,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 36,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 37,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([-1.55663829e+00, 2.04754306e+02, -8.96543312e+03, 1.37923594e+05])"
]
},
"execution_count": 37,
"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": 38,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 11 10 9 8 7\n",
"-1.243e-08 x + 4.722e-06 x - 0.0008028 x + 0.08056 x - 5.297 x\n",
" 6 5 4 3 2\n",
" + 239.5 x - 7588 x + 1.684e+05 x - 2.565e+06 x + 2.551e+07 x - 1.491e+08 x + 3.879e+08\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": [
"f1 = np.polyfit(x, y, 11)\n",
"p1 = np.poly1d(f1)\n",
"print(p1)\n",
"PlotPolly(p1, x, y, 'highway-mpg')"
]
},
{
"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 11rd order (cubic) \n",
"f1 = np.polyfit(x, y, 11)\n",
"p1 = np.poly1d(f1)\n",
"print(p)\n",
"PlotPolly(p1,x,y, 'Highway MPG')\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": 40,
"metadata": {},
"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": 50,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Z = df[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']]\n",
"pr=PolynomialFeatures(degree=2)\n",
"pr"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"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": 53,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 4)"
]
},
"execution_count": 53,
"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": 54,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 15)"
]
},
"execution_count": 54,
"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": 56,
"metadata": {},
"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": 57,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 58,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 58,
"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": 59,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/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/envs/python/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": 59,
"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": 60,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/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": 60,
"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": 63,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/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/envs/python/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/envs/python/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([13699.11161184, 13699.11161184, 19051.65470233, 10620.36193015,\n",
" 15521.31420211, 13869.66673213, 15456.16196732, 15974.00907672,\n",
" 17612.35917161, 10722.32509097])"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \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"
]
},
{
"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": 64,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R-square is: 0.7609686443622008\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": 65,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The output of the first four predicted value is: [13728.4631336 13728.4631336 17399.38347881 10224.40280408]\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": 66,
"metadata": {},
"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": 67,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean square error of price and predicted value is: 15021126.02517414\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": 68,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 69,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 70,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 71,
"metadata": {},
"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": 72,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 73,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"20474146.426361226"
]
},
"execution_count": 73,
"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": 74,
"metadata": {},
"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": 75,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 76,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 76,
"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": 77,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([-7796.47889059, -7629.6188749 , -7462.75885921, -7295.89884352,\n",
" -7129.03882782])"
]
},
"execution_count": 77,
"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": 78,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAD4CAYAAADo30HgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd3yV9fn/8dfF3nsTYtgYhhbCcreg4Khg0W9pa0WrotbW1g6GqNXaKlq/Wq2jP6pVaa1KGUIRXKhVKys4slhhCGHPEFbIuH5/nJt+DxiWOeGcnPN+Ph48cp/Pfd/JdUPIO/c418fcHRERkcOqRLsAERGJLQoGERE5goJBRESOoGAQEZEjKBhEROQI1aJdQHk1a9bMU1JSol2GiEilsmTJku3u3rysdZU+GFJSUkhPT492GSIilYqZfXmsdbqUJCIiR1AwiIjIERQMIiJyBAWDiIgcQcEgIiJHUDCIiMgRFAwiInIEBYOISCVz4FAJD81dSt6u/RXy+Sv9G9xERBLJJ7nbGTc9k3U799OucR2uHXBGxL+GgkFEpBLIP1DEQ3OW8uri9aQ0rcOrowcwoEPTCvlaCgYRkRj3Ts4W7n49k20FhdxyYQfuHNyFWtWrVtjXUzCIiMSo7XsLuW9WNrMzNtGtVX3+cl0avZIaVfjXjcjNZzO708yyzSzLzF4xs1pm1sTM3jGzlcHHxmHbjzezXDNbbmZDwsb7mFlmsO5JM7NI1CciUpm4OzM+y2PwY//m7ewt/PLiLsz6yXmnJRQgAsFgZm2BO4A0d+8BVAVGAuOAee7eGZgXvMbMUoP13YGhwDNmdvic6FlgNNA5+DO0vPWJiFQmG3cf4IYXF3Pna1/Qvlld3rjjPH46qDM1qp2+h0gjdSmpGlDbzIqAOsBGYDxwUbD+JeADYCwwDHjV3QuBNWaWC/Qzs7VAA3efD2Bmk4HhwNwI1SgiErNKS52XF61j4pyllDrcc0Uq15+TQtUqp//CSbmDwd03mNmjwDrgAPC2u79tZi3dfVOwzSYzaxHs0hZYEPYp8oKxomD56PGvMLPRhM4sSE5OLu8hiIhE1Zrt+xg7LYNFa3ZyXqdmPPSdnrRrUidq9ZQ7GIJ7B8OA9sBu4J9mdu3xdiljzI8z/tVB90nAJIC0tLQytxERiXXFJaU89/EaHn9nBTWqVeGREb24Ji2JaN9ejcSlpMHAGnffBmBm04FzgC1m1jo4W2gNbA22zwPahe2fROjSU16wfPS4iEjcydm4h7HTMsjckM+Q7i15YFgPWjSoFe2ygMg8lbQOGGBmdYKniAYBS4FZwKhgm1HAzGB5FjDSzGqaWXtCN5kXBZedCsxsQPB5rgvbR0QkLhQWl/C/by/nyqc+ZlP+AZ75QW/+fG2fmAkFiMw9hoVmNhX4FCgGPiN0maceMMXMbiQUHtcE22eb2RQgJ9j+dncvCT7dbcCLQG1CN51141lE4saSL3cxdloGuVv38p3ebbnn8lQa160R7bK+wtwr9yX6tLQ0T09Pj3YZIiLHtK+wmEffXs6Ln6yldYNaPPidnlzUtcWJd6xAZrbE3dPKWqd3PouIVKCPV25n3PQM8nYd4LqBZzBmaDfq1YztH72xXZ2ISCWVv7+I38/JYUp6Hh2a1WXKLQPp175JtMs6KQoGEZEIezNrM/fMzGLnvkP8+KKO3DGoc4U2vYs0BYOISIRsLTjIfbOymZO5mdTWDXjh+r70aNsw2mWdMgWDiEg5uTvTP93Ab2fncKCohF8P6croCzpQvWrlnCRTwSAiUg55u/YzYUYW/16xjT5nNObhEb3o1KJetMsqFwWDiMjXUFrq/H3hlzw8dxkO3H9ld3444AyqRKHpXaQpGERETtGqbXsZNy2DxWt3cUGX5jx4VQ+SGkev6V2kKRhERE5SUUkpkz5czRPzVlK7elUeveYsRvRuG/Wmd5GmYBAROQlZG/IZOy2D7I17uKxnK+67sjst6sdOf6NIUjCIiBzHwaISnpy3kv/34Woa16nBn6/tzdAeraNdVoVSMIiIHEP62p2MmZbB6m37uKZPEndfnkrDOtWjXVaFUzCIiBxlX2Exj7y5jMkLvqRNw9pM/lE/LujSPNplnTYKBhGRMP9esY27pmeyMf8Aowam8OshXakb403vIi2xjlZE5Bh27z/EA7OXMu3TPDo2r8s/bxlIWkrlaHoXaRF5v7aZNTKzqWa2zMyWmtlAM2tiZu+Y2crgY+Ow7cebWa6ZLTezIWHjfcwsM1j3pMXbM2AiEpPmZm5i8GMf8vrnG/jJNzvxxh3nJ2woQISCAXgCeNPduwFnEZracxwwz907A/OC15hZKjAS6A4MBZ4xs8NtB58FRhOa7rNzsF5EpEJs3XOQW/+2hNte/pSWDWoy6yfn8qshXStVJ9SKUO5LSWbWALgAuB7A3Q8Bh8xsGHBRsNlLwAfAWGAY8Kq7FwJrzCwX6Gdma4EG7j4/+LyTgeFoek8RiTB3559L8vjd7BwOFpcydmg3bj6/PdUqadO7SIvEPYYOwDbgBTM7C1gC/Axo6e6bANx9k5kdnseuLbAgbP+8YKwoWD56/CvMbDShMwuSk5MjcAgikijW79zP+OmZfJy7nX4pTXhoRE86Nq/cTe8iLRLBUA3oDfzU3Rea2RMEl42Ooaz7Bn6c8a8Ouk8CJkFozudTK1dEElFJqTN5/loeeXM5VQweGNadH/SPj6Z3kRaJYMgD8tx9YfB6KqFg2GJmrYOzhdbA1rDt24XtnwRsDMaTyhgXESmX3K0FjJmawafrdnNR1+b8/qqetG1UO9plxaxyX1Bz983AejPrGgwNAnKAWcCoYGwUMDNYngWMNLOaZtae0E3mRcFlpwIzGxA8jXRd2D4iIqesqKSUp95byWVPfMzq7ft4/Ltn8cL1fRUKJxCp9zH8FHjZzGoAq4EbCIXOFDO7EVgHXAPg7tlmNoVQeBQDt7t7SfB5bgNeBGoTuumsG88i8rVk5uXz66lfsGxzAZf3as193+5O8/o1o11WpWDulfsSfVpamqenp0e7DBGJEQeLSnj83RU899EamtatwQPDezCke6tolxVzzGyJu6eVtU7vfBaRuLFw9Q7GTc9kzfZ9jOzbjvGXnUnD2vHf9C7SFAwiUukVHCzi4TeX8fcF62jXpDYv39Sfczs1i3ZZlZaCQUQqtfeXb2XC9Ew27TnIjee155eXdKFODf1oKw/97YlIpbRz3yEemJ3DjM820LlFPabddg69kxufeEc5IQWDiFQq7s4bmZv4zcxs8g8Ucce3OnH7tzpRs1pi9zeKJAWDiFQaW/Yc5O7Xs3gnZwu9khry95v6c2brBtEuK+4oGEQk5rk7ry1ez+/nLOVQcSl3XdaNH52rpncVRcEgIjFt3Y79jJuewSerdtC/fRMeHtGLlGZ1o11WXFMwiEhMKil1XvjPGh59eznVqlThd8N78P1+yWp6dxooGEQk5qzYEmp69/n63XyrWwt+f1UPWjdUf6PTRcEgIjHjUHEpz36wiqfeX0m9mtV4YuTZXHlWGzTL7+mlYBCRmPDF+t2MnZbBss0FDDu7DfdekUrTemp6Fw0KBhGJqgOHDje9W02L+rV47ro0Bqe2jHZZCU3BICJRM3/VDsZPz2Dtjv18r18y4y/rRoNaanoXbQoGETnt9hwsYuLcZfxj4TqSm9ThHzf355yOanoXKyL27hAzq2pmn5nZ7OB1EzN7x8xWBh8bh2073sxyzWy5mQ0JG+9jZpnBuidNd5xE4s68pVu45LEPeXXROm4+vz1v/fwChUKMieTbBn8GLA17PQ6Y5+6dgXnBa8wsFRgJdAeGAs+Y2eEmJ88CowlN99k5WC8icWDH3kLueOUzbnwpnYa1qzP9x+cy4fJUatdQj6NYE5FgMLMk4HLgubDhYcBLwfJLwPCw8VfdvdDd1wC5QD8zaw00cPf5HppWbnLYPiJSSbk7Mz/fwMWPf8jcrE3cObgL//rpeZzdrlG0S5NjiNQ9hj8CY4D6YWMt3X0TgLtvMrMWwXhbYEHYdnnBWFGwfPT4V5jZaEJnFiQnJ0eifhGpAJvyD3D3jCzmLdvKWe0a8ciIXnRtVf/EO0pUlTsYzOwKYKu7LzGzi05mlzLG/DjjXx10nwRMgtCczydZqoicJqWlzquL1/PQnKUUlZZy9+VncsO57amqdhaVQiTOGM4FrjSzy4BaQAMz+zuwxcxaB2cLrYGtwfZ5QLuw/ZOAjcF4UhnjIlKJrN2+j3HTM1iweicDOzRl4oienNFUTe8qk3LfY3D38e6e5O4phG4qv+fu1wKzgFHBZqOAmcHyLGCkmdU0s/aEbjIvCi47FZjZgOBppOvC9hGRGFdcUsqkD1cx5I8fkr1hDxO/05N/3NxfoVAJVeT7GCYCU8zsRmAdcA2Au2eb2RQgBygGbnf3kmCf24AXgdrA3OCPiMS4pZv2MHZaBhl5+Qw+syW/G96DVg1rRbss+Zos9ABQ5ZWWlubp6enRLkMkIRUWl/D0+6t45v1cGtauzv3DunN5z9ZqelcJmNkSd08ra53e+SwiX8un63YxdmoGK7fuZfjZbbj3291pUrdGtMuSCFAwiMgp2X+omP99ewV//c8aWjWoxQvX9+Wb3VqceEepNBQMInLS/pO7nXHTM1i/8wA/6J/MuEu7UV9N7+KOgkFETij/QBEPzVnKq4vX075ZXV4bPYD+HZpGuyypIAoGETmut7M3c/frWezYd4hbLuzAnYO7UKu6+hvFMwWDiJRp+95C7puVzeyMTXRrVZ/nR/WlZ1LDaJclp4GCQUSO4O68/vkG7v9XDvsLS/jFxV249cKO1KgWyWbMEssUDCLyXxt3H2DCjEzeX76N3smNeHhELzq3VNO7RKNgEBFKS52XF61j4pyllDrce0Uqo85JUdO7BKVgEElwq7ftZdy0TBat3cn5nZvx4FU9adekTrTLkihSMIgkqOKSUp77eA2Pv7OCmtWq8MjVvbimT5LaWYiCQSQR5WwMNb3L3JDPkO4teWBYD1o0UNM7CVEwiCSQwuISnnovl2c/WEWjOtV5+vu9uaxnK50lyBEUDCIJYsmXOxk7LZPcrXsZ0TuJuy8/k8ZqeidlUDCIxLl9hcX84a3lvDR/LW0a1ubFG/pyUVc1vZNjK/c7VsysnZm9b2ZLzSzbzH4WjDcxs3fMbGXwsXHYPuPNLNfMlpvZkLDxPmaWGax70nR+K1IuH63cxpA/fshL89dy3YAzeOvOCxQKckKReCtjMfBLdz8TGADcbmapwDhgnrt3BuYFrwnWjQS6A0OBZ8zscOOVZ4HRhKb77BysF5FTlL+/iF//8wt++PwialSrwpRbBnL/sB7Uq6mLBHJi5f4uCeZq3hQsF5jZUqAtMAy4KNjsJeADYGww/qq7FwJrzCwX6Gdma4EG7j4fwMwmA8PR9J4ip+TNrM3cMzOLnfsO8eOLOnLHoM5qeienJKK/PphZCvANYCHQMggN3H2TmR0+f20LLAjbLS8YKwqWjx4v6+uMJnRmQXJycuQOQKQS21pwkPtmZTMnczOprRvwwvV96dFWTe/k1EUsGMysHjAN+Lm77znO7YGyVvhxxr866D4JmAShOZ9PvVqR+OHuTP90A7+dncOBohJ+PaQroy/oQPWqanonX09EgsHMqhMKhZfdfXowvMXMWgdnC62BrcF4HtAubPckYGMwnlTGuIgcQ96u/dw1I4sPV2wj7YzGTBzRi04t6kW7LKnkIvFUkgHPA0vd/bGwVbOAUcHyKGBm2PhIM6tpZu0J3WReFFx2KjCzAcHnvC5sHxEJU1rqTJ6/liGPf0j62p3cf2V3ptwyUKEgERGJM4ZzgR8CmWb2eTB2FzARmGJmNwLrgGsA3D3bzKYAOYSeaLrd3UuC/W4DXgRqE7rprBvPIkdZtW0v46ZlsHjtLjW9kwph7pX7En1aWpqnp6dHuwyRCldUUspfPlrNH99dSe3qVbnnilRG9G6rdhbytZjZEndPK2udHmoWqQSyNuQzZmoGOZv2cGmPVtw/rDst6qvpnVQMBYNIDDtYVMIT81Yy6cPVNKlbgz9f25uhPVpHuyyJcwoGkRi1eO1Oxk7NYPX2fVzTJ4m7L0+lYZ3q0S5LEoCCQSTG7C0s5g9vLmPygi9p07A2f7uxH+d3bh7tsiSBKBhEYsgHy7cyYUYWG/MPMGpgCr8e0pW66m8kp5m+40RiwK59h3jgjRymf7qBjs3rMvXWgfQ5o0m0y5IEpWAQiSJ3Z27WZu6dmcXu/UX85Jud+OmgTtSspqZ3Ej0KBpEo2brnIPfMzOKt7C30bNuQyT/qT2qbBtEuS0TBIHK6uTv/XJLH72bnUFhcyrhLu3HTee2ppqZ3EiMUDCKn0fqd+7lrRiYfrdxOv5QmTBzRkw7N1d9IYouCQeQ0KAma3j3y5nKqGDwwrDs/6H8GVaqonYXEHgWDSAVbuaWAsdMy+HTdbi7q2pzfX9WTto1qR7sskWNSMIhUkKKSUv78wSr+9F4udWpW5fHvnsXws9X0TmKfgkGkAmTm5fPrqV+wbHMBV/RqzX1XdqdZvZrRLkvkpCgYRCLoYFEJj7+7gr98uJpm9Woy6Yd9uKR7q2iXJXJKFAwiEbJw9Q7GTc9kzfZ9jOzbjvGXnUnD2mp6J5VPzAWDmQ0FngCqAs+5+8QolyRyXAUHi3j4zWX8fcE62jWpzcs39efcTs2iXZbI1xZTwWBmVYGngYuBPGCxmc1y95zoViZStveXbeWuGZls2XOQm85rzy8u6UKdGjH130rklMXad3A/INfdVwOY2avAMELzQ4vEjJ37DvHA7BxmfLaBzi3q8cxt5/CN5MbRLkskImItGNoC68Ne5wH9j97IzEYDowGSk5NPT2UihNpZvJG5id/MzCb/QBE/G9SZH3+zo5reSVyJtWAo6wFv/8qA+yRgEkBaWtpX1otUhC17DnL361m8k7OFXkkNefnm/nRrpaZ3En9iLRjygHZhr5OAjVGqRQQInSW8tng9v5+zlEPFpdx1WTd+dK6a3kn8irVgWAx0NrP2wAZgJPD96JYkiWzdjv2Mm57BJ6t20L99Ex4e0YuUZnWjXZZIhYqpYHD3YjP7CfAWocdV/+ru2VEuSxJQSanzwn/W8Ojby6lepQoPXtWTkX3bqemdJISYCgYAd58DzIl2HZK4VmwpYMzUDD5fv5tB3Vrwu6t60Lqhmt5J4oi5YBCJlkPFpTz7wSqeen8l9WtV54mRZ3PlWW3U9E4SjoJBBPhi/W7GTM1g+ZYCrjyrDb/5dipN1fROEpSCQRLagUMlPPbOcp7/eA0t6tfiuevSGJzaMtpliUSVgkES1iertjN+eiZf7tjP9/olM/6ybjSopaZ3IgoGSTh7Dhbx0JxlvLJoHWc0rcMrNw9gYMem0S5LJGYoGCShvJuzhQmvZ7KtoJDRF3TgzsFdqF1D7SxEwikYJCHs2FvI/f/KYdYXG+nWqj6TfpjGWe0aRbsskZikYJC45u7M+mIj983KZm9hMb+4uAu3XtiRGtXUzkLkWBQMErc25R/g7hlZzFu2lbPbNeKRq3vRpWX9aJclEvMUDBJ3SkudVxav46E5yygpde65IpXrz0mhqtpZiJwUBYPElbXb9zFuegYLVu/k3E5NeeiqXiQ3rRPtskQqFQWDxIXiklL++p81/O/bK6hRrQoTv9OT7/Ztp3YWIl+DgkEqvWWb9zBmagYZeflcnNqS3w3vQcsGtaJdlkilpWCQSquwuISn31/FM+/n0rB2dZ76/je4vGdrnSWIlJOCQSqlT9ftYuzUDFZu3ctV32jLvVek0rhujWiXJRIXyvUwt5n9wcyWmVmGmc0ws0Zh68abWa6ZLTezIWHjfcwsM1j3pAW/3plZTTN7LRhfaGYp5alN4tP+Q8U8MDuHEc9+wt7CYl64vi+Pf/dshYJIBJX3XT7vAD3cvRewAhgPYGaphKbl7A4MBZ4xs8N9B54FRgOdgz9Dg/EbgV3u3gl4HHi4nLVJnPkkdztD//gRz3+8hmv7n8Hbd17AN7u1iHZZInGnXMHg7m+7e3HwcgGQFCwPA15190J3XwPkAv3MrDXQwN3nu7sDk4HhYfu8FCxPBQaZLhYLkH+giHHTMvj+cwupWsV4bfQAHhjeg/rqhCpSISJ5j+FHwGvBcltCQXFYXjBWFCwfPX54n/Xw37mf84GmwPajv5CZjSZ01kFycnLkjkBiztvZm7n79Sx27DvErRd25OeDO1OrupreiVSkEwaDmb0LtCpj1QR3nxlsMwEoBl4+vFsZ2/txxo+3z1cH3ScBkwDS0tLK3EYqt20Fhdz3r2zeyNjEma0b8PyovvRMahjtskQSwgmDwd0HH2+9mY0CrgAGBZeHIHQm0C5ssyRgYzCeVMZ4+D55ZlYNaAjsPIljkDji7sz4bAO/nZ3D/sISfnVJF265sCPVq6rpncjpUq5LSWY2FBgLXOju+8NWzQL+YWaPAW0I3WRe5O4lZlZgZgOAhcB1wJ/C9hkFzAeuBt4LCxpJABt2H2DCjEw+WL6N3smhpnedWqjpncjpVt57DE8BNYF3gvvEC9z9VnfPNrMpQA6hS0y3u3tJsM9twItAbWBu8AfgeeBvZpZL6ExhZDlrk0qitNR5eeGXTJy7DAd+8+1Urhuopnci0WKV/ZfytLQ0T09Pj3YZ8jWt3raXcdMyWbR2J+d3bsaDV/WkXRM1vROpaGa2xN3Tylqndz5LVBSXlPKXj9bw+LsrqFWtCn+4uhdX90lSOwuRGKBgkNMuZ+Mexkz7gqwNexjavRW/HdadFmp6JxIzFAxy2hwsKuGp93L5879X0ahODZ79QW8u7dk62mWJyFEUDHJaLPlyJ2OmZrBq2z5G9E7inivOpFEd9TcSiUUKBqlQ+wqL+cNby3lp/lraNKzNizf05aKu6m8kEssUDFJhPlyxjfHTM9mw+wCjBp7Br4d2o15NfcuJxDr9L5WIy99fxANv5DB1SR4dmtfln7cOpG9Kk2iXJSInScEgEfVm1ibumZnNzn2H+PFFHbljkJreiVQ2CgaJiK0FB/nNzGzmZm2me5sGvHB9X3q0VdM7kcpIwSDl4u5M+3QDD8zO4UBRCWOGduXm8zuo6Z1IJaZgkK8tb9d+xk/P5KOV2+mb0piJI3rRsXm9aJclIuWkYJBTVlrqTJ6/lkfeWo4B91/ZnR8OOIMqanonEhcUDHJKcrfuZdy0DNK/3MUFXZrz4FU9SGqspnci8UTBICelqKSUSR+u5ol3V1K7RlUeveYsRvRuq6Z3InFIwSAnlLUhnzFTM8jZtIfLe7bmviu707x+zWiXJSIVJCKPjpjZr8zMzaxZ2Nh4M8s1s+VmNiRsvI+ZZQbrnrTgV04zq2lmrwXjC80sJRK1ydd3sKiEh99cxrCn/8O2vYX8+do+PP2D3goFkThX7jMGM2sHXAysCxtLJTQDW3dCU3u+a2ZdglncngVGAwuAOcBQQrO43QjscvdOZjYSeBj4bnnrk69n8dqdjJ2awert+/iftCQmXJZKwzrVo12WiJwGkThjeBwYA4RPBTcMeNXdC919DZAL9DOz1kADd58fzOc8GRgets9LwfJUYJDpAvZpt7ewmHtnZnHNn+dzqKSUv9/Yn0euPkuhIJJAynXGYGZXAhvc/Yujfoa3JXRGcFheMFYULB89fnif9QDuXmxm+UBTYHsZX3c0obMOkpOTy3MIEuaD5VuZMCOLjfkHuOHcFH51SVfqqumdSMI54f96M3sXaFXGqgnAXcAlZe1WxpgfZ/x4+3x10H0SMAlCcz6XtY2cvF37DvHAGzlM/3QDnVrUY+qt59DnjMbRLktEouSEweDug8saN7OeQHvg8NlCEvCpmfUjdCbQLmzzJGBjMJ5Uxjhh++SZWTWgIbDzVA5GTo27MzdrM/fOzGL3/iLu+FYnbv9WJ2pWU9M7kUT2ta8TuHsm8N8ZV8xsLZDm7tvNbBbwDzN7jNDN587AIncvMbMCMxsALASuA/4UfIpZwChgPnA18F5wH0IqwNY9B7lnZhZvZW+hZ9uGTP5Rf1LbNIh2WSISAyrkArK7Z5vZFCAHKAZuD55IArgNeBGoTehppLnB+PPA38wsl9CZwsiKqC3RuTv/TM/jgTdyOFRcyrhLu3HTee2ppqZ3IhKwyv5LeVpamqenp0e7jEph/c5Q07uPc7fTr30TJn6nJx3U9E4kIZnZEndPK2udHjlJACWlzkufrOUPby2nahXjgeE9+EG/ZDW9E5EyKRji3MotBYydlsGn63ZzUdfmPHhVT9o0qh3tskQkhikY4lRRSSl//mAVf3ovl7o1q/L4d89i+NlqeiciJ6ZgiEMZebsZMzWDZZsL+PZZbfjNt1NpVk/9jUTk5CgY4sjBohIef2cFf/loNc3r12TSD/twSfey3psoInJsCoY4sWD1DsZNy2Dtjv18r187xl16Jg1rq7+RiJw6BUMlV3CwiIlzl/HywnUkN6nDP27qzzmdmp14RxGRY1AwVGLvL9vKXTMy2bLnIDed155fXNKFOjX0Tyoi5aOfIpXQzn2H+O2/snn98410blGPp287h97JanonIpGhYKhE3J3ZGZu4b1Y2+QeK+Nmgzvz4mx3V9E5EIkrBUElszj/I3a9n8e7SLfRKasjLN/enWys1vRORyFMwxDh359XF63nwjaUcKillwmVncsO5KWp6JyIVRsEQw77csY9x0zKZv3oHAzo0YeJ3epHSrG60yxKROKdgiEElpc4L/1nDo28vp3qVKjx4VU9G9m2npnciclooGGLM8s0FjJmWwRfrdzOoWwt+d1UPWjdU0zsROX3KfaHazH5qZsvNLNvMHgkbH29mucG6IWHjfcwsM1j3pAVd3cysppm9FowvNLOU8tZWmRwqLuWP767gij99xPqd+3li5Nk8NypNoSAip125zhjM7JvAMKCXuxeaWYtgPJXQDGzdCU3t+a6ZdQlmcXsWGA0sAOYAQwnN4nYjsMvdO5nZSOBh4Lvlqa+y+Hz9bsZOzWD5lgKGnd2Ge69Ipama3olIlJT3UtJtwER3LwRw963B+DDg1WB8TTBdZ79gXugG7j4fwMwmA8MJBcMw4GZIGFEAAAlSSURBVL5g/6nAU2Zm8Tzv84FDJTz2znKe/3gNLerX4vlRaQw6s2W0yxKRBFfeYOgCnG9mvwcOAr9y98VAW0JnBIflBWNFwfLR4wQf1wO4e7GZ5QNNge1Hf1EzG03orIPk5ORyHkJ0fLJqO+OmZbJu535+0D+ZsZd2o0EtNb0Tkeg7YTCY2btAWb2bJwT7NwYGAH2BKWbWASjr8Rk/zjgnWHfkoPskYBKE5nw+Xv2xZs/BIh6as4xXFq0jpWkdXrl5AAM7No12WSIi/3XCYHD3wcdaZ2a3AdODyz2LzKwUaEboTKBd2KZJwMZgPKmMccL2yTOzakBDYOfJH0rsezdnCxNez2RbQSGjL+jAnYO7ULuG2lmISGwp71NJrwPfAjCzLkANQpd+ZgEjgyeN2gOdgUXuvgkoMLMBwdNI1wEzg881CxgVLF8NvBcv9xd27C3kp698xk2T02lcpwav334ud112pkJBRGJSee8x/BX4q5llAYeAUcEP82wzmwLkAMXA7cETSRC6Yf0iUJvQTee5wfjzwN+CG9U7CT3VVKm5O7O+2Mh9s7LZW1jMLy7uwq0XdqRGNbWzEJHYZZX9l/K0tDRPT0+PdhlfsSn/AHfPyGLesq18I7kRj4zoReeW9aNdlogIAGa2xN3Tylqndz5HWGmp88ridTw0Zxklpc7dl5/JDee2p6raWYhIJaFgiKA12/cxbloGC9fs5NxOTXnoql4kN60T7bJERE6JgiECiktKef7jNTz2zgpqVKvCIyN6cU1aEkG3DxGRSkXBUE5LN+1h7LQMMvLyuTi1Jb8b3oOWDWpFuywRka9NwfA1FRaX8PR7uTzzwSoa1anOU9//Bpf3bK2zBBGp9BQMX8On63YxdmoGK7fu5Tu923LP5ak0rlsj2mWJiESEguEU7D9UzKNvreCFT9bQukEtXrihL9/s2iLaZYmIRJSC4SR9vHI746ZnkLfrANcNPIMxQ7tRr6b++kQk/ugn2wnkHyjiwTeW8lr6eto3q8uUWwbSr32TaJclIlJhFAzH8Vb2Zu55PYsd+w5x64Ud+fngztSqrv5GIhLfFAxl2FZQyH2zsnkjcxOprRvw1+v70qNtw2iXJSJyWigYwrg7Mz7bwG9n57C/sIRfXdKFWy7sSPWqanonIolDwRDYsPsAE2Zk8sHybfRObsQjV/eiUws1vRORxJPwwVBa6ry88Esmzl2GA/d9O5UfDkxR0zsRSVgJHQyrtu1l3LQMFq/dxfmdm/HgVT1p10RN70QksZXr4rmZnW1mC8zsczNLN7N+YevGm1mumS03syFh433MLDNY92QwkxvBbG+vBeMLzSylPLWdyJTF67n0iY9YvrmAP1zdi8k/6qdQEBGh/FN7PgLc7+5nA/cGrzGzVEIzsHUHhgLPmNnh5zyfBUYTmu6zc7Ae4EZgl7t3Ah4HHi5nbcfVvnldBnVrwbu/vJBr0tqpx5GISKC8l5IcaBAsNwQ2BsvDgFfdvRBYE0zX2c/M1gIN3H0+gJlNBoYTmt5zGHBfsP9U4Ckzs4qa97lvShP6puiNaiIiRytvMPwceMvMHiV09nFOMN4WWBC2XV4wVhQsHz1+eJ/1AO5ebGb5QFNg+9Ff1MxGEzrrIDk5uZyHICIi4U4YDGb2LtCqjFUTgEHAne4+zcz+B3geGAyUdV3GjzPOCdYdOeg+CZgEoTmfj3sAIiJySk4YDO4++FjrgktBPwte/hN4LljOA9qFbZpE6DJTXrB89Hj4PnlmVo3QpamdJz4EERGJpPLefN4IXBgsfwtYGSzPAkYGTxq1J3STeZG7bwIKzGxA8DTSdcDMsH1GBctXA+9V1P0FERE5tvLeY7gZeCL4Df8gwXV/d882sylADlAM3O7uJcE+twEvArUJ3XSeG4w/D/wtuFG9k9BTTSIicppZZf+lPC0tzdPT06NdhohIpWJmS9w9rax16g4nIiJHUDCIiMgRKv2lJDPbBnx5Crs0o4z3RiQAHXfiSdRj13GfnDPcvXlZKyp9MJwqM0s/1nW1eKbjTjyJeuw67vLTpSQRETmCgkFERI6QiMEwKdoFRImOO/Ek6rHruMsp4e4xiIjI8SXiGYOIiByHgkFERI6QUMFgZkODqUZzzWxctOupKGbWzszeN7OlZpZtZj8LxpuY2TtmtjL42DjatUaamVU1s8/MbHbwOu6PGcDMGpnZVDNbFvy7D0yEYzezO4Pv8Swze8XMasXjcZvZX81sq5llhY0d8ziPNbXyyUqYYAimFn0auBRIBb4XTEEaj4qBX7r7mcAA4PbgWMcB89y9MzAveB1vfgYsDXudCMcM8ATwprt3A84i9HcQ18duZm2BO4A0d+8BVCXUfDMej/tF/m8a5MPKPM4TTK18UhImGIB+QK67r3b3Q8CrhKYTjTvuvsndPw2WCwj9kGhL6HhfCjZ7idC0qnHDzJKAy/m/eUEgzo8ZwMwaABcQ6lCMux9y990kwLET6hBdO+jwXIfQVABxd9zu/iFfnZ/mWMf536mV3X0NkEvo599JS6Rg+O/UoYHwaUXjlpmlAN8AFgItgzkxCD62iF5lFeKPwBigNGws3o8ZoAOwDXghuIz2nJnVJc6P3d03AI8C64BNQL67v02cH3eYYx1nuX/WJVIwnPTUofHCzOoB04Cfu/ueaNdTkczsCmCruy+Jdi1RUA3oDTzr7t8A9hEfl0+OK7imPgxoD7QB6prZtdGtKiaU+2ddIgXDsaYbjUtmVp1QKLzs7tOD4S1m1jpY3xrYGq36KsC5wJVmtpbQZcJvmdnfie9jPiwPyHP3hcHrqYSCIt6PfTCwxt23uXsRMB04h/g/7sOOdZzl/lmXSMGwGOhsZu3NrAahmzOzolxThQimTX0eWOruj4WtCp8+dRT/N61qpefu4909yd1TCP3bvufu1xLHx3yYu28G1ptZ12BoEKHZE+P92NcBA8ysTvA9P4jQ/bR4P+7DjnWcZU6tfEqf2d0T5g9wGbACWAVMiHY9FXic5xE6dcwAPg/+XAY0JfT0wsrgY5No11pBx38RMDtYTpRjPhtID/7NXwcaJ8KxA/cDy4As4G9AzXg8buAVQvdRigidEdx4vOMEJgQ/55YDl57q11NLDBEROUIiXUoSEZGToGAQEZEjKBhEROQICgYRETmCgkFERI6gYBARkSMoGERE5Aj/HxJMgkUKElIAAAAAAElFTkSuQmCC\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/DA0101EN_edx_link_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",
"language": "python",
"name": "conda-env-python-py"
},
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment