Skip to content

Instantly share code, notes, and snippets.

@lukebyrne
Created September 6, 2018 07:25
Show Gist options
  • Save lukebyrne/8360a490983cbb78ebe6456fcf03842f to your computer and use it in GitHub Desktop.
Save lukebyrne/8360a490983cbb78ebe6456fcf03842f to your computer and use it in GitHub Desktop.
A Jupyter notebook running though the Fast AI Random Forrest Machine Learning tutorials to apply to https://www.kaggle.com/c/house-prices-advanced-regression-techniques
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"%reload_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from fastai.imports import *\n",
"from fastai.structured import *\n",
"\n",
"from pandas_summary import DataFrameSummary\n",
"from sklearn.ensemble import RandomForestRegressor, RandomForestClassifier, ExtraTreesRegressor\n",
"from IPython.display import display\n",
"\n",
"from sklearn import metrics"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load data"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"PATH = \"/home/paperspace/data/house-prices/\""
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"data_description.txt sample_submission.csv.gz test.csv.gz train.csv.gz\n",
"sample_submission.csv test.csv\t\t\t train.csv\n"
]
}
],
"source": [
"!ls {PATH}"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"df_raw = pd.read_csv(f'{PATH}train.csv')\n",
"df_test = pd.read_csv(f'{PATH}test.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Set our dependant variable as log"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"df_raw['SalePrice'] = np.log(df_raw['SalePrice'])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"#len(df_train), len(df_test)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"#df_test.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setup train/validation split"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def display_all(df):\n",
" with pd.option_context(\"display.max_rows\", 1000, \"display.max_columns\", 1000): \n",
" display(df)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"#display_all(df_orig.isnull().sum().sort_index()/len(df_orig))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"df_raw.fillna(-1, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"df_train = df_raw"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"train_cats(df_train)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"apply_cats(df_test, df_train)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"_, y, nas, mapper = proc_df(df_train, 'SalePrice', do_scale=True)\n",
"df_test, _, nas, mapper = proc_df(df_train, 'SalePrice', do_scale=True,\n",
" mapper=mapper, na_dict=nas)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"#apply_cats(df_test, df_train)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"def split_vals(a,n): return a[:n].copy(), a[n:].copy()\n",
"\n",
"n_valid = 100\n",
"n_trn = len(df_train)-n_valid"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"def rmse(x,y): return math.sqrt(((x-y)**2).mean())\n",
"\n",
"def print_score(m):\n",
" res = [rmse(m.predict(X_train), y_train), rmse(m.predict(X_valid), y_valid),\n",
" m.score(X_train, y_train), m.score(X_valid, y_valid)]\n",
" if hasattr(m, 'oob_score_'): res.append(m.oob_score_)\n",
" print(res)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"df_trn, y_trn, nas = proc_df(df_train, 'SalePrice')\n",
"X_train, X_valid = split_vals(df_trn, n_trn)\n",
"y_train, y_valid = split_vals(y_trn, n_trn)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Single Tree"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.21567127053774032, 0.21915836549189271, 0.70982587091829474, 0.67514627770334656]\n"
]
}
],
"source": [
"m = RandomForestRegressor(n_estimators=1, max_depth=3, bootstrap=False, n_jobs=-1)\n",
"m.fit(X_train, y_train)\n",
"print_score(m)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
" -->\n",
"<!-- Title: Tree Pages: 1 -->\n",
"<svg width=\"720pt\" height=\"434pt\"\n",
" viewBox=\"0.00 0.00 720.00 434.49\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.778659 0.778659) rotate(0) translate(4 554)\">\n",
"<title>Tree</title>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-554 920.667,-554 920.667,4 -4,4\"/>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\"><title>0</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.392157\" stroke=\"black\" points=\"166.167,-308.5 21.1667,-308.5 21.1667,-240.5 166.167,-240.5 166.167,-308.5\"/>\n",
"<text text-anchor=\"start\" x=\"29.1667\" y=\"-293.3\" font-family=\"Times,serif\" font-size=\"14.00\">OverallQual ≤ 6.5</text>\n",
"<text text-anchor=\"start\" x=\"52.6667\" y=\"-278.3\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.16</text>\n",
"<text text-anchor=\"start\" x=\"35.6667\" y=\"-263.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 1360</text>\n",
"<text text-anchor=\"start\" x=\"39.1667\" y=\"-248.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = 12.025</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\"><title>1</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.231373\" stroke=\"black\" points=\"418.167,-361.5 257.167,-361.5 257.167,-293.5 418.167,-293.5 418.167,-361.5\"/>\n",
"<text text-anchor=\"start\" x=\"265.167\" y=\"-346.3\" font-family=\"Times,serif\" font-size=\"14.00\">GrLivArea ≤ 1378.5</text>\n",
"<text text-anchor=\"start\" x=\"292.167\" y=\"-331.3\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.082</text>\n",
"<text text-anchor=\"start\" x=\"284.167\" y=\"-316.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 844</text>\n",
"<text text-anchor=\"start\" x=\"283.167\" y=\"-301.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = 11.813</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M166.292,-290.187C191.504,-295.708 220.168,-301.986 246.697,-307.796\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"246.231,-311.277 256.748,-309.997 247.729,-304.439 246.231,-311.277\"/>\n",
"<text text-anchor=\"middle\" x=\"235.698\" y=\"-319.784\" font-family=\"Times,serif\" font-size=\"14.00\">True</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node9\" class=\"node\"><title>8</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.654902\" stroke=\"black\" points=\"410.167,-255.5 265.167,-255.5 265.167,-187.5 410.167,-187.5 410.167,-255.5\"/>\n",
"<text text-anchor=\"start\" x=\"273.167\" y=\"-240.3\" font-family=\"Times,serif\" font-size=\"14.00\">OverallQual ≤ 7.5</text>\n",
"<text text-anchor=\"start\" x=\"292.167\" y=\"-225.3\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.094</text>\n",
"<text text-anchor=\"start\" x=\"284.167\" y=\"-210.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 516</text>\n",
"<text text-anchor=\"start\" x=\"283.167\" y=\"-195.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = 12.372</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;8 -->\n",
"<g id=\"edge8\" class=\"edge\"><title>0&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M166.292,-258.813C194.095,-252.724 226.095,-245.716 254.802,-239.429\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"255.787,-242.796 264.807,-237.238 254.289,-235.958 255.787,-242.796\"/>\n",
"<text text-anchor=\"middle\" x=\"243.756\" y=\"-220.051\" font-family=\"Times,serif\" font-size=\"14.00\">False</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\"><title>2</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.152941\" stroke=\"black\" points=\"683.667,-486.5 513.667,-486.5 513.667,-418.5 683.667,-418.5 683.667,-486.5\"/>\n",
"<text text-anchor=\"start\" x=\"521.667\" y=\"-471.3\" font-family=\"Times,serif\" font-size=\"14.00\">TotalBsmtSF ≤ 799.5</text>\n",
"<text text-anchor=\"start\" x=\"553.167\" y=\"-456.3\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.071</text>\n",
"<text text-anchor=\"start\" x=\"545.167\" y=\"-441.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 528</text>\n",
"<text text-anchor=\"start\" x=\"544.167\" y=\"-426.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = 11.706</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M409.44,-361.657C442.987,-377.848 483.205,-397.258 517.838,-413.972\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"516.452,-417.19 526.979,-418.384 519.495,-410.886 516.452,-417.19\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\"><title>5</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.368627\" stroke=\"black\" points=\"682.167,-361.5 515.167,-361.5 515.167,-293.5 682.167,-293.5 682.167,-361.5\"/>\n",
"<text text-anchor=\"start\" x=\"523.167\" y=\"-346.3\" font-family=\"Times,serif\" font-size=\"14.00\">BsmtFinSF1 ≤ 142.5</text>\n",
"<text text-anchor=\"start\" x=\"553.167\" y=\"-331.3\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.051</text>\n",
"<text text-anchor=\"start\" x=\"545.167\" y=\"-316.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 316</text>\n",
"<text text-anchor=\"start\" x=\"544.167\" y=\"-301.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = 11.992</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M418.489,-327.5C445.758,-327.5 476.492,-327.5 504.705,-327.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"504.975,-331 514.975,-327.5 504.975,-324 504.975,-331\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\"><title>3</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"898.167,-550 773.167,-550 773.167,-497 898.167,-497 898.167,-550\"/>\n",
"<text text-anchor=\"start\" x=\"790.167\" y=\"-534.8\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.088</text>\n",
"<text text-anchor=\"start\" x=\"782.167\" y=\"-519.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 170</text>\n",
"<text text-anchor=\"start\" x=\"781.167\" y=\"-504.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = 11.505</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M683.843,-477.932C709.771,-485.766 738.058,-494.312 763.058,-501.865\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"762.241,-505.274 772.826,-504.816 764.266,-498.574 762.241,-505.274\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\"><title>4</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.223529\" stroke=\"black\" points=\"898.167,-479 773.167,-479 773.167,-426 898.167,-426 898.167,-479\"/>\n",
"<text text-anchor=\"start\" x=\"790.167\" y=\"-463.8\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.034</text>\n",
"<text text-anchor=\"start\" x=\"782.167\" y=\"-448.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 358</text>\n",
"<text text-anchor=\"start\" x=\"781.167\" y=\"-433.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = 11.801</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M683.843,-452.5C709.656,-452.5 737.808,-452.5 762.725,-452.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"762.826,-456 772.826,-452.5 762.826,-449 762.826,-456\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node7\" class=\"node\"><title>6</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.266667\" stroke=\"black\" points=\"898.167,-408 773.167,-408 773.167,-355 898.167,-355 898.167,-408\"/>\n",
"<text text-anchor=\"start\" x=\"790.167\" y=\"-392.8\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.052</text>\n",
"<text text-anchor=\"start\" x=\"782.167\" y=\"-377.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 116</text>\n",
"<text text-anchor=\"start\" x=\"781.167\" y=\"-362.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = 11.857</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;6 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>5&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M682.188,-346.462C708.575,-352.526 737.55,-359.184 763.091,-365.053\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"762.536,-368.516 773.066,-367.345 764.104,-361.694 762.536,-368.516\"/>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node8\" class=\"node\"><title>7</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.427451\" stroke=\"black\" points=\"897.167,-337 774.167,-337 774.167,-284 897.167,-284 897.167,-337\"/>\n",
"<text text-anchor=\"start\" x=\"790.167\" y=\"-321.8\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.033</text>\n",
"<text text-anchor=\"start\" x=\"782.167\" y=\"-306.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 200</text>\n",
"<text text-anchor=\"start\" x=\"785.667\" y=\"-291.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = 12.07</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;7 -->\n",
"<g id=\"edge7\" class=\"edge\"><title>5&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M682.188,-321.53C708.808,-319.605 738.063,-317.488 763.768,-315.629\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"764.081,-319.115 773.802,-314.903 763.576,-312.134 764.081,-319.115\"/>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node10\" class=\"node\"><title>9</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.537255\" stroke=\"black\" points=\"679.167,-255.5 518.167,-255.5 518.167,-187.5 679.167,-187.5 679.167,-255.5\"/>\n",
"<text text-anchor=\"start\" x=\"526.167\" y=\"-240.3\" font-family=\"Times,serif\" font-size=\"14.00\">GrLivArea ≤ 1725.0</text>\n",
"<text text-anchor=\"start\" x=\"553.167\" y=\"-225.3\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.045</text>\n",
"<text text-anchor=\"start\" x=\"545.167\" y=\"-210.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 300</text>\n",
"<text text-anchor=\"start\" x=\"544.167\" y=\"-195.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = 12.218</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;9 -->\n",
"<g id=\"edge9\" class=\"edge\"><title>8&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M410.469,-221.5C440.593,-221.5 475.953,-221.5 507.781,-221.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"507.979,-225 517.979,-221.5 507.979,-218 507.979,-225\"/>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node13\" class=\"node\"><title>12</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.815686\" stroke=\"black\" points=\"671.167,-131.5 526.167,-131.5 526.167,-63.5 671.167,-63.5 671.167,-131.5\"/>\n",
"<text text-anchor=\"start\" x=\"534.167\" y=\"-116.3\" font-family=\"Times,serif\" font-size=\"14.00\">OverallQual ≤ 8.5</text>\n",
"<text text-anchor=\"start\" x=\"553.167\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.084</text>\n",
"<text text-anchor=\"start\" x=\"545.167\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 216</text>\n",
"<text text-anchor=\"start\" x=\"544.167\" y=\"-71.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = 12.585</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;12 -->\n",
"<g id=\"edge12\" class=\"edge\"><title>8&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M409.782,-187.452C443.05,-171.525 482.819,-152.485 517.185,-136.032\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"518.752,-139.162 526.26,-131.687 515.729,-132.848 518.752,-139.162\"/>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node11\" class=\"node\"><title>10</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.470588\" stroke=\"black\" points=\"898.167,-266 773.167,-266 773.167,-213 898.167,-213 898.167,-266\"/>\n",
"<text text-anchor=\"start\" x=\"794.667\" y=\"-250.8\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.03</text>\n",
"<text text-anchor=\"start\" x=\"782.167\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 179</text>\n",
"<text text-anchor=\"start\" x=\"781.167\" y=\"-220.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = 12.131</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;10 -->\n",
"<g id=\"edge10\" class=\"edge\"><title>9&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M679.227,-227.594C706.264,-229.665 736.303,-231.966 762.71,-233.988\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"762.781,-237.504 773.019,-234.778 763.316,-230.524 762.781,-237.504\"/>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node12\" class=\"node\"><title>11</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.635294\" stroke=\"black\" points=\"898.167,-195 773.167,-195 773.167,-142 898.167,-142 898.167,-195\"/>\n",
"<text text-anchor=\"start\" x=\"790.167\" y=\"-179.8\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.039</text>\n",
"<text text-anchor=\"start\" x=\"782.167\" y=\"-164.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 121</text>\n",
"<text text-anchor=\"start\" x=\"781.167\" y=\"-149.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = 12.348</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;11 -->\n",
"<g id=\"edge11\" class=\"edge\"><title>9&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M679.227,-203.557C706.383,-197.432 736.568,-190.624 763.061,-184.649\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"764.034,-188.018 773.019,-182.403 762.494,-181.189 764.034,-188.018\"/>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"node14\" class=\"node\"><title>13</title>\n",
"<polygon fill=\"#e58139\" fill-opacity=\"0.745098\" stroke=\"black\" points=\"898.167,-124 773.167,-124 773.167,-71 898.167,-71 898.167,-124\"/>\n",
"<text text-anchor=\"start\" x=\"790.167\" y=\"-108.8\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.055</text>\n",
"<text text-anchor=\"start\" x=\"782.167\" y=\"-93.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 158</text>\n",
"<text text-anchor=\"start\" x=\"781.167\" y=\"-78.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = 12.494</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;13 -->\n",
"<g id=\"edge13\" class=\"edge\"><title>12&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M671.451,-97.5C700.43,-97.5 733.803,-97.5 762.79,-97.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"762.846,-101 772.846,-97.5 762.846,-94.0001 762.846,-101\"/>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"node15\" class=\"node\"><title>14</title>\n",
"<polygon fill=\"#e58139\" stroke=\"black\" points=\"893.667,-53 777.667,-53 777.667,-0 893.667,-0 893.667,-53\"/>\n",
"<text text-anchor=\"start\" x=\"794.667\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">mse = 0.08</text>\n",
"<text text-anchor=\"start\" x=\"786.667\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 58</text>\n",
"<text text-anchor=\"start\" x=\"785.667\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = 12.83</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;14 -->\n",
"<g id=\"edge14\" class=\"edge\"><title>12&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M671.451,-75.8119C702.144,-66.5387 737.768,-55.7759 767.888,-46.6756\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"768.901,-50.0261 777.461,-43.7834 766.876,-43.3252 768.901,-50.0261\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<graphviz.files.Source at 0x7f8ff1d91a58>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"draw_tree(m.estimators_[0], df_trn, precision=3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Full Tree"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.07690945774052342, 0.12772252383311306, 0.96309938582166144, 0.88966667013761835, 0.87175079869831995]\n"
]
}
],
"source": [
"m = RandomForestRegressor(n_estimators=100, min_samples_leaf=3, max_features=0.5, n_jobs=-1, oob_score=True)\n",
"m.fit(X_train, y_train)\n",
"print_score(m)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Feature Importance"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cols</th>\n",
" <th>imp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>OverallQual</td>\n",
" <td>0.353093</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>GrLivArea</td>\n",
" <td>0.162457</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>YearBuilt</td>\n",
" <td>0.089389</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>TotalBsmtSF</td>\n",
" <td>0.048058</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>1stFlrSF</td>\n",
" <td>0.037068</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61</th>\n",
" <td>GarageCars</td>\n",
" <td>0.033406</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62</th>\n",
" <td>GarageArea</td>\n",
" <td>0.032496</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>ExterQual</td>\n",
" <td>0.032142</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>BsmtFinSF1</td>\n",
" <td>0.019283</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>LotArea</td>\n",
" <td>0.016600</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" cols imp\n",
"17 OverallQual 0.353093\n",
"46 GrLivArea 0.162457\n",
"19 YearBuilt 0.089389\n",
"38 TotalBsmtSF 0.048058\n",
"43 1stFlrSF 0.037068\n",
"61 GarageCars 0.033406\n",
"62 GarageArea 0.032496\n",
"27 ExterQual 0.032142\n",
"34 BsmtFinSF1 0.019283\n",
"4 LotArea 0.016600"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fi = rf_feat_importance(m, df_trn); fi[:10]"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8fa86e6c88>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fi.plot('cols', 'imp', figsize=(10,6), legend=False);"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"def plot_fi(fi): return fi.plot('cols', 'imp', 'barh', figsize=(12,7), legend=False)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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1m0e288BjwMbNFg2Kv3pZ4BXS7pV0s8lvWmwG9vG+vObzO+5Of3tr3GSOiTdLOnggW3aiNJsPx8H/F8fy45m/elnyO+5GQ31taQTJN0FnAGc2EzZAPrXz9Amzx3ZsXp4dfeX7q6RaE95Gikblf7080PAlrYfk7Q7cLmkHbr8BSEq/flN5vfcnP7215a2H5S0NXCdpIW27xqgto0kDfezpA8BNeAtzZaNfvUz5PfcjIb62vY0YJqkDwKfA45utGwA/evntnnuyEjE8Lof2KLufHPgwZ7ySFodmAgsbbBsVPrcz2XY9jEA23Op5jhuO+gtbk/9+U3m99ycfvWX7QfLv3cD1wO7DmTjRpCG+lnS/sBngQNtP91M2QD618/5PTen2d/lxUDn6E5+043rcz+303NHgojhNQfYRtKrJa1JtaC365slZlJFpgCHAde5WnkzE/iAqrcKvRrYBpg9RO1uN33uZ0kbSRoDUP7KtQ3VAsl4uUb6uSdXAu+QtL6k9YF3lLToXp/7uvTx2HK8IbA3cPugtbS99drPknYF/ovqwfbhukv5TTeuz/2c33PTGunrbepO3wv8phznuaNxfe7ntnruGO6V3aP9A7wH+DVVpPnZknYa1f9QAowDLqVawDQb2Lqu7GdLuSXAu4f7u7Typ6/9DBwKLKZ6s8I84H3D/V1a+dNAP/8V1V9ongAeAxbXlT229P9vgY8O93dp9U9f+xrYC1hYftMLgeOG+7u08qeBfr4G+CMwv3xm1pXNb3qQ+zm/50Hp67PK/+/NB2YBO9SVzXPHIPdzOz13ZMfqiIiIiIhoSqYzRUREREREUxJEREREREREUxJEREREREREUxJEREREREREUxJEREREREREUxJEREREREREUxJEREREREREUxJEREREREREU/4/Xsh2l7Kj3ykAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8fa8665358>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_fi(fi[:30]);"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"21"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"to_keep = fi[fi.imp>0.005].cols; len(to_keep)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"df_keep = df_trn[to_keep].copy()\n",
"X_train, X_valid = split_vals(df_keep, n_trn)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.08446899389205763, 0.12494200589367001, 0.95548885781384341, 0.89441829035126719, 0.87297516071914893]\n"
]
}
],
"source": [
"m = RandomForestRegressor(n_estimators=40, min_samples_leaf=3, max_features=0.5,\n",
" n_jobs=-1, oob_score=True)\n",
"m.fit(X_train, y_train)\n",
"print_score(m)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8fa8776940>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fi = rf_feat_importance(m, df_keep)\n",
"plot_fi(fi);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## One-hot encoding"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.07658515031219115, 0.13093854269215696, 0.96340993051809298, 0.88404038947640307, 0.86587660947030576]\n"
]
}
],
"source": [
"df_trn2, y_trn, nas = proc_df(df_train, 'SalePrice', max_n_cat=7)\n",
"X_train, X_valid = split_vals(df_trn2, n_trn)\n",
"\n",
"m = RandomForestRegressor(n_estimators=40, min_samples_leaf=3, max_features=0.6, n_jobs=-1, oob_score=True)\n",
"m.fit(X_train, y_train)\n",
"print_score(m)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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wM7luP4tXuOBx0rg8/4yt76aAnwauBT4Sj/0FxERERExaIb7sq7RdXszBBxru0XS3sAZkl4ElgAf6KiDdtwGnFn6/bLtK8q+k19IWoNq+dc+theU+l8Hfibp/cDUun6+C1wl6fDS57M9mEPbPSdfoNo385Ltn5Z9NL+VtK/tqe13AWyyE0xu7vByRERERMRg0surmKI/SDob2BV4h+0Xhno+nanVam5uTnASEREREQNL0izbXb78abhnTgad7TOHeg4RERERESujBCcNqnw0su2+kYW2Dx6K+UREREREDLQEJw3K9k3ATUM9j4iIiIiIwTJi3tYVERERERGNLcFJREREREQ0hAQnERERERHRELLnZCUnaYntse2UXwzcYPvKjtrOe+Rpms785Qrli85+d7/OMSIiIiKiO5I5iYiIiIiIhpDMyTAhScB3gH2BhYCGdkYRERERET2TzMnwcTCwFbA98CHgze1VkjRJUrOk5pbnnh7M+UVEREREdCrByfCxF3CZ7RbbjwJT26tke4rtmu3aqDHjB3eGERERERGdSHAyvHioJxARERER0VsJToaP6cBRkkZJ2hjYZ6gnFBERERHRE9kQP3xcQ7UZfh7wB+B/umqw/abjac5rgyMiIiKiQSQ4Wcm1fuPEtoGTh3g6ERERERG9lmVdERERERHREBKcREREREREQ0hwEhERERERDSHBSURERERENIQEJxERERER0RASnEREREREREPIq4QLSS1U3wgR0AKcbPu3fexzArCJ7V+V88nAEttfr6uzCKjZfqKTfrYGLqf6AvxhwFHAe8s8lwMftn2XpGnAxsDS0vQLtq/sqN95jzxN05m/bPfaonz/JCIiIiIGWYKTly21PQFA0juALwNv7WOfE4Aa8Ks+9nMQcJ3tz0raHTgAeJPtZZLWB1avq3uM7eY+jhcRERERMeiyrKt9awP/AJC0saTpkuZIulfSnqV8iaSvSJol6RZJEyVNk/SgpPdIWh04CziytD2yswElNUm6X9KFkuZLulnSaEnvAk4FTpR0G1Vm5AnbywBsP2H70QF8FhERERERgyLByctGlyDi98D3gc+X8vcCN5Wsyo7AnFK+FjDN9s7AYuALwNuBg4GzbL8AfAa4wvYE21d0Yw5bAOfb3hZ4Cji0LAm7APiW7X2Am4HXSPqDpO9KapvdubTcxxxJ6/Xu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RNIkYBLAq8aM7odpR0RERET0jyzrGhgv8cpnu2YP218P7FWOTwP+SvXl+hqweiftltUdt9BO8Gl7iu2a7dpaa3TWVURERETE4EpwMjAWARMkrSLpNcDEHrbfA3igHI8HHrO9HHg/MKqUL6ZaAhYRERERMSxkWdfA+A2wkOoVw/cCs7vRpnXPiYAXgBNL+XeBqyQdDtxG9ZphgLnAS5LuAS6mbKDviVf/0xvyeuCIiIiIaBiyPdRziCFSq9Xc3Nw81NOIiIiIiGFO0izbta7qZVlXREREREQ0hAQnERERERHREBKcREREREREQ0hwEhERERERDSHBSURERERENIQEJxERERER0RDynZNeKB9WvATYCFgOTLF9bg/aTwNOt90saRHVBxVbyuV/Ax4FbrC9XTttVwHOAfYFDDwPHGF7YXt92f5tR/N4/KHFnP+Rqd2dNiddsG+360ZERERE9FSCk955CfiY7dmSxgGzJP3a9n297G8f20+0nkhqaq+SpFWBw4FNgB1sL5e0GS9/mHGFviIiIiIiVhYJTnrB9mPAY+V4saT7gU0lfRe4C9gHWAf4oO3bJY0GfghsA9wPjO7uWJKOA94NrAmsBdwAPGZ7eRn/4f66r4iIiIiIoZTgpI9KlmMnqqAEYFXbEyW9C/gssB/wr8BztneQtAMwu003t0lqAZbZ3rWdYXanypQ8WTIld0jaE7gV+Intu3vQV0REREREQ0pw0geSxgJXAafafkYSwNXl8iygqRzvBXwbwPZcSXPbdNXVUqxf236ytH9Y0lZUe072BW6VdLjtW7vTl6RJwCSAV43dsHs3GhERERExCBKc9JKk1agCk0ttX113aVn528Irn6/7MFz9nhJsLwP+G/hvSX8FDqLKonTJ9hRgCsDmG2zVlzlFRERERPSrvEq4F1SlSH4A3G/7m91oMh04prTdDtihD2O/SdIm5XiV0tdDve0vIiIiIqJRJHPSO28B3g/MkzSnlH2yk/r/BfywLOeaA8zow9gbAhdKWqOczwDO60N/ERERERENQXZW9oxUtVrNzc3NQz2NiIiIiBjmJM2yXeuqXpZ1RUREREREQ0hwEhERERERDSHBSURERERENIQEJxERERER0RASnERERERERENIcBIREREREQ0h3zkZwZ6/dz73b/3Gbtd/4+/vH8DZRERERMRIN+IyJ5I2k3Sd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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8fa85ca0f0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fi = rf_feat_importance(m, df_trn2)\n",
"plot_fi(fi[:25]);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Removing redundant features"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"from scipy.cluster import hierarchy as hc"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8fa86e6b38>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"corr = np.round(scipy.stats.spearmanr(df_keep).correlation, 4)\n",
"corr_condensed = hc.distance.squareform(1-corr)\n",
"z = hc.linkage(corr_condensed, method='average')\n",
"fig = plt.figure(figsize=(16,10))\n",
"dendrogram = hc.dendrogram(z, labels=df_keep.columns, orientation='left', leaf_font_size=16)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Partial Dependence"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"from pdpbox import pdp\n",
"from plotnine import *"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"reset_rf_samples()\n",
"#set_rf_samples(100)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.07584327689732025, 0.12887608450813018, 0.96411538642281658, 0.88766465903757164, 0.86830648123794241]\n"
]
}
],
"source": [
"df_trn2, y_trn, nas = proc_df(df_train, 'SalePrice', max_n_cat=7)\n",
"X_train, X_valid = split_vals(df_trn2, n_trn)\n",
"m = RandomForestRegressor(n_estimators=40, min_samples_leaf=3, max_features=0.6, n_jobs=-1, oob_score=True)\n",
"m.fit(X_train, y_train)\n",
"print_score(m)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAwcAAAGfCAYAAAAK8q5IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzt3Xm4ZFV97vHvK2MzikAQZGhRZBQa6SACKpNTHBBBESec0pdcoleNGuKUVhIlxmhQINh6EciV4SIRkeSKIiA4QHMamu4GQWUygIqAYDND87t/1DpaNufQ5/QZqvr09/M89Zxdu9Ze+1e1u2C/tdauSlUhSZIkSU/pdQGSJEmS+oPhQJIkSRJgOJAkSZLUGA4kSZIkAYYDSZIkSY3hQJIkSRJgOJAkSZLUGA4kSZIkAYYDSZIkSc2qvS5gZbbRRhvV9OnTe12GJEmSprh58+bdWVUbL6ud4aCHpk+fzsDAQK/LkCRJ0hSX5JaRtHNakSRJkiTAcCBJkiSpMRxIkiRJAgwHkiRJkhrDgSRJkiTAcCBJkiSpMRxIkiRJAgwHkiRJkhp/BK2Hrl78AE+/aH6vy/iDX+87o9clSJIkqYccOZAkSZIEGA4kSZIkNYYDSZIkSYDhQJIkSVJjOJAkSZIE9DAcJFmSZH6Sq5NcmWTPcehzRpK/6Lr/9iS/bfuZn+TUtv5TSQ5YRl+bJDmv1Xdtkv9q66cnebCrz/lJVk+yXZKfJHk4yQfH+lwkSZKkydbLrzJ9sKpmACR5GfAZ4MVj7HMGMBP4r651Z1bVX3c3qqpPjKCvTwHfq6pjW407dz12w2Dtg5LcDbwXeO3yFC5JkiT1Wr9MK1oP+B1Akk2TXNI+kV+U5IVt/X1J/inJvCQXJNk9ycVJbkzymiSr0zmhP7Rte+hwO0tycpJD2vLNST7ZRi8WJtmuNdsUuHVwm6pa8GRPoKruqKorgEfH8kJIkiRJvdLLcDCtncRfB3wVOLqtfxNwfvtkfhdg8FfC1gYurqrdgMXAPwAvAQ4CPlVVjwCfoDNSMKOqzmzbDYaF+UneMUwtd1bV84B/AwanBB0P/O8kFyX5aJLNuto/q6vP40fzpJPMSjKQZODxe+8ZzaaSJEnShOqXaUUvAE5NshNwBXBSktWAc6pqMBw8AnynLS8EHq6qR5MsBKY/yX6eMK1oCP/R/s4DXgdQVecn2Rp4OfAK4KpWHwwxrWikqmoOMAdgtW13qOXpQ5IkSZoIfTGtqKp+AmwEbFxVlwAvAm4D/j3J21qzR6tq8GT6ceDhtu3jjD3kPNz+Lunuq6rurqrTquqtdELLi8a4H0mSJKlv9UU4aPP8VwHuSrIVcEdVfQX438DzRtHVYmDdcappvyRrteV1gWcBvxyPviVJkqR+1MtpRdOSDE4ZCnB4VS1Jsg/woSSPAvcBbxuugyFcBBzV+v3MGOvbDTguyWN0QtRXq+qKJNOHapzk6cAAnYurH0/yPmCHqvr9GOuQJEmSJkX+OFNHk221bXeoDU88rddl/MGv912uyygkSZLU55LMq6qZy2rXF9OKJEmSJPWe4UCSJEkSYDiQJEmS1BgOJEmSJAG9/baild4u667FgBcBS5IkqU84ciBJkiQJMBxIkiRJagwHkiRJkgDDgSRJkqTGcCBJkiQJMBxIkiRJagwHkiRJkgDDgSRJkqTGcCBJkiQJMBxIkiRJagwHkiRJkgDDgSRJkqTGcCBJkiQJMBxIkiRJagwHkiRJkgDDgSRJkqTGcCBJkiQJMBxIkiRJalbtdQErs8WLF/L9C5/V6zKeYP/9buh1CZIkSeoBRw4kSZIkAYYDSZIkSY3hQJIkSRJgOJAkSZLUGA4kSZIkAVMsHCS5bxRtX5tkh6XWrZrkziSfGf/qJEmSpP42pcLBKL0W2GGpdS8FrgfekCRDbZRklYkuTJIkSeqFKR8OkmyV5PtJFrS/WybZE3gN8M9J5icZ/LGBw4BjgV8Ce3T1cXOSTyT5IfD6JM9K8p0k85JcmmS71u7VSS5PclWSC5JsMslPV5IkSVpuUz4cAMcBp1bVzsDXgS9W1Y+Bc4EPVdWMqrohyTRgf+A84HQ6QaHbQ1W1d1WdAcwB3lNVuwEfBE5obX4I7FFVuwJnAB9eupgks5IMJBm4557Hx//ZSpIkSctpZfiF5BcAr2vL/w58dph2rwIuqqoHkpwNfDzJ+6tqSXv8TIAk6wB7Amd1zTxao/3dHDgzyabA6sBNS++kqubQCRdsu+0aNZYnJkmSJI2nlSEcLG24E/LDgL2S3NzubwjsC1zQ7t/f/j4FuKeqZgzRx5eAz1fVuUn2AWaPR8GSJEnSZFgZphX9GHhjW34znak/AIuBdQGSrAfsDWxZVdOrajpwJE+cWkRV/R64Kcnr27ZJskt7eH3gtrZ8+Pg/FUmSJGniTLVwsFaSW7tuHwDeC7wjyQLgrcD/am3PAD6U5Crg9cCFVfVwV1/fAl6TZA2e6M3Au5JcDVwDHNjWz6Yz3ehS4M7xfnKSJEnSREqV0957Zdtt16gT/m3zXpfxBPvvd0OvS5AkSdI4SjKvqmYuq91UGzmQJEmStJwMB5IkSZIAw4EkSZKkxnAgSZIkCVg5f+egb6y77nPZf7+BXpchSZIkAY4cSJIkSWoMB5IkSZIAw4EkSZKkxnAgSZIkCTAcSJIkSWoMB5IkSZIAw4EkSZKkxnAgSZIkCTAcSJIkSWoMB5IkSZIAw4EkSZKkxnAgSZIkCTAcSJIkSWoMB5IkSZIAw4EkSZKkxnAgSZIkCTAcSJIkSWoMB5IkSZIAWLXXBazMbr/9dmbPnt3rMp6gH2uSJEnSxHPkQJIkSRJgOJAkSZLUGA4kSZIkAYYDSZIkSY3hQJIkSRJgOJAkSZLUTFg4SLIkyfyu21HLaP+R5dzP6kn+NckNSX6R5LwkWy5f1ZBkdpIPDvPY8e25XJvkwa7ndkh7fNUkdyb5zPLuX5IkSeqVifydgwerasYo2n8E+PRodpBklbbNusBzqmpJkncA30qyW1U9Ppr+lqWqjmz7nQ6cN8TzeylwPfCGJB+pqhrP/UuSJEkTaVKnFSVZP8n1SbZt909P8pdJjgGmtU/hv94ee0uSuW3dl1sQIMl9ST6V5HJgL+AdwPuraglAVX0NuA84IMn0JIu69v/BJLPb8l8muSLJ1UnOTrLWODzFw4BjgV8CewzzGsxKMpBk4IEHHhiHXUqSJEnjYyLDweDJ/uDt0Kq6F/hr4OQkbwQ2qKqvVNVRtJGGqnpzku2BQ4G92qfzS4A3t37XBhZV1fOBe4BfVtXvl9r3ALDDMur7j6r686raBfgp8K6xPNkk04D9gfOA0+kEhSeoqjlVNbOqZq611njkEUmSJGl8TPq0oqr6XpLXA8cDuwyz7f7AbsAVSQCmAXe0x5YAZ7flAENN3ckI6tspyT8ATwXWAc4fwTZP5lXARVX1QJKzgY8n+cOIhiRJktTvJjIcDCnJU4DtgQeBpwG3DtUMOKWq/m6Ixx7qOuH+BbBVknWranFXm+cB3wAe409HR9bsWj4ZeG1VXZ3k7cA+o382f+IwYK8kN7f7GwL7AheMsV9JkiRpUvTiq0zfT2caz2HASUlWa+sf7Vr+PnBIkj8DSPK0JFst3VFV3Q+cAny+65qEtwEPAT8CfgP8WZINk6xB59P9QesCv2r7fDNjkGQ9YG9gy6qaXlXTgSMZZmqRJEmS1I8mcuRgWpL5Xfe/A5wEvBvYvaoWJ7kE+Bjw98AcYEGSK9t1Bx8DvttGGh6lc7J9yxD7+Tvgn4Hr27z/3wIvaN8U9GiSTwGXAzcB13Vt9/G2/hZgIZ2wsLxeB1xYVQ93rfsW8Nkkayy1XpIkSepLmUrftpnk6XRCyAlVNafX9SzLZpttVrNmzep1GU8we/bsXpcgSZKkcZRkXlXNXFa7Sb/mYCJV1a+B0fy2giRJkqRmSoWD8ZTkeDq/o9Dt2PY7CpIkSdKUYzgYxuCvIUuSJEkriyl1zcGKZubMmTUwMNDrMiRJkjTFjfSag158lakkSZKkPmQ4kCRJkgQYDiRJkiQ1hgNJkiRJgOFAkiRJUmM4kCRJkgQYDiRJkiQ1hgNJkiRJgOFAkiRJUmM4kCRJkgQYDiRJkiQ1hgNJkiRJgOFAkiRJUmM4kCRJkgQYDiRJkiQ1hgNJkiRJgOFAkiRJUmM4kCRJkgTAqr0uYGX2yG33cetRl/a6jAm1+TEv7HUJkiRJGiFHDiRJkiQBhgNJkiRJjeFAkiRJEmA4kCRJktQYDiRJkiQBPQwHSTZJclqSG5PMS/KTJAf1qp5W07eS/KSXNUiSJEm90pNwkCTAOcAlVbV1Ve0GvBHYfITbrzIBNT0VeB7w1CTPHKaNX/0qSZKkKatXIwf7AY9U1YmDK6rqlqr6UpLpSS5NcmW77QmQZJ8kFyU5DVjY1p3TRh2uSTJrsK8k70rysyQXJ/lKkuPa+o2TnJ3kinbbq6umg4FvA2fQCSqDfZ2c5PNJLgL+KcnaSU5q21+V5MDWbsi6JUmSpBVFrz4J3xG4cpjH7gBeUlUPJdkGOB2Y2R7bHdipqm5q999ZVXcnmQZckeRsYA3g43RGARYDFwJXt/bHAl+oqh8m2RI4H9i+PXYY8EngN8A3gM901fQc4ICqWpLk08CFVfXONtowN8kFy6j7D1qImQXwjPU2GdGLJUmSJE2Gvpgmk+R4YG/gEeAA4LgkM4AldE7MB83tCgYA7+26TmELYBvg6cAPquru1vdZXX0cAOzQmdUEwHpJ1gXWAp4N/LCqKsljSXaqqkWt3VlVtaQtvxR4TZIPtvtrAlsCtz9J3X9QVXOAOQA7b7pdjewVkiRJkiZer8LBNXSm8QBQVUcm2QgYAN5P59P7XehMe3qoa7v7BxeS7EPnZP8FVfVAkovpnKiH4T2ltX+we2WSdwAbADe14LAenalFH1t6v63/g6vq+qX6mP0kdUuSJEl9r1fXHFwIrJnkr7rWrdX+rg/8qqoeB94KDHfx8frA71ow2A7Yo62fC7w4yQbtAuKDu7b5LvDXg3fap/zQmVL08qqaXlXTgcELpIdyPvCedlE1SXYdZd2SJElSX+pJOKiqAl5L5yT+piRzgVOAvwVOAA5PchmdqTn3D9PNd4BVkywAjgYua33fBnwauBy4ALgWuLdt815gZpIFSa4Fjkgync60oMu66rsJ+H2S5w+x36OB1YAFSRa1+4yibkmSJKkvpXOePrUkWaeq7msjB98ETqqqb/a6rqXtvOl29V+Hf6XXZUyozY95Ya9LkCRJWuklmVdVT/iynKVN1V9Inp1kPrAIuInObypIkiRJehJ98W1F462qPrjsVpIkSZK6TdWRA0mSJEmjZDiQJEmSBEzRaUUritWfsY4X7EqSJKlvOHIgSZIkCTAcSJIkSWoMB5IkSZIAw4EkSZKkxnAgSZIkCTAcSJIkSWoMB5IkSZIAw4EkSZKkxnAgSZIkCTAcSJIkSWoMB5IkSZIAw4EkSZKkxnAgSZIkCTAcSJIkSWoMB5IkSZIAw4EkSZKkxnAgSZIkCTAcSJIkSWpW7XUBK7Pf3PgL/uXQV/W6jL7wN2ee1+sSJEmSVnqOHEiSJEkCDAeSJEmSGsOBJEmSJMBwIEmSJKkxHEiSJEkCehwOkmyS5LQkNyaZl+QnSQ7qYT2vSDKQ5KdJrkvyuV7VIkmSJE22noWDJAHOAS6pqq2rajfgjcDmI9x+lXGuZyfgOOAtVbU9sBNw4yi292thJUmStELr5cjBfsAjVXXi4IqquqWqvpRkepJLk1zZbnsCJNknyUVJTgMWtnXntFGHa5LMGuwrybuS/CzJxUm+kuS4tn7jJGcnuaLd9mqbfBj4x6q6rtXyWFWd0LZ5dZLLk1yV5IIkm7T1s5PMSfJd4NQkOyaZm2R+kgVJtpnwV1GSJEkaJ738tHtH4MphHrsDeElVPdROsE8HZrbHdgd2qqqb2v13VtXdSaYBVyQ5G1gD+DjwPGAxcCFwdWt/LPCFqvphki2B84HBkYJ/GaaeHwJ7VFUleTedIPE37bHdgL2r6sEkXwKOraqvJ1kdGNfRDUmSJGki9c1UmCTHA3sDjwAHAMclmQEsAZ7T1XRuVzAAeG/XdQpbANsATwd+UFV3t77P6urjAGCHzqwmANZLsu4yytscODPJpsDqQPf+z62qB9vyT4CPJtkc+I+q+vkQz3MWMAtgg7WmLWO3kiRJ0uTp5bSia+h8sg9AVR0J7A9sDLwf+A2wC50Rg9W7trt/cCHJPnRO9l9QVbsAVwFrAmF4T2ntZ7TbM6pqcatnt2G2+RJwXFU9F/gfbR9PqKeqTgNeAzwInJ9kv6U7qqo5VTWzqmauvcbqSz8sSZIk9Uwvw8GFwJpJ/qpr3Vrt7/rAr6rqceCtDD89Z33gd1X1QJLtgD3a+rnAi5Ns0C4UPrhrm+8Cfz14p41OAPwz8JEkz2nrn5LkA137ua0tHz7cE0qyNXBjVX0ROBfYebi2kiRJUr/pWTioqgJeS+ck/qYkc4FTgL8FTgAOT3IZnelA9w/TzXeAVZMsAI4GLmt93wZ8GrgcuAC4Fri3bfNeYGa7YPha4Ii2zQLgfcDpSX4KLAI2bdvMBs5Kcilw55M8rUOBRUnmA9sBp478FZEkSZJ6K51z9KknyTpVdV8bOfgmcFJVfbPXdXXb4mlPrfe9ZO9el9EX/ubM83pdgiRJ0pSVZF5VzVxWu6n8C8mz2yf4i+hcQHxOj+uRJEmS+lrffFvReKuqD/a6BkmSJGlFMpVHDiRJkiSNguFAkiRJEjCFpxWtCDbZ+tleiCtJkqS+4ciBJEmSJGA5wkH7cbD1JqIYSZIkSb0zonCQ5LQk6yVZm84Pil2f5EMTW5okSZKkyTTSkYMdqur3dH7R+L+ALYG3TlhVkiRJkibdSMPBaklWoxMOvlVVjwJT86eVJUmSpJXUSMPBl4GbgbWBS5JsBfx+ooqSJEmSNPlG9FWmVfVF4Itdq25Jsu/ElCRJkiSpF540HCT5wDK2//w41iJJkiSph5Y1crDupFQhSZIkqeeeNBxU1ScnqxBJkiRJvTXS3znYPMk3k9yR5DdJzk6y+UQXJ0mSJGnyjPTbir4GnAtsBjwD+HZbJ0mSJGmKGGk42LiqvlZVj7XbycDGE1iXJEmSpEk20nBwZ5K3JFml3d4C3DWRhUmSJEmaXCMNB+8E3gD8GvgVcAjwjokqSpIkSdLkG9GPoAFHA4dX1e8AkjwN+Byd0CBJkiRpChjpyMHOg8EAoKruBnadmJIkSZIk9cJIw8FTkmwweKeNHIx01EGSJEnSCmCkJ/j/Avw4yTeAonP9wT9OWFUriTtuWczxR1zY6zL63pEn7tfrEiRJklYKIwoHVXVqkgFgPyDA66rq2gmtTJIkSdKkGvHUoBYGDASSJEnSFDXSaw4kSZIkTXGGA0mSJEmA4UCSJElSMyXCQZKTktyRZNEy2u2TZM+u+7OT3JZkfrsd09ZfnGTmMH28KslVSa5Ocm2S//FkfUmSJEkriqnyWwUnA8cBpy6j3T7AfcCPu9Z9oao+N5KdJFkDmAPsXlW3tvvTl6cvSZIkqd9MiZGDqroEuLt7XZL3tk/2FyQ5I8l04Ajg/e2T/ReOpO8k9yX5VJLLgefTCVR3tf0+XFXXj+dzkSRJknplSoSDYRwF7FpVOwNHVNXNwIl0Pt2fUVWXtnbv75oK9LIh+lkbWFRVz28h5FzgliSnJ3lzku7XcFl9SZIkSX1rKoeDBcDXk7wFeOxJ2g2GhRlVdf4Qjy8Bzh68U1XvBvYH5gIfBE4aRV8kmZVkIMnAfQ/dM9rnJEmSJE2YqRwOXgkcD+wGzEuyvNdXPFRVS7pXVNXCqvoC8BLg4NF0VlVzqmpmVc1cZ82nLmdJkiRJ0vibkuGgTfXZoqouAj4MPBVYB1gMrDuGftdJsk/XqhnALWMoVZIkSeobU+LbipKcTuebiDZKcitwNPDWJOsDoTPd554k3wa+keRA4D3Lsyvgw0m+DDwI3A+8fRyegiRJktRzUyIcVNVhQ6z+8hDtfgbs3LXq0qXbtHb7dC2v07W8GPiLYbaZPbJqJUmSpP40JacVSZIkSRo9w4EkSZIkwHAgSZIkqTEcSJIkSQKmyAXJK6o/22pdjjxxv16XIUmSJAGOHEiSJElqDAeSJEmSAMOBJEmSpMZwIEmSJAkwHEiSJElqDAeSJEmSAMOBJEmSpMZwIEmSJAkwHEiSJElqDAeSJEmSAMOBJEmSpMZwIEmSJAkwHEiSJElqDAeSJEmSAMOBJEmSpMZwIEmSJAkwHEiSJElqDAeSJEmSAFi11wWszB5adA0/3W77XpcxZW1/3U97XYIkSdIKxZEDSZIkSYDhQJIkSVJjOJAkSZIEGA4kSZIkNYYDSZIkScAkhoMkGyaZ326/TnJb1/3Vh2j/tCRHjKDfVZPc05afneTB1ufVSX6UZJtxqH2/JHt03d8+yQ/afn6a5N/a+gOS3Nv1vM4f674lSZKkyTJpX2VaVXcBMwCSzAbuq6rPPckmTwOOAE4c5a6ur6rB/RwJHAW8a9QF/6n9gDuBy9r944DPVtV/JgmwU1fbi6rqtWPcnyRJkjTp+mJaUZIPJ1nUbu9pq48Btm2fwB+TZL0kFya5MsmCJK8aQdfrAb9r+3hukitafwuSbN1GGhYlOSnJNUlOTfKyJD9O8rMkM5M8C3g38KG27Z7ApsCtANWxcPxfFUmSJGly9fxH0JLsDrwZ2B1YBZib5Ad0PvF/dtcowGrAgVW1OMmfAT8Czhuiy22TzKcTDNYAnt/W/0/gc1V1ZpI1gACbA9sCbwCuA64EHq6qPZMcDBxVVYck+SpwZ1X9a6vl88AlSX4EfBf4WlXd2/azb9s/wBlVdcy4vFCSJEnSBOuHkYMXAmdX1QNVtRg4B9h7iHYB/inJAjon5Fsk2WiIdtdX1Yyq2hr4MH+clvRj4GNJPgxsUVUPtfW/qKprq+px4FrggrZ+ITB9qIKr6qvADsA3gP2Bn3RdN3FR2/+MoYJBkllJBpIM3L3kseFfFUmSJGmS9UM4yAjbvQ1YH3heG024E1hzGducC7wIoKr+HTgIeBj4XpIXtTYPd7V/vOv+4zzJyEpV3VZVJ1XVq+m8jtuP5ElU1ZyqmllVM5+2Ss8HbiRJkqQ/6IdwcAlwUJJpSdYBDgQuBRYD63a1Wx+4o6oeS/IS4Bkj6Htv4AaAJFtX1S+q6ljgP4GdR1Hjn9SS5OVJVm3LmwEbALePoj9JkiSp7/T8o+uqmpvkdOCKturfBi/wbdNvFtI5mf888O0kA3SuDfj5MF0OXnMQOqMAs9r6NyU5DHiUzon8x4ChpiUN5VvAWUleBxwJvAI4NslDQAHvq6rfdr64SJIkSVoxpap6XcNKa6c1p9VZ06f3uowpa/vrftrrEiRJkvpCknlVNXNZ7fphWpEkSZKkPmA4kCRJkgQYDiRJkiQ1hgNJkiRJQB98W9HKbM2ddmT7gYFelyFJkiQBjhxIkiRJagwHkiRJkgDDgSRJkqTGcCBJkiQJMBxIkiRJagwHkiRJkgDDgSRJkqTGcCBJkiQJMBxIkiRJagwHkiRJkgDDgSRJkqTGcCBJkiQJMBxIkiRJagwHkiRJkgDDgSRJkqTGcCBJkiQJMBxIkiRJagwHkiRJkgBYtdcFrMyuuesannvKc3tdhtQ3Fh6+sNclSJK0UnPkQJIkSRJgOJAkSZLUGA4kSZIkAYYDSZIkSY3hQJIkSRKwgoWDdPwwySu61r0hyXfGoe//k+SmJPOTXJfkYyPY5qAkH2rL/5DkfW35nUmePtaaJEmSpMm0Qn2VaVVVkiOAs5JcBKwC/CPw8rH0m2TwdXh/VZ2TZBpwXZJTquq/n6Sebw7z0DuBK4Ffj6UuSZIkaTKtUCMHAFW1CPg28LfA3wOnVtUNSQ5PMrd98n9CkqcAJJmTZCDJNUk+MdhPkluTfDzJj4CDltrNNKCAB7raPrUt75Hkgrb87iT/2r1hkkOBGcCZrZbVJ+J1kCRJksbbChcOmk8CbwJeAXw2yU50TvD3rKoZdEZE3tjaHlVVM4FdgJck2aGrn/uraq+qOqvd/0KS+cB/0wkdd422sKo6E5gPHFpVM6rqkeV5gpIkSdJkW6GmFQ2qqvuTnAncV1UPJzkA+HNgIAl0PvkfnA50WJJ30XmumwE7ANe2x85cquvBaUXrAhclOa+q5o5n7UlmAbMAVttwtfHsWpIkSRqTFTIcNI+3G0CAk6rq490NkmwD/C9g96q6J8n/AdbsanL/UB1X1eIkPwD2BuYCj/HHUZY1h9pmpKpqDjAHYNozp9VY+pIkSZLG04o6rWhpFwBvSLIRQJINk2wJrAcsBn6fZFPgZSPpLMlqwO7ADW3VzcBubfngEXSxGFh3xNVLkiRJfWBFHjn4g6pamOSTwAXtQuRHgSOAATpTiBYBNwI/WkZXX0gyG1gDOB84t62fDXwlya/pjCQsy9eAryZ5kM6ohdcdSJIkqe+lypktvTLtmdPq2bOf3esypL6x8PCFvS5BkqQpKcm89iU9T2qqTCuSJEmSNEaGA0mSJEmA4UCSJElSYziQJEmSBEyRbytaUe244Y4MHD7Q6zIkSZIkwJEDSZIkSY3hQJIkSRJgOJAkSZLUGA4kSZIkAYYDSZIkSY3hQJIkSRJgOJAkSZLUGA4kSZIkAYYDSZIkSY3hQJIkSRJgOJAkSZLUGA4kSZIkAYYDSZIkSY3hQJIkSRJgOJAkSZLUGA4kSZIkAYYDSZIkSY3hQJIkSRIAq/a6gJXa7VfB7PV7XYUkqV/NvrfXFUhayThyIEmSJAkwHEiSJElqDAeSJEmSAMOBJEmSpMZwIEmSJAlYQcJBkk2SnJbkxiTzkvwkyUFDtJueZNEQ6z+V5IAR7GfXJJXkZeNVuyRJkrSi6PtwkCTAOcAlVbV1Ve0GvBHYfKl2w34ta1V9oqouGMHuDgN+2P4OWUuSvn/NJEmSpOWxIpzo7gc8UlUnDq6oqluq6ktJ3p7krCTfBr47XAdJTk5ySJJXJPm/Xev3adsOhpBDgLcDL02yZls/PclPk5wAXAlskeSlbfTiyrb/dVroQ0/mAAAKjUlEQVTbTyS5IsmiJHNan5IkSdIKYUUIBzvSOSkfzguAw6tqvxH09T1gjyRrt/uHAme25b2Am6rqBuBi4C+6ttsWOLWqdgXuBz4GHFBVzwMGgA+0dsdV1Z9X1U7ANOBVI6hJkiRJ6gsrQjj4E0mOT3J1kivaqu9V1d0j2baqHgO+A7y6TUN6JfCt9vBhwBlt+Qz+dGrRLVV1WVveA9gB+FGS+cDhwFbtsX2TXJ5kIZ0Rjx2HqH9WkoEkA799oEZStiRJkjQphp2n30euAQ4evFNVRybZiM4n9tD5JH80zgSOBO4GrqiqxUlWaft4TZKPAgE2TLLuEPsInUDyJ9cltGlIJwAzq+q/k8wG1lx651U1B5gDMHOzVUwHkiRJ6hsrwsjBhcCaSf6qa91aY+jvYuB5wF/yxylFBwBXV9UWVTW9qrYCzgZeO8T2lwF7JXk2QJK1kjyHPwaBO9s1CIeMoUZJkiRp0vV9OKiqonOS/uIkNyWZC5wC/O0wm2yb5Nau2+uX6m8JcB7wivYXOlOIvrlUP2cDbxqint/SuWj59CQL6ISF7arqHuArwEI63650xdLbSpIkSf0snXNv9cLMzVapgVnr9LoMSVK/mn1vryuQNEUkmVdVM5fVru9HDiRJkiRNDsOBJEmSJMBwIEmSJKkxHEiSJEkCVozfOZi6NtsVZg8su50kSZI0CRw5kCRJkgQYDiRJkiQ1hgNJkiRJgOFAkiRJUmM4kCRJkgQYDiRJkiQ1hgNJkiRJgOFAkiRJUmM4kCRJkgQYDiRJkiQ1hgNJkiRJgOFAkiRJUmM4kCRJkgQYDiRJkiQ1hgNJkiRJgOFAkiRJUmM4kCRJkgQYDiRJkiQ1q/a6gJXZwtvuZfpR/9nrMiRJkjTBbj7mlb0uYUQcOZAkSZIEGA4kSZIkNYYDSZIkSYDhQJIkSVJjOJAkSZIE9DgcJNk8ybeS/DzJDUmOTbL6BO/zvvZ3epJFXev3TjI3yXVJrk9y5HjsR5IkSVpR9CwcJAnwH8A5VbUN8BxgHeAfx9jvqL+eNcnTgdOAI6pqO2Av4J1JDhpLLZIkSdKKpJcjB/sBD1XV1wCqagnwfjon5Vck2XGwYZKLk+yWZO0kJ7XHr0pyYHv87UnOSvJt4LtJ1kny/SRXJlk42O5JHAmcXFVXtlruBD4MfKj1f3KSQ7rqGRx9GO1+JEmSpL7Vyx9B2xGY172iqn6f5JfAecAbgL9PsimwWVXNS/Jp4MKqemeSpwJzk1zQNn8BsHNV3d1GDw5q/W0EXJbk3KqqJ6nllKXWDQA7LOM5PDTK/UiSJEl9q5cjBwGGOokOcDHw+nb/DcBZbfmlwFFJ5rc2awJbtse+V1V3d/Xx6SQLgAuAZwCbLEctI3kOo9kPSWYlGUgysOSBe5djl5IkSdLE6GU4uAaY2b0iyXrAFsAVwF1JdgYOBc4YbAIcXFUz2m3Lqvppe+z+rq7eDGwM7FZVM4Df0AkSI64F2I3O6AHAY7TXql0rMXjR9Gj3Q1XNqaqZVTVzlbXWf7KmkiRJ0qTqZTj4PrBWkrcBJFkF+Bc6c/8foBMIPgysX1UL2zbnA+9pJ+gk2XWYvtcH7qiqR5PsC2y1jFqOB96eZEbrd0M6F0Yf3R6/mU5YADgQWG059yNJkiT1rZ6FgzYv/yDg9Ul+DvyMzhz+j7Qm3wDeCPzfrs2OpnNivqB9DenRDO3rwMwkA3Q+3b9uGbX8CngLMCfJ9cDtwBer6getyVeAFyeZCzyfP45SjGo/kiRJUj+L184+UfuNgyOAF1XV7yZqP2tsuk1tevi/TlT3kiRJ6hM3H/PKnu4/ybyqWnoa/RP4C8lDqKrjq+q5ExkMJEmSpH5jOJAkSZIEGA4kSZIkNYYDSZIkSUBvfyF5pffcZ6zPQI8vTpEkSZIGOXIgSZIkCTAcSJIkSWoMB5IkSZIAw4EkSZKkxnAgSZIkCTAcSJIkSWoMB5IkSZIAw4EkSZKkxnAgSZIkCYBUVa9rWGklWQxc3+s69AQbAXf2ugj9CY9Jf/K49B+PSf/xmPSnlfG4bFVVGy+r0aqTUYmGdX1Vzex1EfpTSQY8Lv3FY9KfPC79x2PSfzwm/cnjMjynFUmSJEkCDAeSJEmSGsNBb83pdQEaksel/3hM+pPHpf94TPqPx6Q/eVyG4QXJkiRJkgBHDiRJkiQ1hoMJkuTlSa5P8oskRw3x+BpJzmyPX55ketdjf9fWX5/kZZNZ91S2vMckyfQkDyaZ324nTnbtU9kIjsuLklyZ5LEkhyz12OFJft5uh09e1VPbGI/Jkq73yrmTV/XUN4Lj8oEk1yZZkOT7Sbbqesz3ygQY4zHxvTIBRnBMjkiysL3uP0yyQ9djnn8BVJW3cb4BqwA3AFsDqwNXAzss1eZ/Aie25TcCZ7blHVr7NYBntn5W6fVzWtFvYzwm04FFvX4OU/E2wuMyHdgZOBU4pGv904Ab298N2vIGvX5OK/ptLMekPXZfr5/DVLyN8LjsC6zVlv+q679hvlf67Ji0+75XenNM1utafg3wnbbs+Ve7OXIwMXYHflFVN1bVI8AZwIFLtTkQOKUtfwPYP0na+jOq6uGqugn4RetPYzOWY6KJs8zjUlU3V9UC4PGltn0Z8L2quruqfgd8D3j5ZBQ9xY3lmGjijOS4XFRVD7S7lwGbt2XfKxNjLMdEE2Mkx+T3XXfXBgYvvvX8qzEcTIxnAP/ddf/Wtm7INlX1GHAvsOEIt9XojeWYADwzyVVJfpDkhRNd7EpkLP/efa9MjLG+rmsmGUhyWZLXjm9pK7XRHpd3Af9vObfVyIzlmIDvlYkwomOS5MgkNwCfBd47mm1XBv5C8sQY6tPmpb8Warg2I9lWozeWY/IrYMuquivJbsA5SXZc6tMHLZ+x/Hv3vTIxxvq6bllVtyfZGrgwycKqumGcaluZjfi4JHkLMBN48Wi31aiM5ZiA75WJMKJjUlXHA8cneRPwMeDwkW67MnDkYGLcCmzRdX9z4Pbh2iRZFVgfuHuE22r0lvuYtCHGuwCqah6deYjPmfCKVw5j+ffue2VijOl1rarb298bgYuBXcezuJXYiI5LkgOAjwKvqaqHR7OtRm0sx8T3ysQY7b/1M4DBURvfJ43hYGJcAWyT5JlJVqdzcevS30RwLp2kCnAIcGF1rog5F3hj++acZwLbAHMnqe6pbLmPSZKNk6wC0D7h2YbOBX0au5Ecl+GcD7w0yQZJNgBe2tZpbJb7mLRjsUZb3gjYC7h2wipduSzzuCTZFfgynZPQO7oe8r0yMZb7mPhemTAjOSbbdN19JfDztuz516BeXxE9VW/AXwA/o/Mp80fbuk/R+Q8EwJrAWXQueJkLbN217UfbdtcDr+j1c5kqt+U9JsDBwDV0vsXgSuDVvX4uU+k2guPy53Q+0bkfuAu4pmvbd7bj9QvgHb1+LlPltrzHBNgTWNjeKwuBd/X6uUyl2wiOywXAb4D57XZu17a+V/romPhe6ekxObb9P30+cBGwY9e2nn9V+QvJkiRJkjqcViRJkiQJMBxIkiRJagwHkiRJkgDDgSRJkqTGcCBJkiQJMBxIkiRJagwHkiRJkgDDgSRJkqTm/wOPl5Am335kyAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8fa4e436a0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_fi(rf_feat_importance(m, df_trn2)[:10]);"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAHjCAYAAABrZcgFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzs3XmMJGl63/ff80ZEXlV9TM/0cGcvzpqUacO0RNJNiaZsQyYlwKB42X9YPmjLomXCB0SKlm0QkCzQEGALhmAZtgEBC8r0AqYl+CAsQiYN0jxEkZRI9iyvJZfDXXJ3Z2e2Z7t7eqursvKI4339x5tHZHRWZt1RXf39NAadURHxxvMeEfnEG1E9FkIQAAAALpdrOwAAAIAXEUkYAABAC0jCAAAAWkASBgAA0AKSMAAAgBaQhAEAALSAJAwAAKAFJGEAAAAtIAkDAABoQdp2AMfxyiuvhNdff73tMAAAALZ64403HocQ7m7b7rlIwl5//XXdv3+/7TAAAAC2MrPPHWc7HkcCAAC0gCQMAACgBSRhAAAALSAJAwAAaAFJGAAAQAtIwgAAAFpAEgYAANACkjAAAIAWkIQBAAC0gCQMAACgBSRhAAAALSAJAwAAaAFJGAAAQAtIwgAAAFpAEgYAANCCC0vCzOx/NrOHZvaJ2s/umNlPmdmnZn+/dFHHx8UIIaz9DAB4fm26tp/XtX5bOSc5TlVVaz9LUlmWpy73sl3kTNj/IulfafzsByT9dAjhD0n66dkyngMhBJWVV1UFFWWloqxUVfFnV3mAAwCOtuna7r1frDvLtb5+jHXlbFtfV1WVhuNc40mlp8Oxng7HGk/iz6bTqfaGEw3HpfaGExVFcS7xX6QLS8JCCD8v6Unjx98h6WOzzx+T9J0XdXycr8rHwWvOVPmgygeZs5V1AIDny6Zre176xbr6tmc5xrpytq2vG+dx1ivJEo3zSuO8UpIlkqRH+1NJUpqlkqSno+Jc4r9Il/1O2JeFEB5I0uzvV4/a0My+x8zum9n9R48eXVqAeFYIQQqSmSmEIJv9CSHIzKRwtad7AQDP2nRtlyT55banvdbXj7GunG3r66qqkryUJImqqlLiEiVp/BxCkNyynCRJlvucIf6LdmVfzA8hfDSEcC+EcO/u3btth/NCMzPJtEi6wuzP/MSVLQc+AOD5sOnaLmklQzjttb5+jHXlbFtflySJ5GJilSSJKl+pKuNnM5P8spx58jVPxq7qd9VlJ2FfNLPXJGn298NLPj5OKZlN5wYflDhT4kxhNrU7XwcAeL5surZ3UrdYV9/2LMdYV8629XX9zmyGq6jU7yTqdxJVRUy47t7sSpLKIr6Yf2uQnUv8Fym95OP9mKQ/K+mvz/7+e5d8fJySmSlN5o8gZydmCFfurgIAcHzbru1OZ7/Wrx7j2XK2ra9LkkS7/dnjyKQjaTkzJkndbvztyDRdpjdX+bvqIv+Jir8j6R9J+ioze9vM/n3F5OtPmdmnJP2p2TKeI/WBfFUHNQDgZDZd28/rWr+tnJMcZ550NT9LWknATlruZbuwmbAQwr95xKpvvqhjAgAAPC+u7Iv5AAAA1xlJGAAAQAtIwgAAAFpAEgYAANACkjAAAIAWkIQBAAC0gCQMAACgBSRhAAAALSAJAwAAaAFJGAAAQAtIwgAAAFpAEgYAANACkjAAAIAWkIQBAAC0gCQMAACgBSRhAAAALSAJAwAAaAFJGAAAQAtIwgAAAFpAEgYAANACkjAAAIAWkIQBAAC0gCQMAACgBSRhAAAALSAJAwAAaAFJGAAAQAtIwgAAAFpAEgYAANACkjAAAIAWkIQBAAC0gCQMAACgBSRhAAAALSAJAwAAaAFJGAAAQAtIwgAAAFpAEgYAwBmFENoO4Urw3q8sb2qX5rqqqtZ+lqTJZLKyPJ1OF5+Loti4bb2sq9ZPadsBAADwvAohqPJBCpIsKHEmM2s7rEvnvVdeeslLcl5ZYgqyte3SbDMFr0kR961CLklKLJFcJfOFHh0UUiJpb6KX+qaD3CQnFe8N1Umdut2upEJdV+m9w2qx7d0bmYLLJC8FK9VJnRKXXKl+YiYMAIBTqnycWTFnK8svmryMM2AujWnFOI+zT+vapdlmw0kpSUqyROO80jivlGSJJOkzDw8lSb2sJ0n6xFtPJUndrKuno0KP9qfKskyS9OYXDla2ne+bZIkqHzTOqyvXTyRhAACcQghxNmc+o2IWZ36u2iOvi+Z9nMVyLqYUZhZnn2btUG+XZpt576UQ962qSkmaKHGJqqqKjxk7WiRZZqYwiOUURaHuoKusl2k6ncZHjj0pSWLylmWZ1ImPKkMISlwik6mqqivVTyRhAACcgplJtvwyDyFIpivxmOsyOeckt3wfLIQgOa08fpy3S7PNnHOSxX2TJFFVVqp8pSRJYiKVL9/5CiHIRrGcLMs0HU1VTAp1u92YfE2W738VRSHlMRkzM1W+UlBQkiRXqp9IwgAAOKVk9ngrzB5vzZdfNJ3ZY0g/eyzZ78QZqXXt0myz3V58Pb0qKvU7ifqdRFURk6mPvLojSZoU8WX7r/7wLUnStJjq1iDT3ZvdRZL2Ve+/sbLtfN+qqJQ4U7+TXLl+4sV8AABOycyUJhZnaa7AzEpbnHPqdZy894vHkpLWtsuzbea0m8ZZrCTpSJp/TiR1tLMTf+Ox14vvet1S/O3I7ss3JcVZr/kjyxs3VrddLWt9PG1iJgwAgDO6Sl/sbaonYNLmdmmumydKzc+SVpIqSbPfiIzmCdhR29bLumr9RBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtKCVJMzMvt/MftvMPmFmf8fMem3EAQAA0JZLT8LM7AOSvlfSvRDCV0tKJP0blx1HUwih7RCecRVjQnsuazyc5Tgn2XfTts11nAsvtm39f9rx4b0/1X4nLWvbeK7vu60upz1OVVUr68qyXFkuimLxeTKZHLvcPM+PLKe5PB6PV9aNRqOV5fpxDw8PV9Y1lx88eLD4/Pjx443lNut+laQtHrdvZoWkgaQvtBSHQgiqfJCCJAtKnMnM2grnysaE9lzWeDjLcU6y76Ztm+ucST6Ic+EFtW1cnXbMeu+Vl17ykpxXJ3Vy7nRzEpvK2jaeTUFFFSQvBauUOJMzt7Yupz1O5UvlpZcFk1ylzAWNi/m2pbpJ0GEek6rJ5EDjvFLWy6S9ib7sVldZp7u23LyY6umokDmThrludE3jch5voUEmjWb513i8r+GkVNbPpCdjvdQLenQYpEzS45Fe3XXaz52USIfvvKdxXql3syc9PNSrO9LDQ0kdSQ8P1av29auf29doV5r+0m9p0Ml0+/XX1PnUY331BwYaabAo9wMvdWVpd9ZmlfqdREmSnKqfL8qlz4SFEN6R9DckvSXpgaSnIYSfvOw45iofB585W1lu01WMCe25rPFwluOcZN9N2zbX5aU/dUx4/m0bV6cds/Nx5VK3snwam8raNp7HebXYt/IhJktH1OW0xxnnlSoflGQx+Xi0P5UkpVmcg3nnSZydyrJM7+5N9HRUqJf1VtatK/fJMFflgzpZR5L0mYeHi3Ik6a3Ho8XyO0/Gejoq1M/6kqT7n35PkjTIBpKkj//+E0lSL+vp7ceHem9/op1sR5L0S28+lKTF8v/+q5+WJH159pp+991CH39rpFezVyRJP/4bb62U++YXDiRpUfd5e18lbTyOfEnSd0j6iKT3S9oxs+9as933mNl9M7v/6NGjC4klhHg3ML/bMDMptPvo4yrGhPZc1ng4y3FOsu+mbZvrJMU72BnOhRfLtnF12jHrfZxNms8iOeckf7pHk5vK2jaeQ4gzYGamEIKcOVkwee+fqctpj1NVlUymxCXLc8xpZeZZaVyeTCbK+pl6Oz0VRaFutyul0nQ6fabcPM9lztTpdhRCiOV1Gm0fczGNx2Nlg0z9nb6KolAIQcXuMgbnnMrdWJfDw0Nluz31bu0sHk1OdpdFHuzvy3al3cFN7R081t3XBrr9ZZkeP3ygbnegYnf5KLLb7Uq9ZfxJkkj+6j2abOPF/D8p6TMhhEchhELSj0r6xuZGIYSPhhDuhRDu3b1790ICMTPJGie16VjT2RflKsaE9lzWeDjLcU6y76Ztm+skrVyhOBdeLNvG1WnHrHNOcsuky3svOZ3qceSmsraNZzOTnBZJjA9ewYKcc8/U5bTHSZJEQUGVr5bnmF9ua2ZSGZd7vZ6KcaHJ4URZlsXkpZwlM41yO52Ogg/Kp/kiiVTeaPvZo8h+v69iVGh8OFaWZTIzZcPVBDMdxrrs7OyoGE40eXqoXi/OxvWGyyJv3LypMJSGo33dvvGKHj0Yae+LhV559TVNpyNlQ2kwiLNg0+lUmizjr6pKcuJxpOJjyG8ws4HFHvtmSZ9sIQ5JUjKbZg2z6dz5cpuuYkxoz2WNh7Mc5yT7btq2ua4ze/TCufBi2jauTjtm5+PKzx6vzZdPY1NZ28Zzv5Ms9k2cqZO6I+ty2uP0O4kSZ6qKOAN092ZMSsoivpj/gTvxEWFRFHrf7Z5uDTJNisnKunXl3tntKHGmvIgv5n/k1Z1FOZL04VcGi+UP3Onr1iDTuIiPN+995cuSpFERZ62+7ivuSJImxUQffGVHL9/s6bCIjze/8atelaTF8r/+9V8pSfpc8UD/1Psyfd2HB3pYxBfzv+WPfHil3K96/w1JWtR93t5XibUxtW9m/5WkPyOplPRrkv58CGF61Pb37t0L9+/fv9CYFlOqV8hVjAntuazxcJbjnGTfTds213EuvNi29f9px4f3/tQv5J+krG3jub7vtrqc9jhVVa3MApVlqTRd/m5eURSL97kmk8liJmpbuXmeq9PprC2nuTwej9Xv9xfrRqPRYuaqedzDw0Pt7Ows1jWXHzx4oNdee01S/O3IV1555chym3W/DGb2Rgjh3tbtnof3Ky4jCQMAADgPx03C+BfzAQAAWkASBgAA0AKSMAAAgBaQhAEAALSAJAwAAKAFJGEAAAAtIAkDAABoAUkYAABAC0jCAAAAWkASBgAA0AKSMAAAgBaQhAEAALSAJAwAAKAFJGEAAAAtIAkDAABoAUkYAABAC0jCAAAAWkASBgAA0AKSMAAAgBaQhAEAALSAJAwAAKAFJGEAAAAtIAkDAABoAUkYAABAC0jCAAAAWkASBgAA0AKSMAAAgBaQhAEAALSAJAwAAKAFJGEAAAAtIAkDAABoAUkYAABAC0jCAAAAWkASBgAA0AKSMAAAgBaQhAEAALSAJKxl3vu2Q1gRQmg7hOfCWfqt3sbNcja1/7a+Kcvy2NtuUlXVyvKmum6KvxlDs9zTOknbN2No7nteMV3WedM8znkd9yT9eBLN9t1Ubn38NtdvKmfbtpvq1jxmc7m5b335LNeATftuq2tRFEduOxqNjjxOc9s8z49d7ng8Xlmut9NwOFxZd3BwcOS+zXKayw8ePFh8/vznP7+y7u233z5y2/fee29lXbPNptOprip7Hr507927F+7fv992GOfKe6+89JKX5KRO6uRcezlxCEGVD1KQZFLiTGbWWjxX1Vn6rd7GPnhVPsiCSU7KElOQrW3/bX1TlqWGk1IKUlBQv5MoTdIT92NVVRrn1aJu3dRUBVtb12Y71OMPitcUk0kmKXhNiuW2/U6iJEmOFVPdSdq+2WamoKIKi30TC5qW4cwxXdZ50zyOM8kHnfm4J+nHs4ylXuYkc2vLDb7S4bRa1GWnm8hcIgWp8pXy0i/Ok3o5zXZobtscv/W6lVWpcV4tYuil0qRctueg4+TlFvumTiq9JC95xcTGyZ34GrBpDG9qM5nkq1L743KxbSd1ypJMclIop3rnS1Mpk1RIH7zTU9rpSV6qQqXKh0W8iSo9HVezc1O60TWNS1tbrqpc7z7NpVRSKX3ZzUyVZVKQhodDvbs3UbqTSlPpy3aC3tkPUk/SRPrwS6n2i1RKpfFBTLb6N/pSKd3pS0/GWpTrpnv65c/sabQr7X36gSaFdPsjL6kzlL76jumTe6bprtQdSv/sK4k+vZ9otCvl77yn3W5HL73+mrKh9M99xR3dfunOos3KItfjgzzWxUt3b3bV7XaP1VdnZWZvhBDubduOmbCW5OXsRE7dynJbKj+7MDpbWcaqs/RbvY3zMiZh83LGebVYV9+2uV9znaSYgElKs1SVDxpOylP14zyGJIvJyNNRvDNeV9dmO9Tjr3xMGOYxzOOblzvf9qRO0vbNNpsfc77vvG5njemyzpvmceZ1P+txT9KPZxlL8zGwrtx5X6RZurJszjTOYwKxrpx6/Ou2bY7fet2Gk1KVD4tjvrs3WYnhyTBf2Xd+XJc65WVMpE5zDdg0hje1WT2mLMs0zis9HRWLbd/8Qpx9GmQDSdKn3x0ujjPOY3I63/adJzEh6mQdSdJnHh4eWe68nH7WXzlOmqX6g3eHGk1K7Wa7kqSf+504M3UjuyFJ+qU3Hy72/eKXxvril8aLcj7++09Wyv3RN/5AkvTl2Wv6tT+QPvl56ct7H5Ik/c0fj9t+efeDkqT/8ScfLrZ984u53nhrqFeylyVJv/KpxyttNu/XbhYTr0f7V29GjCSsBd7HO6H5HZBz8Y6rrUeTIcQ77PldrtnsTvg5mCW9TGfpt3obex/v1p05hRBie/tle9fbf1vflGWcAUvTVCEEpUkqM1NZlifqx6qKd+Dz2aD6LFyzrs12qMcfQpDN/oQQ4rZhuW2SJPHu/ISPAU/S9s02CyHOeDXrNF8+bUyXdd40jyNJqlX7tMc9ST+eZSw5F2dzvPfPlDtv8/m287+rqlJVVbJgSlyiEMJKOc12qKo4qzXfdm1fz+o2PzfSJF3WpzYJ6pyLM0/144Rlmzk5OXPx8wmuAZvG8KY2k2bnucXzvKoqZZ1MSZKoKIr4qK2nxQxPr9eTutJkMlFVVXLOKbFkeZy0cZ53tOiLLM2UZLHcPM+lrtTpxGQtyzKpFx9bDodDuZupBru7KstSIQSNdpdjNE1TTXZj3OPxWJ0bfXVu9RePH8vdZbvs7e0p7Eq7O7f17uPP684HpVc/LD168kAKpu5unMmej4/uruSrSk+H7+nl13Z159WOHj98oJu37yjflZ48iUlbnudSsoy/2+1K7uo9miQJa4FzcVp4foJ57yWn1h5Hms0eC8wuSCGE+AiHx5ErztJv9TZ2zilYkA9eZvHLSK6RJMzaf1vfpGl87Dj/YimreEGcJ2XH7cckSSS3TESaiUq9rs12qMdvZgqzP2b2zBdaVVXxkcgJH/2dpO2bbWYWH0816zRfPm1Ml3XeNI8jaeXKfdrjnqQfzzKWvPfx0aFzz5RbT7rqfydJfDwcLKjy1eLmZV5Osx2SJFHQctu1fT2r2/zcKKtyWZ9a/t28cYgFLdvMy8uHmICd5BqwaQxvajNpdp6HeJ4nSaIiL2LSlGUxuZgsk4vJZCJNYzKWJLPkK1TL45SN8zzXoi+KslBVxHI7nY40Xb47VhSFNInJ2O7urvx+qdFwqDSNN36D4erNYW8Y4+73+8oPxsqfjtXvx5mvtPYa2e3bt2VDaXi4p/e98iE9eVt6+JZ0985rkgVNh4qPkWfjYzqUXJLo1u7Leu/BUE8e5nrl1de0v/dEnaF0584dSbPkq1rGP51OJa9Lexx5XLwT1hLeCXs+8U4Y74RtOg7vhEW8E3a89uadML3w74SRhLVsMaV9RdSn8nG0s/RbvY2b5Wxq/219U5ZlvGM+xrabVFW1kpBsquum+JsxNMs9rZO0fTOG5r7nFdNlnTfN45zXcU/SjyfRbN9N5dbHb3P9pnK2bbupbs1jNpeb+9aXz3IN2LTvtroWRREfDa7ZdjQaaTAYrD1Oc9s8zxeP6raVOx4vZ7Gk1XYaDofa3V0+Xzw4ONCNGzfW7tssp7n84MEDvfbaa5Lib0d+6EMfWqx7++239cEPfnDttu+9955efvnlI9tsOp1e+gwYSRgAAEAL+O1IAACAK4wkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC3YmISZ2YGZ7a/578DM9k97UDO7bWb/p5n9rpl90sz++dOW9bwLIbQdwgul3t7b2n7T+rIsT7WfJFVVtfbzuuV6Wc113vuV5el0euyY6vE3yymK4shtm04SbzOG5nE3rasvN8tpHmfTum1teJLzcVNMm2Jsrmu29ybNvtjUj8265nm++DwajY5cJ62OpWa5zW3r8TfLbcYwmUyOLLc5fuvHabbReDw+ct9mGzX3rR93b29vZV1zuVmf+r7NeDeN5219fpKxdJJrT315U/tKq33VPEazbvX2b5a7qa+2nbv1spptf3BwsLJcj3HbebupzdpmbSQBZvYxSf8whPBDZtaRNAgh7B21/b1798L9+/cvL8BLEEJQ5YMUJJmUOJOZtR3WtVVv76A45k22tu039U1ZlhpOysW63V6qNE237ifFC844ryQvVSFefBJLJCd1EimvJHlJTuplTjInBanylfLSy4JJTuqmpirYYttQFXpvWMRbKi/dvdlVt9tdG1PwlQ6nlRQkH7w6qVPqUslJFiodTJYXxZ2OaVrZ2rrW67It3vq62ORBRRUW+3ZSJ+fi/aD3XnnpF+tSJ5U+1itYUOJMzpxkkoLXpFhu2+8kSpJkbXzN9m22YZaYguxY52M9xmZMziQftCinHmOwoE7qlLhEMslXpfbHyy+HW4NMWZatPWZz3PVSaVJqbT8mFjQtl+2bqNLTcSWZNDocaTgp1dnpSIX0vpupJj6dxSrtZEFPJ0Fyki+9bg0ydbPubGyV2huVi21vdE3jMrbRaDTS01GhbJBJhfSBl7qytLuIwXyhRweFlEi+8Lqz21Gv01s7fm/1TIdFPDeLvFDiTJ1OR5LUsVIPD0oplVRKr+w4DQsnOanMS/U7ibqdrmRSNwk6zJffbzd6iYIlkpf29vf05tv7Cjec3KH04dvSW3uS35HcofSVr3a0X3akTFIhffBOT2mnJ3lpWkz1dFTIpU7y0su7mSzJ1o7n5vnX7PN6TNvGUv3c3Xbtqe87zad6MsxliT3TvgrSrX6iSjGG0peqfFiM0UHHycst6lYVUz3Ym0qpND2cqpM69Xf6kpdu950m1XJep95XoQh63+2e+r3+2nPXhVJPDkvJSaPhSOO8Une3KxXSS91Kn9+rpJ6kifQVr/ZlWX9xLe93EqVJuva83XS9vmhm9kYI4d627U70ONLMXjWzD8//O2VgNyX9S5L+tiSFEPJNCdh1VflZIuBsZRkXo97elY8XrKPaflPfDCfxAppm6crytv0kxaRAUpIlGucxSUiymDQ8GeaLdfVyzZnGeRUvjLN1T0fxTtOl8fR950m80+xmMfF6tL+8m2zGNN83zVLlpddwUi7Kme83TwTm5a6ra70u2+Ktr6vvOz9uXi7vsuef5+vm+7rUqfIhJnezcubr5seZl7suvmb7Nttwvv1xzsd6jM2Y5uvWxVj5oHFeLdbNY5q39zymdZrj7t29yWK52Y/zcuZ1nfdjJ+vo7ccj7Q1zDbKBJOk3P7u3WCdJb34hzjZ0s67y0uvR/nRR7vyY820/8/BwEf/nH4+0PyoW5c7Lmccw37aX9ZSXXu/uTY4cv/N9O1lHT0eFngzzRRv9ztvxAUw/66/E3826Gk5KPdqfLtpoXu583/n4dqnTJz63p6Lyup3dliT92K99VpIWyz/z21+QpEV9Pv3ucLHvo/2p8tIv4p0fZ914bp5/zT6vx7RtLNXPXWnztae+76P9qSof1rZvPf4kSzSclBrn1eIY83jndZv3Yz/r6739qR48GS/KnbfRur6qfNA7T8ZHnrtvPY6zXt2sq3cej/Rkf7po+1/43S9Kkm5kNyRJv/4HX1q0Q+WDhpPyyPN20/X6qjhWEmZm325mn5L0GUn/QNJnJf3EKY/5T0h6JOmHzezXzOyHzGxnzTG/x8zum9n9R48enfJQV1MI8Y5lnrGbxTtwHk1ejHp7hxBksz8hhGfaflPflGW8o5rfSaVpKoV4t7WtT6sqzsokSaKqqpRYoiRNltPxtUkX5+KskfdeVVXJgilxyTJeLcstikJKlxe+bjfOWkyn02dimh8rSRJ575W6VC5xKssyrnNazCSZWbyDnR2nXtd6XbbFW1+3iNsvY3Iu3mV77+M2XotZhLjDsg+dOVmw5bZhuW2SxDv5qqqeia/Zvs02NIszBCvLR5yP9RibMcUNGtuG5baJS2TBVFVVHEu2HEvz/lv3aLI57mKFl8dI01TO3HIcqtHnaWyL0WikbKej3q2B8jxXmqbyO8tHNSEEqRf39d6r2+3KpU7T6TRukyxjMDOpE/cZjUZKB5n6NwYqiiKOwd7y0VJRFFIn1tF7r16vJ5c5TSaTZ8avmUm9WG5RFOp0O8p6mfI8jzH0lzE45+R3YhuUZaluv6u0my7HfrpshySJM85VVWlvb09+12n31u1Fv1W7y6bNOh2Nd5eP63q9ntSNj1Kn06lc5tTtduW9j3Gny36rj+fm+dfs83pM28ZS/dyVNl976vtOp1NZYur2usvrR285tpMkkVItxmSSJErTVFVVxbrY8tydTqdSJ15jptOpujfT1LAUAAAgAElEQVT76ux2NR6P47bd5bb1vgohqN/vyzLTeDx+5twty1LK4raj0UjZble92wNNp9M4o727rHe/31e1Gx9xhhCUJqlMprIsnzlvN12vr5LjzoT9NUnfIOn3QggfkfTNkn7xlMdMJX2dpL8VQvhaSYeSfqC5UQjhoyGEeyGEe3fv3j3loa4mszgVvPLFbzry8QfOpt7eZqYw+zNPyuptv6lv0jROec9P4vpFdVuf1i+4SZKoCpWqslomCrXve+99fKTgnJIkUbCgylfLeLUsN8syqVx+CUynU8nHC2UzpvqjOuecSl/KV/FLvJ7ELOIv13+B1OuyLd76ukXcbhmT9z4+jnCzRziu8f6JLfvQB69gYblt7QuinkQ242u2b7MNQ4iP31aWjzgf6zE2Y4obNLa15baVr+Ijp9kXXf0LYd5/6x5HNsddrPDyGGVZyge/HIdq9HkZ22IwGKg4zDV5OlKn01FZlnKHjcRqokXyPJ1O5cuYjKVpKlWNhC2P+wwGA5WjQuODkbIsi2NwosUj8SzLpDzW0bmYfPkiJmPN8RtCkCax3CzLlE9zFZNCnU4nxjBexuC9lzuMbZCmqabjqcppuRz75fqboNu3b8sNvYZP95ZJ/HDZtEWeqz/U4hHoZDKRpjEZ63a78oWPyZhzMe5y2W/18dw8/5p9Xo9p21iqn7vS5mtPfd9ut6tQBU0n0+X1Y9JI0kutJF/zZKyZLHW7XSmP15hut6vp/lj5cKp+vx+3nS63rfeVWUy+QhGTsea5m6apVMRtB4OBiuFUk72Rut2ukiRRf7is93g8VjKMyZiZqaxKBYVFslc/bzddr6+SY70TZmb3Qwj3zOw3JH1tCMGb2a+EEP7oiQ9o9j5J/ziE8Pps+V+U9AMhhD991D68E4az4p0wPfNeCe+ELduQd8LEO2G8E8Y7YefouO+EHTcJ+/8kfaek/0bSK5IeSvr6EMI3njK4fyjpz4cQ3jSzH5S0E0L4z4/a/jomYXP1R0y4eM1HepvaftP6siyPPJm3lTufDWt+XrdcL6u5znu/8uhufod6nJjq8TfLKYpiJRnYVNeTxNuMoXncuua6+nKznOZxNsW3rQ1Pcj5uimlTjM11zfbepNkXm/qxWdc8zxfJzGg00mAwWLtOWh1LzXKb29bjb5bbjGEymcTHe2vKbY7f+nGabTQej9Xv99fu22yj5r714+7t7en27duLdc3lZn3q+zbj3TSet/X5ScbSSa499eVN7Sut9lXzGM261du/We6mvtp27tbLarb9wcGBbty4sbYdtp23m9rsopx3ErYjaaKYw/7bkm5J+pEQwnunDO5rJP2QpI6kP5D050IIXzpq++uchAEAgOvluEnYsVLDEMJhbfFjp45qWd6vS9oaHAAAwHV1rCTMzA60fLW1o/ik/DCEcPOiAgMAALjOjjsTdqO+bGbfKenEL+UDAAAgOtE/1joXQvi/JX3TOccCAADwwjju48h/rbboFN/n4l8WBQAAOKXj/s7mt9U+l4r/Yv53nHs0AAAAL4jjvhP25y46EAAAgBfJ1nfCzOw7zOwXzezJ7L+fNLN/Ybbu1sWHCAAAcP1sTMLM7D+W9F/O/nt99t9fl/TfmtmfkfTzFxwfAADAtbTtceRfkPTHQwhPaj/7GTP7NklvS/pPLywyAACAa2zr48hGAjb/2XuSPhdC+FsXEhUAAMA1ty0J2zezP9L84exnTy8mJAAAgOtv2+PIvyTpx8zshyW9ofhvg329pD8r6bsuODYAAIBra+NMWAjhFyT9sdl2/56k7559/obZOgAAAJzC1n8nLITwrqS/egmxAAAAvDA2JmFm9lta/78nMkkhhPCHLyQqAACAa27bTNi3XkoUAAAAL5iNSVgI4XOXFQgAAMCLZNvjyANtfhx580KiAgAAuOa2zYTduKxAAAAAXiRbfzuyzsxeldSbL4cQ3jr3iAAAAF4AW/+3RZJkZt9uZp+S9BlJ/0DSZyX9xAXGBQAAcK0dKwmT9NckfYOk3wshfETSN0v6xQuLCgAA4Jo7bhJWzP6n3c7MXAjhZyV9zQXGBQAAcK0d952wPTPblfTzkn7EzB5KKi8uLAAAgOvtuDNh3yFpJOn7Jf2/kn5f0rddVFAAAADX3daZMDNLJP29EMKflOQlfezCowIAALjmts6EhRAqSSMzu3UJ8QAAALwQjvtO2ETSb5nZT0k6nP8whPC9FxIVAADANXfcJOz/mf0HAACAc3CsJCyE8DEz60v6cAjhzQuOCQAA4No77r+Y/22Sfl3xNyNlZl9jZj92kYEBAABcZ8f9Jyp+UNIflbQnSSGEX5f0kQuKCQAA4No7bhJWhhCeNn4WzjsYAACAF8VxX8z/hJn9W5ISM/tDkr5X0i9dXFgAAADX23Fnwv6CpH9G0lTS/ybpqaS/eFFBAQAAXHfHTcK+KoTwl0MIXz/776+EECYXGtkVFsL5PYk9z7LOw7Z4LireTeXmeX4h5Z5l3+l0euS2zf02LXvvV9ZVVXXkMZvbNssdj8eLz0VRbNy3vtzcdtO+J6lbWZbH3vYkmm3ULKe+vrltvY2kZ8fWSWKqt8u2fhyNRovPzfatr5NW263Zhs14Dw4OFp+bdWuO0cPDxT/xqP39/ZV1e3t7K8uTyWTtZ0kaDocry5vG3aZym+U026Fe12a5zXao77utL+plNY9ZbyPp2fav77ttrNS33Xbubirroq5hzXX1um66XlyWTed1c/mqfY+ehB0neDP7WUmvSfo/JP3dEMJvX3Rgdffu3Qv379+/zEOuFUJQ5UN8G86kxJnMrPWyzsO2eC4q3k3l5nmuJ8NcMklBurPbUafTOZf6nHbf6XSqR/vTePvipVdudJRmHSlIYfaapMkkk5xJPmhRTn3ZB6/KB1kwyUmJBU3LEP/HYE7qdxIlSSIpXgDz0i/WZYkpyBbl5tOJvvCliZRKxbjQbi9Vv9+XJN3oJQqWLPZNnVT6GHtRFRrnlZyL92KDTBrVvuvq+wYLSpzJmdtat7IqNc6rRTvsdBOZS9Zue5K+qapK47xa1KWXOcncohwFr0kR26kK8QKdWBL7qsr17tM8voBRSnd3E42rZDG2XtrJlKTZsWKq94dX/HJycmv7MZRTvfOlqZRJxajQrUGmwWAgScpU6MHTQsokFdL7b3fkXWfRhpKUJqlkUsd57U/8It4sTPWZx1OpJ02+NNZOL9WNl25IpfTKjtOwcIsxOkhKfeFpKXWk/cf7yotKvZd3pLH0/l2vzz7x8juSO5T+yff1NFFPSqTJYUyYejs9qZJ201Jv75VSV9JU+sCtRE/zZO24C/mhPvnO4dpyh0+HGk5K9W71pKn0/ptOTyZu0Q7vu5lq4mO9i7xQ4mxx3vfToINpWLRDz5V6d7+UMslPvd53u6dBb7C2L1LzGk5jf41GIz0dFcoGmVRIL/eDvjgMUkdSLn3oTlch6S7GQzcJOszj+R1C0G4vVZZma8dKURR6OjuRvPfqdxJlSbb23N10LlzUNay5LvhKh9NqcV3qpE6pS5+5XshJndQtrhcXpRlf/byWkzqJlFdaXJc6qVPikivxPVpnZm+EEO5t2+5YrRlC+Jcl/QlJjyR91Mx+y8z+ytlCfP5UfvYl62xlue2yzsO2eC4q3k3lPhnGu91O1llZPmu5Z9n30X6cXehmXUnSu3uTxbaVjxeP+X556VfKqS/nZUzCXBpPwflFO8li4jXOl3d58/3m287Xzct963G8m+9nfT0dFXrnyVhZlq3EO993OCkXy09HhfLSL7adl7Nu38oH5aU/Vt2Gk1KVD0qzdKVuR+173L6Z13veRvO6zMuZLydZonEeE7b5tp9+d7hoI0n6xFvx94zmY2te1+PEVO+PvIwJ2VH9+OYX4kzVIBtof1To849Hi/adxzDIYlL2O2/H2ak0SzWclBpOykUbzvtmHu/9T78nSbqR3dDjg7E+9+hgUbff/GycfZqP0Y///hNJ0k62o8893teDp4e6md2UJP34b7wlSbqd3ZYk/fwn35Uk9bKeHu5N9HBvol7WkyT9yqceS5J2s11J0j/+vUeLNm2Ou/m6deW+9WioJweTRTm/9ObDlXaYx9/JOno6KvRkmC/K/czDw5V2mG87yAbKS6+3Ho+O7Iv5uZplmT7/eKT9UbE45jzenWxnpW/m7f/Ok/Fi38oHPR0VR46V+XGzLFNeej0dFUeeu5vOhYu6hjXXzeNNs1R56TWclGuvF/V4L1Izvvp5LS2/B5IsUeVDvOG7It+jp3HslDaE8G4I4X+Q9B8q/pthf/XCorqCQoiZ+TzLNot3M6eZBj3Pss7DtnguKt5N5eZ5nAGb3wF3Op0463OMR5NniXfTvtNpnAHrdrvLmJIYUwhBNvuzOE7zejVb9t7LQpxVCiEstp8fM0ni7FNVVfExgNfi7tPM4h3gbJ/JZCJlUq/XU1EU6u/2lQ0yjcfjWI5rTOPPQiuKQi5xyrJs+aghW25W3zeEIGdOFmy57RF1K8tSZqY0SRVCWMzmrcRQ2/e4fVNVcQZsXp5zcQZsHo/3Xgrx51VVKbFESZqoqqo4ZrrLsZQkicJgGVOWxVmK+eOjTTHV+8N7LycnZ/Fzsx+n0zhT1e12Y9/cGCjdyTQajVQUhcJgmfB2Oh2pH8dSWZZK01Rplqosy3jMbDkGptOpit1Y7ng8Vv/mDaU3+jo4OIhx7SzbpSxLlbtSmqba399XemNHvVs3dXh4qOC9it1luZ1eT6PdOKYmk4k6N3vq7PY0mUxUlqXyWTnzNpzuxjZsjrvDw0NNd6X+zs4z5Q6HQ6U3e+rd2NVkMpFzTpPdZbxpmsrvxLiLolCn31HWzRbnmDrL9i3LUn5nto/3GuwM5LpOo9Homb7w3ktJrOtoNFK6m6m/M4j9EIKmu8ttu92uwmD5ODeEIKVxfQhBWSeTmakoimfGynwMzc+rLMvkErfc1jfG1RHnwkVdw5rr5udAkiTy3it1qVzilo8ma4dzzsXZ3wt8NNmMr35eL9hy28QlMpmqqmr9e/S0jvuPtf7TZvaDZvYJSf+TpH8k6YMXGtkVYxYfrawkJrYcLG2VdR62xXNR8W4qt9OJj2XmSVee51LQsR5HniXeTft2u13JLy/OeZ5LVYzJzBRmfxbHaZ5ds2XnnIIF+eBltvqYQJpdGF28MDoXHyvNL3whBMkt69Lr9aQifsFlWabxcKxiVKjf7z+TuMQKxr+yLJOvfEzG5he42qPI+r5mJh+8goXltkfULU1j8lVWMRmrX+Sb2zbbd5NmQul9fDQ3j8e5+JjUe68kSVSFSlVZKUmSOGamy7FUVZVstIypKArJLxOiTTHV+8M5Jy8vH+LnZj92u11pEsdLlmUaH4xUHhYaDAbKskw2Wn5p53kujeNYStOYfJVFTMacc1KxHAPdblfZMJbb7/c13j9QeTDWjRs3YlyHy3ZJ01TpMCYsN2/eVHlwqMnTfe3s7MicUzZclptPJhoM45jq9XrK9yfKhxP1ej2laarOcPneUFVV6g5jGzbH3c7OjrpDaTx7v6pe7u7ursr9iSYHQ/V6PXnv1Rsu4y3LUu4wxp1lmfJxrmJaLM4x5cv2TdNU7nC2j3MaHY7kp16DweCZvnDOSVWs62AwUDksND6Ms5Jmpu5wue10OpWNljdbZiaVcb2Zqchj4pZl2TNjZT6G5udVURTylV9u6xrj6ohz4aKuYc119Zsk55xKX8pXfpFsq3Y4773kdKGPI5vx1c/rhbDctvKVguLNXtvfo6d13HfCflnS35f0c5J+9bJfyuedsIvHO2HH25d3wngnjHfCxDthvBN2YV60d8I2JmFmlkr6ryV9t6S3FJvkg5J+WNJfDiEUR+58jq5KEjY3vyO6amWdh23xXFS8m8rN8/zYyddJyj3LvtPpdHGn3Ny2ud+m5fmMylxVVauzRjXNbZvljsfjxZdgURSLu/J1+9aXm9tu2vckdZs/VjvOtifRbKNmOfX1zW3rbSQ9O7ZOElO9Xbb142g0WiRfzfatr5NW263Zhs14Dw4OdOPGjbV1a47Rw8ND7cweEe7v7+vmzZuLdXt7e7p9+/ZieTKJM2DNz1L8rcbd3d3F8qZxt6ncZjnNdqjXtVlusx3q+27ri3pZzWPW20h6tv3r+24bK/Vtt527m8q6qGtYc129rpuuF5dl03ndXL5q36PS+SVhf1PSDUnfH0I4mP3spqS/IWkcQvi+c4p3o6uWhAEAABzlvH478lsl/QfzBEySQgj7kv4jSd9ythABAABeXNuSsBDWTJWFECqt/N4EAAAATmJbEvY7ZvbvNn9oZt8l6XcvJiQAAIDrb9v/wPs/kfSjZvbdkt5QnP36ekl9Sf/qBccGAABwbW1MwkII70j6Y2b2TYr/A2+T9BMhhJ++jOAAAACuq20zYZKkEMLPSPqZC44FAADghXG5//AHAAAAJJGEAQAAtIIkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALWkvCzCwxs18zs7/fVgzXife+7RAuTFVVbYfwjE0xhRBOXe5Z9h2Px0eua8a76TjNsVTfdtO6prPUZVNZ22KoLzfXNduhLMtTx1SP4yTt0oyhubzpXG6Wm+f5keU067ZpzG6Kf9vY2RTvpnI39VtzeTQarayr11taretJroXbYjiL8yzrMlyFeC/renKVpC0e+/skfVLSzRZjeO5575WXXvKSnFcndXLuekxwVlWlcV7N6lap30mUJMmVjSmEoMoHKUiyoMSZzOxY5Z5l3/F4rHeejOPZ/GSsD9zpq9/vr423lznJ3NrjNMdSlpiCTAqSD5UqH2TBnlnXLOcsddnULtticCb5IClIQfGL2GSSBSl4TQq/aIfMBY2LeYyldnup0vR4l8N6O3nFL38nt7Vdmn3RSaS80mK5m5qqYGvP5WabVmWhLx0WkknV07H6nUSdtLO2bv3MVHhbO2Y39XnlS+Wln7X3s2PHFFRUYW28m8pt9k2935rLo/Gh3nkylnVMejzS+26mmvhUMknDXDd7Trl3s/GRq5M6pS7dei1stmczhvMas2ct6zJchXg3xXAV4rtIrXxbm9kHJf1pST/UxvGvk7yMFzSXupXl62CcxzvwJEtWltu0KabKxzs1c7ayfBxn2fedJ3EGrJ/1V5bXxTuclEcepzmW5vuaM+WlV+XD2nXNcs5Sl6Z6WdtimMdvzlT5eOGer5vXe94Oj/ankqQ0S1fWH0e9nfIyJhvHaZdmXzwZ5ivLT0fFotz6cZrtUI+/k3U0zis9GeZH1m2+vG7MburzcR6T3qPGznzbdfFuKrfZN/V+ay6/9XikygcNsoEk6Tc/u7eotyS99Xi0qGteeg0n5bGuhc32bMZwXmP2rGVdhqsQ76YYrkJ8F6mtKZP/XtJ/IenIs8TMvsfM7pvZ/UePHl1eZM8R7+Od5vxuzzkX786vwaPJqoozBvM79iRJJN/uo8lNMYUQ79Tmd2hms7v+Y0yhn2Xf8TjOgM1nvvr9vpTGnzfjdW42YzAbH/XjNMeSWZw5ma+zYHLmFEJYWdcs5yx12dQu22KQtLiahBBksz+LugWtzCrJLWNM01QKx3s0WW8n772cOTnFz5vapdkXcYPax9pdv7R6LjfbtCgKyUlZlqmqKnWyjpJOojzPn6mbmUluWW59zG7q86qqZDIlLlEI4ZmxE0KcAZsfpx7vpnKbfVPvt2Y/jkYjWcc02BkohKA0TeV3lv3knJOy5THTNJVzTmVZbrwWNtuzGcN5jdmzlnUZrkK8m2K4CvFdtEtPwszsWyU9DCG8sWm7EMJHQwj3Qgj37t69e0nRPV+cc5JbXmi895LTtXgcmSSJ5JZJV1VVklOrjyM3xWRmki0vDiEEyRoX+iOcZd9+vy+Vy/fBxuOxVMafN+P13kvWSEZmx2mOpfqXuXNOwYJ8iIlG84u+Xs5Z6rKpXbbFIGlxNTMzhdmfRd2skXzWkqWyLCXTsR5H1tvJOScfvLzi503t0uyLuEHtYz1x0+q53GzTLMskH5OxJEmUF7mqvFKn03mmbs1kqT5mN/V5kiQKCqp8tUiC62OnmdzV491UbrNv6v3W7MfBYKCQB40ORzKzmFwdLvvJey8Vy2OWZblIxjZdC5vt2YzhvMbsWcu6DFch3k0xXIX4Llob39Z/XNK3m9lnJf1dSd9kZv9rC3FcC53Z1LufTafPl6+DficmXFVRrSy3aVNMyWy6PMymy+fLx3GWfT9wJ86CjYvxyvK6eHd76ZHHaY6l+b7BB3VSp8TZ2nXNcs5Sl6Z6WdtimMcffHxvJHG2WDev97wd7t7sSpLKolxZfxz1duqkTp3UHatdmn1xZ7ezsnxrkC3KrR+n2Q71+PMiV7+T6M5u58i6zZfXjdlNfd7vJEqcHTl25tuui3dTuc2+qfdbc/nDrwyUONOoiI8d//Drtxf1lqQPvzJY1LWTOu320mNdC5vt2YzhvMbsWcu6DFch3k0xXIX4LpK1Oa1nZn9C0n8WQvjWTdvdu3cv3L9//3KCek7N78yvo6qqWn8hv2lTTIvHZadwln3H4/HisWRTM95Nx2mOpfq2m9Y1naUum8raFkN9ubmu2Q5lWR77hfymehwnaZdmDM3lTedys9w8z9XpdNaW06zbpjG7Kf5tY2dTvJvK3dRvzeXRaKTBYLC23s26nuRauC2GszjPsi7DVYj3sq4nl8HM3ggh3Nu23fX81n4BXdcETGr3EeRRNsV0lgvFWfY9KgGTno1303GaY6m+7aZ1Ted5wTxJDPXl5rpmO5w2AWvGcZJ2acbQXN50LjfLrSci2+q2acxuin/b2NkU76ZyN/Vbc7megEmr9ZZW63qSa+G2GM7ieUoYpKsR72VdT66SNv+JCoUQfk7Sz7UZAwAAQBuu7/QJAADAFUYSBgAA0AKSMAAAgBaQhAEAALSAJAwAAKAFJGEAAAAtIAkDAABoAUkYAABAC0jCAAAAWkASBgAA0AKSMAAAgBaQhAEAALSAJAwAAKAFJGEAAAAtIAkDAABoAUkYAABAC0jCAAAAWkASBgAA0AKSMAAAgBaQhAEAALSAJAwAAKAFJGEAAAAtIAkDAABoAUkYAABAC0jCAAAAWkASBgAA0AKSMAAAgBaQhAEAALSAJAwAAKAFJGEAAAAtIAkDAABoAUkYAABAC0jCAAAAWkASBgAA0AKSMAAAgBaQhOHKCyG0HcIzzhKT937xuaqq8whnq6vQhufVZm3FcF7HbdZlU91OEu95tRGAy5O2HQBwlBCCKh+kIMmCEmcys+c2Ju+98tJLXqpCocoHOTnJVep3EiVJcqXivQox1NtMzquTOjl38nvHttqhflwfKlU+yIJJzit1Uum1tm4nife82gjA5eNMxZVV+TgLYM5Wltt0lpjyMs5UuNRpnFfKS68ki4nXOL+YGbGr0Ibn1Wb15cuM4Szqx81LHxPvWV2Gk1LS+rqdJN7zaiMAl48kDFdSCHEWYH73b2ZSaPex2lli8j7OVDjnVFWVnDklLpH3Ps6A+fN/NHkV2vC82kya/e1P/titrXaoH9d7LwsmZ2553Nrh63U7Sbzn1UYA2kEShivJzCRbfvGEECRTq48jzxKTc05yWiRdPnhVvlokZXI698eRV6ENz6vNpNnfTid+1NZWO9SP65xTsCAf/PK4tcPX63aSeM+rjQC0gzMVV1YyexQTZo9i5sttOktMndnjIl969TuJOqlTVcTZr37n/N8Hq8fXZhueV5vVly8zhrOoH7eTOiXOFnXZ7cVXctfV7STxnlcbAbh8vJiPK8vMlCamEELrL+TPnSUm55x6HSfvvZyLp15VVRfyQv7cVWjD82uz0ycXbbVD/bipzZKuWl3SxvJp4j2vNgJw+ThjceVdlQSs7iwx1b8oLzIBq7sKbXhebdZWDOd13GZdNtXtJPGSgAHPH85aAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAACAFpCEAQAAtIAkDAAAoAUkYQAAAC249CTMzD5kZj9rZp80s982s++77BiA6yiE0HYIl+J5r+fzHj+A85O2cMxS0l8KIXzczG5IesPMfiqE8DstxAI890IIqnyQgiQLSpzJzNoO69w97/V83uMHcP4ufSYshPAghPDx2ecDSZ+U9IHLjgO4LiofZ1bM2crydfO81/N5jx/A+Wv1nTAze13S10r65TXrvsfM7pvZ/UePHl12aMBzIYQ4szKfUTEzKVy/R17Pez2f9/gBXIzWkjAz25X0f0n6iyGE/eb6EMJHQwj3Qgj37t69e/kBAs8BM5Ns+WUeQpBM1+4x1/Nez+c9fgAXo5UkzMwyxQTsR0IIP9pGDMB1kcweb4XZ46358nXzvNfzeY8fwPm79BfzLd76/W1Jnwwh/HeXfXzgujEzpYkphHCtZ1ae93o+7/EDOH9tzIT9cUn/jqRvMrNfn/33LS3EAVwrL8oX+/Nez+c9fgDn59JnwkIIvyCJqxAAAHih8S/mAwAAtIAkDAAAoDN2BMMAAArmSURBVAUkYQAAAC0gCQMAAGgBSRgAAEALSMIAAABaQBIGAADQApIwAPj/27v7WMuq8o7j3x8zvMmLgIqFggUTbEuNUJhOaWtLgxWEJlWCL9QaCGOT2vQPMNUWqraQvkSpKaahTWPVBkJTCW2t2Kp0MKgpUXAGgZkRxBmwMBVLlbYM0xaQefrHXjf3zMude8Y7966Zc76fZOess/bL7P3MOvs8d629z5akDkzCJEmSOjAJkyRJ6sAkTJIkqQOTMEmSpA5MwiRJkjowCZMkSerAJEySJKkDkzBJkqQOTMIkSZI6MAmTJEnqwCRMkiSpA5MwSZKkDkzCJEmSOjAJkyRJ6sAkTJIkqQOTMEmSpA5MwiRJkjowCZMkSerAJEySJKkDkzBJkqQOTMIkSZI6MAmTJEnqwCRMkiSpA5MwSZKkDkzCJEmSOjAJkyRJ6sAkTJIkqQOTMGkKVFXvXZhoxlfS92N57x2QtHiqiue3FRSQYtkBIUnv3ZoYxlfSQtgTJk2w57cNPTQ5INu9195hfCUthEmYNKGqhh6amZ6ZJFAOne0txlfSQpmESRMqCWQ2KagqCA6X7SXGV9JCmYRJE2xZGyarNkw28157h/GVtBBemC9NsCQsXxaqyh6aRWB8JS2EPWHSFDBBWFzGV9L3wyRMkiSpA5MwSZKkDkzCJEmSOjAJkyRJ6sAkTJIkqQOTMEmSpA5MwiRJkjowCZMkSerAJEySJKkDkzBJkqQOTMIkSZI6MAmTJEnqwCRMkiSpA5MwSZKkDkzCJEmSOkhV9d6HeSX5D+Bfe+/HInkx8J3eO7GPM0bjMU7zM0bjMU7zM0bjmdY4/VBVvWS+hfaLJGySJVlTVSt678e+zBiNxzjNzxiNxzjNzxiNxzjtnsORkiRJHZiESZIkdWAS1t+He+/AfsAYjcc4zc8Yjcc4zc8Yjcc47YbXhEmSJHVgT5gkSVIHJmGSJEkdmITtZUk+luSJJOtH6k5P8uUk9yZZk2Rlq39hkk8luS/JhiSXjaxzaZJvtOnSHseymOaI02lJvpRkXYvLkSPzrkqyMcnXk5w3Uv+6VrcxyZVLfRyLaU9ilOS1Sda2+rVJzhlZ58xWvzHJnyZJj+NZLHvaltr8lyV5Osm7RupsS7PzXtXmbWjzD2n1tqXZz9yBSW5o9Q8kuWpknUluSycmuaMd84Ykl7f6Y5Ksbt9Zq5Mc3erT2srGJPcnOWNkWxP9PTeWqnLaixPwc8AZwPqRun8Gzm/lC4DPt/LvAB9o5ZcATwIHAccAD7fXo1v56N7HtgRx+gpwdiuvAn6/lU8F7gMOBk4GNgHL2rQJeHmL233Aqb2PrVOMfhw4vpVfCfzbyDp3Az8FBPjMTFuclGlP4jQy/++AW4B3tfe2pdm2tBy4HzitvX8RsMy2tFOc3gp8vJVfAHwTOGkK2tJxwBmtfATwUDtHXwtc2eqvZPa77YLWVgKcBdzV6if+e26cyZ6wvayqvsiQTG1XDcz8lflC4Fsj9Ue0vyYPb+t9DzgPWF1VT1bVfwKrgdct9r4vpTni9MPAF1t5NXBRK7+e4WT3TFU9AmwEVrZpY1U9XFXPAh9vy06EPYlRVX21qmba1QbgkCQHJzkOOLKqvlTDme9G4A2Lv/dLZw/bEknewHDC3zCyvG1pNkbnAvdX1X1t3e9W1fO2JWD7OBVwWJLlwKHAs8BTTH5beryq7mnlLcADwA8yHOMNbbEbmG0brwdurMGXgaNaW5r477lxmIQtjSuAP07yGPBBYKbb+nrgRxmSsnXA5VW1jaFBPzay/uZWN+nWA7/Uym8CTmzlueIxjXGaK0ajLgK+WlXPMMRj88i8aYgRzBGnJIcBvw1cs8PytqXZtvQKoJLcluSeJL/V6m1L28fpb4GtwOPAo8AHq+pJpqgtJTmJoRf+LuClVfU4DIkacGxbzPP3bpiELY1fB95ZVScC7wQ+2urPA+4FjgdOB65v1xvs6jqLafgtkVXAbyRZy9DN/Wyrnyse0xinuWIEQJIfAz4A/NpM1S62MekxgrnjdA1wXVU9vcPy0xinuWK0HHg18Cvt9cIkr2E6YwRzx2kl8DzD+ftk4DeTvJwpiVOSwxmG9a+oqqd2t+gu6qb1/L2T5b13YEpcClzeyrcAH2nly4D3t679jUkeAX6E4S+Cnx9Z/wTg80uypx1V1YMMQyEkeQXwi23WZrbv8TmB2SHdueon0m5iRJITgE8Al1TVpla9mSEuMyY+RrDbOP0k8MYk1wJHAduS/B+wFtvS6OftC1X1nTbv0wzXSd2EbWk0Tm8FPltVzwFPJLkTWMHQuzPRbSnJgQwJ2F9X1d+36n9PclxVPd6GG59o9XOdv6fye25H9oQtjW8BZ7fyOcA3WvlR4DUASV7KcO3Bw8BtwLlJjm53mJzb6iZakmPb6wHAe4G/aLNuBS5u1zidDJzCcIHwV4BTkpyc5CDg4rbsxJorRkmOAv4JuKqq7pxZvg0LbElyVrv28BLgk0u+40tsrjhV1c9W1UlVdRLwIeCPqup6bEujn7fbgFcleUG73uls4Gu2pZ3i9ChwTrv77zCGi84fZMLbUvu//yjwQFX9ycisWxk6HGivnxypv6TF6Szgv1tbmsrvuZ30vjNg0ibgbxiuEXiOIdN/O0OX/lqGu2TuAs5syx7PcOfkOobrDt42sp1VDBegbwQu631cSxSnyxnutHkIeD/tiQ5t+fcw3HH0dUbuyGK48+ahNu89vY+rV4wYvhy2Mgxvz0zHtnkrWvvaxHAdYnodU+847bDe1bS7I21LO33e3sZw48J64NqRetvS7GfucIaRjQ3A14B3T0lbejXDsOH9I+eaCxjuov0cQyfD54Bj2vIB/qzFYh2wYmRbE/09N87kY4skSZI6cDhSkiSpA5MwSZKkDkzCJEmSOjAJkyRJ6sAkTJIkqQOTMEn7tPb7Qv+S5PyRujcn+exe2PZNSR5Jcm+SB5O8d4x1Lkzy7lb+gyRXtPKqJD+w0H2SND38xXxJ+7SqqiTvAG5JcgewDPhDFviw3/ZDpDA8UuwfkhwKPJjkhqp6bK71quoTc8xaBdwDfHsh+yVpetgTJmmfV1XrgU8xPHz794Abq2pTkkuT3N16sv68/ao5ST6cZE2SDUl+d2Y7STYneV97xMyFO/wzhzL8COX/jCx7VCufleT2Vv7VJB8aXTHJWxie/3pz25eDFiMOkiaLSZik/cU1DM/rOx+4NskrGRKpn66q0xl69i9uy15ZVSuA04DXJjl1ZDtbq+pnquqW9v66JPcyPPPvxqr67p7uWFXdzPDL4W+pqtOr6tn51pEkhyMl7ReqamuSm4Gnq+qZJL8A/ASwZnicHYcyJFIAv5zk7QznuOOBUxkeLQNw8w6bnhmOPAK4I8k/VtXdi308kmQSJml/sq1NMDyT7mNV9b7RBZKcwvC8v5VV9V9JbgIOGVlk6642XFVbknyB4dl4dwPfY3a04JBdrSNJC+FwpKT91e3Am5O8GCDJi5K8DDgS2AI8leQ44LxxNpbkQGAlw4OGAb4JnNnKF42xiS3AEWPvvaSpZ0+YpP1SVa1Lcg1we7sg/zngHcAahqHH9cDDwJ3zbOq6JFcDBwO3Abe2+quBv0zybYaesfn8FfCRJP/L0AvndWGSditV1XsfJEmSpo7DkZIkSR2YhEmSJHVgEiZJktSBSZgkSVIHJmGSJEkdmIRJkiR1YBImSZLUwf8DfJ7MfrABzIcAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8fa80da5c0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_train.plot('YearBuilt', 'OverallQual', 'scatter', alpha=0.01, figsize=(10,8));"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Get our predictions"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(81, 80)"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(df_train.columns), len(df_test.columns)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"ename": "ValueError",
"evalue": "Number of features of the model must match the input. Model n_features is 250 and input n_features is 80 ",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-40-1187c19a7a12>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m~/anaconda3/envs/fastai/lib/python3.6/site-packages/sklearn/ensemble/forest.py\u001b[0m in \u001b[0;36mpredict\u001b[0;34m(self, X)\u001b[0m\n\u001b[1;32m 679\u001b[0m \u001b[0mcheck_is_fitted\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'estimators_'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 680\u001b[0m \u001b[0;31m# Check data\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 681\u001b[0;31m \u001b[0mX\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_X_predict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 682\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 683\u001b[0m \u001b[0;31m# Assign chunk of trees to jobs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/anaconda3/envs/fastai/lib/python3.6/site-packages/sklearn/ensemble/forest.py\u001b[0m in \u001b[0;36m_validate_X_predict\u001b[0;34m(self, X)\u001b[0m\n\u001b[1;32m 355\u001b[0m \"call `fit` before exploiting the model.\")\n\u001b[1;32m 356\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 357\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mestimators_\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_X_predict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcheck_input\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 358\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 359\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/anaconda3/envs/fastai/lib/python3.6/site-packages/sklearn/tree/tree.py\u001b[0m in \u001b[0;36m_validate_X_predict\u001b[0;34m(self, X, check_input)\u001b[0m\n\u001b[1;32m 382\u001b[0m \u001b[0;34m\"match the input. Model n_features is %s and \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 383\u001b[0m \u001b[0;34m\"input n_features is %s \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 384\u001b[0;31m % (self.n_features_, n_features))\n\u001b[0m\u001b[1;32m 385\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 386\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mValueError\u001b[0m: Number of features of the model must match the input. Model n_features is 250 and input n_features is 80 "
]
}
],
"source": [
"m.predict(df_test)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment