"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density\n",
+ "0 San Francisco 852469 46.87 18187.945381\n",
+ "1 San Jose 1015785 176.53 5754.177760\n",
+ "2 Sacramento 485199 97.92 4955.055147"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 13
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "6qh63m-ayb-c"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Exercise #1\n",
+ "\n",
+ "Modify the `cities` table by adding a new boolean column that is True if and only if *both* of the following are True:\n",
+ "\n",
+ " * The city is named after a saint.\n",
+ " * The city has an area greater than 50 square miles.\n",
+ "\n",
+ "**Note:** Boolean `Series` are combined using the bitwise, rather than the traditional boolean, operators. For example, when performing *logical and*, use `&` instead of `and`.\n",
+ "\n",
+ "**Hint:** \"San\" in Spanish means \"saint.\""
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "zCOn8ftSyddH",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 142
+ },
+ "outputId": "df6b1984-59d2-4b92-ca1e-a3b47957abb4"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Your code here\n",
+ "cities['Has Saint name and area greater than 50sq.miles'] = (cities['Area square miles'] > 50) & cities['City name'].apply(lambda name: name.startswith('San'))\n",
+ "cities"
+ ],
+ "execution_count": 14,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
Area square miles
\n",
+ "
Population density
\n",
+ "
Has Saint name and area greater than 50sq.miles
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469
\n",
+ "
46.87
\n",
+ "
18187.945381
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
San Jose
\n",
+ "
1015785
\n",
+ "
176.53
\n",
+ "
5754.177760
\n",
+ "
True
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199
\n",
+ "
97.92
\n",
+ "
4955.055147
\n",
+ "
False
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density \\\n",
+ "0 San Francisco 852469 46.87 18187.945381 \n",
+ "1 San Jose 1015785 176.53 5754.177760 \n",
+ "2 Sacramento 485199 97.92 4955.055147 \n",
+ "\n",
+ " Has Saint name and area greater than 50sq.miles \n",
+ "0 False \n",
+ "1 True \n",
+ "2 False "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 14
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "YHIWvc9Ms-Ll"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for a solution."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "T5OlrqtdtCIb",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 142
+ },
+ "outputId": "17b8d2f1-f352-425a-828c-09b342a77143"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities['Is wide and has saint name'] = (cities['Area square miles'] > 50) & cities['City name'].apply(lambda name: name.startswith('San'))\n",
+ "cities"
+ ],
+ "execution_count": 15,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
Area square miles
\n",
+ "
Population density
\n",
+ "
Has Saint name and area greater than 50sq.miles
\n",
+ "
Is wide and has saint name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469
\n",
+ "
46.87
\n",
+ "
18187.945381
\n",
+ "
False
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
San Jose
\n",
+ "
1015785
\n",
+ "
176.53
\n",
+ "
5754.177760
\n",
+ "
True
\n",
+ "
True
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199
\n",
+ "
97.92
\n",
+ "
4955.055147
\n",
+ "
False
\n",
+ "
False
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density \\\n",
+ "0 San Francisco 852469 46.87 18187.945381 \n",
+ "1 San Jose 1015785 176.53 5754.177760 \n",
+ "2 Sacramento 485199 97.92 4955.055147 \n",
+ "\n",
+ " Has Saint name and area greater than 50sq.miles Is wide and has saint name \n",
+ "0 False False \n",
+ "1 True True \n",
+ "2 False False "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 15
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "f-xAOJeMiXFB"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Indexes\n",
+ "Both `Series` and `DataFrame` objects also define an `index` property that assigns an identifier value to each `Series` item or `DataFrame` row. \n",
+ "\n",
+ "By default, at construction, *pandas* assigns index values that reflect the ordering of the source data. Once created, the index values are stable; that is, they do not change when data is reordered."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "2684gsWNinq9",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 34
+ },
+ "outputId": "0220cabf-8bd2-42aa-9b18-0b5d2dde1a17"
+ },
+ "cell_type": "code",
+ "source": [
+ "city_names.index"
+ ],
+ "execution_count": 16,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "RangeIndex(start=0, stop=3, step=1)"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 16
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "F_qPe2TBjfWd",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 34
+ },
+ "outputId": "bde1ac55-1932-4321-9e74-1d1d57c5b89b"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities.index"
+ ],
+ "execution_count": 17,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "RangeIndex(start=0, stop=3, step=1)"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 17
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "hp2oWY9Slo_h"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Call `DataFrame.reindex` to manually reorder the rows. For example, the following has the same effect as sorting by city name:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "sN0zUzSAj-U1",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 142
+ },
+ "outputId": "8db86ccc-4d02-4b8f-891d-3a6908680ef0"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities.reindex([2, 0, 1])"
+ ],
+ "execution_count": 18,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
Area square miles
\n",
+ "
Population density
\n",
+ "
Has Saint name and area greater than 50sq.miles
\n",
+ "
Is wide and has saint name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199
\n",
+ "
97.92
\n",
+ "
4955.055147
\n",
+ "
False
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469
\n",
+ "
46.87
\n",
+ "
18187.945381
\n",
+ "
False
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
San Jose
\n",
+ "
1015785
\n",
+ "
176.53
\n",
+ "
5754.177760
\n",
+ "
True
\n",
+ "
True
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density \\\n",
+ "2 Sacramento 485199 97.92 4955.055147 \n",
+ "0 San Francisco 852469 46.87 18187.945381 \n",
+ "1 San Jose 1015785 176.53 5754.177760 \n",
+ "\n",
+ " Has Saint name and area greater than 50sq.miles Is wide and has saint name \n",
+ "2 False False \n",
+ "0 False False \n",
+ "1 True True "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 18
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "-GQFz8NZuS06"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Reindexing is a great way to shuffle (randomize) a `DataFrame`. In the example below, we take the index, which is array-like, and pass it to NumPy's `random.permutation` function, which shuffles its values in place. Calling `reindex` with this shuffled array causes the `DataFrame` rows to be shuffled in the same way.\n",
+ "Try running the following cell multiple times!"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "mF8GC0k8uYhz",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 142
+ },
+ "outputId": "a63e5a6a-5a7c-483e-bc01-a91d1e278bec"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities.reindex(np.random.permutation(cities.index))"
+ ],
+ "execution_count": 19,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
Area square miles
\n",
+ "
Population density
\n",
+ "
Has Saint name and area greater than 50sq.miles
\n",
+ "
Is wide and has saint name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
1
\n",
+ "
San Jose
\n",
+ "
1015785
\n",
+ "
176.53
\n",
+ "
5754.177760
\n",
+ "
True
\n",
+ "
True
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199
\n",
+ "
97.92
\n",
+ "
4955.055147
\n",
+ "
False
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469
\n",
+ "
46.87
\n",
+ "
18187.945381
\n",
+ "
False
\n",
+ "
False
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density \\\n",
+ "1 San Jose 1015785 176.53 5754.177760 \n",
+ "2 Sacramento 485199 97.92 4955.055147 \n",
+ "0 San Francisco 852469 46.87 18187.945381 \n",
+ "\n",
+ " Has Saint name and area greater than 50sq.miles Is wide and has saint name \n",
+ "1 True True \n",
+ "2 False False \n",
+ "0 False False "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 19
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "fSso35fQmGKb"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "For more information, see the [Index documentation](http://pandas.pydata.org/pandas-docs/stable/indexing.html#index-objects)."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "8UngIdVhz8C0"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Exercise #2\n",
+ "\n",
+ "The `reindex` method allows index values that are not in the original `DataFrame`'s index values. Try it and see what happens if you use such values! Why do you think this is allowed?"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "PN55GrDX0jzO",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 173
+ },
+ "outputId": "ffdf2462-a51b-4c0b-98a0-9e97e4bde564"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Your code here\n",
+ "cities.reindex([0, 2, 4, 6])"
+ ],
+ "execution_count": 21,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
Area square miles
\n",
+ "
Population density
\n",
+ "
Has Saint name and area greater than 50sq.miles
\n",
+ "
Is wide and has saint name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469.0
\n",
+ "
46.87
\n",
+ "
18187.945381
\n",
+ "
False
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199.0
\n",
+ "
97.92
\n",
+ "
4955.055147
\n",
+ "
False
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population Area square miles Population density \\\n",
+ "0 San Francisco 852469.0 46.87 18187.945381 \n",
+ "2 Sacramento 485199.0 97.92 4955.055147 \n",
+ "4 NaN NaN NaN NaN \n",
+ "6 NaN NaN NaN NaN \n",
+ "\n",
+ " Has Saint name and area greater than 50sq.miles Is wide and has saint name \n",
+ "0 False False \n",
+ "2 False False \n",
+ "4 NaN NaN \n",
+ "6 NaN NaN "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 21
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "TJffr5_Jwqvd"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for the solution."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "8oSvi2QWwuDH"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "If your `reindex` input array includes values not in the original `DataFrame` index values, `reindex` will add new rows for these \"missing\" indices and populate all corresponding columns with `NaN` values:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "yBdkucKCwy4x",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "cities.reindex([0, 4, 5, 2])"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "2l82PhPbwz7g"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "This behavior is desirable because indexes are often strings pulled from the actual data (see the [*pandas* reindex\n",
+ "documentation](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.reindex.html) for an example\n",
+ "in which the index values are browser names).\n",
+ "\n",
+ "In this case, allowing \"missing\" indices makes it easy to reindex using an external list, as you don't have to worry about\n",
+ "sanitizing the input."
+ ]
+ }
+ ]
+}
\ No newline at end of file
From db072fe72120f9919e4478bb9f3a2bc0b83981da Mon Sep 17 00:00:00 2001
From: Amit Rai <42401957+ardev472@users.noreply.github.com>
Date: Sun, 17 Feb 2019 19:00:29 +0530
Subject: [PATCH 02/11] Created using Colaboratory
---
first_steps_with_tensor_flow.ipynb | 1706 ++++++++++++++++++++++++++++
1 file changed, 1706 insertions(+)
create mode 100644 first_steps_with_tensor_flow.ipynb
diff --git a/first_steps_with_tensor_flow.ipynb b/first_steps_with_tensor_flow.ipynb
new file mode 100644
index 0000000..ee8db42
--- /dev/null
+++ b/first_steps_with_tensor_flow.ipynb
@@ -0,0 +1,1706 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "first_steps_with_tensor_flow.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "ajVM7rkoYXeL",
+ "ci1ISxxrZ7v0"
+ ],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python2",
+ "display_name": "Python 2"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JndnmDMp66FL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "hMqWDc_m6rUC",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
+ "# you may not use this file except in compliance with the License.\n",
+ "# You may obtain a copy of the License at\n",
+ "#\n",
+ "# https://www.apache.org/licenses/LICENSE-2.0\n",
+ "#\n",
+ "# Unless required by applicable law or agreed to in writing, software\n",
+ "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
+ "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
+ "# See the License for the specific language governing permissions and\n",
+ "# limitations under the License."
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "4f3CKqFUqL2-",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# First Steps with TensorFlow"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "Bd2Zkk1LE2Zr",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objectives:**\n",
+ " * Learn fundamental TensorFlow concepts\n",
+ " * Use the `LinearRegressor` class in TensorFlow to predict median housing price, at the granularity of city blocks, based on one input feature\n",
+ " * Evaluate the accuracy of a model's predictions using Root Mean Squared Error (RMSE)\n",
+ " * Improve the accuracy of a model by tuning its hyperparameters"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "MxiIKhP4E2Zr",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "The [data](https://developers.google.com/machine-learning/crash-course/california-housing-data-description) is based on 1990 census data from California."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "6TjLjL9IU80G",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Setup\n",
+ "In this first cell, we'll load the necessary libraries."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "rVFf5asKE2Zt",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "from IPython import display\n",
+ "from matplotlib import cm\n",
+ "from matplotlib import gridspec\n",
+ "from matplotlib import pyplot as plt\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from sklearn import metrics\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.python.data import Dataset\n",
+ "\n",
+ "tf.logging.set_verbosity(tf.logging.ERROR)\n",
+ "pd.options.display.max_rows = 10\n",
+ "pd.options.display.float_format = '{:.1f}'.format"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "ipRyUHjhU80Q",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Next, we'll load our data set."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "9ivCDWnwE2Zx",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_dataframe = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv\", sep=\",\")"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "vVk_qlG6U80j",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "We'll randomize the data, just to be sure not to get any pathological ordering effects that might harm the performance of Stochastic Gradient Descent. Additionally, we'll scale `median_house_value` to be in units of thousands, so it can be learned a little more easily with learning rates in a range that we usually use."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "r0eVyguIU80m",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 419
+ },
+ "outputId": "4073261a-79aa-4c3a-a441-438a80eae9f5"
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_dataframe = california_housing_dataframe.reindex(\n",
+ " np.random.permutation(california_housing_dataframe.index))\n",
+ "california_housing_dataframe[\"median_house_value\"] /= 1000.0\n",
+ "california_housing_dataframe"
+ ],
+ "execution_count": 3,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
"
+ ],
+ "text/plain": [
+ " longitude latitude housing_median_age total_rooms total_bedrooms \\\n",
+ "count 17000.0 17000.0 17000.0 17000.0 17000.0 \n",
+ "mean -119.6 35.6 28.6 2643.7 539.4 \n",
+ "std 2.0 2.1 12.6 2179.9 421.5 \n",
+ "min -124.3 32.5 1.0 2.0 1.0 \n",
+ "25% -121.8 33.9 18.0 1462.0 297.0 \n",
+ "50% -118.5 34.2 29.0 2127.0 434.0 \n",
+ "75% -118.0 37.7 37.0 3151.2 648.2 \n",
+ "max -114.3 42.0 52.0 37937.0 6445.0 \n",
+ "\n",
+ " population households median_income median_house_value \n",
+ "count 17000.0 17000.0 17000.0 17000.0 \n",
+ "mean 1429.6 501.2 3.9 207.3 \n",
+ "std 1147.9 384.5 1.9 116.0 \n",
+ "min 3.0 1.0 0.5 15.0 \n",
+ "25% 790.0 282.0 2.6 119.4 \n",
+ "50% 1167.0 409.0 3.5 180.4 \n",
+ "75% 1721.0 605.2 4.8 265.0 \n",
+ "max 35682.0 6082.0 15.0 500.0 "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 4
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "Lr6wYl2bt2Ep",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Build the First Model\n",
+ "\n",
+ "In this exercise, we'll try to predict `median_house_value`, which will be our label (sometimes also called a target). We'll use `total_rooms` as our input feature.\n",
+ "\n",
+ "**NOTE:** Our data is at the city block level, so this feature represents the total number of rooms in that block.\n",
+ "\n",
+ "To train our model, we'll use the [LinearRegressor](https://www.tensorflow.org/api_docs/python/tf/estimator/LinearRegressor) interface provided by the TensorFlow [Estimator](https://www.tensorflow.org/get_started/estimator) API. This API takes care of a lot of the low-level model plumbing, and exposes convenient methods for performing model training, evaluation, and inference."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "0cpcsieFhsNI",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Step 1: Define Features and Configure Feature Columns"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "EL8-9d4ZJNR7",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "In order to import our training data into TensorFlow, we need to specify what type of data each feature contains. There are two main types of data we'll use in this and future exercises:\n",
+ "\n",
+ "* **Categorical Data**: Data that is textual. In this exercise, our housing data set does not contain any categorical features, but examples you might see would be the home style, the words in a real-estate ad.\n",
+ "\n",
+ "* **Numerical Data**: Data that is a number (integer or float) and that you want to treat as a number. As we will discuss more later sometimes you might want to treat numerical data (e.g., a postal code) as if it were categorical.\n",
+ "\n",
+ "In TensorFlow, we indicate a feature's data type using a construct called a **feature column**. Feature columns store only a description of the feature data; they do not contain the feature data itself.\n",
+ "\n",
+ "To start, we're going to use just one numeric input feature, `total_rooms`. The following code pulls the `total_rooms` data from our `california_housing_dataframe` and defines the feature column using `numeric_column`, which specifies its data is numeric:"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "rhEbFCZ86cDZ",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Define the input feature: total_rooms.\n",
+ "my_feature = california_housing_dataframe[[\"total_rooms\"]]\n",
+ "\n",
+ "# Configure a numeric feature column for total_rooms.\n",
+ "feature_columns = [tf.feature_column.numeric_column(\"total_rooms\")]"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "K_3S8teX7Rd2",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**NOTE:** The shape of our `total_rooms` data is a one-dimensional array (a list of the total number of rooms for each block). This is the default shape for `numeric_column`, so we don't have to pass it as an argument."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "UMl3qrU5MGV6",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Step 2: Define the Target"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "cw4nrfcB7kyk",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Next, we'll define our target, which is `median_house_value`. Again, we can pull it from our `california_housing_dataframe`:"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "l1NvvNkH8Kbt",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Define the label.\n",
+ "targets = california_housing_dataframe[\"median_house_value\"]"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "4M-rTFHL2UkA",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Step 3: Configure the LinearRegressor"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "fUfGQUNp7jdL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Next, we'll configure a linear regression model using LinearRegressor. We'll train this model using the `GradientDescentOptimizer`, which implements Mini-Batch Stochastic Gradient Descent (SGD). The `learning_rate` argument controls the size of the gradient step.\n",
+ "\n",
+ "**NOTE:** To be safe, we also apply [gradient clipping](https://developers.google.com/machine-learning/glossary/#gradient_clipping) to our optimizer via `clip_gradients_by_norm`. Gradient clipping ensures the magnitude of the gradients do not become too large during training, which can cause gradient descent to fail. "
+ ]
+ },
+ {
+ "metadata": {
+ "id": "ubhtW-NGU802",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 136
+ },
+ "outputId": "a2e55909-2d0d-4f74-e108-2637e6b98b25"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Use gradient descent as the optimizer for training the model.\n",
+ "my_optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.0000001)\n",
+ "my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ "\n",
+ "# Configure the linear regression model with our feature columns and optimizer.\n",
+ "# Set a learning rate of 0.0000001 for Gradient Descent.\n",
+ "linear_regressor = tf.estimator.LinearRegressor(\n",
+ " feature_columns=feature_columns,\n",
+ " optimizer=my_optimizer\n",
+ ")"
+ ],
+ "execution_count": 7,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.\n",
+ "For more information, please see:\n",
+ " * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n",
+ " * https://github.com/tensorflow/addons\n",
+ "If you depend on functionality not listed there, please file an issue.\n",
+ "\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "-0IztwdK2f3F",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Step 4: Define the Input Function"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "S5M5j6xSCHxx",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "To import our California housing data into our `LinearRegressor`, we need to define an input function, which instructs TensorFlow how to preprocess\n",
+ "the data, as well as how to batch, shuffle, and repeat it during model training.\n",
+ "\n",
+ "First, we'll convert our *pandas* feature data into a dict of NumPy arrays. We can then use the TensorFlow [Dataset API](https://www.tensorflow.org/programmers_guide/datasets) to construct a dataset object from our data, and then break\n",
+ "our data into batches of `batch_size`, to be repeated for the specified number of epochs (num_epochs). \n",
+ "\n",
+ "**NOTE:** When the default value of `num_epochs=None` is passed to `repeat()`, the input data will be repeated indefinitely.\n",
+ "\n",
+ "Next, if `shuffle` is set to `True`, we'll shuffle the data so that it's passed to the model randomly during training. The `buffer_size` argument specifies\n",
+ "the size of the dataset from which `shuffle` will randomly sample.\n",
+ "\n",
+ "Finally, our input function constructs an iterator for the dataset and returns the next batch of data to the LinearRegressor."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "RKZ9zNcHJtwc",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):\n",
+ " \"\"\"Trains a linear regression model of one feature.\n",
+ " \n",
+ " Args:\n",
+ " features: pandas DataFrame of features\n",
+ " targets: pandas DataFrame of targets\n",
+ " batch_size: Size of batches to be passed to the model\n",
+ " shuffle: True or False. Whether to shuffle the data.\n",
+ " num_epochs: Number of epochs for which data should be repeated. None = repeat indefinitely\n",
+ " Returns:\n",
+ " Tuple of (features, labels) for next data batch\n",
+ " \"\"\"\n",
+ " \n",
+ " # Convert pandas data into a dict of np arrays.\n",
+ " features = {key:np.array(value) for key,value in dict(features).items()} \n",
+ " \n",
+ " # Construct a dataset, and configure batching/repeating.\n",
+ " ds = Dataset.from_tensor_slices((features,targets)) # warning: 2GB limit\n",
+ " ds = ds.batch(batch_size).repeat(num_epochs)\n",
+ " \n",
+ " # Shuffle the data, if specified.\n",
+ " if shuffle:\n",
+ " ds = ds.shuffle(buffer_size=10000)\n",
+ " \n",
+ " # Return the next batch of data.\n",
+ " features, labels = ds.make_one_shot_iterator().get_next()\n",
+ " return features, labels"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "wwa6UeA1V5F_",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**NOTE:** We'll continue to use this same input function in later exercises. For more\n",
+ "detailed documentation of input functions and the `Dataset` API, see the [TensorFlow Programmer's Guide](https://www.tensorflow.org/programmers_guide/datasets)."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "4YS50CQb2ooO",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Step 5: Train the Model"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "yP92XkzhU803",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "We can now call `train()` on our `linear_regressor` to train the model. We'll wrap `my_input_fn` in a `lambda`\n",
+ "so we can pass in `my_feature` and `target` as arguments (see this [TensorFlow input function tutorial](https://www.tensorflow.org/get_started/input_fn#passing_input_fn_data_to_your_model) for more details), and to start, we'll\n",
+ "train for 100 steps."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "5M-Kt6w8U803",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "_ = linear_regressor.train(\n",
+ " input_fn = lambda:my_input_fn(my_feature, targets),\n",
+ " steps=100\n",
+ ")"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "7Nwxqxlx2sOv",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Step 6: Evaluate the Model"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "KoDaF2dlJQG5",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Let's make predictions on that training data, to see how well our model fit it during training.\n",
+ "\n",
+ "**NOTE:** Training error measures how well your model fits the training data, but it **_does not_** measure how well your model **_generalizes to new data_**. In later exercises, you'll explore how to split your data to evaluate your model's ability to generalize.\n"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "pDIxp6vcU809",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 51
+ },
+ "outputId": "1a91e709-1fed-4f6c-efe5-2c95c9680a3d"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Create an input function for predictions.\n",
+ "# Note: Since we're making just one prediction for each example, we don't \n",
+ "# need to repeat or shuffle the data here.\n",
+ "prediction_input_fn =lambda: my_input_fn(my_feature, targets, num_epochs=1, shuffle=False)\n",
+ "\n",
+ "# Call predict() on the linear_regressor to make predictions.\n",
+ "predictions = linear_regressor.predict(input_fn=prediction_input_fn)\n",
+ "\n",
+ "# Format predictions as a NumPy array, so we can calculate error metrics.\n",
+ "predictions = np.array([item['predictions'][0] for item in predictions])\n",
+ "\n",
+ "# Print Mean Squared Error and Root Mean Squared Error.\n",
+ "mean_squared_error = metrics.mean_squared_error(predictions, targets)\n",
+ "root_mean_squared_error = math.sqrt(mean_squared_error)\n",
+ "print(\"Mean Squared Error (on training data): %0.3f\" % mean_squared_error)\n",
+ "print(\"Root Mean Squared Error (on training data): %0.3f\" % root_mean_squared_error)"
+ ],
+ "execution_count": 10,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Mean Squared Error (on training data): 56367.025\n",
+ "Root Mean Squared Error (on training data): 237.417\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "AKWstXXPzOVz",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Is this a good model? How would you judge how large this error is?\n",
+ "\n",
+ "Mean Squared Error (MSE) can be hard to interpret, so we often look at Root Mean Squared Error (RMSE)\n",
+ "instead. A nice property of RMSE is that it can be interpreted on the same scale as the original targets.\n",
+ "\n",
+ "Let's compare the RMSE to the difference of the min and max of our targets:"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "7UwqGbbxP53O",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 85
+ },
+ "outputId": "e85aa68d-0007-415e-e1d3-25a385cbf334"
+ },
+ "cell_type": "code",
+ "source": [
+ "min_house_value = california_housing_dataframe[\"median_house_value\"].min()\n",
+ "max_house_value = california_housing_dataframe[\"median_house_value\"].max()\n",
+ "min_max_difference = max_house_value - min_house_value\n",
+ "\n",
+ "print(\"Min. Median House Value: %0.3f\" % min_house_value)\n",
+ "print(\"Max. Median House Value: %0.3f\" % max_house_value)\n",
+ "print(\"Difference between Min. and Max.: %0.3f\" % min_max_difference)\n",
+ "print(\"Root Mean Squared Error: %0.3f\" % root_mean_squared_error)"
+ ],
+ "execution_count": 11,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Min. Median House Value: 14.999\n",
+ "Max. Median House Value: 500.001\n",
+ "Difference between Min. and Max.: 485.002\n",
+ "Root Mean Squared Error: 237.417\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JigJr0C7Pzit",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Our error spans nearly half the range of the target values. Can we do better?\n",
+ "\n",
+ "This is the question that nags at every model developer. Let's develop some basic strategies to reduce model error.\n",
+ "\n",
+ "The first thing we can do is take a look at how well our predictions match our targets, in terms of overall summary statistics."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "941nclxbzqGH",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 297
+ },
+ "outputId": "386e60b3-5a7c-4cd1-dfc4-8f38a0d036e0"
+ },
+ "cell_type": "code",
+ "source": [
+ "calibration_data = pd.DataFrame()\n",
+ "calibration_data[\"predictions\"] = pd.Series(predictions)\n",
+ "calibration_data[\"targets\"] = pd.Series(targets)\n",
+ "calibration_data.describe()"
+ ],
+ "execution_count": 12,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
predictions
\n",
+ "
targets
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
count
\n",
+ "
17000.0
\n",
+ "
17000.0
\n",
+ "
\n",
+ "
\n",
+ "
mean
\n",
+ "
0.1
\n",
+ "
207.3
\n",
+ "
\n",
+ "
\n",
+ "
std
\n",
+ "
0.1
\n",
+ "
116.0
\n",
+ "
\n",
+ "
\n",
+ "
min
\n",
+ "
0.0
\n",
+ "
15.0
\n",
+ "
\n",
+ "
\n",
+ "
25%
\n",
+ "
0.1
\n",
+ "
119.4
\n",
+ "
\n",
+ "
\n",
+ "
50%
\n",
+ "
0.1
\n",
+ "
180.4
\n",
+ "
\n",
+ "
\n",
+ "
75%
\n",
+ "
0.2
\n",
+ "
265.0
\n",
+ "
\n",
+ "
\n",
+ "
max
\n",
+ "
1.9
\n",
+ "
500.0
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " predictions targets\n",
+ "count 17000.0 17000.0\n",
+ "mean 0.1 207.3\n",
+ "std 0.1 116.0\n",
+ "min 0.0 15.0\n",
+ "25% 0.1 119.4\n",
+ "50% 0.1 180.4\n",
+ "75% 0.2 265.0\n",
+ "max 1.9 500.0"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 12
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "E2-bf8Hq36y8",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Okay, maybe this information is helpful. How does the mean value compare to the model's RMSE? How about the various quantiles?\n",
+ "\n",
+ "We can also visualize the data and the line we've learned. Recall that linear regression on a single feature can be drawn as a line mapping input *x* to output *y*.\n",
+ "\n",
+ "First, we'll get a uniform random sample of the data so we can make a readable scatter plot."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "SGRIi3mAU81H",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "sample = california_housing_dataframe.sample(n=300)"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "N-JwuJBKU81J",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Next, we'll plot the line we've learned, drawing from the model's bias term and feature weight, together with the scatter plot. The line will show up red."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "7G12E76-339G",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 361
+ },
+ "outputId": "48e6a03f-941f-4c0b-d161-8b328dc01bba"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Get the min and max total_rooms values.\n",
+ "x_0 = sample[\"total_rooms\"].min()\n",
+ "x_1 = sample[\"total_rooms\"].max()\n",
+ "\n",
+ "# Retrieve the final weight and bias generated during training.\n",
+ "weight = linear_regressor.get_variable_value('linear/linear_model/total_rooms/weights')[0]\n",
+ "bias = linear_regressor.get_variable_value('linear/linear_model/bias_weights')\n",
+ "\n",
+ "# Get the predicted median_house_values for the min and max total_rooms values.\n",
+ "y_0 = weight * x_0 + bias \n",
+ "y_1 = weight * x_1 + bias\n",
+ "\n",
+ "# Plot our regression line from (x_0, y_0) to (x_1, y_1).\n",
+ "plt.plot([x_0, x_1], [y_0, y_1], c='r')\n",
+ "\n",
+ "# Label the graph axes.\n",
+ "plt.ylabel(\"median_house_value\")\n",
+ "plt.xlabel(\"total_rooms\")\n",
+ "\n",
+ "# Plot a scatter plot from our data sample.\n",
+ "plt.scatter(sample[\"total_rooms\"], sample[\"median_house_value\"])\n",
+ "\n",
+ "# Display graph.\n",
+ "plt.show()"
+ ],
+ "execution_count": 14,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nlhW5EHDh4gAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "t0lRt4USU81L",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "This initial line looks way off. See if you can look back at the summary stats and see the same information encoded there.\n",
+ "\n",
+ "Together, these initial sanity checks suggest we may be able to find a much better line."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "AZWF67uv0HTG",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Tweak the Model Hyperparameters\n",
+ "For this exercise, we've put all the above code in a single function for convenience. You can call the function with different parameters to see the effect.\n",
+ "\n",
+ "In this function, we'll proceed in 10 evenly divided periods so that we can observe the model improvement at each period.\n",
+ "\n",
+ "For each period, we'll compute and graph training loss. This may help you judge when a model is converged, or if it needs more iterations.\n",
+ "\n",
+ "We'll also plot the feature weight and bias term values learned by the model over time. This is another way to see how things converge."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "wgSMeD5UU81N",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_model(learning_rate, steps, batch_size, input_feature=\"total_rooms\"):\n",
+ " \"\"\"Trains a linear regression model of one feature.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " input_feature: A `string` specifying a column from `california_housing_dataframe`\n",
+ " to use as input feature.\n",
+ " \"\"\"\n",
+ " \n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ "\n",
+ " my_feature = input_feature\n",
+ " my_feature_data = california_housing_dataframe[[my_feature]]\n",
+ " my_label = \"median_house_value\"\n",
+ " targets = california_housing_dataframe[my_label]\n",
+ "\n",
+ " # Create feature columns.\n",
+ " feature_columns = [tf.feature_column.numeric_column(my_feature)]\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda:my_input_fn(my_feature_data, targets, batch_size=batch_size)\n",
+ " prediction_input_fn = lambda: my_input_fn(my_feature_data, targets, num_epochs=1, shuffle=False)\n",
+ " \n",
+ " # Create a linear regressor object.\n",
+ " my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " linear_regressor = tf.estimator.LinearRegressor(\n",
+ " feature_columns=feature_columns,\n",
+ " optimizer=my_optimizer\n",
+ " )\n",
+ "\n",
+ " # Set up to plot the state of our model's line each period.\n",
+ " plt.figure(figsize=(15, 6))\n",
+ " plt.subplot(1, 2, 1)\n",
+ " plt.title(\"Learned Line by Period\")\n",
+ " plt.ylabel(my_label)\n",
+ " plt.xlabel(my_feature)\n",
+ " sample = california_housing_dataframe.sample(n=300)\n",
+ " plt.scatter(sample[my_feature], sample[my_label])\n",
+ " colors = [cm.coolwarm(x) for x in np.linspace(-1, 1, periods)]\n",
+ "\n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"RMSE (on training data):\")\n",
+ " root_mean_squared_errors = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " linear_regressor.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period\n",
+ " )\n",
+ " # Take a break and compute predictions.\n",
+ " predictions = linear_regressor.predict(input_fn=prediction_input_fn)\n",
+ " predictions = np.array([item['predictions'][0] for item in predictions])\n",
+ " \n",
+ " # Compute loss.\n",
+ " root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(predictions, targets))\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, root_mean_squared_error))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " root_mean_squared_errors.append(root_mean_squared_error)\n",
+ " # Finally, track the weights and biases over time.\n",
+ " # Apply some math to ensure that the data and line are plotted neatly.\n",
+ " y_extents = np.array([0, sample[my_label].max()])\n",
+ " \n",
+ " weight = linear_regressor.get_variable_value('linear/linear_model/%s/weights' % input_feature)[0]\n",
+ " bias = linear_regressor.get_variable_value('linear/linear_model/bias_weights')\n",
+ "\n",
+ " x_extents = (y_extents - bias) / weight\n",
+ " x_extents = np.maximum(np.minimum(x_extents,\n",
+ " sample[my_feature].max()),\n",
+ " sample[my_feature].min())\n",
+ " y_extents = weight * x_extents + bias\n",
+ " plt.plot(x_extents, y_extents, color=colors[period]) \n",
+ " print(\"Model training finished.\")\n",
+ "\n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.subplot(1, 2, 2)\n",
+ " plt.ylabel('RMSE')\n",
+ " plt.xlabel('Periods')\n",
+ " plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(root_mean_squared_errors)\n",
+ "\n",
+ " # Output a table with calibration data.\n",
+ " calibration_data = pd.DataFrame()\n",
+ " calibration_data[\"predictions\"] = pd.Series(predictions)\n",
+ " calibration_data[\"targets\"] = pd.Series(targets)\n",
+ " display.display(calibration_data.describe())\n",
+ "\n",
+ " print(\"Final RMSE (on training data): %0.2f\" % root_mean_squared_error)"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "kg8A4ArBU81Q",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 1: Achieve an RMSE of 180 or Below\n",
+ "\n",
+ "Tweak the model hyperparameters to improve loss and better match the target distribution.\n",
+ "If, after 5 minutes or so, you're having trouble beating a RMSE of 180, check the solution for a possible combination."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "UzoZUSdLIolF",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 955
+ },
+ "outputId": "8314a421-c01b-435b-eea3-1a4203d45711"
+ },
+ "cell_type": "code",
+ "source": [
+ "train_model(\n",
+ " learning_rate=0.00002,\n",
+ " steps=500,\n",
+ " batch_size=5,\n",
+ " input_feature = \"total_rooms\"\n",
+ ")"
+ ],
+ "execution_count": 18,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 225.63\n",
+ " period 01 : 214.42\n",
+ " period 02 : 204.04\n",
+ " period 03 : 194.97\n",
+ " period 04 : 186.92\n",
+ " period 05 : 180.27\n",
+ " period 06 : 175.88\n",
+ " period 07 : 171.91\n",
+ " period 08 : 168.72\n",
+ " period 09 : 167.09\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " predictions targets\n",
+ "count 17000.0 17000.0\n",
+ "mean 118.4 207.3\n",
+ "std 97.7 116.0\n",
+ "min 0.1 15.0\n",
+ "25% 65.5 119.4\n",
+ "50% 95.3 180.4\n",
+ "75% 141.2 265.0\n",
+ "max 1699.5 500.0"
+ ],
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "M8H0_D4vYa49",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "This is just one possible configuration; there may be other combinations of settings that also give good results. Note that in general, this exercise isn't about finding the *one best* setting, but to help build your intutions about how tweaking the model configuration affects prediction quality."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "QU5sLyYTqzqL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Is There a Standard Heuristic for Model Tuning?\n",
+ "\n",
+ "This is a commonly asked question. The short answer is that the effects of different hyperparameters are data dependent. So there are no hard-and-fast rules; you'll need to test on your data.\n",
+ "\n",
+ "That said, here are a few rules of thumb that may help guide you:\n",
+ "\n",
+ " * Training error should steadily decrease, steeply at first, and should eventually plateau as training converges.\n",
+ " * If the training has not converged, try running it for longer.\n",
+ " * If the training error decreases too slowly, increasing the learning rate may help it decrease faster.\n",
+ " * But sometimes the exact opposite may happen if the learning rate is too high.\n",
+ " * If the training error varies wildly, try decreasing the learning rate.\n",
+ " * Lower learning rate plus larger number of steps or larger batch size is often a good combination.\n",
+ " * Very small batch sizes can also cause instability. First try larger values like 100 or 1000, and decrease until you see degradation.\n",
+ "\n",
+ "Again, never go strictly by these rules of thumb, because the effects are data dependent. Always experiment and verify."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "GpV-uF_cBCBU",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 2: Try a Different Feature\n",
+ "\n",
+ "See if you can do any better by replacing the `total_rooms` feature with the `population` feature.\n",
+ "\n",
+ "Don't take more than 5 minutes on this portion."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "YMyOxzb0ZlAH",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 955
+ },
+ "outputId": "4f022a15-3d52-4a88-cacd-b5996df06726"
+ },
+ "cell_type": "code",
+ "source": [
+ "# YOUR CODE HERE\n",
+ "train_model(\n",
+ " learning_rate=0.00001,\n",
+ " steps=3000,\n",
+ " batch_size=5,\n",
+ " input_feature=\"population\"\n",
+ ")"
+ ],
+ "execution_count": 20,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 220.00\n",
+ " period 01 : 204.86\n",
+ " period 02 : 193.12\n",
+ " period 03 : 184.51\n",
+ " period 04 : 179.32\n",
+ " period 05 : 176.79\n",
+ " period 06 : 175.92\n",
+ " period 07 : 176.09\n",
+ " period 08 : 176.71\n",
+ " period 09 : 177.29\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " predictions targets\n",
+ "count 17000.0 17000.0\n",
+ "mean 141.7 207.3\n",
+ "std 113.8 116.0\n",
+ "min 0.3 15.0\n",
+ "25% 78.3 119.4\n",
+ "50% 115.7 180.4\n",
+ "75% 170.6 265.0\n",
+ "max 3536.4 500.0"
+ ],
+ "text/html": [
+ "
"
+ ],
+ "text/plain": [
+ " median_house_value\n",
+ "count 5000.0\n",
+ "mean 204.8\n",
+ "std 114.0\n",
+ "min 15.0\n",
+ "25% 118.4\n",
+ "50% 179.2\n",
+ "75% 261.6\n",
+ "max 500.0"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 13
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "z3TZV1pgfZ1n",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 1: Examine the Data\n",
+ "Okay, let's look at the data above. We have `9` input features that we can use.\n",
+ "\n",
+ "Take a quick skim over the table of values. Everything look okay? See how many issues you can spot. Don't worry if you don't have a background in statistics; common sense will get you far.\n",
+ "\n",
+ "After you've had a chance to look over the data yourself, check the solution for some additional thoughts on how to verify data."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "4Xp9NhOCYSuz",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for the solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "gqeRmK57YWpy",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Let's check our data against some baseline expectations:\n",
+ "\n",
+ "* For some values, like `median_house_value`, we can check to see if these values fall within reasonable ranges (keeping in mind this was 1990 data — not today!).\n",
+ "\n",
+ "* For other values, like `latitude` and `longitude`, we can do a quick check to see if these line up with expected values from a quick Google search.\n",
+ "\n",
+ "If you look closely, you may see some oddities:\n",
+ "\n",
+ "* `median_income` is on a scale from about 3 to 15. It's not at all clear what this scale refers to—looks like maybe some log scale? It's not documented anywhere; all we can assume is that higher values correspond to higher income.\n",
+ "\n",
+ "* The maximum `median_house_value` is 500,001. This looks like an artificial cap of some kind.\n",
+ "\n",
+ "* Our `rooms_per_person` feature is generally on a sane scale, with a 75th percentile value of about 2. But there are some very large values, like 18 or 55, which may show some amount of corruption in the data.\n",
+ "\n",
+ "We'll use these features as given for now. But hopefully these kinds of examples can help to build a little intuition about how to check data that comes to you from an unknown source."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "fXliy7FYZZRm",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 2: Plot Latitude/Longitude vs. Median House Value"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "aJIWKBdfsDjg",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Let's take a close look at two features in particular: **`latitude`** and **`longitude`**. These are geographical coordinates of the city block in question.\n",
+ "\n",
+ "This might make a nice visualization — let's plot `latitude` and `longitude`, and use color to show the `median_house_value`."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "5_LD23bJ06TW",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 498
+ },
+ "outputId": "7a0ee1be-de89-4737-a45e-f84a3d36e03b"
+ },
+ "cell_type": "code",
+ "source": [
+ "plt.figure(figsize=(13, 8))\n",
+ "\n",
+ "ax = plt.subplot(1, 2, 1)\n",
+ "ax.set_title(\"Validation Data\")\n",
+ "\n",
+ "ax.set_autoscaley_on(False)\n",
+ "ax.set_ylim([32, 43])\n",
+ "ax.set_autoscalex_on(False)\n",
+ "ax.set_xlim([-126, -112])\n",
+ "plt.scatter(validation_examples[\"longitude\"],\n",
+ " validation_examples[\"latitude\"],\n",
+ " cmap=\"coolwarm\",\n",
+ " c=validation_targets[\"median_house_value\"] / validation_targets[\"median_house_value\"].max())\n",
+ "\n",
+ "ax = plt.subplot(1,2,2)\n",
+ "ax.set_title(\"Training Data\")\n",
+ "\n",
+ "ax.set_autoscaley_on(False)\n",
+ "ax.set_ylim([32, 43])\n",
+ "ax.set_autoscalex_on(False)\n",
+ "ax.set_xlim([-126, -112])\n",
+ "plt.scatter(training_examples[\"longitude\"],\n",
+ " training_examples[\"latitude\"],\n",
+ " cmap=\"coolwarm\",\n",
+ " c=training_targets[\"median_house_value\"] / training_targets[\"median_house_value\"].max())\n",
+ "_ = plt.plot()"
+ ],
+ "execution_count": 14,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwEAAAHhCAYAAAA2xLK+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xl4XVd56P/v2nufSTqaLcnyGM92\nPI/xbMexYztxCCQpJECAwr2XAmUohZa25EfpbQuFm4dceIByb2+T0JA0UIdMOHFIHGdwHM/zPMrW\nPI9n3Huv3x/H1uBzJEu2bNnW+3mePJHOsPc6krXWetfwLqW11gghhBBCCCEGDKO/CyCEEEIIIYS4\nviQIEEIIIYQQYoCRIEAIIYQQQogBRoIAIYQQQgghBhgJAoQQQgghhBhgJAgQQgghhBBigJEgQFwT\njzzyCL/5zW+SHn/++ed55JFHun3vz372M/7u7/4OgM9+9rMcOnQo6TU7d+5kxYoVly3Hvn37OHr0\nKADPPPMMTzzxRE+K3yMrVqzgzjvvZM2aNSxdupTPfOYzvPPOOz167+nTp9mxY0eflUUIIW4V3/ve\n91izZg1r1qxh8uTJbfXsmjVraGlp6dW11qxZQ01NTbevefzxx3nuueeupsidTJgwgVWrVrF69WqW\nLl3KF7/4Rfbs2dOj93Zss4S41qz+LoC4NT3wwAOsX7+eT33qU50ef+mll3jggQd6fJ2nn376qsqx\nfv16Zs+ezcSJE/n0pz99VddK5cc//jFz5swBYOvWrfzN3/wN3/rWt1i3bl2373vzzTexbZu5c+f2\neZmEEOJm9v3vf7/t6xUrVvCjH/2orZ7trddff/2yr/nLv/zLK7p2d/7jP/6DwYMHo7Xm9ddf58tf\n/jI//elPL1vnd2yzhLjWZCZAXBNr167l6NGjnD9/vu2xkpISjhw5wtq1awH43e9+x9q1a7n77rv5\n1Kc+RWlpadJ1VqxYwc6dOwH4xS9+wbJly/joRz/KBx980PaacDjMN77xDVavXs2KFSv4l3/5FwCe\ne+45XnrpJX784x/z5JNPdpphKCsr4wtf+AKrV69m3bp1vPjii21lXLx4Mb/+9a+57777WLJkCRs2\nbOjRZ16wYAH//M//zI9+9CO01riuy/e///22cn37298mHo+zadMmfvWrX/HrX/+aH/7whwD8/Oc/\nZ/Xq1axcuZIvfvGLNDU19fZHLoQQA8Kjjz7KT37yE9auXcvu3bupqanhC1/4AmvWrGHFihU8+eST\nba+dMGECFRUVbNu2jU984hM8/vjjrF27lhUrVrB9+3YAvvOd7/CLX/wCSLQ5//mf/8lDDz3E4sWL\n2+pogH/9139lwYIFPPjgg/zmN7/p0Wy0Uoq1a9fyzW9+k8cffxzoeZvVVRsiRF+RIEBcE8FgkJUr\nV/LSSy+1PfbKK69w1113EQwGqa2t5R/+4R948skneeONNxgxYkRbJZzKyZMneeqpp1i/fj3r16/n\n2LFjbc8999xztLa28vrrr/P73/+eF154gZ07d/LII48wbdo0vv3tb/Onf/qnna732GOPMW/ePDZu\n3MivfvUr/vEf/5GSkhIA6uvrMQyDV155hb/927/t1RKi+fPn09zczJkzZ/jjH//Izp07efXVV3nt\ntdc4dOgQGzZsYMWKFaxatYrPfOYzfOc73+HgwYP85je/Yf369bzxxhvEYjGeeeaZHt9TCCEGmoMH\nD/KHP/yBWbNm8ctf/pJhw4bx+uuv8/TTT/P4449TXl6e9J7Dhw8zffp0XnvtNT75yU/yy1/+MuW1\nd+zYwfPPP8/69et55plnqKio4MSJE/zbv/0bL730Es8++2yPZhg6WrFiBfv27SMSifS4zeqqDRGi\nr0gQIK6ZBx54gFdeeaXt+5dffrltKVBeXh67du1i8ODBAMyZM6fTrMGlduzYwdy5cxk0aBCmafKR\nj3yk7bnPf/7z/OIXv0ApRVZWFuPGjWvr0KcSj8f54IMP+OQnPwnA0KFDueOOO/jwww8BsG27rZyT\nJ0+mrKysx5/ZMAzS0tJoaWlh9erVrF+/Ho/Hg8/nY+rUqSk/45QpU9i8eTPBYBDDMJg5c2a3Pwsh\nhBjoli1bhmEkujDf/e53eeyxxwAYPnw4+fn5KduA9PR0Vq5cCXRft993332YpklhYSF5eXmUl5ez\nY8cO5s2bR0FBAT6fjwcffLBX5Q0Gg7iuS2tra4/brJ62IUJcKdkTIK6Z+fPnE41G2bdvH4ZhEA6H\nmT9/PgCO4/DTn/6UTZs24TgOra2tjBo1qstrNTY2kpGR0fZ9ZmZm29dnz57lhz/8IadPn8YwDCoq\nKrrdd9DQ0IDWOul6dXV1AJimSVpaGpDo1Luu2+PPHIlEqK2tJTc3l7q6Ov7n//yfHD58GKUUNTU1\nfPazn016Tzgc5gc/+AHbtm1r+6zLly/v8T2FEGKgycrKavv6wIEDbaP/hmFQXV2dst7uWOd3V7cH\ng8G2r03TxHEcmpqaOt2zsLCwV+UtKSnB4/GQkZHR4zarp22IEFdKggBxzRiGwf3338+rr76KaZrc\nf//9bSM3GzZsYNOmTTzzzDPk5uby29/+ttOswaUyMzNpbm5u+76+vr7t63/4h39g8uTJ/PznP8c0\nTR5++OFuy5WTk4NhGDQ2NrZV6g0NDeTl5V3NxwVg48aNjBw5kmHDhvHYY49hWRavvPIKXq+3y81n\nTz/9NGfPnuWFF14gPT2dn/zkJ1RWVl51WYQQYiD49re/zWc/+1keeeQRlFIsWbKkz+8RDAYJhUJt\n31dVVfXq/Rs3bmTevHl4vd4et1k/+clPetSGCHGlZDmQuKYeeOABNm3axFtvvdVppKO2tpahQ4eS\nm5tLfX09r732Gq2trV1eZ+bMmezatYu6ujocx+Hll1/udK1JkyZhmiZbtmyhuLi4rbK2LKtT8HDx\nscWLF/P8888DcO7cOXbu3MnChQuv6rNu27aNH//4x/zVX/1VW7nGjx+P1+vl6NGj7NmzJ2W5amtr\nGT16NOnp6ZSWlvLOO+90amyEEEJ0rba2lilTpqCU4ve//z3hcLjP69Bp06axbds26urqiMVibckk\nLudidqCnn36av/iLv2grb0/arO7aECH6gswEiGtq5MiRFBQUtH190bp16/jDH/7AqlWrGD58ON/4\nxjf40pe+xA9/+EPS09OTrjNp0iQefvhhPvaxj5Gdnc29997L8ePHAfjSl77ED37wA37xi19w1113\n8ed//uf89Kc/ZdKkSaxcuZIf//jHnD9/vtMU7/e//32++93v8sILL+DxePjHf/xHioqKut1LkMq3\nv/1tfD4fra2tFBUV8U//9E8sW7YMSOxV+Ou//mteeOEF5syZw1//9V/zd3/3d0ybNo0777yTb33r\nW5SWlvL1r3+dr33ta6xevZoJEybwne98h69+9as89dRTfO5zn+vtj1wIIQaUr3/963zlK18hOzub\nhx9+mE984hM89thjPPvss312j2nTpvGxj32Mj33sYxQVFXHPPffw1FNPdfn6Rx99FNM0aWlpYcyY\nMfyf//N/mDp1KtDzNqu7NuRilj0hrobSWuv+LoQQQgghxI1Ma41SCoDNmzfzxBNP9HhGQIgbkSwH\n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\nPPoSPHfW4oa+iDfcBPnM6v0cG27fbejtdZmaCnjujODRl6BcF9gbSLstp6+Oz0MthNx3KPYz35A0\n49XvrRnAxMUqXX2ldf13XM+hHqqV18NY8OIFi0LGcNeNaeOxlKtHmql2PSGWNKCjCINg7JsXmX5u\nHmupe2LPwc1YwqCKnZzd+8MsZjajZNLdylguRT+iz5pdvhgN7WFUmzz4S9xCbz9s4xK2LbZaRsr1\njcfWEgSKWjWmshgyMVbl2HMXOfPyBOdOTDI9UaZSb7240QYda/Zu1fz8eyHrW0wttr9+GBpqTYEx\nMN+wmH0V3YNfLfmMaVtkbVm0qFukpKSkXAuYfBfNwiDVs+MAyO5uvB1bk0jyJVhz03SPHWl7ncFM\nmRvy02wyF6CnDww0XzqJbqx2Gr5nr2Jbn8KSybWVMqA15XKTi6OLTIwtMjtTX1k7Ojs96g3ddi0x\nBoIgpFELiWNNHCqqC02mL1ZpNOHZcxaf+pJhsd5+0ywEHNxuGO4DS0r0ms+rlF6Rno4ijWWBkDBZ\nSdKavhMyjkGKtfcwSKu1Rq7l82m90jtnmTNT6RYs5eqSPoHXIU5PF+7QJjBQOVuhOZ1MymYplLq4\n5VaqVmn9iUJScJpIszTraUPH9Mk2h7U+FtsGLT5wn9Myqa47R5h1E1zr+2Ll/45r4y8l/2ttqC02\nqczX2p7XaCbnVJuCjeQgtAGtxVIDMEEluHKPdT6z8Wey0zhaSkrKNUg1yKCbSade/643Yhc3TkC/\nr/84N2+aI+MqwGBJzXBxgfcNH0UIyFJHzE0BYGcdVHV1rnZteN9tMR+4I+KNN0a851BEIWPo6Mpe\n0uUXpCVphoY43tjz3S7SHAYxlYUGnmcxOQ8PvXD5FJ4tvUlx8HKDMq01cWxaUp4sSxJEFpESLCzV\nJNcDzbde1Dx0RFPZwNBYS94zdGVXLYjEKXT5sV3qKAujV7xNSsr3lHQbc52y9d//L5gnv0ZmoIOj\nn/hLvLzFxUdOM/TegzSyvYmbow2x47Oleppz9i5yVHDDRWQcoO3V/DLbya47b6bqEEchliXXeTq0\n0pS8mMm6RtsbpQy14vp2sqdfmjObjZB8R3bdJOkvhWqHezVPnDSEar0hsCyHvWyD2PLKFQt3ZRXV\nsP0/k5ybhnFTUlKuPay+QXAciCJkoUDP+3cz/d++hFqotByX2b2V0oFtvNk5zz2bodz08B1F1omJ\n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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "32_DbjnfXJlC",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Wait a second...this should have given us a nice map of the state of California, with red showing up in expensive areas like the San Francisco and Los Angeles.\n",
+ "\n",
+ "The training set sort of does, compared to a [real map](https://www.google.com/maps/place/California/@37.1870174,-123.7642688,6z/data=!3m1!4b1!4m2!3m1!1s0x808fb9fe5f285e3d:0x8b5109a227086f55), but the validation set clearly doesn't.\n",
+ "\n",
+ "**Go back up and look at the data from Task 1 again.**\n",
+ "\n",
+ "Do you see any other differences in the distributions of features or targets between the training and validation data?"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "49NC4_KIZxk_",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Looking at the tables of summary stats above, it's easy to wonder how anyone would do a useful data check. What's the right 75th percentile value for total_rooms per city block?\n",
+ "\n",
+ "The key thing to notice is that for any given feature or column, the distribution of values between the train and validation splits should be roughly equal.\n",
+ "\n",
+ "The fact that this is not the case is a real worry, and shows that we likely have a fault in the way that our train and validation split was created."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "025Ky0Dq9ig0",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 3: Return to the Data Importing and Pre-Processing Code, and See if You Spot Any Bugs\n",
+ "If you do, go ahead and fix the bug. Don't spend more than a minute or two looking. If you can't find the bug, check the solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JFsd2eWHAMdy",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "When you've found and fixed the issue, re-run `latitude` / `longitude` plotting cell above and confirm that our sanity checks look better.\n",
+ "\n",
+ "By the way, there's an important lesson here.\n",
+ "\n",
+ "**Debugging in ML is often *data debugging* rather than code debugging.**\n",
+ "\n",
+ "If the data is wrong, even the most advanced ML code can't save things."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "BnEVbYJvW2wu",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "The code that randomizes the data (`np.random.permutation`) is commented out, so we're not doing any randomization prior to splitting the data.\n",
+ "\n",
+ "If we don't randomize the data properly before creating training and validation splits, then we may be in trouble if the data is given to us in some sorted order, which appears to be the case here."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "xCdqLpQyAos2",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 4: Train and Evaluate a Model\n",
+ "\n",
+ "**Spend 5 minutes or so trying different hyperparameter settings. Try to get the best validation performance you can.**\n",
+ "\n",
+ "Next, we'll train a linear regressor using all the features in the data set, and see how well we do.\n",
+ "\n",
+ "Let's define the same input function we've used previously for loading the data into a TensorFlow model.\n"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "rzcIPGxxgG0t",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):\n",
+ " \"\"\"Trains a linear regression model of multiple features.\n",
+ " \n",
+ " Args:\n",
+ " features: pandas DataFrame of features\n",
+ " targets: pandas DataFrame of targets\n",
+ " batch_size: Size of batches to be passed to the model\n",
+ " shuffle: True or False. Whether to shuffle the data.\n",
+ " num_epochs: Number of epochs for which data should be repeated. None = repeat indefinitely\n",
+ " Returns:\n",
+ " Tuple of (features, labels) for next data batch\n",
+ " \"\"\"\n",
+ " \n",
+ " # Convert pandas data into a dict of np arrays.\n",
+ " features = {key:np.array(value) for key,value in dict(features).items()} \n",
+ " \n",
+ " # Construct a dataset, and configure batching/repeating.\n",
+ " ds = Dataset.from_tensor_slices((features,targets)) # warning: 2GB limit\n",
+ " ds = ds.batch(batch_size).repeat(num_epochs)\n",
+ " \n",
+ " # Shuffle the data, if specified.\n",
+ " if shuffle:\n",
+ " ds = ds.shuffle(10000)\n",
+ " \n",
+ " # Return the next batch of data.\n",
+ " features, labels = ds.make_one_shot_iterator().get_next()\n",
+ " return features, labels"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "CvrKoBmNgRCO",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Because we're now working with multiple input features, let's modularize our code for configuring feature columns into a separate function. (For now, this code is fairly simple, as all our features are numeric, but we'll build on this code as we use other types of features in future exercises.)"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "wEW5_XYtgZ-H",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def construct_feature_columns(input_features):\n",
+ " \"\"\"Construct the TensorFlow Feature Columns.\n",
+ "\n",
+ " Args:\n",
+ " input_features: The names of the numerical input features to use.\n",
+ " Returns:\n",
+ " A set of feature columns\n",
+ " \"\"\" \n",
+ " return set([tf.feature_column.numeric_column(my_feature)\n",
+ " for my_feature in input_features])"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "D0o2wnnzf8BD",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Next, go ahead and complete the `train_model()` code below to set up the input functions and calculate predictions.\n",
+ "\n",
+ "**NOTE:** It's okay to reference the code from the previous exercises, but make sure to call `predict()` on the appropriate data sets.\n",
+ "\n",
+ "Compare the losses on training data and validation data. With a single raw feature, our best root mean squared error (RMSE) was of about 180.\n",
+ "\n",
+ "See how much better you can do now that we can use multiple features.\n",
+ "\n",
+ "Check the data using some of the methods we've looked at before. These might include:\n",
+ "\n",
+ " * Comparing distributions of predictions and actual target values\n",
+ "\n",
+ " * Creating a scatter plot of predictions vs. target values\n",
+ "\n",
+ " * Creating two scatter plots of validation data using `latitude` and `longitude`:\n",
+ " * One plot mapping color to actual target `median_house_value`\n",
+ " * A second plot mapping color to predicted `median_house_value` for side-by-side comparison."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "UXt0_4ZTEf4V",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_model(\n",
+ " learning_rate,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a linear regression model of multiple features.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A `LinearRegressor` object trained on the training data.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ " \n",
+ " # Create a linear regressor object.\n",
+ " my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " linear_regressor = tf.estimator.LinearRegressor(\n",
+ " feature_columns=construct_feature_columns(training_examples),\n",
+ " optimizer=my_optimizer\n",
+ " )\n",
+ " \n",
+ " # 1. Create input functions.\n",
+ " training_input_fn =lambda : my_input_fn(features=training_examples, targets=training_targets, batch_size=batch_size)\n",
+ " predict_training_input_fn =lambda : my_input_fn(features=training_examples, targets=training_targets, shuffle=False, num_epochs=1)\n",
+ " predict_validation_input_fn =lambda : my_input_fn(features=validation_examples, targets=validation_targets, shuffle=False, num_epochs=1)\n",
+ " \n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"RMSE (on training data):\")\n",
+ " training_rmse = []\n",
+ " validation_rmse = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " linear_regressor.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period,\n",
+ " )\n",
+ " # 2. Take a break and compute predictions.\n",
+ " training_predictions = linear_regressor.predict(input_fn=predict_training_input_fn)\n",
+ " training_predictions = np.array([item['predictions'][0] for item in training_predictions])\n",
+ " validation_predictions = linear_regressor.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_predictions = np.array([item['predictions'][0] for item in validation_predictions])\n",
+ " \n",
+ " # Compute training and validation loss.\n",
+ " training_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(training_predictions, training_targets))\n",
+ " validation_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(validation_predictions, validation_targets))\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_root_mean_squared_error))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_rmse.append(training_root_mean_squared_error)\n",
+ " validation_rmse.append(validation_root_mean_squared_error)\n",
+ " print(\"Model training finished.\")\n",
+ "\n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"RMSE\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_rmse, label=\"training\")\n",
+ " plt.plot(validation_rmse, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " return linear_regressor"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "zFFRmvUGh8wd",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 622
+ },
+ "outputId": "a37e3089-2a3c-4900-fa7c-b2473b60d083"
+ },
+ "cell_type": "code",
+ "source": [
+ "linear_regressor = train_model(\n",
+ " # TWEAK THESE VALUES TO SEE HOW MUCH YOU CAN IMPROVE THE RMSE\n",
+ " learning_rate=0.00006,\n",
+ " steps=1000,\n",
+ " batch_size=6,\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 27,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 177.00\n",
+ " period 01 : 167.71\n",
+ " period 02 : 170.89\n",
+ " period 03 : 172.27\n",
+ " period 04 : 172.92\n",
+ " period 05 : 177.32\n",
+ " period 06 : 177.28\n",
+ " period 07 : 173.22\n",
+ " period 08 : 173.59\n",
+ " period 09 : 173.71\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xl8VOW5wPHfLJns+0ISksnCkgBh\nB9mXEJaERRSUApJqa21vrcWrvVZtxdrS2tpe7RW3ql0sWFsVAUU22fcdZA+B7Dsh+57MzLl/JBnC\nFrbMnCzP9/PJJ5ntnGfmJJNn3vM876tRFEVBCCGEEKID0aodgBBCCCHEnZIERgghhBAdjiQwQggh\nhOhwJIERQgghRIcjCYwQQgghOhxJYIQQQgjR4ejVDkCI9iwqKgqj0YhOpwPAbDYzfPhwXnrpJVxc\nXO56u5999hnz5s277vpVq1bx4osv8pe//IXY2Fjr9bW1tYwePZqpU6fyhz/84a73e7syMzN59dVX\nSUtLA8DZ2ZmnnnqKyZMn23zfd+Ldd98lMzPzutfk4MGDPP7444SEhFz3mI0bN9orvHuSnZ1NXFwc\nERERACiKgp+fH7/85S/p27fvHW3r9ddfJzg4mAULFtz2Y7788ktWrlzJihUr7mhfQtiLJDBC3MKK\nFSsIDAwEoL6+nmeeeYb333+fZ5555q62V1hYyF//+tcbJjAAQUFBfP3111clMNu3b8fDw+Ou9nc3\n/ud//ofZs2fzl7/8BYATJ07w6KOPsmHDBoKCguwWx70ICgrqMMnKzeh0uquew/r16/nJT37Cpk2b\nMBgMt72dn/3sZ7YITwhVySkkIe6AwWBg3LhxnDt3DoC6ujpefvllpk2bRkJCAn/4wx8wm80AJCUl\nMX/+fOLj45k9eza7d+8GYP78+eTm5hIfH099ff11+xgyZAgHDx6kpqbGet369esZM2aM9XJ9fT2/\n/e1vmTZtGpMmTbImGgDHjx9nzpw5xMfHM336dPbt2wc0fqIfO3Ysy5cvZ9asWYwbN47169ff8Hkm\nJyczcOBA6+WBAweyadMmayL39ttvM2HCBB544AE++OADJk2aBMALL7zAu+++a31cy8u3iuvVV19l\n0aJFABw9epS5c+cyZcoU5s2bR1ZWFtA4EvXf//3fxMbGsmjRIvLz829xxG5s1apVPPXUUzz66KP8\n8Y9/5ODBg8yfP5+nn37a+s9+w4YNzJw5k/j4eL773e+SmZkJwFtvvcVLL73EQw89xEcffXTVdp9+\n+mn+/ve/Wy+fO3eOsWPHYrFY+POf/8y0adOYNm0a3/3udykoKLjjuKdPn05tbS2pqakAfPrpp8TH\nxzNp0iSeffZZamtrgcbX/fe//z2zZs1iw4YNVx2Hm/1eWiwWfvOb3zBx4kQeeughkpKSrPs9dOgQ\nDz74INOnTychIYENGzbccexCtDlFCHFTvXv3VvLy8qyXS0tLlUceeUR59913FUVRlPfff1954okn\nlIaGBqWmpkaZO3eusmbNGsVsNisJCQnK2rVrFUVRlJMnTyrDhw9XKioqlAMHDiiTJ0++4f6++OIL\n5fnnn1f+53/+x/rYiooKJS4uTvn888+V559/XlEURXn77beVRx99VKmrq1OqqqqUBx54QNm2bZui\nKIoyc+ZM5euvv1YURVFWr15t3VdWVpbSt29fZcWKFYqiKMr69euVKVOm3DCOn/70p0psbKzyz3/+\nU7l48eJVt50/f14ZNmyYcunSJaWhoUH58Y9/rMTGxiqKoijPP/+88s4771jv2/Jya3H169dPWbVq\nlfX5Dh8+XNmzZ4+iKIqydu1a5cEHH1QURVE+/vhj5ZFHHlEaGhqU4uJiJTY21vqatNTaa9z8Og8a\nNEhJS0uz3r9///7Kvn37FEVRlJycHGXo0KFKenq6oiiK8re//U159NFHFUVRlGXLliljx45VioqK\nrtvuunXrlEceecR6+c0331SWLl2qJCcnK1OnTlXq6+sVRVGU5cuXK6tXr75pfM2vS58+fa67fvjw\n4UpKSopy+PBhZdSoUUp+fr6iKIqyZMkS5Q9/+IOiKI2v+6xZs5Ta2lrr5XfeeafV38sdO3YoU6dO\nVSorK5WamhrloYceUhYtWqQoiqLMmTNHOXjwoKIoipKWlqY8++yzrcYuhD3ICIwQt5CYmEh8fDxx\ncXHExcUxcuRInnjiCQB27NjBvHnz0Ov1ODk5MWvWLPbu3Ut2djaXL19mxowZAPTv35/g4GBOnTp1\nW/ucMWMGX3/9NQBbtmwhNjYWrfbKn+v27dtZuHAhBoMBFxcXZs+ezTfffAPAmjVrSEhIAGDo0KHW\n0QsAk8nEnDlzAOjXrx+5ubk33P+f/vQnHnnkEdauXcvMmTOZNGkS//73v4HG0ZHhw4fj7++PXq9n\n5syZt/WcWouroaGBKVOmWLffrVs364jTzJkzyczMJDc3lyNHjjBlyhT0ej3e3t5XnWa7Vl5eHvHx\n8Vd9tayVCQ8PJzw83HrZycmJUaNGAbB3715GjBhBWFgYAA8//DAHDx7EZDIBjSNSPj4+1+1z4sSJ\nnD17ltLSUgA2b95MfHw8Hh4eFBcXs3btWsrKykhMTOSBBx64rdetmaIofPrpp3Tr1o3w8HC2bdvG\n9OnT6datGwALFiyw/g4AjBo1CkdHx6u20drv5eHDh5kwYQKurq44OTlZjxWAr68va9asISUlhfDw\ncF5//fU7il0IW5AaGCFuobkGpri42Hr6Q69v/NMpLi7G09PTel9PT0+KioooLi7G3d0djUZjva35\nn5ifn98t9zlmzBheeuklSktLWbduHU8++aS1oBagoqKC3//+97zxxhtA4ymlAQMGALB27VqWL19O\nVVUVFosFpcVyZzqdzlp8rNVqsVgsN9y/o6Mjjz/+OI8//jjl5eVs3LiRV199lZCQEMrKyq6qx/H1\n9b3l87mduNzc3AAoLy8nKyuL+Ph46+0Gg4Hi4mLKyspwd3e3Xu/h4UFVVdUN93erGpiWx+3ayyUl\nJVc9R3d3dxRFoaSk5IaPbebi4sLo0aPZsWMHQ4cOpby8nKFDh6LRaHjrrbf4+9//ztKlSxk+fDi/\n/vWvb1lPZDabra+Doij07NmTd999F61WS0VFBZs3b2bPnj3W2xsaGm76/IBWfy/LysoICAi46vpm\nr776Ku+99x7f+973cHJy4tlnn73q+AihBklghLhNPj4+JCYm8qc//Yn33nsPAD8/P+unbYDS0lL8\n/Pzw9fWlrKwMRVGs/yxKS0tv+5+9g4MDsbGxrFmzhoyMDAYPHnxVAhMQEMD3v//960YgCgoKeOml\nl/j888/p06cP6enpTJs27Y6eZ3FxMefOnbOOgHh4eDBv3jx2795NcnIy7u7uVFRUXHX/ZtcmRWVl\nZXccV0BAAJGRkaxateq62zw8PG6677bk6+vL8ePHrZfLysrQarV4e3vf8rHTpk1j8+bNlJSUMG3a\nNOvxHzlyJCNHjqS6uprXXnuN//3f/73lSMa1RbwtBQQE8OCDD/L888/f0fO62e9la6+tn58fS5Ys\nYcmSJezZs4ef/vSnjBs3DldX19vetxBtTU4hCXEHvve973H8+HEOHToENJ4yWLlyJWazmerqar78\n8ksmTJhASEgIgYGB1iLZY8eOcfnyZQYMGIBer6e6utp6OuJmZsyYwYcffnjD1uW4uDg+//xzzGYz\niqLw7rvvsmvXLoqLi3FxcSEyMhKTycSnn34KcNNRihupra1l8eLF1uJOgIyMDE6cOMGwYcMYPHgw\nR44cobi4GJPJxJo1a6z38/f3txZ/ZmVlcezYMYA7imvgwIEUFhZy4sQJ63aee+45FEVh0KBBbNu2\nDbPZTHFxMbt27brt53UnxowZw5EjR6ynuf7zn/8wZswY68hba2JjYzl+/DhbtmyxnobZs2cPv/71\nr7FYLLi4uBAdHX3VKMjdmDRpEt9884010diyZQsffPBBq49p7fdy8ODB7Nmzh5qaGmpqaqyJU0ND\nA4mJiVy6dAloPPWo1+uvOqUphBpkBEaIO+Dm5sYPf/hDXnvtNVauXEliYiJZWVnMmDEDjUZDfHw8\nCQkJaDQa3njjDX71q1/x9ttv4+zszJtvvomLiwtRUVF4enoyZswYVq9eTXBw8A33dd9996HRaJg+\nffp1ty1cuJDs7GxmzJiBoijExMTw6KOP4uLiwvjx45k2bRq+vr688MILHDt2jMTERJYtW3ZbzzE4\nOJj33nuPZcuW8dvf/hZFUXBzc+PFF1+0diZ95zvf4cEHH8Tb25upU6dy4cIFAObNm8dTTz3F1KlT\n6du3r3WUJTo6+rbjcnJyYtmyZSxdupSqqiocHBx4+umn0Wg0zJs3jyNHjjB58mSCg4OZPHnyVaMG\nLTXXwFzrj3/84y1fg8DAQH7729/y5JNP0tDQQEhICEuXLr2t18/NzY1+/fpx/vx5Bg0aBMDw4cNZ\nt24d06ZNw2Aw4OPjw6uvvgrAz3/+c2sn0Z3o168f//Vf/0ViYiIWiwVfX19+/etft/qY1n4vY2Nj\n2bFjB/Hx8fj5+TFhwgSOHDmCg4MDDz30EI899hjQOMr20ksv4ezsfEfxCtHWNErLE9FCCHGHjhw5\nws9//nO2bdumdihCiC5ExgCFEEII0eHY9BRScnIyTz75JI899hiLFi1i8eLF1ir+0tJSBg0axCuv\nvMLLL79Meno6DQ0NLFy48I7bC4UQQgjRtdjsFFJ1dTU/+tGPCA8PJyoqyjrDZrMXX3yRBQsWUFRU\nxNq1a3njjTeora1l8uTJ7Nq1SwrEhBBCCHFTNssSDAYDH3744VXzCjRLTU2loqKCAQMG4O3tTXl5\nORaLherqalxdXSV5EUIIIUSrbHYKSa/X37TlcPny5dYRmUGDBhEcHExcXByVlZXWynwhhBBCiJux\next1fX09R48e5ZVXXgEaOxjy8vLYvHkzRUVFfPe732XChAmtrrRaWHjjtsm24O3tQklJtc22L+6e\nHJv2SY5L+yXHpv2SY3N7/P3db3qb3c/VHD582DrlOTROpDRq1Cj0ej3dunXDy8vrrlZpbSt6vU61\nfYvWybFpn+S4tF9ybNovOTb3zu4JzKlTp4iOjrZeDgsL4+TJkwBUVlZSUFCAv7+/vcMSQgghRAdi\ns1NIp0+f5rXXXiMnJwe9Xs+mTZt46623KCwsxGg0Wu83ZcoU9u7dy4IFC7BYLDz33HM4OTnZKiwh\nhBBCdAIdciZeW9bA+Pu723T74u7JsWmf5Li0X3Js2i85NrenXdXACCGEEELcK0lghBBCCNHhSAIj\nhBBCiA5HEhghhBBCdDiSwAghhBCdzI4dW2/rfm+++Tq5uTk3vf2FF55tq5DanCQwQgghRCeSl5fL\nli2bbuu+Tz/9M4KDu9/09j/84Y22CqvN2X0pASGEEELYzhtvvMa5c2cYN244U6cmkJeXy//937v8\n/ve/obDwEjU1NXz/+z9kzJhxPPXUD3n22Z+zfftWqqoqyczMICcnm8WLf8aoUWOYMSOOdeu28tRT\nP2T48BEcO3aE0tJSXnvtz/j5+fGb3ywhPz+P/v0HsG3bFlavXm+35ykJjBBCCGEjn227yOGkS9dd\nr9NpMJvvbhq24dEBzJvU86a3L1iQyKpVnxER0YPMzHTeffevlJQUc999I0lImElOTjZLlrzAmDHj\nrnrcpUsF/O//LuPAgX18+eUXjBo15qrbXV1defPN93jvvbfYtWsbwcEh1NfX8cEHH7F3724+++zf\nd/V87pYkMEII0eTbC5cpKq9Fp9Og02jQajXotM3ftS1+vvK99eu0N72fVqNR++mKLqBPn34AuLt7\ncO7cGb76ahUajZby8rLr7jtgwCAAAgICqKysvO72gQMHW28vKysjIyON/v0HAjBq1Bh0Ovuu7yQJ\njBBCAOczS1j2xUm77U9D46dwa1KjuZtk6cr9rtqOrvHn/r38GdLD127PSVxv3qSeNxwtsddMvA4O\nDgBs3ryR8vJy3nnnr5SXl/ODHyRed9+WCciNJum/9nZFUdBqG6/TaDRo7JyUSwIjhOjyFEXhi52p\nACyc3AtXZwcsFgWzRbnuu9liuXKd0uI2s4JZufr+FouCqcXPjddbrtle088tHms2KzSYLZgbrt1/\n42NvdwGYnd/m8otFQ+kZ4mnDV0+0N1qtFrPZfNV1paWlBAUFo9Vq2blzGw0NDfe8n+7dQ6zdTocO\nHbhun7YmCYwQoss7kVLExZwyBvfyY/KwULXDuSWLck1SpDQlUC2SodzCKpZ9cZJPtiTz0qPD5JRV\nFxIWFsH580kEBQXj5eUFwMSJk3jhhWc5e/Y0M2bcT0BAAP/4x4f3tJ/Ro8exbt1X/PjHjzN48FA8\nPOybKMtijteQBbbaLzk27VNHPy4WReGVvx8mp7CSXz9+HyH+bmqH1GY+2nSeXcdzeHxGH8b0D1I7\nHNFCR/+7ASgvL+PYsSNMnBhHYeElnn76x3zyyRdtuo/WFnOUERghRJd26GwB2YWVjOoX2KmSF4DH\nZvTjwKk8vtiZwtAof5wM8pYv2o6Liyvbtm3hk09WoCgWfvpT+056J7/NQoguy2S2sGZ3Gjqthtnj\nItQOp835ezsTP8LIV3vT2XAgkwfHR6odkuhE9Ho9v/nN71Xbv8zE20JNnYm8y1VqhyGEsJM9J/O4\nVFrD+EHBBHg5qx2OTSSMCMPLzcDGQ5kUldWqHY4QbUYSmBb+veUCi1/fTnXtvVdnCyHat/oGM1/t\nTcOg1zJrdLja4diMo0HHQxN70GCy8PmOi2qHI0SbkQSmBW93R2rrzSRnXz/BjxCic9l6LJvSynom\nDwvFy81R7XBsamS/QCKCPDh07hIX5f1NdBKSwLQQbWxsNzufWaJyJEIIW6quNbF+fwbOjnoSRhrV\nDsfmtBoNCyb3AuDfW5OxdLzmUyGuIwlMC5HdPdHrtCRllqodihDChjYdyqSq1kTCCCOuTg5qh2MX\nPbt7MqJvN9LyKjhwJl/tcEQ78NBDs6iurmbFio84ffrqWairq6t56KFZrT6+eRK79evXsnPndpvF\neTOSwLTg6KCjt9GLzIIKqmtNaocjhLCB8qp6vjmchYergSkdYNK6tvTQhB446LWs3JFCbb28x4lG\niYmPERMz4I4ek5eXy5YtmwCYPn0WEybE2iK0Vkkb9TX69/DjbFoxF7JLGdjTT+1whBBt7Ov96dQ1\nmHloYg8cDfZdfE5tvp5OxN9nZO0+aavuzL7//Ud49dXXCQwMJD8/jxdf/Bn+/gHU1NRQW1vLM888\nR9++Mdb7/+53rzBxYhyDBg3ml7/8OfX19daFHQG++WYDK1d+ik6nJTy8B88//0veeOM1zp07wz/+\n8SEWiwUvLy/mzv0O7777JqdOncBkMjN37jzi42fw1FM/ZPjwERw7doTS0lJee+3PBAYG3vPzlATm\nGv17+PHplmTOZ0oCI0RnU1RWy47jOfh6ODF+YLDa4ahi+sgwdp/MZeOhTMYPDMbX00ntkDq1VRe/\n5vilU9ddr9NqMFvurhZpcEB/5vScedPbx4+PZe/eXcydO4/du3cyfnwsPXr0Yvz4iRw9eph//euf\n/O53f7rucZs2bSAysgeLF/+MrVu/sY6w1NTU8Prrb+Hu7s5PfvIEKSkXWbAgkVWrPuN733uCv/3t\nfQC+/fYYqakpvPfe36mpqeHRR+czfvxEAFxdXXnzzfd477232LVrG/PmLbyr596SnEK6RlS4Nzqt\nhiQp5BWi0/lybxoms8ID4yJw0HfNt7+WbdUrd6aoHY6wgcYEZjcAe/bsZOzYCezcuZUf//hx3nvv\nLcrKbtyJlp6eSkzMQAAGDx5qvd7Dw4MXX/wZTz31QzIy0igru3GdaFLSWQYNGgKAs7Mz4eGRZGVl\nATBw4GAAAgICqKysbJPnKSMw13Ay6IkM9uBiThnVtSZcnOQlEqIzyCuqYu+pPIL9XBnV796Hrzuy\nkf0C2Xo0m4NnC4gbEiKrVdvQnJ4zbzhaYsu1kCIje1BUVEhBQT4VFRXs3r0DP78AlixZSlLSWd5+\n+/9u+DhFAa22cdFPS9PoUENDA2+88Uc++ugTfH39+PnP//um+9VoNFetlG4yNVi3p9NdOV3bVksw\nds2PILcQZfRGUeBCtnQjCdFZrN6ViqLAg+MirW+qXZVWo2FBXG9A2qo7q1GjxvLBB+8ybtwEyspK\n6d49BICdO7djMt24gNtoDCMp6RwAx44dAaC6ugqdToevrx8FBfkkJZ3DZDKh1Woxm81XPT46uh/H\njx9telw1OTnZhITYbpoCSWBu4Mp8MJLACNEZpOeXc+R8IRFB7gzpLbVtAD1DPLmvT4C0VXdSEybE\nsmXLJiZOjCM+fgaffvovnnnmJ/TrF0NRURHr1n113WPi42dw5swpnn76x2RlZaDRaPD09GL48BH8\n4Aff5R//+JCFCxNZtuwNwsIiOH8+iWXLXrc+fuDAQURFRfOTnzzBM8/8hP/6r6dwdrbdEh0apa3G\ncuzIlkuQ+/u7k51bylN/3kVogBsvPzbcZvsSd6YzLD/fGXWE4/LGp99yOq2Yn80fRL9wH7XDsZtb\nHZuislp+8eEBXJ30/P6Ho7pcV5aaOsLfTXvg7+9+09tkBOYGHB10RAR7kFFQQU2dzJUgREd2PrOE\n02nF9Anz7lLJy+1obqsuraxnw8EMtcMR4o5IAnMT0UYvqYMRooNTFMXaaTNngsx5ciMJI414uRnY\ncFBWqxYdiyQwNxFl9AaQZQWE6MBOXCwiJaecwb386BEsnTY34mTQM3eCtFWLjkcSmJvoGeyJTquR\nhR2F6KAsisKqXSloQGacvYVRMYFEBLlz8GyBrFYtOgxJYG7C0dBYB5OeL3UwQnREh84WkF1Yxch+\ngYT4u6kdTrt2dVv1BWmrFh2CJDCtkDoYITomk9nCmt1p6LQaHhgXoXY4HcKVtupyDp4pUDscIW5J\nEphWSB2MEB3T7pN5XCqtYcKgYPy9bDcPRWfz0MSm1ap3plBXb771A4RQkU0TmOTkZCZPnszHH38M\nwOLFi0lMTCQxMZFZs2axZMkSAPbv38/s2bOZM2cOn3/+uS1DuiNX6mAkgRGio6hvMPPV3jQMei2z\nRoerHU6H4ufpzLT7jJRU1ElbtWj3bJbAVFdXs3TpUkaNGmW9btmyZaxYsYIVK1YQExPDww8/jMlk\n4le/+hXvv/8+//rXv9i7d6+tQrpjjgYdEUEeZEgdjBAdxtZj2ZRV1jN5WCiebo5qh9PhTB9pxFPa\nqkUHYLMExmAw8OGHHxIQEHDdbampqVRUVDBgwADOnDlDWFgYgYGBODs783//d+NFptQSZfTCoihc\nkMp8Idq96loT6/dn4OKoJ2Gk7dZg6cycDHoeamqr/kLaqkU7ZrMERq/X4+TkdMPbli9fzqJFiwDI\nycnBwcGBp59+mvnz5/P111/bKqS7Et1UByPt1EK0fxsPZVJVayJhpBFXJwe1w+mwRsUEEh7ozoGz\nBVzMkQ9von3S23uH9fX1HD16lFdeeQVonCkzLy+PTz75hNraWubMmcOYMWPw9va+6Ta8vV3Q6223\nZkfLtRdGejij+/wEKXnlra7JIOxDjkH71B6OS0lFLVuOZOHl7sj8aX1wcrT721u7dLfH5scPDeT5\nt/ewcmcKf/rp+C6/grcttIe/m47M7n/hhw8fZsCAAdbLvr6+9O/fH2dnZ5ydnenVqxdZWVmtJjAl\nJdU2i+9GC2xFBHlwMauMzOwSnOVNUTWy+Fn71F6OyydbkqmtNzN3Qg8qymtQPyL13cux8XczcF+f\nAA6du8TXOy8yKiawjaPr2trL3017164Wczx16hTR0dHWy4MHDyYpKYm6ujrq6+vJyMggJCTE3mG1\nSupghGjfLpfVsON4Dn6eTkwYFKx2OJ2GtFWL9sxmCczp06dJTExk9erVLF++nMTEREpLSyksLMTX\n19d6P0dHR370ox+xcOFCFi5cyPe//318fNrXirFRRi8AzmdJHYwQ7dFXe9IxmRVmj41Ar5PprdqK\ntFWL9sxm50NiYmJYsWLFddc3z/3SUlxcHHFxcbYK5Z717C7zwQjRXuVermLv6TyC/VwZ1U9Oc7S1\n6SON7D6Zy8aDmYwfGIyPx42bM4SwN/mochucDHrCg9xJz5P5YIRob9bsTkVR4MFxkVJoagPNbdX1\nJgsrd0hbtWg/JIG5TdFGbyyKIi2FQrQj6fnlHDlfSESQB0N6+6kdTqclbdWiPZIE5jY118EkyXww\nQrQbX+xMBWDuhEg0Ghl9sRWtRsOCyb0A+I+sVi3aCUlgbpPUwQjRviRllHAmrZg+Yd70DW9fhf+d\nUa8QL+7rE0BqbjkHz8pq1UJ9ksDcJqmDEaL9UBSFL3Y11mPMndBD5Wi6jocm9kCv07Jyh7RVC/VJ\nAnMHokKlDkaI9uDExSJScsoZ3MuPyGAPtcPpMvw8nYkfESpt1aJdkATmDkQ3zwcjp5GEUI1FUVi1\nKwUNMGd8pNrhdDnTR4bh6WZg48FMistltWqhHklg7kDPEE+0Go0s7CiEig6eLSC7sIpRMYF093dT\nO5wu56q2almtWqhIEpg74GTQExHkTlpeBbX1UgcjhL2ZzBbW7E5Fp9Uwe2yE2uF0WaNiAgkLdOfA\nmQJS5JS6UIkkMHcoqnk+GFkXSQi7230yj8LSWiYMCsbfy1ntcLosrUbDgrjGtup/S1u1UIkkMHco\n2jofjNTBCGFPdQ1mvtqbhsFBy6zR4WqH0+X1DvVieLS0VQv1SAJzh6QORgh1bDuaTVllPVOGheLp\n5qh2OAJ4WNqqhYokgblDzfPBSB2MEPZTXdvA+gMZuDjqiR9hVDsc0cTP60pb9cZDmWqHI7oYSWDu\nQpTRS+aDEcKONh7KoqrWRMJII65ODmqHI1qYPjIMT1cDGw5kSFu1sCtJYO5CtNEbkPlghLCHsqp6\nNh/OwsPVwOShoWqHI67hZNAzV9qqhQokgbkLPbs31sHIwo5C2N66fenUNZiZNTocR4NO7XDEDYzu\nL23Vwv4kgbkLzo5X1kWSOhghbOdyWQ07vs3Bz9OJCYOC1Q5H3MS1bdWKtFULO5AE5i5FGb0wW6QO\nRghb+mpPOiazwgPjItDr5O1RKomiAAAgAElEQVSqPZO2amFv8o5wl6QORgjbyr1cxd7TeXT3c2Vk\n30C1wxG3obmt+vMdKdQ1SFu1sC1JYO6S1MEIYVurd6eiKPDg+Ei0Wo3a4Yjb4OflzLT7mtqqD0pb\ntbAtSWDukrOjnrDAxjoYmcBJiLaVllfO0fOFRAZ7MLiXn9rhiDsgbdXCXiSBuQfRUgcjhE2s2pUK\nwNzxkWg0MvrSkTg7Xmmr/kLaqoUNSQJzD6Ka6mDkNJIQbScpo4QzacX0CfOmT7iP2uGIuzC6fyBh\n3dzZf6aAlFz5gCdsQxKYe9DLui6SFPIK0RYURbF+ap87oYfK0Yi7pdVoWDC5sa36P1ukrVrYhl7t\nADqy5jqYtLxy6urNMsmWEPfo24uXScktZ0hvfyKDPey+/7SyTMrry3HQOuCgdcCgc0Cv1Vt/brxe\nj16rR6uRz3+t6R3qxbDoAI4kXeLg2QJG9pNOMtG2JIG5R9FGL9LyyrmYU0a/CBnuFuJuWSwKq3al\notE0dh7ZW3ZFLq8ffQeF2xstaE5sHJq/6xwwWK9zwEHX4metHoemBMigbUqKdI0/Nz/WocVjmxOn\na2/vaEnTvIk9+PbCZT7fkcLg3v44OsiHPNF2JIG5R1FGbzYczCQps0QSGCHuwcFzBeQUVjEmJpDu\nfq523/+G9C0oKMQZx+Oid6HB0kCDuaHxu8VkvVxvacBkMVF/ze219bVNl023nQTdKZ1GZ02OGhOh\npqSpxejQlYTHgf4Vvenv3t8msdyO5rbqdfsz2HQwk/vHRqgWi+h8JIG5R71CPNFoZEI7Ie6FyWxh\nze5UdFoNs1X4J5dTmce3hacJ9zDyYI8Z99T5pCgKZsVMg6WBenNj4mOyNDQlPE2JUHNS1CIhav7Z\nenuL+9ZbGjA1Xa5vcXtVQxWlTduyKJbrYtmbe5Dnhy3G6BFyLy/PPZk+Mow9J/NYfzCDsQOC8PFw\nUi0W0blIAnOPnB31hEsdjBD3ZPeJXApLa4kbEoKfl7Pd978xfSsACeFx99y2rdFo0Gsa62Sc7fgO\na7aYrYlRvbmBjIos/nb6Y75K3chTg35gv0Cu4eyoZ86ESP6xPokvdqbwxKx+qsUiOpeOdUK1nYoy\nejfOByPtgkLcsboGM1/tS8fgoGXmmHC77z+vqoDjl05hdA+hn2+03fffVnRaHU56J9wNbvg6ezMk\nYAADuvXhXHEy54svqhrbmP5BGLu5SVu1aFOSwLSBaKMXAOdlPhgh7ti2o9mUVdYzZVgonq4Gu+9/\nY/pWFBSmR0zudJPmLRgwG4AvUzeo2sqs1WhYOLk3IG3Vou1IAtMGeoV4odFAktTBCHFHqmsbWH8g\nAxdHPfEjjHbff37VJY4WnCDULZgY3z5237+t9fAJY3DAADLKszhx+YyqsTS3VafklnPwnKxWLe6d\nJDBtwFoHk1su6yIJcQc2HsqkqtZEwkgjrk4O9t9/+jYUFBI64ehLs1kRU9FqtKxN2YjZou77U/Nq\n1StltWrRBiSBaSNSByPEnSmrqmfz4Ww8XQ1MHhZq9/1fqi7kSMFxursF0d+vr933by/dXAMYFTSM\n/OpLHMo/pmos/k1t1cXldWyS1arFPZIEpo1EhUodjBB3Yt2+dOoazMwaE67KBGfNoy/x4XEdboK4\nO5UQPhm9Vs+6tM00mBtUjaV5ter1B2W1anFvbPpXm5yczOTJk/n4448BWLx4MYmJiSQmJjJr1iyW\nLFliva+iKMyfP5+33nrLliHZTHMdjMwHI8StXS6rYce3Ofh5OjF+YLDd919YXcThguMEuXZjkH+M\n3fdvb95OXkwIGU1JXSm7cw+oGktzW3V9g4UvdqaqGovo2GyWwFRXV7N06VJGjRplvW7ZsmWsWLGC\nFStWEBMTw8MPP2y97fPPP6ehQd1PBvfCxUlPWDd3UnPL5dyuELfw5Z40TGaFB8ZFoNfZf/Tjm4xt\nWBQLCV1g9KXZ1LBYnHRObErfRo1J3ZGPK23V+aTmlqsai+i4bPaXazAY+PDDDwkICLjuttTUVCoq\nKhgwYAAAxcXFrF27lvnz59sqHLuIbqqDScmROhghbibnchX7TufT3c+VkX3tv8BfUU0xB/KP0s0l\ngMEBA+y+f7W4ObgyJWwClQ1VbMvcpWosWo2GBXGNq1X/e2uytFWLu2KzBEav1+PkdOMpo5cvX86i\nRYusl//0pz/xzDPPoNN17Flso5rmg5F2aiFubs2uVBQF5oyPRKu1f+fPpoztXW70pdnEkLG4G9zY\nmrWLivpKVWOJMnozLMqflBxpqxZ3x+5LCdTX13P06FFeeeUVAA4fPoxOp2PIkCGkp6ff1ja8vV3Q\n622X7Pj7u9/V40a5OfHWFydJzSu/622I1snr2j7d7nFJzizhaHIhUUZvpoyOsHvr8uWqYg7kHyHI\nPYD4fmPRajt/AnP1sXHn4ZgZ/P3Yp+wq2M1jQ+apFhfAj+YO5MQft7FqVxpTRkXgZOhaq9vI+9m9\nsftvy+HDh62njgC2bt3K6dOnmTdvHsXFxdTX1xMaGsoDDzxw022UlFTbLD5/f3cKCyvu+vHGbu6c\nzyghO7dUlo5vY/d6bIRt3Mlx+fuXpwC4f3QYly/bfwTgP+e/xmwxMyUklqKiKrvv395udGwGegzE\n12kz31zcxUi/Efg6+6gUHeiAqcMbV6v+1/qz3D+m66xWLe9nt6e1JM/uHz9OnTpFdPSV9UZeeOEF\n1qxZw2effcaTTz7Jww8/3Gry0t5FGb2kDkaIGziXUcKZ9BL6hnvTJ9z+/zRLakvZn3sIP2dfhnUb\nZPf9txd6rZ6ZkVMxKWbWpW1WOxymjwzDw9XA+gMZlFTUqR2O6EBslsCcPn2axMREVq9ezfLly0lM\nTKS0tJTCwkJ8fX1ttVvVRRm9AWmnFqIlRVH4YmcKAHMn9FAlhs2ZOzApZuLDJqHTdu3R0WHdBtHd\nLYhD+cfIrcxXNRZnRz1zxze2Va/ckaJqLKJjsdkppJiYGFasWHHd9S3nfrnWnDlzbBWO3fQO8Wya\nD0YmtBOi2bcXL5OaW87Q3v5EBHnYff+ldWXszT2Er5MP9wUOsfv+2xutRsusyGn85eRHrE3dxI8G\nPKpqPGP6B7H1WDb7z+QTNzSEyGD7/46IjqdrVUzZgYuTA8Zu7qTmNc4HI3UwoquzWBRW7UpFo4EH\nxkeqEsOWjJ2YLCamhcd2+dGXZjG+fYj0DOfk5TOklmUQ6RmmWixabWNb9WufHOffW5P5xaKhnXZt\nqo7CoijU1ZupqTNRW2+mpt5Ebd21l03U1JvpEezB0Kjrp0yxNUlgbCDa6EVGfgWpOWWqnOsXoj05\neLaAnMIqxsQE0t3P1e77L6urYE/uAXycvBkRONTu+2+vNBoNs3sk8Odj7/FVygaeHvwjVZOG5rbq\nI+cLOXTuEiP6dlMtlo5KURRMZgs1dVcSjtp6U4vLV5KPmjrz9ZfrTdYEpfYOFiYODXCTBKaziDJ6\ns+lQFkmZpZLAiC7NZLawencqOq2G2WPV6TDZmrmTBouJqWGx6LXyltdST68IYnyjOV2UxLniZPr6\nRqkaz8OxPfn24mU+33GRwb38MHSREWyzxdKYSDQnD3XNSUXz5caRjivJhekGSUrjbWbL3U0KqNdp\ncTLocHbU4eFiwMlR33RZj7NBd+WyQY+T49Xfg3zt/8EEJIGxCamDEaLR7hO5XC6rJW5oCH5eznbf\nf0V9Jbty9uPl6MnIoGF2339HcH+PBM4UneerlA1E+/RSdXI/fy9npg43sv5ABhsPZXaKtmqzxcKl\nkhryi6rJK64mr6iK/OJqaurMVNY0UFtvor7Bclfb1gBOjnqcHXV4uTni1JRoXJtwODs2JhtXXW55\nX4MeB33HmxNJEhgbaFkHU99g7jKfIoRoqa7BzFf70jE4aJk5OlyVGLZm7qLB0sC0sFgcZPTlhrq7\nBTGs2yAOFxzn+KWTDFW5xXzGqDD2nMpj/YEMxg0IxtvdUdV4bldNnYn8pgQlr6i66auKSyU1142K\n6LQaPFwNOBt0eLs74tw00nElqWhMSpwMNxkFabqPwUHbpWuF5C/aRqJCG+tgUnLL6RPmrXY4Qtjd\n1qPZlFXWM2NUGJ6uBrvvv7K+ip05+/A0eDAqaLjd99+RzIycytFLJ1ibuolB/v1VLXR2dtQzZ3wk\nH21I4oudKfxgZl/VYrmWoiiUVta3SFIav+cXV99wDhtnRz3hge4E+roQ5OtKUNN3P08nggI9ZSK7\neyQJjI1EG7355nAW5zNLJIERXU51bQMbDmTg6qQnYYRRlRi2Zu2i3lzP7MgEHHQOqsTQUfg5+zI2\neCS7cvaxL+8w47qPVDWesf2D2HYsm32nG9uq7d16bzI3nvZpOZqSX9z4842KW309HOkX4UOQjwtB\nfq6N331d8HA1dOkREluTBMZGeod6okEWdhRd04aDmVTVmnhoYg9cnOyfPFQ1VLMzey8eBndGB99n\n9/13RPHhcRzIO8yGtM2MCByCQWf/UbNmV7VVb7nAi4uG2CQRqK5tuHK6p7iK/KJqcouqKSypwXLN\nCtl6nYZuPi5NycmV0ZRAHxccDVImoAZJYGzEWgeTWyZ1MKJLKauqZ/ORLDxdDcQNDVElhm1Zu6kz\n1zMzYioGGX25LZ6O7sSGjmNTxjZ2ZO9lalisqvFEGb0ZGuXP0Xtsq1YUheLyOvKaRlDyW5z6Kauq\nv+7+rk56Irt7WBOVQF8Xgn1d8PN0VmX1dHFzksDYUJTRi4wCqYMRXcvX+9Kpb7AwLzZclYkcqxuq\n2ZG1F3cHN8aqfCqko5lsnMDunP18k7GDscEjcHFwUTWeh2N7cuI226obTBYKSq5OUJrrU+oarj7t\nowF8PZ3oH+lLkK9LU5LSmKy4OzvIaZ8OQhIYG5I6GNHVXC6tYcfxHPw8nRg/MFiVGLZn7aHWXEtC\nxAxVT4N0RC4OzkwNi2VNyno2Z+5kdo8EVeMJaNFWvelQJrPGRFBZ09B0qqfqSrJSXE1haQ3XnPXB\nQa8lsKkepfm0T6CPC918XGSW9E5AEhgbkjoY0dV8uScNs0XhwXGR6HX2n1eixlTD9uw9uDm4Mq77\nKLvvvzOYEDKG7Vl72J61h4khY/B0VHddoua26rX7MthyNJuK6obr7uPu4kCv7p7WAtrApmTF19MJ\nrYymdFqSwNiQi5MDod3cpA5GdAk5l6vYdyaf7v6uqk0DvyNrHzWmWmb3SMBRRl/uikHnwIyIKXxy\n/gs2pG9lftSDqsbj7KhnflxP/r4uCWdHPZFBHi1qUxq/uzlLnVNXJAmMjUUbvcksqCQ1t5xoOY0k\nOrE1u1JRFJgzPlKVYscaUy3bsnbhqndhvIy+3JORQcPYkrWTvbkHmRQ6jgAXP3Xj6RvIiD7dpDZF\nXKXjzR3cwUQZvQBIkmUFRCeWllfO0eRCegR7MKinOv/sdmXvo9pUwyTjeJz0TqrE0FnotDpmRcZj\nUSysS/tG7XAAJHkR15EExsZ6h3qhAc5LHYzoxL7YmQLAnAk9VPlHU2uqY2vWLpz1zkwIGW33/XdG\ng/xjMLp350jBt2RV5KodjhDXkQTGxlyb6mBScstpMN3+8uRCdBQnLhRyNr2EfuHeqnXb7c7ZT1VD\nNZNCx+Isoy9tQqvRcn9TF9JXqRtUjkaI60kCYwfRRm9MZgspOeVqhyJEm1IUhRXrzwGNoy9qqDPX\nsyVzJ856JyaGjFUlhs4q2rsXvb16cLboPBdKUtQOR4irSAJjB1IHIzoTRVHIL65m85Es3vjsBOcz\nSxja29/u69U0252zn8qGKiaGjMXFwVmVGDorjUZjHYX5MmUjyrUTrQihIulCsgOpgxEdXU2diaSM\nEk6lFXM6tYjLZbXW2yKDPXl4Uk9V4qpvGn1x0jkyKVRGX2whwtPIQP8YThSe5nTROfr7tZ/VoUXX\nJgmMHbg6ORAacKUOxkEv88GI9k1RFLIuVXIqtYjTqcVczCnDbGn89O3sqGdYlD8xkb7ERPgQ1cOf\nwsIKVeLcm3uIivpK4sMmqT7tfWc2K3IaJwvP8FXKRvr5RqPVyOC9UJ8kMHYSZfQm81LjfDBRRpkP\nRrQ/FdX1nEkv5nRqMafTiilvWuhOA4QHuRMT4Uv/SF8igt3RadX/B9ZgbmBzxnYcdQZijePUDqdT\nC3LtxoigoRzIO8Lh/OOMCBqqdkhCSAJjL9FGLzYfySIps1QSGNEumC0WUnPLmxKWItLzKmiucPBw\nNTA6JpCYSB/6hfvg7tL+ZrXdm3eIsvoKpobF4ubgqnY4nd6MiCkcyT/OurRvGNJtIA5a+fch1CW/\ngXbSy1oHUwJEqB2O6KKKy2s53VTHcia9hJo6EwA6rYbeoV7ERPrQP9KXkAC3dr2GTIPFxOaMHRi0\nDkwKldEXe/Bx8mZ8yGi2Ze1mb85BJoaOUTsk0cVJAmMnbs6NdTAXc6QORthPg8lMclYZp1KLOJNW\nTM7lKuttfp5OjOzbjZgIH6LDvHF27DhvB/tzD1NaV8Zk4wTcDW5qh9NlTA2LZV/uITakb2Fk0FCZ\n8VioquO8Y3UCUgcjbE1RFApKaqzFt+czS6g3WQAw6LUM6NFYeBsT6Us3b+cOOT27yWLim4ztOGgd\niDOOVzucLsXd4EaccTzr0jazPWsPCRGT1Q5JdGGSwNiR1MEIW2itxbm7nysxkT7ERPjSO9SzU4z8\nHcg7QkldKZNCx+FhcFc7nC5nUug4dmbvY0vmTsZ1H4WbQeqPhDokgWlhd84BUs+nkth7vk3aBKUO\nRrQFi6KQVVDJ6bTrW5xdrmlx9vHoXEP8ZouZTRnbcdDqmWycoHY4XZKT3on48DhWXviKTRnbmNtr\nltohiS5KEpgWsityOJT7LROCxhLuYWzz7bs5OxAi88GIu1BeXc/ZtMb25o7Q4mwrB/OPUlxbwsSQ\nMXg6qjPzr4Cx3UeyNXMXu3L2Myl0HN5OXmqHJLogSWBaiPLpxZ7cg5wrumCTBAYalxXIkjoYcQvN\nLc6nUos50wFbnG3BbDGzMX0beq2eKWET1Q6nS3PQ6pkZOZUV5z5jfdpmHunzsNohiS5IEpgWorx7\nokHDueJkEiLibLKPaKM3W45kc17qYMQ1mlucT6UWcfaaFucooxf9IjpGi7OtHC44TlFtMeO7j8bL\n0VPtcLq8+wKHsDlzJ/vzjhBnnECga4DaIYkuRhKYFlwdXOjhE0ZqSQY1plqcbdAi2LwuUlJmCfdL\nHUyX1rLF+XRaMbmdpMXZFhpHX7ai0+iYKqMv7YJWo+X+yHg+OPVP1qZu4on+iWqHJLqYrv2ueAMD\nAqO5WJzOhZIUBvj3a/PtSx1M16YoCkfOF7LnZN5NW5z7R/oS0EFbnG3l6KUTFNYUMbb7SKm3aEcG\n+PUlwsPIt4WnyCjPIswjVO2QRBciCcw1BnTry6qzGzlXfMEmCQxIHUxXlV1YySebk0lqWpW8u7+r\ndU6W3iGdo8XZFiyK5croizFW7XBECxqNhtk9Evi/4+/zZcoGFg/+odohiS5EEphr9PaNwFFnIKkk\n2Wb7iAptqoPJkjqYrqC61sRXe9PYciQbi6IwqKcf8yb1JNBHVk++HccKTlBQXciY4PvwdZa/l/am\nl3cP+vpEcbb4PEnFF4j26aV2SKKLkATmGnqdnt7ePTh1+RxFNcX4Ovu0+T6ijI1D4OczS0GWE+m0\nFEVh/5l8PtueQnlVPQFeziyY3IuBPf3UDq3DsCgWNqRvRavRMjVsktrhiJu4v0c8Z4vP82XKeqK8\nF8vpT2EXNk1gkpOTefLJJ3nsscdYtGgRixcvpqSkBIDS0lIGDRrE0qVL+ec//8natWtRFIU5c+bw\nyCOP2DKsW4r26c2py+dIKr7AmO4j2nz7bs4OhPi7cTGnjAaTBQd95523o6vKLKjg483JXMwuw6DX\n8uC4COJHGOU00R06fukU+dWXGBk0DD8bfJgQbSPUvTtDAwZy9NIJjheeYkjAALVDEl2AzRKY6upq\nli5dyqhRo6zXLVu2zPrziy++yMMPP0xWVharVq3iiy++wGKxEB8fz/3334+7u3pThPfx6Q3AueJk\nmyQw0LisQHZhJWl55fQOlaLEzqKqtoHVu1LZfjwHRYGhvf35TlxP/Dyd1Q6tw2mufdFqtMSH2WZa\nA9F2ZkZO5XjhKb5O3cRAv37otJKsC9uy2Ud/g8HAhx9+SEDA9XMDpKamUlFRwYABA+jevTuffPIJ\ner0eg8GAk5MTlZWVtgrrtgQ4++Hj5E1SyUUsisUm+2iufUnKLLHJ9oV9WRSF3Sdy+cUHB9h2LIcA\nbxee/c5AfjKnvyQvd+lE4Rlyq/IZ3m0w/i6+aocjbiHAxZ/RQcMpqC7kYP5RtcMRXYDNRmD0ej16\n/Y03v3z5chYtWgSAVqvF1bVxMbA9e/bg7e1NUFBQq9v29nZBb8Oh+IAADwYF92Vb6l7KdcX08m37\n+VpGuzjyzupTpOZV4O8vC9Ldrvb4Wl3IKuH9Vac4n1mCk0HHozP6Mnt8jy51arCtj4tFsbD56DY0\nGg0LhszCX8UR2Y7Onn8zi9we4OC6Y2zM2EpCv3EY9F1jlui71R7fzzoSuxfx1tfXc/ToUV555ZWr\nrv/222957bXX+OCDD265jZKSahtF1/gLVVhYQYRLBLCX/Snf4mWxTdFliL8b59KLyc0r61L/7O5W\n87FpLyprGvhiZwq7vs1FAe7rE8C82J74eDhRWlJ1y8d3FrY4LicKz5BRlsPwboNxqHWhsLb9HPeO\nxP5/Mzomdh/D5swdfHHiG1lwsxXt7f2svWotybP7f83Dhw8zYMDVBV5JSUm89NJLvPfee7ccfbGX\nK8sKXLDdPoxeNJgspOWV22wfou1ZLArbj+fw4vv72fltLkF+rjw3fxD/NTum063+rAZFUdiQthkN\nGuLDpfOoo5kaNhFnvTPfpG+nxlSjdjiiE7N7AnPq1Cmio6Otl81mM7/4xS9YtmwZISEh9g7nplwd\nXDB6hJBW3risgC1EW9uppQ6mo0jJKWPp8iOs2HQes0XhO5N68sr3htMnXDpk2srponNkVeYyJGAA\nga7d1A5H3CEXBxemGidSZapmS+YutcMRnZjNTiGdPn2a1157jZycHPR6PZs2beKtt96isLAQo/HK\nSs/79+8nOzubX/3qV9brnnvuuetGadTQx6c3GeVZNltWoLn7KCmzlFkyH0y7Vl5Vz8odKew5lQfA\nqH7deDi2J15ujipH1rkoisL6tC0AxIdL51FHNTF0DNuz97AtcxcTQkbjYZBaD9H2bJbAxMTEsGLF\niuuuX7JkyVWXx44dy6FDh2wVxj3p49ObjelbbbasgLuLgRB/V1JkPph2y2yxsON4Lqt3pVJdZyLE\n341FU3tL67uNnC0+T2ZFNoP9+xPsFqh2OOIuGXQGEsIn82nyajamb2Ve7wfUDkl0QjITbysiPIyN\nywoU23BZAaM32YVVMh9MO5ScVcrH3ySTXViJs6OehZN7ETukOzqtJJq20HL0JSFissrRiHs1Jvg+\ntmbtYk/OQSaFjpeJCEWbk3fiVui0Onp79+RSzWUu1xTbZB9SB9P+lFbW8eHaM/zhX8fILqxkbP8g\nfv/DkUweFirJiw0lFV8gvTyTgf4xdHdrH8X84u7ptDpmRUzFrJhZl/aN2uGITkjejW+heWEyW43C\ntKyDEeoymS1sOpTJLz44wP4zBYR1c+eXiUP5/ow+eLjKfBa2pCgK69M3A5AQLqMvncWQbgPp7hbE\n4fzj5FTmqR2O6GQkgbmFK8sK2Kad2t3FQPemOhiT2Taz/opbO5dRwiv/OMyn2y6i02pInBbFkkeH\n0aO7p9qhdQnJJSmklmXQ368voe7Baocj2ohWo2V2jwQUFNamblQ7HNHJSA3MLTQvK3C+aVkBrabt\nc77oUG9ymupgeoVIHYw9FZfX8tn2ixw6dwkNMGFQMHPGR+LuIiMu9tQ8+jJdRl86nb4+UfT0iuDU\n5XOklKbTwytc7ZBEJyEjMLeg0Wjo49OLGlMNGeXZNtlHlFFOI9mbyWxh/YEMfvnhQQ6du0REkAcv\nPTqMR+OjJXmxswslKVwsTSPGNxqjR/uZC0q0DY1Gw+weCQB8mbIeRVFUjkh0FpLA3IboptNINquD\nkUJeuzqdVsSSvx1i5Y4UHPRaHkuI5pffHUpEkIfaoXVJ0nnU+UV6htPfry8pZemcKUpSOxzRScgp\npNtwZVmBZJu8yXo01cFczG6sg9HrJK+0hctlNXy69SJHkwvRaGDSkO48OD4SVycHtUPrsi6WppFc\nmkJfnyjCPYy3foDosO6PjOf05XN8lbqRvr5RNjkdL7oWSWBug6uDC2EeoaSVZ1JjqsVZ3/br3Ugd\njO00mMxsPJjJuv0Z1Jss9AzxZNGU3hi7yeygatsgoy9dRrBbIMMDB3Mo/xhHC04wPHCw2iGJDk5S\n4NsU7dMLi2IhuSTFJtuXOhjbOHHxMkv+eojVu9NwctTz+Iw+vPjIEEle2oHUsgySSi4Q7d2LSM8w\ntcMRdjAjYio6jY6vUzdhspjUDkd0cHedwKSnp7dhGO1fH6mD6VAuldawbOVJ3lx5kstltUwZFsqr\nT4xkTP8gNBqN2uEJZPSlK/Jz9mFs95Fcri1mX+5htcMRHVyrCcz3vve9qy6/++671p9ffvll20TU\nTl1ZVsA288F4uBjo7ufKRZkP5p7UNZhZszuVlz48yLcXLxMV6sUr3x/Ogsm9cHGSM6btRXp5JmeL\nz9Pbqwc9vSLUDkfYUXz4JAw6AxvSt1Bnrlc7HNGBtZrAmExXD/EdOHDA+nNXa4Wzx7ICUUYv6hss\npOdV2GT7nZmiKBxLLuSlDw/y1d503Jz1/Oj+fvx84WBC/N3UDk9cQ0Zfui4PgztxoeMor69gR9Ye\ntcMRHVirCcy1Q+0tk5auOAxv69NI0Ubvxu3LaaQ7kl9czZ8/P8Hbq05RWllH/Agjv3tiJCP6duuS\nv6ftXWZ5NqeLkujpFecp2U8AACAASURBVEFv7x5qhyNUEGccj6uDC5szd1DVUK12OKKDuqMamK7+\nz6BP07pItlpWoHldJKmDuT119WZW7khhyV8Pcjq1mL7h3vzm8fuYF9sTZ0c5XdRerU9vGn2RWXe7\nLGe9M9PCJlFjqmVzxg61wxEdVKvv8mVlZezfv996uby8nAMHDqAoCuXl5TYPrr3xd/bDt2lZAbPF\njE6ra9Pte7g21sFcyJH5YFqjKApHzhfyn60XKKmow8fDkfmTejE0yr/LJ9ntXVZFDqcunyXSM5wo\n755qhyNUNL77KLZl7WZH9h4mho7By1HWHRN3ptUExsPD46rCXXd3d9555x3rz12NRqMh2qcXe3MP\nkVmRTYQNWj+jjF7kHKsiPa+CniHyB32t3MtV/GtzMucyStDrNMwcHcaMkeE4Gto2mRS2sSF9K9C4\n5pEkm12bg86BGRFT+FfSStanbWFh9Fy1QxIdTKsJzIoVK+wVR4cR7dObvbmHOFecbJMEJtrozbZj\nOSRllkgC00JNnYm/rz3DV7tSMFsU+kf6snByL7r5uKgdmrhNOZV5nCg8TbiHkeim07GiaxsROJQt\nmTvZn3eYOON4urn4qx2S6EBaPUdRWVnJRx99ZL38n//8h9mzZ7N48WIuX75s69japeZlBWzVTi11\nMNcrr6rn5b8dYvWOi3i7O/LTuf3574cHSPLSwVhHXyJk9EU00ml1zIqMx6JY+Dp1k9rhiA6m1QTm\n5ZdfpqioCIC0tDTeeOMNnn/+eUaPHs3vfvc7uwTY3ly7rEBb83A1ENyiDqarsygKf113lqLyWu4f\nF8lvfzCCwb2k1qWjya3M59tLpzC6h9DXJ0rtcEQ7Msg/BqN7CMcunSSzIlvtcEQH0moCk5WVxc9+\n9jMANm3aRHx8PKNHj2b+/PlddgQGGruRbL2sQH2DhfR8mQ9m8+EsTqcWExPhw+P3x2BwkFqXjmhj\n+lYUFBl9EdfRaDTM7pEAwFcpG1WORnQkrSYwLi5XhugPHTrEyJEjrZe78ptQtJ3mg+nqp5HS88tZ\nuSMFD1cDj8/si1bbdX/nOrL8qgKOXTpJqFswMb591A5HtEPRPr2I9u7FueJkkksuqh2O6CBaTWDM\nZjNFRUVkZmZy/PhxxowZA0BVVRU1NTV2CbA9ivAw4qRz5JyNEpioUFnYsabOxF++PIPZovCDmX3w\ndDWoHZK4SxvTt6GgkCCjL6IV9/eIB+DLlI1dbqZ3cXda7UJ64oknmD59OrW1tTz11FN4enpSW1vL\nwoULmTdvnr1ibHealxU4efkMl2uK8HP2bdPtW+tgsku77HwwH3+TzKWSGhJGGImJaNvXV9hPQXUh\nRwq+pbtbEAP8+qkdjmjHwjxCGezfn+OFpzh5+QwD/WPUDqnLURSFBksDteY6ak21Td/rqGv6Xmuu\nbfpeR13T91pTLT28IogNHWv3eFtNYCZMmMCePXuoq6vDza1xPRknJyeee+45xo61f7DtSbRPL05e\nPsO54guM6972/2CjjF7kHqsiPb+Cnt27Vjv1vtN57D+TT0SQBw+Oj1Q7HHEPNjWPvsi8L+I2zIqc\nxonLZ/gqZSP9/fqi1XS9D293SlEU6i0NLRKO2hYJx5XEo+6qyy3u1+K6OnMdFuXOm0cqG6raXwKT\nm5tr/bnlzLuRkZHk5uYSHBxsu8jauf9v787jo6rP/YF/ZkkymawzySQhZCEJSSYQAUGUXZBVQFBA\nAgiVe6+2ltK+2tr7K7XXoi/q7U3Vti93pL3W4lWWsCoKghLBhSiLSGKSSULIvmeyTraZOb8/srAp\nspwzZ87k8/4HMglnnnAC85nzfc736R8rkNdYgKlDJ/zAV9+45OhgHD1dgfxS66AKMDWNNmz90AKd\ntwY/WTxyUF598hS1tnp8VXMGkX4RGG3i1Rf6YeF+YZgQMQ6fV32FrOrTmDjkDrlLkoRTcKKjpxNN\nXc1XBIvOK654fM9jV1wdEXBzS24alQY6rQ90Gh8YdcHw0fT+vv8xnVbX+1j/xxof+Gh9oNPo+h7r\n/dXPS54tLa4ZYO655x7ExcXBZOrdXOjKYY7/+te/pK3OjUk9ViB5oJG3CQsminpot2V3OPHa/hx0\ndTvw40UjEBbsK3dJdAsOlXwMp+DEvGEz+U6artv8uNn4suYMDpz/EHeEjYaXxkvukm5al6MbtbY6\nVLfXosZW2/drHWptdbALjps6platHQgTIb6GgaDRHzwuhpArHrvkY51GBx+tD7zUyp4Zd83q09PT\nsW/fPrS3t2PBggVYuHAhjEajq2pza71jBZLwWWWWJGMFgvy8MSREj4LywTMXadcnRSipbsXk2yIw\nYUSE3OXQLajvaMSX1acRoQ/D7WG3yV0OKYhBF4y7h07CR2XHcLzyBO6Jnip3SdckCALaetpR3V6D\nalsdatprUW3rDSqNnVffSarT+CDSfwhC/YOhdmp/4KqHbuBxn75ftQoPHWK65t/E4sWLsXjxYlRV\nVWHPnj146KGHMHToUCxevBizZ8+GTqdzVZ1uKaUvwEg5VuDomQqUVLciwcOXkb4pasChL8sQbtTj\nodlJcpdDt+jDvqsv9/LqC92EOcNm4LPKL3HowseYNGQ8dFr5X2ucghMNHVZU22pQc8VVFZv96rty\ng7wDkWQYjgi9CeF+YYjQhyHCLwxB3oFQqVQwmQJQV8e9vm7FdUW5IUOGYN26dVi3bh127tyJP/7x\nj3j66adx8uRJqetza8mGBKigQm5jAebHzRb/+DHBOHqmdy6SJweY5rYu/OPAt9BqVHhs0UjovPkO\nQ8kaOqz4ouokwvUmjA0fLXc5pED+Xn6YFXM33is+hI/KjmOBBP+/fp9uRzdqbPWo6buiUm2rRU17\nLWo76mF32i/7WrVKDZNvCIYHxyPCLwzhetPAr75aLoFL7bpeKVpaWrB//37s3r0bDocDP/nJT7Bw\n4UKpa3N7ei89hgVG40JLKTrsHaL/wA6GPhinIGDLe9+i1daDlTMTERsx+Kace5oPS4+y94Vu2Yzo\nKfik/DN8VPoJpg2diABvf9GOfXHZp+8qiq0WNe29YeW7ln18NN6I9ItAeN9VlIi+oBLqG8IlHRld\n82/+008/xa5du5CdnY05c+bgf/7nf5CUxMv7lzIbE1HcUgqLtUj0fQsGQx/MoaxSfHvBilEJIZh1\nR5Tc5dAtsnY24YvKr2DyDcG4MF59oZun0/pgXtxM7LTsw6GSj7EscdENH8MpONHYaUV1f19Ke+1A\nn0q73XbV1wd6ByApOGFgySfcz4QIfRiCfYK4DYAbumaAeeSRRzBs2DCMHTsWjY2NeOONNy77/J/+\n9CdJi1MCszEJH1z4CHmNBZJsvOTJfTBFlc3Yfew8gvy98e8LUvgfhAf4sCQTDsGBucNmin5nHg0+\nUyLvwselx3C8/AvMiJqKEF/Dd35dt6MHNbY61AyElIt3+/Rcseyjggom3xDEBw/rCym9V1TC9WHQ\ne3HZR0muGWD6b5O2Wq0wGC7/wSkv59RQwAVjBfr6YPLLmjwqwNg67di8LwdOp4AfLxyBQD1HBShd\nU1czPq/MQqjOiDvDb5e7HPIAWrUWC+Pn4s1vt+H94sN4YPiCS66kXLyq0tjZdNVeKN5qL0T4hfeG\nlL6ln3C9CSZ9qOJvH6Ze1zyLarUav/rVr9DV1QWj0YjNmzcjNjYWb731Fl5//XUsWbLEVXW6LanH\nClyci2TF/Ani3+kkB0EQsPXDfNQ3d2LBxFikDOOt+Z7gcEkm7IIDc4fdw6svJJo7wsfgcEkmTlSf\nxInqq28cCfD2x/DguIt3+vTf7eMTyB4sD3fNAPPXv/4V//znP5GQkICPPvoIf/jDH+B0OhEUFISd\nO3f+4MEtFgvWrVuHtWvXYvXq1fjFL34Bq7W3QaqpqQljxozBpk2b8Pe//x0HDx6ESqXC+vXrcffd\nd4vz3blIioRjBYL8fTyuD+azc9XI+rYGCUMDsXhKnNzlkAiau1rwWWUWjDoD7owYK3c55EHUKjWW\nJ92PjIL9MOiCeq+mXLL0o5dpF1iS3w9egUlISAAAzJw5E3/605/w29/+FrNn//AtbTabDZs2bcLE\niRdvn3nhhRcGfv+73/0ODz74IMrKyvD+++9j27ZtaGtrw6pVqzBlyhRoNMp5B2c29jY25zVapBkr\nEGNA5pkKlNS0IiFS2ctIVQ3teOtwPnx9tPjJfRwV4CmOlH6CHqcdc2Nn8K4MEl2iIR6/u/OXcpdB\nbuaarx5XNlUOGTLkusILAHh7e2PLli0ICwu76nPnz59Ha2srRo0ahaysLEydOhXe3t4wGo0YOnQo\nCgsLb+BbkJ/JNwQhOuPAWAGxmWN6l5HyS5tEP7Yr9did2LwvB909Tqy914xQjgrwCE2dLThecQIG\nn2BM8NDZNUTkfm7o7e+N3CWi1Wq/d6fef/3rX1i9ejUAoL6+/rLxBEajEXV1dTdSlux6xwokosPe\niZJW8ZubL+2DUbKdmYUorW3DtNFDMN58dbAlZXov/wh6nD2Yw6svRORC1/zf5syZM5g+ffrAxw0N\nDZg+fToEQYBKpUJmZuYNP2F3dzdOnTqFp5566js/f+nAyO9jMOih1Uq3xGQy3fhmand1jsJnlVko\n6yrBXSLfTm0yBSAqzB9FFc0wGv2gUeCyy5ffVuPIyXJEh/vj5yvG3vRuuzdzbkg65c1VOFTwCYy+\nwVg0aoaiB+95Kv6bcV88N7fmmq8iBw8eFP0Jv/rqK4waNWrg47CwMBQXFw98XFNT853LTpeyWq/e\ngEgsNzufYohmKFRQ4WRZNu4OmyZ6XcMjA1Fe24aT2VWIjwwU/fhSsrZ24a9vn4ZWo8YjC0agtbkD\nNzMBhLND5OdwOlDUXIzs+jxkN+SixtZ7tXRR9L1oauwE0ClvgXQZ/ptxXzw31+daIe+aAWbo0KGi\nF3Pu3DmYzeaBjydMmIA33ngDP//5z2G1WlFbW4vhw4eL/rxSc8VYgcyvK5FfalVUgHE6BWx5Nwdt\nHT14aHYSosPE2w6cXKOtux05Db2BJbfRgg57b0jxVnthVOhITI2/Ayl+I2SukogGG8kWrLOzs5Ge\nno6KigpotVocOnQIL774Iurq6hATEzPwdZGRkVi+fDlWr14NlUqFp556Cmq18pZIgN67kaQaK5Ac\n098H04R7FbQfzPsnSpBX2oTbE0Nxz1jxAzGJTxAEVLZX41x9LnIaclHcXDqwSVhI323SqSEpSAyO\nh5fGi+8kiUgWkgWY1NRUbN269arHn3zyyaseW7NmDdasWSNVKS6TYkzCBxeOIFeCsQLB/j6IMOph\nKW+Cw+mERgEhr7C8GXuPF8MQ4IN/m89RAe6s29EDi7UQ2Q15yK7PhbWr9443FVSIDxqG20JTMDLE\njCF+4TyPROQWeMuAiIYFRkOn0Uk2VsAcE4zMrytRUt3m9stIts4ebN6fAwECfnzfCPj7srnT3Vg7\nmwYCS761ED3OHgCAXuuLO8LHIDUkBSNCkuHHjcKIyA0xwIhIo9Yg2ZCAs1KNFVBIH4wgCPjnwXw0\ntHRi0eRhSI757gFs5FpOwYmSljJk1+ciuyEP5W2VA5+L8AvHbSEpSA1NQVxgDEcBEJHbY4ARmdmY\niLMSjRVQSh/MsbOVOJlXi8SoINw3eZjc5QxqHfZO5DZakF2fi5yGPLT1tAMAtCoNUoxJSA1NQWpI\nCkJ9OY+KiJSFAUZkUo4VCPb3Qbib98FU1LfjnSMF8NNp8eP7RrpljZ6u1laH7PpcnGvIQ2HTeTgF\nJwAg0DsAk4aMR2poCpINidBpfWSulIjo5jHAiOzKsQJiX4o3xwTjk68rUVrThrgh7rWM1N3jwOZ9\n2ei2O/HofSMQEvTdOzGTuOxOO4qaLiC7IRfZDbmotdUPfC4mIAqpoSm4LSQFUQGRnM5LRB6DAUZk\nKpUKKcZEfFqZhZLWcsQHibvUk9wXYPJKrW4XYHYcLUR5XTum3z4U45I5KkBKrd1t+LYhH+cacpHb\nYEGno29vFo03RptSkRqSgpEhyQjyca+fESIisTDASCDFmIRPK7OQ22gRP8BE9zbE5pc24d673KcP\n5rSlDh+frsDQUD+suEd5GxG6O0EQUNFW1XuVpT4XF1rKLtmbxYi7hozDbSEpGG6IhxfnERHRIMD/\n6SSQZBgOFVTIa7RgQdz1Te++XoaAvj6YMvfpg2ls6cQb7+fCS6vGY4tHwtuLd7CIodvRjfxL9mZp\n6moGAKhVaiQED0NqSApuC01BuD6Me7MQ0aDDACMBvZcvhgXG4EJLmSRjBdypD8bpFPD6u9+ivdOO\nH81NxlATRwXcit69WXIv2ZvFDgDw0+oxPvx2pIamYIQxCXruzUJEgxwDjETMxkQUt5RINlbAXfpg\n3vv8AixlTRiXbMLdYyJlrUWJnIITFwb2ZslFRVvVwOci/SKQ2rcDLvdmISK6HAOMRKQcK+AufTCW\nsibs+6wYIYE+WHuvmcsY16nL0d07HPHKvVnUWowwJvftzWJGCPdmISL6XgwwEpFyrIAhwAfhBl8U\nyLgfTFtHD15/NwcA8ONFI+Gn46iA6/FNXQ62W/YO9LMEeQdgcuSdSA1JQbIxET4ab5krJCJSBgYY\niVw6VqDO1gCTXvyxAsfOytMHIwgC/vlBHhpbunD/1DgkRgW79PmVqLmrFTsL9uFM7TfQqjSYHTMd\nY8NHIdp/KK9cERHdBAYYCZmNSThbn4M8qwUm/URxjx0TjGNnK5Ff2uTyAJN5pgKnLXVIjg7GwonD\nXPrcSiMIAr6oOondhe+hw96B+KBYrDIvwxC/cLlLIyJSNAYYCaX0jRXonYskboDpH5CYV2rFvLti\nRD32tZTXtuGdjwrhp9Pi0ftGQK3m1YPvU2drwNv5u2CxFsJH4420pPsxZegE7oZLRCQCBhgJmfQh\nCNUZkd8o/lgBOfpgunoceG1/DuwOJ356/0gYAzkq4Ls4nA58XHYcB4oPo8fZg9SQFKxIfgAGHZfa\niIjEwreCEjMbE9Hp6ERJa7nox06OMaCjy4HSmjbRj/1dtn9UgMr6dswcG4XbE00ueU6lKWutxLOn\nXsLeovfho/HGv49chcdGrWV4ISISGQOMxC4uI4l/N5I5pvdFMb+0SfRjX+lkXi0yv65ElMkfy+9J\nkPz5lKbb0YN9RR/gzydfQFlrBe6KGIcnJ/wG48LHsEmXiEgCXEKSmJRjBfr7YPIl7oOpb+7APz/I\ng7dX76gALy03VLuUxVqEt/MyUNfRgBCdASvNSweCKxERSYMBRmKXjhWw9XRA7yXeWAFDgA/CDL6w\nlDfB6RQkaah1OJ14/d1vYeuyY+29ZkSG+on+HEpl6+nAnsID+LzqS6igwj3RU7Ewfi73ciEicgEG\nGBdI6R8r0FSEMSLvytt7O3UVSmtbMSxC/Nup9396AYXlzbgzJQxTRw0R/fhK9XXtOWy37EVLdyuG\n+g/BQ+ZliA2MlrssIqJBgz0wLpASIl0fzMDt1CXi98HklVjx3ucXEBqkw4/mclQAADR1NWPLuX9h\nS/ZW2OwduC9+Hn57xy8YXoiIXIxXYFwgNqB3rEBegwQBJrq/kVfcPphWWzdefzcHKpUKP1k0Enrd\n4P5REQQBn1d+iT1FB9Bh78Tw4DisSl6KcL8wuUsjIhqUBverkoto1BokG4fjbF226GMFjIE60ftg\nBEHAG+/noamtG0vvjkfC0CARKlWuWlsd3s7bhYKm89BpdFiZvASTIu/khnRERDJigHERsyERZ+uy\nJRwrIF4fzEenyvF1YT1SYg24d4J8067l5nA68FHpMRy4cBh2px2jQkciLfl+BPsM7kBHROQOGGBc\nRNKxAtEGHDtbhbySplsOMKU1rdhxtBD+vl54ZOEIqAdp30tpSzn+Ly8D5W2VCPD2x/Kk+3G76Tb2\nARERuQkGGBeRcqxAct+Gdpayplvqg+nqduC1fTmwOwQ8sjAFhgAfsUpUjG5HN94r/hAflx6HAAGT\nhozHA8MXQO+ll7s0IiK6BAOMC5lDkvBpxQmUtJYhPmiYaMc1BuoQFuyL/LJb64N5+4gF1Y02zL4j\nGqMSQkWrTynyGgvwTt4u1Hc2ItQ3BKuSlyLZOFzusoiI6DuwC9GFBpaRpLgbKSYYHV12lNXe3Fyk\nL3NrcPybKsSE+2PZ9ME1KqC9x4atuTvw4tdb0NjVhNkx0/H7O3/F8EJE5MZ4BcaFkoIToFapkdtY\ngAXxc0Q9tjnGgOPfVCGv1IrYiIAb+rN1TR1482AefLw0eGxxKry0gyPXCoKAM3XnsMOyF63dbYj2\nj8SqlGWICYiSuzQiIvoBDDAu1DtWIFqSsQLJlwx2nHvn9ffB2B1ObN6fg44uB/5jQQoijIOj18Pa\n2YTtlr04V/8tvNRa3J8wH/dETxW1N4mIiKTDAONiZkMizjeLP1bgZvtg9h4vxvnKFkwYGY5JqRGi\n1eOunIITn1ZkYV/R++h0dCEpOAErzUsRph98PT9EREo2ONYK3IiUYwWSbrAPJudCIz44UYKwYF+s\nmZPs8bcIV7fX4m+nX8N2yx6oVCo8ZF6GX9z+Y4YXIiIF4hUYF5NyrIA5JhifflOF/Ovog2lp78bf\n3/0WarUKP1k8Er4+nvujYHfacaT0E3xQfAR2wYExptuwPGkxgnzEH35JRESu4bmvWm5KyrECydF9\ngx1LmzDnGn0wTkHAPw7korm9Gw/OSEDcEM99Ib/QUor/y81AZXs1grwDsDz5AdEnghMRketJGmAs\nFgvWrVuHtWvXYvXq1ejp6cGGDRtQUlICPz8/vPDCCwgKCsJf//pXZGVlQRAEzJo1C48++qiUZcku\nxdg7ViC3UdyxAiFBOpiCdbD8QB/Mka/KcO58A0bGGW+o4VdJuhzdeO/8IRwt+xQCBEyJvAuLE+aL\n2jhNRETykSzA2Gw2bNq0CRMnXnyB3rFjBwwGA55//nls374dJ0+eRHR0NLKysrBt2zY4nU4sWLAA\n999/P0wmk1Slya5/P5i8RgumRYk8ViDGgE+/qUJZbdt3LiOVVLdiZ2YRAvVeeGRBikeOCvi2IR/b\n8nejodOKMN9QrDIvRaJhcO1tQ0Tk6SQLMN7e3tiyZQu2bNky8NjRo0fxi1/8AgCQlpYGAKiqqkJX\nVxe6u7vhcDigVqvh6+vZ75JDfUMQ6huCfGuR6GMFrtUH09Flx2v7suFwCnhk4QgE+XvWqIC2nnbs\nKngXX1afhlqlxtzYe3DvsJnw0njJXRoREYlMsgCj1Wqh1V5++IqKChw7dgzPPvssQkNDsXHjRgwZ\nMgTz5s3DjBkz4HA48LOf/Qz+/v5SleU2zMZEScYKXKsP5u3DFtRYOzDvzhikxovXeyM3QRBwquZr\n7CzYj7aedsQEDMVD5gcRFRApd2lERCQRlzbxCoKAuLg4rF+/Hq+88go2b96MVatW4fDhwzhy5Ajs\ndjtWrFiB+fPnIyTk+19gDQY9tFrpNhwzmW5sJ9ubMaFrdG+A6SzBXcNvE+24JlMAIkL0KKhohjHE\nH5q+PpjMU2X4LLsaidHB+PHS0YrdbffKc1Pf3oh/nHoHp6uy4a3xwo/GLMW9iTO4IZ2LueLfDN0c\nnhv3xXNza1waYEJDQzF+/HgAwJQpU/Diiy/i3LlzGD169MCyUXJyMiwWy2W9M1eyWm2S1WgyBaCu\nrlWy4/cLV0dCrVLjVFk2ZoTfLeqxh0cG4dNzVfj62yrEhAeg1mrDSxlnofPW4D/mm9FkbRf1+Vzl\n0nPjFJw4VvEF9hd9gC5HN8yGRKw0L0GobwgaG6T7+aCruerfDN04nhv3xXNzfa4V8lz6NnzatGk4\nfvw4ACAnJwdxcXGIiYlBdnY2nE4nenp6YLFYEB0d7cqyZHFxrEApbD0doh67f6xAXmkT7A4nXtuX\ng65uB9bMTUaYQfmjAqraa/CXU69ip2UfNCoN1qQsx/oxjyDU13OWxYiI6NokuwKTnZ2N9PR0VFRU\nQKvV4tChQ3juuefwzDPPICMjA3q9Hunp6QgNDcXkyZOxatUqAMCyZcsQFTU4humZjUm9YwWshRgT\nJt4y0sW5SFY0tXbhQnUrJqdGYOJIZY8K6HH04EDxYRy68DEcggPjwkZjWdIiBHrzMiwR0WCjEgRB\nkLuIGyXlZTdXXtY731yC50+9jCmRd2Gleamox/5/r36OprZu2B1OhBt8sfHfxkPnrdx9C4ubS7Ct\nYDfKW6oQ7BOEFckP4LbQEXKXReClcHfGc+O+eG6uz7WWkJT7iuYBYgOi4KvVIa+xQPRjm2MM+PRc\nFTRqFR5bnKro8FLVXoO/nX4NdsGBaUMnYVHCPPhqdXKXRUREMlLmrSgeQqPWINkwHPWdjaizNYh6\n7NHDewcULp8x/AfnIrkzp+DEO3m7YRcc+PWkR5GWfD/DCxERMcDIzWxMBCD+dOqxSaF4/meTMXu8\nshuiT1SdQlFzMcaYUjEheqzc5RARkZtggJHZpWMFxKRSqWAIUPZOu63dbdhbeAA+Gm8sS1wkdzlE\nRORGGGBkduVYAbpoT+EBtNttuC9+Hgy6YLnLISIiN8IA4wZSjEnodHTiQkuZ3KW4jfzGQmRVn0JM\nwFDcHTVJ7nKIiMjNMMC4gRSJ+mCUqsdpxzbLbqigwsrkpVCr+GNKRESX4yuDG0gyJECtUoveB6NU\nH5YcRa2tHtOjJiMmcHBsakhERDeGAcYN+Gp9MSwwBhdaykQfK6A0Ne21+PDCxwj2CcLC+Dlyl0NE\nRG6KAcZNmI2JECDAYi2UuxTZCIKAbZa9sAsOPJi0GDru90JERN+DAcZN9N9OPZj7YL6sPg2LtRC3\nhaZgdOhIucshIiI3xgDjJvrHCuQ2WqDA8VS3rK2nHbsL34O32gsPJt4PlUold0lEROTGGGDcRP9Y\ngYZOK+o6xB0roAT7Ct9HW087FsTPQYivQe5yiIjIzTHAuBGzRLvyurvCpmJ8XvUVhvoPwYyoKXKX\nQ0RECsAA40Yusnh08QAAEvdJREFU9sGIP53aXdmddryTt2tgzxeNWiN3SUREpAAMMG4k1NcIk28I\nLINorMCR0mOottVi6tAJiAuKkbscIiJSCAYYN2MeRGMF6mwNOHjhCAK9A7AoYZ7c5RARkYIwwLiZ\nwTJWQBAEbLfsQY/TjmWJi+Cr9ZW7JCIiUhAGGDczWMYKnKo9i9xGC0YYkzE2bJTc5RARkcIwwLiZ\ny8cK2OQuRxK2ng5kFOyHl1qLtGTu+UJERDeOAcYNpfSNFci3FsldiiT2nf8Ard1tmD9sNkJ9Q+Qu\nh4iIFIgBxg158liB880l+KwiC0P8wjEzZprc5RARkUIxwLihmIAo+Gp9kedhYwUcTgfeydsFAQL3\nfCEiolvCAOOGPHWswMdlx1HZXo3JkXciIXiY3OUQEZGCMcC4KXPf7dSecjdSQ0cjDhQfhr+XHxYn\nzJe7HCIiUjgGGDflSWMFBEHADste9Dh7sDTxPvh56eUuiYiIFI4Bxk1dHCtQqPixAl/XZSO7IQ/J\nhuEYH3673OUQEZEHYIBxYynGJHQ6ulDcUip3KTetw96JnZZ90Kq1WJH8APd8ISIiUTDAuDFz3zKS\nkvtg3j1/CM3dLZgbOwNhepPc5RARkYdggHFjF8cKKLMPpqSlDMfKP0e43oTZsTPkLoeIiDwIA4wb\n89XqEKfQsQKX7vmyInkJvNRauUsiIiIPwgDj5swKHSvwScXnKGurxISIO5BkSJC7HCIi8jAMMG5O\niWMFrJ1NeO/8Ifh56fHA8AVyl0NERB6IAcbN9Y8VyFXQWIGdln3ocnTjgYQF8Pf2k7scIiLyQAww\nbq5/rEBjpxV1HfVyl/ODztbl4Gx9DoYHx2HCkDvkLoeIiDwUA4wCpPSNFXD3XXk77V3YadkHjUqD\nlclLuecLERFJRtIAY7FYMGvWLLz11lsAgJ6eHjz++ONYtmwZHn74YTQ3NwMA8vLysGTJEixZsgQv\nv/yylCUp0sX9YNw7wBwo/hDWribMjp2OCL8wucshIiIPJlmAsdls2LRpEyZOnDjw2I4dO2AwGJCR\nkYH58+fj5MmTAIAnn3wSmzZtQkZGBoqKitDR0SFVWYoU6mtEmG+oW48VKGutQGb5ZzD5hmBu7D1y\nl0NERB5OsgDj7e2NLVu2ICzs4jvxo0ePYtGiRQCAtLQ0zJw5E/X19bDZbBg5ciTUajX+8pe/wNfX\nV6qyFMtsTHTbsQJOwYl38nbDKTixInkJvDVecpdEREQeTrLdxbRaLbTayw9fUVGBY8eO4dlnn0Vo\naCg2btyIiooKBAUFYcOGDbhw4QLmzZuHtWvXXvPYBoMeWq1GqtJhMgVIduybdVf3aByr+AKlnSWY\naBoldzmXOViQiZLWMkyJGY+pyWMlfS53PDfE8+LOeG7cF8/NrXHp9qiCICAuLg7r16/HK6+8gs2b\nN2Pu3LkoLy/Hyy+/DJ1Oh7S0NEyePBmJiYnfexyrVbpdaU2mANTVtUp2/JsVro6EWqXGqfJs3BMx\nXe5yBjR1NePts/vgq/XFgph5kv7dueu5Gex4XtwXz4374rm5PtcKeS69Cyk0NBTjx48HAEyZMgWF\nhYUICQlBYmIiDAYDfH19MW7cOBQUuHezqhz6xwqUtJSh3Y3GCmQUvItORyfuT7gXgd58N0FERK7h\n0gAzbdo0HD9+HACQk5ODuLg4REdHo729HU1NTXA6ncjNzUV8fLwry1KMFGNS31iBQrlLAQBk1+fi\nTO03iA+KxaTIO+Uuh4iIBhHJlpCys7ORnp6OiooKaLVaHDp0CM899xyeeeYZZGRkQK/XIz09HQDw\nu9/9Do8++ihUKhWmTp0Ks9ksVVmKZjYm4b3iD5HXWICxYfL2wXQ7urHDshdqlRorkpdAreKWQkRE\n5DqSBZjU1FRs3br1qsdfeOGFqx4bPXo0du7cKVUpHiM28PKxAnJuFPd+8RE0dFoxO2Y6hvoPka0O\nIiIanPi2WUHUKjXMbjBWoKKtCh+VHUOIzoD5cbNkq4OIiAYvBhiFMcs8VuDSPV/Skh+At8ZbljqI\niGhwY4BRmP6xArmNFlme//PKL1HcUoLbw0ZhZAh7lYiISB4MMAoj51iBlu5W7C36ADqNDssS73Pp\ncxMREV2KAUaBzMYkdDm6XT5WYFfBu+iwd2BRwjwE+wS59LmJiIguxQCjQCl9fTB5LlxGym204GTN\n14gNiMbUoRNc9rxERETfhQFGgRINCVCr1C5r5O129GB7/h6oVWqsNC/lni9ERCQ7vhIpUO9YgViX\njRU4VPIx6joaMD1qMqIDIiV/PiIioh/CAKNQKcZEl4wVqG6vweGSTBh8grEgbo6kz0VERHS9GGAU\nqv92ain7YARBwDv5u+EQHFietBg6rY9kz0VERHQjGGAU6uJYgQIIgiDJc5yoOonCpmKMDh2JUaaR\nkjwHERHRzWCAUahLxwrUSjBWoK27HXuKDsBH440HkxaLfnwiIqJbwQCjYCkDy0ji3420u/A9tPfY\nsDB+Lgy6YNGPT0REdCsYYBTs4lwkcftgLNYiZFWfQrR/JO4eOknUYxMREYmBAUbBQnyNCNOLO1ag\nx2nHtvzdUEGFleal0Kg1ohyXiIhITAwwCmc2iDtW4HDJUdTY6jAtahJiA6NFOSYREZHYGGAULkXE\nZaRaWx0OlRxFkHcg7oufe8vHIyIikgoDjMJdHCtwawFGEARsy98Du9OOB5MWw1erE6lCIiIi8THA\nKFz/WIHSlvJbGivwVc0Z5FsLkRpixhhTqogVEhERiY8BxgOkGJNuaaxAe48NuwrehZfaC8uT7odK\npRK5QiIiInExwHiAlJDePpibHSuwt/B9tPW0Y0HcbIT4GsUsjYiISBIMMB4gJiAK+pscK1DYVIzP\nq75EpF8E7omeKlGFRERE4mKA8QBqlRrJxsQbHitg554vRESkUAwwHiLFcOO3U39UegxV7TWYPPQu\nxAfFSlUaERGR6BhgPET/WIHr7YOp72jABxeOIMDbH4vj75WyNCIiItExwHiIi2MFin5wrED/ni89\nTjuWJS6C3svXRVUSERGJgwHGg6QYr2+swOnas8httCDFmIRxYaNdVB0REZF4GGA8SIoxCcC1+2Bs\nPR3IKHgXXmot0pIe4J4vRESkSAwwHiQxOP4HxwrsP38QLd2tmDdsFkz6EBdWR0REJB4GGA+i0+oQ\nH/T9YwWKm0vxacUJRPiFY1bMNBkqJCIiEgcDjIcxG757rIDD6cA7+bsgQMDK5CXQqrUyVUhERHTr\nGGA8TP9YgdyGy5eRjpZ/ioq2KkwaMh7Dg+PkKI2IiEg0DDAe5uJYAcvAWIGGDisOnP8Q/l5+WDx8\nvswVEhER3ToGGA/TP1bA2tWE2o56CIKAHZa96Hb2YMnwhfD38pO7RCIiolvGAOOBUowXxwqcrctG\ndkMukoITcGfEWJkrIyIiEoekAcZisWDWrFl46623AAA9PT14/PHHsWzZMjz88MNobm6+7Ot//etf\nY8OGDVKWNCiYDb37wXxdew47C/ZDq9JgRTL3fCEiIs8hWYCx2WzYtGkTJk6cOPDYjh07YDAYkJGR\ngfnz5+PkyZMDn/vss89QWnrtHWTp+oT4GhCuN6Gg6TyaupoxJ3YGwv3C5C6LiIhINJIFGG9vb2zZ\nsgVhYRdfOI8ePYpFixYBANLS0jBz5kwAQHd3N1599VX89Kc/laqcQad/uGOYPhRzYmfIXA0REZG4\nJNsMRKvVQqu9/PAVFRU4duwYnn32WYSGhmLjxo0IDg7G5s2bsXLlSvj7+1/XsQ0GPbRajRRlAwBM\npgDJju0q8zTTYGkqxE/vXINIk1HuckTjCefGE/G8uC+eG/fFc3NrXLqbmSAIiIuLw/r16/HKK69g\n8+bNSEtLQ3Z2Nn7+858jKyvruo5jtV69y6xYTKYA1NW1SnZ8VwmEEf91528AwCO+H8Bzzo2n4Xlx\nXzw37ovn5vpcK+S59C6k0NBQjB8/HgAwZcoUFBYWIjMzE5WVlVi+fDmefvppZGZmYsuWLa4si4iI\niBTGpVdgpk2bhuPHj2Pp0qXIyclBXFwc1q5di7Vr1wIAsrKysGfPHjz66KOuLIuIiIgURrIAk52d\njfT0dFRUVECr1eLQoUN47rnn8MwzzyAjIwN6vR7p6elSPT0RERF5MJXQv9+8gki5bsh1SffFc+Oe\neF7cF8+N++K5uT5u0wNDREREJAYGGCIiIlIcBhgiIiJSHAYYIiIiUhwGGCIiIlIcBhgiIiJSHAYY\nIiIiUhwGGCIiIlIcBhgiIiJSHEXuxEtERESDG6/AEBERkeIwwBAREZHiMMAQERGR4jDAEBERkeIw\nwBAREZHiMMAQERGR4jDAXOK///u/kZaWhhUrVuCbb76Ruxy6xJ///GekpaVh6dKl+PDDD+Uuhy7R\n2dmJWbNmYffu3XKXQpfYv38/Fi1ahCVLliAzM1PucghAe3s71q9fjzVr1mDFihU4fvy43CUpmlbu\nAtzFl19+iZKSEmzfvh1FRUV44oknsH37drnLIgAnTpxAQUEBtm/fDqvVigceeABz5syRuyzq8+qr\nryIoKEjuMugSVqsVL7/8Mnbt2gWbzYYXX3wR06dPl7usQW/Pnj2Ii4vD448/jpqaGjz88MM4ePCg\n3GUpFgNMny+++AKzZs0CACQkJKC5uRltbW3w9/eXuTIaP348Ro0aBQAIDAxER0cHHA4HNBqNzJVR\nUVERCgsL+eLoZr744gtMnDgR/v7+8Pf3x6ZNm+QuiQAYDAbk5+cDAFpaWmAwGGSuSNm4hNSnvr7+\nsh8mo9GIuro6GSuifhqNBnq9HgCQkZGBadOmMby4ifT0dGzYsEHuMugK5eXl6OzsxGOPPYZVq1bh\niy++kLskArBgwQJUVlZi9uzZWL16NX7729/KXZKi8QrM9+CEBfdz5MgRZGRk4H//93/lLoUA7N27\nF2PGjEF0dLTcpdB3aGpqwksvvYTKykr86Ec/wtGjR6FSqeQua1Dbt28fIiMj8Y9//AN5eXl44okn\n2Dt2Cxhg+oSFhaG+vn7g49raWphMJhkroksdP34cr732Gv7+978jICBA7nIIQGZmJsrKypCZmYnq\n6mp4e3sjIiICkyZNkru0QS8kJAS33347tFotYmJi4Ofnh8bGRoSEhMhd2qB2+vRpTJkyBQBgNptR\nW1vL5fBbwCWkPpMnT8ahQ4cAADk5OQgLC2P/i5tobW3Fn//8Z2zevBnBwcFyl0N9/va3v2HXrl3Y\nsWMHHnzwQaxbt47hxU1MmTIFJ06cgNPphNVqhc1mY7+FG4iNjcXZs2cBABUVFfDz82N4uQW8AtNn\n7NixGDlyJFasWAGVSoWNGzfKXRL1ef/992G1WvHLX/5y4LH09HRERkbKWBWR+woPD8fcuXOxfPly\nAMB//dd/Qa3m+1W5paWl4YknnsDq1atht9vx1FNPyV2SoqkENnsQERGRwjCSExERkeIwwBAREZHi\nMMAQERGR4jDAEBERkeIwwBAREZHiMMAQkaTKy8uRmpqKNWvWDEzhffzxx9HS0nLdx1izZg0cDsd1\nf/3KlSuRlZV1M+USkUIwwBCR5IxGI7Zu3YqtW7di27ZtCAsLw6uvvnrdf37r1q3c8IuILsON7IjI\n5caPH4/t27cjLy8P6enpsNvt6OnpwR/+8AeMGDECa9asgdlsRm5uLt58802MGDECOTk56O7uxpNP\nPonq6mrY7XYsXrwYq1atQkdHB371q1/BarUiNjYWXV1dAICamhr85je/AQB0dnYiLS0Ny5Ytk/Nb\nJyKRMMAQkUs5HA4cPnwY48aNw3/+53/i5ZdfRkxMzFXD7fR6Pd56663L/uzWrVsRGBiI559/Hp2d\nnZg/fz6mTp2Kzz//HDqdDtu3b0dtbS1mzpwJAPjggw8QHx+Pp59+Gl1dXdi5c6fLv18ikgYDDBFJ\nrrGxEWvWrAEAOJ1O3HHHHVi6dCleeOEF/P73vx/4ura2NjidTgC94z2udPbsWSxZsgQAoNPpkJqa\nipycHFgsFowbNw5A72DW+Ph4AMDUqVPx9ttvY8OGDbj77ruRlpYm6fdJRK7DAENEkuvvgblUa2sr\nvLy8rnq8n5eX11WPqVSqyz4WBAEqlQqCIFw266c/BCUkJODAgQP46quvcPDgQbz55pvYtm3brX47\nROQG2MRLRLIICAhAVFQUPvnkEwBAcXExXnrppWv+mdGjR+P48eMAAJvNhpycHIwcORIJCQk4c+YM\nAKCqqgrFxcUAgHfffRfnzp3DpEmTsHHjRlRVVcFut0v4XRGRq/AKDBHJJj09HX/84x/x+uuvw263\nY8OGDdf8+jVr1uDJJ5/EQw89hO7ubqxbtw5RUVFYvHgxPv74Y6xatQpRUVG47bbbAADDhw/Hxo0b\n4e3tDUEQ8Oijj0Kr5X97RJ6A06iJiIhIcbiERERERIrDAENERESKwwBDREREisMAQ0RERIrDAENE\nRESKwwBDREREisMAQ0RERIrDAENERESK8/8BF5eI/wp1N7EAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "65sin-E5NmHN",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 5: Evaluate on Test Data\n",
+ "\n",
+ "**In the cell below, load in the test data set and evaluate your model on it.**\n",
+ "\n",
+ "We've done a lot of iteration on our validation data. Let's make sure we haven't overfit to the pecularities of that particular sample.\n",
+ "\n",
+ "Test data set is located [here](https://download.mlcc.google.com/mledu-datasets/california_housing_test.csv).\n",
+ "\n",
+ "How does your test performance compare to the validation performance? What does this say about the generalization performance of your model?"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "icEJIl5Vp51r",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 34
+ },
+ "outputId": "d41935a7-a9fd-46ab-c836-58025e980c4a"
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_test_data = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_test.csv\", sep=\",\")\n",
+ "#\n",
+ "# YOUR CODE HERE\n",
+ "#\n",
+ "test_examples = preprocess_features(california_housing_test_data)\n",
+ "test_targets = preprocess_targets(california_housing_test_data)\n",
+ "\n",
+ "predict_test_input_fn = lambda: my_input_fn(\n",
+ " test_examples, \n",
+ " test_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ "test_predictions = linear_regressor.predict(input_fn=predict_test_input_fn)\n",
+ "test_predictions = np.array([item['predictions'][0] for item in test_predictions])\n",
+ "\n",
+ "root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(test_predictions, test_targets))\n",
+ "\n",
+ "print(\"Final RMSE (on test data): %0.2f\" % root_mean_squared_error)"
+ ],
+ "execution_count": 28,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Final RMSE (on test data): 166.49\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
From 11081467abecfaab4223d0501624e9638d931988 Mon Sep 17 00:00:00 2001
From: Amit Rai <42401957+ardev472@users.noreply.github.com>
Date: Sun, 17 Feb 2019 21:35:22 +0530
Subject: [PATCH 06/11] Created using Colaboratory
---
logistic_regression.ipynb | 1412 +++++++++++++++++++++++++++++++++++++
1 file changed, 1412 insertions(+)
create mode 100644 logistic_regression.ipynb
diff --git a/logistic_regression.ipynb b/logistic_regression.ipynb
new file mode 100644
index 0000000..1c6fe33
--- /dev/null
+++ b/logistic_regression.ipynb
@@ -0,0 +1,1412 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "logistic_regression.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "dPpJUV862FYI",
+ "i2e3TlyL57Qs",
+ "wCugvl0JdWYL"
+ ],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python2",
+ "display_name": "Python 2"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JndnmDMp66FL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "hMqWDc_m6rUC",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
+ "# you may not use this file except in compliance with the License.\n",
+ "# You may obtain a copy of the License at\n",
+ "#\n",
+ "# https://www.apache.org/licenses/LICENSE-2.0\n",
+ "#\n",
+ "# Unless required by applicable law or agreed to in writing, software\n",
+ "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
+ "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
+ "# See the License for the specific language governing permissions and\n",
+ "# limitations under the License."
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "g4T-_IsVbweU",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# Logistic Regression"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "LEAHZv4rIYHX",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objectives:**\n",
+ " * Reframe the median house value predictor (from the preceding exercises) as a binary classification model\n",
+ " * Compare the effectiveness of logisitic regression vs linear regression for a binary classification problem"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "CnkCZqdIIYHY",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "As in the prior exercises, we're working with the [California housing data set](https://developers.google.com/machine-learning/crash-course/california-housing-data-description), but this time we will turn it into a binary classification problem by predicting whether a city block is a high-cost city block. We'll also revert to the default features, for now."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "9pltCyy2K3dd",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Frame the Problem as Binary Classification\n",
+ "\n",
+ "The target of our dataset is `median_house_value` which is a numeric (continuous-valued) feature. We can create a boolean label by applying a threshold to this continuous value.\n",
+ "\n",
+ "Given features describing a city block, we wish to predict if it is a high-cost city block. To prepare the targets for train and eval data, we define a classification threshold of the 75%-ile for median house value (a value of approximately 265000). All house values above the threshold are labeled `1`, and all others are labeled `0`."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "67IJwZX1Vvjt",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Setup\n",
+ "\n",
+ "Run the cells below to load the data and prepare the input features and targets."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "fOlbcJ4EIYHd",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "from IPython import display\n",
+ "from matplotlib import cm\n",
+ "from matplotlib import gridspec\n",
+ "from matplotlib import pyplot as plt\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from sklearn import metrics\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.python.data import Dataset\n",
+ "\n",
+ "tf.logging.set_verbosity(tf.logging.ERROR)\n",
+ "pd.options.display.max_rows = 10\n",
+ "pd.options.display.float_format = '{:.1f}'.format\n",
+ "\n",
+ "california_housing_dataframe = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv\", sep=\",\")\n",
+ "\n",
+ "california_housing_dataframe = california_housing_dataframe.reindex(\n",
+ " np.random.permutation(california_housing_dataframe.index))"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "lTB73MNeIYHf",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Note how the code below is slightly different from the previous exercises. Instead of using `median_house_value` as target, we create a new binary target, `median_house_value_is_high`."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "kPSqspaqIYHg",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def preprocess_features(california_housing_dataframe):\n",
+ " \"\"\"Prepares input features from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the features to be used for the model, including\n",
+ " synthetic features.\n",
+ " \"\"\"\n",
+ " selected_features = california_housing_dataframe[\n",
+ " [\"latitude\",\n",
+ " \"longitude\",\n",
+ " \"housing_median_age\",\n",
+ " \"total_rooms\",\n",
+ " \"total_bedrooms\",\n",
+ " \"population\",\n",
+ " \"households\",\n",
+ " \"median_income\"]]\n",
+ " processed_features = selected_features.copy()\n",
+ " # Create a synthetic feature.\n",
+ " processed_features[\"rooms_per_person\"] = (\n",
+ " california_housing_dataframe[\"total_rooms\"] /\n",
+ " california_housing_dataframe[\"population\"])\n",
+ " return processed_features\n",
+ "\n",
+ "def preprocess_targets(california_housing_dataframe):\n",
+ " \"\"\"Prepares target features (i.e., labels) from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the target feature.\n",
+ " \"\"\"\n",
+ " output_targets = pd.DataFrame()\n",
+ " # Create a boolean categorical feature representing whether the\n",
+ " # median_house_value is above a set threshold.\n",
+ " output_targets[\"median_house_value_is_high\"] = (\n",
+ " california_housing_dataframe[\"median_house_value\"] > 265000).astype(float)\n",
+ " return output_targets"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "FwOYWmXqWA6D",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1205
+ },
+ "outputId": "a7b33b0c-ef9f-4f78-ce7e-51ffd6b614ea"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Choose the first 12000 (out of 17000) examples for training.\n",
+ "training_examples = preprocess_features(california_housing_dataframe.head(12000))\n",
+ "training_targets = preprocess_targets(california_housing_dataframe.head(12000))\n",
+ "\n",
+ "# Choose the last 5000 (out of 17000) examples for validation.\n",
+ "validation_examples = preprocess_features(california_housing_dataframe.tail(5000))\n",
+ "validation_targets = preprocess_targets(california_housing_dataframe.tail(5000))\n",
+ "\n",
+ "# Double-check that we've done the right thing.\n",
+ "print(\"Training examples summary:\")\n",
+ "display.display(training_examples.describe())\n",
+ "print(\"Validation examples summary:\")\n",
+ "display.display(validation_examples.describe())\n",
+ "\n",
+ "print(\"Training targets summary:\")\n",
+ "display.display(training_targets.describe())\n",
+ "print(\"Validation targets summary:\")\n",
+ "display.display(validation_targets.describe())"
+ ],
+ "execution_count": 4,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training examples summary:\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " latitude longitude housing_median_age total_rooms total_bedrooms \\\n",
+ "count 12000.0 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 35.6 -119.6 28.6 2644.2 540.8 \n",
+ "std 2.1 2.0 12.6 2155.4 419.2 \n",
+ "min 32.5 -124.3 1.0 2.0 1.0 \n",
+ "25% 33.9 -121.8 18.0 1463.0 296.0 \n",
+ "50% 34.2 -118.5 29.0 2139.5 436.0 \n",
+ "75% 37.7 -118.0 37.0 3161.2 653.0 \n",
+ "max 42.0 -114.5 52.0 37937.0 6445.0 \n",
+ "\n",
+ " population households median_income rooms_per_person \n",
+ "count 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 1428.5 502.5 3.9 2.0 \n",
+ "std 1114.8 382.9 1.9 1.1 \n",
+ "min 3.0 1.0 0.5 0.1 \n",
+ "25% 788.0 282.0 2.6 1.5 \n",
+ "50% 1168.0 410.0 3.5 1.9 \n",
+ "75% 1731.0 608.0 4.8 2.3 \n",
+ "max 28566.0 6082.0 15.0 52.0 "
+ ],
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "uon1LB3A31VN",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## How Would Linear Regression Fare?\n",
+ "To see why logistic regression is effective, let us first train a naive model that uses linear regression. This model will use labels with values in the set `{0, 1}` and will try to predict a continuous value that is as close as possible to `0` or `1`. Furthermore, we wish to interpret the output as a probability, so it would be ideal if the output will be within the range `(0, 1)`. We would then apply a threshold of `0.5` to determine the label.\n",
+ "\n",
+ "Run the cells below to train the linear regression model using [LinearRegressor](https://www.tensorflow.org/api_docs/python/tf/estimator/LinearRegressor)."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "smmUYRDtWOV_",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def construct_feature_columns(input_features):\n",
+ " \"\"\"Construct the TensorFlow Feature Columns.\n",
+ "\n",
+ " Args:\n",
+ " input_features: The names of the numerical input features to use.\n",
+ " Returns:\n",
+ " A set of feature columns\n",
+ " \"\"\"\n",
+ " return set([tf.feature_column.numeric_column(my_feature)\n",
+ " for my_feature in input_features])"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "B5OwSrr1yIKD",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):\n",
+ " \"\"\"Trains a linear regression model.\n",
+ " \n",
+ " Args:\n",
+ " features: pandas DataFrame of features\n",
+ " targets: pandas DataFrame of targets\n",
+ " batch_size: Size of batches to be passed to the model\n",
+ " shuffle: True or False. Whether to shuffle the data.\n",
+ " num_epochs: Number of epochs for which data should be repeated. None = repeat indefinitely\n",
+ " Returns:\n",
+ " Tuple of (features, labels) for next data batch\n",
+ " \"\"\"\n",
+ " \n",
+ " # Convert pandas data into a dict of np arrays.\n",
+ " features = {key:np.array(value) for key,value in dict(features).items()} \n",
+ " \n",
+ " # Construct a dataset, and configure batching/repeating.\n",
+ " ds = Dataset.from_tensor_slices((features,targets)) # warning: 2GB limit\n",
+ " ds = ds.batch(batch_size).repeat(num_epochs)\n",
+ " \n",
+ " # Shuffle the data, if specified.\n",
+ " if shuffle:\n",
+ " ds = ds.shuffle(10000)\n",
+ " \n",
+ " # Return the next batch of data.\n",
+ " features, labels = ds.make_one_shot_iterator().get_next()\n",
+ " return features, labels"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "SE2-hq8PIYHz",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_linear_regressor_model(\n",
+ " learning_rate,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a linear regression model.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A `LinearRegressor` object trained on the training data.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ "\n",
+ " # Create a linear regressor object.\n",
+ " my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " linear_regressor = tf.estimator.LinearRegressor(\n",
+ " feature_columns=construct_feature_columns(training_examples),\n",
+ " optimizer=my_optimizer\n",
+ " )\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value_is_high\"], \n",
+ " batch_size=batch_size)\n",
+ " predict_training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value_is_high\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " predict_validation_input_fn = lambda: my_input_fn(validation_examples, \n",
+ " validation_targets[\"median_house_value_is_high\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"RMSE (on training data):\")\n",
+ " training_rmse = []\n",
+ " validation_rmse = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " linear_regressor.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period\n",
+ " )\n",
+ " \n",
+ " # Take a break and compute predictions.\n",
+ " training_predictions = linear_regressor.predict(input_fn=predict_training_input_fn)\n",
+ " training_predictions = np.array([item['predictions'][0] for item in training_predictions])\n",
+ " \n",
+ " validation_predictions = linear_regressor.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_predictions = np.array([item['predictions'][0] for item in validation_predictions])\n",
+ " \n",
+ " # Compute training and validation loss.\n",
+ " training_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(training_predictions, training_targets))\n",
+ " validation_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(validation_predictions, validation_targets))\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_root_mean_squared_error))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_rmse.append(training_root_mean_squared_error)\n",
+ " validation_rmse.append(validation_root_mean_squared_error)\n",
+ " print(\"Model training finished.\")\n",
+ " \n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"RMSE\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_rmse, label=\"training\")\n",
+ " plt.plot(validation_rmse, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " return linear_regressor"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "TDBD8xeeIYH2",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 741
+ },
+ "outputId": "96c6a011-4527-424e-8708-4c7b1ff463b7"
+ },
+ "cell_type": "code",
+ "source": [
+ "linear_regressor = train_linear_regressor_model(\n",
+ " learning_rate=0.000001,\n",
+ " steps=200,\n",
+ " batch_size=30,\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 8,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.\n",
+ "For more information, please see:\n",
+ " * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n",
+ " * https://github.com/tensorflow/addons\n",
+ "If you depend on functionality not listed there, please file an issue.\n",
+ "\n",
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 0.45\n",
+ " period 01 : 0.44\n",
+ " period 02 : 0.44\n",
+ " period 03 : 0.44\n",
+ " period 04 : 0.45\n",
+ " period 05 : 0.44\n",
+ " period 06 : 0.44\n",
+ " period 07 : 0.44\n",
+ " period 08 : 0.44\n",
+ " period 09 : 0.44\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nEEIIIYzG/w+HQLPwxf1HnwAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JjBZ_q7aD9gh",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 1: Can We Calculate LogLoss for These Predictions?\n",
+ "\n",
+ "**Examine the predictions and decide whether or not we can use them to calculate LogLoss.**\n",
+ "\n",
+ "`LinearRegressor` uses the L2 loss, which doesn't do a great job at penalizing misclassifications when the output is interpreted as a probability. For example, there should be a huge difference whether a negative example is classified as positive with a probability of 0.9 vs 0.9999, but L2 loss doesn't strongly differentiate these cases.\n",
+ "\n",
+ "In contrast, `LogLoss` penalizes these \"confidence errors\" much more heavily. Remember, `LogLoss` is defined as:\n",
+ "\n",
+ "$$Log Loss = \\sum_{(x,y)\\in D} -y \\cdot log(y_{pred}) - (1 - y) \\cdot log(1 - y_{pred})$$\n",
+ "\n",
+ "\n",
+ "But first, we'll need to obtain the prediction values. We could use `LinearRegressor.predict` to obtain these.\n",
+ "\n",
+ "Given the predictions and the targets, can we calculate `LogLoss`?"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "kXFQ5uig2RoP",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 347
+ },
+ "outputId": "324a40c5-d49e-4d46-97aa-ab32503969e8"
+ },
+ "cell_type": "code",
+ "source": [
+ "predict_validation_input_fn = lambda: my_input_fn(validation_examples, \n",
+ " validation_targets[\"median_house_value_is_high\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ "validation_predictions = linear_regressor.predict(input_fn=predict_validation_input_fn)\n",
+ "validation_predictions = np.array([item['predictions'][0] for item in validation_predictions])\n",
+ "\n",
+ "_ = plt.hist(validation_predictions)"
+ ],
+ "execution_count": 9,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAFKCAYAAADScRzUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAH/dJREFUeJzt3X1slfX9//HX6c3ZofPUcrpzCETm\nd1lwMO0KTbHSBrSFOumiq0KRNmAyq5NRGcyj2OFtYjLKTQ0ymiHMYgNROzqj/RnTEmdJIK315iRd\ncSZ4k5kOkJ6j1WJvbGmu3x+LZzKgp4Oenk/P9XwkJu11rnPO+5WPuV5c13U4OCzLsgQAAIyUEOsB\nAADAxVHUAAAYjKIGAMBgFDUAAAajqAEAMBhFDQCAwZJiPcCFBINnYj1CVE2dmqKenv5YjxETds1u\n19ySfbPbNbdk3+yXk9vrdV/0Mc6oYyApKTHWI8SMXbPbNbdk3+x2zS3ZN3u0clPUAAAYjKIGAMBg\nFDUAAAajqAEAMBhFDQCAwShqAAAMRlEDAGAwihoAAINR1AAAGIyiBgDAYBQ1AAAGo6gBADCYkf96\nFhCP7q56M9YjRFRbWRDrEQD8F86oAQAwGEUNAIDBKGoAAAxGUQMAYDCKGgAAg1HUAAAYjKIGAMBg\nFDUAAAajqAEAMNiYinpwcFBLlizRyy+/rFOnTmn16tUqKyvT+vXrNTQ0JElqbGzUsmXLVFJSooMH\nD0qShoeH5ff7VVpaqlWrVqmrqyt6SQAAiENjKuo//elPuvLKKyVJO3fuVFlZmV544QVdffXVamho\nUH9/v2pqavT8889r//79qqur05dffqnXXntNqampevHFF7VmzRpVV1dHNQwAAPEmYlF//PHH+uij\nj3TTTTdJktrb27V48WJJUn5+vtra2tTR0aGMjAy53W65XC5lZWUpEAiora1NhYWFkqTc3FwFAoHo\nJQEAIA5FLOotW7aosrIy/PvAwICcTqckKT09XcFgUKFQSB6PJ7yPx+M5b3tCQoIcDkf4UjkAAIhs\n1H8965VXXtHcuXM1c+bMCz5uWda4bP9vU6emKCkpcUz7TlZerzvWI8SMnbObLlprY9c1t2tuyb7Z\no5F71KI+fPiwurq6dPjwYX322WdyOp1KSUnR4OCgXC6XTp8+LZ/PJ5/Pp1AoFH5ed3e35s6dK5/P\np2AwqNmzZ2t4eFiWZYXPxkfT09N/+ckM5vW6FQyeifUYMWHX7JPloBWNtbHzmtsxt2Tf7JeTe7Rj\nxKiXvnfs2KG//vWv+stf/qKSkhKtXbtWubm5am5uliQdOnRICxcuVGZmpjo7O9Xb26u+vj4FAgFl\nZ2crLy9PTU1NkqSWlhbl5ORcUgAAAOxq1DPqC1m3bp0efvhh1dfXa8aMGSouLlZycrL8fr/Ky8vl\ncDhUUVEht9utoqIitba2qrS0VE6nU1VVVdHIAABA3HJYY71xPIHi/ZKJXS8LSfbN7vW6dav/1ViP\nEVFtZcG4v6ad19yOuSX7Zo/JpW8AABBbFDUAAAajqAEAMBhFDQCAwShqAAAMRlEDAGAwihoAAINR\n1AAAGIyiBgDAYBQ1AAAGo6gBADAYRQ0AgMEoagAADEZRAwBgMIoaAACDUdQAABiMogYAwGAUNQAA\nBqOoAQAwGEUNAIDBKGoAAAxGUQMAYDCKGgAAg1HUAAAYjKIGAMBgSZF2GBgYUGVlpT7//HN98803\nWrt2rZqbm/X+++8rLS1NklReXq6bbrpJjY2NqqurU0JCglasWKGSkhINDw+rsrJSJ0+eVGJiojZv\n3qyZM2dGPRgAAPEgYlG3tLTouuuu07333qsTJ07o7rvv1rx58/TAAw8oPz8/vF9/f79qamrU0NCg\n5ORkLV++XIWFhWppaVFqaqqqq6t19OhRVVdXa8eOHVENBQBAvIhY1EVFReGfT506pWnTpl1wv46O\nDmVkZMjtdkuSsrKyFAgE1NbWpuLiYklSbm6uNm3aNB5zAwBgC2O+R71y5Uo9+OCD4aI9cOCA7rrr\nLv3ud7/TF198oVAoJI/HE97f4/EoGAyesz0hIUEOh0NDQ0PjHAMAgPgU8Yz6Wy+99JI++OADPfTQ\nQ9q0aZPS0tI0Z84c7dmzR7t27dK8efPO2d+yrAu+zsW2f9fUqSlKSkoc62iTktfrjvUIMWPn7KaL\n1trYdc3tmluyb/Zo5I5Y1MeOHVN6erqmT5+uOXPmaGRkRNdcc43S09MlSQUFBXryySf185//XKFQ\nKPy87u5uzZ07Vz6fT8FgULNnz9bw8LAsy5LT6Rz1PXt6+i8zltm8XreCwTOxHiMm7Jp9shy0orE2\ndl5zO+aW7Jv9cnKPdoyIeOn73XffVW1trSQpFAqpv79fjz/+uLq6uiRJ7e3tmjVrljIzM9XZ2ane\n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\ngMH+P81Qbp8w8X17AAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "rYpy336F9wBg",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 2: Train a Logistic Regression Model and Calculate LogLoss on the Validation Set\n",
+ "\n",
+ "To use logistic regression, simply use [LinearClassifier](https://www.tensorflow.org/api_docs/python/tf/estimator/LinearClassifier) instead of `LinearRegressor`. Complete the code below.\n",
+ "\n",
+ "**NOTE**: When running `train()` and `predict()` on a `LinearClassifier` model, you can access the real-valued predicted probabilities via the `\"probabilities\"` key in the returned dict—e.g., `predictions[\"probabilities\"]`. Sklearn's [log_loss](http://scikit-learn.org/stable/modules/generated/sklearn.metrics.log_loss.html) function is handy for calculating LogLoss using these probabilities.\n"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JElcb--E9wBm",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_linear_classifier_model(\n",
+ " learning_rate,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a linear classification model.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A `LinearClassifier` object trained on the training data.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ " \n",
+ " # Create a linear classifier object.\n",
+ " my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " linear_classifier = tf.estimator.LinearClassifier(feature_columns=construct_feature_columns(training_examples),optimizer=my_optimizer)\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value_is_high\"], \n",
+ " batch_size=batch_size)\n",
+ " predict_training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value_is_high\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " predict_validation_input_fn = lambda: my_input_fn(validation_examples, \n",
+ " validation_targets[\"median_house_value_is_high\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " \n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"LogLoss (on training data):\")\n",
+ " training_log_losses = []\n",
+ " validation_log_losses = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " linear_classifier.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period\n",
+ " )\n",
+ " # Take a break and compute predictions. \n",
+ " training_probabilities = linear_classifier.predict(input_fn=predict_training_input_fn)\n",
+ " training_probabilities = np.array([item['probabilities'] for item in training_probabilities])\n",
+ " \n",
+ " validation_probabilities = linear_classifier.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_probabilities = np.array([item['probabilities'] for item in validation_probabilities])\n",
+ " \n",
+ " training_log_loss = metrics.log_loss(training_targets, training_probabilities)\n",
+ " validation_log_loss = metrics.log_loss(validation_targets, validation_probabilities)\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_log_loss))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_log_losses.append(training_log_loss)\n",
+ " validation_log_losses.append(validation_log_loss)\n",
+ " print(\"Model training finished.\")\n",
+ " \n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"LogLoss\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"LogLoss vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_log_losses, label=\"training\")\n",
+ " plt.plot(validation_log_losses, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " return linear_classifier"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "VM0wmnFUIYH9",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 622
+ },
+ "outputId": "c7841017-2227-42f6-f19c-b7abe9d1841e"
+ },
+ "cell_type": "code",
+ "source": [
+ "linear_classifier = train_linear_classifier_model(\n",
+ " learning_rate=0.000005,\n",
+ " steps=500,\n",
+ " batch_size=20,\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 12,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "LogLoss (on training data):\n",
+ " period 00 : 0.60\n",
+ " period 01 : 0.58\n",
+ " period 02 : 0.57\n",
+ " period 03 : 0.55\n",
+ " period 04 : 0.55\n",
+ " period 05 : 0.55\n",
+ " period 06 : 0.54\n",
+ " period 07 : 0.54\n",
+ " period 08 : 0.53\n",
+ " period 09 : 0.53\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nMyIiIuLX/j+MJLBNCu2GOgAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "i-Xo83_aR6s_",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 3: Calculate Accuracy and plot a ROC Curve for the Validation Set\n",
+ "\n",
+ "A few of the metrics useful for classification are the model [accuracy](https://en.wikipedia.org/wiki/Accuracy_and_precision#In_binary_classification), the [ROC curve](https://en.wikipedia.org/wiki/Receiver_operating_characteristic) and the area under the ROC curve (AUC). We'll examine these metrics.\n",
+ "\n",
+ "`LinearClassifier.evaluate` calculates useful metrics like accuracy and AUC."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "DKSQ87VVIYIA",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 51
+ },
+ "outputId": "1d731cb9-52c7-4cfe-d5d5-eeec4b08919e"
+ },
+ "cell_type": "code",
+ "source": [
+ "evaluation_metrics = linear_classifier.evaluate(input_fn=predict_validation_input_fn)\n",
+ "\n",
+ "print(\"AUC on the validation set: %0.2f\" % evaluation_metrics['auc'])\n",
+ "print(\"Accuracy on the validation set: %0.2f\" % evaluation_metrics['accuracy'])"
+ ],
+ "execution_count": 13,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "AUC on the validation set: 0.76\n",
+ "Accuracy on the validation set: 0.77\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "47xGS2uNIYIE",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "You may use class probabilities, such as those calculated by `LinearClassifier.predict`,\n",
+ "and Sklearn's [roc_curve](http://scikit-learn.org/stable/modules/model_evaluation.html#roc-metrics) to\n",
+ "obtain the true positive and false positive rates needed to plot a ROC curve."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "xaU7ttj8IYIF",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 347
+ },
+ "outputId": "b34ff334-61be-44dc-8b15-8e49deda5aaf"
+ },
+ "cell_type": "code",
+ "source": [
+ "validation_probabilities = linear_classifier.predict(input_fn=predict_validation_input_fn)\n",
+ "# Get just the probabilities for the positive class.\n",
+ "validation_probabilities = np.array([item['probabilities'][1] for item in validation_probabilities])\n",
+ "\n",
+ "false_positive_rate, true_positive_rate, thresholds = metrics.roc_curve(\n",
+ " validation_targets, validation_probabilities)\n",
+ "plt.plot(false_positive_rate, true_positive_rate, label=\"our model\")\n",
+ "plt.plot([0, 1], [0, 1], label=\"random classifier\")\n",
+ "_ = plt.legend(loc=2)"
+ ],
+ "execution_count": 14,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "PIdhwfgzIYII",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**See if you can tune the learning settings of the model trained at Task 2 to improve AUC.**\n",
+ "\n",
+ "Often times, certain metrics improve at the detriment of others, and you'll need to find the settings that achieve a good compromise.\n",
+ "\n",
+ "**Verify if all metrics improve at the same time.**"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "XKIqjsqcCaxO",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "846fe1c5-cc3a-4717-f2c9-eaee15c3a34d"
+ },
+ "cell_type": "code",
+ "source": [
+ "# TUNE THE SETTINGS BELOW TO IMPROVE AUC\n",
+ "linear_classifier = train_linear_classifier_model(\n",
+ " learning_rate=0.000002,\n",
+ " steps=24000,\n",
+ " batch_size=20,\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)\n",
+ "\n",
+ "evaluation_metrics = linear_classifier.evaluate(input_fn=predict_validation_input_fn)\n",
+ "\n",
+ "print(\"AUC on the validation set: %0.2f\" % evaluation_metrics['auc'])\n",
+ "print(\"Accuracy on the validation set: %0.2f\" % evaluation_metrics['accuracy'])"
+ ],
+ "execution_count": 15,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "LogLoss (on training data):\n",
+ " period 00 : 0.52\n",
+ " period 01 : 0.52\n",
+ " period 02 : 0.52\n",
+ " period 03 : 0.51\n",
+ " period 04 : 0.50\n",
+ " period 05 : 0.50\n",
+ " period 06 : 0.50\n",
+ " period 07 : 0.49\n",
+ " period 08 : 0.49\n",
+ " period 09 : 0.49\n",
+ "Model training finished.\n",
+ "AUC on the validation set: 0.79\n",
+ "Accuracy on the validation set: 0.77\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\ny/79++1djhhx5coV/v3f/52NGzeybt06Dh06ZO+SJiwXexcwUeTn51NdXU1OTg4VFRVkZ2eTk5Nj\n77IEcOzYMcrLy8nJyaG9vZ2vfvWr3H777fYuS4x46aWX8PPzs3cZ4irt7e28+OKLvP322/T09PDC\nCy+wbNkye5clgL/97W/ExMTw8MMPYzQa+fa3v82uXbvsXdaEJA3OGOXm5pKVlQVAXFwcnZ2ddHd3\no9Vq7VyZmDdvHrNmzQLA19eX3t5eTCYTzs7Odq5MVFRUcOHCBfnLUzG5ubksXLgQrVaLVqvlV7/6\nlb1LEiMCAgI4d+4cAJcvXyYgIMDOFU1ccolqjFpaWq4ZaIGBgTQ3N9uxIvExZ2dnvLy8AHjrrbdY\nsmSJNDeKeOqpp3j00UftXYb4lLq6Ovr6+vje977H+vXryc3NtXdJYsSdd95JfX09K1eu5P777+eR\nRx6xd0kTlszg3CTZ4UI9H374IW+99RZ/+tOf7F2KAN555x3mzJlDRESEvUsR19HR0cHWrVupr6/n\nW9/6Fh999BEajcbeZU167777LqGhofzxj3+krKyM7OxsWb92k6TBGSO9Xk9LS8vo101NTQQFBdmx\nInG1Q4cO8dvf/pY//OEP+Pj42LscAezfv5/a2lr2799PY2Mjbm5uGAwGFi1aZO/SJj2dTsfcuXNx\ncXEhMjISb29v2tra0Ol09i5t0issLCQjIwOA6dOn09TUJJfcb5Jcohqj9PR0du/eDUBxcTF6vV7W\n3yiiq6uLp59+mt/97nf4+/vbuxwx4r//+795++23efPNN/n617/Ogw8+KM2NIjIyMjh27Bhms5n2\n9nZ6enpkrYcioqKiKCoqAuDSpUt4e3tLc3OTZAZnjFJSUkhKSmLdunVoNBo2bdpk75LEiB07dtDe\n3s6PfvSj0e899dRThIaG2rEqIdQVHBzMHXfcwTe+8Q0Afv7zn+PkJP/eVcHatWvJzs7m/vvvZ2ho\niMcff9zeJU1YGossJhFCCCGEg5GWXQghhBAORxocIYQQQjgcaXCEEEII4XCkwRFCCCGEw5EGRwgh\nhBAORxocIYTd1dXVkZyczMaNG0d3UX744Ye5fPnymH/Gxo0bMZlMY379N7/5TfLy8m6mXCHEBCAN\njhBCCYGBgWzbto1t27bxxhtvoNfreemll8b8/m3btskD0YQQo+RBf0IIJc2bN4+cnBzKysp46qmn\nGBoaYnBwkF/84hckJiayceNGpk+fTmlpKa+++iqJiYkUFxczMDDAY489RmNjI0NDQ6xZs4b169fT\n29vLQw89RHt7O1FRUfT39wNgNBr5z//8TwD6+vpYu3Yt9913nz1/dSGEFUiDI4RQjslk4oMPPiA1\nNZUf//jHvPjii0RGRn5m80EvLy9ee+21a967bds2fH19ee655+jr6+Of/umfWLx4MUePHsXDw4Oc\nnByamprIzMwEYOfOncTGxvLLX/6S/v5+/vrXv4777yuEsD5pcIQQSmhra2Pjxo0AmM1mbrvtNr72\nta/x/PPP87Of/Wz0dd3d3ZjNZmB4C5VPKyoq4t577wXAw8OD5ORkiouLOX/+PKmpqcDw5rmxsbEA\nLF68mNdff51HH32UpUuXsnbtWpv+nkKI8SENjhBCCR+vwblaV1cXrq6un/n+x1xdXT/zPY1Gc83X\nFosFjUaDxWK5Zr+lj5ukuLg4/vGPf1BQUMCuXbt49dVXeeONN2711xFC2JksMhZCKMvHx4fw8HAO\nHDgAQGVlJVu3bv3c98yePZtDhw4B0NPTQ3FxMUlJScTFxXHy5EkAGhoaqKysBOD999/nzJkzLFq0\niE2bNtHQ0MDQ0JANfyshxHiQGRwhhNKeeuopfv3rX/Pyyy8zNDTEo48++rmv37hxI4899hgbNmxg\nYGCABx98kPDwcNasWcO+fftYv3494eHhzJw5E4CpU6eyadMm3NzcsFgsfOc738HFRU6NQkx0spu4\nEEIIIRyOXKISQgghhMORBkcIIYQQDkcaHCGEEEI4HGlwhBBCCOFwpMERQgghhMORBkcIIYQQDkca\nHCGEEEI4HGlwhBBCCOFw/j8QiOAKuvWFdgAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
From adb62de59222561f48cd4cc2fc346291ad3d7e35 Mon Sep 17 00:00:00 2001
From: Amit Rai <42401957+ardev472@users.noreply.github.com>
Date: Sun, 17 Feb 2019 21:36:20 +0530
Subject: [PATCH 07/11] Created using Colaboratory
---
feature_crosses.ipynb | 1344 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 1344 insertions(+)
create mode 100644 feature_crosses.ipynb
diff --git a/feature_crosses.ipynb b/feature_crosses.ipynb
new file mode 100644
index 0000000..4d6b07c
--- /dev/null
+++ b/feature_crosses.ipynb
@@ -0,0 +1,1344 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "feature_crosses.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "ZTDHHM61NPTw",
+ "0i7vGo9PTaZl"
+ ],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python2",
+ "display_name": "Python 2"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JndnmDMp66FL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "hMqWDc_m6rUC",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
+ "# you may not use this file except in compliance with the License.\n",
+ "# You may obtain a copy of the License at\n",
+ "#\n",
+ "# https://www.apache.org/licenses/LICENSE-2.0\n",
+ "#\n",
+ "# Unless required by applicable law or agreed to in writing, software\n",
+ "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
+ "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
+ "# See the License for the specific language governing permissions and\n",
+ "# limitations under the License."
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "g4T-_IsVbweU",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# Feature Crosses"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "F7dke6skIK-k",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objectives:**\n",
+ " * Improve a linear regression model with the addition of additional synthetic features (this is a continuation of the previous exercise)\n",
+ " * Use an input function to convert pandas `DataFrame` objects to `Tensors` and invoke the input function in `fit()` and `predict()` operations\n",
+ " * Use the FTRL optimization algorithm for model training\n",
+ " * Create new synthetic features through one-hot encoding, binning, and feature crosses"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "NS_fcQRd8B97",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Setup"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "4IdzD8IdIK-l",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "First, as we've done in previous exercises, let's define the input and create the data-loading code."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "CsfdiLiDIK-n",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "from IPython import display\n",
+ "from matplotlib import cm\n",
+ "from matplotlib import gridspec\n",
+ "from matplotlib import pyplot as plt\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from sklearn import metrics\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.python.data import Dataset\n",
+ "\n",
+ "tf.logging.set_verbosity(tf.logging.ERROR)\n",
+ "pd.options.display.max_rows = 10\n",
+ "pd.options.display.float_format = '{:.1f}'.format\n",
+ "\n",
+ "california_housing_dataframe = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv\", sep=\",\")\n",
+ "\n",
+ "california_housing_dataframe = california_housing_dataframe.reindex(\n",
+ " np.random.permutation(california_housing_dataframe.index))"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "10rhoflKIK-s",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def preprocess_features(california_housing_dataframe):\n",
+ " \"\"\"Prepares input features from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the features to be used for the model, including\n",
+ " synthetic features.\n",
+ " \"\"\"\n",
+ " selected_features = california_housing_dataframe[\n",
+ " [\"latitude\",\n",
+ " \"longitude\",\n",
+ " \"housing_median_age\",\n",
+ " \"total_rooms\",\n",
+ " \"total_bedrooms\",\n",
+ " \"population\",\n",
+ " \"households\",\n",
+ " \"median_income\"]]\n",
+ " processed_features = selected_features.copy()\n",
+ " # Create a synthetic feature.\n",
+ " processed_features[\"rooms_per_person\"] = (\n",
+ " california_housing_dataframe[\"total_rooms\"] /\n",
+ " california_housing_dataframe[\"population\"])\n",
+ " return processed_features\n",
+ "\n",
+ "def preprocess_targets(california_housing_dataframe):\n",
+ " \"\"\"Prepares target features (i.e., labels) from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the target feature.\n",
+ " \"\"\"\n",
+ " output_targets = pd.DataFrame()\n",
+ " # Scale the target to be in units of thousands of dollars.\n",
+ " output_targets[\"median_house_value\"] = (\n",
+ " california_housing_dataframe[\"median_house_value\"] / 1000.0)\n",
+ " return output_targets"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "ufplEkjN8KUp",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1205
+ },
+ "outputId": "b60a7d80-b18d-4389-abde-29177c0b7bd7"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Choose the first 12000 (out of 17000) examples for training.\n",
+ "training_examples = preprocess_features(california_housing_dataframe.head(12000))\n",
+ "training_targets = preprocess_targets(california_housing_dataframe.head(12000))\n",
+ "\n",
+ "# Choose the last 5000 (out of 17000) examples for validation.\n",
+ "validation_examples = preprocess_features(california_housing_dataframe.tail(5000))\n",
+ "validation_targets = preprocess_targets(california_housing_dataframe.tail(5000))\n",
+ "\n",
+ "# Double-check that we've done the right thing.\n",
+ "print(\"Training examples summary:\")\n",
+ "display.display(training_examples.describe())\n",
+ "print(\"Validation examples summary:\")\n",
+ "display.display(validation_examples.describe())\n",
+ "\n",
+ "print(\"Training targets summary:\")\n",
+ "display.display(training_targets.describe())\n",
+ "print(\"Validation targets summary:\")\n",
+ "display.display(validation_targets.describe())"
+ ],
+ "execution_count": 3,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training examples summary:\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " latitude longitude housing_median_age total_rooms total_bedrooms \\\n",
+ "count 12000.0 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 35.6 -119.6 28.6 2660.3 541.1 \n",
+ "std 2.1 2.0 12.7 2193.0 423.9 \n",
+ "min 32.5 -124.3 1.0 2.0 2.0 \n",
+ "25% 33.9 -121.8 18.0 1471.8 298.0 \n",
+ "50% 34.3 -118.5 29.0 2141.5 434.0 \n",
+ "75% 37.7 -118.0 37.0 3162.0 648.0 \n",
+ "max 41.9 -114.3 52.0 37937.0 5471.0 \n",
+ "\n",
+ " population households median_income rooms_per_person \n",
+ "count 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 1433.8 503.4 3.9 2.0 \n",
+ "std 1153.3 387.8 1.9 1.2 \n",
+ "min 3.0 2.0 0.5 0.0 \n",
+ "25% 794.0 282.0 2.6 1.5 \n",
+ "50% 1166.0 410.0 3.6 1.9 \n",
+ "75% 1728.0 604.2 4.8 2.3 \n",
+ "max 35682.0 5189.0 15.0 55.2 "
+ ],
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "oJlrB4rJ_2Ma",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def construct_feature_columns(input_features):\n",
+ " \"\"\"Construct the TensorFlow Feature Columns.\n",
+ "\n",
+ " Args:\n",
+ " input_features: The names of the numerical input features to use.\n",
+ " Returns:\n",
+ " A set of feature columns\n",
+ " \"\"\"\n",
+ " return set([tf.feature_column.numeric_column(my_feature)\n",
+ " for my_feature in input_features])"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "NBxoAfp2AcB6",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):\n",
+ " \"\"\"Trains a linear regression model.\n",
+ " \n",
+ " Args:\n",
+ " features: pandas DataFrame of features\n",
+ " targets: pandas DataFrame of targets\n",
+ " batch_size: Size of batches to be passed to the model\n",
+ " shuffle: True or False. Whether to shuffle the data.\n",
+ " num_epochs: Number of epochs for which data should be repeated. None = repeat indefinitely\n",
+ " Returns:\n",
+ " Tuple of (features, labels) for next data batch\n",
+ " \"\"\"\n",
+ " \n",
+ " # Convert pandas data into a dict of np arrays.\n",
+ " features = {key:np.array(value) for key,value in dict(features).items()} \n",
+ " \n",
+ " # Construct a dataset, and configure batching/repeating.\n",
+ " ds = Dataset.from_tensor_slices((features,targets)) # warning: 2GB limit\n",
+ " ds = ds.batch(batch_size).repeat(num_epochs)\n",
+ " \n",
+ " # Shuffle the data, if specified.\n",
+ " if shuffle:\n",
+ " ds = ds.shuffle(10000)\n",
+ " \n",
+ " # Return the next batch of data.\n",
+ " features, labels = ds.make_one_shot_iterator().get_next()\n",
+ " return features, labels"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "hweDyy31LBsV",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## FTRL Optimization Algorithm\n",
+ "\n",
+ "High dimensional linear models benefit from using a variant of gradient-based optimization called FTRL. This algorithm has the benefit of scaling the learning rate differently for different coefficients, which can be useful if some features rarely take non-zero values (it also is well suited to support L1 regularization). We can apply FTRL using the [FtrlOptimizer](https://www.tensorflow.org/api_docs/python/tf/train/FtrlOptimizer)."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "S0SBf1X1IK_O",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_model(\n",
+ " learning_rate,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " feature_columns,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a linear regression model.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " feature_columns: A `set` specifying the input feature columns to use.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A `LinearRegressor` object trained on the training data.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ "\n",
+ " # Create a linear regressor object.\n",
+ " my_optimizer = tf.train.FtrlOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " linear_regressor = tf.estimator.LinearRegressor(\n",
+ " feature_columns=feature_columns,\n",
+ " optimizer=my_optimizer\n",
+ " )\n",
+ " \n",
+ " training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " batch_size=batch_size)\n",
+ " predict_training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " predict_validation_input_fn = lambda: my_input_fn(validation_examples, \n",
+ " validation_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"RMSE (on training data):\")\n",
+ " training_rmse = []\n",
+ " validation_rmse = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " linear_regressor.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period\n",
+ " )\n",
+ " # Take a break and compute predictions.\n",
+ " training_predictions = linear_regressor.predict(input_fn=predict_training_input_fn)\n",
+ " training_predictions = np.array([item['predictions'][0] for item in training_predictions])\n",
+ " validation_predictions = linear_regressor.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_predictions = np.array([item['predictions'][0] for item in validation_predictions])\n",
+ " \n",
+ " # Compute training and validation loss.\n",
+ " training_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(training_predictions, training_targets))\n",
+ " validation_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(validation_predictions, validation_targets))\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_root_mean_squared_error))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_rmse.append(training_root_mean_squared_error)\n",
+ " validation_rmse.append(validation_root_mean_squared_error)\n",
+ " print(\"Model training finished.\")\n",
+ "\n",
+ " \n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"RMSE\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_rmse, label=\"training\")\n",
+ " plt.plot(validation_rmse, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " return linear_regressor"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "1Cdr02tLIK_Q",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 741
+ },
+ "outputId": "6fc33e4a-18b4-4fbd-b97d-7ebda9706ffe"
+ },
+ "cell_type": "code",
+ "source": [
+ "_ = train_model(\n",
+ " learning_rate=1.0,\n",
+ " steps=500,\n",
+ " batch_size=100,\n",
+ " feature_columns=construct_feature_columns(training_examples),\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 7,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.\n",
+ "For more information, please see:\n",
+ " * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n",
+ " * https://github.com/tensorflow/addons\n",
+ "If you depend on functionality not listed there, please file an issue.\n",
+ "\n",
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 370.29\n",
+ " period 01 : 281.70\n",
+ " period 02 : 181.80\n",
+ " period 03 : 147.48\n",
+ " period 04 : 137.93\n",
+ " period 05 : 129.48\n",
+ " period 06 : 127.55\n",
+ " period 07 : 111.14\n",
+ " period 08 : 117.63\n",
+ " period 09 : 128.50\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd4lfXh/vH3OScJGWTvEEgCsvcI\nAmEkrIQlKIoURWup/lrRolKrfqt8a21dba1axdWvolirlSqKjLBljxBApqyQHbL3znl+f1BTEAgz\nOSfJ/bourosznue5z/mEKzef5znnYzIMw0BERESkGTHbOoCIiIjI1VKBERERkWZHBUZERESaHRUY\nERERaXZUYERERKTZUYERERGRZsfB1gFE7FnXrl3p0KEDFosFgLq6OiIjI3n66adxdXW95v3+61//\nYsaMGRfc/8UXX/DUU0/x9ttvExMTU39/ZWUlw4YNY/z48bz44ovXfNwrlZKSwvPPP09SUhIALi4u\nPPTQQ4wdO7bRj301Fi5cSEpKygXvyc6dO5kzZw6hoaEXbLNq1aqmindd0tLSGDNmDBEREQAYhoGf\nnx+//e1v6dGjx1Xt6y9/+QshISH85Cc/ueJtvvrqK5YsWcLixYuv6lgiTUUFRuQyFi9eTFBQEADV\n1dU8+uijvPPOOzz66KPXtL+cnBz+/ve/X7TAAAQHB/PNN9+cV2A2bNiAh4fHNR3vWvz6179m6tSp\nvP322wDs37+fe++9l5UrVxIcHNxkOa5HcHBwsykrl2KxWM57DStWrGDu3LnEx8fj5OR0xfuZP39+\nY8QTsSmdQhK5Ck5OTowYMYIjR44AUFVVxYIFC4iNjWXChAm8+OKL1NXVAXD06FFmzpxJXFwcU6dO\nZfPmzQDMnDmTjIwM4uLiqK6uvuAYAwYMYOfOnVRUVNTft2LFCqKioupvV1dX84c//IHY2FhGjx5d\nXzQA9u7dy2233UZcXBwTJ05k27ZtwNn/0Q8fPpyPPvqIKVOmMGLECFasWHHR13ns2DH69u1bf7tv\n377Ex8fXF7k33niDUaNGMW3aNN59911Gjx4NwJNPPsnChQvrtzv39uVyPf/889x9990A7Nmzh+nT\npzNu3DhmzJhBamoqcHYm6pFHHiEmJoa7776brKysy4zYxX3xxRc89NBD3Hvvvbz88svs3LmTmTNn\nMm/evPpf9itXrmTy5MnExcVxzz33kJKSAsDf/vY3nn76aW6//XYWLVp03n7nzZvH+++/X3/7yJEj\nDB8+HKvVyl//+ldiY2OJjY3lnnvu4cyZM1ede+LEiVRWVnLq1CkAPvvsM+Li4hg9ejSPPfYYlZWV\nwNn3/YUXXmDKlCmsXLnyvHG41M+l1Wrl97//PdHR0dx+++0cPXq0/ri7du3i1ltvZeLEiUyYMIGV\nK1dedXaRG84QkUvq0qWLkZmZWX+7sLDQuOuuu4yFCxcahmEY77zzjnH//fcbNTU1RkVFhTF9+nRj\n6dKlRl1dnTFhwgRj2bJlhmEYxnfffWdERkYaJSUlxo4dO4yxY8de9Hj//ve/jSeeeML49a9/Xb9t\nSUmJMWbMGOPzzz83nnjiCcMwDOONN94w7r33XqOqqsooKyszpk2bZqxfv94wDMOYPHmy8c033xiG\nYRhffvll/bFSU1ONHj16GIsXLzYMwzBWrFhhjBs37qI5Hn74YSMmJsb48MMPjRMnTpz32Pfff28M\nGjTIyM7ONmpqaoxf/vKXRkxMjGEYhvHEE08Yb775Zv1zz73dUK6ePXsaX3zxRf3rjYyMNLZs2WIY\nhmEsW7bMuPXWWw3DMIyPP/7YuOuuu4yamhojPz/fiImJqX9PztXQe/zD+9yvXz8jKSmp/vm9e/c2\ntm3bZhiGYaSnpxsDBw40Tp8+bRiGYfzf//2fce+99xqGYRivv/66MXz4cCMvL++C/S5fvty46667\n6m+/9tprxnPPPWccO3bMGD9+vFFdXW0YhmF89NFHxpdffnnJfD+8L927d7/g/sjISOPkyZPG7t27\njaFDhxpZWVmGYRjGM888Y7z44ouGYZx936dMmWJUVlbW337zzTcb/LncuHGjMX78eKO0tNSoqKgw\nbr/9duPuu+82DMMwbrvtNmPnzp2GYRhGUlKS8dhjjzWYXaQpaAZG5DJmz55NXFwcY8aMYcyYMQwZ\nMoT7778fgI0bNzJjxgwcHBxwdnZmypQpbN26lbS0NHJzc5k0aRIAvXv3JiQkhAMHDlzRMSdNmsQ3\n33wDwNq1a4mJicFs/u8/1w0bNjBr1iycnJxwdXVl6tSprF69GoClS5cyYcIEAAYOHFg/ewFQW1vL\nbbfdBkDPnj3JyMi46PH/9Kc/cdddd7Fs2TImT57M6NGj+ec//wmcnR2JjIzE398fBwcHJk+efEWv\n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\nPhvcVP4yIwAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "i4lGvqajDWlw",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## One-Hot Encoding for Discrete Features\n",
+ "\n",
+ "Discrete (i.e. strings, enumerations, integers) features are usually converted into families of binary features before training a logistic regression model.\n",
+ "\n",
+ "For example, suppose we created a synthetic feature that can take any of the values `0`, `1` or `2`, and that we have a few training points:\n",
+ "\n",
+ "| # | feature_value |\n",
+ "|---|---------------|\n",
+ "| 0 | 2 |\n",
+ "| 1 | 0 |\n",
+ "| 2 | 1 |\n",
+ "\n",
+ "For each possible categorical value, we make a new **binary** feature of **real values** that can take one of just two possible values: 1.0 if the example has that value, and 0.0 if not. In the example above, the categorical feature would be converted into three features, and the training points now look like:\n",
+ "\n",
+ "| # | feature_value_0 | feature_value_1 | feature_value_2 |\n",
+ "|---|-----------------|-----------------|-----------------|\n",
+ "| 0 | 0.0 | 0.0 | 1.0 |\n",
+ "| 1 | 1.0 | 0.0 | 0.0 |\n",
+ "| 2 | 0.0 | 1.0 | 0.0 |"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "KnssXowblKm7",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Bucketized (Binned) Features\n",
+ "\n",
+ "Bucketization is also known as binning.\n",
+ "\n",
+ "We can bucketize `population` into the following 3 buckets (for instance):\n",
+ "- `bucket_0` (`< 5000`): corresponding to less populated blocks\n",
+ "- `bucket_1` (`5000 - 25000`): corresponding to mid populated blocks\n",
+ "- `bucket_2` (`> 25000`): corresponding to highly populated blocks\n",
+ "\n",
+ "Given the preceding bucket definitions, the following `population` vector:\n",
+ "\n",
+ " [[10001], [42004], [2500], [18000]]\n",
+ "\n",
+ "becomes the following bucketized feature vector:\n",
+ "\n",
+ " [[1], [2], [0], [1]]\n",
+ "\n",
+ "The feature values are now the bucket indices. Note that these indices are considered to be discrete features. Typically, these will be further converted in one-hot representations as above, but this is done transparently.\n",
+ "\n",
+ "To define feature columns for bucketized features, instead of using `numeric_column`, we can use [`bucketized_column`](https://www.tensorflow.org/api_docs/python/tf/feature_column/bucketized_column), which takes a numeric column as input and transforms it to a bucketized feature using the bucket boundaries specified in the `boundaries` argument. The following code defines bucketized feature columns for `households` and `longitude`; the `get_quantile_based_boundaries` function calculates boundaries based on quantiles, so that each bucket contains an equal number of elements."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "cc9qZrtRy-ED",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def get_quantile_based_boundaries(feature_values, num_buckets):\n",
+ " boundaries = np.arange(1.0, num_buckets) / num_buckets\n",
+ " quantiles = feature_values.quantile(boundaries)\n",
+ " return [quantiles[q] for q in quantiles.keys()]\n",
+ "\n",
+ "# Divide households into 7 buckets.\n",
+ "households = tf.feature_column.numeric_column(\"households\")\n",
+ "bucketized_households = tf.feature_column.bucketized_column(\n",
+ " households, boundaries=get_quantile_based_boundaries(\n",
+ " california_housing_dataframe[\"households\"], 7))\n",
+ "\n",
+ "# Divide longitude into 10 buckets.\n",
+ "longitude = tf.feature_column.numeric_column(\"longitude\")\n",
+ "bucketized_longitude = tf.feature_column.bucketized_column(\n",
+ " longitude, boundaries=get_quantile_based_boundaries(\n",
+ " california_housing_dataframe[\"longitude\"], 10))"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "U-pQDAa0MeN3",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 1: Train the Model on Bucketized Feature Columns\n",
+ "**Bucketize all the real valued features in our example, train the model and see if the results improve.**\n",
+ "\n",
+ "In the preceding code block, two real valued columns (namely `households` and `longitude`) have been transformed into bucketized feature columns. Your task is to bucketize the rest of the columns, then run the code to train the model. There are various heuristics to find the range of the buckets. This exercise uses a quantile-based technique, which chooses the bucket boundaries in such a way that each bucket has the same number of examples."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "YFXV9lyMLedy",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def construct_feature_columns():\n",
+ " \"\"\"Construct the TensorFlow Feature Columns.\n",
+ "\n",
+ " Returns:\n",
+ " A set of feature columns\n",
+ " \"\"\" \n",
+ " households = tf.feature_column.numeric_column(\"households\")\n",
+ " longitude = tf.feature_column.numeric_column(\"longitude\")\n",
+ " latitude = tf.feature_column.numeric_column(\"latitude\")\n",
+ " housing_median_age = tf.feature_column.numeric_column(\"housing_median_age\")\n",
+ " median_income = tf.feature_column.numeric_column(\"median_income\")\n",
+ " rooms_per_person = tf.feature_column.numeric_column(\"rooms_per_person\")\n",
+ " \n",
+ " # Divide households into 7 buckets.\n",
+ " bucketized_households = tf.feature_column.bucketized_column(\n",
+ " households, boundaries=get_quantile_based_boundaries(\n",
+ " training_examples[\"households\"], 7))\n",
+ "\n",
+ " # Divide longitude into 10 buckets.\n",
+ " bucketized_longitude = tf.feature_column.bucketized_column(\n",
+ " longitude, boundaries=get_quantile_based_boundaries(\n",
+ " training_examples[\"longitude\"], 10))\n",
+ "\n",
+ " #\n",
+ " # YOUR CODE HERE: bucketize the following columns, following the example above:\n",
+ " #\n",
+ " bucketized_latitude = tf.feature_column.bucketized_column(latitude, boundaries=get_quantile_based_boundaries(training_examples[\"latitude\"], 10))\n",
+ " bucketized_housing_median_age = tf.feature_column.bucketized_column(housing_median_age, boundaries=get_quantile_based_boundaries(training_examples[\"housing_median_age\"], 7))\n",
+ " bucketized_median_income =tf.feature_column.bucketized_column(median_income, boundaries=get_quantile_based_boundaries(training_examples[\"median_income\"], 7))\n",
+ " bucketized_rooms_per_person =tf.feature_column.bucketized_column(rooms_per_person, boundaries=get_quantile_based_boundaries(training_examples[\"rooms_per_person\"], 7))\n",
+ " \n",
+ " feature_columns = set([\n",
+ " bucketized_longitude,\n",
+ " bucketized_latitude,\n",
+ " bucketized_housing_median_age,\n",
+ " bucketized_households,\n",
+ " bucketized_median_income,\n",
+ " bucketized_rooms_per_person])\n",
+ " \n",
+ " return feature_columns\n"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "0FfUytOTNJhL",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 622
+ },
+ "outputId": "40cc3d5a-a837-4703-b5c8-89ec2382cfff"
+ },
+ "cell_type": "code",
+ "source": [
+ "_ = train_model(\n",
+ " learning_rate=1.0,\n",
+ " steps=500,\n",
+ " batch_size=100,\n",
+ " feature_columns=construct_feature_columns(),\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 10,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 169.54\n",
+ " period 01 : 143.08\n",
+ " period 02 : 126.41\n",
+ " period 03 : 115.20\n",
+ " period 04 : 107.25\n",
+ " period 05 : 101.40\n",
+ " period 06 : 96.94\n",
+ " period 07 : 93.44\n",
+ " period 08 : 90.44\n",
+ " period 09 : 88.03\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nv/jFL6iuruaLX/wiAwMDPPTQQxw+fDjTzcpaUsAkvPfee9x2220A1NbWMjY2xsTEBPn5+Rlumdi2\nbRv19fUAWK1WpqamiEQi6HS6DLdMnD9/nra2NvnlqJj33nuPz3zmM+Tn55Ofn88///M/Z7pJAigo\nKODcuXMABINBLlzrygAABTVJREFUCgoKMtyi7Ca3kBICgcCCzlRYWIjf789gi8QFOp0Ok8kEwAsv\nvMCePXukeFHEgQMHeOyxxzLdDPExvb29TE9P83d/93c8+OCDvPfee5lukgA+97nP4fV6+eM//mP2\n7dvHo48+mukmZTUZgbkMOWFBPb/97W954YUX+MlPfpLppgjgl7/8JZs3b6a8vDzTTRGXMDo6yve/\n/328Xi9f+MIXeP3119FoNJlu1or2q1/9CrfbzTPPPENzczOPP/64zB27BlLAJBQXFxMIBJJ/Hxwc\nxOl0ZrBFYr4jR47wox/9iB//+MdYLJZMN0cAb7zxBj09Pbzxxhv09/djNBopKSlh586dmW7aildU\nVERDQwN6vZ6KigrMZjPDw8MUFRVlumkr2rFjx9i1axcAa9euZXBwUG6HXwO5hZRw00038corrwDQ\n1NREcXGxzH9RxPj4ON/61rf4z//8T+x2e6abIxKefvppXnzxRX76059y33338fDDD0vxoohdu3bR\n2NhINBplZGSEyclJmW+hgMrKSk6ePAlAX18fZrNZipdrICMwCVu2bGH9+vU88MADaDQannzyyUw3\nSST85je/YWRkhH/4h39IPnbgwAHcbncGWyWEulwuF3/6p3/K/fffD8BXv/pVtFr5/9VM27t3L48/\n/jj79u0jHA7z1FNPZbpJWU0Tk8keQgghhMgyUpILIYQQIutIASOEEEKIrCMFjBBCCCGyjhQwQggh\nhMg6UsAIIYQQIutIASOEWFS9vb1s2LCB/fv3J0/h/eIXv0gwGEz5Pfbv308kEkn59X/5l3/J+++/\n/2maK4TIElLACCEWXWFhIc8++yzPPvsszz//PMXFxfzwhz9M+eufffZZ2fBLCLGAbGQnhFhy27Zt\n49ChQzQ3N3PgwAHC4TBzc3N87WtfY926dezfv5+1a9dy9uxZDh48yLp162hqamJ2dpYnnniC/v5+\nwuEwd955Jw8++CBTU1P84z/+IyMjI1RWVjIzMwPAwMAAX/rSlwCYnp5m79693HvvvZn86EKI60QK\nGCHEkopEIrz22mts3bqVf/qnf+IHP/gBFRUVnzjczmQy8dxzzy342meffRar1cq//du/MT09zWc/\n+1l2797Nu+++S25uLocOHWJwcJA/+qM/AuB//ud/qKmp4etf/zozMzP87Gc/W/LPK4RYHFLACCEW\n3fDwMPv37wcgGo1y4403cs899/C9732Pr3zlK8nXTUxMEI1GgfjxHh938uRJ7r77bgByc3PZsGED\nTU1NtLS0sHXrViB+MGtNTQ0Au3fv5r//+7957LHHuPnmm9m7d++ifk4hxNKRAkYIseguzIGZb3x8\nHIPB8InHLzAYDJ94TKPRLPh7LBZDo9EQi8UWnPVzoQiqra3l5Zdf5oMPPuDw4cMcPHiQ559//lo/\njhBCATKJVwiRERaLhbKyMt58800AOjo6+P73v3/Fr9m0aRNHjhwBYHJykqamJtavX09tbS3Hjx8H\nwOfz0dHRAcCvf/1rTp8+zc6dO3nyySfx+XyEw+FF/FRCiKUiIzBCiIw5cOAA//Iv/8J//dd/EQ6H\neeyxx674+v379/PEE0/wV3/1V8zOzvLwww9TVlbGnXfeye9+9zsefPBBysrK2LhxIwCrVq3iySef\nxGg0EovF+Ju/+Rv0evmxJ8RyIKdRCyGEECLryC0kIYQQQmQdKWCEEEIIkXWkgBFCCCFE1pECRggh\nhBBZRwoYIYQQQmQdKWCEEEIIkXWkgBFCCCFE1pECRgghhBBZ5/8DSFrb/LuAbrcAAAAASUVORK5C\nYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "AFJ1qoZPlQcs",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Feature Crosses\n",
+ "\n",
+ "Crossing two (or more) features is a clever way to learn non-linear relations using a linear model. In our problem, if we just use the feature `latitude` for learning, the model might learn that city blocks at a particular latitude (or within a particular range of latitudes since we have bucketized it) are more likely to be expensive than others. Similarly for the feature `longitude`. However, if we cross `longitude` by `latitude`, the crossed feature represents a well defined city block. If the model learns that certain city blocks (within range of latitudes and longitudes) are more likely to be more expensive than others, it is a stronger signal than two features considered individually.\n",
+ "\n",
+ "Currently, the feature columns API only supports discrete features for crosses. To cross two continuous values, like `latitude` or `longitude`, we can bucketize them.\n",
+ "\n",
+ "If we cross the `latitude` and `longitude` features (supposing, for example, that `longitude` was bucketized into `2` buckets, while `latitude` has `3` buckets), we actually get six crossed binary features. Each of these features will get its own separate weight when we train the model."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "-Rk0c1oTYaVH",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 2: Train the Model Using Feature Crosses\n",
+ "\n",
+ "**Add a feature cross of `longitude` and `latitude` to your model, train it, and determine whether the results improve.**\n",
+ "\n",
+ "Refer to the TensorFlow API docs for [`crossed_column()`](https://www.tensorflow.org/api_docs/python/tf/feature_column/crossed_column) to build the feature column for your cross. Use a `hash_bucket_size` of `1000`."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "-eYiVEGeYhUi",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def construct_feature_columns():\n",
+ " \"\"\"Construct the TensorFlow Feature Columns.\n",
+ "\n",
+ " Returns:\n",
+ " A set of feature columns\n",
+ " \"\"\" \n",
+ " households = tf.feature_column.numeric_column(\"households\")\n",
+ " longitude = tf.feature_column.numeric_column(\"longitude\")\n",
+ " latitude = tf.feature_column.numeric_column(\"latitude\")\n",
+ " housing_median_age = tf.feature_column.numeric_column(\"housing_median_age\")\n",
+ " median_income = tf.feature_column.numeric_column(\"median_income\")\n",
+ " rooms_per_person = tf.feature_column.numeric_column(\"rooms_per_person\")\n",
+ " \n",
+ " # Divide households into 7 buckets.\n",
+ " bucketized_households = tf.feature_column.bucketized_column(\n",
+ " households, boundaries=get_quantile_based_boundaries(\n",
+ " training_examples[\"households\"], 7))\n",
+ "\n",
+ " # Divide longitude into 10 buckets.\n",
+ " bucketized_longitude = tf.feature_column.bucketized_column(\n",
+ " longitude, boundaries=get_quantile_based_boundaries(\n",
+ " training_examples[\"longitude\"], 10))\n",
+ " \n",
+ " # Divide latitude into 10 buckets.\n",
+ " bucketized_latitude = tf.feature_column.bucketized_column(\n",
+ " latitude, boundaries=get_quantile_based_boundaries(\n",
+ " training_examples[\"latitude\"], 10))\n",
+ "\n",
+ " # Divide housing_median_age into 7 buckets.\n",
+ " bucketized_housing_median_age = tf.feature_column.bucketized_column(\n",
+ " housing_median_age, boundaries=get_quantile_based_boundaries(\n",
+ " training_examples[\"housing_median_age\"], 7))\n",
+ " \n",
+ " # Divide median_income into 7 buckets.\n",
+ " bucketized_median_income = tf.feature_column.bucketized_column(\n",
+ " median_income, boundaries=get_quantile_based_boundaries(\n",
+ " training_examples[\"median_income\"], 7))\n",
+ " \n",
+ " # Divide rooms_per_person into 7 buckets.\n",
+ " bucketized_rooms_per_person = tf.feature_column.bucketized_column(\n",
+ " rooms_per_person, boundaries=get_quantile_based_boundaries(\n",
+ " training_examples[\"rooms_per_person\"], 7))\n",
+ " \n",
+ " # YOUR CODE HERE: Make a feature column for the long_x_lat feature cross\n",
+ " long_x_lat = tf.feature_column.crossed_column(set([bucketized_longitude, bucketized_latitude]), hash_bucket_size=1000) \n",
+ " \n",
+ " feature_columns = set([\n",
+ " bucketized_longitude,\n",
+ " bucketized_latitude,\n",
+ " bucketized_housing_median_age,\n",
+ " bucketized_households,\n",
+ " bucketized_median_income,\n",
+ " bucketized_rooms_per_person,\n",
+ " long_x_lat])\n",
+ " \n",
+ " return feature_columns"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "xZuZMp3EShkM",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 622
+ },
+ "outputId": "39a5d642-2b42-4be8-91a4-6a20ab54f24a"
+ },
+ "cell_type": "code",
+ "source": [
+ "_ = train_model(\n",
+ " learning_rate=1.0,\n",
+ " steps=500,\n",
+ " batch_size=100,\n",
+ " feature_columns=construct_feature_columns(),\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 12,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 163.22\n",
+ " period 01 : 134.82\n",
+ " period 02 : 117.63\n",
+ " period 03 : 106.34\n",
+ " period 04 : 98.34\n",
+ " period 05 : 92.50\n",
+ " period 06 : 87.91\n",
+ " period 07 : 84.41\n",
+ " period 08 : 81.60\n",
+ " period 09 : 79.17\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd4VGX6xvHvlHQSSIcQei8plCAd\n6aEJ0iyAWFbXguLq/iy7dlzr6q4o2FZFwApKlSa9KCUG6Z1AIAmk956c3x9oBIGQQMJMkvtzXV4X\n0855Zp4zcvO+5z1jMgzDQERERKQKMdu6ABEREZHyUoARERGRKkcBRkRERKocBRgRERGpchRgRERE\npMpRgBEREZEqx2rrAkTsWatWrWjYsCEWiwWAoqIiwsLCeOaZZ3B1db3q7X777beMHz/+ovu///57\nnn76aT744AP69u1bcn9ubi7du3dn0KBBvPbaa1e937KKjo7mlVdeISoqCgAXFxemTJnCgAEDKn3f\n5TFz5kyio6Mv+ky2bdvGPffcQ2Bg4EWvWbFixfUq75qcPn2a/v3706RJEwAMw8DHx4d//vOftG3b\ntlzbeuuttwgICOC2224r82sWLVrE/PnzmTNnTrn2JXK9KMCIXMGcOXOoW7cuAPn5+fztb3/jww8/\n5G9/+9tVbS8hIYH//e9/lwwwAPXq1WPp0qUXBJh169bh4eFxVfu7Gn//+98ZOXIkH3zwAQC7du1i\n8uTJLF++nHr16l23Oq5FvXr1qkxYuRyLxXLBe1i2bBkPPfQQK1euxNHRsczbefzxxyujPBGb0hSS\nSDk4OjrSq1cvDhw4AEBeXh7PPfccgwcPZsiQIbz22msUFRUBcPDgQW699VbCw8MZOXIkmzZtAuDW\nW28lNjaW8PBw8vPzL9pHx44d2bZtGzk5OSX3LVu2jB49epTczs/P5+WXX2bw4MH069evJGgA7Ny5\nk9GjRxMeHs7QoUP56aefgHP/ou/ZsyezZ89mxIgR9OrVi2XLll3yfR4+fJiQkJCS2yEhIaxcubIk\nyL333nv06dOHUaNG8dFHH9GvXz8AnnrqKWbOnFnyuvNvX6muV155hYkTJwLwyy+/MGbMGAYOHMj4\n8eM5deoUcG4k6tFHH6Vv375MnDiRM2fOXKFjl/b9998zZcoUJk+ezBtvvMG2bdu49dZbmTp1aslf\n9suXL2f48OGEh4dzxx13EB0dDcC7777LM888w9ixY5k1a9YF2506dSqffvppye0DBw7Qs2dPiouL\n+c9//sPgwYMZPHgwd9xxB2fPni133UOHDiU3N5fjx48D8M033xAeHk6/fv147LHHyM3NBc597q++\n+iojRoxg+fLlF/ThcsdlcXExL730EjfeeCNjx47l4MGDJfvdvn07N998M0OHDmXIkCEsX7683LWL\nVDhDRC6rZcuWRlxcXMnt1NRUY8KECcbMmTMNwzCMDz/80Lj33nuNgoICIycnxxgzZoyxcOFCo6io\nyBgyZIixZMkSwzAMY/fu3UZYWJiRkZFhbN261RgwYMAl9/fdd98ZTz75pPH3v/+95LUZGRlG//79\njXnz5hlPPvmkYRiG8d577xmTJ0828vLyjKysLGPUqFHG2rVrDcMwjOHDhxtLly41DMMwFixYULKv\nU6dOGW3btjXmzJljGIZhLFu2zBg4cOAl63j44YeNvn37Gp9//rlx9OjRCx47dOiQ0blzZyM+Pt4o\nKCgwHnjgAaNv376GYRjGk08+acyYMaPkueffLq2udu3aGd9//33J+w0LCzM2b95sGIZhLFmyxLj5\n5psNwzCMuXPnGhMmTDAKCgqM5ORko2/fviWfyflK+4x//5xDQ0ONqKiokucHBQUZP/30k2EYhhET\nE2N06tTJOHHihGEYhvHJJ58YkydPNgzDMKZPn2707NnTSEpKumi7P/zwgzFhwoSS2++8844xbdo0\n4/Dhw8agQYOM/Px8wzAMY/bs2caCBQsuW9/vn0ubNm0uuj8sLMw4duyYsWPHDqNbt27GmTNnDMMw\njGeffdZ47bXXDMM497mPGDHCyM3NLbk9Y8aMUo/L9evXG4MGDTIyMzONnJwcY+zYscbEiRMNwzCM\n0aNHG9u2bTMMwzCioqKMxx57rNTaRa4HjcCIXMGkSZMIDw+nf//+9O/fn65du3LvvfcCsH79esaP\nH4/VasXZ2ZkRI0awZcsWTp8+TWJiIsOGDQMgKCiIgIAA9uzZU6Z9Dhs2jKVLlwKwevVq+vbti9n8\nx9d13bp13H777Tg6OuLq6srIkSNZtWoVAAsXLmTIkCEAdOrUqWT0AqCwsJDRo0cD0K5dO2JjYy+5\n/zfffJMJEyawZMkShg8fTr9+/fjqq6+Ac6MjYWFh+Pr6YrVaGT58eJneU2l1FRQUMHDgwJLt+/v7\nl4w4DR8+nOjoaGJjY4mIiGDgwIFYrVY8PT0vmGb7s7i4OMLDwy/47/xzZRo3bkzjxo1Lbjs7O9Ot\nWzcAtmzZwg033ECjRo0AGDduHNu2baOwsBA4NyLl5eV10T5vvPFG9u/fT2pqKgA//vgj4eHheHh4\nkJyczJIlS0hLS2PSpEmMGjWqTJ/b7wzD4JtvvsHf35/GjRuzdu1ahg4dir+/PwC33XZbyTEA0K1b\nN5ycnC7YRmnH5Y4dO+jTpw9ubm44OzuX9ArA29ubhQsXcuzYMRo3bsxbb71VrtpFKoPOgRG5gt/P\ngUlOTi6Z/rBaz311kpOTqV27dslza9euTVJSEsnJybi7u2MymUoe+/0vMR8fnyvus0ePHjzzzDOk\npqbyww8/8OCDD5acUAuQkZHBq6++yttvvw2cm1IKDg4GYMmSJcyePZusrCyKi4sxzvu5M4vFUnLy\nsdlspri4+JL7d3Jy4p577uGee+4hPT2dFStW8MorrxAYGEhaWtoF5+N4e3tf8f2Upa5atWoBkJ6e\nzqlTpwgPDy953NHRkeTkZNLS0nB3dy+538PDg6ysrEvu70rnwJzftz/fTklJueA9uru7YxgGKSkp\nl3zt71xdXenevTvr16+nU6dOpKen06lTJ0wmE++++y6ffvop06ZNIywsjBdffPGK5xMVFRWVfA6G\nYdC8eXNmzpyJ2WwmIyODH3/8kc2bN5c8XlBQcNn3B5R6XKalpeHn53fB/b975ZVXeP/997nrrrtw\ndnbmscceu6A/IragACNSRl5eXkyaNIk333yT999/HwAfH5+Sf20DpKam4uPjg7e3N2lpaRiGUfKX\nRWpqapn/sndwcKBv374sXLiQkydP0qFDhwsCjJ+fH3ffffdFIxBnz57lmWeeYd68ebRp04YTJ04w\nePDgcr3P5ORkDhw4UDIC4uHhwfjx49m0aROHDx/G3d2djIyMC57/uz+HorS0tHLX5efnR9OmTfn+\n++8veszDw+Oy+65I3t7e7Ny5s+R2WloaZrMZT0/PK7528ODB/Pjjj6SkpDB48OCS/nft2pWuXbuS\nnZ3N66+/zr///e8rjmT8+STe8/n5+XHzzTfz5JNPlut9Xe64LO2z9fHx4dlnn+XZZ59l8+bNPPzw\nw/Tq1Qs3N7cy71ukomkKSaQc7rrrLnbu3Mn27duBc1MG8+fPp6ioiOzsbBYtWkSfPn0IDAykbt26\nJSfJRkZGkpiYSHBwMFarlezs7JLpiMsZNmwYH3/88SWXLvfv35958+ZRVFSEYRjMnDmTjRs3kpyc\njKurK02bNqWwsJBvvvkG4LKjFJeSm5vLI488UnJyJ8DJkyfZtWsXnTt3pkOHDkRERJCcnExhYSEL\nFy4seZ6vr2/JyZ+nTp0iMjISoFx1hYSEkJCQwK5du0q283//938YhkFoaChr166lqKiI5ORkNm7c\nWOb3VR49evQgIiKiZJrr66+/pkePHiUjb6Xp27cvO3fuZPXq1SXTMJs3b+bFF1+kuLgYV1dXWrdu\nfcEoyNXo168fq1atKgkaq1ev5qOPPir1NaUdlx06dGDz5s3k5OSQk5NTEpwKCgqYNGkS8fHxwLmp\nR6vVesGUpogtaARGpBxq1arFfffdx+uvv878+fOZNGkSp06dYtiwYZhMJsLDwxkyZAgmk4m3336b\n559/nvfeew8XFxfeeecdXF1dadWqFbVr16ZHjx4sWLCAgICAS+6rS5cumEwmhg4detFjt99+O6dP\nn2bYsGEYhkH79u2ZPHkyrq6u9O7dm8GDB+Pt7c1TTz1FZGQkkyZNYvr06WV6jwEBAbz//vtMnz6d\nl19+GcMwqFWrFk8//XTJyqRbbrmFm2++GU9PTwYNGsSRI0cAGD9+PFOmTGHQoEG0bdu2ZJSldevW\nZa7L2dmZ6dOnM23aNLKysnBwcGDq1KmYTCbGjx9PREQEAwYMICAggAEDBlwwanC+38+B+bM33njj\nip9B3bp1efnll3nwwQcpKCggMDCQadOmlenzq1WrFu3atePQoUOEhoYCEBYWxg8//MDgwYNxdHTE\ny8uLV155BYAnnniiZCVRebRr147777+fSZMmUVxcjLe3Ny+++GKpryntuOzbty/r168nPDwcHx8f\n+vTpQ0REBA4ODowdO5Y777wTODfK9swzz+Di4lKuekUqmsk4fyJaRKScIiIieOKJJ1i7dq2tSxGR\nGkRjgCIiIlLlKMCIiIhIlaMpJBEREalyNAIjIiIiVY4CjIiIiFQ5VXIZdULCpZdNVgRPT1dSUrIr\nbfty9dQb+6S+2C/1xn6pN2Xj6+t+2cc0AvMnVqvF1iXIZag39kl9sV/qjf1Sb66dAoyIiIhUOQow\nIiIiUuUowIiIiEiVowAjIiIiVY4CjIiIiFQ5CjAiIiJS5SjAiIiISJWjACMiIlLNrF+/pkzPe+ed\nt4iNjbns40899VhFlVThFGBERESqkbi4WFavXlmm506d+jgBAfUv+/hrr71dUWVVuCr5UwIiIiJy\naW+//ToHDuyjV68wBg0aQlxcLP/970xeffUlEhLiycnJ4e6776NHj15MmXIfjz32BOvWrSErK5Po\n6JPExJzmkUcep1u3Hgwb1p8ffljDlCn3ERZ2A5GREaSmpvL66//Bx8eHl156ljNn4ggKCmbt2tUs\nWLDsur1PBRgREZFK8u3ao+w4GH/R/RaLiaIi46q2Gdbaj/H9ml/28dtum8T3339LkybNiI4+wcyZ\n/yMlJZkuXboyZMhwYmJO8+yzT9GjR68LXhcff5Z//3s6W7f+xKJF39GtW48LHndzc+Odd97n/fff\nZePGtQQEBJKfn8dHH81iy5ZNfPvtV1f1fq6WAsx5ErOTOHMmlrqWAFuXIiIics3atGkHgLu7BwcO\n7GPx4u8xmcykp6dd9Nzg4FAA/Pz8yMzMvOjxkJAOJY+npaVx8mQUQUEhAHTr1gOL5fr+vpMCzHlm\nbl3AWQ4zNfghWvo0snU5IiJSxY3v1/ySoyW+vu4kJGRU+v4dHBwA+PHHFaSnpzNjxv9IT0/nL3+Z\ndNFzzw8ghnHx6NCfHzcMA7P53H0mkwmTyVTR5ZdKJ/Gep4lzawDm7lls40pERESujtlspqio6IL7\nUlNTqVcvALPZzIYNaykoKLjm/dSvH8ihQ/sB2L5960X7rGwKMOcZ17kr5iwfkoxT7Dpz2NbliIiI\nlFujRk04dOggWVl/TAPdeGM/fvppE1OnPoCLiwt+fn589tnH17Sf7t17kZWVxQMP3MOuXTvx8Kh9\nraWXi8m41DiRnavMYbelu39leeKXeODPK30fu+5DYnJ512vIVcpHfbFf6o39qg69SU9PIzIyghtv\n7E9CQjxTpz7Al19+V6H78PV1v+xjOgfmTyb26c6qWWtJdz/DttN76dogyNYliYiI2B1XVzfWrl3N\nl1/OwTCKefjh63vROwWYP3GwWhgQOIAVqXP57vAPdAlsh9mkmTYREZHzWa1WXnrpVZvtX38zX8LQ\n0PY4ZDQg25TMxqhfbF2OiIiI/IkCzCVYLWaGNRmIUWxi8fGVFBVf3zOrRUREpHQKMJcxIKgVTpmN\nyTOns/LYT7YuR0RERM5TqQHm8OHDDBgwgLlz5wJQUFDA448/ztixY5k8eTJpaeeuBLh48WLGjBnD\nuHHjmDdvXmWWVGZms4mbWwzGKDaz6uQaCoqufc28iIiIVIxKCzDZ2dlMmzaNbt26ldz37bff4unp\nyfz58xk6dCgRERFkZ2czY8YMZs2axZw5c/j8889JTU2trLLKpVfbJrhmNKfAnM2SQ+ttXY6IiEiF\nGTt2BNnZ2cyZM4u9e3df8Fh2djZjx44o9fXr168BYNmyJWzYsK7S6rycSgswjo6OfPzxx/j5+ZXc\nt27dOm666SYAbrnlFvr378+uXbsICgrC3d0dZ2dnOnbsSGRkZGWVVS4mk4nx7QZjFFpZH7uRnMJc\nW5ckIiJSoSZNupP27YPL9Zq4uFhWr14JwNChI+jTp29llFaqSltGbbVasVov3HxMTAwbN27kzTff\nxMfHh+eff57ExES8vLxKnuPl5UVCQkKp2/b0dMVqrbwfjTr/wjlDfdqw8GAb0mrtYXnUBv7afWyl\n7VeurLSLGontqC/2S72xX5XVm5tvvpkZM2YQEBBATEwMDz30EP7+/mRnZ5Obm8uzzz5LcHAwFosZ\nH59aTJs2jcGDBxMWFsbDDz9MXl4enTp1wmIx4+vrzuLFi5k7dy5ms5kWLVowbdo0/vnPt9i9ezff\nfPM5hmHg6enJxIkTeeONN4iMjKSoqIgJEyYwatQoJk2aRPfu3dm6dSspKSl88MEHBARc+48mX9fr\nwBiGQZMmTZgyZQozZ87kww8/pG3bthc950pSUrIrq8RLXh3xlvYD+PDIIdae3MCgRj2p5ehWafuX\ny6sOV66sjtQX+6Xe2N73R5eyM37PRfdbzCaKiq/uQvgd/IIY3Xz4ZR/v3r03ixcvZ8yY8SxatIzu\n3XvTrFkLeve+kV9+2cF7783kX/96k6KiYhITM8nNLSAtLYcvvviWwMBGPPLI46xZs4qiomISEjKI\nj0/htdf+i7u7Ow89dC9bt+5kzJjbMJks3HLLZD755EMcHHL58ccN7Nt3gHff/ZicnBwmT76VDh26\nkp9fCFj597/f4/3332XBgiWMH397md5raSHvuq5C8vHxISwsDICePXty9OhR/Pz8SExMLHlOfHz8\nBdNO9iCkaT28ctphmAv5Zt9yW5cjIiJyWb1792XLlk0AbN68gZ49+7BhwxoeeOAe3n//3ZIFNH92\n4sRx2rcPAaBDh04l93t4ePD0048zZcp9nDwZRVrapc9TPXhwP6GhHQFwcXGhceOmnDp1CoCQkA4A\n+Pn5kZmZecnXl9d1HYHp3bs3mzZtYsyYMezbt48mTZoQEhLCM888Q3p6OhaLhcjISP7xj39cz7LK\nZELHgUzfd4DI5AhG5w7A07mOrUsSERE7N7r58EuOllTm6FjTps1ISkrg7NkzZGRksGnTenx8/Hj2\n2WkcPLif99777yVfZxjnVuACFP82OlRQUMDbb7/BrFlf4u3twxNPPHrZ/ZpMJs6fRCksLCjZnsXy\nx2kfFfUTjJU2ArN3714mTZrEggULmD17NpMmTWLkyJFs2LCB2267jdWrV3Pffffh7OzM448/zj33\n3MNdd93FQw89hLu7/c3ZtmnoQ938UDAV8+WeH2xdjoiIyGV169aTjz6aSa9efUhLS6V+/UAANmxY\nR2Fh4SVf07BhIw4ePABAZGQEANnZWVgsFry9fTh79gwHDx6gsLAQs9lMUdGFF3lt3bodO3f+8tvr\nsomJOU1gYMPKeouVNwLTvn175syZc9H906dPv+i+8PBwwsPDK6uUCjOpSz/ejNzDfmM3Z7MG4e/m\na+uSRERELtKnT1/uv/9uZs36itzcHF5++XnWrVvNmDHjWb16FT/8sPii14SHD+Mf//g7U6c+QHBw\nKCaTidq16xAWdgN/+csdNG/egttvn8T06W/z7rsfcujQQaZPfws3t1oAhISE0qpVax566F4KCwu5\n//4puLi4VNp7NBkVNZZzHVXmSWlXGtZ7dclSTrttpJlrax7renel1SEX0wmJ9kl9sV/qjf1Sb8rG\nbk7irQ4m3tCH4iwPjmUfJDo9xtbliIiI1EgKMOXUwM+dZuYuAHyxZ4mNqxEREamZFGCuwoSuPShO\n9+R03nGOpkTZuhwREZEaRwHmKtTzdqON07nfePpi7+IKWxImIiIiZaMAc5Vu73YDxam+xBfEsDfx\noK3LERERqVEUYK6STx0XQmv1AODr/UspNoptXJGIiEjNoQBzDcZ360Rxcj1SixKIOLP7yi8QERGR\nCqEAcw083Z24wasXhmHiu0PLKCouuvKLRERE5JopwFyj0V2DIakBmcWpbI7ZYetyREREagQFmGvk\n4epIT//eGMVmFh9dRUFRga1LEhERqfYUYCrAyBvaYEpsTK6Rydron2xdjoiISLWnAFMB3Jwd6Neg\nD0aRheVRa8gtzLV1SSIiItWaAkwFGdq5BebE5hSQy4rjG2xdjoiISLWmAFNBXJyshDfpg1HgwNrT\nG8ksyLJ1SSIiItWWAkwFGtipCdaklhRRwNKja2xdjoiISLWlAFOBnBwsDG/Zh+I8Z7bE/kxqXpqt\nSxIREamWFGAqWN/Qhjgnt6bYVMTCw6tsXY6IiEi1pABTwRysZka2601xjisR8RHEZyfauiQREZFq\nRwGmEvQKDsA1tR2GyeC7Q8ttXY6IiEi1owBTCSxmM2NDelKc5cHelD2czoi1dUkiIiLVigJMJbmh\nbV080oMAmH9omY2rERERqV4UYCqJ2WxiXKeuFKV7ciT9MMfTTti6JBERkWpDAaYSdWrlh3d2CADz\nDvyAYRg2rkhERKR6UICpRCaTiVtu6EJRqi/R2Sc5kHzY1iWJiIhUCwowlSyoqTd180MBmH9IozAi\nIiIVQQGmkplMJm7p1pnCpLqczT3DzoQ9ti5JRESkylOAuQ7aNPKkkdEZwzDx/aFlFBUX2bokERGR\nKk0B5joZ3z2EooT6pBQks+3ML7YuR0REpEpTgLlOmgfWprlDGEaxmUVHV1FQXGjrkkRERKosBZjr\naFyPdhSebUhmYTqbTv9s63JERESqLAWY66hxXQ/auYZhFFn44fgacgvzbF2SiIhIlaQAc52N7dmG\nojONyS3OZu2pTbYuR0REpEpSgLnO6vvWIrROF4wCB1adWE9mQZatSxIREalyFGBsYHSPVhTFNaPA\nyOfHE+ttXY6IiEiVowBjA/5ernTxC8PId2Ldqc2k5qXZuiQREZEqRQHGRkb2aE5RbAuKKGLZ8dW2\nLkdERKRKUYCxEZ/aLvQIDKM415Wf4naQkJ1k65JERESqDAUYGxrRrSlGXEsMillyfKWtyxEREaky\nFGBsyNPdib5NwijOcueX+F+JyYyzdUkiIiJVggKMjQ3p2gjOtAZg0dEVNq5GRESkalCAsTEPV0cG\ntOxIUUYd9iUf4HjaSVuXJCIiYvcUYOzAkBsaYjnbBoCFR5ZhGIaNKxIREbFvCjB2wNXZgfD2HShK\n9eFYehQHU47YuiQRERG7pgBjJwZ0CsQhoS0AC48s1yiMiIhIKRRg7ISLk5VhocEUJtXldFYMuxL2\n2rokERERu6UAY0f6dayPS0pbDMPEoqMrKDaKbV2SiIiIXVKAsSOODhZu6tyeooT6xOcmsO1MpK1L\nEhERsUsKMHamV3AAtdLbYhSbWXpsFQXFhbYuSURExO4owNgZB6uZUTe0pSi+Aan5qWyJ2WbrkkRE\nROyOAowd6h5Ul9rZ7TCKLCyLWk1uYZ6tSxIREbErCjB2yGI2M7pbawrPNCarMIv1p7fYuiQRERG7\nogBjp7q08cc3vx1GoQOrTqwjqyDb1iWJiIjYDQUYO2U2mxjdsxWFsU3JK87jx5PrbV2SiIiI3VCA\nsWMdW/oQQDuMfCfWndpMWl66rUsSERGxCwowdsxkMjG6VwsKYppRaBSy4sQaW5ckIiJiFxRg7FxQ\nUy8aO7ajONeVzTHbSMxJsnVJIiIiNqcAY+dMJhOjezen8HRziinmh6gfbV2SiIiIzSnAVAFtGnnS\nwr0txdnubD8TSWzmGVuXJCIiYlMKMFXE6N7NKDjdAoAlx1fYuBoRERHbUoCpIprXr00779YUZdRh\nd+J+otKibV2SiIiIzVRqgDl8+DADBgxg7ty5F9y/adMmWrVqVXJ78eLFjBkzhnHjxjFv3rzKLKlK\nG92rGYWnWwKw+NhyG1cjIiJiO5UWYLKzs5k2bRrdunW74P68vDw++ugjfH19S543Y8YMZs2axZw5\nc/j8889JTU2trLKqtEZ13ekQ0IqiVB8Opx7jYPIRW5ckIiJiE5UWYBwdHfn444/x8/O74P4PPviA\n22+/HUdHRwB27dpFUFAQ7u7uODs707FjRyIjIyurrCpvVM8mFP52LsyiY8sxDMPGFYmIiFx/1krb\nsNWK1Xrh5qOiojh48CBTp07lzTffBCAxMREvL6+S53h5eZGQkFDqtj09XbFaLRVf9G98fd0rbdvX\nytfXnd6t2/FT8nGiOc2J/ON0CQy1dVnXjT33piZTX+yXemO/1JtrU2kB5lJeffVVnnnmmVKfU5YR\nhZSUyvthQ19fdxISMipt+xVhcFggm2a3xOJ5lrk7F9DIsQlmU/U/H7sq9KYmUl/sl3pjv9Sbsikt\n5F23v/XOnj3L8ePH+fvf/8748eOJj49n4sSJ+Pn5kZiYWPK8+Pj4i6ad5EL+nq70aNmcwsT6nMmO\nZ8eZnbYuSURE5Lq6bgHG39+f1atX8+233/Ltt9/i5+fH3LlzCQkJYc+ePaSnp5OVlUVkZCSdO3e+\nXmVVWSO6N8GIawHFZpZGraKwuNDWJYmIiFw3lTaFtHfvXl5//XViYmKwWq2sXLmSd999lzp16lzw\nPGdnZx5//HHuueceTCYTDz30EO7umhe8Eu/azvRp25yN8VEk1z3Jltjt9AnsbuuyRERErguTUQWX\nsVTmvGFVmpdMzczjyf+tx9p+Pe5OLrzY/SmcLI62LqvSVKXe1CTqi/1Sb+yXelM2dnEOjFS8OrWc\n6B/cjIK4xmQUZLL+1GZblyQiInJdKMBUceFdG2JJagaFDvx4cj3ZBZW3QktERMReKMBUcR6ujgzs\n2JSC2CbkFOXyY/QGW5ckIiJqKsOQAAAgAElEQVRS6RRgqoHwLg1wSG0GBU6sO7WZtDzNq4qISPWm\nAFMNuDo7MKRLE/JPN6OguICVJ9fYuiQREZFKpQBTTQzoHIhzVhPIc2VzzDYSc5JtXZKIiEilUYCp\nJpwdrQzv2oT8080pMopYFvWjrUsSERGpNAow1UjfDvVxy2uEkePO9jORxGaesXVJIiIilUIBphpx\ndLBwU/cm5J9qgYHB0qhVti5JRESkUijAVDO9QwKoU9yA4sw67ErYy+GUY7YuSUREpMIpwFQzVouZ\nkT2bUBDdCgwT/9szh7PZCbYuS0REpEIpwFRD3dvXxdchgMKT7cgqzGbmr5+QkZ9p67JEREQqjAJM\nNWQxmxndpxkF8YE4p7QmMTeZD3bPIr8o39aliYiIVAgFmGoqrLUfAzoFknKkEbVyG3MiPZpZ+7+m\n2Ci2dWkiIiLXTAGmGru1fwuCm/mQsKcl7sX12JWwl++PLrV1WSIiItdMAaYaM5tN/PWmdjTw9SB+\nZ1vczV6sO7WZdac227o0ERGRa6IAU825OFmZOjaY2i5uJEQG4WJ247sjS9iVsNfWpYmIiFw1BZga\nwMvDmaljg3Ew3MjcH4rVZOWzfV8SlRZt69JERESuigJMDdG4rgf3jWhHQbo7xskOFBYX8cHuz0jI\nTrJ1aSIiIuWmAFODdGzpy7i+zck444VbUiiZBVnM3P0JmQVZti5NRESkXBRgapjBXRrQJzSAhGP+\neOW0JT47kY92f05BUYGtSxMRESkzBZgaxmQyMWFgS9o29iRmTwN8jKYcSzvB7APf6BoxIiJSZSjA\n1EBWi5kHR7UnwKcWpyKa4W0JIDJ+N4uPrbB1aSIiImWiAFNDuTo7MHVsMO4uzsTuaENtqxc/Rq9n\nU8zPti5NRETkihRgajDfOi48PCYYs+FE6u4QXC2ufHNoIXsS99u6NBERkVIpwNRwzevX5i/D25Cb\n6UTRsU5YzVY+3fsF0emnbV2aiIjIZSnACF3a+HNzryakxrvhFt+FguJC3t/9GUk5KbYuTURE5JIU\nYASA4d0b0719XeKOu+Of04n0/Axm7v6U7IIcW5cmIiJyEQUYAc4tr54c3pqWDeoQtceHBqYgzmSd\n5eM9syksLrR1eSIiIhdQgJESDlYzU0YH4efpwuFtAQQ6NuNw6jHmHpiPYRi2Lk9ERKSEAoxcoJaL\nA4+OC8HN2YHjW5vh7xTAjrORLI1aZevSRERESijAyEXqerkyZXQQFFuIj2yHp6MnK06s4afYHbYu\nTUREBFCAkcto1dCTO4e0JjvLQv6hTrhaXfjq0HccSDps69JEREQUYOTyegTVY3j3RiQmWHE70w0z\nZv63dw6nM2JtXZqIiNRwCjBSqlG9mtKljR/Rxx0JzOlBblEe7+/+jJTcVFuXJiIiNZgCjJTKbDJx\n99A2NAvw4MBuF1paupGal8b7uz8jpzDX1uWJiEgNpQAjV+ToYGHKmGB8ajuz62cPWrqEEJMZx//2\nzKGouMjW5YmISA2kACNlUtvNkaljg3FxsrJvc12auDXnYMoRvjr0va4RIyIi150CjJRZfd9aPDgq\niOJiMye3taCeawA/x+1gxYk1ti5NRERqGAUYKZd2TbyYOLglWdkGWftD8XSqw9KoVWyL+8XWpYmI\nSA2iACPldmNofQZ3acDZ+GJcYrrjYnXmi4PzOZR81NaliYhIDaEAI1dl3I3N6dDCh2PHi2mY1ReA\nj/fOJjbzjI0rExGRmkABRq6K2WzivhHtaOTvzq+7DIIc+5JTmMvMXZ+Slpdu6/JERKSaU4CRq+bk\naOGRscF4ujuxdZOVTh49SclL5f3dn5FbmGfr8kREpBpTgJFr4unuxNSxwTg6WNi+3p2gOqGcyojh\n031f6BoxIiJSaRRg5Jo19HfnryPbUVBkcHBLIM09mrMv6SDfHlmka8SIiEiluOoAc+LEiQosQ6q6\n0OY+3NqvBelZhSTvbkuAWz02x2zlx+j1ti5NRESqoVIDzF133XXB7ZkzZ5b8+bnnnquciqTKGtA5\nkL4d6xMTn4/jqa7UcarNomPLiTj7q61LExGRaqbUAFNYWHjB7a1bt5b8WVMD8mcmk4nbB7SgfVMv\nDhzNoVFWf5wtzszZ/w1HU6NsXZ6IiFQjpQYYk8l0we3zQ8ufHxMBsJjNPDCyPfV93dgamU0np8EU\nY/Dh7lmczYq3dXkiIlJNlOscGIUWKQsXJytTxwbj4ebImg159PIcTHZhDjN2fUp6foatyxMRkWqg\n1ACTlpbGzz//XPJfeno6W7duLfmzyOX41HbhkTHBOFjMrFtrpodvb5Jyk/lg9yzyi/JtXZ6IiFRx\n1tIe9PDwuODEXXd3d2bMmFHyZ5HSNA3w4C/D2zJz4V4iNtahQ88O7EzayWf7vuLeoEmYTVrFLyIi\nV6fUADNnzpzrVYdUU51b+zH2xmbMX3+M0zub0iIond2J+5h/ZAnjWtykaUkREbkqpf4TODMzk1mz\nZpXc/vrrrxk5ciSPPPIIiYmJlV2bVBNDbmhIz+B6RJ/JghOdqOdWlw2nt7Du1CZblyYiIlVUqQHm\nueeeIykpCYCoqCjefvttnnzySbp3786//vWv61KgVH0mk4k7BreidcM67D6STsOsftR2dOf7oz+w\nM36PrcsTEZEqqNQAc+rUKR5//HEAVq5cSXh4ON27d+fWW2/VCIyUi9Vi5qHRQdT1cmX99mS6OA/H\n0eLA5/u/4njaSVuXJyIiVUypAcbV1bXkz9u3b6dr164lt3XugpSXm7MDj44LppaLA0vXpDLAdyRF\nRjEf7p5FfLYCsYiIlF2pAaaoqIikpCSio6PZuXMnPXr0ACArK4ucnJzrUqBUL36erkwZHYTZDD+s\nzGFwwFAyC7KYuesTMvOzbF2eiIhUEaUGmHvvvZehQ4cyYsQIHnzwQWrXrk1ubi633347o0aNul41\nSjXTskEd7hrahpy8QjautXJjQG8ScpL4cM8s8osKbF2eiIhUASbjCj9qVFBQQF5eHrVq1Sq5b/Pm\nzfTs2bPSi7uchITKu5qrr697pW5f/rBocxSLNkfRtL479UIPE5mwiw5+wdzd7vZLXiNGvbFP6ov9\nUm/sl3pTNr6+l7/mXKkjMLGxsSQkJJCenk5sbGzJf02bNiU2NvaKOz58+DADBgxg7ty5AMTFxXHn\nnXcyceJE7rzzThISEgBYvHgxY8aMYdy4ccybN688702qsJt6NKZrW3+Ox2SQd7w9zWs3YWf8bhYe\nW2br0kRExM6VeiG7fv360aRJE3x9fYGLf8xx9uzZl31tdnY206ZNo1u3biX3/fe//2X8+PEMHTqU\nL774gs8++4wpU6YwY8YM5s+fj4ODA2PHjmXgwIHUqVPnWt+b2DmTycRdQ1uTmJ5LxIEkwuv0IcM1\nizXRG/F29qJPYHdblygiInaq1BGY119/nXr16pGXl8eAAQN45513mDNnDnPmzCk1vAA4Ojry8ccf\n4+fnV3Lf888/z+DBgwHw9PQkNTWVXbt2ERQUhLu7O87OznTs2JHIyMgKeGtSFThYLUwZHYRvHWdW\n/HyGG5yH4+5Qi3mHF7Encb+tyxMRETtV6gjMyJEjGTlyJHFxcSxYsIAJEyZQv359Ro4cycCBA3F2\ndr78hq1WrNYLN//7suyioiK+/PJLHnroIRITE/Hy8ip5jpeXV8nU0uV4erpitVqu+OauVmlzblLx\nfIEX7+vO/727ie9+jOP+iROYe/gzPtv3JS/0e4xmXo3+eK56Y5fUF/ul3tgv9ebalBpgflevXj0e\nfPBBHnzwQebNm8fLL7/Miy++SERERLl3WFRUxBNPPEHXrl3p1q0bS5YsueDxK5xTDEBKSna591tW\nOrHKNpzN8ODIdrz97S4++yaGcSNH823UN7yy4T3+r9MUvF281Bs7pb7YL/XGfqk3ZXPVJ/H+Lj09\nnblz5zJ69Gjmzp3LX//6V5Ytu7oTLZ9++mkaNWrElClTAPDz87vgqr7x8fEXTDtJzdGmsReTBrci\nK7eQ5avyuKnJcDLyM5mx61OyCyovtIqISNVTaoDZvHkzf/vb3xgzZgxxcXG89tprLFq0iLvvvvuq\nQsbixYtxcHDgkUceKbkvJCSEPXv2kJ6eTlZWFpGRkXTu3Ln870Sqhd4hAQzp2pCzKTns/MmNvoG9\nOJsdz0d7ZlOga8SIiMhvSr0OTOvWrWncuDEhISGYzRdnnVdfffWyG967dy+vv/46MTExWK1W/P39\nSUpKwsnJqeSaMs2aNeOFF15gxYoVfPLJJ5hMJiZOnMhNN91UatG6Dkz1VmwYvL9wL78cSqB7e39o\nFMnOhD2E1m3LbS3GUcvBzdYlynn0nbFf6o39Um/KprQppFIDzPbt2wFISUnB09PzgsdOnz7N6NGj\nK6jE8lGAqf7yCop448tIouIyGNmrIafdNrA/+RCeTnW4u/0EmtZudOWNyHWh74z9Um/sl3pTNld9\nDozZbObxxx/n2Wef5bnnnsPf358uXbpw+PBh/vvf/1Z4oSK/c3Kw8MiYYLw9nFi0KZrOjsO4pf0I\nUvPS+E/k+6yO3lCmE75FRKR6KnUEZsKECbz00ks0a9aMNWvWMHv2bIqLi6lduzbPPvss/v7+17PW\nEhqBqTlOx2fyytxfKCwy+NcD3UkpOMVn+74kPT+DIJ82TGpzC24OrlfekFQafWfsl3pjv9Sbsrmm\nEZhmzZoB0L9/f2JiYrjjjjt47733bBZepGYJ9KvFA6PaU1RczDMf/MSZaBeeCptKK8/m7Ek8wKvb\n/0tU2klblykiItdZqQHGZDJdcLtevXoMHDiwUgsS+bOgpt5MHRuCs6OFWcsPMn/1ae5tdxfDmgwk\nNS+NtyPfZ030Rk0piYjUIGW6Dszv/hxoRK6X4Gbe/OdvN9K4rjtb9pzhtbk76VSnBw+H3oubgyvf\nH13Kh3s+1/ViRERqiFLPgQkKCsLb27vkdlJSEt7e3hiGgclkYv369dejxovoHJiaydfXndi4NL5a\nc4T1O2NwcbJwz7C2NGvkzKz9X3E45Shezp7c3W4CTWo3tHW5NYa+M/ZLvbFf6k3ZXPUy6piYmFI3\nXL9+/auv6hoowNRM5/fmp71xzF5xiPzCYsJvaMjNvRuz6uRalp9Yg9lkZlTzofQN7KlRw+tA3xn7\npd7YL/WmbEoLMKX+FpKtAorIlXRvX4+Gfu7MWLCHFduiOR6bzv0j+9CsThNm7fuK744s4WjKcSa2\nGYerVimJiFQ75ToHRsSeBPrV4rk7w+jUypfDp1J58bMdmDJ9eLrLo7So05Rdift4bcc7nEw/ZetS\nRUSkginASJXm4mTlwVHtubVfczKyC3jzq1/56dcUHg69lyGNB5Ccm8pbv8xk3anNWqUkIlKNKMBI\nlWcymRjUpSFP3N4BdzcH5q07xswF++gX0I+HQu/BxerM/COL+d/eOWQX5Ni6XBERqQAKMFJttGxQ\nhxfu6kLrhnXYeSSRlz7fgVtBvZIppV8T9mpKSUSkmlCAkWqltpsjj98ayrBujYhPyeFfc35h76Fs\nHg69l/BG/UjOTeGtX2ay/tQWTSmJiFRhCjBS7VjMZsb0acYjY4KxWsx8uuwAc1YeJrzRQB4MuRsX\nqzPzjizif3vnklOoKSURkapIAUaqrdAWPjx/VxgN/WuxcVcc/5rzCz6Whjzd5VGa1W7Crwl7eG37\nO0RnnLZ1qSIiUk4KMFKt+dVx4R8TO9E7pB7RZzN56bMdnIguYGqH+xjcqB+Jucm8FTGDjad/0pSS\niEgVogAj1Z6jg4U7h7ThrqGtKSgqZvp3u1m46QTDmgziwZB7cLI68c3hhXyy7wtNKYmIVBEKMFJj\n9AoO4J+TOuFXx4Uffj7JW1//SqBzE54Oe5RmtRuzM343r+2YzqmM0n9CQ0REbE8BRmqUhv7uPHdn\nZzq08OFgdCovfradxESY2uGvDGrUl8ScJP4d8R4bT/+sKSURETumACM1jquzA1NGBzHuxmakZxXw\nxpc7WRMRw01Nw3kg+K7fppQW8Nm+L8kpzLV1uSIicgkKMFIjmUwmhnRtxP/dFoqbiwNfrz3K+wv3\n0sy9BU+HPUrT2o34JX4Xb+yYzqmMWFuXKyIif6IAIzVaq4aevHBXGC0DaxNxKIGXPo8gK8PKox3u\nZ2DDG4nPSeTfv7zHppitmlISEbEjCjBS49Wp5cTfb+tAeJeGnE3O5uXZEWzfn8Co5kO5P/hOnMyO\nfH3oe2bt/4pcTSmJiNgFBRgRwGoxM75fcx66OQiL2cTHS/cze+UhWtdpzVNdptLEoxERZ3/l9Yjp\nxGTG2bpcEZEaTwFG5DydWvny3OQwAn1rsX5nDK/O/YXiXGf+1vF++jfsTXx2Im9GvMuWmG2aUhIR\nsSEFGJE/8fdy5Z93dKJH+7qcOJPBi7N2sC8qldHNh3N/8J04mB348tB3fL7/a3IL82xdrohIjaQA\nI3IJTg4W7h7WhsnhrcgrKOadebtYsPE47bza8FTYozT2aMiOszt5Q1NKIiI2oQAjchkmk4k+ofX5\nx6SOeNd2ZslPJ/jPt7/iYLjxt473069BL85mJ/BmxLv8FLtdU0oiIteRAozIFTSu68Hzd4UR0syb\nfSdSePGzHZyMy2JMixHcFzQZq9mBLw7O5/P932hKSUTkOlGAESkDN2cHHh4bzOjeTUnNzOO1LyJZ\nHXGKYJ+2PB02lUYeDdhxNpI3It4lNvOMrcsVEan2FGBEyshsMjG8e2MevyUUV2crX64+woeL9+Fm\n8eCxjg/Qt0FPzmbH80bEu/wcu8PW5YqIVGsKMCLl1LaxFy/c1YXm9Wuz/UA80z6P4GxyHmNb3MS9\nQXdgNVuYe3Aes/d/Q15Rvq3LFRGplhRgRK6Cp7sTT9zegUFhDYhLyublzyPYtv8sob7teSrsURq6\nB7LtzC+8sWO6ppRERCqBAozIVbJazNzavwUPjGoPJvhw8T6+WHWYOo51eKzTg9wY2IMzv08pxUXY\nulwRkWpFAUbkGoW19uO5yZ2p7+PGmsjTvPZFJBmZhYxrOZJ72086N6V04Fvm7P9WU0oiIhVEAUak\nAtTzduOZOzrTtZ0/x2PTeeGzHeyNSiLUL4inwqbS0L0+W89E8EbEu8RlnbV1uSIiVZ4CjEgFcXK0\ncO/wtkwa1JLc/EL+880uFm+OwsvZi8c6PUSfwO6cyTrLGzum81PsDoqNYluXLCJSZSnAiFQgk8lE\n346BPD2xE14eTizcHMV/5+0iL89gfMtR3NN+ImaThS8OzuONiHc5mHzE1iWLiFRJlhdeeOEFWxdR\nXtnZlXcegZubU6VuX65eVeqNp7sT3dvX41RCJnuPJ7P9wFlaBNahbd2GdPYPIaMgk4PJR9h+JpLj\nqSeoV8uf2k4eti77qlSlvtQ06o39Um/Kxs3N6bKPKcD8iQ4q+1XVeuPoYOGGtv6YTSZ+PZLIlr1x\n1HJxoE0DPzr4BRPk04bk3BQOphxhS+w2zmbFE1irPm4OrrYuvVyqWl9qEvXGfqk3ZaMAUw46qOxX\nVeyNyWSiVUNPmtX3YNfRJCIOJRCfmkP7Jt54u9ahS92ONKvdmDNZZzmYcoSNMT+TWZBJQ/dAnCyO\nti6/TKpiX2oK9cZ+qTdlowBTDjqo7FdV7o2fpytd2vhzLDaNPceT+eVQAt4ezvh7ueDr6k33gC7U\nc/MjOiOGA8mH2RTzM4VGEQ3d62M1W21dfqmqcl+qO/XGfqk3ZaMAUw46qOxXVe+Nq7OV7u3rkptf\nxJ7jSWzbf5aD0akE+Ljh5eFMQK269KrfFQ9Hd6LSTrIv6SA/x+7AweJAYK16mE32ec59Ve9Ldabe\n2C/1pmxKCzAmwzCM61hLhUhIyKi0bfv6ulfq9uXqVafexCRm8d36Y/x6NBGAzq39GNOnKf6e585/\nyS3MZc2pTayJ3kBeUT4+Lt7c1HQwHfyC7S7IVKe+VDfqjf1Sb8rG19f9so8pwPyJDir7VR17cyg6\nhW/XHSUqLgOL2cSNHeozokdjPFzPnf+SkZ/J8hNr2ByzlaLfppRGNhtKa68WNq78D9WxL9WFemO/\n1JuyUYApBx1U9qu69sYwDCIOJfDd+mPEp+bg7GhhSNdGDAprgJODBYCE7CSWRq0k4uyvALTxasnI\nZkNo4F7flqUD1bcv1YF6Y7/Um7JRgCkHHVT2q7r3prComPU7Y1i85QSZOQXUqeXIqF5N6RFUF4v5\n3LRRdMZpFh1dzsGUcxfA6+wfyoimg/Fx8bZZ3dW9L1WZemO/1JuyUYApBx1U9qum9CYnr5Dl206y\navsp8guLCfBxY+yNzQhp5o3JZALgQPJhFh1bzqmMGCwmCz3rd2VI4/64O9a67vXWlL5UReqN/VJv\nykYBphx0UNmvmtablIw8Fm0+zqbdcRgGtGxQh/F9m9M04NwVe4uNYiLjd7Pk2AoSc5NxsjgyoGEf\n+jXojbP18mfuV7Sa1peqRL2xX+pN2SjAlIMOKvtVU3sTk5DJ/PXH2HUsCYCw31Ys+f22YqmwuJAt\nsdtZFvUjmQVZuDvUYmiTAfQIuAGL2VLp9dXUvlQF6o39Um/KRgGmHHRQ2a+a3psrrVj6fen16ugN\n5Bfl4+vizYim4XTwC6rUpdc1vS/2TL2xX+pN2SjAlIMOKvul3pxbsbTjYDzfbzhesmJpaNdGDDxv\nxVJ6fgYrTqxhU8xWio1iGroHMrLZkEpbeq2+2C/1xn6pN2WjAFMOOqjsl3rzh7KsWIrPTmTp8ZX8\nEr8LqLyl1+qL/VJv7Jd6UzYKMOWgg8p+qTcXK8uKpej00yw6VnlLr9UX+6Xe2C/1pmwUYMpBB5X9\nUm8uLyUjj4WbjrN5z7kVS60a1GHceSuW4Lel10eXcSozFovJQq/6XQmvgKXX6ov9Um/sl3pTNgow\n5aCDyn6pN1d2pRVLf1567WxxYkDDPvRt0Ouql16rL/ZLvbFf6k3ZKMCUgw4q+6XelN2VViwVFhey\nOXYby6NWn1t67ViLoY2vbum1+mK/1Bv7pd6UjQJMOeigsl/qTfn8vmLpuw3HSEjNveSKpdzCXNZE\nb2T1qY0XLL3u6Bdccg7Nlagv9ku9sV/qTdkowJSDDir7pd5cncutWOoZVA+z+VxISc/PYHnUGjbH\n/rH0elSzobTyan7F7asv9ku9sV/qTdkowJSDDir7pd5cm+zccyuWftxxbsVS/d9WLAWft2Lp0kuv\nh9LAPeCy21Vf7Jd6Y7/Um7JRgCkHHVT2S72pGJdasTS+X3Oa1PtjxVJ0+mkWHlvGoZSjAIT5d2B4\n08H4uHhdtD31xX6pN/ZLvSmb0gKM5YUXXnihsnZ8+PBhbrnlFsxmM8HBwcTFxfHggw8yf/58Nm7c\nSP/+/bFYLCxevJh//OMfzJ8/H5PJRLt27UrdbnZ2fmWVjJubU6VuX66eelMxXJysdGjhS6dWviSl\n57L/RAobd8USm5hFI/9auLk4UNvJgxvqdaJp7UbEZZ7hQMoRNsX8TFZBNg3c6+NkcSzZnvpiv9Qb\n+6XelI2b2+VXR1baCEx2djZ//etfady4Ma1atWLixIk8/fTT9O7dmyFDhvD2229Tt25dRo0axc03\n38z8+fNxcHBg7NixzJ07lzp16lx22xqBqZnUm8px8GQK89b/sWKpb4f6DD9vxVKxUUzk2V0sPr6S\npJKl1zfSr2EvnCyO6osdU2/sl3pTNjYZgTGZTAwfPpxDhw7h4uJCcHAwr7zyCs899xwWiwVnZ2eW\nLFmCn58fSUlJjBgxAqvVysGDB3FycqJJkyaX3bZGYGom9aZy+NRxoXdIAAE+bpw4k87eqGTW74zB\nMKBRXXccLBYCatWjV/2uuDvU4njaCfYmHeCnuO04mh1p6d+Y3JwCW78NuQR9Z+yXelM2pY3AWCtr\np1arFav1ws3n5OTg6HjuX3Xe3t4kJCSQmJiIl9cf8+peXl4kJCSUum1PT1es1vJdq6I8Skt8Ylvq\nTeUZ5ufBoO5NWf5zFF+vOsz3G4+z/tdYJoa3pl9YQyxmE+P8wxkW1Ielh1az5NAavjm8gA2xmwlv\ncSO9G99ALUc3W78N+RN9Z+yXenNtKi3AXMnlZq7KMqOVkpJd0eWU0LCe/VJvro9urf0IaexVsmJp\n+re/8t3aIxesWOrrfyOdPDuxPGoNW+K2MWvnPL7YtYAOfsH0CLiBZrUbl/k6MlJ59J2xX+pN2ZQW\n8q5rgHF1dSU3NxdnZ2fOnj2Ln58ffn5+JCYmljwnPj6e0NDQ61mWiPyJq7OVMX2a0a9jYMmKpXfm\n775gxZKHozu3tBrFpM4j+WHvBrbEbmP7mUi2n4mkrqsfPQK60KVeJ2o5aFRGRCqe+XrurHv37qxc\nuRKAVatW0atXL0JCQtizZw/p6elkZWURGRlJ586dr2dZInIZnu5O3DW0DS/e3YXgZt4cOpXKtM8j\n+GDRXuJ/Gwmt7ezBwEY38nzXJ5ja4a909g8lMSeJ744u5Z+bX+azfV9yJOVYmUZXRUTKqtJWIe3d\nu5fXX3+dmJgYrFYr/v7+/Pvf/+app54iLy+PgIAAXn31VRwcHFixYgWffPIJJpOJiRMnctNNN5W6\nba1CqpnUG9s7ePLcbyydOPPHiqU7b2pPfs6FJyNm5mex7cwvbIndxtnsc+e0+bn60CPgBm6o2+ma\nfwFbykbfGful3pSNLmRXDjqo7Jd6Yx+KDYOIg/HMX3+MxLRcXJysdG9Xlz6hAQT6XRhMDMPgaGoU\nW2K3szNhN4XFhVhMFkJ929Mj4AZaeDbFbLquA8E1ir4z9ku9KRsFmHLQQWW/1Bv7UlhUzLqdMazc\nHk1yeh4AzQI86B0aQJfW/jg5XrhSMKsgm+1nItkcu40zWWcB8HXxpntAF7rW64yHo1ZkVDR9Z+yX\nelM2CjDloIPKfqk39snTy401W0+wcVcse44lYQAuTha6tqtLn5AAGvpf+D8gwzCISj/J5phtRMbv\noqC4ELPJTIhPO3rUv9rbx60AAB5VSURBVIFWns01KlNB9J2xX+pN2SjAlIMOKvul3tin8/uSmJbD\n5t1xbNodR0rGuVGZJvU86BMaQJc2fjg7XrjwMbsgm+1nd7IlZhuxWWcA8Hb2osdvozK1nTyQq6fv\njP1Sb8pGAaYcdFDZL/XGPl2qL0XFxew5lsyGX2PYfTwJwwBnxz9GZRrVvXhU5kT6KbbEbuOXs7+S\nX1yA2WQmyKctPQJuoI1XC43KXAV9Z+yXelM2CjDloIPKfqk39ulKfUlOz2XT7jg27ootGZVpVNed\nPqEB/9/evce2eRVsAH/s2E7ie2I7cZxb01x6SZq03bqxrqMgNiYxiYkN6CgN+wsJbfwBKmhTYTdA\nSJ2ExGXTADGkqWhaYRcGAsZAsH79uq7dvrRpmy1NmqZpYse3xHF8ie/v94cdJ26y1l6b+Lh5ftKU\n1XHS4z3nTZ6d9/h9cfumWlSWX3HF7sQc3neexjHHCUwEHQCA6ooq7KzbgTtsO2AsN6zci7nJ8JgR\nF7PJDwtMATipxMVsxJRvLqmUhLMXp3DktAP9I15IElCuLMPtm2uxe6sN66y6nKv3SpKEy4EJHHOc\nwPuu04glY5BBhi7zJuyy3Y7Npg1clbkGHjPiYjb5YYEpACeVuJiNmD5JLr5AFEfPOHC034GpzDuY\nmmq12L21Hp/avHRVJpKI4ANXelXmcsAOAKgqN+IO2w7srNuBqoqPv3v9WsZjRlzMJj8sMAXgpBIX\nsxHT9eSSSkkYuDSNI6cdOD3sRUqSoFLKcfumWuzeWo+WOt2SeyqlV2VO4gPnKUSSUcggQ6dpA+60\n3Y5O00aUyVfuRq+lhseMuJhNflhgCsBJJS5mI6YblctMMIr/zeyV8fojAIDGGi12b7XhU5utUFdc\nuSoTRZ+7H8ccJ3Fp9jIAwKDSZ1dlTJXVS/6OtYbHjLiYTX5YYArASSUuZiOmG51LSpLw4aJVmWRK\ngkohx45NNdi9tR6tNv2SVZmJgAPHHCdx0tmHSDICGWTYVN2BO+tvxxbTpjW7KsNjRlzMJj8sMAXg\npBIXsxHTSubiD8Vw7Owkjpy2wzOTXpWpt2iwu8eGO7qs0FQoc54fS8bQ5z6DY44TuOgfAwDoVTrc\nUbcDO223wbzGVmV4zIiL2eSHBaYAnFTiYjZiWo1cUpKEwTEfjpx2oG/Ig2RKglIhx46NNdi91Ya2\nesOSVRlH0IljjhM44ezDXGIOALCxqh131t+ObvNmKOSK5f6qmwqPGXExm/ywwBSAk0pczEZMq53L\nbCiGY+cmceS0A25fupjYzAurMtrKK1dl4jjlPoNjjpMY8Y8CAHRKLT5Vdyt22m5Djdq8amNfbTxm\nxMVs8sMCUwBOKnExGzEVKxdJkjB4eQZHTtvRN+RBIilBUSbHjo0W7N5aj/aGpasyzpALxxwncWLy\n/xBKhAEAHVVt2GW7Dd2WLihvslUZHjPiYjb5YYEpACeVuJiNmETIZTYcw7tnnTjS74BrOl1M6kxq\nfLrHhp1dVujUqpznx5Nx9HvO4X8dJzA8cxEAoFVqcLv1Ftxm3Y56bd2S8lOKRMiGlsds8sMCUwBO\nKnExGzGJlIskSRgan8GRfgc+GPQgkUxBUSbDLRtqsLvHhg1NxiXFxBVy49hkelUmGA8BSN9QssfS\niW5zJ1qN60r2ir8iZUO5mE1+WGAKwEklLmYjJlFzCc7F8e45J46ctmNyKr0qU1utxu4eG3ZusUJ/\n5apMKoGz3g/R7zmHc95BRJLpdz1plRp0mTdhq6ULG6raoSpTLvm7RCVqNsRs8sUCUwBOKnExGzGJ\nnoskSRie8OPIaQfeH3QjkUyhTC7DLRss6VWZ5irIr1iVSaQSGPKNoN87gLOeAfhj6denkiux2bQB\n3eZObDFvglqpLsZLypvo2axlzCY/LDAF4KQSF7MRUynlEpyL4/iAE/9z2gG7N326qKaqErt7bLhz\nSx30GtWSr0lJKYzNjqPfM4B+7zm4w14AgFwmR7txPbotnegxdwp5P6ZSymatYTb5YYEpACeVuJiN\nmEoxF0mSMGKfxZHTdpwcdCOeSK/KbGs3444uKzrXVUOlXP7qvc6QG/2ec+j3DmBsdjz7eJOuIbtv\npk5TK8Qm4FLMZq1gNvlhgSkAJ5W4mI2YSj2XcCSO4wMuHDltx4QnvSqjUsrR1WLC9g4zulvNS64t\nM28m6scZzwD6PQMYmhlBSkoBACyVJvRYutBj6cQ6fVPRNgGXejY3M2aTHxaYAnBSiYvZiOlmyUWS\nJFxyBvB/5z3oG/LAmXk7tlwmw4YmI7Z3WLCt3YxqfcWyXx+Oz2FgahD9nnMYmD6PWDIGANCptOg2\nb0aPpQsdVW2req2ZmyWbmxGzyQ8LTAE4qcTFbMR0s+YyORVC35AHp4a9uOiYzT7ebNVhe4cF29vN\nsJk1y54qiifjOO+7gH7PAM54B7Jvzy4vU6HTtBE9li50mjagUlG5oq/hZs3mZsBs8sMCUwBOKnEx\nGzGthVx8gShOD3vQN+zF4JgPyVT6x2ZNVWWmzFiwvl6/5N1MQHoT8EX/WOZU0zl4I9MAgDJZGTqq\nWrP7Zgzl+hs+7rWQTaliNvlhgSkAJ5W4mI2Y1lou4UgcZ0am0DfsxdmRKUTjSQCAXqPCtnYztrVb\nsKm5CkrF0n0vkiTBEXKmy4x3AOMBe/ZzLfqm7DuaajU1N2Ssay2bUsJs8sMCUwBOKnExGzGt5Vzi\niSQ+vOTDqeH0qaZAOA4AqFCVobvVhG3tFmxZb4K6Yvl9L1NzPpzxDuCMZwAX/KPZTcBWdU26zFg6\n0aRr+MSbgNdyNqJjNvlhgSkAJ5W4mI2YmEtaKiXhgt2PU8PpTcCemfSVfMvkMmxqrsL2Dgu2tpth\n1JYv+/XBeAjnvB/hjGcAH04PIZ5KlyFjuQHd5s3otnSi3bgeigI2ATMbcTGb/LDAFICTSlzMRkzM\nZSlJkmD3hNA37MGpIS/GXAv/fVptemzrsGB7hwXW6uWv5BtLxvDR9HDmtgYfZe+cXamoQJdpE7ot\nndhcvQEViuXL0DxmIy5mkx8WmAJwUomL2YiJuVyb1z+HU8NenBryYGjcj1Tmx26dSZ3eBNxhQbNV\nt+wm4GQqiRH/JZzxDOC05xx80RkAgEKuwMaqNvRYurDFvBk6lXbJ1zIbcTGb/LDAFICTSlzMRkzM\npTDBuTj6L3jRN+TBwOg0Yon0vpcqXTm2tpuxvcOCDY1GKMqW3wQ8EXSkb2vgOQdHyAkAkEGG9Ybm\nzCbgLljUJgDMRmTMJj8sMAXgpBIXsxETc/nkovEkBkancWrIg9MXvAhFEgAAdbkC3W0mbG+3oGt9\nNSpUy+978YSncMabvhLwRf8lSEj/OLdprOixdOKutluhTRhRJl/+tghUPDxu8sMCUwBOKnExGzEx\nlxsjmUphaNyPU0MenBr2YGo2CgBQlMnRua4K2zKbgPXqpTecBIBALIiz3g/R7xnAoG8YiVS6DKnK\nVFivb0arcR1aDS1oMTRBVbb896DVw+MmPywwBeCkEhezERNzufEkScJlVzBzJWBP9h5NMhnQXm/A\ntg4LtnVYUGNc/kq+kUQUH06fx9jcGM45h+AMubKfk8vkaNI1oNW4Dm2GFrQaW6BRLr+ZmFYOj5v8\nsMAUgJNKXMxGTMxl5bl8YZwa8uLUsAcXJvyY/6HdYNFie0f64nlNtdoltzWYzyYYC2HEfwkjM6O4\n4B/FeMCeveYMANRpatFqbEGboQVtxhZUVRhX8dWtTTxu8sMCUwBOKnExGzExl9XlD8Wym4A/vDSN\nRDL9I9ykr8C2DjO2t1vQ3mhAmVz+sdlEkzGM+seypWbUP4ZY5rozAFBdUYVWQwvajOvQZmxBrbpm\n2Xs+0SfH4yY/LDAF4KQSF7MRE3MpnrloAucym4D7R6YwF03ve9FWKtHTZsJd2xth1ZdDr7n6npdk\nKonxoB0XZkYxMnMJI/5RhOLh7Oe1Sg1aDevQamxBq3EdGrX13Bh8nXjc5IcFpgCcVOJiNmJiLmJI\nJFMYvOzDqSEv+oY98Adj2c9Zq9XoaDSgvcGIjkYjzIaKq66opKQUXGFPptCM4sLMaPb6M0B6Y3CL\nvil72okbgwvH4yY/LDAF4KQSF7MRE3MRT0qSMDo5izFPCKcH3bhg9yMSS2Y/X6UrR3uDAR2NRnQ0\nGGGzaJa9iN5i0xHfQqHxX+LG4OvE4yY/LDAF4KQSF7MRE3MR13w2yVQKE+4QhsZnMDQxg6HxmeyN\nJwFAU6FAe4MR7Y0GdDQY0WzVLXshvcW4Mfj68LjJDwtMATipxMVsxMRcxPVx2UiSBOd0GMMT/nSp\nGZ+B1x/Jfl6lkGO9TY+ORiPaG41otek/9mJ686LJGC75L+OCf5Qbg/PA4yY/LDAF4KQSF7MRE3MR\nVyHZ+ALR7ArN8PgM7J5Q9u3acpkMzVYt2huM2JApNdpK5VW/37U2BmuUarQa0puC24wta25jMI+b\n/LDAFICTSlzMRkzMRVzXk00oEsfwhB/DmVJzaTKAZGrh14XNrEFHgwHtmX00JkPFVb8fNwbn4nGT\nHxaYAnBSiYvZiIm5iOtGZhONJ3HRMZstNCP2WUTjCxuDTfrybJlpbzTCZlJf8xRRIRuD1xvXQavU\n3JDXIgIeN/lhgSkAJ5W4mI2YmIu4VjKbRDKFcXcwu4dmeMKP4NzCnhdtpRLtDem3bm9oMqKpVosy\n+TU2BsdD6dNNM6MY8V/C5cBEzsZgU0U1GnU2NGjr0aizoVFXD0O5fkVe30rjcZMfFpgCcFKJi9mI\nibmIazWzkSQJk1Ph7LuchsdnsjekBIByZRla6/XZFZr1Nj3KlVff87J4Y/CofwzjATuC8VDOc/Qq\nHRp0NjRq69GoSxcbU0W18BuEedzkhwWmAJxU4mI2YmIu4ip2NlP+SHZT8NCEHw7vQvkok8uwzqrL\nnnZqazBcc2OwJEmYifoxEXTgcsCOiYAD4wF7zl4aAKhUVKBBa8sUmno0aG2oVVuE2iRc7GxKBQtM\nATipxMVsxMRcxCVaNoFwDBcm/JlVGj/GnAGkFv0KqrdoMis06evRVOuvvjF4XjAeypaZ8YAdE0EH\n3GEvJCx8b6VcgXqtLbNaky43No0VyrKrl6aVIlo2omKBKQAnlbiYjZiYi7hEzyYaS2LEsXAtmouO\nWcQSC3tezIaK9NWCG41obzCgtlp9zSsGz4skorAHJzEezJSagAOOkDNnT41cJkedpjZntaZeW4dK\nRX7F6XqIno0oWGAKwEklLmYjJuYirlLLJpFMYcwZyJx28mN4YgahSCL7+XJVGRprtGiu0aHJqkVz\nrQ42s+aaVw2eF08lMBlyLlqtccAedORccA8AairNOftqGnQ26FTaG/paSy2bYmGBKQAnlbiYjZiY\ni7hKPZuUJMHhDWF4fAYX7H5cdgXhmAph8W+tMrkM9RYNmmp1aK7VoalWi8Ya7TWvHLzwd6TgDnsw\nPl9qgg5MBOwIJ+ZynmcsNyx6B1R6s3BVufETbxYu9WxWCwtMATipxMVsxMRcxHUzZhOLJzHhCWHM\nFcDlzD8TnhDii049yQDUVqvRVKvNlJp0sdGp87swniRJmI74MB50ZE4/pVdr/LHZnOdplGo0atMr\nNI26ejRqbbCozZDLrr0idDNmsxJYYArASSUuZiMm5iKutZJNMpXC5FQ4U2iCuOwKYMwVxFw0kfO8\nKl15dpVmfsWmWl+e9yrKbCyQXamZyKzWeOemcp6jKlNl9tTYMuWmHnWaGijkuStCayWb68UCUwBO\nKnExGzExF3Gt5WwkSYLHH8FlZwCX3eliM+YKwB+M5TxPU6HIOf3UVKuDtVoNuTy/UjOXmEvvqcmu\n1jjgDLtzNgsrZGWo01rRqLWhIbNZuLu5DcGZ+FW+MwEsMAVZywe86JiNmJiLuJjNUv5QLHvqacwV\nxGVnAO6Z3P0uKqUcjRZt9tRTs1WHerMWSkV+m4VjyTgcoclFqzUO2EOTSKSuWBEqN8KqqUGdpnbh\no7oGaqX6hr3eUscCUwAe8OJiNmJiLuJiNvkJRxIYd+eefpqcCuXcvLJMLkOdSYPm2oVi01SrQ2V5\nfpuFk6kknGF39h1QU/EpXJ5xYCbqX/Jcg0qHWk0t6jQ1sKozHzW1N/ydUKWABaYAPODFxWzExFzE\nxWw+uXgiCbs3lD715Eyv2Iy7gznXqQGAGmNldpWmKbNh2KC59mbh+WzmEnNwhtyYDLnhDLkwGXbB\nGXJjOuJb8jVapQbWTJmpUy+s2uhVOuFvnfBJscAUgAe8uJiNmJiLuJjNjZVKSXBOL2wWnn8n1OJr\n1QCAQata2FNTo0OTVQeLoSKnZFwrm0giCnfYg8mQC86wO/0x5IJ3bjrnCsMAUKmoXLJaU6ephbHc\nUPLFhgWmADzgxcVsxMRcxMVsVp4kSZiejS56W3e62PgC0ZznVZYr0FQzv1KjxZaOWpTLJKiucUPL\nK8WScbjDnsxqTWbVJuSGZ86bs3EYAMrLVLAuWqmZ/1hdUZXXW71FwAJTAB7w4mI2YmIu4mI2xTMb\njmE8u6cmXWxc0+GctROZDLAYK2EzaVBv0cBm0sBm1sBqUl/zTt1XSqQScIe9Oas1zpAb7rAHCSmZ\n81ylXAmr2gKrpjazWpNetTFXVAt1w0uABaYgPODFxWzExFzExWzEEoklMO4O4rIriOlQDCPjM3B4\nQwjO5b6dWgbAbKxIF5pMsam3aFBXrUG5qrCCkUwl4Y1MZ1dqnPPlJuxG/Ip3RSlkZahRW7KrNfOn\noiyVpiXXsVktLDAF4AEvLmYjJuYiLmYjrsXZzIZicHhDcEyFYPeGMOlNfwyEl14nxmyogM2cXqnJ\nFhuTOu9bJ8xLSSlMR3yZ1Rr3wsewC7Fk7rVy5DI5LJXmhf016vTHWrVlxe/mfbUCs6qVKhQK4bHH\nHoPf70c8Hsejjz4Ki8WCp59+GgCwYcMGPPPMM6s5JCIioqLSa1TQa1TY2FyV8/hsOIZJbyhdbrzh\nbME5MzKFMyO5VwA26cthM2thM6tzCs7Hvc1bLpPDXGmCudKELebN2cclSYIvOpOzWjMZcsMZdsEV\ndgOec9nnyiCDubIat1m34wst99zA/yL5WdUC88Ybb6ClpQX79++Hy+XCww8/DIvFggMHDqC7uxv7\n9+/HkSNHsHv37tUcFhERkXD0ahX0TSpsaMotNsG5eKbUpP+xZ1Zvzl6cwtmLucWmWl+e3VuzuNio\nK5b/9S+TyVBdUYXqiip0mjZkH5ckCbOxQM5Kzfw+m7HZ8Rv/4vOwqgWmqqoK58+fBwDMzs7CaDTC\nbreju7sbAPDZz34Wx48fZ4EhIiL6GNpKJToajehoNOY8HoosLjZhOLxBOKbCODc6jXOj0znPrdKV\nw2ZSL1m10VQsf0pIJpPBUK6HoVyPjdXtK/baCrGqBea+++7D66+/jnvuuQezs7N44YUX8KMf/Sj7\neZPJBI/Hc83vU1WlhkKxcjulr3bOjYqL2YiJuYiL2YjrRmdjAbCusXrJ48G5OCbm3+btDGA88+8D\nl3wYuJR7wbxqfTkaa3VosurTH2vT17HJ907eq2lVC8ybb74Jm82GF198EYODg3j00Ueh0y0EmO9+\nYp8vvFJD5KY3gTEbMTEXcTEbca12NiaNEqb11di2fqHgzEUTcEyFlqza9A970T/szfl6vUaFevP8\nW70XVmxWutgIs4m3r68Pu3btAgBs3LgR0WgUicTC27hcLhdqampWc0hERERrUmW5Aq02A1pthpzH\n56IJOKfDsHtCOQXnozEfPhrLXbHRq5XYuaUOX/1s22oOHcAqF5jm5mb09/fj3nvvhd1uh0ajQX19\nPT744APceuutePvtt9Hb27uaQyIiIqJFKssVaKnTo6VOn/N4NJbE5HRoodhkPk7PRooyzlUtMHv2\n7MGBAwewb98+JBIJPP3007BYLHjyySeRSqXQ09ODnTt3ruaQiIiIKA/lqjKss+qxzqq/9pNXwaoW\nGI1Gg1/84hdLHn/55ZdXcxhERERU4krjbk5EREREi7DAEBERUclhgSEiIqKSwwJDREREJYcFhoiI\niEoOCwwRERGVHBYYIiIiKjksMERERFRyWGCIiIio5LDAEBERUclhgSEiIqKSwwJDREREJUcmSZJU\n7EEQERERFYIrMERERFRyWGCIiIio5LDAEBERUclhgSEiIqKSwwJDREREJYcFhoiIiEoOC8wiP/3p\nT7Fnzx489NBDOHPmTLGHQ4s8++yz2LNnDx588EG8/fbbxR4OLRKJRHD33Xfj9ddfL/ZQaJG//OUv\n+OIXv4gHHngA77zzTrGHQwBCoRC+/e1vo7e3Fw899BCOHj1a7CGVNEWxByCKkydPYmxsDIcPH8bI\nyAgOHDiAw4cPF3tYBOC9997D8PAwDh8+DJ/Phy996Uv4/Oc/X+xhUcYLL7wAg8FQ7GHQIj6fD88/\n/zxee+01hMNh/OpXv8JnPvOZYg9rzXvjjTfQ0tKC/fv3w+Vy4eGHH8Zbb71V7GGVLBaYjOPHj+Pu\nu+8GALS2tsLv9yMYDEKr1RZ5ZLRjxw50d3cDAPR6Pebm5pBMJlFWVlbkkdHIyAguXLjAX46COX78\nOO644w5otVpotVr8+Mc/LvaQCEBVVRXOnz8PAJidnUVVVVWRR1TaeAopw+v15kym6upqeDyeIo6I\n5pWVlUGtVgMAXn31VXz6059meRHEwYMH8fjjjxd7GHSFiYkJRCIRfOtb38LevXtx/PjxYg+JANx3\n331wOBy45557sG/fPjz22GPFHlJJ4wrMx+AdFsTz73//G6+++ip+//vfF3soBODPf/4ztm7disbG\nxmIPhZYxMzOD5557Dg6HA9/4xjfw3//+FzKZrNjDWtPefPNN2Gw2vPjiixgcHMSBAwe4d+w6sMBk\n1NTUwOv1Zv/sdrthsViKOCJa7OjRo/j1r3+N3/3ud9DpdMUeDgF45513MD4+jnfeeQdOpxMqlQpW\nqxU7d+4s9tDWPJPJhG3btkGhUKCpqQkajQbT09MwmUzFHtqa1tfXh127dgEANm7cCLfbzdPh14Gn\nkDLuvPNO/POf/wQADAwMoKamhvtfBBEIBPDss8/iN7/5DYxGY7GHQxk///nP8dprr+GPf/wjvvKV\nr+CRRx5heRHErl278N577yGVSsHn8yEcDnO/hQCam5vR398PALDb7dBoNCwv14ErMBnbt29HZ2cn\nHnroIchkMjz11FPFHhJl/P3vf4fP58N3vvOd7GMHDx6EzWYr4qiIxFVbW4t7770XX/3qVwEAP/zh\nDyGX8/9Xi23Pnj04cOAA9u3bh0QigaeffrrYQyppMombPYiIiKjEsJITERFRyWGBISIiopLDAkNE\nREQlhwWGiIiISg4LDBEREZUcFhgiWlETExPo6upCb29v9i68+/fvx+zsbN7fo7e3F8lkMu/nf+1r\nX8OJEyc+yXCJqESwwBDRiquursahQ4dw6NAhvPLKK6ipqcELL7yQ99cfOnSIF/wiohy8kB0Rrbod\nO3bg8OHDGBwcxMGDB5FIJBCPx/Hkk09i8+bN6O3txcaNG/HRRx/hpZdewubNmzEwMIBYLIYnnngC\nTqcTiUQC999/P/bu3Yu5uTl897vfhc/nQ3NzM6LRKADA5XLhe9/7HgAgEolgz549+PKXv1zMl05E\nNwgLDBGtqmQyiX/961+45ZZb8P3vfx/PP/88mpqaltzcTq1W4w9/+EPO1x46dAh6vR4/+9nPEIlE\n8IUvfAF33XUX3n33XVRUVODw4cNwu9343Oc+BwD4xz/+gfXr1+OZZ55BNBrFn/70p1V/vUS0Mlhg\niGjFTU9Po7e3FwCQSqVw66234sEHH8Qvf/lL/OAHP8g+LxgMIpVKAUjf3uNK/f39eOCBBwAAFRUV\n6OrqwsDAAIaGhnDLLbcASN+Ydf369QCAu+66Cy+//DIef/xx7N69G3v27FnR10lEq4cFhohW3Pwe\nmMUCgQCUSuWSx+cplcolj8lkspw/S5IEmUwGSZJy7vUzX4JaW1vxt7/9De+//z7eeustvPTSS3jl\nlVeu9+UQkQC4iZeIikKn06GhoQFHjhwBAIyOjuK555676tf09PTg6NGjAIBwOIyBgQF0dnaitbUV\np06dAgBMTk5idHQUAPDXv/4VZ8+exc6dO/HUU09hcnISiURiBV8VEa0WrsAQUdEcPHgQP/nJT/Db\n3/4WiUQCjz/++FWf39vbiyeeeAJf//rXEYvF8Mgjj6ChoQH3338//vOf/2Dv3r1oaGjAli1bAABt\nbW146qmnoFKpIEkSvvnNb0Kh4I89opsB70ZNREREJYenkIiIiKjksMAQERFRyWGBISIiopLDAkNE\nREQlhwWGiIiISg4LDBEREZUcFhgiIiIqOSwwREREVHL+HxO0y9iUS5sFAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
From 8108baca4ab059247a47f4f4f8559eaa0abe3570 Mon Sep 17 00:00:00 2001
From: Amit Rai <42401957+ardev472@users.noreply.github.com>
Date: Sun, 17 Feb 2019 21:56:51 +0530
Subject: [PATCH 08/11] Created using Colaboratory
---
intro_to_neural_nets.ipynb | 1082 ++++++++++++++++++++++++++++++++++++
1 file changed, 1082 insertions(+)
create mode 100644 intro_to_neural_nets.ipynb
diff --git a/intro_to_neural_nets.ipynb b/intro_to_neural_nets.ipynb
new file mode 100644
index 0000000..3d1b810
--- /dev/null
+++ b/intro_to_neural_nets.ipynb
@@ -0,0 +1,1082 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "intro_to_neural_nets.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "O2q5RRCKqYaU",
+ "vvT2jDWjrKew"
+ ],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python2",
+ "display_name": "Python 2"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JndnmDMp66FL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "hMqWDc_m6rUC",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
+ "# you may not use this file except in compliance with the License.\n",
+ "# You may obtain a copy of the License at\n",
+ "#\n",
+ "# https://www.apache.org/licenses/LICENSE-2.0\n",
+ "#\n",
+ "# Unless required by applicable law or agreed to in writing, software\n",
+ "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
+ "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
+ "# See the License for the specific language governing permissions and\n",
+ "# limitations under the License."
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "eV16J6oUY-HN",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# Intro to Neural Networks"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "_wIcUFLSKNdx",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objectives:**\n",
+ " * Define a neural network (NN) and its hidden layers using the TensorFlow `DNNRegressor` class\n",
+ " * Train a neural network to learn nonlinearities in a dataset and achieve better performance than a linear regression model"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "_ZZ7f7prKNdy",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "In the previous exercises, we used synthetic features to help our model incorporate nonlinearities.\n",
+ "\n",
+ "One important set of nonlinearities was around latitude and longitude, but there may be others.\n",
+ "\n",
+ "We'll also switch back, for now, to a standard regression task, rather than the logistic regression task from the previous exercise. That is, we'll be predicting `median_house_value` directly."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "J2kqX6VZTHUy",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Setup\n",
+ "\n",
+ "First, let's load and prepare the data."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "AGOM1TUiKNdz",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "from IPython import display\n",
+ "from matplotlib import cm\n",
+ "from matplotlib import gridspec\n",
+ "from matplotlib import pyplot as plt\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from sklearn import metrics\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.python.data import Dataset\n",
+ "\n",
+ "tf.logging.set_verbosity(tf.logging.ERROR)\n",
+ "pd.options.display.max_rows = 10\n",
+ "pd.options.display.float_format = '{:.1f}'.format\n",
+ "\n",
+ "california_housing_dataframe = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv\", sep=\",\")\n",
+ "\n",
+ "california_housing_dataframe = california_housing_dataframe.reindex(\n",
+ " np.random.permutation(california_housing_dataframe.index))"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "2I8E2qhyKNd4",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def preprocess_features(california_housing_dataframe):\n",
+ " \"\"\"Prepares input features from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the features to be used for the model, including\n",
+ " synthetic features.\n",
+ " \"\"\"\n",
+ " selected_features = california_housing_dataframe[\n",
+ " [\"latitude\",\n",
+ " \"longitude\",\n",
+ " \"housing_median_age\",\n",
+ " \"total_rooms\",\n",
+ " \"total_bedrooms\",\n",
+ " \"population\",\n",
+ " \"households\",\n",
+ " \"median_income\"]]\n",
+ " processed_features = selected_features.copy()\n",
+ " # Create a synthetic feature.\n",
+ " processed_features[\"rooms_per_person\"] = (\n",
+ " california_housing_dataframe[\"total_rooms\"] /\n",
+ " california_housing_dataframe[\"population\"])\n",
+ " return processed_features\n",
+ "\n",
+ "def preprocess_targets(california_housing_dataframe):\n",
+ " \"\"\"Prepares target features (i.e., labels) from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the target feature.\n",
+ " \"\"\"\n",
+ " output_targets = pd.DataFrame()\n",
+ " # Scale the target to be in units of thousands of dollars.\n",
+ " output_targets[\"median_house_value\"] = (\n",
+ " california_housing_dataframe[\"median_house_value\"] / 1000.0)\n",
+ " return output_targets"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "pQzcj2B1T5dA",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1205
+ },
+ "outputId": "bc8e4297-478c-41e5-845e-e99fc0d5208e"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Choose the first 12000 (out of 17000) examples for training.\n",
+ "training_examples = preprocess_features(california_housing_dataframe.head(12000))\n",
+ "training_targets = preprocess_targets(california_housing_dataframe.head(12000))\n",
+ "\n",
+ "# Choose the last 5000 (out of 17000) examples for validation.\n",
+ "validation_examples = preprocess_features(california_housing_dataframe.tail(5000))\n",
+ "validation_targets = preprocess_targets(california_housing_dataframe.tail(5000))\n",
+ "\n",
+ "# Double-check that we've done the right thing.\n",
+ "print(\"Training examples summary:\")\n",
+ "display.display(training_examples.describe())\n",
+ "print(\"Validation examples summary:\")\n",
+ "display.display(validation_examples.describe())\n",
+ "\n",
+ "print(\"Training targets summary:\")\n",
+ "display.display(training_targets.describe())\n",
+ "print(\"Validation targets summary:\")\n",
+ "display.display(validation_targets.describe())"
+ ],
+ "execution_count": 3,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training examples summary:\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " latitude longitude housing_median_age total_rooms total_bedrooms \\\n",
+ "count 12000.0 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 35.6 -119.5 28.6 2639.1 539.7 \n",
+ "std 2.1 2.0 12.6 2170.6 422.2 \n",
+ "min 32.5 -124.3 1.0 2.0 2.0 \n",
+ "25% 33.9 -121.8 18.0 1451.0 295.0 \n",
+ "50% 34.2 -118.5 29.0 2112.0 433.0 \n",
+ "75% 37.7 -118.0 37.0 3164.2 650.0 \n",
+ "max 42.0 -114.6 52.0 37937.0 6445.0 \n",
+ "\n",
+ " population households median_income rooms_per_person \n",
+ "count 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 1429.2 501.2 3.9 2.0 \n",
+ "std 1127.5 384.2 1.9 1.1 \n",
+ "min 3.0 2.0 0.5 0.1 \n",
+ "25% 788.0 280.0 2.6 1.5 \n",
+ "50% 1167.0 408.0 3.5 1.9 \n",
+ "75% 1723.0 607.0 4.7 2.3 \n",
+ "max 28566.0 6082.0 15.0 52.0 "
+ ],
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "RWq0xecNKNeG",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Building a Neural Network\n",
+ "\n",
+ "The NN is defined by the [DNNRegressor](https://www.tensorflow.org/api_docs/python/tf/estimator/DNNRegressor) class.\n",
+ "\n",
+ "Use **`hidden_units`** to define the structure of the NN. The `hidden_units` argument provides a list of ints, where each int corresponds to a hidden layer and indicates the number of nodes in it. For example, consider the following assignment:\n",
+ "\n",
+ "`hidden_units=[3,10]`\n",
+ "\n",
+ "The preceding assignment specifies a neural net with two hidden layers:\n",
+ "\n",
+ "* The first hidden layer contains 3 nodes.\n",
+ "* The second hidden layer contains 10 nodes.\n",
+ "\n",
+ "If we wanted to add more layers, we'd add more ints to the list. For example, `hidden_units=[10,20,30,40]` would create four layers with ten, twenty, thirty, and forty units, respectively.\n",
+ "\n",
+ "By default, all hidden layers will use ReLu activation and will be fully connected."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "ni0S6zHcTb04",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def construct_feature_columns(input_features):\n",
+ " \"\"\"Construct the TensorFlow Feature Columns.\n",
+ "\n",
+ " Args:\n",
+ " input_features: The names of the numerical input features to use.\n",
+ " Returns:\n",
+ " A set of feature columns\n",
+ " \"\"\" \n",
+ " return set([tf.feature_column.numeric_column(my_feature)\n",
+ " for my_feature in input_features])"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "zvCqgNdzpaFg",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):\n",
+ " \"\"\"Trains a neural net regression model.\n",
+ " \n",
+ " Args:\n",
+ " features: pandas DataFrame of features\n",
+ " targets: pandas DataFrame of targets\n",
+ " batch_size: Size of batches to be passed to the model\n",
+ " shuffle: True or False. Whether to shuffle the data.\n",
+ " num_epochs: Number of epochs for which data should be repeated. None = repeat indefinitely\n",
+ " Returns:\n",
+ " Tuple of (features, labels) for next data batch\n",
+ " \"\"\"\n",
+ " \n",
+ " # Convert pandas data into a dict of np arrays.\n",
+ " features = {key:np.array(value) for key,value in dict(features).items()} \n",
+ " \n",
+ " # Construct a dataset, and configure batching/repeating.\n",
+ " ds = Dataset.from_tensor_slices((features,targets)) # warning: 2GB limit\n",
+ " ds = ds.batch(batch_size).repeat(num_epochs)\n",
+ " \n",
+ " # Shuffle the data, if specified.\n",
+ " if shuffle:\n",
+ " ds = ds.shuffle(10000)\n",
+ " \n",
+ " # Return the next batch of data.\n",
+ " features, labels = ds.make_one_shot_iterator().get_next()\n",
+ " return features, labels"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "U52Ychv9KNeH",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_nn_regression_model(\n",
+ " learning_rate,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " hidden_units,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a neural network regression model.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " learning_rate: A `float`, the learning rate.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " hidden_units: A `list` of int values, specifying the number of neurons in each layer.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A `DNNRegressor` object trained on the training data.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ " \n",
+ " # Create a DNNRegressor object.\n",
+ " my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " dnn_regressor = tf.estimator.DNNRegressor(\n",
+ " feature_columns=construct_feature_columns(training_examples),\n",
+ " hidden_units=hidden_units,\n",
+ " optimizer=my_optimizer,\n",
+ " )\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " batch_size=batch_size)\n",
+ " predict_training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " predict_validation_input_fn = lambda: my_input_fn(validation_examples, \n",
+ " validation_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"RMSE (on training data):\")\n",
+ " training_rmse = []\n",
+ " validation_rmse = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " dnn_regressor.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period\n",
+ " )\n",
+ " # Take a break and compute predictions.\n",
+ " training_predictions = dnn_regressor.predict(input_fn=predict_training_input_fn)\n",
+ " training_predictions = np.array([item['predictions'][0] for item in training_predictions])\n",
+ " \n",
+ " validation_predictions = dnn_regressor.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_predictions = np.array([item['predictions'][0] for item in validation_predictions])\n",
+ " \n",
+ " # Compute training and validation loss.\n",
+ " training_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(training_predictions, training_targets))\n",
+ " validation_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(validation_predictions, validation_targets))\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_root_mean_squared_error))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_rmse.append(training_root_mean_squared_error)\n",
+ " validation_rmse.append(validation_root_mean_squared_error)\n",
+ " print(\"Model training finished.\")\n",
+ "\n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"RMSE\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_rmse, label=\"training\")\n",
+ " plt.plot(validation_rmse, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " print(\"Final RMSE (on training data): %0.2f\" % training_root_mean_squared_error)\n",
+ " print(\"Final RMSE (on validation data): %0.2f\" % validation_root_mean_squared_error)\n",
+ "\n",
+ " return dnn_regressor"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "2QhdcCy-Y8QR",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 1: Train a NN Model\n",
+ "\n",
+ "**Adjust hyperparameters, aiming to drop RMSE below 110.**\n",
+ "\n",
+ "Run the following block to train a NN model. \n",
+ "\n",
+ "Recall that in the linear regression exercise with many features, an RMSE of 110 or so was pretty good. We'll aim to beat that.\n",
+ "\n",
+ "Your task here is to modify various learning settings to improve accuracy on validation data.\n",
+ "\n",
+ "Overfitting is a real potential hazard for NNs. You can look at the gap between loss on training data and loss on validation data to help judge if your model is starting to overfit. If the gap starts to grow, that is usually a sure sign of overfitting.\n",
+ "\n",
+ "Because of the number of different possible settings, it's strongly recommended that you take notes on each trial to help guide your development process.\n",
+ "\n",
+ "Also, when you get a good setting, try running it multiple times and see how repeatable your result is. NN weights are typically initialized to small random values, so you should see differences from run to run.\n"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "rXmtSW1yKNeK",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "f789885b-1b8d-4b20-877a-ec607289d145"
+ },
+ "cell_type": "code",
+ "source": [
+ "dnn_regressor = train_nn_regression_model(\n",
+ " learning_rate=0.001,\n",
+ " steps=3000,\n",
+ " batch_size=100,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 9,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 166.25\n",
+ " period 01 : 166.06\n",
+ " period 02 : 157.82\n",
+ " period 03 : 154.93\n",
+ " period 04 : 143.15\n",
+ " period 05 : 132.24\n",
+ " period 06 : 121.94\n",
+ " period 07 : 114.29\n",
+ " period 08 : 110.02\n",
+ " period 09 : 104.69\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 104.69\n",
+ "Final RMSE (on validation data): 105.97\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd4FOX68PHvlvTeIUBIqEkoSYAg\nvZfQpFcJiKhHEUXAI/r+1KMHj4gFla6oIKDSBASkKAIKKjWhBAKhJySQ3nt25/0jshKBkCCb3ZD7\nc125ZMrO3LP3jLnzzDPPqBRFURBCCCGEqEbUpg5ACCGEEKKypIARQgghRLUjBYwQQgghqh0pYIQQ\nQghR7UgBI4QQQohqRwoYIYQQQlQ7WlMHIIQ5a9q0KT4+Pmg0GgB0Oh2hoaG89tpr2Nra3vd2161b\nx6hRo26bv3HjRl599VWWLl1K9+7dDfMLCgro0KEDffr04d13373v/VZUbGws77zzDpcvXwbAxsaG\nqVOn0qtXL6PvuzIWL15MbGzsbd/JoUOHmDx5MnXr1r3tMzt37qyq8P6Ra9eu0bNnT/z8/ABQFAV3\nd3f+7//+j8DAwEpt68MPP8Tb25uxY8dW+DPff/89GzZsYNWqVZXalxBVRQoYIe5h1apV1KpVC4Ci\noiKmT5/Op59+yvTp0+9re8nJyXz++ed3LGAAateuzbZt28oUMHv37sXR0fG+9nc/XnrpJQYPHszS\npUsBOHHiBBMnTmTHjh3Url27yuL4J2rXrl1tipW70Wg0ZY5h+/btPPfcc+zatQtLS8sKb2fmzJnG\nCE8Ik5JbSEJUgqWlJZ07dyY6OhqAwsJC3njjDfr27Uu/fv1499130el0AJw9e5YxY8YQFhbG4MGD\n2b9/PwBjxowhISGBsLAwioqKbttHq1atOHToEPn5+YZ527dvp2PHjobpoqIi3n77bfr27UuPHj0M\nhQZAZGQkw4YNIywsjP79+/P7778DpX/Rd+rUiZUrVzJo0CA6d+7M9u3b73icMTExBAUFGaaDgoLY\ntWuXoZBbuHAhXbt2ZciQIXz22Wf06NEDgFdeeYXFixcbPnfr9L3ieueddxg/fjwAx44dY/jw4fTu\n3ZtRo0YRFxcHlLZEvfjii3Tv3p3x48dz48aNe2TszjZu3MjUqVOZOHEi7733HocOHWLMmDFMmzbN\n8Mt+x44dDBw4kLCwMCZMmEBsbCwACxYs4LXXXmPEiBGsWLGizHanTZvGl19+aZiOjo6mU6dO6PV6\nPvroI/r27Uvfvn2ZMGECiYmJlY67f//+FBQUcOnSJQDWrl1LWFgYPXr0YMaMGRQUFACl3/ucOXMY\nNGgQO3bsKJOHu52Xer2e//73v3Tr1o0RI0Zw9uxZw34PHz7M0KFD6d+/P/369WPHjh2Vjl2IB04R\nQtxVkyZNlOvXrxumMzIylMcee0xZvHixoiiK8umnnypPPfWUUlxcrOTn5yvDhw9XNm/erOh0OqVf\nv37K1q1bFUVRlJMnTyqhoaFKdna2cvDgQaVXr1533N93332nzJo1S3nppZcMn83OzlZ69uyprF+/\nXpk1a5aiKIqycOFCZeLEiUphYaGSm5urDBkyRNmzZ4+iKIoycOBAZdu2bYqiKMqmTZsM+4qLi1MC\nAwOVVatWKYqiKNu3b1d69+59xzief/55pXv37spXX32lXLhwocyyc+fOKW3atFGSkpKU4uJi5dln\nn1W6d++uKIqizJo1S1m0aJFh3Vuny4urWbNmysaNGw3HGxoaqhw4cEBRFEXZunWrMnToUEVRFGX1\n6tXKY489phQXFytpaWlK9+7dDd/Jrcr7jm9+z8HBwcrly5cN67do0UL5/fffFUVRlPj4eKV169bK\nlStXFEVRlC+++EKZOHGioiiKMn/+fKVTp05Kamrqbdv94YcflMcee8ww/cknnyizZ89WYmJilD59\n+ihFRUWKoijKypUrlU2bNt01vpvfS0BAwG3zQ0NDlYsXLypHjhxR2rdvr9y4cUNRFEV5/fXXlXff\nfVdRlNLvfdCgQUpBQYFhetGiReWel/v27VP69Omj5OTkKPn5+cqIESOU8ePHK4qiKMOGDVMOHTqk\nKIqiXL58WZkxY0a5sQtRFaQFRoh7CA8PJywsjJ49e9KzZ0/atWvHU089BcC+ffsYNWoUWq0Wa2tr\nBg0axG+//ca1a9dISUlhwIABALRo0QJvb29OnTpVoX0OGDCAbdu2AbB79266d++OWv3X5bp3717G\njRuHpaUltra2DB48mB9//BGAzZs3069fPwBat25taL0AKCkpYdiwYQA0a9aMhISEO+7//fff57HH\nHmPr1q0MHDiQHj168O233wKlrSOhoaF4eHig1WoZOHBghY6pvLiKi4vp3bu3YfteXl6GFqeBAwcS\n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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "c6diezCSeH4Y",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 2: Evaluate on Test Data\n",
+ "\n",
+ "**Confirm that your validation performance results hold up on test data.**\n",
+ "\n",
+ "Once you have a model you're happy with, evaluate it on test data to compare that to validation performance.\n",
+ "\n",
+ "Reminder, the test data set is located [here](https://download.mlcc.google.com/mledu-datasets/california_housing_test.csv)."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "icEJIl5Vp51r",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 34
+ },
+ "outputId": "d53ffbe5-e2f1-475f-80b6-af94d8bd75a4"
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_test_data = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_test.csv\", sep=\",\")\n",
+ "\n",
+ "# YOUR CODE HERE\n",
+ "test_examples = preprocess_features(california_housing_test_data)\n",
+ "test_targets = preprocess_targets(california_housing_test_data)\n",
+ "\n",
+ "predict_testing_input_fn = lambda: my_input_fn(test_examples, \n",
+ " test_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ "test_predictions = dnn_regressor.predict(input_fn=predict_testing_input_fn)\n",
+ "test_predictions = np.array([item['predictions'][0] for item in test_predictions])\n",
+ "\n",
+ "root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(test_predictions, test_targets))\n",
+ "\n",
+ "print(\"Final RMSE (on test data): %0.2f\" % root_mean_squared_error)"
+ ],
+ "execution_count": 10,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Final RMSE (on test data): 103.08\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
From a24dbeb82b6bdb79d35dd63637dde4981c4e6bb9 Mon Sep 17 00:00:00 2001
From: Amit Rai <42401957+ardev472@users.noreply.github.com>
Date: Sun, 17 Feb 2019 21:59:03 +0530
Subject: [PATCH 09/11] Created using Colaboratory
---
sparsity_and_l1_regularization.ipynb | 1102 ++++++++++++++++++++++++++
1 file changed, 1102 insertions(+)
create mode 100644 sparsity_and_l1_regularization.ipynb
diff --git a/sparsity_and_l1_regularization.ipynb b/sparsity_and_l1_regularization.ipynb
new file mode 100644
index 0000000..d69b794
--- /dev/null
+++ b/sparsity_and_l1_regularization.ipynb
@@ -0,0 +1,1102 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "sparsity_and_l1_regularization.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "yjUCX5LAkxAX"
+ ],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python2",
+ "display_name": "Python 2"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JndnmDMp66FL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "hMqWDc_m6rUC",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
+ "# you may not use this file except in compliance with the License.\n",
+ "# You may obtain a copy of the License at\n",
+ "#\n",
+ "# https://www.apache.org/licenses/LICENSE-2.0\n",
+ "#\n",
+ "# Unless required by applicable law or agreed to in writing, software\n",
+ "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
+ "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
+ "# See the License for the specific language governing permissions and\n",
+ "# limitations under the License."
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "g4T-_IsVbweU",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# Sparsity and L1 Regularization"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "g8ue2FyFIjnQ",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objectives:**\n",
+ " * Calculate the size of a model\n",
+ " * Apply L1 regularization to reduce the size of a model by increasing sparsity"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "ME_WXE7cIjnS",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "One way to reduce complexity is to use a regularization function that encourages weights to be exactly zero. For linear models such as regression, a zero weight is equivalent to not using the corresponding feature at all. In addition to avoiding overfitting, the resulting model will be more efficient.\n",
+ "\n",
+ "L1 regularization is a good way to increase sparsity.\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "fHRzeWkRLrHF",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Setup\n",
+ "\n",
+ "Run the cells below to load the data and create feature definitions."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "pb7rSrLKIjnS",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "from IPython import display\n",
+ "from matplotlib import cm\n",
+ "from matplotlib import gridspec\n",
+ "from matplotlib import pyplot as plt\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from sklearn import metrics\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.python.data import Dataset\n",
+ "\n",
+ "tf.logging.set_verbosity(tf.logging.ERROR)\n",
+ "pd.options.display.max_rows = 10\n",
+ "pd.options.display.float_format = '{:.1f}'.format\n",
+ "\n",
+ "california_housing_dataframe = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv\", sep=\",\")\n",
+ "\n",
+ "california_housing_dataframe = california_housing_dataframe.reindex(\n",
+ " np.random.permutation(california_housing_dataframe.index))"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "3V7q8jk0IjnW",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def preprocess_features(california_housing_dataframe):\n",
+ " \"\"\"Prepares input features from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the features to be used for the model, including\n",
+ " synthetic features.\n",
+ " \"\"\"\n",
+ " selected_features = california_housing_dataframe[\n",
+ " [\"latitude\",\n",
+ " \"longitude\",\n",
+ " \"housing_median_age\",\n",
+ " \"total_rooms\",\n",
+ " \"total_bedrooms\",\n",
+ " \"population\",\n",
+ " \"households\",\n",
+ " \"median_income\"]]\n",
+ " processed_features = selected_features.copy()\n",
+ " # Create a synthetic feature.\n",
+ " processed_features[\"rooms_per_person\"] = (\n",
+ " california_housing_dataframe[\"total_rooms\"] /\n",
+ " california_housing_dataframe[\"population\"])\n",
+ " return processed_features\n",
+ "\n",
+ "def preprocess_targets(california_housing_dataframe):\n",
+ " \"\"\"Prepares target features (i.e., labels) from California housing data set.\n",
+ "\n",
+ " Args:\n",
+ " california_housing_dataframe: A Pandas DataFrame expected to contain data\n",
+ " from the California housing data set.\n",
+ " Returns:\n",
+ " A DataFrame that contains the target feature.\n",
+ " \"\"\"\n",
+ " output_targets = pd.DataFrame()\n",
+ " # Create a boolean categorical feature representing whether the\n",
+ " # median_house_value is above a set threshold.\n",
+ " output_targets[\"median_house_value_is_high\"] = (\n",
+ " california_housing_dataframe[\"median_house_value\"] > 265000).astype(float)\n",
+ " return output_targets"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "pAG3tmgwIjnY",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1205
+ },
+ "outputId": "16c2eac6-4041-46b0-f982-af636c1147df"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Choose the first 12000 (out of 17000) examples for training.\n",
+ "training_examples = preprocess_features(california_housing_dataframe.head(12000))\n",
+ "training_targets = preprocess_targets(california_housing_dataframe.head(12000))\n",
+ "\n",
+ "# Choose the last 5000 (out of 17000) examples for validation.\n",
+ "validation_examples = preprocess_features(california_housing_dataframe.tail(5000))\n",
+ "validation_targets = preprocess_targets(california_housing_dataframe.tail(5000))\n",
+ "\n",
+ "# Double-check that we've done the right thing.\n",
+ "print(\"Training examples summary:\")\n",
+ "display.display(training_examples.describe())\n",
+ "print(\"Validation examples summary:\")\n",
+ "display.display(validation_examples.describe())\n",
+ "\n",
+ "print(\"Training targets summary:\")\n",
+ "display.display(training_targets.describe())\n",
+ "print(\"Validation targets summary:\")\n",
+ "display.display(validation_targets.describe())"
+ ],
+ "execution_count": 3,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training examples summary:\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " latitude longitude housing_median_age total_rooms total_bedrooms \\\n",
+ "count 12000.0 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 35.6 -119.6 28.6 2624.1 535.0 \n",
+ "std 2.1 2.0 12.6 2068.5 402.5 \n",
+ "min 32.5 -124.3 1.0 2.0 1.0 \n",
+ "25% 33.9 -121.8 18.0 1468.0 297.0 \n",
+ "50% 34.2 -118.5 29.0 2127.0 433.0 \n",
+ "75% 37.7 -118.0 37.0 3138.2 648.0 \n",
+ "max 42.0 -114.6 52.0 32054.0 5290.0 \n",
+ "\n",
+ " population households median_income rooms_per_person \n",
+ "count 12000.0 12000.0 12000.0 12000.0 \n",
+ "mean 1422.3 497.8 3.9 2.0 \n",
+ "std 1111.7 367.4 1.9 1.2 \n",
+ "min 3.0 1.0 0.5 0.1 \n",
+ "25% 790.0 282.0 2.6 1.5 \n",
+ "50% 1165.0 409.0 3.5 1.9 \n",
+ "75% 1720.0 606.0 4.8 2.3 \n",
+ "max 35682.0 5050.0 15.0 55.2 "
+ ],
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "NqIbXxx222ea"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Train the Neural Network\n",
+ "\n",
+ "Next, we'll train the neural network."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "6k3xYlSg27VB",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def construct_feature_columns(input_features):\n",
+ " \"\"\"Construct the TensorFlow Feature Columns.\n",
+ "\n",
+ " Args:\n",
+ " input_features: The names of the numerical input features to use.\n",
+ " Returns:\n",
+ " A set of feature columns\n",
+ " \"\"\" \n",
+ " return set([tf.feature_column.numeric_column(my_feature)\n",
+ " for my_feature in input_features])"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "De9jwyy4wTUT",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):\n",
+ " \"\"\"Trains a neural network model.\n",
+ " \n",
+ " Args:\n",
+ " features: pandas DataFrame of features\n",
+ " targets: pandas DataFrame of targets\n",
+ " batch_size: Size of batches to be passed to the model\n",
+ " shuffle: True or False. Whether to shuffle the data.\n",
+ " num_epochs: Number of epochs for which data should be repeated. None = repeat indefinitely\n",
+ " Returns:\n",
+ " Tuple of (features, labels) for next data batch\n",
+ " \"\"\"\n",
+ " \n",
+ " # Convert pandas data into a dict of np arrays.\n",
+ " features = {key:np.array(value) for key,value in dict(features).items()} \n",
+ " \n",
+ " # Construct a dataset, and configure batching/repeating.\n",
+ " ds = Dataset.from_tensor_slices((features,targets)) # warning: 2GB limit\n",
+ " ds = ds.batch(batch_size).repeat(num_epochs)\n",
+ " \n",
+ " # Shuffle the data, if specified.\n",
+ " if shuffle:\n",
+ " ds = ds.shuffle(10000)\n",
+ " \n",
+ " # Return the next batch of data.\n",
+ " features, labels = ds.make_one_shot_iterator().get_next()\n",
+ " return features, labels"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "W-51R3yIKxk4",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def train_nn_regression_model(\n",
+ " my_optimizer,\n",
+ " steps,\n",
+ " batch_size,\n",
+ " hidden_units,\n",
+ " training_examples,\n",
+ " training_targets,\n",
+ " validation_examples,\n",
+ " validation_targets):\n",
+ " \"\"\"Trains a neural network regression model.\n",
+ " \n",
+ " In addition to training, this function also prints training progress information,\n",
+ " as well as a plot of the training and validation loss over time.\n",
+ " \n",
+ " Args:\n",
+ " my_optimizer: An instance of `tf.train.Optimizer`, the optimizer to use.\n",
+ " steps: A non-zero `int`, the total number of training steps. A training step\n",
+ " consists of a forward and backward pass using a single batch.\n",
+ " batch_size: A non-zero `int`, the batch size.\n",
+ " hidden_units: A `list` of int values, specifying the number of neurons in each layer.\n",
+ " training_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for training.\n",
+ " training_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for training.\n",
+ " validation_examples: A `DataFrame` containing one or more columns from\n",
+ " `california_housing_dataframe` to use as input features for validation.\n",
+ " validation_targets: A `DataFrame` containing exactly one column from\n",
+ " `california_housing_dataframe` to use as target for validation.\n",
+ " \n",
+ " Returns:\n",
+ " A tuple `(estimator, training_losses, validation_losses)`:\n",
+ " estimator: the trained `DNNRegressor` object.\n",
+ " training_losses: a `list` containing the training loss values taken during training.\n",
+ " validation_losses: a `list` containing the validation loss values taken during training.\n",
+ " \"\"\"\n",
+ "\n",
+ " periods = 10\n",
+ " steps_per_period = steps / periods\n",
+ " \n",
+ " # Create a DNNRegressor object.\n",
+ " my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)\n",
+ " dnn_regressor = tf.estimator.DNNRegressor(\n",
+ " feature_columns=construct_feature_columns(training_examples),\n",
+ " hidden_units=hidden_units,\n",
+ " optimizer=my_optimizer\n",
+ " )\n",
+ " \n",
+ " # Create input functions.\n",
+ " training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " batch_size=batch_size)\n",
+ " predict_training_input_fn = lambda: my_input_fn(training_examples, \n",
+ " training_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ " predict_validation_input_fn = lambda: my_input_fn(validation_examples, \n",
+ " validation_targets[\"median_house_value\"], \n",
+ " num_epochs=1, \n",
+ " shuffle=False)\n",
+ "\n",
+ " # Train the model, but do so inside a loop so that we can periodically assess\n",
+ " # loss metrics.\n",
+ " print(\"Training model...\")\n",
+ " print(\"RMSE (on training data):\")\n",
+ " training_rmse = []\n",
+ " validation_rmse = []\n",
+ " for period in range (0, periods):\n",
+ " # Train the model, starting from the prior state.\n",
+ " dnn_regressor.train(\n",
+ " input_fn=training_input_fn,\n",
+ " steps=steps_per_period\n",
+ " )\n",
+ " # Take a break and compute predictions.\n",
+ " training_predictions = dnn_regressor.predict(input_fn=predict_training_input_fn)\n",
+ " training_predictions = np.array([item['predictions'][0] for item in training_predictions])\n",
+ " \n",
+ " validation_predictions = dnn_regressor.predict(input_fn=predict_validation_input_fn)\n",
+ " validation_predictions = np.array([item['predictions'][0] for item in validation_predictions])\n",
+ " \n",
+ " # Compute training and validation loss.\n",
+ " training_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(training_predictions, training_targets))\n",
+ " validation_root_mean_squared_error = math.sqrt(\n",
+ " metrics.mean_squared_error(validation_predictions, validation_targets))\n",
+ " # Occasionally print the current loss.\n",
+ " print(\" period %02d : %0.2f\" % (period, training_root_mean_squared_error))\n",
+ " # Add the loss metrics from this period to our list.\n",
+ " training_rmse.append(training_root_mean_squared_error)\n",
+ " validation_rmse.append(validation_root_mean_squared_error)\n",
+ " print(\"Model training finished.\")\n",
+ "\n",
+ " # Output a graph of loss metrics over periods.\n",
+ " plt.ylabel(\"RMSE\")\n",
+ " plt.xlabel(\"Periods\")\n",
+ " plt.title(\"Root Mean Squared Error vs. Periods\")\n",
+ " plt.tight_layout()\n",
+ " plt.plot(training_rmse, label=\"training\")\n",
+ " plt.plot(validation_rmse, label=\"validation\")\n",
+ " plt.legend()\n",
+ "\n",
+ " print(\"Final RMSE (on training data): %0.2f\" % training_root_mean_squared_error)\n",
+ " print(\"Final RMSE (on validation data): %0.2f\" % validation_root_mean_squared_error)\n",
+ "\n",
+ " return dnn_regressor, training_rmse, validation_rmse"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "KueReMZ9Kxk7",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 775
+ },
+ "outputId": "ec43a3da-6dd0-463b-d2e2-9db0e423fe27"
+ },
+ "cell_type": "code",
+ "source": [
+ "_ = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.0007),\n",
+ " steps=5000,\n",
+ " batch_size=70,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 9,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.\n",
+ "For more information, please see:\n",
+ " * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n",
+ " * https://github.com/tensorflow/addons\n",
+ "If you depend on functionality not listed there, please file an issue.\n",
+ "\n",
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 156.14\n",
+ " period 01 : 143.40\n",
+ " period 02 : 130.17\n",
+ " period 03 : 117.49\n",
+ " period 04 : 110.82\n",
+ " period 05 : 109.35\n",
+ " period 06 : 106.46\n",
+ " period 07 : 105.64\n",
+ " period 08 : 101.87\n",
+ " period 09 : 100.60\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 100.60\n",
+ "Final RMSE (on validation data): 101.10\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\ngKDJXI7pLoUAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "flxmFt0KKxk9"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Linear Scaling\n",
+ "It can be a good standard practice to normalize the inputs to fall within the range -1, 1. This helps SGD not get stuck taking steps that are too large in one dimension, or too small in another. Fans of numerical optimization may note that there's a connection to the idea of using a preconditioner here."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "Dws5rIQjKxk-",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def linear_scale(series):\n",
+ " min_val = series.min()\n",
+ " max_val = series.max()\n",
+ " scale = (max_val - min_val) / 2.0\n",
+ " return series.apply(lambda x:((x - min_val) / scale) - 1.0)"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "MVmuHI76N2Sz"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 1: Normalize the Features Using Linear Scaling\n",
+ "\n",
+ "**Normalize the inputs to the scale -1, 1.**\n",
+ "\n",
+ "**Spend about 5 minutes training and evaluating on the newly normalized data. How well can you do?**\n",
+ "\n",
+ "As a rule of thumb, NN's train best when the input features are roughly on the same scale.\n",
+ "\n",
+ "Sanity check your normalized data. (What would happen if you forgot to normalize one feature?)\n"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "yD948ZgAM6Cx",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "a4fbadae-60ad-4acf-ea57-aa9513b5f995"
+ },
+ "cell_type": "code",
+ "source": [
+ "def normalize_linear_scale(examples_dataframe):\n",
+ " \"\"\"Returns a version of the input `DataFrame` that has all its features normalized linearly.\"\"\"\n",
+ " #\n",
+ " # Your code here: normalize the inputs.\n",
+ " processed_features = pd.DataFrame()\n",
+ " processed_features[\"latitude\"] = linear_scale(examples_dataframe[\"latitude\"])\n",
+ " processed_features[\"longitude\"] = linear_scale(examples_dataframe[\"longitude\"])\n",
+ " processed_features[\"housing_median_age\"] = linear_scale(examples_dataframe[\"housing_median_age\"])\n",
+ " processed_features[\"total_rooms\"] = linear_scale(examples_dataframe[\"total_rooms\"])\n",
+ " processed_features[\"total_bedrooms\"] = linear_scale(examples_dataframe[\"total_bedrooms\"])\n",
+ " processed_features[\"population\"] = linear_scale(examples_dataframe[\"population\"])\n",
+ " processed_features[\"households\"] = linear_scale(examples_dataframe[\"households\"])\n",
+ " processed_features[\"median_income\"] = linear_scale(examples_dataframe[\"median_income\"])\n",
+ " processed_features[\"rooms_per_person\"] = linear_scale(examples_dataframe[\"rooms_per_person\"])\n",
+ " return processed_features\n",
+ " \n",
+ "\n",
+ "normalized_dataframe = normalize_linear_scale(preprocess_features(california_housing_dataframe))\n",
+ "normalized_training_examples = normalized_dataframe.head(12000)\n",
+ "normalized_validation_examples = normalized_dataframe.tail(5000)\n",
+ "\n",
+ "_ = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.0007),\n",
+ " steps=5000,\n",
+ " batch_size=70,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=normalized_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=normalized_validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 13,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 231.68\n",
+ " period 01 : 209.40\n",
+ " period 02 : 164.03\n",
+ " period 03 : 121.52\n",
+ " period 04 : 117.73\n",
+ " period 05 : 114.24\n",
+ " period 06 : 110.40\n",
+ " period 07 : 105.88\n",
+ " period 08 : 100.34\n",
+ " period 09 : 94.17\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 94.17\n",
+ "Final RMSE (on validation data): 92.99\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "MrwtdStNJ6ZQ"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 2: Try a Different Optimizer\n",
+ "\n",
+ "** Use the Adagrad and Adam optimizers and compare performance.**\n",
+ "\n",
+ "The Adagrad optimizer is one alternative. The key insight of Adagrad is that it modifies the learning rate adaptively for each coefficient in a model, monotonically lowering the effective learning rate. This works great for convex problems, but isn't always ideal for the non-convex problem Neural Net training. You can use Adagrad by specifying `AdagradOptimizer` instead of `GradientDescentOptimizer`. Note that you may need to use a larger learning rate with Adagrad.\n",
+ "\n",
+ "For non-convex optimization problems, Adam is sometimes more efficient than Adagrad. To use Adam, invoke the `tf.train.AdamOptimizer` method. This method takes several optional hyperparameters as arguments, but our solution only specifies one of these (`learning_rate`). In a production setting, you should specify and tune the optional hyperparameters carefully."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "61GSlDvF7-7q",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "5e663dd7-9fc1-4fac-b58b-62bc876b2606"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Using Adagrad\n",
+ "# YOUR CODE HERE: Retrain the network using Adagrad and then Adam.\n",
+ "#\n",
+ "_, adagrad_training_losses, adagrad_validation_losses = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.AdagradOptimizer(learning_rate=0.5),\n",
+ " steps=500,\n",
+ " batch_size=100,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=normalized_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=normalized_validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 14,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 81.62\n",
+ " period 01 : 72.83\n",
+ " period 02 : 72.42\n",
+ " period 03 : 71.72\n",
+ " period 04 : 74.47\n",
+ " period 05 : 72.38\n",
+ " period 06 : 71.53\n",
+ " period 07 : 72.43\n",
+ " period 08 : 70.15\n",
+ " period 09 : 69.58\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 69.58\n",
+ "Final RMSE (on validation data): 67.65\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "BFo0TozObMzs",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "dfcfdcf0-6563-4996-9938-adf7aeb374c1"
+ },
+ "cell_type": "code",
+ "source": [
+ "# Using Adam\n",
+ "# YOUR CODE HERE: Retrain the network using Adagrad and then Adam.\n",
+ "#\n",
+ "_, adam_training_losses, adam_validation_losses = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.AdamOptimizer(learning_rate=0.009),\n",
+ " steps=500,\n",
+ " batch_size=100,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=normalized_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=normalized_validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 15,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 227.41\n",
+ " period 01 : 152.84\n",
+ " period 02 : 118.94\n",
+ " period 03 : 113.59\n",
+ " period 04 : 105.69\n",
+ " period 05 : 93.75\n",
+ " period 06 : 78.55\n",
+ " period 07 : 73.02\n",
+ " period 08 : 71.11\n",
+ " period 09 : 70.72\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 70.72\n",
+ "Final RMSE (on validation data): 69.08\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xl4VOX9/vH3LJmsk30jCYR9D3tY\nBVklgNaFxQ3E5dvaFqq19qe1pbYWN2xr6wJu1apQWxRBQXFDRFkEhVBMEAg7gez7vk3O7w9gCgIh\ngUxmAvfrurzqnDlz5jP5TJrb53nOOSbDMAxEREREWhGzuwsQERERaSoFGBEREWl1FGBERESk1VGA\nERERkVZHAUZERERaHQUYERERaXWs7i5AxJN169aNdu3aYbFYAHA4HCQmJjJv3jz8/Pwu+Lhvv/02\nM2bMOGP78uXLeeihh3jxxRcZM2aMc3tVVRXDhw/nqquu4sknn7zg922sI0eO8Pjjj3Pw4EEAfH19\nmTt3LuPHj3f5ezfFokWLOHLkyBk/ky1btnDXXXcRFxd3xms+/vjjlirvohw9epRx48bRoUMHAAzD\nIDw8nN/97nf07NmzScf661//SkxMDDfffHOjX/P++++zbNkyFi9e3KT3EmkpCjAi57F48WKio6MB\nqKmp4b777uOll17ivvvuu6Dj5ebm8o9//OOsAQagTZs2fPDBB6cFmC+++ILAwMALer8L8etf/5pr\nr72WF198EYAdO3Ywe/ZsPvroI9q0adNidVyMNm3atJqwci4Wi+W0z7B69WrmzJnDJ598gs1ma/Rx\n7r//fleUJ+JWmkISaQKbzcbIkSPZtWsXANXV1Tz88MNMnDiRSZMm8eSTT+JwOADYvXs3N910E0lJ\nSVx77bWsX78egJtuuomMjAySkpKoqak54z0GDBjAli1bqKysdG5bvXo1I0aMcD6uqanh0UcfZeLE\niYwdO9YZNAC2b9/ODTfcQFJSEpMnT2bTpk3A8f+iv+KKK3jzzTe55pprGDlyJKtXrz7r50xLS6Nv\n377Ox3379uWTTz5xBrnnn3+eK6+8kuuuu46XX36ZsWPHAvCb3/yGRYsWOV936uPz1fX4448zc+ZM\nALZt28bUqVOZMGECM2bMID09HTg+EvXLX/6SMWPGMHPmTLKyss7TsbNbvnw5c+fOZfbs2Tz11FNs\n2bKFm266iXvvvdf5x/6jjz7i6quvJikpidtuu40jR44A8NxzzzFv3jymTZvG66+/ftpx7733Xl57\n7TXn4127dnHFFVdQX1/P3/72NyZOnMjEiRO57bbbyM7ObnLdkydPpqqqigMHDgCwdOlSkpKSGDt2\nLL/61a+oqqoCjv/cn3jiCa655ho++uij0/pwru9lfX09f/rTnxg9ejTTpk1j9+7dzvf95ptvuP76\n65k8eTKTJk3io48+anLtIs3OEJFz6tq1q5GZmel8XFRUZNx6663GokWLDMMwjJdeesn48Y9/bNTW\n1hqVlZXG1KlTjffee89wOBzGpEmTjFWrVhmGYRjfffedkZiYaJSWlhqbN282xo8ff9b3e/fdd40H\nH3zQ+PWvf+18bWlpqTFu3DjjnXfeMR588EHDMAzj+eefN2bPnm1UV1cb5eXlxnXXXWesXbvWMAzD\nuPrqq40PPvjAMAzDWLFihfO90tPTjZ49exqLFy82DMMwVq9ebUyYMOGsdfziF78wxowZY7zxxhvG\nvn37Tntuz549xqBBg4ycnByjtrbW+NnPfmaMGTPGMAzDePDBB42FCxc69z31cUN19erVy1i+fLnz\n8yYmJhobNmwwDMMwVq1aZVx//fWGYRjGkiVLjFtvvdWora01CgoKjDFjxjh/Jqdq6Gd88ufcr18/\n4+DBg879ExISjE2bNhmGYRjHjh0zBg4caBw6dMgwDMN49dVXjdmzZxuGYRjPPvusccUVVxj5+fln\nHPfDDz80br31VufjZ555xpg/f76RlpZmXHXVVUZNTY1hGIbx5ptvGitWrDhnfSd/Lj169Dhje2Ji\norF//37j22+/NYYNG2ZkZWUZhmEYv//9740nn3zSMIzjP/drrrnGqKqqcj5euHBhg9/LdevWGVdd\ndZVRVlZmVFZWGtOmTTNmzpxpGIZh3HDDDcaWLVsMwzCMgwcPGr/61a8arF2kJWgERuQ8Zs2aRVJS\nEuPGjWPcuHEMHTqUH//4xwCsW7eOGTNmYLVa8fHx4ZprrmHjxo0cPXqUvLw8pkyZAkBCQgIxMTGk\npKQ06j2nTJnCBx98AMCaNWsYM2YMZvP/fl2/+OILbrnlFmw2G35+flx77bV8+umnALz33ntMmjQJ\ngIEDBzpHLwDq6uq44YYbAOjVqxcZGRlnff8///nP3HrrraxatYqrr76asWPH8u9//xs4PjqSmJhI\n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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "UySPl7CAQ28C"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Task 3: Explore Alternate Normalization Methods\n",
+ "\n",
+ "**Try alternate normalizations for various features to further improve performance.**\n",
+ "\n",
+ "If you look closely at summary stats for your transformed data, you may notice that linear scaling some features leaves them clumped close to `-1`.\n",
+ "\n",
+ "For example, many features have a median of `-0.8` or so, rather than `0.0`."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "QWmm_6CGKxlH",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 715
+ },
+ "outputId": "78d0b7b2-adbf-4156-ae43-a5db1314161f"
+ },
+ "cell_type": "code",
+ "source": [
+ "_ = normalized_training_examples.hist(bins=20, figsize=(18, 12), xlabelsize=10)"
+ ],
+ "execution_count": 17,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABB0AAAK6CAYAAAB1zCTyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3XtclHX+///nMDBL6JCijLuWWZmp\n5SnXMvBQYCRSFpknXDvJViZaFqmEmra2QSrdPETZemR1NVayIjMwE7dMZDNaV902s/2065nBUFQg\nEOf3hz/nK3GQGWYYDo/7X8x75rpe7/d1MS8uX77f12Ww2Ww2AQAAAAAAuJiXpzsAAAAAAACaJooO\nAAAAAADALSg6AAAAAAAAt6DoAAAAAAAA3IKiAwAAAAAAcAuKDgAAAAAAwC0oOsCtDh8+rFtuucVj\n8ZcsWaIZM2Y4tE1OTo7CwsKqfG/GjBlasmSJK7oGADWqj/z5z3/+U9HR0W6N4Uq33HKLDh8+rE8/\n/VQvvfSSp7sDAA1WTdezl+zZs0f//ve/JUlr167VwoULK7U7IiwsTDk5OY53Fk2et6c7AAAAPKNn\nz55asWKFp7vhsLCwsCteTAMAavbee+/pt7/9rbp27apx48ZV2Q64AkUH1Iu0tDSlpKSosLBQU6dO\nVUREhBYtWqTMzExJUu/evfXyyy/Lz89PoaGhmjdvnvr27StJ9te9e/fW7NmztXv3bl24cEFdunRR\nYmKiWrZsqa1bt2rRokUqKipSx44dtWDBAgUEBEiSSktL9cILL+gf//iH2rZtqyVLlqhdu3Y6evSo\nZs2apcOHD8vHx0e///3vFRkZWaHfBQUFio2N1Y8//qibbrpJvr6++vWvfy3pYkX4L3/5i2w2m1q2\nbKmEhAR17ty5Ho8qgObAnflz//79mjlzpj799FMtWbJEBQUFOnHihP7973+rdevWeuutt2SxWLR/\n/349//zzkqQHHnhAmZmZmjlzpvr161dtv5csWaL8/HwdP35c+/fvV1BQkCIiIrRkyRLl5eVp7ty5\nCgkJUWlpqebNm6cvvvhCZWVlGjVqlCZMmCBJ+tvf/qZXX31V3t7eevjhh+373rhxo9LT07V69Wrl\n5+dr+vTpOnLkiEpLS/XII4/oiSeesI//qaeeUlpamo4fP677779fcXFxNR7v4uJivfTSS/r2229V\nVlamIUOGaPr06ZJU43Go6e8QAHhKdTlt/fr1+vDDD7Vt2zb99NNPOnv2rI4fP67u3btX2f7HP/5R\n0sXcfun1vn37NH36dJ0/f1533XVXhbjkRFyO5RVwuwsXLqisrEwfffSRXnrpJS1cuFCffPKJPv/8\nc23cuFEff/yxCgsLtXr16hr3s2PHDh0+fFgZGRnasmWLbrrpJn3zzTc6dOiQpk2bpqSkJH322Wfq\n16+f5syZY98uOztbsbGx2rZtmwICApSWliZJmjVrlu644w5lZmbqnXfe0auvvqrDhw9XiLls2TK1\nbt1a27Zt08svv6wdO3ZIks6ePatFixZpw4YNysjIUHR0tLZv3+7KwwYAbs+fv5SRkaH4+Hht3bpV\nbdq00XvvvSfpYr58/PHHtWXLFrVs2VI//vhjrfq/fft2vfbaa/roo4+UkZFh7/eECRO0bNkySRfz\n7MGDB/XRRx9p06ZNyszMVFZWlsrLyzVjxgzNnj1bn3zyiby8vFReXl4pxttvv61rr71WGRkZSklJ\nUVJSko4dO2Z//6uvvlJqaqree+89rV27VsePH6+xz+vXr9e5c+eUkZGh999/Xxs3btTu3btrPA5X\n+jsEAJ5SXU6LiopSz549NXXqVHuhVlK17VWZM2eOHn30UWVmZuq2226zX0eTE/FLFB3gdjabzT6D\n4JZbbtHx48e1fft2RUZGys/PT0ajUcOHD9eXX35Z434CAgL0ww8/6NNPP1VxcbGmTJmigQMH6vPP\nP9cdd9yhm2++WZI0ZswYbdu2zX5x+tvf/lbXXHONJKlr1646ceKEysrKtHPnTo0dO1aSdM0116hf\nv37atWtXhZi7d+/W0KFDJUnXXnut7rjjDknSr371KxkMBqWlpSk/P19Dhw7Vk08+6aIjBgAXuTt/\n/lLfvn11zTXXyGAwqFu3bjp27JhKSkq0f/9+3X///ZKk3/3ud7LZbLXq/2233aY2bdqodevWCgwM\n1KBBgyRJN998s/Ly8iRJWVlZGjt2rEwmk/z8/PTggw9qy5Yt+vHHH1VaWqoBAwZIkh566KEqY8yc\nOVOzZs2SJHXo0EGBgYEVCsjDhg2T0WhUu3bt1KZNmwoFiaqMHz9eb731lgwGg66++mp17txZhw8f\nrvE4XOnvEAB4SnU5ra5+/vln7d27VxEREZKk8PBwXXXVVZLIiaiM5RVwO6PRaE9CXl5eunDhgn76\n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\nY8bIYDBo9uzZnuoKAKAa5GoAaNjI0wAaOoOtNgu/AAAAAAAAHOSx5RUAAAAAAKBpo+gAAAAAAADc\nosE8MrMu/v73v+u5557Ta6+9ppCQkErvp6enKyUlRV5eXho1apRGjhypsrIyxcXF6ejRozIajUpI\nSFCHDh0cjn2l/ezbt0+vv/66/fXBgweVnJysL7/8Uh999JHatWsnSXrggQc0cuRIl8aWpFtvvVV9\n+vSxv169erUuXLhQL2OXpM2bN2vlypXy8vJSUFCQnn/+eW3cuFGLFi3SddddJ0kKDg7WM888U+u4\nr732mvbs2SODwaD4+Hj17NnT/t7OnTv1xhtvyGg0atCgQYqJibniNo6qaV+7du3SG2+8IS8vL91w\nww364x//qK+++krPPfecOnfuLEm6+eabNWvWLLfEDw0N1a9//WsZjUZJ0oIFC9SuXbt6Gf+JEyf0\n4osv2j936NAhxcbGqqysrE7n+5cOHDigiRMn6vHHH9e4ceMqvFcf5x/Oaa55ujbxJXJ1U8vV5Gny\ndGNFrvZMrvZUnpY8m6u5pm5GudrWyP33v/+1TZgwwTZx4kTbtm3bKr1/7tw527333msrLCy0FRcX\n2+677z5bQUGBbePGjbY5c+bYbDab7YsvvrA999xzTsV3ZD+nT5+2/e53v7OVl5fbFi9ebFuzZo1T\nMR2Jfccdd9Spz3WJX1RUZAsJCbGdOXPGduHCBduIESNs33//ve29996zJSYmOhUzJyfH9tRTT9ls\nNpvt4MGDtlGjRlV4f+jQobajR4/aysvLbVFRUbbvv//+itu4Mn5YWJjt2LFjNpvNZps8ebJt+/bt\ntl27dtkmT57sdExH4oeEhNjOnj3r0DaujH9JWVmZbcyYMbazZ8/W6Xz/0rlz52zjxo2zzZw5s8rv\nj7vPP5zTnPN0beOTq5tOriZPk6cbK3K153K1J/K0zebZXM01dfPK1Y1+eUVgYKDefPNNmc3mKt/f\ns2ePevToIbPZLF9fX/Xp00e5ubnKzs5WWFiYpItVotzcXKfiO7KfFStW6LHHHpOXl2sOu7NjqK+x\nX3XVVUpPT1fLli1lMBjUqlUrnTp1yqlYl8e85557JEmdOnXS6dOndfbsWUkXq4BXX321fvOb38jL\ny0t33XWXsrOza9zGlfElaePGjfr1r38tSQoICFBBQYHTY3Umvqu2qeu+3n//fQ0ZMkQtWrRwKk51\nTCaTli1bJovFUum9+jj/cE5zztOOxnfFdo7uh1zt2lxNniZPN1bkas/lak/k6UtxPZWruaZuXrm6\n0RcdrrrqKvu0l6rk5+crICDA/jogIEBWq7VCu5eXlwwGg0pLSx2OX9v9lJSUaMeOHRo8eLC9LSMj\nQ0888YSefvppHTp0yC2xS0tLFRsbqzFjxmjVqlUO9dkV8S89J/q7777TkSNH1KtXL0kXp+9FR0fr\nscce07/+9S+HYrZu3dr++tL5lCSr1Vrtua5uG0ddaV+XxpuXl6cvv/xSd911l6SLUwAnTJigqKgo\nffnll07Frk18SZo9e7aioqK0YMEC2Wy2eh3/JRs2bNCIESPsr50937/k7e0tX1/fKt+rj/MP5zTn\nPF3b+OTqppOrydPk6caKXO25XO2JPH0prqdyNdfUzStXN6p7OmzYsEEbNmyo0DZ58mQNHDiw1vuw\nVfOE0OrarxR/z549tdrP1q1bdffdd9srsnfddZfuvPNO3X777fr444/16quv6p133nF57GnTpumB\nBx6QwWDQuHHj1Ldv30qfcffYf/zxR7344otKSkqSj4+PevXqpYCAAN1999365ptvNH36dH300UdX\n7ENVatN3V2zjyL5OnjypCRMmaPbs2WrdurWuv/56TZo0SUOHDtWhQ4f06KOPasuWLTKZTC6P/+yz\nz2rgwIG6+uqrFRMTo8zMzFr12VXxJembb77RjTfeaP9j4crz7QquHD8qa855ui7xydWu2caRfdVX\nriZPO4487X7kas/l6oaap2vTd1dtU9v9cE3ddHJ1oyo6jBw50uEbw1gsFuXn59tf5+XlqXfv3rJY\nLLJareratavKyspks9mu+AtbVfy4uLha7ScrK0tRUVH217+8UcmCBQvcEvvymHfeeacOHDhQr2M/\nfvy4YmJiNG/ePHXr1k3Sxek4nTp1kiTddttt+umnn1ReXl5jdf2Sqs5nYGBgle+dOHFCFotFPj4+\n1W7jqJriS9LZs2f15JNPasqUKRowYIAkqV27doqIiJAkXXfddWrbtq1OnDjh1E2WrhQ/MjLS/vOg\nQYPs57u+xi9J27dvV1BQkP11Xc53XfrmjvOPK2vOebou8cnVTSdXk6dr3zfytOeQqz2XqxtKnpY8\nm6u5pm5eubrRL6+4kl69emnv3r0qLCzUuXPnlJubq759+6p///7KyMiQdDF59evXz6n913Y/+/bt\n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\nOTk55fJzZYWI9PR0rVmzRlu2bFGbNm20d+9ezZs377Ljq8kxPhovLq+AUw0YMEDx8fEqLS1VUVGR\n3n33XfXv3/+yfTp16qTU1FTl5OSouLjYdt3ub1ksFtt1yP7+/vrPf/4j6cL1wOnp6ZKkG2+8UWaz\n2XbQvHXrVlvlNjg4WNu3b7cdtO7cuVOvvvrq1U8aAOoBq9WqgIAAJSYm2v7s379ffn5+8vHxKXcf\nh8rubbBhwwb99NNP2rp1q5KSkjR27FiHj7lFixYymUy265ANw9DPP/+s5s2by83NzXbgLcnuYsHl\nPg8AqG/OnTunnTt3SpKSkpLUoUMHhYaGXva4+oMPPpB04X4QP//8szp37iyr1ar//ve/+vXXX3X2\n7NlK75WWk5MjPz8/tW7dWmfPntU777yjoqIiGYYhi8WioqIinT9/vlyfAQMGaMeOHbZ8/dZbb13x\nGB+NF0UHONXEiRPVqlUr3X333Ro5cqQGDBhguz6tKp06ddKIESM0YsQIPfDAAwoKCqp0u9DQUD3+\n+ONat26dxowZo8zMTA0ePFhxcXEKDQ2VJLm7u2vhwoWKjo7WkCFDZDKZbGfA7rjjDk2bNk0TJ07U\nkCFDtH79eg0cOLB2PwAAcBIPDw+lpaXZLon48ssvtWjRIklSly5dbAezR44c0YEDByr0P3XqlG65\n5RY1adJEmZmZ+uSTT8qtQnPUmPv06aN33nlHkvTpp5/q4Ycflru7u/r27avNmzfbxpyWlqaAgIBq\n77tv375Vfh4AUN9cf/31OnDggEJDQ7V69WrNnz//isfVvr6+Gj58uO6//37NnTtXzZo1U69evdS5\nc2eFhobqz3/+c6XHuoGBgbJarRo0aJAmT56sSZMmydvbW48++qhuv/12NWvWTH369Cn3qPpOnTrp\n4Ycf1v3336+wsDAVFBToscceq5PPBvWPyTAMw9mDAOxlGIZtRcLu3bu1bNmyKlc8AICrOXr0qAYP\nHqxvvvlGkvTyyy/ryJEjtkcPh4SEaNGiRSosLNSLL76okpISNWnSRNHR0erWrZuys7P12GOPKTMz\nU7feeqt8fX3Vpk0bzZw5U7fffrs++eQTnTlzRo8++qjOnz+v22+/XePHj9fMmTM1Y8YMFRQU6Jdf\nftHf/vY3SReeRnHp68qkpqZq7ty52rFjR4XtL339yy+/6IknntDx48fVrFkzPfPMM+rYsaOOHz+u\n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\nt956q06fPq3CwkJJF6qAzZo103XXXSc3Nzf1799fKSkpl+1Tm/ElaevWrWrVqpUkydfXV7m5uTWe\na03i11afq93XO++8o9DQUDVp0qRGcari4eGhNWvWyGq1VnivLr5/1Iwr52l749dGP3v3Q66u3VxN\nniZPN1Tkauflamfk6YtxnZWrOaZ2rVzd4IsO11xzjW3ZS2Wys7Pl6+tre+3r66usrKxy7W5ubjKZ\nTCouLrY7fnX3c+7cOe3Zs0cDBw60tSUmJuqhhx7S1KlTlZGR4ZDYxcXFioyM1Lhx47Ru3Tq7xlwb\n8S8+J/rbb79VZmamOnfuLOnC8r0pU6Zo0qRJ+uabb+yK2aJFC9vri9+nJGVlZVX5XVfVx15X2tfF\n+Z48eVJ79+5V//79JV1YAjht2jRFRERo7969NYpdnfiSNH/+fEVEROj555+XYRh1Ov+LtmzZolGj\nRtle1/T7/i2LxSJPT89K36uL7x8148p5urrxydWNJ1eTp8nTDRW52nm52hl5+mJcZ+VqjqldK1c3\nqHs6bNmyRVu2bCnXNnPmTAUGBlZ7H0YVTwitqv1K8Q8ePFit/ezcuVMDBgywVWT79++vu+66Sz16\n9NAHH3ygRYsWafXq1bUee86cObr33ntlMpk0YcIEde/evcI2jp77Tz/9pCeeeEJxcXFyd3dX586d\n5evrqwEDBuiLL77QU089pffee++KY6hMdcZeG33s2depU6c0bdo0zZ8/Xy1atNDvf/97PfLIIxoy\nZIgyMjL0wAMPaPv27fLw8Kj1+I8++qgCAwPVrFkzzZgxQ0lJSdUac23Fl6QvvvhCt9xyi+0fi9r8\nvmtDbc4fFblynr6a+OTq2uljz77qKleTp+1HnnY8crXzcnV9zdPVGXtt9anufjimbjy5ukEVHUaP\nHm33jWGsVquys7Ntr0+ePKkuXbrIarUqKytL7dq1U0lJiQzDuOIPbGXxo6KiqrWf5ORkRURE2F7/\n9kYlzz//vENiXxrzrrvu0uHDh+t07r/88otmzJihJUuWqH379pIuLMe59dZbJUldu3ZVTk6OSktL\nL1tdv6iy79Pf37/S906cOCGr1Sp3d/cq+9jrcvElqbCwUH/+8581e/Zs9e3bV5LUsmVLDR06VJJ0\n44036tprr9WJEydqdJOlK8UPDw+3/b1fv36277uu5i9Ju3fvVu/evW2vr+b7vpqxOeL7x5W5cp6+\nmvjk6saTq8nT1R8bedp5yNXOy9X1JU9Lzs3VHFO7Vq5u8JdXXEnnzp311VdfKT8/X2fOnFF6erq6\nd++uPn36KDExUdKF5NWrV68a7b+6+zl06JDatWtne71o0SKlpaVJurBM5uJdWGsz9o8//qjIyEgZ\nhqHz588rPT1dt912W53O/X/+53+0YMEC3XHHHba2NWvW6P3335d04a6pvr6+1f5l6dOnj63S+PXX\nX8tqtdqqf23atFFhYaGOHj2q8+fPKzk5WX369Llsn5rM+XL7io2N1aRJk9SvXz9bW0JCgl5//XVJ\nF5YrnTp1ynaH5dqMX1BQoClTptiW433++ee277uu5i9JX331Vbmf9av5vu1RF98/HKMx5+nqxCdX\nN65cTZ6uGnm6YSNXOy5XOyNPX4zrrFzNMbVr5WqT0cDXsO3evVuvv/66fvzxR/n6+srf319r167V\nq6++qh49eqhr165KTEzU66+/blsKde+996q0tFRz587VTz/9JA8PD8XGxuq6666zO35V+7k0viT1\n7t1bKSkptn7ffvut5s+fL4vFIpPJpEWLFummm26q9djPPfec9u/fLzc3NwUHB2v69Ol1NvfmzZsr\nPDy8XAX6wQcf1B133KEnn3zSlrTtfdzM888/r7S0NJlMJs2fP1/ffPONvL29FRISos8//9xW4R48\neLCmTJlSaZ9Lf4HtVVX8vn37lvvOJemee+7R3XffrSeeeEL5+fkqKSnRI488YrsurTbjh4SEaMOG\nDdq2bZt+97vf6Y9//KPmzZsnk8lUJ/O/eAOkYcOGad26dbr22mslXajMX833famLj8vKzMyUxWJR\ny5YtFRwcrDZt2tTZ9w/7uXKerm58cnXjytXkafJ0Q0Sudl6udlaelpybqzmmdp1c3eCLDgAAAAAA\noH5q9JdXAAAAAAAA56DoAAAAAAAAHIKiAwAAAAAAcAiKDgAAAAAAwCEoOgAAAAAAAIeg6AAAAAAA\nAByCogMAAAAAAHAIig4AAAAAAMAhKDoAAAAAAACHoOgAAAAAAAAcgqIDAAAAAABwCIoOAAAAAADA\nISg6AAAAAAAAh6DoAAAAAAAAHIKiAwAAAAAAcAiKDgAAAAAAwCEoOgAAAAAAAIeg6AAAAAAAAByC\nogMAAAAAAHAIig4AAAAAAMAhKDoAAAAAAACHoOgAAAAAAAAcgqIDAAAAAABwCIoOAAAAAADAISg6\n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\nSUlJ3s8+++yOxxhRR2xsrPfChQter9frXbFihffYsWPekydPelesWNHrue+2htmzZ3ubmpp6dIwR\nddzk8Xi8S5cu9TY1NfXJewGBw+w+bXaPNrs3m9GTze7FZvZgs3uv2T336tWr3pSUFO/atWu7/P3p\nr+wMRhwAAAdcSURBVL/D6Dl6tXm92qzPzmb2arM/K9Or+7dXD/jLKxwOh374wx/KZrN1+Xh1dbUm\nT54sm82msLAwRUVFyeVyqbKyUrGxsZJupEQul8vvGnryWnv27NGLL76ooKC+/9b7u6a+/F7czet9\n6UtfUmlpqYYPHy6LxaIRI0bo0qVLvZrz1rnnzZsnSXrggQd0+fJlNTU1SbqREt5zzz267777FBQU\npCeffFKVlZW3PcaIOiTp0KFD+vKXvyxJstvtamho6NV8/tTQV8f0VR0//vGP9Y1vfEPDhg3r1XwI\nPGb3abN7tNm92YyebHYvNrMHm917ze65VqtVu3btktPp7PRYf/4dRs/Rq83r1WZ9djazV5v9WZle\n3b+9esCHDl/60pd8p710pb6+Xna73fe13W6X2+3uMB4UFCSLxaK2tja/arjb12ptbdXx48c1d+5c\n31hZWZm+/e1v67vf/a5qamr8mr8ndbS1tSkzM1NLly7V3r17e1R/X9Zx8/7Rv/vd73Tu3DlFRkZK\nunFaX1paml588UX95je/8WvukSNH+r6++fOWJLfb3e17obtj/HWn17y5/rq6On388cd68sknJd04\nVTA9PV1JSUn6+OOPDa1BktavX6+kpCRt3bpVXq/XlO/FTQcPHtSiRYt8X/f2vYDAYXafNrtHm92b\nzejJZvdiM3uw2b3X7J4bEhKisLCwLh/rz7/D6Dl6tXm92qzPzmb2arM/K9Or+7dXD6g9HQ4ePKiD\nBw92GFuxYoViYmLu+jW83dwhtLvxu6mhurr6rl7rww8/1FNPPeVLZZ988kk9/vjjevTRR/Vf//Vf\neuONN/TOO+8YWsfq1av17LPPymKxKCUlRdOmTev0nLv9XvSmDkn6wx/+oFWrVikvL0+hoaGKjIyU\n3W7XU089pV/96ldas2aNfvrTn951LV3pyVp6c4w/r3nx4kWlp6dr/fr1GjlypO6//34tX75cCxYs\nUE1NjV544QUdPXpUVqvVkBr+5V/+RTExMbrnnnuUkZGh8vLyu6q7r+uQpF/96lf66le/6vsDY8R7\nAf3D7D5tdo82uzcHak82uxeb2YPN7r0Dseca8bcHHdGrzevVgdqn76b2vjrmbl+nPz8r06t7rifr\nH1ChQ2JiYo83hnE6naqvr/d9XVdXp6lTp8rpdMrtdmvixInyeDzyer139YbtqoasrKy7eq2Kigol\nJSX5vv7rzUq2bt161+vyt45b53/88cf16aef+v296E0dX3zxhTIyMrR582Y99NBDkm6cpvPAAw9I\nkh555BH93//9n9rb22+buv+1rn7eDoejy8dqa2vldDoVGhra7TH+ul0dktTU1KSXXnpJL7/8sp54\n4glJ0ujRoxUfHy9JGjdunO69917V1tb6vannnWpISEjw/XvWrFm+90J/fy8k6dixY5oxY4bv6754\nL8AcZvdps3u02b05UHqy2b3YzB5sdu8N5J7bn3+HcXv0avN6daD0acncXm32Z2V69d3X1hc/+wF/\necWdREZG6vTp02psbNTVq1flcrk0bdo0zZw5U2VlZZJuNK/p06f7PcfdvtaZM2c0ceJE39dvvPGG\nTp06JenGqTI3d2I1qo7f//73yszMlNfr1bVr1+RyufTggw/26ffibuqQpO9///vasGGDJk2a5Bvb\ntWuXjhw5IunGbqp2u73Hv0QzZ870JZG//vWv5XQ6fengV77yFTU1NelPf/qTrl27poqKCs2cOfO2\nx/jrTq+Zm5urF198UbNmzfKNlZaWas+ePZJunNZ08eJF307MfV3DlStXlJaW5jt175NPPvG9F/r7\neyFJp0+f7vC70RfvBQwcRvdps3u02b3ZjJ5sdi82sweb3XsDuef2599h9D16tXG92qzPzmb2arM/\nK9Oru2fEz97iHeDnsB07dkx79uzR73//e9ntdjkcDhUUFOg///M/9eijj+qRRx5RWVmZ9uzZ4zsV\n6tlnn1V7e7vWrl2rP/zhD7JarcrNzdV9993nVw3dvdatNUjSjBkzVFlZ6Tvud7/7ndavX6+QkBBZ\nLBa98cYbGj9+vN/fi7upY8uWLTp58qSCgoI0Z84cfe973+vT78Xd1DFixAglJCR0SKa/9a1vadKk\nSXrllVd8zdzf29Bs3bpVp06dksVi0fr16/Wb3/xGNptNsbGx+uSTT3wJ+Pz585WWltblMbf+gvur\nuzqeeOKJDu8LSXrmmWf09NNPa9WqVWpsbJTH49Hy5ct916/1dQ2xsbEqLCzU4cOH9Td/8zf6+7//\ne61bt04Wi6Vfvxc3N0365je/qb179+ree++VdCPN74v3AgKD2X3a7B5tdm82qyeb3YvN7MFm914z\ne+7N2xqeO3dOISEhGj16tObMmaOvfOUr/f53GD1DrzavV5v52dnMXm32Z2V6df/16gEfOgAAAAAA\ngMA06C+vAAAAAAAA5iB0AAAAAAAAhiB0AAAAAAAAhiB0AAAAAAAAhiB0AAAAAAAAhiB0AAAAAAAA\nhiB0AAAAAAAAhvh/m9fmVtIrhvsAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "Xx9jgEMHKxlJ"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "We might be able to do better by choosing additional ways to transform these features.\n",
+ "\n",
+ "For example, a log scaling might help some features. Or clipping extreme values may make the remainder of the scale more informative."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "baKZa6MEKxlK",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def log_normalize(series):\n",
+ " return series.apply(lambda x:math.log(x+1.0))\n",
+ "\n",
+ "def clip(series, clip_to_min, clip_to_max):\n",
+ " return series.apply(lambda x:(\n",
+ " min(max(x, clip_to_min), clip_to_max)))\n",
+ "\n",
+ "def z_score_normalize(series):\n",
+ " mean = series.mean()\n",
+ " std_dv = series.std()\n",
+ " return series.apply(lambda x:(x - mean) / std_dv)\n",
+ "\n",
+ "def binary_threshold(series, threshold):\n",
+ " return series.apply(lambda x:(1 if x > threshold else 0))"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "-wCCq_ClKxlO"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "The block above contains a few additional possible normalization functions. Try some of these, or add your own.\n",
+ "\n",
+ "Note that if you normalize the target, you'll need to un-normalize the predictions for loss metrics to be comparable."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "8ToG-mLfMO9P",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "57aff67d-7a72-41f8-ff5a-f101db4142da"
+ },
+ "cell_type": "code",
+ "source": [
+ "def normalize(examples_dataframe):\n",
+ " \"\"\"Returns a version of the input `DataFrame` that has all its features normalized.\"\"\"\n",
+ " #\n",
+ " # YOUR CODE HERE: Normalize the inputs.\n",
+ " #\n",
+ " processed_features = pd.DataFrame()\n",
+ "\n",
+ " processed_features[\"households\"] = log_normalize(examples_dataframe[\"households\"])\n",
+ " processed_features[\"median_income\"] = log_normalize(examples_dataframe[\"median_income\"])\n",
+ " processed_features[\"total_bedrooms\"] = log_normalize(examples_dataframe[\"total_bedrooms\"])\n",
+ " \n",
+ " processed_features[\"latitude\"] = linear_scale(examples_dataframe[\"latitude\"])\n",
+ " processed_features[\"longitude\"] = linear_scale(examples_dataframe[\"longitude\"])\n",
+ " processed_features[\"housing_median_age\"] = linear_scale(examples_dataframe[\"housing_median_age\"])\n",
+ "\n",
+ " processed_features[\"population\"] = linear_scale(clip(examples_dataframe[\"population\"], 0, 5000))\n",
+ " processed_features[\"rooms_per_person\"] = linear_scale(clip(examples_dataframe[\"rooms_per_person\"], 0, 5))\n",
+ " processed_features[\"total_rooms\"] = linear_scale(clip(examples_dataframe[\"total_rooms\"], 0, 10000))\n",
+ "\n",
+ " return processed_features\n",
+ "\n",
+ "normalized_dataframe = normalize(preprocess_features(california_housing_dataframe))\n",
+ "normalized_training_examples = normalized_dataframe.head(12000)\n",
+ "normalized_validation_examples = normalized_dataframe.tail(5000)\n",
+ "\n",
+ "_ = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.15),\n",
+ " steps=1000,\n",
+ " batch_size=50,\n",
+ " hidden_units=[10, 10],\n",
+ " training_examples=normalized_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=normalized_validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 21,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 112.52\n",
+ " period 01 : 105.82\n",
+ " period 02 : 104.10\n",
+ " period 03 : 102.13\n",
+ " period 04 : 100.03\n",
+ " period 05 : 100.63\n",
+ " period 06 : 99.47\n",
+ " period 07 : 97.40\n",
+ " period 08 : 95.65\n",
+ " period 09 : 97.44\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 97.44\n",
+ "Final RMSE (on validation data): 95.85\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGACAYAAACgBBhzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd4FWXa+PHvKTnpvZCe0DuhBUgg\nQBJKKC4gyEqJ4vK6xbqoi/iz7uKKWNgVFQu7rgvq6qqAICAdQg3E0AKBSEkhjZBOek7m94ev5zWm\nEOC0hPtzXVwXZ+aZmfvkniE3zzwzj0pRFAUhhBBCiA5EbekAhBBCCCGMTQocIYQQQnQ4UuAIIYQQ\nosORAkcIIYQQHY4UOEIIIYTocKTAEUIIIUSHo7V0AEK0Zz179iQ4OBiNRgOAXq8nPDyc5557DgcH\nh1ve73//+19mz57dZPm6det45plneP/994mOjjYsr66uJjIykgkTJvDqq6/e8nHbKjMzk1deeYXL\nly8DYG9vzyOPPMK4ceNMfuybsWrVKjIzM5v8TBITE1m4cCGBgYFNtvnuu+/MFd5tuXLlCrGxsXTu\n3BkARVHw8vLi2WefpU+fPje1rzfffBN/f3/mzJnT5m2++eYbvvrqK9auXXtTxxLCXKTAEeI2rV27\nFl9fXwBqa2tZtGgRH3zwAYsWLbql/RUUFPCPf/yj2QIHwM/Pj2+//bZRgbNnzx5cXFxu6Xi34qmn\nnmLatGm8//77AJw8eZL777+frVu34ufnZ7Y4boefn1+7KWZaotFoGn2HLVu28PDDD7Nt2zZ0Ol2b\n9/Pkk0+aIjwhLEpuUQlhRDqdjqioKFJTUwGoqanhhRdeYOLEiUyaNIlXX30VvV4PwLlz57j33nuJ\ni4tj2rRp7N+/H4B7772XnJwc4uLiqK2tbXKMwYMHk5iYSFVVlWHZli1bGDlypOFzbW0tL7/8MhMn\nTiQmJsZQiAAcP36cu+++m7i4OCZPnsyhQ4eAH3sERo0axZo1a7jrrruIiopiy5YtzX7PtLQ0wsLC\nDJ/DwsLYtm2bodB75513GDNmDNOnT+fDDz8kJiYGgCVLlrBq1SrDdj//fKO4XnnlFebPnw/A999/\nz8yZMxk/fjyzZ88mKysL+LEn649//CPR0dHMnz+fvLy8G2SseevWreORRx7h/vvv57XXXiMxMZF7\n772Xxx9/3FAMbN26lalTpxIXF8d9991HZmYmAG+//TbPPfccs2bN4uOPP26038cff5yPPvrI8Dk1\nNZVRo0bR0NDA3/72NyZOnMjEiRO57777yM/Pv+m4J0+eTHV1NZcuXQLgiy++IC4ujpiYGJ544gmq\nq6uBH3/uy5Yt46677mLr1q2N8tDSednQ0MBf/vIXxo4dy6xZszh37pzhuEePHmXGjBlMnjyZSZMm\nsXXr1puOXQijU4QQt6xHjx5Kbm6u4XNJSYkyb948ZdWqVYqiKMoHH3ygPPjgg0pdXZ1SVVWlzJw5\nU9mwYYOi1+uVSZMmKZs2bVIURVFOnTqlhIeHK+Xl5cqRI0eUcePGNXu8r7/+Wnn66aeVp556yrBt\neXm5Ehsbq3z55ZfK008/rSiKorzzzjvK/fffr9TU1CgVFRXK9OnTld27dyuKoihTp05Vvv32W0VR\nFGX9+vWGY2VlZSl9+vRR1q5dqyiKomzZskUZP358s3E8+uijSnR0tPLvf/9buXDhQqN158+fV4YO\nHapcvXpVqaurU/7whz8o0dHRiqIoytNPP628++67hrY//9xaXH379lXWrVtn+L7h4eHKgQMHFEVR\nlE2bNikzZsxQFEVRPvnkE2XevHlKXV2dUlRUpERHRxt+Jj/X2s/4p5/zwIEDlcuXLxva9+/fXzl0\n6JCiKIqSnZ2tDBkyRElPT1cURVH++c9/Kvfff7+iKIqycuVKZdSoUUphYWGT/W7evFmZN2+e4fNb\nb72lLF26VElLS1MmTJig1NbWKoqiKGvWrFHWr1/fYnw//Vx69+7dZHl4eLhy8eJF5dixY0pERISS\nl5enKIqiPP/888qrr76qKMqPP/e77rpLqa6uNnx+9913Wz0v9+7dq0yYMEG5fv26UlVVpcyaNUuZ\nP3++oiiKcvfddyuJiYmKoijK5cuXlSeeeKLV2IUwB+nBEeI2xcfHExcXR2xsLLGxsYwYMYIHH3wQ\ngL179zJ79my0Wi12dnbcddddHDx4kCtXrnDt2jWmTJkCQP/+/fH39+f06dNtOuaUKVP49ttvAdi5\ncyfR0dGo1f93Oe/Zs4e5c+ei0+lwcHBg2rRpbN++HYANGzYwadIkAIYMGWLo/QCor6/n7rvvBqBv\n377k5OQ0e/zXX3+defPmsWnTJqZOnUpMTAz/+c9/gB97V8LDw/H29kar1TJ16tQ2fafW4qqrq2P8\n+PGG/Xfq1MnQYzV16lQyMzPJyckhKSmJ8ePHo9VqcXd3b3Qb75dyc3OJi4tr9OfnY3VCQ0MJDQ01\nfLazsyMiIgKAgwcPMnz4cEJCQgC45557SExMpL6+HvixR8vDw6PJMceOHcvZs2cpKSkBYMeOHcTF\nxeHi4kJRURGbNm2itLSU+Ph4pk+f3qaf208UReGLL76gU6dOhIaGsnv3biZPnkynTp0AmDNnjuEc\nAIiIiMDW1rbRPlo7L48dO8aYMWNwdHTEzs7OkCsAT09PNmzYwMWLFwkNDeXNN9+8qdiFMAUZgyPE\nbfppDE5RUZHh9opW++OlVVRUhKurq6Gtq6srhYWFFBUV4ezsjEqlMqz76Zecl5fXDY85cuRInnvu\nOUpKSti8eTMPPfSQYcAvQHl5OcuWLWPFihXAj7esBgwYAMCmTZtYs2YNFRUVNDQ0oPxsOjqNRmMY\nHK1Wq2loaGj2+La2tixcuJCFCxdSVlbGd999xyuvvEJgYCClpaWNxgN5enre8Pu0JS4nJycAysrK\nyMrKIi4uzrBep9NRVFREaWkpzs7OhuUuLi5UVFQ0e7wbjcH5ed5++bm4uLjRd3R2dkZRFIqLi5vd\n9icODg5ERkayd+9ehgwZQllZGUOGDEGlUvH222/z0UcfsXTpUsLDw/nzn/98w/FMer3e8HNQFIVu\n3bqxatUq1Go15eXl7NixgwMHDhjW19XVtfj9gFbPy9LSUnx8fBot/8krr7zCe++9xwMPPICdnR1P\nPPFEo/wIYQlS4AhhJB4eHsTHx/P666/z3nvvAeDl5WX43zpASUkJXl5eeHp6UlpaiqIohl8mJSUl\nbS4GbGxsiI6OZsOGDWRkZDBo0KBGBY6Pjw+/+c1vmvRg5Ofn89xzz/Hll1/Su3dv0tPTmThx4k19\nz6KiIlJTUw09KC4uLsyePZv9+/eTlpaGs7Mz5eXljdr/5JdFU2lp6U3H5ePjQ5cuXVi3bl2TdS4u\nLi0e25g8PT05fvy44XNpaSlqtRp3d/cbbjtx4kR27NhBcXExEydONOR/xIgRjBgxgsrKSpYvX84b\nb7xxw56QXw4y/jkfHx9mzJjB008/fVPfq6XzsrWfrZeXF88//zzPP/88Bw4c4NFHHyUqKgpHR8c2\nH1sIY5NbVEIY0QMPPMDx48c5evQo8OMtia+++gq9Xk9lZSXffPMNY8aMITAwEF9fX8Mg3uTkZK5d\nu8aAAQPQarVUVlYabne0ZMqUKaxevbrZR7NjY2P58ssv0ev1KIrCqlWrSEhIoKioCAcHB7p06UJ9\nfT1ffPEFQIu9HM2prq7mscceMww+BcjIyODkyZMMHTqUQYMGkZSURFFREfX19WzYsMHQztvb2zA4\nNSsri+TkZICbiissLIyCggJOnjxp2M+f/vQnFEVh4MCB7N69G71eT1FREQkJCW3+Xjdj5MiRJCUl\nGW6jff7554wcOdLQc9ea6Ohojh8/zs6dOw23eQ4cOMCf//xnGhoacHBwoFevXo16UW5FTEwM27dv\nNxQiO3fu5MMPP2x1m9bOy0GDBnHgwAGqqqqoqqoyFFZ1dXXEx8dz9epV4Mdbm1qtttEtUyEsQXpw\nhDAiJycnfvvb37J8+XK++uor4uPjycrKYsqUKahUKuLi4pg0aRIqlYoVK1bw4osv8s4772Bvb89b\nb72Fg4MDPXv2xNXVlZEjR7J+/Xr8/f2bPdawYcNQqVRMnjy5ybq5c+dy5coVpkyZgqIo9OvXj/vv\nvx8HBwdGjx7NxIkT8fT0ZMmSJSQnJxMfH8/KlSvb9B39/f157733WLlyJS+//DKKouDk5MQzzzxj\neLLq17/+NTNmzMDd3Z0JEybwww8/ADB79mweeeQRJkyYQJ8+fQy9NL169WpzXHZ2dqxcuZKlS5dS\nUVGBjY0Njz/+OCqVitmzZ5OUlMS4cePw9/dn3LhxjXodfu6nMTi/9Nprr93wZ+Dr68vLL7/MQw89\nRF1dHYGBgSxdurRNPz8nJyf69u3L+fPnGThwIADh4eFs3ryZiRMnotPp8PDw4JVXXgFg8eLFhieh\nbkbfvn35/e9/T3x8PA0NDXh6evLnP/+51W1aOy+jo6PZu3cvcXFxeHl5MWbMGJKSkrCxsWHWrFks\nWLAA+LGX7rnnnsPe3v6m4hXC2FTKz290CyGEkSUlJbF48WJ2795t6VCEEHcQ6UMUQgghRIcjBY4Q\nQgghOhy5RSWEEEKIDkd6cIQQQgjR4UiBI4QQQogOp0M+Jl5Q0Pxjocbi7u5AcXGlSY8hbp7kxXpJ\nbqyT5MV6SW7aztvbudnl0oNzC7RajaVDEM2QvFgvyY11krxYL8nN7ZMCRwghhBAdjhQ4QgghhOhw\npMARQgghRIcjBY4QQgghOhwpcIQQQgjR4UiBI4QQQogORwocIYQQQnQ4UuAIIYQQd6C9e3e1qd1b\nb71JTk52i+uXLHnCWCEZlRQ4QgghxB0mNzeHnTu3tant448/ib9/QIvrX311hbHCMiqTTtWQlpbG\nQw89xIIFC5g/fz4Aa9asYfny5Rw9ehRHR0cAtmzZwkcffYRarSYiIoJFixY12s+SJUs4c+YMbm5u\nACxcuJCxY8eaMnQhhBCiw1qxYjmpqWeIigpnwoRJ5Obm8Pe/r2LZsr9QUHCVqqoqfvOb3zJyZBSP\nPPJbnnhiMXv27KKi4jqZmRlkZ1/hsceeJCJiJFOmxLJ58y4eeeS3hIcPJzk5iZKSEpYv/xteXl78\n5S/Pk5eXS//+A9i9eyfr128xy3c0WYFTWVnJ0qVLiYiIMCzbsGEDhYWF+Pj4GJZVVVXxxhtvsHHj\nRhwdHZk9ezZ33XUX3bp1a7S/J554gujoaFOFK4QQQpjdf3df4Ni5q02WazQq9HrllvYZ3suH2THd\nWm0zZ04869b9l86du5KZmc6qVf+guLiIYcNGMGnSVLKzr/D880sYOTKq0XZXr+bzxhsrOXLkEN98\n8zURESMbrXd0dOStt97jvffeJiFhN/7+gdTW1vDhhx9z8OB+/vvf/9zSd7oVJitwdDodq1evZvXq\n1YZl48aNw8nJiU2bNhmW2dvbs3HjRpycnABwc3OjpKTEVGHdloYGhe/TChjn5mDpUIQQQgij6N27\nLwDOzi6kpp5h48Z1qFRqyspKm7QdMGAgAD4+Ply/fr3J+rCwQYb1paWlZGRcpn//MAAiIkai0Zhv\nji2TFTharRattvHufypifumn5efPnyc7O5uwsLAmbT755BP+9a9/4enpyfPPP4+Hh4fxg76BH66U\n8N6GFK6WVjNleLDZjy+EEKJjmR3TrdneFm9vZwoKys0Sg42NDQA7dnxHWVkZ7777D8rKyvif/4lv\n0vbnBYqiNO1h+uV6RVFQq39cplKpUKlUxg6/RSYdg3Mz0tPTeeqpp3jzzTcNP+yfTJs2DTc3N3r3\n7s2HH37IO++8wwsvvNDivtzdHUwyE6urmwMe355ly6HLzIzpjrODzujHELfH29vZ0iGIFkhurJPk\nxXqZMjceHk5oNCocHW1xcrLD29uZ+voqunXrTKdOruzd+x16fT3e3s7odFrc3R0btS0udkSn0+Lt\n7YxKpWrUztvbGScnO+rqbOnevTvbtm3D29uZ/fv3o9frzXbOWUWBk5eXx8MPP8xrr71G7969m6z/\n+TiemJgYXnrppVb3V1xcaewQDcYNCeK/ey7wxbZzTBvV2WTHETfPnP/jETdHcmOdJC/Wy9S5cXXt\nxOnTKXh6+mBjY09BQTlDh45kyZInOHbse6ZM+RVeXt689toKamvrKS6uoKKiBhubagoKyikurqC2\ntp6CgnIURaGgoNzQrqCgnOvXq6moqKFfv6H85z9fMGvWbAYNGoKLi6vRv1dLBZNKaa6PyYjefvtt\n3N3dDU9RwY9FyqZNmwxPUS1cuJDf//73hIeHN7uPRx99lMWLFxMUFMSnn37KhQsXePHFF1s8pilP\niuraep5+/zANDQqv/SESe1urqBEF8o+1NZPcWCfJi/XqKLkpKyslOTmJsWNjKSi4yuOP/4HPPvva\nqMdoqcAx2W/nlJQUli9fTnZ2Nlqtlm3bthEZGcmhQ4coKCjgwQcfZODAgdxzzz0kJSWxcuVKw7YL\nFizA39+fHTt28NhjjzFv3jz++Mc/Ym9vj4ODA8uWLTNV2Ddkp9Pyq9Fd+fS7c+w7kUOcjMURQggh\nmuXg4Mju3Tv57LO1KEoDjz5qvpcCmrwHxxJMXfXaO9rywNLt2NpoeO0PEdiYYLyPuHkd5X88HZHk\nxjpJXqyX5KbtWurBkTcZ3wInBx3RgwMorahl/6lcS4cjhBBCiF+QAucWTQgPxkarZuuRTOr1DZYO\nRwghhBA/IwXOLXJ11DE6zJ/CsmoSz+ZbOhwhhBBC/IwUOLchblgwGrWKzYczaGjocEOZhBBCiHZL\nCpzb4OlqR0Q/X/KKKklOK7B0OEIIIYTRzJp1F5WVlaxd+zEpKacarausrGTWrLta3X7v3l0AbNmy\niX379pgszpZIgXObpowIQaWCbw+nN/vaaiGEEKI9i49fQL9+A25qm9zcHHbu3AbA5Ml3MWaM+SfL\nlrfU3aZOHg6E9/LhaOpVTl8qZEBXL0uHJIQQQrToN7+ZxyuvvImvry95ebk888yTeHv7UFVVRXV1\nNYsW/Yk+ffoZ2v/1ry8xdmwsAwcO4tlnF1NbW2uYdBNg+/atfPXVF2g0akJDu/L008+yYsVyUlPP\n8K9/raahoQE3Nzdmzvw1q1a9xenTJ6mv1zNz5mzi4qbwyCO/JTx8OMnJSZSUlLB8+d/w9fW97e8p\nBY4RTIkI5WjqVb49lEH/Lp5mnUxMCCFE+7Xuwrccv3q6yXKNWoX+Fsd2DvLpz93dpra4fvToaA4e\nTGDmzNns37+P0aOj6dq1O6NHj+X774/x6af/5q9/fb3Jdtu2baVLl6489tiT7Nq13dBDU1VVxZtv\nvo2zszMPP/wgFy9eYM6ceNat+y8PPPAg//znBwCcOJHMpUsXee+9j6iqquL+++9l9OixADg6OvLW\nW+/x3ntvk5Cwm9mz597Sd/85uUVlBEE+Tgzs5sWF7FLSskosHY4QQgjRoh8LnP0AHDiwj1GjxrBv\n3y7+8IeFvPfe25SWlja7XXr6Jfr1CwNg0KAhhuUuLi4888yTPPLIb8nIuExpafO/B8+dO8vAgYMB\nsLe3JzS0C1lZWQCEhQ0CwMfHh+vXrxvle0oPzk1QFIXLZRl4evZtsm5KZAgnLlzj20Pp9Ax2t0B0\nQggh2pu7u01ttrfFlG8y7tKlK4WFBeTn51FeXs7+/Xvx8vLh+eeXcu7cWd555+/NbqcooFb/eIfi\npyeH6+rqWLHiNT7++DM8Pb1YvPiPLR5XpVLx86Gq9fV1hv1pNP83I4CxxrNKD85NuFiazpvfr2Lj\n+R1N1nX1d6V3iDtn0ou5nFtmgeiEEEKItomIGMWHH64iKmoMpaUlBAQEArBv3x7q6+ub3SY4OIRz\n51IBSE5OAqCysgKNRoOnpxf5+XmcO5dKfX09arUavV7faPtevfpy/Pj3/7tdJdnZVwgMNN18jlLg\n3IRAJz/stXZsPr+LOn1dk/VTI0IA+PZQupkjE0IIIdpuzJhodu7cxtixscTFTeGLLz5l0aKH6du3\nH4WFhWzevLHJNnFxUzhz5jSPP/4HsrIyUKlUuLq6ER4+nP/5n/v4179WM3duPCtXriAkpDPnz59j\n5co3DduHhQ2kZ89ePPzwgyxa9DC///0j2Nvbm+w7ymSbN2nDhS3syNzLnJ53MypgRKN1iqLwytrv\nuZhTxl8WDiPQ28lkcYimZHI66yW5sU6SF+sluWk7mWzTSMYGjUSj1rArK4EGpfEcVCqViimRoQBs\nOZxhgeiEEEIIAVLg3DQ3W1dGhwznauU1Tl8722R9WFdPAr2dSEzNJ7+40gIRCiGEEEIKnFtwV69x\nAOzM3NdknUqlYmpkCIoCW49IL44QQghhCVLg3IJAFz/6efbmUmkGF0vSm6wf2tOHTh4OHDydR1FZ\ntfkDFEIIIe5wUuDconHBY4Dme3HUahWTRwSjb1D47mimuUMTQggh7nhS4Nyibm6dCXUJ5vS1s+RX\nXG2yPqKvLx4utiScyKGsotYCEQohhBB3LilwbpFKpWJc8BgUFHZlJTRZr9WomTQ8hNr6BnYkZVkg\nQiGEEOLOJQXObQjz7ou3vSeJecmU1jR9X0HUAD9cHHXsTr5CZXXTFwMKIYQQwjSkwLkNapWamKDR\n1DfUs+/KwSbrdTYaJoYHUVWjZ1dytgUiFEIIIe5MUuDcphF+Q3GycWR/9mGq62uarB87KAAHWy07\njmVRU6tvZg9CCCGEMDYpcG6TTmPDmMBIKuurOJx7rMl6e1st44YGcr2qjn0ncywQoRBCCHHnkQLH\nCEYHRGKjtmFXZgL6hqa9NOOGBmFro+G7xAzq6hua2YMQQgghjEkKHCNw0jkS4RdOcU0JyVdPNV1v\nb0P0oABKrtdyMCXXAhEKIYQQdxYpcIwkNjgKFSp2Zu6juQnaJwwLQqtRs/VIBvoG6cURQgghTEkK\nHCPxsvdkkE9/rlzP4XzxhSbr3ZxsiRrgR0FJNUdTm74YUAghhBDGIwWOEbU2fQPApOHBqFUqNh/O\noKGZXh4hhBBCGIcUOEYU4hJEd7cupBalkVXe9IkpLzd7RvTtRM61Co6nXbNAhEIIIcSdQQocIxsf\nMhaAXS304kyJCEEFfHs4vdmxOkIIIYS4fSYtcNLS0hg3bhyffPKJYdmaNWvo27cvFRUVhmUbN25k\n5syZ3HPPPXz55ZdN9pObm0t8fDxz587l8ccfp7bWeiev7OPRE39HX76/epKi6uIm6/08HRnS05uM\nvHLOpBdZIEIhhBCi4zNZgVNZWcnSpUuJiIgwLNuwYQOFhYX4+Pg0avfuu+/y8ccfs3btWv79739T\nUlLSaF8rV65k7ty5fPbZZ4SEhPDVV1+ZKuzbplKpiA0eTYPSwJ6sA822mRIRCsC3hzLMGJkQQghx\n5zBZgaPT6Vi9enWjYmbcuHEsWrQIlUplWHby5En69++Ps7MzdnZ2DB48mOTk5Eb7SkxMJDY2FoDo\n6GgOHz5sqrCNYmingbjZunIgJ5HKusom60N8nenfxZO0rBLSskqa2YMQQgghbofJChytVoudnV2j\nZU5OTk3aXbt2DQ8PD8NnDw8PCgoKGrWpqqpCp9MB4Onp2WS9tdGqtYwNHEmtvpb92UeabTM1MgSA\nzYelF0cIIYQwNq2lA/ilGw28bcvAXHd3B7RajbFCapa3t3Or66e7jmNb5m4Scg7x68GTsdHYNNm+\n3+EMTl8spLRGT7dAN1OGe8e4UV6E5UhurJPkxXpJbm6PxQscHx8frl37v0emr169ysCBAxu1cXBw\noLq6Gjs7O/Lz8xvd9mpOcXHT20LG5O3tTEFB+Q3bjfQbzs7MfWxJSSDSf1iT9ROHBpFysZBPtpzl\n4Rn9TRHqHaWteRHmJ7mxTpIX6yW5abuWCkGLPyYeFhbG6dOnKSsro6KiguTkZIYOHdqoTWRkJNu2\nbQNg+/btREVFWSLUmxYdNAqNSsPOzH00KE2nZ+gT6k6orzPJ5wvIuVbRzB6EEEIIcStMVuCkpKQQ\nHx/P+vXrWbNmDfHx8bz33nvEx8dTUFDAgw8+yGuvvYadnR1PPvkkCxcu5IEHHuDhhx/G2dmZ1NRU\nVq5cCcCjjz7Khg0bmDt3LiUlJUyfPt1UYRuVm60rQzsNJL+ygJRrqU3Wq1QqpkaGogBbjshYHCGE\nEMJYVEoHfNucqbv1bqbrMOd6Hn89uoKurqE8MeShJusbFIUX/3mU3MJKlv1uBN5u9sYO944hXbrW\nS3JjnSQv1kty03ZWe4uqo/N38qWvZy8ulqZzubRpL41apWJKRAgNisLWxEwLRCiEEEJ0PFLgmMGN\nJuEM7+2Dt5sdB07lUFxeY87QhBBCiA5JChwz6O7WhWDnQE4WnCG/suk7fDRqNZNHhFCvV9h+THpx\nhBBCiNslBY4ZqFQqxoeMRUFhd2ZCs20i+/nh7mzL3uM5XK+qM3OEQgghRMciBY6ZDPTuh5edB0fy\nvqe89nqT9TZaNROHBVNTp2fHsSwLRCiEEEJ0HFLgmIlapSYmeDT1DfXsu3Kw2TZjwvxxsrdh1/dX\nqKqpN3OEQgghRMchBY4ZRfgNxdHGgYQrh6nR1zZZb6vTMCE8iMqaevYcz7ZAhEIIIUTHIAWOGek0\nOsYERFJRX8nhnGPNtokZHIi9rYbtRzOprdObOUIhhBCiY5ACx8xGB0Zio9ayOysBfUPTAsbBTkvM\n4EDKKutIOJljgQiFEEKI9k8KHDNz1jkxwi+cwupiThScbrbN+PAgdDZqvjuaSb2+6RxWQgghhGid\nFDgWEBMUhQoVOzL30dxMGS4OOsaEBVBUVsPhlDwLRCiEEEK0b1LgWICPgxcDvfuRVZ5NWvHFZtvE\nDQ9Go1ax5UgGDQ0dbrowIYQQwqSkwLGQcSGtT9/g7mzLyP5+5BdXcezcVXOGJoQQQrR7UuBYSKhL\nMN3cOnO26DzZ13ObbTN5RDAqFWw+nN7srSwhhBBCNE8KHAu60SScPu4ODO/TiSsFFZy8UGjO0IQQ\nQoh2TQocC+rr2Qtfx04k5Z+guLqk2TaTR4QA8O1h6cURQggh2koKHAtSq9SMCxpNg9LAnqwDzbYJ\n9HZiUHcvLuWUkZpRbOYIhRD6D8bZAAAgAElEQVRCiPZJChwLG+o7CFedMwdzEqmsq2q2zdTIUAA2\nH84wY2RCCCFE+yUFjoXZqLWMDRpFtb6GAzlHmm3T2c+Fvp09SM0o5mJ2qZkjFEIIIdofKXCswCj/\nEdhpbNmbdYC6huZnEZ8a8b9jcQ6lmzEyIYQQon2SAscKONjYM9J/OKW15STlHW+2TY8gN7oFunLy\nYiGZ+eVmjlAIIYRoX6TAsRLRQaNQq9TszEqgQWk6/5RKpWJqRCgAW47IWBwhhBCiNVLgWAl3OzeG\ndhpIXkU+ZwrPNdumfxcPgjs5cSz1KnlFlWaOUAghhGg/pMCxIjd68d9PvTgKsEWeqBJCCCFaJAWO\nFQlw8qOPR08ulFwmvSyz2TaDe3rj5+nA4TN5FJZWmzlCIYQQon2QAsfKGHpxMprvxVGrVEweEYK+\nQeG7xOaLICGEEOJOJwWOlenh3pUg5wBOFKRwtfJas22G9+mEl6sdCadyKK2oNXOEQgghhPWTAsfK\nqFQqxgWPQUFhd9b+ZttoNWomDQ+mrr6B7UelF0cIIYT4JSlwrNAg7/542rlzJPcY5bXXm20zaoAf\nrk46dh/PpqK6zswRCiGEENZNChwrpFFriAkaTV1DPQlXDjXbxkarYWJ4MDW1enYlXTFzhEIIIYR1\nkwLHSkX4h+OodWBf9iFq9c2Psxk7yB9HOy07krKorm1+igchhBDiTmTSAictLY1x48bxySefAJCb\nm0t8fDxz587l8ccfp7a2lpSUFOLj4w1/IiIiSE5ObrSf+Ph4Zs6caWiTkpJiyrCtgq1GR1RgBBV1\nlRzOTWq2jZ1Oy/ihQVRU17P3eI6ZIxRCCCGsl9ZUO66srGTp0qVEREQYlq1cuZK5c+cyadIkVqxY\nwVdffcXcuXNZu3YtAGVlZTz00EMMHDiwyf6WLVtGjx49TBWuVRobOJKdmfvYnZlAVMAI1Kqm9Wjs\n0EC+O5rJtqOZxA4JwEarsUCkQgghhHUxWQ+OTqdj9erV+Pj4GJYlJiYSGxsLQHR0NIcPH260zT//\n+U/uv/9+1Gq5cwbgrHNihO8QrlUXcaKg+V4rRzsbogcHUFpRy4FTuWaOUAghhLBOJqsktFotdnZ2\njZZVVVWh0+kA8PT0pKCgwLCuurqaAwcOGAqgX1q5ciXz5s3jhRdeoLr6znmDb2zwaFSo2JmxD0VR\nmm0zITwYG62aLUcyqdc3nahTCCGEuNOY7BbVjfzyl/XOnTsZO3Zss7039913Hz179iQ4OJgXX3yR\nTz/9lIULF7a4b3d3B7QmvlXj7e1s0v0bjoMz4VlhHM0+QQF59PVuepvO2xsmDg/h24OXSb1SSszQ\nYLPEZo3MlRdx8yQ31knyYr0kN7fHrAWOg4MD1dXV2NnZkZ+f3+j21Z49e5gzZ06z240fP97w95iY\nGLZs2dLqcYqLTTvTtre3MwUF5SY9xs+N9h3J0ewTfHVqKz5hfs22GTPAj62H0/l8+3n6BruhVqnM\nFp+1MHdeRNtJbqyT5MV6SW7arqVC0KyDXSIjI9m2bRsA27dvJyoqyrAuJSWFXr16NdlGURQWLFhA\nWVkZ8OM4nu7du5snYCvR2TWErq6hnCk8R871vGbbeLraEdHPl9zCSpLPFzTbRgghhLhTmKzA+enx\n7/Xr17NmzRri4+N55JFH2LBhA3PnzqWkpITp06cb2peVleHk5GT4nJCQwGeffYZKpWL27NksWLCA\nefPmkZeXx7x580wVttX6aRLOXZkJLbaZPCIElQq+PZze4ngdIYQQ4k6gUjrgb0JTd+tZouuwQWng\n5cQVXKsq5C+RS3CzdW223fvfpHA09Sp/vCeMAV09zRqjpUmXrvWS3FgnyYv1kty0nVXcohK3Tq1S\nMy54NHpFz56sAy22mxIRCkgvjhBCiDubFDjtSLjvYFx0zhzITqSqvvlH5YN8nBjYzYsLV0pJyyox\nc4RCCCGEdZACpx2xUWsZGziSan01B3MSW2w3JSIEgG8PpZspMiGEEMK6SIHTzkQFjECn0bEn6wD1\nDc1PsNk1wJXeIe6cSS/mcm6ZmSMUQgghLE8KnHbGwcaBUf7DKakpJSn/RIvtpkovjhBCiDuYFDjt\nUHTQKNQqNbsyE1ocSNwrxJ0u/i4c/+EaVwqumzlCIYQQwrKkwGmHPOzcGeITRk5FHmeLzjfbRqVS\nMfV/n6jacjjDjNEJIYQQlicFTjv104v/dmbsa7FNWDdPAr2dSEzN56qJp68QQgghrIkUOO1UoLM/\nvT16kFZykYyyrGbbqFQqpkaGoCiw5UimmSMUQgghLEcKnHbM0IuT2XIvztCePnRyt+fg6VyKypp/\nd44QQgjR0UiB0471dO9GoJM/x6+e5lpVYbNt1GoVk0eEoG9Q2Ha0+Z4eIYQQoqORAqcdU6lUjAse\ng4LC7qz9LbaL6OeLh4st+05kU1ZZa8YIhRBCCMuQAqedG+wzAA87dw7lHON6bUWzbbQaNZOGh1Bb\n38COY9KLI4QQouOTAqed06g1xARFUddQR0L2oRbbRQ3ww8XBht3JV6isrjNjhEIIIYT5SYHTAUT4\nheOgtWfflUPU6psvXnQ2GiYMC6aqRs/u5GwzRyiEEEKYlxQ4HYCd1paogAiu11WQmJfUYrvoQQE4\n2GrZfiyLmlq9GSMUQgghzEsKnA5iTOBItCoNOzMTaFAamm1jb6sldkgg16vq2Hcyx8wRCiGEEOYj\nBU4H4WrrzHC/IVyrKuRkwZkW240PD8LWRsN3iRnU1TdfCAkhhBDtnRQ4HUhs0GhUqNiZua/FSTid\n7G0YO8ifkuu1HErJNXOEQgghhHlIgdOBdHL0ob9XH9LLMrlYmt5iu4nDgtFqVGw5koG+QXpxhBBC\ndDxS4HQwP03fsCNjb4tt3JxsGTXAn4KSao6cyTdTZEIIIYT5SIHTwXR1C6WLawgphankVrRcvEwe\nHoxGreKjLal8tDlV5qkSQgjRoUiB0wH91IuzKzOhxTZebvb88Z4w/D0dOXA6lyUfHOGL3T9wvUpe\nAiiEEKL9kwKnA+rv1QcfBy+O5SVTUlPaYru+nT3482+GsXBKb1wdbdh2NIun3z/EpkPp8p4cIYQQ\n7ZoUOB2QWqUmNmg09YqevVkHW2+rVjGyvx+v/HYE98Z0Q6NWsz7hEks+OMye5CvU62UQshBCiPZH\nCpwOarjvEJxtnDiQc4Tq+huPr7HR/jiVw6u/i2BqZChVtfWs3Z7Gc/9I5GhqPg0tPHYuhBBCWCMp\ncDooG40NY4NGUlVfzcGco23ezsFOy92ju7D8dxHEDA6gsLSa9785w9KPkzhzuciEEQshhBDGIwVO\nBxYVEIFOo2N31n70DTc3psbVyZb5E3ry1weHM7xPJzLyy3nzixO8/p/jXM4tM1HEQgghhHFIgdOB\nOdo4EOkXTklNKUn5J25pHz7uDvzuV315cUE4/Tp7kJpRzNJ/J7Fq/WnyiiqNHLEQQghhHFLgdHAx\nQVGoVepWp29oixBfZ5749UD+NGcQnf1cSDpfwHOrE/n3d+coLq8xYsRCCCHE7ZMCp4PztPdgsM8A\ncirySC1Ku+399Q5x57n7hvDQ9H74uNuz70QOz3xwmK/2XqSyWt6hI4QQwjpoTbnztLQ0HnroIRYs\nWMD8+fPJzc1l8eLF6PV6vL29ef3119HpdPTt25fBgwcbtvv444/RaDSGzy1tJ9pmXPAYkvJPsDNz\nH308e972/lQqFUN7+TCohxcHT+fxzYHLbDmSwb4T2UyOCCF2cCA6G82NdySEEEKYiMl6cCorK1m6\ndCkRERGGZStXrmTu3Ll89tlnhISE8NVXXwHg5OTE2rVrDX9+Xty0tp1omyDnAHq6d+N88QUyy68Y\nbb8atZrRYf4s++0I7hnbFUWBL/dc5JkPj5BwMkcm8hRCCGExJitwdDodq1evxsfHx7AsMTGR2NhY\nAKKjozl8+HCb9nWr24n/Mz54LAA7M/YZfd86Gw2TRoSw/A8RTBoRzPWqOj7eeo4X/nmU789fva2x\nP0IIIcStMFmBo9VqsbOza7SsqqrKcGvJ09OTgoICAGpra3nyySe59957+de//tVkXy1tJ9qul0d3\nApz8OF5wmsIq07zPxtHOhnvGduPV30UwOsyf/KIq3l2fwl/Xfs+5jGKTHFMIIYRojknH4LTm5/+r\nX7x4Mb/61a9QqVTMnz+foUOH0r9//xtu1xJ3dwe0WtOOAfH2djbp/k1hRt+JvJP4MYevJfLA4Nkm\nO463tzN/6uLFnKvlfLL1HAdP5fDaf44zuJcP90/uQ5cAV5MeW1gnyY11krxYL8nN7TFrgePg4EB1\ndTV2dnbk5+cbbl/NmTPH0GbEiBGkpaU1KnBa2q4lxcWmfT+Lt7czBQXlJj2GKfSw74m7rRu7Lh5g\nrO9onGwcTXo8WxUsnNyLmEH+fLX3IsnnrpJ87irD+3RiRlRnfNwdjHq89pqXO4HkxjpJXqyX5Kbt\nWioEzfqYeGRkJNu2bQNg+/btREVFcenSJZ588kkURaG+vp7k5GS6d+9+w+3EzdOoNcQEjaK2oY79\nV46Y7bid/Vx46t6BPPHrMII7OZF4Np9nVyfyyfbzlFbUmi0OIYQQdw6T9eCkpKSwfPlysrOz0Wq1\nbNu2jTfeeIMlS5bwxRdf4O/vz/Tp07GxscHX15dZs2ahVquJiYlhwIABpKamsmPHDh577DEeffRR\nnn766UbbiVsT6T+MLek72XflIOOCR2OjsTHLcVUqFf06e9In1INjqVdZn3CJ3cnZHDydx4TwIOKG\nB2Nva7E7pkIIIToYldIBH3Exdbdee+86/ObiVrZn7GFOz7sZFTDCIjHU6xvYfzKHbw6mU1ZRi5O9\nDVMjQ4keFICN9tY6Ftt7XjoyyY11krxYL8lN21nFLSphHcYGjkSr0rArK4EGxTLvqtFq1EQPDuTV\n341gxugu6Bsa+HzXD/y/D49w8HQuDQ0dru4WQghhRlLg3IFcbV0Y5juYq5XXOHXtrEVjsdNpuSsy\nlFd/F8GE8CBKK2r45+ZUXvzXUU78cE3eoSOEEOKWSIFzh4oNHgPAmrOfs/XyLmr0lh3s6+yg497Y\n7iz7bQQj+/uSc62ClV+fYtmnyfxwpcSisQkhhGh/NC+99NJLlg7C2CorTfvL2tHR1uTHMDUnnSNe\ndh6kFV8kpTCVI7lJ2GvtCHDyQ6VSWSwuBzstg3t4M7SnNyXXazibXsyBU7lk5JUT4O2Ii2PLc5B1\nhLx0VJIb6yR5sV6Sm7ZzdLRtdrkMMr4FHWnwV1V9NTsz97ErM4G6hjr8HX2Z3m0yfTx6WrTQ+cmF\nK6V8tfcCaVdKUQGR/XyZFtUZL1f7Jm07Ul46GsmNdZK8WC/JTdu1NMhYCpxb0BFPvJKaUjZf2s7h\n3CQUFHq4d2NGt8kEOwdaOjQUReHUxUK+3neRKwUVaDUqogcFMjUyBGeH/+vR6Yh56SgkN9ZJ8mK9\nJDdtJwWOEXXkEy/7ei4bLm7hbOF5AMI7DeauLhPxtHe3cGTQ0KBw5Gwe6xMuU1hWjZ1OQ9zwYCaE\nB2Gn03bovLR3khvrJHmxXpKbtpMCx4juhBPvXNEPbLiwmazrOWjVWsYGjmRiSAwONk1vDZlbXX0D\ne49ns+lQOter6nBx1HFXZCgzx/WkpLjC0uGJZtwJ10x7JHmxXpKbtjN6gZOenk5oaOjtxGQyUuAY\nR4PSQFL+CTZe/I7imhIctQ7EdY4lKiACG7Xl3zpcVVPPtqOZbDuWRU2tHj8vR+6N6Ub/Lp6WDk38\nwp1yzbQ3khfrJblpu1t60d8DDzzQ6POqVasMf3/hhReMEJawZmqVmmG+g3lxxJ+Y3nUyDTTw9Q+b\nWHrkDb7PP2Hxd9TY22qZHtWF5b+LIHZwIPlFlfztvydZtSGF4vIai8YmhBDCslotcOrr6xt9PnLk\n/yZotPQvN2E+NhobxoeM5aWIp4kOGkVJTSkfnfmM15Pe4YfiS5YODxdHHfMm9ODvi8bQNcCFpHNX\n+X+rj7D9WBb6Bsu8qVkIIYRltVrg/PIx4Z8XNdbwCLEwLycbR2Z1/xXPD3+KIT5hZJRn8ffj7/P+\nqY/Jq7hq6fDo7O/KM/OHcH9cT7RqFZ/v+oGlHydxMbvU0qEJIYQws5saSCFFjQDwdvDkN/3mEV0a\nxfoLmzl97SxnCs8R6T+MyaHjcbVt/n6oOahVKsYMDGBQD2++3HOBg6fzeGXt94we6M/MMV1xsjfP\n7OlCCCEsq9UCp7S0lMOHDxs+l5WVceTIERRFoayszOTBCevW2TWYRYN/z+lrZ9lwcSsHso9wNC+Z\n8cFjiA0eg62m5bcOm5qLg46FU/oQNcCftdvOs+9EDslpBcyO7kZkP18p1oUQooNr9Smq+Pj4Vjde\nu3at0QMyBnmKyvz0DXoO5R5l86UdlNddx0XnzNTOExjhNxSNWmOWGFrKS72+gR3Hsvjm4GVq6xro\nEeRG/MSeBHg5miUuIdeMtZK8WC/JTdvJe3CMSE68llXXV7MzM4FdmfuobajD17ETM7pOpq9nL5P3\nmtwoL9dKq/jPzh84/sM1NGoVE4cFc9fIUGxtzFOA3cnkmrFOkhfrJblpu5YKnFYn27x+/TqfffYZ\nAwcOBODzzz/n2Wef5fDhw4SHh+Pg4GCSYG+XTLZpOVq1lh7uXRnhN5Tq+hrOFf3AsfzjXCi5jL+j\nL662LiY79o3y4mBnw/A+nQjp5MwPV0o5dbGQI2fy8XGzx9fTOs/ljkKuGeskebFekpu2a2myzVYL\nnCVLlqDVaomMjOTy5cs8+eSTvPzyy7i4uPCf//yHuLg4U8V7W6TAsTw7rR0DvPsw0Ls/xdXFpBb/\nwMGcRK5WFhDsHGCSNyK3NS++ng6MCfOnQVE4c7mII2fzycwvp1uAKw52ln+BYUck14x1krxYL8lN\n27VU4LT6r3lWVhYrVqwAYNu2bcTFxREZGUlkZCSbN282fpSiw/F38uUPYb8hrfgC6y5sJin/BCeu\nnmZM4EjiQmNwsLFMz4mtTsM9Y7sR2deXtdvTOP7DNc6kFzFtZGfGhweh1bT6BgUhhBBWrtV/xX9+\nC+ro0aOMGDHC8FmeQhE3o4d7NxYPfZQFfebgYuvCrqwEXjy8nF2ZCdQ11N94ByYS4O3E03MHsXBK\nb3RaDV/uvcifPz5GWlaJxWISQghx+1otcPR6PYWFhWRmZnL8+HFGjhwJQEVFBVVVVWYJUHQcapWa\ncN9BvDD8KWZ0m4ICrLvwLUuPvE5S3nEaFMu8dVilUjGyvx+v/HYEYwb6k11QwaufJvPR5lTKpYtY\nCCHapVbH4Hh6erJgwQLWrl3Lww8/TGRkJNXV1cyZM4eZM2cyYMAAM4badjIGx7pp1Bq6uIYy0n84\nekVPWvEFkgtOcabwHJ0cvPC097il/d5uXnQ2GgZ286JvZw/S88pJuVzE/pM5ONnbENTJSXotb4Nc\nM9ZJ8mK9JDdt19IYnBs+Jl5XV0dNTQ1OTk6GZQcOHGDUqFHGjdCI5DHx9uVaVRGbLn1HUv4JAPp5\n9mZ6t8n4OXa6qf0YMy/6hgZ2JV1h/YHL1NTq6RbgSvzEngT5ON14Y9GEXDPWSfJivSQ3bXdL78HJ\nyclpdaf+/v63F5WJSIHTPmWUZbH+wmZ+KLmEChWR/sOY0nl8mx8tN0Veisqq+XzXDySdL0CtUjFu\naCDTRnXG3laetroZcs1YJ8mL9ZLctN0tFTi9evWic+fOeHt7A00n21yzZo2RwzQOKXDaL0VRSClM\nZcOFLeRVXkWn0TEuaDSxwWOw0zbfDfkTU+bl1MVCPt1xnoKSatydbZkT250hPb3ltlUbyTVjnSQv\n1kty03a3VOB88803fPPNN1RUVDBlyhSmTp2Kh8etjY8wJylw2j99g57Ducf49vJ2ymt/nPphSufx\nRPiFtzj1g6nzUlunZ/PhDLYmZlCvVxjQ1ZO543vg42b8d/p0NHLNWCfJi/WS3LTdbU3VkJuby/r1\n69m0aRMBAQFMmzaN8ePHY2dnZ/RAjUEKnI6jur6GXVkJ7MzcR62+Fl8HH6Z3m0w/z95Nek/MlZfc\nwgo+2Z5GakYxNlo1UyNDiRsWjI1W3p3TErlmrJPkxXpJbtrOaHNRffnll7zxxhvo9XqSkpKMEpyx\nSYHT8ZTWlLH58g4O5RxFQaG7WxdmdJtCiEuQoY0586IoColn8/l89wXKKmrx9XAgfmJPeoe4m+X4\n7Y1cM9ZJ8mK9JDdtd1sFTllZGRs3bmTdunXo9XqmTZvG1KlT8fHxMXqgxiAFTseVV5HPhotbOH0t\nFYAhPmH8quskvOw9LJKXyuo61iVcYk9yNgowom8nfh3THVdHnVnjsHZyzVgnyYv1kty03S0VOAcO\nHODrr78mJSWFCRMmMG3aNHr06GGyII1FCpyOL634IusvbCaz/ApalYbRgZHMHzKNqjLLvCzwcm4Z\na7adJyOvHHtbLbPGdGHMwADUahmEDHLNWCvJi/WS3LTdLT9FFRoaSlhYGGp10/EFy5YtM16ERiQF\nzp2hQWkg+eopNl7cSmF1MU46R+7uOpVhvoMt8nRTQ4PCnuPZrEu4SFWNns5+ztw3sRchvs1ffHcS\nuWask+TFeklu2u6WCpyjR48CUFxcjLt747EFV65c4e677271oGlpaTz00EMsWLCA+fPnk5uby+LF\ni9Hr9Xh7e/P666+j0+nYsmULH330EWq1moiICBYtWtRoP0uWLOHMmTO4ubkBsHDhQsaOHdvicaXA\nubPUNdSz78pBtqTvpKa+hj4ePZnT62487CwzHqbkeg1f7L5A4tl8VCqIGRzIjKgud/RM5XLNWCfJ\ni/WS3LTdLRU4SUlJLFq0iJqaGjw8PPjggw8ICQnhk08+4cMPPyQhIaHFA1ZWVvK73/2O0NBQevbs\nyfz583nmmWcYPXo0kyZNYsWKFfj6+jJjxgymTJnCxo0bcXR0ZPbs2Sxbtoxu3boZ9rVkyRImTpxI\ndHR0m76sFDh3KIda3jm0htSiNGw1OqZ1nUxUwAjUKss83XQmvYhPtqeRX1SJq5OOe2O6M6y3zx35\n7hy5ZqyT5MV6SW7arqUCp9V/+f/2t7/x8ccfc/ToUf70pz/xwgsvEB8fz5EjR/jyyy9bPaBOp2P1\n6tWNBiInJiYSGxsLQHR0NIcPH8be3p6NGzfi5PTjXD9ubm6UlMhMzuLmeTt68nDYQuJ7z0aj0vDf\ntA38Pfl98iuuWiSevqEe/OU3w5ge1ZmKqno+2HiGN784QX5RpUXiEUKIO0mrBY5araZr164AxMbG\nkp2dzX333cc777xDp06tzxOk1WqbvCenqqoKne7Hp0s8PT0pKCgAMMxzdf78ebKzswkLC2uyv08+\n+YT77ruPRYsWUVRU1MavJ+40KpWKEX5DeW74Uwzy7s/F0nReOfZ3tqfvQd+gN3s8Nlo1vxrZmZf/\nZxj9unhwNr2Y5/+ZyIb9l6irN388Qghxp2h1UMAvu9L9/PwYP368UQ78yztj6enpPPXUU7z55pvY\n2Ng0Wjdt2jTc3Nzo3bs3H374Ie+88w4vvPBCi/t2d3dAq23+bbfG0lKXmLCsn/LijTPPBD5E4pXj\n/OP7z/nm0lZOFafwh/B4Qt2DbrAX08T1SncfDp3K5cMNp9l4MJ1j5wv4/d0DGNzTOl+3YGxyzVgn\nyYv1ktzcnpsa9Xi7YwccHByorq7Gzs6O/Px8w+2rvLw8Hn74YV577TV69+7dZLuIiAjD32NiYnjp\npZdaPU5xsWlvAci9UevUXF662HbjufAn+PrCtxzJTWLJjlcZHzyWSaGx2GhsWtiT6fTwd2bpwmF8\nc+AyO5KyePHDw4T38uHe2O64O7c+11Z7JteMdZK8WC/JTdu1VAi2WuAcP3680dNKhYWFjB07FkVR\nUKlU7N2796aCiIyMZNu2bUybNo3t27cTFRUFwLPPPstLL71E3759m93u0UcfZfHixQQFBZGYmEj3\n7t1v6rjizuZg40B879kM9RnIZ+e/ZlvGbk4UpDC/9yy6uIaaPR57Wy33xnYnsp8va7ed59i5q5y+\nVMiMqC7EDAlA08wrGYQQQtycVp+iys7ObnXjgICAFtelpKSwfPlysrOz0Wq1dOrUiTfeeIMlS5ZQ\nU1ODv78/y5Yt48qVK0yfPp0BAwYYtl2wYAH+/v7s2LGDxx57jCNHjvD6669jb2+Pg4MDy5Ytw9PT\ns8Vjy1NUd6a25KW6voaNl74j4cohAEYHRvKrLnE3nKncVBoUhYSTOXy99yIV1fUEd3IifmJPuvq7\nWiQeU5FrxjpJXqyX5KbtjDYXVXsgBc6d6WbycrEknU/PfUl+ZQEedu7M7TmT3p6We0t3WUUtX+65\nwMGUPFTAmIH+zBrbFQc7899GMwW5ZqyT5MV6SW7arqUCR/PSjQa0tEOVlbUm3b+jo63JjyFu3s3k\nxcPOjUi/YSjA2aLzJOZ9T1FVMd3dOltkbI6tTsPgHt70CnbjUm45py8VcSglDx93e/w8Hc0ej7HJ\nNWOdJC/WS3LTdo6OzffAS4FzC+TEs043mxeNWkNPj2709+pDRlmmodDxsvPA17H11yCYiperPaPD\n/NFoVJy+VMSRs/nkFVXSM8gNWxvTPhloSnLNWCfJi/WS3LSdFDhGJCeedbrVvLjaOhPhF45OreNs\n0XmS8k+Qez2Prm5dLDI2R61W0TPYnSE9vEnPKyflchEHT+fi6WKHv5dju3wTslwz1knyYr0kN20n\nBY4RyYlnnW4nL2qVmq5unRns3Z8r13M4W5TG4dxjuOpcCHDys0hR4eKoI2qAH3Y6LSmXiziaepWs\nq9fpGeyGna59zWsl14x1krxYL8lN20mBY0Ry4lknY+TFSefIcL8hOOucSC1KI/nqKS6XZdLVtTMO\nNvZGirTtVCoV3QJdGdbLh6yr1zlzuYj9J3NxcdQR5OPUbnpz5JqxTpIX6yW5aTspcIxITjzrZKy8\nqFQqQl2CGNppEHmVV0ov8igAACAASURBVEktSuNQ7lHstHYEOwdYpKhwsrchsr8vLo46UtKLSDp3\nlUs5ZfQIcmsXs5TLNWOdJC/WS3LTdlLgGJGceNbJ2HlxsLEnvNMgPO09OFf0AycKUkgrvkAX1xCc\ndOZ/skmlUtHZz4URfTqRU1jJmctFJJzKwdFWS4ivs1X35sg1Y50kL9ZLctN2UuAYkZx41skUeVGp\nVAQ6+zPcdyhF1cWcLUrjYO5RNKgJdQlGrTL/W4cd7GyI6NsJT1c7zl4u5vu0As5nltA9yBUne+t8\nb45cM9ZJ8mK9JDdtJwWOEcmJZ51MmRc7rS2DO4UR4OjL+eILnLp2lpRrqYS4BOFq62KSY7ZGpVIR\n0smZiH6+FJRUkXK5iP0nc7DRquni52J1vTlyzVgnyYv1kty0nRQ4RiQnnnUyR158HTsR6RdOed11\nzhad51DuMeob6uniGoJGbf731NjbahnW2wd/L0fOpBdz/IdrpFwuomuAKy4OOrPH0xK5ZqyT5MV6\nSW7aTgocI5ITzzqZKy82GhvCvPvSxSWEH0oukVKYyvGC0wQ6BeBh52by4/+SSqUiwNuJkQP8KCqr\nNvTmoFLR1d8FtdryvTlyzVgnyYv1kty0nRQ4RiQnnnUyd168HTyJ9BtGrb6Ws4XnOZKbxPW6Srq6\ndkarNv+TTbY2Gob28iH4/7d33+FRXXf+x98zo1HvZdQlVAAh0YtNb8amGgym2ARSNrvPJv5lN/Fm\nsy67ttkncfw462STdbKJ401hwV6KKQZTjemmGdOEkBDqEiqj3tvM3N8fAhmMsAcxM/dK+r7+wWDN\nzBGfc66+nHvuOSZfMotquXSjiss5VSRE+hPoq85horfJmNEmyUW7JBv7SYHjQNLxtEmNXNz0bqSF\npDA0aDB59QVkVGdxvuISkd7hhHnf/8R7Z4oM8WHayEgaWzpJz+vaN6fTamNwTAAGvesXRYOMGa2S\nXLRLsrGfFDgOJB1Pm9TM5X6HdyYHJuCuwuGd7m4GxgwOIynan+tFdVzOrebz65UMivAj2N/T5e2R\nMaNNkot2STb2kwLHgaTjaZPaufR0eOeZ8vOEeAYTqdLhnaYgb6aNjKStw0J6Xg0nr5TR2m5hcGwg\nbgbXzeaonY3omeSiXZKN/aTAcSDpeNqklVzuPrwzm/MVlyhtKidZpcM7jW56RiaFkhIXSHZJPVdy\nqzmXWUFMmC9hga45fkIr2Yi7SS7aJdnYTwocB5KOp01ayuXLh3dm3jq809/dT7XDO0MDvJg+KgqL\nTSE9r5pP08upb+5gSGwgRjfnzuZoKRvxBclFuyQb+0mB40DS8bRJi7lo7fBOg0FPWkIwIxJDyL1Z\nT3peNWeulRMR7EN4sLfTPleL2QjJRcskG/tJgeNA0vG0Sau59HR456dl5/B08yDOL0aV2ZwgPw+m\njYxCr4P0vBpOZ5RTVdfKkNhA3I2O37BQq9kMdJKLdkk29pMCx4Gk42mT1nO5fXhnqFcIWTU3uFx5\nleu1OSSpdHinQa8jJT6I0cmh5Jc1kp5fw6dXywkL9CIq1LHt0Xo2A5Xkol2Sjf2kwHEg6Xja1Bdy\nuX1458TI8dS01nbP5ujRkaDS4Z0Bvh5MGxWJu5ueq3k1nL1Wwc2qZobGBuLh7pjZnL6QzUAkuWiX\nZGM/KXAcSDqeNvWlXDwMdx/ema7y4Z16nY4hsYGMTwmjsKKRjPwaTqaXEeTnQXSYz0PfRutL2Qwk\nkot2STb2kwLHgaTjaVNfzKWnwzs7bZ0kBQxS5fBOP293po6IxMfTyNX8as5lmiksb2RoXBBeHr0/\nfqIvZjMQSC7aJdnY734Fjk5RFMXFbXG6yspGp75/WJif0z9DPLi+nktmdTbvX99GTVst4d5hrBm2\ngsSAQaq1x1zXyl/3ZpJVVIeXh4FVswczbWTvHnHv69nYFIXK2laKzE0oisKIxJCHKvi0oq/n0p9J\nNvYLC/Pr8c+lwOkF6Xja1B9yabO0sztvP8dKTgEwK3YqTybOU+W4BwBFUTh2uZQth3No67CSOiiI\nb81LeeANAvtSNu2dVm5WNlNkbqS4ookicyMl5mbaO63dX+PupmfMkDAmpYWTOijYpbtCO1JfymWg\nkWzsJwWOA0nH06b+lEtOXT4bM7dQ2VqNyTuUtcNWqjqbU9PQxv8euM6V3GrcjXqWz0hi9rgY9HbO\n5mg1m/rmDoorGik2N1FkbqKoopHymhbuvCrqdTqiQr2JNfkRF+5LW4eVMxnlVNS2AuDnbeSRYeFM\nSosgIdJPlcf+e0uruQjJ5kFIgeNA0vG0qb/l0mHtYFfefo4Wfwrcns2Zi7vBXZX2KIrC6Yxy/u/Q\nDZrbLCTHBPCd+SlEhnz9I+VqZ2OzKVTUtnQVMrdmZYormqhvvnuNg5eHgViTH7EmX+JMvsSF+xEV\n6o3R7e71UIqikF/WyOmMcs5lVtDY0glAeLA3k9LCmZgWgclFx2A8DLVzEfcn2dhPChwHko6nTf01\nl7tmc7xCWTNsJUmBg1RrT31zB+8dvM7565W4GfQ8NS2BuY/EYtDf/zaNK7Np77BSUtk1I1Nsbuqa\noalsoqPTdtfXhfh7dM/K3P41NMDzgWdgLFYb1wpqOHW1nIs3qui0dH1OcnQAk9LCmTAsHF8vdW4x\nfp3+Omb6A8nGflLgOJB0PG3qz7lobTYH4HyWmY0Hr9PQ0kl8hB/fXTCMGJNvj1/rrGzqm9q7by3d\nnp2pqGnhzouaQa8jKtSHOJMvsSZfYsO7ZmicUXS0tlu4kF3J6YxyMgtqUW59/sikECalRTAqOeSe\n2SA19ecx09dJNvaTAseBpONp00DIJacun/cyt2JurdLEbE5Tayf/d+gGpzPKMeh1LJwUz6LJg+5Z\ndPuw2dhsCuU1LXcs/O2anWm45xaTW1chE+5L3K1ZmcgQH6cfJtqT2sZ2zl6r4HRGOcXmpu72jR8a\nxqS0CIbEBdq9hslZBsKY6askG/tJgeNA0vG0aaDk0mHtYHfeAY4UnwS0MZtzJbeK9fuvU9vYTkyY\nD99ZMIyEyC82LHyQbNo6LJRUNlNc0XhrdqaJm5VNdFjuvsUUGuDZtVYm/Is1MyG9uMXkCiXmJk5f\nK+dMRgW1je0ABPt7MDE1gklp4USH9Tzz5WwDZcz0RZKN/VQpcLKzs3nuuef49re/zZo1aygrK+Nf\n/uVfsFqthIWF8R//8R+4u7uza9cu1q9fj16vZ+XKlaxYseKu97nf6+5HCpyBaaDl8uXZnG8MW0Fy\nYIJq7Wlps7D1aA7HLpWi08G8R+JYMjUBd6Ohx2wURaGuqYNic+Othb9d62XMta333GKKDvW5a1Ym\nxuSLj6c217V8FZuikF1Ux6mMcj6/bqa1vevR8ziTLxPTIng0NZwgv543LXOGgTZm+hLJxn4uL3Ba\nWlr4+7//ewYNGsTQoUNZs2YNL730EtOnT2f+/Pn86le/IiIigqeeeoqlS5fywQcfYDQaWb58ORs3\nbiQwMLD7vXp63erVq+/72VLgDEwDMZcvz+bMjJ3C4sR5qs7mZBbU8Jd9WVTVtxEe7M135qcwcVQ0\n6dcr7lr4W2Ru6n766DYfT7e7ZmViTb5Ehfr02X1mvkpHp5XLudWcvlpOel41VpuCTgep8UFMTItg\n7JAwp28mOBDHTF8h2djP5QWOxWLBYrHw7rvvEhQUxJo1a5g9ezb79+/H3d2dixcv8uc//5nVq1ez\nbds23nrrLQBeffVVZs6cyezZs7vfq6fXvf322/f9bClwBqaBnEtuXQEbM7doZjanvcPKtuO5fHK+\nBACjm77HW0xx4X53rZkJ9vfQ5C0mZ2ts6eB8lplTGeXk3mwAXLOZ4EAeM1on2djvfgWO0/554Obm\nhpvb3W/f2trafWspJCSEyspKqqqqCA4O7v6a4OBgKisrv/Z1XyUoyBs3Jz+pcL+/UKGugZpLWNgI\nxiQMZXP6LvZkH+bXF/7A/CGzeHbEEjzc1JnN+eGz43hiYgJ/2n0Vi9VGYlQACVEBJEYHMCjSHx+N\nPjqthjAgMT6ElXOHUVbVzNELJRz9vJiz1yo4e62CAF93po2OZta4WAbHBjq0CByoY6YvkGwejmqH\nqdxv4ujrJpTsmXCqrW3pVZvsJZW1NkkuMD9mLkP9hrIhcwt7sw/zWfFl1gxbqdpsTqivkReeHXNP\nNi1NbbQ0tanSJq1zA+aMieKx0ZHdmwmevVbBRyfz+ehkvkM3E5Qxo12Sjf1cPoPTE29vb9ra2vD0\n9KSiogKTyYTJZKKqqqr7a8xmM6NHj/7a1wkhepYYMIiXJjzP7rz9HCk+ya8v/EETa3PEg9HpdCRG\n+ZMY5c+q2clk5NdwOqNrM8GdJ/LZeSK/T2wmKIRaXLpyb/LkyRw4cACAgwcPMm3aNEaNGkV6ejoN\nDQ00Nzdz4cIFxo8f/7WvE0Lcn7vByNODn+Sfxn2fMO8QjhSf5Ofn/pOcuny1myZ6wc2gZ1RyKN9b\nMpxf/8NUvrtwGMPig8i9Wc+Gg9k8//ZJ3t52hfNZZjot1q9/QyEGAKctMr569SpvvvkmN2/exM3N\njfDwcN566y1efPFF2tvbiYqK4o033sBoNLJ//37+9Kc/odPpWLNmDYsXLyYzM5OPP/6Yf/zHf8Rs\nNvPCCy/c87r7kUXGA5Pk0rMOaycf5R3gcPEJAGbGTGFxkmtncyQb53jYzQQlF+2SbOwnG/05kHQ8\nbZJcvlpefQEbMrdgbqki1CuEtS5cmyPZOF9vNhOUXLRLsrGfFDgOJB1PmySXr9dh7eSj/AMcLvpi\nNufJpHl4OHk2R7JxHZuicL2ojtN2bCYouWiXZGM/KXAcSDqeNkku9surL2RD5maXzeZINur4us0E\nn5icQHOjPM2mRTJm7CcFjgNJx9MmyeXBfHk2Z0bMZBYnzXfKbI5ko76eNhP0cDewaFI8cx+J65e7\nRfdlMmbsJwWOA0nH0ybJpXfy6gvZmLmFipZKQr1CWJOygsFBiQ79DMlGW8y1LZzJqODo5VLqGtuJ\nM/nynQXDiI+QjeW0QsaM/aTAcSDpeNokufTenbM5CsqtJ60cN5sj2WiTp48H/73lEifTy9DrdDzx\nSCxLpibgYXTuTvDi68mYsd/9ChzDunXr1rm2Kc7X0tLh1Pf38fFw+meIBye59J5Bb2BY8BBSgoeQ\nV19ARnUWn5svE+MbRYhX0EO/v2SjTUGB3gyN9ic5JoDs4jqu5FbzWaaZ6DBfwh5yl2TxcGTM2M/H\nx6PHP5cCpxek42mT5PLwgjwDmRT5CFbFSkZ1FmfKz9Pc2UJyYCJu+t7/q16y0abbuZgCvZg+KgqL\n1UZ6XjWfppdT29jGkNhAjE4+10/0TMaM/e5X4Mgtql6QqUNtklwcK7++kA231+Z4BrNm2AoGByX1\n6r0kG23qKZf8sgb+sjeLksomAnzcWfPEEMYNleNxXE3GjP3kFpUDSWWtTZKLY909m3P9oWZz+kM2\nNsWGubWKpo5mfIzeDj3RWy095RLk58G0UZG4uem5ml/N2WtmSsxNDIkNxNNdtfOZB5z+MGZcRWZw\nHEgqa22SXJynazZnKxUt5l7N5vSlbGyKjZq2OsqayylrqqC0uYKy5nIqWsx02iwAhHuHMdY0kjGm\nkUT5RPTZYufrcimrbuav+7K4UVKPt4cbK2cnM21kZJ/9fvuSvjRm1CZPUTmQdDxtklycq9PayZ78\njzlUdAwFhRkxk1mStMCuJ620mI2iKNS111PWXEFpczllzRWUNVVQ1lJBh/Xufzkb9UYifExE+UTQ\nbu0gozqLTlsnAOHeJsaaRjDWNIpIn/A+9cPfnlxsisKxizfZejSXtg4rKXGBfGt+CuFB3i5q5cCk\nxTGjVVLgOJB0PG2SXFwjv77o1tqcrtmcbwxbwZCvmc1RO5vGjiZKm8rvKGa6/rvVcvcuvgadgXDv\nMKJ8I4j0CSfSp+vXUK9g9LovNsJrs7STUZ3JBfOVW8VO18xOhLeJMaaRjDWNJMo3wqXfY288SC41\nDW1sOHCdy7nVuLvpWTItgScmxGLQywaBzqD2mOlLpMBxIOl42iS5uE5PszmLE+fj6dbzvXBXZdPc\n2dI1E9NcTmlTRXch09TZfNfX6XV6wrxCifIJ7ypkfCOI8gknzCsUwwOuL2qztHO1OpOLXy52fMIZ\nGzaCseFdMzta9KC5KIrCZ1lm3vs4m8aWTuIj/PjO/BTiwmWDQEeT65n9pMBxIOl42iS5uN6dszkh\nt9bm9DSb4+hs2ixttwqZWzMyt4qZ+o67P0OHjhCvYCJ9wom6NRsT5RuByTsMo97xC2bbLG1crc7q\nntmx3Fns3JrZ0VKx09tcmlo72fTJDU5dLUev0zF/YhyLpwySR8odSK5n9pMCx4Gk42mT5KKOL8/m\nTI+ezJKku2dzeptNh7WT8pZba2NuFTOlTeXUttfd87VBHoFE+t5RyPhEEOFjwt3JJ6XfT5uljatV\nt25j1VzvLnYi7yh2IlQudh52zFzNq2b9/utUN7QRHuzNt+cNZWjcw28MKeR69iCkwHEg6XjaJLmo\nK7++iI2ZWyjvYTbn67LptFkwt1RS1r1OpmtGpqq1BoW7L1H+7n7dRUyk7+11Mia83LS7827rHcXO\ntTuKnSifiO6nsSJ8XL/XjCPGTFuHhR3H8zl0vhgFmDk6iuUzk/H2lEfKH4Zcz+wnBY4DScfTJslF\nffebzYmNDKWyshGrzUpla/UdTy11/WpurcKm2O56Lx+j9xeFzB0Fja/RR6XvzjFaLW2kV13jgvkK\nmdXXsShW4ItiZ6xpJOEuKnYcOWZyS+v5674sblY2E+TnwZonhjBmcJhD3nsgkuuZ/aTAcSDpeNok\nuWhHQUMRG659MZuTYkqkoOYmFc3m7h/ot3kaPG+tjfmikInyjcDP6NunHrnujVZLK+m3ZnbuLXZG\nMdY0wqnFjqPHjMVqY+/pQnafKsBqU5iQYmL140MI8FHnNmFfJtcz+0mB40DS8bRJctGWTmsnewsO\n8XHhURQU3PVGIm4v9r1VzET5hBPoEdDvCxl7fFHsXCazOru72In2jey+jRXu7dgZEWeNmZtVzfx1\nXya5Nxvw8XRj1ezBTBnRdzdEVINcz+wnBY4DScfTJslFm2rb6ggI8oQW97v2khH312pp5UrlrdtY\nNdlY7yp2umZ2TA4odpw5ZmyKwpELN/ngWC7tHVbSBgXxzXkpckq5neR6Zj8pcBxIOp42SS7aJdn0\nXktn6601O5fJrLnRXezE+EZ1z+yYvEN79d6uyKW6vo3/PXCd9Lxq3I16lk1LZM74WPR6mc35KjJm\n7CcFjgNJx9MmyUW7JBvHaOls5UpVBhfMV8i6o9iJ9Y1iTC+KHVfloigKZ65V8H+HbtDU2klCpB/f\nmT+MGJOv0z+7r5IxYz8pcBxIOp42SS7aJdk4XktnC5errnHx1m2s20+hxfpGMdY0ijGmkYR5h3zl\ne7g6l4aWDjZ9coMzGRUY9DrmT4znycmDMLrJrcsvkzFjPylwHEg6njZJLtol2TjX7WLngvkyWTU3\nvih2/KK7Hz0P9bq32FErlyu51fzvgSxqGtqJDPHm2/NTGBwT6PJ2aJmMGftJgeNA0vG0SXLRLsnG\ndZo7W7hSees2Vu0XxU6cX3T3zE6oVzCgbi6t7Ra2H8/j8OclAMwaG83TM5Lw8pANAkHGzIOQAseB\npONpk+SiXZKNOpo7W7hcmcEF82Wu1+bcUezEMNY0kjkpk9C19nxAqqvklNTzl32ZlFW3EOTnwTfn\nDmVUcu8WTfcnMmbsJwWOA0nH0ybJRbskG/U1dTZ3z+zcWez0dHaYq3VabOw5XcCe04VYbQqPpobz\n7JzB+HsP3A0CZczYTwocB5KOp02Si3ZJNtrS1NHM5aqrHCv9lJsN5YR4BrE6ZTkpwYNVbVdJZRN/\n3ZdFXmkDvl5Gnn1sMBPTwgfkBoEyZux3vwLHsG7dunWubYrztbR0OPX9fXw8nP4Z4sFJLtol2WiL\nu8GdOL8Ynhw+i+bmdjJqrnO2/HPq2xtIDkzEqFdnHYy/jztTR0Ti42nkan41n2WZyStrYHBMAN6e\nRlXapBYZM/bz8el59lEKnF6QjqdNkot2STba5OfrRaxHHMNDUsivL+RazXU+K79IhI+JsF5uHviw\ndDodSdEBTEwNp7S6hYz8Go5fLsPD3UBChP+Amc2RMWM/KXAcSDqeNkku2iXZaNPtXAI8/JkcNQEd\nOjJqsjhXfoGatloGByZiNKgzc+LtaWRSWjimIC+uFdRwIbuKjPwakqL88R8Ah3fKmLHf/Qocl67B\nsdlsvPbaa9y4cQOj0ci6dev4zW9+Q21tLQB1dXWMHj2an/70p92v2b59O7/5zW+Ii4sDYPLkyXz/\n+9//ys+RNTgDk+SiXZKNNvWUS3FjKRszt1DSVEqAuz/PpixjRGiqSi3s0tDcwfuHsjmXacag17Fo\n8iAWTorHzdB/NwiUMWO/+63BcemN1k8++YTGxkY2bdpEUVERr7/+Ou+88073/3/ppZdYsWLFPa9b\nsGABL7zwgiubKoQQA1KsXxT/Mv4fOFh4lH0Fh/jDlb/ySMRYlg9ejI/RW5U2+fu4870lw5mYVsWG\nA9f58GQ+57PMfHt+CknRAaq0SWifS8vfgoICRo4cCUBcXBylpaVYrV1nqeTl5dHY2Nj9/4UQQqjD\noDcwP+ExXpzwQ+L8YjhXfoGfnf0llyuvqtqu0cmh/OxvH2XWmGhuVjXz8w2f8/7H2bR1WFRtl9Am\nl96iOnbsGOvXr+fdd9+lsLCQZcuWcejQIUJDQ1m3bh3z5s1j4sSJd71m+/btvPfeewQGBmKxWHjh\nhRdITf3q6VKLxYqbm8GZ34oQQgwIVpuV3dcPsfXqR3TaLEyOG8/fjF2Fv4e6B2Vm5FXz9pZL3Kxs\nwhTkxf9bPpqxKSZV2yTuVVHTQnpOJTPGxrr8zDGX74Pzn//5n5w9e5ahQ4eSnp7OO++8Q0BAAE8/\n/TS7d+++5+tzc3MpLi5m5syZXLx4kVdffbXHr7uTrMEZmCQX7ZJstOlBcilvrmBj5lbyG4rwNfqw\nauhSxprUnXHvtFjZfaqAfWeKsNoUxqeYWD4jEVOQOrfSHKmvj5mWNgt7Thfw8fkSLFYbr3xrPAmR\n/k75LE1u9DdnzhwOHjzI6dOn2bt3L6+//vrXvmbKlCkcP34cg+H+MzRS4AxMkot2STba9KC52BQb\nh4tP8FHeATptFkaHjWDV0Kfwd+/5B4yrFJub+N/9WeSWNmDQ65g1JponpwzCrw/vhNxXx4zFauPY\npVI+PJlPU2snQX4eLJ+RxKThEU77TE0sMs7KymL9+vW88cYbHD9+nNTUVPR6Penp6aSkpPT4mnff\nfZfIyEgWLVpEdnY2wcHBX1ncCCGEcA69Ts+cuBmMCE3lvcytXKpM50ZdLisHL2Fc+GjV9qiJNfny\n8tpxnL9eybajuRz6vIRPr5axYGI8c8bH4mGUnxnOpigKl3Kq2Hokl/KaFjzcDSybnsgTE2JxV+nv\n36UFzpAhQ1AUheXLl+Ph4cFbb70FQGVlZfdj4Ld9//vf5/e//z1PPvkkP/nJT9i0aRMWi8WuWR4h\nhBDOE+4dxo/Gfo9jJafYlbuPv1z7Pz43X+GZoUsJ8HDObYivo9PpmJBiYszgUI5evMmuTwvYdiyP\nwxdu8tS0BKYMj0SvHxibBLpaQXkDWw7nkFVUh04HM8dEs2RqAgEq71ckZ1H1Ql+dOuzvJBftkmy0\nyRG5VLZU817WVm7U5eHl5sWKwYt5JGKs6jsOt7Zb2He2kIPniumw2IgO82HFzCRGJIao3jZ79IUx\nU9PQxrZjuZzOqABgZFIIK2YlEx3q49J2aHINjrNIgTMwSS7aJdlok6NysSk2Tt48y87cPbRbO0gL\nSeHZocsI8gx0QCsfTm1jOztP5HEyvQxFgZS4QFbMSnbagldH0fKYaW23sPdMIQc/K6bTYiPW5Muq\n2cmkDgpWpT1S4DiQljveQCa5aJdko02OzqW6tYb3s7aRVXsDT4MnTw9exKTICZqYMSmpbOKDo7lc\nya0G4NHUcJZNTyQs0EvllvVMi2PGarNx/HIZH57Io6Glk0Bfd5ZNT2Ly8AhVb/9JgeNAWux4QnLR\nMslGm5yRi6IonCo7x/YbH9FmbWdY8BBWpzxNsGeQQz+ntzILa9lyJIfC8kYMeh2zx8bw5JRB+Hpp\n67RyLY0ZRVG4klvNliM5lFW34GE0MH9iHHMnxOHhrv4CbilwHEhLHU98QXLRLslGm5yZS21bHe9n\nbeNazXU8DO4sTV7IlKhH0evUPz/Kpih8lmlm27Fcqurb8PJwY+GkeOaMi1HtiZ8v08qYKapoZPPh\nHDILa9HpYNrISJ6alkigb88HXKpBChwH0krHE3eTXLRLstEmZ+eiKApnyj9n241dtFraGBKYxDeG\nrSDUS521Gl/WabFx5OJNdn+aT3ObhSA/D5ZNT2RSmrq3XED9MVPb2M7247mcSi9HAYYnBLNyVjIx\nJnV3sO6JFDgOpHbHEz2TXLRLstEmV+VS117PpuvbSa/KxN3gzpKk+UyPnqSJ2RyAlrZO9pwp5ND5\nEjotNmLCfFk5K4m0hGDV1g+pNWbaOizsP1vE/nNFdHR2PX22alYywxNDXN4We0mB40BysdYmyUW7\nJBttcmUuiqLwWcVFPsjeRbOlhaSABNYMW47JO8wln2+PmoY2dpzI6561SB0UxIqZycRHuH6nZleP\nGZtN4WR6GTuO51Hf3EGAjztLpycydYT29w+SAseB5GKtTZKLdkk22qRGLvXtjWzJ3sGlyqsY9UYW\nJ85lZuxUzczmQNfRD1uP5nA1rwaAiWnhLJuWSKgLn7hyZTZX86rZfCSHm5XNuLvpmfdoHPMejcPT\n3aV7AfeaFDgOJBdrbZJctEuy0Sa1clEUhQvmK2zJ3klTZzMJ/vGsGbaCCB9tnQaeUVDD1iM5FFU0\n4WbQ8di4GBZO8jbPkgAAFbRJREFUcs0TV67IpqSyiS2Hc7iaX4MOmDIikqXTEwny084CYntIgeNA\ncrHWJslFuyQbbVI7l8aOJrZk7+SC+QpuejcWJTzB7NhpGPTaeJIJup64Onutgu3H8qhuaMPbw41F\nkwfx2LhojG7Oa6czs6lvamfHiTxOXOna/HBYfBCrZicTF67uoam9JQWOA6l9URA9k1y0S7LRJq3k\ncsmczqbrO2jsbCLeL5Y1w1YQ5eu806d7o9Ni5fCFm3x0qoDmNgsh/h4sm57Eo2nh6J2wENkZ2bR3\nWjlwroh9Z4po77QSGeLNqtnJfeb4ivuRAseBtHJREHeTXLRLstEmLeXS1NnMB9m7+KziIm46A/MT\n5vB43ExNzeYANLd1sud01xNXFquNOJMvK2Ylk5bg2EffHZmNzaZw6mo524/nUtfUgZ+3kaemJTJ9\nVCQGvXbWPvWWFDgOpKWLgviC5KJdko02aTGXK5UZbLq+nfqORmJ9o1ibuopo30i1m3WPqvpWdhzP\n50xG1xNXaQnBrJiZ5LDbPI7K5lpBDVsO51BkbsLopueJCbEsmBiPl0ffWEBsDylwHEiLFwUhuWiZ\nZKNNWs2lpbOFbTc+4kz5efQ6PfPiZzN30Gzc9Nr7oVxY3sgHR3PIKKhFB0waHsHSaYmEBHg+1Ps+\nbDalVc1sOZLTffbWpLQIlk1/+HZpkRQ4DqTVi8JAJ7lol2SjTVrPJaM6i/eztlHXXk+0byRrhq0g\nzi9G7Wb16Gp+NVuP5FJsbsLNoGfO+BgWTorHx7N3T1z1NpuG5g52nszn+KVSbIrC0NhAVj2WzKAI\nbZ+e/jCkwHEgrV8UBirJRbskG23qC7m0WlrZkbOHT0vPodfpeSJuJvMS5mDU4GyOzaZwOqOcHSfy\nqGlox8ez64mr2WNjMLo92FqXB82mo9PKx+eL2XO6kLYOK+HB3qyclcTo5NA+vYDYHlLgOFBfuCgM\nRJKLdkk22tSXcsmsyea9zA+oba8j0iectcNWEu8fq3azetRpsXLo8xI+OlVIa7uF0ABPlk1P5JFU\n+5+4sjcbm6JwNqOCbcdzqWlox9fLyJKpCcwYHYWboe8vILaHFDgO1JcuCgOJ5KJdko029bVc2ixt\n7Mzdx4mbp9GhY07cDBYmPI7R4PyN93qjqbWTj04VcPhCCRarQny4HytnJTFs0Nc/cWVPNteLatl0\nOIfC8kbcDHoeH9+1EaG3p/Zmt5xJChwH6msXhYFCctEuyUab+mou2bU5bMz8gOq2GsK9w1gzbAWJ\nAYPUbtZ9Vda1suN4HmeuVQAwIjGEFTOTvvJk7q/Kpqy6mQ+O5nLxRhUAj6aG8/R01x4loSVS4DhQ\nX70o9HeSi3ZJNtrUl3Npt3awK3cfx0pOATArdipPJs7F3eCucsvur6C8ga1Hcsks7HriavKIrieu\ngv3vfbKpp2waWzrYdbKAo5duYrUpDI4JYOXsZJKiAlz0HWiTFDgO1JcvCv2Z5KJdko029Ydccury\neS9zK+bWKgI9AlicOI8JEWM0dXjnnRRF4Wp+1xlXJZXNGN30PD6+a2+aO28t3ZnNl9f0mIK8WDEz\nibFDwjS9gLi2rY6P8g6SUZ3F8+O+T7iTTo6XAseB+sNFoT+SXLRLstGm/pJLh7WDfQWfcLj4BBab\nhRjfKJYmLyQleLDaTbuv27sL7ziRR21j1+LgJycPYuaYaIxuesLC/DCbGziXaWbbsVyq6tvw8XRj\n8ZQEZo2N1vQC4lZLKwcLj3Kk+ASdt/L4h9F/h6+7j1M+TwocB+ovF4X+RnLRLslGm/pbLtWttezO\nO8BnFRcASA0ZytKkhZo71+pOtx/v3numkNZ2K6EBnjw9I4mE2CDe2X6F/LIGDPquk8yfnDKo1/vq\nuILFZuHkzbPsKzhEU2czgR4BPJk4l0cixjp1Rk0KHAfqbxeF/kJy0S7JRpv6ay5FDSXsyNlDdl0u\nOnRMjprAwoQnCPDQ7mZ3jS0d7D5VwJELXetrbhufYmL5zCRMGl5ArCgKlyqv8mHuXipbq/E0ePBE\n/CxmxU7D3QVPuEmB40D99aLQ10ku2iXZaFN/zkVRFDKqs9iRs4fyFjPuBnfmxM3gsdjpeLp5qN28\n+zLXtbLrZD6dNoXHx8aQHKPtBcR59QVsv7GH/IZC9Do906InMX/QY/i53/8JMUeTAseB+vNFoS+T\nXLRLstGmgZCL1WblVNln7Mk/SGNHE/7ufixKfIJJkRM0uxAZtJ9NRUslu3L3canyKgCjw0awJGke\nJictJP4q9ytwBtZuQEIIIQYUg97AtOiJTAgfzaGiYxwqOs77Wds4WvwpTyUvIDV4qKafRNKaxo4m\n9uYf4mTpGWyKjcSAeJYmLyIxIF7tpt1DChwhhBD9nqebJ4sS5zI1eiIf5R3kTNl5/vvyn0kJGsxT\nyQuJ9YtSu4ma1mHt4HDxCT4uPEqbtR2TVyhLkuYzKmy4ZgtEKXCEEEIMGIEeAawZtoJZsVPZkbOH\nzJps3vzsNzwSMZYnE+cS5BmodhM1xabYOFv2OR/lH6SuvR5fow8rk+YzNepRDHqD2s37SlLgCCGE\nGHCifSP5wei/JbM6mx25ezhb/jkXzJeZHTudx+Nn4uV27+7CA4miKFyryWZnzh5Km8sx6o3Mi5/N\nnD70dyMFjhBCiAFrWMgQhgYnc7b8Artz93Og8DCflp5lYcLjTOkDsxTOUNxYys6cPWTV3kCHjomR\n41mU8ESfm91yaYFjs9l47bXXuHHjBkajkXXr1vHuu++SkZFBYGDXX9x3v/tdZs6cedfrfv7zn3P5\n8mV0Oh0vv/wyI0eOdGWzhRBC9GN6nZ5JkeMZZxrJJ0Un+LjoCJuzd3K05FOWJC1gZGiqZteZOFJN\n262NEssvoqCQGjyUp5IXEO0bqXbTesWlBc4nn3xCY2MjmzZtoqioiNdff52goCD+6Z/+iVmzZvX4\nmnPnzlFYWMjmzZvJzc3l5ZdfZvPmza5sthBCiAHA3eDO/ITHmBL9CHvyP+ZU6Tn+mL6e5MAEliUv\nIt4/Vu0mOkVLZysHC49wpORknznqwh4uLXAKCgq6Z1/i4uIoLS3F3/+rd5Y8ffo0c+bMASApKYn6\n+nqamprw9XXdJkJCCCEGDn93P54duoxZMVPYmbuX9KpMfnH+bcaHj2Zx4jxCvILVbqJDWGwWTtw8\nw76CQzR3thDkEciTiXM1fVjpg3BpgTNkyBDWr1/Pt771LQoLCykuLiY8PJyNGzfyl7/8hZCQEF55\n5RWCg7/oPFVVVaSlpXX/Pjg4mMrKyq8scIKCvHFzc+590/ttLCTUJblol2SjTZLL/YWF+TFi0D+S\nYc5mw6VtnK+4xKXKq8wfPJOlqfOcdnjknZ/vDIqicKbkAu9f+ZCKpkq8jJ6sHvkUCwbPwt3N3Smf\nqQaXFjgzZszgwoULfOMb32Do0KEkJiayePFiBg8ezLBhw/jjH//Ib3/7W1599dX7voc9Gy/X1rY4\nstn30PoOkwOV5KJdko02SS72MekieX70c3xecZkPc/ex+/ohDueeYl7CY0yPnoSb3vE/Sp2VTU5d\nPjty9lDQUIRBZ2BWzFTmDXoMX3cf6mvbgXaHf6azaWYn4+eff777v+fMmcOiRYvQ67umwmbPns26\ndevu+nqTyURVVVX3781mM2Fhrt8KWgghxMCl1+mZEDGG0WHDOVryKQcKD7Ptxm6OlZxiSdJ8xoSN\n0PRC5IpmMztz93GlKgOAMaaRLEmcT5h3iMotcx6X3mTLysripZdeAuD48eOkpqbywx/+kOLiYgDO\nnj3L4MF3L2qaMmUKBw4cACAjIwOTySTrb4QQQqjCaDDyePxM1k18gZkxU6hpq+VPVzfyy8//m7z6\nArWbd4+GjkY2Xd/Bz879iitVGSQFDOKfx/2Avx2+pl8XN6DCGhxFUVi+fDkeHh689dZbFBYW8qMf\n/QgvLy+8vb154403gK6ZnjfeeIOxY8eSlpbGM888g06n47XXXnNlk4UQQoh7+Lr7sGLIEmbETObD\n3P1cqkznl5//961DJ+dj8g5VtX3t1g4OFx3n46KjtFs7MHmH8lTSAkaGpml6psmR5DTxXpD71tok\nuWiXZKNNkovj5NUXsP3GR+Q3FKHX6ZkePYn5g+b0eiFyb7OxKTbOlJ3no7yD1Hc04Gf0ZUHC40yJ\neqTfblqomTU4QgghRH+TGDCIH4/7f1ysTOfDnL0cLfmUs+WfMzd+NjNjpmA0GJ36+YqikFGdxc7c\nvZQ1V3QdrTDoMR6Pm4FnHzlawdGkwBFCCCEcQKfTMdY0kpGhqV37y+QfYmfuXo6VnGJx0jzGh492\nyv4yRY0l7MjZS3ZtDjp0TI6cwMLEJwj0CHD4Z/UlUuAIIYQQDuSmd2NW7FQejRjL/sLDHCv+lPXX\nNnGk+ARLkxcxJCjJIZ9T3VrL7rz9fFZxEYC0kBSeSlpAlG+EQ96/r5MCRwghhHACb6M3y5IXMSN6\nMrvy9nO+4hK/ufgOI0KH8VTSAiJ8wnv1vi2dLd2Fk0WxEusbxdLkRQwNTnbwd9C3SYEjhBBCOFGI\nVzDfSVvN7NhpbM/5iPSqTDKqrzM56hEWJjyOv7t9OxZ32iycKDnF/oLDNFu6jlZw5q2vvk4KHCGE\nEMIF4v1j+dGY75FedY2duXs5efMMn5Vf4PG4WTwWNw13Q8/HJCiKwufmy+zK3U91Ww1ebp48lbTA\nJYuX+zIpcIQQQggX0el0jAxLIy0khU9Lz7En/yAf5R/gxM3TPJk4l0cjx901G3OjNo8dOXsobCzG\noDMwO3YacwfNxtfo3HOw+gMpcIQQQggXM+gNTI+ZxISIMRwqPMonxcfZmLWVIyUnWZq0kHaPKP5y\nZSvpVZkAjDONYnHSPEK9+vfuw44kG/31gmyOpU2Si3ZJNtokuWhHbVsdu/MOcK78AgoKOnQoKCQF\nJLBs8EIG+cep3UTNko3+hBBCCI0K8gzkm6mrmBU7jd15++mgndlR0xkRmjpgjlZwNClwhBBCCI2I\n9YviuVF/I7NrDiDPlQkhhBCi35ECRwghhBD9jhQ4QgghhOh3pMARQgghRL8jBY4QQggh+h0pcIQQ\nQgjR70iBI4QQQoh+RwocIYQQQvQ7UuAIIYQQot+RAkcIIYQQ/Y4UOEIIIYTod6TAEUIIIUS/IwWO\nEEIIIfodnaIoitqNEEIIIYRwJJnBEUIIIUS/IwWOEEIIIfodKXCEEEII0e9IgSOEEEKIfkcKHCGE\nEEL0O1LgCCGEEKLfkQLnAfz85z9n1apVPPPMM1y5ckXt5og7/OIXv2DVqlU8/fTTHDx4UO3miDu0\ntbUxZ84ctm/frnZTxB127drF4sWLWbZsGUePHlW7OeKW5uZmfvCDH7B27VqeeeYZTpw4oXaT+iw3\ntRvQV5w7d47CwkI2b95Mbm4uL7/8Mps3b1a7WQI4c+YMN27cYPPmzdTW1rJ06VKeeOIJtZslbvn9\n739PQECA2s0Qd6itreV3v/sd27Zto6WlhbfffpuZM2eq3SwB7Nixg4SEBH784x9TUVHBt771Lfbv\n3692s/okKXDsdPr0aebMmQNAUlIS9fX1NDU14evrq3LLxIQJExg5ciQA/v7+tLa2YrVaMRgMKrdM\n5ObmkpOTIz88Neb06dNMmjQJX19ffH19+elPf6p2k8QtQUFBXL9+HYCGhgaCgoJUblHfJbeo7FRV\nVXVXRwsODqayslLFFonbDAYD3t7eAHzwwQdMnz5dihuNePPNN3nxxRfVbob4kpKSEtra2vje977H\n6tWrOX36tNpNErcsXLiQ0tJSHn/8cdasWcMLL7ygdpP6LJnB6SU54UJ7Dh06xAcffMCf//xntZsi\ngJ07dzJ69GhiY2PVboroQV1dHb/97W8pLS3lm9/8JkeOHEGn06ndrAHvww8/JCoqij/96U9kZWXx\n8ssvy/q1XpICx04mk4mqqqru35vNZsLCwlRskbjTiRMn+MMf/sD//M//4Ofnp3ZzBHD06FGKi4s5\nevQo5eXluLu7ExERweTJk9Vu2oAXEhLCmDFjcHNzIy4uDh8fH2pqaggJCVG7aQPehQsXmDp1KgAp\nKSmYzWa55d5LcovKTlOmTOHAgQMAZGRkYDKZZP2NRjQ2NvKLX/yCd955h8DAQLWbI2759a9/zbZt\n29iyZQsrVqzgueeek+JGI6ZOncqZM2ew2WzU1tbS0tIiaz00Ij4+nsuXLwNw8+ZNfHx8pLjpJZnB\nsdPYsWNJS0vjmWeeQafT8dprr6ndJHHL3r17qa2t5Uc/+lH3n7355ptERUWp2CohtCs8PJy5c+ey\ncuVKAP7t3/4NvV7+vasFq1at4uWXX2bNmjVYLBbWrVundpP6LJ0ii0mEEEII0c9IyS6EEEKIfkcK\nHCGEEEL0O1LgCCGEEKLfkQJHCCGEEP2OFDhCCCGE6HekwBFCqK6kpIThw4ezdu3a7lOUf/zjH9PQ\n0GD3e6xduxar1Wr31z/77LOcPXu2N80VQvQBUuAIITQhODiYDRs2sGHDBjZt2oTJZOL3v/+93a/f\nsGGDbIgmhOgmG/0JITRpwoQJbN68maysLN58800sFgudnZ28+uqrpKamsnbtWlJSUsjMzGT9+vWk\npqaSkZFBR0cHr7zyCuXl5VgsFpYsWcLq1atpbW3l+eefp7a2lvj4eNrb2wGoqKjgn//5nwFoa2tj\n1apVLF++XM1vXQjhAFLgCCE0x2q18vHHHzNu3Dh+8pOf8Lvf/Y64uLh7Dh/09vZm48aNd712w4YN\n+Pv788tf/pK2tjYWLFjAtGnTOHXqFJ6enmzevBmz2cxjjz0GwL59+0hMTOTf//3faW9vZ+vWrS7/\nfoUQjicFjhBCE2pqali7di0ANpuN8ePH8/TTT/Nf//Vf/Ou//mv31zU1NWGz2YCuI1S+7PLlyyxb\ntgwAT09Phg8fTkZGBtnZ2YwbNw7oOjw3MTERgGnTpvH+++/z4osvMmPGDFatWuXU71MI4RpS4Agh\nNOH2Gpw7NTY2YjQa7/nz24xG4z1/ptPp7vq9oijodDoURbnrvKXbRVJSUhJ79uzhs88+Y//+/axf\nv55NmzY97LcjhFCZLDIWQmiWn58fMTExHDt2DID8/Hx++9vffuVrRo0axYkTJwBoaWkhIyODtLQ0\nkpKSuHjxIgBlZWXk5+cDsHv3btLT05k8eTKvvfYaZWVlWCwWJ35XQghXkBkcIYSmvfnmm/zsZz/j\nj3/8IxaLhRdffPErv37t2rW88sorfOMb36Cjo4PnnnuOmJgYlixZwuHDh1m9ejUxMTGMGDECgOTk\nZF577TXc3d1RFIW/+7u/w81NLo1C9HVymrgQQggh+h25RSWEEEKIfkcKHCGEEEL0O1LgCCGEEKLf\nkQJHCCGEEP2OFDhCCCGE6HekwBFCCCFEvyMFjhBCCCH6HSlwhBBCCNHv/H+SLmpawyHLVAAAAABJ\nRU5ErkJggg==\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "b7atJTbzU9Ca"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Optional Challenge: Use only Latitude and Longitude Features\n",
+ "\n",
+ "**Train a NN model that uses only latitude and longitude as features.**\n",
+ "\n",
+ "Real estate people are fond of saying that location is the only important feature in housing price.\n",
+ "Let's see if we can confirm this by training a model that uses only latitude and longitude as features.\n",
+ "\n",
+ "This will only work well if our NN can learn complex nonlinearities from latitude and longitude.\n",
+ "\n",
+ "**NOTE:** We may need a network structure that has more layers than were useful earlier in the exercise."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "T5McjahpamOc",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 656
+ },
+ "outputId": "e6fd6be4-942f-4e0c-cd1c-5345ac79b887"
+ },
+ "cell_type": "code",
+ "source": [
+ "#\n",
+ "# YOUR CODE HERE: Train the network using only latitude and longitude\n",
+ "#\n",
+ "def location_location_location(examples_dataframe):\n",
+ " \"\"\"Returns a version of the input `DataFrame` that keeps only the latitude and longitude.\"\"\"\n",
+ " processed_features = pd.DataFrame()\n",
+ " processed_features[\"latitude\"] = linear_scale(examples_dataframe[\"latitude\"])\n",
+ " processed_features[\"longitude\"] = linear_scale(examples_dataframe[\"longitude\"])\n",
+ " return processed_features\n",
+ "\n",
+ "lll_dataframe = location_location_location(preprocess_features(california_housing_dataframe))\n",
+ "lll_training_examples = lll_dataframe.head(12000)\n",
+ "lll_validation_examples = lll_dataframe.tail(5000)\n",
+ "\n",
+ "_ = train_nn_regression_model(\n",
+ " my_optimizer=tf.train.AdagradOptimizer(learning_rate=0.05),\n",
+ " steps=500,\n",
+ " batch_size=50,\n",
+ " hidden_units=[10, 10, 5, 5, 5],\n",
+ " training_examples=lll_training_examples,\n",
+ " training_targets=training_targets,\n",
+ " validation_examples=lll_validation_examples,\n",
+ " validation_targets=validation_targets)"
+ ],
+ "execution_count": 22,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 110.59\n",
+ " period 01 : 105.65\n",
+ " period 02 : 104.99\n",
+ " period 03 : 101.55\n",
+ " period 04 : 100.69\n",
+ " period 05 : 100.20\n",
+ " period 06 : 99.72\n",
+ " period 07 : 99.44\n",
+ " period 08 : 99.58\n",
+ " period 09 : 98.93\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 98.93\n",
+ "Final RMSE (on validation data): 97.28\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
From 1f0e207734fa1a49a082ebd77ed51eac61f8d56e Mon Sep 17 00:00:00 2001
From: Amit Rai <42401957+ardev472@users.noreply.github.com>
Date: Sun, 17 Feb 2019 23:25:52 +0530
Subject: [PATCH 11/11] Created using Colaboratory
---
...classification_of_handwritten_digits.ipynb | 2450 +++++++++++++++++
1 file changed, 2450 insertions(+)
create mode 100644 multi_class_classification_of_handwritten_digits.ipynb
diff --git a/multi_class_classification_of_handwritten_digits.ipynb b/multi_class_classification_of_handwritten_digits.ipynb
new file mode 100644
index 0000000..5237e6a
--- /dev/null
+++ b/multi_class_classification_of_handwritten_digits.ipynb
@@ -0,0 +1,2450 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "multi-class_classification_of_handwritten_digits.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "266KQvZoMxMv",
+ "6sfw3LH0Oycm"
+ ],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python2",
+ "display_name": "Python 2"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JndnmDMp66FL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "hMqWDc_m6rUC",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
+ "# you may not use this file except in compliance with the License.\n",
+ "# You may obtain a copy of the License at\n",
+ "#\n",
+ "# https://www.apache.org/licenses/LICENSE-2.0\n",
+ "#\n",
+ "# Unless required by applicable law or agreed to in writing, software\n",
+ "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
+ "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
+ "# See the License for the specific language governing permissions and\n",
+ "# limitations under the License."
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "mPa95uXvcpcn",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# Classifying Handwritten Digits with Neural Networks"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "Fdpn8b90u8Tp",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "c7HLCm66Cs2p",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objectives:**\n",
+ " * Train both a linear model and a neural network to classify handwritten digits from the classic [MNIST](http://yann.lecun.com/exdb/mnist/) data set\n",
+ " * Compare the performance of the linear and neural network classification models\n",
+ " * Visualize the weights of a neural-network hidden layer"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "HSEh-gNdu8T0",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Our goal is to map each input image to the correct numeric digit. We will create a NN with a few hidden layers and a Softmax layer at the top to select the winning class."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "2NMdE1b-7UIH",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Setup\n",
+ "\n",
+ "First, let's download the data set, import TensorFlow and other utilities, and load the data into a *pandas* `DataFrame`. Note that this data is a sample of the original MNIST training data; we've taken 20000 rows at random."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "4LJ4SD8BWHeh",
+ "colab_type": "code",
+ "cellView": "both",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 233
+ },
+ "outputId": "9f1b7e7a-6084-4730-8c3c-a1074a590327"
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import glob\n",
+ "import math\n",
+ "import os\n",
+ "\n",
+ "from IPython import display\n",
+ "from matplotlib import cm\n",
+ "from matplotlib import gridspec\n",
+ "from matplotlib import pyplot as plt\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import seaborn as sns\n",
+ "from sklearn import metrics\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.python.data import Dataset\n",
+ "\n",
+ "tf.logging.set_verbosity(tf.logging.ERROR)\n",
+ "pd.options.display.max_rows = 10\n",
+ "pd.options.display.float_format = '{:.1f}'.format\n",
+ "\n",
+ "mnist_dataframe = pd.read_csv(\n",
+ " \"https://download.mlcc.google.com/mledu-datasets/mnist_train_small.csv\",\n",
+ " sep=\",\",\n",
+ " header=None)\n",
+ "\n",
+ "# Use just the first 10,000 records for training/validation.\n",
+ "mnist_dataframe = mnist_dataframe.head(10000)\n",
+ "\n",
+ "mnist_dataframe = mnist_dataframe.reindex(np.random.permutation(mnist_dataframe.index))\n",
+ "mnist_dataframe.head()"
+ ],
+ "execution_count": 1,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
0
\n",
+ "
1
\n",
+ "
2
\n",
+ "
3
\n",
+ "
4
\n",
+ "
5
\n",
+ "
6
\n",
+ "
7
\n",
+ "
8
\n",
+ "
9
\n",
+ "
...
\n",
+ "
775
\n",
+ "
776
\n",
+ "
777
\n",
+ "
778
\n",
+ "
779
\n",
+ "
780
\n",
+ "
781
\n",
+ "
782
\n",
+ "
783
\n",
+ "
784
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
9034
\n",
+ "
6
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
...
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
4471
\n",
+ "
1
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
...
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
7158
\n",
+ "
5
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
...
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
474
\n",
+ "
4
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
...
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
9963
\n",
+ "
2
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
...
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 785 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 0 1 2 3 4 5 6 7 8 9 ... 775 776 777 \\\n",
+ "9034 6 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "4471 1 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "7158 5 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "474 4 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "9963 2 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "\n",
+ " 778 779 780 781 782 783 784 \n",
+ "9034 0 0 0 0 0 0 0 \n",
+ "4471 0 0 0 0 0 0 0 \n",
+ "7158 0 0 0 0 0 0 0 \n",
+ "474 0 0 0 0 0 0 0 \n",
+ "9963 0 0 0 0 0 0 0 \n",
+ "\n",
+ "[5 rows x 785 columns]"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 1
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "kg0-25p2mOi0",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Each row represents one labeled example. Column 0 represents the label that a human rater has assigned for one handwritten digit. For example, if Column 0 contains '6', then a human rater interpreted the handwritten character as the digit '6'. The ten digits 0-9 are each represented, with a unique class label for each possible digit. Thus, this is a multi-class classification problem with 10 classes."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "PQ7vuOwRCsZ1",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ ""
+ ]
+ },
+ {
+ "metadata": {
+ "id": "dghlqJPIu8UM",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Columns 1 through 784 contain the feature values, one per pixel for the 28×28=784 pixel values. The pixel values are on a gray scale in which 0 represents white, 255 represents black, and values between 0 and 255 represent shades of gray. Most of the pixel values are 0; you may want to take a minute to confirm that they aren't all 0. For example, adjust the following text block to print out the values in column 72."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "2ZkrL5MCqiJI",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 419
+ },
+ "outputId": "53e655a5-0b1a-4a6b-a709-6c470769fcd9"
+ },
+ "cell_type": "code",
+ "source": [
+ "mnist_dataframe.loc[:, 72:72]"
+ ],
+ "execution_count": 2,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
72
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
9034
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
4471
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
7158
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
474
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
9963
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
...
\n",
+ "
...
\n",
+ "
\n",
+ "
\n",
+ "
4379
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
6954
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
646
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
5895
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
5575
\n",
+ "
0
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
10000 rows × 1 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 72\n",
+ "9034 0\n",
+ "4471 0\n",
+ "7158 0\n",
+ "474 0\n",
+ "9963 0\n",
+ "... ..\n",
+ "4379 0\n",
+ "6954 0\n",
+ "646 0\n",
+ "5895 0\n",
+ "5575 0\n",
+ "\n",
+ "[10000 rows x 1 columns]"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 2
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "vLNg2VxqhUZ",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Now, let's parse out the labels and features and look at a few examples. Note the use of `loc` which allows us to pull out columns based on original location, since we don't have a header row in this data set."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "JfFWWvMWDFrR",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "cell_type": "code",
+ "source": [
+ "def parse_labels_and_features(dataset):\n",
+ " \"\"\"Extracts labels and features.\n",
+ " \n",
+ " This is a good place to scale or transform the features if needed.\n",
+ " \n",
+ " Args:\n",
+ " dataset: A Pandas `Dataframe`, containing the label on the first column and\n",
+ " monochrome pixel values on the remaining columns, in row major order.\n",
+ " Returns:\n",
+ " A `tuple` `(labels, features)`:\n",
+ " labels: A Pandas `Series`.\n",
+ " features: A Pandas `DataFrame`.\n",
+ " \"\"\"\n",
+ " labels = dataset[0]\n",
+ "\n",
+ " # DataFrame.loc index ranges are inclusive at both ends.\n",
+ " features = dataset.loc[:,1:784]\n",
+ " # Scale the data to [0, 1] by dividing out the max value, 255.\n",
+ " features = features / 255\n",
+ "\n",
+ " return labels, features"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "mFY_-7vZu8UU",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 346
+ },
+ "outputId": "ca2683cd-cfce-4e22-8f71-b5c469ab0f37"
+ },
+ "cell_type": "code",
+ "source": [
+ "training_targets, training_examples = parse_labels_and_features(mnist_dataframe[:7500])\n",
+ "training_examples.describe()"
+ ],
+ "execution_count": 4,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "