Skip to content

Instantly share code, notes, and snippets.

@mm-uddin
Created October 18, 2020 18:54
Show Gist options
  • Save mm-uddin/a62db0faa1c089b697260cf6483d1330 to your computer and use it in GitHub Desktop.
Save mm-uddin/a62db0faa1c089b697260cf6483d1330 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://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/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": 11,
"metadata": {},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \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)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\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"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's import <b>LinearRegression</b> from the module <b>linear_model</b>.\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"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": 13,
"metadata": {},
"outputs": [],
"source": [
"lre=LinearRegression()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we fit the model using the feature horsepower \n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 14,
"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": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.36358755750788263"
]
},
"execution_count": 15,
"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": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.6619724197515104"
]
},
"execution_count": 16,
"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": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7340722810055448"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"x_train1, x_test1, y_train1, y_test1 = train_test_split(x_data, y_data, test_size=0.1, random_state=0)\n",
"lr1 = LinearRegression()\n",
"lr1.fit(x_train1[['horsepower']], y_train1)\n",
"lr1.score(x_test1[['horsepower']], y_test1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\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"
]
},
{
"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": 22,
"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": 23,
"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": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.7746232 , 0.51716687, 0.74785353, 0.04839605])"
]
},
"execution_count": 24,
"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": 25,
"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": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([20254142.84026702, 43745493.2650517 , 12539630.34014931,\n",
" 17561927.72247591])"
]
},
"execution_count": 26,
"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": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.443196127755029"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"Rcross1 = cross_val_score(lr1, x_data[['horsepower']], y_data, cv=2)\n",
"Rcross1\n",
"Rcross1.mean()\n",
"Rcross1[1]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"Rc=cross_val_score(lre,x_data[['horsepower']], y_data,cv=2)\n",
"Rc.mean()\n",
"\n",
"-->\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": 31,
"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": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([14141.63807508, 14141.63807508, 20814.29423473, 12745.03562306,\n",
" 14762.35027598])"
]
},
"execution_count": 32,
"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": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 33,
"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": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([12467.61075244, 34739.93096505, 7447.00471332, 10611.58446885,\n",
" 24051.10584433])"
]
},
"execution_count": 34,
"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": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 5303.07151822, 10171.81756487, 19443.60652378, 22426.68778351,\n",
" 21294.42778767])"
]
},
"execution_count": 35,
"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": 36,
"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": 37,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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iRM56aST6NKlCyNGjGDv3r0A3HnnnbRt25YOHTpw++23H7XNpUuXUq5cOWrVqpVvvKtWraJNmzZcf/31dOnShbVr13LdddfRrVs3TjjhBB544IGc6/br14+ZM2fm3F/33HMPHTt2pGfPnjn3S4UKFWjWrFmBI+XRpORYRERESq2PP/6YQYMGcdxxx1GjRg1mz54NwEsvvURqaipz5sxh/vz5XHjhhdx00000aNCAKVOmMGXKlEK3e8opp/DLL78wZ84cRo0axWOPPVbo9UeOHMnHH39MZmYmAO+99x6jRo2iTp06TJo0idmzZ/Pee+/ljNaGYuvWrfz9739n8uTJzJ49m27duvHkk0+yfft2JkyYwB9//MH8+fO59957j1r3xx9/pEuXLoVuf8mSJYwZM4Y5c+bQtGlTHnnkEWbOnMn8+fP5/vvvmT9//lHr7Nu3j549ezJv3jz69OnD//73v5zLunXrdsTouV80CYiIiIj476mnfNnt2LFjuSUwwjxq1CjGjh1Lly5dmDx5Mtdeey1lyrhUqUaNGmFtNy0tjQsuuIANGzZw6NChY05CUa9ePU444QS+/fZb6tatS1JSEu3atWPXrl3ccMMNzJ07l8TERJYuXRpyDL/88gsLFy6kV69eABw6dIiTTjqJKlWqkJyczJVXXsngwYMZMmTIUetu2LCB2rVrF7r9pk2b0rNnz5z/33//fV566SUyMzPZsGEDCxcupEOHDkesU7Zs2Zz9de3alUmTJuVcVqdOnZDqvr2m5FhERERKpW3btvHdd9+xYMECjDFkZWVhjOGxxx7DWhtSj9zc18k92cSNN97IrbfeyjnnnMPUqVN58MEHj7mtYGlF3bp1GT16NAD//ve/qVu3LvPmzSM7O5vk5OSj1itTpswRNb/BOKy1nHHGGYwdO/aodX799Ve+/fZbxo0bx3PPPcd33313xOXly5dn165dhcZbsWLFnL9TU1N5/PHH+e2336hevTqXXnppvpNvJCUl5dxniYmJOSPlwbjLly9f6D6jQWUVIiIiUiqNHz+eMWPGsHr1alatWsXatWtJSUlh+vTpDBgwgBdeeCEnedu+fTsAlStXZs+ePTnbqFu3LosWLSI7O5sJEybknL9r1y4aNmwIwBtvvBFSPOeffz5ffvllTklFcDv169cnISGBt956i6ysrKPWa9asGXPnziU7O5u1a9fm1O327NmTH3/8keXLlwOwf/9+li5dyt69e9m1axdnnXUWTz31FHPnzj1qm23atMlZLxS7d++mYsWKVK1alU2bNvHVV1+FvG7Q0qVLPe/AEQolxyIiIlIqjR07lnPPPfeI884//3zeffddrrzySpo0aUKHDh3o2LEj7777LgBXX301Z555Zs4BeY8++ihDhgzh1FNPpX79+jnbefDBBxkxYgS9e/cu8KC2vKpVq0bPnj2pW7duThnG9ddfzxtvvEHPnj1ZunTpEaO1Qb169SIlJYX27dtz++2359QK165dm9dff53Ro0fToUMHevbsmdMFY8iQIXTo0IG+ffvy73//+6ht9unThzlz5mCtDSn2jh070rlzZ0444QQuv/zynFKOcPz444+cfvrpYa8XaSbUGx0N3bp1s8GjGUVERKRkW7RoEW3atPE7DCnAzTffzNlnnx2VhHXOnDk8+eSTvPXWWxHfdn7PM2PMLGttt/yur5FjERERETnK3XffHfGezgXZunUr/+///b+o7OtYdECeiIiIiBylbt26nHPOOVHZ1xlnnBGV/YRCI8ciIiIiIgFKjkVEREREApQci4iIiIgEKDkW8VtWFrz7Ltx+Oxw65Hc0IiIipZqSYxG/BJPiE06ACy+EJ56AEGZQEhGRyElMTKRTp060a9eOESNGFKs7w6WXXsr48eMBuPLKK1m4cGGB1506dSo//fRT2Pto1qwZW7duPWq/L7744hHnffzxx5x11lkhxeoFay2nnnoqq1evplOnTnTq1Il69erRsGHDnP8PhTAgNHPmTG666aZCr3Po0CH69OlzxGx7xaHkWCTa8ibFSUnwwQdw+eXw6KPwww9+RygiUmqUL1+euXPnsmDBAsqWLcsLL7xwxOX5zUgXipdffpm2bdsWeHlRk+P8BKedzm3cuHE5U1D74csvv6Rjx440bdqUuXPnMnfuXK699lr+8pe/5PxftmxZgEKT2m7duvHMM88Uuq+yZcty2mmn8d5770UkdiXHItG0Ywd06nRkUjxvHgwfDk8/Dc2bw8UXwzHmsxcRKWluuQX69Yvscsst4cXQu3dvli9fztSpU+nfvz9/+tOfaN++PVlZWfz1r3+le/fudOjQIWeU1lrLDTfcQNu2bRk8eDCbN2/O2Va/fv0ITmz29ddf06VLFzp27Mhpp53GqlWreOGF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7u+773anMZEg79vnes99+qlLijdtcuefcIIbbT/lFPcTWUpKaPdR1arQtGn+lx086KYTnTHDPQbjx8Nrr0GdOu49dPRoOOkkzx8LETnM2Bg6XLhbt2525syZfochRdS3r8uJF5x0lRt92rIlagf5iEgE7NoFV1zheq4NHuwy1yiUWWRluQP13nkHHnnkcKIcVcGE+IMP3Kwl+/e72uAzznCjuWecEZ2yh/R0F8fYsfD55+7/pk3h2mvdUq2a9zGIlALGmFnW2m75XaavohIRGze6XxuHn5sFEya4kgolxiLxpWpVlxw+95wbMe3UCX780fPdJia6PPyii+Cee9yBelEZtzl0CD75BC64wI3UjhwJ33/vMvXvvnNvbO++C5deGr164ORkV6bxwQeweTO89ZabYfSuu6BxY9enes2a6MQiUkopOZaI+Ogj92E2orG6VIjENWPgz392P/GXLQu9e7sJQ4KlBR5JTITXX3cl0Pfd56oXMjM92JG1LuG/7jpXIzxsGEyZcjghXr8e/vtfV/PrdzeJypXdN4bJk2HOHBg6FJ55Bpo3d+fPnetvfCIllJJjiYixY6F1a2j76+vuDV1dKkTiW9euMHu2m1XvtdegVSv4178OH4zmgcREt6s774QXX3Rt0nfvjtDGFy1yWXeLFq5m+I033ARFX34ZWwlxQTp1grffhpUr4aab3Ih3585uIGLpUr+jEylRlBxLsc2YAdOnw9VXZGEmfKSSCpGSompVePJJ+OMP6NfPZa1t27qaZI/qHhIS3PGAL73kKjt694a1a4u4sTVr4LHHXGLZti384x+uROHNN91I+DvvwJlnxldXiCZN3GOyZo1L9r/80t22a65xLYNEpNiUHEux/d//uWNErmo1FbZvV0mFSElz3HGuc8PEia7t2/DhrjfvG2+4SS48cNVV8NVXsGqVawE8Z06IK65ZA88+67puNG3qZhhJTnYt09atc7fh4ovdL1zxrHp1N9PhihWuROS111zif+edsGOH39GJxDUlx1Isy5a5euPrroPKn491HzgDBvgdloh44YwzXJb64ouwZ487UK1BA1d6sWiRJ7v78UdX6dC7t5uj5CjWupgefNCVGTRt6soOtm1zR/YtXw6//OLOq1cv4jH6rm5d92Vg8WLXku+xx1yS/NxzkJHhd3QicUmt3KRYrr3WDVisXp5BvU71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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": 38,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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mVbF3rtw+mNqTr7H3rc7sK4Ow7z3qaVYp/rdORR6/PTQ6784/ZOGnmMAduzYiXVTGuBtMW6e5OJYfCZyPEZiH1Q+xN4XK4Cp2Ifq1K8b5pzb7Zw71TqLPc65g8AS7Bh6pff+9dDrOd37ZBLWCecn51zq9ysvxzzJB86fdg1X5DkrzP/Me9/COVcWWOW9P+teks65N0PP++HZPpeISKQ5574HXvLev3HaB4uIyFmL+hnl0ArTtaFTQaktsXLV1SB0ard46N+VgUux2QARkajnnOvqnDs3dMr6BqAV8FXQcYmIFBZRlyg7597DTkM0ds5tdM7djK3Svtk5twg7DTH4VM+RTlNgbujrJgN/C53qEBEpCBpjrQv3Yqeuh3nvtwQbkohI4RGVpRciIiIiIkGLuhllEREREZFocDY7g+W7ypUr+7p16wYdhoiIiIjEsHnz5u3w3lc53eOiKlGuW7cuc+fODToMEREREYlhzrnT7QoLqPRCRERERCRbSpRFRERERLKhRFlEREREJBtRVaMsIiIihdvx48fZuHEjR44cCToUiQElSpSgZs2aFC1a9Iy+XomyiIiIRI2NGzdSpkwZ6tati3Mu6HCkAPPes3PnTjZu3Ei9evXO6DlUeiEiIiJR48iRI1SqVElJspw15xyVKlU6q7MTSpRFREQkqihJlvxytu8lJcoiIiIiItlQoiwiIiIikg0lyiIiIiKZfPzxxzjnWLly5Wkf++yzz3Lo0KEzHuvNN9/k7rvvznDbunXrqFmzJikpKRlub9OmDbNnz872edatW0eLFi3OOI7cGDt2LH/605944oknaNOmDW3atCEuLi7t388991yun+svf/lL2r+PHTtGly5dOHHiRDjCPmNKlEVEREQyee+99+jUqROjR48+7WPPNlHOTt26dalVqxbffvtt2m0rV65k//79XHjhhfk6Vl48+eST3HnnnTz00EMsXLiQhQsXUrJkybR/33vvvbl+rvSJcrFixUhISOD9998PR9hnTO3hREREJDrdfz8sXJi/z9mmDTz77CkfcuDAAaZPn87kyZMZNGgQjz76KADJycn85je/4euvv8Y5x6233or3ns2bN9O9e3cqV67M5MmTKV26NAcOHADgww8/5LPPPuPNN9/k008/5fHHH+fYsWNUqlSJUaNGUa1atRzjGDFiBKNHj6Zr164AjB49mhEjRrBu3Tquu+46Dh48CMALL7xAx44dM3ztm2++ydy5c3nhhRcAGDBgAL/61a/o1q0b48eP55FHHuHo0aPUr1+fN954g9KlS/Pb3/6WcePGER8fT+/evXnqqacyPGdiYiLFixencuXK2cabnJzMb3/7W6ZMmcLRo0e56667uP3229myZQtXXXUV+/bt48SJE7z44ot8/vnnHD58mDZt2tC8eXNGjRrFkCFD+N3vfsc111xzyp9PJClRFhEREUln7Nix9O3bl0aNGlGxYkXmz59Pu3btePnll1m7di0LFiwgPj6eXbt2UbFiRZ5++mkmT56cYwKZqlOnTsyaNQvnHK+++ipPPvkk//znP3N8/PDhw2nbti3PP/888fHxvP/++3zwwQdUrVqVCRMmUKJECZKSkhgxYgRz587N1WvbsWMHjz/+ON988w3nnHMOf//733n66ae5++67+fjjj1m5ciXOOfbs2ZPla6dPn067du1yfO7XXnuNcuXKMWfOHI4ePcqll15K7969+eijj+jTpw8PPfQQycnJHDp0iM6dO/PCCy+wMN0HoRYtWjBnzpxcvY5IUaIsIiIi0ek0M7/h8t5773H//fcDcPXVV/Pee+/Rrl07vvnmG+644w7i4y19qlixYp6ed+PGjVx11VVs2bKFY8eOnXYTjHPPPZfmzZszceJEqlWrRtGiRWnRogV79+7l7rvvZuHChcTFxZGYmJjrGGbNmsXy5cu59NJLAasNvuSSSyhbtiwlSpTglltuoX///gwYMCDL127ZsoUqVark+Nzjx49n8eLFfPjhhwDs3buXpKQkOnTowE033cTx48cZMmQIbdq0yfbr4+LiKFasGPv376dMmTK5fk3hpERZREREJGTnzp1MmjSJpUuX4pwjOTkZ5xxPPvkk3vtc9eVN/5j0m13cc889/OIXv2DQoEFMmTIlraTjVFLLL6pVq8aIESMAeOaZZ6hWrRqLFi0iJSWFEiVKZPm6+Pj4DAsBU+Pw3tOrVy/ee++9LF8ze/ZsJk6cyOjRo3nhhReYNGlShvtLlizJ3r17c4zVe8/zzz9Pnz59stw3bdo0Pv/8c6677joefPBBrr/++myf4+jRo9m+nqBoMZ+IiIhIyIcffsj111/P+vXrWbduHRs2bKBevXp899139O7dm5deeimtM8OuXbsAKFOmDPv37097jmrVqrFixQpSUlL4+OOP027fu3cvNWrUAOCtt97KVTxXXHEFX3zxBe+//z5XX3112vOcd955FClShLfffpvk5OQsX1e3bl0WLlxISkoKGzZsSOuUcfHFFzN9+nRWr14NwKFDh0hMTOTAgQPs3buXfv368eyzz2YoiUjVtGnTtK/LTp8+fXjxxRc5fvw4YDXNBw8eZP369VStWpVbb72Vm2++mfnz5wNQtGjRtMeCfUipUqUKRYsWzdX3JhKUKIuIiIiEvPfeewwdOjTDbVdccQXvvvsut9xyC7Vr16ZVq1a0bt2ad999F4DbbruNyy67jO7duwPwt7/9jQEDBtCjRw/OO++8tOd59NFHufLKK+ncufNp65lTlS9fnosvvphq1aqllWrceeedvPXWW1x88cUkJiZyzjnnZPm6Sy+9lHr16tGyZUt+9atfpdUWV6lShTfffJMRI0bQqlUrLr744rRuGgMGDKBVq1Z07dqVZ555JstzdunShQULFuC9zzbWW265hWbNmtGuXTtatGjB7bffzokTJ5gyZQpt2rShbdu2jBkzhvvuuy/t+9aqVau0xXuTJ0+mX79+ufq+RIrL6cUGoX379j63xegiIiISe1asWEHTpk2DDkNycN999zFw4EB69uyZ7899+eWX89e//pXGjRvn6/Nm955yzs3z3rc/3ddqRllEREREcuX3v/99vveMBltUOGTIkHxPks+WEmURERERyZVq1aoxaNCgfH/eYsWK5bjAL0hKlEVEREREsqFEWUREREQkG0qURURERESyoQ1HRAoK7+HNN+Gzz6B4cShVCkqWPHldsyZcfz0UKxZ0pCIiIjFBM8oiBcHGjXDZZXDTTTB/PsyZA19+CaNGwb/+BY89BrfeCh06wIIFQUcrIlKgxcXF0aZNG1q0aMGVV155Vl0ebrzxxrQtnW+55RaWL1+e42OnTJnCjBkz8jxG3bp12bFjR5Zx//Of/2S4bezYsafsU5w+1nDw3tOjRw/Wr19PmzZtaNOmDeeeey41atRI+/+xY8dy9VyZv1cvvPACb7zxRr7HrERZJJp5D2+9BS1awLffwgsvwA8/QFISbNoEu3bBkSOQnAyffALbtlmy/PDDcPRo0NGLiBRIJUuWZOHChSxdupRixYrx0ksvZbg/u53wcuPVV1+lWbNmOd5/polydlK3vk5v9OjRadtgB+GLL76gdevW1KlTh4ULF7Jw4ULuuOMOHnjggbT/F8vlWdHM36ubbrqJ5557Lt9jVqIsEq22bIFBg+DGG6FVK1i8GO66C4pk82tbpIg9dtkyuOYaePxxaN8e5s2LeNgiIvnl/vuhW7f8vdx/f95i6Ny5M6tXr2bKlCl0796dkSNH0rJlS5KTk3nwwQfp0KEDrVq1Spu99d5z991306xZM/r378+2bdvSnqtbt26kbqz21Vdf0a5dO1q3bk1CQgLr1q3jpZde4plnnqFNmzZ8++23bN++nSuuuIIOHTrQoUMHpk+fDthWz71796Zt27bcfvvt2e6U17NnT1auXMmWLVsA26r6m2++YciQIfzpT3+iQ4cOtGjRgttuuy3br08/Sz137ly6desGwMGDB7npppvo0KEDbdu25ZNPPgFg2bJlXHjhhbRp04ZWrVqRlJSU5TlHjRrF4MGDc/xez5s3j65du3LBBRfQp0+ftNife+45mjVrRqtWrbj66quz/V6VKlWKunXrpm3VnV+UKItEo08/hebN4Ztv4JlnYMoUqF//9F9XsaLNQH/2mc02X3QR/OEPcOJE2EMWEYk1J06c4Msvv6Rly5YAzJ49myeeeILly5fz2muvUa5cOebMmcOcOXN45ZVXWLt2LR9//DGrVq1iyZIlvPLKK9nOEG/fvp1bb72VMWPGsGjRIj744APq1q2bYXa1c+fO3HfffTzwwAPMmTOHMWPGcMsttwDw2GOP0alTJxYsWMCgQYP48ccfs4wRFxfH5Zdfzv/+9z8Axo0bR/fu3SlTpgx33303c+bMYenSpRw+fJjPPvss19+TJ554gh49ejBnzhwmT57Mgw8+yMGDB3nppZe47777WLhwIXPnzqVmzZpZvnb69OlccMEF2T7v8ePHueeee/jwww+ZN28eN910Ew899BBgW4IvWLCAxYsX89JLL2X7vQJo37493377ba5fS25oMZ9ItFm9Gq6+Gho3hvfes+u86t/fZpcfeACeeAIOHIBnn833UEVEwimow9bhw4dp06YNYDPKN998MzNmzODCCy+kXr16AIwfP57Fixen1fTu3buXpKQkpk2bxogRI4iLi6N69er06NEjy/PPmjWLLl26pD1XxYoVs43jm2++yVDTvG/fPvbv38+0adP46KOPAOjfvz8VKlTI9utHjBjBgw8+yH333cfo0aPTNvSYPHkyTz75JIcOHWLXrl00b96cgQMH5up7M378eMaNG8dTTz0FwJEjR/jxxx+55JJLeOKJJ9i4cSOXX345DRs2zPK1u3btokyZMtk+76pVq1i6dCm9evUCrLzlvPPOA6BVq1Zcc801DBkyhCFDhuQYW9WqVVm5cmWuXkduKVEWiSbJySc7V4wbZ50szlT58vDGG3b97LM2Q33rrfkUqIhI7EqtUc7snHPOSfu3957nn3+ePn36ZHjMF198gXPulM/vvT/tYwBSUlKYOXMmJUuWzHJfbr7+0ksvZcuWLSxatIgZM2YwevRojhw5wp133sncuXOpVasWjz76KEeOHMnytfHx8aSkpABkuN97z5gxY7JsNd20aVMuuugiPv/8c/r06cOrr76a5UNC6nMWyaaE0HtP8+bNmTlzZpb7Pv/8c6ZNm8a4ceP485//zLJly7J9vUeOHMn2e3U2VHohEk2efBJmzoT/+7+zS5LT+8c/oG9fuPNOK+EQEZGz1qdPH1588UWOHz8OQGJiIgcPHqRLly6MHj2a5ORktmzZwuTJk7N87SWXXMLUqVNZu3YtYDOtAGXKlGH//v1pj+vduzcvvPBC2v9Tk/cuXbowatQoAL788kt2796dbYzOOYYPH84NN9xAv379KFGiRFrSW7lyZQ4cOJBjl4u6desyL7TOZcyYMRle9/PPP59W17wg1GlpzZo1nH/++dx7770MGjSIxYsXZ3nOxo0bs2bNmmzHa9y4Mdu3b09LlI8fP86yZctISUlhw4YNdO/enSeffJI9e/Zw4MCBLN8rsJ9BixYtsn3+M6VEWSRaLFwIjzwCV14J+bkqOT4eRo+Ghg3hiiusa4aIiJyVW265hWbNmtGuXTtatGjB7bffzokTJxg6dCgNGzakZcuW/PznP6dr165ZvrZKlSq8/PLLXH755bRu3ZqrrroKgIEDB/Lxxx+nLVB77rnnmDt3Lq1ataJZs2Zp3TceeeQRpk2bRrt27Rg/fjy1a9fOMc4RI0awaNEirr76agDKly/PrbfeSsuWLRkyZAgdOnTI9useeeQR7rvvPjp37kxcXFza7Q8//DDHjx+nVatWtGjRgocffhiA999/nxYtWtCmTRtWrlyZVuaRXv/+/ZmSw4RNsWLF+PDDD/nNb35D69atadOmDTNmzCA5OZlrr72Wli1b0rZtWx544AHKly+f5XsFVgPds2fPHL8XZ8Jlt9IxKO3bt/epq0FFCpUjR6yt244dsHQpVKqU/2P88ANceCFUq2az1uXK5f8YIiJnacWKFTRt2jToMCQMtmzZwvXXX8+ECRPy/bkXLFjA008/zdtvv53lvuzeU865ed779qd7Xs0oi0SDP/7REuTXXw9PkgzWNWPMGOvBPGKE1UOLiIhEyHnnncett97Kvn378v25d+zYwZ///Od8f14lyiJBmzYNnnoKbr/ddt8Lp27drP75yy/hwQfDO5aIyBmKprPdkr+GDx9O2bJl8/15e/XqRd26dbPcfrbvJSXKIgE5eBAWzTjIR8PeJbFmD0uWI+G22+Dee60/c6i/pohItChRogQ7d+5UsixnzXvPzp07KVGixBk/h2qURSJo/Xr4+c9h0SLYvPnk7UXjU3jsT0V48EFbexd2J07AxRdbECtXQhg+3YuInInjx4+zcePGbFuWieRViRIlqFmzJkWLFs1we25rlNVHWSRCfvwRune3DfOGDIFGlXfR8OmfU3v4xTztH+D3v4exY+HNNyHs61ji4+HFF23nvkcfhaefDvOAIiK5U7Ro0bSNOESCptILkQjYuBF69LAkecIES4Z/n/xnroz7iIv+OZz337cObqtXQ9u28K9/RSCoDh2sDOO552DJkggMKCIiUrAoURYJs82bLUnetg2+/tryU/btg9deg+HDoUYNAK66ynad7tUL7r8/QuXDTzxhO/fdeSdEURmWiIhINFCiLBJGP/1k5RZbtsBXX1mlA2BJ8v798MADGR5/7rnw0UfW7viOO2wmOqwqVYK//x2++w7++98wDyYiIlKwKFEWCaM777Rk98svoWPH0I3JyVbu0KkTtM+6jqBoUXjnHTh6FG68EVJSwhzkz34Gl1xi7eJy2AZVRESkMAprouycK++c+9A5t9I5t8I5d0k4xxOJJnPmwMcfw29/azlxmrFjYd26LLPJ6TVsaN3bJk60nDqsihSBf/8bdu6EP/whzIOJiIgUHGFtD+ecewv41nv/qnOuGFDKe78np8erPZzEkt69YcECWLMGypRJd0enTrBpk63ci4vL8eu9h8GDYfx4S7pbtgxzwPfeCy+8YINdcEGYBxMREQlO4FtYO+fKAl2A1wC898dOlSSLxJLJk627xe9/nylJnjMHpk+3pPQUSTKAc/Dqq1CuHFxzDYS9peif/wxVq1q9SNjrPURERKJfOEsvzge2A2845xY45151zp2T+UHOuducc3Odc3O3b98exnBEIsN7eOghqFnTNhfJ4JlnLHO++eZcPVfVqvD669a97dln8z3UjMqVs90BZ8+GN94I82AiIiLRL5yJcjzQDnjRe98WOAj8NvODvPcve+/be+/bV6lSJYzhiETG55/DzJnwxz9Chl0zN26EDz6wJDkPO+H17w99+tieIIcO5X+8GVxzjbXm+NOf4NixMA8mIiIS3cKZKG8ENnrvvw/9/0MscRaJWSkpNpvcoIF1rMjghRfsAffem+fn/f3vYft2K8UIK+fgkUdsG8G33w7zYCIiItEtbImy9/4nYINzrnHopgRgebjGE4kG778PixfbhGyGbeUPHoSXX7a9q89ga9YuXWwN4D/+EYGJ3r59rW3dE0/A8eNhHkxERCR6hbuP8j3AKOfcYqAN8JcwjycSGO/hscegVSvbZS+Dt96yHsWnaAl3Og89ZNUbYZ/odc7qRtauhVGjwjyYiIhI9Apre7i8Uns4KchmzbJ9O954I1PZhffQpInVJc+ebYnoGfDetr/euxdWrID4+HwJO+fBLrjAdg8M+2AiIiKRFXh7OJHC5p13bPHe5ZdnumPOHEhMtLZrZ5gkg33p739v7Zc/+ODsYs3VYH/8ow323nthHkxERCQ6KVEWyQfHj1t98qBB2TS0GDPGZmSHDDnrcYYMgWbN4C9/iUCr40GDrI7k8cdt220REZFCRomySD6YMAF27LDuahl4b4lyjx5QocJZj1OkCPzud7B0KXz66Vk/3ekH++MfbTb8f/8L82AiIiLRR4mySD545x2oWNEaRmSweDH88ANccUW+jXX11XD++dYBI+yGDoXmzW3XPs0qi4hIIaNEWeQs7d8PY8fC8OFQrFimO8eMsZnZfCi7SBUfD7ffbjthr1qVb0+bvSJF4OGHbUHfmDFhHkxERCS6KFEWOUtjx8Lhw9mUXYAll507217U+ei66yAuDt58M1+fNnvDhkHTpjarHPbCaBERkeihRFnkLI0aBXXrQseOme5YuRKWL8/XsotU550Hl10G//1vBCoi4uLgD3+wwuiPPw7zYCIiItFDibLIWdi61RbyjRxpVQoZpJYqZOkXlz9+9jPYvBnGjw/L02d01VXQsCH8/e8RGExERCQ6KFEWOQuj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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": 39,
"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": 40,
"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": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"PolynomialFeatures(degree=5, include_bias=True, interaction_only=False)"
]
},
"execution_count": 41,
"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": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 42,
"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": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 6728.65561887, 7307.98782321, 12213.78770965, 18893.24804015,\n",
" 19995.95195136])"
]
},
"execution_count": 43,
"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": 44,
"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": 45,
"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": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.556771690212023"
]
},
"execution_count": 46,
"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": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-29.871340302044153"
]
},
"execution_count": 47,
"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": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(3, 0.75, 'Maximum R^2 ')"
]
},
"execution_count": 48,
"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": 49,
"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)\n",
" "
]
},
{
"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": 50,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f309363eae5a4b3c9a5f1b94f65a4fea",
"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": 50,
"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": 52,
"metadata": {},
"outputs": [],
"source": [
"pr1 = PolynomialFeatures(degree=2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"pr1=PolynomialFeatures(degree=2)\n",
"\n",
"-->\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": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_train_pr1 = pr1.fit_transform(x_train[['horsepower', 'curb-weight','engine-size','highway-mpg']])\n",
"x_test_pr1 = pr1.fit_transform(x_test[['horsepower', 'curb-weight','engine-size', 'highway-mpg']])\n",
"pr1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\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"
]
},
{
"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": 62,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(110, 15)"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_train_pr1.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
" x_train_pr1.shape #There are now 15 features:\n",
"\n",
"-->\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": 67,
"metadata": {},
"outputs": [],
"source": [
"poly1 = LinearRegression().fit(x_train_pr1, y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"poly1=LinearRegression().fit(x_train_pr1,y_train)\n",
"\n",
"-->\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": 70,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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T08/622ffvppjhw5UuLnevXVV7n99tvzXZaZmUnjxo3JycnJd3nXrl2ZN29eoY+TmZlJp06dSlxHpFE4FhEREYkQEydOpF+/frz11ltnvW1pw3FhkpOTadKkCTNnzsy9LD09nYMHD9KzZ8+gPlekUjgWERERiQCHDh1i1qxZvPzyy/nCcXZ2Nvfccw/nnHMOnTt35tlnn+WZZ55hy5YtDBw4kIEDBwJQuXLl3Pu89957XH/99QB8+umn9OrVi27dunHBBRewffv2IusYN25cvud/6623GDduHJmZmfTv35+UlBRSUlKYPXt2gfuevho9YsQIpk+fDsCUKVPo06cPKSkpXHHFFRw6dAiA++67jw4dOtC5c2fuueee4v3QQkCj3ERERETyuusuWLw4uI/ZtSs8/XSRN/noo48YNmwYbdq0oWbNmixcuJCUlBQmTJjA+vXrWbRoEUlJSezZs4eaNWvyj3/8g2+++YbatWsX+bj9+vVjzpw5GGN46aWXeOKJJ/j73/9+xttfeeWVdOvWjWeffZakpCTefvtt3n33XerWrcvUqVMpX748q1evZty4ccyfPz+gP/6uXbv44x//yLRp06hUqRJ//etf+cc//sHtt9/Ohx9+SHp6OsYY9u3bF9DjhZLCsYiIiEgEmDhxInfddRcAY8eOZeLEiaSkpDBt2jRuvfVWkpJcbKtZs2axHnfz5s1cddVVbN26lRMnTpx15m/9+vXp2LEjX331FfXq1aNMmTJ06tSJ/fv3c/vtt7N48WISExNZtWpVwDXMmTOHlStX0rdvXwBOnDhBnz59qFq1KuXLl2f8+PEMHz6cESNGFOvPFgoKxyIiIiJ5nWWFNxR2797N119/zfLlyzHGkJ2djTGGJ554AmttQCPJ8t4m72zfO+64g7vvvptRo0Yxffp0HnnkkbM+lr+1ol69eowbNw6Ap556inr16rFkyRJycnIoX758gfslJSXlO5jPX4e1lgsvvJCJEycWuM+8efP46quveOutt3juuef4+uuvz1pfKKnnWERERMRj7733Htdeey0bNmwgMzOTTZs20bx5c7777juGDBnCiy++SFZWFgB79uwBoEqVKhw8eDD3MerVq0daWho5OTl8+OGHuZfv37+fRo0aAfDaa68FVM9ll13GF198wdtvv83YsWNzH6dBgwYkJCTw+uuvk52dXeB+ycnJLF68mJycHDZt2pQ74aJ3797MmjWLNWvWAHDkyBFWrVrFoUOH2L9/PxdffDFPP/00i4PdzlICCsciIiIiHps4cSKjR4/Od9lll13Gm2++yfjx42natCmdO3emS5cuvPnmmwDcfPPNXHTRRbkH5P3lL39hxIgRDBo0iAYNGuQ+ziOPPMIVV1xB//79z9qf7Fe9enV69+5NvXr1ctswfv7zn/Paa6/Ru3dvVq1aRaVKlQrcr2/fvjRv3pxzzjmHe+65h5SUFADq1KnDq6++yrhx4+jcuTO9e/fOnYIxYsQIOnfuzPnnn89TTz1V/B9ekBlrrdc15EpNTbWBNnaLiIiIBEtaWhrt27f3ugwJgcJeW2PMAmttamG318qxiIiIiIiPwrGIiIiIiI/CsYiIiIiIj8KxiIiIiIiPwrGIiIiIiI/CsYiIiIiIj8KxSBCdPAkffwy33AIZGV5XIyIi0SQxMZGuXbvSqVMnrrjiCo4cOVLix7r++ut57733ABg/fjwrV648422nT5/O7Nmzi/0cycnJ7Nq1q8Q1BvtxgkXhWCQIFi+Gu+6Chg3h0kthwgS4+GKIoH/rIiIS4SpUqMDixYtZvnw5ZcuW5cUXX8x3fWE70gXipZdeokOHDme8vqThOFYpHIuUkLXwr39Bly7QrRu88AIMGACffQbffQdbtsDo0XD8uNeViohItOnfvz9r1qxh+vTpDBw4kKuvvppzzjmH7Oxs7r33Xnr06EHnzp3597//DYC1lttvv50OHTowfPhwduzYkftYAwYMwL/J2qRJk0hJSaFLly4MHjyYzMxMXnzxRZ566im6du3KzJkz2blzJ5dddhk9evSgR48ezJo1C4Ddu3czZMgQunXrxi233EJhG8m98MIL/OY3v8n9/tVXX+WOO+4A4NJLL6V79+507NiRCRMmFLhvZmYmnTp1yv3+ySef5JFHHgFg7dq1DBs2jO7du9O/f3/S09MBePfdd+nUqRNdunThvPPOK82PPFdSUB5FJA699x784hfQvTs8/zyMHQs1a566/rXX4KqrYPx4+O9/wRjvahURkcDddZf7RDCYunaFp58O7LZZWVl8+eWXDBs2DIB58+axfPlymjdvzoQJE6hWrRo//PADx48fp2/fvgwZMoRFixaRkZHBsmXL2L59Ox06dODGG2/M97g7d+7kZz/7GTNmzKB58+bs2bOHmjVrcuutt1K5cmXuueceAK6++mp+9atf0a9fPzZu3MjQoUNJS0vj0UcfpV+/fjz00EN8/vnnhQbcyy+/nD59+vDEE08A8Pbbb/PAAw8A8Morr1CzZk2OHj1Kjx49uOyyy6hVq1ZAP5Obb76ZF198kdatWzN37lx+/vOf8/XXX/PYY48xefJkGjVqxL59+wL7AZ+FwrFICeTkwB/+AO3awdy5kJhY8DZXXgmrV8Pvfw9t2sCDD4a/ThERiR5Hjx6la9eugFs5vummm5g9ezY9e/akefPmAEyZMoWlS5fm9hPv37+f1atXM2PGDMaNG0diYiINGzZk0KBBBR5/zpw5nHfeebmPVTPvik4e06ZNy9ejfODAAQ4ePMiMGTP44IMPABg+fDg1atQocN86derQokUL5syZQ+vWrcnIyKBv374APPPMM3z44YcAbNq0idWrVwcUjg8dOsTs2bO54oorci877vtYtm/fvlx//fVceeWVjBkz5qyPFQiFY5ES+PhjWLYM/ve/woOx3+9+B6tWwUMPuYB81VXhq1FEREom0BXeYPP3HJ+uUqVKuV9ba3n22WcZOnRovtt88cUXmLN8RGmtPettAHJycvj++++pUKFCgesCuf9VV13FO++8Q7t27Rg9ejTGGKZPn860adP4/vvvqVixIgMGDODYsWP57peUlEROTk7u9/7rc3JyqF69eqE/mxdffJG5c+fy+eef07VrVxYvXhzwavSZqOdYpJisdavGrVqdPewa4w7O698frrsO5swJT40iIhKbhg4dygsvvMDJkycBWLVqFYcPH+a8887jrbfeIjs7m61bt/LNN98UuG+fPn349ttvWb9+PQB79uwBoEqVKhw8eDD3dkOGDOG5557L/d4fSs877zzeeOMNAL788kv27t1baI1jxozho48+YuLEiVzl+0W5f/9+atSoQcWKFUlPT2dOIb8Q69Wrx44dO9i9ezfHjx/ns88+A6Bq1ao0b96cd999F3Ahf8mSJYDrRe7VqxePPfYYtWvXZtOmTQH+JM9M4VikmD7/HBYtggcegKQAPnspVw4++AAaN4ZLLoHNm0Nfo4iIxKbx48fToUMHUlJS6NSpE7fccgtZWVmMHj2a1q1bc84553Dbbbdx/vnnF7hvnTp1mDBhAmPGjKFLly65wXXkyJF8+OGHuQfkPfPMM8yf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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"y_hat_poly1 = poly1.predict(x_test_pr1)\n",
"Title = 'Distribution Plot'\n",
"DistributionPlot(y_test, y_hat_poly1, 'Actual Values', 'Predicted values', Title)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"yhat_test1=poly1.predict(x_test_pr1)\n",
"Title='Distribution Plot of Predicted Value Using Test Data vs Data Distribution of Test Data'\n",
"DistributionPlot(y_test, yhat_test1, \"Actual Values (Test)\", \"Predicted Values (Test)\", Title)\n",
"\n",
"-->\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": 73,
"metadata": {},
"outputs": [],
"source": [
"#Answer to question 4f\n",
"#Predicted value has difference at 10,000 dollar range and also between price range of 30000 and 40000"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\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"
]
},
{
"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": 74,
"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": 75,
"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": 76,
"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": 77,
"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": 77,
"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": 78,
"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": 79,
"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": 80,
"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": 81,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fcb9ed896d8>"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtcAAAJNCAYAAAD6c1l4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA4eElEQVR4nO3de5hlZWHn+9/bdenqK91Agwi03RoUaEAuFaLBUYjRoBPjJSbBy0Q8E4lEJ5k8GQaSSWLUJ2dyToyjjhpDHGcyDonHoCjmMd4yGNTgSDeicvHCTWhJoAGBvndV13v+2HtX766uvu61u7qrP5/n2c9ee112vZul8nXVW3uVWmsAAIDezZnpAQAAwGwhrgEAoCHiGgAAGiKuAQCgIeIaAAAaIq4BAKAhgzM9gCYde+yxdcWKFTM9DAAAZrE1a9Y8UmtdNt22WRXXK1asyOrVq2d6GAAAzGKllB/ubptpIQAA0BBxDQAADRHXAADQkFk15xoAYCaNjY1l7dq12bJly0wPhQaMjIzkpJNOytDQ0D4fI64BABqydu3aLFq0KCtWrEgpZaaHQw9qrXn00Uezdu3arFy5cp+PMy0EAKAhW7ZsyTHHHCOsZ4FSSo455pj9/i2EuAYAaJCwnj0O5FyKawCAI9jChQuTJA8++GBe/epXT7vPhRdeuNd7ibznPe/Jpk2bJl+/9KUvzeOPP97YODs6492dxx9/PB/84Acb/7n7SlwDAJCnPvWpufbaaw/4+Klx/dnPfjZLlixpYGT7R1wDANCIK6+8cqew/KM/+qP82Z/9WTZs2JAXvvCFOffcc3PmmWfm05/+9C7H3nfffTnjjDOSJJs3b84ll1ySs846K7/yK7+SzZs3T+53+eWXZ3R0NKtWrcrb3va2JMn73ve+PPjgg7noooty0UUXJWndOfuRRx5Jkrz73e/OGWeckTPOOCPvec97Jn/eaaedlje96U1ZtWpVXvziF+/0czruvffePPe5z81P/uRP5g/+4A8m1+/uM1111VW5++67c/bZZ+eKK67Yp8/eqFrrrHmcd955FQBgptxxxx0z+vNvueWW+vznP3/y9WmnnVZ/+MMf1rGxsfrEE0/UWmtdt25dfcYznlEnJiZqrbUuWLCg1lrrvffeW1etWlVrrfXP/uzP6hvf+MZaa63f+ta36sDAQL355ptrrbU++uijtdZax8fH6wte8IL6rW99q9Za69Oe9rS6bt26yZ/deb169ep6xhln1A0bNtT169fX008/vd5yyy313nvvrQMDA/Wb3/xmrbXWX/qlX6of/ehHd/lML3vZy+pf/dVf1Vprff/73z853t19pu7Psaf99tV05zTJ6rqbHvVVfAAAffD2z9yeOx58stH3PP2pi/O2l63a7fZzzjknDz/8cB588MGsW7cuS5cuzfLlyzM2Npbf+73fy4033pg5c+bkRz/6UR566KE85SlPmfZ9brzxxvzmb/5mkuSss87KWWedNbnt4x//eK6++uqMj4/nn//5n3PHHXfstH2qr371q3nlK1+ZBQsWJEle9apX5Stf+Up+4Rd+IStXrszZZ5+dJDnvvPNy33337XL81772tXziE59Ikvybf/NvcuWVVyZpXSCe7jNNtbv9dvfZeyWuAQBmkVe/+tW59tpr8y//8i+55JJLkiTXXHNN1q1blzVr1mRoaCgrVqzY61fMTfdNGffee2/e9a535eabb87SpUtz6aWX7vV9Whd6pzd37tzJ5YGBgWmnhexuLPv6mQ7ks/dCXAMA9MGerjD30yWXXJI3velNeeSRR/KP//iPSZInnngixx13XIaGhnLDDTfkhz/84R7f4/nPf36uueaaXHTRRbntttvy7W9/O0ny5JNPZsGCBTnqqKPy0EMP5e///u9z4YUXJkkWLVqU9evX59hjj93lvS699NJcddVVqbXmuuuuy0c/+tF9/jwXXHBBPvaxj+X1r399rrnmmsn1u/tMnXHsbb9+EdcAALPIqlWrsn79+px44ok54YQTkiSve93r8rKXvSyjo6M5++yzc+qpp+7xPS6//PK88Y1vzFlnnZWzzz47559/fpLk2c9+ds4555ysWrUqT3/603PBBRdMHnPZZZflJS95SU444YTccMMNk+vPPffcXHrppZPv8Wu/9ms555xzpp0CMp33vve9ee1rX5v3vve9+cVf/MXJ9bv7TMccc0wuuOCCnHHGGXnJS16SK6+8cr8+e6/Kni7VH25GR0fr3r6DEQCgX+68886cdtppMz0MGjTdOS2lrKm1jk63v6/iAwCAhohrAABoiLgGAICGiGsAAGiIuAYAgIaIawAAaIi47tXmzcmLX5x89rMzPRIA4Aj3+OOP54Mf/OABHfvSl740jz/++B73+cM//MN86UtfOqD3n2rFihU588wzc+aZZ+b000/P7//+72fr1q17PKaXz3ewiOtePfBA8sUvJq98ZesZAGCG7Ck+t2/fvsdjP/vZz2bJkiV73Ocd73hHfvZnf/ZAh7eLG264Id/5znfyjW98I/fcc08uu+yyPe4vro8EnXvTDwwkL3950r7NKADAwXbVVVfl7rvvztlnn50rrrgiX/7yl3PRRRflta99bc4888wkySte8Yqcd955WbVqVa6++urJY1esWJFHHnkk9913X0477bS86U1vyqpVq/LiF784mzdvTpJceumlufbaayf3f9vb3pZzzz03Z555Zr773e8mSdatW5cXvehFOffcc/Prv/7redrTnpZHHnlkj+NeuHBhPvShD+VTn/pUHnvssWzYsCEvfOELJ9/705/+9LSfb3f7zSRx3avOry8+8IFk5crkX//r5J/+aWbHBAAckf7kT/4kz3jGM3LrrbfmT//0T5Mk3/jGN/LHf/zHueOOO5IkH/nIR7JmzZqsXr0673vf+/Loo4/u8j4/+MEP8pa3vCW33357lixZkk984hPT/rxjjz02t9xySy6//PK8613vSpK8/e1vz8/8zM/klltuyStf+crcf//9+zT2xYsXZ+XKlfnBD36QkZGRXHfddbnllltyww035Hd+53dSa93l8+1uv5k0OKM/fTboxPVJJyVf+lLyghckP/dzyX/9r8kb3pCUMrPjAwBmxr//98mttzb7nmefnbznPft1yPnnn5+VK1dOvn7f+96X6667LknywAMP5Ac/+EGOOeaYnY5ZuXJlzj777CTJeeedl/vuu2/a937Vq141uc8nP/nJJMlXv/rVyfe/+OKLs3Tp0n0eayeMa635vd/7vdx4442ZM2dOfvSjH+Whhx6adv/p9nvKU56yzz+zaa5c96ozLWRkJDnhhOTLX07OOy954xtb00TavyIBAJgJCxYsmFz+8pe/nC996Uu56aab8q1vfSvnnHNOtnRapsvcuXMnlwcGBjI+Pj7te3f2697nQK8cr1+/Pvfdd1+e+cxn5pprrsm6deuyZs2a3HrrrTn++OOnHee+7ncwuXLdq86V685/CJ/61OQf/iF597uTd7wjWbUqueSS5M1vTp73PFeyAeBIsZ9XmJuwaNGirF+/frfbn3jiiSxdujTz58/Pd7/73Xz9619vfAzPe97z8vGPfzxXXnllvvCFL+THP/7xXo/ZsGFDfuM3fiOveMUrsnTp0jzxxBM57rjjMjQ0lBtuuCE//OEPk+z6+Xa330xy5bpX3VeuOwYGkiuuSO6+O/mt30r+7u+S5z8/Oe205Hd/N7nppmQvf7ELALC/jjnmmFxwwQU544wzcsUVV+yy/eKLL874+HjOOuus/MEf/EGe85znND6Gt73tbfnCF76Qc889N3//93+fE044IYsWLZp234suuihnnHFGzj///Cxfvjx/8Rd/kSR53etel9WrV2d0dDTXXHNNTj311Gk/3+72m0llpid9N2l0dLSuXr364P7Qv/7r5HWva03/eNazpt9n48bk4x9PPvrR5MYbW2G9cGHynOckF1zQmkZy+umtP4ic4//vAMDh6s4778xpp50208OYUVu3bs3AwEAGBwdz00035fLLL8+tTc89P4imO6ellDW11tHp9jctpFdTp4VMZ8GC1hzsN74xefzx5POfb0X2176WvPOdycREa79581pXt5/1rORpT0uWL9/xvHx5smiRaSUAwCHt/vvvzy//8i9nYmIiw8PD+cu//MuZHtJBJa57Nd20kD1ZsiT5lV9pPZJk/frkttuS229P7rij9fz1ryd/+7fJ1D8eGBlJjjsuWbZs58exxyZHHZUsXtx67l7uPA861QBA/51yyin55je/OdPDmDGKq1f7cuV6TxYtSp773Naj2/btyb/8S3L//TseDz/ceqxb13rceWfredOmvf+cefOS+fN3PLpf727bvHnJ8HDrMXfujuXpXu9tn8HB1lx0V94BgFlMXPdqf69c76uBgeTEE1uPqeE91ebNyZNPJk88seO5e7nzvHlzK8Q3bdqxvHFj8sgju65v34mpcQMDrdDuPKa+nvrY2/ap+wwM7HjMmdN6dJanPu/run5s6zxKmf55T9v6+dx5AHDAaq0p/rd0VjiQv00U173q9cp1E+bNaz2OP76595yYaH22bdt2fuzLuuleb9/emuayu8f+bN+yZffbx8ZaY+88tm+f/rl7eRb9UW9j+hHv+xr2u3sk+7bfwX6vQ/39ZmJsnX26993TOsc45mAdcxCMjIzk0UcfzTHHHBOBfXirtebRRx/NyH5eQBXXvdq6tXXFdLZ9y8ecOTuifbardffhvacoP9D9u6N+uuc9bTvcn/e2z+4enfO0P4/dveeBvFfTYztY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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",
"\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 test data. \n",
"As Alpha increases the R^2 decreases. \n",
"Therefore as Alpha increases the model performs worse on the test 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": 84,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.5418576440206702"
]
},
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"pr2 = PolynomialFeatures(degree=2)\n",
"ridge_model = Ridge(alpha=10)\n",
"ridge_model.fit(x_train_pr, y_train)\n",
"ridge_model.score(x_test_pr, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"RigeModel = Ridge(alpha=10) \n",
"RigeModel.fit(x_train_pr, y_train)\n",
"RigeModel.score(x_test_pr, y_test)\n",
"\n",
"-->\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": 85,
"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": 86,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'alpha': [0.001, 0.1, 1, 10, 100, 1000, 10000, 100000, 100000]}]"
]
},
"execution_count": 86,
"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": 87,
"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": 87,
"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": 88,
"metadata": {},
"outputs": [],
"source": [
"Grid1 = GridSearchCV(RR, parameters1,cv=4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fit the model \n"
]
},
{
"cell_type": "code",
"execution_count": 89,
"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": 89,
"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": 90,
"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": 90,
"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": 91,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.8411649831036152"
]
},
"execution_count": 91,
"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": 93,
"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": [
"Ridge(alpha=0.1, copy_X=True, fit_intercept=True, max_iter=None,\n",
" normalize=True, random_state=None, solver='auto', tol=0.001)"
]
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"parameters2= [{'alpha': [0.001,0.1,1, 10, 100, 1000, 10000, 100000, 100000], 'normalize':[True, False]}]\n",
"Grid2 = GridSearchCV(RR, parameters2,cv=4)\n",
"Grid2.fit(x_data[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']], y_data)\n",
"BestRR2=Grid2.best_estimator_\n",
"BestRR2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\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_\n",
"\n",
"-->\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-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