Skip to content

Instantly share code, notes, and snippets.

@shas043
Created April 18, 2019 18:00
Show Gist options
  • Save shas043/366262cb41566c3864f661f2427cbc2a to your computer and use it in GitHub Desktop.
Save shas043/366262cb41566c3864f661f2427cbc2a 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": 2,
"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": 3,
"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": 3,
"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": 10,
"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": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"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": 12,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"X = df[['highway-mpg']]\n",
"Y = df['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fit the linear model using highway-mpg."
]
},
{
"cell_type": "code",
"execution_count": 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": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"38423.305858157386"
]
},
"execution_count": 19,
"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": 20,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([-821.73337832])"
]
},
"execution_count": 20,
"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": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"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": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"x = df[['engine-size']]\n",
"y = df[['price']]\n",
"lm1.fit(x,y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm1.fit(df[['engine-size']], df[['price']])\n",
"lm1\n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 c):</h1>\n",
"\n",
"<b>Find the slope and intercept of the model?</b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Slope</h4>"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[166.86001569]])"
]
},
"execution_count": 23,
"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": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-7963.33890628])"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm1.intercept_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# Slope \n",
"lm1.coef_\n",
"# Intercept\n",
"lm1.intercept_\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 d): </h1>\n",
"\n",
"<b>What is the equation of the predicted line. You can use x and yhat or 'engine-size' or 'price'?</b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 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": 25,
"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": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 26,
"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": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-15806.624626329198"
]
},
"execution_count": 27,
"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": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([53.49574423, 4.70770099, 81.53026382, 36.05748882])"
]
},
"execution_count": 28,
"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": 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",
"lm2=LinearRegression()\n",
"z1=df[['normalized-losses', 'highway-mpg']]\n",
"lm2.fit(z1,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": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.49789586, -820.45434016])"
]
},
"execution_count": 32,
"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": 34,
"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": 35,
"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, 48290.95651474767)"
]
},
"execution_count": 35,
"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": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 47422.919330307624)"
]
},
"execution_count": 36,
"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": 37,
"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": 37,
"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": 38,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"width = 10\n",
"height = 8\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": 39,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Y_hat = lm.predict(Z)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"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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\n",
"text/plain": [
"<Figure size 720x576 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": 41,
"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": 42,
"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": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 3 2\n",
"-1.557 x + 204.8 x - 8965 x + 1.379e+05\n"
]
}
],
"source": [
"# Here we use a polynomial of the 3rd order (cubic) \n",
"f = np.polyfit(x, y, 3)\n",
"p = np.poly1d(f)\n",
"print(p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's plot the function "
]
},
{
"cell_type": "code",
"execution_count": 44,
"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": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-1.55663829e+00, 2.04754306e+02, -8.96543312e+03, 1.37923594e+05])"
]
},
"execution_count": 45,
"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": 46,
"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": null,
"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": 48,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pr=PolynomialFeatures(degree=2)\n",
"pr"
]
},
{
"cell_type": "code",
"execution_count": 49,
"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": 50,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 4)"
]
},
"execution_count": 50,
"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": 51,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 15)"
]
},
"execution_count": 51,
"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": 52,
"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": 53,
"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": 54,
"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": 54,
"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": 55,
"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": 55,
"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": 56,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/pipeline.py:331: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" Xt = transform.transform(Xt)\n"
]
},
{
"data": {
"text/plain": [
"array([13102.74784201, 13102.74784201, 18225.54572197, 10390.29636555])"
]
},
"execution_count": 56,
"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": 57,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/preprocessing/data.py:625: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.partial_fit(X, y)\n",
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/base.py:465: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" return self.fit(X, y, **fit_params).transform(X)\n",
"/home/jupyterlab/conda/lib/python3.6/site-packages/sklearn/pipeline.py:331: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
" Xt = transform.transform(Xt)\n"
]
},
{
"data": {
"text/plain": [
"array([13699.11161184, 13699.11161184, 19051.65470233, 10620.36193015,\n",
" 15521.31420211, 13869.66673213, 15456.16196732, 15974.00907672,\n",
" 17612.35917161, 10722.32509097])"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"Input=[('scale',StandardScaler()),('model',LinearRegression())]\n",
"\n",
"pipe=Pipeline(Input)\n",
"\n",
"pipe.fit(Z,y)\n",
"\n",
"ypipe=pipe.predict(Z)\n",
"ypipe[0:10]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"</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": 58,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R-square is: 0.4965911884339175\n"
]
}
],
"source": [
"#highway_mpg_fit\n",
"lm.fit(X, Y)\n",
"# Find the R^2\n",
"print('The R-square is: ', lm.score(X, Y))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 49.659% of the variation of the price is explained by this simple linear model \"horsepower_fit\"."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the MSE"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can predict the output i.e., \"yhat\" using the predict method, where X is the input variable:"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The output of the first four predicted value is: [16236.50464347 16236.50464347 17058.23802179 13771.3045085 ]\n"
]
}
],
"source": [
"Yhat=lm.predict(X)\n",
"print('The output of the first four predicted value is: ', Yhat[0:4])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"lets import the function <b>mean_squared_error</b> from the module <b>metrics</b>"
]
},
{
"cell_type": "code",
"execution_count": 60,
"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": 61,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean square error of price and predicted value is: 31635042.944639895\n"
]
}
],
"source": [
"mse = mean_squared_error(df['price'], Yhat)\n",
"print('The mean square error of price and predicted value is: ', mse)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Model 2: Multiple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the R^2"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R-square is: 0.8093562806577458\n"
]
}
],
"source": [
"# fit the model \n",
"lm.fit(Z, df['price'])\n",
"# Find the R^2\n",
"print('The R-square is: ', lm.score(Z, df['price']))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 80.896 % of the variation of price is explained by this multiple linear regression \"multi_fit\"."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the MSE"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" we produce a prediction "
]
},
{
"cell_type": "code",
"execution_count": 63,
"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": 64,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean square error of price and predicted value using multifit is: 11980366.870726489\n"
]
}
],
"source": [
"print('The mean square error of price and predicted value using multifit is: ', \\\n",
" mean_squared_error(df['price'], Y_predict_multifit))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Model 3: Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the R^2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"let’s import the function <b>r2_score</b> from the module <b>metrics</b> as we are using a different function"
]
},
{
"cell_type": "code",
"execution_count": 65,
"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": 66,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R-square value is: 0.6741946663906517\n"
]
}
],
"source": [
"r_squared = r2_score(y, p(x))\n",
"print('The R-square value is: ', r_squared)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 67.419 % of the variation of price is explained by this polynomial fit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>MSE</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also calculate the MSE: "
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"20474146.426361226"
]
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mean_squared_error(df['price'], p(x))\n"
]
},
{
"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": 68,
"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": 69,
"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": 70,
"metadata": {
"collapsed": 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": [
"lm.fit(X, Y)\n",
"lm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Produce a prediction"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([37601.57247984, 36779.83910151, 35958.10572319, 35136.37234487,\n",
" 34314.63896655])"
]
},
"execution_count": 71,
"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": 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