Skip to content

Instantly share code, notes, and snippets.

@eltomali
Created May 9, 2019 08:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eltomali/5d6132a96f6a04bea94b3fb64ca00779 to your computer and use it in GitHub Desktop.
Save eltomali/5d6132a96f6a04bea94b3fb64ca00779 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"https://cocl.us/corsera_da0101en_notebook_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size=5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Module 4: Model Development</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>In this section, we will develop several models that will predict the price of the car using the variables or features. This is just an estimate but should give us an objective idea of how much the car should cost.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some questions we want to ask in this module\n",
"<ul>\n",
" <li>do I know if the dealer is offering fair value for my trade-in?</li>\n",
" <li>do I know if I put a fair value on my car?</li>\n",
"</ul>\n",
"<p>Data Analytics, we often use <b>Model Development</b> to help us predict future observations from the data we have.</p>\n",
"\n",
"<p>A Model will help us understand the exact relationship between different variables and how these variables are used to predict the result.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# path of data \n",
"path = 'https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>1. Linear Regression and Multiple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Linear Regression</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"<p>One example of a Data Model that we will be using is</p>\n",
"<b>Simple Linear Regression</b>.\n",
"\n",
"<br>\n",
"<p>Simple Linear Regression is a method to help us understand the relationship between two variables:</p>\n",
"<ul>\n",
" <li>The predictor/independent variable (X)</li>\n",
" <li>The response/dependent variable (that we want to predict)(Y)</li>\n",
"</ul>\n",
"\n",
"<p>The result of Linear Regression is a <b>linear function</b> that predicts the response (dependent) variable as a function of the predictor (independent) variable.</p>\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
" Y: Response \\ Variable\\\\\n",
" X: Predictor \\ Variables\n",
"$$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <b>Linear function:</b>\n",
"$$\n",
"Yhat = a + b X\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li>a refers to the <b>intercept</b> of the regression line0, in other words: the value of Y when X is 0</li>\n",
" <li>b refers to the <b>slope</b> of the regression line, in other words: the value with which Y changes when X increases by 1 unit</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Lets load the modules for linear regression</h4>"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from sklearn.linear_model import LinearRegression"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Create the linear regression object</h4>"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm = LinearRegression()\n",
"lm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How could Highway-mpg help us predict car price?</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For this example, we want to look at how highway-mpg can help us predict car price.\n",
"Using simple linear regression, we will create a linear function with \"highway-mpg\" as the predictor variable and the \"price\" as the response variable."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"X = df[['highway-mpg']]\n",
"Y = df['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fit the linear model using highway-mpg."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.fit(X,Y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can output a prediction "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([16236.50464347, 16236.50464347, 17058.23802179, 13771.3045085 ,\n",
" 20345.17153508])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Yhat=lm.predict(X)\n",
"Yhat[0:5] "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>What is the value of the intercept (a)?</h4>"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"38423.305858157386"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.intercept_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>What is the value of the Slope (b)?</h4>"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([-821.73337832])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What is the final estimated linear model we get?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we saw above, we should get a final linear model with the structure:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"Yhat = a + b X\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plugging in the actual values we get:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>price</b> = 38423.31 - 821.73 x <b>highway-mpg</b>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 a): </h1>\n",
"\n",
"<b>Create a linear regression object?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm1 = LinearRegression()\n",
"lm1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm1 = LinearRegression()\n",
"lm1 \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #1 b): </h1>\n",
"\n",
"<b>Train the model using 'engine-size' as the independent variable and 'price' as the dependent variable?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"X1 = df[['engine-size']]\n",
"Y1 = df['price']\n",
"lm1.fit(X1, Y1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm1.fit(df[['engine-size']], df[['price']])\n",
"lm1\n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 c):</h1>\n",
"\n",
"<b>Find the slope and intercept of the model?</b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Slope</h4>"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([166.86001569])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm1.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Intercept</h4>"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-7963.338906281049"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm1.intercept_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# Slope \n",
"lm1.coef_\n",
"# Intercept\n",
"lm1.intercept_\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 d): </h1>\n",
"\n",
"<b>What is the equation of the predicted line. You can use x and yhat or 'engine-size' or 'price'?</b>\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# You can type you answer here\n",
"Price = -7963 + 166.86 x <b>engine-size</b>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# using X and Y \n",
"Yhat=38423.31-821.733*X\n",
"\n",
"Price=38423.31-821.733*engine-size\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Multiple Linear Regression</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>What if we want to predict car price using more than one variable?</p>\n",
"\n",
"<p>If we want to use more variables in our model to predict car price, we can use <b>Multiple Linear Regression</b>.\n",
"Multiple Linear Regression is very similar to Simple Linear Regression, but this method is used to explain the relationship between one continuous response (dependent) variable and <b>two or more</b> predictor (independent) variables.\n",
"Most of the real-world regression models involve multiple predictors. We will illustrate the structure by using four predictor variables, but these results can generalize to any integer:</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"Y: Response \\ Variable\\\\\n",
"X_1 :Predictor\\ Variable \\ 1\\\\\n",
"X_2: Predictor\\ Variable \\ 2\\\\\n",
"X_3: Predictor\\ Variable \\ 3\\\\\n",
"X_4: Predictor\\ Variable \\ 4\\\\\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"a: intercept\\\\\n",
"b_1 :coefficients \\ of\\ Variable \\ 1\\\\\n",
"b_2: coefficients \\ of\\ Variable \\ 2\\\\\n",
"b_3: coefficients \\ of\\ Variable \\ 3\\\\\n",
"b_4: coefficients \\ of\\ Variable \\ 4\\\\\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The equation is given by"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"Yhat = a + b_1 X_1 + b_2 X_2 + b_3 X_3 + b_4 X_4\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From the previous section we know that other good predictors of price could be:</p>\n",
"<ul>\n",
" <li>Horsepower</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Highway-mpg</li>\n",
"</ul>\n",
"Let's develop a model using these variables as the predictor variables."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"Z = df[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fit the linear model using the four above-mentioned variables."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.fit(Z, df['price'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What is the value of the intercept(a)?"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-15806.624626329198"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.intercept_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What are the values of the coefficients (b1, b2, b3, b4)?"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([53.49574423, 4.70770099, 81.53026382, 36.05748882])"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" What is the final estimated linear model that we get?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we saw above, we should get a final linear function with the structure:\n",
"\n",
"$$\n",
"Yhat = a + b_1 X_1 + b_2 X_2 + b_3 X_3 + b_4 X_4\n",
"$$\n",
"\n",
"What is the linear function we get in this example?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>Price</b> = -15678.742628061467 + 52.65851272 x <b>horsepower</b> + 4.69878948 x <b>curb-weight</b> + 81.95906216 x <b>engine-size</b> + 33.58258185 x <b>highway-mpg</b>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2 a): </h1>\n",
"Create and train a Multiple Linear Regression model \"lm2\" where the response variable is price, and the predictor variable is 'normalized-losses' and 'highway-mpg'.\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm2 = LinearRegression()\n",
"X2 = df[['normalized-losses', 'highway-mpg']]\n",
"Y2 = df['price']\n",
"lm2.fit(X2, Y2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm2 = LinearRegression()\n",
"lm2.fit(df[['normalized-losses' , 'highway-mpg']],df['price'])\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #2 b): </h1>\n",
"<b>Find the coefficient of the model?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.49789586, -820.45434016])"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm2.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm2.coef_\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>2) Model Evaluation using Visualization</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we've developed some models, how do we evaluate our models and how do we choose the best one? One way to do this is by using visualization."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"import the visualization package: seaborn"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# import the visualization package: seaborn\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Regression Plot</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>When it comes to simple linear regression, an excellent way to visualize the fit of our model is by using <b>regression plots</b>.</p>\n",
"\n",
"<p>This plot will show a combination of a scattered data points (a <b>scatter plot</b>), as well as the fitted <b>linear regression</b> line going through the data. This will give us a reasonable estimate of the relationship between the two variables, the strength of the correlation, as well as the direction (positive or negative correlation).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's visualize Horsepower as potential predictor variable of price:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"text/plain": [
"(0, 48296.37451180463)"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"width = 12\n",
"height = 10\n",
"plt.figure(figsize=(width, height))\n",
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We can see from this plot that price is negatively correlated to highway-mpg, since the regression slope is negative.\n",
"One thing to keep in mind when looking at a regression plot is to pay attention to how scattered the data points are around the regression line. This will give you a good indication of the variance of the data, and whether a linear model would be the best fit or not. If the data is too far off from the line, this linear model might not be the best model for this data. Let's compare this plot to the regression plot of \"peak-rpm\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 47422.919330307624)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuMAAAJQCAYAAAAkI2p/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3X9w2/d95/nX5/sFQAAkJVKWGLkSHZutt0rcxomjuNlrVtW1vcZpe0q24+3ae7PN7aUbTTedzc5cek13bpU5becmmWY2l+7s9uRNM3U7N3VT3d5Ft9M0l9blsWnj+lfq9BSzax9th5J/QD/4GwABfL+f++P7BfkFCYoABfCLL/B8zHBAfgmSH9qS8MIb78/7Y6y1AgAAALD/nLgXAAAAAAwqwjgAAAAQE8I4AAAAEBPCOAAAABATwjgAAAAQE8I4AAAAEBPCOAAAABATwjgAAAAQE8I4AAAAEJNU3AvYb4cPH7Z333133MsAAABAH3vuueeuW2uP7Ha/gQvjd999t5599tm4lwEAAIA+Zox5rZX70aYCAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEJBX3AoC9mp4t6MLMnOYXipocz+vsqSmdPjER97IAAABaRmUciTQ9W9C5S5dVWClrLJdWYaWsc5cua3q2EPfSAAAAWkYYRyJdmJlT2jXKZ1IyJrhNu0YXZubiXhoAAEDLCONIpPmFonJpt+FaLu3qykIxphUBAAC0jzCORJocz6tU9Rqulaqejo/nY1oRAABA+wjjSKSzp6ZU9ayKlZqsDW6rntXZU1NxLw0AAKBlhHEk0ukTEzp/5j5NjGa1VKpqYjSr82fuY5oKAABIFEYbIrFOn5ggfAMAgESjMg4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMSEMA4AAADEhDAOAAAAxIQwDgAAAMQkFfcCAADJMz1b0IWZOc0vFDU5ntfZU1M6fWIi7mUBQOJQGQcAtGV6tqBzly6rsFLWWC6twkpZ5y5d1vRsIe6lAUDiEMYBAG25MDOntGuUz6RkTHCbdo0uzMzFvTQASBzCOACgLfMLReXSbsO1XNrVlYViTCsCgOSiZxyJRc8qEI/J8bwKK2XlM5sPIaWqp+Pj+RhXBQDJRGUciUTPKhCfs6emVPWsipWarA1uq57V2VNTcS8NABKHMI5EomcViM/pExM6f+Y+TYxmtVSqamI0q/Nn7uOVKQDYA9pUkEjzC0WN5dIN1+hZBfbP6RMThG8A6AAq40ikyfG8SlWv4Ro9qwAAIGkI40gkelYBAEA/IIwjkehZBQAA/YCecSQWPasAACDpqIwDAAAAMSGMAwAAADEhjAMAAAAx6XoYN8a4xphvG2P+U/jxPcaYvzLGvGSM+QNjTCa8PhR+/HL4+bsj3+PXwut/a4z5YOT6Q+G1l40xn+727wIAAAB00n5Uxj8p6cXIx5+T9AVr7b2SFiR9LLz+MUkL1tofkPSF8H4yxrxT0iOS7pP0kKR/HwZ8V9K/k/QhSe+U9Gh4XwAAACARuhrGjTHHJf2MpC+FHxtJPy7pYniXxyV9JHz/w+HHCj//E+H9PyzpCWvturX2FUkvS3owfHvZWjtnra1IeiK8LwAAAJAI3a6M/y+S/gdJfvjxHZIWrbW18OMrko6F7x+TNC9J4eeXwvtvXN/yNTtd38YY83FjzLPGmGevXbt2u78TAAAA0BFdC+PGmJ+VVLDWPhe93OSudpfPtXt9+0VrH7PWnrTWnjxy5MgtVg0AAADsn24e+vOjks4YY35aUlbSAQWV8jFjTCqsfh+X9Hp4/yuSJiVdMcakJB2UdDNyvS76NTtdBwAAAHpe1yrj1tpfs9Yet9berWAD5pPW2v9G0p9Jeji820clfTV8/1L4scLPP2mtteH1R8JpK/dIulfS05KekXRvOJ0lE/6MS936fQAAAIBO62ZlfCe/KukJY8yvS/q2pN8Or/+2pN8zxrysoCL+iCRZay8bY74i6buSapI+Ya31JMkY88uSvi7JlfRla+3lff1NAAAAgNtgguLz4Dh58qR99tln414GAAAA+pgx5jlr7cnd7scJnAAAAEBMCOMAAABATAjjAAAAQEwI4wAAAEBMCOMAAABATAjjAAAAQEwI4wAAAEBMCOMAAABATAjjAAAAQEwI4wAAAEBMCOMAAABATAjjAAAAQEwI4wAAAEBMCOMAAABATAjjAAAAQEwI4wAAAEBMCOMAAABATAjjAAAAQEwI4wAAAEBMCOMAAABATAjjAAAAQEwI4wAAAEBMCOMAAABATAjjAAAAQEwI4wAAAEBMUnEvAAAA9Lbp2YIuzMxpfqGoyfG8zp6a0ukTE3EvC+gLVMYBAMCOpmcLOnfpsgorZY3l0iqslHXu0mVNzxbiXhrQF6iMAwDaRqV0cFyYmVPaNcpngsiQz6RUrNR0YWaO/+dAB1AZBwC0hUrpYJlfKCqXdhuu5dKuriwUY1oR0F8I4wCAtkQrpcYEt2nX6MLMXNxLQxdMjudVqnoN10pVT8fH8zGtCOgvhHEAQFuolA6Ws6emVPWsipWarA1uq57V2VNTcS8N6AuEcQBAW6iUDpbTJyZ0/sx9mhjNaqlU1cRoVufP3Ee/ONAhbOAEALTl7Kkpnbt0WcVKTbm0q1LVo1La506fmCB8A11CZRwA0BYqpQDQOVTGAQBto1IKAJ1BZRwAAACICWEcAAAAiAltKgASgRMfAQD9iMo4gJ7HiY8AgH5FGAfQ8zjxEQDQrwjjAHoeJz4CAPoVYRxAz+PERwBAvyKMAwkzPVvQo489pQ987kk9+thTA9E3ffbUlKqeVbFSk7XBLSc+AgD6AWEcSJBB3cjIiY8AgH7FaEMgQaIbGSUpn0mpWKnpwsxc3wdTTnwEAPQjKuNAgrCREQCA/kIYBxKEjYwAAPQXwjiQIGxkBACgvxDGgQQ5fWJCDz9wTNdW1vXimyu6trKuhx84Ri81AAAJRRgHEmR6tqCLz1/VkdEhvePoqI6MDuni81f7fpoKAAD9ijAOJAjHwgMA0F8I40CCME0FAID+QhgHEoRpKgAA9BfCOJAgTFMBAKC/EMaBBOFYeAAA+ksq7gUAaA/HwgMA0D+ojAMAAAAxIYwDAAAAMaFNBUiY6dmCLszMaX6hqMnxvM6emqJtBQCAhKIyDiTI9GxB5y5dVmGlrLFcWoWVss5duswJnAAAJBSVcSBBoidwSlI+k1KxUtOFmTmq4wC6hlfkgO6hMg4kCCdwAthvvCIHdBdhHEgQTuAEsN+ir8gZE9ymXaMLM3NxLw3oC4RxIEE4gRPAfuMVOaC7CONAgnACJ4D9xityQHexgRNIGE7gBLCfzp6a0rlLl1Ws1JRLuypVPV6RAzqIyjgAANgRr8gB3UVlHAAA3BKvyAHdQ2UcAAAAiAlhHAAAAIgJYRwAAACICWEcAAAAiAlhHAAAAIgJYRwAAACICWEcAAAAiAlhHAAAAIgJYRwAAACICSdwAgCAW5qeLejCzJzmF4qaHM/r7KkpTuQEOoTKOAAA2NH0bEHnLl1WYaWssVxahZWyzl26rOnZQtxLA/oCYRwAAOzowsyc0q5RPpOSMcFt2jW6MDMX99KAvkCbCpAwvFwMYD/NLxQ1lks3XMulXV1ZKMa0IqC/UBkHEoSXiwHst8nxvEpVr+Faqerp+Hg+phUB/YUwDiQILxcD2G9nT02p6lkVKzVZG9xWPauzp6biXhrQFwjjQILMLxSVS7sN13i5GEA3nT4xofNn7tPEaFZLpaomRrM6f+Y+2uOADqFnHEiQyfG8Citl5TObf3V5uRhAt50+MUH4BrqEyjiQILxcDABAfyGMAwnCy8UAAPQX2lSAhOHlYgAA+gdhHC1htjUAAEDn0aaCXTHbGgAAoDsI49gVs60BAAC6gzCOXTHbGgAAoDsI49gVRyEDAAB0B2Ecu2K2NQAAQHcQxrErZlsDAAB0B6MN0RJmWwMAAHQelXEAAAAgJlTGAQBt4yAwAOgMKuMAgLZwEBgAdA5hHADQFg4CA4DOIYwDANrCQWAA0DmEcQBAWzgIDAA6hzAOAGgLB4EBQOcQxgEAbeEgMADoHEYbAgDaxkFgANAZXauMG2OyxpinjTEvGGMuG2P+p/D6PcaYvzLGvGSM+QNjTCa8PhR+/HL4+bsj3+vXwut/a4z5YOT6Q+G1l40xn+7W7wIAAAB0QzfbVNYl/bi19n5J75b0kDHm/ZI+J+kL1tp7JS1I+lh4/49JWrDW/oCkL4T3kzHmnZIekXSfpIck/XtjjGuMcSX9O0kfkvROSY+G9wUAAAASoWth3AZWww/T4ZuV9OOSLobXH5f0kfD9D4cfK/z8TxhjTHj9CWvturX2FUkvS3owfHvZWjtnra1IeiK8LwAAAJAIXd3AGVaw/1pSQdI3JP1/khattbXwLlckHQvfPyZpXpLCzy9JuiN6fcvX7HQdAAAASISuhnFrrWetfbek4woq2e9odrfw1uzwuXavb2OM+bgx5lljzLPXrl3bfeEAAADAPtiX0YbW2kVJ05LeL2nMGFOf4nJc0uvh+1ckTUpS+PmDkm5Gr2/5mp2uN/v5j1lrT1prTx45cqQTvxIAAABw27o5TeWIMWYsfD8n6SclvSjpzyQ9HN7to5K+Gr5/KfxY4eeftNba8Poj4bSVeyTdK+lpSc9IujeczpJRsMnzUrd+HwAAAKDTujln/E5Jj4dTTxxJX7HW/idjzHclPWGM+XVJ35b02+H9f1vS7xljXlZQEX9Ekqy1l40xX5H0XUk1SZ+w1nqSZIz5ZUlfl+RK+rK19nIXfx8AAACgo0xQfB4cJ0+etM8++2zcywAAAEAfM8Y8Z609udv99qVnHAAAAMB2hHEAAAAgJoRxAAAAICaEcQAAACAmhHEAAAAgJoRxAAAAICaEcQAAACAmhHEAAAAgJoRxAAAAICaEcQAAACAmhHEAAAAgJoRxAAAAICapuBeAZJieLejCzJzmF4qaHM/r7KkpnT4xEfeyAAAAEo3KOHY1PVvQpy6+oG/PL+it5bK+Pb+gT118QdOzhbiXBgAAkGiEcezqs197UYvFqqwvucbI+tJisarPfu3FuJcGAACQaLSpYFev3CjKMZLjGEmSMZL1rV65UYx5ZQAAAMlGZRwAAACICWEcu5o6PCzfSr61srLyrZVvg+sAAADYO8I4dvWrD53QeD4tI6nm+TKSxvNp/epDJ+JeGgAAQKIRxrGr0ycm9BsP36/33DWuOw/m9J67xvUbD9/PaEMAAIDbxAZOtOT0iQnCNwAAQIdRGQcAAABiQhgHAAAAYkIYBwAAAGJCGAcAAABiQhgHAAAAYkIYBwAAAGJCGAcAAABiQhgHAAAAYkIYBwAAAGJCGAcAAABiQhgHAAAAYkIYBwAAAGJCGAcAAABiQhgHAAAAYkIYBwAAAGJCGAcAAABiQhgHAAAAYkIYBwAAAGJCGAcAAABiQhgHAAAAYkIYBwAAAGJCGAcAAABikop7AUiG6dmCLszMaX6hqMnxvM6emtLpExNxLwsAACDRqIxjV9OzBZ27dFmFlbLGcmkVVso6d+mypmcLcS8NAAAg0Qjj2NWFmTmlXaN8JiVjgtu0a3RhZi7upQEAACQaYRy7ml8oKpd2G67l0q6uLBRjWhEAAEB/IIxjV5PjeZWqXsO1UtXT8fF8TCsCAADoD4Rx7OrsqSlVPatipSZrg9uqZ3X21FTcSwMAAEg0wjh2dfrEhM6fuU8To1ktlaqaGM3q/Jn7mKYCAABwmxhtiJacPjFB+AYAAOgwKuMAAABATAjjAAAAQEwI4wAAAEBM6BnvAxxVDwAAkExUxhOOo+oBAACSizCecBxVDwAAkFwth3FjzNuNMT8Zvp8zxox2b1loFUfVAwAAJFdLYdwY808lXZR0Ibx0XNL/2a1FoXUcVQ8AAJBcrVbGPyHpRyUtS5K19iVJ7BDsARxVDwAAkFythvF1a22l/oExJiXJdmdJaAdH1QMAACRXq6MN/x9jzL+UlDPG/FeS/pmk/6t7y0I7OKoeAAAgmVoN45+W9DFJfyPprKQ/kvSlbi0KADDYOD8BwKBoNYznJH3ZWvsfJMkY44bXGNkBAOio+vkJadc0nJ9wXiKQA+g7rfaM/6mC8F2Xk/QnnV8OAGDQcX4CgEHSahjPWmtX6x+E7zM7DwDQcZyfAGCQtBrG14wxD9Q/MMa8V1KpO0sCAAwyzk8AMEhaDeP/QtIfGmP+3Bjz55L+QNIvd29ZAIBBxfkJAAZJSxs4rbXPGGNOSPpBSUbSrLW22tWVAQAG0ukTEzqvoHf8ykJRx5mmAqCP3TKMG2N+3Fr7pDHm57Z86l5jjKy1/7GLawMADCjOTwAwKHarjP+YpCcl/ddNPmclEcYBAACAPbplGLfWfsYY40j6mrX2K/u0JgAAAGAg7LqB01rri82aAAAAQMe1Ok3lG8aYTxljJo0xh+pvXV0ZAAAA0OdamqYi6b9T0CP+z7ZcZ84UAAAAsEethvF3KgjiH1AQyv9c0v/arUUBAAAAg6DVMP64pGVJvxl+/Gh47ee7sSgAQG+bni3owsyc5heKmmQOOADsWath/AettfdHPv4zY8wL3VgQAKC3Tc8WdO7SZaVdo7FcWoWVss5duqzzEoEcANrUahj/tjHm/dbapyTJGPMjkv6ie8sC0ElUMdFJF2bmlHaN8pngISSfSalYqenCzBx/rgCgTa1OU/kRSX9pjHnVGPOqpG9J+jFjzN8YY77TtdUBuG31KmZhpdxQxZyeLcS9NCTU/EJRubTbcC2XdnVloRjTigAguVqtjD/U1VUA6BqqmOi0yfG8CivljT9TklSqejo+no9xVQCQTC1Vxq21r93qrduLBLB3VDHRaWdPTanqWRUrNVkb3FY9q7OnmHYLAO1qtU0FQEJNjudVqnoN16hi4nacPjGh82fu08RoVkulqiZGszp/5j5eaQGAPWi1TQVAQp09NaVzly6rWKkpl3ZVqnpUMXHbTp+Y6Gr4ZtMxgEFBZRzoc1QxkTRsOgYwSKiMAwOg21VMoJPYdAxgkFAZBwD0FDYdAxgkhHEAQE9h0zGAQUIYBwD0FEYnAhgkhHEAQE9h0zGAQUIYBwD0LBv3AgCgywjjAICewmhDAIOEMA4A6CnR0YbGBLdp1+jCzFzcSwOAjiOMAwB6CqMNAQwSDv3pAxwbDaCfTI7nVVgpbxz6IzHaEED/ojKecNOzBf3KxRf07e8t6M2lkr79vQX9ysUX6K0EkFiMNgQwSAjjCfe5P57VQrEqKynlOrKSFopVfe6PZ+NeGgDsCaMNAQwS2lQSbu76mhwjOcZIkoyRrLGau74W88oAYO9On5ggfAMYCFTGAQAAgJgQxhPunjvy8q3k+1bWWvm+lW+D6wAAAOhthPGE+/SH3qGxfFrGkTxrZRxpLJ/Wpz/0jriXBgAAgF0QxhPu9IkJff7h+/WeyXEdPZDVeybH9fmH76fXEgAAIAHYwNkH2OgEAACQTFTGAQAAgJgQxgEAAICYEMYBAACAmHQtjBtjJo0xf2aMedEYc9kY88nw+iFjzDeMMS+Ft+PhdWOM+U1jzMvGmO8YYx6IfK+Phvd/yRjz0cj19xpj/ib8mt80Jjz5BgAAAEiAblbGa5L+e2vtOyS9X9InjDHvlPRpSX9qrb1X0p+GH0vShyTdG759XNJvSUF4l/QZST8i6UFJn6kH+PA+H4983UNd/H0AAACAjupaGLfWvmGtfT58f0XSi5KOSfqwpMfDuz0u6SPh+x+W9Ls28JSkMWPMnZI+KOkb1tqb1toFSd+Q9FD4uQPW2m9Za62k3418LwAAAKDn7UvPuDHmbknvkfRXkt5mrX1DCgK7pPpMvmOS5iNfdiW8dqvrV5pcBwAAABKh63PGjTEjkv53Sf/CWrt8i7buZp+we7jebA0fV9DOorvuumu3JQNA10zPFnRhZk7zC0VNjud19tQU5wQAwADramXcGJNWEMT/N2vtfwwvvxW2mCi8LYTXr0iajHz5cUmv73L9eJPr21hrH7PWnrTWnjxy5Mjt/VIAsEfTswWdu3RZhZWyxnJpFVbKOnfpsqZnC7t/MQCgL3VzmoqR9NuSXrTW/pvIpy5Jqk9E+aikr0au/0I4VeX9kpbCNpavS/opY8x4uHHzpyR9PfzcijHm/eHP+oXI9wKAnnNhZk5p1yifScmY4DbtGl2YmYt7aQCAmHSzTeVHJf1jSX9jjPnr8Nq/lPRZSV8xxnxM0vck/YPwc38k6aclvSypKOmfSJK19qYx5l9Leia833lr7c3w/V+S9DuScpK+Fr4BQE+aXyhqLJduuJZLu7qyUIxpRQCAuHUtjFtrv6nmfd2S9BNN7m8lfWKH7/VlSV9ucv1ZST90G8sEgH0zOZ5XYaWsfGbzn95S1dPx8XyMqwIAxIkTOAFgn5w9NaWqZ1Ws1GRtcFv1rM6emop7aQCAmBDGAWCfnD4xofNn7tPEaFZLpaomRrM6f+Y+pqkAwADr+mhDAMCm0ycmuh6+GZ8IAMlBZRwA+gjjEwEgWaiMA0CoHyrK0fGJkpTPpFSs1HRhZi5Rv0s//L8AgFZQGQcA9U9FeX6hqFzabbiWtPGJ/fL/AgBaQRgHAPXPgTyT43mVql7DtaSNT+yX/xcA0ArCOACoPyrKUn+MT5xfKKrm+Zq7tqrZN5c1d21VNc9P3P8LAGgFYRwA1B8VZak/xieOZFxdXSyr5lm5xqjmWV1dLGs44+7+xQCQMGzgBAAFFeVzly6rWKkpl3ZVqnqJqyjX7cf4xG4yJjy82WjzHGcbuQ4AfYQwDgAKAuzDVxb1pW++orWKp+GMq1/8wD0dD7VMCdndynpNx8ayur5aUcXzlXEdHT0wpNX1WtxLA4COI4z3IB6sge26/fdieragi89f1ZHRId0VVsYvPn9V7zo+1rGfU58SknZNw5SQ8xJ/xyMmx/MqrJQ1dWRk41qxUtPEaDbGVQFAd9Az3mMY6QVstx9/L/ZjggdTQlrTD5tQAaBVhPEew4M1sN1+/L3Yj2kq/TKxpdtOn5jQww8c07WVdb345oqurazr4QeOdaVl6NHHntIHPvekHn3sKYoeAGIxcGG8UvP15lJZN9cqWluvqer5cS+pAQ/WwHb78fdiP6ap9MvElm6Ltgy94+iojowO6eLzVzsalnkVEkCvGLgwbhX0Hi4WK3pruaz5m0W9en1Nry+WdGN1XavrNVVqnQ3o7VRfeLAGttuPvxf70RpB+0VraBkCMEgGLow341urctXTUqmqwnJZVxY6F9Dbrb7wYA1stx9/L/ZjPnc/zADfD7QMARgkTFPZQT2gl6ueVKpKkhxjNJR2lHEdDaVdDaUcpd1bP5+JVl8kKZ9JqVip6cLMXNMH4NMnJnQ+/LorC0UdZ5oKsG9/L/ZjPnfSZ4Dvh/o0lfq/m1J3Woa6/TMAoBWE8Tb41qpU8VTS9oA+lHKVSTnbAvr8QlFjuXTD99mt+sKDNTqtH8Zl8vdicJw9NaVfufiCri6UVPN9pRxHo9mU/tXPvLOjP6NfDnkCkGyE8du0EdArm/2srmM2wvn3Hczp+mpZw0ObgZzqC/YTs62RRFaSTHjqpgk/7iBehQTQKwjjXeD5QU9rsSL93HuO6YtPvqSaX1Eu7Wq95qvmW/3iB+6Je5kYEO22SgFxuzAzp4O5tO48mNu41o0/s7zaAqAXEMa77MGpQ/qk7tUTz8zrzeWSjh7I6ZH3TeqeI8N67caaMqmgBz1ocQmq6UAn7aVVCojT/EJRrpHmrq2q4vnKuI4Oj2T4MwugLxHG98GDU4f04NShbdc9P9KDHjLGKO2ahpCecR2ldtkoCuyEjWpImtGhlF4qrMp1jFzHqOZbXV0s696JkbiXBgAdRxjvMdZaVWp22yhFxxiltwT0TMqR65iYVoqkYKMaksbasEO83ihut1wHgD5CGE8I31qtVz2tbzn4xHU2q+gbYd115BDSEWKjWm/ph8k23bZa8XRsLKvrq5WNNpWjI0Naq3i7fzEAJAxhfB88PXdTTzwzrzeWS7oz7Blv1rayF81aXSQpHVbON2+NMq4TTCbAwGGjWm9gsk1r6q1VU0c221KKlZomRrMxrgoAuoNG5C57eu6mvvjkS7qxtq4D2ZRurK3ri0++pKfnbnb151Y9X2vrNS0WKyosl3V1oaRXrq9p/mZRby2XtbBWua2TRQG0jyPYW8NJxAAGCZXxLnvimXnVPE+LRU9Vz1fadTQy5OqJZ+Y7Vh1vR9Xzg6AeuRbdNDrkuhuVdDaNAp3FZJvW0FrVHlqfgGQjjHfZazfXtFKqyjhGTjgVYGGtqpq/tvsX75PoptFV1Tau1/vR09FNo/SjA3vWT5Ntuh0Aaa1qDa1PQPIRxrusUvMlE0xDkSRjJM9sn5bSi3brR9+cj87oRXRfP1T/+mWyDQGwd3CoF5B8hPEuS7tG6zXJ962MkeqTuTJucqvLzVpdqKKjm6ZnC/rUxRe0ul6T51tdX13Xpy6+oM8/fH+iAke/tF8QAHsHrU9A8hHGu+zuO0Z0ZWFNa5XNnvHhTErHx4fjXlpH7VRFTzlhOE9tVtHTVNHRps9+7UUtFqtyjZFrjKwvLRar+uzXXkxs+EvyxGxOyOwd/dT6BAwqUlGXPfK+SaVTrg6PDOmew8M6PDKkdMp7nlMQAAAgAElEQVTVI++bjHtp+6Lm+ypWNqe6zN8s6tXra3pjqaQbq+tMdEFLXrlRlO9brXu+yjVf654v37d65Uaywl+9vaOwUm5o75ieLcS9tLaMDqV0dbGsmm8bTsgcGaK+s9/OnprScqmql95a0YtvLOmlt1a0XKomrvUJGGT8y9llD04d0id1r554Zl5vLpd0tMNzxpPIt5EqeqkqqfGE0aF0eJtiLjoCVc/X1qdsfng9SfqlvYMTMnuLlSQTTMaSSfarLsAgIozvgwenDg10+G5F9ITRlfLm9XQYyodS7kari0sf+sDxd0gXO13vVf3S38sJmb3jwsycDubSuvNgbuNaEp/gAYOMMI6eVt8surq+OXIx5QTV85QTzEJPu0YpJ7ilko5e1i/9vZyQ2Tv65QkeMMjoGUfi1PzgdNGlUlU3Vtf15lJZVxaKeuX6mr53o6g3lkq6trKupWI1PLkvWa0M2G6nV0OS9ipJv5ws2S+/Rz+YHM+rVG18RSKJT/CAQUYYR1+p+b5KFU8r5apurAVBff5mENTnbxZVWC5rYa2itXVCepKcedfRtq73qtMnJvTwA8d0bWVdL765omsr63r4gWOJayc4fWJC58/cp4nRrJZKVU2MZnX+zH2J+z36AU+MgOSjTQUDwVqrqme3BXBjzLYDjJiP3nu+8MgDkp7Xpe+8KS+c4HHmXUfD68kxPVvQxeev6sjokO4KD/25+PxVvev4WGKDbMLa9vtOv8yuBwaZGbTd7z/87gfsV78xE/cy0OPS0XAeBnROGcXtevSxp7b1jNd7rX//4++PcWXtiZ7AGT1JlOo4AGwyxjxnrT252/2ojANNbJwyur55rX7KaL2KXn+fTaNoVb8cltMvIxoBoBcQxoEWNTtltN7mkk05Gkq7nDCKWxrJuHqpsCrfBu0dNc/TlYWS7p0Y2fVrewkTPNBp07MFXZiZ0/xCUZO02mDAEMaB22Aj89HrBxjVRy9mXEfpVDBykQr67euHB+u1iifPSkbBmyR5Vombz90vIxrRG6JtT9GTac9Lifs7DuwFYRzosJrvq7bua23L9bTrhG+GNpc29cuDdWFlXSknOKzIWskYyTXB9Z304pOQs6emdO7SZRUrtYaecSZ4YC9oe8KgI4wD+6Tehx5ljNkI50NucMpoyjW0umzRTw/Wjmn8/+v5O4/Y7NUnIUzwQCfR9oRBRxgHYmStVaVmVan5WtXmKaPGGKWcILSlXKO0sxnSB/Gk0X55sL7njrxevrYm41sZE1THfSv9wOHm7R29/CTk9ImJ2NeA/kDbEwYdYRzoQTvNRa+Ltrykw3aXtOsk7kTKVvXLg/WnP/QOferiC1pdr23MSx8bSuvTH3pH0/v3y5OQvejF9hx0B21PGHS8Fg4kUNXzVazUtFSq6vrKul5fLOm1G2t67caari6WVFgpa7EYnDRaqflK+nkC/XLK4OkTE/r8w/frPZPjOnogq/dMjuvzD9+/Y8gc1KPO6+05hZVyQ3vO9Gwh7qWhCzjRFYOOQ3+AAVGvptfbXTJhZT0phxnVK6WD1KM8PVvQr1x8QSvlmmq+r5TjaDSb0m/cIsD3g345HAnAYOPQHwANmm0glcINhfXDjFxH6ZTZCO69ZFB7lK0kmWAfgcxgHD8/yO05AAbPwIXx126s6Vf+8AUdyKV1cIe3+ucyqd4KI0A3+NFZ6Vukwo2jKSeooLtOMP0ljrA+iD3EF2bmdDCX1p0HcxvXemUDZzf1yx4BAGjFwIXx9Zqv57632NJ9c2k3EtJTOwb4+vUD2VRiXvIHWlHzfdV2mLy3MZbRdZSqbyYNq+tOhzeS9uqIv24b1AoxG/oADJKBC+NHRob06IOTWipVtVSqarlU1VIp2Ai3Uq7Kj7wGXKp6KlU9vblcbvn7Dw+528N6ducq/Eg21bcTMNDfomMZt3LDSno6Mpbxdg456uURf900qBVi5pgDGCQDF8bHhzP6p3+veXXFt1ar5dpGUK+H9cUtoX2pVNFSqabFUkVr640v7a+te1pb9/T6YmsB3kgazaZ0MJfWWD7dUvvMcMYduDnTSBbPt/J8T+vV7Z9Lu46GUkGbSyZyeytUiAevQjyoewQADJ6BC+O34hijA2HonWzxa2qer+UwwC9HQnw9wC9Hwn3988XKZoC3kpbLNS2Xa5pfKLX0M13H6EAY4JuF9WZv2TTHrqM37HQSacoxG+E82pfuOoYKMRViAIiN71v51sqzNjyszcqv3/rBNavgFWPfSla2rd32hPHblHIdHRrO6NBwpuWvqdR8LZer20L6UqmqxeL2AL9Yqja0Ani+1UKxqoVik7LjDtKuaSu8s4EV++lWhxwZY/Rz7zmm//lrL+rKQnHjsJyRoZR+9YMnVPP8vt6rQYUYAPbGRkNzGKS9MFj7dvPznm8b7uv50dDd/RlWhPEYZFKODo8M6fDIUMtfU6p6DaF9exV+e3W+FmmAr3pW11crur5aaflnZtNOWwGeDazoBhv+wxi8v/nmW+nmWkXfu1ncqKy7zubkl40pMI6jlGM6vql0rwZxKgwA1NX/TY8GX9/asLIsKawsR6vN9c/VK87RjxvuZ+s/Q2EVOxnDYAnjCZFLu8qlXb3tQLal+wenFHqRfvfdA/zylg2s5aqvcnVdby2vt7xONrCiG554Zl4jQykdiTyBLVU9PfHMvB6cOhSprO/8PdyNsO5svO9GAnz9tpvtXIM6FQZA8tlINdlKG5XmaAXZKmjpiIbtjcDtJysg7yfCeJ8yxmh4KKXhoZSOjeV2/wJtbmDdKcDXN7DWW2zqPfFRt7OBtdUK/PAQG1gHzRvLJR3INv5zlU07enO5tX0WUn1TqVVFO8xqDNUDer1fvR7UHRO+Odp4v90nkoM6FQbA7Ym2UDRUhG9VRba3ri77u1SW65/bjzaNQUcYx4boBtZWeb7VSnlrtb3SGOCLFS2Vax3bwOoY7RjcN99vDPi5NAE+ye48kNONtXXl0u7GtXLV19EDrT3RbMdGaN9pwPoW9aBeD+5O5NY1kQq8MQM7FQbAJs+3qvn+RqU4qBoHmwPrt409y6Ka3OcI47gtrmM0ls9oLJ/R21v8moYNrMVqw2bWzfGRkep7qapyJBj5VnvawNpQbY+2zuSb978PRYIf4vXI+yb1xSdfUqnqKZt2VK76qvlWj7yv1blH3eP5Vp5u3SJTd3hkSDfX1pVLp1R/bliq1vS2A1ndXKvISHLCU06jLTUAek89IHsbQXozXHv+Zi/01veBrQjj2Hd72cBa3rKBtR7cG65tCfhVr3ED643Vim7scQPr1r73ZhX4A7n0vh8RPygenDqkT+pePfHMvN5cLunogZweed+kHpw6FPfS2vLIyeBJhbW1hicVDz9wXIvF5n8261X3tOvIcbRRbY9W3oO2meDJcb+8AsRG1/7XrPUiuK7G20grRf3rNt/Xxoa/+sc73W/jo8gGwOj3Dz+1EbJvtQ4q1egkM2h/oH743Q/Yr35jZl9/5tNzN/XEM/N6Y7mkOxMaInrRrf67WmtVqnqN4b0YqbhvOdypHuBvt2gxnHF37HdvFuBHs2kqnwOm/ue2W08qnC1h3THBHhLHbPa6m42+981rG+/3wJ/H6EbX6GFH58/cRyDvMdHRcBtV4Hq7xZaKsd/QejFY2QOD6fsnRp+z1p7c7X6E8S57eu6mvvjkS0o5pqES9skfv5dAfhu68d/Vt1Zr67Vt1felYmV7eN9hA2u76htYmwX4nfrfh4dScvqk+oneEw3uUtA2YxR8bIyCNzWGfKMg4Ef/VDZ7ZHFM8ATBGN2ymv/oY09tO+SpWKlpYjSr3//4+zv/S0PS5sEm0ZFztwrW9QAOoLlWwzhtKl32xDPzSjlmY+NZvcpTH8mGvenGf1fHGI1mg2r18fHWvia6gbVh4sy2lprNAL+2wwbWK21uYG0nwLOBFa2y1sqzkleP0y30wnfa3PVVHcimtF7b/OGOMXrl+qpevb4mSRs990ZG0T/aJnySYNT4xEG3eBJRf2JQ/37R7xV9v9UpOtEpFhtfv/U+at6msfGxv2Vc3JZJF8H3aGynMFt+h+D3b96SEZ2e0QubBHkFGYOMMN5lnRjJhu165b9rdANrqyo1f8cAv9gkyHd7A+tOAZ4NrIhL8+k5no4eyG1WYjdyYzwB0kSq/NEgPWivNndC9JXOA9mUbqyt64tPvqRPileQMRgI4122nyPZBkmS/7tmUo7uGBnSHW1uYG2suNcap9AUIxtYw/vd9gbWlNNW/3u3N7D2S+Xs9/7yVX3luSsqVT3l0q5+/r3H9Y//i7vjXlZP6eXpOXXWWtUI3h3BK8gYdITxLkvCg0oSDdp/12zaVbbNE1hLVU+LDaMjNyvwO1XhG05grfkqr6yrsNLGCazhBtbGEJ9qEuI3p9S0soG1Xypnv/eXr+rxp14Le6Wl9Zqnx596TZISF8i7+eSoX6bnoDW98konEBfCeJfxoNId/He9NWOCUx7zmZS+T62fwFrfwFoP8cuRue/14B4N8SvlWkOTwFrF01rF0xtLrZ3AKm2ewNo4PjKlg/nMxvuP/8VrstYq47qSTW7l7CvPXQmDePgKgpHk+/rKc1cSFcb388kRtef+l+RXOoFOIIzvIx5UOuvBqUOJCmK9bq8bWFfDSTOLpUpDeA9GSFYbwv1Sqaq19cYdgSvlmlbKNUmtVMGCKn0wX1t6c7msc1+9vGsFPp/pjQ2spaqnrZ08xgTXk6TbbQX98koIWjNor3QCWxHGu4wHFfQz1zHBCab5tO5SvqWvqXq+ViKjIhe3nMIabZ2pf65cbTya3rNWXphfv/ny9V1/ZsoxOwT1nQN8tgsbWHNpN5gQEnleYMNKf5J0u62AHuLBwiudGHSE8S7jQQVolHYdHRrO6NBw6xNo/uKl6/q3f/ayjKSUa1Sqeqp5Vu+7+5BGsqnGAN9kA2vNt7qxVtGNtdY3sA6lnB1GSDYP8AeyaWVSt97A+vPvPR70iPv+xhQO3wbXk6TbbQX0EA8eXunEICOMdxkPKsDt+9F7D2vu2mrLU0istSpX/W1z3utBfac58NENrOs1X4U2N7DmM+4tq+9vPzKsD77zbZr+22sq13zl0o7+4cnJRPWLS0Fbwee+Pqu3lsvyfCvXMRoeSukTp3+gI9+fHuL29MukIWBQEca7jAcV4PY9PXdTf/zdt3RoOLPRU/rH331LP3j0QNPQYYxRLuMql3F19GDrE2jW1r2mIX2ng5y2bmAtVjwV29jAWqz6+sPnr+r/frGgg7ntJ7GONanMj2R76ATW8ETObSfa3CZ6iFtHKySQfITxLuNBBbh9Tzwzr2rN02LFU9XzlXYdDWfcjrZ7GWM0kk1pJJvSsfHWnixHN7A2zH1v0gtff9u6gXV1vabV9ZquLra2TsdoY/LMbv3v9dvhDm9gfeKZeY0MpXQkMiu/k+139BC3jlZIIPkI413Ggwpw+169sarV9Vp4nLlRzbNaLFXl+auxriu6gbVVVc8PWmXKteZV+CYhPrqB1bfSYthy09Y6I6F9p8OcogE+m3J2DPD70X5HD3FraIUEko8wvg94UAFuT9Wz8v3gyHGroCvCSKp4yRsYmnbbP4F1veppuVzbsdd9s41mc8xkdAOr51vdXKvoZhsbWDMpRwez2wP8WD6ttOPo5lpFubQr1xg5jlHVo/0uDrRCAslHGAeQCNHhhlaDNbd/KO3qSNrVkdHWAry1VuWav2Olfam4/QCnrRtYKzVf11bXdW31VhtYG6vzhdWK/tF/+KtdK/AbbTTZlFJbB6+jLbRCAslHGAeQCEaNAbxHtjD2JGOCHuJc2tXRA3vbwNqs330z3Nd0Y3Vda5XG/vdKzdeby2W9udz6CawjQ6m22mdGe2kDaw+gFRJIPsI4gJ5nrb+tEm4lyfpN7o292PMG1vXaRpvMTptWlzeq8MFm1ai9bGAdbdI+c6sA3+kNrL2GVkgg2QjjAHqeMY6MgipsvWc8+AQtDnGKbgxtVc3zNzavLjdplalff32xrLdWyqp5tuGJmG+1cb+9rLNZgD+QjXyc330DKwB0EmEciWGMkWMkxxgZs/lxMGFDwczj+vuRr5EaWxqsJN9aWRtsCFR4CmL9Id/azfsFH1sZY2QU+dna/HlbH6/3+vAdDRzWRq9HFrTDN6+vwwnXWf/vU1+bDZusreq/d/B72fBz0Z+xrRXEbP4Mhd+76fpUP1HSyreS79vIxzb8WrPxKxiz+T3r36fZf3sp2Ey4XvVkHLPx861vdz3xsh/024EuqRZOYK3Pzj56IKts2lGp4qniBX3Qdx3KN+13j25gXSpXValtvmrSyQ2st6rAD8KfRwCdRxjHNiYa6LaEzd0KRc0CsrMtyBoZJ5yIscPPqt86xoRvoko1oDzf6u+8bVSv3VjVcqmmiucr4zoaHU7rrvFhHRrObDzBkJo8ydh48rH5xMD3Jc/ajbDfqwb1QJets7PzmZRM1dPMf76uf/MP79/16+sbWLeH9c12mcVSpTHAl6ryIjtYW9vA2iiXdptW4HfcyMoGVgAijPe0ZpXgenjYLUNshloTjB4zkuOYjTFkrtP4vQm96FWuY/RLP/b9Onfpsu4cS28calL1rD7xX/6AxvI7V1h34/tWnrXy/M1XSnwbCfT+5rWa56vqW3meVc3fn171QT3Q5XZnZ0c3sL6tnQ2sFa/paavRXvhogF8pN06gKVU9lapeWxtYh4fcJiF9y0mseTawAv2MMN4lG+HW2R50HRMEjGjYrofiICQTioGo0ycm9PCVRX3pm69oreJpOOPqFz9wj06fmLit7+s4Ro6MIiOaW2KtVc23qoXB3PODjz3fquoFH0errHs1qAe6xDE72xijkaGURoZSOjbW2s/xrdXKlvnv0ffrVfjodJqVcuMG1rV1T2vrnl5fbC3A77SBdWuAj74ND/X3BlYg6Qjj2gzAzfqQjWnsxXXMZotFNEQ70WDt8I8e0EnTswVdfP6qjowO6a6wOnzx+at61/Gx2w7ke2GMUdqth/jmSX5rYA9uG9/frU3mzgM5XV1c0+q6p6rnK+06GhlydWxsuPO/VA9Jyuxsx2xuDG11ZZ5vt42OXN5ahQ+r7/X7FCMjJPe6gfVANrW9An+LPvhsen83sPbb3gigHQMXxjOuo+PjeYIzkCAXZuaUdo3ymeCfrHwmpWKlpgszc7GE8Va0Etg9f7OyXvXsxse+H1Rd3/v2MX3n6mJYGJCqnq8ba75+9ocP7uvvst/6eXa265hdN7BuVan5QTAvBptTG9towp73YkVLYZV+sbR9A+tCsaqFYusBPu2atsL77WxgHdS9EUDdwIVxY8SOdwyc6dmCLszMaX6hqMnxvM6emurZENvM/EJRY1vG5+XSrq4sFGNaUWe4jpHr7Nwj8903VjQxOqSVck3rNS/YuJpN6f99Y1nj+UxDpd3zN6fW9ANmZ2/KpBwdHhnS4ZHWTmCVpHLVa+h7bxrgt1yvRVqrqp7V9dWKrq+2PoEmm3baCvD1DayDujcCqBu4MA4MmunZgj518QWtrtfk+VbXV9f1qYsv6PMP35+YQD45nldhpbxRGZeCzXLHx/Mxrqr75heKOjwypCOjm5sQrbV6c6ms8SaVVd+3qkZ72L3IxwkL7LQt3J5s2lW2zQ2sxUprAb7+ueUtG1jLVV/l6rreWm59As3wkKtyxVPadcInp/VBA0E7zp+/dF0HcymN5TI6mEtrJJuSyyva6DOEcaDPffZrL2qxWJUbTtaxvrRYrOqzX3sxMWH87Kkpnbt0WcVKrWGaytlTU3EvravafRLiOEZDt6i0S0Fg39hs6vvbAnsrvezdRtvC/jPGaHgopeGhlL6vjQ2sq+XtIT0a4Lf2xi832cAqSV6t+YSiz1y63LhOSaNt9r+zgRW9jjAO9LlXbhQ3RltK4aE9vtUrN5LT4nH6xITOK+gdv7JQ1PEEttrsRTeehDiOUSb8s5C7RS971fNV9YIWmGo41rEWTorpNtoWksExRgfCINzOBtaVcmNg/+vvLepPXnwrONfMSNWaL89ajQ6lVKr6KlU3N7BaScvlmpbLNc0vtDZVyDHaMbhvvt8Y8HNpAjz2D2EcQCKcPjHR9+F7q7iehNR72bNNZj5GN53WW2Hqlfb69dsN7IM60nEQuI7RWD7TcD7A37v3sH7knkObG3YPjzS0JW1sYI1U2Ddnv9e2zYVfKlW1Hqm0+1Z72sDaUG3Pbg/wY/nG/vehdmekAiHCeA9K+mY79Japw8OafXNFFW+zumQknTg6Et+i0LJeexKy26ZTqbF3veoFFfWab1WpBdX23cQxZxzxutWG3b1uYG3e817ZmP2+tCXgV73GDaw3Viu6sccNrFvnvjerwB/IpZXmBFaIMN5zpmcLOnfpstKu0VgurcJKWecuXdZ5qacekJEcY7mUttYpbXgd6IZb9a77vlXF84O3mr8R0KPV9KTMGUfvqm9gnWhzA+tyeXuAb6zEN/bG3/YG1oy7Y797swA/mk2zgbUP8WjcY5I4Txm97enXFtu63qt4xag/OI5RtkkLTD2k13yrD/7QUWXTrn73qVf1+mJ/zRlHb4puYL3zYHsbWNsJ8Ns2sFY8rVU8vbHU2gms9Q2szQL8Tv3vw0MpOfS/9zTCeI/p13nKiE+94hj9t9ha7ctGvE7hFaP+Vw/pkqQh6SMPHNNHHjgmSap5vqpeENbrG0urtaBHHf0hiaMsoxtYj4+39jX1DayLpc2TVqOV9uVyEOKjAX6t0nwD65U2N7C2E+DZwLq/COM9ZnI8r1dvrGq5VFPF85VxHR3IpXT3HfT3Ym9cxzQN3kl6qZNXjAZbynWUcrdPf/HCPvSNlhfPV7XmJ2aWOgKDNMqy2QbW3VQ9f+Nk1WYBfqnhc8FtuVMbWLNbQ3xqW5AfC2/ZwLp3hPEe83enDunpV28Go+iMVPF8FVYqevR9/fUPUj/rtXaKM+86qv/jr9/Q1nxy5l1H41nQHvCKEZpxHaNcxt0W0uuV9Gp4Omltn0czoj2Msry1tOvojpEh3bHHDaxBUN8+831riL/tDawpp63+dzawbiKM95hvzd3UkZGMVsqblfHRbErfmrupfx734npMr4Xe+pp6rZ3iC488IOl5XfrOm/J8K9cxOvOuo+H1ZBjUEzixNztV0qXGGerVcIZ6q1Ne0B2Msuy8vWxgLVf9SKU9MnWm3gNfr8RHeuEbNrDWfJVX1lVYaX8D627V9+iUmiS9qtsqwniP2en4ayqAjXox9Eq9207x4Xcf15vLlY0nLh9+9/HY1rIXg3oCJzpvpxnq1tqNcF6L9KcHp5IS1LuJUZbxMyZ8lSnj6ujB1gK8b63W1htPYI3OfW82/32lXGuY7tXuBlZp8wTWxvGRjQE+OgM+CRtYCeM9hgpga3o19PZiO0WvPnFpx6CewIn9Y4xRJmWUSW1/2bw+Nz1oedl8vxpOf7H0qN8WRlkmk2OMRrPBuMV2NrCulhsDfEO/e3lLgC82bmCVpJVyTSvlmqTWN7DWg3urFfh8Zn83sBLGewwVwNb0YuiVevPJVK8+cWlXrx1+g8FRn5s+tMMjZv1Qo3olver7G4cd0aO+uwenDumTunfzBM6ETFNB+1zH6GA+rYP59O53DtU8X8vlrRX4IKgvlZtX4MvVxg2si2Hob1XKMTsE9Z0DfLMTi1v+eXv+SnQFFcDW9GLolXrzyVSvPnEBbqUX94TspN6j3uzBuN6jXp/0Um+FoUe90a1O4MRgS7mODg1ndGi49Qk061WveYDf0vMefYtuYK35VjfWKrqx1voG1qGUsy2kt/w7tnxP7BsqgLvrxdAr9eaTqcnxvF65vrptU/A9hxmXid7UD61VdTv1qNcPOVqv+VqveRunke5FEmd0A900lHZ1JO3qyGhrE2istSpVvY1Nq83aZZbK4W3kevSFr/War0KbG1jrCONIpF4MvdG19cI66pqNy7y2WtE/epAH6zgkqeIbl35prbqVxpNIgwqatVbrtfaq6IM0oxvoFmOCf2/ymVTLG1ittVpb97ZNnolOoPmtFn8+YRyJ1Wuht1d9a+6mJkYz2w6SYlzm/uunim83DWprlTFmYyRdlLX16S5BH3r9/WrNZ0Y3EBNjjEayKY1kU9IOG1hjD+PGmC9L+llJBWvtD4XXDkn6A0l3S3pV0s9baxdMsGX1i5J+WlJR0n9rrX0+/JqPSvofw2/769bax8Pr75X0O5Jykv5I0idtn2xpp3KGTppfKCqz5WCFjOv0fbDpRYNQ8e2EyfG8XnxjScvlmnxbn4aQ0jvuPBj30mJhjNFQqvkG0mur5bA31ci3VtYyoxtImm4effQ7kh7acu3Tkv7UWnuvpD8NP5akD0m6N3z7uMInE2F4/4ykH5H0oKTPGGPqzz9+K7xv/eu2/qxEqlfOCivlhsrZ9Gwh7qUhoUYyrq4ullXzrFxjVPOsri6WNZzh6OJWTc8W9OhjT+kDn3tSjz721J7/Ps4vFFXzfM1dW9Xsm8uau7aqmufzxGiLowcyWizVNvoxg2kINR090PoGrkFx16Fhrdd8uY5R2nWUSTnyfKu33zGsI6NDOpBLK5dxlXI46RDoVV3722mtnZF0c8vlD0t6PHz/cUkfiVz/XRt4StKYMeZOSR+U9A1r7U1r7YKkb0h6KPzcAWvtt8Jq+O9GvleiRStn9R6mtGt0YWYu7qUhoTZmpZrIW/Q6bqmTT5BHh1LBE6PwJNSaHzwxGtlpZt6A+vp3m/+33en6IDt7akpVz6pYqcna4LbmS7/0Y9+v0Wxah0eGdOfBnO66I6+77xjW943ldGR0SGP5jEaGUsqknJ4/EAXod/v9CPA2a+0bkmStfcMYU39d9pik+cj9roTXbnX9SpPrTRljPq6giq677rrrNn+F7hrUXkl0z8p6TcfGsrq+WtnoGT96YEir67W4lwee1mIAAB2nSURBVJYInWwt2eikqzfU2S3XIUkqhod8RDOitZvXsamdzeyNm0Yb1Ucw1vygL71aP4W05svnzyfQVb1Sjmn2tNzu4XpT1trHJD0mSSdPnuzpf1V6dX42kmtyPK9Xb6w2XKt4vu6+g9GGrejkE+TVirf9idHI0LYT5gadMUH4bnYd23ViM3t9BGMzG5tGa1brnrexeZSQDnTGfofxt4wxd4ZV8Tsl1V9zvCIpeu7tcUmvh9dPb7k+HV4/3uT+ider87ORXM1GGxZWKnr0fUxaaEUnnyDzxKg1xw4M6crS+rZAfuxAazOD0VnBoUaOlJHqYxglDjRCb0vS/P393tFxSdJHw/c/Kumrkeu/YALvl7QUtrN8XdJPGWPGw42bPyXp6+HnVowx7w8nsfxC5Hsl2ukTEzp/5j5NjGa1VKpqYjSr82fuY9JCE53aVNfvvjV3U0dGMsq4jnwbTFI5MpLRt+a2bulAM816cvf6BPnvTh1SYSWoikefGP3dHn2AiMuv//13aXTIlRNWwh0jjQ65+vW//654F4YGrhOMYjyQTeuOkSEdPZjV5KG87jk8rOPjeb3tQFaHhjMayaY0lHbpTce+qc/fv7G23jB//+kefdzr5mjD31dQ1T5sjLmiYCrKZyV9xRjzMUnfk/QPwrv/kYKxhi8rGG34TyTJWnvTGPOvJT0T3u+8tbb+X/KXtDna8GvhW19gfvbumNfcuvmFog6PDOnI6OZBBtZa9iG0qJMHTNWfGG09DZWZ741On5jQv330gZ481Au7M8YokzLKpLbX+yrhiaPByaPBqaPsmUCnJW3+ftfCuLX20R0+9RNN7mslfWKH7/NlSV9ucv1ZST90O2tEcjGvuXXsQ+ic240MPDFq3XeuLOry60taq3haKlX1nSuL/N3uA5lUMH5xNPy4fqBRuRqG9CptLrh9byyX5BppfmFdVc9X2nU0nk/37Pz9XtnACbSFqTOtO3tqSp/8g29rubS2sfv5QC6lf/Uz74x7aYnQyVdheGLUmt/8k/+sLz75shwjpZzgv9EXn3xZkvTPf/LvxLw6dNLmgUau6v3ovm/DynlYQa/6qvkEdLRuOJPSazfW5DhGTjhG9q3ldb39juG4l9YUpwAgkSbH8ypVGydQEGqa+86VRS2XGscYLpdq+s6VxZhWlCydnP3fyf7zfvalb74SBnFHjnHC2+A6+p/jGOUyrsbyGb3tQFZ33ZHX2+8Y1tGDWY3nMxoeSnGIEW4tOka2/ha93mOojCORmDrTui998xWlXNPw4FXzfX3pm69QZWxBJ1+F6WT/eT9bq3ja2m7sGDECcgfTswVdmJnT/EJRk336Z8p1gifC+cghrPVpLlVvc5JLpRbMSqcPfbCtVT297cCQForVSJvK/9/e/cfIcZ/3Hf88O/vjfvPuSB6liJTFaygTsiPbsqyaDaEKshArSWG7gApIbVHXCBsZtSsjRVrbaG0ESlLUCYpECgpDiuoobeoKqVqjhOvGlcqqigpKlqxKdFhTInMUSoqiTuLPOx7v9nb26R8ze7d73CXvyNudndn3C1js7ZdztzP4cmaf/c7zfb5FzS125zWEYLwL9cKF9VoR1Kwegc21aVdqCaFCa4PF6At2rq74RtWjdjTq5cnstdroKxcxquWhl+NJokwU7T3Xj/Tr1IUFbau7Tl9cDDUx2J3lUQnGu0wvX1jXiqozqzNYDHShXJF7KPdo4RSzKKcuTR599k098cJRXSiHGiwG2rN7e0dG9tfzLgzn9+rs2b1dj+w7oko1KgFZ9eixZ/f2pHet6zz2/JTKlVCnZhsr9PTyZPb6PPSVE0VrgTkBerbd/4ltemTfYV1cDNVXyGl+Mbpjcv8ntl35lxNA0lWXWc/8VECSPrVzs8JqFMy4ouewGrWnRW1C38XFsGFC36PPvtn2917P2v+c36vz0D036yt3/6z6C4Eq1Sgt6Ct3/yxpVU28+e55nbpQViV0BWaqhK5TF8o6/O75pHetq9QC9JG+gjYNlXTDaL9u2jigG8b6tWm4pOG+gkqFQEYt9Ey4Y3JcX7l7hzYOljQzX9HGwZK+cveOrixrKDEy3nWoEoL19tN3ZmRqTIuwuD0t6if0SVGaTSfz3tfrLgzn9+o9dM/NBN+rsBhGZ3Yuzukxi6qRlENGfK+koZJLXG20fgR9YbG6lO7CCHr63DE53rXB90oE412G0mdYb0dPzakQmIK6CZxhtaqjp9ITAGYl753zG+utmM/pYjlU1V1mcbEIV9MFd3BllwvQy3Fqy2Lo8URRyi1ifRCMdxmqhKAdwqqrUq3LGZeUD9JzO3awGOjCQkWuxmMYLKXrEnY153evTuju1eNeqx0Tw3rr1KzOX1zOGR8ZLOimjUNJ71pmNNZCX1ar5rKwuFwTnQWLcDX46txl1jM/FZCkieGSQl+RM+5Re1p8aufmpseQprx3ae3nd23C5/TMfMOEz+cOTXd4zzurV4/7ajx456QKQaDrNvTpg1uGdd2GPhWCgAGcDghypr5CoA0DBU2M9Gnb+IBuHB/QlpE+jQ4U1V8MlCMHHauQrmGlHkGVEKwnb3ErtVV7Nzp5vqyxgbzOXayo6lGKyob+vE6eLye9a2u2lvO7fsKnJA0U85orVzJfKaNXj/tqUOa1u+SDnPJBTvUV9OpXEl2oRHfDyEFHPYJxIONOzjQPWN9t0d6Njp2Z0w2jA9o6tjzK5O6pnPi4lvSLXp3w2avHfbUYwOluzXLQF5ZqoIdaWCS9pdcRjAMZF1abj8BUWrR3o21jAzr6/qxm5htrKW/flK682LXWGd82NnBpPnB/PvP5wEx0RZaZRekt0WJF0ZfOqAJOPHoeEqD3GnLGAXS9XZPjem+2rHIYLQJTDqt6b7asXSkpW1Wz1jrjuybHNT3TeNzTM+k77rV68M5JLYauuXJF7tEzE9mRZbn6/PPhKP/8po2Dun5DvzYOljRUyqsQELJlFSPjQMatrDFe354W+6dOa2K4eMkI8f6p03oo6Z1bg2Nn5hSYNPXe7NJxbBoqtky/2D91WiN9gc5drGixLlc+bce9VuRBA1GA3l8M1F9sHEGvpbfUVhJlBD39CMaRWpQ+W51cTmo2VzOXokGWY2fmtHGwpE1DfUttacwZHy7ldXh6VkHOFORMlarr7bPz2jHRPO3k8PSMZudDFYLcUg3p2flQh6fTs2DT1Tpw/KwOnjinC+VQ5y4u6sDxs5zfLXAt7B2NAXokrHocmEcTRcsE6KlDMI5UWmvubS+rtLgmt2rvRlnJIXaPqiiUKy5XdHciZ2pZWaFcqUqmpfJoZlLVog/eLHv02Tf1yL4j8aqrUV8/su+IJLEq5wpcCxGsIkBfWGSRom6WorExpM1zh6b1wOMvave39umBx19c1xrBjz0/pXIl1Mlz83rj3RmdPDevciVsmXuLdMtKDvH7F8rRCom1HKF4tPv9C80r2xTihZmq1SiIr8aTbospWrDpajzxwtE4EM8pZ7n4OWpHo7XOQ0BvqAXoowNFbRnp040bB/SBjYO6bkOfxgeLGizllU/T7dGMY2QcbdHu0Zo33z2v8/MV5WQKzFQJXaculFUJz1/7zqPrZCWHuFypKgis4UOwUq22HOm+ectIkyoyhdRVkVmrC+VQObkWKssrrgYWtaMRZSCxWkEu+rI2UFxuC6u+lH9ODnpyCMbRFo89P6XFMNSp2cYJd+u1aMdiGI0Q5nJ1t++rrnKYnnJ9WJss1FIuBKaLi9H/1VoOuNR6pPvBOyf1zb0Hdd2GvPoLgS4uhqm8I7BWpSCnucXlwNvj1VcHCozkrZSVFC4ko1mAXpskWq5UVQ6jx2KlqioLFbUNVza0xeHpGb0/U1al6ksT1d6fKa/bxLNiPie5VHWXy6OLhMftaJBrkdHQqh3tc/OWEQ0WAy1Wq5qvVLVYrWqwGGjHlpGm29+1c0IPf+ZDmhju07mLi5oY7tPDn/lQ6r+UXEmQa/6h36q9l2UlhQvdozZJdMNAQZuHS7phtF83bRrUtvGBpTSXoVJexXxOZnyQrAdGxtEW7Z54tmNi+NLFUAYLmV8M5Wr0FQLNNbm9Hy04kR5ZqBixa3JcP3rrtIKcqWDRaO/MQnjZuuFZuCOwVrPl5teJVu29LCspXOh+hSCnQpBrGEV3dy2G0YJFtSouVHNZO4JxtMVab8evVa/evr8a4/35psH4eH96Tv+sVIzYP3Va/YWcZheW+2OoFGS+bvha1a4X9YNu7svtaJSFL2yPPvumnnjhqC6UQw0WA+3ZvZ3KOSlgZirmLborXVpud/el/PMoOI8G46jo0lx6Po2RKu2eeMZo0Brkchop5XR+YfkiOFLKyVI0k76+YoQkDRTzmitX1m0OQqccPHFOswthw4JLswuhDp44l9g+daOBQhDljPul7cgeSllmj1m0oujKO7DR3K7q0kh6bRQ9rPb2N22CcbRFJ0auszAa1AlDxUAnzjaORsyWq/qZ0fQENlmpGLFUDaQ+GneqhKz0xb8+qd//H4dV//mcs6gd2ROVrHSFVakSV8+xuJQlwXi25HKmvtylQXolXB4978VJowTjaIu7dk7ovuNnL7ntSPDcee9fKGvloEP1MrWtu1FWKkbU6oSv/Hyp9vio0Eq1AIy0hd4wu1BR1ePvqLZcPWd2oZL0rqFD8kFO+UANCxdJashBrwXqi6G3XCgtrQjG0RbPHZrW06++rc3DJd0Yj4w//erbunXrKAF5h52abR50t2rvRg/eOalff/p1vX32osK4Qs9QKa9v/PItSe/amgz35ZcCjFr9bEkaKnEpXumhe24m+O4RVptYVLcYllxU6sDSpNF6KyeN1uqkpznVJT1Jo0gVVoXrHq0uT2m7bJkkebx0vDdmeqTFnt3bJUWjfh4/17cDvai/EJ3NtUm6tUHPgUIaz3K0WzRpNKehUl7jg0Vdv6FfH9g4qBvHB7RlpE9jA0UNFPMKUlS/l2AcbXHszJz6V+SEpTHHF93hseenlA9MQc5kFj3nU/jl7tatoxosBks13nMmDRYD3bp1NNkdAxK0bWywafvWFu1AM/kgp8FSXmODRV23oa8hQB8dKKq/GHRtgM69UbRFVnJ8syBnuiRnvNaeFoenZ3TmQllVSXKpUg01H08KTpPHnp/SxEhfw3mRxqownfBrT72qvQdOLqUlfebW6/R799+W9G6hDdxd+ZwpMFsqhRt69vKC0XlRLnpOg3VlFyv11VzqSi8m+f+NYBxtUaumMleuUAc8YVlIU5lbCBXWp6a4FMbtaXLszJwCk6bem10q+blpqJjKO0btXITp1556Vd977Z2l12HV49evEpBn0Gw51A2jfXp/trx0Xlw3VKLKENqiFqDXL14k6ZKJop1cvIg0FbRFry7j3Y1arbO0TusvdUQ5jD6Uve5R354Ww6W83j47r0o82luput4+O5+6CZy1RZimZ+YbFmF67tD0uvz9vQdOSloucVebx1drR7ZsGxvQworVmRcqVe6koqOK+eU0ly0jfdo2PqDtmwb1M6P92jRc0kh/QaVC0JaJxen6BECqUAe8O1w3XNLxcwtN29MiyOXkXo0C8Vod4rg9TZZug9a+TfiK9pRo9yJMraoipLlaAlrbNTmuH711WjmL0ufKYVXvzZb1t+8YT3rX0OOaLV5UW110oa6Sy7WmuRCMAxnXaqXNNK3AOblpUIenZ5XP1eWUVl2Tm9I1wSsrt+PbvQhTkDOFVb+kHnu3Tr7Ctdk/dVoTw0Wdv7i8YvNIf177p07roaR3DlihMUCProPuvmJV0WgBo9UiGAcy7uS5+TW1d6Ov3rtT/+Tp1zUzX1ElrCqfy2lsoKCv3rsz6V1bk9rE5snNQ0ttc+WKJob7Etyrtds2NqC3Ts1eEjzdtHHoyr+8Cnd8YFT7j55p2o7sOXZmThsHS9o0tHweuHsq51KgN5mZSvlApfzVrWydnqExAFelEg8vrsy/raQoNeKunRP63fs+oo/dOKbrN/TrYzeO6Xfv+0jq0qAevHNSi6FrrlyRe/ScxonNuybHNT0Tje7X0gqmZ8raNbk+aQXHTjcPwlq1I922jQ3o4mLj3SGqb6GXEIwDGVebqLlyQY00TeCsl56vEJfKysTm/VOntXmoqGKQU9WlYpDT5qGi9k+dXpe//3aTOQ6Xa0e6ZeVLKnC1SFMBMm7HxLDeODkjt7rJjx61p0WtekchsIbqHQ9LqQtkszCx+diZOW0aKmnzcHvSCrJQjhOrd9fOCT2saGLw8TNz2rrOpTKBbkcwDmRcQ751Ncq3Hu7Lpyrfut3VO7A27V7Uy9Q88E7pzRysQha+pAJXizQVIOOykG997Myc+guNE2PWs3oH1qbdaQU3jDaf0NqqHQDSjJFxoAekfdSp3SOxWJt2pxX81ud+Tg/9h1c1Ww5V9aj29FAx0G997ufW5e8DQDchGAfQ9R68c1Lf3HtQc+WK+guBLi6GTPBKWDu/4N21c0KPPnAbOcQAegJpKgC6XlaqkGD1Dhw/q4MnzunEuXkdPHFOB46fTXqXAKAtGBkHkAppT7Wpee7QtB57fkrHzsxpGyO+TT367Jt6ZN8R5UzK56KUpEf2HZEkPXTPzQnvHQCsL0bGgR7w3KFpPfD4i9r9rX164PEX9dyh6aR3qSfVSjROz8w3lGikPxo98cJRedW1GLoWKtGzV11PvHA06V0DgHVHMA5kHAFg96gv0WgWPRcC02PPTyW9a11lZr6i6oq2atwOAFlDmgqQcVmp0Z2F9I5jZ+Y02l9oaKNE46VY9AdALyEYBzKuUwFgO4PlTq3A2e6AnxKNAICVSFMBMm7b2IAuLoYNbesdALY7FaYT6R2dSOdp92I5WTHSl79ktU2L2wEgawjGgYzrRADY7mC5EytwdiLgp0Tj6uzZvV25nKkQmEr56DmXM+3ZvT3pXQOAdccwA5Bx7V4tUWp/Kkwn0js6lc6TlRKN7VQrX/jEC0d1oRxqsBhoz+7tlDUEkEkE40APaHcA2O5guRMrcJLP3V0euudmgm8APYE0FQDXrN2pMJ1I7yCfGwCQBHPvrWJRt99+u7/yyitJ7waQObVKJO1KhemELBwDAKA7mNmP3f32K25HMA4AAACsr9UG46SpAAAAAAkhGAcAAAASQjAOAAAAJIRgHAAAAEgIwTgAAACQEIJxAAAAICEE4wAAAEBCCMYBAACAhBCMAwAAAAkhGAcAAAASQjAOAAAAJIRgHAAAAEgIwTgAAACQEIJxAAAAICEE4wAAAEBCCMYBAACAhBCMAwAAAAkhGAcAAAASQjAOAAAAJIRgHAAAAEgIwTgAAACQEIJxAAAAICEE4wAAAEBCCMYBAACAhBCMAwAAAAkhGAcAAAASQjAOAAAAJIRgHAAAAEgIwTgAAACQEIJxAAAAICEE4wAAAEBCCMYBAACAhBCMAwAAAAkhGAcAAAASQjAOAAAAJIRgHAAAAEgIwTgAAACQEIJxAAAAICEE4wAAAEBCCMYBAACAhBCMAwAAAAkhGAcAAAASQjAOAAAAJIRgHAAAAEgIwTgAAACQEIJxAAAAICEE4wAAAEBCCMYBAACAhBCMAwAAAAkhGAcAAAASkvpg3MzuNbM3zOyImX0t6f0BAAAAVivVwbiZBZL+taRflHSLpAfM7JZk9woAAABYnVQH45LukHTE3afcvSzpKUmfTXifAAAAgFVJezB+g6Rjda+Px20AAABA18snvQPXyJq0+SUbmf2qpF+NX86a2Rtt3St02iZJ7ye9E+gY+ru30N+9hf7uLVnv7w+sZqO0B+PHJW2re71V0omVG7n745Ie79ROobPM7BV3vz3p/UBn0N+9hf7uLfR3b6G/I2lPU3lZ0g4z225mRUn3S9qb8D4BAAAAq5LqkXF3r5jZlyX9UFIg6TvufjDh3QIAAABWJdXBuCS5+w8k/SDp/UCiSEHqLfR3b6G/ewv93Vvob0nmfsl8RwAAAAAdkPaccQAAACC1CMbRtcwsMLP/Y2bfj18/aWZHzey1+PHRuN3M7FEzO2JmB8zstrq/8XkzOxw/Pp/UseDKzOwtM/tJ3LevxG3jZvZM3H/PmNlY3E6fp1yL/v4NM3u77hz/pbrtvx739xtm9um69nvjtiNm9rUkjgVXZmajZva0mR0ys5+a2S7O72xq0dec25fj7jx4dOVD0j+W9F1J349fPynpvibb/ZKk/6ao7vwnJb0Ut49Lmoqfx+Kfx5I+Lh4t+/stSZtWtP2OpK/FP39N0rfo82w8WvT3b0j69Sbb3iLpdUklSdsl/aWiSftB/POkpGK8zS1JHxuPpv39x5L2xD8XJY1yfmfz0aKvObcv82BkHF3JzLZK+mVJT6xi889K+rceeVHSqJldL+nTkp5x99PufkbSM5LubdtOox0+q+jCrvj5c3Xt9Hnv+Kykp9x9wd2PSjoi6Y74ccTdp9y9LOmpeFt0ETMbkXSnpH8jSe5edvez4vzOnMv0dSuc2yJNBd3r9yX9U0nVFe2/Hd+2/D0zK8VtN0g6VrfN8bitVTu6k0v672b243jVXEna4u7vSFL8PBG30+fp16y/JenL8Tn+nVragujvtJuU9J6kP4pTD58ws0FxfmdRq76WOLdbIhhH1zGzvyFp2t1/vOKfvi5pp6RPKLpN+dXarzT5M36ZdnSnn3f32yT9oqQvmdmdl9mWPk+/Zv39bUl/RdJHJb0j6V/F29Lf6ZaXdJukb7v7xyRdUJSW0gr9nV6t+ppz+zIIxtGNfl7SZ8zsLUW3pu42sz9x93fi25YLkv5I0W0sKfrGvK3u97dKOnGZdnQhdz8RP09L+p6i/n03vj2t+Hk63pw+T7lm/e3u77p76O5VSX8ozvGsOC7puLu/FL9+WlHAxvmdPU37mnP78gjG0XXc/evuvtXdb5J0v6R97v536y7apii38C/iX9kr6e/FM/A/KelcfMvzh5J+wczG4ltivxC3ocuY2aCZDdd+VtRXf6Gob2sVEz4v6b/EP9PnKdaqv2vneOxvqvEcv9/MSma2XdIOST+S9LKkHWa23cyKiq4Xezt1HFgddz8p6ZiZfTBu+pSk/yvO78xp1dec25eX+hU40VP+vZltVnT76jVJX4zbf6Bo9v0RSXOSviBJ7n7azH5T0UktSQ+7++nO7jJWaYuk70Xfs5SX9F13/zMze1nSn5rZr0j6f5L+Vrw9fZ5urfr731lUstQVVVt5UJLc/aCZ/amiAK4i6UvuHkqSmX1ZUUAWSPqOux/s9MFgVf6Romt4UVEVlC8oGhDk/M6eZn39KOd2a6zACQAAACSENBUAAAAgIQTjAAAAQEIIxgEAAICEEIwDAAAACSEYBwAAABJCMA4AWGJmT5rZfUnvBwD0CoJxAMBVM7Mg6X0AgDQjGAeADDCzm8zskJn9sZkdMLOnzWzAzD5uZv/LzH5sZj+sW8n2H5jZy2b2upn9JzMbaPI3fzMeKc+taL/LzP6nmX1X0k9avXe87Vtm9i/MbL+ZvWJmt8X78Zdm9sWV7wkAvYZgHACy44OSHnf3WyWdl/QlSX8g6T53/7ik70j67Xjb/+zun3D3j0j6qaRfqf9DZvY7kiYkfcHdq03e6w5J/8zdb2nx3v+wbttj7r5L0p9LelLSfZI+KenhazxeAEg9gnEAyI5j7v6/45//RNKnJX1Y0jNm9pqkfy5pa/zvHzazPzezn0j6O5I+VPd3viFp1N0f9NbLNP/I3Y9e5r131/3b3vj5J5JecvcZd39P0ryZjV7FcQJAZuST3gEAwLpZGTjPSDoYj0qv9KSkz7n762b29yXdVfdvL0v6uJmNu/tpM/urkh6L/+2bika+L1zhvetfL8TP1bqfa6/5HALQ0xgZB4DsuNHMaoH3A5JelLS51mZmBTOrjYAPS3rHzAqKRsbr/Zmkfynpv5rZsLu/5O4fjR971dzK935hvQ4KALKMYBwAsuOnkj5vZgckjSvOF5f0LTN7XdJrkv5avO03JL0k6RlJh1b+IXf/j5L+UNJeM+u/ivf+9jUeCwD0BGudDggASAszu0nS9939w7303gCQdoyMAwAAAAlhZBwAAABICCPjAAAAQEIIxgEAAICEEIwDAAAACSEYBwAAABJCMA4AAAAkhGAcAAAASMj/BxpIrwg9x+CKAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(width, height))\n",
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Comparing the regression plot of \"peak-rpm\" and \"highway-mpg\" we see that the points for \"highway-mpg\" are much closer to the generated line and on the average decrease. The points for \"peak-rpm\" have more spread around the predicted line, and it is much harder to determine if the points are decreasing or increasing as the \"highway-mpg\" increases.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #3:</h1>\n",
"<b>Given the regression plots above is \"peak-rpm\" or \"highway-mpg\" more strongly correlated with \"price\". Use the method \".corr()\" to verify your answer.</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 23,
"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": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['peak-rpm', 'highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"The variable \"peak-rpm\" has a stronger correlation with \"price\", it is approximate -0.704692 compared to \"highway-mpg\" which is approximate -0.101616. You can verify it using the following command:\n",
"df[[\"peak-rpm\",\"highway-mpg\",\"price\"]].corr()\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Residual Plot</h3>\n",
"\n",
"<p>A good way to visualize the variance of the data is to use a residual plot.</p>\n",
"\n",
"<p>What is a <b>residual</b>?</p>\n",
"\n",
"<p>The difference between the observed value (y) and the predicted value (Yhat) is called the residual (e). When we look at a regression plot, the residual is the distance from the data point to the fitted regression line.</p>\n",
"\n",
"<p>So what is a <b>residual plot</b>?</p>\n",
"\n",
"<p>A residual plot is a graph that shows the residuals on the vertical y-axis and the independent variable on the horizontal x-axis.</p>\n",
"\n",
"<p>What do we pay attention to when looking at a residual plot?</p>\n",
"\n",
"<p>We look at the spread of the residuals:</p>\n",
"\n",
"<p>- If the points in a residual plot are <b>randomly spread out around the x-axis</b>, then a <b>linear model is appropriate</b> for the data. Why is that? Randomly spread out residuals means that the variance is constant, and thus the linear model is a good fit for this data.</p>"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"width = 12\n",
"height = 10\n",
"plt.figure(figsize=(width, height))\n",
"sns.residplot(df['highway-mpg'], df['price'])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<i>What is this plot telling us?</i>\n",
"\n",
"<p>We can see from this residual plot that the residuals are not randomly spread around the x-axis, which leads us to believe that maybe a non-linear model is more appropriate for this data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Multiple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>How do we visualize a model for Multiple Linear Regression? This gets a bit more complicated because you can't visualize it with regression or residual plot.</p>\n",
"\n",
"<p>One way to look at the fit of the model is by looking at the <b>distribution plot</b>: We can look at the distribution of the fitted values that result from the model and compare it to the distribution of the actual values.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First lets make a prediction "
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Y_hat = lm.predict(Z)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"image/png": "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/e9/5+STTyYnJ4cf//jHFBUVVedHFRVN+SgiIiKSym66CRYvjm2bOTnwpz9VeMj06dMZMWIE3bt3p1WrVixcuJABAwbw6quvMn36dObOnUvjxo3ZsWMHrVq14pFHHuGBBx4gNze3wnZPOukk5syZQ7169fj3v//Nr371K1588cVyjx8xYgRXX30127dvJzMzk8mTJ/PTn/60Wm2VtHz5cqZMmcL7779PRkYG1113HZMmTeKKK66I6vyqUmgXERERkZh7/vnnuemmmwAYP348zz//PAMGDODf//43V111FY0bNwagVatWVWq3sLCQiRMnsnr1asyMgwcPVnh8/fr1GT16NFOnTmXcuHEsXryY4cOHV6utkt566y0WLFjAoEGDANi7dy/HHntsle6lKhTaRURERFJZJT3i8bB9+3ZmzZrFZ599hplRVFSEmXHffffhnItq+sN69epRXFwMcMT85r/+9a8ZMmQI06ZNY926dYeHzVRkwoQJ3H333TjnGDNmzOFVSaNpq2QdJWtxzjFx4kR+//vfV3r9WNCYdhERERGJqalTp3LFFVewfv161q1bx8aNG+nSpQvvvfcew4cP5+mnn2bPnj0A7NixA4BmzZrx9ddfH24jKyuLBQsWABwxZKWwsJD27dsD/uHVaAwZMoTVq1fz6KOPMmHChCq1lZWVxcKFCwFYuHAha9euBWDYsGFMnTqVLVu2HL6P9evXR1VPdSi0i4iIiEhMPf/881xwwQVH7Bs3bhzPPfccI0aMYPTo0eTm5pKTk3P4Ic8rr7ySn/zkJ4cfRP3tb3/LjTfeyFlnnUV6evrhdn75y19y++23c8YZZ0T94GdaWhrjxo1j+/btnH322VVqa9y4cezYsYOcnBz+/Oc/0717dwB69erF3XffzfDhw+nbty/nnXce+fn5Vfo5VYU55+LWeLLKzc118+fPD7sMERERkWpZvnw5PXv2DLsMKaWs34uZLXDOVfz0LeppFxERERFJeArtIiIiIiIJTqFdRERERCTBKbSLiIiIiCQ4hXYRERERkQSn0C4iIiIikuDiGtrNbISZrTSzPDO7rYz3G5jZlOD9uWaWVeK924P9K83s/MraNLMuQRurgzbrB/s7mdnbZrbIzJaY2Xfjec8iSWXPHvjFL2DOnLArERGRFJOenk5OTs7h17p165g/fz433HADALNnz+aD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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>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Part 3: Polynomial Regression and Pipelines</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Polynomial regression</b> is a particular case of the general linear regression model or multiple linear regression models.</p> \n",
"<p>We get non-linear relationships by squaring or setting higher-order terms of the predictor variables.</p>\n",
"\n",
"<p>There are different orders of polynomial regression:</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center><b>Quadratic - 2nd order</b></center>\n",
"$$\n",
"Yhat = a + b_1 X^2 +b_2 X^2 \n",
"$$\n",
"\n",
"\n",
"<center><b>Cubic - 3rd order</b></center>\n",
"$$\n",
"Yhat = a + b_1 X^2 +b_2 X^2 +b_3 X^3\\\\\n",
"$$\n",
"\n",
"\n",
"<center><b>Higher order</b>:</center>\n",
"$$\n",
"Y = a + b_1 X^2 +b_2 X^2 +b_3 X^3 ....\\\\\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We saw earlier that a linear model did not provide the best fit while using highway-mpg as the predictor variable. Let's see if we can try fitting a polynomial model to the data instead.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We will use the following function to plot the data:</p>"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def PlotPolly(model, independent_variable, dependent_variabble, Name):\n",
" x_new = np.linspace(15, 55, 100)\n",
" y_new = model(x_new)\n",
"\n",
" plt.plot(independent_variable, dependent_variabble, '.', x_new, y_new, '-')\n",
" plt.title('Polynomial Fit with Matplotlib for Price ~ Length')\n",
" ax = plt.gca()\n",
" ax.set_facecolor((0.898, 0.898, 0.898))\n",
" fig = plt.gcf()\n",
" plt.xlabel(Name)\n",
" plt.ylabel('Price of Cars')\n",
"\n",
" plt.show()\n",
" plt.close()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"lets get the variables"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"x = df['highway-mpg']\n",
"y = df['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's fit the polynomial using the function <b>polyfit</b>, then use the function <b>poly1d</b> to display the polynomial function."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 3 2\n",
"-1.557 x + 204.8 x - 8965 x + 1.379e+05\n"
]
}
],
"source": [
"# Here we use a polynomial of the 3rd order (cubic) \n",
"f = np.polyfit(x, y, 3)\n",
"p = np.poly1d(f)\n",
"print(p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's plot the function "
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"PlotPolly(p, x, y, 'highway-mpg')"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-1.55663829e+00, 2.04754306e+02, -8.96543312e+03, 1.37923594e+05])"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.polyfit(x, y, 3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We can already see from plotting that this polynomial model performs better than the linear model. This is because the generated polynomial function \"hits\" more of the data points.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #4:</h1>\n",
"<b>Create 11 order polynomial model with the variables x and y from above?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 11 10 9 8 7\n",
"-1.243e-08 x + 4.722e-06 x - 0.0008028 x + 0.08056 x - 5.297 x\n",
" 6 5 4 3 2\n",
" + 239.5 x - 7588 x + 1.684e+05 x - 2.565e+06 x + 2.551e+07 x - 1.491e+08 x + 3.879e+08\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"f1 = np.polyfit(x, y, 11)\n",
"p1 = np.poly1d(f1)\n",
"print(p1)\n",
"PlotPolly(p1, x, y, 'highway-mpg')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# calculate polynomial\n",
"# Here we use a polynomial of the 3rd order (cubic) \n",
"f1 = np.polyfit(x, y, 11)\n",
"p1 = np.poly1d(f1)\n",
"print(p)\n",
"PlotPolly(p1,x,y, 'Length')\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The analytical expression for Multivariate Polynomial function gets complicated. For example, the expression for a second-order (degree=2)polynomial with two variables is given by:</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"Yhat = a + b_1 X_1 +b_2 X_2 +b_3 X_1 X_2+b_4 X_1^2+b_5 X_2^2\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can perform a polynomial transform on multiple features. First, we import the module:"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.preprocessing import PolynomialFeatures"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We create a <b>PolynomialFeatures</b> object of degree 2: "
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pr=PolynomialFeatures(degree=2)\n",
"pr"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"Z_pr=pr.fit_transform(Z)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The original data is of 201 samples and 4 features "
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 4)"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Z.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"after the transformation, there 201 samples and 15 features"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 15)"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Z_pr.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Pipeline</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Data Pipelines simplify the steps of processing the data. We use the module <b>Pipeline</b> to create a pipeline. We also use <b>StandardScaler</b> as a step in our pipeline.</p>"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.pipeline import Pipeline\n",
"from sklearn.preprocessing import StandardScaler"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We create the pipeline, by creating a list of tuples including the name of the model or estimator and its corresponding constructor."
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Input=[('scale',StandardScaler()), ('polynomial', PolynomialFeatures(include_bias=False)), ('model',LinearRegression())]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we input the list as an argument to the pipeline constructor "
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Pipeline(memory=None,\n",
" steps=[('scale', StandardScaler(copy=True, with_mean=True, with_std=True)), ('polynomial', PolynomialFeatures(degree=2, include_bias=False, interaction_only=False)), ('model', LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False))])"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pipe=Pipeline(Input)\n",
"pipe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can normalize the data, perform a transform and fit the model simultaneously. "
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/preprocessing/data.py:625: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.partial_fit(X, y)\n",
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/base.py:465: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.fit(X, y, **fit_params).transform(X)\n"
]
},
{
"data": {
"text/plain": [
"Pipeline(memory=None,\n",
" steps=[('scale', StandardScaler(copy=True, with_mean=True, with_std=True)), ('polynomial', PolynomialFeatures(degree=2, include_bias=False, interaction_only=False)), ('model', LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False))])"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pipe.fit(Z,y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Similarly, we can normalize the data, perform a transform and produce a prediction simultaneously"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/pipeline.py:331: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" Xt = transform.transform(Xt)\n"
]
},
{
"data": {
"text/plain": [
"array([13102.74784201, 13102.74784201, 18225.54572197, 10390.29636555])"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ypipe=pipe.predict(Z)\n",
"ypipe[0:4]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #5:</h1>\n",
"<b>Create a pipeline that Standardizes the data, then perform prediction using a linear regression model using the features Z and targets y</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/preprocessing/data.py:625: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.partial_fit(X, y)\n",
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/base.py:465: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.fit(X, y, **fit_params).transform(X)\n",
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/pipeline.py:331: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" Xt = transform.transform(Xt)\n"
]
},
{
"data": {
"text/plain": [
"array([13699.11161184, 13699.11161184, 19051.65470233, 10620.36193015])"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"Input = [('scale', StandardScaler()), ('model', LinearRegression())]\n",
"pipe = Pipeline(Input)\n",
"pipe.fit(Z, y)\n",
"ypipe = pipe.predict(Z)\n",
"ypipe[0:4]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"</div>\n",
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"Input=[('scale',StandardScaler()),('model',LinearRegression())]\n",
"\n",
"pipe=Pipeline(Input)\n",
"\n",
"pipe.fit(Z,y)\n",
"\n",
"ypipe=pipe.predict(Z)\n",
"ypipe[0:10]\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Part 4: Measures for In-Sample Evaluation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>When evaluating our models, not only do we want to visualize the results, but we also want a quantitative measure to determine how accurate the model is.</p>\n",
"\n",
"<p>Two very important measures that are often used in Statistics to determine the accuracy of a model are:</p>\n",
"<ul>\n",
" <li><b>R^2 / R-squared</b></li>\n",
" <li><b>Mean Squared Error (MSE)</b></li>\n",
"</ul>\n",
" \n",
"<b>R-squared</b>\n",
"\n",
"<p>R squared, also known as the coefficient of determination, is a measure to indicate how close the data is to the fitted regression line.</p>\n",
" \n",
"<p>The value of the R-squared is the percentage of variation of the response variable (y) that is explained by a linear model.</p>\n",
"\n",
"\n",
"\n",
"<b>Mean Squared Error (MSE)</b>\n",
"\n",
"<p>The Mean Squared Error measures the average of the squares of errors, that is, the difference between actual value (y) and the estimated value (ŷ).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Model 1: Simple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the R^2"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R-square is: 0.4965911884339175\n"
]
}
],
"source": [
"#highway_mpg_fit\n",
"lm.fit(X, Y)\n",
"# Find the R^2\n",
"print('The R-square is: ', lm.score(X, Y))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 49.659% of the variation of the price is explained by this simple linear model \"horsepower_fit\"."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the MSE"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can predict the output i.e., \"yhat\" using the predict method, where X is the input variable:"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The output of the first four predicted value is: [16236.50464347 16236.50464347 17058.23802179 13771.3045085 ]\n"
]
}
],
"source": [
"Yhat=lm.predict(X)\n",
"print('The output of the first four predicted value is: ', Yhat[0:4])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"lets import the function <b>mean_squared_error</b> from the module <b>metrics</b>"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.metrics import mean_squared_error"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we compare the predicted results with the actual results "
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean square error of price and predicted value is: 31635042.944639895\n"
]
}
],
"source": [
"mse = mean_squared_error(df['price'], Yhat)\n",
"print('The mean square error of price and predicted value is: ', mse)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Model 2: Multiple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the R^2"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R-square is: 0.8093562806577458\n"
]
}
],
"source": [
"# fit the model \n",
"lm.fit(Z, df['price'])\n",
"# Find the R^2\n",
"print('The R-square is: ', lm.score(Z, df['price']))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 80.896 % of the variation of price is explained by this multiple linear regression \"multi_fit\"."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the MSE"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" we produce a prediction "
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Y_predict_multifit = lm.predict(Z)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" we compare the predicted results with the actual results "
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean square error of price and predicted value using multifit is: 11980366.870726489\n"
]
}
],
"source": [
"print('The mean square error of price and predicted value using multifit is: ', \\\n",
" mean_squared_error(df['price'], Y_predict_multifit))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Model 3: Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the R^2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"let’s import the function <b>r2_score</b> from the module <b>metrics</b> as we are using a different function"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.metrics import r2_score"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We apply the function to get the value of r^2"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R-square value is: 0.6741946663906517\n"
]
}
],
"source": [
"r_squared = r2_score(y, p(x))\n",
"print('The R-square value is: ', r_squared)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 67.419 % of the variation of price is explained by this polynomial fit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>MSE</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also calculate the MSE: "
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"20474146.426361226"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mean_squared_error(df['price'], p(x))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Part 5: Prediction and Decision Making</h2>\n",
"<h3>Prediction</h3>\n",
"\n",
"<p>In the previous section, we trained the model using the method <b>fit</b>. Now we will use the method <b>predict</b> to produce a prediction. Lets import <b>pyplot</b> for plotting; we will also be using some functions from numpy.</p>"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create a new input "
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"new_input=np.arange(1, 100, 1).reshape(-1, 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Fit the model "
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.fit(X, Y)\n",
"lm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Produce a prediction"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([37601.57247984, 36779.83910151, 35958.10572319, 35136.37234487,\n",
" 34314.63896655])"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"yhat=lm.predict(new_input)\n",
"yhat[0:5]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can plot the data "
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(new_input, yhat)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Decision Making: Determining a Good Model Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Now that we have visualized the different models, and generated the R-squared and MSE values for the fits, how do we determine a good model fit?\n",
"<ul>\n",
" <li><i>What is a good R-squared value?</i></li>\n",
"</ul>\n",
"</p>\n",
"\n",
"<p>When comparing models, <b>the model with the higher R-squared value is a better fit</b> for the data.\n",
"<ul>\n",
" <li><i>What is a good MSE?</i></li>\n",
"</ul>\n",
"</p>\n",
"\n",
"<p>When comparing models, <b>the model with the smallest MSE value is a better fit</b> for the data.</p>\n",
"\n",
"\n",
"<h4>Let's take a look at the values for the different models.</h4>\n",
"<p>Simple Linear Regression: Using Highway-mpg as a Predictor Variable of Price.\n",
"<ul>\n",
" <li>R-squared: 0.49659118843391759</li>\n",
" <li>MSE: 3.16 x10^7</li>\n",
"</ul>\n",
"</p>\n",
" \n",
"<p>Multiple Linear Regression: Using Horsepower, Curb-weight, Engine-size, and Highway-mpg as Predictor Variables of Price.\n",
"<ul>\n",
" <li>R-squared: 0.80896354913783497</li>\n",
" <li>MSE: 1.2 x10^7</li>\n",
"</ul>\n",
"</p>\n",
" \n",
"<p>Polynomial Fit: Using Highway-mpg as a Predictor Variable of Price.\n",
"<ul>\n",
" <li>R-squared: 0.6741946663906514</li>\n",
" <li>MSE: 2.05 x 10^7</li>\n",
"</ul>\n",
"</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Simple Linear Regression model (SLR) vs Multiple Linear Regression model (MLR)</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Usually, the more variables you have, the better your model is at predicting, but this is not always true. Sometimes you may not have enough data, you may run into numerical problems, or many of the variables may not be useful and or even act as noise. As a result, you should always check the MSE and R^2.</p>\n",
"\n",
"<p>So to be able to compare the results of the MLR vs SLR models, we look at a combination of both the R-squared and MSE to make the best conclusion about the fit of the model.\n",
"<ul>\n",
" <li><b>MSE</b>The MSE of SLR is 3.16x10^7 while MLR has an MSE of 1.2 x10^7. The MSE of MLR is much smaller.</li>\n",
" <li><b>R-squared</b>: In this case, we can also see that there is a big difference between the R-squared of the SLR and the R-squared of the MLR. The R-squared for the SLR (~0.497) is very small compared to the R-squared for the MLR (~0.809).</li>\n",
"</ul>\n",
"</p>\n",
"\n",
"This R-squared in combination with the MSE show that MLR seems like the better model fit in this case, compared to SLR."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Simple Linear Model (SLR) vs Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li><b>MSE</b>: We can see that Polynomial Fit brought down the MSE, since this MSE is smaller than the one from the SLR.</li> \n",
" <li><b>R-squared</b>: The R-squared for the Polyfit is larger than the R-squared for the SLR, so the Polynomial Fit also brought up the R-squared quite a bit.</li>\n",
"</ul>\n",
"<p>Since the Polynomial Fit resulted in a lower MSE and a higher R-squared, we can conclude that this was a better fit model than the simple linear regression for predicting Price with Highway-mpg as a predictor variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Multiple Linear Regression (MLR) vs Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li><b>MSE</b>: The MSE for the MLR is smaller than the MSE for the Polynomial Fit.</li>\n",
" <li><b>R-squared</b>: The R-squared for the MLR is also much larger than for the Polynomial Fit.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Conclusion:</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Comparing these three models, we conclude that <b>the MLR model is the best model</b> to be able to predict price from our dataset. This result makes sense, since we have 27 variables in total, and we know that more than one of those variables are potential predictors of the final car price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment