Skip to content

Instantly share code, notes, and snippets.

@tabrez
Last active January 9, 2018 15:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tabrez/c342254ce1a0730b978e6acb2763dcf6 to your computer and use it in GitHub Desktop.
Save tabrez/c342254ce1a0730b978e6acb2763dcf6 to your computer and use it in GitHub Desktop.
califorinia_housing_prices.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "### Introduction\n\n* Dataset available in scikit-learn\n* contains metrics such as population, median income, median housing price, etc.\n* sample data are for different block groups which can be treated as districts\n\n\n### Machine Learning project checklist\n\n* Frame the problem and look at the big picture\n* Get the data (scikit-learn)\n* Explore the data to gain insights (pandas, matplotlib)\n* Prepare the data to better expose the underlying data patterns to Machine Learning algorithms\n* Explore different models and short-list the best ones\n* Fine-tune your models, adjust parameters and combine them into a solution\n* Launch, monitor, maintain the deployed solution\n\n# Frame the problem\n\nDetermine whether it is worth investing in a given area or not via predicted housing prices\n\n* Supervised or unsupervised or mixed?\n* Classification or Regression or something else?\n* Batch learning or online learning?\n* Which performance measure?\n* Prices into categories like cheap, moderately expensive, expensive?"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# Get the Data\n\nMay need to deal with relational database, documents, authorization, download, conversions\n\n* http://www.dcc.fc.up.pt/~ltorgo/Regression/cal_housing.html\n\n* http://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_california_housing.html\n\n* https://raw.githubusercontent.com/ageron/handson-ml/master/datasets/housing/housing.csv\n\nOptional exercise: write a function to automate retrieving the dataset"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import numpy as np\nimport pandas as pd\n\nimport matplotlib.pyplot as plt\nimport matplotlib.style as style\nstyle.use('bmh')\n%matplotlib inline\n\nfrom sklearn.base import BaseEstimator, TransformerMixin\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.pipeline import FeatureUnion\nfrom sklearn.preprocessing import StandardScaler\n\npd.options.display.max_rows = 14\n\nfrom IPython.core.interactiveshell import InteractiveShell\nInteractiveShell.ast_node_interactivity = \"all\"",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "housing = pd.read_csv('housing.csv')\nhousing.head()",
"execution_count": 2,
"outputs": [
{
"data": {
"text/html": "<div>\n<style>\n .dataframe thead tr:only-child th {\n text-align: right;\n }\n\n .dataframe thead th {\n text-align: left;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>longitude</th>\n <th>latitude</th>\n <th>housing_median_age</th>\n <th>total_rooms</th>\n <th>total_bedrooms</th>\n <th>population</th>\n <th>households</th>\n <th>median_income</th>\n <th>median_house_value</th>\n <th>ocean_proximity</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>-122.23</td>\n <td>37.88</td>\n <td>41.0</td>\n <td>880.0</td>\n <td>129.0</td>\n <td>322.0</td>\n <td>126.0</td>\n <td>8.3252</td>\n <td>452600.0</td>\n <td>NEAR BAY</td>\n </tr>\n <tr>\n <th>1</th>\n <td>-122.22</td>\n <td>37.86</td>\n <td>21.0</td>\n <td>7099.0</td>\n <td>1106.0</td>\n <td>2401.0</td>\n <td>1138.0</td>\n <td>8.3014</td>\n <td>358500.0</td>\n <td>NEAR BAY</td>\n </tr>\n <tr>\n <th>2</th>\n <td>-122.24</td>\n <td>37.85</td>\n <td>52.0</td>\n <td>1467.0</td>\n <td>190.0</td>\n <td>496.0</td>\n <td>177.0</td>\n <td>7.2574</td>\n <td>352100.0</td>\n <td>NEAR BAY</td>\n </tr>\n <tr>\n <th>3</th>\n <td>-122.25</td>\n <td>37.85</td>\n <td>52.0</td>\n <td>1274.0</td>\n <td>235.0</td>\n <td>558.0</td>\n <td>219.0</td>\n <td>5.6431</td>\n <td>341300.0</td>\n <td>NEAR BAY</td>\n </tr>\n <tr>\n <th>4</th>\n <td>-122.25</td>\n <td>37.85</td>\n <td>52.0</td>\n <td>1627.0</td>\n <td>280.0</td>\n <td>565.0</td>\n <td>259.0</td>\n <td>3.8462</td>\n <td>342200.0</td>\n <td>NEAR BAY</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " longitude latitude housing_median_age total_rooms total_bedrooms \\\n0 -122.23 37.88 41.0 880.0 129.0 \n1 -122.22 37.86 21.0 7099.0 1106.0 \n2 -122.24 37.85 52.0 1467.0 190.0 \n3 -122.25 37.85 52.0 1274.0 235.0 \n4 -122.25 37.85 52.0 1627.0 280.0 \n\n population households median_income median_house_value ocean_proximity \n0 322.0 126.0 8.3252 452600.0 NEAR BAY \n1 2401.0 1138.0 8.3014 358500.0 NEAR BAY \n2 496.0 177.0 7.2574 352100.0 NEAR BAY \n3 558.0 219.0 5.6431 341300.0 NEAR BAY \n4 565.0 259.0 3.8462 342200.0 NEAR BAY "
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# Explore the data"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "housing.info()\n#housing.isnull().any(axis=1)\nhousing[housing.isnull().any(axis=1)]\n#housing.loc[:, housing.isnull().any(axis=0)]\n#housing.loc[housing.isnull().any(axis=1), housing.isnull().any(axis=0)]\n# How to deal with these missing values?",
"execution_count": 3,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 20640 entries, 0 to 20639\nData columns (total 10 columns):\nlongitude 20640 non-null float64\nlatitude 20640 non-null float64\nhousing_median_age 20640 non-null float64\ntotal_rooms 20640 non-null float64\ntotal_bedrooms 20433 non-null float64\npopulation 20640 non-null float64\nhouseholds 20640 non-null float64\nmedian_income 20640 non-null float64\nmedian_house_value 20640 non-null float64\nocean_proximity 20640 non-null object\ndtypes: float64(9), object(1)\nmemory usage: 1.6+ MB\n"
},
{
"data": {
"text/html": "<div>\n<style>\n .dataframe thead tr:only-child th {\n text-align: right;\n }\n\n .dataframe thead th {\n text-align: left;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>longitude</th>\n <th>latitude</th>\n <th>housing_median_age</th>\n <th>total_rooms</th>\n <th>total_bedrooms</th>\n <th>population</th>\n <th>households</th>\n <th>median_income</th>\n <th>median_house_value</th>\n <th>ocean_proximity</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>290</th>\n <td>-122.16</td>\n <td>37.77</td>\n <td>47.0</td>\n <td>1256.0</td>\n <td>NaN</td>\n <td>570.0</td>\n <td>218.0</td>\n <td>4.3750</td>\n <td>161900.0</td>\n <td>NEAR BAY</td>\n </tr>\n <tr>\n <th>341</th>\n <td>-122.17</td>\n <td>37.75</td>\n <td>38.0</td>\n <td>992.0</td>\n <td>NaN</td>\n <td>732.0</td>\n <td>259.0</td>\n <td>1.6196</td>\n <td>85100.0</td>\n <td>NEAR BAY</td>\n </tr>\n <tr>\n <th>538</th>\n <td>-122.28</td>\n <td>37.78</td>\n <td>29.0</td>\n <td>5154.0</td>\n <td>NaN</td>\n <td>3741.0</td>\n <td>1273.0</td>\n <td>2.5762</td>\n <td>173400.0</td>\n <td>NEAR BAY</td>\n </tr>\n <tr>\n <th>563</th>\n <td>-122.24</td>\n <td>37.75</td>\n <td>45.0</td>\n <td>891.0</td>\n <td>NaN</td>\n <td>384.0</td>\n <td>146.0</td>\n <td>4.9489</td>\n <td>247100.0</td>\n <td>NEAR BAY</td>\n </tr>\n <tr>\n <th>696</th>\n <td>-122.10</td>\n <td>37.69</td>\n <td>41.0</td>\n <td>746.0</td>\n <td>NaN</td>\n <td>387.0</td>\n <td>161.0</td>\n <td>3.9063</td>\n <td>178400.0</td>\n <td>NEAR BAY</td>\n </tr>\n <tr>\n <th>738</th>\n <td>-122.14</td>\n <td>37.67</td>\n <td>37.0</td>\n <td>3342.0</td>\n <td>NaN</td>\n <td>1635.0</td>\n <td>557.0</td>\n <td>4.7933</td>\n <td>186900.0</td>\n <td>NEAR BAY</td>\n </tr>\n <tr>\n <th>1097</th>\n <td>-121.77</td>\n <td>39.66</td>\n <td>20.0</td>\n <td>3759.0</td>\n <td>NaN</td>\n <td>1705.0</td>\n <td>600.0</td>\n <td>4.7120</td>\n <td>158600.0</td>\n <td>INLAND</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>20069</th>\n <td>-120.37</td>\n <td>38.01</td>\n <td>30.0</td>\n <td>473.0</td>\n <td>NaN</td>\n <td>242.0</td>\n <td>93.0</td>\n <td>2.5417</td>\n <td>123200.0</td>\n <td>INLAND</td>\n </tr>\n <tr>\n <th>20125</th>\n <td>-118.80</td>\n <td>34.41</td>\n <td>45.0</td>\n <td>1610.0</td>\n <td>NaN</td>\n <td>1148.0</td>\n <td>347.0</td>\n <td>2.7000</td>\n <td>120400.0</td>\n <td>&lt;1H OCEAN</td>\n </tr>\n <tr>\n <th>20267</th>\n <td>-119.19</td>\n <td>34.20</td>\n <td>18.0</td>\n <td>3620.0</td>\n <td>NaN</td>\n <td>3171.0</td>\n <td>779.0</td>\n <td>3.3409</td>\n <td>220500.0</td>\n <td>NEAR OCEAN</td>\n </tr>\n <tr>\n <th>20268</th>\n <td>-119.18</td>\n <td>34.19</td>\n <td>19.0</td>\n <td>2393.0</td>\n <td>NaN</td>\n <td>1938.0</td>\n <td>762.0</td>\n <td>1.6953</td>\n <td>167400.0</td>\n <td>NEAR OCEAN</td>\n </tr>\n <tr>\n <th>20372</th>\n <td>-118.88</td>\n <td>34.17</td>\n <td>15.0</td>\n <td>4260.0</td>\n <td>NaN</td>\n <td>1701.0</td>\n <td>669.0</td>\n <td>5.1033</td>\n <td>410700.0</td>\n <td>&lt;1H OCEAN</td>\n </tr>\n <tr>\n <th>20460</th>\n <td>-118.75</td>\n <td>34.29</td>\n <td>17.0</td>\n <td>5512.0</td>\n <td>NaN</td>\n <td>2734.0</td>\n <td>814.0</td>\n <td>6.6073</td>\n <td>258100.0</td>\n <td>&lt;1H OCEAN</td>\n </tr>\n <tr>\n <th>20484</th>\n <td>-118.72</td>\n <td>34.28</td>\n <td>17.0</td>\n <td>3051.0</td>\n <td>NaN</td>\n <td>1705.0</td>\n <td>495.0</td>\n <td>5.7376</td>\n <td>218600.0</td>\n <td>&lt;1H OCEAN</td>\n </tr>\n </tbody>\n</table>\n<p>207 rows × 10 columns</p>\n</div>",
"text/plain": " longitude latitude housing_median_age total_rooms total_bedrooms \\\n290 -122.16 37.77 47.0 1256.0 NaN \n341 -122.17 37.75 38.0 992.0 NaN \n538 -122.28 37.78 29.0 5154.0 NaN \n563 -122.24 37.75 45.0 891.0 NaN \n696 -122.10 37.69 41.0 746.0 NaN \n738 -122.14 37.67 37.0 3342.0 NaN \n1097 -121.77 39.66 20.0 3759.0 NaN \n... ... ... ... ... ... \n20069 -120.37 38.01 30.0 473.0 NaN \n20125 -118.80 34.41 45.0 1610.0 NaN \n20267 -119.19 34.20 18.0 3620.0 NaN \n20268 -119.18 34.19 19.0 2393.0 NaN \n20372 -118.88 34.17 15.0 4260.0 NaN \n20460 -118.75 34.29 17.0 5512.0 NaN \n20484 -118.72 34.28 17.0 3051.0 NaN \n\n population households median_income median_house_value \\\n290 570.0 218.0 4.3750 161900.0 \n341 732.0 259.0 1.6196 85100.0 \n538 3741.0 1273.0 2.5762 173400.0 \n563 384.0 146.0 4.9489 247100.0 \n696 387.0 161.0 3.9063 178400.0 \n738 1635.0 557.0 4.7933 186900.0 \n1097 1705.0 600.0 4.7120 158600.0 \n... ... ... ... ... \n20069 242.0 93.0 2.5417 123200.0 \n20125 1148.0 347.0 2.7000 120400.0 \n20267 3171.0 779.0 3.3409 220500.0 \n20268 1938.0 762.0 1.6953 167400.0 \n20372 1701.0 669.0 5.1033 410700.0 \n20460 2734.0 814.0 6.6073 258100.0 \n20484 1705.0 495.0 5.7376 218600.0 \n\n ocean_proximity \n290 NEAR BAY \n341 NEAR BAY \n538 NEAR BAY \n563 NEAR BAY \n696 NEAR BAY \n738 NEAR BAY \n1097 INLAND \n... ... \n20069 INLAND \n20125 <1H OCEAN \n20267 NEAR OCEAN \n20268 NEAR OCEAN \n20372 <1H OCEAN \n20460 <1H OCEAN \n20484 <1H OCEAN \n\n[207 rows x 10 columns]"
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "housing['ocean_proximity'].unique()\nhousing['ocean_proximity'].value_counts()",
"execution_count": 4,
"outputs": [
{
"data": {
"text/plain": "array(['NEAR BAY', '<1H OCEAN', 'INLAND', 'NEAR OCEAN', 'ISLAND'], dtype=object)"
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<1H OCEAN 9136\nINLAND 6551\nNEAR OCEAN 2658\nNEAR BAY 2290\nISLAND 5\nName: ocean_proximity, dtype: int64"
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "housing.describe()",
"execution_count": 5,
"outputs": [
{
"data": {
"text/html": "<div>\n<style>\n .dataframe thead tr:only-child th {\n text-align: right;\n }\n\n .dataframe thead th {\n text-align: left;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>longitude</th>\n <th>latitude</th>\n <th>housing_median_age</th>\n <th>total_rooms</th>\n <th>total_bedrooms</th>\n <th>population</th>\n <th>households</th>\n <th>median_income</th>\n <th>median_house_value</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>count</th>\n <td>20640.000000</td>\n <td>20640.000000</td>\n <td>20640.000000</td>\n <td>20640.000000</td>\n <td>20433.000000</td>\n <td>20640.000000</td>\n <td>20640.000000</td>\n <td>20640.000000</td>\n <td>20640.000000</td>\n </tr>\n <tr>\n <th>mean</th>\n <td>-119.569704</td>\n <td>35.631861</td>\n <td>28.639486</td>\n <td>2635.763081</td>\n <td>537.870553</td>\n <td>1425.476744</td>\n <td>499.539680</td>\n <td>3.870671</td>\n <td>206855.816909</td>\n </tr>\n <tr>\n <th>std</th>\n <td>2.003532</td>\n <td>2.135952</td>\n <td>12.585558</td>\n <td>2181.615252</td>\n <td>421.385070</td>\n <td>1132.462122</td>\n <td>382.329753</td>\n <td>1.899822</td>\n <td>115395.615874</td>\n </tr>\n <tr>\n <th>min</th>\n <td>-124.350000</td>\n <td>32.540000</td>\n <td>1.000000</td>\n <td>2.000000</td>\n <td>1.000000</td>\n <td>3.000000</td>\n <td>1.000000</td>\n <td>0.499900</td>\n <td>14999.000000</td>\n </tr>\n <tr>\n <th>25%</th>\n <td>-121.800000</td>\n <td>33.930000</td>\n <td>18.000000</td>\n <td>1447.750000</td>\n <td>296.000000</td>\n <td>787.000000</td>\n <td>280.000000</td>\n <td>2.563400</td>\n <td>119600.000000</td>\n </tr>\n <tr>\n <th>50%</th>\n <td>-118.490000</td>\n <td>34.260000</td>\n <td>29.000000</td>\n <td>2127.000000</td>\n <td>435.000000</td>\n <td>1166.000000</td>\n <td>409.000000</td>\n <td>3.534800</td>\n <td>179700.000000</td>\n </tr>\n <tr>\n <th>75%</th>\n <td>-118.010000</td>\n <td>37.710000</td>\n <td>37.000000</td>\n <td>3148.000000</td>\n <td>647.000000</td>\n <td>1725.000000</td>\n <td>605.000000</td>\n <td>4.743250</td>\n <td>264725.000000</td>\n </tr>\n <tr>\n <th>max</th>\n <td>-114.310000</td>\n <td>41.950000</td>\n <td>52.000000</td>\n <td>39320.000000</td>\n <td>6445.000000</td>\n <td>35682.000000</td>\n <td>6082.000000</td>\n <td>15.000100</td>\n <td>500001.000000</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " longitude latitude housing_median_age total_rooms \\\ncount 20640.000000 20640.000000 20640.000000 20640.000000 \nmean -119.569704 35.631861 28.639486 2635.763081 \nstd 2.003532 2.135952 12.585558 2181.615252 \nmin -124.350000 32.540000 1.000000 2.000000 \n25% -121.800000 33.930000 18.000000 1447.750000 \n50% -118.490000 34.260000 29.000000 2127.000000 \n75% -118.010000 37.710000 37.000000 3148.000000 \nmax -114.310000 41.950000 52.000000 39320.000000 \n\n total_bedrooms population households median_income \\\ncount 20433.000000 20640.000000 20640.000000 20640.000000 \nmean 537.870553 1425.476744 499.539680 3.870671 \nstd 421.385070 1132.462122 382.329753 1.899822 \nmin 1.000000 3.000000 1.000000 0.499900 \n25% 296.000000 787.000000 280.000000 2.563400 \n50% 435.000000 1166.000000 409.000000 3.534800 \n75% 647.000000 1725.000000 605.000000 4.743250 \nmax 6445.000000 35682.000000 6082.000000 15.000100 \n\n median_house_value \ncount 20640.000000 \nmean 206855.816909 \nstd 115395.615874 \nmin 14999.000000 \n25% 119600.000000 \n50% 179700.000000 \n75% 264725.000000 \nmax 500001.000000 "
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "#x = housing.hist(bins=50, figsize=(20, 15))\n#plt.show()\n\n# median income attribute is scaled between 0 to 15?\n# max median age 52?\n# max median house value $500,000?\n# different scales\n# positively skewed",
"execution_count": 6,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Split the dataset into training and test sets\n# 1. Randomised split (works for large datasets)\nimport sklearn.model_selection as ms\n# `random_state` is the seed; use it so that the dataset is split in the same way on every single run\nrn_train_set, rn_test_set = ms.train_test_split(housing, test_size = 0.2, random_state=42) \nrn_train_set.shape\nrn_test_set.shape",
"execution_count": 7,
"outputs": [
{
"data": {
"text/plain": "(16512, 10)"
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "(4128, 10)"
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 1. Categorised split (might be needed for small datasets)\nhousing['median_income'].min(), housing['median_income'].max()\n# can compute n = (max - min) / (splits + 1), we just use n = 1.5 below\nincome_categories = housing['median_income'] // 1.5\nincome_categories.min(), income_categories.max(), income_categories.shape\nincome_categories.unique().size\n\n# Or use np.ceil or np.floor\n# income_categories2 = np.floor(housing['median_income'] / 1.5)\n# income_categories2.min(), income_categories2.max(), income_categories2.shape\n# income_categories2.unique().size",
"execution_count": 8,
"outputs": [
{
"data": {
"text/plain": "(0.49990000000000001, 15.0001)"
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "(0.0, 10.0, (20640,))"
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "11"
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# housing['income_category'] = income_categories\n\nhousing.groupby(income_categories).size()\n#x = income_categories.plot(kind='hist')\n# Too few values from 5-10 income categories, so let us put them in one category\n# i.e. if income_category of a row is greater than or equal to 5, assign category 5 to it\n# why does this cause no problems?",
"execution_count": 9,
"outputs": [
{
"data": {
"text/plain": "median_income\n0.0 815\n1.0 6550\n2.0 7250\n3.0 3652\n4.0 1423\n5.0 543\n6.0 189\n7.0 105\n8.0 50\n9.0 12\n10.0 51\ndtype: int64"
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "income_categories[income_categories >= 5] = 5\nincome_categories.shape\nincome_categories.value_counts()\n#x = income_categories.plot(kind='hist')",
"execution_count": 10,
"outputs": [
{
"data": {
"text/plain": "(20640,)"
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "2.0 7250\n1.0 6550\n3.0 3652\n4.0 1423\n5.0 950\n0.0 815\nName: median_income, dtype: int64"
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "split = ms.StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)\n#split.split?",
"execution_count": 11,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "for training_indices, test_indices in split.split(housing, income_categories):\n stratified_train_set = housing.loc[training_indices]\n stratified_test_set = housing.loc[test_indices]\n### TODO: Convert this into a function \nstratified_train_set.shape\nstratified_test_set.shape",
"execution_count": 12,
"outputs": [
{
"data": {
"text/plain": "(16512, 10)"
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "(4128, 10)"
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "h = housing.groupby(income_categories).size() / len(housing)\nh.name = 'housing'\n#str_train = stratified_train_set.groupby(income_categories).size() / len(stratified_train_set)\n#str_train.name = 'stratified train'\nstr_test = stratified_test_set.groupby(income_categories).size() / len(stratified_test_set)\nstr_test.name = 'stratified test'\n\n#rn_train = rn_train_set.groupby(income_categories).size() / len(rn_train_set)\n#rn_train.name = 'random train'\nrn_test = rn_test_set.groupby(income_categories).size() / len(rn_test_set)\nrn_test.name = 'random test'\n\ncompare = pd.concat([h, str_test, rn_test], axis=1)\ncompare['stratified test %'] = 100 * (compare['stratified test'] - compare['housing']) / compare['housing']\ncompare['random test %'] = 100 * (compare['random test'] - compare['housing']) / compare['housing']\ncompare",
"execution_count": 13,
"outputs": [
{
"data": {
"text/html": "<div>\n<style>\n .dataframe thead tr:only-child th {\n text-align: right;\n }\n\n .dataframe thead th {\n text-align: left;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>housing</th>\n <th>stratified test</th>\n <th>random test</th>\n <th>stratified test %</th>\n <th>random test %</th>\n </tr>\n <tr>\n <th>median_income</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0.0</th>\n <td>0.039486</td>\n <td>0.039486</td>\n <td>0.039971</td>\n <td>0.000000</td>\n <td>1.226994</td>\n </tr>\n <tr>\n <th>1.0</th>\n <td>0.317345</td>\n <td>0.317345</td>\n <td>0.322674</td>\n <td>0.000000</td>\n <td>1.679389</td>\n </tr>\n <tr>\n <th>2.0</th>\n <td>0.351260</td>\n <td>0.351260</td>\n <td>0.359254</td>\n <td>0.000000</td>\n <td>2.275862</td>\n </tr>\n <tr>\n <th>3.0</th>\n <td>0.176938</td>\n <td>0.176841</td>\n <td>0.168605</td>\n <td>-0.054765</td>\n <td>-4.709748</td>\n </tr>\n <tr>\n <th>4.0</th>\n <td>0.068944</td>\n <td>0.069041</td>\n <td>0.064438</td>\n <td>0.140548</td>\n <td>-6.535488</td>\n </tr>\n <tr>\n <th>5.0</th>\n <td>0.046027</td>\n <td>0.046027</td>\n <td>0.045058</td>\n <td>0.000000</td>\n <td>-2.105263</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " housing stratified test random test stratified test % \\\nmedian_income \n0.0 0.039486 0.039486 0.039971 0.000000 \n1.0 0.317345 0.317345 0.322674 0.000000 \n2.0 0.351260 0.351260 0.359254 0.000000 \n3.0 0.176938 0.176841 0.168605 -0.054765 \n4.0 0.068944 0.069041 0.064438 0.140548 \n5.0 0.046027 0.046027 0.045058 0.000000 \n\n random test % \nmedian_income \n0.0 1.226994 \n1.0 1.679389 \n2.0 2.275862 \n3.0 -4.709748 \n4.0 -6.535488 \n5.0 -2.105263 "
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "housing = stratified_train_set.copy()\n#x = housing.plot(kind='scatter', x='longitude', y='latitude')",
"execution_count": 14,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "#x = housing.plot(kind='scatter', x='longitude', y='latitude', alpha=0.1)",
"execution_count": 15,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "x = housing.plot(kind='scatter', \n x='longitude', \n y='latitude', \n alpha=0.4, \n s=housing['population']/60, \n label='Population',\n figsize=(10,7),\n c='median_house_value',\n cmap=plt.get_cmap('jet'),\n colorbar=True)\nx = plt.legend()",
"execution_count": 16,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f131f69ce80>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "corr_matrix = housing.corr()\ncorr_matrix = np.abs(corr_matrix)\ncorr_matrix = corr_matrix.median_house_value.sort_values(ascending=False)\ncorr_matrix",
"execution_count": 17,
"outputs": [
{
"data": {
"text/plain": "median_house_value 1.000000\nmedian_income 0.685916\nlatitude 0.142955\ntotal_rooms 0.129694\nhousing_median_age 0.105802\nhouseholds 0.061859\nlongitude 0.047490\ntotal_bedrooms 0.046865\npopulation 0.030821\nName: median_house_value, dtype: float64"
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "corr_columns = corr_matrix.index[:5]\nhousing[corr_columns].head()\n#x = pd.plotting.scatter_matrix(housing[correlated_columns], alpha=0.4, figsize=(12, 8), diagonal='kde')",
"execution_count": 18,
"outputs": [
{
"data": {
"text/html": "<div>\n<style>\n .dataframe thead tr:only-child th {\n text-align: right;\n }\n\n .dataframe thead th {\n text-align: left;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>median_house_value</th>\n <th>median_income</th>\n <th>latitude</th>\n <th>total_rooms</th>\n <th>housing_median_age</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>3153</th>\n <td>85500.0</td>\n <td>3.2405</td>\n <td>35.12</td>\n <td>4084.0</td>\n <td>16.0</td>\n </tr>\n <tr>\n <th>2579</th>\n <td>143000.0</td>\n <td>3.5156</td>\n <td>40.85</td>\n <td>2414.0</td>\n <td>31.0</td>\n </tr>\n <tr>\n <th>16718</th>\n <td>171300.0</td>\n <td>2.8285</td>\n <td>35.49</td>\n <td>4422.0</td>\n <td>17.0</td>\n </tr>\n <tr>\n <th>5373</th>\n <td>309100.0</td>\n <td>2.0437</td>\n <td>34.04</td>\n <td>3005.0</td>\n <td>36.0</td>\n </tr>\n <tr>\n <th>20311</th>\n <td>243800.0</td>\n <td>2.0368</td>\n <td>34.17</td>\n <td>470.0</td>\n <td>37.0</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " median_house_value median_income latitude total_rooms \\\n3153 85500.0 3.2405 35.12 4084.0 \n2579 143000.0 3.5156 40.85 2414.0 \n16718 171300.0 2.8285 35.49 4422.0 \n5373 309100.0 2.0437 34.04 3005.0 \n20311 243800.0 2.0368 34.17 470.0 \n\n housing_median_age \n3153 16.0 \n2579 31.0 \n16718 17.0 \n5373 36.0 \n20311 37.0 "
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import seaborn as sns\nsns.set(style='ticks')\n#x = sns.pairplot(housing[correlated_columns])",
"execution_count": 19,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "income_categories.name = 'income_categories'\n# x = sns.pairplot(pd.concat([housing[corr_columns], income_categories], axis=1, join='inner'), hue='income_categories')",
"execution_count": 20,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "#x = sns.lmplot('median_income', 'median_house_value', data=housing, fit_reg=False)",
"execution_count": 21,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# Prepare the data\nShould some attributes be dropped or combined together?"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "housing['rooms_per_household'] = housing.total_rooms / housing.households\nhousing['bedrooms_per_household'] = housing.total_bedrooms / housing.households\nhousing['bedrooms_per_room'] = housing.total_bedrooms / housing.total_rooms\nhousing['population_per_household'] = housing.population / housing.households\n\n### TODO: Convert this into a function\n\nhousing.head()\n\ncorr_matrix2 = housing.corr()\ncorr_matrix2 = np.abs(corr_matrix2)\ncorr_matrix2.median_house_value.sort_values(ascending=False)\n\n# You can come back and iterate this step many times",
"execution_count": 22,
"outputs": [
{
"data": {
"text/html": "<div>\n<style>\n .dataframe thead tr:only-child th {\n text-align: right;\n }\n\n .dataframe thead th {\n text-align: left;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>longitude</th>\n <th>latitude</th>\n <th>housing_median_age</th>\n <th>total_rooms</th>\n <th>total_bedrooms</th>\n <th>population</th>\n <th>households</th>\n <th>median_income</th>\n <th>median_house_value</th>\n <th>ocean_proximity</th>\n <th>rooms_per_household</th>\n <th>bedrooms_per_household</th>\n <th>bedrooms_per_room</th>\n <th>population_per_household</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>3153</th>\n <td>-118.46</td>\n <td>35.12</td>\n <td>16.0</td>\n <td>4084.0</td>\n <td>812.0</td>\n <td>2033.0</td>\n <td>668.0</td>\n <td>3.2405</td>\n <td>85500.0</td>\n <td>INLAND</td>\n <td>6.113772</td>\n <td>1.215569</td>\n <td>0.198825</td>\n <td>3.043413</td>\n </tr>\n <tr>\n <th>2579</th>\n <td>-124.05</td>\n <td>40.85</td>\n <td>31.0</td>\n <td>2414.0</td>\n <td>428.0</td>\n <td>1005.0</td>\n <td>401.0</td>\n <td>3.5156</td>\n <td>143000.0</td>\n <td>NEAR OCEAN</td>\n <td>6.019950</td>\n <td>1.067332</td>\n <td>0.177299</td>\n <td>2.506234</td>\n </tr>\n <tr>\n <th>16718</th>\n <td>-120.66</td>\n <td>35.49</td>\n <td>17.0</td>\n <td>4422.0</td>\n <td>945.0</td>\n <td>2307.0</td>\n <td>885.0</td>\n <td>2.8285</td>\n <td>171300.0</td>\n <td>&lt;1H OCEAN</td>\n <td>4.996610</td>\n <td>1.067797</td>\n <td>0.213704</td>\n <td>2.606780</td>\n </tr>\n <tr>\n <th>5373</th>\n <td>-118.38</td>\n <td>34.04</td>\n <td>36.0</td>\n <td>3005.0</td>\n <td>771.0</td>\n <td>2054.0</td>\n <td>758.0</td>\n <td>2.0437</td>\n <td>309100.0</td>\n <td>&lt;1H OCEAN</td>\n <td>3.964380</td>\n <td>1.017150</td>\n <td>0.256572</td>\n <td>2.709763</td>\n </tr>\n <tr>\n <th>20311</th>\n <td>-119.11</td>\n <td>34.17</td>\n <td>37.0</td>\n <td>470.0</td>\n <td>105.0</td>\n <td>522.0</td>\n <td>83.0</td>\n <td>2.0368</td>\n <td>243800.0</td>\n <td>NEAR OCEAN</td>\n <td>5.662651</td>\n <td>1.265060</td>\n <td>0.223404</td>\n <td>6.289157</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " longitude latitude housing_median_age total_rooms total_bedrooms \\\n3153 -118.46 35.12 16.0 4084.0 812.0 \n2579 -124.05 40.85 31.0 2414.0 428.0 \n16718 -120.66 35.49 17.0 4422.0 945.0 \n5373 -118.38 34.04 36.0 3005.0 771.0 \n20311 -119.11 34.17 37.0 470.0 105.0 \n\n population households median_income median_house_value \\\n3153 2033.0 668.0 3.2405 85500.0 \n2579 1005.0 401.0 3.5156 143000.0 \n16718 2307.0 885.0 2.8285 171300.0 \n5373 2054.0 758.0 2.0437 309100.0 \n20311 522.0 83.0 2.0368 243800.0 \n\n ocean_proximity rooms_per_household bedrooms_per_household \\\n3153 INLAND 6.113772 1.215569 \n2579 NEAR OCEAN 6.019950 1.067332 \n16718 <1H OCEAN 4.996610 1.067797 \n5373 <1H OCEAN 3.964380 1.017150 \n20311 NEAR OCEAN 5.662651 1.265060 \n\n bedrooms_per_room population_per_household \n3153 0.198825 3.043413 \n2579 0.177299 2.506234 \n16718 0.213704 2.606780 \n5373 0.256572 2.709763 \n20311 0.223404 6.289157 "
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "median_house_value 1.000000\nmedian_income 0.685916\nbedrooms_per_room 0.249257\nrooms_per_household 0.154070\nlatitude 0.142955\ntotal_rooms 0.129694\nhousing_median_age 0.105802\nhouseholds 0.061859\nlongitude 0.047490\ntotal_bedrooms 0.046865\nbedrooms_per_household 0.042540\npopulation 0.030821\npopulation_per_household 0.022350\nName: median_house_value, dtype: float64"
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Transform the data\nAlways create functions to transform the data, this will you help with:\nreproduce transformations easily on new data recieved in future for further training\nuse the functions in production system to transform non-training data\nmake it easy to try various transformations and select the best one.\n\n## Step 1: Split the training data set into features and labels"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "housing_features = stratified_train_set.drop('median_house_value', axis=1)\nhousing_features.head()\nhousing_labels = stratified_train_set.median_house_value.copy()",
"execution_count": 23,
"outputs": [
{
"data": {
"text/html": "<div>\n<style>\n .dataframe thead tr:only-child th {\n text-align: right;\n }\n\n .dataframe thead th {\n text-align: left;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>longitude</th>\n <th>latitude</th>\n <th>housing_median_age</th>\n <th>total_rooms</th>\n <th>total_bedrooms</th>\n <th>population</th>\n <th>households</th>\n <th>median_income</th>\n <th>ocean_proximity</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>3153</th>\n <td>-118.46</td>\n <td>35.12</td>\n <td>16.0</td>\n <td>4084.0</td>\n <td>812.0</td>\n <td>2033.0</td>\n <td>668.0</td>\n <td>3.2405</td>\n <td>INLAND</td>\n </tr>\n <tr>\n <th>2579</th>\n <td>-124.05</td>\n <td>40.85</td>\n <td>31.0</td>\n <td>2414.0</td>\n <td>428.0</td>\n <td>1005.0</td>\n <td>401.0</td>\n <td>3.5156</td>\n <td>NEAR OCEAN</td>\n </tr>\n <tr>\n <th>16718</th>\n <td>-120.66</td>\n <td>35.49</td>\n <td>17.0</td>\n <td>4422.0</td>\n <td>945.0</td>\n <td>2307.0</td>\n <td>885.0</td>\n <td>2.8285</td>\n <td>&lt;1H OCEAN</td>\n </tr>\n <tr>\n <th>5373</th>\n <td>-118.38</td>\n <td>34.04</td>\n <td>36.0</td>\n <td>3005.0</td>\n <td>771.0</td>\n <td>2054.0</td>\n <td>758.0</td>\n <td>2.0437</td>\n <td>&lt;1H OCEAN</td>\n </tr>\n <tr>\n <th>20311</th>\n <td>-119.11</td>\n <td>34.17</td>\n <td>37.0</td>\n <td>470.0</td>\n <td>105.0</td>\n <td>522.0</td>\n <td>83.0</td>\n <td>2.0368</td>\n <td>NEAR OCEAN</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " longitude latitude housing_median_age total_rooms total_bedrooms \\\n3153 -118.46 35.12 16.0 4084.0 812.0 \n2579 -124.05 40.85 31.0 2414.0 428.0 \n16718 -120.66 35.49 17.0 4422.0 945.0 \n5373 -118.38 34.04 36.0 3005.0 771.0 \n20311 -119.11 34.17 37.0 470.0 105.0 \n\n population households median_income ocean_proximity \n3153 2033.0 668.0 3.2405 INLAND \n2579 1005.0 401.0 3.5156 NEAR OCEAN \n16718 2307.0 885.0 2.8285 <1H OCEAN \n5373 2054.0 758.0 2.0437 <1H OCEAN \n20311 522.0 83.0 2.0368 NEAR OCEAN "
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Step 2: Data Cleaning. Handle NaNs in total_bedrooms column\nDrop corresponding observations? Drop whole column? Set the NaN values to mean/median?"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "### A. Manual method\n# housing_features.dropna(subset=['total_bedrooms']) # 1. drop rows\n# housing_features.drop('total_bedrooms', axis=1) # 2. drop column\nmedian = housing_features['total_bedrooms'].median() \nmedian\nhousing_features.head()\n# Always save computed median in a variable. You need it to replace NaN values in total_bedroom \n# column in future data. Always save and use this value instead of computing it again later\n# because the model has been trained with this median value",
"execution_count": 24,
"outputs": [
{
"data": {
"text/plain": "433.0"
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/html": "<div>\n<style>\n .dataframe thead tr:only-child th {\n text-align: right;\n }\n\n .dataframe thead th {\n text-align: left;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>longitude</th>\n <th>latitude</th>\n <th>housing_median_age</th>\n <th>total_rooms</th>\n <th>total_bedrooms</th>\n <th>population</th>\n <th>households</th>\n <th>median_income</th>\n <th>ocean_proximity</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>3153</th>\n <td>-118.46</td>\n <td>35.12</td>\n <td>16.0</td>\n <td>4084.0</td>\n <td>812.0</td>\n <td>2033.0</td>\n <td>668.0</td>\n <td>3.2405</td>\n <td>INLAND</td>\n </tr>\n <tr>\n <th>2579</th>\n <td>-124.05</td>\n <td>40.85</td>\n <td>31.0</td>\n <td>2414.0</td>\n <td>428.0</td>\n <td>1005.0</td>\n <td>401.0</td>\n <td>3.5156</td>\n <td>NEAR OCEAN</td>\n </tr>\n <tr>\n <th>16718</th>\n <td>-120.66</td>\n <td>35.49</td>\n <td>17.0</td>\n <td>4422.0</td>\n <td>945.0</td>\n <td>2307.0</td>\n <td>885.0</td>\n <td>2.8285</td>\n <td>&lt;1H OCEAN</td>\n </tr>\n <tr>\n <th>5373</th>\n <td>-118.38</td>\n <td>34.04</td>\n <td>36.0</td>\n <td>3005.0</td>\n <td>771.0</td>\n <td>2054.0</td>\n <td>758.0</td>\n <td>2.0437</td>\n <td>&lt;1H OCEAN</td>\n </tr>\n <tr>\n <th>20311</th>\n <td>-119.11</td>\n <td>34.17</td>\n <td>37.0</td>\n <td>470.0</td>\n <td>105.0</td>\n <td>522.0</td>\n <td>83.0</td>\n <td>2.0368</td>\n <td>NEAR OCEAN</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " longitude latitude housing_median_age total_rooms total_bedrooms \\\n3153 -118.46 35.12 16.0 4084.0 812.0 \n2579 -124.05 40.85 31.0 2414.0 428.0 \n16718 -120.66 35.49 17.0 4422.0 945.0 \n5373 -118.38 34.04 36.0 3005.0 771.0 \n20311 -119.11 34.17 37.0 470.0 105.0 \n\n population households median_income ocean_proximity \n3153 2033.0 668.0 3.2405 INLAND \n2579 1005.0 401.0 3.5156 NEAR OCEAN \n16718 2307.0 885.0 2.8285 <1H OCEAN \n5373 2054.0 758.0 2.0437 <1H OCEAN \n20311 522.0 83.0 2.0368 NEAR OCEAN "
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "#nan_indices = housing_features.loc[housing_features.isnull().any(axis=1)].index\n#nan_indices\nhousing2 = housing_features.fillna(median) # 3. replace NaNs with median\n#housing2.head()\n#housing2.loc[nan_indices]\n#housing2.isnull().any()",
"execution_count": 25,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "### B. Imputer method\nfrom sklearn.preprocessing import Imputer\nimputer = Imputer(strategy='median')\n# how to save median value now to be used in future data?\n\nhousing_numeric = housing_features.drop('ocean_proximity', axis=1)\n\nimputer.fit(housing_numeric) # can use imputer.fit_transform()\nimputer.statistics_\nhousing_numeric.median().values",
"execution_count": 26,
"outputs": [
{
"data": {
"text/plain": "Imputer(axis=0, copy=True, missing_values='NaN', strategy='median', verbose=0)"
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "array([ -118.52 , 34.26 , 29. , 2127. , 433. ,\n 1162. , 409. , 3.5417])"
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "array([ -118.52 , 34.26 , 29. , 2127. , 433. ,\n 1162. , 409. , 3.5417])"
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# what's the state of the dataframe before transform:\nhousing_numeric[housing_numeric.isnull().any(axis=1)]\nhousing_numeric[housing_numeric['total_bedrooms'] == 433]\nhousing_numeric.isnull().any()",
"execution_count": 27,
"outputs": [
{
"data": {
"text/html": "<div>\n<style>\n .dataframe thead tr:only-child th {\n text-align: right;\n }\n\n .dataframe thead th {\n text-align: left;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>longitude</th>\n <th>latitude</th>\n <th>housing_median_age</th>\n <th>total_rooms</th>\n <th>total_bedrooms</th>\n <th>population</th>\n <th>households</th>\n <th>median_income</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>3354</th>\n <td>-120.67</td>\n <td>40.50</td>\n <td>15.0</td>\n <td>5343.0</td>\n <td>NaN</td>\n <td>2503.0</td>\n <td>902.0</td>\n <td>3.5962</td>\n </tr>\n <tr>\n <th>20268</th>\n <td>-119.18</td>\n <td>34.19</td>\n <td>19.0</td>\n <td>2393.0</td>\n <td>NaN</td>\n <td>1938.0</td>\n <td>762.0</td>\n <td>1.6953</td>\n </tr>\n <tr>\n <th>4743</th>\n <td>-118.36</td>\n <td>34.05</td>\n <td>42.0</td>\n <td>1372.0</td>\n <td>NaN</td>\n <td>674.0</td>\n <td>271.0</td>\n <td>2.8793</td>\n </tr>\n <tr>\n <th>19959</th>\n <td>-119.32</td>\n <td>36.25</td>\n <td>21.0</td>\n <td>1231.0</td>\n <td>NaN</td>\n <td>609.0</td>\n <td>206.0</td>\n <td>2.8365</td>\n </tr>\n <tr>\n <th>10236</th>\n <td>-117.92</td>\n <td>33.87</td>\n <td>33.0</td>\n <td>1597.0</td>\n <td>NaN</td>\n <td>1888.0</td>\n <td>423.0</td>\n <td>3.0550</td>\n </tr>\n <tr>\n <th>7228</th>\n <td>-118.16</td>\n <td>34.01</td>\n <td>40.0</td>\n <td>1552.0</td>\n <td>NaN</td>\n <td>1919.0</td>\n <td>427.0</td>\n <td>2.2596</td>\n </tr>\n <tr>\n <th>19060</th>\n <td>-122.41</td>\n <td>38.16</td>\n <td>37.0</td>\n <td>1549.0</td>\n <td>NaN</td>\n <td>863.0</td>\n <td>275.0</td>\n <td>2.7457</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>2301</th>\n <td>-119.78</td>\n <td>36.82</td>\n <td>25.0</td>\n <td>5016.0</td>\n <td>NaN</td>\n <td>2133.0</td>\n <td>928.0</td>\n <td>3.6250</td>\n </tr>\n <tr>\n <th>13069</th>\n <td>-121.30</td>\n <td>38.58</td>\n <td>16.0</td>\n <td>1537.0</td>\n <td>NaN</td>\n <td>1125.0</td>\n <td>375.0</td>\n <td>2.6471</td>\n </tr>\n <tr>\n <th>2578</th>\n <td>-124.06</td>\n <td>40.86</td>\n <td>34.0</td>\n <td>4183.0</td>\n <td>NaN</td>\n <td>1891.0</td>\n <td>669.0</td>\n <td>3.2216</td>\n </tr>\n <tr>\n <th>4600</th>\n <td>-118.27</td>\n <td>34.04</td>\n <td>13.0</td>\n <td>1784.0</td>\n <td>NaN</td>\n <td>2158.0</td>\n <td>682.0</td>\n <td>1.7038</td>\n </tr>\n <tr>\n <th>14970</th>\n <td>-117.01</td>\n <td>32.74</td>\n <td>31.0</td>\n <td>3473.0</td>\n <td>NaN</td>\n <td>2098.0</td>\n <td>677.0</td>\n <td>2.6973</td>\n </tr>\n <tr>\n <th>10385</th>\n <td>-117.65</td>\n <td>33.60</td>\n <td>15.0</td>\n <td>5736.0</td>\n <td>NaN</td>\n <td>2529.0</td>\n <td>762.0</td>\n <td>6.4114</td>\n </tr>\n <tr>\n <th>1456</th>\n <td>-121.98</td>\n <td>37.96</td>\n <td>22.0</td>\n <td>2987.0</td>\n <td>NaN</td>\n <td>1420.0</td>\n <td>540.0</td>\n <td>3.6500</td>\n </tr>\n </tbody>\n</table>\n<p>153 rows × 8 columns</p>\n</div>",
"text/plain": " longitude latitude housing_median_age total_rooms total_bedrooms \\\n3354 -120.67 40.50 15.0 5343.0 NaN \n20268 -119.18 34.19 19.0 2393.0 NaN \n4743 -118.36 34.05 42.0 1372.0 NaN \n19959 -119.32 36.25 21.0 1231.0 NaN \n10236 -117.92 33.87 33.0 1597.0 NaN \n7228 -118.16 34.01 40.0 1552.0 NaN \n19060 -122.41 38.16 37.0 1549.0 NaN \n... ... ... ... ... ... \n2301 -119.78 36.82 25.0 5016.0 NaN \n13069 -121.30 38.58 16.0 1537.0 NaN \n2578 -124.06 40.86 34.0 4183.0 NaN \n4600 -118.27 34.04 13.0 1784.0 NaN \n14970 -117.01 32.74 31.0 3473.0 NaN \n10385 -117.65 33.60 15.0 5736.0 NaN \n1456 -121.98 37.96 22.0 2987.0 NaN \n\n population households median_income \n3354 2503.0 902.0 3.5962 \n20268 1938.0 762.0 1.6953 \n4743 674.0 271.0 2.8793 \n19959 609.0 206.0 2.8365 \n10236 1888.0 423.0 3.0550 \n7228 1919.0 427.0 2.2596 \n19060 863.0 275.0 2.7457 \n... ... ... ... \n2301 2133.0 928.0 3.6250 \n13069 1125.0 375.0 2.6471 \n2578 1891.0 669.0 3.2216 \n4600 2158.0 682.0 1.7038 \n14970 2098.0 677.0 2.6973 \n10385 2529.0 762.0 6.4114 \n1456 1420.0 540.0 3.6500 \n\n[153 rows x 8 columns]"
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/html": "<div>\n<style>\n .dataframe thead tr:only-child th {\n text-align: right;\n }\n\n .dataframe thead th {\n text-align: left;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>longitude</th>\n <th>latitude</th>\n <th>housing_median_age</th>\n <th>total_rooms</th>\n <th>total_bedrooms</th>\n <th>population</th>\n <th>households</th>\n <th>median_income</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>16074</th>\n <td>-122.49</td>\n <td>37.74</td>\n <td>52.0</td>\n <td>2189.0</td>\n <td>433.0</td>\n <td>1147.0</td>\n <td>420.0</td>\n <td>3.4583</td>\n </tr>\n <tr>\n <th>4814</th>\n <td>-118.28</td>\n <td>34.04</td>\n <td>39.0</td>\n <td>1155.0</td>\n <td>433.0</td>\n <td>1857.0</td>\n <td>424.0</td>\n <td>2.1696</td>\n </tr>\n <tr>\n <th>5750</th>\n <td>-118.28</td>\n <td>34.17</td>\n <td>52.0</td>\n <td>2332.0</td>\n <td>433.0</td>\n <td>1135.0</td>\n <td>440.0</td>\n <td>5.5658</td>\n </tr>\n <tr>\n <th>17095</th>\n <td>-122.24</td>\n <td>37.47</td>\n <td>36.0</td>\n <td>2021.0</td>\n <td>433.0</td>\n <td>1117.0</td>\n <td>432.0</td>\n <td>3.9290</td>\n </tr>\n <tr>\n <th>3195</th>\n <td>-119.73</td>\n <td>36.31</td>\n <td>20.0</td>\n <td>2440.0</td>\n <td>433.0</td>\n <td>1579.0</td>\n <td>400.0</td>\n <td>2.8281</td>\n </tr>\n <tr>\n <th>2875</th>\n <td>-118.97</td>\n <td>35.39</td>\n <td>38.0</td>\n <td>2121.0</td>\n <td>433.0</td>\n <td>1547.0</td>\n <td>441.0</td>\n <td>2.7740</td>\n </tr>\n <tr>\n <th>4990</th>\n <td>-118.31</td>\n <td>33.99</td>\n <td>48.0</td>\n <td>2235.0</td>\n <td>433.0</td>\n <td>1363.0</td>\n <td>433.0</td>\n <td>1.6559</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>18113</th>\n <td>-122.02</td>\n <td>37.31</td>\n <td>34.0</td>\n <td>2629.0</td>\n <td>433.0</td>\n <td>1301.0</td>\n <td>431.0</td>\n <td>6.0830</td>\n </tr>\n <tr>\n <th>16346</th>\n <td>-121.34</td>\n <td>38.03</td>\n <td>12.0</td>\n <td>2707.0</td>\n <td>433.0</td>\n <td>1200.0</td>\n <td>380.0</td>\n <td>4.9861</td>\n </tr>\n <tr>\n <th>17194</th>\n <td>-119.79</td>\n <td>34.45</td>\n <td>24.0</td>\n <td>2746.0</td>\n <td>433.0</td>\n <td>1076.0</td>\n <td>380.0</td>\n <td>5.8635</td>\n </tr>\n <tr>\n <th>18368</th>\n <td>-121.98</td>\n <td>37.16</td>\n <td>42.0</td>\n <td>2533.0</td>\n <td>433.0</td>\n <td>957.0</td>\n <td>398.0</td>\n <td>5.3468</td>\n </tr>\n <tr>\n <th>5035</th>\n <td>-118.34</td>\n <td>33.99</td>\n <td>48.0</td>\n <td>2225.0</td>\n <td>433.0</td>\n <td>1170.0</td>\n <td>401.0</td>\n <td>2.9643</td>\n </tr>\n <tr>\n <th>16781</th>\n <td>-122.48</td>\n <td>37.67</td>\n <td>31.0</td>\n <td>2609.0</td>\n <td>433.0</td>\n <td>1746.0</td>\n <td>464.0</td>\n <td>5.1054</td>\n </tr>\n <tr>\n <th>5279</th>\n <td>-118.47</td>\n <td>34.06</td>\n <td>45.0</td>\n <td>3030.0</td>\n <td>433.0</td>\n <td>916.0</td>\n <td>399.0</td>\n <td>9.4664</td>\n </tr>\n </tbody>\n</table>\n<p>26 rows × 8 columns</p>\n</div>",
"text/plain": " longitude latitude housing_median_age total_rooms total_bedrooms \\\n16074 -122.49 37.74 52.0 2189.0 433.0 \n4814 -118.28 34.04 39.0 1155.0 433.0 \n5750 -118.28 34.17 52.0 2332.0 433.0 \n17095 -122.24 37.47 36.0 2021.0 433.0 \n3195 -119.73 36.31 20.0 2440.0 433.0 \n2875 -118.97 35.39 38.0 2121.0 433.0 \n4990 -118.31 33.99 48.0 2235.0 433.0 \n... ... ... ... ... ... \n18113 -122.02 37.31 34.0 2629.0 433.0 \n16346 -121.34 38.03 12.0 2707.0 433.0 \n17194 -119.79 34.45 24.0 2746.0 433.0 \n18368 -121.98 37.16 42.0 2533.0 433.0 \n5035 -118.34 33.99 48.0 2225.0 433.0 \n16781 -122.48 37.67 31.0 2609.0 433.0 \n5279 -118.47 34.06 45.0 3030.0 433.0 \n\n population households median_income \n16074 1147.0 420.0 3.4583 \n4814 1857.0 424.0 2.1696 \n5750 1135.0 440.0 5.5658 \n17095 1117.0 432.0 3.9290 \n3195 1579.0 400.0 2.8281 \n2875 1547.0 441.0 2.7740 \n4990 1363.0 433.0 1.6559 \n... ... ... ... \n18113 1301.0 431.0 6.0830 \n16346 1200.0 380.0 4.9861 \n17194 1076.0 380.0 5.8635 \n18368 957.0 398.0 5.3468 \n5035 1170.0 401.0 2.9643 \n16781 1746.0 464.0 5.1054 \n5279 916.0 399.0 9.4664 \n\n[26 rows x 8 columns]"
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "longitude False\nlatitude False\nhousing_median_age False\ntotal_rooms False\ntotal_bedrooms True\npopulation False\nhouseholds False\nmedian_income False\ndtype: bool"
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# transform:\nX = imputer.transform(housing_numeric)\nhousing_features_tr = pd.DataFrame(X, columns=housing_numeric.columns)\n### TODO: Convert this into a function\n\nhousing_features_tr.head()",
"execution_count": 28,
"outputs": [
{
"data": {
"text/html": "<div>\n<style>\n .dataframe thead tr:only-child th {\n text-align: right;\n }\n\n .dataframe thead th {\n text-align: left;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>longitude</th>\n <th>latitude</th>\n <th>housing_median_age</th>\n <th>total_rooms</th>\n <th>total_bedrooms</th>\n <th>population</th>\n <th>households</th>\n <th>median_income</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>-118.46</td>\n <td>35.12</td>\n <td>16.0</td>\n <td>4084.0</td>\n <td>812.0</td>\n <td>2033.0</td>\n <td>668.0</td>\n <td>3.2405</td>\n </tr>\n <tr>\n <th>1</th>\n <td>-124.05</td>\n <td>40.85</td>\n <td>31.0</td>\n <td>2414.0</td>\n <td>428.0</td>\n <td>1005.0</td>\n <td>401.0</td>\n <td>3.5156</td>\n </tr>\n <tr>\n <th>2</th>\n <td>-120.66</td>\n <td>35.49</td>\n <td>17.0</td>\n <td>4422.0</td>\n <td>945.0</td>\n <td>2307.0</td>\n <td>885.0</td>\n <td>2.8285</td>\n </tr>\n <tr>\n <th>3</th>\n <td>-118.38</td>\n <td>34.04</td>\n <td>36.0</td>\n <td>3005.0</td>\n <td>771.0</td>\n <td>2054.0</td>\n <td>758.0</td>\n <td>2.0437</td>\n </tr>\n <tr>\n <th>4</th>\n <td>-119.11</td>\n <td>34.17</td>\n <td>37.0</td>\n <td>470.0</td>\n <td>105.0</td>\n <td>522.0</td>\n <td>83.0</td>\n <td>2.0368</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " longitude latitude housing_median_age total_rooms total_bedrooms \\\n0 -118.46 35.12 16.0 4084.0 812.0 \n1 -124.05 40.85 31.0 2414.0 428.0 \n2 -120.66 35.49 17.0 4422.0 945.0 \n3 -118.38 34.04 36.0 3005.0 771.0 \n4 -119.11 34.17 37.0 470.0 105.0 \n\n population households median_income \n0 2033.0 668.0 3.2405 \n1 1005.0 401.0 3.5156 \n2 2307.0 885.0 2.8285 \n3 2054.0 758.0 2.0437 \n4 522.0 83.0 2.0368 "
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# verify if transformation worked correctly:\nhousing_features_tr.isnull().any()\nhousing_features_tr[housing_features_tr['total_bedrooms'] == 433]",
"execution_count": 29,
"outputs": [
{
"data": {
"text/plain": "longitude False\nlatitude False\nhousing_median_age False\ntotal_rooms False\ntotal_bedrooms False\npopulation False\nhouseholds False\nmedian_income False\ndtype: bool"
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/html": "<div>\n<style>\n .dataframe thead tr:only-child th {\n text-align: right;\n }\n\n .dataframe thead th {\n text-align: left;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>longitude</th>\n <th>latitude</th>\n <th>housing_median_age</th>\n <th>total_rooms</th>\n <th>total_bedrooms</th>\n <th>population</th>\n <th>households</th>\n <th>median_income</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>27</th>\n <td>-122.49</td>\n <td>37.74</td>\n <td>52.0</td>\n <td>2189.0</td>\n <td>433.0</td>\n <td>1147.0</td>\n <td>420.0</td>\n <td>3.4583</td>\n </tr>\n <tr>\n <th>118</th>\n <td>-120.67</td>\n <td>40.50</td>\n <td>15.0</td>\n <td>5343.0</td>\n <td>433.0</td>\n <td>2503.0</td>\n <td>902.0</td>\n <td>3.5962</td>\n </tr>\n <tr>\n <th>141</th>\n <td>-119.18</td>\n <td>34.19</td>\n <td>19.0</td>\n <td>2393.0</td>\n <td>433.0</td>\n <td>1938.0</td>\n <td>762.0</td>\n <td>1.6953</td>\n </tr>\n <tr>\n <th>160</th>\n <td>-118.36</td>\n <td>34.05</td>\n <td>42.0</td>\n <td>1372.0</td>\n <td>433.0</td>\n <td>674.0</td>\n <td>271.0</td>\n <td>2.8793</td>\n </tr>\n <tr>\n <th>162</th>\n <td>-119.32</td>\n <td>36.25</td>\n <td>21.0</td>\n <td>1231.0</td>\n <td>433.0</td>\n <td>609.0</td>\n <td>206.0</td>\n <td>2.8365</td>\n </tr>\n <tr>\n <th>189</th>\n <td>-117.92</td>\n <td>33.87</td>\n <td>33.0</td>\n <td>1597.0</td>\n <td>433.0</td>\n <td>1888.0</td>\n <td>423.0</td>\n <td>3.0550</td>\n </tr>\n <tr>\n <th>224</th>\n <td>-118.16</td>\n <td>34.01</td>\n <td>40.0</td>\n <td>1552.0</td>\n <td>433.0</td>\n <td>1919.0</td>\n <td>427.0</td>\n <td>2.2596</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>15714</th>\n <td>-122.48</td>\n <td>37.67</td>\n <td>31.0</td>\n <td>2609.0</td>\n <td>433.0</td>\n <td>1746.0</td>\n <td>464.0</td>\n <td>5.1054</td>\n </tr>\n <tr>\n <th>15761</th>\n <td>-124.06</td>\n <td>40.86</td>\n <td>34.0</td>\n <td>4183.0</td>\n <td>433.0</td>\n <td>1891.0</td>\n <td>669.0</td>\n <td>3.2216</td>\n </tr>\n <tr>\n <th>15914</th>\n <td>-118.47</td>\n <td>34.06</td>\n <td>45.0</td>\n <td>3030.0</td>\n <td>433.0</td>\n <td>916.0</td>\n <td>399.0</td>\n <td>9.4664</td>\n </tr>\n <tr>\n <th>15959</th>\n <td>-118.27</td>\n <td>34.04</td>\n <td>13.0</td>\n <td>1784.0</td>\n <td>433.0</td>\n <td>2158.0</td>\n <td>682.0</td>\n <td>1.7038</td>\n </tr>\n <tr>\n <th>15968</th>\n <td>-117.01</td>\n <td>32.74</td>\n <td>31.0</td>\n <td>3473.0</td>\n <td>433.0</td>\n <td>2098.0</td>\n <td>677.0</td>\n <td>2.6973</td>\n </tr>\n <tr>\n <th>16393</th>\n <td>-117.65</td>\n <td>33.60</td>\n <td>15.0</td>\n <td>5736.0</td>\n <td>433.0</td>\n <td>2529.0</td>\n <td>762.0</td>\n <td>6.4114</td>\n </tr>\n <tr>\n <th>16498</th>\n <td>-121.98</td>\n <td>37.96</td>\n <td>22.0</td>\n <td>2987.0</td>\n <td>433.0</td>\n <td>1420.0</td>\n <td>540.0</td>\n <td>3.6500</td>\n </tr>\n </tbody>\n</table>\n<p>179 rows × 8 columns</p>\n</div>",
"text/plain": " longitude latitude housing_median_age total_rooms total_bedrooms \\\n27 -122.49 37.74 52.0 2189.0 433.0 \n118 -120.67 40.50 15.0 5343.0 433.0 \n141 -119.18 34.19 19.0 2393.0 433.0 \n160 -118.36 34.05 42.0 1372.0 433.0 \n162 -119.32 36.25 21.0 1231.0 433.0 \n189 -117.92 33.87 33.0 1597.0 433.0 \n224 -118.16 34.01 40.0 1552.0 433.0 \n... ... ... ... ... ... \n15714 -122.48 37.67 31.0 2609.0 433.0 \n15761 -124.06 40.86 34.0 4183.0 433.0 \n15914 -118.47 34.06 45.0 3030.0 433.0 \n15959 -118.27 34.04 13.0 1784.0 433.0 \n15968 -117.01 32.74 31.0 3473.0 433.0 \n16393 -117.65 33.60 15.0 5736.0 433.0 \n16498 -121.98 37.96 22.0 2987.0 433.0 \n\n population households median_income \n27 1147.0 420.0 3.4583 \n118 2503.0 902.0 3.5962 \n141 1938.0 762.0 1.6953 \n160 674.0 271.0 2.8793 \n162 609.0 206.0 2.8365 \n189 1888.0 423.0 3.0550 \n224 1919.0 427.0 2.2596 \n... ... ... ... \n15714 1746.0 464.0 5.1054 \n15761 1891.0 669.0 3.2216 \n15914 916.0 399.0 9.4664 \n15959 2158.0 682.0 1.7038 \n15968 2098.0 677.0 2.6973 \n16393 2529.0 762.0 6.4114 \n16498 1420.0 540.0 3.6500 \n\n[179 rows x 8 columns]"
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Feature scaling: Min-max or Standardisation\nMin-max scaling: \n* (value - min) / (max - min)\n* scaled values range from 0 to 1\n* sensitive to outliers\n* MinMaxScaler()\n\nStandardisation:\n* (value - mean) / variance\n* not as sensitive to outliers\n* range not between 0 and 1 which could be problematic for some models(neural networks)\n* StandardScaler()"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Numeric representation of categorical data:\n* factorize() in pandas maps each category to a sequential number\n* OneHotEncoder in Scikit-Learn converts integer values into one-hot vectors in\n the form of a sparse matrix\n* CategoricalEncoder works directly on categorical data"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "housing_categorical = housing_features['ocean_proximity']\nhousing_categorical.head(10)",
"execution_count": 30,
"outputs": [
{
"data": {
"text/plain": "3153 INLAND\n2579 NEAR OCEAN\n16718 <1H OCEAN\n5373 <1H OCEAN\n20311 NEAR OCEAN\n1727 NEAR BAY\n1553 <1H OCEAN\n2098 INLAND\n9390 NEAR BAY\n5573 <1H OCEAN\nName: ocean_proximity, dtype: object"
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "housing_cat_encoded, housing_cat_names = housing_categorical.factorize()\nhousing_cat_encoded[:10]\nhousing_cat_names",
"execution_count": 31,
"outputs": [
{
"data": {
"text/plain": "array([0, 1, 2, 2, 1, 3, 2, 0, 3, 2])"
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "Index(['INLAND', 'NEAR OCEAN', '<1H OCEAN', 'NEAR BAY', 'ISLAND'], dtype='object')"
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from sklearn.preprocessing import OneHotEncoder\nohe = OneHotEncoder()\nhousing_1hot_ohe = ohe.fit_transform(housing_cat_encoded.reshape(-1, 1))\nhousing_1hot_ohe",
"execution_count": 32,
"outputs": [
{
"data": {
"text/plain": "<16512x5 sparse matrix of type '<class 'numpy.float64'>'\n\twith 16512 stored elements in Compressed Sparse Row format>"
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# How to handle categorical data: http://scikit-learn.org/dev/modules/preprocessing.html#preprocessing-categorical-features\n# http://scikit-learn.org/dev/modules/generated/sklearn.preprocessing.CategoricalEncoder.html\n# Pull request: https://github.com/scikit-learn/scikit-learn/commit/a2ebb8cfd2d126ad8e6fb36e0bdadba7de8fcd9f\n# New features in dev version: http://scikit-learn.org/dev/whats_new.html\n# Code for CategoricalEncoder: https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/preprocessing/data.py\n\n# from sklearn.preprocessing import CategoricalEncoder\n\n%run 'CategoricalEncoder.py'\n\nenc = CategoricalEncoder()\nhousing_1hot = enc.fit_transform(housing_categorical.values.reshape(-1, 1))\nhousing_1hot",
"execution_count": 33,
"outputs": [
{
"data": {
"text/plain": "<16512x5 sparse matrix of type '<class 'numpy.float64'>'\n\twith 16512 stored elements in Compressed Sparse Row format>"
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<matplotlib.figure.Figure at 0x7f131e2f74a8>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Write all the transformation functions/classes"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Create the following using FunctionTransformer?\nclass ColumnSelector(BaseEstimator, TransformerMixin):\n def __init__(self, column_names):\n self.column_names = column_names\n def fit(self, X, y=None):\n return self\n def transform(self, X):\n return X[self.column_names].values\n\nrooms_col, bedrooms_col, population_col, households_col = 3, 4, 5, 6\n\nclass AttributeAdder(BaseEstimator, TransformerMixin):\n def fit(self, X, y=None):\n return self\n def transform(self, X, y=None):\n rph = X[:, rooms_col] / X[:, households_col]\n bph = X[:, bedrooms_col] / X[:, households_col]\n bpr = X[:, bedrooms_col] / X[:, rooms_col]\n pph = X[:, population_col] / X[:, households_col]\n return np.c_[X, rph, bph, bpr, pph]\n\n# attribute_adder = AttributeAdder()\n# housing_full = attribute_adder.transform(housing.values)",
"execution_count": 34,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# housing_features = stratified_train_set.drop('median_house_value', axis=1)\n# housing_numeric = housing_features.drop('ocean_proximity', axis=1)\nnumeric_cols = list(housing_numeric)\ncategorical_cols = ['ocean_proximity']\n\n# use `make_pipeline` to make this code simpler; estimator names can be skipped: http://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html\nnumeric_cols_pipeline = Pipeline([('selector', ColumnSelector(numeric_cols)),\n ('imputer', Imputer(strategy='median')),\n ('attributes_adder', AttributeAdder()),\n ('standard_scaler', StandardScaler())\n ])\n\ncategorical_cols_pipeline = Pipeline([('selector', ColumnSelector(categorical_cols)),\n ('encoder', CategoricalEncoder(encoding='onehot-dense'))\n ])\n\nfull_pipeline = FeatureUnion(transformer_list=[('numeric_pipeline', numeric_cols_pipeline),\n ('categorical_pipeline', categorical_cols_pipeline)\n ])\n\n# housing_numeric_transformed = numeric_cols_pipeline.fit_transform(housing_numeric)\n# housing_categorical_transformed = categorical_cols_pipeline.fit_transform(housing.ocean_proximity)\n\nhousing_transformed = full_pipeline.fit_transform(housing)\nhousing_transformed.shape\nhousing_transformed",
"execution_count": 35,
"outputs": [
{
"data": {
"text/plain": "(16512, 17)"
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "array([[ 0.55770877, -0.24384572, -1.00717954, ..., 0. ,\n 0. , 0. ],\n [-2.23455235, 2.43896586, 0.18778414, ..., 0. ,\n 0. , 1. ],\n [-0.54121332, -0.07061006, -0.92751529, ..., 0. ,\n 0. , 0. ],\n ..., \n [ 0.62764017, -0.74014245, 1.8607333 , ..., 0. ,\n 0. , 0. ],\n [ 0.70256668, -0.75887063, 0.42677688, ..., 0. ,\n 0. , 0. ],\n [ 0.58767937, -0.67927587, 0.1081199 , ..., 0. ,\n 0. , 0. ]])"
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Assignments:\n# Try alternative strategies\n# Fix errors\n# Use Seaborn for plots",
"execution_count": 36,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# Explore different models\n## A. Linear Regression"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from sklearn.linear_model import LinearRegression\n\nlin_reg = LinearRegression()\nlin_reg.fit(housing_transformed, housing_labels)",
"execution_count": 37,
"outputs": [
{
"data": {
"text/plain": "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)"
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "sample_feature_data = housing.iloc[:5]\nsample_label_data = housing_labels.iloc[:5]\n\nsample_transformed = full_pipeline.transform(sample_feature_data)\nlin_reg.predict(sample_transformed)\nlist(sample_label_data)",
"execution_count": 40,
"outputs": [
{
"data": {
"text/plain": "array([ 124620.61023849, 196927.40669429, 211628.69692518,\n 174554.79822657, 167205.35543742])"
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "[85500.0, 143000.0, 171300.0, 309100.0, 243800.0]"
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from sklearn.metrics import mean_squared_error\nhousing_predictions = lin_reg.predict(housing_transformed)\ntrain_mse = mean_squared_error(housing_labels, housing_predictions)\nnp.sqrt(train_mse) # 0 is best performance, error is in the same unit of the predicted value/label\nhousing.median_house_value.min(), housing.median_house_value.max()",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from sklearn.metrics import r2_score\nr2_score(housing_labels, housing_predictions) # 1 is best performance, 0 is constant y irrespective of X, -1 is worst performance",
"execution_count": 45,
"outputs": [
{
"data": {
"text/plain": "0.65158541863086261"
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### What does this error mean?\n* compared to range of housing median value, an error of 68k is quite large and represents under-fitting the training data. \n* if training error is this high, test error is going to be even larger(but don't be tempted to test the model on test set yet)\n* it means that \n * the features do not provide enough information to make good predictions(part of it could be irreducible error \n but we can also try to fix the scaling problem and the horizontal lines we noticed earlier)\n * the model is not flexible enough(reducible error)\n * too many constraints on the model(doesn't apply in this case as this model is not regularised)"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## B. DecisionTreeRegressor\nDecisionTreeRegressor is capable of finding complex non-linear relationships in the training data, it's more flexible than LinearRegressor."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from sklearn.tree import DecisionTreeRegressor\n\ndt_reg = DecisionTreeRegressor()\nx = dt_reg.fit(housing_transformed, housing_labels)\n\nhousing_predictions2 = dt_reg.predict(housing_transformed)\ntrain_mse2 = mean_squared_error(housing_labels, housing_predictions2)\nnp.sqrt(train_mse2)\nr2_score(housing_labels, housing_predictions2)",
"execution_count": 53,
"outputs": [
{
"data": {
"text/plain": "0.0"
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "1.0"
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### What does this error mean?\nPerfect results almost always means something is terribly wrong. In this case, extreme over-fitting of the data is the most likely suspect. \nResist the temptation to try it on test data just yet. Instead, use cross-validation using training set for now."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "scores2 = cross_val_score(dt_reg, housing_transformed, housing_labels, scoring='neg_mean_squared_error', cv=10)\ntrain_mse22_scores = np.sqrt(-scores2)",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "print(train_mse22_scores)\nprint(train_mse22_scores.mean())\nprint(train_mse22_scores.std()) # explain standard deviation if not covered already\n\n# come back to reality; DecisionTreeRegressor as bad or worse than LinearRegression\n# Exercise: do cross-validation for linear regression",
"execution_count": 52,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "[ 70917.30806181 73378.66009893 71055.44606533 73008.72596417\n 68976.50895193 71842.7753012 74298.94969498 71110.77255258\n 76834.1858824 66187.65278557]\n71761.0985359\n2771.40294392\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## RandomForestRegressor"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from sklearn.ensemble import RandomForestRegressor\n\nrf_reg = RandomForestRegressor()\nx = rf_reg.fit(housing_transformed, housing_labels)\n\nhousing_predictions3 = rf_reg.predict(housing_transformed)\ntrain_mse3 = mean_squared_error(housing_labels, housing_predictions3)\nnp.sqrt(train_mse3)\nr2_score(housing_labels, housing_predictions3)",
"execution_count": 55,
"outputs": [
{
"data": {
"text/plain": "22324.888957283201"
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "0.96244326245978673"
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### What does this error mean?\nJust do the cross-validation."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "scores3 = cross_val_score(rf_reg, housing_transformed, housing_labels, scoring='neg_mean_squared_error', cv=10)\ntrain_mse33_scores = np.sqrt(-scores3)\n\nprint(train_mse33_scores)\nprint(train_mse33_scores.mean())\nprint(train_mse33_scores.std())",
"execution_count": 56,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "[ 55513.80116924 54114.72320107 52700.14138998 52970.10651086\n 51628.57054659 51620.12105364 53020.39931433 51829.49391054\n 56735.55063003 49025.28795603]\n52915.8195682\n2061.30563287\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Now what does this error mean?\nPretty good improvement over the previous two models. Low training error on training data compared to mean error in cross-validation means over-fitting, so that's still present in the current model just like in DecisionTreeRegressor, but to a lesser degree. Solutions: use less flexible model, regularise the model, get more training data/more features/more accurate features.\n\n### What's next?\n* Try more models and compare performance. \n* Always save the models, trained parameters, hyper-parameters, cross-validation scores, predictions etc. so you can come back to them easily in the future and compare scores across model types and their errors. \n* Don't spent too much time on regularisation/hyperparameter tuning before short-listing best models for the task. "
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# Fine-tune the model"
}
],
"metadata": {
"_draft": {
"nbviewer_url": "https://gist.github.com/c342254ce1a0730b978e6acb2763dcf6"
},
"gist": {
"id": "c342254ce1a0730b978e6acb2763dcf6",
"data": {
"description": "califorinia_housing_prices.ipynb",
"public": true
}
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.6.3",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment