Created
December 8, 2019 07:17
-
-
Save kshirsagarsiddharth/7a87834fb1335501c0b33bf4b20f74f5 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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, | |
| "jupyter": { | |
| "outputs_hidden": 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, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "0 130\n", | |
| "1 130\n", | |
| "2 152\n", | |
| "3 109\n", | |
| "4 136\n", | |
| " ... \n", | |
| "196 141\n", | |
| "197 141\n", | |
| "198 173\n", | |
| "199 145\n", | |
| "200 141\n", | |
| "Name: engine-size, Length: 201, dtype: int64" | |
| ] | |
| }, | |
| "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['engine-size']" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h3>1. Linear Regression and Multiple Linear Regression</h3>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h4>Linear Regression</h4>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "\n", | |
| "<p>One example of a Data Model that we will be using is</p>\n", | |
| "<b>Simple Linear Regression</b>.\n", | |
| "\n", | |
| "<br>\n", | |
| "<p>Simple Linear Regression is a method to help us understand the relationship between two variables:</p>\n", | |
| "<ul>\n", | |
| " <li>The predictor/independent variable (X)</li>\n", | |
| " <li>The response/dependent variable (that we want to predict)(Y)</li>\n", | |
| "</ul>\n", | |
| "\n", | |
| "<p>The result of Linear Regression is a <b>linear function</b> that predicts the response (dependent) variable as a function of the predictor (independent) variable.</p>\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "$$\n", | |
| " Y: Response \\ Variable\\\\\n", | |
| " X: Predictor \\ Variables\n", | |
| "$$\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| " <b>Linear function:</b>\n", | |
| "$$\n", | |
| "Yhat = a + b X\n", | |
| "$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<ul>\n", | |
| " <li>a refers to the <b>intercept</b> of the regression line0, in other words: the value of Y when X is 0</li>\n", | |
| " <li>b refers to the <b>slope</b> of the regression line, in other words: the value with which Y changes when X increases by 1 unit</li>\n", | |
| "</ul>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h4>Lets load the modules for linear regression</h4>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": 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": 4, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
| " normalize=False)" | |
| ] | |
| }, | |
| "execution_count": 4, | |
| "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": 5, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": 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": 6, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
| " normalize=False)" | |
| ] | |
| }, | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "lm.fit(X,Y)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| " We can output a prediction " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array([16236.50464347, 16236.50464347, 17058.23802179, 13771.3045085 ,\n", | |
| " 20345.17153508])" | |
| ] | |
| }, | |
| "execution_count": 7, | |
| "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": 8, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "38423.3058581574" | |
| ] | |
| }, | |
| "execution_count": 8, | |
| "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": 9, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| }, | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array([-821.73337832])" | |
| ] | |
| }, | |
| "execution_count": 9, | |
| "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": 10, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Write your code below and press Shift+Enter to execute \n", | |
| "from sklearn.linear_model import LinearRegression\n", | |
| "lm1 = LinearRegression()\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": 11, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
| " normalize=False)" | |
| ] | |
| }, | |
| "execution_count": 11, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Write your code below and press Shift+Enter to execute \n", | |
| "X = df[['engine-size']]\n", | |
| "Y = df['price']\n", | |
| "lm1.fit(X,Y)\n", | |
| "lm1\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": 12, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array([166.86001569])" | |
| ] | |
| }, | |
| "execution_count": 12, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Write your code below and press Shift+Enter to execute \n", | |
| "lm1.coef_\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h4>Intercept</h4>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "-7963.338906281042" | |
| ] | |
| }, | |
| "execution_count": 13, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Write your code below and press Shift+Enter to execute \n", | |
| "lm1.intercept_" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Double-click <b>here</b> for the solution.\n", | |
| "\n", | |
| "<!-- The answer is below:\n", | |
| "\n", | |
| "# Slope \n", | |
| "lm1.coef_\n", | |
| "# Intercept\n", | |
| "lm1.intercept_\n", | |
| "\n", | |
| "-->" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
| "<h1>Question #1 d): </h1>\n", | |
| "\n", | |
| "<b>What is the equation of the predicted line. You can use x and yhat or 'engine-size' or 'price'?</b>\n", | |
| "</div>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# You can type you answer here\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Double-click <b>here</b> for the solution.\n", | |
| "\n", | |
| "<!-- The answer is below:\n", | |
| "\n", | |
| "# using X and Y \n", | |
| "Yhat=-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": 14, | |
| "metadata": {}, | |
| "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": 15, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
| " normalize=False)" | |
| ] | |
| }, | |
| "execution_count": 15, | |
| "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": 16, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "-15806.62462632922" | |
| ] | |
| }, | |
| "execution_count": 16, | |
| "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": 17, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array([53.49574423, 4.70770099, 81.53026382, 36.05748882])" | |
| ] | |
| }, | |
| "execution_count": 17, | |
| "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": 18, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
| " normalize=False)" | |
| ] | |
| }, | |
| "execution_count": 18, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Write your code below and press Shift+Enter to execute \n", | |
| "from sklearn.linear_model import LinearRegression\n", | |
| "lm2 = LinearRegression()\n", | |
| "X = df[['normalized-losses','highway-mpg']]\n", | |
| "Y = df['price']\n", | |
| "lm2.fit(X,Y)\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": 19, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array([ 1.49789586, -820.45434016])" | |
| ] | |
| }, | |
| "execution_count": 19, | |
| "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": 20, | |
| "metadata": {}, | |
| "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": 21, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(0, 48261.70879323077)" | |
| ] | |
| }, | |
| "execution_count": 21, | |
| "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": 22, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(0, 47422.919330307624)" | |
| ] | |
| }, | |
| "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": [ | |
| "plt.figure(figsize=(width, height))\n", | |
| "sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)\n", | |
| "plt.ylim(0,)\n" | |
| ] | |
| }, | |
| { | |
| "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": 23, | |
| "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": 23, | |
| "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 \"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": 24, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": 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": 25, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "Y_hat = lm.predict(Z)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 26, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": 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": [ | |
| "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": 27, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": 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": 28, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "x = df['highway-mpg']\n", | |
| "y = df['price']\n", | |
| "f = np.polyfit(x, y, 3)\n", | |
| "p = np.poly1d(f)\n", | |
| "x_new = np.linspace(15, 55, 100)\n", | |
| "print(p)" | |
| ] | |
| }, | |
| { | |
| "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": 29, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": 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", | |
| "x_new = np.linspace(15, 55, 100)\n", | |
| "print(p)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| " Let's plot the function " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 30, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": 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')\n", | |
| "#plt.plot(x,y,'.',x_new,p(x_new),'-')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 31, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array([-1.55663829e+00, 2.04754306e+02, -8.96543312e+03, 1.37923594e+05])" | |
| ] | |
| }, | |
| "execution_count": 31, | |
| "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": 32, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "[<matplotlib.lines.Line2D at 0x7fdd0dad51d0>,\n", | |
| " <matplotlib.lines.Line2D at 0x7fdd0dad52e8>]" | |
| ] | |
| }, | |
| "execution_count": 32, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "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", | |
| "\n", | |
| "# Write your code below and press Shift+Enter to execute \n", | |
| "f2 = np.polyfit(x,y,11)\n", | |
| "p11 = np.poly1d(f2)\n", | |
| "x_new1 = np.linspace(15, 55, 100)\n", | |
| "plt.plot(x,y,'.',x_new,p11(x_new1),'-')\n" | |
| ] | |
| }, | |
| { | |
| "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": 33, | |
| "metadata": {}, | |
| "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": 34, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)" | |
| ] | |
| }, | |
| "execution_count": 34, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "pr=PolynomialFeatures(degree=2)\n", | |
| "pr" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 35, | |
| "metadata": {}, | |
| "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": 36, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(201, 4)" | |
| ] | |
| }, | |
| "execution_count": 36, | |
| "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": 37, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(201, 15)" | |
| ] | |
| }, | |
| "execution_count": 37, | |
| "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": 38, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "\n", | |
| "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": 39, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#Input=[('scale',StandardScaler()), ('polynomial', PolynomialFeatures(include_bias=False)), ('model',LinearRegression())]\n", | |
| "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": 40, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": 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": 40, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "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": 41, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "/home/jupyterlab/conda/envs/python/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/envs/python/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": 41, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "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": 42, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "/home/jupyterlab/conda/envs/python/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": 42, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "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": 43, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Write your code below and press Shift+Enter to execute \n", | |
| "from sklearn.pipeline import Pipeline\n", | |
| "from sklearn.preprocessing import StandardScaler\n", | |
| "from sklearn.linear_model import LinearRegression\n", | |
| "Input = [('scale',StandardScaler()),('model',LinearRegression())]" | |
| ] | |
| }, | |
| { | |
| "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": "code", | |
| "execution_count": 44, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "Pipeline(memory=None,\n", | |
| " steps=[('scale', StandardScaler(copy=True, with_mean=True, with_std=True)), ('model', LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
| " normalize=False))])" | |
| ] | |
| }, | |
| "execution_count": 44, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "pipe = Pipeline(Input)\n", | |
| "pipe" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 45, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "/home/jupyterlab/conda/envs/python/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/envs/python/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/envs/python/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" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "pipe.fit(Z,y)\n", | |
| "ypipe = pipe.predict(Z)" | |
| ] | |
| }, | |
| { | |
| "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": 46, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| }, | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "The R-square is: 0.4966263556974878\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": 47, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "The output of the first four predicted value is: [16231.78938339 16231.78938339 17052.24372355 13833.33798916]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "Yhat = lm.predict(X)\n", | |
| "print('The output of the first four predicted value is:',Yhat[0:4])\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "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": 48, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "\n", | |
| "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": 49, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "The mean squared error of price and predicted value is: 31632832.975589428\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "#the mean squared error is found between the actual price and predicted values\n", | |
| "mse = mean_squared_error(df['price'],Yhat)\n", | |
| "print('The mean squared 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": 50, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "The R-square is: 0.8093562806577457\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "# fit the model \n", | |
| "lm.fit(Z, df['price'])\n", | |
| "# Find the R^2\n", | |
| "print('The R-square is: ', lm.score(Z, df['price']))\n", | |
| "lm.fit(Z,df['price'])\n", | |
| "print('The R-square is:',lm.score(z))\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "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, | |
| "jupyter": { | |
| "outputs_hidden": 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, | |
| "jupyter": { | |
| "outputs_hidden": 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": 56, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "\n", | |
| "from sklearn.metrics import r2_score\n", | |
| "x = df['highway-mpg']\n", | |
| "y = df['price']\n", | |
| "f = np.polyfit(x, y, 3)\n", | |
| "p = np.poly1d(f)\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "We apply the function to get the value of r^2" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 59, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "The R-square value is: 0.674194666390652\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "r_squared = r2_score(y, p(x))\n", | |
| "print('The R-square value is: ', r_squared)\n", | |
| " #r2_score in polynomial regression takes values as the original\n", | |
| "#value and value obtained from substituting x values in the obtained equation\n", | |
| "\n", | |
| "#this tells us about 67% variation of price explained by this value" | |
| ] | |
| }, | |
| { | |
| "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": 62, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "20474146.426361218" | |
| ] | |
| }, | |
| "execution_count": 62, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "mean_squared_error(df['price'], p(x))\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h2>Part 5: Prediction and Decision Making</h2>\n", | |
| "<h3>Prediction</h3>\n", | |
| "\n", | |
| "<p>In the previous section, we trained the model using the method <b>fit</b>. Now we will use the method <b>predict</b> to produce a prediction. Lets import <b>pyplot</b> for plotting; we will also be using some functions from numpy.</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 70, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "import numpy as np\n", | |
| "%matplotlib inline\n", | |
| "X = df[['highway-mpg']]\n", | |
| "Y = df['price']" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Create a new input " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 80, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": 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>highway-mpg</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td>27</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>27</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td>26</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td>30</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td>22</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>...</th>\n", | |
| " <td>...</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>196</th>\n", | |
| " <td>28</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>197</th>\n", | |
| " <td>25</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>198</th>\n", | |
| " <td>23</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>199</th>\n", | |
| " <td>27</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>200</th>\n", | |
| " <td>25</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "<p>201 rows × 1 columns</p>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " highway-mpg\n", | |
| "0 27\n", | |
| "1 27\n", | |
| "2 26\n", | |
| "3 30\n", | |
| "4 22\n", | |
| ".. ...\n", | |
| "196 28\n", | |
| "197 25\n", | |
| "198 23\n", | |
| "199 27\n", | |
| "200 25\n", | |
| "\n", | |
| "[201 rows x 1 columns]" | |
| ] | |
| }, | |
| "execution_count": 80, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "new_input = np.arange(1,100,1).reshape(-1,1)\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| " Fit the model " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 77, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", | |
| " normalize=False)" | |
| ] | |
| }, | |
| "execution_count": 77, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "lm.fit(X,Y)\n", | |
| "lm" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Produce a prediction" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 78, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array([37601.57247984, 36779.83910151, 35958.10572319, 35136.37234487,\n", | |
| " 34314.63896655])" | |
| ] | |
| }, | |
| "execution_count": 78, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "yhat = lm.predict(new_input)\n", | |
| "yhat[0:5]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "we can plot the data " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 79, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAD4CAYAAAD//dEpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd3xUdfb/8ddJQhVBSkAkaBAQpIjIiCCQ7K40EQEVFRuouFhQKeu6srvfte6uritNKSIWsCFiAQvVktAEAop0CUXpREHERj2/P+byc2AjRJIwyeT9fDzmkTvnzudyPpYc7v3cOdfcHRERkWOJi3YCIiJSOKhgiIhIjqhgiIhIjqhgiIhIjqhgiIhIjiREO4H8UqlSJU9OTo52GiIihcrChQu/dvfE7PblWcEws3ggA9jk7h3NrALwGpAMrAeucvedwWcHAD2BA8Dd7j41iDcBXgBKAe8DfdzdzawEMBZoAnwDXO3u64+WT3JyMhkZGXk1PRGRIsHMvvy1fXl5SaoPsCLi/X3AB+5eG/ggeI+Z1QO6AfWB9sDwoNgAjAB6AbWDV/sg3hPY6e61gEHAY3mYt4iI5ECeFAwzSwIuAUZHhDsDY4LtMUCXiPg4d9/j7uuATKCpmVUFyrr7XA9/m3DsEWMOHWsCcJGZWV7kLiIiOZNXZxiDgXuBgxGxKu6+BSD4WTmIVwM2RHxuYxCrFmwfGT9sjLvvB3YBFY9Mwsx6mVmGmWVkZWXldk4iIhIh1wXDzDoC2919YU6HZBPzo8SPNubwgPsodw+5eygxMds1GxEROU55sejdAuhkZh2AkkBZM3sJ2GZmVd19S3C5aXvw+Y1A9YjxScDmIJ6UTTxyzEYzSwDKATvyIHcREcmhXJ9huPsAd09y92TCi9kfuvv1wCSgR/CxHsDEYHsS0M3MSphZDcKL2/ODy1a7zaxZsD7R/Ygxh47VNfgz1DVRROQEys/vYTwKjDeznsBXwJUA7r7MzMYDy4H9QG93PxCMuZ1fbqudHLwAngVeNLNMwmcW3fIxbxERyYbF6l/UQ6GQH8/3MNydf09eSbfzq3NmYpl8yExEpOAys4XuHspun1qDHGHd1z8wbv5XXDxkJiPT1rD/wMFjDxIRKQJUMI5wZmIZZvRP5Xd1Enl08kq6DJ/N8s3fRTstEZGoU8HIRuWyJRl5fROGX3ceW3f9TKenZvHEtFXs2X/g2INFRGKUCsavMDM6NKzKjP6pdD63Gk9+mEmHITNZ+KXu5hWRokkF4xhOKV2cJ65qxJibm/LzvoN0HTmXByYt44c9+6OdmojICaWCkUOpZyUytV8K3ZudwQtz1tN2UDrpX6j9iIgUHSoYv0GZEgk82LkBr9/WnBLF4uj+3HzueX0xu37cF+3URETynQrGcTg/uQLv392KO35Xk7c+3UTrQWlMWbo12mmJiOQrFYzjVLJYPPe2r8vE3i1ILFOC215ayB0vL2T77p+jnZqISL5QwcilBtXKMfHOFvy5XR1mrNhOm4HpTFi4kVj9Br2IFF0qGHmgWHwcvX9fi/fvbkXtymW45/XF9Hh+ARt3/hjt1ERE8owKRh6qVbkM429tzoOd6pOxfgdtB6UzZs56Dh7U2YaIFH4qGHksLs7ocWEy0/qlEEquwP2TlnH1qLmsyfo+2qmJiOSKCkY+SSpfmjE3nc9/r2zEF9u+5+IhMxn2USb71MxQRAopFYx8ZGZ0bZLE9P4ptD67Mo9PXUXnp2azdNOuaKcmIvKbqWCcAJVPLsnw65ow8vrzyPp+D52HzeaxKSv5eZ+aGYpI4ZHrgmFmJc1svpktNrNlZvZgEK9gZtPNbHXws3zEmAFmlmlmq8ysXUS8iZktCfYNDR7VSvA419eC+DwzS85t3tHQvkFVZvRL5fLG1Rjx8Ro6DJnJgvVqZigihUNenGHsAf7g7o2Ac4H2ZtYMuA/4wN1rAx8E7zGzeoQfsVofaA8MN7P44FgjgF6En/NdO9gP0BPY6e61gEHAY3mQd1SUK12Mx69sxIs9m7L3wEGuenou909cyvdqZigiBVyuC4aHHboFqFjwcqAzMCaIjwG6BNudgXHuvsfd1wGZQFMzqwqUdfe5Hv7W29gjxhw61gTgokNnH4VVq9qJTO2bQo/myYz95EvaDUonTc0MRaQAy5M1DDOLN7PPgO3AdHefB1Rx9y0Awc/KwcerARsihm8MYtWC7SPjh41x9/3ALqBiNnn0MrMMM8vIyir4v3xPKpHAA53qM+G25pQsFkeP5+bTf/xnfPvj3minJiLyP/KkYLj7AXc/F0gifLbQ4Cgfz+7MwI8SP9qYI/MY5e4hdw8lJiYeK+0Co8kZFXjv7lbc9YdaTPpsM60HpvH+ki1qLyIiBUqe3iXl7t8CHxNee9gWXGYi+Lk9+NhGoHrEsCRgcxBPyiZ+2BgzSwDKATG1WlyyWDx/aluHSXe2pGq5Utzx8iJue2kh279TM0MRKRjy4i6pRDM7JdguBbQGVgKTgB7Bx3oAE4PtSUC34M6nGoQXt+cHl612m1mzYH2i+xFjDh2rK/Chx+hfv+udVpa37riQ+y6uy8ersmg9MI3xGRt0tiEiUZcXZxhVgY/M7HNgAeE1jHeBR4E2ZrYaaBO8x92XAeOB5cAUoLe7H/pCwu3AaMIL4WuAyUH8WaCimWUC/QnuuIpVCfFx3JZak8l9WlH31LLcO+Fzbnh2Pht2qJmhiESPxerfXEOhkGdkZEQ7jVw7eNB5ef5XPPr+Chz4c7s6dG+eTHxcob5JTEQKKDNb6O6h7Pbpm94FXFyccUOzM5jWP5WmNSrw4DvLuXLkHFZv2x3t1ESkiFHBKCSqnVKK5288n0FXN2Ld1z9wydBZPPnBajUzFJETRgWjEDEzLmucxPT+qbSpX4Unpn/BpU/OYslGNTMUkfynglEIVSpTgmHXnsfTNzRhxw976TxsFv+evELNDEUkX6lgFGLt6p/K9P6pXBWqztNpa7l4yEzmrf0m2mmJSIxSwSjkypUqxqNXnMPLt1zAgYPO1aM+4e9vL2H3z/uinZqIxBgVjBjRolYlpvRtxS0ta/DKvK9oOyidD1dui3ZaIhJDVDBiSOniCfy9Yz3euP1CypRI4OYXMug77lN2/KBmhiKSeyoYMajx6eV59+6W9LmoNu9+voU2A9N4Z/FmtRcRkVxRwYhRJRLi6dfmLN69uyXVypfirlc/pdeLC9mmZoYicpxUMGJc3VPL8ubtF/LXDnVJ/yLczHDc/K90tiEiv5kKRhGQEB9Hr5SaTO2bQv3TynLfm0u4bvQ8vvzmh2inJiKFiApGEZJc6SReuaUZ/7qsIUs27qLd4HRGz1zLgYM62xCRY1PBKGLi4oxrLzidaf1TaFGzEo+8t4LLR8xh1VY1MxSRo1PBKKKqlivF6B4hhnQ7lw07fqTjkzMZPOML9u5XM0MRyV5ePHGvupl9ZGYrzGyZmfUJ4hXMbLqZrQ5+lo8YM8DMMs1slZm1i4g3MbMlwb6hwZP3CJ7O91oQn2dmybnNW8LNDDufW43p/VLo0LAqg2es5tInZ7F4w7fRTk1ECqC8OMPYD/zJ3c8GmgG9zawe4afifeDutYEPgvcE+7oB9Qk/+3u4mcUHxxoB9CL82NbawX6AnsBOd68FDAIey4O8JVCxTAmGdGvM6O4hdv20j8uGz+af7y3np71qZigiv8h1wXD3Le6+KNjeDawAqgGdgTHBx8YAXYLtzsA4d9/j7usIP461qZlVBcq6+9zged1jjxhz6FgTgIsOnX1I3mldrwrT+qfQrenpPDNzHe2HpDNnzdfRTktECog8XcMILhU1BuYBVdx9C4SLClA5+Fg1YEPEsI1BrFqwfWT8sDHuvh/YBVTM5s/vZWYZZpaRlZWVN5MqYsqWLMa/LmvIq39sBsC1z8xjwJtL+E7NDEWKvDwrGGZWBngD6Ovu3x3to9nE/Cjxo405POA+yt1D7h5KTEw8VspyFM1rVmRKnxR6pZzJawu+os3ANGYsVzNDkaIsTwqGmRUjXCxedvc3g/C24DITwc/tQXwjUD1ieBKwOYgnZRM/bIyZJQDlgB15kbv8ulLF4/lrh7N5644WnFKqOLeMzeDuVz/lm+/3RDs1EYmCvLhLyoBngRXuPjBi1ySgR7DdA5gYEe8W3PlUg/Di9vzgstVuM2sWHLP7EWMOHasr8KGrt8UJ06j6KbxzV0v6tT6LyUu30HpgGhM/26T2IiJFjOX2f3ozawnMBJYAh27i/yvhdYzxwOnAV8CV7r4jGPM34GbCd1j1dffJQTwEvACUAiYDd7m7m1lJ4EXC6yM7gG7uvvZoeYVCIc/IyMjV3OR/fbFtN/dO+JzPNnzLRXUr88hlDaharlS00xKRPGJmC909lO2+WP1bogpG/jlw0Hlhznr+O3UV8XHGgA51ueb804mL041rIoXd0QqGvuktv1l8nNGzZQ2m9k3hnKRy/O2tpVw7+hPWf61mhiKxTAVDjtvpFUvz8i0X8OjlDVm26TvaDU5nVPoa9h9QexGRWKSCIbliZnRrejrT+6fSqnYi/3p/JVeMmMPKrUe7s1pECiMVDMkTp5YryTPdm/DUtY3ZuPMnOg6dxcBpq9izX+1FRGKFCobkGTOj4zmnMaN/Kpc2Oo2hH2bScegsFn21M9qpiUgeUMGQPFf+pOIMuvpcnr/xfH7Ys58rRszhoXeW8+Pe/dFOTURyQQVD8s3v61Zmar8UrrvgdJ6bvY52g9OZnalmhiKFlQqG5KuTSxbjkS4Nea1XMxLi4rhu9Dz+MuFzdv2kZoYihY0KhpwQF5xZkcl9WnFr6plMWLSRNgPTmLZsa7TTEpHfQAVDTpiSxeIZcPHZvH1HCyqWKUGvFxfS+5VFZO1WM0ORwkAFQ064hknlmHRnC+5pexbTl22jzaA03ly0Uc0MRQo4FQyJimLxcdz5h9q836clNRPL0H/8Ym56YQGbvv0p2qmJyK9QwZCoqlX5ZF6/tTkPXFqP+et20HZgGi/OXc/BgzrbECloVDAk6uLijBtbhJsZnndGef5v4jK6jfqEtVnfRzs1EYmggiEFRvUKpRl7c1P+0/UcVm79jvZDZjLiYzUzFCkoVDCkQDEzrgpVZ0b/VP5QpzKPTVlJl+GzWbZ5V7RTEyny8uqZ3s+Z2XYzWxoRq2Bm081sdfCzfMS+AWaWaWarzKxdRLyJmS0J9g0NHtVK8DjX14L4PDNLzou8peCqXLYkI29owvDrzmPrrj10fmo2/526ip/3qZmhSLTk1RnGC0D7I2L3AR+4e23gg+A9ZlYP6AbUD8YMN7P4YMwIoBfh53zXjjhmT2Cnu9cCBgGP5VHeUsB1aFiVGf1T6HxuNZ76KJNLhs5k4Zc7op2WSJGUJwXD3dMJP2s7UmdgTLA9BugSER/n7nvcfR2QCTQ1s6pAWXef6+Eb8sceMebQsSYAFx06+5DYd0rp4jxxVSPG3NyUn/cdpOvIuTwwaRk/7FEzQ5ETKT/XMKq4+xaA4GflIF4N2BDxuY1BrFqwfWT8sDHuvh/YBVQ88g80s15mlmFmGVlZWXk4FSkIUs9KZGq/FLo3O4Mxc9fTdlA66V/o37PIiRKNRe/szgz8KPGjjTk84D7K3UPuHkpMTMxFilJQlSmRwIOdGzD+1uaUKBZH9+fmc8/ri9n1o5oZiuS3/CwY24LLTAQ/twfxjUD1iM8lAZuDeFI28cPGmFkCUI7/vQQmRcj5yRV4/+5W9P59Td76dBOtB6UxZemWaKclEtPys2BMAnoE2z2AiRHxbsGdTzUIL27PDy5b7TazZsH6RPcjxhw6VlfgQ1fjoSKvZLF4/tyuLhN7t6DyySW47aVF3P7SQrbv/jnaqYnEpLy6rfZVYC5Qx8w2mllP4FGgjZmtBtoE73H3ZcB4YDkwBejt7ofulbwdGE14IXwNMDmIPwtUNLNMoD/BHVciAA2qlePt3i24t30dPli5nTYD05mwUM0MRfKaxer/VKFQyDMyMqKdhpxga7K+5y8TPifjy52knJXIvy5rQFL50tFOS6TQMLOF7h7Kbp++6S0xpWZiGcbf2pyHOtdn4fodtB2Uzguz16mZoUgeUMGQmBMXZ3RvnszUfimEkivwwDvLuerpuWRuVzNDkdxQwZCYlVS+NGNuOp8nrmxEZtb3dBgyk2EfZbJPzQxFjosKhsQ0M+OKJklM75dKm3pVeHzqKjo/NZulm9TMUOS3UsGQIiHx5BIMu+48Rl7fhKzv99B52Gwem7JSzQxFfgMVDClS2jc4lRn9Urm8cTVGfLyGDkNmsmC9vgMqkhMqGFLklCtdjMevbMSLPZuy98BBrhw5l/97eynfq5mhyFGpYEiR1ap2IlP7pnBTi2Remvcl7Qal8/Gq7cceKFJEqWBIkXZSiQTuv7Q+E25rTslicdz4/AL6j/+MnT/sjXZqIgWOCoYI0OSMCrx3dyvu/H0tJn22mTaD0njv8y1qLyISQQVDJFCyWDz3tKvDpDtbUrVcKXq/sohbX1zItu/UzFAEVDBE/ke908ry1h0Xct/FdUn7IovWA9MYv2CDzjakyFPBEMlGQnwct6XWZErfFM6uWpZ73/ic65+dx4YdP0Y7NZGoUcEQOYoalU5i3B+b8UiXBizesIu2g9J5btY6DqiZoRRBKhgixxAXZ1zf7Aym9Uuh2ZkVeOjd5XQdOYfV23ZHOzWRE6pQFQwza29mq8ws08z0ECU5oU47pRTP3Xg+g65uxPqvf+CSobN48oPV7N2vZoZSNBSagmFm8cAw4GKgHnCNmdWLblZS1JgZlzVOYnr/VNo1OJUnpn9Bp6dm8fnGb6Odmki+KzQFA2gKZLr7WnffC4wDOkc5JymiKpUpwZPXNOaZ7iF2/riXLsNm8+/3V6iZocS0wlQwqgEbIt5vDGIiUdOmXhWm9Uvl6vOr83T6WtoPTueTtd9EOy2RfFGYCoZlEzvsVhUz62VmGWaWkZWVdYLSkqKuXKli/Pvyc3jllgs46NBt1Cf87a0l7P55X7RTE8lThalgbASqR7xPAjZHfsDdR7l7yN1DiYmJJzQ5kQtrVWJq3xRuaVmDV+d/RdtB6Xy0Us0MJXYUpoKxAKhtZjXMrDjQDZgU5ZxEDlOqeDx/71iPN26/kJNLJnDTCwvoO+5TdqiZocSAQlMw3H0/cCcwFVgBjHf3ZdHNSiR7jU8vzzt3taTPRbV5b8kW2gxMY9LizWovIoWaxep/wKFQyDMyMqKdhggrt37HXyZ8zuKNu2h9dhUe6dKAU8uVjHZaItkys4XuHspuX6E5wxAprOqeWpY372jB3zqczazMLNoMTOPV+V/pbEMKHRUMkRMgPs74Y8qZTOmTQv1qZRnw5hKufWYeX37zQ7RTE8kxFQyREyi50km8cksz/nVZQ5Zu2kW7wemMnrlWzQylUFDBEDnB4uKMay84nWn9U2hRsxKPvLeCy0fMYdVWNTOUgk0FQyRKqpYrxegeIYZe05gNO36k45MzGTzjCzUzlAJLBUMkisyMTo1OY0b/VDo0rMrgGau59MlZLN6gZoZS8KhgiBQAFU4qzpBujXm2R4hdP+3jsuGz+ed7y/lpr5oZSsGhgiFSgFx0dhWm9U+hW9PTeWbmOtoPSWfOmq+jnZYIoIIhUuCULVmMf13WkFf/2AyAa5+Zx4A3l/CdmhlKlKlgiBRQzWtWZEqfFHqlnMlrC76izcA0ZizfFu20pAhTwRApwEoVj+evHc7mrTtaUL50cW4Zm8Fdr37KN9/viXZqUgSpYIgUAo2qn8KkO1vSr/VZTFm6hdYD05j42Sa1F5ETSgVDpJAonhBHn9a1ee/uVpxR8ST6jPuMnmMy2PztT9FOTYoIFQyRQuasKifzxu0X8n8d6zFnzde0HZTOS598yUG1F5F8poIhUgjFxxk9W9ZgWt9UGlUvx9/fXso1z3zCuq/VzFDyjwqGSCF2esXSvNTzAh67oiHLt3xH+8HpPJ22hv0H1F5E8l6uCoaZXWlmy8zsoJmFjtg3wMwyzWyVmbWLiDcxsyXBvqFmZkG8hJm9FsTnmVlyxJgeZrY6ePXITc4iscbMuPr805nRP5XUsxL59+SVXDZ8Diu2fBft1CTG5PYMYylwOZAeGTSzeoSfuV0faA8MN7P4YPcIoBdQO3i1D+I9gZ3uXgsYBDwWHKsCcD9wAdAUuN/Myucyb5GYU6VsSZ6+oQnDrj2PLbt+4tInZzFw2ir27Fd7EckbuSoY7r7C3Vdls6szMM7d97j7OiATaGpmVYGy7j7Xw/cDjgW6RIwZE2xPAC4Kzj7aAdPdfYe77wSm80uREZEIZsYl51Rler9UOp17GkM/zOSSobNY9NXOaKcmMSC/1jCqARsi3m8MYtWC7SPjh41x9/3ALqDiUY71P8ysl5llmFlGVlZWHkxDpHAqf1JxBl51Ls/fdD4/7tnPFSPm8OA7y/hx7/5opyaF2DELhpnNMLOl2bw6H21YNjE/Svx4xxwedB/l7iF3DyUmJh4lPZGi4fd1KjOtfyo3NDuD52evp+2gdGatVjNDOT7HLBju3trdG2TzmniUYRuB6hHvk4DNQTwpm/hhY8wsASgH7DjKsUQkB8qUSOChzg0Yf2tzisfHcf2z8/jLhM/Z9ZOaGcpvk1+XpCYB3YI7n2oQXtye7+5bgN1m1ixYn+gOTIwYc+gOqK7Ah8E6x1SgrZmVDxa72wYxEfkNmtaowPt9WnH772oyYdFG2gxMY+qyrdFOSwqR3N5We5mZbQSaA++Z2VQAd18GjAeWA1OA3u5+6FaN24HRhBfC1wCTg/izQEUzywT6A/cFx9oBPAwsCF4PBTER+Y1KFovnL+3r8vYdLahYpgS3vriQ3q8sImu3mhnKsVmsNi8LhUKekZER7TRECqx9Bw4yKn0tQ2aspnSJeP7RsR6XNa5G8NUoKaLMbKG7h7Lbp296ixRRxeLj6P37WrzfpyU1E8vQf/xibnx+AZvUzFB+hQqGSBFXq/LJjL+1OQ9cWo8F63fQdmAaY+euVzND+R8qGCJCfJxxY4saTO2bwnlnlOcfE5dx9ai5rM36PtqpSQGigiEi/1/1CqUZe3NTHu96Dqu27qb9kJmM+FjNDCVMBUNEDmNmXBmqzow/pfKHOpV5bMpKugyfzbLNu6KdmkSZCoaIZKvyySUZeUMTRlx3Hlt37aHTU7N5fOpKft6nZoZFlQqGiBzVxQ2rMqN/Cpc1rsawj9ZwydCZLPxSX4UqilQwROSYTildnP9e2YgxNzfl530H6TpyLg9MWsYPe9TMsChRwRCRHEs9K5Fp/VLo0TyZMXPDzQzTv1Bn6KJCBUNEfpOTSiTwQKf6vH5rc0oUi6P7c/O55/XF7PpRzQxjnQqGiByXUHIF3r+7Fb1/X5O3Pt1E60FpTFm6JdppST5SwRCR41ayWDx/bleXSXe2oPLJJbjtpUXc/tJCtu/+OdqpST5QwRCRXKt/Wjne7t2Ce9vX4YOV22kzMJ3XMzYQq81NiyoVDBHJE8Xi47jjd7WY3KcVZ1Upw58nfE735+azYceP0U5N8ogKhojkqZqJZXitV3Me7lyfRV/upN3gdF6YvU7NDGNAbh+g9LiZrTSzz83sLTM7JWLfADPLNLNVZtYuIt7EzJYE+4YGT94jeDrfa0F8npklR4zpYWarg1cPRKRAi4szbmiezNR+KZyfXIEH3lnOlU/PJXP77minJrmQ2zOM6UADdz8H+AIYAGBm9YBuQH2gPTDczOKDMSOAXoQf21o72A/QE9jp7rWAQcBjwbEqAPcDFwBNgfuDR7WKSAGXVL40L9x0Pk9c2Yg1Wd/TYcgshn2UyT41MyyUclUw3H2aux/6qucnQFKw3RkY5+573H0d4cexNjWzqkBZd58bPK97LNAlYsyYYHsCcFFw9tEOmO7uO9x9J+EidajIiEgBZ2Zc0SSJ6f1SaVOvCo9PXUWnp2azdJOaGRY2ebmGcTO/PJ+7GrAhYt/GIFYt2D4yftiYoAjtAioe5VgiUogknlyCYdedx8jrm/D193voPGw2j05WM8PC5JgFw8xmmNnSbF6dIz7zN2A/8PKhUDaH8qPEj3fMkbn2MrMMM8vIylK7ApGCqH2DU5nRL5Wu5yUxMm0NHYbMZP46NTMsDI5ZMNy9tbs3yOY1EcIL0kBH4Dr/5abrjUD1iMMkAZuDeFI28cPGmFkCUA7YcZRjZZfrKHcPuXsoMTHxWFMTkSgpV7oYj3U9h5d6XsDeAwe56um5/GPiUr5XM8MCLbd3SbUH/gJ0cvfIm60nAd2CO59qEF7cnu/uW4DdZtYsWJ/oDkyMGHPoDqiuwIdBAZoKtDWz8sFid9sgJiKFXMvalZjWL4WbW9TgxU++pO3AND5atT3aacmvyO0axlPAycB0M/vMzEYCuPsyYDywHJgC9Hb3QxcqbwdGE14IX8Mv6x7PAhXNLBPoD9wXHGsH8DCwIHg9FMREJAaULp7APy6tx4TbLqR0iQRuen4B/V/7jJ0/7I12anIEi9Wv7odCIc/IyIh2GiLyG+zZf4BhH2Yy/OM1lCtVjAc71+eShlUJvq4lJ4CZLXT3UHb79E1vESkwSiTE079tHd65qyWnnVKKO1/5lFtfXMi279TMsCBQwRCRAufsqmV5644L+WuHuqR9kUXrgWm8tuArNTOMMhUMESmQEuLj6JVSkyl9Uzi7aln+8sYSbnh2Pl99o2aG0aKCISIFWo1KJzHuj814pEsDPtvwLe0Gp/PsrHUcUDPDE04FQ0QKvLg44/pmZzCtXwrNzqzAw+8up+vIOazepmaGJ5IKhogUGqedUornbjyfwVefy/qvf6DD0JkM/WA1e/ermeGJoIIhIoWKmdGlcTVm9E+lfYOqDJz+BZ2emsXiDd9GO7WYp4IhIoVSxTIlePKaxjzTPcTOH/dy2fDZ/Pv9Ffy0V80M84sKhogUam3qVWF6/1SuPr86T6ev5eIh6Xyy9ptopxWTVDBEpNArW7IY/778HF655QIOOnQb9Ql/e2sJu3/eF+3UYooKhojEjAtrVWJq3xRuaVmDV+d/RdtB6Xy4clu004oZKhgiElNKFY/n7x3r8eYdLTi5ZAI3v5BB33GfskPNDHru20gAAAyYSURBVHNNBUNEYtK51U/h3bta0eei2ry3ZAttBqbxzuLNai+SCyoYIhKziifE0a/NWbxzV0uSypfirlc/5Y9jF7J1l5oZHg8VDBGJeXVPLcubd7Tg75eczazMLNoMTOPV+Wpm+FupYIhIkRAfZ9zS6kym9k2hQbVyDHhzCdc+M48vv/kh2qkVGrl9ROvDZvZ58LS9aWZ2WsS+AWaWaWarzKxdRLyJmS0J9g0NHtVK8DjX14L4PDNLjhjTw8xWB68eiIgcpzMqnsQrf7yAf1/ekKWbdtFucDqjZ65VM8McyO0ZxuPufo67nwu8C/wDwMzqAd2A+kB7YLiZxQdjRgC9CD/nu3awH6AnsNPdawGDgMeCY1UA7gcuAJoC9wfP9hYROS5mxjVNT2d6/1Ra1qrEI++t4PIRc1i1Vc0MjyZXBcPdv4t4exJwqER3Bsa5+x53X0f4+d1NzawqUNbd53r44uFYoEvEmDHB9gTgouDsox0w3d13uPtOYDq/FBkRkeN2armSPNM9xNBrGrNhx490fHImg6Z/oWaGvyLXaxhm9k8z2wBcR3CGAVQDNkR8bGMQqxZsHxk/bIy77wd2ARWPcqzscullZhlmlpGVlZWbaYlIEWFmdGp0GtP7pdChYVWGfLCaS5+cxWdqZvg/jlkwzGyGmS3N5tUZwN3/5u7VgZeBOw8Ny+ZQfpT48Y45POg+yt1D7h5KTEw82rRERA5TsUwJhnRrzHM3hvju531cPnw2j7y7XM0MIxyzYLh7a3dvkM1r4hEffQW4ItjeCFSP2JcEbA7iSdnEDxtjZglAOWDHUY4lIpLn/lC3CtP6pXBN09MZPWsd7QanMyfz62inVSDk9i6p2hFvOwErg+1JQLfgzqcahBe357v7FmC3mTUL1ie6AxMjxhy6A6or8GGwzjEVaGtm5YPF7rZBTEQkX5xcshj/vKwh43o1I87g2tHzuO+Nz9n1U9FuZpiQy/GPmlkd4CDwJXAbgLsvM7PxwHJgP9Db3Q+d190OvACUAiYHL4BngRfNLJPwmUW34Fg7zOxhYEHwuYfcfUcu8xYROaZmZ1ZkSt8UBs34gmfS1/LRqu080qUhbepViXZqUWGx+k3HUCjkGRkZ0U5DRGLE5xu/5d4Jn7Ny6246nlOVBzrVp1KZEtFOK8+Z2UJ3D2W3T9/0FhHJgXOSTmHSnS3p3+Yspi3bRpuBabz96aYi1V5EBUNEJIeKJ8Rx90W1ee/uliRXOom+r33GzS8sYPO3P0U7tRNCBUNE5DeqXeVkJtx2If/oWI9P1u6g7aB0XvrkSw7GeHsRFQwRkeMQH2fc3LIGU/um0Kh6Of7+9lK6PfMJ676O3WaGKhgiIrlwesXSvNTzAv5zxTms2PId7QenMzJtDfsPxF57ERUMEZFcMjOuOr86M/qnknpWIo9OXsllw+ewfPN3xx5ciKhgiIjkkSplS/L0DU0Ydu15bNn1E52emsUT01axZ39stBdRwRARyUNmxiXnVGV6v1Q6nXsaT36YySVDZ7Hwy53RTi3XVDBERPJB+ZOKM/Cqc3nhpvP5cc9+uo6cw4PvLOPHvfujndpxU8EQEclHv6tTmWn9U7mh2Rk8P3s9bQelM2t14WxmqIIhIpLPypRI4KHODRh/a3OKxcdx/bPzuHfC4kLXzFAFQ0TkBGlaowKT+7Ti9t/V5I1Fm2gzMI2py7ZGO60cU8EQETmBShaL5y/t6zKxdwsqlSnBrS8upPfLi8javSfaqR2TCoaISBQ0qFaOiXe24M/t6jB9+TbaDErjjYUbC3QzQxUMEZEoKRYfR+/f1+L9Pq2omViGP72+mBufX8CmAtrMUAVDRCTKalUuw+u3NueBS+uxYP0O2g5MY+zc9QWumWGeFAwzu8fM3MwqRcQGmFmmma0ys3YR8SZmtiTYNzR4VCvB41xfC+LzzCw5YkwPM1sdvHogIhJj4uKMG1uEmxmed0Z5/jFxGVePmsuarO+jndr/l+uCYWbVgTbAVxGxeoQfsVofaA8MN7P4YPcIoBfh53zXDvYD9AR2unstYBDwWHCsCsD9wAVAU+D+4NneIiIxp3qF0oy9uSmPdz2HVVt3c/GQmQz/OJN9BaCZYV6cYQwC7gUiz506A+PcfY+7rwMygaZmVhUo6+5zPbyyMxboEjFmTLA9AbgoOPtoB0x39x3uvhOYzi9FRkQk5pgZV4aqM+NPqfyhTmX+M2UVXYbNZummXVHNK1cFw8w6AZvcffERu6oBGyLebwxi1YLtI+OHjXH3/cAuoOJRjpVdPr3MLMPMMrKyso5rTiIiBUXlk0sy8oYmjLjuPLZ9t4fOw2bznykr+XlfdJoZJhzrA2Y2Azg1m11/A/4KtM1uWDYxP0r8eMccHnQfBYwCCIVCBWu1SETkOF3csCrNa1bk4XdXMPzjNUxZtpX/XHEOoeQKJzSPY55huHtrd29w5AtYC9QAFpvZeiAJWGRmpxI+C6gecZgkYHMQT8omTuQYM0sAygE7jnIsEZEi45TSxXniqkaMubkpe/Yd5Mqn5/LApGX8sOfENTM87ktS7r7E3Su7e7K7JxP+xX6eu28FJgHdgjufahBe3J7v7luA3WbWLFif6A5MDA45CTh0B1RX4MNgnWMq0NbMygeL3W2DmIhIkZN6ViLT+qXQo3kyY+aGmxmmfXFiLsHny/cw3H0ZMB5YDkwBerv7oYtutwOjCS+ErwEmB/FngYpmlgn0B+4LjrUDeBhYELweCmIiIkXSSSUSeKBTfV6/tTkli8XR47n5/Gn8Yr79cW++/rlWkL+GnhuhUMgzMjKinYaISL76ed8BnvowkxFpayhfujgPd67PxQ2rHvfxzGyhu4ey26dveouIFGIli8VzT7s6TLqzBaeWK8HtLy+i98uL8uVb4se8S0pERAq++qeV4+07WjB61jq+/3k/cXHZ3WCaOyoYIiIxIiE+jttSa+bb8XVJSkREckQFQ0REckQFQ0REckQFQ0REckQFQ0REckQFQ0REckQFQ0REckQFQ0REciRme0mZWRbw5W8cVgn4Oh/SKeg076JF8y5afuu8z3D3xOx2xGzBOB5mlvFrTbdimeZdtGjeRUtezluXpEREJEdUMEREJEdUMA43KtoJRInmXbRo3kVLns1baxgiIpIjOsMQEZEcUcEQEZEcUcEAzKy9ma0ys0wzuy/a+eQXM6tuZh+Z2QozW2ZmfYJ4BTObbmarg5/lo51rfjCzeDP71MzeDd7H/LzN7BQzm2BmK4N/782LyLz7Bf+NLzWzV82sZKzO28yeM7PtZrY0IvarczWzAcHvulVm1u63/FlFvmCYWTwwDLgYqAdcY2b1optVvtkP/MndzwaaAb2Dud4HfODutYEPgvexqA+wIuJ9UZj3EGCKu9cFGhGef0zP28yqAXcDIXdvAMQD3Yjdeb8AtD8ilu1cg//fuwH1gzHDg9+BOVLkCwbQFMh097XuvhcYB3SOck75wt23uPuiYHs34V8e1QjPd0zwsTFAl+hkmH/MLAm4BBgdEY7peZtZWSAFeBbA3fe6+7fE+LwDCUApM0sASgObidF5u3s6sOOI8K/NtTMwzt33uPs6IJPw78AcUcEI/8LcEPF+YxCLaWaWDDQG5gFV3H0LhIsKUDl6meWbwcC9wMGIWKzP+0wgC3g+uBQ32sxOIsbn7e6bgP8CXwFbgF3uPo0Yn/cRfm2uufp9p4IBlk0spu81NrMywBtAX3f/Ltr55Dcz6whsd/eF0c7lBEsAzgNGuHtj4Adi5zLMrwqu13cGagCnASeZ2fXRzarAyNXvOxWMcIWtHvE+ifDpa0wys2KEi8XL7v5mEN5mZlWD/VWB7dHKL5+0ADqZ2XrClxz/YGYvEfvz3ghsdPd5wfsJhAtIrM+7NbDO3bPcfR/wJnAhsT/vSL8211z9vlPBgAVAbTOrYWbFCS8ITYpyTvnCzIzw9ewV7j4wYtckoEew3QOYeKJzy0/uPsDdk9w9mfC/3w/d/Xpif95bgQ1mVicIXQQsJ8bnTfhSVDMzKx38N38R4fW6WJ93pF+b6ySgm5mVMLMaQG1gfk4Pqm96A2bWgfA17njgOXf/Z5RTyhdm1hKYCSzhl2v5fyW8jjEeOJ3w/2xXuvuRi2gxwcx+B9zj7h3NrCIxPm8zO5fwQn9xYC1wE+G/KMb6vB8EriZ8Z+CnwC1AGWJw3mb2KvA7wm3MtwH3A2/zK3M1s78BNxP+Z9PX3Sfn+M9SwRARkZzQJSkREckRFQwREckRFQwREckRFQwREckRFQwREckRFQwREckRFQwREcmR/wdBkqXNpCS67gAAAABJRU5ErkJggg==\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "plt.plot(new_input, yhat)\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h3>Decision Making: Determining a Good Model Fit</h3>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p>Now that we have visualized the different models, and generated the R-squared and MSE values for the fits, how do we determine a good model fit?\n", | |
| "<ul>\n", | |
| " <li><i>What is a good R-squared value?</i></li>\n", | |
| "</ul>\n", | |
| "</p>\n", | |
| "\n", | |
| "<p>When comparing models, <b>the model with the higher R-squared value is a better fit</b> for the data.\n", | |
| "<ul>\n", | |
| " <li><i>What is a good MSE?</i></li>\n", | |
| "</ul>\n", | |
| "</p>\n", | |
| "\n", | |
| "<p>When comparing models, <b>the model with the smallest MSE value is a better fit</b> for the data.</p>\n", | |
| "\n", | |
| "\n", | |
| "<h4>Let's take a look at the values for the different models.</h4>\n", | |
| "<p>Simple Linear Regression: Using Highway-mpg as a Predictor Variable of Price.\n", | |
| "<ul>\n", | |
| " <li>R-squared: 0.49659118843391759</li>\n", | |
| " <li>MSE: 3.16 x10^7</li>\n", | |
| "</ul>\n", | |
| "</p>\n", | |
| " \n", | |
| "<p>Multiple Linear Regression: Using Horsepower, Curb-weight, Engine-size, and Highway-mpg as Predictor Variables of Price.\n", | |
| "<ul>\n", | |
| " <li>R-squared: 0.80896354913783497</li>\n", | |
| " <li>MSE: 1.2 x10^7</li>\n", | |
| "</ul>\n", | |
| "</p>\n", | |
| " \n", | |
| "<p>Polynomial Fit: Using Highway-mpg as a Predictor Variable of Price.\n", | |
| "<ul>\n", | |
| " <li>R-squared: 0.6741946663906514</li>\n", | |
| " <li>MSE: 2.05 x 10^7</li>\n", | |
| "</ul>\n", | |
| "</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h3>Simple Linear Regression model (SLR) vs Multiple Linear Regression model (MLR)</h3>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p>Usually, the more variables you have, the better your model is at predicting, but this is not always true. Sometimes you may not have enough data, you may run into numerical problems, or many of the variables may not be useful and or even act as noise. As a result, you should always check the MSE and R^2.</p>\n", | |
| "\n", | |
| "<p>So to be able to compare the results of the MLR vs SLR models, we look at a combination of both the R-squared and MSE to make the best conclusion about the fit of the model.\n", | |
| "<ul>\n", | |
| " <li><b>MSE</b>The MSE of SLR is 3.16x10^7 while MLR has an MSE of 1.2 x10^7. The MSE of MLR is much smaller.</li>\n", | |
| " <li><b>R-squared</b>: In this case, we can also see that there is a big difference between the R-squared of the SLR and the R-squared of the MLR. The R-squared for the SLR (~0.497) is very small compared to the R-squared for the MLR (~0.809).</li>\n", | |
| "</ul>\n", | |
| "</p>\n", | |
| "\n", | |
| "This R-squared in combination with the MSE show that MLR seems like the better model fit in this case, compared to SLR." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h3>Simple Linear Model (SLR) vs Polynomial Fit</h3>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<ul>\n", | |
| " <li><b>MSE</b>: We can see that Polynomial Fit brought down the MSE, since this MSE is smaller than the one from the SLR.</li> \n", | |
| " <li><b>R-squared</b>: The R-squared for the Polyfit is larger than the R-squared for the SLR, so the Polynomial Fit also brought up the R-squared quite a bit.</li>\n", | |
| "</ul>\n", | |
| "<p>Since the Polynomial Fit resulted in a lower MSE and a higher R-squared, we can conclude that this was a better fit model than the simple linear regression for predicting Price with Highway-mpg as a predictor variable.</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h3>Multiple Linear Regression (MLR) vs Polynomial Fit</h3>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<ul>\n", | |
| " <li><b>MSE</b>: The MSE for the MLR is smaller than the MSE for the Polynomial Fit.</li>\n", | |
| " <li><b>R-squared</b>: The R-squared for the MLR is also much larger than for the Polynomial Fit.</li>\n", | |
| "</ul>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h2>Conclusion:</h2>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p>Comparing these three models, we conclude that <b>the MLR model is the best model</b> to be able to predict price from our dataset. This result makes sense, since we have 27 variables in total, and we know that more than one of those variables are potential predictors of the final car price.</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h1>Thank you for completing this notebook</h1>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
| "\n", | |
| " <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n", | |
| "</div>\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h3>About the Authors:</h3>\n", | |
| "\n", | |
| "This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n", | |
| "\n", | |
| "<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<hr>\n", | |
| "<p>Copyright © 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", | |
| "language": "python", | |
| "name": "conda-env-python-py" | |
| }, | |
| "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.7" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 4 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment