"
+ ]
+ },
+ "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": 635
+ },
+ "outputId": "8f746ec1-76ea-43d7-cb12-fd07bf48bcaa"
+ },
+ "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": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 284.65\n",
+ " period 01 : 194.52\n",
+ " period 02 : 126.89\n",
+ " period 03 : 159.19\n",
+ " period 04 : 144.13\n",
+ " period 05 : 150.61\n",
+ " period 06 : 184.45\n",
+ " period 07 : 206.16\n",
+ " period 08 : 217.48\n",
+ " period 09 : 183.77\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n13ivQrFdCwAAAABJRU5ErkJggg==\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": "JQHnUhL_NRwA",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "You may be wondering how to determine how many buckets to use. That is of course data-dependent. Here, we just selected arbitrary values so as to obtain a not-too-large model."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "Ro5civQ3Ngh_",
+ "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",
+ " # 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",
+ " 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"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "metadata": {
+ "id": "RNgfYk6OO8Sy",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 635
+ },
+ "outputId": "beccc16d-ab2f-454c-cc37-ed4b969c61ff"
+ },
+ "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 : 169.70\n",
+ " period 01 : 143.39\n",
+ " period 02 : 126.97\n",
+ " period 03 : 115.83\n",
+ " period 04 : 108.00\n",
+ " period 05 : 102.08\n",
+ " period 06 : 97.50\n",
+ " period 07 : 93.89\n",
+ " period 08 : 90.95\n",
+ " period 09 : 88.49\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\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": "3tAWu8qSTe2v",
+ "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",
+ " # 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(\n",
+ " 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": "-_vvNYIyTtPC",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 635
+ },
+ "outputId": "7aa7c48c-997b-4877-86ca-2bd10e7e6e0e"
+ },
+ "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": 15,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 163.49\n",
+ " period 01 : 135.25\n",
+ " period 02 : 118.26\n",
+ " period 03 : 106.84\n",
+ " period 04 : 98.87\n",
+ " period 05 : 93.10\n",
+ " period 06 : 88.56\n",
+ " period 07 : 84.91\n",
+ " period 08 : 82.04\n",
+ " period 09 : 79.62\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n/H8SoLjTuw68mAAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "ymlHJ-vrhLZw",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Optional Challenge: Try Out More Synthetic Features\n",
+ "\n",
+ "So far, we've tried simple bucketized columns and feature crosses, but there are many more combinations that could potentially improve the results. For example, you could cross multiple columns. What happens if you vary the number of buckets? What other synthetic features can you think of? Do they improve the model?"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/feature_sets.ipynb b/feature_sets.ipynb
new file mode 100644
index 0000000..7cdad9a
--- /dev/null
+++ b/feature_sets.ipynb
@@ -0,0 +1,1416 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "feature_sets.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "IGINhMIJ5Wyt",
+ "pZa8miwu6_tQ"
+ ],
+ "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": "zbIgBK-oXHO7",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# Feature Sets"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "bL04rAQwH3pH",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objective:** Create a minimal set of features that performs just as well as a more complex feature set"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "F8Hci6tAH3pH",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "So far, we've thrown all of our features into the model. Models with fewer features use fewer resources and are easier to maintain. Let's see if we can build a model on a minimal set of housing features that will perform equally as well as one that uses all the features in the data set."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "F5ZjVwK_qOyR",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Setup\n",
+ "\n",
+ "As before, let's load and prepare the California housing data."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "SrOYRILAH3pJ",
+ "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": "dGnXo7flH3pM",
+ "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": "jLXC8y4AqsIy",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1209
+ },
+ "outputId": "04b9a943-2163-46fe-fc1a-cf47c070b95e"
+ },
+ "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 2650.5 541.1 \n",
+ "std 2.1 2.0 12.6 2174.7 424.2 \n",
+ "min 32.5 -124.3 1.0 2.0 2.0 \n",
+ "25% 33.9 -121.8 18.0 1467.0 298.0 \n",
+ "50% 34.2 -118.5 29.0 2143.0 435.0 \n",
+ "75% 37.7 -118.0 37.0 3155.0 649.0 \n",
+ "max 42.0 -114.3 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 1434.2 503.1 3.9 2.0 \n",
+ "std 1174.0 387.8 1.9 1.1 \n",
+ "min 6.0 2.0 0.5 0.0 \n",
+ "25% 790.0 283.0 2.6 1.5 \n",
+ "50% 1168.0 410.0 3.6 1.9 \n",
+ "75% 1722.2 606.0 4.8 2.3 \n",
+ "max 35682.0 6082.0 15.0 55.2 "
+ ],
+ "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": {}
+ },
+ "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": 0,
+ "outputs": []
+ },
+ {
+ "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": 53
+ },
+ "outputId": "40dfb8f9-bd07-4229-a9e8-64461a886b2d"
+ },
+ "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": 11,
+ "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": 89
+ },
+ "outputId": "8b21ac9f-4deb-40a9-d23b-7bda7b122ac3"
+ },
+ "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": 12,
+ "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": "85d95485-9031-40b5-a10a-82049bcbeb8d"
+ },
+ "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": 13,
+ "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": 13
+ }
+ ]
+ },
+ {
+ "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": "bc081637-5880-478d-b57a-57405adb7244"
+ },
+ "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": 15,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\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": 969
+ },
+ "outputId": "30460921-88b7-4286-8639-b0e29cdd2bdd"
+ },
+ "cell_type": "code",
+ "source": [
+ "train_model(\n",
+ " learning_rate=0.00001,\n",
+ " steps=100,\n",
+ " batch_size=1\n",
+ ")"
+ ],
+ "execution_count": 17,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 236.32\n",
+ " period 01 : 235.11\n",
+ " period 02 : 233.90\n",
+ " period 03 : 232.70\n",
+ " period 04 : 231.50\n",
+ " period 05 : 230.31\n",
+ " period 06 : 229.13\n",
+ " period 07 : 227.96\n",
+ " period 08 : 226.79\n",
+ " period 09 : 225.63\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " predictions targets\n",
+ "count 17000.0 17000.0\n",
+ "mean 13.2 207.3\n",
+ "std 10.9 116.0\n",
+ "min 0.0 15.0\n",
+ "25% 7.3 119.4\n",
+ "50% 10.6 180.4\n",
+ "75% 15.8 265.0\n",
+ "max 189.7 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": 969
+ },
+ "outputId": "1984af18-2685-46b1-c8ac-a97991648a2e"
+ },
+ "cell_type": "code",
+ "source": [
+ "train_model(\n",
+ " learning_rate=0.00002,\n",
+ " steps=1000,\n",
+ " batch_size=5,\n",
+ " input_feature=\"population\"\n",
+ ")"
+ ],
+ "execution_count": 19,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 225.63\n",
+ " period 01 : 214.84\n",
+ " period 02 : 204.86\n",
+ " period 03 : 196.26\n",
+ " period 04 : 189.66\n",
+ " period 05 : 184.68\n",
+ " period 06 : 180.84\n",
+ " period 07 : 178.74\n",
+ " period 08 : 177.00\n",
+ " period 09 : 176.18\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " predictions targets\n",
+ "count 17000.0 17000.0\n",
+ "mean 116.9 207.3\n",
+ "std 93.9 116.0\n",
+ "min 0.2 15.0\n",
+ "25% 64.6 119.4\n",
+ "50% 95.5 180.4\n",
+ "75% 140.8 265.0\n",
+ "max 2919.0 500.0"
+ ],
+ "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": 671
+ },
+ "outputId": "9a0fcab0-eaef-4148-ad93-2c5dfdb99174"
+ },
+ "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": 7,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 153.05\n",
+ " period 01 : 140.90\n",
+ " period 02 : 127.35\n",
+ " period 03 : 116.50\n",
+ " period 04 : 112.10\n",
+ " period 05 : 110.79\n",
+ " period 06 : 111.81\n",
+ " period 07 : 109.57\n",
+ " period 08 : 111.62\n",
+ " period 09 : 110.01\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 110.01\n",
+ "Final RMSE (on validation data): 106.88\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\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": "text",
+ "id": "Ax_IIQVRx4gr"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "Since normalization uses min and max, we have to ensure it's done on the entire dataset at once. \n",
+ "\n",
+ "We can do that here because all our data is in a single DataFrame. If we had multiple data sets, a good practice would be to derive the normalization parameters from the training set and apply those identically to the test set."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "D-bJBXrJx-U_",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 671
+ },
+ "outputId": "9ae7b4da-ecef-4f78-d928-fe9957f2d80a"
+ },
+ "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",
+ " 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",
+ "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.005),\n",
+ " steps=2000,\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": 9,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 154.36\n",
+ " period 01 : 112.45\n",
+ " period 02 : 100.47\n",
+ " period 03 : 84.75\n",
+ " period 04 : 77.26\n",
+ " period 05 : 74.86\n",
+ " period 06 : 73.55\n",
+ " period 07 : 72.69\n",
+ " period 08 : 72.06\n",
+ " period 09 : 71.48\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 71.48\n",
+ "Final RMSE (on validation data): 71.75\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd4lfXh/vH3Gdk52TkJYQ9lkwCJ\nMoUwA0hRQb6K4qjVOlCqtKKt2lqsSlutE6u2ikJtFReiIoqAgiIhBBEkYY+QvffO8/sDyQ8EQgI5\nOSfJ/bour8uznuc++QS9+XyeYTIMw0BERESkFTE7O4CIiIhIU6nAiIiISKujAiMiIiKtjgqMiIiI\ntDoqMCIiItLqqMCIiIhIq2N1dgARV9a7d2+6dOmCxWIBoLa2lpiYGB566CG8vb3Pe7vvvPMOs2fP\nPu35999/nwcffJB//vOfxMbG1j9fUVHBiBEjmDRpEk8++eR577exjh49yuOPP86hQ4cA8PLyYt68\neUyYMMHh+26KJUuWcPTo0dN+Jlu2bOGWW26hU6dOp33ms88+a6l4F+TYsWOMHz+e7t27A2AYBiEh\nIfzhD3+gX79+TdrWU089RUREBNdee22jP7Ny5Ureffddli1b1qR9ibQUFRiRc1i2bBnh4eEAVFVV\nce+99/Lyyy9z7733ntf2srOz+de//nXGAgPQoUMHPv7441MKzPr16/Hz8zuv/Z2P3/72t8yYMYN/\n/vOfAOzYsYMbb7yR1atX06FDhxbLcSE6dOjQasrK2VgsllO+w6effspdd93FmjVrcHd3b/R2FixY\n4Ih4Ik6lJSSRJnB3d2f06NEkJSUBUFlZySOPPMLkyZOZMmUKTz75JLW1tQAkJydzzTXXEBcXx4wZ\nM9i4cSMA11xzDWlpacTFxVFVVXXaPoYMGcKWLVsoLy+vf+7TTz9l5MiR9Y+rqqp47LHHmDx5MuPG\njasvGgDbt2/nqquuIi4ujqlTp/Ltt98Cx/9GP2rUKN58802mT5/O6NGj+fTTT8/4Pffu3UtkZGT9\n48jISNasWVNf5F544QXGjBnDFVdcwSuvvMK4ceMAeOCBB1iyZEn9505+fK5cjz/+ONdffz0A27Zt\nY+bMmUycOJHZs2eTkpICHJ+J+s1vfkNsbCzXX389GRkZ5xixM3v//feZN28eN954I3/961/ZsmUL\n11xzDfPnz6//n/3q1au5/PLLiYuL44YbbuDo0aMAPP/88zz00EPMmjWLpUuXnrLd+fPn89prr9U/\nTkpKYtSoUdTV1fGPf/yDyZMnM3nyZG644QYyMzObnHvq1KlUVFRw8OBBAN5++23i4uIYN24c9913\nHxUVFcDxn/sTTzzB9OnTWb169SnjcLbfy7q6Ov785z8zduxYZs2aRXJycv1+4+PjufLKK5k6dSpT\npkxh9erVTc4u0uwMETmriy++2EhPT69/XFBQYFx33XXGkiVLDMMwjJdfftm49dZbjerqaqO8vNyY\nOXOm8eGHHxq1tbXGlClTjFWrVhmGYRg//PCDERMTYxQXFxvfffedMWHChDPu77333jMWLlxo/Pa3\nv63/bHFxsTF+/HhjxYoVxsKFCw3DMIwXXnjBuPHGG43KykqjtLTUuOKKK4x169YZhmEYl19+ufHx\nxx8bhmEYH3zwQf2+UlJSjH79+hnLli0zDMMwPv30U2PixIlnzHH33XcbsbGxxhtvvGHs37//lNf2\n7NljREdHG1lZWUZ1dbVxxx13GLGxsYZhGMbChQuNF198sf69Jz9uKFf//v2N999/v/77xsTEGJs2\nbTIMwzBWrVplXHnllYZhGMby5cuN6667zqiurjby8vKM2NjY+p/JyRr6GZ/4OUdFRRmHDh2qf//A\ngQONb7/91jAMw0hNTTWGDh1qHD582DAMw/j3v/9t3HjjjYZhGMZzzz1njBo1ysjNzT1tu5988olx\n3XXX1T9+9tlnjUWLFhl79+41Jk2aZFRVVRmGYRhvvvmm8cEHH5w134mfS9++fU97PiYmxjhw4ICx\ndetWY/jw4UZGRoZhGIbx8MMPG08++aRhGMd/7tOnTzcqKirqH7/44osN/l5u2LDBmDRpklFSUmKU\nl5cbs2bNMq6//nrDMAzjqquuMrZs2WIYhmEcOnTIuO+++xrMLtISNAMjcg5z584lLi6O8ePHM378\neIYNG8att94KwIYNG5g9ezZWqxVPT0+mT5/ON998w7Fjx8jJyWHatGkADBw4kIiICHbu3NmofU6b\nNo2PP/4YgLVr1xIbG4vZ/P//uK5fv545c+bg7u6Ot7c3M2bM4PPPPwfgww8/ZMqUKQAMHTq0fvYC\noKamhquuugqA/v37k5aWdsb9/+1vf+O6665j1apVXH755YwbN47//ve/wPHZkZiYGEJDQ7FarVx+\n+eWN+k4N5aqurmbixIn12w8LC6ufcbr88ss5evQoaWlpJCQkMHHiRKxWK4GBgacss/1ceno6cXFx\np/xz8rEy3bp1o1u3bvWPPT09GT58OADffPMNl156KV27dgXg6quvZsuWLdTU1ADHZ6SCgoJO2+fY\nsWPZvXs3BQUFAHzxxRfExcXh5+dHXl4eq1atorCwkLlz53LFFVc06ud2gmEYvP3224SFhdGtWzfW\nrVvH1KlTCQsLA+Daa6+t/x0AGD58OB4eHqdso6Hfy61btzJmzBh8fHzw9PSsHyuA4OBgPvzwQw4c\nOEC3bt146qmnmpRdxBF0DIzIOZw4BiYvL69++cNqPf5HJy8vD39///r3+vv7k5ubS15eHjabDZPJ\nVP/aif+JhYSEnHOfI0eO5KGHHqKgoIBPPvmEO++8s/6AWoDi4mKeeOIJnn76aeD4ktKgQYMAWLVq\nFW+++SalpaXU1dVhnHS7M4vFUn/wsdlspq6u7oz79/Dw4JZbbuGWW26hqKiIzz77jMcff5xOnTpR\nWFh4yvE4wcHB5/w+jcnl6+sLQFFRESkpKcTFxdW/7u7uTl5eHoWFhdhstvrn/fz8KC0tPeP+znUM\nzMnj9vPH+fn5p3xHm82GYRjk5+ef8bMneHt7M2LECDZs2MDQoUMpKipi6NChmEwmnn/+eV577TUW\nLVpETEwMjz766DmPJ6qtra3/ORiGQa9evViyZAlms5ni4mK++OILNm3aVP96dXX1Wb8f0ODvZWFh\nIXa7/ZTnT3j88cd56aWXuPnmm/H09OS+++47ZXxEnEEFRqSRgoKCmDt3Ln/729946aWXAAgJCan/\n2zZAQUEBISEhBAcHU1hYiGEY9f+zKCgoaPT/7N3c3IiNjeXDDz/kyJEjDB48+JQCY7fb+eUvf3na\nDERmZiYPPfQQK1asoG/fvhw+fJjJkyc36Xvm5eWRlJRUPwPi5+fH7Nmz2bhxI3v37sVms1FcXHzK\n+0/4eSkqLCxsci673U6PHj14//33T3vNz8/vrPtuTsHBwWzfvr3+cWFhIWazmcDAwHN+dvLkyXzx\nxRfk5+czefLk+vEfNmwYw4YNo6ysjMWLF/P3v//9nDMZPz+I92R2u50rr7yShQsXNul7ne33sqGf\nbUhICA8//DAPP/wwmzZt4u6772b06NH4+Pg0et8izU1LSCJNcPPNN7N9+3bi4+OB40sG7777LrW1\ntZSVlbFy5UrGjBlDp06dCA8Prz9INjExkZycHAYNGoTVaqWsrKx+OeJspk2bxquvvnrGU5fHjx/P\nihUrqK2txTAMlixZwtdff01eXh7e3t706NGDmpoa3n77bYCzzlKcSUVFBffcc0/9wZ0AR44cYceO\nHURHRzN48GASEhLIy8ujpqaGDz/8sP59oaGh9Qd/pqSkkJiYCNCkXJGRkWRnZ7Njx4767fzud7/D\nMAyioqJYt24dtbW15OXl8fXXXzf6ezXFyJEjSUhIqF/m+t///sfIkSPrZ94aEhsby/bt21m7dm39\nMsymTZt49NFHqaurw9vbmz59+pwyC3I+xo0bx+eff15fNNauXcsrr7zS4Gca+r0cPHgwmzZtory8\nnPLy8vriVF1dzdy5c8nKygKOLz1ardZTljRFnEEzMCJN4Ovry2233cbixYt59913mTt3LikpKUyb\nNg2TyURcXBxTpkzBZDLx9NNP88c//pEXXngBLy8vnn32Wby9venduzf+/v6MHDmSDz74gIiIiDPu\n65JLLsFkMjF16tTTXpszZw7Hjh1j2rRpGIbBgAEDuPHGG/H29uayyy5j8uTJBAcH88ADD5CYmMjc\nuXN57rnnGvUdIyIieOmll3juued47LHHMAwDX19fHnzwwfozk/7v//6PK6+8ksDAQCZNmsS+ffsA\nmD17NvPmzWPSpEn069evfpalT58+jc7l6enJc889x6JFiygtLcXNzY358+djMpmYPXs2CQkJTJgw\ngYiICCZMmHDKrMHJThwD83N//etfz/kzCA8P57HHHuPOO++kurqaTp06sWjRokb9/Hx9fenfvz97\n9uwhKioKgJiYGD755BMmT56Mu7s7QUFBPP744wDcf//99WcSNUX//v25/fbbmTt3LnV1dQQHB/Po\no482+JmGfi9jY2PZsGEDcXFxhISEMGbMGBISEnBzc2PWrFncdNNNwPFZtoceeggvL68m5RVpbibj\n5IVoEZEmSkhI4P7772fdunXOjiIi7YjmAEVERKTVUYERERGRVkdLSCIiItLqaAZGREREWh0VGBER\nEWl1WuVp1NnZZz5tsjkEBnqTn1/msO3L+dPYuCaNi+vS2LgujU3jhIbazvqaZmB+xmq1ODuCnIXG\nxjVpXFyXxsZ1aWwunAqMiIiItDoqMCIiItLqqMCIiIhIq6MCIyIiIq2OCoyIiIi0OiowIiIi0uqo\n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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": "text",
+ "id": "X1QcIeiKyni4"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "First, let's try Adagrad."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "Ntn4jJxnypGZ",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 671
+ },
+ "outputId": "5abc3a50-d6c1-45b3-d568-5506eeaa5289"
+ },
+ "cell_type": "code",
+ "source": [
+ "_, 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": 10,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 85.73\n",
+ " period 01 : 72.36\n",
+ " period 02 : 71.03\n",
+ " period 03 : 71.25\n",
+ " period 04 : 70.60\n",
+ " period 05 : 70.07\n",
+ " period 06 : 70.19\n",
+ " period 07 : 72.44\n",
+ " period 08 : 71.34\n",
+ " period 09 : 69.17\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 69.17\n",
+ "Final RMSE (on validation data): 69.64\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nAAAAAElFTkSuQmCC\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": "693b0884-b944-4e23-a76d-e0929ada8e23"
+ },
+ "cell_type": "code",
+ "source": [
+ "_ = normalized_training_examples.hist(bins=20, figsize=(18, 12), xlabelsize=10)"
+ ],
+ "execution_count": 13,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABB0AAAK6CAYAAAB1zCTyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3XtclGX+//H3zMAsoWOKzrhrmZWV\nWp5yLQMPJUYinchEhdVObJt5KDdKyTRtbYNUenjIsvXI6lYkWlEZmIlbJrLZ7Lratpntt/16djAU\nFQzE+f3hz/lKHGTGGe9BXs+/nGvu+74+183wmdsP133dJrfb7RYAAAAAAICfmY0OAAAAAAAAXJwo\nOgAAAAAAgICg6AAAAAAAAAKCogMAAAAAAAgIig4AAAAAACAgKDoAAAAAAICAoOiAgNq9e7euv/56\nw/qfN2+ennvuOa/2KSwsVExMTI3vPffcc5o3b54/QgOAOl2I/PnPf/5TycnJAe3Dn66//nrt3r1b\nn3zyiZ599lmjwwGAoFXX9ewZW7du1b///W9J0ooVKzR79uxq7d6IiYlRYWGh98HiohdidAAAAMAY\nXbt21eLFi40Ow2sxMTHnvJgGANRt1apV+vWvf62OHTtqxIgRNbYD/kDRARdEdna2MjMzVVJSomee\neUZxcXGaM2eO8vLyJEndu3fX888/r/DwcEVHR2vGjBnq2bOnJHled+/eXVOnTtWWLVt06tQpdejQ\nQenp6WratKnWrVunOXPmqLS0VO3atdOsWbMUEREhSSovL9dTTz2lf/zjH2rVqpXmzZun1q1ba+/e\nvZoyZYp2796t0NBQ/fa3v1V8fHyVuIuLi5WSkqIffvhB11xzjcLCwvTLX/5S0umK8F/+8he53W41\nbdpUaWlpuvbaay/gWQXQGAQyf3799deaPHmyPvnkE82bN0/FxcU6cOCA/v3vf6tFixZ67bXX5HA4\n9PXXX+v3v/+9JOmee+5RXl6eJk+erF69etUa97x581RUVKT9+/fr66+/VmRkpOLi4jRv3jwdPHhQ\n06dPV//+/VVeXq4ZM2bo888/V0VFhYYOHapRo0ZJkv7617/qxRdfVEhIiO6//37PsVevXq2cnBwt\nW7ZMRUVFmjhxovbs2aPy8nKNHDlSDz/8sGf8v/vd75Sdna39+/frrrvuUmpqap3nu6ysTM8++6y+\n+eYbVVRUaODAgZo4caIk1Xke6voeAgCj1JbT3nrrLb3//vtav369fvzxRx07dkz79+9X586da2z/\n4x//KOl0bj/zevv27Zo4caJOnjypW2+9tUq/5EScjdsrEHCnTp1SRUWFPvjgAz377LOaPXu2Pv74\nY3322WdavXq1PvroI5WUlGjZsmV1Hmfjxo3avXu3cnNztXbtWl1zzTX6+9//rl27dmnChAnKyMjQ\np59+ql69emnatGme/QoKCpSSkqL169crIiJC2dnZkqQpU6bo5ptvVl5ent544w29+OKL2r17d5U+\nFy5cqBYtWmj9+vV6/vnntXHjRknSsWPHNGfOHK1cuVK5ublKTk7Whg0b/HnaACDg+fPncnNzNWnS\nJK1bt04tW7bUqlWrJJ3Olw899JDWrl2rpk2b6ocffqhX/Bs2bNBLL72kDz74QLm5uZ64R40apYUL\nF0o6nWd37typDz74QB9++KHy8vKUn5+vyspKPffcc5o6dao+/vhjmc1mVVZWVuvj9ddf1+WXX67c\n3FxlZmYqIyND+/bt87z/5ZdfKisrS6tWrdKKFSu0f//+OmN+6623dPz4ceXm5urdd9/V6tWrtWXL\nljrPw7m+hwDAKLXltMTERHXt2lXPPPOMp1Arqdb2mkybNk0PPPCA8vLydOONN3quo8mJ+DmKDgg4\nt9vtmUFw/fXXa//+/dqwYYPi4+MVHh4ui8WiwYMH64svvqjzOBEREfr+++/1ySefqKysTOPHj1ff\nvn312Wef6eabb9Z1110nSRo+fLjWr1/vuTj99a9/rcsuu0yS1LFjRx04cEAVFRXatGmTkpKSJEmX\nXXaZevXqpc2bN1fpc8uWLRo0aJAk6fLLL9fNN98sSfrFL34hk8mk7OxsFRUVadCgQXr00Uf9dMYA\n4LRA58+f69mzpy677DKZTCZ16tRJ+/bt04kTJ/T111/rrrvukiT95je/kdvtrlf8N954o1q2bKkW\nLVrIbrerX79+kqTrrrtOBw8elCTl5+crKSlJVqtV4eHhuvfee7V27Vr98MMPKi8vV58+fSRJ9913\nX419TJ48WVOmTJEktW3bVna7vUoB+e6775bFYlHr1q3VsmXLKgWJmjzyyCN67bXXZDKZdOmll+ra\na6/V7t276zwP5/oeAgCj1JbTztdPP/2kbdu2KS4uTpIUGxurSy65RBI5EdVxewUCzmKxeJKQ2WzW\n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\nGgCCG3kaQLALmqdXuN3uOt+3221eH/ODjHt9DQdoUHz5/Qg0Yro4kasB+AP5OHDOlacl788/eRpo\n3M43Zxv29AqHw6GioiLP64MHD8putxsVDgCgBuRqAAhu5GkAwc6wokPv3r2Vl5cnSfr666/lcDiY\nBgYAQYZcDQDBjTwNINgZdntFjx49dMMNN2j48OEymUyaOnWqUaEAAGpBrgaA4EaeBhDsTO763PgF\nAAAAAADgJcNurwAAAAAAABc3ig4AAAAAACAgguaRmefjb3/7m5588km99NJL6t+/f7X3c3JylJmZ\nKbPZrKFDhyohIUEVFRVKTU3V3r17ZbFYlJaWprZt2/olnnMde/v27Xr55Zc9r3fu3Kn58+friy++\n0AcffKDWrVtLku655x4lJCRckJgk6YYbblCPHj08r5ctW6ZTp04Zdp4kac2aNVqyZInMZrMiIyP1\n+9//XqtXr9acOXN0xRVXSJKioqL0+OOPn3c8L730krZu3SqTyaRJkyapa9eunvc2bdqkV155RRaL\nRf369dOYMWPOuY8/1HX8zZs365VXXpHZbNZVV12lP/7xj/ryyy/15JNP6tprr5UkXXfddZoyZYpf\nYzpXXNHR0frlL38pi8UiSZo1a5Zat25t2Lk6cOCAnn76ac92u3btUkpKiioqKgLyOULNjMzTRudk\no/OvUbnW6JxqZP40OkcanQ937Nih0aNH66GHHtKIESOqvGfU9ynqh1zd+HK11Ljz9bn6J2f76efv\nbuD++9//ukeNGuUePXq0e/369dXeP378uPuOO+5wl5SUuMvKytx33nmnu7i42L169Wr3tGnT3G63\n2/3555+7n3zySb/F5M2xjxw54v7Nb37jrqysdM+dO9e9fPlyv8XhbUw333yzT/sFKqbS0lJ3//79\n3UePHnWfOnXKPWTIEPd3333nXrVqlTs9Pd1vcbjdbndhYaH7d7/7ndvtdrt37tzpHjp0aJX3Bw0a\n5N67d6+7srLSnZiY6P7uu+/OuU+gY4qJiXHv27fP7Xa73ePGjXNv2LDBvXnzZve4ceP8Goe3cfXv\n39997Ngxr/YJdExnVFRUuIcPH+4+duxYQD5HqJnRedronGx0/jUi1xqdU43Mn0bnSKPz4fHjx90j\nRoxwT548ucbfHyO+T1E/5OrGl6vd7sadr+vTPznbPz//Bn97hd1u16uvviqbzVbj+1u3blWXLl1k\ns9kUFhamHj16yOl0qqCgQDExMZJOV4ecTqffYvLm2IsXL9aDDz4oszmwPwpfx2vkebrkkkuUk5Oj\npk2bymQyqXnz5jp8+LDf+v95LLfffrskqX379jpy5IiOHTsm6XRV8dJLL9WvfvUrmc1m3XrrrSoo\nKKhzn0DHJEmrV6/WL3/5S0lSRESEiouL/db3+cTlr30CEdO7776rgQMHqkmTJn7rG+dmdJ42Oicb\nnX+NyLVG51Qj86fROdLofGi1WrVw4UI5HI5q7xn1fYr6IVc3vlx9pt/Gmq/r07+/9jnfYzX0nN3g\niw6XXHKJZ7pLTYqKihQREeF5HRERIZfLVaXdbDbLZDKpvLzcLzHV99gnTpzQxo0bNWDAAE9bbm6u\nHn74YT322GPatWuXX+Kpb0zl5eVKSUnR8OHDtXTpUq/GEqiYzjxn+ttvv9WePXvUrVs3Saen/yUn\nJ+vBBx/Uv/71L7/E0qJFC8/rM58TSXK5XLV+hmrbxx/Odfwz5+bgwYP64osvdOutt0o6Pd1w1KhR\nSkxM1BdffOG3eOoblyRNnTpViYmJmjVrltxut+Hn6oyVK1dqyJAhntf+/hyhZkbnaaNzstH514hc\na3RONTJ/Gp0jjc6HISEhCgsLq/E9o75PUT/k6saXq8/021jzdX36l8jZP4/Nl/E3qDUdVq5cqZUr\nV1ZpGzdunPr27VvvY7hreUJobe2+xLR169Z6HXvdunW67bbbPFXaW2+9VbfccotuuukmffTRR3rx\nxRf1xhtvXLCYJkyYoHvuuUcmk0kjRoxQz549q21jxHn64Ycf9PTTTysjI0OhoaHq1q2bIiIidNtt\nt+nvf/+7Jk6cqA8++MCnuGrjyzh9PTfnc/xDhw5p1KhRmjp1qlq0aKErr7xSY8eO1aBBg7Rr1y49\n8MADWrt2raxW6wWL64knnlDfvn116aWXasyYMcrLy6vXWAIZkyT9/e9/19VXX+358roQn6PGyOg8\nbXRONjr/BmuuNTqnGpk/jc6RDTEfBvo7AuRqcnXtGnO+rql/cva51Wf8DarokJCQ4PXCMA6HQ0VF\nRZ7XBw8eVPfu3eVwOORyudSxY0dVVFTI7Xb79EGtKabU1NR6HTs/P1+JiYme1z9ftGTWrFlex3M+\nMZ0dyy233KIdO3YYfp7279+vMWPGaMaMGerUqZOk09N42rdvL0m68cYb9eOPP6qysrLO6vy51PQ5\nsdvtNb534MABORwOhYaG1rqPP9QVkyQdO3ZMjz76qMaPH68+ffpIklq3bq24uDhJ0hVXXKFWrVrp\nwIEDflv8sz5xxcfHe/7dr18/z+fIyHMlSRs2bFBkZKTndSA+RzA+Txudk43Ov8GSa43OqUbmT6Nz\nZDDnQ6O+T1EduZpcfUZjztf16Z+c7Z+ff4O/veJcunXrpm3btqmkpETHjx+X0+lUz5491bt3b+Xm\n5ko6nbx69erltz7re+zt27erY8eOntcvvviitmzZIun0lJkzK7JeiJj+85//KCUlRW63WydPnpTT\n6dS1115r+Hl67rnnNG3aNN1www2etoULF+rDDz+UdHq11YiIiPP+Jevdu7encvn111/L4XB4qomX\nX365jh07pt27d+vkyZPKz89X796969zHH851/PT0dD344IPq16+fpy0nJ0eLFy+WdHpK1KFDhzyr\nOV+IuI4ePark5GTPdMAvv/zS8zky8lxJ0rZt26r8vgXicwTfBDpPG52Tjc6/RuRao3OqkfnT6BwZ\nzPnQqO9T+Ae5+uLL1Wf6baz5+lz9k7P99/M3uRv4HLYNGzZo8eLF+s9//qOIiAjZ7XYtWbJEf/rT\nn3TTTTfpxhtvVG5urhYvXuyZCnXPPfeosrJSkydP1g8//CCr1ar09HT96le/8ktMtR377JgkKTIy\nUgUFBZ79vv32W02dOlUhISEymUx68cUX1a5duwsW08yZM7V582aZzWZFR0fr8ccfN/Q8NW/eXPHx\n8VUq2A899JBuuOEGPfPMM56k769Ha82aNUtbtmyRyWTS1KlT9a9//Us2m00xMTH68ssvPZXzO+64\nQ8nJyTXuc3ZC8IfaYurTp0+Vz5Ik3XXXXbrzzjv19NNPq6SkRBUVFRo7dqzn3rcLEVdMTIwyMzP1\n3nvv6Re/+IWuv/56TZkyRSaTybBzdWZRprvvvltLly5Vq1atJJ3+a0EgPkeozug8bXRONjr/GpVr\njc6pRuZPo3OkkfnwzGMN9+zZo5CQELVu3VrR0dG6/PLLDf0+xbmRqxtnrpYad74+1/jJ2f75+Tf4\nogMAAAAAAAhOF/3tFQAAAAAAwBgUHQAAAAAAQEBQdAAAAAAAAAFB0QEAAAAAAAQERQcAAAAAABAQ\nFB0AAAAAAEBAUHQAAAAAAAABQdEBAAAAAAAEBEUHAAAAAAAQEBQdAAAAAABAQFB0AAAAAAAAAUHR\nAQAAAAAABARFBwAAAAAAEBAUHQAAAAAAQEBQdAAAAAAAAAFB0QEAAAAAAAQERQcAAAAAABAQFB0A\nAAAAAEBAUHQAAAAAAAABQdEBAAAAAAAEBEUHAAAAAAAQEBQdAAAAAABAQFB0AAAAAAAAAUHRAQAA\nAAAABARFBxiisLBQMTExfj9uRkaG3nrrLUnS559/rr1793p9jOuvv167d+/2d2gAAABAgzFy5Ei9\n//7759zunXfe8fw7NjZWRUVFgQwLDRBFB1xUUlJSlJiYKElatmyZT0UHAEBVzz33nObNmycpcBeU\n//znP5WcnOz34wIAAsflcmnRokWe17m5uWrVqpWBESEYUXSAoX766Sc9//zzGjhwoAYNGqT09HRV\nVlZKkqKjo/X2229ryJAh6tOnj9LT0z37LViwQJGRkbr//vv1l7/8RdHR0ZKk1NRUvfbaa5o9e7Y2\nb96sZ555RmvWrPG0n3H267/+9a+KiYnRoEGDqiRNScrKylJsbKyio6P11FNP6cSJE4E+JQAQ1AJ1\nQdm1a1ctXrzY78cFgItNYWGh7r77bqWnp2vgwIGKjo7WP/7xjzqvqzt06KA///nPuvfeexUZGemZ\nGbx69Wo99NBDnmP//PUZn376qe6++24NHDhQgwcP1jfffCNJGj58uPbu3avY2FiVl5erQ4cO2r9/\nvyTpz3/+s+Li4hQbG6vHH39cP/74o6TT1+Fz587Vww8/rP79++vhhx9WWVlZAM8YjEbRAYbKzMzU\n/v379dFHH+ndd9/Vli1b9OGHH3re//LLL5WVlaVVq1ZpxYoV2r9/v7777jstWrRI77//vt58803l\n5uZWO+748ePVunVrzZw5U3FxcbX2X1lZqeeee05Tp07Vxx9/LLPZ/P/Yu/e4KMv8/+PvYWCWUFAh\nxtZOW22mm+c8JIoKihzKFcsTph2kTUtNC1NicbXNDdQwsyzNPK3WritZUduCmdhmImW0pu1udtgK\n0WRQEBAVxPv3hz/nKwHKjIzD4fV8PHo8nGvu+/5c1z3w4e4z93Xd9uS8e/duPf/881q3bp22bdum\nli1b6vnnn6//kwAA9ezAgQPq37+/Vq5cqfDwcIWHh+tf//qXHnroIQUHB+vJJ5+UJG3dulXDhg3T\n4MGDNXHiRPsFYWFhoSZOnKjQ0FA99NBDKikpsR/7/AvKZcuWKTw8XEOGDNGkSZNUXFwsSXrhhRf0\nxz/+UVOmTNHgwYM1cuRI5efnX7DP50+7u9D+ubm5uueeexQWFqa7775bX375pSTp4MGDio2NVXh4\nuO6880699dZbDp2LC50PAGhovv32W3Xp0kUZGRl6+OGHNW/evIteV//www96++239dprr+mZZ55R\nYWFhnWKdPn1a8fHxetzDpBQAACAASURBVPrpp5WRkaHQ0FAtWLBAkvTMM8/ol7/8pdLT02WxWOz7\n/Otf/9KqVau0fv16paenq127dkpJSbG/n56erueee07vv/++jh49qvfff7+ezgwaIooOcKvt27dr\n9OjR8vT0lLe3t4YNG6aPP/7Y/v6wYcNkNpvVtm1bBQQE6NChQ/r000/Vu3dvWa1W/eIXv9Ddd9/t\ndPzvv/9e5eXl6t+/vyRpxIgR9ve2bdumqKgotW3bVpIUExOjLVu2OB0LAC6nwsJCBQYGKiMjQ7fc\ncosee+wxJScnKy0tTe+++65+/PFHzZo1SykpKfrggw/Up08fzZs3T5K0cuVKtWnTRtu2bdMf/vAH\n7dixo9rx9+3bp9dee01vvPGGtmzZovLycm3YsMH+fnp6uhISErR161YFBATojTfecKj/te0/Z84c\n3XHHHXr//ff18MMPa9asWfb23r17KyMjQytWrND8+fPt6/PU5Vzk5ubWej4AoKHx8fFRZGSkJGno\n0KH6z3/+o4yMjAteV5+7Zr7xxht1ww036IsvvqhTLE9PT+3cuVPdunWTJPXs2VO5ubkX3Gf79u0K\nDw9XQECAJGnUqFFV+jJw4EC1bt1anp6eat++vQ4dOlT3waPR8XR3B9C8HT16VK1atbK/btWqlY4c\nOWJ/3bJlS/u/zWazKisrVVxcXGWfc0UBZxw7dqxKjPOPW1JSovfff99+sW0YhioqKpyOBQCX0+nT\npxURESFJat++vSTJ399fkhQYGKi0tDT17t3b/t7YsWPVr18/VVZWavfu3XrooYckSddcc4169+5d\n7fidOnXS9u3b7d9sde/evcpFaM+ePXX11VdLkjp27OjwBWVN+586dUrZ2dlaunSpJGnw4MHq27ev\nKioqtHPnTi1ZskSSdPXVV6tPnz7atWuXbr/99ouei/z8fH311Ve1ng+z2exQ3wHA1fz8/GQymez/\nlqTS0tILXlf//L1zd6fVxfr16/Xmm2+qvLxc5eXl9ti1OXr0qKxWa5X+nt8XX19f+7/PXeOj6aLo\nALe68sorVVRUZH9dVFR00bnCLVu2VFlZmf31xW7ZlSQPDw+dOXPG/vrYsWOSzibc0tJSe/v5t9Ja\nrVaNGDFCs2fPvvhAAKCBMZvN8vb2lnQ2B/r4+FR5z9PTU7t377b/z7h0Nr8WFRXp2LFjVS4Iz13Q\nnu/EiRNKSkpSdna2pLN5ddCgQfb3L/WCsqb9i4qKdObMGft7JpNJLVq0kM1mk2EY1fp8Lqdf7FxU\nVlaqpKSk1vNx7ps6AGgozr9+Pndd6+fnd8Hr6sLCQnsxt6ioSK1atdLRo0er5OeaChE5OTlauXKl\nNm3apGuuuUYff/yx5syZc8H+OXONj6aL6RVwq0GDBik1NVWVlZUqKyvT22+/rYEDB15wny5duig7\nO1tHjx5VeXm5fd7uz3l6etrnIQcGBuq///2vpLPzgXNyciRJ1113ncxms/2iefPmzfbKbWhoqLZs\n2WK/aN26dateeeWVSx80ADQAVqtVQUFBSk9Pt/+3a9cuBQQEyM/Pr8o6DjWtbbBu3Tp9//332rx5\nszIyMjRmzBiX97lNmzYymUz2eciGYeiHH35Q69at5eHhYb/wluRwseBC5wMAGpqTJ09q69atkqSM\njAx16tRJ4eHhF7yu/vvf/y7p7HoQP/zwg7p27Sqr1ar//e9/OnXqlE6cOFHjWmlHjx5VQECA2rVr\npxMnTujNN99UWVmZDMOQp6enysrKdPr06Sr7DBo0SO+//749X//1r3+96DU+mi6KDnCrCRMm6Kqr\nrtIdd9yhu+++W4MGDbLPT6tNly5dNGLECI0YMUL33nuvQkJCatwuPDxcjz/+uNasWaPRo0crLy9P\nQ4cOVUpKisLDwyVJXl5eevrpp5WQkKDIyEiZTCb7N2C33nqrJk+erAkTJigyMlJr167V4MGD6/cE\nAICbWCwW7d692z4l4osvvtD8+fMlSd26dbNfzP7444/67LPPqu1/5MgR3XjjjWrRooXy8vL04Ycf\nVrkLzVV97tevn958801J0kcffaSHHnpIXl5e6t+/vzZu3Gjv8+7duxUUFFTnY/fv37/W8wEADc3V\nV1+tzz77TOHh4VqxYoXmzp170etqf39/DR8+XPfcc48SExPVqlUr9enTR127dlV4eLh+97vf1Xit\nGxwcLKvVqiFDhmjixIm677775Ovrq0cffVS33HKLWrVqpX79+lV5VH2XLl300EMP6Z577lFERIRK\nSkr02GOPXZZzg4bHZBiG4e5OAI4yDMN+R8L27du1ZMmSWu94AIDm5sCBAxo6dKj+/e9/S5Jeeukl\n/fjjj/ZHD4eFhWn+/PkqLS3V888/r4qKCrVo0UIJCQnq0aOHCgoK9NhjjykvL0833XST/P39dc01\n12jatGm65ZZb9OGHH+r48eN69NFHdfr0ad1yyy0aN26cpk2bpilTpqikpEQ//fST/vSnP0k6+zSK\n81/XJDs7W4mJiXr//ferbX/+659++kkzZ87UoUOH1KpVKz311FPq3LmzDh06pMTEROXl5cnLy0tT\np05VeHh4nc9Fnz599MEHH9R4PgCgITk/X9bVudx91VVXubBnQM0oOqDROXr0qCIjI7V582a1a9dO\n8fHxuuKKK1hlHAAAAE0eRQc0NiwkiUbH399fM2bM0P333y+TyaQbb7zR/sg0AAAAAEDD4dSdDidO\nnFB8fLyOHDmiU6dO6ZFHHlGHDh00a9YsVVZWKjAwUIsWLZLFYlFaWprWrVsnDw8PjR49WqNGjVJF\nRYXi4+N18OBBmc1mJSUl6dprr3XF+AAAQAMxZcoUffvttzW+t2zZMt10002XuUcAAMDVnCo6vPfe\ne8rLy9Pvfvc75eXlaeLEierRo4cGDBigyMhILV68WFdddZWio6M1YsQIpaamysvLSyNHjtSGDRuU\nmZmpL774QnPnztWOHTuUmppqf7Y2AAAAAABoGpyaXhEVFWX/96FDh9S2bVtlZ2frqaeekiSFhIRo\n9erVuuGGG9S5c2f7c7N79OihnJwcZWVlKTo6WpIUFBSkhISEi8a02Uouus3PtWnjo8JC166k3VDj\nN+exN/f4zXnszsQPDPR1YW+an8aWqxvbzyvxm0bs5h7fmdjk6vrlaK5uzj+v7o7fnMfe3OM3xrHX\nlqsvaU2HsWPH6qefftLy5cv1wAMPyGKxSJICAgJks9lUUFAgf39/+/b+/v7V2j08PGQymVReXm7f\nvyZt2vjI09PscB/d/UfKnfGb89ibe/zmPPaGEB+OcSa3N4XYxOezb67x3T12OM7dn1lzjt+cx97c\n4zelsV9S0eGvf/2r/vOf/+iJJ57Q+bM0apux4Wj7+Zyp8gQG+jr1rVt9cWf85jz25h6/OY/dmfgU\nKAAAAADX8XBmp3379unQoUOSpI4dO6qyslItWrTQyZMnJUmHDx+W1WqV1WpVQUGBfb/8/Hx7u81m\nkyRVVFTIMIwL3uUAAAAAAAAaH6eKDrt379bq1aslSQUFBSorK1NQUJAyMjIkSVu2bFFwcLC6du2q\nvXv3qri4WMePH1dOTo569uypfv36KT09XZKUmZmpPn361NNwAAAAAABAQ+HU9IqxY8fq97//vcaN\nG6eTJ0/qD3/4gzp16qTZs2dr48aNateunaKjo+Xl5aW4uDjFxsbKZDJpypQp8vX1VVRUlHbu3KmY\nmBhZLBYlJyfX97gAAAAAAICbOVV08Pb2VkpKSrX2NWvWVGuLiIhQRERElTaz2aykpCRnQgMAAAAA\ngEbCqekVAAAAAAAAF0PRAQAAAAAAuMQlPTITaM4mJm9zeJ/V8aEu6AkAV3D0d5zfbwBN1bC4tx3e\nh5wI4BzudAAAAAAAAC5B0QEAAAAAALgERQcAAAAAAOASFB0AAAAAAIBLUHQAAAAAAAAuQdEBAAAA\nAAC4BEUHAAAAAADgEhQdAAAAAACAS1B0AAAAAAAALkHRAQAAAAAAuARFBwAAAAAA4BKe7u4AAACu\nNjF5m7u7AAAA0CxRdACAJmzhwoX67LPPdPr0aU2aNEmdO3fWrFmzVFlZqcDAQC1atEgWi0VpaWla\nt26dPDw8NHr0aI0aNUoVFRWKj4/XwYMHZTablZSUpGuvvdbdQ2qwnClsvJMy3AU9AQAAaDgoOgBA\nE7Vr1y59/fXX2rhxowoLCzVixAj17dtX48aNU2RkpBYvXqzU1FRFR0dr2bJlSk1NlZeXl0aOHKmw\nsDBlZmbKz89PKSkp2rFjh1JSUrRkyRJ3DwsAAACNCGs6AEAT1atXLz3//POSJD8/P504cULZ2dka\nPHiwJCkkJERZWVnas2ePOnfuLF9fX3l7e6tHjx7KyclRVlaWwsLCJElBQUHKyclx21gAAADQOFF0\nAIAmymw2y8fHR5KUmpqqAQMG6MSJE7JYLJKkgIAA2Ww2FRQUyN/f376fv79/tXYPDw+ZTCaVl5df\n/oEAAACg0WJ6BQA0cVu3blVqaqpWr16toUOH2tsNw6hxe0fbz9emjY88Pc0O9zEw0NfhfZoKd4+9\nOcdvzmN3d3x3jx0AcPlQdACAJuyjjz7S8uXL9eqrr8rX11c+Pj46efKkvL29dfjwYVmtVlmtVhUU\nFNj3yc/PV7du3WS1WmWz2dShQwdVVFTIMAz7XRK1KSwsc7iPgYG+stlKHN6vqXDn2N197t0ZvzmP\n3d3xnYlNkQIAGi+niw4/XxF927Zt+vLLL9W6dWtJUmxsrAYNGsSK6ADgJiUlJVq4cKHWrl1rz81B\nQUHKyMjQ8OHDtWXLFgUHB6tr165KTExUcXGxzGazcnJylJCQoNLSUqWnpys4OFiZmZnq06ePm0cE\nAE3P8ePHNXv2bB07dkwVFRWaMmWKAgMDNW/ePEnSLbfcoqeeekqS9Oqrryo9PV0mk0lTp07VwIED\nVVJSori4OJWUlMjHx0cpKSn2nA8ADYFTRYeaVkS//fbb9fjjjyskJMS+XVlZGSuiA4CbvPfeeyos\nLNSMGTPsbcnJyUpMTNTGjRvVrl07RUdHy8vLS3FxcYqNjZXJZNKUKVPk6+urqKgo7dy5UzExMbJY\nLEpOTnbjaACgaXrzzTd1ww03KC4uTocPH9Z9992nwMBAJSQkqEuXLoqLi9OHH36oG2+8Ue+9957+\n+te/qrS0VOPGjVP//v21bt069e7dWw8++KA2btyolStX6oknnnD3sADAzqmiQ69evdSlSxdJ/7ci\nemVlZbXtzl8RXVKVFdGjo6Mlnf3WLSEhwdn+AwBqMWbMGI0ZM6Za+5o1a6q1RUREKCIiokrbuTvR\nAACu06ZNG3311VeSpOLiYrVu3Vp5eXn2a+1zTxqy2WwKDg6WxWKRv7+/rr76an3zzTfKysrSM888\nY9928uTJbhsLANTEqaJDTSuim81mbdiwQWvWrFFAQIDmzJnj8IroF5or3FgXJ2vOizQ19/g1uVx9\ncvfYm3t8AADq6o477tDmzZsVFham4uJivfzyy/rjH/9of//ck4Zat2590evqgIAA5efnX/YxAMCF\nXNJCkueviL5v3z61bt1aHTt21CuvvKIXX3xR3bt3r7L9payI3hgXJ2tsizQR3/UuR5/cPfbGFp8C\nBQDAnd5++221a9dOq1at0n//+1/7FLdzHLl+rss1teT8l3mOqO+/r+7+e80XicRvbrHrM77TRYef\nr4jet29f+3uhoaGaN2+ewsPD621FdAAAAKCpycnJUf/+/SVJHTp00KlTp3T69Gn7++c/aeh///tf\nje02m02+vr72totx5ss8R9XnFxCN7QuNphKb+Hz29fWkIQ9nOnBuRfQVK1bYV8edNm2acnNzJUnZ\n2dm6+eab1bVrV+3du1fFxcU6fvy4cnJy1LNnT/Xr10/p6emSxIroAAAAaLauv/567dmzR5KUl5en\nFi1a6KabbtLu3bslyf6kodtvv13bt29XeXm5Dh8+rPz8fP3617+ucl19blsAaEicutOhphXR77rr\nLs2YMUNXXHGFfHx8lJSUJG9vb1ZEBwAAAGoxZswYJSQkaPz48Tp9+rTmzZunwMBA/eEPf9CZM2fU\ntWtXBQUFSZJGjx6t8ePHy2Qyad68efLw8NCECRP0xBNPaNy4cfLz89OiRYvcPCIAqMqpokNtK6KP\nGDGiWhsrogMAAAA1a9GihZ5//vlq7a+//nq1tgkTJmjChAnV9n/ppZdc1j8AuFROTa8AAAAAAAC4\nGIoOAAAAAADAJSg6AAAAAAAAl6DoAAAAAAAAXIKiAwAAAAAAcAmKDgAAAAAAwCUoOgAAAAAAAJeg\n6AAAAAAAAFyCogMAAAAAAHAJig4AAAAAAMAlKDoAAAAAAACXoOgAAAAAAABcgqIDAAAAAABwCYoO\nAAAAAADAJSg6AAAAAAAAl6DoAAAAAAAAXIKiAwAAAAAAcAmKDgAAAAAAwCUoOgAAAAAAAJeg6AAA\nAAAAAFyCogMAAAAAAHAJT2d3XLhwoT777DOdPn1akyZNUufOnTVr1ixVVlYqMDBQixYtksViUVpa\nmtatWycPDw+NHj1ao0aNUkVFheLj43Xw4EGZzWYlJSXp2muvrc9xAQAAAAAAN3Oq6LBr1y59/fXX\n2rhxowoLCzVixAj17dtX48aNU2RkpBYvXqzU1FRFR0dr2bJlSk1NlZeXl0aOHKmwsDBlZmbKz89P\nKSkp2rFjh1JSUrRkyZL6HhsAAAAAAHAjp6ZX9OrVS88//7wkyc/PTydOnFB2drYGDx4sSQoJCVFW\nVpb27Nmjzp07y9fXV97e3urRo4dycnKUlZWlsLAwSVJQUJBycnLqaTgAAAAAAKChcOpOB7PZLB8f\nH0lSamqqBgwYoB07dshisUiSAgICZLPZVFBQIH9/f/t+/v7+1do9PDxkMplUXl5u378mbdr4yNPT\n7HBfAwN9Hd6nPrkzfnMee0OIX5PL1Sd3j725x29I9u/fr0ceeUT333+/xo8fr/j4eH355Zdq3bq1\nJCk2NlaDBg1iKhwAAABcwuk1HSRp69atSk1N1erVqzV06FB7u2EYNW7vaPv5CgvLHO5fYKCvbLYS\nh/erL+6M35zH3hDi1+Zy9MndY29s8ZtygaKsrExPP/20+vbtW6X98ccfV0hISJXtmAoHAAAAV3D6\n6RUfffSRli9frpUrV8rX11c+Pj46efKkJOnw4cOyWq2yWq0qKCiw75Ofn29vt9lskqSKigoZhnHB\nuxwAAI6zWCxauXKlrFbrBbdjKhwAAABcxak7HUpKSrRw4UKtXbvWfotuUFCQMjIyNHz4cG3ZskXB\nwcHq2rWrEhMTVVxcLLPZrJycHCUkJKi0tFTp6ekKDg5WZmam+vTpU6+DAgBInp6e8vSsnuY3bNig\nNWvWKCAgQHPmzGEqnBsNi3vb4X3eSRler31w97lnGmLzjO/usQMALh+nig7vvfeeCgsLNWPGDHtb\ncnKyEhMTtXHjRrVr107R0dHy8vJSXFycYmNjZTKZNGXKFPn6+ioqKko7d+5UTEyMLBaLkpOT621A\nAIDaDR8+XK1bt1bHjh31yiuv6MUXX1T37t2rbNPcpsI1NvV5rtx97pmG2DzjOxObIgUANF5OFR3G\njBmjMWPGVGtfs2ZNtbaIiAhFRERUaTu3IBkA4PI6f32H0NBQzZs3T+Hh4dWmwnXr1s0+Fa5Dhw5M\nhQMAF0pLS9Orr74qT09PPfroo7rllls0a9YsVVZWKjAwUIsWLZLFYmHRXwCNktNrOgAAGp9p06Yp\nNzdXkpSdna2bb75ZXbt21d69e1VcXKzjx48rJydHPXv2VL9+/ZSeni5JTIUDABcpLCzUsmXL9Prr\nr2v58uX64IMPtHTpUo0bN06vv/66rr/+eqWmptoX/V27dq3Wr1+vdevWqaioSO+++678/Pz0l7/8\nRZMnT1ZKSoq7hwQAVVzS0ysAAA3Xvn37tGDBAuXl5cnT01MZGRkaP368ZsyYoSuuuEI+Pj5KSkqS\nt7c3U+EAwE2ysrLUt29ftWzZUi1bttTTTz+t0NBQPfXUU5KkkJAQrV69WjfccIN90V9JVRb9jY6O\nlnR2jbWEhAS3jQUAakLRAQCaqE6dOmn9+vXV2sPDw6u1MRUOANzjwIEDOnnypCZPnqzi4mJNmzZN\nJ06csE9nCwgIqLa4r+SeRX8dUd/rcLh7XY/mvPAq8fnsLxVFh0ZiYvI2h7av79XNAQAA4BpFRUV6\n8cUXdfDgQd17771VFu51dHFfVy366ygWvW38sYnPZ19fi/6ypgMAAADgJgEBAerevbs8PT113XXX\nqUWLFmrRooVOnjwpSTp8+LCsVqusVmu1RX/PtdtsNkli0V8ADRJFBwAAAMBN+vfvr127dunMmTMq\nLCxUWVmZgoKClJGRIUnasmWLgoODWfQXQKPF9AoAAADATdq2bavw8HCNHj1akpSYmKjOnTtr9uzZ\n2rhxo9q1a6fo6Gh5eXmx6C+ARomiAwAAAOBGY8eO1dixY6u0rVmzptp2LPoLoDFiegUAAAAAAHAJ\nig4AAAAAAMAlKDoAAAAAAACXoOgAAAAAAABcgqIDAAAAAABwCYoOAAAAAADAJSg6AAAAAAAAl6Do\nAAAAAAAAXIKiAwAAAAAAcAmKDgAAAAAAwCUoOgAAAAAAAJeg6AAAAAAAAFyCogMAAAAAAHCJSyo6\n7N+/X0OGDNGGDRskSfHx8Ro2bJgmTJigCRMmaPv27ZKktLQ03X333Ro1apQ2bdokSaqoqFBcXJxi\nYmI0fvx45ebmXtpIAAAAAABAg+Lp7I5lZWV6+umn1bdv3yrtjz/+uEJCQqpst2zZMqWmpsrLy0sj\nR45UWFiYMjMz5efnp5SUFO3YsUMpKSlasmSJ8yMBAAAAAAANitN3OlgsFq1cuVJWq/WC2+3Zs0ed\nO3eWr6+vvL291aNHD+Xk5CgrK0thYWGSpKCgIOXk5DjbFQAAAAAA0AA5faeDp6enPD2r775hwwat\nWbNGAQEBmjNnjgoKCuTv729/39/fXzabrUq7h4eHTCaTysvLZbFYaozXpo2PPD3NDvczMNDX4X3q\nkzvjN+exN4T4NblcfXL32Jt7fAAAAABnOV10qMnw4cPVunVrdezYUa+88opefPFFde/evco2hmHU\nuG9t7ecUFpY53J/AQF/ZbCUO71df3B2/OY/d3fFrczn65O6xN7b4FCgAAAAA16nXp1f07dtXHTt2\nlCSFhoZq//79slqtKigosG+Tn58vq9Uqq9Uqm80m6eyikoZh1HqXAwAAAAAAaHzq9U6HadOmadas\nWbr22muVnZ2tm2++WV27dlViYqKKi4tlNpuVk5OjhIQElZaWKj09XcHBwcrMzFSfPn3qsysAgCZq\nYvI2d3cBAAAAdeR00WHfvn1asGCB8vLy5OnpqYyMDI0fP14zZszQFVdcIR8fHyUlJcnb21txcXGK\njY2VyWTSlClT5Ovrq6ioKO3cuVMxMTGyWCxKTk6uz3EBAAAAAAA3c7ro0KlTJ61fv75ae3h4eLW2\niIgIRUREVGkzm81KSkpyNjwAAAAAAGjg6nVNBwAAAAAAgHPqdU0HAADgWo6uabE6PtRFPQEAALg4\n7nQAAAAAAAAuQdEBAJqw/fv3a8iQIdqwYYMk6dChQ5owYYLGjRun6dOnq7y8XJKUlpamu+++W6NG\njdKmTZsknX2ccVxcnGJiYjR+/Hjl5ua6bRwAAABonCg6AEATVVZWpqefflp9+/a1ty1dulTjxo3T\n66+/ruuvv16pqakqKyvTsmXLtHbtWq1fv17r1q1TUVGR3n33Xfn5+ekvf/mLJk+erJSUFDeOBgAA\nAI0RRQcAaKIsFotWrlwpq9Vqb8vOztbgwYMlSSEhIcrKytKePXvUuXNn+fr6ytvbWz169FBOTo6y\nsrIUFhYmSQoKClJOTo5bxgEAAIDGi4UkAaCJ8vT0lKdn1TR/4sQJWSwWSVJAQIBsNpsKCgrk7+9v\n38bf379au4eHh0wmk8rLy+3716RNGx95epod7mtgoK/D+6BuLnZu3X3u3Rm/OY/d3fHdPfaG5uTJ\nk7rzzjv1yCOPqG/fvpo1a5YqKysVGBioRYsWyWKxKC0tTevWrZOHh4dGjx6tUaNGqaKiQvHx8Tp4\n8KD9cfTXXnutu4cDAFVQdACAZsowjHppP19hYZnD/QgM9JXNVuLwfqibC51bd597d8ZvzmN3d3xn\nYjf1IsXLL7+sVq1aSfq/aXCRkZFavHixUlNTFR0drWXLlik1NVVeXl4aOXKkwsLClJmZKT8/P6Wk\npGjHjh1KSUnRkiVL3DwaAKiK6RUA0Iz4+Pjo5MmTkqTDhw/LarXKarWqoKDAvk1+fr693WazSTq7\nqKRhGBe8ywEA4Lhvv/1W33zzjQYNGiSJaXAAmh7udACAZiQoKEgZGRkaPny4tmzZouDgYHXt2lWJ\niYkqLi6W2WxWTk6OEhISVFpaqvT0dAUHByszM1N9+vRxd/cBoMlZsGCB5syZo7feekuS66fBSc5P\nhXNEfd+d4u67XZrzdCTi89lfKooOQAM3MXmbQ9u/kzLcRT1BY7Nv3z4tWLBAeXl58vT0VEZGhp59\n9lnFx8dr48aNateunaKjo+Xl5aW4uDjFxsbKZDJpypQp8vX1VVRUlHbu3KmYmBhZLBYlJye7e0gA\n0KS89dZb6tatW63rMLhiGpzk3FQ4R9Xn9B2mIzXPsTf3+I1x7LUVKSg6AEAT1alTJ61fv75a+5o1\na6q1RUREKCIiokrbuUXJAACusX37duXm5mr79u366aefZLFY7NPgvL29LzgNrlu3bvZpcB06dGAa\nHIAGizUdAAAAADdYsmSJ3njjDf3tb3/TqFGj9Mgjj9inwUmqMg1u7969Ki4u1vHjx5WTk6OePXuq\nX79+Sk9PlySmwQFosLjTAfj/HJ3GAAAAUN+mTZum2bNnMw0OQJNB0QEAAABws2nTptn/zTQ4AE0J\n0ysAAAAAAIBLx8eWfgAAIABJREFUUHQAAAAAAAAuQdEBAAAAAAC4BEUHAAAAAADgEhQdAAAAAACA\nS1B0AAAAAAAALnFJRYf9+/dryJAh2rBhgyTp0KFDmjBhgsaNG6fp06ervLxckpSWlqa7775bo0aN\n0qZNmyRJFRUViouLU0xMjMaPH6/c3NxLHAoAAAAAAGhInC46lJWV6emnn1bfvn3tbUuXLtW4ceP0\n+uuv6/rrr1dqaqrKysq0bNkyrV27VuvXr9e6detUVFSkd999V35+fvrLX/6iyZMnKyUlpV4GBAAA\nAAAAGganiw4Wi0UrV66U1Wq1t2VnZ2vw4MGSpJCQEGVlZWnPnj3q3LmzfH195e3trR49eignJ0dZ\nWVkKCwuTJAUFBSknJ+cShwIAAAAAABoST6d39PSUp2fV3U+cOCGLxSJJCggIkM1mU0FBgfz9/e3b\n+Pv7V2v38PCQyWRSeXm5ff+fa9PGR56eZof7GRjo6/A+9cmd8Zvz2BtC/Jpcrj65e+zNPT4AAACA\ns5wuOlyMYRj10n5OYWGZw30IDPSVzVbi8H71xd3xm/PY3R2/NperT8353DsanwIFAAAA4Dr1+vQK\nHx8fnTx5UpJ0+PBhWa1WWa1WFRQU2LfJz8+3t9tsNklnF5U0DKPWuxwAAAAAAEDjU69Fh6CgIGVk\nZEiStmzZouDgYHXt2lV79+5VcXGxjh8/rpycHPXs2VP9+vVTenq6JCkzM1N9+vSpz64AAAAAAAA3\nc3p6xb59+7RgwQLl5eXJ09NTGRkZevbZZxUfH6+NGzeqXbt2io6OlpeXl+Li4hQbGyuTyaQpU6bI\n19dXUVFR2rlzp2JiYmSxWJScnFyf4wIAAAAAAG7mdNGhU6dOWr9+fbX2NWvWVGuLiIhQRERElTaz\n2aykpCRnwwMAAAAAgAauXqdXAAAAAAAAnEPRAQAAAAAAuITLHpkJAADcb2LyNof3WR0f6oKeAACA\n5og7HQAAAAAAgEtQdAAAAAAAAC5B0QEAAAAAALgEazq4gTPzawEAAAAAaGwoOjRRw+LedngfFg5z\nPQpOAAAAAJoTplcAAAAAAACXoOgAAAAAAABcgqIDAAAAAABwCYoOAAAAAADAJVhIEgCamezsbE2f\nPl0333yzJKl9+/Z68MEHNWvWLFVWViowMFCLFi2SxWJRWlqa1q1bJw8PD40ePVqjRo1yc+8BAI2B\nM4tns6g50DRRdACAZqh3795aunSp/fWTTz6pcePGKTIyUosXL1Zqaqqio6O1bNkypaamysvLSyNH\njlRYWJhat27txp4DAACgMaHoADsq0kDzlZ2draeeekqSFBISotWrV+uGG25Q586d5evrK0nq0aOH\ncnJyFBrK7z0A1KeFCxfqs88+0+nTpzVp0iR17ty5znefVVRUKD4+XgcPHpTZbFZSUpKuvfZadw8J\nAOwoOgBAM/TNN99o8uTJOnbsmKZOnaoTJ07IYrFIkgICAmSz2VRQUCB/f3/7Pv7+/rLZbBc8bps2\nPvL0NDvcn8BAX4f3getczs/DnZ+9u3/umnN8d4+9Idm1a5e+/vprbdy4UYWFhRoxYoT69u1b57vP\nMjMz5efnp5SUFO3YsUMpKSlasmSJu4cFAHYUHQCgmfnVr36lqVOnKjIyUrm5ubr33ntVWVlpf98w\njBr3q639fIWFZQ73JzDQVzZbicP7wXUu1+fhzs/e3T93zTm+M7GbcpGiV69e6tKliyTJz89PJ06c\ncOjus6ysLEVHR0uSgoKClJCQ4J6BAEAtKDoAQDPTtm1bRUVFSZKuu+46XXnlldq7d69Onjwpb29v\nHT58WFarVVarVQUFBfb98vPz1a1bN3d1GwCaJLPZLB8fH0lSamqqBgwYoB07dtT57rPz2z08PGQy\nmVReXm7fvybO3pXmahcqLrm78NSc7wwiPp/9paLoAADNTFpammw2m2JjY2Wz2XTkyBHdddddysjI\n0PDhw7VlyxYFBwera9euSkxMVHFxscxms3JycvgGDQBcZOvWrUpNTdXq1as1dOhQe7ujd5+56q60\ny6G2O2C4M6h5jr25x2+MY6+tSEHRAQCamdDQUM2cOVMffPCBKioqNG/ePHXs2FGzZ8/Wxo0b1a5d\nO0VHR8vLy0txcXGKjY2VyWTSlClT7Lf1AgDqz0cffaTly5fr1Vdfla+vr3x8fOp895nVapXNZlOH\nDh1UUVEhwzAueJcDAFxuFB0AoJlp2bKlli9fXq19zZo11doiIiIUERFxOboFAM1SSUmJFi5cqLVr\n19ofSRwUFFTnu89KS0uVnp6u4OBgZWZmqk+fPm4eEQBUVa9Fh+zsbE2fPl0333yzJKl9+/Z68MEH\n6/zIHwAAAKA5ee+991RYWKgZM2bY25KTk5WYmFinu8+ioqK0c+dOxcTEyGKxKDk52Y2jAYDq6v1O\nh969e2vp0qX2108++WSdH/lzrroLAAAANAdjxozRmDFjqrXX9e4zs9mspKQkl/UPAC6Vh6sDZGdn\na/DgwZLOPvInKytLe/bssT/yx9vb2/7IHwAAAAAA0HTU+50O33zzjSZPnqxjx45p6tSpOnHiRJ0f\n+XMhzj7ap6k8ZqSh4tFGDZO7x97c4wON3cTkbQ7vszo+1AU9AQAAjV29Fh1+9atfaerUqYqMjFRu\nbq7uvfdeVVZW2t+/3I/2aYyPGWlseLRRw9Scz72j8SlQAAAAAK5Tr0WHtm3bKioqSpJ03XXX6cor\nr9TevXvr/MgfoL4Mi3vb3V0AAAAAgGavXtd0SEtL06pVqyRJNptNR44c0V133aWMjAxJqvLIn717\n96q4uFjHjx9XTk6OevbsWZ9dAQAAAAAAblavdzqEhoZq5syZ+uCDD1RRUaF58+apY8eOmj17dp0e\n+QMAAAAAAJqOei06tGzZUsuXL6/WXtdH/gA1cWZBMwAAAACA+7n8kZkAAAAAAKB5ougAAAAAAABc\ngqIDAAAAAABwCYoOAAAAAADAJSg6AAAAAAAAl6DoAAAAAAAAXKJeH5mJ5sfRx1mujg91UU8AAAAA\nAA0NRQcAAHDJHC1CS9I7KcNd0BMAANCQML0CAAAAAAC4BHc6AADcaljc2+7uAgAAAFyEogMAAHAL\nRwtOrAsEAEDjw/QKAAAAAADgEtzpgMvKmYXGAAAAAACNE3c6AAAAAAAAl6DoAAAAAAAAXIKiAwAA\nAAAAcAmKDgAAAAAAwCUoOgAAAAAAAJfg6RUAAAAA3M7Rp5ytjg91UU8A1CeKDpeIR0CioRkW97bD\n+/BHG0Bj4MzfXGfyG//jAwBA/WnSRQf+5wtwHS7KATQGfDkAAIB7ubXo8Mwzz2jPnj0ymUxKSEhQ\nly5d3NkdAEANyNXAhTlT2HgnZbgLeoLmijwNoCFzW9Hhk08+0Q8//KCNGzfq22+/VUJCgjZu3Oiu\n7tjxjQiaI37uUZuGmqsBNByO/g2h4FK/mnOevlxTrgBcGrcVHbKysjRkyBBJ0k033aRjx46ptLRU\nLVu2dFeXADQwfHvofuRqwDWcmQJ6OfA/ZI0PedoxXFsAl5/big4FBQW69dZb7a/9/f1ls9lqTZCB\ngb4OxyBBAI2bs7/DzuQL1IxcDeBinPkdJk/XH0fztOT4+SdPu/dn1t2/L8Tns79UHvVylHpgGIa7\nuwAAuAhyNQA0bORpAA2N24oOVqtVBQUF9tf5+fkKDAx0V3cAADUgVwNAw0aeBtDQua3o0K9fP2Vk\nZEiSvvzyS1mtVuaeAUADQ64GgIaNPA2goXPbmg49evTQrbfeqrFjx8pkMmnu3Lnu6goAoBbkagBo\n2MjTABo6k8HELwAAAAAA4AINZiFJAAAAAADQtFB0AAAAAAAALuG2NR3q0yeffKLp06frmWeeUUhI\nSLX309LStG7dOnl4eGj06NEaNWqUKioqFB8fr4MHD8psNispKUnXXnutw7Evdpx9+/ZpwYIF9tff\nfPONli1bpo8//ljvvPOO2rZtK0n67W9/q1GjRtVrbEm69dZb1aNHD/vrtWvX6syZM5dl7JL03nvv\nafXq1fLw8FDfvn312GOPafPmzXr++ed13XXXSZKCgoL08MMP1znuM888oz179shkMikhIUFdunSx\nv7dz504tXrxYZrNZAwYM0JQpUy66j6MudKxdu3Zp8eLF8vDw0A033KA//elP+vTTTzV9+nTdfPPN\nkqT27dtrzpw5LokfGhqqq666SmazWZL07LPPqm3btpdl/IcPH9bMmTPt2+Xm5iouLk4VFRWX9Hn/\n3P79+/XII4/o/vvv1/jx46u8dzk+fzinuebpusSXyNVNLVeTp8nTjRW52j252l15WnJvruaauhnl\naqOR++GHH4zJkycbjzzyiLFt27Zq7x8/ftwYOnSoUVxcbJw4ccK44447jMLCQmPz5s3GvHnzDMMw\njI8++siYPn26U/EdOc6xY8eMe+65x6isrDSWLl1qrF+/3qmYjsTu3bv3JfX5UuKXlZUZISEhRklJ\niXHmzBlj5MiRxtdff2288cYbRnJyslMxs7OzjYceesgwDMP45ptvjNGjR1d5PzIy0jh48KBRWVlp\nxMTEGF9//fVF96nP+GFhYcahQ4cMwzCMadOmGdu3bzd27dplTJs2zemYjsQPCQkxSktLHdqnPuOf\nU1FRYYwdO9YoLS29pM/7544fP26MHz/eSExMrPH3x9WfP5zTnPN0XeOTq5tOriZPk6cbK3K1+3K1\nO/K0Ybg3V3NN3bxydaOfXhEYGKgXX3xRvr6+Nb6/Z88ede7cWb6+vvL29laPHj2Uk5OjrKwshYWF\nSTpbJcrJyXEqviPHWbVqle677z55eNTPaXd2DJdr7FdccYXS0tLUsmVLmUwmtW7dWkVFRU7FOj/m\nkCFDJEk33XSTjh07ptLSUklnq4CtWrXSL3/5S3l4eGjgwIHKysq64D71GV+SNm/erKuuukqS5O/v\nr8LCQqfH6kz8+trnUo/15ptvKjw8XC1atHAqTm0sFotWrlwpq9Va7b3L8fnDOc05Tzsavz72c/Q4\n5Or6zdXkafJ0Y0Wudl+udkeePhfXXbmaa+rmlasbfdHhiiuusN/2UpOCggL5+/vbX/v7+8tms1Vp\n9/DwkMlkUnl5ucPx63qckydPaseOHRo8eLC9LT09XQ888IAmTZqk3Nxcl8QuLy9XXFycxo4dqzVr\n1jjU5/qIf+450V999ZXy8vLUtWtXSWdv34uNjdV9992nf//73w7FbNOmjf31uc9Tkmw2W62fdW37\nOOpixzo33vz8fH388ccaOHCgpLO3AE6ePFkxMTH6+OOPnYpdl/iSNHfuXMXExOjZZ5+VYRiXdfzn\nbNq0SSNHjrS/dvbz/jlPT095e3vX+N7l+PzhnOacp+san1zddHI1eZo83ViRq92Xq92Rp8/FdVeu\n5pq6eeXqRrWmw6ZNm7Rp06YqbdOmTVNwcHCdj2HU8oTQ2tovFn/Pnj11Os7WrVs1aNAge0V24MCB\nuv3229WrVy/9/e9/1/z587VixYp6jz1r1iz99re/lclk0vjx49WzZ89q27h67N9//71mzpyplJQU\neXl5qWvXrvL399egQYP0+eefa/bs2XrnnXcu2oea1KXv9bGPI8c6cuSIJk+erLlz56pNmzb61a9+\npalTpyoyMlK5ubm69957tWXLFlkslnqP/+ijjyo4OFitWrXSlClTlJGRUac+11d8Sfr888914403\n2v9Y1OfnXR/qc/yorjnn6UuJT66un30cOdblytXkaceRp12PXO2+XN1Q83Rd+l5f+9T1OFxTN51c\n3aiKDqNGjXJ4YRir1aqCggL76/z8fHXr1k1Wq1U2m00dOnRQRUWFDMO46A9sTfHj4+PrdJzMzEzF\nxMTYX/98oZJnn33WJbHPj3n77bdr//79l3XsP/30k6ZMmaKFCxeqY8eOks7ejnPTTTdJkrp3766j\nR4+qsrLygtX1c2r6PAMDA2t87/Dhw7JarfLy8qp1H0ddKL4klZaW6ne/+51mzJih/v37S5Latm2r\nqKgoSdJ1112nK6+8UocPH3ZqkaWLxY+Ojrb/e8CAAfbP+3KNX5K2b9+uvn372l9fyud9KX1zxeeP\ni2vOefpS4pOrm06uJk/XvW/kafchV7svVzeUPC25N1dzTd28cnWjn15xMV27dtXevXtVXFys48eP\nKycnRz179lS/fv2Unp4u6Wzy6tOnj1PHr+tx9u3bpw4dOthfz58/X7t375Z09jaZc6uw1mfs7777\nTnFxcTIMQ6dPn1ZOTo5uvvnmyzr23//+95o3b55uvfVWe9vKlSv17rvvSjq7aqq/v3+df1n69etn\nrzR++eWXslqt9urfNddco9LSUh04cECnT59WZmam+vXrd8F9nBnzhY6VnJys++67TwMGDLC3paWl\nadWqVZLO3q505MgR+wrL9Rm/pKREsbGx9tvxPv30U/vnfbnGL0l79+6t8rN+KZ+3Iy7H5w/XaMp5\nui7xydVNK1eTp2tHnm7cyNWuy9XuyNPn4rorV3NN3bxytclo5Pewbd++XatWrdJ3330nf39/BQYG\navXq1XrllVfUq1cvde/eXenp6Vq1apX9Vqjf/va3qqysVGJior7//ntZLBYlJyfrl7/8pcPxazvO\n+fElqW/fvsrKyrLv99VXX2nu3Lny9PSUyWTS/Pnzdf3119d77EWLFmnXrl3y8PBQaGioHn744cs2\n9tatWys6OrpKBfr+++/XrbfeqieeeMKetB193Myzzz6r3bt3y2Qyae7cufr3v/8tX19fhYWF6dNP\nP7VXuIcOHarY2Nga9zn/F9hRtcXv379/lc9cku68807dcccdmjlzpoqLi1VRUaGpU6fa56XVZ/yw\nsDCtW7dOb731ln7xi1/oN7/5jebMmSOTyXRZxn9uAaRhw4ZpzZo1uvLKKyWdrcxfyud9vnOPy8rL\ny5Onp6fatm2r0NBQXXPNNZft84fjmnOermt8cnXTytXkafJ0Y0Sudl+udleeltybq7mmbj65utEX\nHQAAAAAAQMPU5KdXAAAAAAAA96DoAAAAAAAAXIKiAwAAAAAAcAmKDgAAAAAAwCUoOgAAAAAAAJeg\n6AAAAAAAAFyCogMAAAAAAHAJig4AAAAAAMAlKDoAAAAAAACXoOgAAAAAAABcgqIDAAAAAABwCYoO\nAAAAAADAJSg6AAAAAAAAl6DoAAAAAAAAXIKiAwAAAAAAcAmKDgAAAAAAwCUoOgAAAAAAAJeg6AAA\nAAAAAFyCogMAAAAAAHAJig4AAAAAAMAlKDoAAAAAAACXoOgAAAAAAABcgqIDAAAAAABwCYoOAAAA\nAADAJSg6AADQBP3tb3+rl20OHDig3/zmNxfdLjQ0VLt3765T32rz+9//Xi+88MIlHQMAmqLLndOB\n+kTRAVUcOHBA/fv31zPPPKPx48crOztbI0aMUEREhEaNGqW9e/dKks6cOaPnnntOERERioiIUHx8\nvMrKyiRJEyZM0CuvvKIxY8bo9ttv12uvvaaXXnpJERERioqKUm5uriTpH//4h+68805FRkZq2LBh\nys7OvmDfsrOzNWzYMCUnJys8PFyhoaH617/+JUkqLy/X/Pnz7e3Lly+37xcaGqoXX3xR4eHhOnjw\noMuPX9u4Dh48qNjYWIWHh+vOO+/UW2+9VeWc//nPf9awYcMUHBys9957z6HPDQDOV1lZqYULF17y\nNgAA9yOno7Gj6IBqioqK1LFjR61YsULTp09XYmKi0tPT9eCDD2rmzJk6c+aM/vGPf+if//ynNm/e\nrL///e8qLi7W2rVr7cf49NNP9dprrykpKUmLFi3SVVddpfT0dP3617/WG2+8IUl66qmntGLFCv3j\nH//Q3LlztW3btov27dtvv1WXLl2UkZGhhx9+WPPmzZMkrVy5Ut98843eeecdvfvuu8rIyFBmZqZ9\nv8OHDysjI0Pt2rVz+fFrG9ecOXPUu3dvZWRkaMWKFZo/f74OHDggSSosLJSHh4feeecdJSQkaMmS\nJRc9FwBQmwceeEAlJSWKiIjQJ598UmPB8/xtcnNz9d133ykmJkaRkZEKCwvTu+++63DcXbt2KTo6\nWgMHDtRzzz1nb9+6dauGDRumwYMHa+LEiTp69Kiks7lv4sSJCg0N1UMPPaSSkhL7Pj8v6NZWuJX+\nr4gdERGhe++9Vz/++KMk6YUXXtDcuXM1adIk9e/fX0888YQyMzN11113qX///vY8vn//fo0ZM0Z3\n3HGHhg4dqg0bNjh+0gHARdyR0ydMmKDnnntOkZGRysnJUVFRkaZPn67w8HBFRUXplVdesW9b25eU\nmzdv1qOPPqq4uDgNGjRIDzzwgHbv3q2xY8cqKChIGzdulHT2Ovq+++5TVFSUhgwZUuXvB5oIAzhP\nbm6u0b59e6OkpMTYuXOnMXz48Crv9+rVy/jxxx+NmTNnGmvXrrW3v//++8a4ceMMwzCM8ePHG6+9\n9pphGIZx4MABo3379kZpaalhGIbxwgsvGE8++aRhGIYRFRVlPPvss8aBAwfq1Lddu3YZt912m3Hm\nzBnDMAyjqKjIaN++vVFWVmbcfffdRkZGhn3bNWvWGPHx8YZhGEZISIixdevWy3b8msZVXl5udOjQ\nwSguLra3PfLII8amTZvs5/z48eOGYRjGDz/8YNx66611OicAUJPc3FyjY8eOhmEYxsSJE43ly5cb\nhnE2J992221Gbm5ulW0MwzAmTZpkrFixwjAMw/jkk0+MLl26GOXl5dW2q01ISIgxefJk4/Tp00ZB\nQYHRq1cv4z//+Y/x448/Gt27dze++uorwzAMY/ny5ca0adMMwzCMBQsWGI8//ri9z927dzeWLl1q\nP15iYqL9+LWNIy8vz7jtttuM77//3jAMw1i1apVx3333GYZhGEuXLjUGDBhgFBQUGEePHjU6depk\nzJs3zzAMw1i/fr0RExNjGIZhTJs2zdi8ebNhGIZx5MgR4+GHHzZOnTrl0DkHAFdxR04fP368MXHi\nRKOystIwDMOYM2eOMWfOHMMwDKOwsNAYNGiQ8emnnxqlpaVGnz59jN27dxuGYRjp6enG0KFDjcrK\nSuONN94wunXrZnz33XfGqVOnjODgYGPSpEnG6dOnjW3bthkDBgwwDMMwkpOTjRdeeMEwDMMoKysz\nHnvsMePw4cP1cerQQHCnA6oxm81q2bKljh49Kj8/vyrv+fr66siRIzp69KhatWplb2/VqpWOHDli\nf92iRQv7sc5/7eHhoTNnzkiSXn75ZRUUFOiuu+5SdHS0Pvnkk4v2zc/PTyaTyf5vSSouLlZJSYmS\nkpLs0z3+/Oc/68SJE1X6Vxf1cfyaxlVUVCTDMOTr61sl1rlv+8xms3x8fKqdIwC4FBUVFdq5c6fG\njRsnSbr66qvVp08f7dq1q9q2L730kmJjYyVJt912m06dOiWbzeZQvGHDhslsNisgIEC9evXS559/\nrn/+85/q3bu32rdvL0kaO3astm3bpsrKSu3evVuRkZGSpGuuuUa9e/eucrxBgwZddBwff/yx+vTp\no+uvv16SNGrUKGVnZ+v06dOSpO7duysgIEBt2rRRYGCgBgwYIElq37698vPzJUkBAQHKyMjQl19+\nqTZt2uill16SxWJxaOwA4GqXO6cPHDhQHh5n/3fxww8/tMdt3bq1wsLC9PHHH+uLL77QVVddpdtu\nu02SFB4ersLCQuXl5UmSfv3rX+uGG26QxWLR9ddfr/79+8tsNlfLwTt27NDu3btlsVi0ePFiWa1W\nJ84QGipPd3cADVdAQICKiorsrw3D0LFjxxQQEKArr7yyyntFRUW68sorHTr+ddddp6SkJJ05c0Zv\nvfWW4uLi9NFHH11wn/NjHjt2TNLZxGe1WjVx4kSFhIQ41AdXHL+mcWVmZsrDw0PHjh2zFyiKiooU\nEBBwSf0FgAu5WMHzfB999JFefvllFRYWymQyyTAMhwug/v7+9n/7+vqquLhYhmFo9+7dioiIsL/X\nsmVLFRUV6dixY9X6dr7z8+WFxnH+fr6+vjIMQ4WFhZL+r+gt1V7gnTlzplasWKEZM2bo1KlTmjRp\nku655x6Hxg4Arna5c/r5X6r9/MtIPz8/5efnX/BLSqn2HGw2m+39uf/++3XmzBk99dRTys/P1z33\n3KNp06bZvwhE48edDqhVly5dVFBQoM8//1zS/2vv7qOqqvM9jn8OD2cY9ZBiHMsezJq6dlMxlmWi\n+BiF1BSlqDDSwzhNJHJthlKHsdSrJT7gMovSa6IsuxojOQ5ZF+wB52YiZafl1Wmm0nlyfOJgKCIw\nHPHcP1yekUSFI5u9gfdrLdeS3zl778/vcPge1pe9f1t67733dM011+j666/XiBEjVFBQoJqaGp0+\nfVr5+fkaPnx4k/f93Xff6cknn1RVVZUCAgIUERHRpMJSW1urDz/8UJJUVFSkvn376gc/+IFGjx6t\njRs3qr6+Xl6vV6+//rr+93//t9lzvtL9X2xeQUFBGjp0qO/atb///e/atWuXoqKimp0RAJqqW7du\nvobnOY01PD0ej5599lk988wzKioqUkFBgV+/7J1/nHNNVqfTqaioKBUWFvr+7dy5U927d1doaGiD\ndRwa+8X5cvP4foP8xIkTCggIULdu3Zqcu3PnzvrlL3+pDz74QK+99pqWL1+uv/zlL82ZOgAYrrVr\n+vku9gfHS/2RsqmCgoL085//XO+++67efvttFRQUaMeOHVeUF9ZC0wEX1alTJy1btkzz5s1TbGys\n1q9fr6VLl8pmsyk2NlbDhg3To48+qgcffFDXXHONHnvssSbvOywsTNHR0Ro7dqzi4uL0y1/+Ui+9\n9NJlt7vuuuv0xRdf6P7779fKlSs1e/ZsSVJSUpJ69uypBx54QLGxsdq/f7/vNK/muNL9X2pec+fO\nVWlpqWJjY5Wamqr58+fr2muvbXZGALic4OBgnTlzRrW1tRdteJ57TlVVlWpqalRdXa2+fftKknJz\ncxUcHOyX5Fx6AAAgAElEQVS7K1FTvffeezpz5oyOHTumL774QgMHDtTQoUO1a9cu352L/u///k/z\n58+XJA0YMMDX6P373/+uL774otH9XqpxO2TIkAb7f/vttzVkyBAFBTX9ZM6UlBR9++23ks5edtGl\nSxf+wgbAMsyq6ecbMWKE77jfffedPvjgA40YMeKSf6RsqhdffFGffvqppLNnDF999dXU4HbG5vV6\nvWaHAJqitLRUs2bN0gcffNAm9w8AreXMmTNKTk7WN998o+zsbK1cuVIHDx5UcHCwpk6dqvvvv7/B\nc1auXKmPPvpIBQUF6t69u5555hkVFhZq9+7dWrlypR5++GF99dVXlzzmqFGjlJiYqP/5n//Rd999\np4SEBKWmpkqSPvroI73yyivyeDzq3LmzMjIyFBkZqfLycv3iF7/QwYMHdcsttygsLEzXX3+90tLS\nNGrUKC1atEgDBw6UJB0+fFizZs26YB7S2TPTXnvtNXk8Hl1//fWaN2+err32Wr366qs6cuSIr/kb\nExOj+fPna9CgQdq1a5emT5+ujz/+WNu3b9eiRYvk8XgkSePGjfNdCw0AZjOjpicnJ2vcuHF6+OGH\nJZ09i2zOnDn64x//qICAAP3kJz/xXYb22WefKTMzU9XV1QoLC9OcOXN02223adOmTSooKPDd4e6J\nJ57QQw89pEcffVRHjhzR8OHD9fXXX+urr77Siy++qKqqKnm9Xo0aNUrTp0+n8dCO0HRAm0HTAQAA\nAADaFhaShKWkpqZq//79jT72+OOPW37/AAAAAIB/4UwHAABwWZs3b9aKFSsafeyRRx7R008/3cqJ\nAAD+oqajNdF0AAAAAAAAhuDuFQAAAAAAwBBtZk0Ht/vk5Z/0Pd26dVJFhf+3hmkpVshhhQzksF4G\nckjh4Y5WP2Z71pZr9fnI1HRWzEWmprNirsYyUatbVnNrtdnvk458/I48945+/LY494vV6nZ9pkNQ\nUKDZESRZI4cVMkjksFoGiRwwnxW/92RqOivmIlPTWTGXFTN1dGZ/Tzry8Tvy3Dv68dvT3Nt10wEA\nAAAAAJiHpgMAAAAAADAETQcAAAAAAGAImg4AAAAAAMAQbebuFQAAAEB7U1paqmnTpunWW2+VJN12\n22362c9+punTp6u+vl7h4eFavHix7Ha7CgoKlJubq4CAAI0fP14JCQnyeDyaOXOmDh06pMDAQC1Y\nsEA33HCDybMCgH+h6QAAAACY6O6779by5ct9X//qV79SUlKSxowZo6VLlyo/P1/x8fHKzs5Wfn6+\ngoODNW7cOMXExKi4uFihoaHKysrS9u3blZWVpWXLlpk4GwBoqF03HX6c/rtmb5Mzc5QBSQAALeWn\nmR83extqO4C2pLS0VHPnzpUkjRw5Ujk5Oerdu7f69esnh8MhSYqMjJTL5VJJSYni4+MlSVFRUcrI\nyGjxPP78Tu0PajXQPrXrpgMAAABgdfv27VNKSopOnDihqVOnqqamRna7XZLUvXt3ud1ulZeXKyws\nzLdNWFjYBeMBAQGy2Wyqq6vzbd+Ybt06KSgo0NhJ+SE83OHXY63BzON35Ll39OO3l7nTdAAAAABM\nctNNN2nq1KkaM2aMDhw4oMcee0z19fW+x71eb6PbNXf8fBUV1f6FNZjbfbLR8fBwx0Ufaw1mHr8j\nz72jH78tzv1iTQruXgEAAACYpEePHoqLi5PNZtONN96oq6++WidOnFBtba0k6ejRo3I6nXI6nSov\nL/dtV1ZW5ht3u92SJI/HI6/Xe8mzHACgtdF0AAAAAExSUFCg1atXS5LcbreOHTumRx99VEVFRZKk\nrVu3Kjo6WhEREdqzZ48qKyt16tQpuVwuDRw4UEOGDFFhYaEkqbi4WIMGDTJtLgDQGC6vAAAAAEwy\natQoPffcc/roo4/k8Xg0Z84c3X777ZoxY4by8vLUs2dPxcfHKzg4WOnp6Zo8ebJsNptSU1PlcDgU\nFxenHTt2KDExUXa7XZmZmWZPCQAaoOkAAAAAmKRLly5asWLFBeNr1qy5YCw2NlaxsbENxgIDA7Vg\nwQLD8gHAlWrS5RXffPON7r33Xr311luSpMOHDys5OVlJSUmaNm2a6urqJJ09PWzs2LFKSEjQxo0b\nJZ29tiw9PV2JiYmaNGmSDhw4IEn605/+pIkTJ2rixImaPXu2EXMDAAAAAAAmumzTobq6WvPmzdPg\nwYN9Y8uXL1dSUpLWr1+vXr16KT8/X9XV1crOztbatWu1bt065ebm6vjx49qyZYtCQ0O1YcMGpaSk\nKCsrS5L00ksvKSMjQ2+//baqqqr0+9//3rhZAgAAAACAVnfZpoPdbteqVavkdDp9Y6WlpRo9erQk\naeTIkSopKdHu3bvVr18/ORwOhYSEKDIyUi6XSyUlJYqJiZEkRUVFyeVyqa6uTgcPHlT//v0b7AMA\n0HJKS0t1zz33KDk5WcnJyZo3b16LnKkGAAAANNVl13QICgpSUFDDp9XU1PhuxdO9e3e53W6Vl5cr\nLCzM95ywsLALxgMCAmSz2VReXq7Q0FDfc8/t41K6deukoKDAps/MTxe7t6hV99vWMkjksFoGiRzt\n2d13363ly5f7vv7Vr36lpKQkjRkzRkuXLlV+fr7i4+OVnZ2t/Px8BQcHa9y4cYqJiVFxcbFCQ0OV\nlZWl7du3KysrS8uWLTNxNgAAAGhrrnghSa/Xe8XjF3vu+SoqqpsXzE9u98kW32d4uMOQ/ba1DOSw\nXgZydLxGR2lpqebOnSvp7FlmOTk56t27t+9MNUkNzlSLj4+XdPZMtYyMDNNyAwAAoG3yq+nQqVMn\n1dbWKiQkREePHpXT6ZTT6VR5ebnvOWVlZRowYICcTqfcbrf69Okjj8cjr9er8PBwHT9+3Pfcc/sA\nALSsffv2KSUlRSdOnNDUqVOv+Ey1uro63/aN8fesNKObP/7s34oNKStmkqyZi0xNZ8VcVswEAPCP\nX02HqKgoFRUV6eGHH9bWrVsVHR2tiIgIzZo1S5WVlQoMDJTL5VJGRoaqqqpUWFio6OhoFRcXa9Cg\nQQoODtbNN9+sXbt2aeDAgdq6dauSk5Nbem4A0KHddNNNmjp1qsaMGaMDBw7oscceU319ve/xljhT\n7fv8OSutNc5yae7+rXIG0PmsmEmyZi4yNZ0VczWWiSYEALRdl2067N27VwsXLtTBgwcVFBSkoqIi\nLVmyRDNnzlReXp569uyp+Ph4BQcHKz09XZMnT5bNZlNqaqocDofi4uK0Y8cOJSYmym63KzMzU5KU\nkZGhF198UWfOnFFERISioqIMnywAdCQ9evRQXFycJOnGG2/U1VdfrT179lzRmWqXOssBAAAA+L7L\nNh369u2rdevWXTC+Zs2aC8ZiY2MVGxvbYCwwMFALFiy44Lk/+tGPtH79+uZkBQA0Q0FBgdxutyZP\nniy3261jx47p0UcfvaIz1QAAAIDmuOKFJAEA1jRq1Cg999xz+uijj+TxeDRnzhzdfvvtmjFjxhWd\nqQYAAAA0FU0HAGinunTpohUrVlwwfqVnqgEAAABNFWB2AAAAAAAA0D7RdAAAAAAAAIag6QAAAAAA\nAAxB0wEAAAAAABiCpgMAAAAAADAETQcAAAAAAGAImg4AAAAAAMAQNB0AAAAAAIAhaDoAAAAAAABD\n0HQAAAAAAACGoOkAAAAAAAAMQdMBAAAAAAAYgqYDAAAAAAAwBE0HAAAAAABgCJoOAAAAgIlqa2t1\n7733atOmTTp8+LCSk5OVlJSkadOmqa6uTpJUUFCgsWPHKiEhQRs3bpQkeTwepaenKzExUZMmTdKB\nAwfMnAYANIqmAwAAAGCiN954Q1dddZUkafny5UpKStL69evVq1cv5efnq7q6WtnZ2Vq7dq3WrVun\n3NxcHT9+XFu2bFFoaKg2bNiglJQUZWVlmTwTALgQTQcAAADAJPv379e+ffs0YsQISVJpaalGjx4t\nSRo5cqRKSkq0e/du9evXTw6HQyEhIYqMjJTL5VJJSYliYmIkSVFRUXK5XGZNAwAuKsjsAAAAAEBH\ntXDhQr3wwgvavHmzJKmmpkZ2u12S1L17d7ndbpWXlyssLMy3TVhY2AXjAQEBstlsqqur821/Md26\ndVJQUKBBM/JfeLjDr8dag5nH78hz7+jHby9zp+kAAAAAmGDz5s0aMGCAbrjhhkYf93q9LTL+fRUV\n1U0L2Mrc7pONjoeHOy76WGsw8/gdee4d/fhtce4Xa1LQdAAAAABMsG3bNh04cEDbtm3TkSNHZLfb\n1alTJ9XW1iokJERHjx6V0+mU0+lUeXm5b7uysjINGDBATqdTbrdbffr0kcfjkdfrvexZDgDQ2ljT\nAQAAADDBsmXL9M477+g3v/mNEhISNGXKFEVFRamoqEiStHXrVkVHRysiIkJ79uxRZWWlTp06JZfL\npYEDB2rIkCEqLCyUJBUXF2vQoEFmTgcAGsWZDgAAAIBFpKWlacaMGcrLy1PPnj0VHx+v4OBgpaen\na/LkybLZbEpNTZXD4VBcXJx27NihxMRE2e12ZWZmmh0fAC7gV9Ph1KlTmjFjhk6cOCGPx6PU1FSF\nh4drzpw5kqR/+7d/09y5cyVJb775pgoLC2Wz2TR16lQNHz5cJ0+eVHp6uk6ePKlOnTopKytLXbt2\nbbFJAQAAAG1JWlqa7/9r1qy54PHY2FjFxsY2GAsMDNSCBQsMzwYAV8KvpsNvf/tb9e7dW+np6Tp6\n9Kgef/xxhYeHKyMjQ/3791d6erp+//vf6+abb9b777+vt99+W1VVVUpKStLQoUOVm5uru+++Wz/7\n2c+Ul5enVatW6fnnn2/puQEAJNXW1urBBx/UlClTNHjwYE2fPl319fUKDw/X4sWLZbfbVVBQoNzc\nXAUEBGj8+PFKSEiQx+PRzJkzdejQId8vthdb7AwAAABojF9rOnTr1k3Hjx+XJFVWVqpr1646ePCg\n+vfvL+lf9xQuLS1VdHS07Ha7wsLCdN1112nfvn0N7il87rkAAGO88cYbuuqqqyRJy5cvV1JSktav\nX69evXopPz9f1dXVys7O1tq1a7Vu3Trl5ubq+PHj2rJli0JDQ7VhwwalpKQoKyvL5JkAAACgrfHr\nTIcHHnhAmzZtUkxMjCorK/XGG2/oP//zP32Pn7uncNeuXS97T+Hu3burrKzsssdsrfsJG3UvVLPv\nsWqVDBI5rJZBIkd7tn//fu3bt08jRoyQJJWWlvoufxs5cqRycnLUu3dv9evXTw7H2dc/MjJSLpdL\nJSUlio+PlyRFRUUpIyPDlDkAAACg7fKr6fC73/1OPXv21OrVq/WnP/3Jt5jNOc25d7DV7idsxL1Q\nzb7HqlUykMN6GcjR/hsdCxcu1AsvvKDNmzdLkmpqany3UzvXID6/ESw13iAOCAiQzWZTXV3dJW/H\n5m+D2Ojvgz/7t+J7w4qZJGvmIlPTWTGXFTMBAPzjV9PB5XJp6NChkqQ+ffron//8p06fPu17/Px7\nCv/lL39pdNztdsvhcPjGAAAta/PmzRowYMBF12FoToP4UuPn86dB3BoNp+bu3yrNuPNZMZNkzVxk\najor5mosE00IAGi7/FrToVevXtq9e7ck6eDBg+rcubNuueUW7dq1S9K/7il8zz33aNu2baqrq9PR\no0dVVlamH/3oRw3uKXzuuQCAlrVt2zZ99NFHGj9+vDZu3KjXX39dnTp1Um1traSGjeDy8nLfdmVl\nZQ0axJLk8Xjk9XoveZYDAAAA8H1+nekwYcIEZWRkaNKkSTp9+rTmzJmj8PBwvfjiizpz5owiIiIU\nFRUlSRo/frwmTZokm82mOXPmKCAgQMnJyXr++eeVlJSk0NBQLV68uEUnBQCQli1b5vv/q6++quuu\nu05ffvmlioqK9PDDD/uavhEREZo1a5YqKysVGBgol8uljIwMVVVVqbCwUNHR0SouLtagQYNMnA0A\nAADaIr+aDp07d9Yrr7xywfj69esvGEtOTlZycvIF27/++uv+HBoAcAXS0tI0Y8YM5eXlqWfPnoqP\nj1dwcLDS09M1efJk2Ww23zo9cXFx2rFjhxITE2W325WZmWl2fAAAALQxfjUdAABtS1pamu//a9as\nueDx2NhYxcbGNhgLDAzUggULDM8GAACA9suvNR0AAAAAAAAuh6YDAAAAAAAwBE0HAAAAAABgCJoO\nAAAAAADAEDQdAAAAAACAIWg6AAAAAAAAQ9B0AAAAAAAAhqDpAAAAAAAADEHTAQAAAAAAGIKmAwAA\nAAAAMARNBwAAAAAAYAiaDgAAAAAAwBA0HQAAAAAAgCFoOgAAAAAAAEPQdAAAAAAAAIag6QAAAAAA\nAAwRZHYAAAAAoKOqqanRzJkzdezYMf3zn//UlClT1KdPH02fPl319fUKDw/X4sWLZbfbVVBQoNzc\nXAUEBGj8+PFKSEiQx+PRzJkzdejQIQUGBmrBggW64YYbzJ4WAPhwpgMAAABgkuLiYvXt21dvvfWW\nli1bpszMTC1fvlxJSUlav369evXqpfz8fFVXVys7O1tr167VunXrlJubq+PHj2vLli0KDQ3Vhg0b\nlJKSoqysLLOnBAAN0HQAAAAATBIXF6ennnpKknT48GH16NFDpaWlGj16tCRp5MiRKikp0e7du9Wv\nXz85HA6FhIQoMjJSLpdLJSUliomJkSRFRUXJ5XKZNhcAaAyXVwAAAAAmmzhxoo4cOaIVK1boySef\nlN1ulyR1795dbrdb5eXlCgsL8z0/LCzsgvGAgADZbDbV1dX5tgcAs9F0AAAAAEz29ttv649//KOe\nf/55eb1e3/j5/z9fc8fP161bJwUFBfoX1EDh4Q6/HmsNZh6/I8+9ox+/vcydpgMAAABgkr1796p7\n9+669tprdfvtt6u+vl6dO3dWbW2tQkJCdPToUTmdTjmdTpWXl/u2Kysr04ABA+R0OuV2u9WnTx95\nPB55vd7LnuVQUVFt9LT84nafbHQ8PNxx0cdag5nH78hz7+jHb4tzv1iTwu81HQoKCvTQQw/p0Ucf\n1bZt23T48GElJycrKSlJ06ZNU11dne95Y8eOVUJCgjZu3ChJ8ng8Sk9PV2JioiZNmqQDBw74GwMA\nAABos3bt2qWcnBxJUnl5uaqrqxUVFaWioiJJ0tatWxUdHa2IiAjt2bNHlZWVOnXqlFwulwYOHKgh\nQ4aosLBQ0tlFKQcNGmTaXACgMX6d6VBRUaHs7Gy98847qq6u1quvvqqioiIlJSVpzJgxWrp0qfLz\n8xUfH6/s7Gzl5+crODhY48aNU0xMjIqLixUaGqqsrCxt375dWVlZWrZsWUvPDQA6NG7DBgDWN3Hi\nRP36179WUlKSamtr9eKLL6pv376aMWOG8vLy1LNnT8XHxys4OFjp6emaPHmybDabUlNT5XA4FBcX\npx07digxMVF2u12ZmZlmTwkAGvCr6VBSUqLBgwerS5cu6tKli+bNm6dRo0Zp7ty5ks6uspuTk6Pe\nvXv7VtmV1GCV3fj4eElnV9nNyMhooekAAM45dxu2p556SgcPHtRPf/pTRUZG0iAGAAsJCQlp9DaX\na9asuWAsNjZWsbGxDcbONYUBwKr8ajr84x//UG1trVJSUlRZWam0tDTV1NQYuspuay14Y9RiHWYv\nAmKVDBI5rJZBIkd7FRcX5/v/+bdho0EMAACA1uL3QpLHjx/Xa6+9pkOHDumxxx4zfJXd1lrwxojF\nOsxeBMQqGchhvQzk6BiNjta8DZu/DWKjvw/+7N+K7w0rZpKsmYtMTWfFXFbMBADwj19Nh+7du+vO\nO+9UUFCQbrzxRnXu3FmBgYGGrrILAPBPa96GzZ8GcWs0nPxZfdkKzbjzWTGTZM1cZGo6K+ZqLBNN\nCABou/y6e8XQoUO1c+dOnTlzRhUVFayyCwAWtHfvXh0+fFiSLrgNm6RLNojPjbvdbkmiQQwAAAC/\n+NV06NGjh+6//36NHz9eTz31lGbNmqW0tDRt3rxZSUlJOn78uOLj4xUSEuJbZffJJ59ssMrumTNn\nlJiYqP/+7/9Wenp6S88LADo8bsMGAAAAs/m9psPEiRM1ceLEBmOssgsA1sFt2AAAAGA2v5sOAABr\n4zZsAAAAMJtfl1cAAAAAAABcDk0HAAAAAABgCJoOAAAAAADAEDQdAAAAAACAIWg6AAAAAAAAQ9B0\nAAAAAAAAhqDpAAAAAAAADEHTAQAAAAAAGIKmAwAAAAAAMARNBwAAAAAAYAiaDgAAAAAAwBBBZgcA\nAHRsP07/ndkRAAAAYBDOdAAAAAAAAIbgTAcAQLv308yPm71NzsxRBiQBAADoWDjTAQAAAAAAGIKm\nAwAAAAAAMARNBwAAAAAAYAiaDgAAAAAAwBA0HQAAAAAAgCG4ewUAAABgokWLFumLL77Q6dOn9fTT\nT6tfv36aPn266uvrFR4ersWLF8tut6ugoEC5ubkKCAjQ+PHjlZCQII/Ho5kzZ+rQoUMKDAzUggUL\ndMMNN5g9JQDwoekAAAAAmGTnzp369ttvlZeXp4qKCj3yyCMaPHiwkpKSNGbMGC1dulT5+fmKj49X\ndna28vPzFRwcrHHjxikmJkbFxcUKDQ1VVlaWtm/frqysLC1btszsaQGAD5dXAAAAACa566679Mor\nr0iSQkNDVVNTo9LSUo0ePVqSNHLkSJWUlGj37t3q16+fHA6HQkJCFBkZKZfLpZKSEsXExEiSoqKi\n5HK5TJsLADSGMx0AAAAAkwQGBqpTp06SpPz8fA0bNkzbt2+X3W6XJHXv3l1ut1vl5eUKCwvzbRcW\nFnbBeEBAgGw2m+rq6nzbN6Zbt04KCgo0cFb+CQ93+PVYazDz+B157h39+O1l7lfUdKitrdWDDz6o\nKVOmaPDgwVx7BgAWw3XCANA2fPjhh8rPz1dOTo7uu+8+37jX6230+c0dP19FRbV/IQ3mdp9sdDw8\n3HHRx1qDmcfvyHPv6Mdvi3O/WJPiii6veOONN3TVVVdJkpYvX66kpCStX79evXr1Un5+vqqrq5Wd\nna21a9dq3bp1ys3N1fHjx7VlyxaFhoZqw4YNSklJUVZW1pXEAAA04vzrhN988029/PLL1GoAsKBP\nPvlEK1as0KpVq+RwONSpUyfV1tZKko4ePSqn0ymn06ny8nLfNmVlZb5xt9stSfJ4PPJ6vZc8ywEA\nWpvfTYf9+/dr3759GjFihCRx7RkAWAzXCQOA9Z08eVKLFi3SypUr1bVrV0lna25RUZEkaevWrYqO\njlZERIT27NmjyspKnTp1Si6XSwMHDtSQIUNUWFgoSSouLtagQYNMmwsANMbvyysWLlyoF154QZs3\nb5Yk1dTUtItrz4y6bsbs63GskkEih9UySORor7hO+MpY8f1oxUySNXORqemsmMuKmYzy/vvvq6Ki\nQs8++6xvLDMzU7NmzVJeXp569uyp+Ph4BQcHKz09XZMnT5bNZlNqaqocDofi4uK0Y8cOJSYmym63\nKzMz08TZAMCF/Go6bN68WQMGDLjotb1t+dozI66bMft6HKtkIIf1MpCjY/xiy3XC/rHCz8X5rPKz\n+n1WzEWmprNirsYytedaPWHCBE2YMOGC8TVr1lwwFhsbq9jY2AZj59bcAQCr8qvpsG3bNh04cEDb\n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\n5mZqrc+A5uY6h8+E1md2rTa7JptZf82qsWbWU7Prptk10uxaeOrUKe+kSZO8s2bNavTnp6W/923+\n8orw8HC99tprcjgcjT6+e/du9evXTw6HQyEhIYqMjJTL5VJJSYliYmIkne0SuVwuvzM0Z1+rV6/W\n448/roCAln/p/Z1TS74WTdnfD3/4QxUUFKhLly6y2Wzq2rWrjh8/fkXHPP/Y9957ryTplltu0YkT\nJ1RVVSXpbJfwqquu0rXXXquAgAANHz5cJSUll9zGiByStGnTJl1zzTWSpLCwMFVUVFzR8fzJ0FLb\ntFSO3/72t7r//vvVuXPnKzoerMcKdboxVqnd/mZqie1aKpeRdb2xLFao803NJLVOzW9uppbaxqhc\nfCa0PrNrtdk12cz6a1aNNbOeml03za6RZtdCu92uVatWyel0XvCYEd/7Nt90+OEPf+g77aUx5eXl\nCgsL830dFhYmt9vdYDwgIEA2m011dXV+ZWjqvmpra7V9+3aNHj3aN1ZYWKgnn3xSTz/9tA4cOODX\n8ZuTo66uTunp6Zo4caLWrFnTrPwtmePc/aO//vprHTx4UBEREZLOntY3efJkPf744/rqq6/8Ona3\nbt18X5/7fkuS2+2+6HvhYtv463L7PDf/srIyffrppxo+fLiks6cKpqSkKDExUZ9++qmhGSRp9uzZ\nSkxM1JIlS+T1ek15Lc7ZuHGjxo0b5/v6St8LsA4r1OnLHdfM2t3cTK1Rx/3JZVRdbyyLFep8UzNJ\nrVPzm5tJap3PAH9ySXwmmMHsWm12TTaz/ppVY82sp2bXTbNrpNm1MCgoSCEhIY0+ZsT3vk2t6bBx\n40Zt3LixwVhaWpqio6ObvA/vRe4QerHxpmTYvXt3k/b14YcfasSIEb6u7PDhw3XPPfforrvu0nvv\nvaf58+dr5cqVhuaYPn26HnroIdlsNk2aNEkDBw684DlNfS2uJIck/fWvf9Vzzz2nrKwsBQcHKyIi\nQmFhYRoxYoS+/PJLzZgxQ++++26TszSmOXO5km382eexY8eUkpKi2bNnq1u3brrppps0depUjRkz\nRgcOHNBjjz2mrVu3ym63G5LhP/7jPxQdHa2rrrpKqampKioqalLuls4hSV9++aVuvvlm3weMEe8F\ntA4r1Omm5jKjdrdEppau4y2VS2qduv59Vqnzl9t/a9f8y2Uy6zOgKcfgM8F4Ztdqs2uymfXXyjXW\nzHpqdt00u0a2xVrYnPm3qaZDQkJCsxeGcTqdKi8v931dVlamAQMGyOl0yu12q0+fPvJ4PPJ6vU16\nwzaWYebMmU3aV3FxsRITE31ff3+xkiVLljR5Xv7mOP/499xzj7755hu/X4sryXHkyBGlpqZq0aJF\nuv322yWdPU3nlltukSTdeeed+u6771RfX3/Jrvv3Nfb9Dg8Pb/Sxo0ePyul0Kjg4+KLb+OtSOSSp\nqqpKTz31lJ599lkNHTpUktSjRw/FxcVJkm688UZdffXVOnr0qN+LwV0uQ3x8vO//w4YN870XWvu1\nkKRt27Zp8ODBvq9b4r0Ac1ihTjc1lxm1uyUytXQdb6lcRtX177NKnW9qJql1an5zM7XWZ0Bzc0l8\nJrQGs2u12TXZzPprpRprZj01u26aXSOtXAuN+N63+csrLiciIkJ79uxRZWWlTp06JZfLpYEDB2rI\nkCEqLCyUdLZ4DRo0yO9jNHVfe/fuVZ8+fXxfz58/X7t27ZJ09lSZcyuxGpXjz3/+s9LT0+X1enX6\n9Gm5XC7deuutLfpaNCWHJP3617/WnDlzdMcdd/jGVq1apS1btkg6u5pqWFhYs3+IhgwZ4utE/uEP\nf5DT6fR1B6+//npVVVXpH//4h06fPq3i4mINGTLkktv463L7zMzM1OOPP65hw4b5xgoKCrR69WpJ\nZ09rOnbsmG8l5pbOcPLkSU2ePNl36t7nn3/uey+09mshSXv27Gnws9ES7wW0Ha1RpxtjldrdnEyt\nVcebm0syrq43lsUKdb6pmaTWqfnNydSanwHNyXUOnwnWZHStNrsmm1l/zaqxZtZTs+um2TXSyrXQ\niO+9zdsa584ZaNu2bVq9erX+/Oc/KywsTOHh4crJydF//dd/6a677tKdd96pwsJCrV692ncq1EMP\nPaT6+nrNmjVLf/3rX2W325WZmalrr73WrwwX29f5GSRp8ODBKikp8W339ddfa/bs2QoKCpLNZtP8\n+fPVq1cvv1+LpuRYvHixdu7cqYCAAI0aNUrPPPNMi74WTcnRtWtXxcfHN+hMP/HEE7rjjjv0/PPP\n+4q5v7ehWbJkiXbt2iWbzabZs2frq6++ksPhUExMjD7//HNfB/y+++7T5MmTG93m/B9wf10sx9Ch\nQxu8LyTpwQcf1AMPPKDnnntOlZWV8ng8mjp1qu/6tZbOEBMTo9zcXG3evFk/+MEP9O///u964YUX\nZLPZWvW1OLdo0o9//GOtWbNGV199taSz3fyWeC/AGqxQpxtjldrd3EytUcebm8vouv59VqnzTcnU\nmjW/qZla+zOgObkkPhPMYnatNrsmm1l/zayxZtZTs+um2TXSzFp47ha0Bw8eVFBQkHr06KFRo0bp\n+uuvN+R73+abDgAAAAAAwJra/eUVAAAAAADAHDQdAAAAAACAIWg6AAAAAAAAQ9B0AAAAAAAAhqDp\nAAAAAAAADEHTAQAAAAAAGIKmAwAAAAAAMMT/A4jNEunDR20pAAAAAElFTkSuQmCC\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": "text",
+ "id": "OMoIsUMmzK9b"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "These are only a few ways in which we could think about the data. Other transformations may work even better!\n",
+ "\n",
+ "`households`, `median_income` and `total_bedrooms` all appear normally-distributed in a log space.\n",
+ "\n",
+ "`latitude`, `longitude` and `housing_median_age` would probably be better off just scaled linearly, as before.\n",
+ "\n",
+ "`population`, `totalRooms` and `rooms_per_person` have a few extreme outliers. They seem too extreme for log normalization to help. So let's clip them instead."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "XDEYkPquzYCH",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 671
+ },
+ "outputId": "47070cb1-1684-473f-fc6a-85c573427d6b"
+ },
+ "cell_type": "code",
+ "source": [
+ "def normalize(examples_dataframe):\n",
+ " \"\"\"Returns a version of the input `DataFrame` that has all its features normalized.\"\"\"\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.AdagradOptimizer(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": 16,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 81.87\n",
+ " period 01 : 76.41\n",
+ " period 02 : 73.79\n",
+ " period 03 : 72.50\n",
+ " period 04 : 72.98\n",
+ " period 05 : 71.89\n",
+ " period 06 : 70.80\n",
+ " period 07 : 70.38\n",
+ " period 08 : 69.41\n",
+ " period 09 : 69.17\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 69.17\n",
+ "Final RMSE (on validation data): 69.51\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAGACAYAAACDX0mmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd8FHX+x/HXbnpPSE/oIB2SSK9J\n6M1TLOipyNnuTsTz1DvbD71ivaJ3oKDenZ6KdxYQxAIivRM6oaO0VJKQ3pPdnd8fyJ5ICAGy2YW8\nn49HHg92JzPz2f1skjff+c6MyTAMAxEREREXZHZ2ASIiIiLno6AiIiIiLktBRURERFyWgoqIiIi4\nLAUVERERcVkKKiIiIuKy3J1dgIgr6Ny5M61bt8bNzQ0Aq9VK3759mTFjBr6+vpe83U8++YTJkyef\n8/yCBQt46qmnePPNN0lOTrY/X1VVxaBBgxg9ejQvv/zyJe+3odLS0njxxRc5duwYAD4+PkyfPp2R\nI0c6fN8XY86cOaSlpZ3znqSkpHDvvffSsmXLc9b5+uuvm6q8y5KRkcGIESNo164dAIZhEBYWxv/9\n3//RrVu3i9rWK6+8QkxMDD/96U8bvM6iRYuYP38+c+fOvah9iTQVBRWR782dO5eoqCgAampqeOSR\nR3jrrbd45JFHLml7eXl5/Otf/6ozqABER0fz5ZdfnhVUVq1aRWBg4CXt71L85je/4frrr+fNN98E\nYPfu3UydOpUlS5YQHR3dZHVcjujo6CsmlJyPm5vbWa9h8eLFPPjggyxduhRPT88Gb+exxx5zRHki\nTqVDPyJ18PT0ZOjQoRw4cACA6upqnn32WcaMGcO4ceN4+eWXsVqtABw8eJDbbruNsWPHcv3117Nu\n3ToAbrvtNrKyshg7diw1NTXn7OPaa68lJSWFyspK+3OLFy9m8ODB9sc1NTU8//zzjBkzhuHDh9sD\nBcDOnTu58cYbGTt2LOPHj2fjxo3A6f+hDxkyhPfff5/rrruOoUOHsnjx4jpf5+HDh4mLi7M/jouL\nY+nSpfbA9vrrr5OYmMgNN9zAP/7xD4YPHw7Ak08+yZw5c+zr/fDxhep68cUXufPOOwHYvn07N910\nE6NGjWLy5Mmkp6cDp0eWfv3rX5OcnMydd97JyZMnL9Cxui1YsIDp06czdepU/vznP5OSksJtt93G\n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\nbuqFu5uZNxftIyO3zNklioiI2F3w9OTa2lqqq6vx9/e3P7d+/XqGDBni8OJ0erLjZJfn8Lftb1Bh\nqeS+nlOoORXOm4v2ERrozYypfQjy83Rabc29N65MvXFN6ovrUm8a5pJPT87KyiIvL4+SkhKysrLs\nX+3btycrK6vRC5WmE+0XybT4e/B08+Dfe/9DYGQJk4a2I7+kitc/TaXWohsYioiI89V7Zdrhw4fT\nrl07wsPDgXNvSvj+++87tjpxqLaBrflFz58xZ/fbvLXnPX4Vdz/ZBZFs3pfDO4sP8vPrumnStIiI\nOFW9QeVPf/oTixYtory8nAkTJjBx4sSzLokvV77OLTpyT487+OeeubyR+m+mD/s5p4qqSNmfQ3QL\nX34yRPdjEhER56n30M/111/PO++8w9///nfKysq44447uO+++/jiiy+oqqpqqhrFweLCe3BH11so\nt1Tw5p53uH18LGFB3ny2/hgp+3OcXZ6IiDRj9QaVM6Kjo5k2bRpLlixhzJgxPP/8800ymVaazsDo\nPtx0zXUU15Tw78Pvce/17fH2dOPtrw5wJLPY2eWJiEgz1aCgUlJSwgcffMCNN97IBx98wC9+8QsW\nL17s6NqkiQ1vNZRxbUdwqjKfTzM+5J7rOmK12Xjt01ROFeu6OSIi0vTqnaOyfv16Pv30U/bu3cvo\n0aN5+eWX6dSpU1PVJk4wod1oymsrWZu5kTVun3HL8HF8suI4s+an8tSdvfHxqvcjIyIi0qjqvY5K\nly5daNu2LXFxcZjN5w6+vPTSSw4tTtdRcQ6bYeO9/R+xLWcXXVt0IiB3EGt2nCSuQygP3dQLs9mx\nZwKpN65LvXFN6ovrUm8apr7rqNT73+Mzpx8XFhYSEhJy1rKMDN0b5mplNpm5q+utVFmq2Jt/kIRo\nb7q168buI/l8suo7bhtxjbNLFBGRZqLeOSpms5nHHnuMZ555hmeffZbIyEj69evH4cOH+fvf/95U\nNYoTuJnduLfHFDoGt2NnXioRPY4QFerDN1vTWb0r09nliYhIM1HviMrf/vY33n33XTp06MCKFSt4\n9tlnsdlsBAUFMW/evKaqUZzE082DX/b6GTN3vEVKzlYGD/KibHkI//nmMBHBPnRrq2vqiIiIY11w\nRKVDhw4AjBgxgszMTO666y5ef/11IiMjm6RAcS4fdx8ejL+PCN8wNuSsZ0BSGSYTzFm4l+z8cmeX\n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\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": "text",
+ "id": "1hwaFCE71OPZ"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "It's a good idea to keep latitude and longitude normalized:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "djKtt4mz1ZEc",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 671
+ },
+ "outputId": "9a9e10c8-9be9-4518-df00-cad497801f05"
+ },
+ "cell_type": "code",
+ "source": [
+ "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": 17,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 108.90\n",
+ " period 01 : 106.11\n",
+ " period 02 : 104.79\n",
+ " period 03 : 103.24\n",
+ " period 04 : 101.96\n",
+ " period 05 : 101.75\n",
+ " period 06 : 100.73\n",
+ " period 07 : 100.76\n",
+ " period 08 : 100.05\n",
+ " period 09 : 99.91\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 99.91\n",
+ "Final RMSE (on validation data): 99.54\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd0VNXexvHvTCa9EVIgEHrvCUWl\nE2qkSG/BiL2i2K7lveJ9Fa/CVVFR4FquIh3p0qSDgEgLLZgQOiEECIQkkF7O+4fXvKIQQ9pMkuez\nlms5Mzl7/2Z2ZuVhn33ONhmGYSAiIiJShpitXYCIiIjInVKAERERkTJHAUZERETKHAUYERERKXMU\nYERERKTMUYARERGRMsdi7QJEbFmjRo2oWbMmdnZ2AOTk5NCuXTveeOMNXFxcCt3ud999x4gRI/70\n/NKlS3n99df597//TXBwcN7z6enpdOjQgd69ezNp0qRC91tQ586d49133+X06dMAODs7M27cOHr2\n7Fnifd+J6dOnc+7cuT99Jrt37+aRRx4hICDgT8f88MMPpVVekZw/f54ePXpQp04dAAzDwMfHh7//\n/e80bdr0jtr68MMPqVatGqNHjy7wMStWrGDx4sXMnj37jvoSKS0KMCJ/Yfbs2VStWhWAzMxMXnjh\nBT7//HNeeOGFQrUXHx/PV199dcsAA+Dv78+qVatuCjBbtmzBw8OjUP0Vxssvv8zAgQP597//DcCh\nQ4cYO3Ysa9euxd/fv9TqKAp/f/8yE1Zux87O7qb3sGbNGp555hnWrVuHg4NDgdt56aWXSqI8EavS\nKSSRO+Dg4EDnzp2JjIwEICMjgzfffJM+ffpw7733MmnSJHJycgCIiopi1KhRhISEMHDgQLZv3w7A\nqFGjuHDhAiEhIWRmZv6pj9atW7N7927S0tLynluzZg0dO3bMe5yZmck777xDnz596N69e17QADhw\n4ABDhgwhJCSEvn378tNPPwG//ou+U6dOzJo1iwEDBtC5c2fWrFlzy/cZHR1Nq1at8h63atWKdevW\n5QW5zz77jK5duzJo0CC++OILunfvDsBrr73G9OnT8477/eO/quvdd9/l/vvvB2D//v0MHTqUXr16\nMWLECGJiYoBfZ6Kef/55goODuf/++7l48eJfjNitLV26lHHjxjF27Fj+9a9/sXv3bkaNGsX48ePz\n/tivXbuW/v37ExISwgMPPMC5c+cA+PTTT3njjTcYNmwYM2fOvKnd8ePH8/XXX+c9joyMpFOnTuTm\n5vLRRx/Rp08f+vTpwwMPPMClS5fuuO6+ffuSnp7OqVOnAFi4cCEhISF0796dF198kfT0dODXz/29\n995jwIABrF279qZxuN3vZW5uLm+//TbdunVj2LBhREVF5fW7Z88eBg8eTN++fbn33ntZu3btHdcu\nUuwMEbmthg0bGnFxcXmPExMTjTFjxhjTp083DMMwPv/8c+Oxxx4zsrKyjLS0NGPo0KHG8uXLjZyc\nHOPee+81Vq5caRiGYRw+fNho166dcf36dePnn382evbsecv+lixZYrz66qvGyy+/nHfs9evXjR49\nehiLFi0yXn31VcMwDOOzzz4zxo4da2RkZBgpKSnGoEGDjM2bNxuGYRj9+/c3Vq1aZRiGYSxbtiyv\nr5iYGKNp06bG7NmzDcMwjDVr1hi9evW6ZR3PPvusERwcbHz77bfGiRMnbnrt2LFjRtu2bY3Lly8b\nWVlZxlNPPWUEBwcbhmEYr776qjFt2rS8n/394/zqatasmbF06dK899uuXTtjx44dhmEYxsqVK43B\ngwcbhmEYc+bMMcaMGWNkZWUZCQkJRnBwcN5n8nv5fca/fc6BgYHG6dOn836+RYsWxk8//WQYhmHE\nxsYabdq0Mc6cOWMYhmH85z//McaOHWsYhmFMnTrV6NSpk3H16tU/tbt69WpjzJgxeY8/+eQTY+LE\niUZ0dLTRu3dvIzMz0zAMw5g1a5axbNmy29b32+fSpEmTPz3frl074+TJk8bevXuN9u3bGxcvXjQM\nwzAmTJhgTJo0yTCMXz/3AQMGGOnp6XmPp02blu/v5datW43evXsbN27cMNLS0oxhw4YZ999/v2EY\nhjFkyBBj9+7dhmEYxunTp40XX3wx39pFSoNmYET+QlhYGCEhIfTo0YMePXpwzz338NhjjwGwdetW\nRowYgcViwcnJiQEDBrBz507Onz/PlStX6NevHwAtWrSgWrVqHDlypEB99uvXj1WrVgGwceNGgoOD\nMZv//+u6ZcsWQkNDcXBwwMXFhYEDB7J+/XoAli9fzr333gtAmzZt8mYvALKzsxkyZAgAzZo148KF\nC7fs//3332fMmDGsXLmS/v370717d+bPnw/8OjvSrl07fH19sVgs9O/fv0DvKb+6srKy6NWrV177\n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\nYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "Dw2Mr9JZ1cRi"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "This isn't too bad for just two features. Of course, property values can still vary significantly within short distances."
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/intro_to_neural_nets.ipynb b/intro_to_neural_nets.ipynb
new file mode 100644
index 0000000..0783e84
--- /dev/null
+++ b/intro_to_neural_nets.ipynb
@@ -0,0 +1,1161 @@
+{
+ "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": 1209
+ },
+ "outputId": "a92924d9-7a80-42c3-c7de-3c2a9fb36749"
+ },
+ "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.7 2634.9 538.2 \n",
+ "std 2.1 2.0 12.6 2206.3 425.8 \n",
+ "min 32.5 -124.3 1.0 2.0 1.0 \n",
+ "25% 33.9 -121.8 18.0 1444.0 294.0 \n",
+ "50% 34.2 -118.5 29.0 2109.5 431.0 \n",
+ "75% 37.7 -118.0 37.0 3135.2 644.0 \n",
+ "max 42.0 -114.3 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 1421.5 499.8 3.9 2.0 \n",
+ "std 1164.3 389.1 1.9 1.1 \n",
+ "min 3.0 1.0 0.5 0.0 \n",
+ "25% 782.0 279.0 2.6 1.5 \n",
+ "50% 1161.0 406.0 3.5 1.9 \n",
+ "75% 1714.0 601.0 4.8 2.3 \n",
+ "max 35682.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": 671
+ },
+ "outputId": "6c68afe2-a6e5-468d-cfa8-6507ac5ed7ad"
+ },
+ "cell_type": "code",
+ "source": [
+ "dnn_regressor = train_nn_regression_model(\n",
+ " learning_rate=0.01,\n",
+ " steps=500,\n",
+ " batch_size=10,\n",
+ " hidden_units=[10, 2],\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": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 182.41\n",
+ " period 01 : 216.21\n",
+ " period 02 : 178.61\n",
+ " period 03 : 174.19\n",
+ " period 04 : 180.45\n",
+ " period 05 : 171.34\n",
+ " period 06 : 170.94\n",
+ " period 07 : 177.86\n",
+ " period 08 : 181.41\n",
+ " period 09 : 212.58\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 212.58\n",
+ "Final RMSE (on validation data): 206.98\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGACAYAAACz01iHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xl0W+WZP/CvVsuyJXl3vMS7swKB\nQFrWhiSEmO2wLwVSSintDNCF0kJ7hjK/DgyltKUDBQpth7bQc6YMGdaWrQzQQlsCNJmUJN43ed+0\nWpas7f39YUuxratrObFWfz/ncE6sey091jVHj+/7vM+jEEIIEBEREaURZbIDICIiIloqJjBERESU\ndpjAEBERUdphAkNERERphwkMERERpR0mMERERJR21MkOgCiVrV27FlVVVVCpVACAQCCALVu24O67\n74Zerz/q5/3v//5vXHXVVRGPP//88/jOd76DJ554Atu2bQs/7vF4cPrpp+Pcc8/FAw88cNSvGyuz\n2Yz7778f3d3dAIDs7GzcdtttOOecc+L+2kvx+OOPw2w2R7wne/fuxU033YTKysqI73n99dcTFd4x\n6e/vx44dO1BbWwsAEEKgqKgI//Iv/4INGzYs6bl+/OMfo7y8HJ/97Gdj/p6XXnoJe/bswTPPPLOk\n1yJKFCYwRIt45plnsGrVKgCA1+vF7bffjieffBK33377UT3f2NgYfvnLX0omMABQVlaG3//+9/MS\nmHfeeQdGo/GoXu9ofPOb38TFF1+MJ554AgBw4MAB3HDDDXjttddQVlaWsDiORVlZWdokK9GoVKp5\nP8Orr76KW2+9FW+88Qa0Wm3Mz3PHHXfEIzyipOISEtESaLVanHXWWWhubgYATE9P45577sGuXbtw\n3nnn4YEHHkAgEAAAtLS04JprrkFTUxMuvvhivPfeewCAa665BoODg2hqaoLX6414jc2bN2Pv3r1w\nu93hx1599VWcccYZ4a+9Xi/uu+8+7Nq1C9u3bw8nGgCwf/9+XHbZZWhqasL555+Pv/71rwBm/qI/\n88wz8fTTT+Oiiy7CWWedhVdffVXy52xra8OmTZvCX2/atAlvvPFGOJF79NFHsXXrVlxyySX4+c9/\nju3btwMAvv3tb+Pxxx8Pf9/crxeL6/7778f1118PAPj73/+Oyy+/HDt37sRVV12Fvr4+ADN3or7+\n9a9j27ZtuP766zE8PLzIFZP2/PPP47bbbsMNN9yABx98EHv37sU111yDr33ta+EP+9deew0XXngh\nmpqa8LnPfQ5msxkA8NOf/hR33303rrjiCvz617+e97xf+9rX8NRTT4W/bm5uxplnnolgMIif/OQn\n2LVrF3bt2oXPfe5zGBkZWXLc559/PjweD7q6ugAAzz77LJqamrB9+3Z84xvfgMfjATDzvn//+9/H\nRRddhNdee23edYj2exkMBvFv//ZvOPvss3HFFVegpaUl/LoffvghLr30Upx//vk477zz8Nprry05\ndqJlJ4goqjVr1oihoaHw1zabTVx33XXi8ccfF0II8eSTT4qbb75Z+Hw+4Xa7xeWXXy5efPFFEQgE\nxHnnnSdeeeUVIYQQ//jHP8SWLVuE0+kUH3zwgTjnnHMkX+9//ud/xF133SW++c1vhr/X6XSKHTt2\niOeee07cddddQgghHn30UXHDDTeI6elp4XK5xCWXXCLefvttIYQQF154ofj9738vhBDihRdeCL9W\nX1+f2LBhg3jmmWeEEEK8+uqrYufOnZJxfOUrXxHbtm0Tv/nNb0RHR8e8Y62treKUU04Ro6Ojwufz\niX/+538W27ZtE0IIcdddd4nHHnssfO7cr+Xi2rhxo3j++efDP++WLVvE+++/L4QQ4pVXXhGXXnqp\nEEKI3/72t+K6664TPp9PWCwWsW3btvB7Mpfcexx6n0888UTR3d0dPv/4448Xf/3rX4UQQgwMDIiT\nTz5Z9PT0CCGE+M///E9xww03CCGEeOSRR8SZZ54pJiYmIp73D3/4g7juuuvCXz/88MPi3nvvFW1t\nbeLcc88VXq9XCCHE008/LV544YWo8YXel/Xr10c8vmXLFtHZ2Sk++ugjcdppp4nh4WEhhBDf/e53\nxQMPPCCEmHnfL7roIuHxeMJfP/bYY7K/l++++64499xzxeTkpHC73eKKK64Q119/vRBCiMsuu0zs\n3btXCCFEd3e3+MY3viEbO1Ei8A4M0SJ2796NpqYm7NixAzt27MCpp56Km2++GQDw7rvv4qqrroJa\nrYZOp8NFF12Ev/zlL+jv78f4+DguuOACAMDxxx+P8vJyfPLJJzG95gUXXIDf//73AIC33noL27Zt\ng1J55H/Xd955B9deey20Wi30ej0uvvhivPnmmwCAF198Eeeddx4A4OSTTw7fvQAAv9+Pyy67DACw\n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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "O2q5RRCKqYaU",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below to see a possible solution"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "j2Yd5VfrqcC3",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**NOTE:** This selection of parameters is somewhat arbitrary. Here we've tried combinations that are increasingly complex, combined with training for longer, until the error falls below our objective (training is nondeterministic, so results may fluctuate a bit each time you run the solution). This may not be the best combination; others may attain an even lower RMSE. If your aim is to find the model that can attain the best error, then you'll want to use a more rigorous process, like a parameter search."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "IjkpSqmxqnSM",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 671
+ },
+ "outputId": "e0c811d2-b005-4a68-f71d-1c93836581e2"
+ },
+ "cell_type": "code",
+ "source": [
+ "dnn_regressor = train_nn_regression_model(\n",
+ " learning_rate=0.001,\n",
+ " steps=2000,\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": 8,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 169.46\n",
+ " period 01 : 157.37\n",
+ " period 02 : 149.41\n",
+ " period 03 : 140.14\n",
+ " period 04 : 138.21\n",
+ " period 05 : 122.56\n",
+ " period 06 : 116.67\n",
+ " period 07 : 112.46\n",
+ " period 08 : 111.31\n",
+ " period 09 : 109.44\n",
+ "Model training finished.\n",
+ "Final RMSE (on training data): 109.44\n",
+ "Final RMSE (on validation data): 108.68\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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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": "vhb0CtdvrWZx",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 35
+ },
+ "outputId": "f130d54d-044c-4bde-8dba-a191506d62aa"
+ },
+ "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",
+ "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": 9,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Final RMSE (on test data): 108.09\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/intro_to_pandas.ipynb b/intro_to_pandas.ipynb
new file mode 100644
index 0000000..ff9f6a5
--- /dev/null
+++ b/intro_to_pandas.ipynb
@@ -0,0 +1,1650 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "intro_to_pandas.ipynb",
+ "version": "0.3.2",
+ "provenance": [],
+ "collapsed_sections": [
+ "JndnmDMp66FL",
+ "YHIWvc9Ms-Ll",
+ "TJffr5_Jwqvd"
+ ],
+ "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": {
+ "colab_type": "text",
+ "id": "JndnmDMp66FL"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "#### Copyright 2017 Google LLC."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "hMqWDc_m6rUC",
+ "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": {
+ "colab_type": "text",
+ "id": "rHLcriKWLRe4"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "# Intro to pandas"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "QvJBqX8_Bctk"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "**Learning Objectives:**\n",
+ " * Gain an introduction to the `DataFrame` and `Series` data structures of the *pandas* library\n",
+ " * Access and manipulate data within a `DataFrame` and `Series`\n",
+ " * Import CSV data into a *pandas* `DataFrame`\n",
+ " * Reindex a `DataFrame` to shuffle data"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "TIFJ83ZTBctl"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "[*pandas*](http://pandas.pydata.org/) is a column-oriented data analysis API. It's a great tool for handling and analyzing input data, and many ML frameworks support *pandas* data structures as inputs.\n",
+ "Although a comprehensive introduction to the *pandas* API would span many pages, the core concepts are fairly straightforward, and we'll present them below. For a more complete reference, the [*pandas* docs site](http://pandas.pydata.org/pandas-docs/stable/index.html) contains extensive documentation and many tutorials."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "s_JOISVgmn9v"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "## Basic Concepts\n",
+ "\n",
+ "The following line imports the *pandas* API and prints the API version:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "aSRYu62xUi3g",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 35
+ },
+ "outputId": "e3c6c112-a007-4163-c9db-1a0d75f98c22"
+ },
+ "cell_type": "code",
+ "source": [
+ "from __future__ import print_function\n",
+ "\n",
+ "import pandas as pd\n",
+ "pd.__version__"
+ ],
+ "execution_count": 1,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "u'0.22.0'"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 1
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "daQreKXIUslr"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "The primary data structures in *pandas* are implemented as two classes:\n",
+ "\n",
+ " * **`DataFrame`**, which you can imagine as a relational data table, with rows and named columns.\n",
+ " * **`Series`**, which is a single column. A `DataFrame` contains one or more `Series` and a name for each `Series`.\n",
+ "\n",
+ "The data frame is a commonly used abstraction for data manipulation. Similar implementations exist in [Spark](https://spark.apache.org/) and [R](https://www.r-project.org/about.html)."
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "fjnAk1xcU0yc"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "One way to create a `Series` is to construct a `Series` object. For example:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "DFZ42Uq7UFDj",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 89
+ },
+ "outputId": "16aa4414-fff4-44cd-b11e-b514a231861e"
+ },
+ "cell_type": "code",
+ "source": [
+ "pd.Series(['San Francisco', 'San Jose', 'Sacramento'])"
+ ],
+ "execution_count": 2,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "0 San Francisco\n",
+ "1 San Jose\n",
+ "2 Sacramento\n",
+ "dtype: object"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 2
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "U5ouUp1cU6pC"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "`DataFrame` objects can be created by passing a `dict` mapping `string` column names to their respective `Series`. If the `Series` don't match in length, missing values are filled with special [NA/NaN](http://pandas.pydata.org/pandas-docs/stable/missing_data.html) values. Example:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "avgr6GfiUh8t",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 142
+ },
+ "outputId": "dc0c6eae-faee-42d9-9393-1ef6e9e49f6a"
+ },
+ "cell_type": "code",
+ "source": [
+ "city_names = pd.Series(['San Francisco', 'San Jose', 'Sacramento'])\n",
+ "population = pd.Series([852469, 1015785, 485199])\n",
+ "\n",
+ "pd.DataFrame({ 'City name': city_names, 'Population': population })"
+ ],
+ "execution_count": 3,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
City name
\n",
+ "
Population
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
San Francisco
\n",
+ "
852469
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
San Jose
\n",
+ "
1015785
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " City name Population\n",
+ "0 San Francisco 852469\n",
+ "1 San Jose 1015785\n",
+ "2 Sacramento 485199"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 3
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "text",
+ "id": "oa5wfZT7VHJl"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "But most of the time, you load an entire file into a `DataFrame`. The following example loads a file with California housing data. Run the following cell to load the data and create feature definitions:"
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "av6RYOraVG1V",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 297
+ },
+ "outputId": "ac8980ad-a463-4332-8483-5a6cb6269975"
+ },
+ "cell_type": "code",
+ "source": [
+ "california_housing_dataframe = pd.read_csv(\"https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv\", sep=\",\")\n",
+ "california_housing_dataframe.describe()"
+ ],
+ "execution_count": 4,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
"
+ ],
+ "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": "T5OlrqtdtCIb",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 142
+ },
+ "outputId": "b84db6c4-ced8-44be-ecd4-f0a1e53ab996"
+ },
+ "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": 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",
+ "
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",
+ "
\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",
+ " Is wide and has saint name \n",
+ "0 False \n",
+ "1 True \n",
+ "2 False "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 14
+ }
+ ]
+ },
+ {
+ "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": 35
+ },
+ "outputId": "2edd5acd-4b98-478b-bd26-f5e4354a0354"
+ },
+ "cell_type": "code",
+ "source": [
+ "city_names.index"
+ ],
+ "execution_count": 15,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "RangeIndex(start=0, stop=3, step=1)"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 15
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "colab_type": "code",
+ "id": "F_qPe2TBjfWd",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 35
+ },
+ "outputId": "f8e83b92-e5dd-4546-8ae7-0451c796373b"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities.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": "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": "04503d51-50d0-42ab-83fb-3b15775c0898"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities.reindex([2, 0, 1])"
+ ],
+ "execution_count": 17,
+ "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",
+ "
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",
+ "
\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",
+ "
\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",
+ " Is wide and has saint name \n",
+ "2 False \n",
+ "0 False \n",
+ "1 True "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 17
+ }
+ ]
+ },
+ {
+ "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": "be16fe78-26c3-4ffb-b99b-50d07dcd15db"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities.reindex(np.random.permutation(cities.index))"
+ ],
+ "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",
+ "
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",
+ "
\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",
+ "
\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",
+ " Is wide and has saint name \n",
+ "2 False \n",
+ "0 False \n",
+ "1 True "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 18
+ }
+ ]
+ },
+ {
+ "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": "8da9c9f4-1de6-4374-f875-f9da58bdb944"
+ },
+ "cell_type": "code",
+ "source": [
+ "cities.reindex([0, 3, 7, 2])"
+ ],
+ "execution_count": 20,
+ "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",
+ "
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",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Sacramento
\n",
+ "
485199.0
\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.0 46.87 18187.945381 \n",
+ "3 NaN NaN NaN NaN \n",
+ "7 NaN NaN NaN NaN \n",
+ "2 Sacramento 485199.0 97.92 4955.055147 \n",
+ "\n",
+ " Is wide and has saint name \n",
+ "0 False \n",
+ "3 NaN \n",
+ "7 NaN \n",
+ "2 False "
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 20
+ }
+ ]
+ },
+ {
+ "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": "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
diff --git a/logistic_regression.ipynb b/logistic_regression.ipynb
new file mode 100644
index 0000000..5b8055e
--- /dev/null
+++ b/logistic_regression.ipynb
@@ -0,0 +1,1502 @@
+{
+ "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": 1209
+ },
+ "outputId": "a75241e8-5627-425f-9f90-70de984651d4"
+ },
+ "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 2646.6 539.1 \n",
+ "std 2.1 2.0 12.6 2169.9 415.6 \n",
+ "min 32.5 -124.3 1.0 2.0 1.0 \n",
+ "25% 33.9 -121.8 18.0 1462.0 297.0 \n",
+ "50% 34.2 -118.5 29.0 2129.5 434.0 \n",
+ "75% 37.7 -118.0 37.0 3149.0 651.0 \n",
+ "max 42.0 -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 1430.6 500.7 3.9 2.0 \n",
+ "std 1140.8 379.1 1.9 1.2 \n",
+ "min 3.0 1.0 0.5 0.0 \n",
+ "25% 792.0 282.0 2.6 1.5 \n",
+ "50% 1168.0 409.0 3.6 1.9 \n",
+ "75% 1726.0 606.0 4.8 2.3 \n",
+ "max 35682.0 5189.0 15.0 55.2 "
+ ],
+ "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": 635
+ },
+ "outputId": "824da08d-cad6-4380-af60-c3bd6cb8518e"
+ },
+ "cell_type": "code",
+ "source": [
+ "linear_regressor = train_linear_regressor_model(\n",
+ " learning_rate=0.000001,\n",
+ " steps=200,\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": 7,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "RMSE (on training data):\n",
+ " period 00 : 0.45\n",
+ " period 01 : 0.45\n",
+ " period 02 : 0.45\n",
+ " period 03 : 0.45\n",
+ " period 04 : 0.45\n",
+ " period 05 : 0.44\n",
+ " period 06 : 0.46\n",
+ " period 07 : 0.45\n",
+ " period 08 : 0.44\n",
+ " period 09 : 0.44\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGACAYAAACgBBhzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd81PX9wPHXjexLcpdxCdmLGWQK\nlaEyBMKwuIoIBn8WtaggotZBHW1VRFtsRURrrVixtjjiRnFSxTJEEAQJkD3JvLvs5HL3/f2R3LFj\nArlcxvv5ePgwd/cd77tvEt75fN7f90elKIqCEEIIIUQvonZ3AEIIIYQQnU0SHCGEEEL0OpLgCCGE\nEKLXkQRHCCGEEL2OJDhCCCGE6HUkwRFCCCFEr6N1dwBC9GQDBw4kJiYGjUYDgM1mY8yYMTz44IP4\n+vqe83HfeOMN5s2bd9rzaWlpPPDAA7zwwgtMnjzZ+XxDQwPjx49n+vTprF69+pzP2155eXmsWrWK\n7OxsAHx8fFi6dCmXXXaZy8/dEevXrycvL++0z2Tnzp0sXryYqKio0/b55JNPuiq881JQUMDUqVOJ\nj48HQFEUQkJC+N3vfseQIUM6dKw1a9YQERHBdddd1+593nvvPd566y02btzYoXMJ0VUkwRHiPG3c\nuJHw8HAAmpqaWLFiBX/7299YsWLFOR2vrKyMl1566YwJDkC/fv348MMPT0pwvvrqKwICAs7pfOfi\nnnvuYe7cubzwwgsA7Nu3jxtuuIGPP/6Yfv36dVkc56Nfv349Jpk5G41Gc9J72Lx5M7fffjtbtmzB\n09Oz3ce5++67XRGeEG4lU1RCdCJPT08uvvhiDh06BEBjYyMPP/wwM2bMYObMmaxevRqbzQZAeno6\n8+fPJyUlhblz5/LNN98AMH/+fIqKikhJSaGpqem0c4waNYqdO3dSX1/vfG7z5s1MmDDB+bipqYnH\nHnuMGTNmMGXKFGciArB3716uuuoqUlJSmDVrFv/73/+AlhGBiRMn8uqrr3L55Zdz8cUXs3nz5jO+\nzyNHjjB8+HDn4+HDh7NlyxZnordu3TouvfRSrrjiCl588UWmTJkCwP3338/69eud+534+OfiWrVq\nFddffz0A33//PVdffTXTpk1j3rx55OfnAy0jWXfeeSeTJ0/m+uuv59ixYz9zxc4sLS2NpUuXcsMN\nN/DUU0+xc+dO5s+fz/Lly53JwMcff8ycOXNISUlh0aJF5OXlAfDss8/y4IMPcs011/DKK6+cdNzl\ny5fz8ssvOx8fOnSIiRMnYrfb+ctf/sKMGTOYMWMGixYtoqSkpMNxz5o1i4aGBrKysgDYtGkTKSkp\nTJkyhbvuuouGhgag5XN/4oknuPzyy/n4449Pug5n+7602+388Y9/ZNKkSVxzzTWkp6c7z7tr1y6u\nvPJKZs2axcyZM/n44487HLsQnU4RQpyzAQMGKMXFxc7HZrNZWbhwobJ+/XpFURTlb3/7m3LzzTcr\nVqtVqa+vV66++mrl3XffVWw2mzJz5kzlgw8+UBRFUfbv36+MGTNGqa6uVnbs2KFcdtllZzzf22+/\nrdx3333KPffc49y3urpamTp1qvLmm28q9913n6IoirJu3TrlhhtuUBobG5Xa2lrliiuuUL788ktF\nURRlzpw5yocffqgoiqK88847znPl5+crQ4YMUTZu3KgoiqJs3rxZmTZt2hnjWLZsmTJ58mTln//8\np5KRkXHSa4cPH1YuvPBCpbS0VLFarcqtt96qTJ48WVEURbnvvvuU5557zrntiY/biis5OVlJS0tz\nvt8xY8Yo27ZtUxRFUT744APlyiuvVBRFUV577TVl4cKFitVqVSorK5XJkyc7P5MTtfUZOz7nESNG\nKNnZ2c7tL7jgAuV///ufoiiKUlhYqIwePVrJyclRFEVR/vGPfyg33HCDoiiKsnbtWmXixIlKRUXF\nacf96KOPlIULFzofP/PMM8qjjz6qHDlyRJk+fbrS1NSkKIqivPrqq8o777xz1vgcn8vgwYNPe37M\nmDFKZmam8t133ynjxo1Tjh07piiKojz00EPK6tWrFUVp+dwvv/xypaGhwfn4ueeea/P7cuvWrcr0\n6dOVmpoapb6+XrnmmmuU66+/XlEURbnqqquUnTt3KoqiKNnZ2cpdd93VZuxCdAUZwRHiPKWmppKS\nksLUqVOZOnUqF110ETfffDMAW7duZd68eWi1Wry9vbn88sv59ttvKSgooLy8nNmzZwNwwQUXEBER\nwY8//tiuc86ePZsPP/wQgM8//5zJkyejVh//cf7qq69YsGABnp6e+Pr6MnfuXD799FMA3n33XWbO\nnAnA6NGjnaMfAM3NzVx11VUAJCcnU1RUdMbz/+lPf2LhwoV88MEHzJkzhylTpvDvf/8baBldGTNm\n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\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": "7a6c6df8-e715-45de-c256-0db528c21139"
+ },
+ "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": 8,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nAIDBCGoAAAxGUAMAYDCCGgAAgxHUAAAYjKAGAMBgBDUAAAYjqAEAMNikgvrIkSO67bbbtHfvXknS\niRMndO+996qmpkaPPvqoRkdHJUltbW265557VFVVpX379kmSYrGY/H6/qqurtWHDBh09enSGhgIA\nQPpJGNTDw8N6/vnntWLFinjbq6++qpqaGr399tu65pprFAwGNTw8rKamJr355pt666231NLSoq++\n+krvv/++srOz9c477+jBBx9UY2PjjA4IAIB04ky0g8vl0p49e7Rnz554W3d3t/74xz9KkkpLS9Xc\n3Kxrr71WeXl5crvdkqSCggKFw2GFQiFVVlZKkoqLi7V169aZGMect6nhQKq7AAAwUMKgdjqdcjrH\n7zYyMiKXyyVJmjdvniKRiKLRqDweT3wfj8dzTrvdbpfNZtPo6Gj8+PPJzc2S0+mY8mC8XveUj0H6\nSOXPn7mXHOqXHOqXHNPrlzCoE7Es66K0f1d///CU++H1uhWJDE75OKSPVP38mXvJoX7JoX7JMaV+\nE71ZmNanvrOysnT69GlJ0smTJ+Xz+eTz+RSNRuP79PX1xdsjkYiksx8ssyxrwqtpAADwP9MK6uLi\nYnV0dEiS9u/fr5UrVyo/P1+9vb0aGBjQ0NCQwuGwCgsLVVJSovb2dklSZ2enioqKLl7vAQBIcwmX\nvg8fPqwXXnhBx44dk9PpVEdHh1566SUFAgG1trZqwYIFqqysVEZGhvx+v2pra2Wz2VRXVye3262K\nigp1dXWpurpaLpdLDQ0NszEuAADSgs2azE3jWTad+wWm3GeYLj71nbzmQFlKzjvX516qUb/kUL/k\nmFK/i36PGgAAzA6CGgAAgxHUAAAYjKAGAMBgBDUAAAYjqAEAMBhBDQCAwQhqAAAMRlADAGAwghoA\nAIMR1AAAGIygBgDAYAQ1AAAGI6gBADAYQQ0AgMEIagAADEZQAwBgMIIaAACDEdQAABiMoAYAwGAE\nNQAABiOoAQAwGEENAIDBCGoAAAxGUAMAYDCCGgAAgxHUAAAYjKAGAMBgBDUAAAYjqAEAMBhBDQCA\nwZzTOai7u1uPPvqoFi1aJEm67rrrdN9992nLli0aGxuT1+vViy++KJfLpba2NrW0tMhut2vdunWq\nqqq6qAMAACCdTSuoJenGG2/Uq6++Gv/+D3/4g2pqarRmzRq9/PLLCgaDqqysVFNTk4LBoDIyMrR2\n7VqVl5crJyfnonQeAIB0d9GWvru7u3XrrbdKkkpLSxUKhdTT06O8vDy53W5lZmaqoKBA4XD4Yp0S\nAIC0N+0r6i+++EIPPvigvv76az388MMaGRmRy+WSJM2bN0+RSETRaFQejyd+jMfjUSQSSb7XAABc\nIqYV1D/5yU/08MMPa82aNTp69Kg2btyosbGx+HbLss573IXavy83N0tOp2PK/fJ63VM+BukjlT9/\n5l5yqF9yqF9yTK/ftIJ6/vz5qqiokCT9+Mc/1o9+9CP19vbq9OnTyszM1MmTJ+Xz+eTz+RSNRuPH\n9fX1aenSpQlfv79/eMp98nrdikQGp3wc0keqfv7MveRQv+RQv+SYUr+J3ixM6x51W1ub/vznP0uS\nIpGIvvzyS919993q6OiQJO3fv18rV65Ufn6+ent7NTAwoKGhIYXDYRUWFk7nlAAAXJKmdUVdVlam\nJ554Qn/5y18Ui8W0bds2LVmyRE899ZRaW1u1YMECVVZWKiMjQ36/X7W1tbLZbKqrq5PbbfYSAwAA\nJplWUF9++eXauXPnOe1vvPHGOW2rV6/W6tWrp3MaAAAueTyZDAAAgxHUAAAYjKAGAMBgBDUAAAYj\nqAEAMNi0HyEKmGZTw4FUd2FCzYGyVHcBwBzEFTUAAAYjqAEAMBhBDQCAwQhqAAAMRlADAGAwghoA\nAIMR1AAAGIygBgDAYAQ1AAAGI6gBADAYQQ0AgMEIagAADEZQAwBgMIIaAACDEdQAABiMoAYAwGAE\nNQAABiOoAQAwGEENAIDBCGoAAAxGUAMAYDCCGgAAgxHUAAAYjKAGAMBgBDUAAAZzproDwKViU8OB\nVHchoeZAWaq7AOB7ZiWo//SnP6mnp0c2m01bt27VL37xi9k4LQAAc96MB/Xf/vY3/etf/1Jra6v+\n8Y9/aOvWrWptbZ3p0wIAkBZmPKhDoZBuu+02SdJPf/pTff311/rmm290+eWXz/SpAUzRXFieNx23\nD3CxzXhQR6NRXX/99fHvPR6PIpHIrAY1v3wAAHPVrH+YzLKshPt4ve5pvfaFjvu/xjun9XoAMBdM\n93cmzjK9fjP+37N8Pp+i0Wj8+76+Pnm93pk+LQAAaWHGg7qkpEQdHR2SpE8//VQ+n4/70wAATNKM\nL30XFBTo+uuv1/r162Wz2fTcc8/N9CkBAEgbNmsyN40BAEBK8AhRAAAMRlADAGCwOfms71gspkAg\noOPHj8vhcKi+vl4LFy4ct8/111+vgoKC+PdvvvmmHA7HbHfVOBM9zrWrq0svv/yyHA6HVq1apbq6\nuhT21EwT1a+srExXXnllfJ699NJLmj9/fqq6aqQjR47ooYce0m9+8xtt2LBh3DbmX2IT1Y/5N7Ht\n27frk08+0ZkzZ/TAAw/o9ttvj28zfu5Zc9B7771nbdu2zbIsyzp48KD16KOPnrPPjTfeONvdMl53\nd7f1u9/9zrIsy/riiy+sdevWjdu+Zs0a6/jx49bY2JhVXV1tff7556noprES1a+0tNT65ptvUtG1\nOWFoaMjasGGD9cwzz1hvvfXWOduZfxNLVD/m34WFQiHrvvvusyzLsk6dOmXdfPPN47abPvfm5NJ3\nKBRSeXm5JKm4uFjhcDjFPZobLvQ4V0k6evSorrjiCl111VWy2+26+eabFQqFUtld40xUPyTmcrm0\nZ88e+Xy+c7Yx/xKbqH6Y2PLly/XKK69IkrKzszUyMqKxsTFJc2Puzcmgjkaj8ng8kiS73S6bzabR\n0dFx+4yOjsrv92v9+vV64403UtFN40SjUeXm5sa//+/jXCUpEonEa/r9bThrovr913PPPafq6mq9\n9NJLk3oK36XE6XQqMzPzvNuYf4lNVL//Yv6dn8PhUFZWliQpGAxq1apV8VsEc2HuGX+Pet++fdq3\nb9+4tp6ennHfn29CbtmyRb/61a9ks9m0YcMGFRYWKi8vb0b7OtfwDzk536/f73//e61cuVJXXHGF\n6urq1NHRodWrV6eod7jUMP8S+/DDDxUMBtXc3JzqrkyJ8UFdVVWlqqqqcW2BQECRSESLFy9WLBaT\nZVlyuVzj9qmuro5/fdNNN+nIkSOXfFBP9DjX7287efIkS2zfk+hxuJWVlfGvV61apSNHjvCLcpKY\nf8lj/k3s4MGD2rlzp15//XW53f97tvdcmHtzcum7pKRE7e3tkqTOzk4VFRWN2/7Pf/5Tfr9flmXp\nzJkzCofDWrRoUSq6apSJHud69dVX65tvvtG///1vnTlzRp2dnSopKUlld40zUf0GBwdVW1sbvwXz\n97//nTk3Bcy/5DD/JjY4OKjt27dr165dysnJGbdtLsw946+oz6eiokJdXV2qrq6Wy+VSQ0ODJGn3\n7t1avny5li1bpiuvvFJr166V3W5XWVnZuP9Gc6k63+Nc33vvPbndbpWXl2vbtm3y+/2Sztb42muv\nTXGPzZKofqtWrdKvf/1r/eAHP9DPf/5zrma+5/Dhw3rhhRd07NgxOZ1OdXR0qKysTFdffTXzbxIS\n1Y/5d2EffPCB+vv7tXnz5nhbUVGRfvazn82JuccjRAEAMNicXPoGAOBSQVADAGAwghoAAIMR1AAA\nGIygBgDAYAQ1AAAGI6gBADAYQQ0AgMH+PzEYDmj71F39AAAAAElFTkSuQmCC\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": "5YxXd2hn6MuF",
+ "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(\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(\"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": "UPM_T1FXsTaL",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 635
+ },
+ "outputId": "b16df9d5-8d92-4a83-d52a-50aaf1cf8a8f"
+ },
+ "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": 11,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Training model...\n",
+ "LogLoss (on training data):\n",
+ " period 00 : 0.59\n",
+ " period 01 : 0.58\n",
+ " period 02 : 0.56\n",
+ " period 03 : 0.56\n",
+ " period 04 : 0.54\n",
+ " period 05 : 0.55\n",
+ " period 06 : 0.54\n",
+ " period 07 : 0.53\n",
+ " period 08 : 0.54\n",
+ " period 09 : 0.53\n",
+ "Model training finished.\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\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": 53
+ },
+ "outputId": "8606e9b2-d549-405f-f9d5-3c893c360e62"
+ },
+ "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": 12,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "AUC on the validation set: 0.72\n",
+ "Accuracy on the validation set: 0.76\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": "e8fd29de-cac3-48b3-d6a2-f849587353cf"
+ },
+ "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": 13,
+ "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": 671
+ },
+ "outputId": "836883d8-fd4c-4d2c-d71d-85d0e65c4537"
+ },
+ "cell_type": "code",
+ "source": [
+ "# TUNE THE SETTINGS BELOW TO IMPROVE AUC\n",
+ "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)\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": 14,
+ "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.56\n",
+ " period 03 : 0.55\n",
+ " period 04 : 0.54\n",
+ " period 05 : 0.55\n",
+ " period 06 : 0.55\n",
+ " period 07 : 0.54\n",
+ " period 08 : 0.53\n",
+ " period 09 : 0.53\n",
+ "Model training finished.\n",
+ "AUC on the validation set: 0.71\n",
+ "Accuracy on the validation set: 0.75\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\niJIMmFVuAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "wCugvl0JdWYL",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "### Solution\n",
+ "\n",
+ "Click below for a possible solution."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "VHosS1g2aetf",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "One possible solution that works is to just train for longer, as long as we don't overfit. \n",
+ "\n",
+ "We can do this by increasing the number the steps, the batch size, or both.\n",
+ "\n",
+ "All metrics improve at the same time, so our loss metric is a good proxy\n",
+ "for both AUC and accuracy.\n",
+ "\n",
+ "Notice how it takes many, many more iterations just to squeeze a few more \n",
+ "units of AUC. This commonly happens. But often even this small gain is worth \n",
+ "the costs."
+ ]
+ },
+ {
+ "metadata": {
+ "id": "dWgTEYMddaA-",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 671
+ },
+ "outputId": "05017d04-5020-458e-9571-2883efae3604"
+ },
+ "cell_type": "code",
+ "source": [
+ "linear_classifier = train_linear_classifier_model(\n",
+ " learning_rate=0.000003,\n",
+ " steps=20000,\n",
+ " batch_size=500,\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.50\n",
+ " period 01 : 0.49\n",
+ " period 02 : 0.48\n",
+ " period 03 : 0.48\n",
+ " period 04 : 0.47\n",
+ " period 05 : 0.47\n",
+ " period 06 : 0.47\n",
+ " period 07 : 0.47\n",
+ " period 08 : 0.47\n",
+ " period 09 : 0.47\n",
+ "Model training finished.\n",
+ "AUC on the validation set: 0.81\n",
+ "Accuracy on the validation set: 0.79\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAGACAYAAABY5OOEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3XdYVGfaBvD7TIcZOkORJqhYUETs\nvQtqjEmMSmJMNO6XTTbJZo1fvkQ3bkzRTdGUTXbdTTFtU4jGmBgLsWKvWFFEULqUoXeGmfn+QIkF\ncBhmmBm4f9eVS5mZ854Hnhm88573nCMYDAYDiIiIiOyUyNoFEBEREbUFwwwRERHZNYYZIiIismsM\nM0RERGTXGGaIiIjIrjHMEBERkV1jmCHq4Hr27Inc3FyzjJWVlYU+ffqYZSxrmD9/PkaNGoXo6GhE\nRUVh2rRp+PLLL1s9ztmzZ7Fo0aJWb9enTx9kZWW1ejsiapnE2gUQEbWnF154ATNnzgQAFBQUYO7c\nuQgODsaYMWOMHiM8PByfffaZpUokolbizAxRJ1VbW4u//e1viIqKwtSpU/Hmm29Cp9MBAPbv34+x\nY8di6tSpiI2NRWRk5F1nFEpKSvDcc881znh8/PHHjc+99957iIqKQlRUFB599FHk5eW1+PgN8fHx\nmDFjxi2PzZw5E/v27cOxY8dw//33Y9q0aZg6dSq2bdvW6p+BWq1GdHQ0Dh48CABISUnBI488gqio\nKMyYMQPnzp0DABw9ehQxMTF47rnnsGTJEhw9ehSTJ0++688xPj4ekydPxtSpU/Hpp5827reyshJP\nP/00pk6diokTJ+Lll1+GVqttdf1E1IBhhqiT+vLLL5Gbm4stW7bgp59+wokTJ/Drr79Cp9PhpZde\nwmuvvYZt27YhLS0N1dXVdx3v3XffhYuLC+Li4vDtt9/iu+++w4kTJ3D58mVs374dv/76K+Li4jB5\n8mQcPny42cdvNnz4cOTm5iIzMxMAkJmZidzcXIwYMQJvvfUWli5diq1bt2Lt2rXYuXOnST+H+vp6\nyGQy6PV6PP3005g5cybi4uKwYsUK/OlPf0J9fT0A4MKFC4iJicGaNWuM/jn+9a9/xSuvvIJt27ZB\nJBI1hpxNmzbB2dkZ27ZtQ1xcHMRiMVJSUkyqn4gYZog6rb1792LOnDmQSCRQKBSYMWMGDh48iLS0\nNNTV1WHs2LEAGtaZ6PX6u44XHx+Phx9+GADg6uqKyZMn4+DBg3B2dkZRURE2b96M0tJSzJ8/H/fd\nd1+zj99MJpNh/Pjx2L17NwBg586dmDRpEiQSCTw8PLBp0yakpqaia9eud4QMY2RmZmL79u2YPHky\nrly5gsLCQjz44IMAgIEDB8Ld3R2nTp0CACgUCgwfPrzVP8dRo0YBAO6///7GbW6Me+DAAej1erz6\n6qvo3bt3q+snogYMM0SdVFFREVxcXBq/dnFxQWFhIUpLS+Hs7Nz4uJeXl9Hj3byds7MzCgsL4e3t\njQ8//BDbt2/HuHHj8MQTT+DatWvNPn67qKioW8LMtGnTAACrVq2Cg4MDFi5ciClTpmD79u1G1fnO\nO+80LgB+/vnn8dJLLyE8PBxlZWWoqanB1KlTER0djejoaBQWFqKkpKTx59Pc993cz1GlUt3y+A1T\np07FggUL8MEHH2D48OF49dVXUVdXZ1T9RHQnhhmiTsrT07PxH2qgYc2Lp6cnVCoVqqqqGh/XaDRt\nGg8Ahg0bho8//hgHDx6Er68vVq9e3eLjNxs9ejSSkpKQlpaGtLQ0DBs2rHF/y5cvx759+/C3v/0N\nS5cuRWVl5V3rfOGFF7B9+3bExcVh/fr1jeHIy8sLSqUS27dvb/zvwIEDjWtjWvt9u7i4oKKiovHx\noqKiW7aLiYnB+vXrsXXrViQmJmLTpk13rZ2ImsYwQ9RJjRs3Dhs2bIBOp0NVVRV+/vlnjB07Fl27\ndkV9fT2OHj0KAPjuu+8gCIJR48XGxgJo+Id7x44dGDduHA4cOIBXX30Ver0ejo6O6NWrFwRBaPbx\n28lkMowaNQrvvPMOJk6cCLFYDK1Wi/nz5yM/Px8AEBYWBolEApHI9F9pfn5+8PHxaZzhKSoqwvPP\nP39LsGvu+27q5xgYGAixWNz4c9y4cWPj9/fPf/4TGzZsAAB4e3vD39/fqJ8xETWNp2YTdQLz58+H\nWCxu/PqNN97A/PnzkZmZienTp0MQBERHR2Pq1KkQBAErVqzA0qVL4eTkhIULF0IkEkEQBBgMBuh0\nOkRHR98y/ieffIK//OUvWLFiBaKjoyESifDEE08gPDwctbW12LJlC6KioiCTyeDu7o5Vq1bBy8ur\nycebEhUVhWeffRZffPEFAEAqleLBBx/EggULAAAikQgvv/wyHBwcsGPHDuzevRt///vfW/UzEgQB\n7777LlasWIH3338fIpEICxcuhKOj411/ts39HF9//XUsW7YMMpkMDzzwQONYM2fOxNKlS/HJJ59A\nEAT079+/8XRxImo9wWAwGKxdBBHZrqqqKgwYMAAnTpyAk5OTtcshIroDDzMR0R1mzZqFrVu3AgC2\nbt2Kbt26McgQkc3izAwR3eHEiRN47bXXUFtbC6VSiRUrViA8PNzaZRERNYlhhoiIiOwaDzMRERGR\nXWOYISIiIrtm96dmFxSUW2xsNzdHFBe3fI0Jsg72xjaxL7aLvbFN7Ivx1OrmT0LgzEwLJBLx3V9E\nVsHe2Cb2xXaxN7aJfTEPhhkiIiKyawwzREREZNcYZoiIiMiuMcwQERGRXWOYISIiIrvGMENERER2\njWGGiIiI7BrDDBERUQe2d+8uo173wQdrkJOT3ezzL730vLlKMjuGGSIiog7q2rUc7NwZZ9Rrn3tu\nCbp08Wv2+TfffNdcZZmd3d/OgIiIiJr27rtv4eLFRIwePRhTpkzFtWs5eP/9f+Hvf38NBQX5qK6u\nxuOPP4GRI0fjmWeewPPP/x/27NmFysoKZGSkIzs7C3/+8xIMHz4S06dPxJYtu/DMM09g8OChSEg4\ngZKSErz11nvw9PTEa68tR27uNfTrF47du3fip5+2ttv3yTBDRETUDn7YnYLjSfm3PCYWC9DpDCaP\nObiXF+ZM6N7s8w89NB8bN/6A4OBuyMhIw7/+9SmKi4swZMgwTJ16D7Kzs7B8+UsYOXL0Ldvl5+dh\n9ep/4MiRQ/j55x8xfPjIW55XKpX44IO1WLv2Q+zbtxtduvijrq4WH3/8BQ4e3I8ffvjO5O/JFAwz\nzUjNKUWNHlDwQBwREXUAvXuHAQCcnJxx8WIifvllIwRBhLKy0jteGx4eAQDw8vJCRUXFHc/37z+g\n8fnS0lKkp19Fv379AQDDh4+EWNy+95ximGnGf35OhN4A/P2JoZDyRmBERNRGcyZ0v2MWRa12QkFB\nebvsXyqVAgB27NiOsrIy/POfn6KsrAx/+MP8O157cxgxGO6cObr9eYPBAJGo4TFBECAIgrnLbxHn\nHZoxuLcXispqsPd0jrVLISIiMolIJIJOp7vlsZKSEvj6doFIJEJ8/G5otdo278fPzx+XLl0AABw7\nduSOfVoaw0wzoocEwkEuxtbD6ajTtm9TiIiIzCEoKBiXLiWhsvL3Q0Xjxk3AoUP78dxzT8HBwQFe\nXl74/PNP2rSfESNGo7KyEk89tQhnzpyCs7NLW0tvFcHQ1PyRHbHk9Ny245lYv+syYiZ0x5QhgRbb\nD7Vee07NkvHYF9vF3timjtKXsrJSJCScwLhxE1FQkI/nnnsK3377o1n3oVY7Nfsc18y04P5x3bF5\n/xVsPZKOsRF+kMu4doaIiOh2jo5K7N69E99++zUMBj2efbZ9L7DHMNMCJ0cZJg0KwK+H0rDnVDai\nh3J2hoiI6HYSiQSvvfZ3q+2fa2buImpIABzkYmw7mo7aOq6dISIisjUMM3ehVEgxeVAAyqu02J2Q\nZe1yiIiI6DYMM0aYMjgAjnIJth3NQHVtvbXLISIiopswzBjBUSHFlCEBqKjm7AwREZGtYZgx0uRB\nAVAqJNjO2RkiIupgHnxwBqqqqvD111/g/PmztzxXVVWFBx+c0eL2e/fuAgBs3boZ8fF7LFZncxhm\njOQglyBqSCAqa+qx80SmtcshIiIyu/nzF6Bv3/BWbXPtWg527owDAEybNgNjx463RGkt4qnZrTBx\noD9+O56JuGOZmDjQH44KqbVLIiIiatbjj8/DqlVr4OPjg9zca1i6dAnUai9UV1ejpqYGixe/gD59\n+ja+fuXKFRg3biIiIgbgr3/9P9TV1TXedBIAfvttGzZsiIVYLELXrt3w4ot/xbvvvoWLFxPx+eef\nQK/Xw9XVFbNmzcW//vUBzp07g/p6HWbNmoPo6Ol45pknMHjwUCQknEBJSQneeus9+Pj4tPn7ZJhp\nBQe5BNFDA7Fhbyp2nMjCzFHB1i6JiIjsxMaUX3Eq/9wtj4lFAnR60y/EP8CrHx7ofk+zz48ZMx4H\nD+7DrFlzsH9/PMaMGY9u3XpgzJhxOHnyOL755kusXPnOHdvFxW1DSEg3/PnPS7Br12+NMy/V1dVY\ns+ZDODk54emn/wepqSl46KH52LjxByxc+D/47LP/AABOn07AlSupWLt2Haqrq/HYYzEYM2YcAECp\nVOKDD9Zi7doPsW/fbsyZ87DJ3/8NPMzUShMi/aBykOK345morGn7zbmIiIgspSHM7AcAHDgQj1Gj\nxiI+fheeemoR1q79EKWlpU1ul5Z2BX379gcADBgwsPFxZ2dnLF26BM888wTS06+itLSkye2Tki4g\nIiISAODg4ICuXUOQmdmwRKN//wEAAC8vL1RUVDS5fWtxZqaVFDIJpg0Lwg97UvDbsUzcPybE2iUR\nEZEdeKD7PXfMolj63kwhId1QWFiAvLxclJeXY//+vfD09MLy5a8jKekCPvro/Sa3MxgAkUgAAOiv\nzxxptVq8++7b+OKLb+Hh4Yn/+7+/NLtfQRBw850f6+u1jeOJxb/fGshct4fkzIwJxg/wg7OjFDtO\nZKKimrMzRERku4YPH4WPP/4XRo8ei9LSEvj5+QMA4uP3oL6+6bNzAwODkJR0EQCQkHACAFBVVQmx\nWAwPD0/k5eUiKeki6uvrIRKJoNPdeoX8Xr3CcOrUyevbVSE7Owv+/pa7JRDDjAnkMjGmDQtCTZ0O\ncccyrF0OERFRs8aOHY+dO+MwbtxEREdPR2zsN1i8+GmEhfVFYWEhtmz55Y5toqOnIzHxHJ577ilk\nZqZDEAS4uLhi8OCh+MMfHsXnn3+Chx+ej3/8410EBQXj0qUk/OMfaxq3798/Aj179sLTT/8PFi9+\nGk8++QwcHBws9j0KBnPN8TRh1apVOHPmDARBwLJlyxAe/vvpXhMmTICPj0/jdNPq1avh7e3d4jZN\nseT0XEvTf3VaHV7892HUaHV4+8nhcHKUWawOupOlp2bJNOyL7WJvbBP7Yjy12qnZ5yy2ZubYsWNI\nT09HbGwsUlNTsWzZMsTGxt7ymk8++QRKpbJV29gKmbRhdua7XZex/VgGZo/rbu2SiIiIOiWLHWY6\nfPgwJk2aBADo1q0bSktL77pq2ZRtrGlsRBe4qmTYfTIbZVV11i6HiIioU7JYmNFoNHBzc2v82t3d\nHQUFBbe85pVXXsFDDz2E1atXw2AwGLWNLZFJxZg+vCtqtTpsP8q1M0RERNbQbqdm3740589//jNG\njx4NFxcXPP3004iLi7vrNk1xc3OERCK+6+tM1dIxOgB4YGIo4o5lYHdCNh6e2htuTgqL1UK3ultv\nyDrYF9vF3tgm9qXtLBZmvLy8oNFoGr/Oz8+HWq1u/Pq+++5r/PuYMWOQnJx8122aUlxcZcaqb2Xs\nwqypQwPx9W/J+O+WC4iZ2MNi9dDvuGjONrEvtou9sU3si/FaCn0WO8w0cuTIxtmWxMREeHl5QaVS\nAQDKy8uxaNEi1NU1rDM5fvw4evTo0eI2tmxUeBd4OMux51Q2SipqrV0OERFRp2KxmZnIyEiEhYUh\nJiYGgiDglVdewcaNG+Hk5ITJkydjzJgxmDt3LuRyOfr06YPo6GgIgnDHNvZAKhFh+oiu+Gr7JWw9\nko6HJ4VauyQiIqJOw6LXmWkP1rrOzO3qdXos/c8RlFbW4a0nh8PNSW6xuohTs7aKfbFd7I1tYl+M\nZ5XDTJ2NRCzCjJFdUa/TY+vhdGuXQ0RE1GkwzJjRiL4+ULsqEH8mG0VlNdYuh4iIqFNgmDEjiViE\nGSOCUa8zYAtnZ4iIiNoFw4yZDe/rDS83B+w7k4PCUs7OEBERWRrDjJmJRSLMGNEVOr0Bvx5Os3Y5\nREREHR7DTDN+vLwZvyTtMGnbYWHe8HZ3xIGz16ApqTZzZURERHQzhplmXC5OxXdnN6GoprjV24pF\nItw7smF2ZvOhNPMXR0RERI0YZpoxPmA0dAY9dmbEm7T90N7e8PVwxMFzucjn7AwREZHFMMw0Y5B3\nBNRKDxzKOYayutZf0EgkEnDvyGDoDQb8ejDN/AUSERERAIaZZolFYszsNRlafT12Z+w3aYzBvbzg\n56nEofO5yLPgDTGJiIg6M4aZFowLHgFnmRP2Zx9Glbb1YUQkEnDvqIbZmc2cnSEiIrIIhpkWyMRS\nTAwcgxpdLeKzDpk0xsCeavirlTicmItrhZVmrpCIiIgYZu5iVJdhcJQ4YE/mAdTU17Z6e5EgYOao\nYBgM4JlNREREFsAwcxcKiRzjAkahsr4KB3OOmjTGgFA1ArxUOJqYhxwNZ2eIiIjMiWHGCOP8R0Iu\nlmFXRjy0Om2rtxcJAu4bFQwDgF8OXjV/gURERJ0Yw4wRlFJHjPYbjtK6chzJPWnSGBE9PBHk7YTj\nF/ORXVBh5gqJiIg6L4YZI00IGAOJSIId6Xuh0+tavb0gCJg5umF25mee2URERGQ2DDNGcpE7YYTv\nEBTWFOFE3mmTxujfzQPBvk44kZSPrHzOzhAREZkDw0wrTAocC5Egwm/pe6A36Fu9vXD9zCYA+PkA\n184QERGZA8NMK3g4uGGIdyRyq/JxtiDRpDH6hXggpIszTiYXICOv9bdJICIiolsxzLTSlKBxECAg\nLn03DAZDq7cXrp/ZBHB2hoiIyBwYZlrJW+mFCK9+yCjPxsWiZJPGCAt2R3c/F5y6rEF6LmdniIiI\n2oJhxgRRQeMBAHHpu03a/saZTQBnZ4iIiNqKYcYEAU5+CPPohZSSq0gpMS2M9AlyQ6i/C06naHD1\nWpmZKyQiIuo8GGZMFN11AgAgLq0tszMhADg7Q0RE1BYMMyYKcemKHq4huFB0CRnlWSaN0TvIDT0D\nXHE2tRCp2aVmrpCIiKhzYJhpg6jG2Zk9Jo9xH9fOEBERtQnDTBv0cuuBQCd/nCk4j9zKPJPG6Bno\nht5Bbjh/tQgpWZydISIiai2GmTYQBAHRXSfAAAN+S99r8jg3rgq86cAVM1VGRETUeTDMtFE/zz7w\nVXrjeN4pFFYXmTRGaIArwrq64UJaMZIzS8xcIRERUcfGMNNGIkGEKUHjoTfosSMj3uRxbpzZtGk/\nZ2eIiIhag2HGDAZ69Yenwh2Hrx1Haa1p14zp7ueCviHuSMooQVJ6sZkrJCIi6rgYZsxALBJjctA4\n1OvrsStzn8nj3Dfq+uzMgasm3feJiIioM2KYMZOhvoPgInPG/uwjqNBWmjRGSBdnhHfzQHImZ2eI\niIiMxTBjJlKRBJMCx6BOV4f4zIMmj3PjzKafODtDRERkFIYZMxrpNwxKqSP2Zh1ETX2NSWME+zoj\norsnUrJKcSGNszNERER3wzBjRnKxDOP9R6Oqvhr7s4+YPE7jdWf2X+HsDBER0V0wzJjZWP8RUIgV\n2JW5D3U6rUljBPk4ITJUjdScMpy/atq1a4iIiDoLhhkzc5Q6YIz/cJTXVeDIteMmj/P77AzXzhAR\nEbWEYcYCJgSMhlQkxY6MeOj0OpPGCPBSYWBPNa5eK8PZ1EIzV0hERNRxMMxYgJNMhZFdhqCophjH\n8k6ZPM7MUcEQwOvOEBERtYRhxkImBY6FWBBjR/oe6A16k8bwV6swqJcX0nPLcTpFY+YKiYiIOgaG\nGQtxU7hiqE8k8qoKcLrgvMnj3Ht9duZnrp0hIiJqEsOMBU0OGgcBAuLSdpscRPw8lRjSxxsZ+RVI\nSObsDBER0e0YZizIy1GNSK9wZFXkILEwyeRx7h3ZFYIA/HzgKvScnSEiIroFw4yFRXWdAACISzd9\ndsbXQ4lhfbyRVVCBhEsF5iyPiIjI7jHMWJifyhf9PHvjSmk6UkqumDzOjJHBDbMzBzk7Q0REdDOG\nmXYQFdQwO7M9bbfJY/i4O2JEmA+yCypxIinfXKURERHZPYaZdhDsEoRQt+5IKr6M9LJMk8eZMbIr\nRILQsHZGz9kZIiIigGGm3URfn52Ja8PsjJebI0b088G1wiocS8ozV2lERER2jWGmnYS6dUNX50Cc\n0SQipyLX5HFmjOgKsUjALwfSODtDREQEhpl2IwgCoq+f2fRb+h6Tx1G7OmBkP1/kFlXh6AXOzhAR\nETHMtKMwj17oovTBibzT0FSbfvPIe0YENczOHLwKnd60WyUQERF1FAwz7UgkiBDVdQIMMOC39L0m\nj+Pp4oDR4b7IK67GkUTOzhARUefGMNPOIr3CoXbwwNFrJ1BSW2ryONOHd4VELGDzwTTU6zg7Q0RE\nnRfDTDsTCSJMCRqPeoMOuzL2mTyOh4sCo/t3QX5JNQ6fN31BMRERkb1jmLGCIT6RcJW74ED2EVTU\nVZo8zvRhQZCIRdh8iLMzRETUeTHMWIFEJMGkwLGo02uxJ+uAyeO4OyswNqILNKU1OHjumhkrJCIi\nsh8MM1YysssQqKRKxGcdRHV9tcnjTBsWBKlEhF85O0NERJ0Uw4yVyMQyTAgYjer6GuzPOmLyOG5O\ncoyL8ENhWS0OnOXsDBERdT4MM1Y0xn84HCQK7MrchzpdncnjTBsWCJmkYe2Mtp6zM0RE1LkwzFiR\ng8QBY/1HokJbiUM5x00ex0Ulx/hIPxSX12L/2RwzVkhERGT7LBpmVq1ahblz5yImJgZnz55t8jVr\n1qzB/PnzAQB6vR7Lly9HTEwM5s+fj9TUVEuWZxPG+4+CTCTFjoy9qNfXmzzO1KFBkEkb1s5o63Vm\nrJCIiMi2WSzMHDt2DOnp6YiNjcXKlSuxcuXKO16TkpKC48d/n5HYtWsXysvL8f3332PlypV4++23\nLVWezVDJlBjlNwwltaU4lptg8jjOShkmRvqjpKIO8ac5O0NERJ2HxcLM4cOHMWnSJABAt27dUFpa\nioqKilte8+abb2Lx4sWNX6elpSE8PBwAEBgYiJycHOh0HX+WYWLgGEgEMX5L3wO9wfQ1L9FDAyGX\nirHlcDrqtB3/50ZERAQAEksNrNFoEBYW1vi1u7s7CgoKoFKpAAAbN27EkCFD4Ofn1/ia0NBQfPnl\nl3jssceQnp6OzMxMFBcXw9PTs9n9uLk5QiIRW+rbgFrtZLGxG/cBJ4wLHo6dVw4gpSYZIwMHmzgO\ncO+YEKzfdRknUgoxc0w38xZqY9qjN9R67IvtYm9sE/vSdhYLM7czGAyNfy8pKcHGjRvx+eefIy/v\n9xsljh07FgkJCZg3bx569uyJkJCQW7ZrSnFxlcVqVqudUFBQbrHxbzbKayR2XTmI9We3ooeiJwRB\nMGmc0X19sHn/FfywMxkDu3tALrVc0LOm9uwNGY99sV3sjW1iX4zXUuiz2GEmLy8vaDSaxq/z8/Oh\nVqsBAEeOHEFRURHmzZuHZ555BomJiVi1ahUAYPHixfj+++/x6quvoqysDB4eHpYq0aaoHT0wyDsC\nOZW5OF940eRxVA5STBrkj7LKOuxJyDZjhURERLbJYmFm5MiRiIuLAwAkJibCy8ur8RBTdHQ0tm7d\nih9++AEfffQRwsLCsGzZMiQlJWHp0qUAgH379qFPnz4QiTrP2eNTgsYDALan7b7rjFSL4wwOhINc\njG1H01Fbx7UzRETUsVnsMFNkZCTCwsIQExMDQRDwyiuvYOPGjXBycsLkyZOb3CY0NBQGgwEPPvgg\n5HI5Vq9ebanybFIXlQ/6e4bhjCYRycWp6One3aRxVA5STB4UgF8OpmF3QhamDgsyc6VERES2QzC0\nZQrABljyWKM1jmWml2Xi7RMfItStO54b8ITJ41TVaPHC2sMQiwS89eRwOMjbbXlUu+BxZtvEvtgu\n9sY2sS/Gs8qaGTJNkHMAern1QHJxCq6Wpps8jqNCiqjBAaio1mJ3QpYZKyQiIrItDDM2KLrrBABA\nXPruNo0zaVAAlAoJth/NQHWt6VcXJiIismUMMzaou2sIQlyCcE5zEdkVpt8J21EhwZQhgaisqcfO\nk5ydISKijolhxgYJgoCooOuzM2ltnJ0Z6A+lQoK4oxnQlFSbozwiIiKbwjBjo8I8esFf1QUJ+WeR\nX1Vg8jgOcgkeGNsNVbX1WB17GqUVtWaskoiIyPoYZmyUIAiI6joBBhiwI31vm8YaP8AP94wIQn5x\nNVbHnkZFtdY8RRIREdkAhhkbFqHuC29HNY7mJqC4pqRNY90/OgQTI/2RXVCJ9344wwXBRETUYTDM\n2DCRIMLkoPHQGXTYmRHfprEEQcBDk3tgRF8fXL1Who82noO2nlcHJiIi+8cwY+OGeA+Am9wVB3OO\nobyuok1jiQQBC6f1QmSoGhfTi7F2UyLqdXozVUpERGQdDDM2TiwSY3LQOGj1WuzO3G+G8UT4471h\nCOvqhtMpGqzbchF6+74INBERdXIMM3ZguO9gOMlU2Jd1GFXatp9eLZWI8MwD4eju54IjF/Lw39+S\n23RjSyIiImtimLEDMrEUEwPGoEZXg33Zh8wyplwmxl9mhyPAS4W9p7KxIT7VLOMSERG1N4YZOzHa\nbxgcJQ7Ynbkftbo6s4zpqJBiydwIeLs7YtuRDGw5nGaWcYmIiNoTw4ydUEgUGOc/EpXaKhzMOWq2\ncZ2VMrwQEwEPZzl+jL+CXbztARER2RmGGTsyNmAkZGIZdqbHQ6s333Vi3J0V+N+YAXBWyvDNjmQc\nOm/6/aCIiIjaG8OMHVFJlRjtNwyldWU4eu2EWcf2dnfEkrkRcJRLsG5LEhKSTb+FAhERUXtimLEz\nEwPGQCKSYEf6Xuj05r3oXYAH4jVHAAAgAElEQVSXCovn9IdUIsK/fz6PxLQis45PRERkCQwzdsZF\n7ozhvoOhqSnCyfwzZh+/m58Lnp3VDwDw4Y9nkZJdavZ9EBERmRPDjB2aFDgWIkGE39L3QG8w/xV8\n+3R1x1Mz+6K+3oD3fziDjLxys++DiIjIXBhm7JCngzsGew/Atco8nNNcsMg+BoSqseie3qiurce7\nsaeRW1Rlkf0QERG1FcOMnZoSNA4CBMSl7bHY1XuHh/lg3pRQlFVpsfr7UygsrbHIfoiIiNqCYcZO\n+Si90V/dF+nlmUgqvmyx/UyI9MessSEoKqvF6u9PobTSPBfsIyIiMheGGTsW1XU8ACAubbdF9zN9\neFdMGxaEvOJqrPn+NCprtBbdHxERUWswzNixQCd/9HHvicslV5BakmbRfc0aG4LxA/yQVVCB99ef\nQU2d+S7aR0RE1BYMM3YuqusEAEBcumVnZwRBwLwpoRgW5o3U7DJ8tPEctPXmvc4NERGRKRhm7Fx3\n12B0cwlGYmESMstzLLovkSDg8Wm9MaCHJy6kFePfPydCpzf/qeFEREStwTDTAUS30+wMAEjEIjw5\nMwy9g9xw6rIG67YkQW+hs6mIiIiMwTDTAfR2D0Wgkx9O559DXmW+xfcnlYjx7Kx+6NbFGYcTc/Ht\njmSLnR5ORER0NwwzHYAgCIgKmgADDPgtfW+77FMhk+Avc/rDX63E7oRsbNx3pV32S0REdDuGmQ4i\nXB0GH0cvHMtLQGF1cbvsU6mQYsncCHi5OWDL4XRsO5LeLvslIiK6GcNMByESRJgSNB56gx47M+Lb\nbb8uKjn+NyYC7s5yrN+bij2nsttt30REREArwkxFRQUAQKPR4MSJE9DzLBabM8g7Ah4KNxy6dgyl\nte13c0hPFwcsmRsBJ0cp/ht3CUcSc9tt30REREaFmddffx3btm1DSUkJYmJi8PXXX2PFihUWLo1a\nSywSY3LQONTr67Enc3+77tvXQ4klcyOgkEvw6a8Xcfqypl33T0REnZdRYebChQuYPXs2tm3bhvvv\nvx8ffPAB0tO5PsIWDfMZBBeZE/ZlH0Kltn3vdB3o7YTFs/tDIhHwr03ncTGtqF33T0REnZNRYebG\nabd79+7FhAkN1zSpq+MNB22RVCzFhMAxqNXVIT7rYLvvv7u/C559IByAAf/48RxSc0rbvQYiIupc\njAozwcHBmDZtGiorK9G7d29s2rQJLi4ulq6NTDSqyzAoJY7Ym3kQNfW17b7/sGB3/PHevtDW6/H+\nD2eQmV/R7jUQEVHnYVSYeeONN7BmzRqsW7cOANCjRw+8/fbbFi2MTKeQyDE+YBQq66twIOeIVWoY\n2FONhdN6obKmHmtiTyOvuH0PeRERUedhVJi5ePEicnNzIZPJ8N577+Htt99GcnKypWujNhjrPwIK\nsRy7MvZBq9NapYaR/Xwxb3IoyirrsPq70ygqq7FKHURE1LEZPTMTHByMEydO4Ny5c1i+fDn+8Y9/\nWLo2agNHqSNG+w1HWV05Dl87YbU6Jg70x/1jQlBYVoPV359GWSXXWhERkXkZFWbkcjm6du2KXbt2\nYc6cOejevTtEIl5vz9ZNCBwNqUiCnRl7odPrrFbHPcODED00ELlFVXg39jSqaqwzU0RERB2TUYmk\nuroa27Ztw86dOzFq1CiUlJSgrKzM0rVRGznLnDCiyxAU1hTjRN5pq9UhCAJmj+uGcRFdkJFfgfc3\nnEVtnfXCFRERdSxGhZnnn38emzdvxvPPPw+VSoWvv/4aCxYssHBpZA6TAsdCJIgQl77HqrMzgiDg\nkSk9MbSPN1KySvHRT+egredVpImIqO3EK4y4lK+/vz/Gjx8Pg8EAjUaDiRMnom/fvu1Q3t1VVVlu\nDYZSKbfo+O3BQeKA4poSJBUno7yuAn09ekMQBKvUIggCIrp7IiOvHOeuFOGaphIDe6ohMqGejtCb\njoh9sV3sjW1iX4ynVMqbfc6omZmdO3diypQpeOWVV/Dyyy8jKioK8fHtdzNDaptZPe6Bn8oXB3KO\nYlfmPqvWIhGL8NR9fdEr0BUnkwvwxdYk6K9flJGIiMgURoWZTz/9FL/88gs2bNiAjRs3Yv369Vi7\ndq2layMzUUgUeCp8IVxkztiUshVnCs5btR6ZVIxnZ4Uj2NcZB8/n4rudlxuvMk1ERNRaRoUZqVQK\nd3f3xq+9vb0hlUotVhSZn5vCFU/2XwCpSIIvEr9DRlmWVetxkEuweE5/+KmV2HUyC5v2X7VqPURE\nZL+MCjNKpRLr1q1DUlISkpKS8Omnn0KpVFq6NjKzQCd/LAh7GFp9Pf599nMU15RYtR6VgxRL5kbA\ny9UBmw+lYfvRDKvWQ0RE9smoMLNy5UqkpaXhpZdewtKlS5GdnY1Vq1ZZujaygP7qMDzQfTpK68qx\n9uznqKm37lV5XVVy/G9MBNyc5PhhTwriT2dbtR4iIrI/gsHExQqpqano1q2buetptYKCcouNrVY7\nWXR8azEYDIhN3oT92YfRx6Mnnuy3AGKR2Ko1XSusxN//m4DKai3+ODMMQ3p7t/j6jtobe8e+2C72\nxjaxL8ZTq52afc7ky/i++uqrpm5KViYIAmb3uBd93HviQuEl/Jiy2dolwddDiSVzI6CQi/HJ5gs4\nk6KxdklERGQnTA4zPPvEvolFYjzedx66KH0Qn3UIezIPWLskBPk44bkH+0MsEvCvTedxKaPY2iUR\nEZEdMDnMWOvCa2Q+DhIFngxfCCeZCj9e3oxzmgvWLgmhAa545oF+0OsNeH/DWVy9xttmEBFRyyQt\nPblhw4ZmnysoKDB7MdT+PBzc8FT4QryX8G+sS/wWz0f+CQFOXaxaU98QD/zx3jCs/fk83o09jRfn\nRcJfrbJqTUREZLtaDDMnT55s9rmIiAizF0PWEeQcgAV9YvDJ+a/x77Of44VBz8BV7mLVmgb18sLC\nut5Yt/Ui1sSextJ5kfByc7RqTUREZJtMPpvJVvBsJvPZkb4Xm1K3IkDVBX+JfAoKSfP3wWi3mo5n\n4rtdl+HposDSRwbCzamhps7WG3vBvtgu9sY2sS/Ga+lsphZnZm54+OGH71gjIxaLERwcjD/96U/w\n9m75NFqyD5MCxyK/SoND147hiwvf4Yl+j0IkmLysyiwmDw5AdW09Nh24itXfn8KL8yLh7Cizak1E\nRGRbjPqXasSIEfDx8cFjjz2GhQsXIiAgAAMHDkRwcDCWLl1q6RqpnQiCgJie96OnW3ec01zATylb\nrF0SAGDGyK6YMjgA1wqr8F7sGVTV1Fu7JCIisiFGhZmTJ09izZo1mDJlCiZNmoQ333wTiYmJWLBg\nAbRaraVrpHYkFonxh77z4ePohd2Z+7Ev67C1S4IgCJg7oTvG9PdFel45PthwBjW1DDRERNTAqDBT\nWFiIoqKixq/Ly8uRk5ODsrIylJfzWF9H4yh1wFP9H4dKqsT6yz8jsfCStUuCIAh4NKoXBvfywuWs\nUvz53b1IySq1dllERGQDjFoAvGHDBrzzzjvw8/ODIAjIysrCH//4R3h4eKCqqgoPPfRQe9TaJC4A\ntpwrpen44NR/IBHEeH7gn+Cn8rV2SajX6fFjfCp+O54JAIgeEoj7RgdDKrHu7RioQWf/zNgy9sY2\nsS/Ga2kBsNFnM1VUVCAtLQ16vR6BgYFwdXU1W4FtwTBjWSfzTmNd4rdwk7vihUHPwkXe/JupPeWX\n12HNNydQUFIDP08lFt3TG119nK1dVqfHz4ztYm9sE/tivDbfm6myshJffvklPvroI6xduxaxsbGo\nqbn73ZZXrVqFuXPnIiYmBmfPnm3yNWvWrMH8+fMb9/PMM89g/vz5iImJwf79+40pjyxooHcEZoRE\nobi2BP85+wXqdHXWLgkAEBbigVcfH4LxkX7I1lRi5VcnsWn/FdTr9NYujYiI2plRYWb58uWoqKhA\nTEwM5syZA41Gg5dffrnFbY4dO4b09HTExsZi5cqVWLly5R2vSUlJwfHjxxu//umnnxAcHIyvv/4a\nH3zwQZPbUPuLCpqAoT4DkV6eiS8vfA+9wTYCg0ImwfwpPbFkbgSclTL8cjANK786iayCCmuXRkRE\n7cioMKPRaPDiiy9i3LhxGD9+PP76178iLy+vxW0OHz6MSZMmAQC6deuG0tJSVFTc+o/Mm2++icWL\nFzd+7ebmhpKSEgBAWVkZ3NzcWvXNkGUIgoCHe81CD9cQnC44j19St1u7pFuEBbvj9UVDMapfw9lO\nr31xHFuPpEOvt+vrQRIRkZGMCjPV1dWorq5u/Lqqqgq1tbUtbqPRaG4JI+7u7rfcz2njxo0YMmQI\n/Pz8Gh+bPn06cnJyMHnyZDzyyCN48cUXjf5GyLIkIgn+p9+j8HL0xI6MvTiYfdTaJd3CUSHB49N7\n488PhkOpkGLD3lT8/ZuTyC2qsnZpRERkYUZdAXju3LmYOnUq+vbtCwBITEzEc88916od3bzOuKSk\nBBs3bsTnn39+ywzPzz//jC5duuCzzz5DUlISli1bho0bN7Y4rpubIyQWPJOlpQVHnY0aTnjZ6Vn8\ndefbiE3+CSE+fgj36W29eprozWS1E4aG++E/G89i3+lsrPj8OBZM74PpI4MhEvFO7+2Bnxnbxd7Y\nJval7YwKMw8++CBGjhyJxMRECIKA5cuX4+uvv25xGy8vL2g0msav8/PzoVarAQBHjhxBUVER5s2b\nh7q6OmRkZGDVqlWora3FqFGjAAC9evVCfn4+dDodxOLmw0pxseX+z5urzO8khgP+0PdRfHjqY6w5\n+DGWDHwavsr2v53F3XqzILon+gS54r+/JePjTeewLyETj0/rDU9Xh3assvPhZ8Z2sTe2iX0xXpvP\nZgIAX19fTJo0CRMnToS3t3ezZyfdMHLkSMTFxQFomMnx8vKCSqUCAERHR2Pr1q344Ycf8NFHHyEs\nLAzLli1DUFAQzpw5AwDIzs6GUqlsMciQdXR3Dca83rNRXV+DtWfWobzONhfcDuntjdcXDUFEd08k\nZZRg+bpj2HcmB3Z+b1UiIrqNyXcRvNs/CJGRkQgLC0NMTAzeeOMNvPLKK9i4cSN27NjR7DZz585F\ndnY2HnnkESxZsgQrVqwwtTyysCE+kZjWdRIKa4qvn7Jtm7e1cFHJ8eysflg0vTdEgoAvtiXh/fVn\nUVze8povIiKyH0ZfNO92jz76KL766itz19NqvGie9RgMBnx54XsczzuFgV79sSDsoXa7y7YpvSkq\nq8HnWy8iMa0YjnIJ5k0JxbA+3nfcEZ5Mx8+M7WJvbBP7YryWDjO1uGZm7NixTf6iNxgMKC4ubntl\nZNcEQcC83rNRVFOMk/lnoHbwwIxu0dYuq1nuzgo8PzcC8adzELs7BZ9svoCESwWYH9UTzkqZtcsj\nIiITtRhmvv322/aqg+yUVCTBE/0ewzsnP8L29N3wdPTEcN9B1i6rWYIgYNwAP/QJdse6Xy/gZHIB\nkrNK8GhUTwzs6WXt8oiIyAQmH2ayFTzMZBvyKvOx+uQ/UaurwzMRf0CoWzeL7s8cvdEbDNh5PBMb\n4htugzAszBvzJodCqZCaqcrOh58Z28Xe2Cb2xXhmOZuJqCXeSi/8T79HAQCfnPsKeZX5Vq7o7kSC\ngClDArFi4WAE+zrhSGIeln96FGdTC61dGhERtQLDDJlNqFs3PNxrFqrqq/Gvs5+joq7S2iUZpYun\nEsvmD8QDY0JQXqXF++vP4IttF1FdW2/t0oiIyAgMM2RWw3wHITpoAjTVhfj43JfQ6u0jEIhFItwz\noiuWPzYIAV4q7DtzDX/77BgupnOhOxGRrWOYIbObHjIFA736I7U0Dd9cXG9XF6kL9HbC8scG4Z4R\nXVFcXot3vjuFb3cko1ars3ZpRETUDIYZMjuRIMIjvecg2DkQx/NOYWvaTmuX1CoSsQgPjAnBsvkD\n4evhiJ0ns7Bi3TGkZJdauzQiImoCwwxZhEwsxR/DF8BD4YatV3fgWG6CtUtqtZAuznhlwWBMGRyA\n/OJq/P2/J7F+bwq09Xprl0ZERDdhmCGLcZKp8FT/x+EgUeCbi+uRUnLV2iW1mkwqRszEHnhxXiQ8\nXRTYdiQDr315HOm5PJWSiMhWMMyQRfkqvfGHvvOhhwEfn/sS+VWau29kg0IDXPHq40MwfoAfsgsq\n8cZXJ/Dzgauo13GWhojI2hhmyOJ6ufdATM/7Uamtwtqz61CprbJ2SSZRyCSYH9UTS+ZGwFkpw88H\nrmLlVyeRXWCbdw0nIuosGGaoXYzsMhSTA8chv0qDT859hXo7OWW7KWHB7nh90RCM7OeD9LxyvPrF\ncWw7mg693n7O2iIi6kgYZqjd3NstGhHqvrhccgXfJW20q1O2b+eokGLR9D54dlY/OCqkWL8nFW9+\nk4C8IvucdSIismcMM9RuRIIIj/WJQZBTAI7knkBc+h5rl9RmA3qo8fqiIRjcywsp2aV4Zd0x7DqZ\nBb0dBzUiInvDMEPtSiaW4Y/hC+Amd8XmK9txMu+0tUtqMydHGZ66ry+enBkGqUSEb3YkY/V3p6Ap\nrbZ2aUREnQLDDLU7F7kTnuq/EAqxHF9d/AFXStOtXZJZDOntjTf+MBQR3T2RlFGCv312DPvO5Nj1\n4TQiInvAMENW4afyxeN9H4HeoMd/zn4BTXWRtUsyCxeVHM/O6odF03tDEIAvtiXhgw1nUVxea+3S\niIg6LIYZspowj56Y3WMmKrSVWHtmHaq0HeOwjCAIGNnPF68vGoo+Xd1wNrUQf/vsKI4k5nKWhojI\nAhhmyKrG+A/HhIDRyK3Kx2fn/wudvuPc0NHdWYElcyMwf0ootDo9Pt58Af/adB5lVXXWLo2IqENh\nmCGru7/7dPTz7IOk4suITf6pQ81eCIKA8ZH+eO3xIQj1d8HJSwVY/ulRnLxUYO3SiIg6DIYZsjqR\nIMKCPg8hQNUFB3OOYWdGvLVLMjsvN0f838ORmDuhO6prdfjnT+fwyeZEVNZorV0aEZHdY5ghm6CQ\nyPFk/4Vwlbvg59RtOJ1/ztolmZ1IJCBqSCBWLByMYF8nHE7Mw/JPj2L/2RxUVDPUEBGZSrxixYoV\n1i6iLaosuP5AqZRbdHy6lUKiQKhbdxzLS8DpgvPo7R4KV7lLk6+15944OcowKtwXErEI51ILkZCs\nQdyxTFzKLEF1bT1cVXI4yCXWLtMk9tyXjo69sU3si/GUSnmzzwkGO1+gUFBQbrGx1Woni45PTTun\nuYD/nP0STjIVXhj0DNwVbne8pqP0Jr+4CseT8pGQrMHVa2WNjwf5OCGyhycGhKrh56mEIAhWrNJ4\nHaUvHRF7Y5vYF+Op1U7NPscw0wK+yaxnT+YBbLj8C7ooffD8wD/BQaK45fmO2Jvi8lqcvlyAhMsa\nJKUXQ3f9xpVerg4YEOqJAT3U6O7nApHIdoNNR+xLR8He2Cb2xXgMMybim8y6fkjehPisQ+jj3hNP\nhi+AWCRufK6j96aqRouzqYVIuKzBuSuFqK1rOGXd2VGKiB4NwaZPVzdIJeK7jNS+Onpf7Bl7Y5vY\nF+O1FGbs88A8dQqzus9AQXUhLhRewobLv2BO6H12c7ilrRwVUgwL88GwMB9o63W4mF6MhGQNTl8u\nwL4z17DvzDXIpWL0C3HHgFA1wrt5QKmQWrtsIiKrYJghmyUWibEobB7eTViLfdmHoXb0xISA0dYu\nq91JJWKEd/NEeDdP6KN64kpOGRKSC5CQXIATlxr+E4sE9Ax0xYAeagzo4Ql3Z8XdByYi6iB4mKkF\nnP6zDcU1JXjnxIcoq6vAE/0eRbg6jL0BYDAYkKOpRMJlDU4lFyAt9/efR7CvU0OwCVWji4dju81o\nsS+2i72xTeyL8bhmxkR8k9mOjLIsvJewFgCweOBTGBjSm725TVFZDU5d1uDU5QJcyihpXEDs7eaA\nAaFqRPZQI8TPGSILBht+ZmwXe2Ob2BfjMcyYiG8y23Km4Dw+Ofc1nGVOeGPy/0JUzUMpzam8voD4\nVHIBzl0pQq32+gJipQwR3T0RGapG7yA3SCXmvW4mPzO2i72xTeyL8RhmTMQ3me3ZmRGPn1K2QCl1\nwLxes9Ff3dfaJdk8bb0OiWnFOJVcgNMpGpRXNVxtWC4TIzzEAwNCPREe4glHRduX0PEzY7vYG9vE\nvhiPYcZEfJPZpkM5x7H+8ibU6bQY5z8S93WfDqmIa9mNodcbkJJdilOXGxYQF5TUAADEIgG9gtwQ\n2cMTET3UcHNq/kqbLeFnxnaxN7aJfTEew4yJ+CazXTWycryz7z/IrcpHoJMfFvV9BJ4OHtYuy64Y\nDAZkaypxKrkACckapOfdvIDYGZGhDYejfD2URo/Jz4ztYm9sE/tiPIYZE/FNZrvUaidk5Rbih0ub\ncCT3BBRiBeb1fhCRXuHWLs1uFZbW4NTlApy6rMGljBLor/9q8HF3xIBQT0T2UCO4S8sLiPmZsV3s\njW1iX4zHMGMivsls1829OXrtJL6/tBF1ei3G+A3HA93vgVTMC8i1RUW1FmdTNTiVrMG5q4Wo0+oB\nAC5KGQZcv2dU7yA3SMS3LiDmZ8Z2sTe2iX0xHsOMifgms1239ya3Mg+fnf8GOZW5CFB1weN958HL\nUW3FCjuOOq0OF9KKkXB9AXFFdcMCYge5GP1CPBAZqka/EA84yCX8zNgw9sY2sS/GY5gxEd9ktqup\n3tTp6rA++RccunYMCrEcD/WahUHeEVaqsGPS6fVIySrFqcsaJCQXQFP6+wLi3l3dMLRvF8hFgKuT\nHG4qOVxUsjtmb8g6+PvMNrEvxmOYMRHfZLarpd4czz2F7y79iFpdHUZ1GYpZPe6FjIedzM5gMCCr\n4PoC4ssFyMiraPJ1zo5SuKrkcHWSN/ypksGt8e9yuDnJoXKUWvRifsTfZ7aKfTEew4yJ+CazXXfr\nTV5VAT47/19kV1yDn8oXi8LmwVvp1Y4Vdj6akmoUVmmRkV2K4opalFTUoqS8FsUVdSgpr228cF9T\nxCIBripZs6Hnxp8Ocp6Cbyr+PrNN7IvxGGZMxDeZ7TKmN3U6LX5M2YwD2UcgE8vwUM8HMMQnsp0q\n7Jya64vBYEBNnQ4lFbUoLq+96c+GoFNyI/xU1DXehqEpcpm4IdyoZI2hx+16AHK7HoBcVHKzX9m4\nI+DvM9vEvhivpTDD/82hDksmluKhng8g1DUE3yb9iC8vfI/LxamYHToTMrHM2uV1KoIgwEEugYNc\n0uJ1a/QGAyqqtI2B55bQ0zjTU4u8oqoW96dykN40o3PnYS1XlQxOShkPbRF1EAwz1OEN9I5AgJM/\n1p3/Lw5dO460skws6jsPPkpva5dGtxEJApyVMjgrZQhC8/8XVq/To7SiruFw1vWAcyPs3Ag+mtJq\nZBU0vY4HaDi05ay8Oejc9Pfrf3o6KyCXiS3xrRKRGfEwUws4/We7TOmNVqfFxpQt2Jd9CDKRFDE9\nH8BQ34EWqrBzsrXPTHVtfePhqxuHs4pvCj03ZoBaOrTl7CiFh4sD1K4KeLo4wNNFAU9XBdQuDnB3\nVtjNIS1b6w01YF+Mx8NMRACkYinm9rwPPdxC8M3FDfjqYiySi1Mxp+d9kPOwU4dk9KGtau0tszol\n5bUoKq9FYWk1CkprkJFXjqvXyu7YVkDDaeieLorr/zk0Bh1PFwXcnOUQi+wj7BDZM4YZ6nQivcIR\noPLDusT/4kjuCaSVZ2JR2Dx0UflYuzSyApEgwNlRBmdHGQKbOfKoNxhQUl4LTWkNNKXV0JTUoOD6\nn5rSGqRkl+JyVmmTY7s7Xw87rg5Q3xR4PF0c4KLiuh0ic+BhphZw+s92maM3Wn09NqVswd6sg5CK\npJgTeh+G+w6CwH9cTNZZPzP1On3DTE5Jw0yO5qagU1BajdKKuia3k4hF8HBRNIQcV4fGGR61qwM8\nXBRwcpCa7f3YWXtj69gX4/EwE1ETpCIJZofORA+3bvjvxfX4Jmk9kotTEdPzfigkcmuXR3ZEIhbB\ny9UBXq4O6N3E83VaHQrLGsKNpqT6esj5/e/NnZ0ll4obZnGcf5/ZuXn9jqOCv8KJAIYZIkSo+yJA\n1QWfJX6D43kJyCjPxKK+j8BP5Wvt0qiDkEnF8PVQNrt2p7q2HoXXZ3EaAs/12Z3rszzZBZVNbqdU\nSK7P7Px+6MrzplkeuZRnYlHnwMNMLeD0n+2yRG/q9fX4OXUbdmfuh1QkwYM97sXILkN52KkV+Jkx\nP4PBgMqa+jsOXRWW1qCgpOHPunp9k9s6O0obg023ADe4K2UI8FbB00XBtTo2gp8Z4/EKwCbim8x2\nWbI35zQX8NWFWFTVV2OgV3881GsWHCQKi+yro+Fnpv0ZDAaUVWmhKam+ZVHyjfBTWFZzx6nnCpkY\n/moVArxU8Pe6/qdaCYWMk/XtjZ8Z4zHMmIhvMttl6d4U1RRj3flvcbUsHWoHDyzq+wgCnPwstr+O\ngp8Z26PXG1BcXosKrR6JKQXIzK9AZn4FcguroL/t17+XqwMCvG4NOZ4uCs5OWhA/M8ZjmDER32S2\nqz16o9PrsPlKHHZk7IVEJMGs7jMw2m8Yf7G3gJ8Z23V7b7T1OuRoqhrDTWZ+OTLzK1BZU3/LdgqZ\nuDHYBNyYzVGreGVkM+Fnxng8m4nIBGKRGPd1n4bursH46mIsYpN/QnJJKub1mgUHiYO1yyNqE6lE\njCAfJwT5/P4PhMFgQElFXWOwufFfanYpUm66jo4AQO32+yzOjZDjwVkcshLOzLSAidl2tXdvimtK\n8Hnit0gtTYOnwh2L+j6CQGf/dtu/veBnxna1pTd1Wh1yCisbw03W9T9vn8VxkDexFseTszgt4WfG\neDzMZCK+yWyXNXqj0+vw69Xf8Fv6HkgEMe7vcQ/G+o3g/4nehJ8Z22Xu3hgMDWtxMvMrkFXw+yxO\nblEVbv5XRQDg5XbnWhwPZ87iAPzMtAbDjIn4JrNd1uzNhcJL+PLC96jQViJC3Rfzes2Go5SHnQB+\nZmxZe/WmTqtDtqaycXeXOskAABorSURBVPbmxn9VtbfP4kgQoFYiwMsJAd4N63D81MpOd20cfmaM\nxzBjIr7JbJe1e1NSW4rPE79FSslVeCjcsajvPAQ5B1itHlth7b5Q86zZmxuzOBk3HaLKzK9AXnET\nszjujnesxXF3lnfYWRx+ZozHMGMivslsly30RqfXYWvaTsSl7YZIEOG+7tMw3n9Uh/2lawxb6As1\nzRZ7U6vVIUdTecsMTlYTsziOcsnvZ1R5qdDFQwkXlQwuShlkdj6TY4t9sVU8m4nIAsQiMWaERKGH\nawi+SPwOP17ejMvFV/BI79lQSh2tXR6RzZNLxQj2dUawr3PjYwaDAUVlDWtxMgt+DziXM0uQnFly\nxxgOcglclDK4qmRwVsrgopQ3/t1VJYeLUgZnlQwqBymvetyBcWamBUzMtsvWelNaW4YvEr9Dckkq\n3OSuWNR3HoJdgqxdVruztb7Q7+y9N7VaHbILKpFVUIG8oiqUVtahtKK24c/KOpRXaVvcXiwSroed\n6/9dDzoNMzxyuKhkcL3+tVTSfrM99t6X9mS1w0yrVq3CmTNnIAgCli1bhvDw8Dtes2bNGpw+fRpf\nf/011q9fj19++aXxufPnz+PUqVMt7oNhpnOyxd7oDXpsS9uFbVd3QhAEzOw2FRMCRkMkiKxdWrux\nxb5Qg47em3qdHuVVWpTcCDg3BZ3SijqUVtaitKIOJRV1qNc1fS+rGxzkEriqbgs9twUfF2XDbE9b\nDyt39L6Yk1UOMx07dgzp6emIjY1Famoqli1bhtjY2Ftek5KSguPHj0MqlQIAZs+ejdmzZzduv23b\nNkuVR2R2IkGE6cGT0cM1GJ8nfoefUrbgcnEq5veZC5W06bslE5F5SMQiuDnJ4eYkb/F1BoMB1bW6\n38NNZS3KKupQcj30lFXWNv79WmFVi2PdPNvjqpJfP7TV8LXz9cNdLlaY7emMLBZmDh8+jEmTJgEA\nunXrhtLSUlRUVEClUjW+5s0338TixYvx0Ucf3bH9P//5T6xevdpS5RFZTOj/t3f/wVHX977Hn9/9\nkWyS3SSbZDdkExIgoEjkN8QSsD9uoXrbc3HE1qRg7D13pnM8Tv/QsZ1yqJZ2rJzijDOeFkbbaet4\n6TCGYmr1lkrViuVKIKgoGAT5GQibX5tsfv8i2T1/JKxZAiEKye6S12OG2ez3Vz5fPgFefD7v/Xyd\nM/mPwkd4seolPm46xn9WPsv/KVhHfuq0SDdNZNIzDINEm4VEm4Ws9NH/k9E/EKDtCqM7rZ19tHT0\nhvbVNHZytm700ZXEeEtoRGf4FFd2ZjKdnb1Xb+81b2i0XVffeT0DSlcbjTKA2XlO7AnWL37xL2jc\nwozP56OgoCD0Pi0tjcbGxlCYKS8vp7CwkOzskQ/vO3z4MFlZWbhcrmt+H6czEcs4Jt7RhrUksqK5\nb1w4+JnnEV75ZDdlH7/Gs4eep2TualbPXnXTTztFc79Mduqbzy9rDMcEg0E6e/rxt/Xgb+/B39Yb\nem1u76Fl6NXf1nvN0Z5Y982iafz7ffMn/PtO2KeZhpfmtLS0UF5ezgsvvEB9ff2IY3fu3Mm99947\npuv6/eP3g6G5zOgVK31zp2sFUxZ4eKFqO9sPv8KHNZ/w4JxiHHH2a58cg2KlXyYj9c34s5kgK8VG\nVooNSLniMcNHe1o6esFspq2t+4rHXrOgdZQDRj33GqWyo+0d7VTDgPn5GeP2cxaRmhm3243P5wu9\nb2hoCI207N+/n+bmZtatW0dfXx/nzp1j06ZNbNiwAYADBw7w+OOPj1fTRCbULOcM/qPwEf7v0TKO\nNh/nPyuf5V8L1jLLOSPSTRORCWYxm0hLtpGWbAMUMm+UcRvvXr58Obt37wagqqoKt9sdmmK6++67\n2bVrFzt27GDLli0UFBSEgkx9fT1JSUnExcWNV9NEJpwjzs6/z/9X7sn/n7Rf7OC/Dv2G18++RSA4\n+qcqRETk2sZtZGbRokUUFBRQUlKCYRhs3LiR8vJyHA4Hq1atuup5jY2NpKWljVezRCLGZJj4Rt7X\nmJEyjReqtvPa6d2c8J/mwTnFpMQnX/sCIiJyRVo0bxQa/otesd43HX2dbPukjI+bjmE2zMx3FVDk\nKeRW58yYLhCO9X65malvopP6Zez0OAORKGOPS+Lf5v1v9nkr2VPzLh80HOaDhsOk2ZwUZS3lS1lL\ncNpSI91MEZGYoDAjEiEmw8SK7C+x3HMHZ9vOs89byXsNH/L/zvydv555gznpt1LkKWRu+m2YTVpw\nS0TkahRmRCLMMAymp+QyPSWX+2b9C+83fMQ+70Gqmo5R1XQMR5ydL01ZQpFnKe7Ea6+9JCIy2SjM\niEQRm8XGcs8dLPfcwYWOWiq8B6ms+4A3zu3hjXN7mJU6gyJPIQtcc4kzT/wqmyIi0UgFwKNQYVb0\nmkx9c3HgIh/5qtjnreS4/yQACRYbSzMXUeQpZKrDE+EWfmYy9UusUd9EJ/XL2KkAWCSGWc1WlmQu\nYEnmAnzdTezzHmR/7UH+eWEf/7ywj1xHNkWeQpZkLiTBYot0c0VEJpxGZkahxBy9JnvfDAQGONp8\nnHe9lVQ1HSMQDBBnsrLIPZ8iTyEzUvKu+jC48TTZ+yWaqW+ik/pl7DQyI3KTMZvMzM2Yw9yMObT0\ntnKg9n32eSvZX/ce++veIzPRTZFnKXdMWXzTPgdKROQSjcyMQok5eqlvRgoEA5xsOc273ko+bDhC\nf3AAs2FmXsYclnvu4Na08V+QT/0SvdQ30Un9MnYamRGZBEyGiVucM7nFOZOOWzo5WHeIfd5KDjUe\n4VDjEdJsTpZlLWFZ1lItyCciNxWNzIxCiTl6qW/GJhgMUt0+tCBf/Yf0DvRhYHBb+i0szypkbsac\nG7ogn/oleqlvopP6Zew0MiMySRmGwbTkXKYl57Jm5v/ig4bD7PNWcrTpOEebjuOw2rkjazFFnkIy\ntSCfiMQohRmRScJmiafIs5Qiz1K8HXXsq62ksvYD3jz3Dm+ee4eZqdMpyipkoXsucea4SDdXRGTM\nNM00Cg3/RS/1zY1xMdDP4caP2ec9yDH/CeDSgnwLhxbky/5c11O/RC/1TXRSv4ydpplE5IqsJguL\nMxeweGhBvora96jwHuSfFyr454UKpjqyKcoqZOmUBSRYEiLdXBGRK9LIzCiUmKOX+mb8XFqQb5/3\nIB83fUIgGMBqsrLIPY8iTyH5KdOuuiCf+iV6qW+ik/pl7DQyIyJjNnxBvtbeNg7Uvs+7tZUcqHuf\nA3Xvk5nooshTqAX5RCRqaGRmFErM0Ut9M7EGF+Q7E1q3pj/Qj8kwMS+jgCJPIbelzcJkmNQvUUx9\nE53UL2OnkRkRuS6DC/Llc4szn/sv3kNl/eCCfB82HuHDxiM441NZlrWEuxO+jCkYH5HnQonI5KWR\nmVEoMUcv9U3kBYNBzrXX8K63kvfqD9E70AdAkiWRbIeHqXYPOQ4POXYPmYmuG7o4n3x++jMTndQv\nY6eRGRG54QzDIC95KnnJU1kz81841HCYkx2nONVUzaf+k3zqPxk61mqy4LFnDQs42WTbp2g9GxG5\nIRRmROS62SzxLPMsZbXrf9DY2E53fw8XOmo5336Bmg4vNe2Dv6rbzofOMTDITHKHjeBMdWSTZE2M\n4J2ISCxSmBGRGy7BYmNm6nRmpk4PbesP9FPbWU9Nu5fzHV5qhoJOXWc9B+sPhY5zxqeSE5qmyibH\n7iHNlqo6HBG5KoUZEZkQFpOFqY5spjqyWTa0LRAM4OtupqbDOziK0+7lfMcFjviOcsR3NHSu6nBE\nZDQKMyISMSbDhDsxA3diBovc80LbW3vbqem4wPn2z0ZwVIcjIlejMCMiUScl3kFK/GwK0meHtn2e\nOpwcexZTh6aochwe7NakSNyGiEwQhRkRiQmftw7nvfoPQ8eF1+EMjuKoDkfk5qEwIyIxS3U4IgIK\nMyJyk7kRdTg59sFw407MwJWQTmp8ikKOSBRTmBGRSeGL1uHAYEBKtznJSEgf+pVGRkI6roR00m1p\n2CzxE307IjKMwoyITFqj1eFc6KjF191EY3cTTd3NNHY38Unzp1e8jsNqDwWc4WEnIyGNlLhk1eaI\njDOFGRGRYYbX4Vyuu7+Hpu5mfN1N+HoGA46va/Dr6vYazrSdG3GO1WQdCjdDAcf2WdhJT0jDatJf\nwyLXS3+KRETGKMFiGywWdnhG7BsIDODvbR0MOt1N+IZGc5q6m2jsbqa2s37EOQYGqfEpYSM5oemr\nhDSSLIka1REZA4UZEZEbwGwyh0ZgYFbYvmAwSGd/VyjkXD59dbLlDCdaTo+4ZoLFRobtStNX6ThV\nlCwSojAjIjLODMPAbk3Cbk1iWnLuiP0XBy7S1OMPCzu+nsERnbquBs53eEecYzJMpNmcuC4POrbB\nQGWz2Cbi1kSigsKMiEiEWc1WpiS5mZLkHrEvEAzQ1tf+Wci5bHTnakXJdmtSWNC5rWcGGUYmKfHJ\n4307IhNOYUZEJIqZDBOp8SmkxqeEferqkp7+nsFw09McPrLT3RRWlPy3s28BkG5LY0ZKHjNS8pie\nMo1s+xRMhmlC70nkRlOYERGJYbYxFCU3dvtoGmjkiPdTzrRWc7D+EAfrDwEQb45jenIe00MBJ5cE\nS8JE34bIdVGYERG5SQ0vSna5FrPCtZxgMEhDVyOnW6s53XqW063VHPOf4Jj/BDD4CauspMyh0Ztp\nTE/Jw5WQrk9VSVRTmBERmUQMY/DJ4plJbpZ5lgLQebGLM63VnGmt5nRrNWfbzuHtrOP/ew8Ag/U3\nM1KmhQJOriMbq9kaydsQCaMwIyIyySVZE7k94zZuz7gNGJyeutBRGzZ6c9hXxWFfFQBmw0yuI3to\namow5KiwWCJJYUZERMKYTWZyk3PITc7hq1OXA+DvaeH0sNGbS8XF/zi/F1BhsUSWwoyIiFyT05bK\nYlsqizPnA9A30Ed1Ww1nWqs51XpWhcUSUQozIiLyucWZ45jlnMEs5wyAywqLB6enrlRYPD0lj3wV\nFssNpjAjIiLX7fMUFr+rwmK5wRRmRERkXFyxsLizltMtKiyWG0thRkREJoTZZCbXkUOuI7yw+Ezb\nOU63nFVhsXxhCjMiIhIxTlsqTlsqi9zzgPDC4tNtgwHn8sLiXEcO7sQMXAkZuBMzcCe6yLClaYpq\nElOYERGRqHHNwuK2ak62nOFEy+mw8wwMnLZU3EMBx5WYgTth8DXDlobZZI7E7cgEUZgREZGodaXC\n4osDF2nsbqKx20dDly/02tDlC/sE1SUmw0S6zYkrMYPMBFdY0EmzpWra6iagMCMiIjHFarbisU/B\nY58yYl9Pf2940Ony0dDdSEOXj6NNxznK8bDjLYaZjIT0UMAZnLYanMJKiU9W0IkRCjMiInLTsFni\nmerwMPUKTxHvutj92ShO91DQGfq6rqthxPFWkzWsNsc1LOw4rHatkRNFFGZERGRSSLQmkGedSl7y\n1LDtwWCQzotdoRGcxi4f9ZfCTrePCx21I65lM8dfIei4cCdmkGRNnKhbkiEKMyIiMqkZhoE9Lgl7\n3OAifsMFg0Ha+tpp6GocGs1pCn3t7aznXPuFEddLsiQOTlsNq8259JpgsU3QXU0uCjMiIiJXYRgG\nKfHJpMQnM8uZH7YvEAzQ0tsaKj4enMIaDDrn2ms423ZuxPUccfZQsMlMcDG9O5vujosYhoHJMGEw\n/NXAMEyDr5e2GwYGI7eZGHoddbvps2tiDF3LuCmmyxRmREREvgCTYSLN5iTN5mR22qywfQOBAZp7\nWj6buhr2iavTQw/nBOD0yOtOtEuBJixEDQWfy4NVWMhiaJthYMLAbJhYlfe10MNIJ5LCjIiIyA1m\nNplxJabjSkynID1838VAP03dzTR0NdJn6aa1vYtAMECQIIFgkGAwSIAAwWBg6OuhbaFjhh8bGHzl\nsv2h8wLDrhcMP/aq2wOffc/h1wj7vv0jrhEE2vraI/L7rTAjIiIygawmC1OS3ExJcuNyOWhsjEwA\nuJnoA/QiIiIS0xRmREREJKYpzIiIiEhMG9cws2nTJoqLiykpKeHw4cNXPOaZZ56htLQ09P7VV19l\n9erVrFmzhj179oxn80REROQmMG5hprKykurqasrKynjqqad46qmnRhxz8uRJDh48GHrv9/vZunUr\n27dv5/nnn+ett94ar+aJiIjITWLcwkxFRQUrV64EID8/n9bWVjo6OsKO+eUvf8mjjz4ads6yZcuw\n2+243W6efPLJ8WqeiIiI3CTGLcz4fD6cTmfofVpaGo2NjaH35eXlFBYWkp2dHdpWU1NDT08PDz30\nEGvXrqWiomK8miciIiI3iQlbZyYYDIa+bmlpoby8nBdeeIH6+vqw41paWtiyZQter5cHH3yQt99+\ne9Sllp3ORCwW87i12+VyjNu15fqob6KT+iV6qW+ik/rl+o1bmHG73fh8vtD7hoYGXC4XAPv376e5\nuZl169bR19fHuXPn2LRpE7feeisLFy7EYrGQm5tLUlISzc3NpKenX+3b4Pd3jdctaDGjKKa+iU7q\nl+ilvolO6pexGy30jds00/Lly9m9ezcAVVVVuN1u7HY7AHfffTe7du1ix44dbNmyhYKCAjZs2MCK\nFSvYv38/gUAAv99PV1dX2FSViIiIyOXGbWRm0aJFFBQUUFJSgmEYbNy4kfLychwOB6tWrbriOZmZ\nmdx1113cf//9ADz++OOYTFoKR0RERK7OCA4vZolB4zk8p+G/6KW+iU7ql+ilvolO6pexi8g0k4iI\niMhEiPmRGREREZncNDIjIiIiMU1hRkRERGKawoyIiIjENIUZERERiWkKMyIiIhLTFGZEREQkpinM\nXMGmTZsoLi6mpKSEw4cPR7o5MszTTz9NcXEx9913H3//+98j3Ry5TE9PDytXrqS8vDzSTZFhXn31\nVVavXs2aNWvYs2dPpJsjQGdnJz/4wQ8oLS2lpKSEvXv3RrpJMW3CnpodKyorK6murqasrIxTp06x\nYcMGysrKIt0sYfABpSdOnKCsrAy/38+9997LN77xjUg3S4Z57rnnSElJiXQzZBi/38/WrVt5+eWX\n6erq4te//jVf/epXI92sSe/Pf/4z06dP57HHHqO+vp7vfe97vP7665FuVsxSmLlMRUUFK1euBCA/\nP5/W1lY6OjpCD8mUyFm6dCnz5s0DIDk5me7ubgYGBjCbzRFumQCcOnWKkydP6h/KKFNRUcGyZcuw\n2+3Y7XaefPLJSDdJAKfTyfHjxwFoa2vTQ5Wvk6aZLuPz+cJ+qNLS0mhsbIxgi+QSs9lMYmIiADt3\n7uTLX/6ygkwU2bx5M+vXr490M+QyNTU19PT08NBDD7F27VoqKioi3SQBvvWtb+H1elm1ahUPPPAA\nP/7xjyPdpJimkZlr0NMeos+bb77Jzp07+cMf/hDppsiQV155hQULFjB16tRIN0WuoKWlhS1btuD1\nennwwQd5++23MQwj0s2a1P7yl7/g8Xj4/e9/z7Fjx9iwYYNqza6Dwsxl3G43Pp8v9L6hoQGXyxXB\nFslwe/fu5fnnn+d3v/sdDsfVn6AqE2vPnj2cP3+ePXv2UFdXR1xcHFOmTKGoqCjSTZv00tPTWbhw\nIRaLhdzcXJKSkmhubiY9PT3STZvUPvjgA1asWAHA7NmzaWho0LT5ddA002WWL1/O7t27AaiqqsLt\ndqteJkq0t7fz9NNP85vf/IbU1NRIN0eGefbZZ3n55ZfZsWMH3/nOd3j44YcVZKLEihUr2L9/P4FA\nAL/fT1dXl+ozokBeXh4fffQRABcuXCApKUlB5jpoZOYyixYtoqCggJKSEgzDYOPGjZFukgzZtWsX\nfr+fRx55JLRt8+bNeDyeCLZKJLplZmZy1113cf/99wPw+OOPYzLp/7GRVlxczIYNG3jggQfo7+/n\nZz/7WaSbFNOMoIpCREREJIYpnouIiEhMU5gRERGRmKYwIyIiIjFNYUZERERimsKMiIiIxDSFGRGZ\nMDU1Ndx+++2UlpaGnhb82GOP0dbWNuZrlJaWMjAwMObjv/vd73LgwIEv0lwRiREKMyIyodLS0ti2\nbRvbtm3jpZdewu1289xzz435/G3btmlxMREJo0XzRCSili5dSllZGceOHWPz5s309/dz8eJFfvrT\nnzJnzhxKS0uZPXs2n3zyCS+++CJz5syhqqqKvr4+nnjiCerq6ujv7+eee+5h7dq1dHd38+ijj+L3\n+8nLy6O3txeA+vp6fvjDHwLQ09NDcXEx3/72tyN56yJygyjMiEjEDAwM8MYbb7B48WJ+9KMfsXXr\nVnJzc0c8eC8xMZE//vGPYedu27aN5ORknnnmGXp6evjmN7/JnXfeyb59+7DZbJSVldHQ0MDXv/51\nAP72t78xY8YMfv7zn9Pb28uf/vSnCb9fERkfCjMiMqGam5spLS0FIBAIsGTJEu677z5+9atf8ZOf\n/CR0XEdHB4FAABh8zMjlPvroI9asWQOAzWbj9ttvp6qqik8//ZTFixcDgw+OnTFjBgB33nkn27dv\nZ/369XzlK1+huLh4XO9TRCaOwoyITKhLNTPDtbe3Y7VaR2y/xGq1jthmGEbY+2AwiGEYBIPBsGcP\nXQpE+fn5/PWvf+XgwYO8/vrrvPjii7z00kvXezsiEgVUACwiEedwOMjJyeGdd94B4MyZM2zZsmXU\nc+bPn8/evXsB6OrqoqqqioKCAvLz8zl06BAAtbW1nDlzBoDXXnuNI0eOUFRUxMaNG6mtraW/v38c\n70pEJopGZkQkKmzevJlf/OIX/Pa3v6W/v5/169ePenxpaSlPPPEE69ato6+vj4cffpicnBzuuece\n/vGPf7B27VpycnKYO3cuADNnzmTjxo3ExcURDAb5/ve/j8WivwJFbgZ6araIiIjENE0ziYiISExT\nmBEREZGYpjAjIiIiMU1hRkRERGKawoyIiIjENIUZERERiWkKMyIiIhLTFGZEREQkpv03kOzcyAuA\ntv0AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/multi_class_classification_of_handwritten_digits.ipynb b/multi_class_classification_of_handwritten_digits.ipynb
new file mode 100644
index 0000000..2e720d5
--- /dev/null
+++ b/multi_class_classification_of_handwritten_digits.ipynb
@@ -0,0 +1,2702 @@
+{
+ "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": [
+ "![img](https://www.tensorflow.org/versions/r0.11/images/MNIST.png)"
+ ]
+ },
+ {
+ "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": "d3c2b93b-5797-414d-a576-b269c44040fc"
+ },
+ "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",
+ "
1336
\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",
+ "
6747
\n",
+ "
8
\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",
+ "
440
\n",
+ "
7
\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",
+ "
8711
\n",
+ "
3
\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",
+ "
5825
\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",
+ "1336 1 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "6747 8 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "440 7 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "8711 3 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "5825 2 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
+ "\n",
+ " 778 779 780 781 782 783 784 \n",
+ "1336 0 0 0 0 0 0 0 \n",
+ "6747 0 0 0 0 0 0 0 \n",
+ "440 0 0 0 0 0 0 0 \n",
+ "8711 0 0 0 0 0 0 0 \n",
+ "5825 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": [
+ "![img](https://www.tensorflow.org/versions/r0.11/images/MNIST-Matrix.png)"
+ ]
+ },
+ {
+ "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": "4f4ccb8f-1163-4056-cc17-afdce59f9c65"
+ },
+ "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",
+ "
1336
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
6747
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
440
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
8711
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
5825
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
...
\n",
+ "
...
\n",
+ "
\n",
+ "
\n",
+ "
528
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
3532
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
1167
\n",
+ "
0
\n",
+ "
\n",
+ "
\n",
+ "
5730
\n",
+ "
58
\n",
+ "
\n",
+ "
\n",
+ "
4012
\n",
+ "
0
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
10000 rows × 1 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 72\n",
+ "1336 0\n",
+ "6747 0\n",
+ "440 0\n",
+ "8711 0\n",
+ "5825 0\n",
+ "... ..\n",
+ "528 0\n",
+ "3532 0\n",
+ "1167 0\n",
+ "5730 58\n",
+ "4012 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": "e6c0965a-fe1e-44e8-9caf-0f99a6b51d28"
+ },
+ "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": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ }
+ ]
+ },
+ {
+ "metadata": {
+ "id": "kL8MEhNgrx9N",
+ "colab_type": "text"
+ },
+ "cell_type": "markdown",
+ "source": [
+ "The first hidden layer of the neural network should be modeling some pretty low level features, so visualizing the weights will probably just show some fuzzy blobs or possibly a few parts of digits. You may also see some neurons that are essentially noise -- these are either unconverged or they are being ignored by higher layers.\n",
+ "\n",
+ "It can be interesting to stop training at different numbers of iterations and see the effect.\n",
+ "\n",
+ "**Train the classifier for 10, 100 and respectively 1000 steps. Then run this visualization again.**\n",
+ "\n",
+ "What differences do you see visually for the different levels of convergence?"
+ ]
+ },
+ {
+ "metadata": {
+ "id": "qQAnmNSlZpFq",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1136
+ },
+ "outputId": "22004025-2ae2-495b-a0c5-76b60246f89f"
+ },
+ "cell_type": "code",
+ "source": [
+ "weights1 = classifier.get_variable_value(\"dnn/hiddenlayer_1/kernel\")\n",
+ "\n",
+ "print(\"weights1 shape:\", weights1.shape)\n",
+ "\n",
+ "num_nodes = weights1.shape[1]\n",
+ "num_rows = int(math.ceil(num_nodes / 10.0))\n",
+ "fig, axes = plt.subplots(num_rows, 10, figsize=(20, 2 * num_rows))\n",
+ "for coef, ax in zip(weights1.T, axes.ravel()):\n",
+ " # Weights in coef is reshaped from 1x784 to 28x28.\n",
+ " ax.matshow(coef.reshape(10, 10), cmap=plt.cm.pink)\n",
+ " ax.set_xticks(())\n",
+ " ax.set_yticks(())\n",
+ "\n",
+ "plt.show()"
+ ],
+ "execution_count": 21,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "weights1 shape: (100, 100)\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABGcAAARNCAYAAAD/4C04AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Wd0leW6t/0L0gmkkISQkEAIvXep\n0qQXEZWqYMeuWFEURKxYWSrYsGBXLFhBFEVAEJDeQw0kIaSSQBLS3w97jP1hrbX5n3mfuZ77GWMf\nv4/mGOd1OTPnfd/zMmNYq7q6utoBAAAAAADAE7W93gAAAAAAAMD/ZhzOAAAAAAAAeIjDGQAAAAAA\nAA9xOAMAAAAAAOAhDmcAAAAAAAA8xOEMAAAAAACAh/wv9MPUvZ/LAVFNupgWmj3+dtncMe9q3dy0\nQDaPz9BznHOu401TZVOrlp9s9n2qXyfnnGs96TLZ1K3b3DSrJg5v+Ug2YU2iTbMy1hySTccrb5XN\nr4/Mkc3gJ3TjnHMVFedks+HJV2STMLKFab3AsCDZJHWYbJpldWznp7IpPJRrmvX7t5tkM/bu4bKp\nqqiSzdaPt5j21HVSN9mExNaVzY/P/GRaLzY8XDbjX37ZNKsmUv5cKpvCA9mmWWGt9Gc2toO+Pp/L\nOyqb0xtOmPaUuydTNglD9TVuxCU3mtb76LG5srl43uOmWVaf3nGHbKLr1TPNCvC/4C34v5o6AbKp\n2ypKNmHN65v2tPrV32TTqL6edctzz5nW++zlp2TTe+Zs06yaOHnoS9nEJF5smrXrff253rppv2ym\nLpwpm/1Lbde4jGNZusnLk80NbzxrWi/v9F+yaZQ03jTL6ut77pFNUvck06yorvGyqTxfLpvDX+yW\nTXzfJqY9uVq1ZFKWXyKb2gG2/w5bca5MNt1vuN80qybSjnwtG78gfa10zrnD72yTTdNpHWXjH6yv\nu58/tMy0p7aNGsmmx6wJstnz2vem9cI7NZBNh7H6Ob0mfp2tr9H128SYZkV0iJXNrJv089myLfr5\n88Dv75r2ZJHc93LZ7HjvLdOs+p3jZNO85zTTrJrYtEh/x/5mxTrTrDtfu0E2T1z/qmye/fp52Xz7\n0NumPSXHNZRNl/v0GULK8h9M6wXF1JFNu+Ez/uWf8ZczAAAAAAAAHuJwBgAAAAAAwEMczgAAAAAA\n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\n/X5UNi37mEbVSGLPJrI59NbfplkXz3tcNsfiP5XNn09/Lpvx4/qb9vToxKdlc91lw2TTavoA03qZ\nW/fpqLVplNnwQTfI5soRI0yznvjqTdmkrntVNtGN68smd/dp057+2LFINu0mdZZNQdpx03qdJ95p\n6nztcGambGp/q69LzjmXPEXfz+o00L+jVvH63tl/THfTnopP6ue31tcNlc3pnfpZ3jnn8vdlySax\npWmUWZvh+rNYt8lXpllnUrJl4xeov1OuXqu/myWOtV2UZn/4oGyOfaXvFwkjbS9876Txskmtnm6a\nVRM7dhySzdqNu0yzRk7V96pL7h4im9N/HJdN/wFJhh05d/JLfZ+KHWp45qpne0at2yTC1P0z/nIG\nAAAAAADAQxzOAAAAAAAAeIjDGQAAAAAAAA9xOAMAAAAAAOAhDmcAAAAAAAA8xOEMAAAAAACAhzic\nAQAAAAAA8BCHMwAAAAAAAB7icAYAAAAAAMBD/hf64Zp5C+WAbvcNMi204dlVstlx/LhszpaUyGbi\nmIGGHTm36bddstmdkyOb7+6/37TexY9MkE1QUIxpVk0ERATLpqyg1DRrxxevyiaiQ6xsVs99UTZt\npnQ27anR4Bay2fSiXm/H/iOm9QZNLZRN22E3mWZZHfzzsGy6jrW9Xt+8+4tsWmS3lk2POy+WzdGP\ndpr2NKKz3vstVz8lm+fm3WpaL2tHho4mm0bVyJHMTNnU/2aRaVZkbLhsorrHy2b1An1tHvH45aY9\nxfRMkM3O97bIpv3ULqb1GrbuZ+p8qfJ8uWx2r9xjmtWofn096zt9n4oOC5NNwih9nXTOuSO/pMim\n7cROsgmKDDGtd+ZH22vlax0unyGb/EGbTLPOnTskm4jGzWQz+PGBslk99yXLltysF26UTVnBedl0\nibJ9xhbOnCmbtkNNo8zefPBB2VQbZx389hvZZBUUyKbnpJGyKc7JNe1pxfMrZNNgf7ZszmcWmdYL\nrv+tbOISxplm1UT/Kb1ls8twHXTOuQZp+ndUO+iCX32cc84FBwTIpvGQi0x72v/ur7J55cYFsrls\niu37VsxF+j7sa+mH9efnj1d/N83qOLCNbMJb6+9KD332iWy+uuc+0576PTBYNu2mTZRNxu61pvV2\n5NnuPb5Wv25d2Yx+eJRpVkm2vu4ER4fKptzw/bSytMK0p7Z3DpFN7sGjsvEP0dcH55zb+aH+PTbr\ndtW//DP+cgYAAAAAAMBDHM4AAAAAAAB4iMMZAAAAAAAAD3E4AwAAAAAA4CEOZwAAAAAAADzE4QwA\nAAAAAICHOJwBAAAAAADwEIczAAAAAAAAHqpVXV1d7fUmAAAAAAAA/rfiL2cAAAAAAAA8xOEMAAAA\nAACAhzicAQAAAAAA8BCHMwAAAAAAAB7icAYAAAAAAMBDHM4AAAAAAAB4iMMZAAAAAAAAD3E4AwAA\nAAAA4CEOZwAAAAAAADzE4QwAAAAAAICHOJwBAAAAAADwEIczAAAAAAAAHuJwBgAAAAAAwEMczgAA\nAAAAAHiIwxkAAAAAAAAPcTgDAAAAAADgIQ5nAAAAAAAAPOR/oR++eNVVckC/Ph1NC1UUlsrm67Ub\nZXPNzWNl88LzH5v2dMvlo2QT3LCubNas2GJaLzM/XzbP/fijaVZNfHHXXbLpfn0v06xTKw7L5p0V\nv8rm1umXyqZ2oJ9pTye2n5DNwLlTZLPr5R9M6wVGBMmm972PmGZZrZv3mGwOn8o0zcouLJTNPR+8\nIZuioiOyefXGp0176pSUJJvRC56UzZbXXjatt2zlWtm8uGKFaVZNPDJunGyunzPBNMu/TqBsys/p\n62795smyKUjTnzHnnKvtrz+zL93zjmzGX3SRab2gyGDZ+Pqz+MLUqbJpn5hompWakyObguJi2XRs\n3Fg2aXl5pj21atxINk98+oVs7h4zxrRe7Vq1ZDNywQLTrJrYtXyxbJoM6muaVV6uX9tnpj0nm4c+\neEA2qT/sMO2py/RbZbPiobmyiYwOM62XfVo/31z20kumWVZr5syRTcKYlqZZYU1jZZO3N002BXuz\nZNN62kjTnjJ3bJON5TkpsoW+PjjnXMq762XT58FHTbNq4viez2WT1H6SadbOZa/Kpm5yfdmcPZwr\nm4qictOegqLryKayRM+qKqs0rRfTU99/ElteaZpllXFiuWxS3t5qmhXZSX8W83eelk10T30vS19/\n3LIlFx4XLpvCTP1s3f7Wnqb1jn28SzZ9H9bX75rKSNW/x7zdtu8aX7zzs2wm3jBcNis/0c/rt7z1\nuGlPM0ffKJvkWP3+G3v1INN67y7+VjYvr1z5L/+Mv5wBAAAAAADwEIczAAAAAAAAHuJwBgAAAAAA\nwEMczgAAAAAAAHiIwxkAAAAAAAAPcTgDAAAAAADgIQ5nAAAAAAAAPOR/oR9Omn+FHLDxlT9MCyV3\nbSKbq6YOk01U5zjZlJSVmfaUlnpaNss+0//P996tWpnWaxkfb+p8re2wtrIpyThrmtXxjgmyubpI\nv/4PLHhTNtMGDrRsyfW8rLtssnbvlU1oUrhpve7X32fqfKnL/VfLZtXVD5hmPbFcv6czT30vm9p+\nQbJZ8tVXpj2tWvOubO4ffZlsOiclmdYb0rGjqfO1KTeNlE32nydNs9ped6lsjq5YLZutH30um0YN\no017iumbKJt//PyzbJ6ZNMm0Xr82rU2dL63fv182/Xp1MM2KahEjm6WfrZRNQXGxbIYa3/ORXfU9\ndvQhfc1tM7Wzab2Z1yyQzcgFuqmpiqJy2WSn7DbNOva1vr9cddVw2ZQVFcgmrEV9054+uv0e2Qy8\nc5Bs+refbFrv141LTZ0vlVVUyCZz9THTrOBJdWRTWaLfM9VV1YbVbP9dtMXFV8mmvLxQNn+/tNi0\nXofb9TP/f0JEQkvZbP/sFdOsy6bcLZu/TupnoFq1a8km/duDpj351QmQjX/IBb+OOeecC4rW71Hn\nnAsMDzF1vlSUrt+HcUOTTbO+eOVH2UTXqyebXm31c0ugv37dnXNu3159HRn6oL7GxzfWz7HOOed3\nvW1fvtY7abxsUqst1zjnHnvsbdlEtouVTXllpWxyT2w37enVlR/LZsXsF2Wz/pvNpvWe+lp/1/13\n+MsZAAAAAAAAD3E4AwAAAAAA4CEOZwAAAAAAADzE4QwAAAAAAICHOJwBAAAAAADwEIczAAAAAAAA\nHuJwBgAAAAAAwEMczgAAAAAAAHiIwxkAAAAAAAAP1aqurq7+n364/dN/yAHnUvJNC0V2ayib2kF+\nsjmbkieb6soq055i+iTKZs4dr8mmfePGpvWOZ2XJ5q01a0yzauLA7+/Kpm7jCNOsDf9YI5uktgmy\nKUjV75vgoEDLllxQXKhs4oc2l01Z4XnbehEhsmmUNN40y6qgYKdsKiuLTbM2L1gum9ZXd5HNlLEP\nyebTHxaY9hQcrX+HERHdZbPjrfdM6yVNaC+bhnFjTbNq4tM77pDNmaIi06yswkLZDO7YQTZh7aJl\nE92tkWlP/nUCZPPRvZ/KZtAI/bt2zrmYXvoantjiStMsq+2fvSKb4Ab6/eycc6uXrpXNnpMnZTOm\nWzfZ9J09wbSn7S9+J5v2d/WVTeryPab1SnNKZNNv9lzTrJqYd/nlsrn6Idt1vKpCP3PU9tP/Lazo\nZIFujp4x7Sl5emfZbH95nWy63TfQtF5FaZls4hPHmWZZVVaWGhrb9fToBn1fzN2ULpuSAv1+7jiz\nv2lP65/5WTaN2+trc9spE03rFRWlyCYmZohpVk3k5KyRTZ06TU2zqqr0e6Ki4qxsqqsrZbP0rldN\ne5rx5lOy2bbwfdl0utP2e8wFq3brAAAgAElEQVQ+vE02yV2mmmZZbXnredmUpOnX3TnnGgxOkk39\ntvGySV2+WzaB0XUsW3JlefpzHdkhVjaxbS8yrffFvS/I5oa33zbNqomsrBWyWTXve9Osi+8YKJsn\nbl0km5kP6vfqwuc+sWzJ3XrDZbLpcvVdskk/8o1pvT1Ltshm5IJ//Z7EX84AAAAAAAB4iMMZAAAA\nAAAAD3E4AwAAAAAA4CEOZwAAAAAAADzE4QwAAAAAAICHOJwBAAAAAADwEIczAAAAAAAAHuJwBgAA\nAAAAwEP+F/rhRx+slAOuvWWsaaHw1jGyOXc8XzbHDqTJpvdt/U17WvOP1bJ5/rNZsmmUNN603u+P\nPmrqfK1OfD3Z5O89bZoVERoqm/A2+ncdEBEsm3MH80x7yj2aK5uO8dNls2/j56b1qsoqZdPoOtMo\ns23PL5NN4qWtTLNiuzSSTVVllWyGdO4sm/KzpaY9Hftst2y63B8vmwYXNzGtN3PcE7L5bLPt2lYT\nZ4qKZNOtZxvTrIgOsbK546YFsrmyTx/ZdD9fYdpT8hh97Z34mL5efj7va9N604a1NHW+5BfkJ5uP\n/vGdadZ97z0om9tG3CObBs31NfeL+9807albH/3++3HOctl8u3mzab0nHp9h6nzt3vfny6ZWrQDT\nrJCQBNk8N1XfFMZOGySbem2iTHvK3nxSNi2u7CCbIx9tM62XMMZ2//GlLYtekk1Vub6XOedc82k9\nZBOWXF82Zw5my+bwh1tNe2rUoqFsMvZnyqb+wfWm9QLD9HOZ05eaGjuxYrtetleOadbB9/T7te+c\n22Vz/rzhu0av9qY9pW5cJZtzBfrZ4OCXP5nWazJGP5v5WmjTCNnE9GlsmvX7q7/JZvDdl8im07U3\nyaZFUKRpT0sN39/yDuv3aPGps6b1Rs3z/fOnxbEvdsrmypceM806fWTN/+Fu/ssHi/Xz1N33TTbN\nConT34eX3nqbbHpN1PcL55w7kqmvz/8OfzkDAAAAAADgIQ5nAAAAAAAAPMThDAAAAAAAgIc4nAEA\nAAAAAPAQhzMAAAAAAAAe4nAGAAAAAADAQxzOAAAAAAAAeIjDGQAAAAAAAA/5X+iHbRMS5IAtP+4w\nLdRyr54VNyxZNiVlZbLZ//7fpj1Fh4XJ5tRvR2Uz+almpvWev+tGU+drGSsPyyaiY6xp1v70dNm0\nT+4lm+AGdWVTsDfbtKdOd/SRzSvX3SObkVP7m9YryThr6nzpj337ZHPD9M6mWaVhxbKpKCqXzdxl\nH8qmdu0LXmL+W2KXAtl8fd8Tsrloun7vOedc12a2z6yv9R3XQzb3z37NNKtlfLxsruyjPxsDpveV\nTXwXPcc557Y+95FsQpuEy2bg0O6m9QY0nyybA2d9+3ktPlkom7vfvsU0K3vvIdlE1NXXyuN702Rz\nIifHtKc+MaGyqRMUJJtZ10wwrbdo4TLZvHHpraZZNREYGC2bD+541DSr1+gusrnr3adkU1p6WjYF\nJ0+Y9hSWECeb/a//IZvkaZ1M60XH2e6fvlSveX3ZhMTVM80qTM2SzaEvd8um6chWsml93SWmPVVW\n6mtX2eI/ZXMu9YxpvehujUydrxUczJVN/S76fuecc+1u088AJ7askk36qiOyqZuov0M451z+9kzZ\ndDQ8x6584kfTemEt9OciJsY0yuyrN3+WTa8WLUyzQgIDZfPlU9/Kpme7A7L5aeWbpj0l9Ootm+Or\n18pm+8pdpvU+e3SxbFbsudQ0qyb86+nXfu8Xn5hm/b5yi2weeVXf2/9+Z6NsIlrb3tDXjn1ENtcM\nHiybkFjbfWXojYNM3T/jL2cAAAAAAAA8xOEMAAAAAACAhzicAQAAAAAA8BCHMwAAAAAAAB7icAYA\nAAAAAMBDHM4AAAAAAAB4iMMZAAAAAAAAD3E4AwAAAAAA4KFa1dXV1f/TD0+mfCkHZPx6xLRQbP8k\n2ZwyzDp7+qxs2t18kWVLrk54I9l8P/s92fjXtp1x9bi6p2xa9J5umlUTa+bMkU3y1R1NswoOZMum\nTkK4bIrTCmRzZleWaU95Z/R7ov2ULrJZ8+YfpvUGzBggm+Y9rjbNskrZsFQ2pTnFplnFJwtlU55/\nXjbpWbmymbDwZdOeNjz7lGwC6wfL5ti+NNN6I564STbh4R1Ms2riim7dZNMxKck065bF18smNLSF\nbFY8skg2hcW299b8JUtk8+tG/V7O35lpWu/0IX2NGPvCC6ZZVpbP4kfPLzfNGtSunWw2Hz6sm0OH\n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\nfOSoobLZ9+kO057OHMmQTcrK/bIZNfAK03r5DU6bOl/q33aibObffLNpVklZmWxCLPez2rVkkp6b\na9mS69yhuWxG3DNcNh/P+9K03uwvvjB1vpYwppVs3sqcZZs1IFk2iX37yuaHhxcbVtO/a+ecazhM\n7yn0sL4+bF36kmm9JqO7mzpf+mC+fo9NnllqmlWvRX3ZVFVUyebsPn0fjuneyLSn7jNvkc2fC56Q\nTXGp7TUoOHFSNlFRplE1knVgm2ziL+pqmpWfmiKbWoaPUIuLr5LNmTNbLFtyl98/Wja1/PR/K2+y\n8rBpvTVP6Gvq5S/3Ns2yimsSI5ug6DqmWc9ePUc2/droZ6mV32+UzfRnJpv2NPrmIbJZ9cxK2YwZ\noL+POefcN+/9Ipv2o23PGTUR0z1BNsWZ+vuIc861u3WUbCIi9Od66/sLZZOXkm3aU5d79fNu7WA/\n2dzwnL4+OOfcmSOpsomO/jd7ME0HAAAAAADAfwSHMwAAAAAAAB7icAYAAAAAAMBDHM4AAAAAAAB4\niMMZAAAAAAAAD3E4AwAAAAAA4CEOZwAAAAAAADzE4QwAAAAAAICHOJwBAAAAAADwkP+FfhjdtZEc\nUHLqrGmhkrRC2QRGhcimsrRCNpd06mjaU9yo5rIpKzgvmy9XrjSt9+GcOabO1+6//gXZzL7rKtOs\nkQ+OkM2pX47IpqqiSjZvzf/MtKfpt4yVzX3v3iab8PBupvXiBiebOl8q3J0tm5Kup0yz8nbo7vOv\nv5LN9IXXyqasTO/bOefyd+o97d14SDZjR9xkWi+sqW1fvnYu95hs6oWHmmblp5+TTUT7BrL5bdHv\nsgkNCjLtadlLP8hm1BX9ZPPSdP15dc65wQO6mjpfWrXmXdksevIT06zerVrJprJKXyv3fLpNNit3\n/WLa05s3z5VNxZY9sunStKlpvb9eeUY2ve562DSrRqqrZRLbJd40KqpznGz2Llkum3HP3S+b0tJM\n0572Llslm/aTu8gm9dsDpvWSxtQydb40rK/+/Ic1jTTNCmrXQjapq7bKpvn1ek8nvt9v2lPvW8bL\nZtOp72XTMbSZab3AQH2/+E+oKCqXzdbnvzbNiurYUDYNeiXKZteXb8rm7MFc05463T3B1CnZ4SdN\nXXFqqU/Wq4nEsa1ls2/JFtOscUP6yCamj/4dNjml70GFR22/w5JT+nmrsKRENnv3Hzetd8fbD5g6\n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\nQ7+vq3e9Rzb7vvvGtKcNa/bIJjU9XTb3DdT3Zuec++X9ZbIZ/62+3gvjYqL+b1z5+RrTrMb19UUW\nf1cd2aRduyabYuH6/eOcc3X669dr79YJsuk15T7Teqf+0K9nlfqmUYVyYdNp2ZSuHWma1Wic/uz4\ndeBbes5G/ZmXn62fpZxzLvtyll6vYUPZZJ3LsK138bqp86X4we1kc3bdXtOs0Lgyssm5dlM2FVrH\nyObaiSumPcU07i2bji318+7kxx4zrRdYPkQ2oZ30/aiwJj/4jmy+Wa0b55w79MlW2dR5oo1sao/S\nr+v2t38w7alJXJxscvL0+zq0VoRpvVJVo02dL/V6913ZzH/8cdOsg2fOyCZxq/6+WJBXIJudGw6Y\n9hTdRN9rFrz9q2xGzX7OtF7Jkvqa+TeUbV5RNm3iwk2zzqzWr+3fv22XTbU/Dsums+F52Dnnzuxf\nIZvwhuX1nN8STes16K/PLP4b/nIGAAAAAADAQxzOAAAAAAAAeIjDGQAAAAAAAA9xOAMAAAAAAOAh\nDmcAAAAAAAA8xOEMAAAAAACAhzicAQAAAAAA8BCHMwAAAAAAAB7icAYAAAAAAMBD/rf6YU5mtp5Q\nUGBaqEyTaNlEJ6XJ5sSyw7Jp8nRX0562fvCBbDJTM2UT27Omab2s5HRT52uJX6yXTc3W8aZZF3ed\nkk2pSmGyCa9cVzbrJs817anp+Ntkc+30VdmkrNP/bc45FxAUIJuY2qZRZm37NpdNtSYPmGZteOt1\n2RxK0q9Fw3b6P7JEuWDTnkKqlJZNQHBx2ZSsFGpab87832XT8skXTLMK48zBFbK5+572pll7v/1a\nNrO/XiKbGV37yeZK0iXTnvLy82XTuEoV2fy2WN+znHOu/5geps6Xds7bKpt7ptxjmpV5+opsfp25\nXDYd72opm4yDtt/hye36vdFhbCfZHP7c9jsMqVHG1PlaUJkg2eSkZZlmndtwRDaTf3hLNokLVskm\n5j792emcc3nZubK5p1Ur2axYtMG0Xq+RnU2dL105rj+nMhIvm2ZV63KnbJK3r5FNpdv0Z/XeXfq+\n7JxzmZn6efebia/KpupDDUzrHftmj470W7/QXvlugmymD33XNOvlBZ/Jxt9fP5dcubJdNtN+/dW0\np2f69JHNuoMHZZOw2PD7cc6lfaPfsyO/6GCaZXXx4krZ1GgZZ5q1cnaCbKqXLy+b3HT9HXbge0+b\n9jRvzBTZDJ3xkGzy8q6b1rt6dadsIiLuMM0qjBIhZQ2NbdbKj1bLpkywfi/WGdRENgd++s60p/V/\n6Ne1/d0tZFN7RBfTevtmLJNNfJt//ht/OQMAAAAAAOAhDmcAAAAAAAA8xOEMAAAAAACAhzicAQAA\nAAAA8BCHMwAAAAAAAB7icAYAAAAAAMBDHM4AAAAAAAB4iMMZAAAAAAAAD/nf6odhUXXlgIK8BNNC\nJ77bK5uScaVlU6pkgGxO/rbLtKeYvrVlk3UxUzbFw4NM6xUUmDKfK924nGy6dR5umjXlscdkczwl\nRTabNu2TTb+Jd5v2lJWif0dXEvSeLqanm9YLy7X9vn3pyOpE2dy8PN00q1SdsrK5e3gH2Sx96RvZ\ndHi6k2lPaQf076dSuxayiWx9w7TeExUHmjpfS1qg74PBEcGmWdHdq8tm4LG2sjm1/XfZNBzXzbSn\no8/NlU1ch3jZtGx0h2m9Ag9uqt0mPyqbLVP1e8M55yy7b1SlimwimkTLJjcj27Cac5F19Of+sSVr\nZVOmud6Tc84VKVrE1Pla8kl9z8nLzzfNattdX9Mn/9wkmznz9XtxfM3Bpj3lXrspm2pVK8imyo0o\n03r+JYuZOl8693uSbPafPGWaVTVNP8vm5+nrIWWfvscfTj5j2lONnCuyiR2o368XtyWb1osf0czU\n+VpOzlXZPP7xI6ZZ97XqKptnH+wnm5dnfy2b6IgI057ihzSWTYXTVWWTtvu8ab3E9TtNnS99N36e\nbJo3rGGa1bNJE9kcu3BBNn2GPimbhJkLTHsaMG2EbFIP6ef0vQv/NK3X5nnbs7Ovpew6JJvKrWx7\na9pe35v8A295DOGcc+7MUv26lqxSyrSnmLL6+4+/4Zwh7cRR03o1R7Uxdf+Jv5wBAAAAAADwEIcz\nAAAAAAAAHuJwBgAAAAAAwEMczgAAAAAAAHiIwxkAAAAAAAAPcTgDAAAAAADgIQ5nAAAAAAAAPMTh\nDAAAAAAAgIeKFBQUFPxvP/zo4YflgDvHdTUtFFIhWjYnftkqm2p9b5NN8rodpj0FRgXLJm3vBdnk\n38g1rddoxAjZFCsWbppVGG8PHCibRrGxpln1nmgtm8Uv/Syb2LJlZRNZr7xpT6E1ImRzeedZ2VTu\nXcu03vfPLpTN2HnzTLOssrLOySZp5WLTrPB65WRzYLZ+L9Z8pKls/Ir7m/aUn5Mnm2Nf7ZZN/GPN\n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\ntbrUls2p3/aZ1it/RxVT52tbl+yUzT3vPGaaFVQuVDZz+r0nmyNfb5BN1V76d+2ccwX5BbLZ+4Fe\nL/Yu23ohgYGmzpciakbJZusv+vfsnHN3vzVCNpmXTsimWDF9X85IPWbZkuk13fGlvq4imkWb1itf\nr4Wp87UzWzbLJiMryzRr7Yy/ZNOlj/4crt6zm2xOrFlt2lPQ+SuyCQyPkM03Ly8yrffoJ0+YOl+6\nfv24bJJ+WWmalX8jTzZXU/bLJjBGX/c1h3U07Slx3hq9XrR+rkzfd9G03g+b9Hvig36Pm2YVxui3\nB8vm+tl006zrZzJkc+nIQdmc+vWwbMKfq2/a0/FF+vl67JxRskmcs9W03upv1sumVqdhpllWP89a\nLptm1aqZZrXqpr9DFI/Q3yEC/Pxk0+CxB017alQ0QDb7v5svm/iH25rWS0n5XTZRUT1NswqjWOkS\nssm+Ynuu3/rlJtn0nDpGNgHB+rk+MLCSaU8T79Xvs8ff0fejc6tsz1MHVnwmm9pdhv/j3/jLGQAA\nAAAAAA9xOAMAAAAAAOAhDmcAAAAAAAA8xOEMAAAAAACAhzicAQAAAAAA8BCHMwAAAAAAAB7icAYA\nAAAAAMBDHM4AAAAAAAB4yP9WPxz97rtywOL5H5gWWvDNCtk8MPxO2QQWKyabK9eumfYU3SBeNvs+\nWCmbd37+2bTeV3NfNXW+lnk0TTZ142NNs+5//hXZ/DR3umzysnNlM/kh27U14vG+sql4R1XZfPDC\nXNN6w0b1MXW+tG3dPtmElSxpmtX84ZayGdmli2wOnT0rm673tjXt6fFn9DUz3s9PNm1f7GVab/0b\nS2QTPf1u06zCqNsoTjZfjXnPNKtxlSqyOXjmjGxKBQXJJm5Qc9OeTv2+VzZtXh4lmyXPvW1ar2H/\nxqbOl3Ku3pBNs962fZ1et1U2V3acl02FnlmyuX42w7SnokWKyCYnPVs2R77bY1rvTGiibNq8oD93\nCiuiYYxsihTVr4VzzvkH6+eSXz9cLpsVizfKZuSnL5n2dGxNkmwOf75ONre3amBaLyAgwtT50r5Z\ni2XT+tkJplnZ2amySd6nf4eNWsTK5sdfp1m25Jo9PlY2ly9vkk3RYodN62WvzTF1vlYu7g7Z/PTJ\na6ZZbUa3l825lUdlk3L1qmzy8/VzrHPOHT1wSjbZM/X3lrpju5vWC9+unxd97YFJ/WQTVr6WaVZ+\nvv588fcP0etVj5LN5XM7THs6t0pfM7u36c+yvCzbNbNzh37PPvZlT9Oswojt3UQ2x37Uzy3OOVe3\nax3Z7Pnge9mUblJeNq8O1fcQ55x7esIg2ZSK1mcDaw/9bVovc5e+Jmp3Gf6Pf+MvZwAAAAAAADzE\n4QwAAAAAAICHOJwBAAAAAADwEIczAAAAAAAAHuJwBgAAAAAAwEMczgAAAAAAAHiIwxkAAAAAAAAP\ncTgDAAAAAADgIf9b/XB4v35ywNrft5sWale7tt5MSHHZ7D99WjahgYGmPYUtSdRNvbKymTHhcdN6\nWeczTJ2v/bJ2s2wenXS/adaSn2bK5ps5v8tm+MsDZNOraVPTnn799i/ZTFi0SDZjQkuY1ruw6riO\n7jaNMmvVvbFsGvYfY5qVsPhj2fgHF5NN5TJlZONX/Ja3mP8x851xsgmpWlo2X4/93LRe3+d7mTpf\nyzyTLptmtaubZoXW1femoNRU2QSX0Nf9pf36vuucc0WL+clm85RZsqkUG2Va7/1X58nm41UPm2ZZ\nNR+jr9ULyX+YZu2cuUE2J1JSZBN2tpxsKrbT9xDnnCvip/83m5Aq+r1Y1N/2v/1c2nXW1PlaZGQX\n2fg1Wm+aNX3oO7J58rPRsknZpj9bDs37zbSnmJaxsvELDNCDCgpM62164yvZdJk61TTL6sK5S7JZ\n9/pE06z0jOuyafZ0J9m8fL9+lopp0sO0p1P7F8umVMUqspk/Z5lpvWenDTN1vnbpnL4PxtWPMc3K\nPHlFNmH19edLyw76dd3/2S+mPTUZoJ9lo+rXl82lo4dM6wXHhJk6Xzq36phsft68xDSrY//Wsql8\nWzvZzB6tnwf7P2l7LwaE6u+ndWvpayZuYFvTeg2GDTF1vrb+jV9lk5Kun2Odc67r+K6yKd+qlmxK\nlWoim5ejQ0x7iq7ZXTa7v5gtm3KlSpnW8wsPN3X/ib+cAQAAAAAA8BCHMwAAAAAAAB7icAYAAAAA\nAMBDHM4AAAAAAAB4iMMZAAAAAAAAD3E4AwAAAAAA4CEOZwAAAAAAADzE4QwAAAAAAICH/G/1w7TM\nTDmgfZ3apoU2HU6UTXhCmGyaVqsmm8jm0aY9ZV/Kkk3i+iTZNLi3kWm99V9vlE3DAaZRhVIvJkY2\n18+mm2YV8dPneWPeHyKbY/MSZFOmeoRpT1cT9KwbN1J0k3rNtF7bCa+aOl+KaKqv6VOHF5lmHf37\niF6vVKhsKneKk83V/RdNe6o3rJ9sEj7V/33Naug9Oefc0fn6momd4vs34/XsbNks373bNOvVJz6S\nTWBUsGzC4/RrdmT+WtOeigbo+8Phs2dlk3M6z7TewHZtTZ0vJW38XjbHlh40zWo34SHZ1D6+VzY3\nUvS9a8ubP5n2dNuro2Tz/sPPyKZL1+am9Y4nnJbNv/G5uP6NSbL5esVq06yhfbvKJiSkjmymfzJD\nNu1q2565Smfr99CF5FTZpGfp5yTnnAsJDDR1vlS1jX4eDKkWbpr1zsNvyWb5rl2yaWq4n779wEjT\nniyv6XvffCObZx7S9xnnnAsqF2LqfO3KIf2cUKWv7Tn77cHvyea1Hz6Rzd6v9H2+8t21THs6MX+f\nbIIq6Geui+tPmdar2DPe1PlS1XubySb7vO0Zu1K7VrK5nnlMNhMW6WfG7Z+/a9rTnG9/l83QAd1k\nExpa37TesY0/yqZGe/1dq7DavNBdNmFhLUyz3rr/Ednc+0QP2SRuWS+bmkM7mvZUvXhp2ezPOCyb\ntwc9Z1rvwfF3mbr/xF/OAAAAAAAAeIjDGQAAAAAAAA9xOAMAAAAAAOAhDmcAAAAAAAA8xOEMAAAA\nAACAhzicAQAAAAAA8BCHMwAAAAAAAB7icAYAAAAAAMBDHM4AAAAAAAB4yP9WPwwNCpIDwhpFmRY6\nt3mLbIoG+Mlm3t9/y+alniNMezq0+rBsTl+6JJu8BTtM6935Wi9T52s3c3Jkc+Lvo6ZZse2rySY3\nS693xvC6nj92zLSnfj3ay+bPl9+RTVipYNN6p2v8IJtK8f1Ms6x+fu0X2bTu2NA0q9nj7WSTsvGk\nbLb8sF02Hcd1Mu3p0KKlsglvXF4218+km9aLrFzK1PlasuG6f2XB+6ZZqae2yWbjlxtl06DDFdlU\n6lnDtKf83DzZdDb8Hs/8mmhaL/ou2758qUQZ/blYZ0hT06zixfXnZ2CEvg+mJ+rrqlzjaNOeLp7Q\nn9W3t2ggm7KtY0zrVepZy9T52optu2Tzxg+vmmadXX9QNvPG6FnDJ94nG78SAaY9nf5R72m74TO2\namSkab2a3WubOl/KPJommws7zphmTZ/zjGzSdp2TTa3775JN+qUDpj1Z9BjVWTZ+JW75qP8/xvSe\nJJtF2/6F59iCApkk/2l7zRrExspm1Ssfyib+rrqyOTZ3j2VLbu+pU7JJm5Uhm65vvGRa7/Cy+bKp\nqB/lC+XC1iOyqTakkWnWqolfyabZ6Lay2bd0lmxuXsm2bMk9O22YbC5u0L/n9HTbNRMaV8bU+VqB\n4b24asIU06yg4sVlU7XlPbK5uO492Xw0YpppT9+98ZpstkydK5tRnzxiWu/iFn1N/Df85QwAAAAA\nAICHOJwBAAAAAADwEIczAAAAAAAAHuJwBgAAAAAAwEMczgAAAAAAAHiIwxkAAAAAAAAPcTgDAAAA\nAADgIQ5nAAAAAAAAPOR/qx8++GJfOeBGyjXTQmOnD5XN7s+3yOa+Nm1kc3TxftOeGg5sIpuvRrwr\nmwGGPTnnXOrOs7Ip18M0qlDiypeXTdUH65tmZZ6+IpvE7/bIJr5xFdm0axdr2ZK7djZdNg2H6etv\n5tCxpvUuz86QTaV3+5lmWXUZdodsQquGm2atmvKHbOrdUUs2nZ7pIpuc9BumPYXE6b1vm79VNjdz\nc03rtbinqanztTseaiebj4e/YprVrFo12XSfdK9smkZ2lM0Pn75t2lP8AH1NzHnmNdmMnDnEtN7x\n7xNkU7WRaZTZ2RVJsqn1cDfTrMNLFsgmqGIp2ZzZflo2ldvpe65zzoVF19TNMN38/frXpvWaPqnf\nE/+GAcP17+jy4VOmWW++qf9bJ3/yhGzuaPyAbPZe3Wfa0+W487IpcyRENk27NjCtd2HtSdnU1reH\nQsnP0vf7+mNam2aFR7SVzaYvX5LNHytelE3N6GjTnnq9pWflZK6RTdJ3+j7pnHOT3x1l6nxt7zJ9\nTXefPNw068a5TNn4BQXIpnLTTrI5t+JT0546DNLXVtZ5/V2qWLHSpvXObNTvxXp3mUaZFSlaRDYJ\nszabZtW5W38fOblQf8+r2CteNukHUk17CqkYKZvUgGTZBAfrz07nnEvP323qfC3pK/2c3eTprqZZ\nNc6lyGbR2OdlU6pkSdmM+Mj2zNir6UjZfDnnZdkUKaKvd+eci2oVZ+r+E385AwAAAAAA4CEOZwAA\nAAAAADzE4QwAAAAAAICHOJwBAAAAAADwEIczAAAAAAAAHuJwBgAAAAAAwEMczgAAAAAAAHiIwxkA\nAAAAAAAP+d/qh/Om/CgH7D992rTQW7Ofkk1x/1tuxznnXE5enmxCg4JMezrxy0HZTBr/sB5UpIhp\nvfB6UabO12qPaSebrEtXTLPWzd8sm/JhYbLxCwqQzdF5e0x7av7CcNnMe/xF2fSb0Me0Xuq2ZFPn\nS6XiysimZHCcaVZqxiLZXN5zQTYh1fWezv6eZNpTdO8asolvECub3dsSTev5l9DX378h4+hl2dz9\nZHfTrKCoENkse0X/rtfu+142WSnXTHs68tMq2aSmp8umeGB503qtxvUydb5031MvyebFvUdNsx6c\nMUE2V1P1fbBq13g9Z99F055uNNef6f7+obKpUNv2O7xxyXBtVTKNKpS8m/pZYuLYmaZZj3ToIJub\nV2/IZu3+BbLx8ws07alkRf07WrN3r2z6jL/TtF5ofISp86ViEfq12PH+Otssv42yadSjgWz2fvyr\nbCrXqGDaU0aG/v2c/+u4bGoMbWJa769pf+pZ7YeYZhVG69G3yebEKtvvMer2WNmsmfW3bCJarpVN\nsVLFLVtyNwyfn8ExpWSz7vWJpvWKFv3//3933/u7vlabP9LKNCu4QrhsYprr56TzSfr3XG1wI9Oe\nTi5NkE1U2xjZ7P78C9N6UbfFyqZsWdOoQinVIFI2/v4lTbPSE1Nlc/7qVdnUaF5NNsnLbc/+S3d8\nJptTS/bJplT73qb1XujzsGze+6PLP/6Nv5wBAAAAAADwEIczAAAAAAAAHuJwBgAAAAAAwEMczgAA\nAAAAAHiIwxkAAAAAAAAPcTgDAAAAAADgIQ5nAAAAAAAAPMThDAAAAAAAgIc4nAEAAAAAAPCQ/61+\nGBIYKAc82rmzaaGVM1fZdiQkX7okm9cXLzbN2vX9DNms+nWzbO4a08203qo3V8hm0Md9TLMKw98/\nVDY308+bZrUd0EI2EQ0qyibv5k3ZRLWNtWzJ7Zk1Tza14irLpkR4kGm93Ay9d187+dMB2eSk7TTN\n6vVkV9kcXLBHNus/XSebSmXKmPZkEd21umzqDhpgmrXjnS9lU6O9aVShHNieJJuoIxdNsxqNayeb\nLMP7LDP5qmxi23Yx7WnHX1/I5vVFb8jms1HTTOu1qK6vifaTJplmWf22dJZsQuPCTbOuXz8qm9NL\nD8umfMeqsom7rb9pT/NGPy2b+q1qysa/ZIBpvYwj+jPdNTSNKpRK7ZvK5sPmlUyzvn9uoWxCNpWU\nTViDKNmUjfUz7enLd36UzXcbdLP9rbmm9WLurW3qfCn3Wo5sOk9+3jTrwyFjZFPmcqRs3lq6VDZD\n2ul7t3POPR6o30Npp9Nkc3am/qx2zrnOL3c3db6WcVL/N2xausM0q/39rWXT5Xn9zJ66LVk2YfX1\n+9U556q006/r6lf195GIGNvzVKOnHjB1vtT0If3dYPG7v5tmjf78A9nk5WXKpnQlfU86NO83055C\na5eVTXhl/UH19JfvmtbruL2ebEZ+YXveLYwDv++Xjb/hvuScc9eT02XT5+k7ZZNzNVs2RfyKmPa0\nYepy2ZQtW1o25xLXmNZ76ZsXTd1/4i9nAAAAAAAAPMThDAAAAAAAgIc4nAEAAAAAAPAQhzMAAAAA\nAAAe4nAGAAAAAADAQxzOAAAAAAAAeIjDGQAAAAAAAA9xOAMAAAAAAOChIgUFBQVebwIAAAAAAOD/\nKv5yBgAAAAAAwEMczgAAAAAAAHiIwxkAAAAAAAAPcTgDAAAAAADgIQ5nAAAAAAAAPMThDAAAAAAA\ngIc4nAEAAAAAAPAQhzMAAAAAAAAe4nAGAAAAAADAQxzOAAAAAAAAeIjDGQAAAAAAAA9xOAMAAAAA\nAOAhDmcAAAAAAAA8xOEMAAAAAACAhzicAQAAAAAA8BCHMwAAAAAAAB7icAYAAAAAAMBD/rf64ZFN\nX8sB2ZezTAvlpN+QTe61HNmExpeRzfz3l5j29PCkAbLJOH5ZNrt+TzCttzkxUTYfr1plmlUYiRvn\nyiaiZrxp1vUr52Qz6u7XZDP7j8mySdt/wbSn0nWiZHPo462yCY0PN62XeiBFNl2mTjXNsjq05gvZ\nRNavYZp1dtM+2fzw+XLZjPlsnF5rw17Tniq3by2b7W8vlM0dr79qWu/KlR2yCQ9vZZpVGK/36yeb\nfo91M81a9uUa2ZQPC5NNx1d6yubodzstW3Jh9fV7sXjpQNl89OI803rjP31UNhUq9zHNsrp4cbVs\n8nKvmWYVL1FeNj8/N1s2UYbfc+YN/RnsnHMVyuj74I6ko7K57x39+eqcc589/pVsXv7hB9Oswti/\nXL+u1e+41zTrpT4PyGbsx8Nl4x8YIJvDH+nPMuecG/T667IZbrgfdWrX2LSeK9BJyydfsM0ysvwO\n//j6b9Os4v63fBx2zjnX63l9r5w5/kvZTP5ZP5M559yx9b/I5rfP9f3ocmamab2Bj+jPnnp3jTLN\nKowdc6fLZs+GQ6ZZ907TzyV1Q2vJ5vMX9LU6c9ky056+WaefXTZN0c94v+/aZVrv4tWrek+bNplm\nWa2bqJ+9QuuWNc3yL1lMNn99v0E2nYfeLpvYlvo97Zxzuz6dI5ucq9myWbbN9iz16JsPyiamdn/T\nrMJ4tkcP2Tz0WC/TrPB65WRz8ucDspn65QLZfL9pqWlPAQGlZHNo2beyCY3TZxHOORcYESKbyMju\n//g3/nIGAAAAAADAQxzOAAAAAAAAeIjDGQAAAAAAAA9xOAMAAAAAAOAhDmcAAAAAAAA8xOEMAAAA\nAACAhzjS2CGlAAAgAElEQVScAQAAAAAA8BCHMwAAAAAAAB4qUlBQUPC//fDSpfVywJFv15kWiru/\nlWyuHE+Wzd+z/5ZNrZqxli250JoRsvn8w59lEx0eblqvz5PdZRPXYpBpVmHcuJEimyMrfzTNmjTp\nC9lMm/esbC4nnJdNcJXSpj3l5+Tp9badlc3pY3pPzjnX5ukOsqlQ6S7TLKununWTzeQfZ5lmrXnt\nY9lUbBkjm5wrN2RTa8A9pj0FBITK5viWX2UT00y/Ts45d+Govo/E1BlgmlUYuxd+qKP//Zb8/zi+\n+bhsYhpXlk1QxVKyqXnHUNOetn/+rmyyTmfIplhEoGm90Fr6Hl6r4zDTLKufnnpKNscuXDDNalm3\npmyyMrJkU3NIE9mcXLjftKfYgfVkM3n4TNn0bdHCtF7TZ/S9Mjy8pWlWYZw/t0Q2/gEhplkXtiXK\npljpErJZMWu1bEZ/9ZVlSy4tbatsrpw+JpvomsZ76sk/ZVOpej/TLKuH2rSRzZMjbJ9BJ3adkk3y\n5cuy+W37dtm8N22saU+fTFsom2Xr9DP4HS1t75/cPP0s9dV6/b2gsCzPNy98Pc40K3H2JtlsOajf\nr71Gd5HN9AlzTXuKr1BBNvtO6euvVFCQab3mcXGyGThT38MLIy1ti2yS1+00zcq/qa/Dat307+fQ\nQn2Pz828adpThS76NT25SH/GhjWIMq23YoF+n43/9lvTrML4ZtQo2VSpVM40K/HEGdmcMdxTs27q\n31Gt6GjTnvz9/GQT11B//9m8dq9pvQc/eFI2YWGN//Fv/OUMAAAAAACAhzicAQAAAAAA8BCHMwAA\nAAAAAB7icAYAAAAAAMBDHM4AAAAAAAB4iMMZAAAAAAAAD3E4AwAAAAAA4CEOZwAAAAAAADzE4QwA\nAAAAAICH/G/1w5fufUUOeKD9baaFVk36STb176ovmzr1qsom5dQl054yUzNlc+riRdnc36+Tab30\nI4Z9tTCNKpSX7h4smzFv68Y55+5p2VI2aXvPy+ba8SuyWbporWlPd/ZuLZuQ6uGyaT+woWm9yQ9M\n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\ntVWQbAKXb5ZNYp6+BzvnXEi1cNnMe2qKbG543fZZDPfhtd5q8OP9ZPPD2I9Nszr1aimb+P6NZTOw\nl77m/vP1e6Y9Ve9dXzbJi4/IJiD4mo/6/2PCmNtMna+dW39UNosWbTTNGjS0q2ymPzBDNi/+PFM2\nvz8z2bSnGyaNks28Zz6TTcnVq6b1hr+t1/O1kCr6erNn+nzTrNojmslmwu3DZZO6Wb+vcg5cMO0p\nuck82fR4eZRs9n5sew0aDmtu6nytTb16sql7U1PTrIfu0p+PT758XjZnjujXPjquomlPLUbfI5tt\nb3wqm+oVbevVCwiVTVJp6b/93/jLGQAAAAAAAA9xOAMAAAAAAOAhDmcAAAAAAAA8xOEMAAAAAACA\nhzicAQAAAAAA8BCHMwAAAAAAAB7icAYAAAAAAMBDHM4AAAAAAAB4KOBaP0zbmCQH7Nh/1LTQ9e1r\nyCaqaRXZfPzCLNlM+G6caU8nf9khm4RW8bJp2Pke03ob1082db42ZMpNshlYWGyateDVBbK57YHB\nsrn94auyCYmqatrThsnfyiauV33ZBEYGm9a7WnLF1PnSsJt7yObcmhOmWecPpMlmxYZvZVOtxiDZ\nHDz0lWFHzpWW6vfDufXHZTPyhaGm9SrWamTqfC23oEA2lw5fNM0a8lBfPevsednE39FJNpWOxpr2\nlPFPimyGThggm6iodqb11uz60dT5UkiUvk9telNfJ51zbtBtPWRTqWV12YRXqiObktwiw46cyzqs\n3zPnMjNlUyNe3zudc87PL8jU+VrljjVlM6RKqGmWv3+YbE4tXy+b4Ep6vSaJ+l7mnHNXCktk0+Op\n62VzYPoq03p7kvTzYpPr7zfNMvPTyQ1j9L/ROefWfrVONje/85hsZo0ZI5tOd+trrnPOda47TDZr\n98+RzYkf95jW88/MN3W+FtUkRjadGjY0zTq147RsHpup34enNi2STa3atmfUjBOHZHOltFQ2t3/w\nrGm90+v/lk2l/t1Ms6zCI/XvJ/2i7VqSUE3fO1LPbZBNp2dekM3BANsz6qwXfpFNoxr6e2616pVM\n69VI8O3vxyqxSQPZpK/R13rnnHv+5ptls+LL1bKJqVBBNgmDW5j2NPW2R2Rz7ysjZRO+r6Jpvdf9\nHjJ1/4q/nAEAAAAAAPAQhzMAAAAAAAAe4nAGAAAAAADAQxzOAAAAAAAAeIjDGQAAAAAAAA9xOAMA\nAAAAAOAhDmcAAAAAAAA8xOEMAAAAAACAhwKu9cOavRLkgMRzl00LBVUoL5vSK1dlM6RdO9n8895K\n055qdqkjm+2Ldsmm8j8/mNabs3KdbDo/axpVJulbT8vGP/iab4X/MeT1obI5MmeZbJreMUI2s5+Y\nZNpTn0d7ySYirqpsivNs7+Uzfx6STexjplFmFZvHyGbBtKWmWX3vvk42y2eukk1ASKBsqrZqZtrT\nlrd+k03i031k89drv5vWa9j+nGza3t3aNKss/Pz8ZBMQYvss5hy5IJttmw7IpvuITrJZNGu1aU+j\nPrxLNn++pH9HrTolm9bbsfGgbB788jbTLKu2VbrL5ocpr5lmrf1jq2zqbdbXrsSngmSTsVO/551z\nLqZrbdn0fnmwbM6tP2paL2WJvi/GTOprmlUWtVoNks3h1J9Ms7a8OUc2rcZ1lc1Xj38vm/s+0J8x\n55wLCAqXTco6fX2o3j/etF74iUqmzpcsv8OiovOmWf2e16/X2kn699OyT3PZZB/S127nnHv/ySdl\n8/x978vmrVlPm9Z7Z8xM2XQa/6JpVlkUZefLpvV4/ZznnHMLX/pVNuXL62tcXrK+fl25XGzaU3Gu\n7vqO1c83+fknTet58Z/d8/P194wh7042zbp8Wb/2HZ7Qz7GWz35MYl3TnmLmR8pmyLtvyGbntzNM\n653eop/Bm/QabZpVFlW6xMnm+/dtz9mTfpsvm27FGbLZ8fHnsklZbftsHE1Jkc3yj/6Sze0fjDet\nd3jLcVP3r/jLGQAAAAAAAA9xOAMAAAAAAOAhDmcAAAAAAAA8xOEMAAAAAACAhzicAQAAAAAA8BCH\nMwAAAAAAAB7icAYAAAAAAMBDHM4AAAAAAAB4iMMZAAAAAAAADwVc64epmw/JAdt36MY55w4s+Es2\nHRs2lM2gqaP1Wp8tNu3p9PqTsomNjpZNcFR503rPznzY1Pla9U7NZHNwxkrTrNgOHWQTP6KqbDZP\n/UI2193eybSnw3P2yKZWr/qyCa0eaVpv5OPPyybpsedMs6ws/8aYSNv+I+pUlE2zuDjZlK8UKpvT\nf20z7Wnm8uWyafFIR9m0HNLStN5T4z6UzZK7x5lmlUVwwDUvuc4553Jz8k2zTh5Lks2dHz4lm8sZ\nx2TTu0+iaU9Fhr13HtleNsVZBab1bn5rlKnzpYn33y+bkNhw06x2YY1lU7F1Ndkc+Wy7bMLi9efe\nOedSFh2Rzaa9+r5frpztv/3sOqnvwz0mTTLNKosjK+bIJqxWBduseedkEzVvv2yGjOotm0unM017\nKr2aIZs9K/Sebnh9pGm9ig30PcPXsrP1+/6VW98wzerWpIlsGrSuIxu/cn6yqZxYw7Ild2yH/myU\nDwqSzfK3l5nWq1m5sqnztSsFJbL58rEvTbOGPtBHNkFB+lp4taRUNtm5eaY9des2Sja/jx8vmx4v\n32VaryDtoKnzpayj+hq4Z9FU06zDKSmyGfH27bJZ8vxbstly9KhpT3c+PFA22dk7ZVN8qci03qll\n+j7cpJdpVJmkrtTXnIffsb0Pj22eLZvLJ/T9LCstRzYbDx827SkpPV023Ybr77kbp8wyrZd4p37e\n/U/4yxkAAAAAAAAPcTgDAAAAAADgIQ5nAAAAAAAAPMThDAAAAAAAgIc4nAEAAAAAAPAQhzMAAAAA\nAAAe4nAGAAAAAADAQxzOAAAAAAAAeMivtLS01OtNAAAAAAAA/L+Kv5wBAAAAAADwEIczAAAAAAAA\nHuJwBgAAAAAAwEMczgAAAAAAAHiIwxkAAAAAAAAPcTgDAAAAAADgIQ5nAAAAAAAAPMThDAAAAAAA\ngIc4nAEAAAAAAPAQhzMAAAAAAAAe4nAGAAAAAADAQxzOAAAAAAAAeIjDGQAAAAAAAA9xOAMAAAAA\nAOAhDmcAAAAAAAA8xOEMAAAAAACAhzicAQAAAAAA8FDAtX64/Pnn5YCzGRmmhRrVj5ONf3igbCIa\nROvFSi07cu748sOyqdWhtmzObU82rRcYcM2X2znnXO8pU0yzyuLsqd9kU5JbZJo15ja9vzenPCKb\nv3/dLJuYChVMe2o2oLlsAkKDZLPu+w2m9YpLSmTzyDffmGZZnT40VzZF2QWmWWPufUM2k58cJZsq\nHfVnOrRahGVL7tzfJ2Xz98JtsqkWFWVar9fEQbKpUqWPaVZZ7Px5umyiE6qaZqWtS5JNeP2KsinO\nLpTND98sMe3pn2PHZPPtoqmySVmm5zjnXOsHHpBNUJDhnlEGW2a8KZus5CzTrG3Hj8vmvvfukI1f\nOf3fWUrybNf4zP1psqnf90bZnFyz3LRexWYxsomtc5NpVllsnfm2bEJjI02zoltWl836d1bKpt+k\n+2Uz5yl9DXHOuRYt6svGv7x+Jokf0dO03tkN22XTfODDpllWx7bNlk1RZr5pVsoafQ+Kv72lbLIP\nnZdN7gnb9aFqrzqyOT5vv2zqDGhkWm/xTP0eHTtrlmlWWVg+i5USY02zqjfpKpu0Yxv1enUSZHN6\n7XrTnuKv19evPd9+J5voNvo645xzf3y4VDZP/fCDaZbVCsP3xWYPdzDNOjFrt2zKBfnLpnLnmrJp\n2HWUZUtu968zZJOfckk2tYY2Ma234b3Vshnx4YemWWWxdMIE2Vz3yhjTrLy8E7I59Pk62VzOzpVN\nZq5unHPuwiX9O4oKC5NNbLTtubLF2N6yqVz53++x/OUMAAAAAACAhzicAQAAAAAA8BCHMwAAAAAA\nAB7icAYAAAAAAMBDHM4AAAAAAAB4iMMZAAAAAAAAD3E4AwAAAAAA4KGAa/0w9rq6ckD9mOamhaaM\nmymbtvXqyabVpfqy6TJhomlPlVoukk3BRf2/nV6QZvvfV79actXU+dqBmVtlU61TLdOsH9Z+J5uX\nRzwrmzuH95HN8b2nTXvK2pEqm5TUi7JpP6C1ab2ii3mmzpcOfbdDNpHVIk2zbu7USTblq4bL5uI/\nKbox7ci5wIgg2cRE6n9f424NTOslxvSVTVJpqWlWWfgH+8vm6A+7TbPq35Igm/z0y6ZZysibe5m6\n8Tc+IpugoMqyiWiYYVpv+YtvyGbgO++YZlldySuRTZ3+jUyzQteUl036Jn0djOmor9/V6vYz7en8\nli9ls3/WXNnUGtrUtF758tVNna+dO5Imm9w9SaZZzw/S7/s5H06VzYkla2QTGx1t2ZKLv72jbFI3\nH5ZN9tnjpvXCa0eZOl+Kbd5TNjs++Mo0K9Kw//Obz8im9Ip+zjuTnG7ak//maz6iO+ecO5CcLJuE\nOvq94Jxz02bPls3YWbNMs8oiIDxYNms+W2Oa1aj2MdlUSKgim4q1imTz27d/mfbUc5e+1pxKMVyP\ntunPq3PO9R5i+337Uu2BjWWTstJ2Lbl0ST9jV03Q9w3/8vrzk3x8vmlPR9Ydlc2Vq/qzn1DpNtN6\nrW+/ZOp8rf2EobK5mLLdNGviqGmyeeTWgbLJO58pm+b9mpn2FNNePysFBOjvGkdmrTOtl33qrGwq\n/4dHYv5yBgAAAAAAwEMczgAAAAAAAHiIwxkAAAAAAAAPcTgDAAAAAADgIQ5nAAAAAAAAPMThDAAA\nAAAAgIc4nAEAAAAAAPAQhzMAAAAAAAAe4nAGAAAAAADAQwHX+mHxpUI5YNH3q00LPTi8v2wi4qNl\n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\nHlt7TA6o3SrOtNA7b86WzQN9+8jm25UrZTPr4Z6mPT105yS93p9TZHO15KppvZzjF02dr6WtOSWb\nAH9/06ydy/bK5qYXBslm7qTfZVNQWGjaU8x1tWRT50KWbF596QvTeiM6dZJNfLs7TbOsTizR7/tq\n3eqaZoUGBcnGz1+f2x78ebdsQgxrOedc99cmyCb1xArZJHRpZFqvXNA1L33/Nfkpl2VzKT/fNCs0\ntI5scpNWy6Z9fLxszi47atmSC6pYXjbhvfRnMXXVSdN6je/pa+p8yfLZaPnwXaZZ3z36imze/PZb\n2fScOFg2JXnFli05v3J+smn12D2yOfOPvmY551zOwfM66m0aVSbN4/SzS3JGhmlWzQENZbPmPf16\nRIaGyqbJzS1Mezq9bI9savSqJ5vXeo0zrRccWtXU+VJoZG3ZJIyNMs167mb9WZy2cKZs/n7lLdnE\n9tavu3PO+YcEyqbj0ETZ7Fms3wvOORfZqLKp87VqbWNl8/esA6ZZbVL1PTamXX3ZlCun72W1lh4y\n7WnYqKdk88OU12Rz5Yr+tznn3G9TF8hm7KwRpllW2clnZFN4Ic80a9lP62Tz0U8/yWbR0M9k8/u3\nf5n21LFBA9nc/cGDsknbetC03uofN8imWT+9XllFNqgkm/R02/uwtFR/N655o753RlRsIptTpatM\ne1q1eI1sGuxqLJsez9uePU98v0s2df/DLZ2/nAEAAAAAAPAQhzMAAAAAAAAe4nAGAAAAAADAQxzO\nAAAAAAAAeIjDGQAAAAAAAA9xOAMAAAAAAOAhDmcAAAAAAAA8xOEMAAAAAACAhzicAQAAAAAA8FDA\ntX64fPduOaDJxYumhaZ+P142MXE9ZfNukD5PytqXbtrTPb16ycYvQK+378utpvUqxVY0db52OfWS\nbAaN7WeadXLeAdls+XS9bO5491bZBD93zbfn/0heekw25QMDZfPEgBtN68U/0NbU+dLRjcdlc/l4\nlmnW3wf073D0F1/IJmPry7IJrhpm2tP26TNkE1ZPf37qDepuWm/2kx/K5rHv9Hu0rLJS9O9o+p9/\nmmYFG97TfV+/TzY73/1VNpbroHPObViwXTaF5/Nkk5OaY1qvYsVEU+dLlZvXlc2JVYtNs26b9rhs\n7pw+QTZzn3pfNj0f0/c755w7/vMe2cTdoN/HmbtSTev9tW6HbNo9aBpVJp2fu142y15daJq1/4tt\nsun9gr7HrpiyVDbhtaJMezrxh77OR9TX19SqTW33u/LlY02dL104sk82pVdLTbO+/Ptv3TzwgGwG\nTR4qm1due8+0p6m/TpLNzEemy+amh23Pd9mHLuiolWlUmZzekiSbqQsWmGYdXPmlbPIuZMomtoF+\nHgwOsN2rt6evkM2Sl+fJ5tyk30zrnUi1XXt9KWNnimxKr9g+i5GhobL542f9DBfdvKpserVradrT\nzgP6e0bo12tls23fEdN6vUd2NnW+tvOzTbJpPCzBNGvKHa/J5rW5+vp1cqX+/CQMGWPa08TOzWRz\nYZ/+Xe+avsG0XuuxXU3dv+IvZwAAAAAAADzE4QwAAAAAAICHOJwBAAAAAADwEIczAAAAAAAAHuJw\nBgAAAAAAwEMczgAAAAAAAHiIwxkAAAAAAAAPcTgDAAAAAADgoYBr/bDkyhU54Ja3R5oWurjjrGwy\n9v4sm837Dsumc3BT0578/Pxkk3s2RzYxDWNM60U2qmzqfG13UpJsGldINM1KeLKrbApz8mSzavJS\n2SRfvGja06Gz+r115+DesoloUMm03jPD35DN7E2DTbOsEu/rKJvi3CLTrKeb3C6bE7t+lE2dOxJk\nExgebNpTXuol2fiV05/XIz//ZVqvZXxdU+drXSc+IJtFT/cxzQoIiJRN1ll9vax7a3PZlK8cbtrT\n8kWbZVOxVTXZDH/oWdN6C7vUlk3CoEdMs6xWvv6bbPq8eotpVkGevnbtnr5BNl3u6CSbui1uNe3J\nlZbKJLRahGyO/nnAtFz35s1Mna8d+WybbGpWst0T6o7Un6Fygf6yadlHz8nYfc60p0oNq8jm8slM\n2fzw9kTTeg2rV5fN7R9/bJpl9fXkubIpLC42zdp65DXZ3NG9u2wy9unfT0hQkGlPR2atlU3rOnVk\nU5iZb1qvIPWyqfO1c1lZsjm1b45p1t8/bJRNv7F9ZXN0zU+ySXymv2lPJ+fra03VChVk03S07Tm9\ndaat8yXL8/PiT23PZ90HtJPNzlX7ZdOrhb4mNbi3s2lPUbuqyqY4q0A2CTm1TOud26C/tzUfaBpV\nJjFx+vd4aP5e06zH3xklm4M//i6bkjx9DU9J0nOccy7pN/1ckvjoY7LZ+5vtvlh65aqp+1f85QwA\nAAAAAICHOJwBAAAAAADwEIczAAAAAAAAHuJwBgAAAAAAwEMczgAAAAAAAHiIwxkAAAAAAAAPcTgD\nAAAAAADgIQ5nAAAAAAAAPBRwrR8OSkyUAw7O2GxaKLR6hGyqdI6TzfQff5RNn+EzTHuqfiFXNq88\n9YlsJoy7w7ReyeUiU+drwyYMlM25lcdNs4Y/9KxstqUtk03f14bLZtXNr1q25EZ06iSbure0kM0t\nXcea1hvYrp2p86XcM9mySdt0xjQrv0i/D9t1ri2bqKiOsjm1daFpT3t+3Smb617oK5tyXf1N64VX\nizF1vpa8fa1sanfoZ5qVsn+1bKLq6t/j2XV7ZVO5TnvTnq7vre8ZddoMk83jty0xrbd36T7ZJAwy\njTK7ccojsjm1Zo1p1vr5W2UTX62abGq00dfANRMnmvbUcvwQ2ZxcuE42/uVs/+2noKDQ1PlaUlq6\nbGYu0/cy55ybVm+MbM5dyJdNSJx+Tqp/482mPR1dNl820S2qy2ZAbmfTemf2nzV1vvTApNtkk3M8\nwzTroarhsrladEU2r074TDZP3T/CtKeQGvr90GTUjbI5NMt2Pf1txQbZdLI9JpVJ15EdZJOy7Jhp\nVq/7u8smvHpl2eSdzZHNwU/XWLbkigqKZVOhegU9qNS0nAuOCrGFPnTijwOy6danjWlWxt402fR5\nVj8nhVasKpv1U38z7aly9Yqy2bHniGz6P97HtF7qihOmztea3TdUNpffmGWalZ92STb+Idc8hnDO\nOVfzxkayOf3HQdOe4gbpWXt//ko2Tfs1Na33xr36PGL6in9/5uIvZwAAAAAAADzE4QwAAAAAAICH\nOJwBAAAAAADwEIczAAAAAAAAHuJwBgAAAAAAwEMczgAAAAAAAHiIwxkAAAAAAAAPcTgDAAAAAADg\nIQ5nAAAAAAAAPBRwrR/WbBErBwRXCjUtlL03XTaXTmbKZvr48bIpzik07Sm6WVXZPNfqLtksm7/B\ntF75oCDZNOv/oGlWWXzx0k+yeeKzB0yzFi74RDZb3l4um31nzsjmg0VfmfaUske//hd3p8jm+4VT\nTes9NnKybJ42TbKr3qm5bCLjK5lmZR3Un8VMQ3Nq35eyKcktNu3phsmPyCYjea9s0v4+ZVovv/El\n2VTu3dM0qyzCa0XJ5ocnXjXNqhkdLZsanXJkE16rgmx+e+Yd056GvPWkbLbN+FA2tatUMa0XHBho\n6nzp60ffkE2fu7qZZvV7oo9swmMry+bv1/W1cuE//5j2VP/ulrKp0TteNlHN9f3VOeei6zYxdb7W\n7LrGspk5tLVpVmBEsGzCYiNlk3tWf153f/mtZUuuw2PPyWb95Ndk8/kSfT93zrmiYn2tH2aaZDd7\n0jzZDBrZ3TRr5xz9+biQo38/d3bX6x3eddK0pwEj7pHNwW8Xy6ZKlzjTer2TE0ydr1U0PItnGb5D\nOOdc5o5zsilIz5VNlXY1ZVMu2N+0p8ML98umXk/9jFeYmW9aL3nhEdnETRpummWVmatf0wbNYkyz\navZrKBvLM/2B1dtks/mIfq2cc254696yiUvR9+rAcH2vcM65qFbVTJ2vbZ76vWx2nLRdvxKe7CKb\nGR8tlM0Nyfp53S/Q9rcmB7/cLpvOLz0km61v6O8/zjn3ys8vm7p/xV/OAAAAAAAAeIjDGQAAAAAA\nAA9xOAMAAAAAAOAhDmcAAAAAAAA8xOEMAAAAAACAhzicAQAAAAAA8BCHMwAAAAAAAB7icAYAAAAA\nAMBDfqWlpaVebwIAAAAAAOD/VfzlDAAAAAAAgIc4nAEAAAAAAPAQhzMAAAAAAAAe4nAGAAAAAADA\nQxzOAAAAAAAAeIjDGQAAAAAAAA9xOAMAAAAAAOAhDmcAAAAAAAA8xOEMAAAAAACAhzicAQAAAAAA\n8BCHMwAAAAAAAB7icAYAAAAAAMBDHM4AAAAAAAB4iMMZAAAAAAAAD3E4AwAAAAAA4CEOZwAAAAAA\nADzE4QwAAAAAAICHOJwBAAAAAADwUMC1flhQkCYHHPpjjmmhql1qy6ZcoL9sNr+9WjY3vvmqZUtu\nxxefyCY0NkI2VdrHmda7uOecbJr1e9A0qywOrflaNgXpuaZZNXo0kE27qv1lszV1oWxmPPSFaU/P\n/fCBqVOSd6wxdX9+ulw2T//44//lbv7/tsx4UzZHD5w2zer9Qj/ZJM07IJuKrarJxi/Qdv57teiK\nbDJ3pcqm9s3NTOslzd0nm07jXzTNKotDq/VnsWH3u02zJt50s2zufmqobPyDr3kbcM45F1Xfdo37\n+KGPZPP1/PmyWbx4pmm9jO0psuk28VXTLKsjG7+TTWjVcNOsoAh9f9n6zgrZXD/padmc2bnMtKfA\n8CDZlK8UJpvVU23r3TjlIdlUqJBgmlUWeXlJsgkN1c8tztmuzy3vv082H48eJ5sHPn3BtKdfntL3\nxaYN9L8vbmhj03rFuUWyqdf6dtMsq43vTpZN2tmLplnXvaSvp+/f945sHnrrTtmcW3nCtKfQuEjZ\n5J7Kkk3lTrbrd2iMvm7VqK3vKWVVWKh/R+mn9bO/c85Vim0vm9DQWrK5cGGNbPIzLli25MIq15TN\nj+M+lc36gwdN602e8bhs4tvfZZpltWPWNNnUvrGdadbp5f/IJv/sJdmcS9a/n8HvvGba06IJutt6\n7JhsfvjzT9t6Cz+TTfMB+t5ZVm/deqtsRr4wxDSrJLdYNpH1omWzdqp+Bmp3fyfTng7O3imbJTt2\nyOa5rx8zrZd5QJ+j/Kfv/fzlDAAAAAAAgIc4nAEAAAAAAPAQhzMAAAAAAAAe4nAGAAAAAADAQxzO\nAAAAAAAAeIjDGQAAAAAAAA9xOAMAAAAAAOChgGv9MCtrmxxwteiKaaHyYdVlc2aNXq98YKBsPrvf\n9r8/3qpeXdn4h+j1Tvy4x7Re56deNHW+Vr11O9kUFaWaZpUU5ctm+ZqvdfPaItlkXr5s2lNO5m7Z\nfP7k97JpWbu2ab3Hv5lu6nwpsEKwbOo3rGmalZemX9eS3GI9yE8n2fvSDTtyriAtVzYhsRGyOTFL\nvxeccy5+VGtT52vHFh80NM+bZo37aqxsTvyqr6kLl22SzW2PDjDt6dGZT8om0N9fNtU7tDCtV3gx\nz9T5kmXN0iulpll7F26VTYNBTWXz/WP63jL49SGmPeWlX5LNwlcWyKZpA9v19NAsfS/o8FiCaVZZ\nHF+5WDZ+foaLnHOuxeh7ZHP4zzmyuelp/TlL3bvdtKeElvVlU3t4c9kEBkaZ1gur1cDU+VLnp1+S\nzYa3JplmlZRkyWbcV+Nkc+xHfT2dv2y9aU+Pvn23bPxDrvkY75xz7tzSY6b14m5qYup8LeXQctlU\niNPP6845d/nyIdnseP8b2VTuGiebaq1amfb0x3OfyybAcF9sGBtrWi8gNMjU+dLW1XtlU6277XcY\nXDlUNjWv1/fFq1/oz+LmN6eZ9tR6dAfZxCyJls3UBfre6ZxzWz5+y9T5Wt8hnWSTcyzDNCsyvpJs\n1r/xl2zaP9hZNiUFJaY9RVWvIJsXvn9CNue3JZvWC4vT6/0n/OUMAAAAAACAhzicAQAAAAAA8BCH\nMwAAAAAAAB7icAYAAAAAAMBDHM4AAAAAAAB4iMMZAAAAAAAAD3E4AwAAAAAA4CEOZwAAAAAAADzE\n4QwAAAAAAICHAq71w4iIZnJAwq3dTAvt+OIz2Zw+nCKbTk92l03HSg1Me/rjuU9k07hqqGzaPvag\nab309CWyiYnpb5pVFpmn98umVrNhplkHFn8tm/JVwmTj7+cnmyoVKpj2tPHd1bLZcPCgbB6d+Zhp\nveS9S2VTP/FO0yyr4uxC2dQZ3tw069LpTNk0fvA62Wx8c6FsqtapbNpTtT71ZBNieF+dW33StN43\n42bL5vk5g0yzyuJyQYFsbpzykGnWud3bZXPpTLZs2sfHy6ZyS/37cc65Syn6Gt6hgb4+b3xjnmm9\nxHH6feprUY2ryGb1+ytNs5q206/9hU3JsmneuI5s0jaftmzJtRz2qGxCXg2XTfrGJNN66Tv0e+a/\nIa5bR9kc/0PfW5xzLiNts2wGj3xCNmt2/yib0Gr6tXfOuUuRwbIJC9OfxYzkPab1wurq97Kvbfnk\nLdlEt6thmuXvHymbsLD6srnlyZ6yWbL8c9Oeii8XyWb+58tl07tTK9N6+amXdGR7zCiTrIPnZVOc\nq18L55xbPnOVbPKK9KxhhmeSd+55zbSnmtHRsulwvf4d5Z3MMq1XpW47U+dLfR/rLZvN0/42zQr0\n95fNyRVHZbP/zBnZDBilP6/OOVdwIU82lTvWlE1qqn5uds65c8fTTJ2vxQ+8QTYLn//INKtnx36y\nuWGKvi/u+26ubFKOppr2tOOk/o7w6C0JelBpqWm9ms306/mf8JczAAAAAAAAHuJwBgAAAAAAwEMc\nzgAAAAAAAHiIwxkAAAAAAAAPcTgDAAAAAADgIQ5nAAAAAAAAPMThDAAAAAAAgIc4nAEAAAAAAPBQ\nwLV++NfLM+SAyJAQ00JhNSNl0+GRrrLJ3Jsqm0Nbtpv2lJOXJ5uUI3q9crO/M623dOkW2bw0t79p\nVlmkbzgtm13fPGea1aBfY9mUC/aXTashrWTT2t/PtKfQ6vq91fX5PrIpyM40rTdp7Gey+Xb9naZZ\nVgtWbJLNbXUrmmZValVdNmfX7JNN+cBA2UQ0qmTa08UtZ2VTtWdd2TS/41bTekHRtuuWr8VWipbN\n1atFpllJiw/LZsvRo7IJNvweGxxIMu2pIP2ybEKrhMkmL7nQtN7rd30gm09WDjLNsjo5a49sqkTq\na5JzzhVdyJdNUMXysgmrE6XXytRrOedcWtoi2cwY85VsKkVEmNbLLSiQjb56l13WGf35CY21/R6T\n5h2Qzc6L62Xz5l1TZTNq7FDTnlxpqUyWvvSJbGo3iTUtV3AhVzaNuo0yzbKKbq3vZScXHDTNKs7R\n15yQaqdks2yV/mycW3nCsiUX1TxGNmO/eUM2BQVnTOutnbJANk2uN40qk/yzl2TTcNBA06wKYfo5\ne/DzetbcSb/L5skvHjbtqTBHf9cIidLPBv7+oab1MlN3ySasfj3TLKuibP356Tiuu2nWie93yyZ2\ncCPZ1EtvKJurxVdNe1o/e6NsOt/aQTY5xy6Y1qsQavtd+9rhX/6UTe26+rrrnHMnf9bPSsePLZHN\n6Qv6Nbv7Dduzf4Vv9PNnOf9rHo0455z76aulpvUeblRFNrUaj/j3PZimAwAAAAAA4L+CwxkAAAAA\nAAAPcTgDAAAAAADgIQ5nAAAAAAAAPMThDAAAAAAAgIc4nAEAAAAAAPAQhzMAAAAAAAAe4nAGAAAA\nAADAQwHX+mHLUe3kgJj6nU0LZWfslE3VGv1lUy5ooWzObT5j2tOAp/R6W7/cKJtLJ7NM6w0c3s3U\n+Vrtm5rKZsfzh0yzap3Pk42fn59s4nsMl82WqR+Y9hRat4JsPv36D9m8+8c003p3de9u6nzpzicG\nyeab938zzRp5cy/Z1B7UUjYXd6XKJqpxjGlPWXvSZRMYFiib359507Re29v1te2/od6oVrKZ/+xn\nplmN6sfJZuTjA2RTmJkvm+qt25v2dHrdetmkn7kom7jW+t/mnHNP3dba1PlSSK1I2dz1wDOmWctW\nfyWbik30ZyhtY5JsLu5JM+2pUpsasnlg8m2yyTCuV3g+19T52qaZ+r3a73X973TOuczd+t+auv2A\nbLo3ayabmNYNTHvKjdXX1MhGlWXjV07fz51zbtGMFbJp1G2UaZZV8aVC2UQ3rGKa5R9yzcdh55xz\nNVvqe2dWxg7Z1OrQx7Sn8yf18+d790yQTcbly6b1nnzzHlPna1W715bNggnvm2Z1G6OfzyrFJcrm\n8W+ul03y/iWmPa3/fJ1smraLl822dftM6z3yzTemzpcytqXIpn7XEaZZhYP1M8m5pcdkUyFB3zsD\nDM+VzjlXIzpaNkFRIbIpHx1qWi84qryp87WQGvr5xj9U/36ccy6yob6/lOQWy6bT6C6yydirv484\n51z75+6Wze6P58jmic8fNK23apK+Rtz+8b9/LvjLGQAAAAAAAA9xOAMAAAAAAOAhDmcAAAAAAAA8\nxOEMAAAAAACAhzicAQAAAAAA8BCHMwAAAAAAAB7icAYAAAAAAMBDHM4AAAAAAAB4KOBaPyy6VCgH\n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\nVNOsiuX1PaFiVDXZlC4XIJuDa2NNexo191XZpJ7fKptJI183rfdQv36yuXPePNOsksjM/Es23z79\noWnWw59+IpvdH+p7bMWoUNlUqBli2lNqzHnZ1L+tk2ziV+42rbdpwz7ZPPvNN6ZZVvuXvS+bF9/5\nzDRr8uDBsmk2spVsLvx2SjbLd+jPNM45N3nqSNmUMTxXVmxou34nb4mXTdt7pppmlURWVpxsDn20\n3DQr8r42sslOyJSNf3l9TU1ed9q0pzojmsomN/WabLLP6n0759zBrUdl8+CiRf/x3/jLGQAAAAAA\nAA9xOAMAAAAAAOAhDmcAAAAAAAA8xOEMAAAAAACAhzicAQAAAAAA8BCHMwAAAAAAAB7icAYAAAAA\nAMBD/jf7YmxCghxQ++wl00JnfjoimwqV9P8jPmJ0S9nkpeeY9nR5V5JsQnvUkU1G6h7Tejs/3S6b\nyAVjTLNK4uLxiz5pnHMusm8j2ZzeeFI2V3L078ivlJ9pT7Pfelw2QXUryqZhmu3/W//sN9+YOl+6\nevyybM4fu2CadejcOdl0bdxYNv3emCGb+D0/mvZ04NufZdP7pdtkk7zutGm9UmVveulzzjkX/ugI\n06yS6PJsP9k8mphomnXbnDmyiZn/tmwupKfL5ue9e017enp8O9mkH9DXmsCAANN6B386IJumvU2j\nzMIGRMgm49xx06yAkEDZxLz5sWzq3tFUNpHt7jXtae/ns2UT3LiabPwCbP/2s2/hTtnUnRdtmlUS\nVZtGyqZRuO33WKWZfk64GKPviw1uaSib6xl5pj1dPZ0mm+yz+p7XICzMtF7upWxT50uNR/eWTdCf\n+hrhnHMFWfmyCe2sf8+lAkrLZmAXfQ1xzrljK/SzxrrVMbIZ3aOHab1tx47J5k7TpJLJSIiTTf9J\nfUyzjv76hWxuZBfI5tM5+tll3LhbTXsK7VZPNlfP6/t+mSrlTOtNXvyKqfOlO8Y9JZuYxFWmWZWr\ndpbNimkzZdP/Ff3M+NqU3pYtueLi67L57eWVsrE+29SpXd3U+VpRkf4+aw1vYppVeE3PupZguAcN\nGSibjPAU055Wvak/a1zIyJBNtya2n0G90FBT9+/4yxkAAAAAAAAPcTgDAAAAAADgIQ5nAAAAAAAA\nPMThDAAAAAAAgIc4nAEAAAAAAPAQhzMAAAAAAAAe4nAGAAAAAADAQxzOAAAAAAAAeIjDGQAAAAAA\nAA/53+yL9UND5YANCzeZFho8bbBsbuQVyMa/bHnZ1Gjc3rSnggH5sknbc0E2QwY/YlpvQ8xSU+dr\nxYam/WPdTbOyz2fKZv7PP8vm44XPyeZyTKJpTyeOnJPNhfR02bSLiDCtt2PWTNl0f26GaZZV2bAK\nsknaob9H55ybtGC8bA7M2yab2O8/k014nwamPfV8rr9sclIvy+bIsbOm9Ya8NNTU+dqppftkM27W\nPaZZ8Qe/kc03azbLplvTprI5f1n/7J1zbuucDbLpeH8X2TQz/rNB7cFNbKEPZZ1Mk029oW1Ns2K/\n1z+v2kMby6ZKZHPZzLrH9rqqZ7jv9+gTKZtrtYJN63Ucpff+dzj7617ZNBtve5bIiNP3qvzUHNnE\nH0yQzYbYWNOeBrdpI5sTycmyCa9c2bRep/YtTJ0vnV6xXTbPzVpsmvXFCn1f3zFXP+9GtKgjm8Ic\n/azrnHOVWlaXTdem+hroHxxgWq9DdAdT52tB4fr7vLT7pGlW1LCHZBNz/F3Z/GPBRNkUF1merp0L\nDNHPb2+OmyebRjVqmNarUCtENsGd9X2/JFb/+JFsjn2y2zSrzjD9OaPTA/o54viCHbLpPsP2rB63\ncYlsBr50q2yS1p02rRdYtZyp87XjX/8qm2b3DTPNSj1xQDatoh+TzdSBg2TzwuePm/Y05tbOsrlx\nI1s2CWsOmdZrMnKEqft3/OUMAAAAAACAhzicAQAAAAAA8BCHMwAAAAAAAB7icAYAAAAAAMBDHM4A\nAAAAAAB4iMMZAAAAAAAAD3E4AwAAAAAA4CEOZwAAAAAAADzkf7MvVq9fTQ5oPaGzaaFriVdkU6F2\nRdkcen+zbNo/U8WyJRe3+ohsktLSZLN+51em9cpWK2/qfK3zM71ls3fOVtOs5ve2lc2EAQNkkxl7\nSTZpiRmmPUV1ayybMrvP6D3l5JjWC+9ez9T50vy5y2VTvaJ+/zjn3KH5O2TT5qmesvnhue9l88Dw\nW017yrgYK5vUXYmy6Ty8nWm9n15eIZvHv7rdNKskIka3ks0/n/nWNGvs7NGymf7VFNnkJF+VzfvP\nLjHtKT07WzYFWfmyKVsjyLRe/LeHZBP2xFDTLKtSgTe9bTrnnNv+1s+mWQNmTpXNW2OekE3v5sdk\nM2nRdNOedr+jX39HP90jmybj9L3COeey4g3X+QamUSVSNqyCbK4l6veGc85Vb91ENvuX75NNRNPa\n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\nAADw0P8CtULO02b9mM8AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ],
+ "text/plain": [
+ " median_house_value\n",
+ "count 5000.0\n",
+ "mean 229.5\n",
+ "std 122.5\n",
+ "min 15.0\n",
+ "25% 130.4\n",
+ "50% 213.0\n",
+ "75% 303.2\n",
+ "max 500.0"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 25
+ }
+ ]
+ },
+ {
+ "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": "8581f48f-9d2d-4a45-eb4a-c7fc0564fd9c"
+ },
+ "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": 26,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\nYII=\n",
+ "text/plain": [
+ "