Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bnwiran/48f64ef3bc81b474d4d9dbaf9f44bd97 to your computer and use it in GitHub Desktop.
Save bnwiran/48f64ef3bc81b474d4d9dbaf9f44bd97 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": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src=\"https://ibm.box.com/shared/static/cw2c7r3o20w9zn8gkecaeyjhgw3xdgbj.png\" width=\"400\" align=\"center\"></a>\n",
"\n",
"<h1><center>Simple Linear Regression</center></h1>\n",
"\n",
"\n",
"<h4>About this Notebook</h4>\n",
"In this notebook, we learn how to use scikit-learn to implement simple linear regression. We download a dataset that is related to fuel consumption and Carbon dioxide emission of cars. Then, we split our data into training and test sets, create a model using training set, evaluate your model using test set, and finally use model to predict unknown value.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Table of contents</h1>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <ol>\n",
" <li><a href=\"#understanding_data\">Understanding the Data</a></li>\n",
" <li><a href=\"#reading_data\">Reading the data in</a></li>\n",
" <li><a href=\"#data_exploration\">Data Exploration</a></li>\n",
" <li><a href=\"#simple_regression\">Simple Regression Model</a></li>\n",
" </ol>\n",
"</div>\n",
"<br>\n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"### Importing Needed packages"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import pylab as pl\n",
"import numpy as np\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"### Downloading Data\n",
"To download the data, we will use !wget to download it from IBM Object Storage."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--2019-07-12 02:44:30-- https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/ML0101ENv3/labs/FuelConsumptionCo2.csv\n",
"Resolving s3-api.us-geo.objectstorage.softlayer.net (s3-api.us-geo.objectstorage.softlayer.net)... 67.228.254.193\n",
"Connecting to s3-api.us-geo.objectstorage.softlayer.net (s3-api.us-geo.objectstorage.softlayer.net)|67.228.254.193|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 72629 (71K) [text/csv]\n",
"Saving to: ‘FuelConsumption.csv’\n",
"\n",
"FuelConsumption.csv 100%[===================>] 70.93K --.-KB/s in 0.04s \n",
"\n",
"2019-07-12 02:44:30 (1.62 MB/s) - ‘FuelConsumption.csv’ saved [72629/72629]\n",
"\n"
]
}
],
"source": [
"!wget -O FuelConsumption.csv https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/ML0101ENv3/labs/FuelConsumptionCo2.csv"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Did you know?__ When it comes to Machine Learning, you will likely be working with large datasets. As a business, where can you host your data? IBM is offering a unique opportunity for businesses, with 10 Tb of IBM Cloud Object Storage: [Sign up now for free](http://cocl.us/ML0101EN-IBM-Offer-CC)"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"\n",
"<h2 id=\"understanding_data\">Understanding the Data</h2>\n",
"\n",
"### `FuelConsumption.csv`:\n",
"We have downloaded a fuel consumption dataset, **`FuelConsumption.csv`**, which contains model-specific fuel consumption ratings and estimated carbon dioxide emissions for new light-duty vehicles for retail sale in Canada. [Dataset source](http://open.canada.ca/data/en/dataset/98f1a129-f628-4ce4-b24d-6f16bf24dd64)\n",
"\n",
"- **MODELYEAR** e.g. 2014\n",
"- **MAKE** e.g. Acura\n",
"- **MODEL** e.g. ILX\n",
"- **VEHICLE CLASS** e.g. SUV\n",
"- **ENGINE SIZE** e.g. 4.7\n",
"- **CYLINDERS** e.g 6\n",
"- **TRANSMISSION** e.g. A6\n",
"- **FUEL CONSUMPTION in CITY(L/100 km)** e.g. 9.9\n",
"- **FUEL CONSUMPTION in HWY (L/100 km)** e.g. 8.9\n",
"- **FUEL CONSUMPTION COMB (L/100 km)** e.g. 9.2\n",
"- **CO2 EMISSIONS (g/km)** e.g. 182 --> low --> 0\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<h2 id=\"reading_data\">Reading the data in</h2>"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": 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>MODELYEAR</th>\n",
" <th>MAKE</th>\n",
" <th>MODEL</th>\n",
" <th>VEHICLECLASS</th>\n",
" <th>ENGINESIZE</th>\n",
" <th>CYLINDERS</th>\n",
" <th>TRANSMISSION</th>\n",
" <th>FUELTYPE</th>\n",
" <th>FUELCONSUMPTION_CITY</th>\n",
" <th>FUELCONSUMPTION_HWY</th>\n",
" <th>FUELCONSUMPTION_COMB</th>\n",
" <th>FUELCONSUMPTION_COMB_MPG</th>\n",
" <th>CO2EMISSIONS</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2014</td>\n",
" <td>ACURA</td>\n",
" <td>ILX</td>\n",
" <td>COMPACT</td>\n",
" <td>2.0</td>\n",
" <td>4</td>\n",
" <td>AS5</td>\n",
" <td>Z</td>\n",
" <td>9.9</td>\n",
" <td>6.7</td>\n",
" <td>8.5</td>\n",
" <td>33</td>\n",
" <td>196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2014</td>\n",
" <td>ACURA</td>\n",
" <td>ILX</td>\n",
" <td>COMPACT</td>\n",
" <td>2.4</td>\n",
" <td>4</td>\n",
" <td>M6</td>\n",
" <td>Z</td>\n",
" <td>11.2</td>\n",
" <td>7.7</td>\n",
" <td>9.6</td>\n",
" <td>29</td>\n",
" <td>221</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2014</td>\n",
" <td>ACURA</td>\n",
" <td>ILX HYBRID</td>\n",
" <td>COMPACT</td>\n",
" <td>1.5</td>\n",
" <td>4</td>\n",
" <td>AV7</td>\n",
" <td>Z</td>\n",
" <td>6.0</td>\n",
" <td>5.8</td>\n",
" <td>5.9</td>\n",
" <td>48</td>\n",
" <td>136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2014</td>\n",
" <td>ACURA</td>\n",
" <td>MDX 4WD</td>\n",
" <td>SUV - SMALL</td>\n",
" <td>3.5</td>\n",
" <td>6</td>\n",
" <td>AS6</td>\n",
" <td>Z</td>\n",
" <td>12.7</td>\n",
" <td>9.1</td>\n",
" <td>11.1</td>\n",
" <td>25</td>\n",
" <td>255</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2014</td>\n",
" <td>ACURA</td>\n",
" <td>RDX AWD</td>\n",
" <td>SUV - SMALL</td>\n",
" <td>3.5</td>\n",
" <td>6</td>\n",
" <td>AS6</td>\n",
" <td>Z</td>\n",
" <td>12.1</td>\n",
" <td>8.7</td>\n",
" <td>10.6</td>\n",
" <td>27</td>\n",
" <td>244</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" MODELYEAR MAKE MODEL VEHICLECLASS ENGINESIZE CYLINDERS \\\n",
"0 2014 ACURA ILX COMPACT 2.0 4 \n",
"1 2014 ACURA ILX COMPACT 2.4 4 \n",
"2 2014 ACURA ILX HYBRID COMPACT 1.5 4 \n",
"3 2014 ACURA MDX 4WD SUV - SMALL 3.5 6 \n",
"4 2014 ACURA RDX AWD SUV - SMALL 3.5 6 \n",
"\n",
" TRANSMISSION FUELTYPE FUELCONSUMPTION_CITY FUELCONSUMPTION_HWY \\\n",
"0 AS5 Z 9.9 6.7 \n",
"1 M6 Z 11.2 7.7 \n",
"2 AV7 Z 6.0 5.8 \n",
"3 AS6 Z 12.7 9.1 \n",
"4 AS6 Z 12.1 8.7 \n",
"\n",
" FUELCONSUMPTION_COMB FUELCONSUMPTION_COMB_MPG CO2EMISSIONS \n",
"0 8.5 33 196 \n",
"1 9.6 29 221 \n",
"2 5.9 48 136 \n",
"3 11.1 25 255 \n",
"4 10.6 27 244 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(\"FuelConsumption.csv\")\n",
"\n",
"# take a look at the dataset\n",
"df.head()\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<h2 id=\"data_exploration\">Data Exploration</h2>\n",
"Lets first have a descriptive exploration on our data."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": 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>MODELYEAR</th>\n",
" <th>ENGINESIZE</th>\n",
" <th>CYLINDERS</th>\n",
" <th>FUELCONSUMPTION_CITY</th>\n",
" <th>FUELCONSUMPTION_HWY</th>\n",
" <th>FUELCONSUMPTION_COMB</th>\n",
" <th>FUELCONSUMPTION_COMB_MPG</th>\n",
" <th>CO2EMISSIONS</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1067.0</td>\n",
" <td>1067.000000</td>\n",
" <td>1067.000000</td>\n",
" <td>1067.000000</td>\n",
" <td>1067.000000</td>\n",
" <td>1067.000000</td>\n",
" <td>1067.000000</td>\n",
" <td>1067.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>2014.0</td>\n",
" <td>3.346298</td>\n",
" <td>5.794752</td>\n",
" <td>13.296532</td>\n",
" <td>9.474602</td>\n",
" <td>11.580881</td>\n",
" <td>26.441425</td>\n",
" <td>256.228679</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.0</td>\n",
" <td>1.415895</td>\n",
" <td>1.797447</td>\n",
" <td>4.101253</td>\n",
" <td>2.794510</td>\n",
" <td>3.485595</td>\n",
" <td>7.468702</td>\n",
" <td>63.372304</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>2014.0</td>\n",
" <td>1.000000</td>\n",
" <td>3.000000</td>\n",
" <td>4.600000</td>\n",
" <td>4.900000</td>\n",
" <td>4.700000</td>\n",
" <td>11.000000</td>\n",
" <td>108.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>2014.0</td>\n",
" <td>2.000000</td>\n",
" <td>4.000000</td>\n",
" <td>10.250000</td>\n",
" <td>7.500000</td>\n",
" <td>9.000000</td>\n",
" <td>21.000000</td>\n",
" <td>207.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>2014.0</td>\n",
" <td>3.400000</td>\n",
" <td>6.000000</td>\n",
" <td>12.600000</td>\n",
" <td>8.800000</td>\n",
" <td>10.900000</td>\n",
" <td>26.000000</td>\n",
" <td>251.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2014.0</td>\n",
" <td>4.300000</td>\n",
" <td>8.000000</td>\n",
" <td>15.550000</td>\n",
" <td>10.850000</td>\n",
" <td>13.350000</td>\n",
" <td>31.000000</td>\n",
" <td>294.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>2014.0</td>\n",
" <td>8.400000</td>\n",
" <td>12.000000</td>\n",
" <td>30.200000</td>\n",
" <td>20.500000</td>\n",
" <td>25.800000</td>\n",
" <td>60.000000</td>\n",
" <td>488.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" MODELYEAR ENGINESIZE CYLINDERS FUELCONSUMPTION_CITY \\\n",
"count 1067.0 1067.000000 1067.000000 1067.000000 \n",
"mean 2014.0 3.346298 5.794752 13.296532 \n",
"std 0.0 1.415895 1.797447 4.101253 \n",
"min 2014.0 1.000000 3.000000 4.600000 \n",
"25% 2014.0 2.000000 4.000000 10.250000 \n",
"50% 2014.0 3.400000 6.000000 12.600000 \n",
"75% 2014.0 4.300000 8.000000 15.550000 \n",
"max 2014.0 8.400000 12.000000 30.200000 \n",
"\n",
" FUELCONSUMPTION_HWY FUELCONSUMPTION_COMB FUELCONSUMPTION_COMB_MPG \\\n",
"count 1067.000000 1067.000000 1067.000000 \n",
"mean 9.474602 11.580881 26.441425 \n",
"std 2.794510 3.485595 7.468702 \n",
"min 4.900000 4.700000 11.000000 \n",
"25% 7.500000 9.000000 21.000000 \n",
"50% 8.800000 10.900000 26.000000 \n",
"75% 10.850000 13.350000 31.000000 \n",
"max 20.500000 25.800000 60.000000 \n",
"\n",
" CO2EMISSIONS \n",
"count 1067.000000 \n",
"mean 256.228679 \n",
"std 63.372304 \n",
"min 108.000000 \n",
"25% 207.000000 \n",
"50% 251.000000 \n",
"75% 294.000000 \n",
"max 488.000000 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# summarize the data\n",
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Lets select some features to explore more."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": 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>ENGINESIZE</th>\n",
" <th>CYLINDERS</th>\n",
" <th>FUELCONSUMPTION_COMB</th>\n",
" <th>CO2EMISSIONS</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2.0</td>\n",
" <td>4</td>\n",
" <td>8.5</td>\n",
" <td>196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2.4</td>\n",
" <td>4</td>\n",
" <td>9.6</td>\n",
" <td>221</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.5</td>\n",
" <td>4</td>\n",
" <td>5.9</td>\n",
" <td>136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3.5</td>\n",
" <td>6</td>\n",
" <td>11.1</td>\n",
" <td>255</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>3.5</td>\n",
" <td>6</td>\n",
" <td>10.6</td>\n",
" <td>244</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>3.5</td>\n",
" <td>6</td>\n",
" <td>10.0</td>\n",
" <td>230</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>3.5</td>\n",
" <td>6</td>\n",
" <td>10.1</td>\n",
" <td>232</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>3.7</td>\n",
" <td>6</td>\n",
" <td>11.1</td>\n",
" <td>255</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>3.7</td>\n",
" <td>6</td>\n",
" <td>11.6</td>\n",
" <td>267</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ENGINESIZE CYLINDERS FUELCONSUMPTION_COMB CO2EMISSIONS\n",
"0 2.0 4 8.5 196\n",
"1 2.4 4 9.6 221\n",
"2 1.5 4 5.9 136\n",
"3 3.5 6 11.1 255\n",
"4 3.5 6 10.6 244\n",
"5 3.5 6 10.0 230\n",
"6 3.5 6 10.1 232\n",
"7 3.7 6 11.1 255\n",
"8 3.7 6 11.6 267"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cdf = df[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_COMB','CO2EMISSIONS']]\n",
"cdf.head(9)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can plot each of these features:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"viz = cdf[['CYLINDERS','ENGINESIZE','CO2EMISSIONS','FUELCONSUMPTION_COMB']]\n",
"viz.hist()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, lets plot each of these features vs the Emission, to see how linear is their relation:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(cdf.FUELCONSUMPTION_COMB, cdf.CO2EMISSIONS, color='blue')\n",
"plt.xlabel(\"FUELCONSUMPTION_COMB\")\n",
"plt.ylabel(\"Emission\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(cdf.ENGINESIZE, cdf.CO2EMISSIONS, color='blue')\n",
"plt.xlabel(\"Engine size\")\n",
"plt.ylabel(\"Emission\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Practice\n",
"plot __CYLINDER__ vs the Emission, to see how linear is their relation:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEHCAYAAABBW1qbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAcTklEQVR4nO3df5RcZZ3n8feHbhKJvyLQsjEhaUaCDvgjYouwzHGQxBUih+AcdXFbYZRjK82suMwoZNk9un9kBs/qIDqbaAuYsPaCHtQlBzMzQgd0dQS3AzGSRJcISWiTIS0qAlE0ne/+cZ+uru5UdaqSvnWruz6vc+rc+3zvj/pSEL65z733eRQRmJmZARxTdAJmZtY8XBTMzKzERcHMzEpcFMzMrMRFwczMSlwUzMyspD3Pk0vaCTwDjAAHIqJL0vHA14BOYCfwnoj4tSQBNwHLgf3AX0bEQ5Od/8QTT4zOzs7c8jczm4k2bdr0y4joqLQt16KQvDUiflnWvg4YiIgbJF2X2tcCFwKL0+fNwJq0rKqzs5PBwcF8sjYzm6Ek7aq2rYjuoxXAurS+DrikLH5bZB4A5kqaV0B+ZmYtK++iEMB3JG2S1JNiJ0XEXoC0fHmKzweeKDt2KMXMzKxB8u4+Ojci9kh6OXCPpJ9Osq8qxA4ZgyMVlx6AhQsXTk2WZmYG5HylEBF70nIf8C3gLODJ0W6htNyXdh8CTi47fAGwp8I5+yKiKyK6Ojoq3icxM7MjlFtRkPRCSS8eXQf+HfAIsB64PO12OXBXWl8PXKbM2cDTo91MZmbWGHleKZwEfF/Sj4EfAd+OiH8CbgDeJulR4G2pDbABeAzYAXwZ6M0xNzObLvr7obMTjjkmW/b3F53RjJbbPYWIeAx4fYX4U8DSCvEArsorHzObhvr7oacH9u/P2rt2ZW2A7u7i8prB/EazmTWv668fKwij9u/P4pYLFwUza167d9cXt6PmomBmzavaY+d+HD03Lgpm1rxWrYI5c8bH5szJ4pYLFwUza17d3dDXB4sWgZQt+/p8kzlHjRgQz8zsyHV3uwg0kK8UzMysxEXBzMxKXBTMzKzERcHMzEpcFMzMrMRFwczMSlwUzMysxEXBzMxKXBTMzKzERcHMzEpcFMzMrCT3oiCpTdLDku5O7bWSHpe0OX2WpLgkfV7SDklbJJ2Zd25mZjZeIwbEuxrYDrykLPbxiLhzwn4XAovT583AmrQ0M7MGyfVKQdIC4B3AzTXsvgK4LTIPAHMlzcszPzMzGy/v7qPPAZ8ADk6Ir0pdRDdKmp1i84EnyvYZSjEzM2uQ3IqCpIuAfRGxacKmlcCrgTcBxwPXjh5S4TRR4bw9kgYlDQ4PD09lymZmLS/PK4VzgYsl7QTuAM6X9NWI2Ju6iJ4HvgKclfYfAk4uO34BsGfiSSOiLyK6IqKro6Mjx/TNzFpPbkUhIlZGxIKI6AQuBTZGxPtG7xNIEnAJ8Eg6ZD1wWXoK6Wzg6YjYm1d+ZmZ2qCKm4+yX1EHWXbQZ+EiKbwCWAzuA/cAHCsjNzKylNeTltYi4PyIuSuvnR8RrI+I1EfG+iHg2xSMiroqIV6btg43Izazp9PdDZyccc0y27O8vOiNrIUVcKZhZNf39cNllcDA9sLdrV9YGT15vDeFhLsyayYc/PFYQRh08mMXNGsBFwayZPPdcfXGzKeaiYGZmJS4KZmZW4qJgZmYlLgpmzeTKK+uLm00xFwWzZrJ6NSxdOj62dGkWN2vAOywuCmbNpL8fNm4cH9u40S+wWfbfQE9P9u5KRLbs6Zny/zYUcchApNNGV1dXDA76xWebQWbPhj/84dD4rFnw/PONz8eaR2dnVggmWrQIdu6s61SSNkVEV6VtvlIwayaVCsJkcWsdu3fXFz9CLgpmZtPBwoX1xY+Qi4KZ2XSwahXMmTM+NmdOFp9CLgpm1tx6e6G9HaRs2dtbdEbF6O6Gvr7sHoKULfv6pnygRI+SambNq7cX1qwZa4+MjLVb8THd7u7cR8v1lYKZNa++vvridtRcFMyseY2M1Be3o5Z7UZDUJulhSXen9imSHpT0qKSvSZqV4rNTe0fa3pl3bmbW5Nra6ovbUWvElcLVwPay9qeBGyNiMfBr4IoUvwL4dUScCtyY9jOzVtbTU1/cjlquRUHSAuAdwM2pLeB84M60yzrgkrS+IrVJ25em/c1ax+zZ9cVnunPPzZ44KtfensUtF3lfKXwO+AQwOr/gCcBvIuJAag8B89P6fOAJgLT96bS/WeuoNpRFqw5xcf31cODA+NiBA1nccpFbUZB0EbAvIjaVhyvsGjVsKz9vj6RBSYPDw8NTkKlZEzmmyh/JavGZrkFDO9iYPP9LOxe4WNJO4A6ybqPPAXMljV4PLgD2pPUh4GSAtP2lwK8mnjQi+iKiKyK6Ojo6ckzfrAAHD9YXn+kaNLTDtHHGGdmLa6OfM86Y8q/IrShExMqIWBARncClwMaI6AbuA96VdrscuCutr09t0vaNMZ2HcDWzo9egoR2mhTPOgG3bxse2bZvywlDENem1wDWSdpDdM7glxW8BTkjxa4DrCsjNrFgnVLmNVi0+03V3wznnjI+dc07ub/U2pYkF4XDxI9SQohAR90fERWn9sYg4KyJOjYh3R8TzKf771D41bX+sEbmZNZWbbjr0/sExx2TxVtTbCwMD42MDA607/lEDtOjdK7MmNvFJ7FZ+MtvDXDSci4JZM7n66kOHcBgZyeKtyMNcjDn99PriR8hFwayZPPVUffGZzsNcjNm6FY47bnzsuOOy+BRyUTCz5uVhLsYsWwa/+9342O9+l8WnkOdTMLPmNTpnQl9f1mXU1pYVhFacS2HiDffDxY+Qi4KZNbfVq1uzCBTE3UdmZlbiomBmNh0sXVpf/Ai5KJiZTQf33ntoAVi6NItPIRcFM7Pp4rTTxh7HbWvL2lPMN5rNzKaD3l5Ys2asPTIy1p7CG/G+UjAzmw4aNOSHi4KZNbf+fujszAYG7OzM2q2oQUN+uPvIzJpXf3/2str+/Vl7166xt5lbbfjsY46pPNnSFM/K5ysFM2te118/VhBG7d/fmnM0N2hWPhcFM2tenqO54VwUzKx5eY7mhsutKEh6gaQfSfqxpK2S/luKr5X0uKTN6bMkxSXp85J2SNoi6cy8cjOzaeLUU+uL21HL80bz88D5EfGspGOB70v6x7Tt4xFx54T9LwQWp8+bgTVpaWat6v7764vbUcvtSiEyz6bmsekTkxyyArgtHfcAMFfSvLzyM7NpwDOvjWnQhEO53lOQ1CZpM7APuCciHkybVqUuohslzU6x+cATZYcPpZi1gt5eaG/P5iNub/fE7JbxzGtjGjThUK5FISJGImIJsAA4S9JrgJXAq4E3AccD16bdK81OfsiVhaQeSYOSBoeHh3PK3Bpq9PX90b/9jb6+78JgnnltzOrVcOWV48c+uvLKKZ9rQhGT9ehM4RdJnwSei4jPlMXOA/4mIi6S9CXg/oi4PW37GXBeROytds6urq4YHBzMOXPLXXt75e6AtjY4cKDx+RRJlf5ulDToz2rT6e31zGtTTNKmiOiqtC3Pp486JM1N68cBy4Cfjt4nkCTgEuCRdMh64LL0FNLZwNOTFQSbQdxvbJNZvTr7y0FEtnRByFWeTx/NA9ZJaiMrPl+PiLslbZTUQdZdtBn4SNp/A7Ac2AHsBz6QY27WTNraql8pmFlD5VYUImIL8IYK8fOr7B/AVXnlY02sp2f8kMDlcTNrKL/RbMVbvbryjFLuJjBrOBcFK15/P/zwh+NjP/xh6w6RbFYgFwUrnkfCNGsaNd1TSDeGPwR0lh8TER/MJy1rKR4J06xp1Hqj+S7g/wD3An5O0KbWwoXZ5CmV4mbWULUWhTkRce3hdzM7AsuXV376aPnyxudi1uJqvadwtyT/CbV8bNhQX9zMclNrUbiarDD8XtIz6fPbPBOzFlKp62iyuJnlpqbuo4h4cd6JmJlZ8Wp+o1nSxcBbUvP+iLg7n5TMzKwoNXUfSbqBrAtpW/pcnWJmZjaD1HqlsBxYEhEHASStAx4GrssrMTMza7x63mieW7b+0qlOxMzMilfrlcLfAQ9Luo9syOu3kM2gZmZmM0itTx/dLul+sik0BVwbEf+aZ2JmZtZ4k3YfSXp1Wp5JNmnOEPAE8IoUMzOzGeRwVwrXAD3AZytsC6DihDlmZjY9TVoUIqInLd9a74klvQD4HjA7fc+dEfFJSacAdwDHAw8B74+IP0iaDdwGvBF4Cvj3EbGz3u81M7MjV+t7Cu+W9OK0/l8kfVPSIVNtTvA8cH5EvB5YAlwg6Wzg08CNEbEY+DVwRdr/CuDXEXEqcGPaz8zMGqjWR1L/a0Q8I+nPgLcD64AvTnZAZJ5NzWPTZ7TL6c4UXwdcktZXpDZp+1JJqjE/MzObArUWhdE5FN4BrImIu4BZhztIUpukzcA+4B7g58BvIuJA2mUImJ/W55PdxCZtfxo4ocb8zMxsCtRaFH4h6UvAe4ANqf//sMdGxEhELAEWAGcBf1ppt7SsdFUQEwOSeiQNShocHh6uMX0zM6tFrUXhPcA/AxdExG/IbhJ/vNYvScfcD5wNzJU0eoN7AbAnrQ8BJwOk7S8FflXhXH0R0RURXR0dHbWmYGZmNai1KMwDvh0Rj0o6D3g38KPJDpDUIWluWj8OWAZsB+4D3pV2u5xsqk+A9alN2r4xIg65UjAzs/zUWhS+AYxIOhW4BTgF+F+HOWYecJ+kLcD/Be5Jw21fC1wjaQfZPYNb0v63ACek+DXM9MH2li0DaeyzbFnRGZmZ1Tz20cGIOCDpL4DPRcQXJD082QERsQU45LHViHiM7P7CxPjvya5AZr5ly2BgYHxsYCCL33tvMTmZmVH7lcIfJb0XuAwYnVzn2HxSagETC8Lh4mZmDVJrUfgAcA6wKiIeT28lfzW/tMzMrAi1jpK6DfhoWftxwDOvmZnNMJMWBUlfj4j3SPoJ498ZENlLy6/LNTszM2uow10pXJ2WF+WdiJmZFe9wo6TuTctdAJJecrhjrAZtbTAyUjluZlagWkdJ/bCkJ4EtwKb0GcwzsRmtp6e+uJlZg9T6t/6/Ac6IiF/mmYyZmRWr1kdSfw7szzORlvLFKqOOV4ubmTVIrVcKK4F/kfQg2eQ5AETER6sfYlVVG9LJQz2ZWcFqLQpfAjYCPwEO5peOmZkVqdaicCAirsk1EzMzK1yt9xTuS5PbzJN0/Ogn18zMzKzhar1S+A9pubIsFsCfTG06ZmZWpFrHPjol70TMzKx4k3YfSfpE2fq7J2z727ySMjOzYhzunsKlZesrJ2y7YIpzMTOzgh2uKKjKeqX2+I3SyZLuk7Rd0lZJV6f4pyT9QtLm9FledsxKSTsk/UzS2+v6JzEzs6N2uHsKUWW9UnuiA8BfR8RDkl4MbJJ0T9p2Y0R8pnxnSaeTXZmcAbwCuFfSaRFRYeQ4sxnqhBPgqacqx80a4HBXCq+X9FtJzwCvS+uj7ddOdmBE7I2Ih9L6M8B2YP4kh6wA7oiI59MkPjuoMJez2Yx2000wa9b42KxZWdysASYtChHRFhEviYgXR0R7Wh9t1zxHs6RO4A3Agyn0V5K2SLpV0stSbD7wRNlhQ0xeRMxmnu5uuOKKsWHU29qydnd3sXlZy6j15bUjJulFwDeAj0XEb4E1wCuBJcBe4LOju1Y4/JAuqvQS3aCkweHh4ZyyNitIfz+sWzc238bISNbu7y82L2sZuRYFSceSFYT+iPgmQEQ8GREjEXEQ+DJjXURDwMllhy8A9kw8Z0T0RURXRHR1dHTkmb5Z411/PeyfMCDx/v1Z3KwBcisKkgTcAmyPiL8vi88r2+2dwCNpfT1wqaTZkk4BFgM/yis/s6a0e3d9cbMplufUmucC7wd+Imlziv1n4L2SlpB1De0EPgwQEVslfR3YRvbk0lV+8shazsKFsGtX5bhZA+RWFCLi+1S+T7BhkmNWAavyysms6a1alU3LWt6FNGdOFjdrgNxvNJtZHbq7oa8PFi0CKVv29fnpI2sYF4VW19sL7e3Z/4Da27O2Fau7G3buhIMHs6ULgjVQnvcUrNn19sKaNWPtkZGx9urVxeRkZoXylUIr6+urL25mM56LQisbqfJwV7W4mc14LgqtbHQohVrjZjbjuSi0sle9qr64mc14LgqtbNu2+uJmNuO5KJiZWYmLgpmZlbgomJlZiYuCmZmVuCiYmVmJi4KZmZW4KLSyE06oL25mM56LQiu76SaYNWt8bNasLG5mLclFoZV1d8Ott44fu//WWz1Us1kLy3OO5pMl3Sdpu6Stkq5O8eMl3SPp0bR8WYpL0ucl7ZC0RdKZeeVmZZph7P6JVyuHi5tZbvK8UjgA/HVE/ClwNnCVpNOB64CBiFgMDKQ2wIXA4vTpAdYcekqbka64or64meUmt6IQEXsj4qG0/gywHZgPrADWpd3WAZek9RXAbZF5AJgraV5e+VkT2VBl2u5qcTPLTUPuKUjqBN4APAicFBF7ISscwMvTbvOBJ8oOG0oxm+l2764vbma5yb0oSHoR8A3gYxHx28l2rRCLCufrkTQoaXB4eHiq0rQiLVxYX9zMcpNrUZB0LFlB6I+Ib6bwk6PdQmm5L8WHgJPLDl8A7Jl4zojoi4iuiOjq6OjIL3lrnFWrYM6c8bE5c7K4mTVUnk8fCbgF2B4Rf1+2aT1weVq/HLirLH5ZegrpbODp0W4mm+G6u+Gcc8bHzjnHj8aaFSDPK4VzgfcD50vanD7LgRuAt0l6FHhbagNsAB4DdgBfBnpzzM2aSW8vDAyMjw0MZHEzayhFHNJtP210dXXF4OBg0WnUT5VunyTT+N/HEfPvYdZQkjZFRFelbX6j2czMSlwUzMysxEXBzMxKXBSseEuX1hc3s9y4KFjx7r330AKwdGkWN7OGclGw5nDaadDWlq23tWVtM2u49qITMKO3F9aUDYo7MjLWXr26mJzMWpSvFKx4fX31xc0sNy4KVryRkfriZpYbFwUzMytxUTAzsxIXBSveokX1xc0sNy4KVjzPp2DWNFwUrHjd3dmTRosWZSOmLlqUtT2fglnD+T0Faw7d3S4CZk3AVwpmZlbiomBmZiV5ztF8q6R9kh4pi31K0i8mTM85um2lpB2Sfibp7XnlZWZm1eV5pbAWuKBC/MaIWJI+GwAknQ5cCpyRjlktqS3H3MzMrILcikJEfA/4VY27rwDuiIjnI+JxYAdwVl65mZlZZUXcU/grSVtS99LLUmw+8ETZPkMplo9ly7JHH0c/y5bl9lVmZtNJo4vCGuCVwBJgL/DZFFeFfaPSCST1SBqUNDg8PFx/BsuWwcDA+NjAQGMLQ1uVnrFqcTOzBmloUYiIJyNiJCIOAl9mrItoCDi5bNcFwJ4q5+iLiK6I6Oro6Kg/iYkF4XDxPJx0Un1xM7MGaWhRkDSvrPlOYPTJpPXApZJmSzoFWAz8qJG5NdSeivWuetzMrEFye6NZ0u3AecCJkoaATwLnSVpC1jW0E/gwQERslfR1YBtwALgqIjyYvplZg+VWFCLivRXCt0yy/yog/xHQTj8dtm2rHDcza3Gt90bzc8/VFzczayGtVxR2764vbmbWQlqvKCxcWF/czKyFtF5RaIYJXfyegpk1qdYrCs0woctxx9UXNzNrkNacZKfoCV2efba+uJlZg7TelYKZmVXlomBmZiUuCmZmVuKiYGZmJS4KRXjRi+qLm5k1iItCEb74RWif8OBXe3sWNzMrkItCEbq7Ye3a8e9KrF1b7GOyZma4KBTnBz+AoSGIyJY/+EHRGZmZtejLa0Xr7YU1a8baIyNj7dWri8nJzAxfKRSj2r0D31Mws4K5KBQhor64mVmD5FYUJN0qaZ+kR8pix0u6R9KjafmyFJekz0vaIWmLpDPzysvMzKrL80phLXDBhNh1wEBELAYGUhvgQmBx+vQAa5jJ/J6CmTWp3IpCRHwP+NWE8ApgXVpfB1xSFr8tMg8AcyXNyyu3wvk9BTNrUo2+p3BSROwFSMuXp/h84Imy/YZSbGbyewpm1qSa5ZFUVYhVvOsqqYesi4mF03kKzaLndDAzq6DRVwpPjnYLpeW+FB8CTi7bbwGwp9IJIqIvIroioqujoyPXZM3MWk2ji8J64PK0fjlwV1n8svQU0tnA06PdTGZm1ji5dR9Juh04DzhR0hDwSeAG4OuSrgB2A+9Ou28AlgM7gP3AB/LKy8zMqsutKETEe6tsWlph3wCuyisXMzOrjd9oNjOzEsU0HlpB0jCwq+g8jtKJwC+LTqKJ+PcY499iPP8eY472t1gUERWf1JnWRWEmkDQYEV1F59Es/HuM8W8xnn+PMXn+Fu4+MjOzEhcFMzMrcVEoXl/RCTQZ/x5j/FuM599jTG6/he8pmJlZia8UzMysxEWhYJLaJD0s6e6icymapLmS7pT0U0nbJZ1TdE5FkfSfJG2V9Iik2yW9oOicGqmeSbpmuiq/xX9Pf062SPqWpLlT9X0uCsW7GthedBJN4ibgnyLi1cDradHfRdJ84KNAV0S8BmgDLi02q4ZbS+2TdM10azn0t7gHeE1EvA74f8DKqfoyF4UCSVoAvAO4uehciibpJcBbgFsAIuIPEfGbYrMqVDtwnKR2YA5VRg2eqeqcpGtGq/RbRMR3IuJAaj5ANrL0lHBRKNbngE8AB4tOpAn8CTAMfCV1p90s6YVFJ1WEiPgF8BmyQSP3ko0a/J1is2oK1SbpanUfBP5xqk7molAQSRcB+yJiU9G5NIl24ExgTUS8AXiO1ukeGCf1la8ATgFeAbxQ0vuKzcqakaTrgQNA/1Sd00WhOOcCF0vaCdwBnC/pq8WmVKghYCgiHkztO8mKRCtaBjweEcMR8Ufgm8C/LTinZlBtkq6WJOly4CKgO6bw3QIXhYJExMqIWBARnWQ3ETdGRMv+bTAi/hV4QtKrUmgpsK3AlIq0Gzhb0hxJIvstWvKm+wTVJulqOZIuAK4FLo6I/VN57maZo9kM4D8C/ZJmAY/RopMtRcSDku4EHiLrGniYFnubt85Juma0Kr/FSmA2cE/29wYeiIiPTMn3+Y1mMzMb5e4jMzMrcVEwM7MSFwUzMytxUTAzsxIXBTMzK3FRMEsk/RtJd0j6uaRtkjZIOq3KvueNjmwr6WJJdb19LWmtpHdNRd5mU8nvKZgB6SWxbwHrIuLSFFsCnEQ2CmVVEbGe7MWqPPNrLxsAzSw3vlIwy7wV+GNEfHE0EBGbgR5JK0ZjkvolXVx+oKS/lPQPaX2tpM9L+hdJj41eDSjzD+kK5NuUDeYm6Y2Svitpk6R/LhvK4X5Jfyvpu2RDrJvlzkXBLPMaoNLghDeT3qyW9FKyMYg2HOZc84A/IxuX5oYUeyfwKuC1wIfSeZB0LPAF4F0R8UbgVmBV2bnmRsSfR8Rnj+Cfyaxu7j4ym0REfFfS/5D0cuAvgG9ExIE0tEA1/zsiDgLbJJ2UYm8Bbo+IEWCPpI0p/iqygjQ6XEEb2XDZo742hf84ZoflomCW2QpUu/H7P4FusoELP1jDuZ4vWy+vHpXGlBGwNSKqTT36XA3fZzZl3H1kltkIzJb0odGApDdJ+nOy6RA/BhARW4/w/N8DLk1zcs8ju4cB8DOgY3Q+aknHSjrjCL/D7Ki5KJgBaTz6dwJvS4+kbgU+BeyJiCfJhq7+ylF8xbeAR4GfAGuA76bv/QPZFcqnJf0Y2IznTrACeZRUs8OQNIfsf+ZnRsTTRedjlidfKZhNQtIy4KfAF1wQrBX4SsHMzEp8pWBmZiUuCmZmVuKiYGZmJS4KZmZW4qJgZmYlLgpmZlby/wFQqKZYVPt4/AAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# write your code here\n",
"plt.scatter(cdf.CYLINDERS, cdf.CO2EMISSIONS, color='red')\n",
"plt.xlabel('Cylinder')\n",
"plt.ylabel('Emission')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click __here__ for the solution.\n",
"\n",
"<!-- Your answer is below:\n",
" \n",
"plt.scatter(cdf.CYLINDERS, cdf.CO2EMISSIONS, color='blue')\n",
"plt.xlabel(\"Cylinders\")\n",
"plt.ylabel(\"Emission\")\n",
"plt.show()\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"#### Creating train and test dataset\n",
"Train/Test Split involves splitting the dataset into training and testing sets respectively, which are mutually exclusive. After which, you train with the training set and test with the testing set. \n",
"This will provide a more accurate evaluation on out-of-sample accuracy because the testing dataset is not part of the dataset that have been used to train the data. It is more realistic for real world problems.\n",
"\n",
"This means that we know the outcome of each data point in this dataset, making it great to test with! And since this data has not been used to train the model, the model has no knowledge of the outcome of these data points. So, in essence, it is truly an out-of-sample testing.\n",
"\n",
"Lets split our dataset into train and test sets, 80% of the entire data for training, and the 20% for testing. We create a mask to select random rows using __np.random.rand()__ function: "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"msk = np.random.rand(len(df)) < 0.8\n",
"train = cdf[msk]\n",
"test = cdf[~msk]"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<h2 id=\"simple_regression\">Simple Regression Model</h2>\n",
"Linear Regression fits a linear model with coefficients $\\theta = (\\theta_1, ..., \\theta_n)$ to minimize the 'residual sum of squares' between the independent x in the dataset, and the dependent y by the linear approximation. "
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"#### Train data distribution"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(train.ENGINESIZE, train.CO2EMISSIONS, color='blue')\n",
"plt.xlabel(\"Engine size\")\n",
"plt.ylabel(\"Emission\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"#### Modeling\n",
"Using sklearn package to model data."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Coefficients: [[38.80712418]]\n",
"Intercept: [126.81511054]\n"
]
}
],
"source": [
"from sklearn import linear_model\n",
"regr = linear_model.LinearRegression()\n",
"train_x = np.asanyarray(train[['ENGINESIZE']])\n",
"train_y = np.asanyarray(train[['CO2EMISSIONS']])\n",
"regr.fit (train_x, train_y)\n",
"# The coefficients\n",
"print ('Coefficients: ', regr.coef_)\n",
"print ('Intercept: ',regr.intercept_)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As mentioned before, __Coefficient__ and __Intercept__ in the simple linear regression, are the parameters of the fit line. \n",
"Given that it is a simple linear regression, with only 2 parameters, and knowing that the parameters are the intercept and slope of the line, sklearn can estimate them directly from our data. \n",
"Notice that all of the data must be available to traverse and calculate the parameters.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"#### Plot outputs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can plot the fit line over the data:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Emission')"
]
},
"execution_count": 16,
"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": [
"plt.scatter(train.ENGINESIZE, train.CO2EMISSIONS, color='blue')\n",
"plt.plot(train_x, regr.coef_[0][0]*train_x + regr.intercept_[0], '-r')\n",
"plt.xlabel(\"Engine size\")\n",
"plt.ylabel(\"Emission\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"#### Evaluation\n",
"we compare the actual values and predicted values to calculate the accuracy of a regression model. Evaluation metrics provide a key role in the development of a model, as it provides insight to areas that require improvement.\n",
"\n",
"There are different model evaluation metrics, lets use MSE here to calculate the accuracy of our model based on the test set: \n",
"<ul>\n",
" <li> Mean absolute error: It is the mean of the absolute value of the errors. This is the easiest of the metrics to understand since it’s just average error.</li>\n",
" <li> Mean Squared Error (MSE): Mean Squared Error (MSE) is the mean of the squared error. It’s more popular than Mean absolute error because the focus is geared more towards large errors. This is due to the squared term exponentially increasing larger errors in comparison to smaller ones.</li>\n",
" <li> Root Mean Squared Error (RMSE): This is the square root of the Mean Square Error. </li>\n",
" <li> R-squared is not error, but is a popular metric for accuracy of your model. It represents how close the data are to the fitted regression line. The higher the R-squared, the better the model fits your data. Best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse).</li>\n",
"</ul>"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean absolute error: 23.89\n",
"Residual sum of squares (MSE): 952.27\n",
"R2-score: 0.66\n"
]
}
],
"source": [
"from sklearn.metrics import r2_score\n",
"\n",
"test_x = np.asanyarray(test[['ENGINESIZE']])\n",
"test_y = np.asanyarray(test[['CO2EMISSIONS']])\n",
"test_y_hat = regr.predict(test_x)\n",
"\n",
"print(\"Mean absolute error: %.2f\" % np.mean(np.absolute(test_y_hat - test_y)))\n",
"print(\"Residual sum of squares (MSE): %.2f\" % np.mean((test_y_hat - test_y) ** 2))\n",
"print(\"R2-score: %.2f\" % r2_score(test_y_hat , test_y) )"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<h2>Want to learn more?</h2>\n",
"\n",
"IBM SPSS Modeler is a comprehensive analytics platform that has many machine learning algorithms. It has been designed to bring predictive intelligence to decisions made by individuals, by groups, by systems – by your enterprise as a whole. A free trial is available through this course, available here: <a href=\"http://cocl.us/ML0101EN-SPSSModeler\">SPSS Modeler</a>\n",
"\n",
"Also, you can use Watson Studio to run these notebooks faster with bigger datasets. Watson Studio is IBM's leading cloud solution for data scientists, built by data scientists. With Jupyter notebooks, RStudio, Apache Spark and popular libraries pre-packaged in the cloud, Watson Studio enables data scientists to collaborate on their projects without having to install anything. Join the fast-growing community of Watson Studio users today with a free account at <a href=\"https://cocl.us/ML0101EN_DSX\">Watson Studio</a>\n",
"\n",
"<h3>Thanks for completing this lesson!</h3>\n",
"\n",
"<h4>Author: <a href=\"https://ca.linkedin.com/in/saeedaghabozorgi\">Saeed Aghabozorgi</a></h4>\n",
"<p><a href=\"https://ca.linkedin.com/in/saeedaghabozorgi\">Saeed Aghabozorgi</a>, PhD is a Data Scientist in IBM with a track record of developing enterprise level applications that substantially increases clients’ ability to turn data into actionable knowledge. He is a researcher in data mining field and expert in developing advanced analytic methods like machine learning and statistical modelling on large datasets.</p>\n",
"\n",
"<hr>\n",
"\n",
"<p>Copyright &copy; 2018 <a href=\"https://cocl.us/DX0108EN_CC\">Cognitive Class</a>. This notebook and its source code are released under the terms of the <a href=\"https://bigdatauniversity.com/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
},
"widgets": {
"state": {},
"version": "1.1.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment