Skip to content

Instantly share code, notes, and snippets.

@PBSWE
Created December 2, 2020 23:10
Show Gist options
  • Save PBSWE/d6de6d806eac2a81334f54fbd51daae5 to your computer and use it in GitHub Desktop.
Save PBSWE/d6de6d806eac2a81334f54fbd51daae5 to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/Logos/organization_logo/organization_logo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n",
"</center>\n",
"\n",
"# Model Evaluation and Refinement\n",
"\n",
"Estimated time needed: **30** minutes\n",
"\n",
"## Objectives\n",
"\n",
"After completing this lab you will be able to:\n",
"\n",
"- Evaluate and refine prediction models\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Table of content</h1>\n",
"<ul>\n",
" <li><a href=\"#ref1\">Model Evaluation </a></li>\n",
" <li><a href=\"#ref2\">Over-fitting, Under-fitting and Model Selection </a></li>\n",
" <li><a href=\"#ref3\">Ridge Regression </a></li>\n",
" <li><a href=\"#ref4\">Grid Search</a></li>\n",
"</ul>\n"
]
},
{
"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.\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"# Import clean data \n",
"path = 'https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Data%20files/module_5_auto.csv'\n",
"df = pd.read_csv(path)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"df.to_csv('module_5_auto.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" First lets only use numeric data \n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"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>Unnamed: 0</th>\n",
" <th>Unnamed: 0.1</th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>...</th>\n",
" <th>stroke</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>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>0.890278</td>\n",
" <td>48.8</td>\n",
" <td>2548</td>\n",
" <td>130</td>\n",
" <td>...</td>\n",
" <td>2.68</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>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>0.890278</td>\n",
" <td>48.8</td>\n",
" <td>2548</td>\n",
" <td>130</td>\n",
" <td>...</td>\n",
" <td>2.68</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>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>0.909722</td>\n",
" <td>52.4</td>\n",
" <td>2823</td>\n",
" <td>152</td>\n",
" <td>...</td>\n",
" <td>3.47</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>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>0.919444</td>\n",
" <td>54.3</td>\n",
" <td>2337</td>\n",
" <td>109</td>\n",
" <td>...</td>\n",
" <td>3.40</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>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>0.922222</td>\n",
" <td>54.3</td>\n",
" <td>2824</td>\n",
" <td>136</td>\n",
" <td>...</td>\n",
" <td>3.40</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>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 21 columns</p>\n",
"</div>"
],
"text/plain": [
" Unnamed: 0 Unnamed: 0.1 symboling normalized-losses wheel-base \\\n",
"0 0 0 3 122 88.6 \n",
"1 1 1 3 122 88.6 \n",
"2 2 2 1 122 94.5 \n",
"3 3 3 2 164 99.8 \n",
"4 4 4 2 164 99.4 \n",
"\n",
" length width height curb-weight engine-size ... stroke \\\n",
"0 0.811148 0.890278 48.8 2548 130 ... 2.68 \n",
"1 0.811148 0.890278 48.8 2548 130 ... 2.68 \n",
"2 0.822681 0.909722 52.4 2823 152 ... 3.47 \n",
"3 0.848630 0.919444 54.3 2337 109 ... 3.40 \n",
"4 0.848630 0.922222 54.3 2824 136 ... 3.40 \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 diesel gas \n",
"0 11.190476 0 1 \n",
"1 11.190476 0 1 \n",
"2 12.368421 0 1 \n",
"3 9.791667 0 1 \n",
"4 13.055556 0 1 \n",
"\n",
"[5 rows x 21 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df=df._get_numeric_data()\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Libraries for plotting \n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install ipywidgets"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"from ipywidgets import interact, interactive, fixed, interact_manual"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Functions for plotting</h2>\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def DistributionPlot(RedFunction, BlueFunction, RedName, BlueName, Title):\n",
" width = 12\n",
" height = 10\n",
" plt.figure(figsize=(width, height))\n",
"\n",
" ax1 = sns.distplot(RedFunction, hist=False, color=\"r\", label=RedName)\n",
" ax2 = sns.distplot(BlueFunction, hist=False, color=\"b\", label=BlueName, ax=ax1)\n",
"\n",
" plt.title(Title)\n",
" plt.xlabel('Price (in dollars)')\n",
" plt.ylabel('Proportion of Cars')\n",
"\n",
" plt.show()\n",
" plt.close()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"def PollyPlot(xtrain, xtest, y_train, y_test, lr,poly_transform):\n",
" width = 12\n",
" height = 10\n",
" plt.figure(figsize=(width, height))\n",
" \n",
" \n",
" #training data \n",
" #testing data \n",
" # lr: linear regression object \n",
" #poly_transform: polynomial transformation object \n",
" \n",
" xmax=max([xtrain.values.max(), xtest.values.max()])\n",
"\n",
" xmin=min([xtrain.values.min(), xtest.values.min()])\n",
"\n",
" x=np.arange(xmin, xmax, 0.1)\n",
"\n",
"\n",
" plt.plot(xtrain, y_train, 'ro', label='Training Data')\n",
" plt.plot(xtest, y_test, 'go', label='Test Data')\n",
" plt.plot(x, lr.predict(poly_transform.fit_transform(x.reshape(-1, 1))), label='Predicted Function')\n",
" plt.ylim([-10000, 60000])\n",
" plt.ylabel('Price')\n",
" plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1 id=\"ref1\">Part 1: Training and Testing</h1>\n",
"\n",
"<p>An important step in testing your model is to split your data into training and testing data. We will place the target data <b>price</b> in a separate dataframe <b>y</b>:</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"y_data = df['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"drop price data in x data\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"x_data=df.drop('price',axis=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we randomly split our data into training and testing data using the function <b>train_test_split</b>. \n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"number of test samples : 21\n",
"number of training samples: 180\n"
]
}
],
"source": [
"from sklearn.model_selection import train_test_split\n",
"\n",
"\n",
"x_train, x_test, y_train, y_test = train_test_split(x_data, y_data, test_size=0.10, random_state=1)\n",
"\n",
"\n",
"print(\"number of test samples :\", x_test.shape[0])\n",
"print(\"number of training samples:\",x_train.shape[0])\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The <b>test_size</b> parameter sets the proportion of data that is split into the testing set. In the above, the testing set is set to 10% of the total dataset. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #1):</h1>\n",
"\n",
"<b>Use the function \"train_test_split\" to split up the data set such that 40% of the data samples will be utilized for testing, set the parameter \"random_state\" equal to zero. The output of the function should be the following: \"x_train_1\" , \"x_test_1\", \"y_train_1\" and \"y_test_1\".</b>\n",
"\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"number of test samples : 81\n",
"number of training samples: 120\n"
]
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"\n",
"x_train_1, x_test_1, y_train_1, y_test_1 = train_test_split(x_data, y_data, test_size=0.40, random_state=0)\n",
"\n",
"print(\"number of test samples :\", x_test_1.shape[0])\n",
"print(\"number of training samples:\",x_train_1.shape[0])\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"x_train1, x_test1, y_train1, y_test1 = train_test_split(x_data, y_data, test_size=0.4, random_state=0) \n",
"print(\"number of test samples :\", x_test1.shape[0])\n",
"print(\"number of training samples:\",x_train1.shape[0])\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's import <b>LinearRegression</b> from the module <b>linear_model</b>.\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.linear_model import LinearRegression"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We create a Linear Regression object:\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"lre=LinearRegression()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we fit the model using the feature horsepower \n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"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": [
"lre.fit(x_train[['horsepower']], y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's Calculate the R^2 on the test data:\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.36358755750788263"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lre.score(x_test[['horsepower']], y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can see the R^2 is much smaller using the test data.\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.6619724197515104"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lre.score(x_train[['horsepower']], y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2): </h1>\n",
"<b> \n",
"Find the R^2 on the test data using 90% of the data for training data\n",
"</b>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7340722810055448"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"\n",
"x_train_1, x_test_1, y_train_1, y_test_1 = train_test_split(x_data, y_data, test_size=0.10, random_state=0)\n",
"lre.fit(x_train_1[['horsepower']], y_train_1)\n",
"lre.score(x_test_1[['horsepower']], y_test_1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"x_train1, x_test1, y_train1, y_test1 = train_test_split(x_data, y_data, test_size=0.1, random_state=0)\n",
"lre.fit(x_train1[['horsepower']],y_train1)\n",
"lre.score(x_test1[['horsepower']],y_test1)\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Sometimes you do not have sufficient testing data; as a result, you may want to perform Cross-validation. Let's go over several methods that you can use for Cross-validation. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Cross-validation Score</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Lets import <b>model_selection</b> from the module <b>cross_val_score</b>.\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import cross_val_score"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We input the object, the feature in this case ' horsepower', the target data (y_data). The parameter 'cv' determines the number of folds; in this case 4. \n"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"Rcross = cross_val_score(lre, x_data[['horsepower']], y_data, cv=4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The default scoring is R^2; each element in the array has the average R^2 value in the fold:\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.7746232 , 0.51716687, 0.74785353, 0.04839605])"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Rcross"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can calculate the average and standard deviation of our estimate:\n"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean of the folds are 0.522009915042119 and the standard deviation is 0.291183944475603\n"
]
}
],
"source": [
"print(\"The mean of the folds are\", Rcross.mean(), \"and the standard deviation is\" , Rcross.std())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can use negative squared error as a score by setting the parameter 'scoring' metric to 'neg_mean_squared_error'. \n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([20254142.84026702, 43745493.2650517 , 12539630.34014931,\n",
" 17561927.72247591])"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"-1 * cross_val_score(lre,x_data[['horsepower']], y_data,cv=4,scoring='neg_mean_squared_error')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #3): </h1>\n",
"<b> \n",
"Calculate the average R^2 using two folds, find the average R^2 for the second fold utilizing the horsepower as a feature : \n",
"</b>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.5166761697127429"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"\n",
"Rcross = cross_val_score(lre, x_data[['horsepower']], y_data, cv=2)\n",
"Rcross.mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"Rc=cross_val_score(lre,x_data[['horsepower']], y_data,cv=2)\n",
"Rc.mean()\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also use the function 'cross_val_predict' to predict the output. The function splits up the data into the specified number of folds, using one fold for testing and the other folds are used for training. First import the function:\n"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import cross_val_predict"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We input the object, the feature in this case <b>'horsepower'</b> , the target data <b>y_data</b>. The parameter 'cv' determines the number of folds; in this case 4. We can produce an output:\n"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([14141.63807508, 14141.63807508, 20814.29423473, 12745.03562306,\n",
" 14762.35027598])"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"yhat = cross_val_predict(lre,x_data[['horsepower']], y_data,cv=4)\n",
"yhat[0:5]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1 id=\"ref2\">Part 2: Overfitting, Underfitting and Model Selection</h1>\n",
"\n",
"<p>It turns out that the test data sometimes referred to as the out of sample data is a much better measure of how well your model performs in the real world. One reason for this is overfitting; let's go over some examples. It turns out these differences are more apparent in Multiple Linear Regression and Polynomial Regression so we will explore overfitting in that context.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's create Multiple linear regression objects and train the model using <b>'horsepower'</b>, <b>'curb-weight'</b>, <b>'engine-size'</b> and <b>'highway-mpg'</b> as features.\n"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lr = LinearRegression()\n",
"lr.fit(x_train[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']], y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Prediction using training data:\n"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 7426.6731551 , 28323.75090803, 14213.38819709, 4052.34146983,\n",
" 34500.19124244])"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"yhat_train = lr.predict(x_train[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']])\n",
"yhat_train[0:5]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Prediction using test data: \n"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([11349.35089149, 5884.11059106, 11208.6928275 , 6641.07786278,\n",
" 15565.79920282])"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"yhat_test = lr.predict(x_test[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']])\n",
"yhat_test[0:5]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's perform some model evaluation using our training and testing data separately. First we import the seaborn and matplotlibb library for plotting.\n"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"import seaborn as sns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's examine the distribution of the predicted values of the training data.\n"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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21zvl/ls90FsvsM0YDpW9x6XBalkH+eLnIcVf84mOn3hve/gbKbwHO99sRdnyGe7r4e2+2FRtxURSTTOuV+BF7z3rwUdS2k56yrzO1ApzkeCpBChIwkveO9bFnljkTIq4UeOvfebgYXOuTMhu31VRN0IQodtw/0B6wNHATNjFqyISBQ55452zjUKlVVchLVGi2S0MyE5Wyq9orPWU48BnysxDlao9Glw6H+sKVZqMjzouESClHDJsXPuHeywUltnza7/iLU2+aOzRSJmYIc/I9EOmBi63w9YKxslxyKSLNpiNYybsMP4f/DeZwQbUqlciZWtzMcO2+etEZb4c1hZwwasrGIWxagHFymLYlpW4Zz7M1YL5LHamUsiaI8iIiIiIhKImI0chw7PXA909953wJbIPafwe4mIiIiIBKc0K3RFuv0qzrndWN+/Qnv11a9f37dq1SrGIYmIiIhIefbbb7+t9d43yO+6mCXH3vvlzrknsGb524Fvvfff5r2dc+4KQmuXt2jRgokTJ8YqJBERERERnHMFrs4ay7KKOtjEudbY0ofVnHPn572d9/4l73137333Bg3yTeBFREREROIilt0qBmIrCq3x3u/GmnofGcP9iYiIiIiUSiyT4yVAr9Cynw44FmsRIyIiIiKSkGJZc/yrc+5DbOnDPVj/xJditT8RERFJLrt372bZsmXs2KEurxIblStXplmzZqSlpUV8n5h2q/De34uttiMiIiKSy7Jly6hRowatWrXCDjKLRI/3nnXr1rFs2TJat24d8f0SboU8ERERKR927NhBvXr1lBhLTDjnqFevXrGPTCg5FhERkcAoMZZYKsn/l5JjEREREZEQJcciIiIiIiFKjkVERKRcGz58OM45Zs+eXeRtn3rqKbZt21bifb3++utcd911uS5btGgRzZo1IysrK9flXbp0Yfz48fluZ9GiRXTo0KHEcUTik08+4YEHHuChhx6iS5cudOnShdTU1Oyfn3766Yi2c9lllzFz5sxCb/Pss8/y2muvRSPsUlNyLCIiIuXaO++8Q58+fXj33XeLvG1pk+P8tGrViubNm/Pzzz9nXzZ79mwyMzPp2bNnVPdVHI8//jjXXHMNd955J1OmTGHKlClUqVIl++frr78esK4QeRP7nF5++WXat29f6L4uvfTSiJPtWFNyLCIiIsG78Ubo3z+6pxtvLHK3W7ZsYfTo0bzyyiu5kuO9e/dy880307FjRzp16sQzzzzD008/zYoVKxgwYAADBgwAoHr16tn3+fDDD7n44osB+PzzzzniiCPo2rUrAwcOZNWqVYXGMWzYsFz7f/fddxk2bBiLFi2ib9++dOvWjW7dujFmzJj97pt3NPrkk0/mxx9/BODbb7+ld+/edOvWjTPPPJMtW7YAcNttt9G+fXs6derEzTffvN82586dS6VKlahfv36+8S5atIh27dpxzTXX0K1bN5YuXcrVV19N9+7dOeyww7j33n2dfPv378/EiROzH68777yTzp0706tXr+zHpWrVqrRq1arAkfJ4UnIsIiIi5dYnn3zCiSeeyCGHHELdunWZNGkSAC+99BILFy5k8uTJTJs2jfPOO4/rr7+eJk2a8MMPP/DDDz8Uut0+ffowbtw4Jk+ezDnnnMPjjz9e6O3POussPvnkE/bs2QPAe++9xznnnMMBBxzAiBEjmDRpEu+99172aG0k1q5dy4MPPsjIkSOZNGkS3bt355///Cfr169n+PDhzJgxg2nTpnHXXXftd9/Ro0fTrVu3Qrc/Z84cLrzwQiZPnkzLli156KGHmDhxItOmTeOnn35i2rRp+91n69at9OrVi6lTp9KvXz/+85//ZF/XvXv3XKPnQYnpIiAiIiIiEXnqqUB2+84773BjaIT5nHPO4Z133qFbt26MHDmSq666igoVLFWqW7dusba7bNkyzj77bDIyMti1a1eRi1A0atSIww47jO+++46GDRuSlpZGhw4d2LRpE9dddx1TpkwhNTWVuXPnRhzDuHHjmDlzJkcddRQAu3btonfv3tSsWZPKlStz2WWXcdJJJ3HyySfvd9+MjAwaNGhQ6PZbtmxJr169sn9///33eemll9izZw8ZGRnMnDmTTp065bpPxYoVs/d3+OGHM2LEiOzrDjjggIjqvmNNybGIiIiUS+vWreP777/n999/xznH3r17cc7x+OOP472PqEduztvkXGziT3/6EzfddBOnnHIKP/74I/fdd1+R2wqXVjRs2JBhw4YB8OSTT9KwYUOmTp1KVlYWlStX3u9+FSpUyFXzG47De89xxx3HO++8s999xo8fz3fffce7777Ls88+y/fff5/r+ipVqrBp06ZC461WrVr2zwsXLuSJJ55gwoQJ1KlTh4svvjjfxTfS0tKyH7PU1NTskfJw3FWqVCl0n/GgsgoREREplz788EMuvPBCFi9ezKJFi1i6dCmtW7fml19+4fjjj+eFF17ITt7Wr18PQI0aNcjMzMzeRsOGDZk1axZZWVkMHz48+/JNmzbRtGlTAN54442I4jnjjDP46quvsksqwttp3LgxKSkpvPnmm+zdu3e/+7Vq1YopU6aQlZXF0qVLs+t2e/XqxejRo0lPTwdg27ZtzJ07ly1btrBp0yYGDx7MU089xZQpU/bbZrt27bLvF4nNmzdTrVo1atWqxapVq/j6668jvm/Y3LlzY96BIxJKjkVERKRceueddxg6dGiuy8444wzefvttLrvsMlq0aEGnTp3o3Lkzb7/9NgBXXHEFgwYNyp6Q9+ijj3LyySdzzDHH0Lhx4+zt3HfffZx55pn07du3wEltedWuXZtevXrRsGHD7DKMa665hjfeeINevXoxd+7cXKO1YUcddRStW7emY8eO3Hzzzdm1wg0aNOD1119n2LBhdOrUiV69emV3wTj55JPp1KkTRx99NE8++eR+2+zXrx+TJ0/Gex9R7J07d6Zr164cdthhXHrppdmlHMUxevRoBg4cWOz7RZuL9I+Oh+7du/vwbEYREREp22bNmkW7du2CDkMKcMMNNzBkyJC4JKyTJ0/mn//8J2+++WbUt53f/5lz7jfvfff8bq+RYxERERHZzx133BH1ns4FWbt2LX/729/isq+iaEKeiIiIiOynYcOGnHLKKXHZ13HHHReX/URCI8ciIiIiIiFKjkVEREREQpQci4iIiIiEqOZYJCh798LNN8PmzdCgAdSvb+fHHAPNmwcdnYiISLmkkWORoLz6qi2X+sUX8M9/wi23wMUXwxFHwJYtQUcnIlIupKam0qVLFzp06MCZZ55Zqu4MF198MR9++CEAl112GTNnzizwtj/++CNjxowp9j5atWrF2rVr99vviy++mOuyTz75hMGDB0cUayx47znmmGNYvHgxXbp0oUuXLjRq1IimTZtm/75r164itzNx4kSuv/76Qm+za9cu+vXrl2u1vdJQciwShMxMuOsu6NsXVq6EnTth40b4+mvIyIBHHw06QhGRcqFKlSpMmTKF33//nYoVK/LCCy/kuj6/Feki8fLLL9O+ffsCry9pcpyf8LLTOb377rvZS1AH4auvvqJz5860bNmSKVOmMGXKFK666ir+/Oc/Z/9esWJFgEKT2u7du/P0008Xuq+KFSty7LHH8t5770UldiXHIkF49FFYvRr+8Q9wzk61asGJJ8J558ETT8CiRUFHKSISNzfeCP37R/d0443Fi6Fv376kp6fz448/MmDAAM4991w6duzI3r17ueWWW+jRowedOnXKHqX13nPdddfRvn17TjrpJFavXp29rf79+xNe2Oybb76hW7dudO7cmWOPPZZFixbxwgsv8OSTT9KlSxd+/vln1qxZwxlnnEGPHj3o0aMHo0ePBmDdunUcf/zxdO3alSuvvDLfFesGDhzI7NmzycjIAGyZ6JEjR3LaaafxwAMP0KNHDzp06MAVV1yR7/1zjkZPnDiR/v37A7B161YuvfRSevToQdeuXfn0008BmDFjBj179qRLly506tSJefPm7bfNt956i1NPPbXAx/riiy/mpptuYsCAAfz1r39l/PjxHHnkkXTt2pUjjzySOXPmAPYl4uSTTwZs1cFLL72U/v37c+CBB+ZKmk877TTeeuutAvdXHKo5Fom3xYstKT7vPOjRY//rH3kEPv4Y/vpXiNK3YBERKdyePXv4+uuvOfHEEwEYP348v//+O61bt+all16iVq1aTJgwgZ07d3LUUUdx/PHHM3nyZObMmcP06dNZtWoV7du359JLL8213TVr1nD55ZczatQoWrduzfr166lbty5XXXUV1atX5+abbwbg3HPP5c9//jN9+vRhyZIlnHDCCcyaNYv777+fPn36cM899/Dll1/y0ksv7Rd7amoqp59+Ou+//z433HADn332GQMGDKBGjRpcd9113HPPPQBccMEFfPHFFwwZMiSix+Shhx7imGOO4dVXX2Xjxo307NmTgQMH8sILL3DDDTdw3nnnsWvXrnxH10ePHr1fqUdec+fOZeTIkaSmprJ582ZGjRpFhQoVGDlyJHfccQcfffTRfveZPXs2P/zwA5mZmbRt25arr76atLQ0OnTowIQJEyL6u4qi5Fgk3u64w0aKH344/+ubN7fE+L774LrrrPRCRKSMe+qpYPa7fft2unTpAtjI8R//+EfGjBlDz549ad26NQDffvst06ZNy67R3bRpE/PmzWPUqFEMGzaM1NRUmjRpwjHHHLPf9seNG0e/fv2yt1W3bt184xg5cmSuGuXNmzeTmZnJqFGj+PjjjwE46aSTqFOnTr73HzZsGLfccgs33HAD7777LhdeeCEAP/zwA48//jjbtm1j/fr1HHbYYREnx99++y2fffYZTzzxBAA7duxgyZIl9O7dm4ceeohly5Zx+umnc/DBB+933/Xr11OjRo1Ct3/mmWeSmpoK2GN60UUXMW/ePJxz7N69O9/7nHTSSVSqVIlKlSpxwAEHsGrVKpo1a0ZqaioVK1YkMzOzyP0WRcmxSDyNHw9vvw133gktWhR8u1tugZdftmOCEyZAiiqgRERiIVxznFe1atWyf/be88wzz3DCCSfkus1XX32Fc67Q7Xvvi7wNQFZWFmPHjqVKlSr7XRfJ/Y866igyMjKYOnUqY8aM4d1332XHjh1cc801TJw4kebNm3PfffexY8eO/e5boUIFsrKyAHJd773no48+om3btrlu365dO4444gi+/PJLTjjhBF5++eX9vhiEt5lSyOdXzsf47rvvZsCAAQwfPpxFixZll3bkValSpeyfU1NTc9Ur79y5k8qVKxe4v0jpE1ckXryHm26Chg1tZLgwVavCY4/BpEnwxhvxiU9ERPJ1wgkn8Pzzz2ePZs6dO5etW7fSr18/3n33Xfbu3UtGRgY//PDDfvft3bs3P/30EwsXLgRsRBWgRo0aZGZmZt/u+OOP59lnn83+PZyw9+vXL7uW9uuvv2bDhg35xuic46yzzuKiiy5i8ODBVK5cOTvRrV+/Plu2bCmwO0WrVq347bffAHKVMpxwwgk888wz2XXKkydPBmDBggUceOCBXH/99ZxyyilMmzZtv222bduWBQsW5Lu//GzatImmTZsC8Prrr0d8v7B169bRoEED0tLSin3fvJQci8TLl1/C6NHwt79BJId8hg2DXr2sDKMUrYVERKR0LrvsMtq3b0+3bt3o0KEDV155JXv27GHo0KEcfPDBdOzYkauvvpqjjz56v/s2aNCAl156idNPP53OnTtz9tlnAzBkyBCGDx+ePSHv6aefZuLEiXTq1In27dtnd8249957GTVqFN26dePbb7+lRSFHHYcNG8bUqVM555xzAKhduzaXX345HTt25LTTTqNHfvNcQvu44YYb6Nu3b3aZA9ho7u7du+nUqRMdOnTg7rvvBuC9996jQ4cOdOnShdmzZ2eXcOR00kkn8eOPP0b2AAO33nort99+O0cddVSJOoT88MMPhbauKw6X36zFoHTv3t2HZ3aKlDmXXw4ffABr10KFCCuaRo6E446DDz+EM86IbXwiInE2a9Ys2rVrF3QYEgMZGRlceOGFjBgxIi77O/3003nkkUf2KwGB/P/PnHO/ee+757ctjRyLxIP3MGIEDBgQeWIM1ouoXj3rXiEiIpIkGjduzOWXX87mzZtjvq9du3Zx2mmn5ZsYl4SSY5F4SE+3Fm7HHVe8+1WoAKeeaqvoRbCSkIhIskmkI9gSXWeddRY1a9aM+X4qVqyYb2kHlOz/S8mxSDyEDysVNzkGGDoUNm+G77+PbkwiIgGrXLky69atU4IsMeG9Z926dcXuYKFWbiLxMHIktGwJbdoU/74DB0L16lZaEWpOLyJSFjRr1oxly5axZs2aoEORMqpy5co0a9asWPdRciwSa3v22KjvH/5gi38UV+XKcNJJ8Omn8PzzkGMmsYhIMktLS8teHEMkUaisQiTWJk6ETZtKVlIRNnQorF4NY8ZELy4RERHZj5JjkVgbOdJGjI89tuTbGDwYKlZU1woREZEYU3IsEmsjRkDXrlC/fsm3UaMGHH88DB9ubeFEREQkJpQci8TSli0wdmzpSirChg61dnCh5TtFREQk+pQci8TSTz/B7t3WcaK0TjkFUlJs9FhERERiQsmxSCyNHGndJvr0Kf226teHo49W3bGIiEgMKTkWiaURI6BvX0uQo2HoUJg5E+bMic72REREJBclxyKxsmIFzJgRnXrjsKFD7fyzz6K3TREREcmm5FgkVkaOtPNoJsfNmsGhh1ots4iIiESdkmORWBk5Eho0gE6dorvdvn1h9GjIyorudkVERETJsUjMTJgARx5pHSaiqW9f2LgRfv89utsVERERJcciMbF9O8ydC507R3/bffva+ahR0d+2iIhIOafkWCQWZs2ysoeOHaO/7ZYtrfb455+jv20REZFyTsmxSCxMm2bn0a43BnDORo9//llLSYuIiESZkmORWJg2DapUgYMOis32+/WDjAxYsCA22xcRESmnlByLxML06XDYYZCaGpvth+uOVVohIiISVUqORWJh2rTYlFSEtWsHdesqORYREYkyJcci0bZqFaxeHZvJeGEpKdCnjzpWiIiIRJmSY5Fomz7dzmM5cgxWWpGeDitXxnY/IiIi5YiSY5FoC3eqiOXIMajuWEREJAaUHItE27Rp0KiRLR0dS926QdWqSo5FRESiSMmxSLRNnx77kgqAtDTo3VvJsYiISBQpORaJpj17YMaM2JdUhPXtC1OnwqZN8dmfiIhIGafkWCSa5s2DnTvjM3IMlhx7D2PGxGd/IiIiZZySY5FoilenirBevaBCBbV0ExERiRIlxyLRNG2arYrXrl189le1Khx+uOqORUREoiRmybFzrq1zbkqO02bn3I2x2p9IQpg2Ddq2hUqV4rfP3r1h0iSrdxYREZFSiVly7L2f473v4r3vAhwObAOGx2p/Iglh+vT4TcYL694dtm+HmTPju18REZEyKF5lFccC8733i+O0P5H427QJFi2KX71xWI8edj5xYnz3KyIiUgbFKzk+B3gnvyucc1c45yY65yauWbMmTuGIxMDvv9t5vJPjNm2gZk0lxyIiIlEQ8+TYOVcROAX4IL/rvfcvee+7e++7N4j1imIisRTuVBHvsoqUFJuUN2FCfPcrIiJSBsVj5HgQMMl7vyoO+xIJzrRpNoLbokX8992jhy0GsnNn/PctIiJShsQjOR5GASUVImXKtGlWUuFc/PfdvTvs3r1v9FpERERKJKbJsXOuKnAc8HEs9yMSOO+D6VQRpkl5IiIiUVEhlhv33m8D6sVyHyIJYfly2LwZOnQIZv8tW0K9ekqORURESkkr5IlEw/z5dt6mTTD7d85GjzUpT0REpFSUHItEQzg5Puig4GLo3h1mzIBt24KLQUREJMkpORaJhvnzITU1mE4VYd27w969MGVKcDGIiIgkOSXHItEwf77V/aalBReDJuWJiIiUmpJjkWiYPz/YkgqAJk2gcWMlxyIiIqWg5FgkGhIhOQZNyhMRESklJccipbVhg50SITnu3h3mzLG2ciIiIlJsSo5FSisROlWE9ehhC5JMnhx0JCIiIklJybFIaSVScnz44Xau0goREZESUXIsUlrh5PjAA4ONA6BBA+uaoUl5IiIiJaLkWKS05s+Hhg2hevWgIzGalCciIlJiSo5FSitROlWEde8OCxbAunVBRyIiIpJ0lByLlFaiJcfhumNNyhMRESk2JccipbFjByxfnljJcdeudq7kWEREpNiUHIuUxsKF1jotkZLjevWgeXMlxyIiIiWg5FikNBKpjVtOXbsqORYRESkBJccipZHIyfGcObB1a9CRiIiIJBUlxyKlMX++tXBr0CDoSHLr2tXKPaZNCzoSERGRpKLkWKQ0wp0qnAs6ktw0KU9ERKRElByLlEaitXELa94c6tZVciwiIlJMSo5FSmrvXutWkYjJsXOalCciIlICSo5FSmr5cti1KzGTY7DkePp02L076EhERESShpJjkZJK1E4VYd26WfI+a1bQkYiIiCQNJcciJZXoybEm5YmIiBSbkmORkpo/HypUsMlviejgg6FqVSXHIiIixaDkWKSk5s+H1q0tQU5EqanQubOSYxERkWJQcixSUonaxi2nrl1hyhTIygo6EhERkaSg5FikJLxPnuR482ZrOSciIiJFUnIsUhLr18OmTcmRHINKK0RERCKk5FikJBK9U0VYhw5WE63kWEREJCJKjkVKIlmS40qVoH17JcciIiIRUnIsUhKLFtl5q1ZBRhEZLSMtIiISMSXHIiWxdCnUrQvVqgUdSdG6doWVK+0kIiIihVJyLFISS5ZAixYx2/y6dfD11/DoozBxYik3pkl5IiIiEVNyLFISS5dGfWW8kSPhggtsYbv69WHwYLj9dujVCx54APbsKeGGu3SxcyXHIiIiRVJyLFISS5ZENTkePdqS4f/9Dw47DB55BL7/3nLws8+Ge++Ffv1gwYISbLxmTZs4qORYRESkSAm67q1IAtuyBTZujFpZxdKlcPrp0LIljB8Pderkvv6tt+Ckk+Caa2w16GeegYsuAueKsRNNyhMREYmIRo5FimvpUjuPwsjxtm1w2mmwfTt89tn+iXHYuefC1Klw+OFwySXw0kvF3FHXrtZ+btOm0oYsIiJSpik5FimuJUvsvJQjx97DpZfagO7bb0O7doXfvmVL+O47OPZYuPnmfWFEJDwpb+rUEscrIiJSHig5FimuKI0cP/oovPcePPwwnHxyZPdJTYWXX7bE+vLL7Twi6lghIiISESXHIsW1ZIkV/DZpUuJNfPMN3HknDBsGf/1r8e7bqhU89hh8+y289lqEd2rUyE5KjkVERAql5FikuJYutcQ4La1Ed/feWrQdfLCNAhdrYl3I1Vdb94qbboLlyyO8kybliYiIFEnJsUhxlbLH8ahRMGWK1Q1XrVqybaSkwCuvwK5dcOWVEZZXdO0KM2fCzp0l26mIiEg5oORYpLhKuTreU09BvXpw/vmlC6NNG3joIfjyS2v3VqSuXW0lkd9/L92ORUREyjAlxyLF4X2pRo4XLIBPP7XR3ipVSh/O9ddD7952vmFDETfWpDwREZEiKTkWKY61a2HHjhInx888Yx0nrrkmOuGkpsLzz1ti/OKLRdy4dWtbLU/JsYiISIGUHIsUR7iNWwnKKjZvtjrhs86Cpk2jF1LnznD88fCvfxVRTpySAl26KDkWEREphJJjkeIoRY/j116DzEy44YYox4RN7lu50hYTKVTXrrYQyN690Q9CRESkDFByLFIc4WXpipkc790LTz8NRx4JPXtGP6yBA20E+Ykniuhc0bWrrVk9d270gxARESkDlByLFMfSpVCpEjRoUKy7ffmlTca78cbYhOWcjR7PnGkLjBRIk/JEREQKpeRYpDiWLoVmzax+txieesoGm4cOjU1YAGefbbXMf/97ITdq186SeyXHIiIi+VJyLFIcJehxPG0a/PAD/OlPUKFCjOLCFuy78Ubb12+/FXKjDh2UHIuIiBRAybFIcZSgx/G771rLtUsvjVFMOVxxhXVr+8c/CrlReBnpiJbVExERKV+UHItEas8eWL682MnxF19A3762Kl6s1axpCfL778PixQXcqGtXWL9+X+cNERERyabkWCRSGRmQlVWssorFi2H6dDj55BjGlcf119sEvaeeKuAGmpQnIiJSICXHIpEqQY/jL7+083gmx82bwznn2IIj27blc4NOnSx7VnIsIiKyHyXHIpEqQY/jL76ANm3gkENiFFMBLr3UFhz57LN8rqxWDdq2VXIsIiKSDyXHIpEq5tLRW7fC99/bqLFzMYwrH0cfbTn8m28WcIPwpDwRERHJRcmxSKSWLLEZbzVrRnTz776DnTvjW1IRlpIC550H//sfrFqVzw26drVkf926uMcmIiKSyGKaHDvnajvnPnTOzXbOzXLO9Y7l/kRiaunSYk3G++ILqFHDOlUE4YILbNnqd9/N50pNyhMREclXrEeO/wV8470/FOgMzIrx/kRipxg9jr235PiEE6BixRjHVYD27aFbtwJKK5Qci4iI5CtmybFzribQD3gFwHu/y3u/MVb7E4m5JUsiTo4nT7bOb0GUVOR0wQW2Wt6svF9L69WzUXAlxyIiIrnEcuT4QGAN8JpzbrJz7mXnXLW8N3LOXeGcm+icm7hmzZoYhiNSCtu3w9q1EZdVfPGFTcIbNCjGcRVh2DBbna/A0WMlxyIiIrnEMjmuAHQDnvfedwW2ArflvZH3/iXvfXfvffcGDRrEMByRUihm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HbB6tZJjiY0jj7QVPkqwssdf/mJ3ffTRGMQlIiJRpeRYkt6cOVCpErRwS+0CJccSC1WrwhFHFHtSHkCjRnDZZfDGG3ZwQ0REEpeSY0l6c+fCwQdDyrJQ1qHkWGKlf3/47TfYvLnYd731Vps8+ve/Rz8sERGJHiXHkvSy27gtUXIsMRauO/7ll2LftUULuOgiePllWLky+qGJiEh0KDmWpLZ7t01yyp6M55wWAJHY6d0bKlYsUWkFwG23wa5d8M9/RjcsERGJHiXHktQWLbKFy7JHjhs1sgJkkVgI1x2XYFIeQJs2cM458O9/w7p1UY5NRESiQsmxJDW1cZO469/f1oPetKlEd7/jDti6Ff71r+iGJSIi0aHkWJJadhs3LQAi8TJgAGRllajuGOCww+D00+GZZ0qcX4uISAwpOZakNmcO1KsH9ep6JccSH716Wd1xCUsrwEaPN2608goREUksSo4lqWV3qli7FnbsUHIssVelik3MK+GkPIDDD4dBg2xi3tat0QtNRERKT8mxJLU5c9TGTQLQvz9MnmzDvyV01132ne4//4laVCIiEgVKjiVpZWZCRkaOyXig5Fjio39/qzv++ecSb+LII20zf/+7HfQQEZHEoORYktZ+k/EAWrYMLB4pR3r1spaBpSitABs9XrECXn89KlGJiEgUKDmWpBVOjrNHjqtWhbp1A41JyonKla3uuBST8gCOOcby7EcftQVtREQkeEqOJWnNmWML4h10EPs6VTgXdFhSXvTvD1OmwIYNJd6EczZ6vHgxvP121CITEZFSUHIsSWvuXKuiqFIFtXGT+BswALwvVd0xwODB0KULPPww7N0bndBERKTklBxL0spu4wZKjiX+eva08opSllY4B3feaf/PH34YpdhERKTElBxLUvLeyiratgV27oSVK5UcS3yF645LOSkPbMW8du3goYesCYaIiARHybEkpZUrYcuW0MjxsmV2oZJjibcBA2DqVFi/vlSbSUmB22+H6dPhiy+iFJuIiJSIkmNJSnPm2LkWAJFA9e9vhzFGjSr1poYNg9at4cEHbZMiIhIMJceSlPZr4wZKjiX+eva0GaFRKK2oUMFGjydMgG++KX1oIiJSMkqOJSnNnm0ln82bsy85btYs0JikHKpUyZa6i0JyDHDRRdCqFdxzj0aPRUSCouRYktLMmTaBKSUFS44bNbJE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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"Title = 'Distribution Plot of Predicted Value Using Training Data vs Training Data Distribution'\n",
"DistributionPlot(y_train, yhat_train, \"Actual Values (Train)\", \"Predicted Values (Train)\", Title)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Figure 1: Plot of predicted values using the training data compared to the training data. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So far the model seems to be doing well in learning from the training dataset. But what happens when the model encounters new data from the testing dataset? When the model generates new values from the test data, we see the distribution of the predicted values is much different from the actual target values. \n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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fzXPjUVEpEA0oi4iInlyzh3pnNs/VDIwAGgJfBl0XCIiySwZVgsUEZHoa4R9tF0B67pzuvd+ZbAhiYgkN5W+iIiIiIjEIZW+iIiIiIjEIZW+5KB69eq+Xr16QYchIiIiIkls8uTJf3vva2R3nxL1HNSrV4/U1NSgwxARERGRJOacy3FVbJW+iIiIiIjEISXqIiIiIiJxSIm6iIiIiEgcUo26iIiISDZ27drFsmXL2L59e9ChSBIoU6YMderUoWTJkmHvo0RdREREJBvLli2jYsWK1KtXD+dc0OFIAvPes2bNGpYtW0b9+vXD3k+lLyIiIiLZ2L59O9WqVVOSLoXmnKNatWr5/nRGibqIiIhIDpSkS6QU5LmkRF1EREREJA4pURcRERERiUNK1EVERETi2EcffYRzjjlz5uS57eOPP87WrVsLfK7hw4czZMiQf9y2aNEi6tSpQ3p6+j9uT0lJYeLEidkeZ9GiRTRv3rzAcYTj448/5u677+a+++4jJSWFlJQUihcvvvfrJ598Muxj3X///Xu/3rlzJ926dWP37t3RCDtflKiLiIiIxLF33nmHLl26MGLEiDy3LWyinp169epRt25dfvjhh723zZkzh02bNtGhQ4eInis/HnroIS6//HJuueUWpk2bxrRp0yhbtuzer6+66qqwj5U5US9VqhTHHnss7777bjTCzhe1ZxQRERHJy9VXw7RpkT1mSgo8/nium2zevJkJEyYwduxYTj75ZO68804A9uzZww033MBXX32Fc45LLrkE7z0rVqzg6KOPpnr16owdO5YKFSqwefNmAD744AM+++wzhg8fzqeffsq9997Lzp07qVatGm+99Ra1atXKMY7+/fszYsQIjjzySABGjBhB//79WbRoEeeddx5btmwBYNiwYXTu3Pkf+w4fPpzU1FSGDRsGwEknncR1113HUUcdxddff80dd9zBjh07OOSQQ3j11VepUKECN954I6NGjaJEiRIcf/zxPPzww/84ZlpaGqVLl6Z69erZxrtnzx5uvPFGxo0bx44dO7jiiiu49NJLWblyJWeddRYbN25k9+7dPPvss3z++eds27aNlJQUmjVrxltvvUXfvn256aabOOecc3L9/USbEnURERGROPXxxx/Ts2dPDjvsMKpWrcqUKVNo06YNL7zwAgsXLmTq1KmUKFGCtWvXUrVqVR599FHGjh2bYwKboUuXLvzyyy8453jppZd46KGHeOSRR3Lc/swzz6R169Y89dRTlChRgnfffZf333+fmjVr8s0331CmTBnmzZtH//79SU1NDeux/f3339x7772MGTOG8uXL89///pdHH32UIUOG8NFHHzFnzhycc6xfv/5f+06YMIE2bdrkeOyXX36ZSpUqMWnSJHbs2MERRxzB8ccfz8iRI+nRowe33HILe/bsYevWrXTt2pVhw4YxLdMbsebNmzNp0qSwHkc0KVEXERERyUseI9/R8s4773D11VcD0K9fP9555x3atGnDmDFjGDx4MCVKWCpXtWrVfB132bJlnHXWWaxcuZKdO3fmuQjP/vvvT7Nmzfj222+pVasWJUuWpHnz5mzYsIEhQ4Ywbdo0ihcvTlpaWtgx/PLLL8yaNYsjjjgCsNrwww8/nP32248yZcpw8cUXc+KJJ3LSSSf9a9+VK1dSo0aNHI/99ddfM336dD744AMANmzYwLx582jfvj0XXXQRu3btom/fvqSkpGS7f/HixSlVqhSbNm2iYsWKYT+mSFOiLiIiIhKH1qxZw3fffcfvv/+Oc449e/bgnOOhhx7Cex9WX+7M22RebOfKK6/k2muv5eSTT2bcuHF7S2pyk1H+UqtWLfr37w/AY489Rq1atfjtt99IT0+nTJky/9qvRIkS/5iImhGH957u3bvzzjvv/GufiRMn8u233zJixAiGDRvGd99994/7y5Yty4YNG3KM1XvPU089RY8ePf513/jx4/n8888577zzuP766zn//POzPcaOHTuyfTyxpMmkIiIiInHogw8+4Pzzz2fx4sUsWrSIpUuXUr9+fX788UeOP/54nnvuub2dSdauXQtAxYoV2bRp095j1KpVi9mzZ5Oens5HH3209/YNGzZw4IEHAvDaa6+FFc9pp53G6NGjeffdd+nXr9/e49SuXZtixYrxxhtvsGfPnn/tV69ePaZNm0Z6ejpLly7d2ymmU6dOTJgwgfnz5wOwdetW0tLS2Lx5Mxs2bOCEE07g8ccf/0dJSoYmTZrs3S87PXr04Nlnn2XXrl2A1bRv2bKFxYsXU7NmTS655BIGDhzIlClTAChZsuTebcHeJNWoUYOSJUuG9bOJFiXqIiIiInHonXfe4ZRTTvnHbaeddhpvv/02F198MQcddBAtW7akVatWvP322wAMGjSIXr16cfTRRwPw4IMPctJJJ3HMMcdQu3btvce58847OeOMM+jatWue9ewZKleuTKdOnahVq9beUpnLL7+c1157jU6dOpGWlkb58uX/td8RRxxB/fr1adGiBdddd93e2vIaNWowfPhw+vfvT8uWLenUqdPebjInnXQSLVu25Mgjj+Sxxx771zG7devG1KlT8d5nG+vFF19M06ZNadOmDc2bN+fSSy9l9+7djBs3jpSUFFq3bs2HH37I0KFD9/7cWrZsuXfy6NixYznhhBPC+rlEk8vpARZ17dq18+FOhhAREZHkM3v2bJo0aRJ0GJKDoUOH0rt3b4477riIH/vUU0/lgQceoFGjRhE9bnbPKefcZO99u+y214i6iIiIiCScm2++OeI948Emtfbt2zfiSXpBKFEXERERkYRTq1YtTj755Igft1SpUjlOMI01JeoiIiIiInFIibqIiIiISBxSoi4iIiIiEoe04JGIJLdt2+DOO2HBAti9G/bssetu3eCGG6CYxitERCQ+6T+UiCSvtWvh+OPhf/+D2bNh4UJYsQKWL4ebb4bTT4ctW4KOUkQkR8WLFyclJYXmzZtzxhlnFKrLyQUXXMAHH3wAWJ/xWbNm5bjtuHHj+Omnn/J9jnr16vH333//67zPP//8P277+OOPc+1TnjnWaPDec8wxx7B48WJSUlJISUlh//3358ADD9z7/c6dO8M6Vtaf1bBhw3j11VcjEqcSdRFJTosXQ5cuMHEivPsuzJwJv/0Gkyfb9eOPwyef2DbLlgUdrYhItsqWLcu0adP4/fffKVWqFM8999w/7s9uJdBwvPTSSzRt2jTH+wuaqGenf//+jBgx4h+3jRgxgv79+0fk+AUxevRoWrVqxcEHH8y0adOYNm0agwcP5pprrtn7falSpcI6Vtaf1UUXXcSTTz4ZkTiVqItI8vntNzj8cFi5Er7+Gs4445/3OwdDh8Jnn1lJTPv2MGlSMLGKSEK4+mo46qjIXq6+On8xdO3alfnz5zNu3DiOPvpozj77bFq0aMGePXu4/vrrad++PS1bttw7eu29Z8iQITRt2pQTTzyRv/76a++xjjrqKDIWdvzyyy9p06YNrVq14thjj2XRokU899xzPPbYY6SkpPDDDz+wevVqTjvtNNq3b0/79u2ZMGECAGvWrOH444+ndevWXHrppdmuFHrccccxZ84cVq5cCcDWrVsZM2YMffv25e6776Z9+/Y0b96cQYMGZbt/5lH61NRUjjrqKAC2bNnCRRddRPv27WndujWffPIJADNnzqRDhw6kpKTQsmVL5s2b969jvvXWW/Tp0yfHn/XkyZM58sgjadu2LT169Ngb+5NPPknTpk1p2bIl/fr1y/ZnVa5cOerVq8fEiRNz/4WGQTXqIpJc5s6Frl2hUiX48Udo1iznbXv1gp9/hpNOgmOOsfKYOnViF6uISJh2797NF198Qc+ePQGYOHEiv//+O/Xr1+eFF16gUqVKTJo0iR07dnDEEUdw/PHHM3XqVObOncuMGTNYtWoVTZs25aKLLvrHcVevXs0ll1zC+PHjqV+/PmvXrqVq1aoMHjyYChUqcN111wFw9tlnc80119ClSxeWLFlCjx49mD17NnfddRddunTh9ttv5/PPP+eFF174V+zFixfn1FNP5b333mPo0KGMGjWKo48+mooVKzJkyBBuv/12AM477zw+++wzevfuHdbP5L777uOYY47hlVdeYf369XTo0IHjjjuO5557jqFDh3LOOeewc+fObD91mDBhwr/KcTLs2rWLK6+8kk8++YQaNWrw7rvvcsstt/DKK6/w4IMPsnDhQkqXLs369eupXLnyv35WAO3ateOHH36gQ4cOYT2WnChRF5Hk8p//2Ij5Tz9B3bp5b9+sGXz3HTRtCtdeC++9F/0YRSThPP54MOfdtm0bKSkpgI2oDxw4kJ9++okOHTpQv359AL7++mumT5++t6Z7w4YNzJs3j/Hjx9O/f3+KFy/OAQccwDHHHPOv4//yyy9069Zt77GqVq2abRxjxoz5R037xo0b2bRpE+PHj2fkyJEAnHjiiVSpUiXb/fv378/111/P0KFDGTFixN4FhcaOHctDDz3E1q1bWbt2Lc2aNQs7Uf/6668ZNWoUDz/8MADbt29nyZIlHH744dx3330sW7aMU089lYYNG/5r37Vr11KxYsVsjzt37lx+//13unfvDlh5Ue3atQFo2bIl55xzDn379qVv3745xlazZk3mzJkT1uPIjRJ1EUke33wDn39uk0fDSdIz1K8Pt9wCt91mpTLHHx+9GEVE8iGjRj2r8uXL7/3ae89TTz1Fjx49/rHN6NGjcc7lenzvfZ7bAKSnp/Pzzz9TtmzZf90Xzv5HHHEEK1eu5LfffuOnn35ixIgRbN++ncsvv5zU1FTq1q3LnXfeyfbt2/+1b4kSJUhPTwf4x/3eez788EMaNWr0j+2bNGlCx44d+fzzz+nRowcvvfTSv96kZByzWDadv7z3NGvWjJ9//vlf933++eeMHz+eUaNGcc899zBz5sxsH+/27duz/Vnll2rURSQ57N5tI+INGsCVV+Z//+uvh0MPhSFDYMeOyMcnIhIlPXr04Nlnn2XXrl0ApKWlsWXLFrp168aIESPYs2cPK1euZOzYsf/a9/DDD+f7779n4cKFgI00A1SsWJFNmzbt3e74449n2LBhe7/PePPQrVs33nrrLQC++OIL1q1bl22MzjnOPPNMBgwYwAknnECZMmX2Jt3Vq1dn8+bNOXZ5qVevHpMnTwbgww8//Mfjfuqpp/bWtU+dOhWAP/74gwYNGnDVVVdx8sknM3369H8ds1GjRvzxxx/Znq9Ro0asXr16b6K+a9cuZs6cSXp6OkuXLuXoo4/moYceYv369WzevPlfPyuw30Hz5s2zPX5+KFEXkeTw8svw++/w0ENQunT+9y9dGoYNg3nzIPQxqohIIrj44otp2rQpbdq0oXnz5lx66aXs3r2bU045hYYNG9KiRQsuu+wyjjzyyH/tW6NGDV544QVOPfVUWrVqxVlnnQVA7969+eijj/ZOkHzyySdJTU2lZcuWNG3adG/3mTvuuIPx48fTpk0bvv76aw466KAc4+zfvz+//fYb/fr1A6By5cpccskltGjRgr59+9K+ffts97vjjjsYOnQoXbt2pXjx4ntvv+2229i1axctW7akefPm3HbbbQC8++67NG/enJSUFObMmbO3zCazE088kXHjxmV7vlKlSvHBBx9www030KpVK1JSUvjpp5/Ys2cP5557Li1atKB169Zcc801VK5c+V8/K7Aa+OOOOy7Hn0W4XHazawXatWvnM2ZDi0ic27ABGjaEJk1g3DirUS+o00+H0aNh1iyoVy9SEYpIApo9ezZNmjQJOgyJgpUrV3L++efzzTffRPzYU6dO5dFHH+WNN974133ZPaecc5O99+2yO1ZUR9Sdcz2dc3Odc/Odczdmc79zzj0Zun+6c65NXvs656o6575xzs0LXVcJ3V7NOTfWObfZOTcs0/blnHOfO+fmOOdmOucejOZjFpEAPPAArF4Njz5auCQd4LHHbLXS/PZNExGR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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"Title='Distribution Plot of Predicted Value Using Test Data vs Data Distribution of Test Data'\n",
"DistributionPlot(y_test,yhat_test,\"Actual Values (Test)\",\"Predicted Values (Test)\",Title)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Figur 2: Plot of predicted value using the test data compared to the test data. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Comparing Figure 1 and Figure 2; it is evident the distribution of the test data in Figure 1 is much better at fitting the data. This difference in Figure 2 is apparent where the ranges are from 5000 to 15 000. This is where the distribution shape is exceptionally different. Let's see if polynomial regression also exhibits a drop in the prediction accuracy when analysing the test dataset.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.preprocessing import PolynomialFeatures"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Overfitting</h4>\n",
"<p>Overfitting occurs when the model fits the noise, not the underlying process. Therefore when testing your model using the test-set, your model does not perform as well as it is modelling noise, not the underlying process that generated the relationship. Let's create a degree 5 polynomial model.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use 55 percent of the data for training and the rest for testing:\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [],
"source": [
"x_train, x_test, y_train, y_test = train_test_split(x_data, y_data, test_size=0.45, random_state=0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will perform a degree 5 polynomial transformation on the feature <b>'horse power'</b>. \n"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"PolynomialFeatures(degree=5, include_bias=True, interaction_only=False)"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pr = PolynomialFeatures(degree=5)\n",
"x_train_pr = pr.fit_transform(x_train[['horsepower']])\n",
"x_test_pr = pr.fit_transform(x_test[['horsepower']])\n",
"pr"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's create a linear regression model \"poly\" and train it.\n"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"poly = LinearRegression()\n",
"poly.fit(x_train_pr, y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see the output of our model using the method \"predict.\" then assign the values to \"yhat\".\n"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 6728.65561887, 7307.98782321, 12213.78770965, 18893.24804015,\n",
" 19995.95195136])"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"yhat = poly.predict(x_test_pr)\n",
"yhat[0:5]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's take the first five predicted values and compare it to the actual targets. \n"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Predicted values: [ 6728.65561887 7307.98782321 12213.78770965 18893.24804015]\n",
"True values: [ 6295. 10698. 13860. 13499.]\n"
]
}
],
"source": [
"print(\"Predicted values:\", yhat[0:4])\n",
"print(\"True values:\", y_test[0:4].values)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will use the function \"PollyPlot\" that we defined at the beginning of the lab to display the training data, testing data, and the predicted function.\n"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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hYWSpBdffLFF53311Ve67777dMMNNxzQz2effbb+uN69e6usrKz+fqjjugpCOgAAgJt4vVJenpSeLhnjv83La/f56E3dfvvtuuuuu3T88cerpqam3a8fHx+vxx57TNOmTdOUKVM0cOBAJSYmBj32gw8+qC/BeMMNN+iRRx6pr+xyzz336KKLLtIJJ5ygfv361Z8zffp0vfrqq/ULR0Md11WYtnz00B1lZWXZ/Px8p7sBAAC6keXLl9dP14hk5eXlSkhIkLVWN9xwg0aPHq1bb73V6W51imCvAWPMQmtt0PqWjKQDAACgU/zlL3/RhAkTdNhhh6m0tFTXXnut011yLaq7AAAAoFPceuutETNy3laMpAMAAAAuQ0gHAAAAXIaQDgAAALgMIR0AAABwGUI6AABAN1dSUqIJEyZowoQJGjRokFJTU+vvV1ZWHvT8efPmacGCBUEfe+aZZ9S/f39NnDhRo0eP1plnnhny2Ib+/e9/a9myZWE/l0hBSAcAAHAZX4FPGTMzFHVvlDJmZshX4GvT9VJSUrR48WItXrxY1113nW699db6+z169Djo+c2FdEn6/ve/r0WLFmnVqlW68847dcEFF2j58uXNXpOQ3jxCOgAAgIv4CnzKnpOtotIiWVkVlRYpe052m4N6UwsXLtRJJ52ko446SmeeeaY2b94sSXrkkUc0btw4jR8/XpdccokKCwv1+OOP66GHHqrfzbM5p5xyirKzs5WXlyfJXxv96KOP1hFHHKHvfe97qqio0IIFCzR79mz9/Oc/14QJE7RmzZqgx0UyQjoAAICL5MzNUUVV44BaUVWhnLk57fYzrLW66aab9PLLL2vhwoW6+uqrlZPjv/7999+vRYsW6auvvtLjjz+ujIyMRqPvJ5xwwkGvf+SRR+rrr7+WJF1wwQX6/PPP9eWXX2rs2LF66qmnNHnyZH33u9/V7373Oy1evFgjR44MelwkYzMjAAAAFykuLQ6rvTX279+vJUuW6PTTT5ck1dTUaPDgwZKk8ePHy+v16rzzztN5553Xqutba+u/X7JkiX75y19q165dKi8v15lnnhn0nJYeFykI6QAAAC6SlpimotKioO3txVqrww47TB9//PEBj/33v//V/PnzNXv2bN13331aunRp2NdftGiRxo4dK0m68sor9e9//1tHHHGEnnnmGc2bNy/oOS09LlIw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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"PollyPlot(x_train[['horsepower']], x_test[['horsepower']], y_train, y_test, poly,pr)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Figur 4 A polynomial regression model, red dots represent training data, green dots represent test data, and the blue line represents the model prediction. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see that the estimated function appears to track the data but around 200 horsepower, the function begins to diverge from the data points. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" R^2 of the training data:\n"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.556771690212023"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"poly.score(x_train_pr, y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" R^2 of the test data:\n"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-29.871340302044153"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"poly.score(x_test_pr, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see the R^2 for the training data is 0.5567 while the R^2 on the test data was -29.87. The lower the R^2, the worse the model, a Negative R^2 is a sign of overfitting.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see how the R^2 changes on the test data for different order polynomials and plot the results:\n"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(3, 0.75, 'Maximum R^2 ')"
]
},
"execution_count": 53,
"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": [
"Rsqu_test = []\n",
"\n",
"order = [1, 2, 3, 4]\n",
"for n in order:\n",
" pr = PolynomialFeatures(degree=n)\n",
" \n",
" x_train_pr = pr.fit_transform(x_train[['horsepower']])\n",
" \n",
" x_test_pr = pr.fit_transform(x_test[['horsepower']]) \n",
" \n",
" lr.fit(x_train_pr, y_train)\n",
" \n",
" Rsqu_test.append(lr.score(x_test_pr, y_test))\n",
"\n",
"plt.plot(order, Rsqu_test)\n",
"plt.xlabel('order')\n",
"plt.ylabel('R^2')\n",
"plt.title('R^2 Using Test Data')\n",
"plt.text(3, 0.75, 'Maximum R^2 ') "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see the R^2 gradually increases until an order three polynomial is used. Then the R^2 dramatically decreases at four.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following function will be used in the next section; please run the cell.\n"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [],
"source": [
"def f(order, test_data):\n",
" x_train, x_test, y_train, y_test = train_test_split(x_data, y_data, test_size=test_data, random_state=0)\n",
" pr = PolynomialFeatures(degree=order)\n",
" x_train_pr = pr.fit_transform(x_train[['horsepower']])\n",
" x_test_pr = pr.fit_transform(x_test[['horsepower']])\n",
" poly = LinearRegression()\n",
" poly.fit(x_train_pr,y_train)\n",
" PollyPlot(x_train[['horsepower']], x_test[['horsepower']], y_train,y_test, poly, pr)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following interface allows you to experiment with different polynomial orders and different amounts of data. \n"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "3c3a0f0b0d1144e4b25a0668db23fa26",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(IntSlider(value=3, description='order', max=6), FloatSlider(value=0.45, description='tes…"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<function __main__.f(order, test_data)>"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"interact(f, order=(0, 6, 1), test_data=(0.05, 0.95, 0.05))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #4a):</h1>\n",
"\n",
"<b>We can perform polynomial transformations with more than one feature. Create a \"PolynomialFeatures\" object \"pr1\" of degree two?</b>\n",
"\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"\n",
"pr1 = PolynomialFeatures(degree=2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"pr1=PolynomialFeatures(degree=2)\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #4b): </h1>\n",
"\n",
"<b> \n",
" Transform the training and testing samples for the features 'horsepower', 'curb-weight', 'engine-size' and 'highway-mpg'. Hint: use the method \"fit_transform\" \n",
"?</b>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"\n",
"xtrain1pr = pr1.fit_transform(x_train[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']])\n",
"xtest1pr = pr1.fit_transform(x_test[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"x_train_pr1=pr1.fit_transform(x_train[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']])\n",
"\n",
"x_test_pr1=pr1.fit_transform(x_test[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']])\n",
"\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<!-- The answer is below:\n",
"\n",
"x_train_pr1=pr.fit_transform(x_train[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']])\n",
"x_test_pr1=pr.fit_transform(x_test[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']])\n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #4c): </h1>\n",
"<b> \n",
"How many dimensions does the new feature have? Hint: use the attribute \"shape\"\n",
"</b>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(110, 15)"
]
},
"execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"\n",
"xtrain1pr.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"x_train_pr1.shape #there are now 15 features\n",
"\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #4d): </h1>\n",
"\n",
"<b> \n",
"Create a linear regression model \"poly1\" and train the object using the method \"fit\" using the polynomial features?</b>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"\n",
"poly1 = LinearRegression()\n",
"poly1.fit(xtrain1pr, y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"poly1=LinearRegression().fit(x_train_pr1,y_train)\n",
"\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #4e): </h1>\n",
"<b>Use the method \"predict\" to predict an output on the polynomial features, then use the function \"DistributionPlot\" to display the distribution of the predicted output vs the test data?</b>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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7dq1adu2Lc65oMORGPHes3LlShYvXky7du0ivp/KKkRERKRC2bJlCw0aNFBinOKcczRo0KDUnxAoORYREZEKR4lxxVCW51nJsYiIiIhIiJJjERERkQC8//77OOfIzMwscd+nnnqKTZs2lflc//nPf7j66qt32zZ//nxatmxJXl7ebtszMjL46aefCj3O/Pnz6dGjx27bpk6dSkZGBhkZGdSvX5927dqRkZHBEUccEXF8H3zwATNmzIh4/1hSciwiIiISgBEjRjBw4EBGjhxZ4r7lTY4L07ZtW1q1asU333yzc1tmZibr169nv/32i/g4PXv2ZNKkSUyaNIkTTjiBRx99lEmTJjFmzJiIj6HkWERERKQC27BhA9999x0vvfTSbslxbm4uN910Ez179qRXr148/fTT/POf/2TJkiUceuihHHrooQDUqlVr533eeecdLrjgAgA+/vhj9t9/f/bZZx+OOOIIli5dWmwcQ4cO3e38I0eOZOjQocyfP5+DDjqIPn360KdPH77//vtS/4yjR4+mf//+9OnTh9NPP50NGzYAcOutt9KtWzd69erFTTfdxPfff89HH33EzTffTEZGBnPnzi31uaJJrdxERESk4rruOpg0KbrHzMiAp54qdpcPPviAo48+ms6dO1O/fn1+/fVX+vTpw7Bhw5g3bx6//fYbaWlprFq1ivr16/PEE08wbtw4GjZsWOxxBw4cyI8//ohzjhdffJFHHnmExx9/vMj9zzjjDPbZZx+efvpp0tLSeOutt/jvf/9L48aN+eKLL6hWrRpZWVkMHTqUiRMnRvwQrFixgr/97W+MGTOGmjVr8ve//50nnniCq6++mvfff5/MzEycc6xZs4Z69epxwgkncNxxx3HaaadFfI5YUXIsIiIiEmcjRozguuuuA+DMM89kxIgR9OnThzFjxnD55ZeTlmYpWv369Ut13MWLF/OnP/2J7Oxstm3bVmJ/36ZNm9K9e3fGjh1LkyZNSE9Pp0ePHqxdu5arr76aSZMmUblyZWbPnl2qOH788UdmzJjBgAEDANi2bRv9+/enTp06VKtWjYsvvphjjz2W4447rlTHjQclxyIiIlJxlTDCGwsrV67kyy+/ZNq0aTjnyM3NxTnHI488gvc+ovZj+ffJ38f3L3/5CzfccAMnnHAC48eP55577inxWOHSiiZNmjB06FAAnnzySZo0acLkyZPJy8ujWrVqpfoZvfcceeSRjBgxYo/bfvrpJ8aOHcvIkSN55pln+PLLL0t17FhTzbGIiIhIHL3zzjucd955LFiwgPnz57No0SLatWvHt99+y1FHHcXzzz/Pjh07AFi1ahUAtWvXZv369TuP0aRJE2bOnEleXh7vv//+zu1r166lRYsWALzyyisRxXPqqafy2Wef8dZbb3HmmWfuPE6zZs2oVKkSr732Grm5uaX6GQ844AC+++475syZA8CmTZuYPXs2GzZsYO3atQwZMoSnnnqKSaGSloI/X5CUHIuIiIjE0YgRIzj55JN323bqqafy5ptvcvHFF9O6dWt69epF7969efPNNwG49NJLOeaYY3ZOyHv44Yc57rjjOOyww2jWrNnO49xzzz2cfvrpHHTQQSXWJ4fVq1ePAw44gCZNmuwsw7jyyit55ZVXOOCAA5g9ezY1a9Ys1c/YqFEj/vOf/zB06FB69erFAQccsLMTxnHHHUevXr045JBDePLJJwErLXn00UfZZ599Ap+Q57z3gQaQX9++fX1pir1FRERESmvmzJl07do16DAkTgp7vp1zv3jv+xa2v0aORURERERClByLiIiIiIQoORYRERERCVFyLCIiIiISouRYRERERCREybGIiIiISIiSY5F8fvgBLr8cFi8OOhIREUlllStXJiMjgx49enD66aezadOmMh/rggsu4J133gHg4osvZsaMGUXuO378eL7//vtSn6Nt27asWLFij/O+8MILu2374IMPGDJkSESxhl111VVkZGTQrVs3qlevTkZGBhkZGXvsV5Q1a9bw7LPPRviTlEzJsQiwaBGcdRYceCC88AKccAJs3Bh0VCIikqqqV6/OpEmTmDZtGlWqVOH555/f7fbSrkgX9uKLL9KtW7ciby9rclyY8LLT+Y0cOXLnEtSR+te//sWkSZP47LPP6NChA5MmTWLSpEmcdtppEd1fybFIFG3aBPfcA126wPvvwx13wFtvwaRJcMEFkJcXcIAiIpLyDjroIObMmcP48eM59NBDOeuss+jZsye5ubncfPPN9OvXj169eu0cpfXec/XVV9OtWzeOPfZYli1btvNYgwYNIryg2qhRo+jTpw+9e/fm8MMPZ/78+Tz//PM8+eSTZGRk8M0337B8+XJOPfVU+vXrR79+/fjuu+8AWLlyJUcddRT77LMPl112GYUtGnfEEUeQmZlJdnY2YEtEjxkzhpNOOon77ruPfv360aNHDy699NJC71+cjRs3cuGFF9KvXz/22WcfPvzwQwCmT5/OfvvtR0ZGBr169SIrK4tbb72VuXPnkpGRwc0331z6J6CAtHIfQSSJDR0KH30EZ5wBjzwCbdrY9oUL4eab4f774e67g41RRERi57rrbEAkmjIy4KmnItt3x44dfP755xx99NEA/PTTT0ybNo127doxbNgw6taty88//8zWrVsZMGAARx11FL/99huzZs1i6tSpLF26lG7dunHhhRfudtzly5dzySWX8PXXX9OuXTtWrVpF/fr1ufzyy6lVqxY33XQTAGeddRbXX389AwcOZOHChQwePJiZM2dy7733MnDgQO666y4+/fRThg0btkfslStX5pRTTuHtt9/m2muv5aOPPuLQQw+ldu3aXH311dx1110AnHvuuXzyySccf/zxET+GDzzwAIcddhjDhw9nzZo17LfffhxxxBE8//zzXHvttZx99tls27aN3NxcHn74YaZNm8akKD2RSo6lwpo3Dz7+GG6/Hf72t91vu/FGmD7dRpW7dYPTTw8kRBERSVGbN28mIyMDsJHjiy66iO+//5799tuPdu3aATB69GimTJmys/Z27dq1ZGVl8fXXXzN06FAqV65M8+bNOeyww/Y4/o8//sjBBx+881j169cvNI4xY8bsVqO8bt061q9fz9dff817770HwLHHHstee+1V6P2HDh3KzTffzLXXXsvIkSM577zzABg3bhyPPPIImzZtYtWqVXTv3r1UyfHo0aP56KOPeOyxxwDYsmULCxcupH///jzwwAMsXryYU045hU6dOkV8zEgpOZYK66WXwDm47LI9b3MOnn8eZs+G88+H9u1h333jH6OIiMRWpCO80RauOS6oZs2aO7/23vP0008zePDg3fb57LPPcM4Ve3zvfYn7AOTl5fHDDz9QvXr1PW6L5P4DBgwgOzubyZMn8/333zNy5Ei2bNnClVdeycSJE2nVqhX33HMPW7ZsKfFYBeN/99136dKly27bu3btyv7778+nn37K4MGDefHFF2nfvn2pjl0S1RxLhbR9OwwfDkOGQKtWhe9TtarVITdsaB0sRERE4mnw4ME899xzbN++HYDZs2ezceNGDj74YEaOHElubi7Z2dmMGzduj/v279+fr776innz5gGwatUqAGrXrs369et37nfUUUfxzDPP7Pw+nLAffPDBvPHGGwB8/vnnrF69utAYnXOcccYZnH/++QwZMoRq1artTIQbNmzIhg0bIu46UfBnf/rpp3fWKv/2228A/P7777Rv355rrrmGE044gSlTpuzxM5WXkmOpkD79FLKz4dJLi9+vcWO44QaYOBGK6YwjIiISdRdffDHdunWjT58+9OjRg8suu4wdO3Zw8skn06lTJ3r27MkVV1zBIYccssd9GzVqxLBhwzjllFPo3bs3f/rTnwA4/vjjef/993dOyPvnP//JxIkT6dWrF926ddvZNePuu+/m66+/pk+fPowePZrWrVsXGefQoUOZPHkyZ555JgD16tXjkksuoWfPnpx00kn069ev1D/7nXfeyfbt2+nVqxc9evTgzjvvBOCtt96iR48eZGRkkJmZyXnnnUeDBg0YMGAAPXr0iMqEPFfa2YOx1LdvXx+eYSkSS0OGwJQpMH8+pJVQXLR0KbRoYRP0HnooLuGJiEgMzZw5k65duwYdhsRJYc+3c+4X733fwvbXyLFUOAsWwKhRcOGFJSfGAE2awODB8Prrau0mIiKS6pQcS4Xz0kt2fdFFkd/n3HNt1bzx42MSkoiIiCQIJcdSoezYYcnx0Ufv6mkciRNPhDp14LXXYhebiIjETyKVlUrslOV5VnIsFcpnn8GSJSVPxCuoenU47TR45x1bVU9ERJJXtWrVWLlypRLkFOe9Z+XKlVSrVq1U91OfY6lQhg2DZs3g2GNLf9/zzrP2bx98AGedFfXQREQkTlq2bMnixYtZvnx50KFIjFWrVo2WLVuW6j5KjqXC+OMP+PxzuO02SE8v/f0POghat7bSCiXHIiLJKz09fefKcSIFqaxCKozx463bxKmnlu3+lSrZxLzRo61HsoiIiKQeJcdSYfzwA9SsCT17lv0Y555rCfaIEdGLS0RERBKHkmOpMH74AfbbL7LexkXp0gX69YNXX41eXCIiIpI4lBxLhbBxI0yeDP37l/9Y551nx9Jy0iIiIqlHybFUCBMnQm5udJLj44+36zFjyn8sERERSSxKjqVC+OEHuz7ggPIfq00baNcOxo0r/7FEREQksSg5lgrhhx+gUydo2DA6xxs0CL76yibniYiISOpQciwpz3tLjqNRUhF26KGwejVMnRq9Y4qI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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"yhat_test1= poly1.predict(x_test_pr1)\n",
"Title = 'Distribution Plot of Predicted Val vs Dist Data of Test'\n",
"DistributionPlot(y_test, yhat_test1, 'Actual Val Test', 'Predicted Val Test', Title)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"yhat_test1=poly1.predict(x_test_pr1)\n",
"\n",
"Title='Distribution Plot of Predicted Value Using Test Data vs Data Distribution of Test Data'\n",
"\n",
"DistributionPlot(y_test, yhat_test1, \"Actual Values (Test)\", \"Predicted Values (Test)\", Title)\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #4f): </h1>\n",
"\n",
"<b>Using the distribution plot above, explain in words about the two regions were the predicted prices are less accurate than the actual prices</b>\n",
"\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"\n",
"# Between 8k-15k and 30k-50k ranges, the predicted model could use some improvement."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"#The predicted value is higher than actual value for cars where the price $10,000 range, conversely the predicted price is lower than the price cost in the $30,000 to $40,000 range. As such the model is not as accurate in these ranges.\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"ref3\">Part 3: Ridge regression</h2> \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" In this section, we will review Ridge Regression we will see how the parameter Alfa changes the model. Just a note here our test data will be used as validation data.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's perform a degree two polynomial transformation on our data. \n"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [],
"source": [
"pr=PolynomialFeatures(degree=2)\n",
"x_train_pr=pr.fit_transform(x_train[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg','normalized-losses','symboling']])\n",
"x_test_pr=pr.fit_transform(x_test[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg','normalized-losses','symboling']])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's import <b>Ridge</b> from the module <b>linear models</b>.\n"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.linear_model import Ridge"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's create a Ridge regression object, setting the regularization parameter to 0.1 \n"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [],
"source": [
"RigeModel=Ridge(alpha=0.1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Like regular regression, you can fit the model using the method <b>fit</b>.\n"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/sklearn/linear_model/ridge.py:125: LinAlgWarning: Ill-conditioned matrix (rcond=1.02972e-16): result may not be accurate.\n",
" overwrite_a=True).T\n"
]
},
{
"data": {
"text/plain": [
"Ridge(alpha=0.1, copy_X=True, fit_intercept=True, max_iter=None,\n",
" normalize=False, random_state=None, solver='auto', tol=0.001)"
]
},
"execution_count": 82,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"RigeModel.fit(x_train_pr, y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Similarly, you can obtain a prediction: \n"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [],
"source": [
"yhat = RigeModel.predict(x_test_pr)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's compare the first five predicted samples to our test set \n"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"predicted: [ 6567.83081933 9597.97151399 20836.22326843 19347.69543463]\n",
"test set : [ 6295. 10698. 13860. 13499.]\n"
]
}
],
"source": [
"print('predicted:', yhat[0:4])\n",
"print('test set :', y_test[0:4].values)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We select the value of Alpha that minimizes the test error, for example, we can use a for loop. \n"
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {},
"outputs": [],
"source": [
"Rsqu_test = []\n",
"Rsqu_train = []\n",
"dummy1 = []\n",
"Alpha = 10 * np.array(range(0,1000))\n",
"for alpha in Alpha:\n",
" RigeModel = Ridge(alpha=alpha) \n",
" RigeModel.fit(x_train_pr, y_train)\n",
" Rsqu_test.append(RigeModel.score(x_test_pr, y_test))\n",
" Rsqu_train.append(RigeModel.score(x_train_pr, y_train))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can plot out the value of R^2 for different Alphas \n"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f8fc73feb00>"
]
},
"execution_count": 87,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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1NDQoLlz5+qMM87o8zOuv/56XXvttZozZ47mzp2r+fPnS5LOOussnX322Zo5c6ZOPfVULViwIHfOsmXLdNFFF+nEE0/U2rVrc+Xz5s3TNddck/uMz372szr77LN7nMLsyfe+9z1dddVV+t73vqdPfvKTufLeftOECRO0YMECzZo1SxdddJG+9KUvFfXbj5b1NVR4rGloaPD+nqFyNC6/4xeqqUjrn/7k3MS+AwAwur300kuaMWNGqZuBIdZTv5rZendvKKzLtGYReAgtAABIGuGsCLz4HAAAJI1wVoROF885AwAAiSKcFcHFi88BAECyCGdF6OzkmjMAAJAsHqVRhNNPGKtJYyv6rwgAADBIjJwV4bt/OFe3XMztzQCAkWvPnj2Hvfi8GBdffLH27NnTZ52vfe1reuKJJwb1+YWmTp2q2bNna/bs2TrzzDP1la98Ra2trX2eczS/b7gQzgAAQE5f4aWjo6PPcx955BHV1dX1Wecb3/iGPvaxjw22eUdYu3atXnjhBT377LPatm2bli1b1md9whkAADim3HzzzXr11Vc1d+5c3XTTTXryySe1aNEiXXXVVZo9e7Yk6eMf/7jOOecczZw5U3fddVfu3KlTp2r37t3avn27ZsyYoeuuu04zZ87UhRdemHvn5TXXXKOVK1fm6t96662aN2+eZs+erZdfflmStGvXLl1wwQWaN2+e/vRP/1Tve9/7tHv37j7bPWbMGN1555166KGH9O677+rAgQNavHhx7rMffvjhHn9fb/VKiWvOAAAI1Re/KG3YMLSfOXeudNttvR7+5je/qU2bNmlD/L1PPvmknn32WW3atEnTpk2TJN17770aP368mpub9YEPfECf/OQnNWHChMM+Z8uWLbrvvvt0991368orr9QDDzygq6+++ojvO+644/Tcc8/pjjvu0Le+9S3dc889+vrXv66PfvSjuuWWW7RmzZrDAmBfamtrNW3aNG3ZskXnnHOOVq1apdraWu3evVvnnXeeLr300iN+Xzab7bFeKW8AJJwBAIA+zZ8/PxfMJOn73/++Vq1aJUl68803tWXLliPC2bRp0zR37lxJ0jnnnNPrezAvv/zyXJ0HH3xQkvT000/nPn/JkiWqr68fcFu7Xkvp7vryl7+sp556SmVlZXrrrbf09ttv91i/p3onnHDCgL9zqBHOAAAIVR8jXMOp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\n",
"text/plain": [
"<Figure size 720x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"width = 10\n",
"height = 8\n",
"plt.figure(figsize=(width, height))\n",
"\n",
"plt.plot(Alpha,Rsqu_test, label='validation data ')\n",
"plt.plot(Alpha,Rsqu_train, 'r', label='training Data ')\n",
"plt.xlabel('alpha')\n",
"plt.ylabel('R^2')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Figure 6**:The blue line represents the R^2 of the validation data, and the red line represents the R^2 of the training data. The x-axis represents the different values of Alpha. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here the model is built and tested on the same data. So the training and test data are the same.\n",
"\n",
"The red line in figure 6 represents the R^2 of the training data. \n",
"As Alpha increases the R^2 decreases. \n",
"Therefore as Alpha increases the model performs worse on the training data. \n",
"\n",
"The blue line represents the R^2 on the validation data. \n",
"As the value for Alpha increases the R^2 increases and converges at a point \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #5): </h1>\n",
"\n",
"Perform Ridge regression and calculate the R^2 using the polynomial features, use the training data to train the model and test data to test the model. The parameter alpha should be set to 10.\n",
"\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.5418576440206702"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"\n",
"RidgeModel = Ridge(alpha=10)\n",
"RidgeModel.fit(x_train_pr, y_train)\n",
"RidgeModel.score(x_test_pr, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"RigeModel = Ridge(alpha=10) \n",
"RigeModel.fit(x_train_pr, y_train)\n",
"RigeModel.score(x_test_pr, y_test)\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"ref4\">Part 4: Grid Search</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The term Alfa is a hyperparameter, sklearn has the class <b>GridSearchCV</b> to make the process of finding the best hyperparameter simpler.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's import <b>GridSearchCV</b> from the module <b>model_selection</b>.\n"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import GridSearchCV"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We create a dictionary of parameter values:\n"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'alpha': [0.001, 0.1, 1, 10, 100, 1000, 10000, 100000, 100000]}]"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"parameters1= [{'alpha': [0.001,0.1,1, 10, 100, 1000, 10000, 100000, 100000]}]\n",
"parameters1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create a ridge regions object:\n"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Ridge(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=None,\n",
" normalize=False, random_state=None, solver='auto', tol=0.001)"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"RR=Ridge()\n",
"RR"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create a ridge grid search object \n"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [],
"source": [
"Grid1 = GridSearchCV(RR, parameters1,cv=4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fit the model \n"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/sklearn/model_selection/_search.py:841: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
" DeprecationWarning)\n"
]
},
{
"data": {
"text/plain": [
"GridSearchCV(cv=4, error_score='raise-deprecating',\n",
" estimator=Ridge(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=None,\n",
" normalize=False, random_state=None, solver='auto', tol=0.001),\n",
" fit_params=None, iid='warn', n_jobs=None,\n",
" param_grid=[{'alpha': [0.001, 0.1, 1, 10, 100, 1000, 10000, 100000, 100000]}],\n",
" pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
" scoring=None, verbose=0)"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Grid1.fit(x_data[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']], y_data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The object finds the best parameter values on the validation data. We can obtain the estimator with the best parameters and assign it to the variable BestRR as follows:\n"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Ridge(alpha=10000, copy_X=True, fit_intercept=True, max_iter=None,\n",
" normalize=False, random_state=None, solver='auto', tol=0.001)"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"BestRR=Grid1.best_estimator_\n",
"BestRR"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We now test our model on the test data \n"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.8411649831036152"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"BestRR.score(x_test[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']], y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #6): </h1>\n",
"Perform a grid search for the alpha parameter and the normalization parameter, then find the best values of the parameters\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"\n",
"parameters2= [{'alpha': [0.001,0.1,1, 10, 100, 1000,10000,100000,100000],'normalize':[True,False]} ]\n",
"Grid2 = GridSearchCV(Ridge(), parameters2,cv=4)\n",
"Grid2.fit(x_data[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']],y_data)\n",
"Grid2.best_estimator_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"parameters2= [{'alpha': [0.001,0.1,1, 10, 100, 1000,10000,100000,100000],'normalize':[True,False]} ]\n",
"Grid2 = GridSearchCV(Ridge(), parameters2,cv=4)\n",
"Grid2.fit(x_data[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']],y_data)\n",
"Grid2.best_estimator_\n",
"\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Thank you for completing this lab!\n",
"\n",
"## Author\n",
"\n",
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>\n",
"\n",
"### Other Contributors\n",
"\n",
"<a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>\n",
"\n",
"Bahare Talayian\n",
"\n",
"Eric Xiao\n",
"\n",
"Steven Dong\n",
"\n",
"Parizad\n",
"\n",
"Hima Vasudevan\n",
"\n",
"<a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a>\n",
"\n",
"<a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"## Change Log\n",
"\n",
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n",
"| ----------------- | ------- | ---------- | ----------------------------------- |\n",
"| 2020-10-30 | 2.3 | Lakshmi | Changed URL of csv |\n",
"| 2020-10-05 | 2.2 | Lakshmi | Removed unused library imports |\n",
"| 2020-09-14 | 2.1 | Lakshmi | Made changes in OverFitting section |\n",
"| 2020-08-27 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n",
"\n",
"<hr>\n",
"\n",
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n"
]
}
],
"metadata": {
"anaconda-cloud": {},
"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.11"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment