Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save iateadonut/d72f46d94e845a2e68c7a45e7914879f to your computer and use it in GitHub Desktop.
Save iateadonut/d72f46d94e845a2e68c7a45e7914879f 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": 2,
"metadata": {
"button": false,
"collapsed": true,
"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": 1,
"metadata": {
"button": false,
"collapsed": true,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--2019-06-10 13:47:29-- 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-06-10 13:47:29 (1.64 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,
"collapsed": true,
"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,
"collapsed": true,
"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,
"collapsed": true,
"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": 6,
"metadata": {
"button": false,
"collapsed": true,
"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": 7,
"metadata": {
"button": false,
"collapsed": true,
"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": 8,
"metadata": {
"button": false,
"collapsed": true,
"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": 9,
"metadata": {
"button": false,
"collapsed": true,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f09bb4c0dd8>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAGCBJREFUeJzt3W9sXNd95vHvI9JSpKStYpkxVP2jN5aT2tmNYrCOtQYWXonZxo4RuUCzcMDUalYAE9PddTfdxtbqRdoXAlJsWsd5IaVM7EpGiTiBm8KCVy0iUzaKBLFdylG0lpSstbb+MNJajOO4sZU6K+q3L+4hOKSGmhnNnzu883yAwb33N2eGhwPp4eXhvecoIjAzs+JakHcHzMysuRz0ZmYF56A3Mys4B72ZWcE56M3MCs5Bb2ZWcA56M7OCc9CbmRWcg97MrOC6q2kk6TjwC2ASOB8RfZKuBL4J9ALHgf8YEa9LEvAQcDtwDviDiHjhUu9/1VVXRW9v72V+C2ZmnenAgQM/jYieSu2qCvrk30fET0uOHwBGI+KLkh5Ix/cDtwFr0+PDwM60nVNvby9jY2M1dMXMzCSdqKZdPUM3m4DdaX83cGdJ/dHIPAsslbS8jq9jZmZ1qDboA/iOpAOSBlPt6og4A5C270n1FcCpkteOp5qZmeWg2qGbWyLitKT3APsk/egSbVWmdtEUmekHxiDA6tWrq+yGmZnVqqoz+og4nbZngb8DbgJenRqSSduzqfk4sKrk5SuB02Xeczgi+iKir6en4t8SzMzsMlUMeknvlPRrU/vAfwBeBPYAm1OzzcATaX8PcLcyNwNvTA3xmJlZ61VzRn818F1JPwSeB/5nRPwD8EXgI5JeAj6SjgH2Ai8Dx4CvAUMN77WZzTsjI9DbCwsWZNuRkbx71DkqjtFHxMvAB8vUXwM2lqkHcG9DemdmhTAyAoODcO5cdnziRHYMMDCQX786he+MNbOm27ZtOuSnnDuX1a35HPRm1nQnT9ZWt8Zy0JtZ0811BbWvrG4NB72ZNd327bBkyczakiVZ3ZrPQW9mTTcwAMPDsGYNSNl2eNh/iG2VWiY1MzO7bAMDDva8+IzezKzgHPRmZgXnoDczKzgHvZlZwTnozcwKzkFvZlZwDnozs4Jz0JuZFZyD3sys4Bz0ZmYF56A3Myu4qoNeUpekH0h6Mh3vkvSKpIPpsS7VJekrko5JOiTpxmZ13szMKqtlUrP7gKPAr5fU/iQiHp/V7jZgbXp8GNiZtmZmloOqzuglrQQ+Bny9iuabgEcj8yywVNLyOvpoZmZ1qHbo5svA54ELs+rb0/DMg5IWpdoK4FRJm/FUMzOzHFQMekl3AGcj4sCsp7YC7wd+G7gSuH/qJWXeJsq876CkMUljExMTtfXazMyqVs0Z/S3AxyUdBx4DNkj6m4g4k4Zn3gb+GrgptR8HVpW8fiVwevabRsRwRPRFRF9PT09d34SZmc2tYtBHxNaIWBkRvcBdwP6I+NTUuLskAXcCL6aX7AHuTlff3Ay8ERFnmtN9MzOrpJ6lBEck9ZAN1RwEPpvqe4HbgWPAOeDTdfXQzMzqUtMNUxHxTETckfY3RMS/jogPRMSnIuLNVI+IuDci3pueH2tGx83a3cgI9PbCggXZdmQk7x5Zp/Li4GZNMDICd98NF9J1aidOZMfgBbKt9TwFglkTfOYz0yE/5cKFrG7Wag56syZ4663a6mbN5KA3Mys4B72ZWcE56M3MCs5Bb9YE99xTW92smRz0Zk2wYwds3DiztnFjVjdr9T0WDnqzJhgZgf37Z9b27/dNU5b9GxgczO6tiMi2g4PN/behiIsmlmy5vr6+GBvzDbRWHIsWwa9+dXF94UJ4++3W98faR29vFu6zrVkDx4/X9l6SDkREX6V2PqM3a4JyIX+punWOkydrqzeCg97MrIVWr66t3ggOejOzFtq+HZYsmVlbsiSrN4uD3sxaYmgIurtByrZDQ3n3KB8DAzA8nI3JS9l2eLi5k9159koza7qhIdi5c/p4cnL6uBMvOR0YaO0spj6jN7OmGx6urW6N5aA3s6abnKytbo1VddBL6pL0A0lPpuNrJD0n6SVJ35S0MNUXpeNj6fne5nTdzOaLrq7a6tZYtZzR3wccLTn+c+DBiFgLvA5sSfUtwOsRcS3wYGpnZh1scLC2ujVWVUEvaSXwMeDr6VjABuDx1GQ3cGfa35SOSc9vTO3NOsaiRbXVi+6WW7IrbUp1d2d1a75qz+i/DHwemFocbRnw84g4n47HgRVpfwVwCiA9/0Zqb9Yx5prmoFOnP9i2Dc6fn1k7fz6rW/NVDHpJdwBnI+JAablM06jiudL3HZQ0JmlsYmKiqs6azRcL5vifNVe96PK47d+mVfPP7hbg45KOA4+RDdl8GVgqaeqXsZXA6bQ/DqwCSM//BvCz2W8aEcMR0RcRfT09PXV9E2btZvbC4JXqRZfHbf/t7IYbspulph433NDcr1cx6CNia0SsjIhe4C5gf0QMAE8Dv5eabQaeSPt70jHp+f3RDlNkmllu8rjtv13dcAMcOTKzduRIc8O+nl8k7wc+J+kY2Rj8w6n+MLAs1T8HPFBfF83mn2Vz/FVqrnrRDQzA+vUza+vXt/bu0HYxO+Qr1RuhpqCPiGci4o60/3JE3BQR10bEJyLi7VT/l3R8bXr+5WZ03KydPfTQxePxCxZk9U40NASjozNro6OdO99Nq3Xon4bMmm/2RcWdfJGxp0DIl4PerAnuu+/i2/snJ7N6J/IUCNOuv762eiM46M2a4LXXaqsXnadAmHb4MCxePLO2eHFWbxYHvZk1nadAmNbfD7/85czaL3+Z1ZvF89GbWdNNzTk/PJwN13R1ZSHfiXPRz/6jdKV6IzjozawlduzozGBvBx66MTMrOAe9mVkLbdxYW70RHPRmZi301FMXh/rGjVm9WRz0ZmYtdt1105eWdnVlx83kP8aambXQ0BDs3Dl9PDk5fdysP1b7jN7MrIXymA7CQW9mLTEyAr292eRuvb3ZcSfKYzoID92YWdONjGQ3SJ07lx2fODF9V2ynTVW8YEH5BWiaufqYz+jNrOm2bZsO+SnnznXmmrF5rD7moDezpvOasfly0JtZ03nN2HxVDHpJ75D0vKQfSjos6c9SfZekVyQdTI91qS5JX5F0TNIhSTc2+5sws/Z27bW11a2xqvlj7NvAhoh4U9IVwHcl/X167k8i4vFZ7W8D1qbHh4GdaWtmHeqZZ2qrW2NVPKOPzJvp8Ir0iEu8ZBPwaHrds8BSScvr76qZzVdeYWpaHouwVDVGL6lL0kHgLLAvIp5LT21PwzMPSlqUaiuAUyUvH0816wBDQ9Ddna2P2t3txZ8t4xWmpuWxCEtVQR8RkxGxDlgJ3CTpA8BW4P3AbwNXAven5uWWQL7oNwBJg5LGJI1NTExcVuetvUzd2j11ljZ1a7fD3rzC1LQdO+Cee2bOdXPPPc2dq18RlxqFKfMC6QvAWxHxpZLarcB/i4g7JP0V8ExEfCM992Pg1og4M9d79vX1xdjY2OX039pId3f5X8W7uuD8+db3J08qd7qT1PhfrjCGhrzCVKNJOhARfZXaVXPVTY+kpWl/MdAP/Ghq3F2SgDuBF9NL9gB3p6tvbgbeuFTIW3F4HNYuZceO7Ad+RLZ1yLdONVfdLAd2S+oi+8HwrYh4UtJ+ST1kQzUHgc+m9nuB24FjwDng043vtrWjrq65z+jNLD8Vgz4iDgEfKlPfMEf7AO6tv2s23wwOzpx+tbRuZvnxnbHWMDt2lF85x7+im+XLQW8NMzIC3//+zNr3v9+509GatQsHvTWMZyg0a08OemsYz1Bo1p4c9NYwnqHQrD056K1hbr+9trqZtYaD3hpm797a6mbWGg56a5gTJ2qrm1lrOOjNzArOQW9mVnAOejOzgnPQm5kVnIPezKzgHPRmZgXnoDczKzgHvZlZwTnozcwKrpo1Y98h6XlJP5R0WNKfpfo1kp6T9JKkb0pamOqL0vGx9Hxvc78FMzO7lGrO6N8GNkTEB4F1wEfTot9/DjwYEWuB14Etqf0W4PWIuBZ4MLUzM7OcVAz6yLyZDq9IjwA2AI+n+m7gzrS/KR2Tnt8oSQ3rsZmZ1aSqMXpJXZIOAmeBfcD/AX4eEedTk3FgRdpfAZwCSM+/ASxrZKfNzKx6VQV9RExGxDpgJXAT8FvlmqVtubP3mF2QNChpTNLYxMREtf01M7Ma1XTVTUT8HHgGuBlYKqk7PbUSOJ32x4FVAOn53wB+Vua9hiOiLyL6enp6Lq/3ZmZWUTVX3fRIWpr2FwP9wFHgaeD3UrPNwBNpf086Jj2/PyIuOqM3M7PWqOaMfjnwtKRDwD8B+yLiSeB+4HOSjpGNwT+c2j8MLEv1zwEPNL7b7aO/H6TpR39/3j0yM5upu1KDiDgEfKhM/WWy8frZ9X8BPtGQ3rW5/n4YHZ1ZGx3N6k89lU+fzMxm852xdZgd8pXqZmZ5cNCbmRWcg97MrOAc9GZmBeegNzMrOAd9Hbq6aqubmeXBQV+HwcHa6mZmeXDQm5kVnIO+Dl/9am11M7M8OOjrMNcMPp7Zx8zaiYPezKzgHPRmZgXnoDczKzgHvZlZwTnozcwKzkFvZlZwDnozs4KrZs3YVZKelnRU0mFJ96X6n0r6iaSD6XF7yWu2Sjom6ceSfqeZ34CZmV1axaUEgfPAH0fEC5J+DTggaV967sGI+FJpY0nXA3cBNwC/CTwl6bqImGxkx83a2bJl8Npr5etmrVbxjD4izkTEC2n/F8BRYMUlXrIJeCwi3o6IV4BjlFlb1qzIHnoIFi6cWVu4MKubtVpNY/SSeskWCn8ulf5Q0iFJj0h6d6qtAE6VvGycS/9gMCucgQHYsmV6yuqurux4YCDffllnqjroJb0L+FvgjyLin4GdwHuBdcAZ4C+mmpZ5+UWzv0galDQmaWxiYqLmjpu1s5ER2L0bJtOA5eRkdjwykm+/rDNVFfSSriAL+ZGI+DZARLwaEZMRcQH4GtPDM+PAqpKXrwROz37PiBiOiL6I6Ovp6annezBrO9u2wblzM2vnzmV1s1ar5qobAQ8DRyPiL0vqy0ua/S7wYtrfA9wlaZGka4C1wPON67JZ+zt5sra6WTNVc9XNLcDvA/9L0sFU++/AJyWtIxuWOQ58BiAiDkv6FnCE7Iqde33FjXWa1avhxInydbNWqxj0EfFdyo+7773Ea7YD2+vol9m8tn17tqRk6fDNkiVZ3azVfGesWRMMDMDwMKxZA1K2HR72VTeWDwd9QQwNQXd3Fird3dmx5WtgAI4fhwsXsq1D3vJSzRi9tbmhIdi5c/p4cnL6eMeOfPpkZu3DZ/QFMDxcW93MOouDvgAm57imaa66mXUWB30BTN1mX23dzDqLg74A3ve+2upm1lkc9AVw5EhtdTPrLA56M7OCc9CbmRWcg97MrOAc9GZmBeegNzMrOAe9mVnBOegLYNmy2upm1lkc9AXw0EOwcOHM2sKFWd3MzEFfAAMD8MgjM+c+f+QRT4trZplq1oxdJelpSUclHZZ0X6pfKWmfpJfS9t2pLklfkXRM0iFJNzb7m7D2mPt89m8Vlepm1hrVnNGfB/44In4LuBm4V9L1wAPAaESsBUbTMcBtZAuCrwUGgZ0Xv6UV0ZYttdXNrDUqBn1EnImIF9L+L4CjwApgE7A7NdsN3Jn2NwGPRuZZYKmk5Q3vubWdvXOsIjxX3cxao6Yxekm9wIeA54CrI+IMZD8MgPekZiuAUyUvG081K7iTJ2urm1lrVB30kt4F/C3wRxHxz5dqWqYWZd5vUNKYpLGJiYlqu2FtbPXq2upm1hpVBb2kK8hCfiQivp3Kr04NyaTt2VQfB1aVvHwlcHr2e0bEcET0RURfT0/P5fbf2sj27bBkyczakiVZ3czyU81VNwIeBo5GxF+WPLUH2Jz2NwNPlNTvTlff3Ay8MTXEY8U2MADr18+srV/vyzzN8lbNGf0twO8DGyQdTI/bgS8CH5H0EvCRdAywF3gZOAZ8DRhqfLetHQ0NwejozNroaFY3s/wo4qLh85br6+uLsbGxvLtRM5X7a0TSBh9ry/nzMGstSQcioq9SO98Za2ZWcA56M7OCc9CbmRWcg94aZuPG2upm1hoOemuYp566ONQ3bszqZpYfB7011HXXQVdXtt/VlR2bWb668+6AFcfQEOwsmat0cnL6eMeOfPpkZj6jtwYaHq6tbmat4aC3hpmcrK1uZq3hoDczKzgHvZlZwTnorWHWrKmtbmat4aC3hvF89GbtyUFvDTMwkF1hs2ZNNpPlmjXZseejN8uXr6O3hhoYcLCbtRuf0ZuZFZyD3sys4KpZM/YRSWclvVhS+1NJP5m1tODUc1slHZP0Y0m/06yOm5lZdao5o98FfLRM/cGIWJceewEkXQ/cBdyQXrNDUlejOmtmZrWrGPQR8Y/Az6p8v03AYxHxdkS8QrZA+E119M/MzOpUzxj9H0o6lIZ23p1qK4BTJW3GU60p+vuzy/imHv39zfpKZmbz1+UG/U7gvcA64AzwF6muMm2j3BtIGpQ0JmlsYmKi5g7098Po6Mza6Ghrw75rjkGpuepmZnm4rKCPiFcjYjIiLgBfY3p4ZhxYVdJ0JXB6jvcYjoi+iOjr6empuQ+zQ75SvRmuvrq2uplZHi4r6CUtLzn8XWDqipw9wF2SFkm6BlgLPF9fF9vX6bI/wuaum5nloeKdsZK+AdwKXCVpHPgCcKukdWTDMseBzwBExGFJ3wKOAOeBeyPCs5GbmeWoYtBHxCfLlB++RPvtQNOnsbr+ejhypHzdzMymzds7Y996q7a6mVmnmrdBf/JkbXUzs041b4N+9era6mZmnWreBn07LHLh6+jNbD6Yt0HfDotcLF5cW93MLA/zeuGRvBe5ePPN2upmZnmYt2f0ZmZWHQe9mVnBOejNzArOQW9mVnAO+jq861211c3M8uCgr8NXvwrds65b6u7O6mZm7cJBX4eBAdi1a+a1/Lt25XvJp5nZbA76On3vezA+DhHZ9nvfy7tHZmYzzesbpvI2NAQ7d04fT05OH+/YkU+fzMxm8xl9HeYai/cYvZm1Ewd9HaLssudz183M8lAx6CU9IumspBdLaldK2ifppbR9d6pL0lckHZN0SNKNzey8mZlVVs0Z/S7go7NqDwCjEbEWGE3HALeRLQi+FhgEdlJgvo7ezOaDikEfEf8I/GxWeROwO+3vBu4sqT8amWeBpZKWN6qz7cbX0ZvZfHC5Y/RXR8QZgLR9T6qvAE6VtBtPtULydfRmNh80+vJKlamV/dOkpEGy4R1Wz+P1//KeE9/MrJLLPaN/dWpIJm3Ppvo4sKqk3UrgdLk3iIjhiOiLiL6enp7L7IaZmVVyuUG/B9ic9jcDT5TU705X39wMvDE1xGNmZvmoOHQj6RvArcBVksaBLwBfBL4laQtwEvhEar4XuB04BpwDPt2EPpuZWQ0qBn1EfHKOpzaWaRvAvfV2yszMGsd3xpqZFZyiDe7XlzQBnMi7H3W6Cvhp3p1oI/48pvmzmMmfx7R6P4s1EVHxapa2CPoikDQWEX1596Nd+POY5s9iJn8e01r1WXjoxsys4Bz0ZmYF56BvnOG8O9Bm/HlM82cxkz+PaS35LDxGb2ZWcD6jNzMrOAd9g0jqkvQDSU/m3Ze8SVoq6XFJP5J0VNL6vPuUF0n/VdJhSS9K+oakd+Tdp1aqZeGiopvjs/gf6f/JIUl/J2lpM762g75x7gOO5t2JNvEQ8A8R8X7gg3To5yJpBfBfgL6I+ADQBdyVb69abhfVL1xUdLu4+LPYB3wgIv4N8L+Brc34wg76BpC0EvgY8PW8+5I3Sb8O/DvgYYCI+FVE/DzfXuWqG1gsqRtYwhyzuRZVjQsXFVq5zyIivhMR59Phs2Qz/jacg74xvgx8HriQd0fawL8CJoC/TkNZX5f0zrw7lYeI+AnwJbKJ/86Qzeb6nXx71RbmWrio0/0n4O+b8cYO+jpJugM4GxEH8u5Lm+gGbgR2RsSHgLfonF/NZ0hjz5uAa4DfBN4p6VP59srakaRtwHlgpBnv76Cv3y3AxyUdBx4DNkj6m3y7lKtxYDwinkvHj5MFfyfqB16JiImI+H/At4F/m3Of2sFcCxd1JEmbgTuAgWjS9e4O+jpFxNaIWBkRvWR/aNsfER171hYR/xc4Jel9qbQROJJjl/J0ErhZ0hJJIvssOvIP07PMtXBRx5H0UeB+4OMRca5ZX6fRa8aaAfxnYETSQuBlOnQBmoh4TtLjwAtkv5b/gA67K7TGhYsKbY7PYiuwCNiXnQvwbER8tuFf23fGmpkVm4duzMwKzkFvZlZwDnozs4Jz0JuZFZyD3sys4Bz0ZmYF56A3Mys4B72ZWcH9f2NqPzk+bLmbAAAAAElFTkSuQmCC\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='blue')"
]
},
{
"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": 10,
"metadata": {
"button": false,
"collapsed": true,
"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": 11,
"metadata": {
"button": false,
"collapsed": true,
"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": 12,
"metadata": {
"button": false,
"collapsed": true,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Coefficients: [[39.85824382]]\n",
"Intercept: [122.28815617]\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": 13,
"metadata": {
"button": false,
"collapsed": true,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Emission')"
]
},
"execution_count": 13,
"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": 16,
"metadata": {
"button": false,
"collapsed": true,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean absolute error: 24.28\n",
"Residual sum of squares (MSE): 1065.77\n",
"R2-score: 0.64\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.8"
},
"widgets": {
"state": {},
"version": "1.1.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment