Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MikeTange/54b12f2cc5307301e4f3899acf8a3e22 to your computer and use it in GitHub Desktop.
Save MikeTange/54b12f2cc5307301e4f3899acf8a3e22 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/DA0101EN_edx_link_Notebook_link_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size=5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Module 4: Model Development</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>In this section, we will develop several models that will predict the price of the car using the variables or features. This is just an estimate but should give us an objective idea of how much the car should cost.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some questions we want to ask in this module\n",
"<ul>\n",
" <li>do I know if the dealer is offering fair value for my trade-in?</li>\n",
" <li>do I know if I put a fair value on my car?</li>\n",
"</ul>\n",
"<p>Data Analytics, we often use <b>Model Development</b> to help us predict future observations from the data we have.</p>\n",
"\n",
"<p>A Model will help us understand the exact relationship between different variables and how these variables are used to predict the result.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/edx_DA0101EN_objectstorage\">HERE</a> for free storage."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# path of data \n",
"path = 'https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>1. Linear Regression and Multiple Linear Regression</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Linear Regression</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"<p>One example of a Data Model that we will be using is</p>\n",
"<b>Simple Linear Regression</b>.\n",
"\n",
"<br>\n",
"<p>Simple Linear Regression is a method to help us understand the relationship between two variables:</p>\n",
"<ul>\n",
" <li>The predictor/independent variable (X)</li>\n",
" <li>The response/dependent variable (that we want to predict)(Y)</li>\n",
"</ul>\n",
"\n",
"<p>The result of Linear Regression is a <b>linear function</b> that predicts the response (dependent) variable as a function of the predictor (independent) variable.</p>\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
" Y: Response \\ Variable\\\\\n",
" X: Predictor \\ Variables\n",
"$$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <b>Linear function:</b>\n",
"$$\n",
"Yhat = a + b X\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li>a refers to the <b>intercept</b> of the regression line0, in other words: the value of Y when X is 0</li>\n",
" <li>b refers to the <b>slope</b> of the regression line, in other words: the value with which Y changes when X increases by 1 unit</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Lets load the modules for linear regression</h4>"
]
},
{
"cell_type": "code",
"execution_count": 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": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([16236.50464347, 16236.50464347, 17058.23802179, 13771.3045085 ,\n",
" 20345.17153508])"
]
},
"execution_count": 8,
"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": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"38423.305858157386"
]
},
"execution_count": 9,
"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": 10,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([-821.73337832])"
]
},
"execution_count": 10,
"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": 11,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n"
]
},
{
"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": 12,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm1.fit(df[['highway-mpg']], df[['price']])\n",
"lm1\n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #1 c):</h1>\n",
"\n",
"<b>Find the slope and intercept of the model?</b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Slope</h4>"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Intercept</h4>"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n"
]
},
{
"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=-7963.34 + 166.86*X\n",
"\n",
"Price=-7963.34 + 166.86*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": 15,
"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": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.fit(Z, df['price'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What is the value of the intercept(a)?"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-15806.624626329198"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.intercept_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What are the values of the coefficients (b1, b2, b3, b4)?"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([53.49574423, 4.70770099, 81.53026382, 36.05748882])"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lm.coef_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" What is the final estimated linear model that we get?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we saw above, we should get a final linear function with the structure:\n",
"\n",
"$$\n",
"Yhat = a + b_1 X_1 + b_2 X_2 + b_3 X_3 + b_4 X_4\n",
"$$\n",
"\n",
"What is the linear function we get in this example?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>Price</b> = -15678.742628061467 + 52.65851272 x <b>horsepower</b> + 4.69878948 x <b>curb-weight</b> + 81.95906216 x <b>engine-size</b> + 33.58258185 x <b>highway-mpg</b>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2 a): </h1>\n",
"Create and train a Multiple Linear Regression model \"lm2\" where the response variable is price, and the predictor variable is 'normalized-losses' and 'highway-mpg'.\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm2 = LinearRegression()\n",
"lm2.fit(df[['normalized-losses' , 'highway-mpg']],df['price'])\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #2 b): </h1>\n",
"<b>Find the coefficient of the model?</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"lm2.coef_\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>2) Model Evaluation using Visualization</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we've developed some models, how do we evaluate our models and how do we choose the best one? One way to do this is by using visualization."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"import the visualization package: seaborn"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"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": 22,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 48314.58191636688)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"width = 12\n",
"height = 10\n",
"plt.figure(figsize=(width, height))\n",
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We can see from this plot that price is negatively correlated to highway-mpg, since the regression slope is negative.\n",
"One thing to keep in mind when looking at a regression plot is to pay attention to how scattered the data points are around the regression line. This will give you a good indication of the variance of the data, and whether a linear model would be the best fit or not. If the data is too far off from the line, this linear model might not be the best model for this data. Let's compare this plot to the regression plot of \"peak-rpm\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 47422.919330307624)"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(width, height))\n",
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Comparing the regression plot of \"peak-rpm\" and \"highway-mpg\" we see that the points for \"highway-mpg\" are much closer to the generated line and on the average decrease. The points for \"peak-rpm\" have more spread around the predicted line, and it is much harder to determine if the points are decreasing or increasing as the \"highway-mpg\" increases.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question #3:</h1>\n",
"<b>Given the regression plots above is \"peak-rpm\" or \"highway-mpg\" more strongly correlated with \"price\". Use the method \".corr()\" to verify your answer.</b>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"The variable \"highway-mpg\" has a stronger correlation with \"price\", it is approximate -0.704692 compared to \"peak-rpm\" which is approximate -0.101616. You can verify it using the following command:\n",
"df[[\"peak-rpm\",\"highway-mpg\",\"price\"]].corr()\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Residual Plot</h3>\n",
"\n",
"<p>A good way to visualize the variance of the data is to use a residual plot.</p>\n",
"\n",
"<p>What is a <b>residual</b>?</p>\n",
"\n",
"<p>The difference between the observed value (y) and the predicted value (Yhat) is called the residual (e). When we look at a regression plot, the residual is the distance from the data point to the fitted regression line.</p>\n",
"\n",
"<p>So what is a <b>residual plot</b>?</p>\n",
"\n",
"<p>A residual plot is a graph that shows the residuals on the vertical y-axis and the independent variable on the horizontal x-axis.</p>\n",
"\n",
"<p>What do we pay attention to when looking at a residual plot?</p>\n",
"\n",
"<p>We look at the spread of the residuals:</p>\n",
"\n",
"<p>- If the points in a residual plot are <b>randomly spread out around the x-axis</b>, then a <b>linear model is appropriate</b> for the data. Why is that? Randomly spread out residuals means that the variance is constant, and thus the linear model is a good fit for this data.</p>"
]
},
{
"cell_type": "code",
"execution_count": 25,
"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": 26,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Y_hat = lm.predict(Z)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"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": 28,
"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": 29,
"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": 30,
"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": 31,
"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": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-1.55663829e+00, 2.04754306e+02, -8.96543312e+03, 1.37923594e+05])"
]
},
"execution_count": 32,
"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": 33,
"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 "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# calculate polynomial\n",
"# Here we use a polynomial of the 11rd order (cubic) \n",
"f1 = np.polyfit(x, y, 11)\n",
"p1 = np.poly1d(f1)\n",
"print(p)\n",
"PlotPolly(p1,x,y, 'Highway MPG')\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The analytical expression for Multivariate Polynomial function gets complicated. For example, the expression for a second-order (degree=2)polynomial with two variables is given by:</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"Yhat = a + b_1 X_1 +b_2 X_2 +b_3 X_1 X_2+b_4 X_1^2+b_5 X_2^2\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can perform a polynomial transform on multiple features. First, we import the module:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.preprocessing import PolynomialFeatures"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We create a <b>PolynomialFeatures</b> object of degree 2: "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"pr=PolynomialFeatures(degree=2)\n",
"pr"
]
},
{
"cell_type": "code",
"execution_count": null,
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Z.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"after the transformation, there 201 samples and 15 features"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": null,
"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": null,
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"#highway_mpg_fit\n",
"lm.fit(X, Y)\n",
"# Find the R^2\n",
"print('The R-square is: ', lm.score(X, Y))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can say that ~ 49.659% of the variation of the price is explained by this simple linear model \"horsepower_fit\"."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the MSE"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can predict the output i.e., \"yhat\" using the predict method, where X is the input variable:"
]
},
{
"cell_type": "code",
"execution_count": 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": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create a new input "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"new_input=np.arange(1, 100, 1).reshape(-1, 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Fit the model "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"lm.fit(X, Y)\n",
"lm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Produce a prediction"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"yhat=lm.predict(new_input)\n",
"yhat[0:5]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can plot the data "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"plt.plot(new_input, yhat)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Decision Making: Determining a Good Model Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Now that we have visualized the different models, and generated the R-squared and MSE values for the fits, how do we determine a good model fit?\n",
"<ul>\n",
" <li><i>What is a good R-squared value?</i></li>\n",
"</ul>\n",
"</p>\n",
"\n",
"<p>When comparing models, <b>the model with the higher R-squared value is a better fit</b> for the data.\n",
"<ul>\n",
" <li><i>What is a good MSE?</i></li>\n",
"</ul>\n",
"</p>\n",
"\n",
"<p>When comparing models, <b>the model with the smallest MSE value is a better fit</b> for the data.</p>\n",
"\n",
"\n",
"<h4>Let's take a look at the values for the different models.</h4>\n",
"<p>Simple Linear Regression: Using Highway-mpg as a Predictor Variable of Price.\n",
"<ul>\n",
" <li>R-squared: 0.49659118843391759</li>\n",
" <li>MSE: 3.16 x10^7</li>\n",
"</ul>\n",
"</p>\n",
" \n",
"<p>Multiple Linear Regression: Using Horsepower, Curb-weight, Engine-size, and Highway-mpg as Predictor Variables of Price.\n",
"<ul>\n",
" <li>R-squared: 0.80896354913783497</li>\n",
" <li>MSE: 1.2 x10^7</li>\n",
"</ul>\n",
"</p>\n",
" \n",
"<p>Polynomial Fit: Using Highway-mpg as a Predictor Variable of Price.\n",
"<ul>\n",
" <li>R-squared: 0.6741946663906514</li>\n",
" <li>MSE: 2.05 x 10^7</li>\n",
"</ul>\n",
"</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Simple Linear Regression model (SLR) vs Multiple Linear Regression model (MLR)</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Usually, the more variables you have, the better your model is at predicting, but this is not always true. Sometimes you may not have enough data, you may run into numerical problems, or many of the variables may not be useful and or even act as noise. As a result, you should always check the MSE and R^2.</p>\n",
"\n",
"<p>So to be able to compare the results of the MLR vs SLR models, we look at a combination of both the R-squared and MSE to make the best conclusion about the fit of the model.\n",
"<ul>\n",
" <li><b>MSE</b>The MSE of SLR is 3.16x10^7 while MLR has an MSE of 1.2 x10^7. The MSE of MLR is much smaller.</li>\n",
" <li><b>R-squared</b>: In this case, we can also see that there is a big difference between the R-squared of the SLR and the R-squared of the MLR. The R-squared for the SLR (~0.497) is very small compared to the R-squared for the MLR (~0.809).</li>\n",
"</ul>\n",
"</p>\n",
"\n",
"This R-squared in combination with the MSE show that MLR seems like the better model fit in this case, compared to SLR."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Simple Linear Model (SLR) vs Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li><b>MSE</b>: We can see that Polynomial Fit brought down the MSE, since this MSE is smaller than the one from the SLR.</li> \n",
" <li><b>R-squared</b>: The R-squared for the Polyfit is larger than the R-squared for the SLR, so the Polynomial Fit also brought up the R-squared quite a bit.</li>\n",
"</ul>\n",
"<p>Since the Polynomial Fit resulted in a lower MSE and a higher R-squared, we can conclude that this was a better fit model than the simple linear regression for predicting Price with Highway-mpg as a predictor variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Multiple Linear Regression (MLR) vs Polynomial Fit</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<ul>\n",
" <li><b>MSE</b>: The MSE for the MLR is smaller than the MSE for the Polynomial Fit.</li>\n",
" <li><b>R-squared</b>: The R-squared for the MLR is also much larger than for the Polynomial Fit.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Conclusion:</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Comparing these three models, we conclude that <b>the MLR model is the best model</b> to be able to predict price from our dataset. This result makes sense, since we have 27 variables in total, and we know that more than one of those variables are potential predictors of the final car price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/DA0101EN_edx_link_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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment