Skip to content

Instantly share code, notes, and snippets.

@uncoded0123
Created September 8, 2019 09:53
Show Gist options
  • Select an option

  • Save uncoded0123/f080442e2ddaa74a111d622657ee7bdf to your computer and use it in GitHub Desktop.

Select an option

Save uncoded0123/f080442e2ddaa74a111d622657ee7bdf 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,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\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",
" <td>1</td>\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",
" <td>2</td>\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",
" <td>3</td>\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",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# path of data \n",
"path = 'https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>1. Linear Regression and Multiple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Linear Regression</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"<p>One example of a Data Model that we will be using is</p>\n",
"<b>Simple Linear Regression</b>.\n",
"\n",
"<br>\n",
"<p>Simple Linear Regression is a method to help us understand the relationship between two variables:</p>\n",
"<ul>\n",
" <li>The predictor/independent variable (X)</li>\n",
" <li>The response/dependent variable (that we want to predict)(Y)</li>\n",
"</ul>\n",
"\n",
"<p>The result of Linear Regression is a <b>linear function</b> that predicts the response (dependent) variable as a function of the predictor (independent) variable.</p>\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
" Y: Response \\ Variable\\\\\n",
" X: Predictor \\ Variables\n",
"$$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <b>Linear function:</b>\n",
"$$\n",
"Yhat = a + b X\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li>a refers to the <b>intercept</b> of the regression line0, in other words: the value of Y when X is 0</li>\n",
" <li>b refers to the <b>slope</b> of the regression line, in other words: the value with which Y changes when X increases by 1 unit</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Lets load the modules for linear regression</h4>"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"from sklearn.linear_model import LinearRegression"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Create the linear regression object</h4>"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm = LinearRegression()\n",
"lm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How could Highway-mpg help us predict car price?</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For this example, we want to look at how highway-mpg can help us predict car price.\n",
"Using simple linear regression, we will create a linear function with \"highway-mpg\" as the predictor variable and the \"price\" as the response variable."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"X = df[['highway-mpg']]\n",
"Y = df['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fit the linear model using highway-mpg."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.fit(X,Y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can output a prediction "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([16236.50464347, 16236.50464347, 17058.23802179, 13771.3045085 ,\n",
" 20345.17153508])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Yhat=lm.predict(X)\n",
"Yhat[0:5] "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>What is the value of the intercept (a)?</h4>"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"38423.305858157386"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.intercept_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>What is the value of the Slope (b)?</h4>"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([-821.73337832])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What is the final estimated linear model we get?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we saw above, we should get a final linear model with the structure:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"Yhat = a + b X\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plugging in the actual values we get:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>price</b> = 38423.31 - 821.73 x <b>highway-mpg</b>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 a): </h1>\n",
"\n",
"<b>Create a linear regression object?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 68,
"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": 70,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm1.fit(df[['highway-mpg']], df[['price']])\n",
"lm1\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm1.fit(df[['highway-mpg']], df[['price']])\n",
"lm1\n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 c):</h1>\n",
"\n",
"<b>Find the slope and intercept of the model?</b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Slope</h4>"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([[-821.73337832]])"
]
},
"execution_count": 71,
"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": 72,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([38423.30585816])"
]
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm1.intercept_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# Slope \n",
"lm1.coef_\n",
"# Intercept\n",
"lm1.intercept_\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 d): </h1>\n",
"\n",
"<b>What is the equation of the predicted line. You can use x and yhat or 'engine-size' or 'price'?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 73,
"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>engine-size</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>-68402.033324</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>-68402.033324</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>-86480.167647</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>-51145.632379</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>-73332.433594</td>\n",
" </tr>\n",
" <tr>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <td>196</td>\n",
" <td>-77441.100485</td>\n",
" </tr>\n",
" <tr>\n",
" <td>197</td>\n",
" <td>-77441.100485</td>\n",
" </tr>\n",
" <tr>\n",
" <td>198</td>\n",
" <td>-103736.568592</td>\n",
" </tr>\n",
" <tr>\n",
" <td>199</td>\n",
" <td>-80728.033999</td>\n",
" </tr>\n",
" <tr>\n",
" <td>200</td>\n",
" <td>-77441.100485</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>201 rows × 1 columns</p>\n",
"</div>"
],
"text/plain": [
" engine-size\n",
"0 -68402.033324\n",
"1 -68402.033324\n",
"2 -86480.167647\n",
"3 -51145.632379\n",
"4 -73332.433594\n",
".. ...\n",
"196 -77441.100485\n",
"197 -77441.100485\n",
"198 -103736.568592\n",
"199 -80728.033999\n",
"200 -77441.100485\n",
"\n",
"[201 rows x 1 columns]"
]
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# You can type you answer here\n",
"price = lm1.intercept_ + lm1.coef_*df[['engine-size']]\n",
"price\n",
"\n"
]
},
{
"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=-7963.34 + 166.86*X\n",
"\n",
"Price=-7963.34 + 166.86*engine-size\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Cody, You are here."
]
},
{
"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": 15,
"metadata": {},
"outputs": [],
"source": [
"Z = df[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fit the linear model using the four above-mentioned variables."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 16,
"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": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"-15806.624626329198"
]
},
"execution_count": 17,
"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": 18,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([53.49574423, 4.70770099, 81.53026382, 36.05748882])"
]
},
"execution_count": 18,
"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": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm2 = LinearRegression()\n",
"lm2.fit(df[['normalized-losses','highway-mpg']],df['price'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm2 = LinearRegression()\n",
"lm2.fit(df[['normalized-losses' , 'highway-mpg']],df['price'])\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #2 b): </h1>\n",
"<b>Find the coefficient of the model?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.49789586, -820.45434016])"
]
},
"execution_count": 20,
"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": 21,
"metadata": {},
"outputs": [],
"source": [
"# import the visualization package: seaborn\n",
"import seaborn as sns\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Regression Plot</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>When it comes to simple linear regression, an excellent way to visualize the fit of our model is by using <b>regression plots</b>.</p>\n",
"\n",
"<p>This plot will show a combination of a scattered data points (a <b>scatter plot</b>), as well as the fitted <b>linear regression</b> line going through the data. This will give us a reasonable estimate of the relationship between the two variables, the strength of the correlation, as well as the direction (positive or negative correlation).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's visualize Horsepower as potential predictor variable of price:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"text/plain": [
"(0, 48282.09381214888)"
]
},
"execution_count": 22,
"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": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 47422.919330307624)"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(width, height))\n",
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Comparing the regression plot of \"peak-rpm\" and \"highway-mpg\" we see that the points for \"highway-mpg\" are much closer to the generated line and on the average decrease. The points for \"peak-rpm\" have more spread around the predicted line, and it is much harder to determine if the points are decreasing or increasing as the \"highway-mpg\" increases.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #3:</h1>\n",
"<b>Given the regression plots above, is \"peak-rpm\" or \"highway-mpg\" more strongly correlated with \"price\". Use the method \".corr()\" to verify your answer.</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 25,
"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",
" <td>peak-rpm</td>\n",
" <td>1.000000</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <td>highway-mpg</td>\n",
" <td>-0.058598</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <td>price</td>\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": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['peak-rpm','highway-mpg','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"The variable \"highway-mpg\" has a stronger correlation with \"price\", it is approximate -0.704692 compared to \"peak-rpm\" which is approximate -0.101616. You can verify it using the following command:\n",
"df[[\"peak-rpm\",\"highway-mpg\",\"price\"]].corr()\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Residual Plot</h3>\n",
"\n",
"<p>A good way to visualize the variance of the data is to use a residual plot.</p>\n",
"\n",
"<p>What is a <b>residual</b>?</p>\n",
"\n",
"<p>The difference between the observed value (y) and the predicted value (Yhat) is called the residual (e). When we look at a regression plot, the residual is the distance from the data point to the fitted regression line.</p>\n",
"\n",
"<p>So what is a <b>residual plot</b>?</p>\n",
"\n",
"<p>A residual plot is a graph that shows the residuals on the vertical y-axis and the independent variable on the horizontal x-axis.</p>\n",
"\n",
"<p>What do we pay attention to when looking at a residual plot?</p>\n",
"\n",
"<p>We look at the spread of the residuals:</p>\n",
"\n",
"<p>- If the points in a residual plot are <b>randomly spread out around the x-axis</b>, then a <b>linear model is appropriate</b> for the data. Why is that? Randomly spread out residuals means that the variance is constant, and thus the linear model is a good fit for this data.</p>"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"width = 12\n",
"height = 10\n",
"plt.figure(figsize=(width, height))\n",
"sns.residplot(df['highway-mpg'], df['price'])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<i>What is this plot telling us?</i>\n",
"\n",
"<p>We can see from this residual plot that the residuals are not randomly spread around the x-axis, which leads us to believe that maybe a non-linear model is more appropriate for this data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Multiple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>How do we visualize a model for Multiple Linear Regression? This gets a bit more complicated because you can't visualize it with regression or residual plot.</p>\n",
"\n",
"<p>One way to look at the fit of the model is by looking at the <b>distribution plot</b>: We can look at the distribution of the fitted values that result from the model and compare it to the distribution of the actual values.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First lets make a prediction "
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"Y_hat = lm.predict(Z)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(width, height))\n",
"\n",
"\n",
"ax1 = sns.distplot(df['price'], hist=False, color=\"r\", label=\"Actual Value\")\n",
"sns.distplot(Yhat, hist=False, color=\"b\", label=\"Fitted Values\" , ax=ax1)\n",
"\n",
"\n",
"plt.title('Actual vs Fitted Values for Price')\n",
"plt.xlabel('Price (in dollars)')\n",
"plt.ylabel('Proportion of Cars')\n",
"\n",
"plt.show()\n",
"plt.close()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We can see that the fitted values are reasonably close to the actual values, since the two distributions overlap a bit. However, there is definitely some room for improvement.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Part 3: Polynomial Regression and Pipelines</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Polynomial regression</b> is a particular case of the general linear regression model or multiple linear regression models.</p> \n",
"<p>We get non-linear relationships by squaring or setting higher-order terms of the predictor variables.</p>\n",
"\n",
"<p>There are different orders of polynomial regression:</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center><b>Quadratic - 2nd order</b></center>\n",
"$$\n",
"Yhat = a + b_1 X^2 +b_2 X^2 \n",
"$$\n",
"\n",
"\n",
"<center><b>Cubic - 3rd order</b></center>\n",
"$$\n",
"Yhat = a + b_1 X^2 +b_2 X^2 +b_3 X^3\\\\\n",
"$$\n",
"\n",
"\n",
"<center><b>Higher order</b>:</center>\n",
"$$\n",
"Y = a + b_1 X^2 +b_2 X^2 +b_3 X^3 ....\\\\\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We saw earlier that a linear model did not provide the best fit while using highway-mpg as the predictor variable. Let's see if we can try fitting a polynomial model to the data instead.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We will use the following function to plot the data:</p>"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"def PlotPolly(model, independent_variable, dependent_variabble, Name):\n",
" x_new = np.linspace(15, 55, 100)\n",
" y_new = model(x_new)\n",
"\n",
" plt.plot(independent_variable, dependent_variabble, '.', x_new, y_new, '-')\n",
" plt.title('Polynomial Fit with Matplotlib for Price ~ Length')\n",
" ax = plt.gca()\n",
" ax.set_facecolor((0.898, 0.898, 0.898))\n",
" fig = plt.gcf()\n",
" plt.xlabel(Name)\n",
" plt.ylabel('Price of Cars')\n",
"\n",
" plt.show()\n",
" plt.close()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"lets get the variables"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"x = df['highway-mpg']\n",
"y = df['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's fit the polynomial using the function <b>polyfit</b>, then use the function <b>poly1d</b> to display the polynomial function."
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 3 2\n",
"-1.557 x + 204.8 x - 8965 x + 1.379e+05\n"
]
}
],
"source": [
"# Here we use a polynomial of the 3rd order (cubic) \n",
"f = np.polyfit(x, y, 3)\n",
"p = np.poly1d(f)\n",
"print(p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's plot the function "
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"PlotPolly(p, x, y, 'highway-mpg')"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([-1.55663829e+00, 2.04754306e+02, -8.96543312e+03, 1.37923594e+05])"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.polyfit(x, y, 3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We can already see from plotting that this polynomial model performs better than the linear model. This is because the generated polynomial function \"hits\" more of the data points.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #4:</h1>\n",
"<b>Create 11 order polynomial model with the variables x and y from above?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 3 2\n",
"-1.557 x + 204.8 x - 8965 x + 1.379e+05\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"f1 = np.polyfit(x, y, 11)\n",
"p1 = np.poly1d(f1)\n",
"print(p)\n",
"PlotPolly(p1,x,y,'Highway MPG')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# calculate polynomial\n",
"# Here we use a polynomial of the 11rd order (cubic) \n",
"f1 = np.polyfit(x, y, 11)\n",
"p1 = np.poly1d(f1)\n",
"print(p)\n",
"PlotPolly(p1,x,y, 'Highway MPG')\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The analytical expression for Multivariate Polynomial function gets complicated. For example, the expression for a second-order (degree=2)polynomial with two variables is given by:</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"Yhat = a + b_1 X_1 +b_2 X_2 +b_3 X_1 X_2+b_4 X_1^2+b_5 X_2^2\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can perform a polynomial transform on multiple features. First, we import the module:"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.preprocessing import PolynomialFeatures"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We create a <b>PolynomialFeatures</b> object of degree 2: "
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pr=PolynomialFeatures(degree=2)\n",
"pr"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"Z_pr=pr.fit_transform(Z)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The original data is of 201 samples and 4 features "
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 4)"
]
},
"execution_count": 43,
"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": 44,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 15)"
]
},
"execution_count": 44,
"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": 45,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.pipeline import Pipeline\n",
"from sklearn.preprocessing import StandardScaler"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We create the pipeline, by creating a list of tuples including the name of the model or estimator and its corresponding constructor."
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"Input=[('scale',StandardScaler()), ('polynomial', PolynomialFeatures(include_bias=False)), ('model',LinearRegression())]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we input the list as an argument to the pipeline constructor "
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"Pipeline(memory=None,\n",
" steps=[('scale', StandardScaler(copy=True, with_mean=True, with_std=True)), ('polynomial', PolynomialFeatures(degree=2, include_bias=False, interaction_only=False)), ('model', LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False))])"
]
},
"execution_count": 47,
"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": 48,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/sklearn/preprocessing/data.py:625: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.partial_fit(X, y)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/sklearn/base.py:465: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.fit(X, y, **fit_params).transform(X)\n"
]
},
{
"data": {
"text/plain": [
"Pipeline(memory=None,\n",
" steps=[('scale', StandardScaler(copy=True, with_mean=True, with_std=True)), ('polynomial', PolynomialFeatures(degree=2, include_bias=False, interaction_only=False)), ('model', LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False))])"
]
},
"execution_count": 48,
"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": 49,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/sklearn/pipeline.py:331: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" Xt = transform.transform(Xt)\n"
]
},
{
"data": {
"text/plain": [
"array([13102.74784201, 13102.74784201, 18225.54572197, 10390.29636555])"
]
},
"execution_count": 49,
"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": 50,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/sklearn/preprocessing/data.py:625: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.partial_fit(X, y)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/sklearn/base.py:465: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.fit(X, y, **fit_params).transform(X)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/sklearn/pipeline.py:331: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" Xt = transform.transform(Xt)\n"
]
},
{
"data": {
"text/plain": [
"array([13102.74784201, 13102.74784201, 18225.54572197, 10390.29636555,\n",
" 16136.29619164, 13880.09787302, 15041.58694037, 15457.93465485,\n",
" 17974.49032347, 10510.56542385])"
]
},
"execution_count": 50,
"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",
"ypipt=pipe.predict(Z)\n",
"ypipe[0:10]"
]
},
{
"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": 51,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 52,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 53,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import mean_squared_error"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we compare the predicted results with the actual results "
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 55,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R-square is: 0.8093562806577458\n"
]
}
],
"source": [
"# fit the model \n",
"lm.fit(Z, df['price'])\n",
"# Find the R^2\n",
"print('The R-square is: ', lm.score(Z, df['price']))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 80.896 % of the variation of price is explained by this multiple linear regression \"multi_fit\"."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the MSE"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" we produce a prediction "
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"Y_predict_multifit = lm.predict(Z)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" we compare the predicted results with the actual results "
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean square error of price and predicted value using multifit is: 11980366.870726489\n"
]
}
],
"source": [
"print('The mean square error of price and predicted value using multifit is: ', \\\n",
" mean_squared_error(df['price'], Y_predict_multifit))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Model 3: Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the R^2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"let’s import the function <b>r2_score</b> from the module <b>metrics</b> as we are using a different function"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import r2_score"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We apply the function to get the value of r^2"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R-square value is: 0.6741946663906517\n"
]
}
],
"source": [
"r_squared = r2_score(y, p(x))\n",
"print('The R-square value is: ', r_squared)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 67.419 % of the variation of price is explained by this polynomial fit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>MSE</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also calculate the MSE: "
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"20474146.426361226"
]
},
"execution_count": 60,
"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": 61,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create a new input "
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"new_input=np.arange(1, 100, 1).reshape(-1, 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Fit the model "
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 63,
"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": 64,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([37601.57247984, 36779.83910151, 35958.10572319, 35136.37234487,\n",
" 34314.63896655])"
]
},
"execution_count": 64,
"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": 65,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"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",
" <br>\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",
" <br>\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",
"<br>\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",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment