Last active
April 28, 2022 06:53
-
-
Save ankitbora31/ed789ad93d30344c5da18f7a996d55d0 to your computer and use it in GitHub Desktop.
House Sales in King Country (Data analysis with python)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<center>\n", | |
" <img src=\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/FinalModule_Coursera/images/IDSNlogo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n", | |
"</center>\n", | |
"\n", | |
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# House Sales in King County, USA\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"This dataset contains house sale prices for King County, which includes Seattle. It includes homes sold between May 2014 and May 2015.\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"| Variable | Description |\n", | |
"| ------------- | ----------------------------------------------------------------------------------------------------------- |\n", | |
"| id | A notation for a house |\n", | |
"| date | Date house was sold |\n", | |
"| price | Price is prediction target |\n", | |
"| bedrooms | Number of bedrooms |\n", | |
"| bathrooms | Number of bathrooms |\n", | |
"| sqft_living | Square footage of the home |\n", | |
"| sqft_lot | Square footage of the lot |\n", | |
"| floors | Total floors (levels) in house |\n", | |
"| waterfront | House which has a view to a waterfront |\n", | |
"| view | Has been viewed |\n", | |
"| condition | How good the condition is overall |\n", | |
"| grade | overall grade given to the housing unit, based on King County grading system |\n", | |
"| sqft_above | Square footage of house apart from basement |\n", | |
"| sqft_basement | Square footage of the basement |\n", | |
"| yr_built | Built Year |\n", | |
"| yr_renovated | Year when house was renovated |\n", | |
"| zipcode | Zip code |\n", | |
"| lat | Latitude coordinate |\n", | |
"| long | Longitude coordinate |\n", | |
"| sqft_living15 | Living room area in 2015(implies-- some renovations) This might or might not have affected the lotsize area |\n", | |
"| sqft_lot15 | LotSize area in 2015(implies-- some renovations) |\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"You will require the following libraries:\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"import matplotlib.pyplot as plt\n", | |
"import numpy as np\n", | |
"import seaborn as sns\n", | |
"from sklearn.pipeline import Pipeline\n", | |
"from sklearn.preprocessing import StandardScaler,PolynomialFeatures\n", | |
"from sklearn.linear_model import LinearRegression\n", | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Module 1: Importing Data Sets\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Load the csv:\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [], | |
"source": [ | |
"file_name='https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/FinalModule_Coursera/data/kc_house_data_NaN.csv'\n", | |
"df=pd.read_csv(file_name)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We use the method <code>head</code> to display the first 5 columns of the dataframe.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Unnamed: 0</th>\n", | |
" <th>id</th>\n", | |
" <th>date</th>\n", | |
" <th>price</th>\n", | |
" <th>bedrooms</th>\n", | |
" <th>bathrooms</th>\n", | |
" <th>sqft_living</th>\n", | |
" <th>sqft_lot</th>\n", | |
" <th>floors</th>\n", | |
" <th>waterfront</th>\n", | |
" <th>...</th>\n", | |
" <th>grade</th>\n", | |
" <th>sqft_above</th>\n", | |
" <th>sqft_basement</th>\n", | |
" <th>yr_built</th>\n", | |
" <th>yr_renovated</th>\n", | |
" <th>zipcode</th>\n", | |
" <th>lat</th>\n", | |
" <th>long</th>\n", | |
" <th>sqft_living15</th>\n", | |
" <th>sqft_lot15</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>0</td>\n", | |
" <td>7129300520</td>\n", | |
" <td>20141013T000000</td>\n", | |
" <td>221900.0</td>\n", | |
" <td>3.0</td>\n", | |
" <td>1.00</td>\n", | |
" <td>1180</td>\n", | |
" <td>5650</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>7</td>\n", | |
" <td>1180</td>\n", | |
" <td>0</td>\n", | |
" <td>1955</td>\n", | |
" <td>0</td>\n", | |
" <td>98178</td>\n", | |
" <td>47.5112</td>\n", | |
" <td>-122.257</td>\n", | |
" <td>1340</td>\n", | |
" <td>5650</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>1</td>\n", | |
" <td>6414100192</td>\n", | |
" <td>20141209T000000</td>\n", | |
" <td>538000.0</td>\n", | |
" <td>3.0</td>\n", | |
" <td>2.25</td>\n", | |
" <td>2570</td>\n", | |
" <td>7242</td>\n", | |
" <td>2.0</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>7</td>\n", | |
" <td>2170</td>\n", | |
" <td>400</td>\n", | |
" <td>1951</td>\n", | |
" <td>1991</td>\n", | |
" <td>98125</td>\n", | |
" <td>47.7210</td>\n", | |
" <td>-122.319</td>\n", | |
" <td>1690</td>\n", | |
" <td>7639</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>2</td>\n", | |
" <td>5631500400</td>\n", | |
" <td>20150225T000000</td>\n", | |
" <td>180000.0</td>\n", | |
" <td>2.0</td>\n", | |
" <td>1.00</td>\n", | |
" <td>770</td>\n", | |
" <td>10000</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>6</td>\n", | |
" <td>770</td>\n", | |
" <td>0</td>\n", | |
" <td>1933</td>\n", | |
" <td>0</td>\n", | |
" <td>98028</td>\n", | |
" <td>47.7379</td>\n", | |
" <td>-122.233</td>\n", | |
" <td>2720</td>\n", | |
" <td>8062</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>3</td>\n", | |
" <td>2487200875</td>\n", | |
" <td>20141209T000000</td>\n", | |
" <td>604000.0</td>\n", | |
" <td>4.0</td>\n", | |
" <td>3.00</td>\n", | |
" <td>1960</td>\n", | |
" <td>5000</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>7</td>\n", | |
" <td>1050</td>\n", | |
" <td>910</td>\n", | |
" <td>1965</td>\n", | |
" <td>0</td>\n", | |
" <td>98136</td>\n", | |
" <td>47.5208</td>\n", | |
" <td>-122.393</td>\n", | |
" <td>1360</td>\n", | |
" <td>5000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>4</td>\n", | |
" <td>1954400510</td>\n", | |
" <td>20150218T000000</td>\n", | |
" <td>510000.0</td>\n", | |
" <td>3.0</td>\n", | |
" <td>2.00</td>\n", | |
" <td>1680</td>\n", | |
" <td>8080</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>8</td>\n", | |
" <td>1680</td>\n", | |
" <td>0</td>\n", | |
" <td>1987</td>\n", | |
" <td>0</td>\n", | |
" <td>98074</td>\n", | |
" <td>47.6168</td>\n", | |
" <td>-122.045</td>\n", | |
" <td>1800</td>\n", | |
" <td>7503</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 22 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Unnamed: 0 id date price bedrooms bathrooms \\\n", | |
"0 0 7129300520 20141013T000000 221900.0 3.0 1.00 \n", | |
"1 1 6414100192 20141209T000000 538000.0 3.0 2.25 \n", | |
"2 2 5631500400 20150225T000000 180000.0 2.0 1.00 \n", | |
"3 3 2487200875 20141209T000000 604000.0 4.0 3.00 \n", | |
"4 4 1954400510 20150218T000000 510000.0 3.0 2.00 \n", | |
"\n", | |
" sqft_living sqft_lot floors waterfront ... grade sqft_above \\\n", | |
"0 1180 5650 1.0 0 ... 7 1180 \n", | |
"1 2570 7242 2.0 0 ... 7 2170 \n", | |
"2 770 10000 1.0 0 ... 6 770 \n", | |
"3 1960 5000 1.0 0 ... 7 1050 \n", | |
"4 1680 8080 1.0 0 ... 8 1680 \n", | |
"\n", | |
" sqft_basement yr_built yr_renovated zipcode lat long \\\n", | |
"0 0 1955 0 98178 47.5112 -122.257 \n", | |
"1 400 1951 1991 98125 47.7210 -122.319 \n", | |
"2 0 1933 0 98028 47.7379 -122.233 \n", | |
"3 910 1965 0 98136 47.5208 -122.393 \n", | |
"4 0 1987 0 98074 47.6168 -122.045 \n", | |
"\n", | |
" sqft_living15 sqft_lot15 \n", | |
"0 1340 5650 \n", | |
"1 1690 7639 \n", | |
"2 2720 8062 \n", | |
"3 1360 5000 \n", | |
"4 1800 7503 \n", | |
"\n", | |
"[5 rows x 22 columns]" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Question 1\n", | |
"\n", | |
"Display the data types of each column using the function dtypes, then take a screenshot and submit it, include your code in the image.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Unnamed: 0 int64\n", | |
"id int64\n", | |
"date object\n", | |
"price float64\n", | |
"bedrooms float64\n", | |
"bathrooms float64\n", | |
"sqft_living int64\n", | |
"sqft_lot int64\n", | |
"floors float64\n", | |
"waterfront int64\n", | |
"view int64\n", | |
"condition int64\n", | |
"grade int64\n", | |
"sqft_above int64\n", | |
"sqft_basement int64\n", | |
"yr_built int64\n", | |
"yr_renovated int64\n", | |
"zipcode int64\n", | |
"lat float64\n", | |
"long float64\n", | |
"sqft_living15 int64\n", | |
"sqft_lot15 int64\n", | |
"dtype: object" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.dtypes" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We use the method describe to obtain a statistical summary of the dataframe.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Unnamed: 0</th>\n", | |
" <th>id</th>\n", | |
" <th>price</th>\n", | |
" <th>bedrooms</th>\n", | |
" <th>bathrooms</th>\n", | |
" <th>sqft_living</th>\n", | |
" <th>sqft_lot</th>\n", | |
" <th>floors</th>\n", | |
" <th>waterfront</th>\n", | |
" <th>view</th>\n", | |
" <th>...</th>\n", | |
" <th>grade</th>\n", | |
" <th>sqft_above</th>\n", | |
" <th>sqft_basement</th>\n", | |
" <th>yr_built</th>\n", | |
" <th>yr_renovated</th>\n", | |
" <th>zipcode</th>\n", | |
" <th>lat</th>\n", | |
" <th>long</th>\n", | |
" <th>sqft_living15</th>\n", | |
" <th>sqft_lot15</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>count</th>\n", | |
" <td>21613.00000</td>\n", | |
" <td>2.161300e+04</td>\n", | |
" <td>2.161300e+04</td>\n", | |
" <td>21600.000000</td>\n", | |
" <td>21603.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>2.161300e+04</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>...</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>mean</th>\n", | |
" <td>10806.00000</td>\n", | |
" <td>4.580302e+09</td>\n", | |
" <td>5.400881e+05</td>\n", | |
" <td>3.372870</td>\n", | |
" <td>2.115736</td>\n", | |
" <td>2079.899736</td>\n", | |
" <td>1.510697e+04</td>\n", | |
" <td>1.494309</td>\n", | |
" <td>0.007542</td>\n", | |
" <td>0.234303</td>\n", | |
" <td>...</td>\n", | |
" <td>7.656873</td>\n", | |
" <td>1788.390691</td>\n", | |
" <td>291.509045</td>\n", | |
" <td>1971.005136</td>\n", | |
" <td>84.402258</td>\n", | |
" <td>98077.939805</td>\n", | |
" <td>47.560053</td>\n", | |
" <td>-122.213896</td>\n", | |
" <td>1986.552492</td>\n", | |
" <td>12768.455652</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>std</th>\n", | |
" <td>6239.28002</td>\n", | |
" <td>2.876566e+09</td>\n", | |
" <td>3.671272e+05</td>\n", | |
" <td>0.926657</td>\n", | |
" <td>0.768996</td>\n", | |
" <td>918.440897</td>\n", | |
" <td>4.142051e+04</td>\n", | |
" <td>0.539989</td>\n", | |
" <td>0.086517</td>\n", | |
" <td>0.766318</td>\n", | |
" <td>...</td>\n", | |
" <td>1.175459</td>\n", | |
" <td>828.090978</td>\n", | |
" <td>442.575043</td>\n", | |
" <td>29.373411</td>\n", | |
" <td>401.679240</td>\n", | |
" <td>53.505026</td>\n", | |
" <td>0.138564</td>\n", | |
" <td>0.140828</td>\n", | |
" <td>685.391304</td>\n", | |
" <td>27304.179631</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>min</th>\n", | |
" <td>0.00000</td>\n", | |
" <td>1.000102e+06</td>\n", | |
" <td>7.500000e+04</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.500000</td>\n", | |
" <td>290.000000</td>\n", | |
" <td>5.200000e+02</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>...</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>290.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1900.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>98001.000000</td>\n", | |
" <td>47.155900</td>\n", | |
" <td>-122.519000</td>\n", | |
" <td>399.000000</td>\n", | |
" <td>651.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>25%</th>\n", | |
" <td>5403.00000</td>\n", | |
" <td>2.123049e+09</td>\n", | |
" <td>3.219500e+05</td>\n", | |
" <td>3.000000</td>\n", | |
" <td>1.750000</td>\n", | |
" <td>1427.000000</td>\n", | |
" <td>5.040000e+03</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>...</td>\n", | |
" <td>7.000000</td>\n", | |
" <td>1190.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1951.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>98033.000000</td>\n", | |
" <td>47.471000</td>\n", | |
" <td>-122.328000</td>\n", | |
" <td>1490.000000</td>\n", | |
" <td>5100.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>50%</th>\n", | |
" <td>10806.00000</td>\n", | |
" <td>3.904930e+09</td>\n", | |
" <td>4.500000e+05</td>\n", | |
" <td>3.000000</td>\n", | |
" <td>2.250000</td>\n", | |
" <td>1910.000000</td>\n", | |
" <td>7.618000e+03</td>\n", | |
" <td>1.500000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>...</td>\n", | |
" <td>7.000000</td>\n", | |
" <td>1560.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1975.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>98065.000000</td>\n", | |
" <td>47.571800</td>\n", | |
" <td>-122.230000</td>\n", | |
" <td>1840.000000</td>\n", | |
" <td>7620.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>75%</th>\n", | |
" <td>16209.00000</td>\n", | |
" <td>7.308900e+09</td>\n", | |
" <td>6.450000e+05</td>\n", | |
" <td>4.000000</td>\n", | |
" <td>2.500000</td>\n", | |
" <td>2550.000000</td>\n", | |
" <td>1.068800e+04</td>\n", | |
" <td>2.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>...</td>\n", | |
" <td>8.000000</td>\n", | |
" <td>2210.000000</td>\n", | |
" <td>560.000000</td>\n", | |
" <td>1997.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>98118.000000</td>\n", | |
" <td>47.678000</td>\n", | |
" <td>-122.125000</td>\n", | |
" <td>2360.000000</td>\n", | |
" <td>10083.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>max</th>\n", | |
" <td>21612.00000</td>\n", | |
" <td>9.900000e+09</td>\n", | |
" <td>7.700000e+06</td>\n", | |
" <td>33.000000</td>\n", | |
" <td>8.000000</td>\n", | |
" <td>13540.000000</td>\n", | |
" <td>1.651359e+06</td>\n", | |
" <td>3.500000</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>4.000000</td>\n", | |
" <td>...</td>\n", | |
" <td>13.000000</td>\n", | |
" <td>9410.000000</td>\n", | |
" <td>4820.000000</td>\n", | |
" <td>2015.000000</td>\n", | |
" <td>2015.000000</td>\n", | |
" <td>98199.000000</td>\n", | |
" <td>47.777600</td>\n", | |
" <td>-121.315000</td>\n", | |
" <td>6210.000000</td>\n", | |
" <td>871200.000000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>8 rows × 21 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Unnamed: 0 id price bedrooms bathrooms \\\n", | |
"count 21613.00000 2.161300e+04 2.161300e+04 21600.000000 21603.000000 \n", | |
"mean 10806.00000 4.580302e+09 5.400881e+05 3.372870 2.115736 \n", | |
"std 6239.28002 2.876566e+09 3.671272e+05 0.926657 0.768996 \n", | |
"min 0.00000 1.000102e+06 7.500000e+04 1.000000 0.500000 \n", | |
"25% 5403.00000 2.123049e+09 3.219500e+05 3.000000 1.750000 \n", | |
"50% 10806.00000 3.904930e+09 4.500000e+05 3.000000 2.250000 \n", | |
"75% 16209.00000 7.308900e+09 6.450000e+05 4.000000 2.500000 \n", | |
"max 21612.00000 9.900000e+09 7.700000e+06 33.000000 8.000000 \n", | |
"\n", | |
" sqft_living sqft_lot floors waterfront view \\\n", | |
"count 21613.000000 2.161300e+04 21613.000000 21613.000000 21613.000000 \n", | |
"mean 2079.899736 1.510697e+04 1.494309 0.007542 0.234303 \n", | |
"std 918.440897 4.142051e+04 0.539989 0.086517 0.766318 \n", | |
"min 290.000000 5.200000e+02 1.000000 0.000000 0.000000 \n", | |
"25% 1427.000000 5.040000e+03 1.000000 0.000000 0.000000 \n", | |
"50% 1910.000000 7.618000e+03 1.500000 0.000000 0.000000 \n", | |
"75% 2550.000000 1.068800e+04 2.000000 0.000000 0.000000 \n", | |
"max 13540.000000 1.651359e+06 3.500000 1.000000 4.000000 \n", | |
"\n", | |
" ... grade sqft_above sqft_basement yr_built \\\n", | |
"count ... 21613.000000 21613.000000 21613.000000 21613.000000 \n", | |
"mean ... 7.656873 1788.390691 291.509045 1971.005136 \n", | |
"std ... 1.175459 828.090978 442.575043 29.373411 \n", | |
"min ... 1.000000 290.000000 0.000000 1900.000000 \n", | |
"25% ... 7.000000 1190.000000 0.000000 1951.000000 \n", | |
"50% ... 7.000000 1560.000000 0.000000 1975.000000 \n", | |
"75% ... 8.000000 2210.000000 560.000000 1997.000000 \n", | |
"max ... 13.000000 9410.000000 4820.000000 2015.000000 \n", | |
"\n", | |
" yr_renovated zipcode lat long sqft_living15 \\\n", | |
"count 21613.000000 21613.000000 21613.000000 21613.000000 21613.000000 \n", | |
"mean 84.402258 98077.939805 47.560053 -122.213896 1986.552492 \n", | |
"std 401.679240 53.505026 0.138564 0.140828 685.391304 \n", | |
"min 0.000000 98001.000000 47.155900 -122.519000 399.000000 \n", | |
"25% 0.000000 98033.000000 47.471000 -122.328000 1490.000000 \n", | |
"50% 0.000000 98065.000000 47.571800 -122.230000 1840.000000 \n", | |
"75% 0.000000 98118.000000 47.678000 -122.125000 2360.000000 \n", | |
"max 2015.000000 98199.000000 47.777600 -121.315000 6210.000000 \n", | |
"\n", | |
" sqft_lot15 \n", | |
"count 21613.000000 \n", | |
"mean 12768.455652 \n", | |
"std 27304.179631 \n", | |
"min 651.000000 \n", | |
"25% 5100.000000 \n", | |
"50% 7620.000000 \n", | |
"75% 10083.000000 \n", | |
"max 871200.000000 \n", | |
"\n", | |
"[8 rows x 21 columns]" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.describe()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Module 2: Data Wrangling\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Question 2\n", | |
"\n", | |
"Drop the columns <code>\"id\"</code> and <code>\"Unnamed: 0\"</code> from axis 1 using the method <code>drop()</code>, then use the method <code>describe()</code> to obtain a statistical summary of the data. Take a screenshot and submit it, make sure the <code>inplace</code> parameter is set to <code>True</code>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": 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>price</th>\n", | |
" <th>bedrooms</th>\n", | |
" <th>bathrooms</th>\n", | |
" <th>sqft_living</th>\n", | |
" <th>sqft_lot</th>\n", | |
" <th>floors</th>\n", | |
" <th>waterfront</th>\n", | |
" <th>view</th>\n", | |
" <th>condition</th>\n", | |
" <th>grade</th>\n", | |
" <th>sqft_above</th>\n", | |
" <th>sqft_basement</th>\n", | |
" <th>yr_built</th>\n", | |
" <th>yr_renovated</th>\n", | |
" <th>zipcode</th>\n", | |
" <th>lat</th>\n", | |
" <th>long</th>\n", | |
" <th>sqft_living15</th>\n", | |
" <th>sqft_lot15</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>count</th>\n", | |
" <td>2.161300e+04</td>\n", | |
" <td>21600.000000</td>\n", | |
" <td>21603.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>2.161300e+04</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" <td>21613.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>mean</th>\n", | |
" <td>5.400881e+05</td>\n", | |
" <td>3.372870</td>\n", | |
" <td>2.115736</td>\n", | |
" <td>2079.899736</td>\n", | |
" <td>1.510697e+04</td>\n", | |
" <td>1.494309</td>\n", | |
" <td>0.007542</td>\n", | |
" <td>0.234303</td>\n", | |
" <td>3.409430</td>\n", | |
" <td>7.656873</td>\n", | |
" <td>1788.390691</td>\n", | |
" <td>291.509045</td>\n", | |
" <td>1971.005136</td>\n", | |
" <td>84.402258</td>\n", | |
" <td>98077.939805</td>\n", | |
" <td>47.560053</td>\n", | |
" <td>-122.213896</td>\n", | |
" <td>1986.552492</td>\n", | |
" <td>12768.455652</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>std</th>\n", | |
" <td>3.671272e+05</td>\n", | |
" <td>0.926657</td>\n", | |
" <td>0.768996</td>\n", | |
" <td>918.440897</td>\n", | |
" <td>4.142051e+04</td>\n", | |
" <td>0.539989</td>\n", | |
" <td>0.086517</td>\n", | |
" <td>0.766318</td>\n", | |
" <td>0.650743</td>\n", | |
" <td>1.175459</td>\n", | |
" <td>828.090978</td>\n", | |
" <td>442.575043</td>\n", | |
" <td>29.373411</td>\n", | |
" <td>401.679240</td>\n", | |
" <td>53.505026</td>\n", | |
" <td>0.138564</td>\n", | |
" <td>0.140828</td>\n", | |
" <td>685.391304</td>\n", | |
" <td>27304.179631</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>min</th>\n", | |
" <td>7.500000e+04</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.500000</td>\n", | |
" <td>290.000000</td>\n", | |
" <td>5.200000e+02</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>290.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1900.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>98001.000000</td>\n", | |
" <td>47.155900</td>\n", | |
" <td>-122.519000</td>\n", | |
" <td>399.000000</td>\n", | |
" <td>651.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>25%</th>\n", | |
" <td>3.219500e+05</td>\n", | |
" <td>3.000000</td>\n", | |
" <td>1.750000</td>\n", | |
" <td>1427.000000</td>\n", | |
" <td>5.040000e+03</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>3.000000</td>\n", | |
" <td>7.000000</td>\n", | |
" <td>1190.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1951.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>98033.000000</td>\n", | |
" <td>47.471000</td>\n", | |
" <td>-122.328000</td>\n", | |
" <td>1490.000000</td>\n", | |
" <td>5100.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>50%</th>\n", | |
" <td>4.500000e+05</td>\n", | |
" <td>3.000000</td>\n", | |
" <td>2.250000</td>\n", | |
" <td>1910.000000</td>\n", | |
" <td>7.618000e+03</td>\n", | |
" <td>1.500000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>3.000000</td>\n", | |
" <td>7.000000</td>\n", | |
" <td>1560.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1975.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>98065.000000</td>\n", | |
" <td>47.571800</td>\n", | |
" <td>-122.230000</td>\n", | |
" <td>1840.000000</td>\n", | |
" <td>7620.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>75%</th>\n", | |
" <td>6.450000e+05</td>\n", | |
" <td>4.000000</td>\n", | |
" <td>2.500000</td>\n", | |
" <td>2550.000000</td>\n", | |
" <td>1.068800e+04</td>\n", | |
" <td>2.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>4.000000</td>\n", | |
" <td>8.000000</td>\n", | |
" <td>2210.000000</td>\n", | |
" <td>560.000000</td>\n", | |
" <td>1997.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>98118.000000</td>\n", | |
" <td>47.678000</td>\n", | |
" <td>-122.125000</td>\n", | |
" <td>2360.000000</td>\n", | |
" <td>10083.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>max</th>\n", | |
" <td>7.700000e+06</td>\n", | |
" <td>33.000000</td>\n", | |
" <td>8.000000</td>\n", | |
" <td>13540.000000</td>\n", | |
" <td>1.651359e+06</td>\n", | |
" <td>3.500000</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>4.000000</td>\n", | |
" <td>5.000000</td>\n", | |
" <td>13.000000</td>\n", | |
" <td>9410.000000</td>\n", | |
" <td>4820.000000</td>\n", | |
" <td>2015.000000</td>\n", | |
" <td>2015.000000</td>\n", | |
" <td>98199.000000</td>\n", | |
" <td>47.777600</td>\n", | |
" <td>-121.315000</td>\n", | |
" <td>6210.000000</td>\n", | |
" <td>871200.000000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" price bedrooms bathrooms sqft_living sqft_lot \\\n", | |
"count 2.161300e+04 21600.000000 21603.000000 21613.000000 2.161300e+04 \n", | |
"mean 5.400881e+05 3.372870 2.115736 2079.899736 1.510697e+04 \n", | |
"std 3.671272e+05 0.926657 0.768996 918.440897 4.142051e+04 \n", | |
"min 7.500000e+04 1.000000 0.500000 290.000000 5.200000e+02 \n", | |
"25% 3.219500e+05 3.000000 1.750000 1427.000000 5.040000e+03 \n", | |
"50% 4.500000e+05 3.000000 2.250000 1910.000000 7.618000e+03 \n", | |
"75% 6.450000e+05 4.000000 2.500000 2550.000000 1.068800e+04 \n", | |
"max 7.700000e+06 33.000000 8.000000 13540.000000 1.651359e+06 \n", | |
"\n", | |
" floors waterfront view condition grade \\\n", | |
"count 21613.000000 21613.000000 21613.000000 21613.000000 21613.000000 \n", | |
"mean 1.494309 0.007542 0.234303 3.409430 7.656873 \n", | |
"std 0.539989 0.086517 0.766318 0.650743 1.175459 \n", | |
"min 1.000000 0.000000 0.000000 1.000000 1.000000 \n", | |
"25% 1.000000 0.000000 0.000000 3.000000 7.000000 \n", | |
"50% 1.500000 0.000000 0.000000 3.000000 7.000000 \n", | |
"75% 2.000000 0.000000 0.000000 4.000000 8.000000 \n", | |
"max 3.500000 1.000000 4.000000 5.000000 13.000000 \n", | |
"\n", | |
" sqft_above sqft_basement yr_built yr_renovated zipcode \\\n", | |
"count 21613.000000 21613.000000 21613.000000 21613.000000 21613.000000 \n", | |
"mean 1788.390691 291.509045 1971.005136 84.402258 98077.939805 \n", | |
"std 828.090978 442.575043 29.373411 401.679240 53.505026 \n", | |
"min 290.000000 0.000000 1900.000000 0.000000 98001.000000 \n", | |
"25% 1190.000000 0.000000 1951.000000 0.000000 98033.000000 \n", | |
"50% 1560.000000 0.000000 1975.000000 0.000000 98065.000000 \n", | |
"75% 2210.000000 560.000000 1997.000000 0.000000 98118.000000 \n", | |
"max 9410.000000 4820.000000 2015.000000 2015.000000 98199.000000 \n", | |
"\n", | |
" lat long sqft_living15 sqft_lot15 \n", | |
"count 21613.000000 21613.000000 21613.000000 21613.000000 \n", | |
"mean 47.560053 -122.213896 1986.552492 12768.455652 \n", | |
"std 0.138564 0.140828 685.391304 27304.179631 \n", | |
"min 47.155900 -122.519000 399.000000 651.000000 \n", | |
"25% 47.471000 -122.328000 1490.000000 5100.000000 \n", | |
"50% 47.571800 -122.230000 1840.000000 7620.000000 \n", | |
"75% 47.678000 -122.125000 2360.000000 10083.000000 \n", | |
"max 47.777600 -121.315000 6210.000000 871200.000000 " | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.drop(['id','Unnamed: 0'],axis=1,inplace=True)\n", | |
"df.describe()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can see we have missing values for the columns <code> bedrooms</code> and <code> bathrooms </code>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"number of NaN values for the column bedrooms : 13\n", | |
"number of NaN values for the column bathrooms : 10\n" | |
] | |
} | |
], | |
"source": [ | |
"print(\"number of NaN values for the column bedrooms :\", df['bedrooms'].isnull().sum())\n", | |
"print(\"number of NaN values for the column bathrooms :\", df['bathrooms'].isnull().sum())\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can replace the missing values of the column <code>'bedrooms'</code> with the mean of the column <code>'bedrooms' </code> using the method <code>replace()</code>. Don't forget to set the <code>inplace</code> parameter to <code>True</code>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"mean=df['bedrooms'].mean()\n", | |
"df['bedrooms'].replace(np.nan,mean, inplace=True)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We also replace the missing values of the column <code>'bathrooms'</code> with the mean of the column <code>'bathrooms' </code> using the method <code>replace()</code>. Don't forget to set the <code> inplace </code> parameter top <code> True </code>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"mean=df['bathrooms'].mean()\n", | |
"df['bathrooms'].replace(np.nan,mean, inplace=True)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"number of NaN values for the column bedrooms : 0\n", | |
"number of NaN values for the column bathrooms : 0\n" | |
] | |
} | |
], | |
"source": [ | |
"print(\"number of NaN values for the column bedrooms :\", df['bedrooms'].isnull().sum())\n", | |
"print(\"number of NaN values for the column bathrooms :\", df['bathrooms'].isnull().sum())" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Module 3: Exploratory Data Analysis\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Question 3\n", | |
"\n", | |
"Use the method <code>value_counts</code> to count the number of houses with unique floor values, use the method <code>.to_frame()</code> to convert it to a dataframe.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": 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>floors</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>1.0</th>\n", | |
" <td>10680</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2.0</th>\n", | |
" <td>8241</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1.5</th>\n", | |
" <td>1910</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3.0</th>\n", | |
" <td>613</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2.5</th>\n", | |
" <td>161</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3.5</th>\n", | |
" <td>8</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" floors\n", | |
"1.0 10680\n", | |
"2.0 8241\n", | |
"1.5 1910\n", | |
"3.0 613\n", | |
"2.5 161\n", | |
"3.5 8" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df['floors'].value_counts().to_frame()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Question 4\n", | |
"\n", | |
"Use the function <code>boxplot</code> in the seaborn library to determine whether houses with a waterfront view or without a waterfront view have more price outliers.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x19813a1f7c8>" | |
] | |
}, | |
"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": [ | |
"sns.boxplot(x=\"waterfront\",y=\"price\",data=df)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Question 5\n", | |
"\n", | |
"Use the function <code>regplot</code> in the seaborn library to determine if the feature <code>sqft_above</code> is negatively or positively correlated with price.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x19813d0e6c8>" | |
] | |
}, | |
"execution_count": 17, | |
"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": [ | |
"sns.regplot(x='sqft_above',y='price',data=df)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can use the Pandas method <code>corr()</code> to find the feature other than price that is most correlated with price.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"zipcode -0.053203\n", | |
"long 0.021626\n", | |
"condition 0.036362\n", | |
"yr_built 0.054012\n", | |
"sqft_lot15 0.082447\n", | |
"sqft_lot 0.089661\n", | |
"yr_renovated 0.126434\n", | |
"floors 0.256794\n", | |
"waterfront 0.266369\n", | |
"lat 0.307003\n", | |
"bedrooms 0.308797\n", | |
"sqft_basement 0.323816\n", | |
"view 0.397293\n", | |
"bathrooms 0.525738\n", | |
"sqft_living15 0.585379\n", | |
"sqft_above 0.605567\n", | |
"grade 0.667434\n", | |
"sqft_living 0.702035\n", | |
"price 1.000000\n", | |
"Name: price, dtype: float64" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.corr()['price'].sort_values()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Module 4: Model Development\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can Fit a linear regression model using the longitude feature <code>'long'</code> and caculate the R^2.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.00046769430149007363" | |
] | |
}, | |
"execution_count": 19, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"X = df[['long']]\n", | |
"Y = df['price']\n", | |
"lm = LinearRegression()\n", | |
"lm.fit(X,Y)\n", | |
"lm.score(X, Y)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Question 6\n", | |
"\n", | |
"Fit a linear regression model to predict the <code>'price'</code> using the feature <code>'sqft_living'</code> then calculate the R^2. Take a screenshot of your code and the value of the R^2.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.4928532179037931" | |
] | |
}, | |
"execution_count": 21, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lm = LinearRegression()\n", | |
"x = df[['sqft_living']]\n", | |
"y = df['price']\n", | |
"\n", | |
"lm.fit(x,y)\n", | |
"lm.score(x,y)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Question 7\n", | |
"\n", | |
"Fit a linear regression model to predict the <code>'price'</code> using the list of features:\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"features =[\"floors\", \"waterfront\",\"lat\" ,\"bedrooms\" ,\"sqft_basement\" ,\"view\" ,\"bathrooms\",\"sqft_living15\",\"sqft_above\",\"grade\",\"sqft_living\"] " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Then calculate the R^2. Take a screenshot of your code.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 33, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.6576543851004834" | |
] | |
}, | |
"execution_count": 33, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lm = LinearRegression()\n", | |
"x = df[features]\n", | |
"y = df['price']\n", | |
"lm.fit(x,y)\n", | |
"lm.score(x,y)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### This will help with Question 8\n", | |
"\n", | |
"Create a list of tuples, the first element in the tuple contains the name of the estimator:\n", | |
"\n", | |
"<code>'scale'</code>\n", | |
"\n", | |
"<code>'polynomial'</code>\n", | |
"\n", | |
"<code>'model'</code>\n", | |
"\n", | |
"The second element in the tuple contains the model constructor\n", | |
"\n", | |
"<code>StandardScaler()</code>\n", | |
"\n", | |
"<code>PolynomialFeatures(include_bias=False)</code>\n", | |
"\n", | |
"<code>LinearRegression()</code>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"Input=[('scale',StandardScaler()),('polynomial', PolynomialFeatures(include_bias=False)),('model',LinearRegression())]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Question 8\n", | |
"\n", | |
"Use the list to create a pipeline object to predict the 'price', fit the object using the features in the list <code>features</code>, and calculate the R^2.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.7465018419908188" | |
] | |
}, | |
"execution_count": 38, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pipe = Pipeline(Input)\n", | |
"x = df[features]\n", | |
"y = df['price']\n", | |
"pipe.fit(x,y)\n", | |
"pipe.score(x,y)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Module 5: Model Evaluation and Refinement\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Import the necessary modules:\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"done\n" | |
] | |
} | |
], | |
"source": [ | |
"from sklearn.model_selection import cross_val_score\n", | |
"from sklearn.model_selection import train_test_split\n", | |
"print(\"done\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We will split the data into training and testing sets:\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"number of test samples: 3242\n", | |
"number of training samples: 18371\n" | |
] | |
} | |
], | |
"source": [ | |
"features =[\"floors\", \"waterfront\",\"lat\" ,\"bedrooms\" ,\"sqft_basement\" ,\"view\" ,\"bathrooms\",\"sqft_living15\",\"sqft_above\",\"grade\",\"sqft_living\"] \n", | |
"X = df[features]\n", | |
"Y = df['price']\n", | |
"\n", | |
"x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.15, random_state=1)\n", | |
"\n", | |
"\n", | |
"print(\"number of test samples:\", x_test.shape[0])\n", | |
"print(\"number of training samples:\",x_train.shape[0])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Question 9\n", | |
"\n", | |
"Create and fit a Ridge regression object using the training data, set the regularization parameter to 0.1, and calculate the R^2 using the test data.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.linear_model import Ridge" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 43, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.6478759163939112" | |
] | |
}, | |
"execution_count": 43, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ridgeModel = Ridge(alpha=0.1)\n", | |
"ridgeModel.fit(x_train,y_train)\n", | |
"ridgeModel.score(x_test,y_test)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Question 10\n", | |
"\n", | |
"Perform a second order polynomial transform on both the training data and testing data. Create and fit a Ridge regression object using the training data, set the regularisation parameter to 0.1, and calculate the R^2 utilising the test data provided. Take a screenshot of your code and the R^2.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 47, | |
"metadata": { | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.7002744255607272" | |
] | |
}, | |
"execution_count": 47, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pr = PolynomialFeatures(degree=2)\n", | |
"x_train_pr = pr.fit_transform(x_train)\n", | |
"x_test_pr = pr.fit_transform(x_test)\n", | |
"\n", | |
"ridgeModel = Ridge(alpha=0.1)\n", | |
"ridgeModel.fit(x_train_pr, y_train)\n", | |
"ridgeModel.score(x_test_pr, y_test)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Once you complete your notebook you will have to share it. Select the icon on the top right a marked in red in the image below, a dialogue box should open, and select the option all content excluding sensitive code cells.</p>\n", | |
" <p><img width=\"600\" src=\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/FinalModule_Coursera/images/share_notebook.png\" alt=\"share notebook\" style=\"display: block; margin-left: auto; margin-right: auto;\"/></p>\n", | |
" <p></p>\n", | |
" <p>You can then share the notebook via a URL by scrolling down as shown in the following image:</p>\n", | |
" <p style=\"text-align: center;\"><img width=\"600\" src=\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/FinalModule_Coursera/images/url_notebook.png\" alt=\"HTML\" style=\"display: block; margin-left: auto; margin-right: auto;\" /></p>\n", | |
" <p> </p>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2>About the Authors:</h2> \n", | |
"\n", | |
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2022-01-01\">Joseph Santarcangelo</a> has a PhD in Electrical Engineering, his research focused on using machine learning, signal processing, and computer vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Other contributors: <a href=\"https://www.linkedin.com/in/michelleccarey/?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2022-01-01\">Michelle Carey</a>, <a href=\"https://www.linkedin.com/in/jiahui-mavis-zhou-a4537814a?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2022-01-01\">Mavis Zhou</a>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Change Log\n", | |
"\n", | |
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n", | |
"| ----------------- | ------- | --------------- | -------------------------------------------- |\n", | |
"| 2020-12-01 | 2.2 | Aije Egwaikhide | Coverted Data describtion from text to table |\n", | |
"| 2020-10-06 | 2.1 | Lakshmi Holla | Changed markdown instruction of Question1 |\n", | |
"| 2020-08-27 | 2.0 | Malika Singla | Added lab to GitLab |\n", | |
"\n", | |
"<hr>\n", | |
"\n", | |
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n", | |
"\n", | |
"<p>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"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.7.4" | |
}, | |
"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