Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Repository ini adalah kumpulan kode Python pada Jupyter Notebook, yang dibahas pada seri blogposts End-to-End Machine Learning pada hakim-azizul.com.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Get the Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Mendownload Data "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#Import library\n",
"import os\n",
"import tarfile\n",
"from six.moves import urllib\n",
"\n",
"#Path data\n",
"DOWNLOAD_ROOT = \"https://raw.githubusercontent.com/ageron/handson-ml/master/\"\n",
"HOUSING_PATH = \"datasets/housing\"\n",
"HOUSING_URL = DOWNLOAD_ROOT + HOUSING_PATH + \"/housing.tgz\"\n",
"\n",
"#Fungsi untuk fetching data\n",
"def fetch_housing_data(housing_url=HOUSING_URL, housing_path=HOUSING_PATH):\n",
" if not os.path.isdir(housing_path):\n",
" os.makedirs(housing_path)\n",
" tgz_path = os.path.join(housing_path, \"housing.tgz\")\n",
" urllib.request.urlretrieve(housing_url, tgz_path)\n",
" housing_tgz = tarfile.open(tgz_path)\n",
" housing_tgz.extractall(path=housing_path)\n",
" housing_tgz.close()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"fetch_housing_data()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load Data dengan Pandas "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"def load_housing_data(housing_path=HOUSING_PATH):\n",
" csv_path = os.path.join(housing_path, \"housing.csv\")\n",
" return pd.read_csv(csv_path)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"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 \\\n",
"0 -122.23 37.88 41.0 880.0 129.0 \n",
"1 -122.22 37.86 21.0 7099.0 1106.0 \n",
"2 -122.24 37.85 52.0 1467.0 190.0 \n",
"3 -122.25 37.85 52.0 1274.0 235.0 \n",
"4 -122.25 37.85 52.0 1627.0 280.0 \n",
"\n",
" population households median_income median_house_value ocean_proximity \n",
"0 322.0 126.0 8.3252 452600.0 NEAR BAY \n",
"1 2401.0 1138.0 8.3014 358500.0 NEAR BAY \n",
"2 496.0 177.0 7.2574 352100.0 NEAR BAY \n",
"3 558.0 219.0 5.6431 341300.0 NEAR BAY \n",
"4 565.0 259.0 3.8462 342200.0 NEAR BAY "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"housing = load_housing_data()\n",
"housing.head()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 20640 entries, 0 to 20639\n",
"Data columns (total 10 columns):\n",
"longitude 20640 non-null float64\n",
"latitude 20640 non-null float64\n",
"housing_median_age 20640 non-null float64\n",
"total_rooms 20640 non-null float64\n",
"total_bedrooms 20433 non-null float64\n",
"population 20640 non-null float64\n",
"households 20640 non-null float64\n",
"median_income 20640 non-null float64\n",
"median_house_value 20640 non-null float64\n",
"ocean_proximity 20640 non-null object\n",
"dtypes: float64(9), object(1)\n",
"memory usage: 1.6+ MB\n"
]
}
],
"source": [
"housing.info()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<1H OCEAN 9136\n",
"INLAND 6551\n",
"NEAR OCEAN 2658\n",
"NEAR BAY 2290\n",
"ISLAND 5\n",
"Name: ocean_proximity, dtype: int64"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"housing[\"ocean_proximity\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"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 \\\n",
"count 20640.000000 20640.000000 20640.000000 20640.000000 \n",
"mean -119.569704 35.631861 28.639486 2635.763081 \n",
"std 2.003532 2.135952 12.585558 2181.615252 \n",
"min -124.350000 32.540000 1.000000 2.000000 \n",
"25% -121.800000 33.930000 18.000000 1447.750000 \n",
"50% -118.490000 34.260000 29.000000 2127.000000 \n",
"75% -118.010000 37.710000 37.000000 3148.000000 \n",
"max -114.310000 41.950000 52.000000 39320.000000 \n",
"\n",
" total_bedrooms population households median_income \\\n",
"count 20433.000000 20640.000000 20640.000000 20640.000000 \n",
"mean 537.870553 1425.476744 499.539680 3.870671 \n",
"std 421.385070 1132.462122 382.329753 1.899822 \n",
"min 1.000000 3.000000 1.000000 0.499900 \n",
"25% 296.000000 787.000000 280.000000 2.563400 \n",
"50% 435.000000 1166.000000 409.000000 3.534800 \n",
"75% 647.000000 1725.000000 605.000000 4.743250 \n",
"max 6445.000000 35682.000000 6082.000000 15.000100 \n",
"\n",
" median_house_value \n",
"count 20640.000000 \n",
"mean 206855.816909 \n",
"std 115395.615874 \n",
"min 14999.000000 \n",
"25% 119600.000000 \n",
"50% 179700.000000 \n",
"75% 264725.000000 \n",
"max 500001.000000 "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"housing.describe()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nvm0r8FPArWU77wT+Ryl/EVVyZDPVXZd7l/J9yvjmMv1FLcv6k7It99LS8+h0n+3p1tGHz/AYT/fO\nNq+2s6zrK+V112Qc8+1z62va/38jjyNMsz8ddFxt4nxq39CUF9Vd/l8q790/UHpJbMKLqsfir5b9\nwUf6tQ+fJpYZ/zZpSGybqZ5hNvl9+EBTYpsyfQtD1Dvb5MFIkiRJkiRJmtaCb84mSZIkSZKkeiaR\nJEmSJEmSVMskkiRJkiRJkmqZRJIkSZIkSVItk0iSJEmSJEmqZRJJkiRJkiRJtUwiSZIkSZIkqZZJ\nJEmSJEmSJNUyiSRJkiRJkqRaJpEkSZIkSZJUyySSJEmSJEmSaplEkiRJkiRJUi2TSJIkSZIkSapl\nEkmSJEmSJEm1TCJJkiRJkiSplkkkSZIkSZIk1TKJJEmSJEmSpFomkSRJkiRJklTLJJIkSZIkSZJq\nmUSSJEmSJElSLZNIkiRJkiRJqmUSSZIkSZIkSbVMIkmSJEmSJKmWSSRJkiRJkiTVMokkSZIkSZKk\nWiaRJEmSJEmSVMskkiRJkiRJkmqZRJIkSZIkSVItk0iSJEmSJEmqZRJJkiRJkiRJtUwiSZIkSZIk\nqZZJJEmSJEmSJNUyiSRJkiRJkqRaJpEkSZIkSZJUyySSJEmSJEmSaplEkiRJkiRJUi2TSFrwImI8\nIn6zy3lfGBETEbHHXMclSZIkSVKTmESSZiEitkTEL06OZ+aDmfmczPzBIOOSJM1cRHw4It5eU2cs\nIrbO4TozIg6dq+VJkobHTI470rAwiSRJkhpnatJ+rupKktSOxx1pZkwiqVHKDvnciLg7InZExIci\nYp8y7bciYnNEbI+IjRHxgpb5MiJ+PyLuj4hvRsT/jIgfKdPeEhF/11J3eam/Z5v1vzgirouIb5Xl\nfDQiFpVpHwFeCPzv0oTtTVOXFREvKLFtL7H+Vsuy3xIRV0TEpRHxnYi4KyJGe/VeSpKGg02iJUlT\ntTtXkZrAJJKa6HTgRODFwI8DfxoRxwF/AfwKcBDwb8BlU+b7r8AocBSwEviNLtYdZT0vAF4KHAy8\nBSAzXwc8CPxyacL2l23m/ziwtcz/WuDPI+L4lumvKXEvAjYC7+kiRkma16ZJ2r+mJN8fL8+ye+l0\ndUv5JyLi6xHxRER8ISIO7zKWN5eLClsi4vSW8r0j4q8i4sGIeDQiPhARz26Z/scR8UhEbIuI35iy\n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\nc0nPhWYAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xb56de4b5f8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"housing.hist(bins=50, figsize=(20,15))\n",
"#Jika ingin menunjukkan plot, sekaligus menyimpannya, gunakan plt.savefig\n",
"#bukan plt.show()\n",
"plt.savefig(\"attribute_histogram_plots.png\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Membuat Test Set"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"def split_train_test(data, test_ratio):\n",
" shuffled_indices = np.random.permutation(len(data))\n",
" test_set_size = int(len(data) * test_ratio)\n",
" test_indices = shuffled_indices[:test_set_size]\n",
" train_indices = shuffled_indices[test_set_size:]\n",
" return data.iloc[train_indices], data.iloc[test_indices]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"train_set, test_set = split_train_test(housing, 0.2)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"16512 train + 4128 test\n"
]
}
],
"source": [
"print(len(train_set), \" train + \", len(test_set), \" test\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Mengimplementasikan Hashing"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import hashlib\n",
"\n",
"def test_set_check(identifier, test_ratio, hash):\n",
" return hash(np.int64(identifier)).digest()[-1] < 256 * test_ratio\n",
"\n",
"def split_train_test_by_id(data, test_ratio, id_column, hash=hashlib.md5):\n",
" ids = data[id_column]\n",
" in_test_set = ids.apply(lambda id_: test_set_check(id_, test_ratio, hash))\n",
" return data.loc[~in_test_set], data.loc[in_test_set]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"housing_with_id = housing.reset_index() #Adds an 'index' column\n",
"train_set, test_set = split_train_test_by_id(housing_with_id, 0.2, \"index\")"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"housing_with_id[\"id\"] = housing[\"longitude\"] * 1000 + housing[\"latitude\"]\n",
"train_set, test_set = split_train_test_by_id(housing_with_id, 0.2, \"id\")"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"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>index</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>id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>8</td>\n",
" <td>-122.26</td>\n",
" <td>37.84</td>\n",
" <td>42.0</td>\n",
" <td>2555.0</td>\n",
" <td>665.0</td>\n",
" <td>1206.0</td>\n",
" <td>595.0</td>\n",
" <td>2.0804</td>\n",
" <td>226700.0</td>\n",
" <td>NEAR BAY</td>\n",
" <td>-122222.16</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>10</td>\n",
" <td>-122.26</td>\n",
" <td>37.85</td>\n",
" <td>52.0</td>\n",
" <td>2202.0</td>\n",
" <td>434.0</td>\n",
" <td>910.0</td>\n",
" <td>402.0</td>\n",
" <td>3.2031</td>\n",
" <td>281500.0</td>\n",
" <td>NEAR BAY</td>\n",
" <td>-122222.15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>11</td>\n",
" <td>-122.26</td>\n",
" <td>37.85</td>\n",
" <td>52.0</td>\n",
" <td>3503.0</td>\n",
" <td>752.0</td>\n",
" <td>1504.0</td>\n",
" <td>734.0</td>\n",
" <td>3.2705</td>\n",
" <td>241800.0</td>\n",
" <td>NEAR BAY</td>\n",
" <td>-122222.15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>12</td>\n",
" <td>-122.26</td>\n",
" <td>37.85</td>\n",
" <td>52.0</td>\n",
" <td>2491.0</td>\n",
" <td>474.0</td>\n",
" <td>1098.0</td>\n",
" <td>468.0</td>\n",
" <td>3.0750</td>\n",
" <td>213500.0</td>\n",
" <td>NEAR BAY</td>\n",
" <td>-122222.15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>13</td>\n",
" <td>-122.26</td>\n",
" <td>37.84</td>\n",
" <td>52.0</td>\n",
" <td>696.0</td>\n",
" <td>191.0</td>\n",
" <td>345.0</td>\n",
" <td>174.0</td>\n",
" <td>2.6736</td>\n",
" <td>191300.0</td>\n",
" <td>NEAR BAY</td>\n",
" <td>-122222.16</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" index longitude latitude housing_median_age total_rooms \\\n",
"8 8 -122.26 37.84 42.0 2555.0 \n",
"10 10 -122.26 37.85 52.0 2202.0 \n",
"11 11 -122.26 37.85 52.0 3503.0 \n",
"12 12 -122.26 37.85 52.0 2491.0 \n",
"13 13 -122.26 37.84 52.0 696.0 \n",
"\n",
" total_bedrooms population households median_income median_house_value \\\n",
"8 665.0 1206.0 595.0 2.0804 226700.0 \n",
"10 434.0 910.0 402.0 3.2031 281500.0 \n",
"11 752.0 1504.0 734.0 3.2705 241800.0 \n",
"12 474.0 1098.0 468.0 3.0750 213500.0 \n",
"13 191.0 345.0 174.0 2.6736 191300.0 \n",
"\n",
" ocean_proximity id \n",
"8 NEAR BAY -122222.16 \n",
"10 NEAR BAY -122222.15 \n",
"11 NEAR BAY -122222.15 \n",
"12 NEAR BAY -122222.15 \n",
"13 NEAR BAY -122222.16 "
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_set.head()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"\n",
"train_set, test_set = train_test_split(housing, test_size=0.2, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"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>20046</th>\n",
" <td>-119.01</td>\n",
" <td>36.06</td>\n",
" <td>25.0</td>\n",
" <td>1505.0</td>\n",
" <td>NaN</td>\n",
" <td>1392.0</td>\n",
" <td>359.0</td>\n",
" <td>1.6812</td>\n",
" <td>47700.0</td>\n",
" <td>INLAND</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3024</th>\n",
" <td>-119.46</td>\n",
" <td>35.14</td>\n",
" <td>30.0</td>\n",
" <td>2943.0</td>\n",
" <td>NaN</td>\n",
" <td>1565.0</td>\n",
" <td>584.0</td>\n",
" <td>2.5313</td>\n",
" <td>45800.0</td>\n",
" <td>INLAND</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15663</th>\n",
" <td>-122.44</td>\n",
" <td>37.80</td>\n",
" <td>52.0</td>\n",
" <td>3830.0</td>\n",
" <td>NaN</td>\n",
" <td>1310.0</td>\n",
" <td>963.0</td>\n",
" <td>3.4801</td>\n",
" <td>500001.0</td>\n",
" <td>NEAR BAY</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",
" <tr>\n",
" <th>9814</th>\n",
" <td>-121.93</td>\n",
" <td>36.62</td>\n",
" <td>34.0</td>\n",
" <td>2351.0</td>\n",
" <td>NaN</td>\n",
" <td>1063.0</td>\n",
" <td>428.0</td>\n",
" <td>3.7250</td>\n",
" <td>278000.0</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 \\\n",
"20046 -119.01 36.06 25.0 1505.0 NaN \n",
"3024 -119.46 35.14 30.0 2943.0 NaN \n",
"15663 -122.44 37.80 52.0 3830.0 NaN \n",
"20484 -118.72 34.28 17.0 3051.0 NaN \n",
"9814 -121.93 36.62 34.0 2351.0 NaN \n",
"\n",
" population households median_income median_house_value \\\n",
"20046 1392.0 359.0 1.6812 47700.0 \n",
"3024 1565.0 584.0 2.5313 45800.0 \n",
"15663 1310.0 963.0 3.4801 500001.0 \n",
"20484 1705.0 495.0 5.7376 218600.0 \n",
"9814 1063.0 428.0 3.7250 278000.0 \n",
"\n",
" ocean_proximity \n",
"20046 INLAND \n",
"3024 INLAND \n",
"15663 NEAR BAY \n",
"20484 <1H OCEAN \n",
"9814 NEAR OCEAN "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_set.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Stratifikasi Data Kategori Income "
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0xb56eb80160>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nZmaZ+v8kTGtVgQvIRQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xb570739fd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"housing[\"median_income\"].hist()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"#Bagi kategori income dengan bin kelipatan 1.5, dan batasi kategori income hingga maksimal 5 saja\n",
"housing[\"income_cat\"] = np.ceil(housing[\"median_income\"]/1.5)\n",
"#Beri label untuk yg <= 5 menjadi 5 saja\n",
"housing[\"income_cat\"].where(housing[\"income_cat\"]<5, 5.0, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3.0 7236\n",
"2.0 6581\n",
"4.0 3639\n",
"5.0 2362\n",
"1.0 822\n",
"Name: income_cat, dtype: int64"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"housing[\"income_cat\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0xb56edfd390>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xb56eb92048>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"housing[\"income_cat\"].hist()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#Lakukan stratifikasi sampel berdasarkan kategori income:\n",
"from sklearn.model_selection import StratifiedShuffleSplit\n",
"\n",
"split = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)\n",
"for train_index, test_index in split.split(housing, housing[\"income_cat\"]):\n",
" strat_train_set = housing.loc[train_index]\n",
" strat_test_set = housing.loc[test_index]"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3.0 0.350581\n",
"2.0 0.318847\n",
"4.0 0.176308\n",
"5.0 0.114438\n",
"1.0 0.039826\n",
"Name: income_cat, dtype: float64"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"housing[\"income_cat\"].value_counts() / len(housing)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def income_cat_proportions(data):\n",
" return data[\"income_cat\"].value_counts() / len(data)\n",
"\n",
"train_set, test_set = train_test_split(housing, test_size=0.2, random_state=42)\n",
"\n",
"compare_props = pd.DataFrame({\n",
" \"Overall\": income_cat_proportions(housing),\n",
" \"Stratified\": income_cat_proportions(strat_test_set),\n",
" \"Random\": income_cat_proportions(test_set),\n",
"}).sort_index()\n",
"compare_props[\"Rand. %error\"] = 100 * compare_props[\"Random\"] / compare_props[\"Overall\"] - 100\n",
"compare_props[\"Strat. %error\"] = 100 * compare_props[\"Stratified\"] / compare_props[\"Overall\"] - 100"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"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>Overall</th>\n",
" <th>Random</th>\n",
" <th>Stratified</th>\n",
" <th>Rand. %error</th>\n",
" <th>Strat. %error</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1.0</th>\n",
" <td>0.039826</td>\n",
" <td>0.040213</td>\n",
" <td>0.039729</td>\n",
" <td>0.973236</td>\n",
" <td>-0.243309</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.0</th>\n",
" <td>0.318847</td>\n",
" <td>0.324370</td>\n",
" <td>0.318798</td>\n",
" <td>1.732260</td>\n",
" <td>-0.015195</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3.0</th>\n",
" <td>0.350581</td>\n",
" <td>0.358527</td>\n",
" <td>0.350533</td>\n",
" <td>2.266446</td>\n",
" <td>-0.013820</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.0</th>\n",
" <td>0.176308</td>\n",
" <td>0.167393</td>\n",
" <td>0.176357</td>\n",
" <td>-5.056334</td>\n",
" <td>0.027480</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.0</th>\n",
" <td>0.114438</td>\n",
" <td>0.109496</td>\n",
" <td>0.114583</td>\n",
" <td>-4.318374</td>\n",
" <td>0.127011</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Overall Random Stratified Rand. %error Strat. %error\n",
"1.0 0.039826 0.040213 0.039729 0.973236 -0.243309\n",
"2.0 0.318847 0.324370 0.318798 1.732260 -0.015195\n",
"3.0 0.350581 0.358527 0.350533 2.266446 -0.013820\n",
"4.0 0.176308 0.167393 0.176357 -5.056334 0.027480\n",
"5.0 0.114438 0.109496 0.114583 -4.318374 0.127011"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"compare_props"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"for set_ in (strat_train_set, strat_test_set):\n",
" set_.drop(\"income_cat\", axis=1, inplace=True)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.