Skip to content

Instantly share code, notes, and snippets.

@eltomali
Created May 14, 2019 13:41
Show Gist options
  • Save eltomali/b38820a0cce3d5abb488f993cc31987e to your computer and use it in GitHub Desktop.
Save eltomali/b38820a0cce3d5abb488f993cc31987e to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"https://cocl.us/corsera_da0101en_notebook_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width=300, align=\"center\"></a>\n",
"\n",
"<h1 align=center><font size=5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Module 5: Model Evaluation and Refinement</h1>\n",
"\n",
"We have built models and made predictions of vehicle prices. Now we will determine how accurate these predictions are. "
]
},
{
"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>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"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": 4,
"metadata": {},
"outputs": [],
"source": [
"df.to_csv('module_5_auto.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" First lets only use numeric data "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df=df._get_numeric_data()\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Libraries for plotting "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install ipywidgets"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/IPython/html.py:14: ShimWarning: The `IPython.html` package has been deprecated since IPython 4.0. You should import from `notebook` instead. `IPython.html.widgets` has moved to `ipywidgets`.\n",
" \"`IPython.html.widgets` has moved to `ipywidgets`.\", ShimWarning)\n"
]
}
],
"source": [
"from IPython.display import display\n",
"from IPython.html import widgets \n",
"from IPython.display import display\n",
"from ipywidgets import interact, interactive, fixed, interact_manual"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Functions for plotting</h2>"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"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": 9,
"metadata": {
"collapsed": false
},
"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>"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"y_data = df['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"drop price data in x data"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"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>. "
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"number of test samples : 31\n",
"number of training samples: 170\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.15, 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. "
]
},
{
"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",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"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",
"x_train_1, x_test_1, y_train_1, y_test_1 = train_test_split(x_data, y_data, test_size=0.4, random_state=1)\n",
"print(\"number of test samples:\", x_test_1.shape[0])\n",
"print(\"number of training samples:\", x_train_1.shape[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",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's import <b>LinearRegression</b> from the module <b>linear_model</b>."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from sklearn.linear_model import LinearRegression"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We create a Linear Regression object:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"lre=LinearRegression()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we fit the model using the feature horsepower "
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lre.fit(x_train[['horsepower']], y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's Calculate the R^2 on the test data:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.707688374146705"
]
},
"execution_count": 17,
"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."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.6449517437659684"
]
},
"execution_count": 18,
"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>"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.7340722810055448"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"x_train2, x_test2, y_train2, y_test2 = train_test_split(x_data, y_data, test_size=0.1, random_state=0)\n",
"lre.fit(x_train2[[\"horsepower\"]], y_train2)\n",
"lre.score(x_test2[[\"horsepower\"]], y_test2)"
]
},
{
"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",
"-->"
]
},
{
"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. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Cross-validation Score</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Lets import <b>model_selection</b> from the module <b>cross_val_score</b>."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"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. "
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"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:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([0.7746232 , 0.51716687, 0.74785353, 0.04839605])"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Rcross"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can calculate the average and standard deviation of our estimate:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean of the folds are 0.522009915042119 and the standard deviation is 0.2911839444756029\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'. "
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([20254142.84026704, 43745493.26505169, 12539630.34014931,\n",
" 17561927.72247591])"
]
},
"execution_count": 24,
"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>"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.443196127755029"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"Rcross2 = cross_val_score(lre, x_data[['horsepower']], y_data, cv=2)\n",
"Rcross2[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[1]\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 to get a prediction while the rest of the folds are used as test data. First import the function:"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": true
},
"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:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([14141.63807508, 14141.63807508, 20814.29423473, 12745.03562306,\n",
" 14762.35027598])"
]
},
"execution_count": 27,
"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>"
]
},
{
"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."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 28,
"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:"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([11927.70699817, 11236.71672034, 6436.91775515, 21890.22064982,\n",
" 16667.18254832])"
]
},
"execution_count": 29,
"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: "
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([11349.16502418, 5914.48335385, 11243.76325987, 6662.03197043,\n",
" 15555.76936275])"
]
},
"execution_count": 30,
"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."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": true
},
"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."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"image/png": "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7d+/n9WrV7Nnz55khyKVQM2aNWnevDnVqlUr0fYJnae9vMrKynIaiCoiIlKxLV++nHr16pGeno6fvE4kMZxzbN68mR07dtCqVat895nZTOdcVlFt6IqoIiIiUint2bNHCbuUCTMjPT29VGd1lLSLiIhIpaWEXcpKaV9rStpFRERERFKcknYRERERkRSnpF1EREQkicaMGYOZsWDBgiLXffHFF1m7tuBlb2I3adIkLrjggnzLdu3aRXp6Otu3b8+3/OKLL2bUqFHFaivennzySV5++WVuuOEGMjMzad++PbVq1SIzM5PMzExGjx4dc1tjxozhkUceKXSd9evX079//9KGnRAJm/JRRERERIr2+uuvc+aZZzJy5EhGjBhR6LovvvgiGRkZHHPMMXHbf506dejbty9jx45l2DB/+Zzt27fzySef8Nprr8VtP8V14MABXnjhBWbNmsVVV10FwIoVK7jggguYPXt21G2qVo2c3g4cOLDIfR511FE0atSIL774glNPPbXkwSeAknYRERGRW26BKIlgiWVmwpNPFrrKzp07mTp1KhMnTmTAgAH5kvaHH36Yf//736SlpXHeeeeRlZXFjBkzuOKKK6hVqxafffYZ7dq1Y8aMGTRu3JgZM2Zw6623MmnSJKZNm8Ytt9zC7t27qVWrFv/6179o06ZN1DiGDh3KM888k5e0jxkzhn79+lG7du2Y2hoxYgR169bl1ltvBSAjI4O3336bli1b8sorr/DXv/6Vffv2ceqpp/L0008DMHz4cGbMmIGZ8dOf/pRf/epX+drMycmhS5cuUZPwkDPPPJOzzjqLjz/+mEsuuYRWrVpx//33s2/fPpo0acIrr7zCkUceyT//+U/mzp3Lk08+yZVXXkl6ejrTp09n/fr1PPbYY3lJ/cUXX8yrr76qpF1EREREvLFjx9KvXz9OOukkGjVqxKxZs+jSpQvvvfceY8eO5YsvvqB27dps2bKFRo0a8fe//51HH32UrKzCp/Vu27YtU6ZMoWrVqkyYMIE777yTN998M+r6/fr145prrmHz5s2kp6czcuRIfvnLX5aorXDz58/njTfeYOrUqVSrVo1f/OIXvPrqq3To0IE1a9Ywd+5cALZt23bYtlOnTqVr164x7ef7779nypQpAGzdupUBAwZgZvzjH//gscce46GHHjpsmw0bNjB16lTmzJnD4MGD85L2rKws7r333pj2W5aUtIuIiIgU0SOeKK+//jq33HILAEOGDOH111+nS5cuTJgwgZ/85CfUrl0bgEaNGhWr3e3btzNs2DAWL16MmbF///5C169evToDBgxg9OjRDBo0iNmzZ9O3b98StRXuo48+YubMmWRnZwOwe/dujjzySC688EKWLVvGL3/5S/r375+3r3Dr1q2jXbt2Me1nyJAheX9/++23DB48mPXr17N3715OOumkiNtcfPHFmBkdO3ZkzZo1ecuPPPLIUo0bSBQl7SIiIiJJsHnzZnJycpg7dy5mRm5uLmbGww8/jHMupnm9q1atysGDBwHyXbjnD3/4Az179mTMmDGsWLGCs88+u8i2hg4dyr333otzjosuuohq1arF3FZ4HOGxOOcYNmwYDzzwwGHbfPXVV3zwwQc89dRTjBo1ihdeeCHf/bVq1Yr5YkR16tTJ+/uGG27gzjvv5Pzzz2fChAk8+OCDEbepUaNG3t/OuXyx16pVK6b9liXNHiMiIiKSBKNHj+aqq65i5cqVrFixglWrVtGqVSs++eQT+vbtywsvvMAPP/wAwJYtWwCoV68eO3bsyGujZcuWzJw5EyBfycr27dtp1qwZ4AevxqJnz54sXryYp556iqFDhxarrZYtWzJr1iwAZs2axfLlywE455xzGD16NBs2bMg7jpUrV7Jp0yYOHjzIoEGDuOeee/K2DdeuXTuWLFkSU+zhQvE653jppZeKvf2iRYvIyMgo9naJpqRdREREJAlef/31w2Y0GTRoEK+99hr9+vVjwIABZGVlkZmZyaOPPgrA1VdfzfXXX09mZia7d+/m7rvv5uabb6Z79+5UqVIlr53f/va33HHHHZxxxhnk5ubGFE9aWhqDBg1i8+bN9OjRo1htDRo0iC1btpCZmckzzzyTV5LSvn177r33Xvr27UvHjh3p06cP69atY82aNZx99tlkZmZy9dVXR+yJP++88/Lq1ItjxIgRDBw4kLPOOoumTZsWe/uJEyem5LSPFn46QLysrCw3Y8aMZIchIiIiCTR//vyYa6YlOQYOHMjDDz9M69aty2R/zjm6d+/OO++8Q4MGDeLefqTXnJnNdM4VPrIY9bSLiIiISIp68MEHWbduXZntb8OGDfz2t79NSMJeWhqIKiIiIiIpqU2bNoXOLx9vTZs2ZcCAAWW2v+JQT7uIiIiISIpT0i4iIiIikuKUtIuIiIiIpDjVtIsIOAcrV8KMGf7fgQPw0EMQNn2YiIiIJI962kUquzvugCZNoFUruOwyePRReOwx+Mtfkh2ZiEiFV6VKFTIzM8nIyOCyyy7Lu5hSSUyaNIkLLrgAgHHjxkW9EijAtm3bePrpp4u9jxEjRuTNGR++39NOOy3fsgMHDtC0adNCZ36J1Fa8XXrppSxbtoxTTz2VzMxMjjvuOJo0aUJmZiaZmZmsWLEi5rZ+//vfM3HixELXGTt2LPfcc08po45MSbtIZfbll/Dgg5CdDc88A9Onw65dcOGF8Pvfw+LFyY5QRKRCq1WrFrNnz2bu3LlUr16df/zjH/nud85x8ODBYrc7YMAAbr/99qj3lzRpj6RHjx6sXr06XwI8YcIEMjIyOProo+Oyj5KYN28eubm5HH/88XzxxRfMnj2bP//5z1x++eXMnj2b2bNn07Jly3zbFHYhqvvuu4+ePXsWus+LLrqIN998kz179sTjEPJR0i5SmT34INSvD6+/DtdfD1lZUKOGT+Br1IBrroESfFmIiJQ3t9wCZ58d33+33FK8GLp3786SJUtYsWIF7dq14xe/+AVdunRh1apVjB8/ntNOO40uXbpw2WWXsXPnTgDef/992rZty5lnnslbb72V19aLL77IjTfeCMB3333HwIED6dSpE506deLTTz/l9ttvZ+nSpWRmZnLbbbcB8Mgjj5CdnU3Hjh25++6789q67777aNOmDb1792bhwoWHxZ2WlsZll13GG2+8kbds5MiRDB06FIDnnnuO7OxsOnXqxKBBgyKeTTj77LMJXdhy06ZNecl0bm4ut912W15c//d//wfAunXr6NGjR95Zio8//viwNl999VUuuuiiQh/zAwcO0LBhQ+666y5OOeUUpk2bxt133012djYZGRlcf/31hC5EeuWVVzJ27FgAmjdvzogRI+jcuTMdO3Zk0aJFAJgZ3bt359133y10vyWhpF2kslq0CP7zH/jFL6Bhw/z3NWsGjz8OU6ZAgV4fERGJvwMHDvDee+9x8sknA7Bw4UKuuuoqvvzyS+rUqcO9997LhAkTmDVrFllZWTz++OPs2bOHa6+9lv/97398/PHHrF+/PmLbN910E2eddRZfffUVs2bNokOHDjz44IOccMIJzJ49m0ceeYTx48ezePFipk2bxuzZs5k5cyZTpkxh5syZjBw5ki+//JK33nqL6dOnR9zH0KFDGTlyJAB79+7l3XffZdCgQQBccsklTJ8+na+++op27drx/PPPx/y4PP/88zRo0IDp06czffp0nnvuOZYvX85rr73Gueeey+zZs/nqq6/IzMw8bNupU6fStWvXIvexfft2unTpwrRp0zjttNO4+eabmT59OnPmzGH79u28//77Ebdr2rQpX375Jddccw2PP/543vKsrKyIPyJKSwNRRSqrhx/2venRuoJ+8hMYORJ+9zvo3x9atCjb+EREytCTTyZnv7t3785LOLt3787w4cPX6VwoAAAgAElEQVRZu3YtLVq0oFu3bgB8/vnnfPPNN5xxxhkA7Nu3j9NOO40FCxbQqlUrWrduDfie4GefffawfeTk5PDyyy8Dvoa+QYMGbN26Nd8648ePZ/z48XTu3BmAnTt3snjxYnbs2MHAgQOpXbs2QNQLD2VnZ7Nz504WLlzI/Pnz6datG0cccQQAc+fO5a677mLbtm3s3LmTc889N+bHZ/z48Xz99deMHj0a8An24sWLyc7O5qc//Sn79+/n4osvjpi0r1u3jiZNmhS5j+rVqzNw4MC8/3/00Uc88sgj7Nmzh02bNtG1a1fOO++8w7a75JJLAOjatWu+nvUjjzyStWvXxnyMsVLSLlIZrVoFL78M110HTZtGXscMnnsOMjLgZz+D99/3y0REJG5CNe0F1alTJ+9v5xx9+vTh9ddfz7fO7NmzsTh9LjvnuOOOO7juuuvyLX/yySdj3seQIUMYOXIk8+fPzyuNAbj66qsZO3YsnTp14sUXX2TSpEmHbVu1atW82v3wenDnHH/7298iJvpTpkzhnXfe4cc//jG33XYbV111Vb77a9WqFVNtea1atfKO8YcffuDGG29k1qxZNGvWjLvuuitqGzVq1AD8D6EDBw7kLd+zZw+1atUqcr/FpfIYkcroscf8NI+33lr4ei1a+Lr38eMhrFZSRETKTrdu3Zg6dSpLliwBfGK5aNEi2rZty/Lly1m6dCnAYUl9yDnnnMMzzzwD+Brx77//nnr16rFjx468dc4991xeeOGFvFr5NWvWsGHDBnr06MGYMWPYvXs3O3bs4H//+1/UOIcOHcorr7xCTk5Ovh75HTt2cPTRR7N//35effXViNu2bNmSmTNnAuT1qofieuaZZ9i/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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. "
]
},
{
"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. "
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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zJkzOffcc8nOzmb79u106dKFdevWATBz5kyOOeYYAD7//HOOOOIIDjnkEI444ggWLVpUYT3Gjh1bavmTJ09m5MiRNGnSJKqybr31Vv70pz+V/N+vXz/y8vIA+O9//8uPfvQjsrOzueyyyyguLqa4uJgLL7yQfv360b9/fx566KG9ynzvvfc49NBDqVev4hHLc3NzGTFiBIcddhjDhg1j8eLFAEycOJF+/fqRlZXFsccey/bt27n99tt55plnSlrpzYyjjjqKKVOmVLiMRIhraDezkWa2yMyWmNmNER5vaGbPBY9/ZmZdwh67KZi+yMxGVFammV0RTHNm1iZsupnZX4PH5prZofFbYxEREZHqe/nllxk5ciQZGRm0atWK2bNnA/DGG2/w8ssv89lnnzFnzhx+97vfMWbMGAYOHMgzzzxDTk4OjRs3LrfcXr16MX36dL788ktuv/12/u///q/CeowcOZJZs2axfv16wAfesWPHVquscAsWLOC5555jxowZ5OTkULdu3ZL6FxQU8PXXX/PVV19x0UUX7fXcGTNmcNhhh1W6jF/84hc8+uijzJo1i3vuuYcrrrgCgNtuu413332XOXPmMHnyZBo3bswtt9zCueeeW6qVfuDAgXz44YdRr1NNidvFlcysLvAIcCKQD3xhZq845+aHzXYJsME518PMzgHuA842sz7AOUBfoD3wjpllBM8pr8wZwGvAtDJV+THQM/g7HHgsuBURERGJ7OGHE7LYCRMmcE3QIn/OOecwYcIEDj30UN555x0uuugimjRpAkCrVq2qVG5hYSEXXHABubm5mBm7du2qcP4GDRpw6qmnMmnSJEaPHk1OTg7Dhw+vVlnh3n33XWbNmsWgQYMA2L59O+3ateOUU05h2bJlXHnllYwaNapkWeFWr15N7969Kyx/48aNfPrpp4wePbpkWlFREQBDhw7l/PPP58wzz+QnP/lJuWW0a9cu5l2OYiGeV0T9EbDEObcMwMwmAqcB4aH9NODW4P4k4O/mB7E8DZjonNsJLDezJUF5lFemc+7LYFrZepwGPOWcc8CnZtbCzA5yzq2O6dqKiIiI7IP169fz3nvv8fXXX2NmFBcXY2bcf//9OOeiGue7Xr167N69G6BUv+w//OEPHHvssUyePJm8vLySbjMVGTt2LHfeeSfOOU477TTq168fdVnh9Qivi3OO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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. "
]
},
{
"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>"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"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>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use 55 percent of the data for testing and the rest for training:"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"x_train, x_test, y_train, y_test = train_test_split(x_data, y_data, test_size=0.55, random_state=0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will perform a degree 5 polynomial transformation on the feature <b>'horse power'</b>. "
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"PolynomialFeatures(degree=5, include_bias=True, interaction_only=False)"
]
},
"execution_count": 36,
"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."
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 37,
"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\"."
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 6441.50981904, 7052.77145632, 12145.70424389, 18349.0819967 ,\n",
" 19587.98048654])"
]
},
"execution_count": 38,
"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. "
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Predicted values: [ 6441.50981904 7052.77145632 12145.70424389 18349.0819967 ]\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."
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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NWDAABUVFalTp05q27atVq5cqUWLFkkKLpuRdPwfB1WNC0fMsAMAALjFsV1W0tODy2ASEoJhvQF3X6lKamqqBgwYoEGDBqlXr146//zzG/w9HnzwQY0dO1aDBw9WamqqBg0apLi4uErH3nzzzWrTpo0OHz6sSy65RO+++64k6corr1RmZqaSk5PVr18/nXvuucePGT9+vAYPHiyv16vMzMwqx4UbU99fTTRXXq/XZmVlOd0GAABoJlavXq3+/fs73YYrlJaWqrS0VNHR0Vq/fr0uueQSrV+//vjseHNW2c+BMWaxtdZb07HN/78OAAAAXOHAgQNKS0tTaWmprLX64x//2CLC+snivxAAAACaRIcOHbR48WKn2wg7XHQKAAAAuBiBHQAAAHAxAjsAAADgYgR2AAAAwMUI7AAAAM1YYWGhUlJSlJKSolNPPVXx8fHHnx85cqTW55k2bZq2bdtW6WtjxoxRz549lZycrLPOOkvjxo3Tli1bajzns88+G7Z3H21KBHYAAAAXCeQE5JniUcQTEfJM8SiQEzip83Xu3FnZ2dnKzs7WhAkT9Oijjx5/3rp161qfp7rALknPPfecli1bpjVr1igpKUkXXXSRSkpKqj0ngb12COwAAAAuEcgJyD/Lr7yiPFlZ5RXlyT/Lf9KhvSrTp0/X0KFDlZKSovvuu09lZWUqLS3V7bffrqSkJA0aNEgvvPCC/vrXvyo7O1s333xzjTPzERER+vnPf65OnTppzpw5kiS/3y+v16uBAwfqySeflBQM+Dt27NDIkSM1atSoKseBwA4AAOAa6fPTVVxSXKFWXFKs9PnpDf5eK1as0HvvvacFCxYoOztbpaWlevPNN7V48WLt2rVLOTk5WrFihcaOHXs8qB8L7rWZmU9NTdWaNWskSZMnT1ZWVpaWLVumuXPnatWqVXr00UfVrVs3ffHFF5o3b16V40BgBwAAcI38ovw61U/GvHnztGjRInm9XqWkpOizzz7Txo0b1bt3b61du1YPP/ywZs+erbi4uHqd31p7/PuZM2cqNTVVqampWr16dZVBvLbjWhrudAoAAOASCXEJyivKq7Te0Ky1uuuuu/Tb3/72B68tX75cH374oV544QW98847yszMrPP5s7OzdeWVV2r9+vV6/vnntXDhQnXo0EFjxoypdN16bce1RMywAwAAuERGWoZiomIq1GKiYpSRltHg7zVq1Ci99dZb2rVrl6TgbjL5+fnauXOnrLW66aab9MQTT2jJkiWSpNjYWO3fv7/G81pr9dxzz6mwsFAXX3yx9u3bp9jYWLVv315bt27V7Nmzj48tf87qxrV0zLADAAC4hC/JJym4lj2/KF8JcQnKSMs4Xm9ISUlJmjRpkkaNGqWysjJFRUXp5ZdfVmRkpMaPHy9rrYwxeuqppyRJd955p+6++261bdtWCxcu/ME69kcffVSTJk3SwYMHNXz4cH388ceKiopSamqqBgwYoEGDBqlXr146//zzjx/j9/s1atQonXHGGZo7d26V41o6U359ESSv12uzsrKcbgMAADQTq1evVv/+/Z1uAw6r7OfAGLPYWuut6ViWxAAAAAAuRmAHAAAAXIzADgAAALgYgR0AAABwMQI7AAAA4GIEdgAAAMDFCOwAAADNXGRkpFJSUjRo0CDddNNNKi4urve5Pv30U1111VWSpPfff1+TJ0+ucuzevXv10ksv1fk9fvOb3+iZZ56ptB4fH6+UlBSlpKRo4sSJdT53df7+979r1apVx5//+te/1rx58xr0PeqDwA4AANDMtW3bVtnZ2VqxYoVat26tl19+ucLr1lqVlZXV+bxXX311taG5voG9Oo8++qiys7OVnZ1d7T8W6uPEwP7kk09q1KhRDfoe9UFgBwAAaEFGjhypDRs2KDc3V/3799d9992n1NRUbd68WXPmzNHw4cOVmpqqm266SQcOHJAkffTRR+rXr59GjBihd9999/i5XnvtNT3wwAOSpO3bt+u6665TcnKykpOTtWDBAk2cOFEbN25USkqKHnvsMUnS008/rXPOOUeDBw/WpEmTjp8rIyNDffv21ahRo7R27do6fSaPx6Ndu3ZJkrKysnThhRdKCs7I33XXXbrwwgvVq1cvvfDCC8ePmTFjhgYPHqzk5GTdfvvtWrBggd5//3099thjSklJ0caNG3XHHXfo7bffliTNnz9fZ599tpKSknTXXXfp8OHDx9970qRJSk1NVVJSktasWVOn3mujVYOfEQAAAJV6YtZKrdqyr0HPOeD09po0emCtxpaWlurDDz/UZZddJklau3atXn31Vb300kvatWuXfve732nevHlq166dnnrqKT377LP6xS9+oXvuuUcff/yxevfurZtvvrnScz/00EO64IIL9N577+no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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. "
]
},
{
"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. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" R^2 of the training data:"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.5682646622751228"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"poly.score(x_train_pr, y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" R^2 of the test data:"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-38.23519706068273"
]
},
"execution_count": 42,
"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."
]
},
{
"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:"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Text(3, 0.75, 'Maximum R^2 ')"
]
},
"execution_count": 43,
"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."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following function will be used in the next section; please run the cell."
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": true
},
"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. "
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "5e532d34c5944c33a8aed68e4bdcdf03",
"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": 45,
"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",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 46,
"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",
"-->"
]
},
{
"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>"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"x_train_pr1 = pr1.fit_transform(x_train[['horsepower','curb-weight','engine-size','highway-mpg']])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"x_train_pr1=pr.fit_transform(x_train[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']])\n",
"\n",
"x_test_pr1=pr.fit_transform(x_test[['horsepower', 'curb-weight', 'engine-size', 'highway-mpg']])\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",
"-->"
]
},
{
"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>"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(90, 15)"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_train_pr1.shape\n",
"#15 features"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"There are now 15 features: x_train_pr1.shape \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>"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n",
" normalize=False)"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"poly1 = LinearRegression()\n",
"poly1.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=linear_model.LinearRegression().fit(x_train_pr1,y_train)\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>"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"yhat_test1 = poly1.predict(x_train_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)"
]
},
{
"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_train_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",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #4f): </h1>\n",
"\n",
"<b>Use the distribution plot to determine the two regions were the predicted prices are less accurate than the actual prices.</b>\n",
"</div>"
]
},
{
"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 lower than actual value for cars where the price $ 10,000 range, conversely the predicted price is larger 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",
"<img src = \"https://ibm.box.com/shared/static/c35ipv9zeanu7ynsnppb8gjo2re5ugeg.png\" width = 700, align = \"center\">\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"ref3\">Part 3: Ridge regression</h2> "
]
},
{
"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."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's perform a degree two polynomial transformation on our data. "
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": true
},
"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>."
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": true
},
"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 "
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": true
},
"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>."
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false
},
"outputs": [
{
"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": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"RigeModel.fit(x_train_pr, y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Similarly, you can obtain a prediction: "
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"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 "
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"predicted: [ 6378.17644532 9829.68801643 18363.90082546 19876.684319 ]\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 Alfa that minimizes the test error, for example, we can use a for loop. "
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Rsqu_test = []\n",
"Rsqu_train = []\n",
"dummy1 = []\n",
"ALFA = 10 * np.array(range(0,1000))\n",
"for alfa in ALFA:\n",
" RigeModel = Ridge(alpha=alfa) \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 "
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f4094c57240>"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtoAAAJQCAYAAACwxcONAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XucZVVhJ/rf6nr2E5oGDILYzR1U5CGPEjEYA6IEvddH1Ou0j4lkEnFw1MRPrjfoGEnIJ/c6c41RZ9QIjknGy0gYjMpkfE/gk+jFSKMGeag8lRYDDQh0Q3d1VfW6f5xT1aerq190Laq7+vv9fPbn7L322vus07tO969Xrb12qbUGAACYXQvmugEAADAfCdoAANCAoA0AAA0I2gAA0ICgDQAADQjaAADQgKANAAANCNoAANCAoA0AAA30z3UDZsuhhx5aV65cOdfNAABgnrvhhhseqLUetqt68yZor1y5MmvWrJnrZgAAMM+VUn6yO/UMHQEAgAYEbQAAaEDQBgCABubNGG0AgLk2NjaWtWvXZtOmTXPdFGbB8PBwjjrqqAwMDDyh4wVtAIBZsnbt2ixdujQrV65MKWWum8NeqLXmwQcfzNq1a7Nq1aondA5DRwAAZsmmTZuyYsUKIXseKKVkxYoVe/XbCUEbAGAWCdnzx95eS0EbAAAaELQBAA5gS5YsSZLce++9ee1rXztjnbPOOmuXDwb88Ic/nMcff3xq+2Uve1kefvjh2Wto12R7d+Thhx/Oxz/+8Vl/3ydC0AYAIE996lNz1VVXPeHjpwftL33pSzn44INno2l7RNAGAGDW/f7v//42IfMP//AP86d/+qfZsGFDzjnnnJx66qk58cQT88UvfnG7Y+++++6ccMIJSZKNGzdm9erVOemkk/Iv/+W/zMaNG6fqXXjhhRkZGcnxxx+fiy++OEny0Y9+NPfee2/OPvvsnH322UmSlStX5oEHHkiSfOhDH8oJJ5yQE044IR/+8Ien3u+4447LW97ylhx//PE599xzt3mfSXfddVee//zn57nPfW7+4A/+YKp8R5/poosuyh133JGTTz457373u3frs7diej8AgAb+6L/fnFvufXRWz/nspy7LxS8/fof7V69end/93d/N2972tiTJlVdema985SsZHh7O5z//+SxbtiwPPPBAzjjjjLziFa/Y4c1+n/jEJ7Jo0aLceOONufHGG3PqqadO7fuTP/mTHHLIIZmYmMg555yTG2+8Me985zvzoQ99KNdcc00OPfTQbc51ww035C/+4i/yj//4j6m15nnPe15+9Vd/NcuXL89tt92Wz372s7nsssvyute9Lp/73Ofypje9aZvjf+d3ficXXnhhfuM3fiMf+9jHpsp39Jk+8IEP5Kabbsr3v//9JMn4+PgeffbZpEcbAGCeOOWUU3L//ffn3nvvzT/90z9l+fLlOfroo1NrzXvf+96cdNJJefGLX5yf/exnue+++3Z4nr//+7+fCrwnnXRSTjrppKl9V155ZU499dSccsopufnmm3PLLbfstE3f/OY38+u//utZvHhxlixZkle/+tX5h3/4hyTJqlWrcvLJJydJTjvttNx9993bHf+tb30rr3/965Mk/+pf/aup8t39THv62WeTHm0AgAZ21vPc0mtf+9pcddVV+ed//uesXr06SXL55Zdn3bp1ueGGGzIwMJCVK1fucn7omXp877rrrnzwgx/M9ddfn+XLl+f888/f5XlqrTvcNzQ0NLXe19c349CRHbVldz/TE/nss0WPNgDAPLJ69epcccUVueqqq6ZmEXnkkUdy+OGHZ2BgINdcc01+8pOf7PQcL3zhC3P55ZcnSW666abceOONSZJHH300ixcvzkEHHZT77rsvX/7yl6eOWbp0adavXz/jub7whS/k8ccfz2OPPZbPf/7z+ZVf+ZXd/jxnnnlmrrjiiiSZatPOPtP0duzpZ59NerQBAOaR448/PuvXr8+RRx6ZI444Iknyxje+MS9/+cszMjKSk08+Oc961rN2eo4LL7wwv/mbv5mTTjopJ598ck4//fQkyXOe85yccsopOf7443PMMcfkzDPPnDrmggsuyEtf+tIcccQRueaaa6bKTz311Jx//vlT5/jt3/7tnHLKKTMOE5nJRz7ykbzhDW/IRz7ykbzmNa+ZKt/RZ1qxYkXOPPPMnHDCCXnpS1+a3//939+jzz6bys668/cnIyMjdVfzOwIAtHTrrbfmuOOOm+tmMItmuqallBtqrSO7OtbQEQAAaEDQBgCABgRtAABoQNAGAIAGBO3ZMDEx1y0AAGAfI2jvjbGx5CUvSd7//rluCQAA+xhBe28MDCTLlyf/8T8mDz44160BAA5wDz/8cD7+8Y8/oWNf9rKX5eGHH95pnfe///35xje+8YTOP93KlStz4okn5sQTT8yzn/3svO9978vo6OhOj9mbzzcXBO299f73Jxs3Ju94x1y3BAA4wO0siE7sYqjrl770pRx88ME7rXPJJZfkxS9+8RNu33TXXHNNfvCDH+Q73/lO7rzzzlxwwQU7rS9oH2hOOCG5+OLks59Nuo8HBQCYCxdddFHuuOOOnHzyyXn3u9+da6+9NmeffXbe8IY35MQTT0ySvOpVr8ppp52W448/PpdeeunUsStXrswDDzyQu+++O8cdd1ze8pa35Pjjj8+5556bjRs3JknOP//8XHXVVVP1L7744px66qk58cQT88Mf/jBJsm7durzkJS/Jqaeemre+9a15+tOfngceeGCn7V6yZEn+/M//PF/4whfy0EMPZcOGDTnnnHOmzv3FL35xxs+3o3r7Co9gnw0XXZT8j/+RXHhhcuqpyTOeMdctAgDm2u/+bvL978/uOU8+Ofnwh3e4+wMf+EBuuummfL/7vtdee22+853v5KabbsqqVauSJJ/+9KdzyCGHZOPGjXnuc5+b17zmNVmxYsU257ntttvy2c9+Npdddlle97rX5XOf+1ze9KY3bfd+hx56aL773e/m4x//eD74wQ/mU5/6VP7oj/4oL3rRi/Ke97wnX/nKV7YJ8zuzbNmyrFq1KrfddltOO+20fP7zn8+yZcvywAMP5IwzzsgrXvGK7T7f+Pj4jPVKKbv1nq3p0Z4N/f3J5Zd3xmy/9KXJvffOdYsAAJIkp59++lTITpKPfvSjec5znpMzzjgj99xzT2677bbtjlm1alVOPvnkJMlpp52Wu+++e8Zzv/rVr96uzje/+c2sXr06SXLeeedl+fLlu93WWuvU63vf+96cdNJJefGLX5yf/exnue+++2asvzv15ooe7dlyzDHJ3/5t8qIXJWeemXz5y8mznjXXrQIA5spOep6fTIsXL55av/baa/ONb3wj1113XRYtWpSzzjormzZt2u6YoaGhqfW+vr6poSM7qtfX15fx8fEkW8Pynlq/fn3uvvvuPOMZz8jll1+edevW5YYbbsjAwEBWrlw5Yzt3t95c0aM9m04/PbnmmmTDhuS005LLLkue4A8bAMCeWrp0adavX7/D/Y888kiWL1+eRYsW5Yc//GG+/e1vz3obXvCCF+TKK69Mknzta1/L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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(ALFA,Rsqu_test, label='validation data ')\n",
"plt.plot(ALFA,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 test data, and the red line represents the R^2 of the training data. The x-axis represents the different values of Alfa "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The red line in figure 6 represents the R^2 of the test data, as Alpha increases the R^2 decreases; therefore as Alfa increases the model performs worse on the test data. The blue line represents the R^2 on the validation data, as the value for Alfa increases the R^2 decreases. "
]
},
{
"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",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.5324456428345087"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"RidgeModel1 = Ridge(alpha=10)\n",
"RidgeModel1.fit(x_train_pr, y_train)\n",
"RidgeModel1.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=0) \n",
"RigeModel.fit(x_train_pr, y_train)\n",
"RigeModel.score(x_test_pr, y_test)\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"ref4\">Part 4: Grid Search</h2>"
]
},
{
"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."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's import <b>GridSearchCV</b> from the module <b>model_selection</b>."
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from sklearn.model_selection import GridSearchCV"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We create a dictionary of parameter values:"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[{'alpha': [0.001, 0.1, 1, 10, 100, 1000, 10000, 100000, 100000]}]"
]
},
"execution_count": 61,
"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:"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"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": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"RR=Ridge()\n",
"RR"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create a ridge grid search object "
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Grid1 = GridSearchCV(RR, parameters1,cv=4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fit the model "
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/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": 64,
"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:"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"collapsed": false
},
"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": 65,
"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 "
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.8387851308772889"
]
},
"execution_count": 66,
"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>"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/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": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"parameters2 = [{'alpha': [0.001, 0.01, 0.1, 1, 10, 1000, 10000, 100000, 1000000], 'normalize':[False, True]}]\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",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook!</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment