Skip to content

Instantly share code, notes, and snippets.

@aish2997
Created March 20, 2019 01:37
Show Gist options
  • Save aish2997/618a4ed4ab67aa7b3d2954be62974bb1 to your computer and use it in GitHub Desktop.
Save aish2997/618a4ed4ab67aa7b3d2954be62974bb1 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": [
"<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": 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 = 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": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"0 13495.0\n",
"1 16500.0\n",
"2 16500.0\n",
"3 13950.0\n",
"4 17450.0\n",
"Name: price, dtype: float64\n"
]
}
],
"source": [
"X = df[['highway-mpg']]\n",
"Y = df['price']\n",
"print(type(X))\n",
"print(Y.head())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fit the linear model using highway-mpg."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 17,
"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": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([16236.50464347, 16236.50464347, 17058.23802179, 13771.3045085 ,\n",
" 20345.17153508])"
]
},
"execution_count": 18,
"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": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"38423.305858157386"
]
},
"execution_count": 22,
"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": 23,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([-821.73337832])"
]
},
"execution_count": 23,
"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": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"linear_regression = LinearRegression()\n",
"linear_regression"
]
},
{
"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": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"linear_regression.fit(df[['highway-mpg']], df[['price']])\n",
"linear_regression"
]
},
{
"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": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[-821.73337832]])"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"linear_regression.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Intercept</h4>"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([38423.30585816])"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"linear_regression.intercept_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# Slope \n",
"lm1.coef_\n",
"# Intercept\n",
"lm1.intercept_\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 d): </h1>\n",
"\n",
"<b>What is the equation of the predicted line. You can use x and yhat or 'engine-size' or 'price'?</b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# You can type you answer here\n"
]
},
{
"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": 23,
"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": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 39,
"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": 40,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-15806.624626329198"
]
},
"execution_count": 40,
"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": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([53.49574423, 4.70770099, 81.53026382, 36.05748882])"
]
},
"execution_count": 41,
"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": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm2 = LinearRegression()\n",
"W = df[['normalized-losses', 'highway-mpg']]\n",
"lm2.fit(W, 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": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.49789586, -820.45434016])"
]
},
"execution_count": 44,
"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": 45,
"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": 46,
"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, 48266.82352045715)"
]
},
"execution_count": 46,
"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": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 47422.919330307624)"
]
},
"execution_count": 47,
"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": 48,
"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": 48,
"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": 49,
"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": 50,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Y_hat = lm.predict(Z)"
]
},
{
"cell_type": "code",
"execution_count": 51,
"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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ShARkSyn0C4itZPKa7THNGwInTvXObT/7W/w4otw113Qu3f8r+vd2/e1v/MOfPe7dSpBRESynEK7iNROOsy0g2+RqUN7zL59fqWYgQN9L3tNjR4Nd97pr4d95plalyEiIllOoV1Eaic2057KPe3gQ/vKlbVePH3CBP/55Cc/gXq1/D/mT34CRUVw7bWwaVPtxhARkeym0C4itbNmDbRqBc2aRV1J1bp394urr1xZ45c659dk79ULRoyofQkNGsAjj8COHbWbrRcREVFoF5HaSfXlHmNiK8jUoq99+nT44AO45RZ/g9W66NUL7rgDJk2IYxLTAAAgAElEQVSC556r21giIpJ9FNpFpHbWrk2P0N69u9/Woq/97rv9Wxw7NjGl3Hqrv+nSNdfA1q2JGVNERLKDQruI1M6aNanfzw7QvLlP3jWcaX/nHZg1C266CRo1SkwpDRvCww/D5s1w222JGVNERLKDQruI1Nz+/bBhQ3rMtINvkalhaL/nHjjiCPj2txNbSmGh/yDw17/CG28kdmwREclcCu0iUnPr1vmrNNMptC9b5muOw9atvu/8yiuhZcvEl3PnndChA1x9da0XtRERkSyj0C4iNZcON1Yqq6AAPv/8y7qr8eyzPkxffHE45TRvDvff7y9yHT8+nHOIiEhmUWgXkZpLlzXaY2IXo8bZIjNhgr+R6oknhlfSyJEwapSfdS8uDu88IiKSGRTaRaTm0nGmHeIK7evWwauvwrhxdV/msTp//CPUr+/bZOLs3BERkSyl0C4iNbd2LTRt6m+ulA7atoXWreNa9vHpp32AHjcu/LI6dIDf/hZefhkefzz884mISPpSaBeRmovdWCnsqehEMfMtMnHMtE+YAH37fjk5H7ZrroGBA+H734f165NzThERST8K7SJSc+myRntZcSz7uGoVvPVWcmbZY+rVg4cegi++gOuuS955RUQkvSi0i0jNxWba00lBAWzcWOWtSCdO9NtE3QE1Xt26wc9/DlOmwOTJyT23iIikB4V2EamZ0lL49NP0C+2xFWSq6GufMMG3qnTqlKSayvjhD/1qNd/5Dnz0UfLPLyIiqU2hXURqZvNmOHAAjj026kpqppoVZFas8OumX3RREmsqo2FDP9NfUgIXXgj79kVTh4iIpCaFdhGpmXXr/DbdQnteHjRuXOlM+0sv+e255yavpPI6d4aH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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(width, height))\n",
"\n",
"\n",
"ax1 = sns.distplot(df['price'], hist=False, color=\"r\", label=\"Actual Value\")\n",
"sns.distplot(Yhat, hist=False, color=\"b\", label=\"Fitted Values\" , ax=ax1)\n",
"\n",
"\n",
"plt.title('Actual vs Fitted Values for Price')\n",
"plt.xlabel('Price (in dollars)')\n",
"plt.ylabel('Proportion of Cars')\n",
"\n",
"plt.show()\n",
"plt.close()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We can see that the fitted values are reasonably close to the actual values, since the two distributions overlap a bit. However, there is definitely some room for improvement.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Part 3: Polynomial Regression and Pipelines</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Polynomial regression</b> is a particular case of the general linear regression model or multiple linear regression models.</p> \n",
"<p>We get non-linear relationships by squaring or setting higher-order terms of the predictor variables.</p>\n",
"\n",
"<p>There are different orders of polynomial regression:</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center><b>Quadratic - 2nd order</b></center>\n",
"$$\n",
"Yhat = a + b_1 X^2 +b_2 X^2 \n",
"$$\n",
"\n",
"\n",
"<center><b>Cubic - 3rd order</b></center>\n",
"$$\n",
"Yhat = a + b_1 X^2 +b_2 X^2 +b_3 X^3\\\\\n",
"$$\n",
"\n",
"\n",
"<center><b>Higher order</b>:</center>\n",
"$$\n",
"Y = a + b_1 X^2 +b_2 X^2 +b_3 X^3 ....\\\\\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We saw earlier that a linear model did not provide the best fit while using highway-mpg as the predictor variable. Let's see if we can try fitting a polynomial model to the data instead.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We will use the following function to plot the data:</p>"
]
},
{
"cell_type": "code",
"execution_count": 14,
"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": 6,
"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": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-1.55663829e+00 2.04754306e+02 -8.96543312e+03 1.37923594e+05]\n",
" 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": 56,
"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": 57,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-1.55663829e+00, 2.04754306e+02, -8.96543312e+03, 1.37923594e+05])"
]
},
"execution_count": 57,
"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": 19,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 3 2\n",
"-1.557 x + 204.8 x - 8965 x + 1.379e+05\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"f1 = np.polyfit(x,y,11)\n",
"p1=np.poly1d(f1)\n",
"print(p)\n",
"PlotPolly(p1,x,y,'Length')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# calculate polynomial\n",
"# Here we use a polynomial of the 3rd order (cubic) \n",
"f1 = np.polyfit(x, y, 11)\n",
"p1 = np.poly1d(f1)\n",
"print(p)\n",
"PlotPolly(p1,x,y, 'Length')\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The analytical expression for Multivariate Polynomial function gets complicated. For example, the expression for a second-order (degree=2)polynomial with two variables is given by:</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"Yhat = a + b_1 X_1 +b_2 X_2 +b_3 X_1 X_2+b_4 X_1^2+b_5 X_2^2\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can perform a polynomial transform on multiple features. First, we import the module:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"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": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pr=PolynomialFeatures(degree=2)\n",
"pr"
]
},
{
"cell_type": "code",
"execution_count": 24,
"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": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 4)"
]
},
"execution_count": 25,
"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": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 15)"
]
},
"execution_count": 26,
"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": 32,
"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": 33,
"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": 35,
"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": 35,
"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": 38,
"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": 38,
"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": 43,
"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,\n",
" 16136.29619164, 13880.09787302, 15041.58694037, 15457.93465485,\n",
" 17974.49032347, 10510.56542385, 10510.56542385, 15845.70697835,\n",
" 16068.03816037, 18547.43547305, 25222.41976123, 25176.06409341,\n",
" 26518.01037743, 5896.19728097, 6225.67595805, 6265.22601565,\n",
" 5976.20889391, 5832.72306295, 10109.23396371, 6061.05969767,\n",
" 6118.14411398, 6118.14411398, 10042.92800648, 11301.10641037,\n",
" 18336.04622938, 7336.72885437, 6420.49643279, 5174.21296336,\n",
" 6619.35236359, 6652.09244229, 6765.45204951, 6795.56233742,\n",
" 8796.64497511, 8948.23637645, 8991.91184621, 9194.18038695,\n",
" 10928.27635866, 10052.96792101, 9660.68466801, 12124.39546671,\n",
" 36318.61803898, 36318.61803898, 41642.8179005 , 5912.27956733,\n",
" 5928.15567673, 5941.11734652, 6046.17348651, 6059.47585172,\n",
" 10195.17246527, 10195.17246527, 10183.58560528, 15943.91103394,\n",
" 10255.79037208, 10380.12258884, 10255.79037208, 10380.12258884,\n",
" 10840.99181324, 10455.17617947, 14409.33460485, 13374.99392567,\n",
" 23845.18430719, 25660.83650127, 23694.52193108, 25819.22130713,\n",
" 33467.88380606, 32977.3323232 , 43675.1876574 , 40887.93971531,\n",
" 21725.64934084, 6133.16487359, 6085.05002803, 6253.80059193,\n",
" 10090.74982707, 11854.93594171, 10016.61577698, 18326.329704 ,\n",
" 18294.79233972, 18293.35249597, 10170.11422978, 10338.39037401,\n",
" 11789.53215232, 11789.53215232, 6142.17917544, 7983.88787635,\n",
" 6237.02226217, 6303.17324643, 6594.52421107, 6346.49618251,\n",
" 6608.34797507, 6413.64654004, 6639.54002489, 6539.47142737,\n",
" 9873.86832774, 9834.0864611 , 21542.40070894, 21943.92002198,\n",
" 19962.95857269, 20356.0183024 , 26222.11317103, 20341.71353538,\n",
" 14818.06559816, 17551.99876768, 15859.21897961, 22522.92300522,\n",
" 15235.77892428, 17955.44126309, 16372.90437956, 23030.2532818 ,\n",
" 15084.294341 , 17955.44126309, 16250.91973598, 6055.84397892,\n",
" 10109.23396371, 6061.05969767, 6118.14411398, 7233.51510587,\n",
" 11301.10641037, 18332.87511207, 16673.92477798, 29495.55178338,\n",
" 29495.55178338, 29142.08639481, 12016.62613202, 11697.23318166,\n",
" 12342.34351684, 12386.49919971, 12401.26513708, 12466.45293627,\n",
" 18242.95384024, 17949.00448273, 6700.20551188, 7997.30024417,\n",
" 8636.26729049, 7944.41290334, 8390.53558175, 9428.00408123,\n",
" 10474.44703897, 11297.44802676, 8851.7365991 , 9797.87067058,\n",
" 9844.28010745, 13096.77282426, 6056.63496474, 6245.63877429,\n",
" 6145.27113649, 7292.72653992, 7665.13318655, 12736.87506656,\n",
" 6871.06981567, 6968.66287912, 9283.38827884, 9464.77139239,\n",
" 7169.3719601 , 7136.3122441 , 7210.40024787, 7330.79618254,\n",
" 7477.79752708, 11470.87491749, 11381.87464018, 13425.15063307,\n",
" 13416.04571804, 13450.31407106, 13756.595326 , 13844.6633676 ,\n",
" 14559.88992624, 9806.11748135, 9879.53213034, 10407.28472047,\n",
" 10407.28472047, 10562.89821641, 20451.82473939, 20392.24997134,\n",
" 19935.66449178, 19170.99696916, 8417.3909446 , 8516.96887281,\n",
" 8433.178976 , 8524.96214343, 8695.96885206, 7520.25782581,\n",
" 9838.62475227, 9575.08567915, 9484.96194069, 14720.52537862,\n",
" 8713.09236566, 10070.069151 , 14626.38856972, 15008.62680132,\n",
" 14696.7259568 , 15034.47898838, 19307.91162797, 18667.09940953,\n",
" 14749.22928895, 18027.49072084, 19827.65641803, 17324.32982519,\n",
" 16292.72734879])"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ypipe=pipe.predict(Z)\n",
"ypipe[0:]"
]
},
{
"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": null,
"metadata": {},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"</div>\n",
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"Input=[('scale',StandardScaler()),('model',LinearRegression())]\n",
"\n",
"pipe=Pipeline(Input)\n",
"\n",
"pipe.fit(Z,y)\n",
"\n",
"ypipe=pipe.predict(Z)\n",
"ypipe[0:10]\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Part 4: Measures for In-Sample Evaluation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>When evaluating our models, not only do we want to visualize the results, but we also want a quantitative measure to determine how accurate the model is.</p>\n",
"\n",
"<p>Two very important measures that are often used in Statistics to determine the accuracy of a model are:</p>\n",
"<ul>\n",
" <li><b>R^2 / R-squared</b></li>\n",
" <li><b>Mean Squared Error (MSE)</b></li>\n",
"</ul>\n",
" \n",
"<b>R-squared</b>\n",
"\n",
"<p>R squared, also known as the coefficient of determination, is a measure to indicate how close the data is to the fitted regression line.</p>\n",
" \n",
"<p>The value of the R-squared is the percentage of variation of the response variable (y) that is explained by a linear model.</p>\n",
"\n",
"\n",
"\n",
"<b>Mean Squared Error (MSE)</b>\n",
"\n",
"<p>The Mean Squared Error measures the average of the squares of errors, that is, the difference between actual value (y) and the estimated value (ŷ).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Model 1: Simple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the R^2"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"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": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'lm' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-1-d278297c595f>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mYhat\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'The output of the first four predicted value is: '\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mYhat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'lm' is not defined"
]
}
],
"source": [
"Yhat=lm.predict(X)\n",
"print('The output of the first four predicted value is: ', Yhat)"
]
},
{
"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": null,
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": null,
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": null,
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": null,
"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": null,
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"lm.fit(X, Y)\n",
"lm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Produce a prediction"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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