Praktikum_Machine_Learning/Tugas.Regression/Eva Yusfika Hidayah_202310715012_F5A2_ML0101EN-Reg-Mulitple-Linear-Regression-Co2.ipynb

769 lines
100 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"text-align:center\">\n",
" <a href=\"https://skills.network\" target=\"_blank\">\n",
" <img src=\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/assets/logos/SN_web_lightmode.png\" width=\"200\" alt=\"Skills Network Logo\">\n",
" </a>\n",
"</p>\n",
"\n",
"\n",
"# Multiple Linear Regression\n",
"\n",
"\n",
"Estimated time needed: **15** minutes\n",
" \n",
"\n",
"## Objectives\n",
"\n",
"After completing this lab you will be able to:\n",
"\n",
"* Use scikit-learn to implement Multiple Linear Regression\n",
"* Create a model, train it, test it and use the model\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=\"#multiple_regression_model\">Multiple Regression Model</a></li>\n",
" <li><a href=\"#prediction\">Prediction</a></li>\n",
" <li><a href=\"#practice\">Practice</a></li>\n",
" </ol>\n",
"</div>\n",
"<br>\n",
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Importing Needed packages\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"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": {},
"source": [
"### Downloading Data\n",
"To download the data, we will use !wget to download it from IBM Object Storage.\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--2025-10-20 10:23:36-- https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%202/data/FuelConsumptionCo2.csv\n",
"Resolving cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud (cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud)... 169.63.118.104, 169.63.118.104\n",
"Connecting to cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud (cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud)|169.63.118.104|: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.002s \n",
"\n",
"2025-10-20 10:23:36 (45.8 MB/s) - FuelConsumption.csv saved [72629/72629]\n",
"\n"
]
}
],
"source": [
"!wget -O FuelConsumption.csv https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%202/data/FuelConsumptionCo2.csv"
]
},
{
"cell_type": "markdown",
"metadata": {},
"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",
"- **FUELTYPE** e.g. z\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": {},
"source": [
"<h2 id=\"reading_data\">Reading the data in</h2>\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's select some features that we want to use for regression.\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ENGINESIZE</th>\n",
" <th>CYLINDERS</th>\n",
" <th>FUELCONSUMPTION_CITY</th>\n",
" <th>FUELCONSUMPTION_HWY</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>9.9</td>\n",
" <td>6.7</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>11.2</td>\n",
" <td>7.7</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>6.0</td>\n",
" <td>5.8</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>12.7</td>\n",
" <td>9.1</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>12.1</td>\n",
" <td>8.7</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>11.9</td>\n",
" <td>7.7</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>11.8</td>\n",
" <td>8.1</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>12.8</td>\n",
" <td>9.0</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>13.4</td>\n",
" <td>9.5</td>\n",
" <td>11.6</td>\n",
" <td>267</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ENGINESIZE CYLINDERS FUELCONSUMPTION_CITY FUELCONSUMPTION_HWY \\\n",
"0 2.0 4 9.9 6.7 \n",
"1 2.4 4 11.2 7.7 \n",
"2 1.5 4 6.0 5.8 \n",
"3 3.5 6 12.7 9.1 \n",
"4 3.5 6 12.1 8.7 \n",
"5 3.5 6 11.9 7.7 \n",
"6 3.5 6 11.8 8.1 \n",
"7 3.7 6 12.8 9.0 \n",
"8 3.7 6 13.4 9.5 \n",
"\n",
" FUELCONSUMPTION_COMB CO2EMISSIONS \n",
"0 8.5 196 \n",
"1 9.6 221 \n",
"2 5.9 136 \n",
"3 11.1 255 \n",
"4 10.6 244 \n",
"5 10.0 230 \n",
"6 10.1 232 \n",
"7 11.1 255 \n",
"8 11.6 267 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cdf = df[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_CITY','FUELCONSUMPTION_HWY','FUELCONSUMPTION_COMB','CO2EMISSIONS']]\n",
"cdf.head(9)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's plot Emission values with respect to Engine size:\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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2Lx5s/OxlpYWbNu2DYMGDQIA9O/fHzExMW5jampqsHfvXucYIiIiatvaW3nypqYmfPHFF86vq6qqsHv3bqSkpKBHjx4oLCzEokWLkJ2djezsbCxatAgJCQm49dZbAQDJycmYMmUKZs+ejdTUVKSkpGDOnDnIzc3FiBEjrHpbREREFEYsDXZ27dqFYcOGOb+eNWsWAGDSpElYuXIl5s2bhxMnTmDq1Kk4cuQILrvsMrzzzjtISkpyvqa4uBjt27fHxIkTceLECQwfPhwrV66EnVuQiIiICGFUZ8dK0VZnh4iIqC2I+Do7REREREZgsENERERRzdKcnXChXsmLtkrKRERE0Uz93A6UkcNgB3A2FmUlZSIiosjT2NiI5ORkn88zQRnAmTNn8O233yIpKSlgdWYtGhoakJWVhYMHD7aZxGe+Z77naMX3zPccrSL5PSuKgsbGRmRkZKBdO9+ZOVzZAdCuXTtkZmaadvy2WKWZ77lt4HtuG/ie24ZIfc/+VnRUTFAmIiKiqMZgh4iIiKIagx0TxcXF4aGHHkJcXJzVUwkZvue2ge+5beB7bhvawntmgjIRERFFNa7sEBERUVRjsENERERRjcEOERERRTUGO0RERBTVGOyY5P3338fYsWORkZEBm82G9evXWz0lUy1evBgDBgxAUlISunXrhvHjx+Ozzz6zelqmWr58OS6++GJnIa6BAwfirbfesnpaIbN48WLYbDYUFhZaPRVTLViwADabze2Wnp5u9bRMV11djdtvvx2pqalISEjAL37xC1RWVlo9LdP06tWr1c/ZZrNh2rRpVk/NNKdPn8Yf//hH9O7dG/Hx8TjvvPPw5z//GWfOnLF6aoZjBWWTHDt2DD//+c9x55134vrrr7d6Oqbbtm0bpk2bhgEDBuD06dN44IEHMGrUKHz66adITEy0enqmyMzMxKOPPorzzz8fALBq1Srk5eXhX//6F/r162fx7MxVUVGB5557DhdffLHVUwmJfv36YcuWLc6v7Xa7hbMx35EjR3DFFVdg2LBheOutt9CtWzccOHAA55xzjtVTM01FRQUcDofz671792LkyJG48cYbLZyVuR577DE888wzWLVqFfr164ddu3bhzjvvRHJyMmbMmGH19AzFYMcko0ePxujRo62eRshs2rTJ7esVK1agW7duqKysxFVXXWXRrMw1duxYt68f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SA9Le64TUVSZNGmSYrfblcTERLfbn//8Z+cYAMof//hH59dNTU2KzWZT3nrrLUVRFOW+++5TcnJy3I77wAMPKACUI0eOKIqiKCtWrFCSk5Odzz/00ENKQkKC0tDQ4Hxs7ty5ymWXXeY8R4cOHZSdO3e6HXfKlCnKLbfc4vW9rF27VunUqZPbMV0NGTJEmTFjRqvHf/jhB6VPnz7K1KlTnY8NHjxYWbRokdu41atXK927d/d6bCIyFnN2iMhQw4YNw/Lly90e88xvufjii53/TkxMRFJSEurq6gAAn332GQYMGOA2/le/+lXA8/bq1cstWbh79+7OY3766ac4efIkRo4c6faalpYWXHLJJV6PN3LkSPTs2RPnnXcerr32Wlx77bXOS2++nDp1Ctdffz169OiBp556yvl4ZWUlKioq3FZyHA4HTp48iePHj/s9JhEFj8EOERkqMTER559/vt8xMTExbl/bbDacOXMGgMitsdlsbs8rEptG/R1TvX/jjTdw7rnnuo3zlTydlJSEjz/+GOXl5XjnnXfw4IMPYsGCBaioqPC57f33v/89vvnmG1RUVKB9+7P/ez1z5gwefvhh5Ofnt3pNhw4dAr43IgoOgx0iCisXXngh3nzzTbfHdu3aFdQxf/aznyEuLg7ffPMNhgwZIv269u3bY8SIERgxYgQeeughnHPOOXjvvfe8Bi1LlizBK6+8gg8++ACpqaluz/3yl7/EZ599FjAIJCJzMNghIkM1NzejtrbW7bH27dujS5cuUq+/5557sGTJEtx3332YMmUKdu/ejZUrVwJAqxUfWUlJSZgzZw5mzpyJM2fO4Morr0RDQwN27tyJjh07YtKkSa1e8/rrr+PLL7/EVVddhc6dO+PNN9/EmTNncMEFF7Qau2XLFsybNw9//etf0aVLF+f7j4+PR3JyMh588EGMGTMGWVlZuPHGG9GuXTt88skn2LNnDxYuXKjrPRGRPO7GIiJDbdq0Cd27d3e7XXnlldKv7927N1599VWUlZXh4osvxvLly527sYKp1/Pf//3fePDBB7F48WJcdNFFuOaaa/Daa6+hd+/eXsefc845KCsrw9VXX42LLroIzzzzDF5++WX069ev1dgdO3bA4XDgd7/7ndv7njFjBgBRVPH111/H5s2bMWDAAFx++eVYsmQJevbsqfv9EJE8VlAmorD3yCOP4JlnnsHBgwetngoRRSBexiKisPP0009jwIABSE1NxT/+8Q88/vjjmD59utXTIqIIxWCHiMLO/v37sXDhQvz444/o0aMHZs+ejfnz51s9LSKKULyMRURERFGNCcpEREQU1RjsEBERUVRjsENERERRjcEOERERRTUGO0RERBTVGOwQERFRVGOwQ0RERFGNwQ4RERFFtf8PvJlBIb+scX0AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"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": [
"#### 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 model. Therefore, it gives us a better understanding of how well our model generalizes on new data.\n",
"\n",
"We know the outcome of each data point in the testing dataset, making it great to test with! 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",
"Let's split our dataset into train and test sets. Around 80% of the entire dataset will be used for training and 20% for testing. We create a mask to select random rows using the __np.random.rand()__ function: \n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"msk = np.random.rand(len(df)) < 0.8\n",
"train = cdf[msk]\n",
"test = cdf[~msk]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Train data distribution\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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h4jiipn1dwLtrvI3WuJ0AoMGqV+n9ppOnaztK6XxHP3o39/4cTyrFScmAr/4hb7XOxzytnatXJuzZo28r6jwv+4mmuspUezgmh1wzQ5RPFFdj9LQACQnB35e71oRlXowDodc8/LNNy2Lft94w39PKyusXg3cdpuxNTueCgqAZ55Re8++cnLkVJXqguJoradE0YFrdoioTXr+eXPi9K4VUWkLIQTQvr1MFAoL5chIoO3zVvj3v+V9cnLgrdwqtLU6qq0wpk0LPYITiEo9pUC1iIg0tiY7y5Ytw0UXXYTOnTujc+fOuPzyy/H222+7n7/jjjvgcDi8bpdddpnXMZqamjB9+nR069YNKSkpmDhxIr41q6IXEcUcs3op6V0rEs558/OBgwdbpnW2bJGjFcGmt4x8uHfv3vLfGzYYS3icTjkiBaiv/RECmDxZbic3ct12NDml+GJrb6zs7Gw89thjOPfccwEAL774IvLy8vDpp5/iwgsvBABce+21WLFihfs1iT6FHgoLC/H666+juLgY6enpmD17NsaPH4/du3fDyVSfKKr51scx2rTS8ziqU0GhdhLpXSsSbg8n355WTz8tp7ccDu/3pCVAa9e21NP57ju1eje+ycKGDXJKa+5cmbj07w8kJMiRkkA8qxWrrjUyY01SpJucUpwRUaZLly7ib3/7mxBCiClTpoi8vLyAscePHxcJCQmiuLjY/djhw4dFu3btxDvvvKN8ztraWgFA1NbWGr5uItJn3TohsrO1vULylp0tHw/3OCq3hobgxz19OvRxc3JknBBCNDUJ4XQGj3c6ZZw/TU1CFBUJUVAg75ua/L+3nJzW3yO91xrK3Lmt34vTKR/39NJLat/rl15SOy+RXqqf31GzZsflcqG4uBg//vgjLr/8cvfjpaWl6NGjBwYMGIDf//73qKmpcT+3e/dunDp1CmPGjHE/lpWVhdzcXOzatSvguZqamlBXV+d1I6LI0bPLychxVPzzn8GfV9ld9YtftIwshNPDad48udB35kxZpG/mTPn1hx96T295rnnxrP2zYwdQVBR4BMXh0LeuZfFiuYC7qEguRi4qkl/7tmXIyVE7nmockWUilHwF9Nlnn4mUlBThdDpFWlqaePPNN93PFRcXizfeeEOUl5eLjRs3iosvvlhceOGF4uTJk0IIIV5++WWRmJjY6pijR48Wd911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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"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": {},
"source": [
"<h2 id=\"multiple_regression_model\">Multiple Regression Model</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In reality, there are multiple variables that impact the co2emission. When more than one independent variable is present, the process is called multiple linear regression. An example of multiple linear regression is predicting co2emission using the features FUELCONSUMPTION_COMB, EngineSize and Cylinders of cars. The good thing here is that multiple linear regression model is the extension of the simple linear regression model.\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Coefficients: [[9.81545776 7.85767764 9.73745704]]\n"
]
}
],
"source": [
"from sklearn import linear_model\n",
"regr = linear_model.LinearRegression()\n",
"x = np.asanyarray(train[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_COMB']])\n",
"y = np.asanyarray(train[['CO2EMISSIONS']])\n",
"regr.fit (x, y)\n",
"# The coefficients\n",
"print ('Coefficients: ', regr.coef_)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As mentioned before, __Coefficient__ and __Intercept__ are the parameters of the fitted line. \n",
"Given that it is a multiple linear regression model with 3 parameters and that the parameters are the intercept and coefficients of the hyperplane, sklearn can estimate them from our data. Scikit-learn uses plain Ordinary Least Squares method to solve this problem.\n",
"\n",
"#### Ordinary Least Squares (OLS)\n",
"OLS is a method for estimating the unknown parameters in a linear regression model. OLS chooses the parameters of a linear function of a set of explanatory variables by minimizing the sum of the squares of the differences between the target dependent variable and those predicted by the linear function. In other words, it tries to minimizes the sum of squared errors (SSE) or mean squared error (MSE) between the target variable (y) and our predicted output ($\\hat{y}$) over all samples in the dataset.\n",
"\n",
"OLS can find the best parameters using of the following methods:\n",
"* Solving the model parameters analytically using closed-form equations\n",
"* Using an optimization algorithm (Gradient Descent, Stochastic Gradient Descent, Newtons Method, etc.)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"prediction\">Prediction</h2>\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean Squared Error (MSE) : 522.80\n",
"Variance score: 0.89\n"
]
}
],
"source": [
"y_hat= regr.predict(test[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_COMB']])\n",
"x = np.asanyarray(test[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_COMB']])\n",
"y = np.asanyarray(test[['CO2EMISSIONS']])\n",
"print(\"Mean Squared Error (MSE) : %.2f\"\n",
" % np.mean((y_hat - y) ** 2))\n",
"\n",
"# Explained variance score: 1 is perfect prediction\n",
"print('Variance score: %.2f' % regr.score(x, y))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Explained variance regression score:__ \n",
"Let $\\hat{y}$ be the estimated target output, y the corresponding (correct) target output, and Var be the Variance (the square of the standard deviation). Then the explained variance is estimated as follows:\n",
"\n",
"$\\texttt{explainedVariance}(y, \\hat{y}) = 1 - \\frac{Var\\{ y - \\hat{y}\\}}{Var\\{y\\}}$ \n",
"The best possible score is 1.0, the lower values are worse.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"practice\">Practice</h2>\n",
"Try to use a multiple linear regression with the same dataset, but this time use FUELCONSUMPTION_CITY and FUELCONSUMPTION_HWY instead of FUELCONSUMPTION_COMB. Does it result in better accuracy?\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Coefficients: [[9.85404898 7.62773683 5.96756017 3.56958505]]\n",
"Residual sum of squares (MSE): 521.52\n",
"Variance score (R^2): 0.89\n"
]
}
],
"source": [
"from sklearn import linear_model\n",
"import numpy as np\n",
"\n",
"# Membuat model regresi linear\n",
"regr = linear_model.LinearRegression()\n",
"\n",
"# Menentukan fitur dan target\n",
"x = np.asanyarray(train[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_CITY','FUELCONSUMPTION_HWY']])\n",
"y = np.asanyarray(train[['CO2EMISSIONS']])\n",
"\n",
"# Melatih model\n",
"regr.fit(x, y)\n",
"\n",
"# Menampilkan koefisien\n",
"print('Coefficients: ', regr.coef_)\n",
"\n",
"# Memprediksi nilai CO2EMISSIONS pada data test\n",
"y_ = regr.predict(np.asanyarray(test[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_CITY','FUELCONSUMPTION_HWY']]))\n",
"\n",
"# Menghitung residual sum of squares dan variance score\n",
"x_test = np.asanyarray(test[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_CITY','FUELCONSUMPTION_HWY']])\n",
"y_test = np.asanyarray(test[['CO2EMISSIONS']])\n",
"print(\"Residual sum of squares (MSE): %.2f\" % np.mean((y_ - y_test) ** 2))\n",
"print('Variance score (R^2): %.2f' % regr.score(x_test, y_test))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"regr = linear_model.LinearRegression()\n",
"x = np.asanyarray(train[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_CITY','FUELCONSUMPTION_HWY']])\n",
"y = np.asanyarray(train[['CO2EMISSIONS']])\n",
"regr.fit (x, y)\n",
"print ('Coefficients: ', regr.coef_)\n",
"y_= regr.predict(test[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_CITY','FUELCONSUMPTION_HWY']])\n",
"x = np.asanyarray(test[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_CITY','FUELCONSUMPTION_HWY']])\n",
"y = np.asanyarray(test[['CO2EMISSIONS']])\n",
"print(\"Residual sum of squares: %.2f\"% np.mean((y_ - y) ** 2))\n",
"print('Variance score: %.2f' % regr.score(x, y))\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Thank you for completing this lab!\n",
"\n",
"\n",
"## Author\n",
"\n",
"Saeed Aghabozorgi\n",
"\n",
"\n",
"### Other Contributors\n",
"\n",
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>\n",
"\n",
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n",
" \n",
"<!--\n",
"\n",
"## Change Log\n",
"\n",
"\n",
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n",
"|---|---|---|---|\n",
"| 2020-11-03 | 2.1 | Lakshmi | Made changes in URL |\n",
"| 2020-08-27 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n",
"| | | | |\n",
"| | | | |\n",
"\n",
"\n",
"\n",
"\n",
"--!>\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.12"
},
"prev_pub_hash": "c1170d4cb1c9bbce7dbbef74b645fc6b265a5aaf4ce89c4ac861feed8769ed99"
},
"nbformat": 4,
"nbformat_minor": 4
}