Skip to content

Instantly share code, notes, and snippets.

@abhiray92
Last active April 21, 2019 09:04
Show Gist options
  • Save abhiray92/1bf374646d9e1e242c9f7d3b5174623a to your computer and use it in GitHub Desktop.
Save abhiray92/1bf374646d9e1e242c9f7d3b5174623a 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": 4,
"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": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 5,
"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": 6,
"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": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 7,
"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": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([16236.50464347, 16236.50464347, 17058.23802179, 13771.3045085 ,\n",
" 20345.17153508])"
]
},
"execution_count": 13,
"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": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"38423.305858157386"
]
},
"execution_count": 14,
"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": 15,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([-821.73337832])"
]
},
"execution_count": 15,
"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": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lo = LinearRegression()\n",
"lo"
]
},
{
"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": 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",
"X = df[['engine-size']]\n",
"Y = df['price']\n",
"lo.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": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([166.86001569])"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lo.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Intercept</h4>"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-7963.338906281049"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lo.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": 8,
"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": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 9,
"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": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-15806.624626329198"
]
},
"execution_count": 10,
"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": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([53.49574423, 4.70770099, 81.53026382, 36.05748882])"
]
},
"execution_count": 11,
"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": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"lm2=LinearRegression()\n",
"P=df[['normalized-losses', 'highway-mpg']]\n",
"Q=df['price']\n",
"lm2.fit(P,Q)"
]
},
{
"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": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.49789586, -820.45434016])"
]
},
"execution_count": 13,
"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": 14,
"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": 15,
"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, 48263.19518327934)"
]
},
"execution_count": 15,
"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": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 47422.919330307624)"
]
},
"execution_count": 16,
"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": 17,
"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": 17,
"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": 18,
"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": 20,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Yhat = lm.predict(Z)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"image/png": "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/e9/5+STTyYnJ4cf//jHFBUVVedHFRVN+SgiIiKSym66CRYvjm2bOTnwpz9VeMj06dMZMWIE3bt3p1WrVixcuJABAwbw6quvMn36dObOnUvjxo3ZsWMHrVq14pFHHuGBBx4gNze3wnZPOukk5syZQ7169fj3v//Nr371K1588cVyjx8xYgRXX30127dvJzMzk8mTJ/PTn/60Wm2VtHz5cqZMmcL7779PRkYG1113HZMmTeKKK66I6vyqUmgXERERkZh7/vnnuemmmwAYP348zz//PAMGDODf//43V111FY0bNwagVatWVWq3sLCQiRMnsnr1asyMgwcPVnh8/fr1GT16NFOnTmXcuHEsXryY4cOHV6utkt566y0WLFjAoEGDANi7dy/HHntsle6lKhTaRURERFJZJT3i8bB9+3ZmzZrFZ599hplRVFSEmXHffffhnItq+sN69epRXFwMcMT85r/+9a8ZMmQI06ZNY926dYeHzVRkwoQJ3H333TjnGDNmzOFVSaNpq2QdJWtxzjFx4kR+//vfV3r9WNCYdhERERGJqalTp3LFFVewfv161q1bx8aNG+nSpQvvvfcew4cP5+mnn2bPnj0A7NixA4BmzZrx9ddfH24jKyuLBQsWABwxZKWwsJD27dsD/uHVaAwZMoTVq1fz6KOPMmHChCq1lZWVxcKFCwFYuHAha9euBWDYsGFMnTqVLVu2HL6P9evXR1VPdSi0i4iIiEhMPf/881xwwQVH7Bs3bhzPPfccI0aMYPTo0eTm5pKTk3P4Ic8rr7ySn/zkJ4cfRP3tb3/LjTfeyFlnnUV6evrhdn75y19y++23c8YZZ0T94GdaWhrjxo1j+/btnH322VVqa9y4cezYsYOcnBz+/Oc/0717dwB69erF3XffzfDhw+nbty/nnXce+fn5Vfo5VYU55+LWeLLKzc118+fPD7sMERERkWpZvnw5PXv2DLsMKaWs34uZLXDOVfz0LeppFxERERFJeArtIiIiIiIJTqFdRERERCTBKbSLiIiIiCQ4hXYRERERkQSn0C4iIiIikuDiGtrNbISZrTSzPDO7rYz3G5jZlOD9uWaWVeK924P9K83s/MraNLMuQRurgzbrB/s7mdnbZrbIzJaY2Xfjec8iSWXPHvjFL2DOnLArERGRFJOenk5OTs7h17p165g/fz433HADALNnz+aD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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(width, height))\n",
"\n",
"\n",
"ax1 = sns.distplot(df['price'], hist=False, color=\"r\", label=\"Actual Value\")\n",
"sns.distplot(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": 23,
"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": 27,
"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": 28,
"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": 29,
"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": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-1.55663829e+00, 2.04754306e+02, -8.96543312e+03, 1.37923594e+05])"
]
},
"execution_count": 30,
"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": 38,
"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": 39,
"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": 40,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pr=PolynomialFeatures(degree=2)\n",
"pr"
]
},
{
"cell_type": "code",
"execution_count": 41,
"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": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 4)"
]
},
"execution_count": 45,
"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": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(201, 15)"
]
},
"execution_count": 43,
"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": 46,
"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": 47,
"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": 48,
"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": 48,
"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": 49,
"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": 49,
"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": 50,
"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": 50,
"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": 53,
"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([13102.74784201, 13102.74784201, 18225.54572197, 10390.29636555,\n",
" 16136.29619164, 13880.09787302, 15041.58694037, 15457.93465485,\n",
" 17974.49032347, 10510.56542385])"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"Input2=[('scale',StandardScaler()), ('polynomial', PolynomialFeatures(include_bias=False)), ('model',LinearRegression())]\n",
"pipe2=Pipeline(Input2)\n",
"pipe2.fit(Z,y)\n",
"ypipe=pipe2.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": 54,
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.metrics import mean_squared_error"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we compare the predicted results with the actual results "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"mse = mean_squared_error(df['price'], Yhat)\n",
"print('The mean square error of price and predicted value is: ', mse)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Model 2: Multiple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the R^2"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# fit the model \n",
"lm.fit(Z, df['price'])\n",
"# Find the R^2\n",
"print('The R-square is: ', lm.score(Z, df['price']))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 80.896 % of the variation of price is explained by this multiple linear regression \"multi_fit\"."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the MSE"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" we produce a prediction "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Y_predict_multifit = lm.predict(Z)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" we compare the predicted results with the actual results "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"print('The mean square error of price and predicted value using multifit is: ', \\\n",
" mean_squared_error(df['price'], Y_predict_multifit))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Model 3: Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the R^2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"let’s import the function <b>r2_score</b> from the module <b>metrics</b> as we are using a different function"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.metrics import r2_score"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We apply the function to get the value of r^2"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"r_squared = r2_score(y, p(x))\n",
"print('The R-square value is: ', r_squared)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 67.419 % of the variation of price is explained by this polynomial fit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>MSE</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also calculate the MSE: "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"mean_squared_error(df['price'], p(x))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Part 5: Prediction and Decision Making</h2>\n",
"<h3>Prediction</h3>\n",
"\n",
"<p>In the previous section, we trained the model using the method <b>fit</b>. Now we will use the method <b>predict</b> to produce a prediction. Lets import <b>pyplot</b> for plotting; we will also be using some functions from numpy.</p>"
]
},
{
"cell_type": "code",
"execution_count": 65,
"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": 66,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"new_input=np.arange(1, 100, 1).reshape(-1, 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Fit the model "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"lm.fit(X, Y)\n",
"lm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Produce a prediction"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"yhat=lm.predict(new_input)\n",
"yhat[0:5]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can plot the data "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"plt.plot(new_input, yhat)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Decision Making: Determining a Good Model Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Now that we have visualized the different models, and generated the R-squared and MSE values for the fits, how do we determine a good model fit?\n",
"<ul>\n",
" <li><i>What is a good R-squared value?</i></li>\n",
"</ul>\n",
"</p>\n",
"\n",
"<p>When comparing models, <b>the model with the higher R-squared value is a better fit</b> for the data.\n",
"<ul>\n",
" <li><i>What is a good MSE?</i></li>\n",
"</ul>\n",
"</p>\n",
"\n",
"<p>When comparing models, <b>the model with the smallest MSE value is a better fit</b> for the data.</p>\n",
"\n",
"\n",
"<h4>Let's take a look at the values for the different models.</h4>\n",
"<p>Simple Linear Regression: Using Highway-mpg as a Predictor Variable of Price.\n",
"<ul>\n",
" <li>R-squared: 0.49659118843391759</li>\n",
" <li>MSE: 3.16 x10^7</li>\n",
"</ul>\n",
"</p>\n",
" \n",
"<p>Multiple Linear Regression: Using Horsepower, Curb-weight, Engine-size, and Highway-mpg as Predictor Variables of Price.\n",
"<ul>\n",
" <li>R-squared: 0.80896354913783497</li>\n",
" <li>MSE: 1.2 x10^7</li>\n",
"</ul>\n",
"</p>\n",
" \n",
"<p>Polynomial Fit: Using Highway-mpg as a Predictor Variable of Price.\n",
"<ul>\n",
" <li>R-squared: 0.6741946663906514</li>\n",
" <li>MSE: 2.05 x 10^7</li>\n",
"</ul>\n",
"</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Simple Linear Regression model (SLR) vs Multiple Linear Regression model (MLR)</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Usually, the more variables you have, the better your model is at predicting, but this is not always true. Sometimes you may not have enough data, you may run into numerical problems, or many of the variables may not be useful and or even act as noise. As a result, you should always check the MSE and R^2.</p>\n",
"\n",
"<p>So to be able to compare the results of the MLR vs SLR models, we look at a combination of both the R-squared and MSE to make the best conclusion about the fit of the model.\n",
"<ul>\n",
" <li><b>MSE</b>The MSE of SLR is 3.16x10^7 while MLR has an MSE of 1.2 x10^7. The MSE of MLR is much smaller.</li>\n",
" <li><b>R-squared</b>: In this case, we can also see that there is a big difference between the R-squared of the SLR and the R-squared of the MLR. The R-squared for the SLR (~0.497) is very small compared to the R-squared for the MLR (~0.809).</li>\n",
"</ul>\n",
"</p>\n",
"\n",
"This R-squared in combination with the MSE show that MLR seems like the better model fit in this case, compared to SLR."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Simple Linear Model (SLR) vs Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li><b>MSE</b>: We can see that Polynomial Fit brought down the MSE, since this MSE is smaller than the one from the SLR.</li> \n",
" <li><b>R-squared</b>: The R-squared for the Polyfit is larger than the R-squared for the SLR, so the Polynomial Fit also brought up the R-squared quite a bit.</li>\n",
"</ul>\n",
"<p>Since the Polynomial Fit resulted in a lower MSE and a higher R-squared, we can conclude that this was a better fit model than the simple linear regression for predicting Price with Highway-mpg as a predictor variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Multiple Linear Regression (MLR) vs Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li><b>MSE</b>: The MSE for the MLR is smaller than the MSE for the Polynomial Fit.</li>\n",
" <li><b>R-squared</b>: The R-squared for the MLR is also much larger than for the Polynomial Fit.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Conclusion:</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Comparing these three models, we conclude that <b>the MLR model is the best model</b> to be able to predict price from our dataset. This result makes sense, since we have 27 variables in total, and we know that more than one of those variables are potential predictors of the final car price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment