Created
May 17, 2021 14:27
-
-
Save IreneJeong/50a8c7e448f71d3dee14400ed56df27a to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<center>\n", | |
" <img src=\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Module%204/images/IDSNlogo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n", | |
"</center>\n", | |
"\n", | |
"# Model Development\n", | |
"\n", | |
"Estimated time needed: **30** minutes\n", | |
"\n", | |
"## Objectives\n", | |
"\n", | |
"After completing this lab you will be able to:\n", | |
"\n", | |
"- Develop prediction models\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Some questions we want to ask in this module\n", | |
"\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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>Setup</h4>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Import libraries\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": {}, | |
"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:\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"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>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": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# path of data \n", | |
"path = 'https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Data%20files/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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>Linear Regression</h4>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<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" | |
] | |
}, | |
{ | |
"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", | |
"$$\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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>Lets load the modules for linear regression</h4>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.linear_model import LinearRegression" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>Create the linear regression object</h4>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
" normalize=False)" | |
] | |
}, | |
"execution_count": 20, | |
"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>\n" | |
] | |
}, | |
{ | |
"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.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"X = df[['highway-mpg']]\n", | |
"Y = df['price']" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Fit the linear model using highway-mpg.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
" normalize=False)" | |
] | |
}, | |
"execution_count": 22, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lm.fit(X,Y)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" We can output a prediction \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([16236.50464347, 16236.50464347, 17058.23802179, 13771.3045085 ,\n", | |
" 20345.17153508])" | |
] | |
}, | |
"execution_count": 23, | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"38423.3058581574" | |
] | |
}, | |
"execution_count": 24, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lm.intercept_" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>What is the value of the Slope (b)?</h4>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([-821.73337832])" | |
] | |
}, | |
"execution_count": 25, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lm.coef_" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>What is the final estimated linear model we get?</h3>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"As we saw above, we should get a final linear model with the structure:\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"$$\n", | |
"Yhat = a + b X\n", | |
"$$\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Plugging in the actual values we get:\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<b>price</b> = 38423.31 - 821.73 x <b>highway-mpg</b>\n" | |
] | |
}, | |
{ | |
"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", | |
"\n", | |
"</div>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute \n", | |
"lm1= LinearRegression()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<details><summary>Click here for the solution</summary>\n", | |
"\n", | |
"```python\n", | |
"lm1 = LinearRegression()\n", | |
"lm1\n", | |
"```\n", | |
"\n", | |
"</details>\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", | |
"\n", | |
"</div>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
" normalize=False)" | |
] | |
}, | |
"execution_count": 27, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lm1.fit(df[['engine-size']], df[['price']])\n", | |
"lm1" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<details><summary>Click here for the solution</summary>\n", | |
"\n", | |
"```python\n", | |
"lm1.fit(df[['engine-size']], df[['price']])\n", | |
"lm1\n", | |
"```\n", | |
"\n", | |
"</details>\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", | |
"\n", | |
"</div>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>Slope</h4>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([-821.73337832])" | |
] | |
}, | |
"execution_count": 28, | |
"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": [ | |
"<h4>Intercept</h4>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"38423.3058581574" | |
] | |
}, | |
"execution_count": 29, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute \n", | |
"lm.intercept_" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<details><summary>Click here for the solution</summary>\n", | |
"\n", | |
"```python\n", | |
"# Slope \n", | |
"lm1.coef_\n", | |
"\n", | |
"# Intercept\n", | |
"lm1.intercept_\n", | |
"```\n", | |
"\n", | |
"</details>\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", | |
"\n", | |
"</div>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute \n", | |
"# Yhat=-7963.34 + 166.86*X\n", | |
"\n", | |
"# Price=-7963.34 + 166.86*engine-size" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<details><summary>Click here for the solution</summary>\n", | |
"\n", | |
"```python\n", | |
"# using X and Y \n", | |
"Yhat=-7963.34 + 166.86*X\n", | |
"\n", | |
"Price=-7963.34 + 166.86*engine-size\n", | |
"\n", | |
"```\n", | |
"\n", | |
"</details>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>Multiple Linear Regression</h4>\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"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", | |
"$$\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", | |
"$$\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The equation is given by\n" | |
] | |
}, | |
{ | |
"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", | |
"$$\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.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"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.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
" normalize=False)" | |
] | |
}, | |
"execution_count": 32, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lm.fit(Z, df['price'])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"What is the value of the intercept(a)?\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 33, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"-15806.624626329209" | |
] | |
}, | |
"execution_count": 33, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lm.intercept_" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"What are the values of the coefficients (b1, b2, b3, b4)?\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([53.49574423, 4.70770099, 81.53026382, 36.05748882])" | |
] | |
}, | |
"execution_count": 34, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lm.coef_" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" What is the final estimated linear model that we get?\n" | |
] | |
}, | |
{ | |
"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?\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
" normalize=False)" | |
] | |
}, | |
"execution_count": 35, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute \n", | |
"lm2 =LinearRegression()\n", | |
"Z1 = df[['normalized-losses', 'highway-mpg']]\n", | |
"lm2.fit(Z1, df['price'])\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<details><summary>Click here for the solution</summary>\n", | |
"\n", | |
"```python\n", | |
"lm2 = LinearRegression()\n", | |
"lm2.fit(df[['normalized-losses' , 'highway-mpg']],df['price'])\n", | |
"\n", | |
"\n", | |
"```\n", | |
"\n", | |
"</details>\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>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 1.49789586, -820.45434016])" | |
] | |
}, | |
"execution_count": 36, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute \n", | |
"lm2.coef_" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<details><summary>Click here for the solution</summary>\n", | |
"\n", | |
"```python\n", | |
"lm2.coef_\n", | |
"\n", | |
"```\n", | |
"\n", | |
"</details>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>2) Model Evaluation using Visualization</h3>\n" | |
] | |
}, | |
{ | |
"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.\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"import the visualization package: seaborn\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"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>\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Let's visualize **highway-mpg** as potential predictor variable of price:\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(0.0, 48256.659080763464)" | |
] | |
}, | |
"execution_count": 38, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuAAAAJNCAYAAABwXMA5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAACMEUlEQVR4nOzdeXjc1Xn3//eZfUa7ZMs2lrzINph9sx1CiDEkaZImIRtNIE2AQIJDSJNuadI+z0Nb2qdP0vaXlpQsJkBYsgAlm5uUNAnGGALGC7vBYFu2kbxJ1i7NPnN+f8yMkGzLGmk0i0af13X5kv21vjNHYMufOXOf+zbWWkREREREpDAcxV6AiIiIiMhMogAuIiIiIlJACuAiIiIiIgWkAC4iIiIiUkAK4CIiIiIiBaQALiIiIiJSQK5iL6DQZs2aZRctWlTsZYiIiIhImdu+fftRa+3sY6/PuAC+aNEitm3bVuxliIiIiEiZM8bsP9F1laCIiIiIiBSQAriIiIiISAEpgIuIiIiIFJACuIiIiIhIASmAi4iIiIgUkAK4iIiIiEgBKYCLiIiIiBSQAriIiIiISAEpgIuIiIiIFJACuIiIiIhIASmAi4iIiIgUkAK4iIiIiEgBKYCLiIiIiBSQAriIiIiISAEpgIuIiIiIFJACuIiIiIhIASmAi4iIiIgUkAK4iIiIiEgBKYCLiIiIiBSQAriIiIiISAEpgIuIiIiIFJACuIiIiIhIASmAi4iIiIgUkAK4iIiIiEgBKYCLiIiIiBSQAriIiIiISAEpgIuIiIiIFJCr2AuYCTbu7GDdplbaeoI01wVYu7qFNcsbi70sERERESkC7YDn2cadHdyyfgcdA2Fq/W46BsLcsn4HG3d2FHtpIiIiIlIECuB5tm5TK26nIeBxYUzqo9tpWLeptdhLExEREZEiUADPs7aeIH63c9Q1v9tJe0+wSCsSERERkWJSAM+z5roAoVhi1LVQLEFTXaBIKxIRERGRYlIAz7O1q1uIJSzBaBxrUx9jCcva1S3FXpqIiIiIFIECeJ6tWd7IrVecSWOVj75QjMYqH7decaa6oIiIiIjMUGpDWABrljcqcIuIiIgIoB1wEREREZGCUgAXERERESkgBXARERERkQJSABcRERERKSAFcBERERGRAlIAFxEREREpIAVwEREREZECUgAXERERESkgBXARERERkQJSABcRERERKSAFcBERERGRAlIAFxEREREpIAVwEREREZECUgAXERERESkgBXARERERkQJSABcRERERKSAFcBERERGRAlIAFxEREREpIAVwEREREZECUgAXERERESkgBXARERERkQJSABcRERERKSAFcBERERGRAlIAFxEREREpIAVwEREREZECUgAXERERESkgBXARERERkQJSABcRERERKSAFcBERERGRAlIAFxEREREpIAVwEREREZECUgAXERERESkgBXARERERkQJSABcRERERKSAFcBERERGRAlIAFxEREREpIAVwEREREZECUgAXERERESkgV7EXIJJvG3d2sG5TK209QZrrAqxd3cKa5Y3FXpaIiIjMUNoBl7K2cWcHt6zfQcdAmFq/m46BMLes38HGnR3FXpqIiIjMUArgUtbWbWrF7TQEPC6MSX10Ow3rNrUWe2kiIiIyQymAS1lr6wnidztHXfO7nbT3BIu0IhEREZnpVANeAKpBLp7mugAdA2ECnjf/qIdiCZrqAkVclYiIiMxk2gHPM9UgF9fa1S3EEpZgNI61qY+xhGXt6pZiL01ERERmKAXwPFMNcnGtWd7IrVecSWOVj75QjMYqH7decabegRAREZGiUQlKnrX1BKn1u0ddUw1yYa1Z3qjALSIiIiVDO+B51lwXIBRLjLqmGmQRERGRmUsBPM9UgywiIiIiIymA55lqkEVERERkJNWAF4BqkEVEREQkQzvgIiIiIiIFpAAuIiIiIlJAeQ/gxhinMeY5Y8wv07+uN8b81hizK/2xbsTn/rUxZrcx5jVjzLtHXL/QGPNS+ve+aYwx6eteY8yD6evPGGMW5fvrERERERHJRSF2wL8EvDri118FHrXWLgMeTf8aY8wZwFXAmcB7gG8bY5zpe74D3AgsS/94T/r6DUCPtXYp8G/A1/P7pYiIiIiI5CavAdwY0wS8D7hzxOUPAvemf34v8KER1x+w1kastXuB3cAqY8w8oNpa+7S11gL3HXNP5rEeBt6R2R0XERERESlF+d4B/3fgr4DkiGtzrLWHANIfM+1B5gNtIz6vPX1tfvrnx14fdY+1Ng70AQ1T+hWIiIiIiEyhvAVwY8z7gQ5r7fZsbznBNXuS6ye759i13GiM2WaM2dbZ2ZnlckREREREpl4+d8DfBlxhjNkHPABcboz5AXAkXVZC+mNH+vPbgeYR9zcBB9PXm05wfdQ9xhgXUAN0H7sQa+0d1toV1toVs2fPnpqvTkRERERkEvIWwK21f22tbbLWLiJ1uHKDtfaTwHrg2vSnXQv8Iv3z9cBV6c4mi0kdttySLlMZMMZclK7vvuaYezKPdWX6OY7bARcRERERKRXFmIT5NeAhY8wNwBvAHwFYa3cYYx4CXgHiwM3W2kT6npuAewA/8Ej6B8BdwP3GmN2kdr6vKtQXISIiIiIyGWambRivWLHCbtu2rdjLEBEREZEyZ4zZbq1dcex1TcIUERERESkgBXARERERkQJSABcRERERKSAFcBERERGRAlIAFxEREREpIAVwEREREZECUgAXERERESkgBXARERERkQJSABcRERERKSAFcBERERGRAlIAFxEREREpIAVwEREREZECUgAXERERESkgBXARERERkQJSABcRERERKSAFcBERERGRAlIAFxEREREpIAVwEREREZECUgAXERERESkgBXARERERkQJSABcRERERKSAFcBERERGRAlIAFxEREREpIAVwEREREZECUgAXERERESkgBXARERERkQJyFXsBInJyG3d2sG5TK209QZrrAqxd3cKa5Y3FXpaIiIhMkgK45J0C5ORt3NnBLet34HYaav1uOgbC3LJ+B7eC/huKiIhMUypBkbzKBMiOgfCoALlxZ0exlzYtrNvUittpCHhcGJP66HYa1m1qLfbSREREZJIUwCWvFCBz09YTxO92jrrmdztp7wkWaUUiIiKSKwVwySsFyNw01wUIxRKjroViCZrqAkVakYiIiORKAVzySgEyN2tXtxBLWILRONamPsYSlrWrW4q9NBEREZkkBXDJKwXI3KxZ3sitV5xJY5WPvlCMxioft15xpg5gioiITGPqgiJ5tWZ5I7eSqgVv7wnSpC4oE7ZmeaP+e4mIiJQRBXDJOwVIERERkTepBEVEREREpIAUwEVERERECkglKNOAJkmKiIiIlA/tgJc4TZIUERERKS8K4CVOkyRFREREyosCeInTJEkRERGR8qIAXuI0SVJERESkvCiAl7hSmCS5cWcHV9+xmUu+voGr79is+nMRERGRHCiAl7hijyLXIVARERGRqaU2hNNAMSdJjjwEChDwuAhG46zb1KpWiCIiIiKToB1wOSkdAhURERGZWgrgclI6BCoiIiIytRTA5aRK4RCoiIiISDlRDfgMkMso+zXLG7mVVC14e0+QpgneLyIiIiKjKYCXuUwXE7fTjOpicitMKIQrcIuIiIhMDZWglDmNshcREREpLQrgZU5dTERERERKiwJ4mVMXExEREZHSogBe5tTFRERERKS0KICXuWKPshcRERGR0dQFZQZQFxMRERGR0qEdcBERERGRAlIAFxEREREpIJWgzAC5TMIUERERkamlAF7mpmISphSXXkCJiIiUF5WglDlNwpzeMi+gOgbCo15AbdzZUeyliYiIyCQpgJc5TcKc3vQCSkREpPwogJc5TcKc3vQCSkREpPwogJc5TcKc3vQCSkREpPwogJc5TcKc3vQCSkREpPyoC8oMoEmY09ea5Y3cSqoWvL0nSJO6oIiIiEx7CuAiJU4voERERMqLSlBERERERApIAVxEREREpIAUwEVERERECkgBXERERESkgBTARUREREQKSAFcRERERKSAFMBFRERERApIAVxEREREpIAUwEVERERECkiTMEVK3MadHazb1EpbT5BmjaIXERGZ9rQDLlLCNu7s4Jb1O+gYCFPrd9MxEOaW9TvYuLOj2EsTERGRSVIAFylh6za14nYaAh4XxqQ+up2GdZtai700ERERmSQFcJES1tYTxO92jrrmdztp7wkWaUUiIiKSK9WAy7hUg1w8zXUBOgbCBDxv/lUNxRI01QWKuCoRERHJhXbA5aRUg1xca1e3EEtYgtE41qY+xhKWtatbir00ERERmSQFcDkp1SAX15rljdx6xZk0VvnoC8VorPJx6xVn6h0IERGRaUwlKHJSbT1Bav3uUddUg1xYa5Y3KnCLiIiUEe2Ay0k11wUIxRKjrqkGWURERGTyFMDlpFSDLCIiIjK1FMDlpFSDLCIiIjK1VAMu41INcnGpDaSIiEh50Q64SAlTG0gREZHyowAuUsLUBlJERKT8KICLlDCNohcRESk/CuAiJUxtIEVERMqPArhICVMbSBERkfKjAC5SwtQGUkREpPyoDaFIiVMbSBERkfKiHXARERERkQLSDriUPQ2yERERkVKiHXApaxpkIyIiIqVGAVzKmgbZiIiISKlRAJeypkE2IiIiUmoUwKWsaZCNiIiIlBoFcClrGmQjIiIipUYBXMqaBtmIiIhIqVEbQil7GmQjIiIipSRvO+DGGJ8xZosx5gVjzA5j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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>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(0.0, 47414.1)" | |
] | |
}, | |
"execution_count": 39, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuAAAAJNCAYAAABwXMA5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABcCUlEQVR4nO3dfXRj933f+c8XFwCfOcN5oEeeoSwxljO2UsmWx4rd6Eynttsom1R2e5RE6kO8WbueJs7abdZpnO5Gu52me6wmW9fuNt5RlKzlpI3sTptkmo2d2lamE6eSZUm25I5FWypHNmf0wNEMh08gCeDe3/6BCxIAwSFIAhe4F+/XOTwgfgTIi8GA/OB3v7/vz5xzAgAAABCNVLsPAAAAAOgmBHAAAAAgQgRwAAAAIEIEcAAAACBCBHAAAAAgQgRwAAAAIELpdh9A1Pbt2+duuOGGdh8GAAAAEu7JJ5981Tm3v3a86wL4DTfcoCeeeKLdhwEAAICEM7Pv1RunBAUAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIgQARwAAACIEAEcAAAAiBABHAAAAIhQut0HAGzXmYlpnTw7qamZnMZG+nX86LiOHR5t92EBAABcEzPgiKUzE9O67/Q5Tc8va3dfRtPzy7rv9DmdmZhu96EBAABcEwEcsXTy7KQynqk/m5ZZ6TLjmU6enWz3oQEAAFwTARyxNDWTU1/Gqxrry3i6MJNr0xEBAAA0hgCOWBob6ddSwa8aWyr4OjTS36YjAgAAaAwBHLF0/Oi4Cr5TLl+Uc6XLgu90/Oh4uw8NAADgmgjgiKVjh0d14q6bNTrUq9mlgkaHenXirpvpggIAADoebQgRW8cOjxK4AQBA7DADDgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARIgADgAAAESIAA4AAABEiAAOAAAARCjd7gMAAMTPmYlpnTw7qamZnMZG+nX86LiOHR5t92EBQCwwAw4A2JIzE9O67/Q5Tc8va3dfRtPzy7rv9DmdmZhu96EBQCwQwAEAW3Ly7KQynqk/m5ZZ6TLjmU6enWz3oQFALBDAAQBbMjWTU1/Gqxrry3i6MJNr0xEBQLxQA47YogYVaI+xkX5Nzy+rP7v2J2Sp4OvQSH8bjwoA4oMZcMQSNahA+xw/Oq6C75TLF+Vc6bLgOx0/Ot7uQwOAWCCAI5aoQQXa59jhUZ2462aNDvVqdqmg0aFenbjrZs5AAUCDKEFBLE3N5LS7L1M1Rg0qEJ1jh0cJ3ACwTcyAI5bGRvq1VPCrxqhBBQAAcUAARyxRgwoAAOKKAI5YogYVAADEFTXgiC1qUAEAQBwxAw4AAABEiAAOAAAARKjlAdzMPDP7hpn9cXh9j5l9ycyeCy9HKm77K2b2vJl9x8x+tGL8rWb2rfBrnzIzC8d7zOxz4fjXzOyGVj8eAAAAYCeimAH/iKRnK65/TNJXnHM3SfpKeF1m9iZJ90i6WdKdkn7TzLzwPp+W9EFJN4Ufd4bj75c045x7vaRPSLq/tQ8FAAAA2JmWBnAzOyTpxyU9WDH8HkkPhZ8/JOm9FeMPO+dWnHPnJT0v6XYzu07SsHPuUeeck/TZmvuUv9cpSe8qz44DAAAAnajVM+D/StI/lhRUjL3GOfeSJIWX5TYWByVNVdzuQjh2MPy8drzqPs65oqRZSXub+ggAAACAJmpZADezn5A07Zx7stG71Blz1xi/1n1qj+WDZvaEmT1x6dKlBg8HAAAAaL5WzoD/iKS7zOwFSQ9LeqeZ/Z6kV8KyEoWX0+HtL0gaq7j/IUkvhuOH6oxX3cfM0pJ2SbpSeyDOuQecc0ecc0f279/fnEcHAAAAbEPLArhz7lecc4ecczeotLjyEefc35V0WtL7wpu9T9IfhZ+flnRP2NnkRpUWWz4elqnMm9nbw/run6m5T/l73R3+jHUz4AAAAECnaMdOmB+X9Hkze7+k70v6SUlyzp0zs89L+rakoqQPOef88D4/J+kzkvokfSH8kKTflvS7Zva8SjPf90T1IAAAAIDtsG6bMD5y5Ih74okn2n0YAAAASDgze9I5d6R2nJ0wAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIpdt9AAAAoLOdmZjWybOTmprJaWykX8ePjuvY4dF2HxYQW8yAAwCADZ2ZmNZ9p89pen5Zu/symp5f1n2nz+nMxHS7Dw2ILWbAAQBbxoxo9zh5dlIZz9SfLUWG/mxauXxRJ89O8pwD28QMOABgS5gR7S5TMzn1Zbyqsb6MpwszuTYdERB/BHAAwJZUzoialS4znunk2cl2HxpaYGykX0sFv2psqeDr0Eh/m44IiD8COABgS5gR7S7Hj46r4Dvl8kU5V7os+E7Hj463+9CA2CKAAwC2hBnR7nLs8KhO3HWzRod6NbtU0OhQr07cdTP138AOsAgTALAlx4+O677T55TLF9WX8bRU8JkRTbhjh0cJ3EATMQMOANgSZkQBYGeYAQcAbBkzogCwfcyAAwAAABEigAMAAAARogQFQGyw+yIAIAmYAQcQC+y+CABICgI4gFhg90UAQFIQwAHEArsvAgCSggAOIBbYfREAkBQEcCCGzkxM694HHtMd9z+iex94rCvqoI8fHVfBd8rli3KudMnuiwCAOCKAAzHTrYsR2X0RAJAUtCEEYqZyMaIk9WfTyuWLOnl2MvFhlN0XAQBJwAw4EDMsRgQAIN4I4EDMsBgRAIB4I4ADMcNiRAAA4o0ADsTMscOjuvu2g7o0v6JnX57XpfkV3X3bQWqjAQCICQI4EDNnJqZ16qmL2j/UozceGNL+oR6deupi4rugAACQFARwIGbYkh0AgHgjgAMxQxcUAADijQAOxAxdUAAAiDcCOBAzdEEBACDeCOBAzLAlOwAA8cZW9EAMsSU7AADxxQw4AAAAECECOAAAABAhSlCAGDozMa2TZyc1NZPT2Ei/jh8dpyQFAICYYAYciJkzE9O67/Q5Tc8va3dfRtPzy7rv9Dl2wgQAICaYAQdipnInTEnqz6aVyxd18uwks+AAWoKzbkBzMQMOxAw7YQKIEmfdgOYjgAMxw06YAKJUedbNrHSZ8Uwnz062+9CA2CKAAzHDTpgAosRZN6D5COBAzLATJoAocdYNaD4WYQIxxE6YAKJy/Oi47jt9Trl8UX0ZT0sFn7NuwA4xAw4AADbEWTeg+ZgBBwAA18RZN6C5mAEHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAixE6YAADgms5MTOvk2UlNzeQ0NtKv40fH2RkT2AFmwAEAwIbOTEzrvtPnND2/rN19GU3PL+u+0+d0ZmK63YcGxBYBHAAAbOjk2UllPFN/Ni2z0mXGM508O9nuQwNiixIUIIY4HQwgKlMzOe3uy1SN9WU8XZjJtemIgPhjBhyIGU4HA4jS2Ei/lgp+1dhSwdehkf42HREQfwRwIGY4HQwgSsePjqvgO+XyRTlXuiz4TsePjrf70IDYIoADMTM1k1Nfxqsa43QwgFY5dnhUJ+66WaNDvZpdKmh0qFcn7rqZsjdgB6gBB2JmbKRf0/PL6s+uvXw5HQyglY4dHiVwA03EDDgQM5wOBgAg3gjgQMxwOhgAgHijBAWIIU4HAwAQXwRwNIS+0wAAAM1BCQo2Rd9pAACA5iGAY1P0nQYAAGgeAjg2Rd9pAACA5iGAY1NsQwwAANA8BHBsir7TAAAAzUMAx6boOw0AANA8tCFEQ+g7DQAA0BzMgAMAAAARYgYcALBlbM4FANvHDDgAYEvYnAsAdoYADgDYEjbnAoCdIYADALaEzbkAYGcI4ACALWFzLgDYGQI4AGBL2JwLAHaGAA4A2BI25wKAnaENIQBgy9icCwC2r2Uz4GbWa2aPm9nTZnbOzP5pOL7HzL5kZs+FlyMV9/kVM3vezL5jZj9aMf5WM/tW+LVPmZmF4z1m9rlw/GtmdkOrHg8AAADQDK0sQVmR9E7n3K2S3izpTjN7u6SPSfqKc+4mSV8Jr8vM3iTpHkk3S7pT0m+aWXmZ/aclfVDSTeHHneH4+yXNOOdeL+kTku5v4eMBAAAAdqxlAdyVLIRXM+GHk/QeSQ+F4w9Jem/4+XskPeycW3HOnZf0vKTbzew6ScPOuUedc07SZ2vuU/5epyS9qzw7DgAAAHSili7CNDPPzL4paVrSl5xzX5P0GufcS5IUXpaLCA9Kmqq4+4Vw7GD4ee141X2cc0VJs5L2tuTBAAAAAE3Q0gDunPOdc2+WdEil2ewfusbN681cu2uMX+s+1d/Y7INm9oSZPXHp0qVNjhoAAABonUjaEDrnrko6o1Lt9ithWYnCy+nwZhckjVXc7ZCkF8PxQ3XGq+5jZmlJuyRdqfPzH3DOHXHOHdm/f39zHhQAAACwDa3sgrLfzHaHn/dJerekCUmnJb0vvNn7JP1R+PlpSfeEnU1uVGmx5eNhmcq8mb09rO/+mZr7lL/X3ZIeCevEAQAAgI7Uyj7g10l6KOxkkpL0eefcH5vZo5I+b2bvl/R9ST8pSc65c2b2eUnfllSU9CHnXHmv45+T9BlJfZK+EH5I0m9L+l0ze16lme97Wvh4AAAAgB2zbpswPnLkiHviiSfafRgAAABIODN70jl3pHacregBAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIpdt9AIiHMxPTOnl2UlMzOY2N9Ov40XEdOzza7sMCAACIHWbAsakzE9P66Kmn9Y2pGb0yt6xvTM3oo6ee1pmJ6XYfGgAAQOwQwLGpj3/hWV3NFeQCyTOTC6SruYI+/oVn231oAAAAsUMJCjZ1/nJOKZNSKZMkmUkucDp/OdfmIwMAAIgfZsABAACACBHAsanxfQMKnBQ4JyenwDkFrjQOAACArSGAY1O/fOdhjfRnZJKKfiCTNNKf0S/febjdhwYAABA7BHBs6tjhUf363bfqLdeP6LpdfXrL9SP69btvpQ0hAADANrAIEw05dniUwA0AANAEzIADAAAAESKAAwAAABEigAMAAAARIoADAAAAESKAAwAAABEigAMAAAARIoADAAAAESKAAwAAABEigAMAAAARIoADAAAAESKAAwAAABEigAMAAAARIoADAAAAESKAAwAAABEigAMAAAARIoADAAAAESKAAwAAABEigAMAAAARIoADAAAAESKAAwAAABEigAMAAAARIoADAAAAEUq3+wAQD2cmpnXy7KSmZnIaG+nX8aPjOnZ4tN2HBQAAEDvMgGNTZyamdd/pc5qeX9buvoym55d13+lzOjMx3e5DAwAAiB0CODZ18uykMp6pP5uWWeky45lOnp1s96EBAADEDgEcm5qayakv41WN9WU8XZjJtemIAAAA4osAjk2NjfRrqeBXjS0VfB0a6W/TEQEAAMQXARybOn50XAXfKZcvyrnSZcF3On50vN2HBgAAEDsEcGzq2OFRnbjrZo0O9Wp2qaDRoV6duOtmuqAAAABsA20I0ZBjh0cJ3AAAAE3ADDgAAAAQIQI4AAAAECECOAAAABAhasATgG3iAQAA4oMZ8Jhjm3gAAIB4aTiAm9nrzOzd4ed9ZjbUusNCo9gmHgAAIF4aCuBm9vclnZJ0Mhw6JOkPW3RM2AK2iQcAAIiXRmfAPyTpRyTNSZJz7jlJFBl3ALaJBwAAiJdGA/iKcy5fvmJmaUmuNYeErWCbeAAAgHhpNID/FzP7J5L6zOyvSfr3kv5T6w4LjWKbeAAAgHgx5zafyDazlKT3S/rrkkzSn0p60DVy5w5z5MgR98QTT7T7MAAAAJBwZvakc+5I7XijfcD7JP2Oc+63wm/mhWOs9AMAtAR7HABIqkZLUL6iUuAu65P05eYfDgAA7HEAINkaDeC9zrmF8pXwc9psAABagj0OACRZowF80cxuK18xs7dKWmrNIQEAuh17HABIskZrwP+hpH9vZi+G16+T9NMtOSIAQNcbG+nX9Pyy+rNrf6bY4wBAUjQ0A+6c+7qkw5J+TtLPS3qjc+7JVh4YAKB7sccBgCS75gy4mb3TOfeImf2tmi/dZGZyzv3HFh4bAKBLHTs8qhMq1YJfmMnpEF1QACTIZiUof0XSI5L+Rp2vOUkEcABASxw7PErgBpBI1wzgzrn/PdyE5wvOuc9HdEwAAABAYm1aA+6cCyT9QgTHAgAAACReo20Iv2RmHzWzMTPbU/5o6ZEBAAAACdRoG8L/SaWa75+vGWc5OgAAALAFjQbwN6kUvu9QKYj/uaT/p1UHBQAAACRVowH8IUlzkj4VXr83HPupVhwUAAAAkFSNBvAfdM7dWnH9z8zs6VYcEACg852ZmNbJs5OamslpjB7dALAljS7C/IaZvb18xcx+WNJftOaQAACd7MzEtO47fU7T88va3ZfR9Pyy7jt9Tmcmptt9aAAQC43OgP+wpJ8xs++H16+X9KyZfUuSc87d0pKjA9AUzFaimU6enVTGM/VnS39C+rNp5fJFnTw7yf8rAGhAowH8zpYeBYCWKc9WZjyrmq08IRGWsC1TMznt7stUjfVlPF2YybXpiAAgXhoK4M6577X6QAC0BrOVaLaxkX5Nzy+v/p+SpKWCr0Mj/W08KgCIj0ZrwAHE1NRMTn0Zr2qM2UrsxPGj4yr4Trl8Uc6VLgu+0/GjbA0BAI0ggAMJNzbSr6WCXzXGbCV24tjhUZ2462aNDvVqdqmg0aFenbjrZs6oAECDGq0BBxBTx4+O677T55TLF9WX8bRU8JmtxI4dOzza8sDN4mEAScUMOJBwzFYijmh1CCDJmAEHukAUs5VAM7F4GECSMQMOAOg4LB4GkGQEcABAx2HxMIAkI4ADADoOrQ4BJBkBHADQcY4dHtXdtx3UpfkVPfvyvC7Nr+ju2w5S/w0gEQjgAICOc2ZiWqeeuqj9Qz1644Eh7R/q0amnLtIFBUAiEMABAB2nsguKWeky45lOnp1s96EBwI4RwAEAHYcuKACSjAAOAOg4dEEBkGQE8AQ4MzGtex94THfc/4jufeAxaiQBxB5dUAAkGQE85s5MTOuXTj2tb3x/Ri/PLukb35/RL516mhAOINaOHR7Vibtu1uhQr2aXChod6tWJu26mCwqARGAr+pi7/4sTmskV5KVMaS8l56SZXEH3f3GCP1QAYu3Y4VF+jwFIJAJ4zE2+uqiUSSkzSZKZ5Mxp8tXFNh8ZAAAA6qEEBQAAAIgQATzmbtzbr8BJQeDknFMQOAWuNA4AAIDOQwCPuY/92Bu1uz8jS0m+c7KUtLs/o4/92BvbfWgAAACogwAec8cOj+o37r5Vbxkb0YHhXr1lbES/cfetLFwCAADoUCzCTAA6BQAAAMQHM+AAAABAhAjgAAAAQIQI4AAAAECEWhbAzWzMzP7MzJ41s3Nm9pFwfI+ZfcnMngsvRyru8ytm9ryZfcfMfrRi/K1m9q3wa58yK+06Y2Y9Zva5cPxrZnZDqx4PAAAA0AytnAEvSvpfnHNvlPR2SR8yszdJ+pikrzjnbpL0lfC6wq/dI+lmSXdK+k0z88Lv9WlJH5R0U/hxZzj+fkkzzrnXS/qEpPtb+HgAAACAHWtZAHfOveSceyr8fF7Ss5IOSnqPpIfCmz0k6b3h5++R9LBzbsU5d17S85JuN7PrJA075x51zjlJn625T/l7nZL0rvLsOAAAANCJIqkBD0tD3iLpa5Je45x7SSqFdEnl/nkHJU1V3O1COHYw/Lx2vOo+zrmipFlJe1vyIAAAAIAmaHkfcDMblPQfJP1D59zcNSao633BXWP8WvepPYYPqlTCouuvv36zQwaAljkzMa2TZyc1NZPT2Ei/jh8dp48/AHSZls6Am1lGpfD9b51z/zEcfiUsK1F4OR2OX5A0VnH3Q5JeDMcP1Rmvuo+ZpSXtknSl9jiccw845444547s37+/GQ8NALbszMS07jt9TtPzy9rdl9H0/LLuO31OZyamN78zACAxWtkFxST9tqRnnXP/suJLpyW9L/z8fZL+qGL8nrCzyY0qLbZ8PCxTmTezt4ff82dq7lP+XndLeiSsEweAjnPy7KQynqk/m5ZZ6TLjmU6enWz3oQEAItTKEpQfkfT3JH3LzL4Zjv0TSR+X9Hkze7+k70v6SUlyzp0zs89L+rZKHVQ+5Jzzw/v9nKTPSOqT9IXwQyoF/N81s+dVmvm+p4WPBwB2ZGomp919maqxvoynCzO5Nh0RAKAdWhbAnXNfVf0abUl61wb3+eeS/nmd8Sck/VCd8WWFAR4AOt3YSL+m55fVn1371btU8HVopL+NRwUAiBo7YQJARI4fHVfBd8rli3KudFnwnY4fHW/3oQEAIkQAB4CIHDs8qhN33azRoV7NLhU0OtSrE3fdTBcUAOgyLW9DCABYc+zwaMsDN60OAaCzMQMOAAlCq0MA6HzMgANAhbjPHle2OpSk/mxauXxRJ89OxupxSPF/LgBgI8yAA0AoCbPHUzM59WW8qrE4tjpMwnMBABshgANAKAkb5YyN9Gup4FeNxbHVYRKeCwDYCAEcAEJJmD1OSqvDqZmcin6gyUsLmnh5TpOXFlT0g1g9FwCwEQI4AISSMHuclFaHg1lPF68uq+g7eWYq+k4Xry5rIOttfmcA6HAswgSA0PGj47rv9Dnl8kX1ZTwtFfxYzh5H0eqw1czCjZRNa3squ4pxAIgxAngHYuU/0B7HDo/q7gtX9eBXz2sx72sg6+kDd9zY1Ncfr+/GzK8UdXB3r15dyCvvB8p6KR0Y7tHCSrHdhwYAO0YA7zDllf8Zz6pW/p+Q+CONrtfq8HpmYlqnnrqo/UM9uj6cAT/11EXdcmh3U34Or+/GjY30a3p+WeP7B1fHcvmiRod623hUANAc1IB3GFb+A/VF0Zau1a8/Xt+NS8piUgCohwDeYZLQhQFohSjCa6tff7y+G3fs8Kjuvu2gLs2v6NmX53VpfkV333aw6WcKzkxM694HHtMd9z+iex94jD7jACJBAO8wSejCALRCFOG11a8/Xt+NqywHeuOBIe0f6tGppy42NSCz2Q+AdiGAR2ArMyycdgXqiyK8tvr1x+u7cVGc8aAkCEC7dF0ALwZOs7mClgu+nHMt/3lbnWFJSg9foNmiCK+tfv3x+m5cFGc8KAkC0C5d1wUlCJwuL65IKvWT7c2k1Jv21Jvx1JNOKZVqbo/ZyhkWSerPppXLF3Xy7OSGf3ST0MMXaLZjh0d1QqXX1IWZnA61qIVfq19/vL4bU+6CUv7dKTX/jEcUPwMA6um6AF7JOaelvK+l/Npp7YyXUjadUrZ8mU4p423/RMHUTE67+zJVY8ywIGpJ6T1NeO0ex4+O65dOPa2LM0sqBoHSqZSGetP61R9/U1N/RhI2XgIQP10dwOsp+IEKfqDFirGUmTLplDIpU9pLKe2ZMqmUMl7p+rUww4J2o/c04spJkoW7X1p4vYmiOqsCALUI4A0InNNKwddKna+ZmdIpU6YimKe90vWMZ8ywoO22UwYFtNvJs5Pa1ZfRdbv6Vsda8f+WsyoA2oEAvkPOORV8p4IfrPuamekHRgf1i+++Sb/3te/rpdkljY306x/8lR/gFz4iQxkU4mhqJifPpMlLC6tb0e8bzPL/FkAiEMBbqBzObxnbrX8xtnt13EuZXppdUtZLqSfjrdabA61AGRTiaKgnreemF+SlTF7KVAycLl5d1k2jg5vfGQA6HKmvDfygtPhzdqmg6bllXZjJ6fyri7p4dUmX5lc0u1RqkxgErW+TiOSj9zTiaLVNrKv4qBwHgBhjBrxDuHKdec1GIxkvpZ70WkeWrJfadOEnUImFZp0lKR1pWm0h7+vg7l69upBfLUE5MNijxby/+Z0BoMMRwCPw+OQVPfz1Kb00t6Trhvt0z9vGdPv4nobuW+7KUrkC1EvZulaJWS9V6hQA1MFCs85AR5rGlUunxvevlZzk8kWNDvW28agAoDmYSm2xxyev6JOPPKfLiysa7k3r8uKKPvnIc3p88sq2v2dlCcul+RVdnFnSC5dzlLAAHY6tzxtH6RSAJGMGvMUe/vqUir6vqzlfBT9QxktpsMfTw1+fangWvBHXKmEpz5D3ZChhAdqJjjSNo3SqcZQ1AfFDAG+x711Z1PxSQZYypcKV/DOLBRWDxc3v3AT1NhaihAVojyR1pIki9FE6tTnKmoB4IoC3WL4YSFbaTVOSzCTfXGm8TcolLEtamy03M2W8UjDvSXulhZ9eSqkUoRydI+4zfUnZmIvQ1znYaAuIJ2oRWizjlQJsEDg551brsrNeZwVb50pvChaWi7q8sKIXry7phcuLmrqS0ytzy5pZzGtxpVh3wyEgCmcmpvXRU0/rG1MzemVuWd+YmtFHTz2tMxPT7T60hh07PKoTd92s0aFezS4VNDrUqxN33Ry7oEQte+eYmsmpL+NVjVHWBHQ+ZsBb7Ia9g7ows6jF/FoN+EA2rUMjA+0+tIZQwoJO8fEvPKuruYI8M3lmcoF0NVfQx7/wbOwCrLTa1jqW2KWycySprAnoJsyAt9g9bxtTJu1p32CPbtw3oH2DPcqkPd3ztrF2H9q2bdSF5cJMTtPzy7qaK82W54sBm2agac5fzikInFb8QMvFQCt+oCBwOn85PqGvXLoxPb9cVboRp1l8qbRL5cWryyoGrmqXysEe5nSidvzouOaWCnrulXk9+9KsnntlXnNLhdiVNQHdht+WLXb7+B59RDfp4a9P6eW5JR3YYh/wuCiVsKyvbTczpcMZ88qOLNk07/2wNQU/UG0BVBCOx0VS6nWrdqmsuOQNd3s4SbLS71tZvM+uAN2CAB6B28f3JC5wN8o5p4Lv1oWklJkyFWG8J/ygjAUb2aitfZza3SelDSG7VHaOk2cntasvo+t29a2OxfFNHdBtCOBoi6BO33IzqwrjPWmPmXIkSlLqddmlsnMk5U0d0G1IN+gY5c2E5sLa8gszOb3w6qJeml3S5YUVLYR15ehO3gYtMTca70RJ2d0xKY8jCcZG+rVUswFbHN/UAd2GAI6OFri1BZ/Tc8urofzFq6VQPr9c0ErRp/a0C9x1y4EtjXeiY4dHdfdtB3VpfkXPvjyvS/Mruvu2g7ErFUhKO8Uk4M0QEE+UoCB2Aue0XPC1XNh4I6Gsl1LaM2U83mMmxSfuuU3SUzr9zMvyw+4bd91yIByPhzMT0zr11EXtH+rR9eFGPKeeuqhbDu2ObXjlrW97HTs8qhMq1YJfmMnpUAw3qAK6kXXbzOEtb77N/eGXzrb7MBCRcheWjJdSxjOly5ep0iWLPhGlex94bF0NeLl2+vc/+PY2HtnWVO6EWbmjJ7PgAFDNzJ50zh2pHWcGHIm2UReWskw4U55OlTqyZNLlsM7MOZovKRvYJKWdIgC0CwEcXa2006ckVS9iKrdJzHimHs9b7c6SitGCP3Sewayn56YXFLhS6UbR93VhZkk3jQ5uet9OQucNtMKZiWmdPDupqZmcxiilQcIRwIE61tokSgsqro5n0yn1Zjz1hJfMlEcr7n+gF/O+fCeZSh+S5DvFrn92UtoponNUljVV7hJ7QorVaxxoFOkB2IJ8MVhtkzh1JafvXV7Uy7PLdGSJQBK2cZ+eX1E6JZWXHphJ6VRp/FrOTEzr3gce0x33P6J7H3is7Y+ZzhtotsqyJrPSZcYznTw72e5DA1qCGXBgB/ygFD5qZby1zYR6Muzy2QxJqTtOWXV3Hj+4dm/7TpwZpPMGmo2yJnQbAjjQAqXa8kALK6VwXrnLZ7mEhfKVrUnCH+gb9/br+UuLssDJTHJOCpz0+n0bl2506huPY4dHCdxoGsqa0G1IAEAEKnf5nJ5b1tSVnM6/uqgLMzlNzy/rai4fnsZnp8+NJGHHv4/92Bu1uz8jS0m+c7KUtLs/o4/92Bs3vM/UTE59Ga9qLG5vPLar00pv0DqUNaHbEMCBNnHOKV8MtLBc1JXFvF6eXQvmU1dyq7Xls0sF5fJF5YtBV9eXJ+EP9LHDo/qNu2/VW8ZGdGC4V28ZG9Fv3H3rNWeSk/DGYzuSUPOPxrG7KroNG/EAMVK142fYHjGbTsnrkvaI5S4o3VR3fGZiWr906mnNLxdVDAKlUykN9ab165sE97hLyqZFALobG/EACVCaNQ9nzivaI6ZT4YZCnikTfp7xUkqnSrt/JkW31h07SbLSGzBZd2z/noSafwDYSNcF8POXF/WPPvdN7erLaFdfRsPhZb2P3gydKxAPxSBQMZBUWP81M1M6Zau7fmYqwno6Fa/Z87j3Ad+Ok2cntasvo+t29a2OdcIizFZjUR6AJOu6AJ4vBnr6wmxDt814ti6UD/fWBvd01dd7ahZLAe3mnFPBdxsu8DQzeWbyvPAyZeHMeSm0Z73O2AG0E9vxRaFbZ4KPHx3XfafPKZcvqi/jaangx67mHwA20nUBfHSoR3/v7ddrdqmo2aWCZpcKmlsq6Gp4WQzWTu4WfKdXF/J6dSHf8PfvTac2nFWvF9qH+zK0o0NbOedUdK40g76BjJcKP0r15+U+51GeIerUdnyt1q0zwfQaB5BkXRfAR/qz+tkfubHu10qdFfzVYD67VNDcclGzuXzpsmK8HNxnlwqqyOxaLgZanl/ZdGe7SgNZr25oHw6Deu3XhnszsSobQPyV+5rXKgfz8mLQTAvLWpgJ7r6Z4G6t+QeQfF0XwK/FzDTQk9ZAT1qv3d23+R0kBc5pcaU2nIfX6wT3uaWC5peLVYuoFvO+FvO+XppdbvhYh3rTVSUxlTPrw3Vm3Yd600pRz44mKwfzXM1JonLdebmcxQsXg2bCspbtnPVhJpiZYABICgL4DqXMNNSb0VBvRodGGruPHzgt1JlRX5t1Xz+2uFLdB3h+uaj55aKkpQaPUxrqXQvq11p8Wv7aQNZjESq2Za3uvP7XywE9my51asmkS7XmGW/j2fPjR8f10VNP6+LVJfmBk5cyDfak9as//qYWPpLOwEwwACQLAbwNvJRpV39Gu/ozm984VPADzZVLYuoF91wpuM9V1LZXbt4ROK2Ob+k4V8te0usCOp1jsF3XWhjqVXRsyXoppcN2in7gZJLkSveXM8Xxf1o3dnIBgCQKAqfAOQVOcnJyTqvXA+eUvkY5JgE8JjJeSnsHe7R3sKfh++SLQVWtet3Z9oqSmatLeRX8teIYP3C6spjXlcXGF6HW7Ryz0Ux7GOrpHINKfuDkB/66lor/+pHn1ZvxtGegR+X3eMsFX//mz57X227cU9G9pXMXNXdrJxcA6ASVgTlwpcDsVHE9KAfoMFRX3ja8/1rI3nxHhoGejWM2ATzBsumU9g/1aP9QY6HdOaflMLSXZ9Q3Cu2VM+10jkEUXppb0nBvWi78pSmV3vBNzeT0ylz1+ol0KiXPM2VW69BLM+rl2fV2LWLu1k4uALAVriIAO1WE5Yrw66QNA/NqqN5iYI4SARyrzEx9GU99GU8Hhnsbuk/dzjG1XWSWCrq6WiLTms4xw3VCOp1jkuW64T5dXlxRX8UZk+VCoAPD6xdMlzcm2uh/VMrW+pyv26AoZS0ro+rWTi4AOpdbnQleC7yuoqRi7XZrY1W3DTYYD28vp6oSDVfxM2u/b6eF5FYigGNHdtI55mquJrQvF6vCe2Vob3XnmHqhfZDOMR3lnreN6ZOPPKelgq/eTErLhUDFwOmet41t+XsFzilfdMpv0Pw8XRHG0+GMuZcq1ZynzGQmmYWfS6uBvfJ/i5nWBflu7eQCoL6Nwm95xrfebO9GIbc2OJdvp3Bc1/g6okcAR+QqO8c0Gp1qO8dcXTfTXh3am9U5Zm3nUzrHtNvt43v0Ed2kh78+pZfnlnRguE/3vG1Mt4/vafrPKs+gN4OZKWWSyfS33nJQn/jyd1X0A/VmPC0XfRV96e/88PWaWy6s7kRq4e1TVnH/Lvx/xYJVtEu5lMEPa4Yrw3DgFM7qVi/AqwzBVUGZ8Is6rNv+A9zy5tvcH37pbKQ/8/HJK3r461N6aW5J17UwNHSbzf5dC36g+ZquMZUBvd5s+3JhZ6mrsnNMbbvH6pl3Osd0q/L/262+iTBb6/pS+9/FtDYr76VsdZZ+NdDLZClVzeCXz+6Uw37pcu3n1JvBj1LlgtXKDYhO3HUzIRwbqlw0Vx2cw8ug/tf9oPq23ZaN0BoDPWkd2NX3pHPuSO3XCOAt9vjkFX3ykeeUTlnVafOPvPMmQvgOtOrfdaPOMZUz7tfqHLMdW+kcU/7IplmEitYzM3lmSqVKwd6zUn18uRynHN5lWg3wKSu9AUil1j7fzvqLex94bF25Ti5f1OhQr37/g29v3oOMkXIHh3o1uutmXcu3qfgbv/oWruL5ktZmbctXKr+vWcV9rXos/FZVzGz155ePq/w9y9fXvlZ9u9VrVbe5xn3DK5VBGugk1wrglKC02MNfn1I6ZasLx8ozOQ9/fYoAvgOt+nfdSeeYdaF93Wz72my8v9POMZnUukWmdI5BsznnVHROakI5zmrtvNZm3iut1tSHt3nh8qKGe9MqVvSKz3opff/KohZWiqtlPVYRCitn8tc9lqrHtfECs/Ln9e4nad1ZCJOtu19twKys3V3r5rBxWHRaX/pQ+TsjqThbjG5CAG+xcuu0Sr2ZlF6ea6wOGfV1yr9rKzrHXK1o87g6675c0zmmEGi5sKJX5rbfOWazdo9DdI5BEwWr05eNBcnXDPWu63qzVPC1f7BX03ONL75GPFSe1RzuTevy4oo++chz+og4W4xkIoC32FZap6Fxcf533W7nmPmaLjHlzjGzufy6HVLLu6ZW2mrnGFOpc0y90D7cl9GuOl9rdeeYJMyQ/e5/fUGff/KClgq++jKefuqth/T3/vIN7T6sjtPMrjfofJwtRrchgLcYf0Rao9v+XVO2Vie+lc4x88uV9evFDWbb10L7Yn6tc4yTNLdc1NxyURdmGu8cM9S7NpvezM4xSZgh+93/+oIeeux7SpnkpaSVoq+HHvueJMUuhLf6zVCUXW/Qfp1yVhOICgG8xfgj0hr8u27OS5l292e1uz/b8H0KfqC5imBeb2b9as0uqZWdYwKn1fGtHOdGnWMqP37nL85Lzqkn7UkunjNkn3/yQhi+w3p8kxQE+vyTF2IVwKN+M5T86mfE+awmsB0E8AjxR6S5bh/fE5vgFRcZL6W9gz3aO9jYIlRJWin4FTue1i+HqZ1tr+wc4wdOVxbzurLY6CLUFZnCdnsp0ytzy/pnf/ztWHSOWSr4ql0La1Yaj5MoygWScMYDjeu2s5oAAbzF+COCpOvJeNqf8bbWOaYQVIf05eoOMtWz7cV1nWOcpGIQ7m8s6c++c2nTn1vbOWazdo/DvWmlm9w5pi/jaaXoV7XpcOFsfpxEUS5ATXB34awmug0BvMX4IwJUMzP1ZT31ZT0d2NV455g//+6r+jdnnpeZKZ0qnZ4uBE5vvX5EAz3p6uC+VNB8B3aO+am3HirVfAeBzMq9m0vjcRJFuQA1wd2Hs5roJgTwFuOPCLBzZqajP7hf37u82HAHkcA5LVSUw5Rm2et3jSl/zLe4c8y+4V791Tfs11/898taKQbqy6Ri2QXlnreN6f4/ndArc8vyAycvVers86Fjr2/az6AmuHFJ6A4EdBsCeIvxRwRojscnr+iL335FewayqzWiX/z2K/rBA8N1w0bKTMNh8N1q55i1UF4O6vnV3uy1ZTI76RyTKwT67Ne+rz98+qU6JTHpDUtl+hvsHNNy4Y6KdXe+2SFqghtDmSMQTwTwFuOPCNAcD399SoWir6t5XwU/UMZLaSDrNbWcayedY2brdI2ZzdWvb6/tHHM1LJtpVLqic8xmob182ZtONS20P/z1KQ32pLW/YrFus0vrqAluDGWOQDwRwFuMPyJAc7xweUELK0WZTCkzFX2nq0sF+cFCW49rp51j1n1sENorO8cUA6fLi3ldbrhzjJRNp7Rriz3aN+ocE1VpHTXBm6PMEYgnAngE+CMC7FzBdwoCycnJqVT1YJLyfvwafO6kc0y9cF4d3NeCfWXnmHwx0KWFFV1aaHwRal/Gq9uj3WR6dSGv3rQnL1U6c1DwnV4z1NiiWjQPZY5APBHAAcRGUPG5U/f01t9u55jFvL/hjHq90F7bOWap4Gup4OvluY0WoVaXzbw4u6y/8X9/taad4846x+DaKHME4okADiA2TNWhm9i2MTPTYE9agz1pHVRjs6F+4LSwUlytaa/cSKl2Uer03IpmcgX5rvpt0OKKr8UVXy9ebU7nmHJP9srxwd60Up2wCLUDUOYIxBMBHEAsOBesm/F2kuSCOrfGdngVizu30jlmdYY9V9Ds8gahvWImPreDzjGSlDKtzqzHrnNMC1DmCMQPARxALJilZCoFt3INeOkL7d9ivpt5KdNIf1Yj/Vlpb2P3yReDmnaPpaA+V1Mi89LskqbnV6oWoErN7xxTG9Zb0TkGACoRwIGYqQwEtjpWCiXOJbcqOptOaaXgy1K2uoukC9yGnTqSJGkbrWTTm3eOKfe3PjDcq95MSrm8r4Lv9NNHxjS2p69+aF+uLp3ppM4xAFCJAI5EMDOlrLT5ilVcSpKp9LmVrqzdp6aCuHy/lFV/v/L3ci7swOHCBYBurRtH5e0qv0dtzXLDj6fimCofYyOcc6thPKg85mscf+X3r/3Z5X+nej++nPdd+CidW3+/yvuWtl4v3TpwpWNROOY7p8CVOp0EFZ87lR7H6/YM6OLVRS2srPUBH+xL6+DugYb+XeKqWzdaqe1vPZBNa6ng68+fe1X/8qdv3fT+lZ1jKndDvVqzKHWuqra9dZ1jNgrvw71ppT1CO9BtCODYETOTFwZPL2WrC6NqA285BK/er+L+5eul+9jq7nqmtRBb/tpquAuvp8Kfy2niNaXnREraEsV/+O6b9Kt/9N801JtZ3Wyk4Dv9/LEf0Gt391W9wSiH/HLAr3zjUQr2pcDvB6WQ7zvXsWcPunWjlZ32t95R55h1i0+rg3tlaN9655j1Bnq8OsF849n2wd40nWOAmCOAJ1RlcE2ZyUuZ0ilTKrz0wo/aWeAyJ7fhzKeZ5IXfk+CLqBw7PKqfvHBID371vBbzvgaynj5wx4366z90oCnfPwjCWXe3Njtfnn0vh/bAlRYdBmF49yvu06oA360brbSjv3VV55jdjf2cwDkt1GyqVA7vV5cKmquYXS8H+PnlYtX32G7nmHplMPVaPe7qy2igh84xQCchgDfRNWdra75WHpcqF5OVLlLhbVfLGlIVZQ11ZoErZ4vLpQ9A0pyZmNappy5q/1CPrg9ngU89dVG3HNqtY4dHd/z9UylTagdnDSoDuR/OsAeBUzFYm3Ev+mtfb9R1w33rS296vMSX3sSlv3XKbDX4bqVzTO2mSnPrZtuLq+NzSwUtbtA5ZmoLnWM2KoXZKLT3ZaLtHJO0tQ7AtXRdAM+mU7p+T/9qXW7lpJWrqNatN5lVL/CuhmpCL9BSJ89OKuOZ+rOlX1v92bRy+aJOnp1sSgDfqfJZpUZtFNjL44XAyfed3jK2S89cvBq+uZYKfqDLi4F+4i/tauGjab8k97f2UqY9A1ntGcg2fJ+CH9QE9WKd2fbqQL9cXGvRGThpJlfQTK7xzjEZz6oD+2rrx43bPfZWnLHYim5d64Du1XUBXBILXtB1zkxM6+TZSU3N5DQ20q/jR8c7IrRuxdRMTrv7MlVjfRlPF2ZybTqinWk0sD/78rz2D2Y1v1xU3g+U9VIa6Enr6Yuz+tlUSsUguX3Q6W+9JuOltG+wR/uu0Tmm1nLB11xVOC+ur2+v6dte2Tmm4DtdXsjr8kLjnWN60qkNZtorQntND/dsOtW1ax3QvboygAPd5MzEtD566mktrBTlB06vLqzoo6ee1m/cfWusQvjYSL+m55dXZ8Cl0oK3QyP9bTyq1rtwdUn7h3o1OrwW1p1zujS/ouv39ss5p4JfmjUvBsHqDLoflr+ULzt1kem1UJKwM70ZT70ZT6PDjS9CLXeOubqUr6pfv9Zse2VF1Uox0PT8iqbnt9Y5ZqXoK+OlSm9MrbxOSZpdKui/fPcSnWOQOARwIOE+/oVndTVXKP1RM5MLpKu5gj7+hWdjFcCPHx3XfafPKZcvVnVBOX50vN2H1lKbvfEwM2XT5XC+8el/P3Aq+IEKfqCi71QISpeVpTCdhJKE6G27c8yKv1a/XhPc5ypm2cu17XNLhar2rEuFUn37SrH+2Zx/+p++vW6MzjGIOwI4kHDnL+dKPc1Ta4t/XeB0/nK8SjeOHR7VCZVqwS/M5HQopqU0W9WsNx6lGUVvwxrdytaMxbD+vBCUAnu+GGxp4WgzUJIQD2amwd60BnvTOjjSWOcYP3BaWFkrh7maK+jpqav6z8++srrNbcEv/Z8b7s1opRhoYaV5nWM22vmUzjGIEgEcQGwcOzya+MBdK6o3HuUuMButoSvPoOfDGfTacpdmB/Rubb/YDbyUrYbcsjtu2qe33bCnYtHtYFXJUdEPqjrD1JbCzC1Xz7pfzRVWZ9al6s4xSlDnGMQXAbwDJWHBHDrH+L4BTbw8r7y/9sfIJB0+MNi+g8KWdMIbj81m0F3F7Hk5pJdLXgr+1mvQ29EHHO11rUW3aS+15c4x+WJQt9VjbZvHyjr3lSZ2jqkuiWl+5xjEGwG8w5yZmNZ9p88p45l292U0Pb+s+06f0wmp7X+AEU+7+9KqjT4uHAeaxcyU9kxpT3UDRTGcPc8X1y6vFczj0gccnSub3n7nmLVQXlxXyz5b8xFJ55iaWvdsmkWoccdf4A7T6b2OET+Pf+/qlsY7GWeH4ivtpZT2UuqvmMB0rjRbXvCdin5Q1b3lR27aJzPp9x9PXh9wdK7tdI5ZKvjrOsbU6x5T+bHTzjH9Wa9ilj1dt0ymNrizCLWzEMA7TNJ6HaP9yrW5lWWJzinyRXU7xdmh5DEz9aQ99Wzwl+inb79eP3lkTIWw3ny13aJfmg0v16IjGeLYdtKsNGHWn01vqXPMwkpxfZvHcrlMrnK2fW0GvvI3di7vK5f39dJsY4tQJWmwJ706s75RYK8M7YM9dI5pJQJ4hxkb6dcLlxc0t7S26cZwX1o37KVeF9vjpaxu2I7bL1bODnWnVMrUk9q4RjYIyt1a3GqZS7n+PG5vMrtZN7WdNDMN9WY01JvZeueYXKGqrr3+bHsptNd2jllYKWphpaiLVxs7zpRVhvb6s+q1HwM9LEJtFAG8w7xjfI8ef+FKqW2cSXk/0PR8Xve+LVm/gJKs08ok7rrlgP7gmy+pttT2rlsOtOeAtomzQ6inHNDrzaJXdm4pFMuXzJp3ItpOXlu9zjGbWdc5Zl0Ne1Gzubxmw97ss0sF5fJri/UDt9Y5ZqrBzjFe+AZqK6G9N5PqytBOAO8wj05eWbft9FBvWo9OXtGH231wHabTgm75mDqtTOIT99wm6SmdfuZl+YGTlzLddcuBcDw+unUnTGzfRp1bgrBTS2Uwb0evc6yh7WTz7bhzzLrZ9oqSmfBrV5cKyld0jvEDt6POMbv6MtrVWw7tye4cQwDvMFMzOe0b7NH+obVaMuccs3w1OjHoSp1bJvGeNx/Sy3P51Tcr73nzobYdy3Z1606YaL5UytRbJ5iXZ8xXisFqC0WCeTRoO9kZtts5proMpk6Lx+W12vbZXEHFgM4xBPAOwyxfYzo16HZimUSnvlnZqm7dCRPR2WjGvHYTop30N0d9tJ2Mr3LnmNdssXNMVf16rlBVClP7tbnlnXeO6ct4VUF9s84xw71ppb3WhXYCeIdhlq8xnRh0pc58A9Wpb1a2oxM2pEH3udYmRMUwiK/1Ng9YALoNt4/v0Ud0U8VOmPHogoKtq+wcc92uxs5wBM5pcaW4bpa9vBtqveA+v1ys6hyzVPC1VPD18lxndI4hgHcYZvka04lBV+rMN1Cd+mYF2EwnrvOoVepvLvVp41lzFoA25lo7YaK7pSo6xxwaaew+fuC0sHyN/ux1usksrvhV32M7nWOGetdm2fcMbFzKQwDvQMzyba4Tg67UmW+gxkb6df7VhXULe2/cR2tLdK64l05ttgC0XMJSqJg536449s8GWs1LmXb1Z7SrfwedY9aF9spZ+PqdY8pf3wwBHLHUiUG38tg64TjK6rW2vLSQ19++nT/Q7RCHWd1OkKTSqUobLQCt3BW0EAbylWKpDvpadebd1D8baLUdd46pCe6LK75+Y6Of1ZxDXs/MfkfST0iads79UDi2R9LnJN0g6QVJP+Wcmwm/9iuS3i/Jl/Rh59yfhuNvlfQZSX2S/kTSR5xzzsx6JH1W0lslXZb00865F1r1eNB5Oi3odqpHJ69odCi7bnMnWltGL+6zulHqttKpql1BK85aO+dWZ8rLs+UrFTPm9M8G2utanWMGetIbBvBW9mT5jKQ7a8Y+JukrzrmbJH0lvC4ze5OkeyTdHN7nN82sPD3waUkflHRT+FH+nu+XNOOce72kT0i6v2WPJGJnJqZ17wOP6Y77H9G9DzymMxPT7T4kxNjUTE7ZmpXcWS+V2CDTySpndcsLkTKe6eTZyXYfWscZG+nXhZmczr04q29dnNW5F2dXz3Z1EzNTNp3SQE9au/uzGh3u1dieft2wd0Cv3d0XroUJdx8M137RPxvofC0L4M65s5Ku1Ay/R9JD4ecPSXpvxfjDzrkV59x5Sc9Lut3MrpM07Jx71JXOwX225j7l73VK0rssAVsplWfIpueXq2bICOHYrsGsp4tXl1X0nTwzFX2ni1eXNZCN/0YGUWrGG+OpmZyKfqDJSwuaeHlOk5cWVPQD3gzVcWA4q6tLxdXWY4GTri4VdWC48VPDSZZKmXoznl63d0DFwCmbTinrpZRJp1T0nQ6N9Ks/m1Y61Vm9jwGURP3KfI1z7iVJCi/L51wPSpqquN2FcOxg+HnteNV9nHNFSbOS9rbsyCPCDBmabfV9qVV8VI5jU816YzzUky69GQp3JC0GpTdDg/X2Ue9yf/rt+v+2G413q+NHx1XwnXL5oqTSpii+k37hr75eB3b16vq9/Xrd3gFdt6tPewd6NNSbUU/GU4rXP9BWnfJbv95vAneN8WvdZ/03N/ugSmUsuv7667dzfJHptrpHtN78SlEHd/fq1YX8ag34geEeLawU231osdGsBYGri+nKv6lczThWlTsLVOZE51TVcQCNLUj3Uqa+rKe+mrNe5Zry/BYWfQJojqgD+Ctmdp1z7qWwvKQ8lXFBUuV2V4ckvRiOH6ozXnmfC2aWlrRL60teJEnOuQckPSBJR44c6ejfLJ3a3xrxNTbSrxcuL1SN5f1AN+ylDWGjmvXGeCHvr38zNNijRULlOmalwF1vHNW2uyA946WU8VIaqFn0We7GUg7n+WJA/3KgyaIuQTkt6X3h5++T9EcV4/eYWY+Z3ajSYsvHwzKVeTN7e1jf/TM19yl/r7slPeIS8La98nSic6XLTuhvjfh6x/geTc+XAl+5DeH0fF7voENCw8ZG+rVUqA7J23ljPDbSr3xNv+e8H/AGu46Dw6VU6NzaR+U4WqPcjWWwJ609A9nVMpbyos+9g6Uylt6M1/COf0C7PD55Rb/4uad17289pl/83NN6fLLuPG1btCyAm9nvS3pU0g+a2QUze7+kj0v6a2b2nKS/Fl6Xc+6cpM9L+rakL0r6kHOu/Nfu5yQ9qNLCzP8u6Qvh+G9L2mtmz0v6RYUdVeLu2OFRnbjrZo0O9Wp2qaDRoV6duOtmWpTVQbeYxjw6eUX7B7PKeikFrtQBZf9gVo920C+iTtesN8a8GWrcr/3NWzTU46mc8VImDfV4+rW/eUt7D6xLlRd97urLaP9Qj167u0+v2zug14XBfN9Qj4b7MurLeiz8REco98i/vLhS1SO/U0K4JWDSeEuOHDninnjiiXYfBnaosp9y5U6YvFlZ7477H9HuvkzVokvnnGaXCvrzX35nG48sXsob6Oxk46d7H3hsw11Jf/+Db2/RkcdXM/7N0R5+4Fbryit3+/SD7socaJ9f/NzTury4stojXyqdudw70KN/+dO3RnIMAz1pHdjV96Rz7kjt1zplESawJUndJa8VWFfQXDuJD1MzOe0b7NH+od617+cci6w38MyFqzr34qwW875mlwp65sJVXt8x4aVMXp0dP/0grC2vCOUEc7TCS3NL8kyamllRwQ+U8VIa6c90TI98AjhiiW4xjTt+dFwf+dw3NLe0uNpaaLgvrV/98Te1+9Bio1k7WPJmqHGf+vJ39clHnlfKpHSq9O/0yUeelyR9+N1vaPPRYbtWO7KoOpgX/VIoLxSdVnw/DOd0ZMH2DWTT+t7lRaVSplTY9vWVuRW9bu9Auw9NUvSLMIGmaNaiuG7wzIWrmluqbjk4t1TUMxeutueAYqhZ/flZZN24B796PgzfKaUsFV6WxpE8aS+l/mxau/ozGh3q1aGRft2wt1+HRvo1Otyr3f1ZNhbC1lS2fS1/VI63GTPgiKXjR8d13+lzyuWLVTXgBJn1HvzqeaU9q/rDVQwCPfjV88wkNqhZZ1wa6dmMksW8r3RN1kqZaNlYR7lWfmomp7EE/Z8yM2XTpmw6JVU0v1ktYykGzJZjQ4sFX68Z7tFMrlBRgpJVrtAZv0MI4B0oqb9Mm4kg0ziCzM61onSEqHBtA9nSG+vKTneBK41jTbPKo+KkemOh0hvjev3LV4o+teVd7LrhPl1eXNFYxe/ppYKv0YHOaGVKAO8w3fjLdLu2u/lEtxnIelrMF+WcL+dKG5mYlerj4uZTX/6uHvzqeS3mfQ1kPX3gjhsjmcVv1hkXXt+N+8AdN+qTjzyvYlBq2Ri40scH7rix3YfWUU6enVS+6OvyQnVnnW5bkF7uX96TVtVseTHsxFIK5Gwq1E3ueduYPvnIc1oq+OrNpLRcKO30es/bxja/cwQopuowzao1BcredXi//KAUXpxKl35QGo+T8qK8pYJftSjvU1/+bst/drP68/P6btyH3/0GfeSdr1dfxlMxKJX8fOSdr6dsqsZ3X5nT5cW8ir6TZ6ai73R5Ma/nXplr96F1hLSX0kBPWiMVmwq9bu+ADuzq1Uh/VgM91JUn1e3je/SRd96kvQM9ml8uau9Ajz7yzpt0e4fsuxC/KbCEo7sHmu3Zl+Zlqi55sHA8TioX5UmlMpooa9mbccaF1/fWfPjdbyBwb6Lgl17ZqbBWx0wKAqe8T+nFRrxU6c1vf3ZtzA+cVoq+VgqlmXLKV5Lh9vE9HRO4axHAOwxtytBs5y/nlPFMXsUsjx8EOn85XqEvCbXsvL7RbNl0Skt5X4FzMgsbPLjSOBpXL5SXNxJaKfhaDstXWOiJZiGAdxi6e6AV/MCpGFTUgEtKe7bp/TrJQNbT4kpRTtWPY6AnPr/Gtvv67taF2d36uLfiptEhvXB5QXNLazXgwwMZ3bB3sN2HFnsZL6WMl9Jgxe+Y2k2EypfAVvEWucM0q9YUKBsd6pHvamrAXWk8Tt51eH/dxxGnWvbtvL7LCzen55erFm6emZiO8Mij162Pe6uOHx1XxvN0YFevfvA1Qzqwq1cZz2PSpkWy6VIg3zOQ1WuGezW2p1837B3Qa3f3ae9gj4Z6M+rJeDKL1wQHohefqaMuQncPNJPbYMX/RuOd6uW5vEb605pdKipwpfKTXX1pvTyXb/ehbclWX9+VCzclqT+bVi5fTHyXi2593FtFS9b2S6VMvSlPvZnqFpmVs+V5OrCgBgEcSLiX5+sH1Fc2GO9UUzM5Hdzdr0MjazNLzrnYLWDcallFty7c7NbHvR1M2nSmbDrFJkLYEAEcSLiNVvIXY7bCf2ykX+dfXdD8cnW/4xv3xafWdTt9wMdG+tfX+PalE1/jy4JVJNG1NhGq7FWeLwYKCOWJRg04gFh4x/geXVrIK++XNmbJ+4EuLeT1jg5tMVXPdvqAv2N8j6bnqx/39Hy8Hvd2HD86roLvlMsX5VzpkgXpSKLyJkJDvRntG+zRa3f36YZ9Azo40qd9Q6W6crraJA8z4EDC1fYArxyPk0cnr2h0KLtuJvjRySv6cLsPrkFTMzl5Jk1eWlh9DPsGs9csq3h08oqGez3NLhVVqKh9j9Pj3g5qm9HtSjt7elJv6Xqpv3uglUKg5bBnOTXl8UUAR2zRoqwxqZRU73d03DZ/m5rJae9Aj/YN9q6Oxa0GfKgnreemF+SlTF7KVAycLl5d1k2jG5eTPDc9r4VlXxkvtdrneWHZ13PT8dpIaTueuXBV516c1WLe1+xSQc9cuMprvA5+F3aHysWeu8LylWK5V3m4eVC+GLCBUEwQwBFL26ml7VbFDSZINhrvVEmoCXautNgqX3RyKp2FSJmuuQArXwwkk1JWsdOhlRZyJdmnvvxdffKR58PdT0vP9ScfeV6S2B2zAr8Lu1vaSyntpTRQsdCzvIFQnlDe0WI2B4Y4OTMxrXsfeEx33P+I7n3gsab27z15dlL5oq+XZ5f1nVfm9fLssvJF/5q1tIi3JNQEv7qYL+1UWK7/CWe0X13cuCNNJtwwKQhK4T0I/5BmY7aR0lY9+NXzYfhOKWWp8LI0jjXbWVeAZCtvHrRnIKvrdvXpdXsHdP2efl23a61XeW/Gk5dK9u+QTscMOFqi1bMy331lTnPLRaVk8sxU9J0uL+ZV9Od2fvDoSEmoCc4XA3meKV1R/1MMgmvOZr/hNcN1ur9kYtX9ZTsW875Sclopru186llpHGto14hGlGbKpT5V9yr3A1fa0dMPVAhbItKvPBoEcLTEybOTKvi+Li9UL5hr1iYaBb80C5hKVZyWD5zyPqfZkizu/Y4znmmpUPq/Wq7nlq49m13evv7ArvSWtq+Pux4vpVxhLWy7cBfU/gwnbisloTQL7VNaj7J+E6Hygs/yos9ym0T6lTcPv8nQEs9Nz+vV+byKgVtdbPbqfL5pC8ey6ZTkpMA5OblSv1QnWjXVsdFZRs4+Ru8NrxnWQNZTIQi0XAxUCAINZD3d9JrhDe+zne3rk8BL1f9Dv9F4t0pCaRY6Typl6s14Gu7NaP9Qjw7u7tMNe/tpjdhEzICjJVq9cOym0aH1m5MMZBK/Ocl29GY85eqctq+d8YiDuHd7eMf4Hj3+whV5KVPGSjO68yv+pj294z7zvx0L+fq/KzYa71ZJKM1CPJT7lde2Riy3RCxfsoFQYwjgaIntnGrfim49Lb8de/rSdQP4nr54vfyT0O3h0ckr6suktLCy9nwM9niJ7+m9HeXfGWbVY/xtXy8pb9A+9eXv6sGvntdi3tdA1tMH7riRjjcdLpUqLfztz66N5YtrJSuFiktUi9dfYMRGqxeOMeuzBamUhntSmltZ+wU43JOSxawReGW3B0nqz6aVyxebtq4gCudenNXCil+1CdLCiq9zL8627Zg6VX/GK9WAu/XjSB7aTiZHNp0qladUtEasrCmvDObd3B6RAI6WiGKGOimzPq02mPX04tXq2YeFfKDX7o5XkElCt4fVDh6VCdzR2aOef/BXxvWvvvKcKv8+p6w0juQptZd08gOpGHa9sbDtJAE8/io3EarkB67ujHk3lLEQwNESxw6P6u4LV9edTiQwR+/VxbxqJxmCTXpPd6IkdHso9/Cu/dsSdPEs0EbKoYuShO6wsFJU4ML3prbW9WZhpdjuQ0MLeSlTX9Zb1x6xuNoa0WnF91fbIyapCwsBHC1xZmJap566qP1DPbo+nAE/9dRF3XJoNyE8YpcX6gftjcY71fGj4/roqad18eqS/LC7zmBPWr/6429q96E1bKg3vRooyr2tJWmwh1/F9Xz43W8gcHcJKy8WqtikSi4cR9cp7/CprCStnfks1MyU5/1S7/I4BvN4FYEiNtidrXNs9Gspfr+uwr/NLty63VVXcsTBB+64UVJpZs+Fl5XjQLfqy5RezeWFtuU81Z+J26scrZTxUhroSWt3f1ajw706NNKvG/b269BIv0aHezXSn9VAT1oZr/PjLdMuaIkk1Ouis5w8O6m0Z/JSJt+VLtPhm7q4nFW55dBuDWQ9LeZ9Ba5U0zyQ9XTLod3tPjSgrcZGBvTsy+v3iTg0MtCGo0GcmJmyadtw4edKMdBK0Q9nzjtntpwAjpZIQr1uUoRncuuOx8lz0/OaWcwrkCQnFQNfy+Hi3rg4eXZSo8O9Va+LuHVyidI/evgpnX7m5dWSo7tuOaBP3HNbuw8LLeCcUzpl8sxWW9f6rnPCEuKneuFnaULQOaeVYmfs8EkAR0uUu6Dk8kX6dLdZKmV1Wz2lYrYVZm7Fl19ZduIkPxyPi6mZnDyTJi8trLbn3DeYjeWZoVZvivSPHn5Kf/DNl1av+4ELrz9FCE+ghbyvg7t79epCfvW1cWCwhw5BaCqz0g6fvZm1zYScc6tBPF8szZhH0Yml84tkEEvdun12J+rboIYybrWVeb/0h9hVfFSOx8FQT1oXry6rGM7oFgOni1eXY7cIs7wp0vT8ctWmSGcmppv2M04/87KktXZ05bV45XEky9hIv1ZqdkpeKQacNUXLlXf4HOrNaO9gj167u0837BtYrSvf3Z9VX9aT1+RJq3j91kes0Ke7Mxza3a+JVxbWjR/cHa8/bF4qJeeCUvgu9wkOx+Ni9TRn+d2DqxmPiSg2Rdpog45u3rgjyd4xvkePv3BFKSutjcj7gS4t5PW3b9/T7kNDl6q3oVC5+0p5ljxfDFQMtrfLJwEcSLiNTuHG7dTu+L4BPTe9oHSqokY0cBrfF59FWkk5zR7FImsvLJ2qfW/S7FkodIZHJ69odCiruaW13ZOH+9J6dPKKPtzugwNCGS8VdmJZGytW7PBZDuYFf/NQTgAHEu7l2eUtjXeqX77zsH7p1NOaXy6q6AdKp1Ia6c/ol+883O5Da1h5cfL4/sHVsVy+qNGh3jYe1daNjfTrhcsL68LSDXsHN79zg25/3W49en6m7jiSZ2omp70DPdo3uPZacM7Fcn0Euku5Z3l/dm2svMOnu0bD3/icuwWwLcVwCrG2lrYYs7KHY4dH9et336q3XD+i63b16S3Xj+jX7741VmVOx4+Oq+A75fJFOVe6jOPi5HeM79H0fGkWv1wuMD2f1zvGm1cuMHWlfvDaaBzxNjbSr6VC9ZkgOmchrso7fFZ2vKpFAAcSzgsDd+0GF16Mz+TH663DmqQsTn508or2D2aV9VIKnJT1Uto/mNWjk1ea9jMuzq5saRzxlpQ3p0CjKEEBEu6m0SF95+V5OatYvOhK43FS7ryR8ayq88YJKVYBNgmLk6dmcto32KP9Q60rF0jSDq7Y3LHDozqh0gLfCzM5HWpBa0ugkxDAgYSrqp0OSrXTQ73pWNVOS9F03kBjothoKykbSKFxSXhzCjSKEhQg4ZJQOy2VZl37Ml7VWLM7b6AxUZQLHNxdf2HqRuMAECfMgANdIAkzS1HMuqIxUZQL/Np7/5I+/PtPaSHvK3Cl3tCDWU+/9t6/1LSfAQDtQgAHEAvHj47rvtPnlMsX1ZfxtFTwWaTVRq1+U3fs8Kg+de9t1AQDSCRKUADEQlI6iKBxz1y4qnMvzurF2WWde3FWz1y42u5DAoCmYAYcQGwkoZTmzMS0Tp6d1NRMTmPM6m7oU1/+rj75yPNKmZROlcqNPvnI85KkD7/7DW0+OgDYGWbAgS5wZmJa9z7wmO64/xHd+8BjOjMx3e5D6krlVorT88tVrRR5PtZ78Kvn5QKngu+0UixdusDpwa+eb/ehAcCOEcCBhCP0dY7KVopmpcuMZzp5drLdh9Zx5peLCmrGgnAcAOKOEhQg4ZLUPzvu5RtTMznt7stUjdFKsT424gGQZARwIOGiCn2tDsdR7YTZysdBK0UAgEQJCpB4YyP9Wir4VWPNDn1RlLlEUb7R6scRxQY2STHcm16366WF4wAQdwRwIOGiCH1RhOModsJs9eOglWLjPnDHjUqlTBnP1JMuXaZSpg/ccWO7Dw0AdoypBCDhoti1MIoylyjKN6J4HElopRiFcqvBB796Xot5XwNZTx+440ZaEAJIBAI40AVaHfqiCMdR7IRJjXZn+fC730DgBpBIlKAA2LEoylyiKN+gRhsAEAVzrruaOh05csQ98cQT7T4MIHHK3UNaVeYSlaQ8DgBA+5nZk865I+vGCeAAAABA820UwClBAQAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiRAAHAAAAIkQABwAAACJEAAcAAAAiFPsAbmZ3mtl3zOx5M/tYu48HAAAAuJZYB3Az8yT9G0k/JulNku41sze196gAAACAjcU6gEu6XdLzzrlJ51xe0sOS3tPmYwIAAAA2FPcAflDSVMX1C+EYAAAA0JHS7T6AHbI6Y27djcw+KOmD4dUFM/tOS48KUdsn6dV2HwQixXPeXXi+uwvPd3dJ+vP9unqDcQ/gFySNVVw/JOnF2hs55x6Q9EBUB4VomdkTzrkj7T4ORIfnvLvwfHcXnu/u0q3Pd9xLUL4u6SYzu9HMspLukXS6zccEAAAAbCjWM+DOuaKZ/YKkP5XkSfod59y5Nh8WAAAAsKFYB3BJcs79iaQ/afdxoK0oL+o+POfdhee7u/B8d5eufL7NuXVrFgEAAAC0SNxrwAEAAIBYIYCjY5mZZ2bfMLM/Dq//H2Z20cy+GX78DxW3/RUze97MvmNmP1ox/lYz+1b4tU+ZWb3WlegAZvZC+Fx908yeCMf2mNmXzOy58HKk4vY85zG2wfPNazyhzGy3mZ0yswkze9bM3sHrO7k2eL55fVcggKOTfUTSszVjn3DOvTn8+BNJMrM3qdQB52ZJd0r6TTPzwtt/WqUe8DeFH3dGcuTYrr8aPrflllQfk/QV59xNkr4SXuc5T47a51viNZ5Un5T0RefcYUm3qvS7ndd3ctV7viVe36sI4OhIZnZI0o9LerCBm79H0sPOuRXn3HlJz0u63cyukzTsnHvUlRY7fFbSe1t1zGiJ90h6KPz8Ia09fzzn3YXnO8bMbFjSUUm/LUnOubxz7qp4fSfSNZ7vjXTl800AR6f6V5L+saSgZvwXzOwZM/uditOVByVNVdzmQjh2MPy8dhydyUn6z2b2pJV2r5Wk1zjnXpKk8HI0HOc5j796z7fEazyJxiVdkvT/hmWFD5rZgHh9J9VGz7fE63sVARwdx8x+QtK0c+7Jmi99WtIPSHqzpJck/V/lu9T5Nu4a4+hMP+Kcu03Sj0n6kJkdvcZtec7jr97zzWs8mdKSbpP0aefcWyQtKiw32QDPd7xt9Hzz+q5AAEcn+hFJd5nZC5IelvROM/s959wrzjnfORdI+i1Jt4e3vyBprOL+hyS9GI4fqjOODuScezG8nJb0Byo9v6+EpyEVXk6HN+c5j7l6zzev8cS6IOmCc+5r4fVTKgU0Xt/JVPf55vVdjQCOjuOc+xXn3CHn3A0qLcx4xDn3d8u/qEN/U9J/Cz8/LekeM+sxsxtVWqjxeHhKc97M3h6unP4ZSX8U3SNBo8xswMyGyp9L+usqPb+nJb0vvNn7tPb88ZzH2EbPN6/xZHLOvSxpysx+MBx6l6Rvi9d3Im30fPP6rhb7nTDRVf6Fmb1ZpVNQL0g6LknOuXNm9nmVfqEXJX3IOeeH9/k5SZ+R1CfpC+EHOs9rJP1B2GEqLenfOee+aGZfl/R5M3u/pO9L+kmJ5zwBNnq+f5fXeGL9z5L+rZllJU1K+lmVJgF5fSdTvef7U7y+17ATJgAAABAhSlAAAACACBHAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAVczsM2Z2d7uPAwCSigAOANgRM/PafQwAECcEcABICDO7wcwmzOwhM3vGzE6ZWb+ZvdXM/ouZPWlmf1qx/fffN7Ovm9nTZvYfzKy/zvf8Z+GMeKpm/JiZ/ZmZ/TtJ39roZ4e3fcHM/k8ze9TMnjCz28Lj+O9m9g8i+ccBgA5CAAeAZPlBSQ84526RNCfpQ5L+taS7nXNvlfQ7kv55eNv/6Jx7m3PuVknPSnp/5Tcys38haVTSzzrngjo/63ZJ/6tz7k0b/Oyfr7jtlHPuHZL+XKWd7e6W9HZJJ3b4eAEgdgjgAJAsU865vwg//z1JPyrphyR9ycy+Kel/k3Qo/PoPmdmfm9m3JP0dSTdXfJ9flbTbOXfcbbxl8uPOufPX+Nl3VHztdHj5LUlfc87NO+cuSVo2s91bfpQAEGPpdh8AAKCpasPyvKRz4exzrc9Ieq9z7mkz+x8lHav42tclvdXM9jjnrpjZD0s6GX7tPpVmuBc3+dmV11fCy6Di8/J1/hYB6CrMgANAslxvZuWwfa+kxyTtL4+ZWcbMyjPdQ5JeMrOMSjPglb4o6eOS/j8zG3LOfc059+bw47Tqq/3ZX23WgwKAJCGAA0CyPCvpfWb2jKQ9Cuu/Jd1vZk9L+qakvxze9lclfU3SlyRN1H4j59y/l/Rbkk6bWd82fvand/ZQACCZbOPSPgBAnJjZDZL+2Dn3Q930swEgbpgBBwAAACLEDDgAAAAQIWbAAQAAgAgRwAEAAIAIEcABAACACBHAAQAAgAgRwAEAAIAIEcABAACACP3//IxCUvsCnMwAAAAASUVORK5CYII=\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>\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"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": 40, | |
"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": [ | |
"<details><summary>Click here for the solution</summary>\n", | |
"\n", | |
"```python\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", | |
"\n", | |
"df[[\"peak-rpm\",\"highway-mpg\",\"price\"]].corr()\n", | |
"\n", | |
"```\n", | |
"\n", | |
"</details>\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>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"metadata": {}, | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Multiple Linear Regression</h3>\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"First lets make a prediction \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 42, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"Y_hat = lm.predict(Z)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 43, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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9bw2bdowceJE8vLyWLhw4a4JF7169eL7778nOzsbgM2bN5dq5bkkCsciIiIiFcjQoUM566yz9rjtnHPO4Y033uDyyy+ndevWZGVl0bVrV9544w0ABg8ezGmnnbbrhLwHHniAPn36cPzxx9OsWbNdr3PvvffSv39/jj766BL7k6Pq1atHr169aNq06a42jN///vcMGTKEXr16MWvWLGrWrLnX84488kjatm3LQQcdxC233EL37t0BaNy4MS+//DIDBw4kKyuLXr16xTSuLlbmnIvbi5VXjx49XKzN2CIiIiLJaPr06XTu3DnsMiSisPfDzMY553oU9nitHIuIiIiIRCgci4iIiIhEKByLiIiIiEQoHIuIiIiIRCgci4iIiIhEKByLiIiIiEQEGo7N7EYzm2pmU8xsqJntvf2JSGX0+edw112wZUvYlYiISAWUnp5Ot27ddl3mzZvHEUccAcC8efN2zTcGmDhxIp988kmpj3HsscdScATvvffeyx133LHHbRMnTix2tN29997Lww8/XOrjByWwcGxmLYDrgB7OuS5AOjAgqOOJpIwxY+DMM+H//g969YI47uojIiICUL16dSZOnLjr0qZNG/73v/8B8QvHhRk4cCBvvfXWHre9+eabXHDBBXF5/UQIuq0iA6huZhlADWBJwMcTSW6//gr9+kHz5vDGG7B4MfToAW+/HXZlIiJSwdWqVQuA22+/ndGjR9OtWzcefPBB7rnnHt566y26devGW2+9xaZNm/jd735Hz549Ofjgg/nwww8B2LJlCwMGDCArK4vzzz+fLYV8+tmxY0fq1avHjz/+uOu2//73vwwYMIB///vf9OzZk65du3LOOeewefPmvZ6ffzV65cqVtGnTBoDc3FxuvfVWevbsSVZWFs899xwAOTk5HHPMMXTr1o0uXbowevTocn+fMsr9CkVwzi02s4eBBcAWYIRzbkTBx5nZYGAwQOvWrYMqRyR8a9dC796wcyd88gl07AhHHQXnnw/nnQfXXAOPPQYZgf21FBGRBLvhBpg4Mb6v2a0bPP548Y/ZsmUL3bp1A6Bt27a8//77u+574IEHePjhh/noo48AaNq0KWPHjuXpp58G4E9/+hPHH388L774ImvXruXQQw/lxBNP5LnnnqNGjRpMmjSJSZMm7drOuaCBAwfy5ptvcthhhzFmzBgaNmzI/vvv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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(Y_hat, 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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2>Part 3: Polynomial Regression and Pipelines</h2>\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<center><b>Quadratic - 2nd order</b></center>\n", | |
"$$\n", | |
"Yhat = a + b_1 X +b_2 X^2 \n", | |
"$$\n", | |
"\n", | |
"<center><b>Cubic - 3rd order</b></center>\n", | |
"$$\n", | |
"Yhat = a + b_1 X +b_2 X^2 +b_3 X^3\\\\\\\\\n", | |
"$$\n", | |
"\n", | |
"<center><b>Higher order</b>:</center>\n", | |
"$$\n", | |
"Y = a + b_1 X +b_2 X^2 +b_3 X^3 ....\\\\\\\\\n", | |
"$$\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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>We will use the following function to plot the data:</p>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 44, | |
"metadata": {}, | |
"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\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 45, | |
"metadata": {}, | |
"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.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 46, | |
"metadata": {}, | |
"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 \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 47, | |
"metadata": {}, | |
"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": 48, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([-1.55663829e+00, 2.04754306e+02, -8.96543312e+03, 1.37923594e+05])" | |
] | |
}, | |
"execution_count": 48, | |
"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>\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 49, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" 3 2\n", | |
"-1.557 x + 204.8 x - 8965 x + 1.379e+05\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEWCAYAAABMoxE0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABHl0lEQVR4nO3deXxU1d348c83k5VACASQkKAoi7IJCFJc6lrr0lbRumul1pbWatWn9mml/T2P2qe26qO1UqtWSxVXxN3HiktVXFoEQZAIqKAgRAJI2JIAWWa+vz/uGZiE2ZLJZCaZ7/v1mtfMPfeee8/cTO65Z7nniKpijDHGtFVWqhNgjDGmc7OMxBhjTEIsIzHGGJMQy0iMMcYkxDISY4wxCbGMxBhjTEIsI0kTIrJGRL6R6nSEEpE5IjIlzm1bnf7W7L+V+10mIsdFWT9XRH7Y3sdtTyIySERURLLbGH/PdxSRi0Tk1ZB1KiJD4tyPiMgDIrJVRBa0JS2JEJGvi8gnHX3cdCYiN4jII6lORyjLSNqZu6DuEpFaEdno/gm7pzpdbaGqp6rqzET3IyIPikiDOyfB13mh+xeR74vIu4mnGlR1pKrOdftN6J9ORI5zF95nWoSPceFz49xP0v75Y+1bVR9V1W+2cfdHAycB5ao6sY372CMkgwz+DtaIyHWRtlfVd1T14ESP2x7cb6Gyqx+zLSwjSY7vqGp34DDgcOD/pTg96eBWVe0e8noi1Qlqha+AI0WkJCRsCvBpitLTkQ4A1qhqXWsjxihNFbv/kQuA/xaRU1oZ36QRy0iSSFW/BOYAowBE5HRX7bLNVT0MbxlHRPqLyM7Qi5aIjBeRr0QkJ3jnLiK3ueqG1SJyasi2A0TkBRHZIiKrRORHIetuEJEnReQREakRkQoRGSYi00Rkk4isE5FvhmwfWj0yWETeEJFqEdksIo+KSHEi5ye4f3ce7gWOcHep28Jse7yIVIQs/zO0qsWdk8nu8xoR+Ya7OP0aOM/t98OQXR4gIv9y5+FVEekTJakNwHPA+W7/PuBc4NEWabzTncMdIrJIRL7uwsOmw33/P4jIAhHZLiLPi0jvCOcq7N81xncMxg1X2jtNRD53f8v/FZF9rgUichnwN/b+XW504T9yadji0jQgJI6KyBUishJYGeWcAqCq84BlwKjg3beI/EpENgAPtLwjF5GBIvKM+3+oFpG7Qtb9QERWuP+LV0TkgFjHby/u7/O0S9dqEbkqZN0NIjJbRB5yv7dlIjIhZP1hIrLYrXtSRJ4Qkd+JSCHe9WOA7C3BBc91bqT9pYJlJEkkIgOB04DFIjIMeBy4BugLvAT8n4jkhsZR1Q3AXLwLVdDFwCxVbXTLXwM+AfoAtwIzRETcuseBSmAAcDbwexE5MWRf3wEeBnoBi4FX8H4HZcBvgb9G+jrAH9x+hwMDgRviOhExqOoK4CfAPFdaKQ6z2TxgiIj0Ee9OdRRQLiI9RKQAGA+802K/LwO/B55w+x0TsvpC4FKgH5AL/CJGMh8CLnGfT8a7+K1vsc37wFigN/AY8KSI5MdIxyXAD/DOaxMwPcLxw/5dY+w7mjOBCXil5jNcGppR1Rk0/7tcLyIn4P0OzgVKgS+AWS2iTsb7jY6IlgDxHAWMxPstAvTHO38HAFNbbO8DXnTHHIT3m53l1k3Gy1DPwvv/egfvnLVayP9SvNtnAf8HfOjSdCJwjYicHLLZ6S6txcALwF0ubi7wLPAg3vd+HO9vgysFngqsDynJr4+2v1SxjCQ5nnN31e8Cb+H9o58H/ENVX3MZwm1AAXBkmPgz8TKP4D/PBXgX/6AvVPV+VfW7bUuB/VzGdTTwK1XdrapL8O4ovxcS9x1VfUVVm4An8f7pbnZpmgUMkjAlDVVd5dJer6pfAX8Ejm3FOfmFeCWxbSKyuRXxgsffDSwEjsG7AC7FO79HAZOAlapa3YpdPqCqn6rqLmA2XgYQ7fj/BnqLyMF4F/+HwmzziKpWq2qTqt4O5AGx6vcfVtWP3EXjv4Bz3d98jzj/rq11i6puUdW1wJ/wfmPxuAj4u6p+oKr1wDS8EsugkG3+4Pa9K8p+NgNb8L7Hdar6ugsPANe731nL+BPxMtL/VNU6dy6CJa0fu+OucL/t3wNjI5VKRORSEflQvHbMh0XkWBHpJyKXAlfHeS6CDgf6qupvVbVBVT8H7seVYJ13VfUl9z/7MBDM8CcB2cB0VW1U1WeAeDo1RNpfSlgdZHJMVtV/hga4IukXwWVVDYjIOrw7mJaeB+4VkYOAYcB2VQ39cW0I2c9OdwPVHSgBtqhqTci2X+BdeIM2hnzeBWx2P8bgcnBf21qkvx/e3fLXgR54NyFbw6Q9kttUNdG2oreA4/DuzN9yxz8WqHfLrbEh5PNOvO8cy8PAlcDxeHfwF4auFJFrgR/iXewUKMIrNUazLuTzF0BOmDgDiP13ba2Wxx0QacMwafkguKCqtSJSjfc7XhNm35H0cRf8lr5yNw3hDMS7iQoX7wDgThG5PSRMXLq+CLP9t4BTgDq8v+MdeDdkrxK7dBru2AOkeZWsj+Yl5Ja/t3xXsh4AfKnNR8+N5/yF3V+Ec5N0lpF0nPXA6OCCKz4PBL5suaGq7haR2Xh3f4fQvDQS6xi9RaRHyEVn/3DHaIM/4F0cD1XValeV0J7F6XiGoX4LuB1YC9yMl5Hcj5eR/CWB/cbrYWAV8FBIBg543VSBX+FVayxzNwpb8S5m0dIxMOTz/kAj3t16aHisv2tbvuNAvOq54L5aVtNFsh7vwgmAq8cvoflvLJFzHi3uOmD/CBfMdcBNqvpomHjhnKuqAff5Xvdqq3XAalUd2oa4VUCZiEhIZjIQ+Mx97hTDs1vVVseZDXxLRE4UkRzgWrwL4L8jbP8Q8H28utC4uo2q6jq3vz+ISL6IHApcRotG4TbqAdQC20SkDPjPdthnqI14bR65Ubb5N15V0URggaouw7uofQ14O8p+B0mYxuTWUtXVeCWg34RZ3QOvjeMrIFtE/huvRBIrHReLyAgR6YbXRvVUSAkxeNxYf9e2fMf/FJFertrsaiDeXnSPAZeKyFgRycOrQpqvqmtacey2WoB34b1ZRArduTjKrbsXmCYiIwFEpKeInBNpRyGZSKu54+55uXTtEK+TQIGI+ERklIgcHsfu5gF+4EoRyRaRM/B+30EbgRIR6dnW9HYEy0g6iKp+gtfu8We8O87v4HUTboiw/b/w6os/aOU/6QV4DZHr8RrxrlfV19qe8j1uxGuY3Q78A3gm+uat9gbeHfKGSG0orh3hA7w7/uB5m4dX3bEpwn6fdO/VIvJBhG3ipqrvhjR4hnoFr4fNp3hVKbtpXkURKR0P4zW0bgDygasIL9rftS3f8XlgEbAE7+85I55Iri3jv4Cn8S7qg2neFpA0LoP9DjAEr1Raidf2iKo+C9wCzBKRHcBHeA3V7a0Mrwo49HWgS9dYYDXe//ffgJgXf/c7PgvvxmAb3jXiRbybTFT1Y7wG+M9d+2K8VZAdStQmtkpbIvIG8Jiq/i3VaTHtT7yHGR+xv68JJSLzgXtV9YFUpyVeViJJU65YfBjxVzkYYzoh12Osv6vamgIcCryc6nS1hjW2pyERmYnXF//qFj11jDFdz8F4bajd8RrZz1bVqtQmqXWsassYY0xCrGrLGGNMQjKuaqt37946cODA2BsaY4zZY+nSpZtVtW+4dRmXkQwcOJA5c+akOhnGGNOplJWVhRshALCqLWOMMQmyjMQYY0xCLCMxxhiTEMtIjDHGJMQyEmOMMQmxjMQYY0xCLCNpJxVVdTz0/gYqqupSnRRjjOlQSc9I3Nj8i0XkRbd8g4h8KSJL3Ou0kG2nicgqEfkkdL5jERkvIhVu3fTgnMoikiciT7jw+S2m++wwFVV1XPXsSu57r4qrnl1pmYkxJqN0RInkamBFi7A7VHWse70EICIj8OY1GIk3BebdIXNX3wNMBYa61yku/DJgq6oOwZsq85akfpMIFlfW0OhXAgqNfmVxpY2zaIzJHEnNSESkHG9u5HjmWzgDmKWq9W4mulXARBEpBYpUdZ6bivIhvJFxg3Fmus9PAScGSysdaVx5D3J8QpZAjk8YV96jo5NgjDEpk+whUv4E/BJvGtJQV4rIJcBC4FpV3Yo389h7IdtUurBG97llOO59HYCqNonIdrz5o5vNsCciU/FKNJSVldHeRpcWMv3MoSyurGFceQ9Glxa2+zGMMSZdJa1EIiLfBjap6qIWq+7Bm55zLN5UnbcHo4TZjUYJjxaneYDqfao6QVUnlJSUxJH61htdWsglh/e3TMQYk3GSWbV1FHC6iKwBZgEniMgjqrpRVf2qGgDuZ+9E95VA6LC85XjzU1e6zy3Dm8URkWy8OZK3JOfrAP6w06sbY0xGS1pGoqrTVLVcVQfhNaK/oaoXuzaPoDOBj9znF4DzXU+sA/Ea1Re4mcJqRGSSa/+4BHg+JM4U9/lsd4ykzNTVbdmj7Pf4N6BpdzJ2b4wxnVYqhpG/VUTG4lVBrQF+DKCqy0RkNrAcaAKuUFW/i3M58CBQAMxxL4AZwMMisgqvJHJ+shLd1GsIvp1fUfD5y+waNjlZhzHGmE4n46baHTNmjLZpPhJV+s0+jUB+MZvPeLz9E2aMMWmsrKxskapOCLfOnmyPlwh1w88jd+MSsqs/TnVqjDEmbVhG0go7h01GfbkUrngi1Ukxxpi0YRlJK2h+MbsOOpWClS8gDTYMijHGgGUkrVY34jyyGndS8Nk/Up0UY4xJC5aRtFJjv7E09j6YbstnQYZ1VDDGmHAsI2ktEepGnEdu9Qpyvlqa6tQYY0zKWUbSBruGnE4gp5DCZY+lOinGGJNylpG0geYWsmvoGRR8NoesXckbkcUYYzoDy0jaqG7kBUigkW6fPJ3qpBhjTEpZRtJGTb2GUF860Wt0D/hjRzDGmC7KMpIE1I28kOza9eStezvVSWkzm2veGJOoVAza2GXsHnQC/m79KFz2GPUHHJ/q5LRacK75Rr+S49vA9DOH2nwqxphWsxJJIrJyqBt+LvmV7/LZyuWd7s7e5po3xrQHy0gStHP4uQQkm9Wv389971Vx1bMrO01mYnPNG2Pag2UkCQp068vy4uM5U96im+7sVHf2wbnmp04qtWotY0ybWUbSDmpGXUwP2cXZvnc63Z29zTVvjElU0jMSEfGJyGIRedEt9xaR10RkpXvvFbLtNBFZJSKfiMjJIeHjRaTCrZvuptzFTcv7hAufLyKDkv19wjlg+ES29RrNVd1fZ/rkwXZRNsZklI4okVwNrAhZvg54XVWHAq+7ZURkBN5UuSOBU4C7RcTn4twDTMWbx32oWw9wGbBVVYcAdwC3JPerRKbjptC7vpIJTYtTlQRjjEmJpGYkIlIOfAv4W0jwGcBM93kmMDkkfJaq1qvqamAVMFFESoEiVZ2n3rzAD7WIE9zXU8CJwdJKR9t14En4u/WlcNkjqTi8McakTLJLJH8CfgkEQsL2U9UqAPfez4WXAetCtqt0YWXuc8vwZnFUtQnYDpS0TISITBWRhSKysLq6OsGvFIEvl7oR55O/7h2yt32enGMYY0waSlpGIiLfBjap6qJ4o4QJ0yjh0eI0D1C9T1UnqOqEkpJ98pl2s3P4ed5UvBUPJe0YxhiTbpJZIjkKOF1E1gCzgBNE5BFgo6uuwr1vcttXAgND4pcD6114eZjwZnFEJBvoCaRsON5AQQk7h3ybgk+fR3ZvTVUyjDGmQyUtI1HVaaparqqD8BrR31DVi4EXgClusynA8+7zC8D5rifWgXiN6gtc9VeNiExy7R+XtIgT3NfZ7hgpnbawbvQUsvy7KVzxZCqTYYwxHSYVz5HcDJwkIiuBk9wyqroMmA0sB14GrlDV4LC6l+M12K8CPgPmuPAZQImIrAJ+jusBlkpNvYexu+xICpc9Cv6GVCfHGGOSTlJ8A9/hxowZo3PmzIm9YQLy1r5Nycs/Zuvxt7Br6OlJPZYxxnSEsrKyRao6Idw6e7I9CeoHHk1j8WAKK2ZChmXUxpjMYxlJMkgWdaMvIXfzcnKr3k91aowxJqksI0mSnUNPx5/fi+5LH0h1UowxJqksI0mW7HzqRl5E/tq5ZG9dlerUGGNM0lhGkkQ7R15IwJdP4dIHU50UY4xJGstIkiiQ34tdB59Jt5UvkLVzU+wIxhjTCVlGkmS1o6dAoInCjx5NdVI6VEVVXaebetgY0zaWkSSZv+cB7D7wJAqXz0Ia2v+imo4X7IqqOq56dmWnm3rYGNM2lpF0gNoxPyCrYQfdPm7fYVPS9YK9uLKGRr8SUDrV1MPGmLaxjKQDNPYbQ33p4XSvmNmuw6ak6wV7XHkPcnxCltDpph42xrSeZSQdpHbsj/DVbaBg1Yvtts90vWCPLi1k+plDmTqplOlnDrWph43p4rJTnYBMsdA3jrEFQyhceB+7hp4BWb7YkWIIXrAXV9YwrrxHWl2wR5cWplV6jDHJYyWSDlBRVcdVz63idztOpXvdF2xc8lK77Xt0aSGXHN7fLtrGmJSxjKQDBNsyXvJPZI3uR//lM2wwR2NMl2EZSQcItmWo+JgR+A6lOz8h98t5ccdPxy6+xhgTlMw52/NFZIGIfCgiy0TkRhd+g4h8KSJL3Ou0kDjTRGSViHwiIieHhI8XkQq3brqbKRE3m+ITLny+iAxK1vdJRGjj8zHfuRR/t770WHJfXHHTtYuvMcYEJbNEUg+coKpjgLHAKSIyya27Q1XHutdLACIyAm9K3pHAKcDdIhJskb4HmIo3/e5Qtx7gMmCrqg4B7gBuSeL3SUiwLWNkeW9qD/0Beevnk7vhAyB6iSNdu/gaY0xQMudsV1WtdYs57hWtYeAMYJaq1qvqarxpdSeKSClQpKrz3HzsDwGTQ+LMdJ+fAk4MllbS2c7h53pDzC++N2aJI127+BpjTFBS20hExCciS4BNwGuqOt+tulJElorI30WklwsrA9aFRK90YWXuc8vwZnFUtQnYDpSEScdUEVkoIgurq6vb58slQHO6UTf6++Sve4f1ny6MWuKwZzKMMekuqRmJqvpVdSxQjle6GIVXTTUYr7qrCrjdbR6uJKFRwqPFaZmO+1R1gqpOKCnZJ59JibqRFxLILeK07U/ELHFYF19jTDrrkF5bqroNmAucoqobXQYTAO4HJrrNKoGBIdHKgfUuvDxMeLM4IpIN9AS2JOdbtC/N7U7dqIvZb8Ob3Di+ngkDe3D1MeWWWRhjOp1k9trqKyLF7nMB8A3gY9fmEXQm8JH7/AJwvuuJdSBeo/oCVa0CakRkkmv/uAR4PiTOFPf5bOAN147SKdSO+h5Nvm4ULb6XhetquPPtyi7TK8u6LBuTOZI5REopMNP1vMoCZqvqiyLysIiMxauCWgP8GEBVl4nIbGA50ARcoap+t6/LgQeBAmCOewHMAB4WkVV4JZHzk/h92p3mF7Ogz2RO2fA4g6nkM385iytrOn2pJNiBoNGv5Pg2WNuOMV1c0jISVV0KjAsT/r0ocW4CbgoTvhAYFSZ8N3BOYilNrd1jfsCuDc9wVfYz/EKv7hK9ssJ1WbaMxJiuy55sT7FDBpWxcegFfNs3nxnfyOoSF1zrsmxMZrGMJA10O/JHaE4B49c+mOqktAvrsmxMZrGMJA0E8ntRN/Ji8j9/mewtK1OdnHZhXZaNyRyWkaSJukO/j+YU0OODu1OdFGOMaRXLSNJEIL8XdaO+R8HnL5Nd/XGqk5Mw6/5rTOawjCSN1B56KYHcHvRY+OdUJyUhNmKxMZnFMpI0onk9qT30Ugq+eIOcTUv3hHe2u3sbsdiYzGIZSZqpG3UJ/vxe9Fg4Heicd/fW/deYzJLMJ9tNG2huIbVjf0TP924lt+p9FlcO7HQP9wW7/y6urGFceY+0T68xJjFWIklDdSMu8GZRfP9OxpV1t7t7Y0xasxJJOsrOp+awn1L87o1MaFrI9DMP71R39zbWljGZxUokaWrnId+lqWh/ihbcwej+BZ3q4T5rbDcms7QqIxGRXiJyaLISY0Jk5bDj8KvJ2fIpBateTHVqWsUa243JLDEzEhGZKyJFItIb+BB4QET+mPykmd0HnUJDyXCvB5e/ISnHSEbXYhtry5jMEk+JpKeq7gDOAh5Q1fF4k1SZZJMsar52Ldk1X1K4Yna77z6ZXYttrC1jMkc8GUm2m9XwXKBz1bF0AfVlR1I/YBLdP7gbaaht131bW4Yxpj3Ek5HcCLwCrFLV90XkICDmELUiki8iC0TkQxFZJiI3uvDeIvKaiKx0771C4kwTkVUi8omInBwSPl5EKty66W7KXdy0vE+48PkiMqiV3z/9ibDja7/At3sr3Zf8rV13bW0Zxpj2EDUjcdPkDlTVQ1X1pwCq+rmqfjeOfdcDJ6jqGGAscIqITAKuA15X1aHA624ZERmBN1XuSOAU4G53fIB7gKl487gPdesBLgO2quoQ4A7glri+dSfT2HckO4d8m+4VD5JVu6Hd9mttGcaY9hA1I3Fzpp/elh2rJ1gXk+NeCpwBzHThM4HJ7vMZwCxVrVfV1cAqYKKrVitS1XmqqsBDLeIE9/UUcGKwtNLV1Bx+DWiAIjd0SnuxtgxjTKLiqdr6t4jcJSJfF5HDgq94di4iPhFZAmwCXlPV+cB+qloF4N77uc3LgHUh0StdWJn73DK8WRxVbQK2AyVh0jFVRBaKyMLq6up4kp52/D3KvGHmP32uSwwzb4zpOuLJSI7Eq276LXC7e90Wz85V1a+qY4FyvNLFqCibhytJaJTwaHFapuM+VZ2gqhNKSvbJZzqNmnFT0bwiit77X9B9vqYxxqREzCFSVPX4RA+iqttEZC5e28ZGESlV1SpXbbXJbVYJDAyJVg6sd+HlYcJD41SKSDbQE9iSaHrTleb1pOawy+k572by1r1F/f7HpTpJxhgT35PtIvItEfmliPx38BVHnL4iUuw+F+A9e/Ix8AIwxW02BXjefX4BON/1xDoQr1F9gav+qhGRSa7945IWcYL7Oht4w7WjdFl1Iy6gqecgiubdCoHGVCfHGGPierL9XuA84Gd4VUnnAAfEse9S4E0RWQq8j9dG8iJwM3CSiKwETnLLqOoyYDawHHgZuMI19gNcDvwNrwH+M2COC58BlIjIKuDnuB5gXZovl+2TfknO9tUULp+V6tQYYwwS6wZeRJaq6qEh792BZ1T1mx2TxPY1ZswYnTNnTuwN05kqvV/6Ibmbl7HxvDlofq/YcYwxJgFlZWWLVHVCuHXxVG3tcu87RWQA0Agc2F6JM20gwo4jfoU01NBj0V9SnZqwOtv0wMaYtotnPpIXXVvH/wIf4PWKat9HrE2rNfUexs5DzqFw+Sx2Dj+Xpt7DUp2kPSqq6rjymU9p8kO2r4q7zhpmz6kY04XFLJGo6v+o6jZVfRqvbeQQVf2v5CfNxFJz+NVobnd6/vsPadUdeM6Kahr93h1Ho99bNsZ0XREzEhG5WES+FxqmqvXAuSJyYdJTZmIK5Pdix4Sfkbf+PfJXv5rq5IRo+XhPlxxswBjjRCuRXAs8FyZ8lltn0sDO4efR2Ptgit67BWnaFTtCBzh1eG9yfILgDQZ56vDeqU6SMSaJomUkPlXdZ1xxF5aTvCSZVsnKZvtRvyG7toruS+5PdWoAb/yuu84ayo+PKOWus2wwSGO6umiN7TkiUqiqzbrdiEgPIDe5yTKt0VB6ODsHf4vuH85g57DJ+Iv2T3WSGF1aaBmIMRkiWolkBvBU6Bwf7vMst86kkR2Tfolm5dDzX79Lq4Z3Y0zXFzEjUdXb8IYieUtEqkVkM/AW8KKq/m9HJdDEJ1DYj5oJPyN/3Tvkr3kt1ckxxmSQWPOR3KuqB+B1+z1QVQ9Q1Xs6JmmmtepGXkRj74Pp+e8/II32IKAxpmPENWijqtaGa3g3aSYrm21HX4+vbgM9Ft2d6tQYYzJEXBmJ6Twa+4+j7uDvUlgxk+zqT1KdHGNMBoj2QOI57t3G1epkdnztWgJ5RRS/898Q8MeOYIwxCYhWIpnm3p/uiISY9qP5vdhxxDRyNy2lmw01b4xJsmjPkVSLyJvAgSLyQsuVqnp68pJlErVryLcpWPk8Re/fwe5BJxLo3r9Dj19RVcfiyhrGlfew50mM6eKilUi+hVcq2czeudpDX1GJyEAReVNEVojIMhG52oXfICJfisgS9zotJM40EVklIp+IyMkh4eNFpMKtm+5mSsTNpviEC58f+sxLxhNh+9HXQ8BPz3//rkMPXVFVx1XPruS+96q46tmVNpS8MV1ctOdIGlT1PeBIVX0Lbwj5Rar6lluOpQm4VlWHA5OAK0RkhFt3h6qOda+XANy684GReHO73y0iPrf9PcBUvOl3h7r1AJcBW1V1CHAHcEvc3zwD+IsGUjv+CgrWvE7+56902HEXV9bQ6FcCCo1+ZXGldfgzpiuLp9fWfiKyGPgIWC4ii0RkVKxIqlqlqh+4zzXACqAsSpQzgFmqWq+qq/Gm1Z0oIqVAkarOc/OxPwRMDokz031+CjgxWFoxntpDp9DQZwQ9//U/yO6tHXLMceU9yPEJWeIN2jiuvEeHHNcYkxrxZCT3AT93DyPujzfy732tOYirchoHzHdBV4rIUhH5u4gE54ktA9aFRKt0YWXuc8vwZnFUtQnYDpSEOf5UEVkoIgurqzNsboysHLYdexNZu7fTc97NHXLI0aWFXH1MORMG9uDqY8qtjcSYLi6ejKRQVd8MLqjqXCDuK4Ob4/1p4BpV3YFXTTUYGAtUsbe9JVxJQqOER4vTPED1PlWdoKoTSkr2yWe6vKaSQ6gd9yO6rXyBvLXx1EompqKqjjvfrmThuhrufLvS2kiM6eLiyUg+F5H/EpFB7vX/gNXx7FxEcvAykUdV9RkAVd2oqn5VDQD3AxPd5pXAwJDo5cB6F14eJrxZHBHJBnoCW+JJW6apGfcTGnsNofidG5CG5LZZWBuJMZklnozkB0Bf4Bn36gNcGiuSa6uYAaxQ1T+GhJeGbHYmXtsLwAvA+a4n1oF4jeoLVLUKqBGRSW6fl+ANJhmMM8V9Pht4w7WjmJZ8uV4V185NFCW5isvaSIzJLNGeIwFAVbcCV7Vh30cB3wMqRGSJC/s1cIGIjMWrgloD/NgdZ5mIzAaW4/X4ukJVg49lXw48CBQAc9wLvIzqYRFZhVcSOb8N6ezUWvO8RmO/Q6kd8yN6LPkruwd9g/oDjk9KmkaXFjL9zKH2HIkxGUIy7QZ+zJgxOmfOnNgbdgLB5zUa/UqOT5h+ZhyzEfob6PvsOWTt2sKmc15A83tF394YY4CysrJFqjoh3DobtLETa1NbhC+XrcfdTNbubd4kWMYYkyDLSDqxtrZFNPUZTs34n9Lts5fI/+ylJKfSGNPVxcxIRGSYiLwuIh+55UNdzy2TYsG2iKmTSuOr1gpRO/ZHNPQ7lOJ3biSrdkMSU2mM6eriKZHcjzfmViOAqi4lAxu109Xo0kIuObx/6xu0s7LZevytEGii19xpoIHkJNAY0+XFk5F0U9UFLcKakpEY07H8PQ9gx5HTyFv/HoUVM2NHaIWKqjoeen+DPYxoTAaI2f0X2Cwig3FPjIvI2XhPpJsuYOfB3yVv7VyKFtxB/YBJNPUZnvA+m/cm29DqarfgPqz7sDGdQzwlkiuAvwKHiMiXwDV4z3WYrkCE7cf8D4H8Ynq9fi3SuDPhXSb6ZLsNQ29M5xIzI1HVz1X1G3hPtx+iqker6pqkp8x0mEB+L7YefyvZ29dQ9O+bEt5fok+2L66soaHJZURNNsSKMekunl5bvxeRYlWtU9UaEeklIvYAQhfTUDaJ2rFTKfzkGfJX/SOhfSXSmwygqCB7z8ibAbdsjElf8VRtnaqq24ILbsiU0yJvbjqrmglX0LDfWIrfuR7fjnWxI0TR5t5kwI5dTXuGdRa3bIxJX/FkJD4RyQsuiEgBkBdle9NZZeWw9YTbQHz0+ud/sKxyS0p6Xo0r70Futlc1lpttgz4ak+7iqTN4BHhdRB7A67n1A/bOSmi6GH+PMrYd93t6v3olX714Pfc1/qDNPa/aKtagj9ajy5j0Es/ov7eKSAVwIl5Nw/+oasdNAG463O5BJzK/33lcuOkJ3pNDeNF/JIsrazr0oj26tDDs8Sqq6rjymZU0+ZVs3wbuOqvjMjhjTHhxtWKqaujQ7SYDbD/8P1j04hL+kHM/K/2DGFc+LNVJAmDOii00+r2m+Ea/MmfFFstIjEmxiG0kIvKue68RkR0hrxoR2dFxSTSpMKqsJzUn/RHJyefJ4r9waNrMUNxy2oPMmgbBmHQUMSNR1aPdew9VLQp59VDVoo5LokmVYQcdxM6T/0Rh3RcUv/VrSIO5a04dXkKOz6tjzfF5y8aY1Iraa0tEsoKj/raWiAwUkTdFZIWILBORq114bxF5TURWuvdeIXGmicgqEflERE4OCR8vIhVu3XQ35S5uWt4nXPh8ERnUlrSayBrKJrFj4rUUrH6V7h/OSHVyGF1ayF1nDePHR5Ry11nDrFrLmDQQNSNR1QDwoYjs34Z9NwHXqupwYBJwhYiMAK4DXlfVocDrbhm37nxgJHAKcLeI+Ny+7gGm4s3jPtStB7gM2KqqQ4A7gFvakE4TQ92hl7LroFPo8f4d5FX+K9XJSegZFWNM+4vnOZJSYJmbk+SF4CtWJFWtUtUP3OcaYAVQBpzB3u7DM4HJ7vMZwCxVrVfV1cAqYKKIlAJFqjpPvXmBH2oRJ7ivp4ATg6UVk7g9I/hu2Mm2Y39HU/Fger1+Lb7tX6Q6acaYNBJPr60bEz2Iq3IaB8wH9lPVKvAyGxHp5zYrA94LiVbpwhrd55bhwTjr3L6aRGQ7UAJsbnH8qXglGsrKyjCxhRvBd+zJf6Hvs+fQ+5Ur2Dz5cTTXHhQ0xkTvtZUvItcA5wCHAP9S1beCr3gPICLdgaeBa1Q1Wm+vcCUJjRIeLU7zANX7VHWCqk4oKbHG2XiEG8HXXzSQLSfdSfb2L+j1xn9CwJ/qZBpj0kC0qq2ZwASgAjgVuL21OxeRHLxM5FFVfcYFb3TVVbj3TS68EhgYEr0cWO/Cy8OEN4sjItlAT2BLa9Np9hVpBN+GAV9j+1G/Jn/tWxQt+GOKU2mMSQfRqrZGqOpoABGZAbScJTEq11YxA1ihqqFXnBeAKcDN7v35kPDHROSPwAC8RvUFqup3z65MwqsauwT4c4t9zQPOBt5w7SgmTpGGG4k2TMnOEReQs2Ul3Zf+naaeB7Bz+Ln77Pe5jzYzd9U2jhtSzORRfTrkuxhjUiNaRtIY/ODaH1q776OA7wEVIrLEhf0aLwOZLSKXAWvxqs5Q1WUiMhtYjtfj6wpVDdadXA48CBTgPWEffMp+BvCwiKzCK4nYXPKtEGsmw0jDlABsP/LX+Goq6fnub/H3KKO+/Kg96577aDO3vuGNHrxgrTeXiGUmxnRd0TKSMSFPsAtQ4JYF0FgPJarqu4RvwwBv3K5wcW4C9plZSVUXAqPChO/GZUSm9cK1g8TdpTYrm60n/pE+L1xEr9euYfMZj9LU2xtGZe6qbc02nbtq2z4ZiQ28aEzXEe3Jdl+Lp9mz7cn2rmVceQ98WYIAvqzWD9euud3Zcso9aHY+vef8hKy6jQAcN6S42XYtl+OZSndP12ObZjfp7FybRMXzHInp0rTFe/wqqup4YEUW8yf8iayG7ZTM+THSUMPgkgJ87pfly4LBJQXN4sWaStfmbO84dq5Ne7CMJIMtrqzBH/CyEH+AVs2NHnoBuvRNHx8cdivZWz+j96s/Y+na6j3Dcqnuu99YU+mGq3LrDDrjnX1nPdcmvVhGksEidfGNR8sL0D8bRrLt2N+Rt34+F391GzlZGrHKLNZUuomkK5ZkXew76519Ms+1yRxxzUdiuqbRpYVcfUz5nm66rWn09i5AG1yPL+8CtKv0DLJ2baZ0/m1cnxXgN/4fRIybm908bst0RZshsa1i9VJLREIdF1IoWefaZBbLSDJYRVUdd75dSaNf+XB9LYNLCuK+kES6ANWNuYzlq7/kwk2Ps0W780f/eftcVOO5eEXretxWybzYh8tYO4tknGuTWSwjyWCJXlgjXYB2TPw5jz+/kSuzn6eGQsaV/zzuuMmUzIu93dmbTGYZSQZL1oX1sy27ua3xB3RnJ9OyH+Ptj/aD0qntsm+I/QxKW57WN8a0nWUkGSzRC2ukYVDmrtpGgCz+o/Gn5NHIN1ffwbYVxWGHUmmtWO0ciTytn8x0GdOVWa+tDNfWSaKCw6AsWFvDrW+s47mP9o7cH3wAsYlsrmy8ii+KJ9HznRso+OTZPdvE6j0VaX2sZ1BirU8W60ZrMpmVSEybzF68aZ/lYKkk+B4sreQcci/1r/yU4rd+AyIs6HFSm0sVsZ5BibU+WTpzY7sxibKMxCTF5FF9mlV3bT35Lnq9ciXFc3+Nf/9qGv2HRWzkj9YJIPgMSnCimpbPoMRanyzW/mIymVVtmTY5d1y/qMstaXYBW07+C/UDj+a0tbfxvex/RnwILtpDcuPKe5Dt88YHy44QNzfbi5ub3bElA5tL3mQqK5GYiKL1jhpcUkAWXvVRFvuOpxVWdj5bTvozvf95NTeu/TvH7J9H02GX7bPv2Hf3kccHs5KBMR3PMhITVqxeSI8u2kDAfQ645Zu/PTj2jrPz2HLSdHq9+StO/PweavaDmv4/gxbz3UTqXbW4soYmvxsfzE/YZ1/sATtjOlbSqrZE5O8isklEPgoJu0FEvhSRJe51Wsi6aSKySkQ+EZGTQ8LHi0iFWzfdzbyIiOSJyBMufL6IDErWd8lEsXohrd1aH3U5aq8sXy5bT7iNuoPPoscH91A07w+ggX23CyNVjenGmMiS2UbyIHBKmPA7VHWse70EICIj8GY3HOni3C0iPrf9PcBUvKl3h4bs8zJgq6oOAe4AbknWF8lEsQbz279XXsTluAYwzPKx/ZjfUTt6Ct0/epjiN34J/oaY6QptPO/IxnRjTGRJy0hU9W286W/jcQYwS1XrVXU1sAqYKCKlQJGqznNzsT8ETA6JM9N9fgo4MVhaMYkLtjVMnVQa9uG6i8b3J8ud7SzxloPifqZChB2TfsWOiT+n22f/oOTlHyMNtVHTFVoCUaxEYkw6SEWvrStFZKmr+urlwsqAdSHbVLqwMve5ZXizOKraBGwHSsIdUESmishCEVlYXV3dft+ki4vVC8mXhRsqvnl4q4YmF6F27I/YetwfyF2/kD7/dwlZdZsibh5rCHpjTMfr6IzkHmAwMBaoAm534eFKEholPFqcfQNV71PVCao6oaQkbF6Tsdo6P0doo3eTv/nkVbFKM+HsGjaZLafcjW/HF/R97jyyqz8Ou10qu/caY8Lr0HoBVd0Y/Cwi9wMvusVKYGDIpuXAehdeHiY8NE6liGQDPYm/Ks2Q2PhQoY3e4aqY2tJzqn7g19l8+qOUvPwT+rxwEVtP/CP1+x+7z36te68x6aVDSySuzSPoTCDYo+sF4HzXE+tAvEb1BapaBdSIyCTX/nEJ8HxInCnu89nAG64dxcQpkfGhQquYsmi/KqamkkP4avITNBUdQO9Xfkrh0gehxZ/VHvwzJr0ks/vv48A84GARqRSRy4BbXVfepcDxwH8AqOoyYDawHHgZuEJV/W5XlwN/w2uA/wyY48JnACUisgr4OXBdsr5LV5XINKuhVUw5YaqYEpnSNlC4H9WnP8zuA06g53u3UDx3GjTVx44Yh844r3qiMvE7m44lmXYTP2bMGJ0zZ07sDTNEtKfX2zrvR/MqM2n7kOoaoPsH91C06C4a+h7Klm9OJ1C4X+v3097p6kQy8Tub5CgrK1ukqhPCrbOxtkxY8TwLEqmKqT2Gcq+oquOhhZuYN+D7bDlpOtlbV9H36bPI/fK9hDoIZNpQ75n4nU3Hs074GSxaY3s80/BGKpEk+vT5vuk6knFnzqbXa1dR8o/LqPCfx31N3ybHl9WqO+xkD/UeqwSXCja8vekIlpFksGiZRawLUEVVHVc+s5Imv5Lt28BdZ+29oCc6lHvYdB0+mM2TZ7PtuV/wi22PM46P+WXTj1s1z3wye3yl6wyJ1svNdATLSDJYtMwi1gVozootNPq9ckejX5mzYkuzTCg3u+13wZHSpbmFrD36f5n93F+4zvcI/8idxtr8m4H+0XcYIlkDOsZTgksVG8TSJJtlJBksVmYR7QK0ZWdDxOVE74Kjxf9sy24eaPomC/zD+HPOdCbMu5y63VOpGf9TyMpp1XHak1UhmUxmGUmGa/vdasuBBeIbBj7RdM1dtQ2AZTqI7zTcxF+KH+W4xfeSV/kuW4+/FX/xgW0+ZiKsCslkMuu1ZdqoZbfxjulGftyQ4j2f6yhg+WE3suUbd+LbUUnfp8+i8KNH4h6SPpxEnrmwByVNprISiWmT3t1yoy4ny+CSAnxZ4A94g0UOLilgd+k3aeg/luK3/h89/30T+atfYdsxv8Pf84BW7TtdG8yNSXdWIjERRbs7P3V4b7LdOPLZWcKpw3t3SJoWV9YQcAUODewdLDLQrR9bTvkrW4/9PTnVn9D3qckULn0AAvH3GLNnLoxpG8tITFhe995P+eu8Kq585tOwmYmIIu69o0R9RkWEXQefydvHzuazwsPo+d6t9H32XHI2VezZJFrmmMiQMcZkMqvaMmHNWVFNoxvtrNHvLYdW8yyurMEfcHOnB8LPnZ4MsZ5Rqaiq46o522j0X8Fp2V/jtrpH6PPceewccQHvDfwhV/1jY8SqK2swN6ZtrERiIojeKytVd++x5iPZOzyL8FLj4dw97AHqRl5EtxWzOOL1MzlLXwcNRBy6JVaD+XMfbeaa51bx3Eebk/L9jOmMrERiwjp1eG9eXF5NU0DDtoGk6u491nFbVn3ld+/JjlG/Yech36Xp1ev5Q9PfuND3T25qupiigoH77D+a5z7azK1veBN5LljrZUKTR/VJ9CsZ0+lZRmIiitUGkqonpqMd99NNu8IuN5UcwkOD/0TVgqf5Zc4sZuX+jpUfvUF2+W9oKj4oruMGn2EJXbaMJLp0HH/MtD+r2jJhhWsD6RwiP98ybmARL2cdzTcabud2/3kcuPND+j75HXq+9Rt8teuJZWjfgqjLNu9Hc/GMIG26BiuRmLA665Afpw4v4R8rqmnyQ7bPWw4KrRYbVf6fbC7+Gd0X30fh8sfptvL/qBtxPgtLL+S9zflh76Dr6gMRl+0ZlH2l8/hjpn0lc4bEv4vIJhH5KCSst4i8JiIr3XuvkHXTRGSViHwiIieHhI93syquEpHpbspd3LS8T7jw+SIyKFnfJRMFL7pTJ5V2qovi6NJC7jprGD8+opS7zhoWdvywYGN6oKCEHUdOY9P5L7Nz6Ol0W/YYR7x6OgPe/z2/e2ZemDvoyKWd9piDpaux7tSZI5lVWw8Cp7QIuw54XVWHAq+7ZURkBHA+MNLFuVtEfC7OPcBUvHnch4bs8zJgq6oOAe4AbknaN8lQXXHIj3C9rvzdB7D92N9x0/4zeMZ/NBf43uD17GsonjuN7K2r9mw3rF+3ZvsKXU50DpauqLPejJjWS9qvXVXfDlNKOAM4zn2eCcwFfuXCZ6lqPbDazcM+UUTWAEWqOg9ARB4CJuPN234GcIPb11PAXSIimmlzB5tmolUxxep1tbKxLzOafsRdTZP5YfZLXFg7l7wnX2P3/sdSO+oSXl3RvOfaqx9X74mf6BwsXZUNYZ8ZOrqxfT9VrQJw7/1ceBmwLmS7ShdW5j63DG8WR1WbgO1ACWGIyFQRWSgiC6urq9vpq5h0FK2KKVyvq1C9u3n3VV/SlxubpvDbQQ+zY/yV5GyqoM9Ll3H71qu40Pc63dgNwPodjXvixnq+BTKzMT4Tv3MmSpfyd8un32DvzV248Ghx9g1UvQ+4D2DMmDFWYunColUxDe1bsKckElwOderwEv5vefWeASGPGXUQtaWjqR3zQwo+n0PBezP4PTOYlv0Yz/uPZNv+5+yJG+v5lkxsjM/E75ypOrpEslFESgHc+yYXXgmEPh1WDqx34eVhwpvFEZFsoCewJWkpN62SqjvRSM+RAKzbWt9sXctlgCzx7lCyQm9TsvPYNWwyfO8F/nrgnbzrm8h5Oe9w5ec/oc/TZ1H40cNk7d4aNV2hJaWGDGmMt0EwM0dHZyQvAFPc5ynA8yHh57ueWAfiNaovcNVfNSIyyfXWuqRFnOC+zgbesPaR9JDa5wci96z6qq6x2ZqWyzGfnRHhOyd9kzE/vJfN33uL7Uf+BkTo+e/f0+/hY8h5fiobFjzFdc9W7POdQ0tKSmY0xluvrcyRtF+ziDyO17DeR0QqgeuBm4HZInIZsBY4B0BVl4nIbGA50ARcoapuyEAux+sBVoDXyD7Hhc8AHnYN81vwen2ZNJDK5weiPUcysDiPFRt3NlsOFc+zM899tJm5q7Zx3JBiJo+6mLpRF5Nd/Qmr33mM4Rv/yQk5H7BT81j7ztcoOOx0du9/LJrbnffW7Gi2n/fW7OjyT8XbIJiZI5m9ti6IsOrECNvfBNwUJnwhMCpM+G5cRmTSSyofZgw+RxLu4rWtRU+qlsuxLnyRen01lRzMoiE/4/y1p3O4fMJ3fPM4q+4DCt94G83KoX7A15i0ZTifyygqtS8Am1uUhroq67WVGbp++dp0uFTfiUa6eMVqbI8WF2D24k37LId2/4UsFuhwFjYN58uR0/jh/hvIX/0a+Wvn8tPd7/LTPFgVGMA7gdH4en4daShHc+0iazo/y0hMUqTjnWhdvT/qciK87r8hpbCBPWnoP4CG/oex44hf8cDL8wh89gZfz6rgfN+bFKx9BZ15PY19R1JfejgNpRNo6DcWzS9u0/FtcESTSpaRmC4n8kU1+hwrsRx1UE/WLNrUbDlodGkhVx9Tvqf9pOXFfO6Wnqz0n8YM/2nk0cAZxav5r+EbyF3/Pt0rHkI+nAFAY/FgGvuNoaHfKBr7jqax9zDw5UbNKLzZLFfS5FeyfRu46yzrZmsZa8eyjMR0KdGeXSjMa95JseVyLNFKNBVVddzx1jqa/LD4yxoGlxQ0u4B9Vbu3PaaeXF7dPYJrDvf6h0jTLnI2VZC7cTG5Gz4gb+2bdPv0GQA0K4ea7gdSt60//sBAZi8cSN7JX2fYgQeCN+wcc1ZsodHv9Qlr9CtzVmzJ6ItnPBlr804TXbvTQ0ewjMR0KdF6jC2urG2xbe0+8aPfyUYu0cSamnhQ73yWrK9rthyk2QU0DJhIw4CJLkDx1XxJzlcV5FSv4KvPPuQoWcpZ2W976/95M4Gc7jQVD6Kp5yCO2dgTySpirfZjnfZja13zzg2ZdtGMlbHaBGXtzzIS06VE6zHWpzCn2bYtl2M9iT2sX/PG+ebL0avNLj+qjJ88+eme4RouP6qMiETwF5XjLypn9+BTWTXQS1d3/3aG+77k1+MaOMC/Dt+OL8jd8AGTa6s4K3fv8zJNVdnweH/83Uv5orEY34ZcRmsxn1T2ZOG2oUwaPohAfi8CecWQnRc5HZ1W5GeJwCYoSwbLSEyXEq3H2EXj9+Nfa7bvGQLlovH7NYsbfPpc2TtOV2j8aAMznjq8t3t+Rcn27Ts18WfVu5o9kPhZ9a64q5+af6cJFJcWsj1k/VVPfsSWDV+wv2yiXL5iXI/tnLpfA77aKnpsWcoU3xbyxXU3Xu5eTiC7AM3tQSCvB5pbRCCnEHWvQE43NDsfzSlAffmoLw+yc9GsHDQrB3zuXXyQ5UPFB5K156W4YQKQPdVwqHpnQEEIfg6EhAeQ4LIGAO+zaCDMtu69hUuL6glkb8AfAMnKYkpxOXlffLYnnRf23Ulg3WYayKGRbM4cUI6v5kvUl+t93+wCyGr7pTET22csIzFdTqQeY6NLC7n7u+GfMYHYQ8GPK+9Btm/DnswitLTjPb8Sucvzi8uq91luzV1wtF5wlbWwQQfwuQ4A4J/+HI44wXv06roXP+ftz7dRRB19ZAcnDPDz03F5ZO3eRlb9NrJ2b0MaashqqCGrfgdZ9duR2vVkNdYhjbuQpl1IoHM989IbmB76p1vYfP1kYHJoQWyJe4XQrBw0p5uXseZ29zLW3B4E8np6GW9+sVeqy++Fv6A3gYISAgV9+HBrDlc991nGjS9mGYnpcqLdEUa7IMc3FLy2eI9v330Ks6MuJ2JnQyDi8qRBRbz9+XZ20J0d2p2zDx7I7oNaWY0TaET8DYi/AZp2I4FGxN8IgSYvk1E/EvBDoAlQCPi90kazkkMIEYKlFK/UkhUS5n3WYMkG8UoSgtvWt7d0I8HOEi2rFVscW/2IKmjTnnRKoNF9L++74a9H/PVI024v83SZaFZjHdJQS1ZDLVm7qsnetpqsBi/DDaevZPO6r5gNWb2p0t70nD+IbkOH4O9RTlPR/vh7lIEvt3XnvxOwjMR0KYmMOLvPsyAtnsgPNxZXvPu+aHx/3l29g4B6A0JeNL5/a79aRIEWF+rQ5ccWbWy27rFFG1vfHuCqsjSnfe+sO3UVUKDJK8Ht3krWrmqydlXj27WZ6k1fsvTTz+nHFkZnrWH/zYvI2rS3RKcI/h4DaOp5IE3FB9JUPJim3kNp7DUEzStKKEmpPJ+WkZguJZFxvmI9kZ/o0C++LFC/996ehvTJZ8n6nc2Wg6pqGppt23I5VTr9sy9Z2QQKehMo6A29Bu8JzgcKhtfxtvsN5fYvIGvXZnw7viR7x1qyd6zFt/0LsrevptvHH5DVtPfv1lRYSmOf4TSVDKehzwga+40m0K1vXMlJ9ZD9lpGYLiXRi3206qlEhn5JpDQTy+VHlXP5U5/uKe1cftTemRdyfcKugDZbTgdd+dmXlr+hQLd+BLr1o7H/uOYbquKrqyJ7y6fkbFlJdvUn5FR/TP7aua5zgctc+h1KQ//DaOh/GI0lh4TtCJDKgVLBMhLTxSR7nK+2Dv2SzIEsR5cWcs/Z4TsR+APNq71aLqdO9C66GUEEf/cB+LsPoH7/4/YGN+4ku/oTcjd9SM5XFeRuXELB6lcACGR3o6F0PA2lE6kvm0RjyXDI8qV0oFSwjMR0Qek4zleqMrjueT627PQ3W04H0Yb7z3Sa043G/uOalWCyajeQu/ED8qoWkrt+AUXrbgfAn1dMffmRTCw/mntPm8D8r3JS0kYimTYX1JgxY3TOnDmxNzSmE4nU0Br6FDfAL08Y2K4P3yXy1HynbmxPsaydX5G3fj55694lr/Jf+HZtRhEa9xvD7v2PZ9eBJ+EvPrBdj1lWVrZIVSeEW5eSjERE1gA1gB9oUtUJItIbeAIYBKwBzlXVrW77acBlbvurVPUVFz6evZNevQRcHWuWRMtITFfTvKFV9mlojXWxb+sFPZ5MyjKLDqBKTvVy8r6YS/4Xb5K7eRkAjb2Gsuugk9k1+LR2yVSiZSSprNo6XlU3hyxfB7yuqjeLyHVu+VciMgJv9sORwADgnyIyzM2geA8wFXgPLyM5hb0zKBrTaul64YuWrlgNrZNH9YlYWkikt0+shyxT3ZOoq4n4GxChsc9IGvuMpHb8FWTVVlGw+jXyV79Kj0V/oWjRXTT0GcmuId9m15DTCHTr1+5pS6c2kjPwpuYFmAnMBX7lwmepaj2w2k2tO9GVaopUdR6AiDyE99CqZSSmTdL1whcrXYk0tCbS2yfW2GWp7knUlbTmtxnoXkrd6EuoG30JWXWbKPjsJQpWvUjP925BfTnsHHlRu6cvVRmJAq+KiAJ/VdX7gP1UtQpAVatEJJhtluGVOIIqXVij+9wyfB8iMhWv5EJZWZTB8kxGS9cLX6x0JdKQn0gmFGvsslT3JOpK2vrbDBT2o+7Q71N36PfxbVvtPfeSBKnKSI5S1fUus3hNRD6Osm24ju8aJXzfQC+jug+8NpLWJtZkhnS98MWTrrb2VEskE4o1dlmqp1zuStrjt9neje+hUpKRqOp6975JRJ4FJgIbRaTUlUZKgeBUdJXAwJDo5cB6F14eJtyYNknXC1+6PhsTT9x07IrdGaXrbzOowzMSESkEslS1xn3+JvBb4AVgCnCze3/eRXkBeExE/ojX2D4UWKCqfhGpEZFJwHzgEuDPHfttTFeTrhe+dE2X6Tjp/BtIRYlkP+BZ8UbwzAYeU9WXReR9YLaIXAasBc4BUNVlIjIbbxaFJuAK12ML4HL2dv+dgzW0G2NMh+vwjERVPwfGhAmvBk6MEOcm4KYw4QuBUe2dRmOMMfFr53FIjTHGZBrLSIwxxiTEMhJjjDEJsYzEGGNMQjJu9F8R+Qr4oo3R+wCbY27V8SxdrWPpar10TZulq3USSdcBqhp2ysaMy0gSISILI41+mUqWrtaxdLVeuqbN0tU6yUqXVW0ZY4xJiGUkxhhjEmIZSevcl+oERGDpah1LV+ula9osXa2TlHRZG4kxxpiEWInEGGNMQiwjMcYYkxDLSCIQkb+LyCYR+Sgk7AYR+VJElrjXaSlI10AReVNEVojIMhG52oX3FpHXRGSle++VJulK6TkTkXwRWSAiH7p03ejCU32+IqUr5b8xlw6fiCwWkRfdckrPV5R0pfx8icgaEalwx1/owlJ+viKkKynny9pIIhCRY4Ba4CFVHeXCbgBqVfW2FKarFChV1Q9EpAewCG+u+u8DW1T1ZhG5Duilqr9Kg3SdSwrPmXjzFRSqaq2I5ADvAlcDZ5Ha8xUpXaeQ4t+YS9/PgQlAkap+W0RuJYXnK0q6biD1/5NrgAmqujkkLOXnK0K6biAJ58tKJBGo6tvAllSnoyVVrVLVD9znGmAF3lz1ZwAz3WYz8S7i6ZCulFJPrVvMcS8l9ecrUrpSTkTKgW8BfwsJTun5gojpSlcpP18dyTKS1rtSRJa6qq+UFO+DRGQQMA5vhsj9VLUKvIs60C9N0gUpPmeuOmQJ3vTNr6lqWpyvCOmC1P/G/gT8EgiEhKX8fEVIF6T+fCnwqogsEpGpLiwdzle4dEESzpdlJK1zDzAYGAtUAbenKiEi0h14GrhGVXekKh0thUlXys+ZqvpVdSxQDkwUkbSYDC1CulJ6vkTk28AmVV3UkceNJUq6Uv77Ao5S1cOAU4ErXLV4OgiXrqScL8tIWkFVN7p//gBwPzAxFelwdepPA4+q6jMueKNrpwi2V2xKh3SlyzlzadkGzMVrh0j5+QqXrjQ4X0cBp7v69VnACSLyCKk/X2HTlQbnC1Vd7943Ac+6NKT6fIVNV7LOl2UkrRD8YThnAh9F2jaJaRBgBrBCVf8YsuoFYIr7PAV4Ph3SlepzJiJ9RaTYfS4AvgF8TOrPV9h0pfp8qeo0VS1X1UHA+cAbqnoxKT5fkdKV6vMlIoWucwkiUgh806Uh1b+vsOlK1vnq8DnbOwsReRw4DugjIpXA9cBxIjIWr+5xDfDjFCTtKOB7QIWrXwf4NXAzMFtELgPWAuekSbouSPE5KwVmiogP78Zptqq+KCLzSO35ipSuh9PgNxZOqn9fkdya4vO1H/Csdx9FNvCYqr4sIu+T2vMVKV1J+X1Z919jjDEJsaotY4wxCbGMxBhjTEIsIzHGGJMQy0iMMcYkxDISY4wxCbGMxBi8YV0kZKTnkPDfisg3YsS9QUR+kbzUGZPe7DkSY6JQ1f9OdRqMSXdWIjFmL5+I3C/e/CCvikiBiDwoImcDiMhpIvKxiLwrItPFzYnhjBCRuSLyuYhc5bb/ZcjnO0TkDff5RDfsCCJyj4gslOZzkpwoIs8GdywiJ4nIM7TgSkIzXVrXiMhZInKreHNQvOyGrAnOS3GLePOfLBCRIS58sIi8JyLvu5JXbctjGBMPy0iM2Wso8BdVHQlsA74bXCEi+cBfgVNV9Wigb4u4hwAn441ddL27iL8NfN2tnwB0d+FHA++48N+o6gTgUOBYETkUeAMYLiLBY1wKPBAhzYPxhlY/A3gEeFNVRwO7XHjQDlWdCNyFN4ouwJ3Anap6OLA++qkxJjLLSIzZa7WqLnGfFwGDQtYdAnyuqqvd8uMt4v5DVevdJEKb8IaoWASMd2Me1QPz8DKUr7M3IzlXRD4AFgMjgRHqDTfxMHCxG4/rCGBOhDTPUdVGoALwAS+78IoW6X885P0I9/kI4En3+bEI+zcmJmsjMWav+pDPfqAgZFlaGTdbVRvdaLWXAv8GlgLH45UiVojIgcAvgMNVdauIPAjku308APwfsBt4UlWbROQK4EdufXCK1HoAVQ2ISKPuHfMoQPP/b43w2ZiEWYnEmPh8DBwk3qRdAOfFGe9tvMzibbxSyE+AJe6CXwTUAdtFZD+8eSOAPUOArwf+H/CgC/uLqo51r9ZWRZ0X8j7PfX6PvdV357dyf8bsYSUSY+KgqrtE5KfAyyKyGVgQZ9R3gN8A81S1TkR2uzBU9UMRWQwsAz4H/tUi7qNAX1Vd3g5fIU9E5uPdPF7gwq4BHhGRa4F/ANvb4TgmA9nov8bESUS6q2qtm3vlL8BKVb0jice7C1isqjMS3M8aYIJrvwkN7wbsUlUVkfOBC1T1jESOZTKTlUiMid+PRGQKkIvXOP7XZB1IRBbhVXtdm6xjAOOBu1zGuA34QRKPZbowK5EYY4xJiDW2G2OMSYhlJMYYYxJiGYkxxpiEWEZijDEmIZaRGGOMScj/B41kdnX8dWerAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# Create 11 order polynomial model with the variables x and y from above?\n", | |
"f1=np.polyfit(x,y,11)\n", | |
"p1=np.poly1d(f)\n", | |
"print(p1)\n", | |
"PlotPolly(p1, x, y, 'highway-mpg')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<details><summary>Click here for the solution</summary>\n", | |
"\n", | |
"```python\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(p1)\n", | |
"PlotPolly(p1,x,y, 'Highway MPG')\n", | |
"\n", | |
"```\n", | |
"\n", | |
"</details>\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>\n" | |
] | |
}, | |
{ | |
"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", | |
"$$\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can perform a polynomial transform on multiple features. First, we import the module:\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 50, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.preprocessing import PolynomialFeatures" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We create a <b>PolynomialFeatures</b> object of degree 2: \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 51, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)" | |
] | |
}, | |
"execution_count": 51, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pr=PolynomialFeatures(degree=2)\n", | |
"pr" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 52, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"Z_pr=pr.fit_transform(Z)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The original data is of 201 samples and 4 features \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 53, | |
"metadata": {}, | |
"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\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 54, | |
"metadata": {}, | |
"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>\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 55, | |
"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.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 56, | |
"metadata": {}, | |
"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 \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 57, | |
"metadata": {}, | |
"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": 57, | |
"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. \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 58, | |
"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" | |
] | |
}, | |
{ | |
"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.fit(Z,y)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Similarly, we can normalize the data, perform a transform and produce a prediction simultaneously\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 59, | |
"metadata": {}, | |
"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": 59, | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 60, | |
"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": 60, | |
"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]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<details><summary>Click here for the solution</summary>\n", | |
"\n", | |
"```python\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", | |
"```\n", | |
"\n", | |
"</details>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2>Part 4: Measures for In-Sample Evaluation</h2>\n" | |
] | |
}, | |
{ | |
"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", | |
"<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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Model 1: Simple Linear Regression</h3>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's calculate the R^2\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 61, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The R-square is: 0.4965911884339176\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\".\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's calculate the MSE\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can predict the output i.e., \"yhat\" using the predict method, where X is the input variable:\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 62, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The output of the first four predicted value is: [16236.50464347 16236.50464347 17058.23802179 13771.3045085 ]\n" | |
] | |
} | |
], | |
"source": [ | |
"Yhat=lm.predict(X)\n", | |
"print('The output of the first four predicted value is: ', Yhat[0:4])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"lets import the function <b>mean_squared_error</b> from the module <b>metrics</b>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 63, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.metrics import mean_squared_error" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"we compare the predicted results with the actual results \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 64, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The mean square error of price and predicted value is: 31635042.944639888\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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's calculate the R^2\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 65, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The R-square is: 0.8093562806577457\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\".\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's calculate the MSE\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" we produce a prediction \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 66, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"Y_predict_multifit = lm.predict(Z)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" we compare the predicted results with the actual results \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 67, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The mean square error of price and predicted value using multifit is: 11980366.87072649\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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's calculate the R^2\n" | |
] | |
}, | |
{ | |
"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\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 68, | |
"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\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 69, | |
"metadata": {}, | |
"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\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>MSE</h3>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can also calculate the MSE: \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 70, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"20474146.426361226" | |
] | |
}, | |
"execution_count": 70, | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 71, | |
"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 \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 72, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"new_input=np.arange(1, 100, 1).reshape(-1, 1)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Fit the model \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 73, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
" normalize=False)" | |
] | |
}, | |
"execution_count": 73, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lm.fit(X, Y)\n", | |
"lm" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Produce a prediction\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 74, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([37601.57247984, 36779.83910151, 35958.10572319, 35136.37234487,\n", | |
" 34314.63896655])" | |
] | |
}, | |
"execution_count": 74, | |
"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 \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 75, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.plot(new_input, yhat)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Decision Making: Determining a Good Model Fit</h3>\n" | |
] | |
}, | |
{ | |
"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", | |
"<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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Simple Linear Regression model (SLR) vs Multiple Linear Regression model (MLR)</h3>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"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>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.\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Simple Linear Model (SLR) vs Polynomial Fit</h3>\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Multiple Linear Regression (MLR) vs Polynomial Fit</h3>\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2>Conclusion:</h2>\n" | |
] | |
}, | |
{ | |
"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>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Thank you for completing this lab!\n", | |
"\n", | |
"## Author\n", | |
"\n", | |
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>\n", | |
"\n", | |
"### Other Contributors\n", | |
"\n", | |
"<a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>\n", | |
"\n", | |
"Bahare Talayian\n", | |
"\n", | |
"Eric Xiao\n", | |
"\n", | |
"Steven Dong\n", | |
"\n", | |
"Parizad\n", | |
"\n", | |
"Hima Vasudevan\n", | |
"\n", | |
"<a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a>\n", | |
"\n", | |
"<a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n", | |
"\n", | |
"## Change Log\n", | |
"\n", | |
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n", | |
"| ----------------- | ------- | ---------- | --------------------------------------------- |\n", | |
"| 2020-10-30 | 2.2 | Lakshmi | Changed url of csv |\n", | |
"| 2020-09-09 | 2.1 | Lakshmi | Fixes made in Polynomial Regression Equations |\n", | |
"| 2020-08-27 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n", | |
"\n", | |
"<hr>\n", | |
"\n", | |
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n" | |
] | |
} | |
], | |
"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.13" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment