Copy disabled (too large)
Download .txt
Showing preview only (16,010K chars total). Download the full file to get everything.
Repository: ageron/handson-ml
Branch: master
Commit: a57ad31ea9d3
Files: 70
Total size: 22.7 MB
Directory structure:
gitextract_jrkn61cu/
├── .gitignore
├── 01_the_machine_learning_landscape.ipynb
├── 02_end_to_end_machine_learning_project.ipynb
├── 03_classification.ipynb
├── 04_training_linear_models.ipynb
├── 05_support_vector_machines.ipynb
├── 06_decision_trees.ipynb
├── 07_ensemble_learning_and_random_forests.ipynb
├── 08_dimensionality_reduction.ipynb
├── 09_up_and_running_with_tensorflow.ipynb
├── 10_introduction_to_artificial_neural_networks.ipynb
├── 11_deep_learning.ipynb
├── 12_distributed_tensorflow.ipynb
├── 13_convolutional_neural_networks.ipynb
├── 14_recurrent_neural_networks.ipynb
├── 15_autoencoders.ipynb
├── 16_reinforcement_learning.ipynb
├── INSTALL.md
├── LICENSE
├── README.md
├── apt.txt
├── book_equations.ipynb
├── datasets/
│ ├── housing/
│ │ ├── README.md
│ │ ├── housing.csv
│ │ └── housing.tgz
│ ├── inception/
│ │ └── imagenet_class_names.txt
│ └── lifesat/
│ ├── README.md
│ ├── gdp_per_capita.csv
│ └── oecd_bli_2015.csv
├── docker/
│ ├── Dockerfile
│ ├── Makefile
│ ├── README.md
│ ├── bashrc.bash
│ ├── bin/
│ │ ├── nbclean_checkpoints
│ │ ├── nbdiff_checkpoint
│ │ ├── rm_empty_subdirs
│ │ └── tensorboard
│ ├── docker-compose.yml
│ └── jupyter_notebook_config.py
├── environment.yml
├── extra_autodiff.ipynb
├── extra_capsnets-cn.ipynb
├── extra_capsnets.ipynb
├── extra_gradient_descent_comparison.ipynb
├── extra_tensorflow_reproducibility.ipynb
├── future_encoders.py
├── images/
│ ├── ann/
│ │ └── README
│ ├── autoencoders/
│ │ └── README
│ ├── classification/
│ │ └── README
│ ├── cnn/
│ │ └── README
│ ├── decision_trees/
│ │ └── README
│ ├── deep/
│ │ └── README
│ ├── distributed/
│ │ └── README
│ ├── end_to_end_project/
│ │ └── README
│ ├── ensembles/
│ │ └── README
│ ├── fundamentals/
│ │ └── README
│ ├── rl/
│ │ └── README
│ ├── rnn/
│ │ └── README
│ ├── svm/
│ │ └── README
│ ├── tensorflow/
│ │ └── README
│ ├── training_linear_models/
│ │ └── README
│ └── unsupervised_learning/
│ └── README
├── index.ipynb
├── math_differential_calculus.ipynb
├── math_linear_algebra.ipynb
├── ml-project-checklist.md
├── requirements.txt
├── tools_matplotlib.ipynb
├── tools_numpy.ipynb
└── tools_pandas.ipynb
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*.bak
*.bak.*
*.ckpt
*.old
*.pyc
.DS_Store
.ipynb_checkpoints
.vscode/
checkpoint
logs/*
tf_logs/*
images/**/*.png
images/**/*.dot
my_*
person.proto
person.desc
person_pb2.py
datasets/flowers
datasets/lifesat/lifesat.csv
datasets/spam
datasets/titanic
datasets/words
================================================
FILE: 01_the_machine_learning_landscape.ipynb
================================================
[File too large to display: 275.8 KB]
================================================
FILE: 02_end_to_end_machine_learning_project.ipynb
================================================
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Chapter 2 – End-to-end Machine Learning project**\n",
"\n",
"*Welcome to Machine Learning Housing Corp.! Your task is to predict median house values in Californian districts, given a number of features from these districts.*\n",
"\n",
"*This notebook contains all the sample code and solutions to the exercices in chapter 2.*\n",
"\n",
"<table align=\"left\">\n",
" <td>\n",
" <a target=\"_blank\" href=\"https://colab.research.google.com/github/ageron/handson-ml/blob/master/02_end_to_end_machine_learning_project.ipynb\"><img src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" />Run in Google Colab</a>\n",
" </td>\n",
"</table>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Warning**: this is the code for the 1st edition of the book. Please visit https://github.com/ageron/handson-ml2 for the 2nd edition code, with up-to-date notebooks using the latest library versions."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note**: You may find little differences between the code outputs in the book and in these Jupyter notebooks: these slight differences are mostly due to the random nature of many training algorithms: although I have tried to make these notebooks' outputs as constant as possible, it is impossible to guarantee that they will produce the exact same output on every platform. Also, some data structures (such as dictionaries) do not preserve the item order. Finally, I fixed a few minor bugs (I added notes next to the concerned cells) which lead to slightly different results, without changing the ideas presented in the book."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Setup"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First, let's make sure this notebook works well in both python 2 and 3, import a few common modules, ensure MatplotLib plots figures inline and prepare a function to save the figures:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# To support both python 2 and python 3\n",
"from __future__ import division, print_function, unicode_literals\n",
"\n",
"# Common imports\n",
"import numpy as np\n",
"import os\n",
"\n",
"# to make this notebook's output stable across runs\n",
"np.random.seed(42)\n",
"\n",
"# To plot pretty figures\n",
"%matplotlib inline\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt\n",
"mpl.rc('axes', labelsize=14)\n",
"mpl.rc('xtick', labelsize=12)\n",
"mpl.rc('ytick', labelsize=12)\n",
"\n",
"# Where to save the figures\n",
"PROJECT_ROOT_DIR = \".\"\n",
"CHAPTER_ID = \"end_to_end_project\"\n",
"IMAGES_PATH = os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID)\n",
"os.makedirs(IMAGES_PATH, exist_ok=True)\n",
"\n",
"def save_fig(fig_id, tight_layout=True, fig_extension=\"png\", resolution=300):\n",
" path = os.path.join(IMAGES_PATH, fig_id + \".\" + fig_extension)\n",
" print(\"Saving figure\", fig_id)\n",
" if tight_layout:\n",
" plt.tight_layout()\n",
" plt.savefig(path, format=fig_extension, dpi=resolution)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Get the data"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import tarfile\n",
"import urllib.request\n",
"\n",
"DOWNLOAD_ROOT = \"https://raw.githubusercontent.com/ageron/handson-ml/master/\"\n",
"HOUSING_PATH = os.path.join(\"datasets\", \"housing\")\n",
"HOUSING_URL = DOWNLOAD_ROOT + \"datasets/housing/housing.tgz\"\n",
"\n",
"def fetch_housing_data(housing_url=HOUSING_URL, housing_path=HOUSING_PATH):\n",
" os.makedirs(housing_path, exist_ok=True)\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": 3,
"metadata": {},
"outputs": [],
"source": [
"fetch_housing_data()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"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": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"housing = load_housing_data()\n",
"housing.head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"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": 7,
"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": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"housing[\"ocean_proximity\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"housing.describe()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure attribute_histogram_plots\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x1080 with 9 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"housing.hist(bins=50, figsize=(20,15))\n",
"save_fig(\"attribute_histogram_plots\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"# to make this notebook's output identical at every run\n",
"np.random.seed(42)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"# For illustration only. Sklearn has train_test_split()\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": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"16512 train + 4128 test\n"
]
}
],
"source": [
"train_set, test_set = split_train_test(housing, 0.2)\n",
"print(len(train_set), \"train +\", len(test_set), \"test\")"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"from zlib import crc32\n",
"\n",
"def test_set_check(identifier, test_ratio):\n",
" return crc32(np.int64(identifier)) & 0xffffffff < test_ratio * 2**32\n",
"\n",
"def split_train_test_by_id(data, test_ratio, id_column):\n",
" ids = data[id_column]\n",
" in_test_set = ids.apply(lambda id_: test_set_check(id_, test_ratio))\n",
" return data.loc[~in_test_set], data.loc[in_test_set]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The implementation of `test_set_check()` above works fine in both Python 2 and Python 3. In earlier releases, the following implementation was proposed, which supported any hash function, but was much slower and did not support Python 2:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"import hashlib\n",
"\n",
"def test_set_check(identifier, test_ratio, hash=hashlib.md5):\n",
" return hash(np.int64(identifier)).digest()[-1] < 256 * test_ratio"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you want an implementation that supports any hash function and is compatible with both Python 2 and Python 3, here is one:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"def test_set_check(identifier, test_ratio, hash=hashlib.md5):\n",
" return bytearray(hash(np.int64(identifier)).digest())[-1] < 256 * test_ratio"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"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": 17,
"metadata": {},
"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": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_set.head()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"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": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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><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": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_set.head()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x114f7c828>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"housing[\"median_income\"].hist()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Warning**: in the book, I did not use `pd.cut()`, instead I used the code below. The `pd.cut()` solution gives the same result (except the labels are integers instead of floats), but it is simpler to understand:\n",
"\n",
"```python\n",
"# Divide by 1.5 to limit the number of income categories\n",
"housing[\"income_cat\"] = np.ceil(housing[\"median_income\"] / 1.5)\n",
"# Label those above 5 as 5\n",
"housing[\"income_cat\"].where(housing[\"income_cat\"] < 5, 5.0, inplace=True)\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"housing[\"income_cat\"] = pd.cut(housing[\"median_income\"],\n",
" bins=[0., 1.5, 3.0, 4.5, 6., np.inf],\n",
" labels=[1, 2, 3, 4, 5])"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"3 7236\n",
"2 6581\n",
"4 3639\n",
"5 2362\n",
"1 822\n",
"Name: income_cat, dtype: int64"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"housing[\"income_cat\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x12b945588>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"housing[\"income_cat\"].hist()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"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": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3 0.350533\n",
"2 0.318798\n",
"4 0.176357\n",
"5 0.114583\n",
"1 0.039729\n",
"Name: income_cat, dtype: float64"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"strat_test_set[\"income_cat\"].value_counts() / len(strat_test_set)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3 0.350581\n",
"2 0.318847\n",
"4 0.176308\n",
"5 0.114438\n",
"1 0.039826\n",
"Name: income_cat, dtype: float64"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"housing[\"income_cat\"].value_counts() / len(housing)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"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": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Overall</th>\n",
" <th>Stratified</th>\n",
" <th>Random</th>\n",
" <th>Rand. %error</th>\n",
" <th>Strat. %error</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.039826</td>\n",
" <td>0.039729</td>\n",
" <td>0.040213</td>\n",
" <td>0.973236</td>\n",
" <td>-0.243309</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.318847</td>\n",
" <td>0.318798</td>\n",
" <td>0.324370</td>\n",
" <td>1.732260</td>\n",
" <td>-0.015195</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.350581</td>\n",
" <td>0.350533</td>\n",
" <td>0.358527</td>\n",
" <td>2.266446</td>\n",
" <td>-0.013820</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.176308</td>\n",
" <td>0.176357</td>\n",
" <td>0.167393</td>\n",
" <td>-5.056334</td>\n",
" <td>0.027480</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.114438</td>\n",
" <td>0.114583</td>\n",
" <td>0.109496</td>\n",
" <td>-4.318374</td>\n",
" <td>0.127011</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Overall Stratified Random Rand. %error Strat. %error\n",
"1 0.039826 0.039729 0.040213 0.973236 -0.243309\n",
"2 0.318847 0.318798 0.324370 1.732260 -0.015195\n",
"3 0.350581 0.350533 0.358527 2.266446 -0.013820\n",
"4 0.176308 0.176357 0.167393 -5.056334 0.027480\n",
"5 0.114438 0.114583 0.109496 -4.318374 0.127011"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"compare_props"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"for set_ in (strat_train_set, strat_test_set):\n",
" set_.drop(\"income_cat\", axis=1, inplace=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Discover and visualize the data to gain insights"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"housing = strat_train_set.copy()"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure bad_visualization_plot\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"housing.plot(kind=\"scatter\", x=\"longitude\", y=\"latitude\")\n",
"save_fig(\"bad_visualization_plot\")"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure better_visualization_plot\n"
]
},
{
"data": {
"image/png": "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
gitextract_jrkn61cu/ ├── .gitignore ├── 01_the_machine_learning_landscape.ipynb ├── 02_end_to_end_machine_learning_project.ipynb ├── 03_classification.ipynb ├── 04_training_linear_models.ipynb ├── 05_support_vector_machines.ipynb ├── 06_decision_trees.ipynb ├── 07_ensemble_learning_and_random_forests.ipynb ├── 08_dimensionality_reduction.ipynb ├── 09_up_and_running_with_tensorflow.ipynb ├── 10_introduction_to_artificial_neural_networks.ipynb ├── 11_deep_learning.ipynb ├── 12_distributed_tensorflow.ipynb ├── 13_convolutional_neural_networks.ipynb ├── 14_recurrent_neural_networks.ipynb ├── 15_autoencoders.ipynb ├── 16_reinforcement_learning.ipynb ├── INSTALL.md ├── LICENSE ├── README.md ├── apt.txt ├── book_equations.ipynb ├── datasets/ │ ├── housing/ │ │ ├── README.md │ │ ├── housing.csv │ │ └── housing.tgz │ ├── inception/ │ │ └── imagenet_class_names.txt │ └── lifesat/ │ ├── README.md │ ├── gdp_per_capita.csv │ └── oecd_bli_2015.csv ├── docker/ │ ├── Dockerfile │ ├── Makefile │ ├── README.md │ ├── bashrc.bash │ ├── bin/ │ │ ├── nbclean_checkpoints │ │ ├── nbdiff_checkpoint │ │ ├── rm_empty_subdirs │ │ └── tensorboard │ ├── docker-compose.yml │ └── jupyter_notebook_config.py ├── environment.yml ├── extra_autodiff.ipynb ├── extra_capsnets-cn.ipynb ├── extra_capsnets.ipynb ├── extra_gradient_descent_comparison.ipynb ├── extra_tensorflow_reproducibility.ipynb ├── future_encoders.py ├── images/ │ ├── ann/ │ │ └── README │ ├── autoencoders/ │ │ └── README │ ├── classification/ │ │ └── README │ ├── cnn/ │ │ └── README │ ├── decision_trees/ │ │ └── README │ ├── deep/ │ │ └── README │ ├── distributed/ │ │ └── README │ ├── end_to_end_project/ │ │ └── README │ ├── ensembles/ │ │ └── README │ ├── fundamentals/ │ │ └── README │ ├── rl/ │ │ └── README │ ├── rnn/ │ │ └── README │ ├── svm/ │ │ └── README │ ├── tensorflow/ │ │ └── README │ ├── training_linear_models/ │ │ └── README │ └── unsupervised_learning/ │ └── README ├── index.ipynb ├── math_differential_calculus.ipynb ├── math_linear_algebra.ipynb ├── ml-project-checklist.md ├── requirements.txt ├── tools_matplotlib.ipynb ├── tools_numpy.ipynb └── tools_pandas.ipynb
Copy disabled (too large)
Download .json
Condensed preview — 70 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (16,150K chars).
[
{
"path": ".gitignore",
"chars": 268,
"preview": "*.bak\n*.bak.*\n*.ckpt\n*.old\n*.pyc\n.DS_Store\n.ipynb_checkpoints\n.vscode/\ncheckpoint\nlogs/*\ntf_logs/*\nimages/**/*.png\nimage"
},
{
"path": "02_end_to_end_machine_learning_project.ipynb",
"chars": 1225625,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"**Chapter 2 – End-to-end Machine Le"
},
{
"path": "04_training_linear_models.ipynb",
"chars": 855779,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"**Chapter 4 – Training Linear Model"
},
{
"path": "05_support_vector_machines.ipynb",
"chars": 882520,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"**Chapter 5 – Support Vector Machin"
},
{
"path": "06_decision_trees.ipynb",
"chars": 205855,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"**Chapter 6 – Decision Trees**\"\n "
},
{
"path": "08_dimensionality_reduction.ipynb",
"chars": 5781392,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"**Chapter 8 – Dimensionality Reduct"
},
{
"path": "09_up_and_running_with_tensorflow.ipynb",
"chars": 199485,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"**Chapter 9 – Up and running with T"
},
{
"path": "10_introduction_to_artificial_neural_networks.ipynb",
"chars": 138588,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"**Chapter 10 – Introduction to Arti"
},
{
"path": "11_deep_learning.ipynb",
"chars": 336148,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"**Chapter 11 – Deep Learning**\"\n "
},
{
"path": "12_distributed_tensorflow.ipynb",
"chars": 25792,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"**Chapter 12 – Distributed TensorFl"
},
{
"path": "13_convolutional_neural_networks.ipynb",
"chars": 4858162,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"**Chapter 13 – Convolutional Neural"
},
{
"path": "LICENSE",
"chars": 10175,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "book_equations.ipynb",
"chars": 49029,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"**Equations**\\n\",\n \"\\n\",\n \"*T"
},
{
"path": "datasets/housing/README.md",
"chars": 3678,
"preview": "# California Housing\n\n## Source\nThis dataset is a modified version of the California Housing dataset available from [Luí"
},
{
"path": "datasets/housing/housing.csv",
"chars": 1423529,
"preview": "longitude,latitude,housing_median_age,total_rooms,total_bedrooms,population,households,median_income,median_house_value,"
}
]
// ... and 55 more files (download for full content)
About this extraction
This page contains the full source code of the ageron/handson-ml GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 70 files (22.7 MB), approximately 4.0M tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.