Skip to content

Instantly share code, notes, and snippets.

@Moloi-Mokete
Created March 13, 2019 11:40
Show Gist options
  • Save Moloi-Mokete/c42f9174c1244d9b9549865941161d40 to your computer and use it in GitHub Desktop.
Save Moloi-Mokete/c42f9174c1244d9b9549865941161d40 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"https://cocl.us/corsera_da0101en_notebook_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size=5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Module 4: Model Development</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>In this section, we will develop several models that will predict the price of the car using the variables or features. This is just an estimate but should give us an objective idea of how much the car should cost.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some questions we want to ask in this module\n",
"<ul>\n",
" <li>do I know if the dealer is offering fair value for my trade-in?</li>\n",
" <li>do I know if I put a fair value on my car?</li>\n",
"</ul>\n",
"<p>Data Analytics, we often use <b>Model Development</b> to help us predict future observations from the data we have.</p>\n",
"\n",
"<p>A Model will help us understand the exact relationship between different variables and how these variables are used to predict the result.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# path of data \n",
"path = 'https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>1. Linear Regression and Multiple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Linear Regression</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"<p>One example of a Data Model that we will be using is</p>\n",
"<b>Simple Linear Regression</b>.\n",
"\n",
"<br>\n",
"<p>Simple Linear Regression is a method to help us understand the relationship between two variables:</p>\n",
"<ul>\n",
" <li>The predictor/independent variable (X)</li>\n",
" <li>The response/dependent variable (that we want to predict)(Y)</li>\n",
"</ul>\n",
"\n",
"<p>The result of Linear Regression is a <b>linear function</b> that predicts the response (dependent) variable as a function of the predictor (independent) variable.</p>\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
" Y: Response \\ Variable\\\\\n",
" X: Predictor \\ Variables\n",
"$$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <b>Linear function:</b>\n",
"$$\n",
"Yhat = a + b X\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li>a refers to the <b>intercept</b> of the regression line0, in other words: the value of Y when X is 0</li>\n",
" <li>b refers to the <b>slope</b> of the regression line, in other words: the value with which Y changes when X increases by 1 unit</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Lets load the modules for linear regression</h4>"
]
},
{
"cell_type": "code",
"execution_count": 6,
"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": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 8,
"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": 9,
"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": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.fit(X,Y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can output a prediction "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([16236.50464347, 16236.50464347, 17058.23802179, 13771.3045085 ,\n",
" 20345.17153508])"
]
},
"execution_count": 15,
"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": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"38423.305858157386"
]
},
"execution_count": 16,
"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": 17,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([-821.73337832])"
]
},
"execution_count": 17,
"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": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"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": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"#X1 = df[['engine-size']]\n",
"#Y1 = df['price']\n",
"#lm1.fit(X1,Y1)\n",
"#lm1\n",
"lm1.fit(df[['engine-size']], df[['price']])\n",
"lm1"
]
},
{
"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": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[166.86001569]])"
]
},
"execution_count": 28,
"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": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-7963.33890628])"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm1.intercept_"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[13728.4631336 ],\n",
" [13728.4631336 ],\n",
" [17399.38347881],\n",
" [10224.40280408],\n",
" [14729.62322775]])"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Yhat1 = lm1.predict(X1)\n",
"Yhat1[0:5]"
]
},
{
"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",
"## Yhat1 = -7963 + 166.86(X)"
]
},
{
"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": 44,
"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": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 45,
"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": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-15806.624626329198"
]
},
"execution_count": 46,
"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": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([53.49574423, 4.70770099, 81.53026382, 36.05748882])"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.coef_"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"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": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"#lm2 = LinearRegression()\n",
"#Z = df[['normalized-losses', 'highway-mpg']]\n",
"#lm2.fit(Z, 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": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.49789586, -820.45434016])"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm2.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"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": 37,
"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": 38,
"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.98514310976)"
]
},
"execution_count": 38,
"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": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 47422.919330307624)"
]
},
"execution_count": 39,
"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": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>peak-rpm</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>-0.058598</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm highway-mpg price\n",
"peak-rpm 1.000000 -0.058598 -0.101616\n",
"highway-mpg -0.058598 1.000000 -0.704692\n",
"price -0.101616 -0.704692 1.000000"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[[\"peak-rpm\",\"highway-mpg\",\"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"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": 41,
"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": 48,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Y_hat = lm.predict(Z)"
]
},
{
"cell_type": "code",
"execution_count": 49,
"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": 53,
"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": 54,
"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": 51,
"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": 55,
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": 60,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 11 10 9 8 7\n",
"-1.243e-08 x + 4.722e-06 x - 0.0008028 x + 0.08056 x - 5.297 x\n",
" 6 5 4 3 2\n",
" + 239.5 x - 7588 x + 1.684e+05 x - 2.565e+06 x + 2.551e+07 x - 1.491e+08 x + 3.879e+08\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"f11 = np.polyfit(x,y,11)\n",
"p11 = np.poly1d(f11)\n",
"print(p11)\n",
"PlotPolly(p11,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": 61,
"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": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pr=PolynomialFeatures(degree=2)\n",
"pr"
]
},
{
"cell_type": "code",
"execution_count": 63,
"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": 64,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 4)"
]
},
"execution_count": 64,
"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": 65,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 15)"
]
},
"execution_count": 65,
"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": 66,
"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": 67,
"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": 68,
"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": 68,
"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": 69,
"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": 69,
"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": 71,
"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": 71,
"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": 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": 72,
"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": 73,
"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": 74,
"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": 75,
"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": 76,
"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": 77,
"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": 78,
"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": 79,
"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": 80,
"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": 81,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"20474146.426361226"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mean_squared_error(df['price'], p(x))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Part 5: Prediction and Decision Making</h2>\n",
"<h3>Prediction</h3>\n",
"\n",
"<p>In the previous section, we trained the model using the method <b>fit</b>. Now we will use the method <b>predict</b> to produce a prediction. Lets import <b>pyplot</b> for plotting; we will also be using some functions from numpy.</p>"
]
},
{
"cell_type": "code",
"execution_count": 82,
"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": 83,
"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": 84,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 84,
"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": 85,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([37601.57247984, 36779.83910151, 35958.10572319, 35136.37234487,\n",
" 34314.63896655])"
]
},
"execution_count": 85,
"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": 86,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(new_input, yhat)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Decision Making: Determining a Good Model Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Now that we have visualized the different models, and generated the R-squared and MSE values for the fits, how do we determine a good model fit?\n",
"<ul>\n",
" <li><i>What is a good R-squared value?</i></li>\n",
"</ul>\n",
"</p>\n",
"\n",
"<p>When comparing models, <b>the model with the higher R-squared value is a better fit</b> for the data.\n",
"<ul>\n",
" <li><i>What is a good MSE?</i></li>\n",
"</ul>\n",
"</p>\n",
"\n",
"<p>When comparing models, <b>the model with the smallest MSE value is a better fit</b> for the data.</p>\n",
"\n",
"\n",
"<h4>Let's take a look at the values for the different models.</h4>\n",
"<p>Simple Linear Regression: Using Highway-mpg as a Predictor Variable of Price.\n",
"<ul>\n",
" <li>R-squared: 0.49659118843391759</li>\n",
" <li>MSE: 3.16 x10^7</li>\n",
"</ul>\n",
"</p>\n",
" \n",
"<p>Multiple Linear Regression: Using Horsepower, Curb-weight, Engine-size, and Highway-mpg as Predictor Variables of Price.\n",
"<ul>\n",
" <li>R-squared: 0.80896354913783497</li>\n",
" <li>MSE: 1.2 x10^7</li>\n",
"</ul>\n",
"</p>\n",
" \n",
"<p>Polynomial Fit: Using Highway-mpg as a Predictor Variable of Price.\n",
"<ul>\n",
" <li>R-squared: 0.6741946663906514</li>\n",
" <li>MSE: 2.05 x 10^7</li>\n",
"</ul>\n",
"</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Simple Linear Regression model (SLR) vs Multiple Linear Regression model (MLR)</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Usually, the more variables you have, the better your model is at predicting, but this is not always true. Sometimes you may not have enough data, you may run into numerical problems, or many of the variables may not be useful and or even act as noise. As a result, you should always check the MSE and R^2.</p>\n",
"\n",
"<p>So to be able to compare the results of the MLR vs SLR models, we look at a combination of both the R-squared and MSE to make the best conclusion about the fit of the model.\n",
"<ul>\n",
" <li><b>MSE</b>The MSE of SLR is 3.16x10^7 while MLR has an MSE of 1.2 x10^7. The MSE of MLR is much smaller.</li>\n",
" <li><b>R-squared</b>: In this case, we can also see that there is a big difference between the R-squared of the SLR and the R-squared of the MLR. The R-squared for the SLR (~0.497) is very small compared to the R-squared for the MLR (~0.809).</li>\n",
"</ul>\n",
"</p>\n",
"\n",
"This R-squared in combination with the MSE show that MLR seems like the better model fit in this case, compared to SLR."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Simple Linear Model (SLR) vs Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li><b>MSE</b>: We can see that Polynomial Fit brought down the MSE, since this MSE is smaller than the one from the SLR.</li> \n",
" <li><b>R-squared</b>: The R-squared for the Polyfit is larger than the R-squared for the SLR, so the Polynomial Fit also brought up the R-squared quite a bit.</li>\n",
"</ul>\n",
"<p>Since the Polynomial Fit resulted in a lower MSE and a higher R-squared, we can conclude that this was a better fit model than the simple linear regression for predicting Price with Highway-mpg as a predictor variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Multiple Linear Regression (MLR) vs Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li><b>MSE</b>: The MSE for the MLR is smaller than the MSE for the Polynomial Fit.</li>\n",
" <li><b>R-squared</b>: The R-squared for the MLR is also much larger than for the Polynomial Fit.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Conclusion:</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Comparing these three models, we conclude that <b>the MLR model is the best model</b> to be able to predict price from our dataset. This result makes sense, since we have 27 variables in total, and we know that more than one of those variables are potential predictors of the final car price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment