{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Ensemble Methods Basic concepts" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import addutils.toc ; addutils.toc.js(ipy_notebook=True)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import scipy.io\n", "import numpy as np\n", "import pandas as pd\n", "from time import time\n", "from sklearn import datasets, model_selection, metrics, ensemble, tree\n", "from IPython.core.display import Image\n", "from addutils import css_notebook\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "css_notebook()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", "\n", " if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " var JS_MIME_TYPE = 'application/javascript';\n", " var HTML_MIME_TYPE = 'text/html';\n", " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " var CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " var script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " var cell = handle.cell;\n", "\n", " var id = cell.output_area._bokeh_element_id;\n", " var server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id !== undefined) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd, {\n", " iopub: {\n", " output: function(msg) {\n", " var element_id = msg.content.text.trim();\n", " Bokeh.index[element_id].model.document.clear();\n", " delete Bokeh.index[element_id];\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[0].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[0].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[0]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in output_area.display_order */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " var NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"
\\n\"+\n", " \"
• re-rerun output_notebook() to attempt to load from CDN again, or
• \\n\"+\n", " \"
• use INLINE resources instead, as so:
• \\n\"+\n", " \"
\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded() {\n", " var el = document.getElementById(\"87c84f46-006f-40d0-8176-168bec867c0c\");\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n", " }\n", " finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.info(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(js_urls, callback) {\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = js_urls.length;\n", " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", " var s = document.createElement('script');\n", " s.src = url;\n", " s.async = false;\n", " s.onreadystatechange = s.onload = function() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.log(\"Bokeh: all BokehJS libraries loaded\");\n", " run_callbacks()\n", " }\n", " };\n", " s.onerror = function() {\n", " console.warn(\"failed to load library \" + url);\n", " };\n", " console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.getElementsByTagName(\"head\")[0].appendChild(s);\n", " }\n", " };var element = document.getElementById(\"87c84f46-006f-40d0-8176-168bec867c0c\");\n", " if (element == null) {\n", " console.log(\"Bokeh: ERROR: autoload.js configured with elementid '87c84f46-006f-40d0-8176-168bec867c0c' but no matching script tag was found. \")\n", " return false;\n", " }\n", "\n", " var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.13.min.js\"];\n", "\n", " var inline_js = [\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " \n", " function(Bokeh) {\n", " \n", " },\n", " function(Bokeh) {\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css\");\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.css\");\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.css\");\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " \n", " if ((root.Bokeh !== undefined) || (force === true)) {\n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " var cell = $(document.getElementById(\"87c84f46-006f-40d0-8176-168bec867c0c\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", "\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(js_urls, function() {\n", " console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \" \\n\"+\n \" \\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \" \\n\"+\n \" \\n\"+\n \" • re-rerun output_notebook() to attempt to load from CDN again, or • \\n\"+\n \" • use INLINE resources instead, as so: • \\n\"+\n \" \\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \" \"}};\n\n function display_loaded() {\n var el = document.getElementById(\"87c84f46-006f-40d0-8176-168bec867c0c\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n }\n finally {\n delete root._bokeh_onload_callbacks\n }\n console.info(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(js_urls, callback) {\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = js_urls.length;\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var s = document.createElement('script');\n s.src = url;\n s.async = false;\n s.onreadystatechange = s.onload = function() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: all BokehJS libraries loaded\");\n run_callbacks()\n }\n };\n s.onerror = function() {\n console.warn(\"failed to load library \" + url);\n };\n console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.getElementsByTagName(\"head\")[0].appendChild(s);\n }\n };var element = document.getElementById(\"87c84f46-006f-40d0-8176-168bec867c0c\");\n if (element == null) {\n console.log(\"Bokeh: ERROR: autoload.js configured with elementid '87c84f46-006f-40d0-8176-168bec867c0c' but no matching script tag was found. \")\n return false;\n }\n\n var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.13.min.js\"];\n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n \n function(Bokeh) {\n \n },\n function(Bokeh) {\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.css\");\n }\n ];\n\n function run_inline_js() {\n \n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell =$(document.getElementById(\"87c84f46-006f-40d0-8176-168bec867c0c\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(js_urls, function() {\n console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import bokeh.plotting as bk\n", "from bokeh.models import (GraphRenderer, StaticLayoutProvider, Rect, \n", " ColumnDataSource, Range1d, LabelSet, Label)\n", "bk.output_notebook()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1 Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ensemble Methods combine the predictions of several models in order to improve generalizability / robustness over a single model.\n", "\n", "Among many ensemble methods, two of the most popular families of methods are:\n", "\n", "* **B**ootstrap **agg**regation or **Bagging** (also called **Averaging**): train multiple models by randomly *sample with replacement (values can be duplicated)* from the dataset and then average (or vote) the predictions. Bagging seems to work better with High-Variance (Complex Models) by decreasing Variance *while the Bias is not affected*.
\n", "\n", " * **RandomForestClassifier / RandomForestRegressor
** splits are made with 0 < max_features < 1 and then the most discriminative threshold is used.\n", " * **ExtraTreesClassifier / ExtraTreesRegressor
** similar to RF but tresholds are drawn at random for each candidate feature.

\n", "\n", "* **Boosting**: incrementally build an ensemble of *weak* classifiers to produce a powerful *'commitee'*. A *weak classifier* is only slightly better than random guessing. In boosting each new model is trained with a re-weighted version of the data to emphasize the training instances that previous models mis-classified. Boosting works the other way regard bias-variance decomposition, with respect to Bagging; it start with Low-Variance and High-Bias model and works by gradually improve Bias at each step. Increasing boosting steps tends to over-fit data and the algorithm is computationally more expensive than bagging.
\n", "\n", " * **AdaBoostClassifier / AdaBoostRegressor**\n", " * **GradientBoostingClassifier / GradientBoostingRegressor**\n", "\n", "*In principle bagging and boosting are techniques that can be used with a variety of algorithms. In practice (expecially in the case of bagging) the preferred choice are trees (low-bias high-variance algorithm).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1 Decision Trees" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Decision Trees** are supervised learning algorithms used for classification and regression. They work by partitioning the feature space into a set of rectangles, and then fit a simple model (i.e. a constant value) in each one. The following algorithm is the one used by CART, one of the most popular decision tree algorithm.\n", "\n", "Suppose to have a regression problem with two variables $X_1$, $X_2$ and response variable $Y$ (A simple example of such space is visible in picture below). At the beginning the tree chooses a variable, let's say $X_1$, and split the region in two at a certain point $X_1 = t_1$, with values in $R_1$ for $X_1 \\leq t_1$ and values in $R_2$ for $X_1 > t_1$. The two region are further divided and each time the algorithm chooses a variable and a split point (for example $X_2$ and $t_2$), until a certain criterion is met and the algorithm terminate. The reponse value in each region is the average value of $Y$ in that region. For classification problems the class of a region is the majority of classes of $Y$ that fall in that region. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfoAAAGMCAYAAAFFaVADAAAACXBIWXMAABJ0AAASdAHeZh94AAAuxklEQVR42u3dCVxU9frH8d+ZGfZFwQ1FRQHFBRAUEXfFSiXNXBMzCcklNZdcyz2xLDXTDJdcQi+aS/1zQy3FDC1RUhBxue4L7gIiOzPz+zOopeW9WdcFZj7v1+vemTkz0pznOd/znNk1UkphyjTCxFGAv/sP/Pz8ZHx8vFIcV+af3De2AApAASgABaAAxdDy5ctDCy032QJYWlrmGk4VpUG+lL+am1wBgoODVxtOK4jDepPeB1yVBZbsBCkABXh+Bdh7R1RqZq+kSCn/66MsRXHTSnm6WBS0pUq5uVsvy/7PBZBp28s0c1tx+ONmFpv++k+dUVvUH3g07+DCOv/pFo6OjqlPc8UzMjLu3hMpbJ7IFqA4tL0lU9sWVjLqMf6Uq86w8kFBQdGFgh51i9TUVMen/XyA4fRNd3Hwv92Pp7IPuL/5P85/9GmbdlI2ZSdIASgABaAAJb0A/ktTxu8Pc55usgUwrLziPvKMPDXb1WQj8DRXnn0ABaAAFIAC/N1/UFxfGv+n9+2ZbQFKmTevy1tflTfpCDiG/PRtamSLLqZZgDtXbYxiH/CPj+jyt5l2Af6TC0ta9qr61u5VJlsAl34/Rcm3hGkWwEVRsg2vN3zhq2wdfEi2N7kCnJfS2nD6vFaeI0EKQAEoAAWgAKZeAFP+xIiGTZ+VZ+VZeVaelWflWXlW/hl5+YPFs6InDxj5V2+7NcqV11hY5pts572CXos5MS5kqEmufLiXxY5wKW3Z4bHyrPyzXXn/ecen7R9aa+Lj/rEBP2d3WdTE+lujWPmfh9aa/Lh/SFEUaZjLWYV/00YI7R+vf9qf8jB48IMUv2QLp8bW4uo/XvnCKx/7g4aGFe/0zfW3c5a+2en76Oh2/+2OPW2e4ycs7d1tfFRjX6urzyzzG7qWXyC6Ri943pvzkenhYezwWHlWnpVn5Yv7yj+rj8cW284rio1eyiyVya38s/pQNJln5Vl5Vp6VZ+VZ+Sfj3Jddg6v1+2a1Sa58cVtxNvvne/xuKaXMVUxy5ce45sUZTp/Xp7We68p/fFoGWCuKLkcIlYiUppf5bCnV7PBYeVaelWflWXlW/umsvKn/NgdbPmj+02D4WlB7e/s0Sv33ZGRkODzt77d5JsmPiYlxpJ1/PzTs9kHzQfNB80HzQfNB85+6CUl5Lxg+DinyDlvrLbxzVEJImm9iOm6o0HdTDzH/l/c6jN7YZvnZj14ot57mG7mi1Bfa1KPCfMNp4482z2xM8kHzQfNh5M2vryi3D0pZylJRdLlP8L13hs/tG06rN+4Wf+bndQ1pUTFsvqHx979g4f6y+ee0fkOqaeL/t7vkqrv/UbzJR/ICO+/o5FZj+Lblj/oCB1NSRVFyLkqddetXXomO3ri5g5UQuufWfEVx0BsafynyhR6VX1/6ndC45P/vjf9dQ0VJPyBlaeG5LSaL8XSPSv645WLgk2j8/9R8KdOKPh1cOWTH2ie5evdTX9T4e0w99QYXpbQqqo8u0YIDPtB80HzQfNB80PwnzfDwdtmyT8NWTOo7futF6WH5hB5y0fyS8ThbWFpa5qoLH3GZCaH3+ODo3G2leyVWH5qwjOYbvdL64ODg1V28/51oeFpTN9n7repSa0PyTcD9J6As6k4+ajg9VYIbT/M54APNB80HzX9iXF1djz6LT5z+E/Xq1fs5MTGxCc1/StauXVuXjLHbfwYyVIpSSve0f1aN5hdL9nrhGHLDcO55fZMjzX+O5K2vyhtOaTxH+/9R1v5RDaz9Zx0snA9SUQfkSt0+S5pvImz8Z/0qsn+1VepvPGRo/PX1r3SotWlUX1PaY5j04/wOm5xD5fGJNddc1dd+rdvGzWLTT31JvonY/JrT54bT15zEMVM8TuAZPg74QPNB80HzQfNB82F8zefHFkg9aDxoPGg8aPxjCwwMTH2WK7Rr1y6H1q1bl/jf73nav6fz1Bv/rH9Hx/BNYMbw2z1P+53N7OrZ1YPGg8aDxoPGg8aDxoPGg8aDxoPGg8aDxhdfAYqSNmDZsndvnox1+8p8uF3yFO9hNN5EhIaGLi/8fzHG8GtdUySNNxWrV68OvnVqt+srq1KGjg8OXjp99cq3DG9UpvFGzvDFyG0sel3dmbfQSQSvFuUUJe+GlBY03gTszJNOndZfH7Sru+tnGVKas6s3cvukdLh/fkO38hFCZkYw40HjQeNB40HjQeNB41FSGt/tuxv917/q+OW/Lou6vSupjzyJO6O/GllJXfHNFMP5mwXSuoxG5NCiYtZ4m37lR6g7i0U6KZWTa959ZWTyC803fhA0+n+9Q/e/o76momT+W0pbWnRXbJao2NxGXHnujY+8fNJnRa0lRV8VWrXr7K0L7vgXNinoia1orhBqw6nhQ5D8YMFd5Q2vDQhh/iTq8Y8br5jXyT39ef1Qw3kLjVLwXfPYs4OfwMoZGm04zZOyqPGDnMThv/s3HB0dU0t6k11dXf+07LqUFttfKzX/uSU+//gnHjqZr1IZvhfevFW2qPnCBXlkQq0ncYfub80d110bvKl7hS/+yd9ITU01zo9J55+xfHHN7XeeW+PNa4058Vuj8n+0fhorntDDaZbQXV/07VXhUf5AdtvJDa23m/JuvoWtclnl0vRK2zr2CdHR0UHPpfFPi8op5PL98xeltDKcXpHSUkA86eMcHsfzcA40HjQeNB40HjQeNB40HjQeNB40vqQxvDsocqu+rdRma8L6D1lc0t8jQOP/hrsfkxbi9EdD+pJ4E2L4mLTQ56o/PGvXKPz61xWU8j2vfX5O2/CdapoDNN6IGT4mrUuJrPyazFAX7uelPm234zvVWh4g8SZA7RxySVFs9VJmqvIcWt62Yldv3B58k4ih6YbTwqbrmPGg8aDxoPGg8aDxoPGg8aDxoPEoQY1/2j+O+0eenp7P/L/5NPj4+Owp0Y1/mj+FDXb1MOnGy1tqoZTR0VYTa7yiKqsVooxeyptqWmtCjc+OH1HfqsGnh7Kz4kpb2zRKp70mNuOtFaGltSa1qzfT01ITbLyl78eJdyPfKJPW8nAONP6BsaBU0El5TX3165c7OfXcsoHGmwjtpdlVCx/wKxUHlVoqewoabyrUzr1THvye3DYfRMzZOWnQCBpvAhp+djQ89o50bm6npOwc1WAiiTcBL1kpl/fnyEpmiqIvkFLFrt5EVN6SPtJwWiC16tknCxqPqhnwc+HIF1LqFRpvxJYFllp9b9rLkTXUv4w0se/E53E8j+NB40HjQeNB40HjQeNB40HjQeNB40HjQeNB4/F0Gy+lpAoAe3sAhB4AoQdA6J+5gQMHxsTHx7emlXhW+vXr98GAAQMmE/rnxBB4Y/9OxQc/5Ivny/Alql9++eUkQg+A0AMg9AAIPQBCD4DQAyD0AAg9AEIPgNADhB4AoQdA6AEQeuDRAhQlLU6I0r9vZaW1oxdvH/pJqP8CqkPoYaTGH859MdzLYsf9y/nJU+soSseiX/+mOoQeJkCXk2EhhH3Rt7AeDvcd6rfMdoy/3Jd9seOPv5yf1zSEChF6lHDTvS1/mP7A5YgfL7WXcnbR9uY94dC8/Any80NfD+/SISa3O9Ui9DCyw/uC0/PczN09Tg6QmWqVEPe+c12Rvj3nflMQbB0lFmdTMEIPY2LmNvR0VtzZhmrFTqeTd9SHJnqN9Fts/l5zu+Qb4vV126gQoUcJt09Khz8us/af86uUc1SG8w2mJc2S08QsKkXoARB6AIQeAKEHQOgBEHoAzzz0WftHNbBttHK/Xl7TKPfepHH165c7VXz91hqp22dJOwAjC72N/6xftZd8qqoUS71W5qpSlrQMdhnjPE/qthTLwOuvRlZSVxx+admyT8MMl6U2W7PygyFjf7wk3HKk1BTeaR2bEB60PlATVWGTdlRzG3GF0N+jdu6dIrNq2ymKohcek07J1Klli67IP2aluMw6I68srRjurcQ0+1m+0cpWpDz/EjnqQ0NDl9+/1Lff4C/Huyq/tFiaMm5/mPN0NnPcFx1kvrT7Ll0vYav0Co3N7LGsmc06Qn/PWC+/HQ0/Oxp+YHidCbF3pjg3t1NShHntHEPgDdd/e0TUH20rrhaPEqWrVq9eHXx39Oeql47rO3nnJTs3bZhzEyG0yuuLTr5bekqdPp9ckQ1sChc8rXth+OVaYlU8NGjQ4JHLg6LzwyorSq9VmdK1WdbXeo8PvOeemFRn2Nl5Pn03vxKf9E41zQGTDP1LVspl86+ufLT/NafPxbCCSWaKSvevK7q6rzmpjh2a6jNins+22wf1snTxaXFpfXBw8GrDOV1KZOVel6xX6GTGvQ+OaETUgNqzB08RfZ72veCnqosHw09VP9ZOunzPaycmiWH6tN2OrvPaTJBDNa4mOeldFCW7zc70sGWBpVbf+8/LAqlVWytq7bkNo/qNm5L4qRAVxVdCLO2w9XbYpnb2y4pTw9XOIZdyj5zzVCu2Ot1DnxgD7m0jhdtEar6wEoWHfe6KJitJau3lqZauxek+PtPQn5fS+hFlktlSFn2bylg5s1iFXOUUclnKkIdqZFF38lEpJ6seXPbFFVmPzR0G5x7Yxk9JrQ2P6QEQegCEHgChB0DoARB6AIQeAKEHCD0AQg+A0AMg9MCj3P3ykTcf+i6E6o27xR/4aV2LMhqRQ4UIPYySq07K0w9tXzUVJbP13qw+i5pYf0t9CD1MQK4Qaid7dXrhsYBSXlHn1u34csyPm7a0y5ZSY8VXjxF6lHRn1A9+24+574Bjd6S0MS9MvOHydSktDKfbXys1PyFblGtsXVy+KYnQA0/k8L6hoqR3XTf17U3dK3xRtCD/jKVi1fm2Tnfbki8jIfQwQgekLF1FUXI6rb+mX+8T9b1lm29i27d13tkhKGhLi+nfzBrnaxVDlQg9SqhHfeOQwUUpre6eGyF050ZUolKEHgChB0DoARB6AIQeAKEHQOgBQg+A0AMg9AAI/XMTHx9v9D/hzM9Us70RegCEHgChL/mH9Te+rqCqtS1J3vqqPNUAoTcBuRf2//7xU5mpclDZ5Sl9dm9KjWzRheqA0Bs7xVaflrXPwfHtvBUUA4QeAKE3BlaeoSdEqnc5RYmUm0Z1nhiReLll2iFdg6Cgaluio9e9TIVA6I2NhVf2g6/RdxAinKKA0AMg9Pjv6ivKbdf/uz56/avlFguhUywVjXZJirZe70rqI1SH0MMIHZSyVEg55Zj/hWNVfh1We8JPGdK5qZ24fP/6M1G9u/h93783Lw0SehiRyMsnfRTzGrnCdezZBwOvy8szd+38zvfi+7zeVInQw0jItO1lVI4dbxZIqb4wP6CP4vj6TZkaVdZwndrCIl9kC3OqROhhJPKPf+JhUfujYzqZrzL8nJTrkH1fXbR7IVsxb5Ut83+0pkKEHkbGvNaYE1KOUT24rHLIjrUyRKz9bYF1o8zUSMHjeUIPgNADIPQACD0AQg+A0AMg9AAIPQBCD4DQAyD0AAg9QOgBEHoAhB4AoQdQckIvpaQKAJMeAKEHQOgBEHoAhB4AoQdA6AEQegCE/mGffvrpnFWrVg2njXhWGjZsGLNgwYI2hP45uR94e3v7NGPdyHbt2uVgOG3dunUakXv+Dhw4EMikLwZiYmIcjXUjUxRFGvs6liR+fn6S0AMg9AAIPQBCD4DQAyD0AAg9AEIPgNADIPQACD1A6AEQegCEHgChB0DoARB6AIQeAKEHQOgBEHoAhB4AoQdA6AFCD4DQAyD0AAg98DD91chK6opvpjy4rHrjbvEHflrXooxG5FAhQg+jVFouW/ZpmOGc1GZrVn4wZGxZMyU7R0qNpRA66kPoYXQc9aGhocvvX+rbb/CXNRUlc9jP2Z0WNbH+lvoQepiA7tVF0g/H0mqLJtYUg9DDFKw8K3xCG5UdL0SOolKs9R27dvxu4zebXs2Q0sxOCC0VIvQo0dJVq1evDi46q89VLx3Xd/JFYWcxydNil+7a1vKT9t0JmtLIduvZeT59oy7ovAdWVR+kZoQeJVqq0qtXr1X3L5n7DjiWd3GhRi2EFBXaX5tSQWzVZl627TIycfaud9QVqBehR4nnqpPydNG2pUuJrKypPOiCRiyUv1+fpWod2CYmwaqx2k4RBdSL0MOIqJ1DLvmJNzM6rbs2aFP3Cl/cXWqjj91/zD9rz1sBXaJv990QVGoplSL0MCJ7jkxpYunpdkQvMyOyd77WPCR/kds37UsvV9Rm+pwCvTkVIvQwMhZ1Jx+tLKbkdf7m+sANXZct+lax3d22U4eu32/Y/PJ13QIrKkToUYKpnEIuSxnyp+3qopS/hVtKqVApQg+A0AMg9AAIPQBCD4DQAyD0AKEHQOgBEHoAhB4AoQdA6AEQegBGHvrqipIduDO979LAUl/fXaJTbBRNwYxT+U3ecTPbTzsAIwv9iRMz61l4VD3xpby9RiWETFnRrlu2Vdvs4hr4AEVJixOi9O/VKq0dvXj70E9C/Rew6YDQPwbzmqNOtrUafaVt5KWRP4Q4za4esmPNlpt69+JcoKCpi2Z3q2KWbDh/82Ss25i+jSK2nE+slTzFexibDx4ib6mVsiOvyFtflSf0D9iast1L5Vj11onMRrcKnAdfDiqjnLlbsBzVi+7ljuxMc3G+eC3Z2dlMZBaHAvl2DtkW6mWx4+6lUDHsdZdVFp4vJokp1wg9Hs78zR/KMukfQXF4KXWsq4yrNWTfssScX34r0vS61jHvxuk6/GBz5JpSoc85mbqiXHEsmLl753NCTFHpC1fF8BCFTR13ZahU5YOvFm3jymadlDfVhP4BTo5KqjgjRYEUqvvLxifnBxbGqDBLnopISypVXAuWkxTpIYS7rijwMlPloLLLU/rs3pQa2aILG74ps9dnx4+ob/1S6nbD4f31jb3bVnjj0PompY9fu/VG/Pbj4b6DTTf02fG2I+JF++TZ9QfWdXs7QV5e4Hz3EMBMbzjJOzrTw2PSioXFpUBJ0WsCVx8xKzrquHVqt+s7kxaFv7IqZajh8rklIa+lZO4rV3lQ3rKnfoSkKBxVFAMeHh6Pdbue3aJW5OXLUuZCKxXFL0+EJ5hu6PtUbRjfasmF9+qEVVysGmm2MDo1onqQo3K26DFRVoKdZcMf9sussfbFpUAbx4W8t/GByxE/Xmr/dstK2wznq/X7ZrXIjrN9FvfDwcEhjcg9f4U7X4fHuV1Mvrz7c10yUy3KB9wy2cN7XcqKyitvWdfUhlX52FCOs4ubv+5S9ZUEmbmplOGnjtS2HdK08pJZcSrQ+MO5L4bfeyKvjYVyNfqaxv3t53A/UlNTHYnc8+fn5/e3jrhG1XaI3XNS72eyoW9QOSS5x6abb6nvPQFWtd+u1Rb9NSuXXND66nuVnpiUW1BeXYyfHNt2dG5Tc3e3k/oemV/wJB7+yrJOjl+ZL0mb0dReSTHJ0GftG+GXKMrZHupQZvnvS9Xy7Kr2XSu5NIpzEVrteUvl3mGQhZAyt9j9IIKZ29DTHmJYduf119/e0K18BJs1Hjr0V5npxZ2rNkXb+/7RDSICfrwe36z0xuJ2P59Z6G0C5sRLOedPL2NUDI7+TgaLEvN7Zgfjhre0aeR2QC/vLPh+dJf35yVebpV2SNcgKKjalujodS+z6Zsuyzq9T4qCT6wNT7p6CXGnUvvkvUGxIloopfTRW1Z3MMnD+5Jmn5R/etLG2n/Or4U7r6KXGtvN/HZ6OyGmUyncPUD1yi4JP9lF6AETQ+gBQg+A0AMg9AAIPQBCD4DQAyD0AAg9AEIPgNADIPQACD0AQg8QegCEHgChB0DoARB6AIQeAKEHQOgBEHqUQAGKkhYnROnft7LS2tGLtw/9JNR/AdUh9DBSQVMXze5WxSzZcP7myVi3MX0bRWw5n1greYr3MKpD6GGEfDuHbAu992u/QoSKYa+7rLLwfDFJTLlG6Ak9TIG5e+dzQkxR6Q2/88gv/hJ6GL+cpEgPIdx1hsBf39i7bYU3Dq1vUvr4tVtvxG8/Hu47mAoRepRwSdFrAlcfMStnOH/r1G7XdyYtCn9lVcpQw+We3aJW5OXLUuZCKxXFL0+EJxB6Qo+SbuO4kPce/GH2iB8vtX+7ZaVthvMx+bJC0UKZqRblA25RLUIPIzD+cO6L4feeyGtjoVyNvqZxf/sPtxlV2yF2z0m9H9Ui9DAy247ObWru7nZS3yPzi/tP4i3r5PiV+ZK0GU3tlRQqROhhZMzchp72EMOyO6+//vaGbuUjsvaPbhAR8OP1+GalN1IdQg8jdTBueEubRm4H9PLOgiaNZu2q2D55b1CsiBZKKX30ltUdqBChRwm2T0qHPy6z9p/zq5RzVIbziVLaUyVCD4DQAyD0AAg9AEIPgNADIPQAoQdA6AEQegCEHgChB0DoARB6AIQeAKEHQOgBEHoAhB4AoQdA6AFCX3J4eXntS0pKCvDz8zPaX0H19PQsOjXmdSxJ3N3dkwj9c7R8+fLGbIYAh/cACD0AQg8QegCEHs/V+kBNVIVN2lHNbcQVqgFCbwI+/1HXNlyIUVQChN4ERAeZL/1JijItbJXLobGZPZY1s1lHVUDojVhQdH5YZUXptSpTuhoO7xM+a9fPd8T2xZlSmtkIoaVCIPRGTavMtJpjP8ipzmFqAUJvGm2SUQNqzx48RfShFiD0AAg9AEJfIqmFkKn5wkrYUAsQepPwhrs49Kqjctpz1v6ZVXZO9jx0VXicDAra3HTq+jmTG1pvp0Ig9EZm2knZdNr9CyOjKQgIPQBCD4DQAyD0Jqy6omQH7kzvuzSw1Nd3l+gUG0VTMONUfpN33Mz2UyFCDyNz4sTMehYeVU98KW+vUQkhU1a065Zt1TabwBN6GCnzmqNOtrUafaVt5KWRP4Q4za4esmPNlpt6dypD6GHEtqZs91I5Vr11IrPRrQLnwZeDyihnfr82T6mqWGYfk9KOT/MRehgJxeGl1LGuMq7WkH3LEnN+Kfv7NXrFTimb/2oFcZIqEXoYGSdHJVWckaJACtXvS1UyXd4xH1pRSaBChB7GJDvedkS8aJ88u/7Aum5vJ8jLC5zvX2V4vz8FIvQwMn2qNoxvteTCe3XCKi5WjTRbGJ0aUT3IUTlLZQg9jJAuZUXllbesa2rDqnxceFGeXdz8dZeqryTIzE2lqA6hhxFqUDkkucemm2/dP4yv2m/Xaov+mpVLLmh936qqOUSFCD2MSNa+EX6JopztoQ5llv++VC3PrmrftZJLo7i3Cr61Vcyq5RmWRihKQeCG9EE7Xym1gMoRepRQNgFz4qWco/7j8orB0d/JYGFuOC+lVKgUoQdA6AEQegCEHgChB0DoARB6AIQeAKEHQOgBEHoAhB4g9AAIPQBCD4DQAyD0AAg9AEIPgNADIPQACD0AQg+A0AMg9AAIPUDoARB6AIQeAKEHQOgBEHoAxSD0UkqqAAAAR/cAAIBBDwAAGPQAAIBBDwAAGPQAAIBBDwAAgx4AADDoAQAAgx7/2bBhw7bcunXL6fjx4/WpRsmVkJDw23kfHx8KAjygbt26+8uUKXPt008/fYVqMOhNzt69e4Pun4+Pj1eoSMmkKIqkj8Cf+fn5yeTkZH8qwaAHAAAMegAAwKAHAAAMegAAGPQAAIBBDwAAGPQAAIBBDwAAGPQAAIBBDwAAgx4AADDoAQAAgx4AADDoAQAAgx4AADDoAQAAgx4AAAY9AABg0AMAAAY9AABg0AMAAAY9AABg0AMAAAY9AAAMegAAwKAHAAAMegAAwKAHAAAMegBGTn81slKTim8mxwlR+nFuX6bjwp171w7o7mEp0qgewKAHUGK46sYfPtou3Mtix6OuldlHbD/v4B85bNPALrWcdp3afv5r35dKiQvUDQx6ADACirVn5tDNO948Uq1prS9vrKnzQfTn3V4MLjdHKTwGoDpg0AOAMdAXKDkFwsywa7O21uT8NuR1NzWxnw3r9+6sdePirxZUVRxqZ7QfMH3ZF1M6T65mITIoHBj0AFDMycyDdh8FvrD2X+mihqg28vwnbR3WFV1xe7tDjyrtft0csCQl+XyUV3XzwsGed8JqTos666vP73x+W8r6em3teYofDHoAeM7OqKd7W/4w/S92aT6jdy7cMSNweBmVyCtaVKpt2toM6frQzSxcclu3qhIrErNb5OnYD4JBDwDFwKPejJerJLxXd4zvjDMzhPv7Zw4lTW/kYyluPvrfp6v+r5XDv7rsFsFCOOlfmrB47rnbHZ1deOoeDHoAKK4spc9HiTNj02vYN1/44fu+Xqq4hKRp/vUsxa0/37a0vvOPspcUopcubZ/jjPYtoqrN63Ru4+k1/h3Lqk5RSzDoAaBYstU3i0ieFJ3uZh/0dfgQH28Rl3h4WiPve8Nee+PXst/vvtLc+YWgX+qVVl01LFM7BKSOWfnh0NU1Rx+ctvFqj5f7VvpIxbvzwaAHgGJKcdS1jzo2YvVtV/vgreF96tVT9iUmfhBgGPYq/SnN3N49v9jpPeP6wR/HvOBtrdwU2kvm34wNH5ss6ll82qJcDEMeDHoAKO5UTtqeG4/1y2jlZjdg77TOd4f91ADvCq9d3Z4V6PLTnOH9wtwsfjV8vE7Y18h8qd/iyJPZ3Su4Wyl8gx4Y9ADw/OZ3yOV9MsTh8fZoLvn992i79P/jcnW5ghajoiIOFP6PioJBDwAAGPQAAIBBDwAAGPQAAIBBDwAAGPQAAIBBDwAAgx4AADDoAQAAgx4AADDoAQAAgx4AADDoAQBg0BsV7VnziJY11g7+WddJ03zRgVMx/QNdNCLzkbfNTbSe6O3zffhJ0dSx15aNJ/8V1MNREXlsGgAABn2xXavq+YNiL3er0NV9QbfvBrxVrWH6vuNxY5p5mIv0h26X/avtGE+/nTPPCn/nIXtWHv+8aV/bwsMENgsAAIO+uFOV13b99tLA3YNqXW+5cOz7teqm/3rw8IcBvlbiRtH1WfvshtdqvHvuJeHrMSlxfsJU7+GWQujYJB6P/mpkpSYV30yOE6L049y+TMeFO/euHdDdw1KkUT0Af61AubRlbuvFR9wbhr37aoSLmbhDTRj0f6bY61osODshqaLvda/JH31W3/12Quzx+Q2biT1Zb3u0+GnhFcXb/7OT0/YMc5tiVji72Bz+CVfd+MNH24V7Wex41LUy+4jt5x38I4dtGtilltOuU9vPf+37UilxgboB+K9yk6w/e3v0J7OzQqq+OOTVFQx6Bv1/YSE9Jx2ed86pzc0aAyJWNq8Qc6qO6nj20SzLMi+tPPVudG/nz9SF8+iBx6rK9Y19XvLsFLXxhn2d/FYtq+/JT9xa4+cLejeP8QcjDoX7DrXikf/jH2tZe2YO3bzjzSPVmtb68saaOh9Ef97txeByc5SHag4A92WoooPKfvny1oK+dy9Hiha2kZeFKKMPjT3fc1kzm3XUiEH/qNWULv1jVp1RNZVV+sVFHRXCyntO8odbejvPVf9h4Mjra8v37Ba1wmFq8sJLk+qMMC96pK9Vzs7zC3UdFrpwyVvxX71TTXOATedv0BcoOQXCzLC5WVtrch4e8nnKmaiwzq16R0Vl9tm99WJkix42vE8CMGH2+vabc/plHBi5sE7A3J8uOfbJjDmztH5zG+WKSqPWCZmjOrl2fIdB7y+eseNMVm3FoU5GhyEzFy+YGDTV2ew/vOmaQW8Sk0a5saFnW89+cZHCqmZODfnv/MMjar/fttSp29+HVpn54LBXyve8FpPfs8JD/1xmqv6992x9UT74ll95zUU2m8cnMw/afRT4wtp/pYsaotrI85+0dVj32zMn61992a37rv/zn/rx/JYVos5uoVwADPthlVqv0ajuHfArUqPRaDWawgcA+cespvvU2Tohra9HdFJG0x/Kqs6InMM24Y3qbao8/42zuy6s8GllK1KooMkNeq1yblHg6zUGxq7QOg24uvvEAv/mMiYrrMYLe5f3dfm4ccZJu73D3Cb/p9fo9Wm7Hcc0brV5tvZdpz0nZ/k1thZX2WwedEY93dvyh+l/sZn5jN65cMeMwOFlVPc/uqiSZTqu+z5dWpirs+NsBi8QgUaxg1IUXpIAHuDh4SFsbW2fzB8zr50zPjk/cJROo7bQKAVFy6w8s0OH+i2Z2C/pqyM3tRVb2WoY9KY16HOVpCm+w72nHv9UuIy8sP/orIYNrcV1IdqIpad3Nzav2TJ20XD3CfVuJ9kdmuQ50uLB197zz1gu6+63MGxzleD3dqd11zUrvUnF68qP8Kg34+UqCe/VHeM748wM4f7+mUNJ0xv5WIqbf/yXaguLfKN7BkNKhW0CuMvPz+/J7zMVM72F5vcHZnlHZ3p07B8f4THp8MJ+1TSHqLopDXqZod490CO81eKr44TH5FOHE6YEeFmKW79tK3Ytbi889XNTi1pNds+b7DXMI2O/beFxwEBrIbRZ+0c3qNdozk+lPzz4RfYGb2vefPd3WUqfjxJnxqbXsG++8MP3fb1UcQlJ0/zrPVB/APifdvFZCXYz2wVEjT3YrNX8YzltB3tY/kJVTGnQ669p1nV2X9RjY2Zf4TvzyIm4Uc1qmonbf7qdTeM7c08caGFet2HMrNn+YdVvx9glj02Y3KbRrF1nXZrefjF2nFfXWLHp9yPJUvoW4cs+HedrFcOm81ds9c0ikidFp7vZB30dPsTHW8QlHp7WyJthD+BvTXRpeD3sgWfKslSHpjYd1mDKzZkh353rr+3k1EnNs60mOOhVFbTdN9wJK+x82F/e1tovc+ZZ6T/ztwWtRaIcYc+m8QQojrr2UcdGrL7tah+8NbxPvXrKvsTEDwIY9gD+ilkZ17SyQuRfSltTdtzHncZ92Mpqg7aCS/rpAfUmDEyfXPtI7oTydS1EKpUy1UGPYnTQ5aTtufFYv4xWbnYD9k7rfHfYTw3w1py/80XDahuGJIh2v912RUtv2xWiwHDwHrghbdDOV0otoICAiQ6naoPO7/r5dpuePSZHbZ/W9Z3A+V59+kxs8fmPe7VthZho5Wk58Q8PGCxEh63Xwza1s19G9Rj0eCLzO+TyPhni8HhbmUt+/z3aLv0fWugiBh+S7QdTSgCP3svI0o3Hx2+7ON7jocUj5k+kNgx6AADAoAcAgEEPAAAY9AAAgEEPAAAY9AAAgEEPAAAY9AAAMOgBAACDHgAAMOgBAACDHgAAMOgBAACDHgAAMOgBAGDQAwAABj0AAGDQAwAABj0AAGDQAwAABj0AAGDQAwDAoAcAAAx6AHga9FcjKzWp+GZynBClH+f2ZTou3Ll37YDuHpYijeqBQQ8AJYarbvzho+3CvSx2POpamX3E9vMO/pHDNg3sUstp16nt57/2famUuEDdwKAHACOgWHtmDt28480j1ZrW+vLGmjofRH/e7cXgcnOUwmMAqgMGPQAYA32BklMgzAy7N2trTc5vQ17mqE6uHd9h0PuLZ+w4k1VbcaiT0WHIzMULJgZNdTYTmRQODHoAKOZk5kG7jwJfWPuvdFFDVBt5/pO2DuuKrsg/ZjXdp87WCWl9PaKTMpr+UFZ1RuQctglvVG9T5flvnN11YYVPK1uRQgXBoAeA5+qMerq35Q/T/2K35jN658IdMwKHl1GJvKJF5rVzxifnB47SadQWGqWgaJmVZ3boUL8lE/slfXXkprZiK1sNgx4MegB4vh71ZrxcJeG9umN8Z5yZIdzfP3MoaXojH0tx80//VDHTW2iE/v7FvKMzPTr2j4/wmHR4Yb9qmkPUFgx6ACiWLKXPR4kzY9Nr2Ddf+OH7vl6quISkaf71LMWtR91aZiXYzWwXEDX2YLNW84/ltB3sYfkLNQSDHgCKNVt9s4jkSdHpbvZBX4cP8fEWcYmHpzXyfmjYZ6kOTW06rMGUmzNDvjvXX9vJqZOad+ODQQ8AJYTiqGsfdWzE6tuu9sFbw/vUq6fsS0z8IKBo2GvPmy9u5f71gPTJdY7kTihf10KkUjAw6AGgpFE5aXtuPNYvo5Wb3YC90zrfHfZTA2oej3D+cK+2nRATrTwtJ/7hKX0L0WHr9bBN7eyXUUAw6AHguczvkMv7ZIjD4+3VXPL779F26f/gMp+Pb52TH1tTSTDoAQAAgx4AADDoAQAAgx4AADDoAQAAgx4AADDoAQBg0AMAAAY9AABg0AMAAAY9AABg0AMAAAY9AAAMegAAwKAHAAAMegAAwKAHAAAMegAAwKAHAAAMegAAGPR4Dvz8/CRVoI9PW7169X5OTExsQqcABj2egTfeeGPW6dOn6x45ciSAapRcrVu3LjH31cLCItve3j6NruFZ8fLy2ufp6bmPSjDoTdKwYcNGUwUAAIMeAAAw6AEAAIMeAAAGPYD/pkC5tGVu68VH3BuGvftqhIuZuENNADDoAWORm2T92dujP5mdFVL1xSGvrmDQA2DQA0YhQxUdVPbLl7cW9L17OVK0sI28LEQZfWjs+Z7Lmtmso0YAGPRAiWWvb785p1/GgZEL6wTM/emSY5/MmDNL6ze3Ua6oNGrd3dvkKWeiwjq36h0Vldln99aLkS162AihpXYAGPRACaCo1HqNRnVvcCtSo9FoNRrDINcr19e/2sGt+67/85/68fyWFaLObqFcABj0gLFQyTId132fLi3M1dlxNoMXiEBqAoBBDxgRtYVFPlUAwKAHAAAMeqDYk1KRQigUAgCDHjAiZmVc08oKkX8pbU3ZcR93GvdhK6sN2krNbgTWsktSFY5/KgSAQQ+U5OBUG3R+18+32/TsMTlq+7Su7wTO9+oT+uWyMceCG348NEG0++2GK1p6264QBYYH/YEb0gbtfKXUAqoHgEEPFHsqWbrx+PhtF8d7PLS4q1z8DsUBwKAHAAAMegAAwKAH8Ajas+YRLWusHfyzrpOm+aIDp2L6B7poROYjb5ubaD3R2+f78JOiqWOvLRtP/iuoh6Mi8igiwKAHUGzTXT1/UOzlbhW6ui/o9t2At6o1TN93PG5MMw9zkf7Q7bJ/tR3j6bdz5lnh7zxkz8rjnzfta8t38wMMegAlgKq8tuu3lwbuHlTresuFY9+vVTf914OHPwzwtRI3iq7P2mc3vFbj3XMvCV+PSYnzE6Z6D7cUQkfhAAY9gJJCsde1WHB2QlJF3+tekz/6rL777YTY4/MbNhN7st72aPHTwiuKt/9nJ6ftGeY2xUwIPQUDGPQAShwL6Tnp8LxzTm1u1hgQsbJ5hZhTdVTHs49mWZZ5aeWpd6N7O3+mftQX/chMVcLcbmGtR2yPSC/cXzj02f1//OwuwKAHUDzjLl36x6w6o2oqq/SLizoqhJX3nOQPt/R2nvvIIS+0yrklIa/NtJpjn5KZUW60e8Du1RQRYNADKK70yo0NPdt69ouLFFY1c2rIf+cfHlH7/balTt3+PrTKzD8Pe42s1u+b1VGGs9lxttQPYNADKLYKH50vCny9xsDYFVqnAVd3n1jg31zGZIXVeGHv8r4uHzfOOGm3d5jbZF6jBxj0AEqcXCVpiu9w76nHPxUuIy/sPzqrYUNrcV2INmLp6d2NzWu2jF003H1CvdtJdocmeY604F33AIMeQAkhM9S7B3qEt1p8dZzwmHzqcMKUAC9Lcev+1Ypdi9sLT/3c1KJWk93zJnsN88jYb1t4HDDQmjfbAQx6AMWc/ppmXWf3RT02ZvYVvjOPnIgb1aymmbj9p9vZNL4z98SBFuZ1G8bMmu0fVv12jN2/F7d+o5S8od82dsDYecm5TYU21ezQVeGRFj2ySuegcps1wkbXaGrkvMkNrbdTaIBBD+B5UFXQdt9wJ0wKEfaXt7X2y5x5VvrPfHCZUk60m/nt9HZUEmDQAwAABj0AAGDQAwAABj0AAGDQAwDAoAcAAAx6AADAoAcAAAx6AADAoAcAAAx6AADAoAcAgEEPAAAY9AAAgEEPAAAY9AAAgEEPAAAY9AAAgEEPAACDHgAAMOgBAACDHgAAMOgBAACDHgAAMOgBAGDQAwAABj0AAGDQAwAABj0AAGDQAwAABj0AAGDQAwDAoAcAACXd/wO81YUHsoVfuAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(\"images/tree.png\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the case of regression the best combination of variable and split point is determined with a greedy strategy. For each variable the algorithm chooses the best splitting point (the one that minimize the residual sum of square in the two region) and among all the best pairs $<$*variable*, *split point*$>$.\n", "\n", "For classification problems the criterion for choosing the splitting point is usually the **Gini index**. Gini index (or **Gini impurity**) is a measure of how often a randomly chosen element from the set would be incorrectly labeled if it were randomly labeled according to the distribution of labels in the subset. Gini impurity can be computed by summing the probability of each item being chosen times the probability of a mistake in categorizing that item. The formula for the gini impurity measure is: $\\sum_{k=1}^K p_{mk}(1-p_{mk})$, where $m$ is the terminal node and $K$ is the number of classes. It reaches its minimum (zero) when all cases in the node fall into a single target category. Gini impurity reaches its maximum value when all classes in the table have equal probability.\n", "\n", "To illustrate the structure of a decision tree, we provide an example with the sklearn tree class. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**NOTE:** please install graphviz before running this cell, otherwise a default tree image will be displayed. For windows users:\n", "- go to [graphviz.org](http://www.graphviz.org) and install the software for your version\n", "- close this notebook and jupyter. From the same Anaconda prompt type: PATH=%PATH%;C:\\Program Files (x86)\\Graphviz2.38\\bin and then relaunch jupyter notebook (**NOTE:** this solution is not permanent. If you want to make it permanent, go to Environment Variables (Control Panel\\All Control Panel Items\\System\\Advanced system settings, click Environment Variables button; under System variables find the variable path; click Edit... and then add C:\\Program Files (x86)\\Graphviz[version]\\bin to the end in the Variable value: field.\n", "- to confirm you can use dot command in the Command Line (Windows Command Processor), type dot -V which should return the software version." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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fBMXFxfOnj3LDz/8YN79vSB1smXv0l4aa+1FREQKy2Tc+St1ERGRSqRv374ArFq1ysKR5M4wDCIjI7l48SKTJk0Cbk9zT0xMZMeOHfj4+OT7GDQp38r651NERIrVao2ci4iIlFGzZ89mypQp5jXUcPv55I0aNaJTp07mx6WJiIhI+ac15yIiImVU9lruTz75JEeC/uOPPzJ58mSWL19uqdBERESkmCk5FxERKaO++OILRo4cyZIlS3B2duaZZ57B09OTf/7znyxfvlwbm4mIiFQgmtYuIiJSRjk5OREcHExwcLClQxEREZESppFzEREREREREQtTci4iIiIiIiJiYUrORURE5B5//PEHq1atIiAgwNKhFDvDMIiLi7N0GCIiIjkoORcREZEcjh8/jp+fH/369WPZsmWWDidfCQkJRERE0LdvXzp06JBrneDgYEwmk/mwsrJi0aJF5vOGYbBkyRI8PT3x9fXF29ublStXltYtiIiIANoQTkRERO7i7u7OvHnzWLx4saVDua+GDRvy4osv4uXlhaur6z3n09PTiYqK4oMPPjCX2djYMGTIEPNrf39/IiIi+Omnn3BwcCA5OZm2bdty8eJFxowZUyr3ISIiouRcRERE7mFra2vpEArMxcUlz3NRUVEMGjSIESNG5Ho+Pj4ef39//Pz8cHBwAMDBwYFhw4YxdepUBg0ahJOTU4nELSIicidNaxcREZEKKSsri9mzZzN58mS6du3KjBkzOHPmTI46K1asICMjgy5duuQo79y5M6mpqYSHh5dmyCIiUokpORcREbGQgwcP0q5dO4YNG8aECROwtrbm6tWrAMTFxdGnTx8mTZrE4MGDefbZZ/n5558BuH79OsuXL+eNN97gmWeeITY2lrZt29K4cWP27NnDyZMneeWVV6hTpw5ubm788MMPwO211bGxsYwfP54mTZrw+++/8/rrr+Po6EibNm34+9//nm+8N27cYPbs2Xh5efHUU0/x4osvcuTIkQLdz92SkpI4ceJEvkd8fHyR3t+UlBS6d+9Ou3btiI2Nxd/fHzc3N/z8/Mx19uzZA4Czs3OOto0aNQLg8OHDRYpBRESkwAwREZFKytPT0/D09LTY9Vu2bGk4ODgYmZmZhmEYRp8+fYw//vjDMAzDaNGihdGsWTPDMAzj1q1bhr29veHh4WEYhmFkZmYap06dMgDD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bRk2bBg9e/YslbXyIiKVicm481e5IiJSbqxatYp+/fqh/8ZvM5lMuLq6cuLECUuHkqulS5dy7dq1PKcCx8fH06JFC/z8/JgyZYq5PCAggMDAwP/H3r3H5Xz//wN/XBVCq5UYDTkXZsY2p9gBMVbYVnLKWPXxayPHkGIfSuQwJscWPihWNnycZsuYjTXswAyVUTlkoiQpna7n74++XR+XDjq/r+pxv92u227X6/1+vV7P97Xrta7n3q/X643r16+jUaNGVRLryJEjAeR9x6pj+xVNRLB161bcvXsXc+bMAZA3zT0hIQHHjx/HrFmzkJiYqHCUVBIqlQphYWGa7yARwkBN7QAAIABJREFUkQ7ZzWntRERElUytViMgIABz586Fra0tFixYUOC50qGhocjJycGAAQO0yvv374/09HQEBwdXZcj0hICAALi4uGjdYdbX10eLFi3Qt29fzePSiIiIyoPJORERlcjZs2fRs2dPuLm5wdPTE/r6+pq1qzExMXBwcMCcOXPg7OyMfv364c8//wQAPHr0CCEhIRg9ejT69OmDyMhIdOvWDZaWljh58iSio6MxYsQImJubw9raGr/++iuAvLuVkZGRmDlzJlq1aoV//vkHH3zwAczMzPDSSy/h66+/LjbejIwMTVL12muvYeDAgbhw4UKJrudpSUlJiIqKKvaVP325MKmpqRg8eDB69uyJyMhI+Pr6wtraGosWLdKck79euHnz5lp189cCnz9/vtjrpcqT/+9m48aNuHfvnqb8999/x9y5cxESEqJUaEREVJMIERFVS2FhYVKV/xlv3769mJqaSm5uroiIODg4yJ07d0REpF27dtKmTRsREcnKyhITExPp3LmziIjk5ubKlStXBIAYGxvLwYMH5eLFiwJALC0tZdmyZZKSkiK///67AJA333xTRERycnLkwIEDYmhoKABk8uTJcuLECQkNDRUjIyMBICdPntTEB0CsrKw0711dXeXy5cua97a2ttKkSRN58ODBM6/nacuXLxcAxb5sbGxK9DmmpKSIn5+f6OvrCwAJDg4WEZGuXbsKAElPT9c6/9GjRwJAevXqVaL2K4Kjo6M4OjpW2/Yr2r1792Ty5MnSunVrqVevnvTu3VscHBwkKChIMjMzlQ6PSgGAhIWFKR0GEVFhwpmcExFVU1WdnJubmwsA2bBhg6jVajl//ryk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TkRERNXWvn378Mknn2DhwoWYOnWq0uFQBRk7dizu378PDw8PmJmZYcKECUqHRERU6ZicExERUbV07NgxjBo1CpMmTcKCBQuUDocq2OTJk3H9+nX861//wgsvvMDlCkRU46mEu20QERFRNXPmzBkMGDAAw4YNw44dO6Cnx210aiIRgaurK7788kt89913sLGxUTokIqLKspvJOREREVUrMTEx6NevH7p27YqDBw+ibt26SodElSg3NxeOjo748ccf8dNPP6Fjx45Kh0REVBmYnBMREVH1cfPmTdjY2MDCwgJHjx5Fw4YNlQ6JqkBGRgYGDx6Ma9eu4dSpU7C0tFQ6JCKiisbknIiIiKqHe/fuoV+/fjAwMMCJEydgZmamdEhUhR48eIA333wT6enpOHnyJJo0aaJ0SEREFWk3F2gRERGRzktNTcU777yDrKwsfPfdd0zMayETExMcPnwY2dnZsLe3R1pamtI0cD9uAAAgAElEQVQhERFVKCbnREREpNOysrLg4OCAGzdu4JtvvkGzZs2UDokUYmFhgYiICMTHx+O9995DVlaW0iEREVUYJudERESks3JzczF27FicOXMGR44cQYcOHZQOiRTWrl07HDx4EL/88gsmTpwItVqtdEhERBWCyTkRERHpJBHB//t//w+HDh3CgQMH0K1bN6VDIh3x2muv4b///S++/vpreHh4KB0OEVGFYHJOREREOmnOnDnYunUrQkJC0K9fP6XDIR3Tv39//Oc//8GGDRsQEBCgdDhEROVmoHQARERERE8LCAjAihUrsHnzZrz//vtKh0M6atSoUbh//z4++eQTmJubw8XFRemQiIjKjMk5ERER6ZTt27fDy8sLK1aswMSJE5UOh3Scu7s7EhISMGnSJJiamvJ/5hBRtcVp7URERFSlRARHjx5FTk5OgWP79++Hi4sLfHx8MGPGDAWio+rI19cXH3/8McaNG4effvqpwPEHDx7g6NGjCkRGRFRyTM6JiIioSh0+fBi2trZ477338PjxY0358ePH4eTkBFdXVyxatEjBCKk6WrVqFezs7GBvb49z585pyhMSEtCrVy8MGjQIV65cUTBCIqLiqURElA6CiIiIao8BAwbgxIkTUKlU6NGjB7755hvExsbirbfewttvv43du3dDX19f6TCpGsrKyoKdnR0uXryIkydPIjs7GwMGDEBi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xLfffsshUWQSL730kkn7379/P37//XeT7oMaHlPm5ZIlSzB8+HCT9U8N0+OzgZNyyobYGyIvLw+RkZGIiYmp8/6N2VeZus6gbyo8flNt8PhN5qaJsSTqAAAf2UlEQVSux2+VSBUztRAREVGDkpCQgFGjRlU5URv9MVndlClT4OzsjOHDh8PDw6Pa7c6dOwc3NzejDLs3Vl8pKSnYunUrcnNztZcXGPr5q1QqxMfHY+TIkXWKhYiIKrWF15wTERERlVPbf1507drVaDEYqy8PDw/tjPCfffaZUfokIiLj42ztRERERERERApjcU5ERERERESkMBbnRERERERERApjcU5ERERERESkMBbnRERERERERApjcU5ERERERESkMN5KjYiIqBGxti499Jfdx5uopspyh4iITEMltb2RJxEREVmchw8fYufOnXj06JHSoVQqJSUF8+bNw0cffYTXX39d6XBM6uDBg1izZg0WLVoEDw8PpcOplJWVFd58803Y2toqHQoRUUO1hcU5ERERmY3CwkL06NEDTz/9NBITExvFGf5Bgwbh2rVrOHPmDItfIqLGawuvOSciIiKz8emnnyItLQ3R0dGNojAHgKioKNy4cQMLFy5UOhQiIlIQi3MiIiIyC2fOnEF4eDjCwsLg7u6udDj15tlnn8XSpUsRFhaG//znP0qHQ0RECuGwdiIiIlKcRqPByy+/DHt7exw4cKDRnDUvIyIYOHAgsrOzcfLkSTRt2lTpkIiIqH5xWDsREREpLyQkBMnJyYiJiWl0hTlQOnt+dHQ0rl69iiVLligdDhERKYDFORERESnq3LlzWLJkCUJCQtCxY0elw1FM+/btsWDBAoSEhOCnn35SOhwiIqpnHNZOREREitFoNHj11VfRpEkTHD58GFZWVkqHpKiSkhK89tpryM/Px/Hjx2FjY6N0SEREVD84rJ2IiIiU8/nnn+Pnn3/Ghg0bGn1hDgBNmjRBTEwMLl68iOXLlysdDhER1SMW50RERKSI5ORkLFy4EPPnz4e3t7fS4ZgNT09PzJ07F5988gkuXLigdDhERFRPOKydiIiI6l1JSQlef/113L9/HydPnuTw7XI0Gg169uwJGxsbJCUlcVQBEVHDx2HtREREVP8iIyNx7NgxxMbGsjDXw9raGrGxsTh16hTUarXS4RARUT1gcU5ERET1KjU1FfPmzUNQUBB69OihdDhm6/nnn8fs2bMRFBSEK1euKB0OERGZGIe1ExERUb0REfzlL3/B9evXcfr0adja2iodklkrKirCn/70Jzz55JPYt29fo7wHPBFRI8Fh7URERFR/oqOjsW/fPsTExLAwr4GmTZtiw4YNOHToENavX690OEREZEI8c05ERET14saNG/D29sYHH3yAZcuWKR2ORfn4448RFRWFX375Ba6urkqHQ0RExreFxTkRERHVi6FDh+LSpUs4c+YMmjVrpnQ4FqWwsBDdu3dHu3btsHPnTqXDISIi4+OwdiIiIjK9L774Ajt27EBMTAwL81r4r//6L2zYsAG7d+/Gl19+qXQ4RERkAjxzTkRERCb1+++/w9vbG2PHjsXKlSuVDseiBQQE4KuvvsIvv/yCZ555RulwiIjIeDisnYiIiEzrnXfewenTp3Hu3Dm0aNFC6XAsWn5+Pp5//nl06dIF33//vdLhEBGR8XBYOxEREZlOfHw8tm3bhqioKBbmRtC8eXOsX78eO3bsQEJCgtLhEBGREfHMOREREZlETk4OvL29MXToUERFRSkdToPywQcfYNu2bTh//jzatGmjdDhERFR3HNZOREREpuHr64uDBw/i/PnzaNmypdLhNCj37t3Dc889hz59+iAuLk7pcIiIqO44rJ2IiIiMb8eOHdi8eTPWrFnDwtwE7O3tsW7dOnz99dfYtm2b0uEQEZER8Mw5ERERGdXdu3fx3HPP4Y033uBtv0xs3Lhx2LdvH86fPw9HR0elwyEiotrjmXMiIiIyrunTp6OwsBDh4eFKh9LgRUREoKSkBIGBgUqHQkREdcTinIiIiIxm3759+Oc//4m1a9fiySefVDqcBq9169aIjo5GbGwsdu3apXQ4RERUBxzWTkREREaRl5eH559/Hn/60594m696NmLECJw4cQK//PILnnjiCaXDISIiw3FYOxERERnHzJkzcffuXaxatUrpUBqdtWvXoqCgALNnz1Y6FCIiqiUW50RERFRnBw8exLp167By5Uo89dRTSofT6Dg5OWH58uVYu3Yt9u3bp3Q4RERUCxzWTkRERHWSn5+PF154AR4eHtixY4fS4TRqw4YNw9mzZ3Hu3DnY2dkpHQ4REdUch7UTERFR3cybNw/Z2dlYt26d0qE0eqtXr8adO3fwySefKB0KEREZiMU5ERER1drx48excuVKhIeHw8XFRelwGj1nZ2d89tlnWLFiBQ4fPqx0OEREZAAW50RERFStb775Bm3atEF8fLy2rbCwEH5+fnj99dfx/vvvKxgdPc7Pzw8DBgyAv78/Hj58qG2Pj49HmzZt8M033ygYHRERVYbFOREREVVr+/btuHXrFt59910MGTIEmZmZWLhwIVJTU7F+/XqoVCqlQ6T/n0qlQlRUFDIyMhASEoLMzEwMGTIE7777Lm7duoXt27crHSIREenBCeGIiIioWm3btkVWVhYAwMbGBk2bNoWVlRVCQkIwZcoUhaMjfdRqNebNm4eSkhIUFBSguLgYANCmTRvtZ0lERGaDE8IRERFR1X799VedYq64uBh5eXm4f/8+/vWvf+G3335TMDrSJzMzE7t27cKdO3dw//59bWEOANnZ2bhy5YqC0RERkT4szomIiKhKP/74I6ysrCq0iwgOHToEDw8PLFu2DCUlJQpER48TEURHR6NTp07Ys2ePtu1xVlZW+PHHHxWIjoiIqsLinIiIiKr0448/VnpNeXFxMQoLCzF79mxMmzatniOj8qZOnYqJEyciLy9P52z541QqFQ4cOFDPkRERUXVYnBMREVGV9u7dC41GU+nzNjY2aNmyJYYNG1aPUZE+w4YNg6OjI2xsbCpdR6PRYO/evfUYFRER1QSLcyIiIqrUlStXqpw8zNraGl26dMFPP/2EN954ox4jI33eeOMN/Pzzz+jevbveSxHKZGVl4erVq/UYGRERVYfFOREREVXqxx9/RJMmlf9cGD9+PE6cOIF27drVX1BUJRcXFxw+fBiBgYFQqVR6L0ngdedEROaHxTkRERFVSl9xbm1tjWbNmuGbb75BdHQ0mjZtqlB0VBlra2ssXboU27Ztg52dXYVh7iqVisU5EZGZ4X3OiYiIqFJPP/00fv/9d+1ja2trtGvXDv/617/QpUsXBSOjmrp8+TKGDh2KlJQUPHr0SNv+1FNP6Xy2RESkKN7nnIiIiPS7evWqTvGmUqkwcuRInDlzhoW5BenUqRNOnz6Nv/3tbzrtWVlZuHbtmkJRERFReSzOiYiISK+DBw8CKL0+2cbGBtHR0YiLi4OdnZ3CkZGhbG1tsWHDBqxfvx5NmzaFtbU1AHBoOxGRGWFxTkRERHqVFW7Ozs44fvw4/P39lQ2I6szf3x/Hjh2Ds7MzABbnRETmhNecExGRRXB1dcX169eVDoMszPTp07F8+XKT9D1jxgysWLHCJH1Tw+Xi4oL09HSlwyAi87PFWukIiIiIauL69euYPn06XnnlFaVDIQuxfPlyk/5D5/r16+jZsydmzJhhsn1Qw3L06FH+Q4eIKsXinIiILEbPnj0xYsQIpcMgC7FlyxaT78PV1ZU5STXGAatEVBVec05ERERERESkMBbnRERERERERApjcU5ERERERESkMBbnRERERERERApjcU5ERERERESkMBbnRERERERERArjrdSIiIhM6M9//jNee+01hIWF1ct2hhARxMbGYteuXfDw8EBWVhb69u0LX19fk2xH5oE5SURknlicExERmVD79u1ha2tbb9sZYtGiRYiNjcVPP/0ER0dH3L59G927d8fNmzcxdepUo29H5oE5SURknlicExERmdA333xTr9vVVFpaGhYtWoSFCxfC0dERAODo6IgJEyYgKCgIY8eORevWrY22HZkP5iQRkXniNedERESNUFxcHDQaDfr166fT3rdvX+Tn5yMmJsao2xFVhzlJRI0dz5wTERHVgohArVbj+PHjeOKJJxAbG4uioiLt8xqNBt9++y1++OEHXLt2DQcPHsT333+PH374ATt37sS5c+cwbdo07NixA08//TT++c9/4sUXX8SjR490tjt06JDe/efk5ODmzZtVxtisWTO4ubnpfS4pKQkA4OLiotPu6uoKADh79qxRtyPTY04yJ4nIwgkREZEFACDx8fFKh6EVGRkpTZo0kVu3bomISGhoqACQGTNmaNdJS0sTANK5c2cpKSmR9PR0sbOzEwASEhIiqamp8tVXXwkAefnll/VuV5mwsDABUOXSq1evSrfv1q2bAJD8/Hyd9ry8PAEgPXv2NOp2ShgxYoSMGDHCYvs3FHPS/HMyPj5e+PObiCqRwGHtREREtZCYmAgRwRNPPAEAGDx4MADg8OHD2nXKztwBgEqlgouLC5555hkAQHBwMNzc3DBmzBi0adMGZ86c0btdZQIDAyEiVS5lZxT1sbe318b1uLLHj59xNcZ2ZHrMSeYkEVk2FudERES1MGDAAIgIfvjhBwDQzmLdt29f7TrliwV9bSqVCo6OjjoFhL7tjM3T0xMAcOfOHZ3227dvAwCcnZ2Nuh2ZHnOSOUlElo3XnBMREdXC5MmT0axZM/j5+eHw4cO4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\n", "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.datasets import load_iris\n", "from sklearn import tree\n", "from io import StringIO\n", "from pydot import graph_from_dot_data\n", "\n", "iris = load_iris()\n", "clf = tree.DecisionTreeClassifier()\n", "clf = clf.fit(iris.data, iris.target)\n", "dot_data = StringIO()\n", "tree.export_graphviz(clf, out_file=dot_data)\n", "graph = graph_from_dot_data(dot_data.getvalue())[0]\n", "try:\n", " tree_image = Image(graph.create_png())\n", "except:\n", " print('Graphviz is not installed on your system.\\\n", " Please follow installation instructions if you want updated pictures')\n", " tree_image =Image(\"images/temp.png\")\n", "tree_image" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Decision Tree typical properties:**\n", "- PROS\n", " - Conceptually simple to draw and interpret\n", " - Can handle categorical predictors and do not require normalization\n", "- CONS\n", " - Tend to learn a too complex model (Overfit, High Variance)\n", " - Susceptible to outliers\n", " - Some concepts (for example XOR and additive functions) are hard to learn\n", " - Tend to favor categorical features with many categories, because the number of binary partitions grows exponentially with the number of categories. For this reason choosing the right split becomes hard causing overfit." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2 Random Forests" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Random Forest (RF)** works by building a large ensemble of de-correlated trees and then averages them. The algorithm uses a modified bagging, where each tree is built on a random subspace. Bagging averages a set of approximately unbiased models to reduce variance. Trees work well in this context because they can capture complex interaction in the data. In bagging, samples are not necessarily independent and thus averaging doesn't account for all variance. The variance of the average of i.d. variables with correlation $\\rho$ is: $\\rho \\sigma^2 + \\frac{1-\\rho}{B}\\sigma^2$ where $B$ is the number of trees in the ensemble and $\\sigma^2$ is the variance of each variable. As $B$ increases the second term disappear but the first remains, thus the correlation between pairs of trees limits the benefit derived from averaging.\n", "\n", "The idea of Random Forests is to reduce the correlation of each tree (and thus decrease variance) by *randomly selecting a subset of input variables for each split in the tree*. This procedure slightly increases bias but achieve a better variance reduction.\n", "\n", "Random Forests are a popular method because they work surprisingly well with the default hyperparameters.\n", "\n", "**The main hyperparameter to adjust is the number of variables selected at random for each split.** In sklearn this is called max_features and it's usually optimized with grid search. \n", "\n", "The recommended value for max_features is $\\sqrt{p}$ (where $p$ is the total number of features) for classification problems or $\\lfloor p/3 \\rfloor$ for regression problems. These are rules of thumb and they work well for most datasets. In practice it is useful to start with the default and then refine the result. In principle **lower values of p reduce the correlation between any pair of trees and hence reduce the variance of the average, at the cost of sligtly increasing the bias of each tree**. Note that in scikit-learn the default value of max_features for regression is $p$ (use all features). \n", "\n", "In scikit-learn max_features can be used in several way:\n", "- int $\\to$ number of features to use\n", "- float $\\to$ percentage of features to use\n", "- auto $\\to$ $\\sqrt{p}$ (classification) or $p$ (regression)\n", "- none $\\to$ all features.\n", "\n", "**The second important parameter to tune is n_estimators: the number of trees in the forest. Since Random Forests are an averaging method they do not usually overfit by adding more trees and the larger the better (but it takes more time to compute.** In addition, note that results will stop in getting significantly better beyond a sufficient number of trees.\n", "\n", "Random Forests are said to hardly overfit the data. This is not always the case and the average of fully grown trees can result in a model that is too rich and with too much variance. If this is a concern, there are few ways to reduce tree depth, either by specifying the limit directly or by setting the number of training samples in the leaf, or the minimum number of samples to split. In scikit-learn this parameters are:\n", "\n", "- max_depth if None the nodes are expanded until pure or min_samples_split.\n", "- min_samples_split minimum number of samples required to split an internal node. Large values lead to smaller trees, higher bias and smaller variance. The optimal value depends in principle on the noise level in the dataset: in noisy datasets, ensemble of fully grown trees will overfit the data.\n", "- min_samples_leaf minimum number of samples in resulting leafs. \n", "\n", "If n_jobs=k then computations are partitioned into k jobs, and run on k cores of the machine. If n_jobs=-1 then all cores available on the machine are used." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training set / Validation set number of samples: 127, 23\n", "Number of features: 4\n" ] } ], "source": [ "pd.options.display.notebook_repr_html = True\n", "\n", "iris = datasets.load_iris()\n", "# We skip the scaling because the tree-based models are almost insensitive to scaling\n", "df = pd.DataFrame(iris.data, columns=iris.feature_names)\n", "# Split Training and Validation Sets\n", "idx_train, idx_valid = model_selection.train_test_split(df.index, test_size=0.15)\n", "df_train, df_valid = df.iloc[idx_train], df.iloc[idx_valid]\n", "y_train, y_valid = iris.target[idx_train], iris.target[idx_valid]\n", "\n", "print(\"Training set / Validation set number of samples: {0}, {1}\".format(df_train.shape[0], \n", " df_valid.shape[0]))\n", "print(\"Number of features: {0}\".format(df_train.shape[1]))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[8 0 0]\n", " [0 7 0]\n", " [0 1 7]]\n", "\n", "Best Params: N est: 15 - Mx feat: 3 - Mx dpth: 2 - F1:0.957\n", "RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n", " max_depth=2, max_features=3, max_leaf_nodes=None,\n", " min_impurity_decrease=0.0, min_impurity_split=None,\n", " min_samples_leaf=1, min_samples_split=2,\n", " min_weight_fraction_leaf=0.0, n_estimators=15, n_jobs=1,\n", " oob_score=False, random_state=0, verbose=0, warm_start=False)\n", "Done in 7.268[s]\n" ] } ], "source": [ "rfc = ensemble.RandomForestClassifier()\n", "params = {'n_estimators':[5, 15, 30, 50, 75, 100],\n", " 'max_features':[2, 3, 4],\n", " 'max_depth':[2, 4, 6, 8],\n", " 'random_state':[0]}\n", "t0 = time()\n", "grid = model_selection.GridSearchCV(rfc, params, cv=15, n_jobs=-1)\n", "grid.fit(df_train, y_train)\n", "rfc_best = grid.best_estimator_\n", "\n", "print(metrics.confusion_matrix(rfc_best.predict(df_valid), y_valid))\n", "print('\\nBest Params: N est:%3i - Mx feat:%2i - Mx dpth:%2i - F1:%.3f'\\\n", " %(rfc_best.n_estimators, rfc_best.max_features, rfc_best.max_depth,\n", " metrics.f1_score(rfc_best.predict(df_valid), y_valid, average='micro')))\n", "print(rfc_best)\n", "print('Done in %0.3f[s]' %(time() - t0))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's have a look to one of the Random Forest Trees:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "idx = 1\n", "dot_data = StringIO()\n", "tree.export_graphviz(rfc_best.estimators_[idx], out_file=dot_data)\n", "graph = graph_from_dot_data(dot_data.getvalue())[0]\n", "try:\n", " tree_image = Image(graph.create_png())\n", "except:\n", " tree_image =Image(\"images/temp1.png\")\n", "tree_image" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**samples** is the number of samples that will be classified in the specific leaf if the tree will be fed with the bootstrap set\n", "\n", "**value** is the number of samples that will be classified in the specific leaf if the tree will be fed with the original dataset:\n", "\n", "* bootstrap samples = 81\n", "* total samples = 127\n", "* sum of all elements in 'value' = 127" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Random Forests properties:**\n", "- Properties derived from Trees:\n", " - Can handle categorical predictors and do not require normalization\n", " - Support natively multiclass problems\n", " - Some concepts (for example XOR and additive functions) are hard to learn\n", " - Tend to favor categorical features with many categories\n", "- Typical properties:\n", " - In sklearn classification trees uses a probability distribution in the leafs rather than majority voting. This methods produces a better overall prediction and at the same time can provide also a probability measure of the class membership (not only a pure class vote).\n", " - If the number of relevant features is small, Random Forests can perform poorly, because at each split the probabilty of picking irrelevant variables is higher" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Random Forests Advanced topics**\n", "\n", "Other than regression and classification, Random Forests provide much more information that are useful for different tasks. Some of them apply equally well to other ensemble methods such as Gradient Boosting Trees. Here we review the main concepts while the detailed descriptions are given in the advanced notebook.\n", "\n", "- *Out Of Bag (OOB) estimate*: during the building phase of each tree some samples are left out. These samples are called OOB samples. Using OOB samples a generalization measure can be calculated without relying on a Validation Test Set. This measure is called Out Of Bag score (or OOB estimate).

\n", "\n", "- *Variable importance*: trees (and ensemble of trees) can provide a measure indicating how important or useful a variable is in predicting the outcome. Scikit-learn calculate the variable importance from the improvement to the gini index every variable provide at each split. There at least another more reliable algorithm to calculate the Variable Importance that is freely available in the Addfor libraries.

\n", "\n", "- *Feature selection*: allows to reduce dimensionaly and thus improve algorithm speed and convergence while keeping the most of the capabilities. The procedure can be automated to remove the last feature until certain stopping criterion (e.g. decrease in accuracy) is met.

\n", "\n", "- *Partial dependence*: it shows the relation between the target and a chosen set of varialbe (at most two at a time), marginalizing over the other variables. The chosen variables are usually the most important and this plot is used to gain insight about the function learned by the ensemble and how it models the dependence between the target and the most important variables.

\n", "\n", "- *Proximity measure*: random forest can grow a $N \\times N$ proximity matrix, constructed by passing the OOB samples through each tree and increasing the proximity of two sample if they ends up in the same terminal node. Plotting this matrix should provide insight on which data points are effectively close, at least as learned by the random forest classfier. However it tends to produce similar graphs and its utility has been doubted.

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3 Extremely Randomized Trees" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In **Extremely Randomized Trees** (or **E**xtra **T**rees, **ET**), randomness goes one step further in the way splits are computed. As in random forests, a random subset of candidate features is used, but instead of looking for the most discriminative thresholds, **thresholds are drawn at random for each candidate feature**. The relation with the output is retained by selecting the best couple $<$_feature_, _random-threshold_$>$ as the splitting point (if max_features = 1, the trees would be totally random).\n", "\n", "It is possible to interpret this choice in different ways. If a feature is important, a significant fraction of the trees will have (approximately) the same feature with the same split point at the same position in the tree. This increases the correlation of each tree, hence increasing variance. By randomly selecting the threshold the algorithm introduces a *slightly increase in Bias* but it usually allows to *reduce the Variance* of the model a bit more." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[8 0 0]\n", " [0 8 0]\n", " [0 0 7]]\n", "\n", "Best Params: N est: 15 - Mx feat: 3 - Mx dpth: 2 - F1:1.000\n", "ExtraTreesClassifier(bootstrap=False, class_weight=None, criterion='gini',\n", " max_depth=2, max_features=3, max_leaf_nodes=None,\n", " min_impurity_decrease=0.0, min_impurity_split=None,\n", " min_samples_leaf=1, min_samples_split=2,\n", " min_weight_fraction_leaf=0.0, n_estimators=15, n_jobs=1,\n", " oob_score=False, random_state=None, verbose=0, warm_start=False)\n", "Done in 7.035[s]\n" ] } ], "source": [ "rfc = ensemble.ExtraTreesClassifier()\n", "params = {'n_estimators':[5, 15, 30, 50, 75, 100],\n", " 'max_features':[2, 3, 4],\n", " 'max_depth':[2, 4, 6, 8]}\n", "t0 = time()\n", "grid = model_selection.GridSearchCV(rfc, params, cv=15, n_jobs=-1)\n", "grid.fit(df_train, y_train)\n", "rfc_best = grid.best_estimator_\n", "\n", "print(metrics.confusion_matrix(rfc_best.predict(df_valid), y_valid))\n", "print('\\nBest Params: N est:%3i - Mx feat:%2i - Mx dpth:%2i - F1:%.3f'\\\n", " %(rfc_best.n_estimators, rfc_best.max_features, rfc_best.max_depth,\n", " metrics.f1_score(rfc_best.predict(df_valid), y_valid, average='micro')))\n", "print(rfc_best)\n", "print('Done in %0.3f[s]' %(time() - t0))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Extremely Randomized Trees properties:**\n", "- Properties derived from Trees:\n", " - Can handle categorical predictors and do not require normalization\n", " - Support natively multiclass problems\n", " - Some concepts (for example XOR and additive functions) are hard to learn\n", " - Tend to favor categorical features with many categories\n", "- Typical properties:\n", " - Since the splitting point is draw at random, the computational cost of selecting the split point is reduced.\n", " - In scikit-learn the implementation is similar to that of Random Forest (except for the random choice of threshold), whereas the original algorithm is somewhat different (no bagging)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4 AdaBoost" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**AdaBoost**, short for **Ada**ptive **Boost**ing, is a meta-algorithm, and can be used in conjunction with many other learning algorithms. The core principle of AdaBoost is to fit a sequence of weak learners (i.e., models that are only slightly better than random guessing, such as small decision trees) on repeatedly modified versions of the data. Each iteration in the sequence puts more weights on difficoult examples (examples that are misclassified in previous iterations). The predictions from all of them are then combined through a *weighted* majority vote (or sum) to produce the final prediction. AdaBoost is sensitive to noisy data and outliers. The classifiers it uses can be weak (i.e., display a substantial error rate), but as long as their performance is slightly better than random, they will improve the final model." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Done in : 7.679[s]\n", "learning_rate : 1.0\n", "n_estimators : 20\n", "F1 Score : 0.913\n", "\n", "Confusion Matrix:\n", "[[8 0 0]\n", " [0 7 1]\n", " [0 1 6]]\n" ] } ], "source": [ "adb = ensemble.AdaBoostClassifier()\n", "params = {'n_estimators':[10, 20, 30, 40],\n", " 'learning_rate':[0.1, 0.2, 0.5, 0.7, 1.0]}\n", "t0 = time()\n", "grid = model_selection.GridSearchCV(adb, params, cv=15)\n", "grid.fit(df_train, y_train)\n", "adb_best = grid.best_estimator_\n", "\n", "print('Done in'.ljust(20), ': %.3f[s]' %(time() - t0))\n", "for key, value in grid.best_params_.items():\n", " print(key.ljust(20), ':', value)\n", "print('F1 Score'.ljust(20), ': %.3f' %(metrics.f1_score(adb_best.predict(df_valid), \n", " y_valid, average='micro')))\n", "print('\\nConfusion Matrix:')\n", "print(metrics.confusion_matrix(adb_best.predict(df_valid), y_valid))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**AdaBoost** can be used with a variety of base estimators. This can be an advantage over **Gradient Boosting** that uses trees, because it is possible to further the analysis process with more variants. However Gradient Boosting uses a slightly different algorithm and since base estimators is predetermined it needs one less parameter to tune. Generally for the particular choice of the loss function **AdaBoost** is sensitive to outliers, because squared-error loss places much more emphasis on observations with large absolute residuals. **Gradient Boosting**, instead, support robust loss function and it is less sensitive to outliers." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5 Gradient Boosting Regression Trees (GBRT)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Gradient Boosting** is a technique to build additive regression models by sequentially fitting a simple parametrized function (weak learner) to current \"pseudo residuals\" by least squares at each iteration. The pseudo residuals are the gradient of the loss functional being minimized with respect to the model values at each data points, evaluated at the current step. Basically it is a numerical optimization in function space rather than parameter space.\n", "\n", "**Gradient Tree Boosting** or **G**radient **B**oosted **R**egression **T**rees **(GBRT)** is a special case of *Gradient Boosting* where the weak learners are regression trees. It's made for regression and can be adapted to classification. The method was invented by *Jerome H. Friedman in 1999*. \n", "\n", "The main meta-parameters to adjust are the *Tree Size* and the amount of *Regularization*. For each of these meta-parameters scikit-learn offers a serie of knobs to adjust. Let's briefly review them.\n", "\n", "**Tree Size**\n", "\n", "The size of each tree is an important parameter. If trees are too large they tend to decrease performance and increase computational costs. The optimal tree size is problem dependent and can be controlled with these parameters:\n", "- max_depth: it controls the maximum allowed level of interaction between variables. With max_depth = 2 the tree has up to one root node two internal nodes and four leaves. With this tree the model will include the effects of the interaction between two variables at most. The depth is the level of possible variable interaction. The interaction value between variables is generally unknown, but in most cases it is a low value. In many applications max_depth = 2 is too low, while max_depth > 10 it is unlikely required. Practical experience indicates typical values for this parameter in the range $4 \\leq$ max_depth $\\leq 8$. \n", "- max_leaf_nodes: alternative way to control the depth of the trees. A tree with max_leaf_nodes = n has at most n - 1 split nodes and can model interaction of order max_leaf_nodes - 1, this beahavior is similar to max_depth = n-1 but the resulting trees are slightly unbalanced and are less sensitive to additivity. Moreover it should be faster to train at the expense of a slightly higher training error. \n", "- min_sample_leaf: it puts a constraint on the number of samples in each leaf, hence it reduces the effects of outliers (you cannot have for example leaf with one node)\n", "\n", "**Regularization**\n", "\n", "Controlling the number of boosting iterations is also problem dependent. Each iteration reduce the training error, so that given a sufficient number of iteration this number can be made arbitrarily small. However this can cause overfitting. Thus there is an optimal number of iteration that must be found. There are also other ways to perform \n", "regularization. \n", "Let's review main parameters in this area:\n", "\n", "* _shrinkage:_\n", " - n_estimators: The number of boosting stages to perform (default=100). It is the main parameter to control regularization. \n", " - learning_rate: this controls the Shrinkage, that is another form of regularization. It's a scale factor applied to tree predictions. Default is $0.1$. A decrease in learning_rate (increase in Shrinkage) has the effect of \"reinforce concept\": the redundancy between trees increases. The effect is that the model with high Shrinkage usually requires more trees but show a much better Variance.\n", " \n", "* _subsampling:_\n", " - subsample: Choosing subsample $< 1.0$ leads to a reduction of variance and an increase in bias. It's the fraction of samples to be used for fitting the individual base learners. These two parameters are similar to the ones used in Random Forest and are used for the same purpose: introduce randomization and improve on Variance\n", " - max_features: The number of features to consider when looking for the best split. The lower the greater the reduction of variance, but also the greater the increase in bias. As for the Random Forest, use int $\\to$ number of features ot use, float $\\to$ percentage of features to use, auto $\\to$ $\\sqrt{n\\_feat}$, none $\\to$ all features. \n", "\n", "Other parameters include choosing the loss function. Several loss function can be used, and as specified with the parameter loss.\n", "\n", "Also GBRT allows to compute OOB estimate with the samples not included in the bootstrap sample. The OOB score are stored in the attribute oob_improvement_.oob_improvement_[i] and can be used for model selection, for example to set the optimal number of iterations. OOB scores are usually very pessimistic respect to cross validation but the latter is too time consuming.\n", "\n", "Scikit-learn implementation offers also an additional parameter warm_start=True that allows to add more trees to an existing model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.1 Gradient Boosting Parameter Tuning\n", "\n", "In the following examples we show how each meta-parameter affects GBRT performance. \n", "\n", "In this example we use a synthetic dataset used in the book *Elements of Statistical Learning by Hastie et al.* and available in scikit-learn. The function make_hastie_10_2 generates a dataset for classification. The features $X_1, \\ldots, X_n$ are standard independent Gaussian and the target function is defined by:\n", "\n", "$$Y = \n", " \\begin{cases}\n", " 1 & if \\sum_{j=1}^{10} X_j^2 > \\chi_{10}^2(0.5),\\\\\n", " -1 & otherwise.\n", " \\end{cases}\n", "$$" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "X_hastie, y_hastie = datasets.make_hastie_10_2(n_samples=12000, random_state=42)\n", "X_hastie = X_hastie.astype(np.float32)\n", "\n", "# map labels from {-1, 1} to {0, 1}\n", "labels, y_hastie = np.unique(y_hastie, return_inverse=True)\n", "\n", "X_hastie_train, X_hastie_test = X_hastie[:2000], X_hastie[2000:]\n", "y_hastie_train, y_hastie_test = y_hastie[:2000], y_hastie[2000:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Tree size**\n", "\n", "In the following examples we will try to understand how tree size parameters affects the resulting tree shape and then we will see how tree size affects GBRT error varying the number of estimators.\n", "\n", "Let's see how max_leaf_nodes and max_depth affect the resulting tree structure. First we choose max_leaf_nodes = 4 and later we choose max_depth = 2. If max_leaf_nodes is specified, max_depth is ignored; the default value of max_leaf_nodes is None and in that case only max_depth is used. Despite having the same number of leaves (4) the trees are slighlty different. \n", "\n", "In the first example (max_leaf_nodes = 4) the tree is grown in a greedy best-first fashion, at each split the node with the highest impurity is chosen to be further split while the node with lower impurity becomes a leaf. The resulting tree is unbalanced with leaves at every level." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "F1 score: 0.9279123998783332\n" ] } ], "source": [ "gbrt = ensemble.GradientBoostingClassifier(n_estimators=1000, \n", " max_leaf_nodes=4, \n", " random_state=42)\n", "gbrt.fit(X_hastie_train, y_hastie_train)\n", "y_gbrt = gbrt.predict(X_hastie_test)\n", "\n", "print(\"F1 score: {0}\".format(metrics.f1_score(y_gbrt, y_hastie_test)))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAggAAAHxCAIAAACH69N4AAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdeSBU6/sA8HcshUSW1luERHW7pUXRov1Wt9QtS0krbmnTJpVut0KJRKhukntLiBZ9JWWpvrqhtO8oIVFkJ9uMOb8/3u89vzHMmGHMmeX5/OVsc54zmGfO+573fWgEQSAAAADgXzJUBwAAAEC0QGIAAADQDCQGAAAAzchRHYCkqa+vj4uLa2pqojoQIGZkZWXnzp2roKBAdSAAQGIQtLi4uMWLF1MdBRBLV65cWbRoEdVRAACJQdAYDAZCCJ71Avyi0Wj4jwcAykEfAwAAgGYgMQAAAGgGEgMAAIBmIDEAAABoBhIDAACAZiAxAAAAaAYSA5BqBEFkZWVRHQUAogUSg6RJTk62srKi0Wg0Gm306NGhoaF4/Z07d2bPnk2j0czNzaOiovBKGo0mIyOzc+dOT0/PrKwsMzMzWgvZ2dlZWVmenp6bNm3Ca6i7OFRQUBASEmJlZWViYsLjIQEBAWwx4zWYjIyMv79/J0QKgBijwVAswYqKirK2tqb2XSUIYsWKFRcuXBg/fnxqair5sbho0SJ9fX1PT09yDY1G09PT+/DhA0LozZs3y5Yts7W11dTUxFsfPnyYkpLy8uVL8pUHDhyYl5dH7dV9+vRJW1vbwMAgIyOjzZ0fPXpkZmZWV1dHxkyn083MzMzNzfGinJzcihUrevXq1YkR84ZGo0VGRlpZWVEdCAAw8lkS0Wi0oKCgt2/fPnjwICIiwsbGBiF08eJFFRUV1qyAycn972/g1atXSUlJZFZACCUnJ1taWrLuzO9MPmlpabGxsR4eHu28ktZoaWnxuGd5efl//vOfAQMGsDYWRURE2Nrarl+/XoAhASBhoClJMikqKl6+fFlZWXnTpk2FhYWPHj06efLkqVOnuDQELVmyhDUrNDQ0REdHW1hYtOPsTCYzNjZ28uTJEydOrKqqas8FdBhBEG5ubs7OzqyXzGQyjxw5smvXrpkzZ+7bty8nJ4eS2AAQcXDHILF0dHT8/Pzs7e2XLFlSXV0dExOjqKjI++Hx8fH9+/cfMmQIXydtbGyMiIjw8vLKzs5etWpVSEjIoEGDEEKlpaXfvn1r9RBFRUVtbW2+zsKLgIAAa2trVVVV1pVVVVU///zzq1ev0tLSkpKSjhw54urqum/fPoGfHQDxRgCBioyMFJ13lclkzp07FyG0Y8eOVndACBkYGLS6ycbGZv/+/WwrDQwMOF1dVVXV0aNHf/jhB1VV1V27dn358oV1q7e3N6e/wAkTJvB7XVzCxlJTU318fLjEXFFR4e7uLisrixAKDg7mN4DOgBCKjIykOgoACIIgROUjTGKIWmKwtbVVUFCQl5d/9uxZyx04fcJ+//5dWVn5zZs3bOs5JYbo6GhVVdV+/fp5eXlVVlYKJHguuCeGkpKSNWvWNDU14UUuyezPP/9ECBkZGXVKlHyCxABEB/QxSDI/Pz8FBYXQ0FA6nb5s2bK6ujoeD4yLi9PS0ho6dCiP+xcXF1dWVurr648cObJ79+7tjbcZw+Z4P9DR0dHW1jYrKysjIyMjI6OhoQEhlJGRkZ2dzbanvb29goICjGMAgA30MUishISE6OjoxMTErl272tjYhIeH79y5MyAggJdjIyMj+ep2/u233yZMmODt7T137tzhw4e7uLgsXryYfN4JtauPgZenUVsVExNz6dIltpVDhgwhH8wlycrKqqur9+zZs30nAkBiUX3LImlEpCkpMzNTX1+/sLAQL5aWlqqpqSGE4uLiWHdDrbXJVFdXKyoqvnr1quXLcmmWwfLz87dv366srKyjo3PixInv37/j9ULoY6DT6a3uzCXmz58/I4Tc3d35DaAzIGhKAiIDmpIkUEFBwaxZs5ydnfv27YvXqKuru7i4IIRWrVrVskWFTUxMjLa29rBhw9px6v79+x89ejQ/P9/BweHgwYPa2trHjx9HnHu/CYK4f/8+X6eora1FCLFV1fbw8OjZs2dubi73Yw8cOLB58+Z3794hhOrq6hwdHRcuXLhr1y6+AgBA4kFikDRnzpyZMmVKXl7ey5cvX7x4gVc+evQoLy8PIVRcXDxlyhQ/Pz8urxAZGWlpadmRqS969Oixe/fu3NzcQ4cOpaamtvt1Wrp79+6WLVsQQrm5uV5eXs+fP8frlZSUVFRUWBuvWqWlpXXv3r0xY8bY2Nhs2LDBwcHh6tWr+NkkAAAJpsQQMFGYEoN3NBqNx7klMENDw8zMTHG5OvECU2IA0QF3DNIOP7TDI6hWD4A0gKeSpF1ubu7mzZv79eu3aNGiwYMHt7pPVlbW1atXy8rK2uyfAABIAEgMUo3HRqHBgwfjHlovL69OjggAQD1oSgIAANAMJAYAAADNQGIAAADQDCQGCVRRUUF1COB/CKgpDcQQJAbKEATh7+/v4uIyderUSZMmZWZmttxn3Lhxzs7OPL5gfX29h4eHiYmJhoaGQCOVKARBnD171tLS0tXV1d7ePjw8nMuewcHBI0eOVFZWHjFiREhISKt99VBTGkgeeCqJMv7+/q6urhUVFTU1NWvWrKmsrGy5j46ODu/VNBUUFLZt2+bj48NkMgUaqURxc3MLCQl59uyZmppaeXm5kZHRt2/fnJycWu65e/fuz58/Ozg4ZGVlBQUF2dnZff/+fdOmTaz7PHr0CM81QqLT6REREYcPH8aLuKZ0510OAJ1CCPMxSRXeJ9EzMDAYPHiwwANoc547aZabmysnJ3fo0CFyjbu7u5KSUklJCduenz59srGxIRdv3bqFENLT02Pdp6yszNXVFQ/+IFeeO3fuxIkT7YgNwSR6QGRAUxJl8vPzOzIfEWiHsLAwBoMxffp0cs20adNqa2uDg4PZ9szLy/Px8SEXZ82apampWVxcTK4hoKY0kFyQGCgQGxu7bt262trar1+/rlu3zsHBITY2dsuWLQMHDiwoKDAzM9PS0iopKYmKilq5cuXkyZPxUXV1dUeOHLGzsxszZsyMGTNevXqF19fW1m7btu23337bu3fv7t27v3//jtd///79woULS5cuNTU1TUtLMzIy0tbWvn//fmZm5sKFCzU1NQ0NDR8/fkxGlZWVZWFh4eLisnz58kmTJr18+ZIgiP/85z+//fZb//79y8vLV65cqaGh8eOPP7Ie1Sp+T/3o0aNx48Y5ODg4OzvLyspWV1dzuV5WpaWlGRzgSQPZ4Jlc+/fvT64ZMGAAQoicbZA0ceLEPn36sK5pbGycNGkSucilpvS4cePS0tLc3NwMDQ0PHjzI/b0CQBRRfcsiaXhvSkL/FhWor69PSUlRVFRECB06dCgxMdHOzq66uhp/tJGFB+zt7d+9e4d/njlzZq9evSorK+l0urGxsb29PZPJJAjiw4cPeK5QgiCamprev3+PEFJRUYmNjX3z5g1CSFtb28vLq6Ki4unTpwghMzMzMp5Bgwbp6uoSBNHY2Kiqqjps2DAmk5mfn9+tWzeEkLu7e25ubmhoKELI2NiY+6Xxe2p9fX01NTVcjNPCwqKoqIjT9bKdiN8yDyNGjEAI1dbWkmtwHh0/fjz3K7p//76CgsKTJ0/wYmfUlEbQlAREBiQGAWtHYsBwU3VpaSm5Bvch430ePHjQ8rPv+vXruCIba3FmfX19MgDWVyAIol+/fqybNDU1VVVVyQN9fHzCw8MJgmhqatLV1ZWTk2MNjDyqV69eXbp0afPq+Dq1pqYmQujUqVNMJvPFixcVFRWcrrftt5Ur/JW/rq6OXIOrO4waNYrLUXQ6ffLkyfjNITqtpjQkBiA6oClJVOCmanV1dbY12KNHj4YOHcr2y5s3b15CQgJCSEdHh9xTRkam1VdACLFWY6bRaBoaGqyPQm3btm3+/PknTpzw8PBoaGggJ1JlfREajaamptbY2Mjj5fB46lOnTikrKzs6Ok6YMKGhoUFVVZXT9bZ5Xu5w7WjWcR7l5eUIIZy3ODlw4MD06dOXLl2KF6GmNJB48LiqeCgtLc3Jyfn+/Ttu2MGampoKCgrwVtZ28/ZJT0+3trY+efLkhg0bwsLCOvhqfLGwsDAyMlq/fn1CQoKpqenZs2c5XS9bUR1+S0njsnSFhYVk/8GXL18QQhMnTuQU2/Xr17t168Za5Q1qSgOJB3cM4sHQ0BB3xpJr3r59GxgYiL8C37hxo+OnWLFiBZ1OnzNnDkIINwQRwirIs2/fPj09vfj4+PDwcAaDsWfPHk7Xy3bgX3/9NYSDZcuWtTzR8uXLVVVV7969S665c+eOvLy8jY0NXmQrOJGQkFBQUMCaFVJTU+vr61nvY8imJLasgBAqKCgoLCy0tLRsz5sCAIU6s51KGvHYx1BaWooQ0tHRIdfgr7fV1dXkmqqqKoRQ3759CYKoq6vD7UVr1qy5cOGCq6vrzJkzKysrnz17hr+W3rx5s7a29vbt27jR5uPHj8S/DejkaAldXV2EUFVVFesZGQwGXlRRUUEIJSQkXLhwAX/JffDgwadPn/BuuHOb+Le3oLGxkfsF8nVqRUXFsrIygiAaGxtVVFTGjh3L6XrbfGPb5Onpqa+vjyOprKwcNGjQgQMH8CZ3d/cePXrk5OTgxcTExKlTpwb8y9/ff8uWLa6urmwvyNrHsH///k2bNr19+xa/A/Pnz1+4cCF5mdwh6GMAIgMSg4Dxkhhevny5du1ahBCNRtu/f39KSsqBAwdwnnZwcHj69ClBEDU1NeQXVR8fn8rKypycnPnz56upqfXu3dvBwaG4uBi/WnJysqmpqbKysq6u7uHDhydNmrR27dqkpKSCgoKtW7cihLp06ZKYmHjr1i3cDrNp06aSkhJynoYjR458+/aNIIjAwED8oZyWlubn59ejRw9zc3MyMDc3t4qKCl9fX7zo4uLC+mwPm69fv/J1aoSQkZHR4cOHbWxsfvnlF5zVOF1vBzGZzODgYFtb2z179lhYWAQFBZE579ixY1paWvn5+QRBkM+JscnOzmZ7QdbEEBISMmLECCUlpaVLl65evTomJoZ88TZBYgCiA2o+C5h41XwGogNqPgPRAX0MoJ1onGVkZFAdHQCg/eCpJNBOcFcEgKSCOwYAAADNQGIAAADQDCQGAAAAzUBiAAAA0AwkBtAeRUVFUVFRHh4eVAcCABA8eCoJ8O3du3eBgYEnT540MDBwdXUV8tkJgjh79mxgYOCHDx/09PScnJxWr16N5+wjCCIkJOTWrVuDBw8uKiqaNm0aOddF+zYBIKUoHFwnkXifdlus1dXVoebThguNi4vLsmXLAgMDN2/ejAti+/v7400HDhzQ1tbGs2uUlZVpa2v7+fl1ZJMwIRj5DESG5H+ECZmUJAaiRT0J4eBSiplLPef2bRLKBf0/SAxAdEAfAxAnXEoxc6nn3L5NQrkgAEQRJAax12rB5JYFnBE/pZgJgkhLS9u+ffvAgQO/fv26ePFidXX1H3/88cqVK63GwKk+c6uxseK3aDOXUsxc6jm3bxNP7z4AEonqWxZJI/ympFYLJrcs4EzwU4qZwWBcv34dt+Bv3LgxOTk5LCxMWVkZIXT//n18XtRWPWpOsbHit2gzG9ZSzFzqObdvEz+/BAFA0JQERAYkBgETfmJoWTCZ4FzAma9SzLh8dE1NDV7Ec27juWMJlsTApT5zq7EJClspZi71nNu3SYCh8gISAxAd0JQk9loWTEa8FXBGbZVixuWjyeKa5ubmCCF8z8GKS33mVmMTFLZSzFzqObdvkwBDBUC8QGIQexYWFs+fP581a1ZaWpqpqen58+cRQunp6cOHD9fV1f39999xE1DH4c9K3ATPiqzPzLqyqamJU2xsx/LVx0DCpZj37dtHriHrOZNryHrO7dvU5hsCgMSi5D5Fggm/Ken333/HP4SHhyOEfvjhB4IgDAwM8A/Evy1CZCkxxNKUxFp9rM3Fz58/I4QCAgLYXufixYsIITIMgiDevHmDhwK0Ghur9vUxxMfHnzp1inVNSkpKaWmpqqrq0aNHyZVeXl7y8vKfPn1q3yZOZ+8kCJqSgMiAxCBgwk8MLQsmE5wLOPNVihknBjqdjhfPnTs3atQoXO0Z3x9oa2sTnOtRc4qtg7iUYuZSz7l9m4QJEgMQHZAYBEz4iQG1VjC51QLOb9684asUM04M3t7e3759KyoqOnz4cHV1NUEQ2dnZmzZtwjv7+vqWlZVxqs/camwdwb0UM5d6zu3bJEyQGIDogJrPAiZJNZ8NDQ0zMzMl41pEH9R8BqIDOp8BAAA0A4kBcIQ7EmpqaqgOBAAgVJAYQCtqamr27NmDH0PavHlzWloa1REBAIQH6jGAVigrKx86dOjQoUNUBwIAoADcMQAAAGgGEgMAAIBmIDEAnkCRZwCkB/QxgLZRW+QZI3iuzMz7ngCAVkFiAG0bMmSIj4/PyZMnKYzBzc0tJCTk2bNnampq5eXlRkZG3759c3Jy6sieAIBWQVMS4Aku2kOVvLw8Nze3tWvXqqmpIYTU1NQcHBz27NlTWlra7j0BAJxAYgBigPfKzFDDGYCOg8QgdS5duqSurk6j0fbu3YvXnDx5UkZGJigoCHEoFs3m9OnTNBoN1/ypqqry8fEhFxHn+s+s+C3DwHtlZqjhDIAAUDqFnwQS/uyq7YAnUo2Li8OLeXl5S5cuxT+3WiwaQyyFHPB83eQm1kVO9Z9Z8VuGgffKzKJTw5lfCGZXBSID7hik0dq1awcMGHDq1Cm8eObMGWdnZ/yzo6Oju7s7QkhWVlZDQyMzM7PVV5CXl2918eHDh8HBwUOGDMH3EImJicXFxffu3WM7fMeOHZz+IvFXfja4vARrXVL8c2NjY7v3BABwAolBGnXp0sXJySk2NjY7O7uxsTEzM9PIyAhv4lQsmkdc6j93BO+VmaGGMwAdB4lBStnb23fr1i0wMPDatWsWFhbk+g4Wi+ZS/5ltN776GHivzAw1nAHoOEgMUkpVVdXe3j4kJCQyMvLXX38l169YsYJOp8+ZMwchxGQyEUJEa4V6cPtMQ0MD3q2yshLvaWhoiDufyT3fvn0bGBjIdvhff/01hINly5a1PN3y5ctVVVXv3r1Lrrlz5468vDw5co28s2lzTwBA2zq1B0MKiUXnM/bx40cZGRk3NzfWlZyKRbMWeSYIYuHChQihvXv3ZmVlHTt2DA8auHnzZk1NDaf6zx3EpTKzu7t7jx49cnJy2txTlCHofAYiQzw+wsSIGCUGgiCcnJxKSkpY17RaLDo9PZ2tyHNmZqaxsbGSktLMmTMzMzMnTpxoa2sbERFRX1/Pqf5zB3GpzHzs2DEtLa38/Pw29xRlkBiA6ICazwImSTWfgTBBzWcgOqCPAQAAQDOQGAAAADQDiQEAAEAzkBgAAAA0A4kBAABAM5AYAAAANAOJAQAAQDOQGAAAADQDNZ87hdgNU6LT6WwzaYu1xsbGLl26UB0FAOIK7hgEzNjYeMmSJVRHwR8Gg3H37t13795RHYhg1NXV3bx5k3WCVbGwZMkSY2NjqqMAACGEYEoMgFatWhUTE/PkyRM8/50EWLt2bURERHp6Oi7PAADgCyQGaXf69GlHR8fo6OgFCxZQHYvANDQ0TJw4saGh4cGDB0pKSlSHA4CYgaYkqfbixYutW7e6urpKUlZACHXt2vXKlStfvnxxcHCgOhYAxA/cMUivioqK0aNHa2trJyYmysrKUh2O4CUlJc2ePTswMHDdunVUxwKAOIE7BilFEMSaNWu+f/8eFhYmkVkBITRjxoy9e/du3rw5NTWV6lgAECdwxyClvLy8XF1db9++PXnyZKpj6URMJnPevHmvX79++vSppqamEM5YVFSUnJz8/v17V1dXIZwOgM4AiUEapaWlmZmZeXh4ODs7Ux1LpysrKxszZoyurm58fDzv90be3t4eHh6VlZUyMjLTp0/v0qULQRD19fXv37/Pz8/Py8vT0tJqedS7d+8CAwNPnjxpYGCQkZEh0OsAQHggMUid4uLiUaNGGRkZxcTE0Gg0qsMRhufPn5uamu7cuXP//v28H1VYWPjDDz8MGjTo/fv35Eomk2lubn78+HE9Pb1Wj6qvr1dUVITEAMQa9DFIFyaTaWtrKycnd+7cOSnJCgihkSNHHjt2zM3NLS4ujvej+vbtixBiu8mQkZHZvXu3srIyp6MUFBTaHScAIgKmxJAuv//++71791JSUtTV1amORajWrVv38OFDW1vbx48f6+rq8nJIq4nz+fPnEyZMEHR0AIgWuGOQInFxcZ6env7+/qNHj6Y6FgqcOnVKR0dn0aJFdXV17Ti8sbHx1atXmzZtwotZWVkWFhYuLi7Lly+fNGnSy5cvWz3q0aNH48aNc3BwcHZ2lpWVra6uRgjV1dUdOXLEzs5uzJgxM2bMePXqVbsvCoBOQQDp8OnTJ01NzaVLl1IdCJXev3/fo0eP3377jcf9W/6/qKqq4k2DBg3S1dUlCKKxsVFVVXXYsGGsRxkYGOCf9fX11dTUmpqaCIKwsLAoKioiCMLe3v7du3d4h5kzZ/bq1auyslJAlwiAAEBikAqNjY2mpqY//vhjTU0N1bFQDHe5nz17lpedWT/iGQxGVlbWTz/9hBd9fHzCw8MJgmhqatLV1ZWTk2v1KPyM7KlTp5hM5osXLyoqKh48eNAy31y/fl2QFwlAx0BikAobNmxQVlZ++/Yt1YGIBBcXFwUFhSdPnrS5J+tHPHb69Gny5+rq6sDAwIMHD/7www+sN9+sR126dAn3VJuYmKSnpxMEERAQMHToUMFcCQCdAxKD5IuMjEQIhYaGUh2IqGAwGDNnztTW1i4pKeG+Z8vEQHr48OHAgQPj4uIIgjAwMOCUGAiC+PDhw6xZsxBC+GGw/fv3Kyoqst26MRiM9l8PAIIGnc8SLisry8HBYdOmTba2tlTHIipkZWUvXLjAYDBWrVrFZDI57UZwHeKzYsUKOp0+Z84chBB+kVb337dvn56eXnx8fHh4OIPB2LNnj6GhIe58Jvd5+/ZtYGBg+68HAEGDAW6SrK6uzsTEpGvXrvfu3evatSvV4YiWBw8emJmZ/fHHH3v27Gl1h5qamu7duw8YMODTp08tt6qqqlZVVSUkJBQXF2/duvXbt28PHjzo16+fhoZGt27dtLW1c3NzEUJKSkoFBQVqamp0Ol1TU9PAwODevXtDhw7NyclZs2bNtGnT3r17l56efvnyZRUVlU69XgD4QPEdi0S4c+cOQqh79+7Dhw/HRbi6du1qbGw8bNgw/HFcWFhISWArV65UU1P7+PEjJWcXfb6+vjIyMvHx8S03paSkrFmzBv+PuLi4tOyQCAwMVFFRGTt2bFpamp+fX48ePczNzdPT08nnWX19fcvKyhBCRkZGhw8ftrGx+eWXX/DvIicnZ/78+Wpqar1793ZwcCguLhbG1QLAM0gMAhAbGztlyhSy1RixNDGXlJQMGjQoOztb+FH9+eefNBrt2rVrwj+1GFm+fLmGhkZubi7VgQAgQqCPQQDq6up27tzZrVu3lps0NDTWr1/fvhFVHSGpFXgE7uTJk71797a2tm5sbKQ6FgBEBfQxCEBtbW2XLl3k5P43vwiNRmOdQ62+vl5GRqZLly5Ci0fiK/AIVlZW1tixY1euXOnv7091LACIBLhjEAAlJSUyK7QkLy+fmpq6ZcuWgQMHFhQUmJmZaWlpeXp60mg0PBtPVVWVj48PuYg6NmUCIQUVeARr8ODBZ86cCQgIOH/+PNWxACAaqG7LkkCo+WPs9fX1KSkpioqKCKFDhw4lJiba2dlVV1fjqdzI3VgXOzJlwpEjR+Tk5JKTkwV0NdLCycmpW7dur1+/pjoQAKgHiUHwUGujogYPHowQKi0tJdewjYoiFzsyZUJqaqq8vLyXl5cgrkO60On0SZMm6evrV1RUUB0LABSDpiQhwc1EvEx2/ejRo5ZTJsybN6/NA4uLiy0tLX/++ecdO3YIIGIpIycnFxUVVVNTs3LlSgI63oB0g8QgckpLS3Nycr5//866sqmpiftR0lmBR7D69OkTHh5+48YNX19fqmMBgEqQGASM9y+b+OO7oaEBIcRkMisrK/Hh7ZsyAVfguXLlirRV4BGsKVOmuLu7u7i43Lt3j+pYAKAMVHATMPxNv7a2lm19fX09QqimpoasCmloaJiRkeHu7r5ixYrY2FicIeLj4+fNm6ejo+Pm5lZQUMA6ZQKXk+IKPKdOnZLOCjyCtXPnzkePHllZWT19+rRfv35UhwMAFYTeqyHJbt26tWrVKvzGrl279u7duwRB1NTUHDhwAK90cHB4+vQp3jkzM9PY2FhJSWnmzJmZmZkTJ060tbWNiIior6/na8oEqMAjcFVVVYaGhqampo2NjVTHAgAFYICbeKPT6VOmTKmqqnrw4EGrQ69B+7x69Wr8+PHr16/39vamOhYAhA36GMTb1q1bX758GRUVBVlBsIYPH37mzBkfHx/ujXgASCS4YxBjUVFR1tbWoaGhUGuhkzg6Ol64cCE9PX3IkCFUxwKA8EBiEFcww48QtNpSV1NTc+XKleXLl8vIwA03kEyQGMQSVOARmvz8/FGjRs2YMSMiIgIh9O7dO3Nz8w8fPsTHx+OCnQBIHnhcVSw5Ojp++vTpyZMnkBU624ABAy5evPjzzz9PnDhRU1Nz9erVDAYDD5OGxAAkFdwxiJ/Tp087OjpGR0dDrQWh+eOPPw4fPkyn02m0//3LdO/evaSkRJizqQMgNNBIKmagAo/wFRQUxMfH41lJyC9S1dXV//3vf6kMC4BOA3cM4gQq8AjfvXv3Fi1aVFVVRafTWdfLy8uvWLEiODiYqsAA6DyQGMQGQRCLFy9OTU199uxZ3759qQ5HKkRFRS1duhQhxGQyW25VUVEpKSmRl5cXelwAdC5oShIb3t7e169fj4qKgqwgNH379lVXV+d0c1ZVVXXnzh0hhwSAEEBiEA9paWl79+49dOjQ5MmTqY5FikyaNOn9+1a2IrQAACAASURBVPcrV66k0WgtRy3Iy8tHRUVREhgAnQqaksRAcXHxqFGjjIyMYmJioNYCJZKTk1etWvX582cGg8G6Hp5NAhIJ7hhETk1NDesiVOARBWZmZm/evNm+fbuMjIyc3P+P/qmurr579y6FgQHQGSAxiJbk5OQePXocOXKEvJODCjwiQklJydPT8/79+7q6umSvA7QmAYkEiUG0hIeHEwSxe/fu+fPnl5eX4wo8/v7+UIFHRJiYmLx8+XL37t2ysrLy8vJ0Ov3y5ctsT7ICIO6gj0GENDU19ezZs7y8HCEkJyenrq7e0NBgbm5+/vx5qkMD7F69erVy5cpnz54hhG7evDl79myqIwJAYGCuJBGSnJyMswJCiMFglJWVMZnM4cOHUxuVMG3btu3z589UR8ErPT29pqam169fOzk5jRgxgupwpJqlpaWlpSXVUUgOuGMQIRs2bAgODm5sbGRdSaPRlixZEhQURBaLlmA0Gm38+PEDBgygOhA+1NbWysnJwYNJFEpLSzMxMYHOHgGCxCAqmExm7969S0pKWm6Sk5PT0dG5deuWrq6u8AMTJhqNFhkZaWVlRXUgQJzgPxhIDAIEnc+iIjU1tdWsgBAiCOLDhw9Pnz4VckgAAOkEiUFUXL58udVZd+Tk5Pr163f79m0LCwvhRwUAkEKQGEQCQRCRkZFsTz3KycnRaLTVq1e/e/du6tSpVMUGAJA28FSSSHj48OHXr19Z18jKyurq6oaGhhobG1MVFQBAOsEdg0i4cuUK+ViLnJycjIzMjh07Xr58CVkBACB8cMcgEi5evIifUpWVldXX1z9//vyYMWOoDgoAhBD6+PHj9evXGxoafv31V319farDAcIAdwzUe/LkyefPn2k0mpyc3P79+1+8eAFZQfiSk5OtrKxoNBqNRhs9enRoaChef+fOndmzZ9NoNHNzc/KBSDwL986dOz09PbOysszMzGgtZGdnZ2VleXp6btq0Ca8R2rUUFBSEhIRYWVmZmJhw3/PNmzcLFizQ0NDQ1NRcsmRJYWEh69aqqqqNGzfOnDnzp59+cnZ2xlmBIIjg4OCRI0cqKyuPGDEiJCQEHnmXPLyOY7h06dKlS5c6Oxrp9Pr163fv3qmpqRkbG6uoqFAdTnsIatwpteMYCIJYsWLFhQsXxo8fn5qaSn6UL1q0SF9f39PTk1xDo9H09PQ+fPiAEHrz5s2yZctsbW01NTXx1ocPH6akpLx8+ZJ85YEDB+bl5QnzA/TTp0/a2toGBgYZGRmc9nn79q2rq+uKFSsGDhx47NixCxcuTJs27fbt23hrcXHx7Nmza2pqUlJSevbsSR61a9euz58/m5iYZGVlBQUF1dfX+/v7b9q0qdMviTMYxyBwvDYlXbp0CQ8v7NRopJO6urqRkZGenp6YzqqdlpaGEJKACQloNFpQUNDbt28fPHgQERFhY2ODELp48aKKigprVsDIybdfvXqVlJREZgWEUHJyMtu7oaCgwFckaWlpsbGxHh4e7bwShLS0tNrcJzExMSwsTElJCSEUEhJy/fr1hw8f4k0EQaxaterFixdsWSE/Pz8/Pz8sLAwvzp07d/bs2cePH6c2MQCB46OPAQadg1ZJ0kBlRUXFy5cv//TTT5s2bZoyZUpBQcHJkyfj4+O55OwlS5awLjY0NERHR+NkyS8mkxkXF+fl5ZWSkrJ+/fp2vAJfnJycWBcZDIadnR3+OTY29ubNm3PmzBk/fjzrPnl5eT4+PuTirFmzNDU1i4uLOztUIGTQ+QxAMzo6On5+fvb29kuWLKmuro6JiVFUVOT98Pj4+P79+w8ZMoSvkzY2NkZERHh5eWVnZ69atSokJGTQoEEIodLS0m/fvrV6iKKiora2Nl9n4YTJZO7bt8/Pz49MDOfOnUMIaWlpTZ48+enTp4MHDz548OC8efMmTpzYMvJJkyYJJAwgOiAxAMBuzZo1V69ejYuL27FjB78z+kVGRvLVqlZdXR0UFOTr61tTU+Po6Ojk5NSnTx9y619//eXs7NzqgRMmTLh//z5fsbUqOjra19f3n3/+GThwIELIzs6ORqM9fvwYIaSvr//HH3/k5eVZWlrOnz//4cOHbM9Pp6amNjY2urm5dTwMIFLgqSQAWqGurq6goHD8+PHnz5/zflRtbW1MTAzvieHatWsDBgw4duyYk5PTp0+fDh8+zJoVEEI7duwgOBBIVkAITZky5c8//wwICCgqKnJwcMD3Cl+/fu3Tp8/27dv79u07fvz4w4cPI4T8/f1ZD2QwGHv27AkJCRk1apRAIgGiAxIDAOz8/PwUFBRCQ0PpdPqyZcvq6up4PDAuLk5LS2vo0KE87l9cXFxZWamvrz9y5Mju3bu3N94OUVNTGzp06MaNG0+fPo0QwlWh+vTpwzpzF56RJTMzk/XAAwcOTJ8+fenSpcKNFwgDNCUB0ExCQkJ0dHRiYmLXrl1tbGzCw8N37twZEBDAy7GRkZF8zXX422+/TZgwwdvbe+7cucOHD3dxcVm8eDH5vBMSVh8DtmDBAoQQHoGvr6//zz//EASBe93xM1esVcevX7/erVu3Xbt2CTAAIDrE6Y6hoqKC6hCkC0EQWVlZVEchVFlZWRs3boyMjOzatStCKCAgQE1NLTAw8ObNm20eW1NTc+PGDX4f2x02bNjff/+dk5Mzbdo0e3v7wYMHnzx5sra2Fm/966+/hnCwbNmydlwgg8HgtOnLly8Ioblz5yKEbGxsGhoayGY0PCE82cGQkJBQUFDAmhVSU1PbEQwQWYJPDARB+Pv7u7i4TJ06ddKkSWy3n9i4ceM4dam1VF9f7+HhYWJioqGhIdBIJQpBEGfPnrW0tHR1dbW3tw8PD+eyM5eRsQEBAeTYXRkZGbZmZclWUFAwa9YsZ2fnvn374jXq6uouLi4IoVWrVmVnZ3M/PCYmRltbe9iwYe04df/+/Y8ePZqfn+/g4HDw4EFtbe3jx4+jDvQx4NTS1NTEutLDw6Nnz565ubl48dixY2fPnsXft+rr611cXKysrDZu3IgQWr58+bBhw7y9vfGgvOjo6N69e2/btg0hlJSU5OnpyWAwAgMDAwMDAwICtm7dGhcX146rBiJL8E1J/v7+rq6uFRUVNTU1a9asqaysbLmPjo4O70N+FBQUtm3b5uPjw2QyBRqpRHFzcwsJCXn27Jmamlp5ebmRkdG3b9/YHlQn/fDDDzNmzLCzszMwMGBdT6fTIyIicE8jQkhOTm7FihWdHrpoOHPmjJeXV15e3suXL1+8eIFrOD969CgvLw8hVFxcPGXKlO3bt2/ZsoXTK+DnkToySrFHjx67d+/eunVraGhoUlISp19fm+7evRsREYEQys3N9fLymjVr1siRIxFCSkpKKioqZFNVVVXVyZMnd+zYsWTJki5dumzcuHH69Ok4fjk5uX/++Wf79u0rV67U0tLKzc19/Pixmppaamqqubl5XV3d3bt3Wc/YZtYEYobT9xE2eM4DXvY0MDAYPHgwjy/LO/wRJvCXlQy5ublycnKHDh0i17i7uyspKZWUlHA5CiFkYGDAuubcuXMnTpzg9+y8/220CSEUGRkpkJfqVC3fOu7gr7dTCfAvEGCCb0rKz88X06kdxFdYWBiDwZg+fTq5Ztq0abW1tcHBwby/CJPJPHLkyK5du2bOnLlv376cnJxOiFRyNDQ08L4zl5Z9AESQIJuSYmNjY2Nja2trv379um7duqampgULFiQlJV27di0lJcXGxiYnJ+fp06d37ty5ceNGTk7OvXv3EEJ1dXX+/v5ZWVkvXrzo0aOHr6/v8OHDEUK1tbV79+6tqanp1atXU1PT9+/f8Vm+f/8eHR1948YNPDp//fr1ZWVlYWFhPXv2dHFxuX//vqam5oULF8gJSrOysvbs2aOnp1dYWJibm3vixInhw4fHxMTcuHEjLi7u1atXW7ZsiY2N7du3799//819WlN+T/3o0aONGzf+9NNPPXr0OHbsWEVFRffu3TldLyt+n0XBzc39+/cn1+BhWS9evODpN4cQQqiqqurnn39+9epVWlpaUlLSkSNHXF1d9+3bx/srSJXc3NzNmzf369dv0aJFgwcPbnWfrKysq1evlpWVQUsLEDM83lnwfrOG/r3Lrq+vT0lJwdMJHDp0KDEx0c7Orrq6Gjfaknfi9vb27969wz/PnDmzV69elZWVdDrd2NjY3t6eyWQSBPHhwwdZWVkcbVNT0/v37xFCKioqsbGxb968QQhpa2t7eXlVVFQ8ffoUIWRmZkbGM2jQIF1dXYIgGhsbVVVVhw0bxmQy8/Pzu3XrhhByd3fPzc3FcywbGxtzvzR+T62vr6+mptbU1EQQhIWFRVFREafrZTuRt7c3p9/XhAkTWgaGG8Rra2vJNTiPjh8/npffFJuKigp3d3f8hgcHB3N/TwipbEoCIgWakgSuExMDhr9MlZaWkmtwHzLe58GDBy0/+65fv44fG3/z5g15FDkXPNsrEATRr18/1k2ampqqqqrkgT4+PuHh4QRBNDU16erqysnJsQZGHtWrV68uXbq0eXV8nRo//X3q1Ckmk/nixYuKigpO19v228oVnqymrq6OXIMfShk1ahSXozglBuzPP/9ECBkZGbV5dkgMgFqQGASu08cx4P4G1qExrD0Qjx49Gjp0KFtM8+bNS0hIQAjp6OiQe8rIyLT6Cggh1iGjNBpNQ0OD9VGobdu2zZ8//8SJEx4eHg0NDWRrL+uL0Gg0NTU1XEONl8vh8dSnTp1SVlZ2dHScMGFCQ0ODqqoqp+tt87zcGRoaoubjPMrLyxFCOG+1j729vYKCgrSNYwAAIMoHuJWWlubk5JD9B1hTU1NBQQHe2vFTpKenDx8+XFdX9/fff1dWVu74C/LOwsLi+fPns2bNSktLMzU1PX/+PKfrZTuwtLQ0gwPcEMcGPzvPWn4LD1ZqORcm72RlZdXV1fEcnwAAqUJxYjA0NKyrqzty5Ai55u3bt4GBgfgr8I0bNzp+ihUrVtDp9Dlz5iCEcEMQIaxCWvv27dPT04uPjw8PD8czjnG6XrYD+R3vunz5clVVVdZHy+/cuSMvL49LzaB2PRVTUFBQWFgoAeV3+AKj6wFASNCdz/g7vo6ODrkGP0JTXV1NrqmqqkII9e3blyCIuro63F60Zs2aCxcuuLq6zpw5s7Ky8tmzZ/gb682bN2tra2/fvo0bbT5+/Ej824BOjpbQ1dVFCFVVVbGekcFg4EVcLDMhIeHChQu4FtWDBw9w4UOEEO7cJv7tLWhsbOR+gXydWlFRsaysjCCIxsZGFRWVsWPHcrreNt/YNnl6eurr6+NIKisrBw0adODAAbzJ3d29R48eOTk5rPvju5ZBgwaRa/bv379p06a3b9/iy5w/f/7ChQvJa+FC+H0MTCbz+PHjO3funDJlysSJEzMyMlruY2xszGXYMJu6ujp3d/fx48fLyMjwF7E0YTKZwcHBFhYWe/bssbOzCwsL47LnmTNnRowY0a1bt59++uns2bPkPxorPK6+1Vfgsqkl6GMQOEG+9S9fvly7di1CiEaj7d+/PyUl5cCBAzj9ODg4PH36lCCImpoacooVHx+fysrKnJyc+fPnq6mp9e7d28HBobi4GL9acnKyqampsrKyrq7u4cOHJ02atHbt2qSkpIKCgq1btyKEunTpkpiYeOvWLfz8zKZNm0pKSsgpHI4cOfLt2zeCIAIDA/GHclpamp+fX48ePczNzcnA3NzcKioqfH198aKLiwvrsz1svn79ytepEUJGRkaHDx+2sbH55ZdfcFbjdL0dhP9pbW1t9+zZY2FhERQURP4rHjt2TEtLKz8/n9z5zp07Dg4OCCE5ObkjR448e/aMIIiQkJARI0YoKSktXbp09erVMTExrf4ztyT8xODn59etWzc6nV5eXv7rr78+fPiw5T7W1tZ79+7l/dS1tbVqamq8fxhJoQMHDmhra+PvOmVlZdra2n5+fq3u6eLismzZssDAwM2bN+M5Dvz9/dn2SU9Px48stjycy6ZWQWIQOHjrQUcJPzHA6Hrh4310/adPn2xsbMjFW7duIYT09PRY9ykrK3N1dWV9MpCXTZzAp5PAidPsqsJB4ywjI4Pq6ABCMLqeCryPrm+zLjRBEG5ubs7Ozi1/iVw2AWGCegzsCGF1TYN2gNH1oj+6vs260AEBAdbW1qqqqi1PzWUTECoe7yzgZg1wIvymJASj6/8l4qPrCYK4f/++goLCkydP8GJqaqqPjw/+ma3tjssm7uDTSeDgrQcdRWFiwGB0vciOrqfT6ZMnT8ZvDkEQJSUla9aswWmMaP7pz2VTm+DTSeCgKQmIPV5G1+Ov3qzMzc1RB0bXs1ag2rZtW01NzYkTJ8rKyriPrmdtaud+OTye+tSpU6tXr3Z0dDx//vzx48fJ0fUtr7eDDA0N//nnn4qKij59+uA1vIyuZ6sL7ejo6OjoSA6nxzPUZmRkyMvL7969m9MmPT09wV4LaBMkBiDhyNHmuGEHYx1dz9pu3j7p6enW1tYnT57csGFDWFhYB1+NLxYWFkZGRuvXr09ISDA1NT179iyn68UNZSR++xjI0fVkYmhzdH3LutAxMTGXLl1i223IkCF6enqfP3/mtOnDhw+cTgE6CTyV1ExRUVFUVJSHhwfVgQCBgdH1lIyub7UudH19PWt7Bdle9OHDBy6bOvoegXbgsclJGlrx3r59u379esRncS4B+vz5M67b3LJD7/Xr1+bm5urq6hoaGtbW1gUFBXg9k8k8d+7cvHnzdu3aNWXKlHXr1uHxR8Ik5D4GGF2PRH50fWJi4tSpUwP+5e/vv2XLFldXV7YX5NKRAH0M1IK3vpm6ujoKEwNBEGyP02Bv3rxZuHDh1atXnz59amtrixCaNm0a3nTq1CmE0I0bNwiCeP36NUJowYIFQo5ZmIkBRteznRqJ3uh68jkxNtnZ2WwvCIlBZNEI3u55raysEEJRUVG87CzWaDSagYEBhWPZWgZw/PhxBwcHJSUlhBCdTu/ZsyeDwaipqUEImZqapqWlFRcX9+zZkyCIXr161dfXV1dXCzNgAf5t0Gi0yMhI/IIA8Eh6Pp2EBvoYxICTkxPOChiDwbCzs8M/40dx/vvf/yKEvn//XlZWNm3aNCpiBHyA0fVAxIluYnj06NG4ceMcHBycnZ1lZWXxt+CsrCwLCwsXF5fly5dPmjTp5cuXCKHv379fuHBh6dKl+OuzkZGRtrb2/fv3MzMzFy5cqKmpaWho+PjxY4QQQRBpaWnbt28fOHDg169fFy9erK6u/uOPP165cqXVGHAnnp2d3ZgxY2bMmPHq1SsusbHit6ACj5hM5r59+/z8/Pz8/PAaX19fXV3dLVu25OXlBQYGOjs7h4eHt/v1gXBwuYXHXeIAUIzHJifht+K1OqSz5RBTgp/BogwG4/r163i6x40bNyYnJ4eFheHqPffv38fnRW2NmOUUGyt+h5WyQhw6Oa5evYoHGQ0cOPDMmTNk825xcbGpqekPP/ywdetWvt9lQYDSnoBa0McgcKKbGFoO6SQ4DzHla7AoHuBaU1ODF3GvoLW1NV5EbY2Y5RSboHBKDGVlZW/evAkICMA9e3/99Rden5ub+8svv8yePRshtGPHDnLsqNBAYgDUgsQgcKLblNSyYDLirYAzaqsUMx7gSg7/wSNg8T0HKy71mVuNrbOpqakNHTp048aNp0+fRgidP38eIfTw4cPRo0evXLny2rVrpqamR48e3bdvnxCCAQBIMNFNDC0LJqPOKeCMby/wVJGsuNRnbjU2tmM7o48BW7BgAUKoS5cuCKHdu3eXlpZOmTKla9euFy9eRAgFBQV18PUBAFJOdBNDyyGdqHOGmOIBUzNmzGBbz2UEaauxseJ3WClf8FQEc+fORQg1Njaif5PEgAEDevXqBRPZiz6xHmD/8ePH48ePe3l5tbzJBpKDxyYn4bfitRzSSXAeYsrXYFE8doZOp+PFc+fOjRo1Co9HxfcH2traBOcRs5xiE4iWpZgJgvDx8QkODi4vL8dRLViwwMrKCvclnDhxAiGE+11yc3MRQps3bxZUMDyCPga+iOwA+zZH0VdWVm7YsEFXV/fOnTvksw88lnfuVNDHIHCimxhQa0M6Wx1i+ubNG74Gi+LE4O3t/e3bt6KiosOHD+PZFLKzszdt2oR39vX1LSsr4zSCtNXYOq7VUswEQfzxxx96eno9evRYt27d5s2bExMTWf8tAwMDx44du23btoULF/7++++sEyMLByQGfonmAHvuo+iLioqMjIz09fXZxlHzUt65s0FiEDjRTQydB0r7ChYkhnagNjG0GoCJiQlCCH/u42f5lJWV8SYmkzlnzhwZGZm0tDTWQ3gp7ywEkvTpJCJEt48BACBMXEbRx8bG3rx58+effx4/fjzrIW2WdwZiShoTA27Hx3MNASkHA+xJXEbRnzt3DiGkpaU1efJkZWXlUaNGxcbGIoQmTpxIlmfA2Mo7A3HF452FZNysVVdX7969G1/46tWrU1NTqY5IEoh1UxIMsGfFaRQ9fnzj6NGjhYWFaWlpuLTRw4cP2Q5nK+8sNJLx6SRSpCsxgM4g1okBBtiz4jSKvmvXrn369CF3Cw0NRQgtW7aM9Vi28s7CBJ9OAieNTUkAkGCAPYnLKPo+ffrIy8uTe06dOhUhxFp6GrUo7wzEGiQGINVggD2Jyyh68ilVvIhvZXBnNYbLO8N0LBJD8hODWI8yBZ0NBtiTuIyit7GxaWhoeP78OV4sKSlBCBkbG+PFVss783t2IFIkPDG8e/fu4MGD1tbWuFWUKgUFBSEhIVZWVvhRcU4IgggODh45cqSysvKIESNCQkLIzyMzM7OWRV2ys7OFEr4kO3r0aHl5OULIwsJCRUUFf6//8uVLQUFBYmJiWFhYRUUFQig9PT0/Px8PTCN/KXQ6HSFEPixUX1+P/v2yTyKboW7fvj1q1ChclxQP1Mf7L1iwQEdHx83Nzc7OLiwsbO/evVu2bFm9ejWn2Fjt2LGDUxvx/fv3uVw1DoAtVBsbG4RQXFwcQigvL6+4uHjJkiV40/Lly4cNG+bt7Y2vPTo6unfv3tu2bUMIJSUleXp6MhiMwMDAwMDAgICArVu34hcBYozHvgjx7d6hfJQp1upYUzacBpG+fv16xIgR3t7ef/1r3bp1w4cPF1bsbRDrzmcEA+z/HWDPfRR9WVnZ6tWrly9f7urqumzZMn7LO3cq8f10ElmSnxgIERhlyksYXAaRRkRE4M8a0qpVqw4ePNh5ofJFrBND54EB9kIj1p9OokmuE29GAD+4DCIl7+ixhoaG6OjotLQ0YYcIAJAO4tTHcOnSJXV1dRqNtnfvXrzm5MmTMjIy+NmJVkersjl9+jRunUcIVVVV+fj4kIuI8wBUVp1XaIH3QaTx8fH9+/cfMmRIR04HOhsMsAdijMc7CxG5WcMtuXFxcXgxLy9v6dKl+OdWR6tiiKUNB8/ITW5iXeQ0AJVVZxRzbhWXQaQ2Njb79+/n8XWEAJqS2MAAeyETkU8nSSJOdwwIobVr1w4YMADPD4wQOnPmjLOzM/7Z0dHR3d0dISQrK6uhocE2+obEOk6HdfHhw4fBwcFDhgzB9xCJiYnFxcX37t1jO7zdz4HwBT+bGBISMmrUKLZNtbW1MTExlpaWgjoXEDhlZeVDhw7hv4qQkBDuj6IBIILErI+hS5cuTk5Ozs7O2dnZAwYMyMzMNDIywpu2bdtWU1Nz4sSJsrIy1tGqPMIDUPEEOJTjMog0Li5OS0tr6NChwo8KACAlxCwxIITs7e33798fGBhoYmJiYWFBrk9PT7e2tj558uSGDRvCwsL4fVlyACo5hwFCqKmpCT+SyLrbt2/fWn0FRUVFPNdYB+FBpKzDhVhFRkayXjUAAAicmDUlIYRUVVXt7e1DQkIiIyN//fVXcj2Po1VxV3NDQwPeDU9uQxAElwGorARezJntzob7INKampobN25AO5LogHH1QCKJ3x0DQmjz5s3+/v5GRkasHQZfvnypqqrCfQPkaNV+/fppaGigf0eZIoQMDQ0zMjLc3d1XrFgRGxuLM0R8fPy8efPwANSCgoJp06a9e/cuPT398uXLbKfesWPHjh072hFzq2NNPTw8jh49+uzZs4EDB6J/B5EuWrQIJySCID5+/NitWzdTU1O8f0xMjLa29rBhw9oRABC4d+/eBQYGnjx50sDAwNXVlepw/gd3bNy6dWvw4MFFRUXTpk3DQ5r52pMgiLNnzwYGBn748EFPT8/JyWn16tVscwgihAICAnCN8c69JCB8PHZSi1q/v5OTU0lJCeuaVkerpqens40yzczMNDY2VlJSmjlzZmZm5sSJE21tbSMiIurr6zkNQO04TmNNjx07pqWlxfsgUnNz899//11QUQmKND+VJCLj6lkdOHBAW1u7rKyMIIiysjJtbW0/Pz9+9+SlknN6ejr+i+3Mq+GJqH06SQBxTQxAdEhzYiBEZlw9lpubKycnRz4TRRCEu7u7kpIS27co7nvyUsm5rKzM1dV18ODBkBgkkvj1MQAAOAkLC2MwGNOnTyfXTJs2rba2Njg4mPc926zkTBCEm5ubs7Nzy8YlIBkgMQCAkKSMq8eDaXDpTQxXgHjx4gXve7Y5CD8gIMDa2rqzCwcBKvF4ZwE3a4ATiWlKEutx9diIESMQQrW1teQaPDPH+PHj270n2yD81NRUHx8f/LOITBQIn04CB3cMAPyPBIyrV1FRQc1LkOKfcRGeduzJNgi/tLQ0ODh4y5YtvAQDxJdYPq4KQGcQx3H1hoaGrIuTJ0/+559/KioqyLYgXOqnZZEfQ0NDXvZkG4Tv6Ojo6OiYlZWFF/HT3hkZGfLy8np6eoK9NEAhSAwA/D+xG1efkZHBunj8+HGEUGFhIflx/+XLF4TQxIkT2Q7Eo2G479lyDNXX2QAAIABJREFUEH5MTMylS5fYXmrIkCF6enofPnxoNXIgjqApCYD/J+7j6pcvX66qqnr37l1yzZ07d+Tl5cmRa+S9Tpt7tjoIv76+nrWBi+xjgKwgYSAxANDM5s2ba2pqWo6rb7UKNGv1ZvRvw467u/v79++PHz/eclx9y8LOrDrex6Curr579+7Tp0/jStRVVVVBQUF79+7FTxx5eHj07NkzNze3zT2hkrO047GTGvr9AScS81QSSbzG1bNhMpnBwcG2trZ79uyxsLAICgpiMpl4E+tIey578l7JGZ5KklQ0grd5TpYuXXrx4kXB5SMgUZYsWRIREdHx16HRaJGRkVZWVh1/KSA98B9MVFQU1YFIDl47nw8fPrxo0aJODQWIr7Fjx1IdAgBAYHhNDAMHDsQzgAIAAJBs0PkMAACgGUgMAAAAmoHEAAAAoBlIDAAAAJqBxAAAAKAZSAwAAACagcQAAACgGV5HPgMgBPLy8vzOaA0AEtzYe4DBtNtAhNy5c+fr169UR8ErgiB8fX0zMjKOHz/e6uRC4ujp06dHjhzZvHnzhAkTqI6FDzD2XrDgjgGAdvLy8nJ1dU1KSjIzM6M6FkHaunXrmTNnHjx48OOPP1IdC6AGJAYA2uPu3buzZs3y8vLaunUr1bEIGIPBmDFjRmFhYXp6eo8ePagOB1AAEgMAfMvPzx89evTEiROvXLnCWjZZYhQVFY0ePXrUqFHXrl2TkYFHVKQO/MoB4A+dTl+6dKmGhsbff/8tkVkBIdS7d+/Lly/Hx8cfPnyY6lgABSAxAMCfjRs3vnz58urVqyoqKlTH0onGjx9/9OjRffv23bx5k+pYgLBBUxIAfAgNDV25cuWlS5cWL15MdSzCsHr16piYmEePHunq6lIdCxAeSAwA8Or58+empqZbt2718PCgOhYhqaurmzhxYlNTU2pqqpKSEtXhACGBxAAAT8rKysaMGaOrqxsfHy8rK0t1OMKTm5s7ZsyYOXPmhIaGUh0LEBLoYwCgbUwm09bWtqmp6eLFi1KVFRBCAwcOjIiIiIiICAoKojoWICSQGABo2++//3737t3Lly9rampSHQsFZs6c6erqunHjxpSUFKpjAcIATUkAtOH69esLFiw4c+aMnZ0d1bFQhslkzp8//9WrV48fP+7VqxfV4YDOBYkBAG7ev38/duxYa2vr06dPUx0LxcrLy8eOHaulpZWQkCAnB9OsSTJIDABw9P379/Hjx8vLy6ekpEjMNHkd8fLlSxMTk40bNx45coTqWEAngrQPAEfr168vLCx88uQJZAXsp59+OnPmjK2t7ZgxYywtLakOB3QWSAwAtM7X1/fChQtxcXEDBw6kOhYRYmNjk5KSsmbNmqFDhw4bNozqcECngKYkAFqRmpo6depUNze3nTt3Uh2LyKHT6dOnTy8qKkpPT1dVVaU6HCB4kBgAYPf169fRo0ePHTs2OjpaUqfJ6yB4iyQbjGMAoBk6nW5lZaWsrHzu3Dn4yOOkT58+ly5diouLO3r0KNWxAMGDxABAM1u3bn327NnVq1ehkYQ7U1NTT0/P3bt3JyQkUB0LEDBoSgLg/4WHh9va2l68eNHKyorqWMTDihUr4uLiHj9+DF30kgQSAwD/gx/S37Bhg5eXF9WxiA081ENJSenevXtdu3alOhwgGJAYAEAIhvV2AB4cvmTJkj///JPqWIBgQB8DAIjJZC5fvry2tjYsLAyyAr/09fVDQ0ODgoLOnj1LdSxAMCAxAIAOHjyYkJBw6dKlvn37Uh2LWJo/f/6uXbs2btz4+PFjqmMBAgBNSUDaJSYmzpkz58SJE2vXrqU6FjHGZDJ/+eWXt2/fPnnyRDonJ5ckkBiAVMvLyxs9ejSUJxMIqS1yJ3kgMQDpVV9fP2HCBChoLEC4LPa2bdvc3d2pjgW0H/SzAenl6OiYk5Pz+PFjyAqCMnLkyNOnT69cudLIyGjx4sVUhwPaCRIDkFKBgYHnz5+PjY3V1dWlOhaJsnz58n/++Wf16tVDhw4dMmQI1eGA9oCmJCCNHjx4YGZmtm/fPldXV6pjkUB0On3q1KmlpaXp6endu3enOhzAN0gMQOoUFRWNHj161KhR165dk5GBJ7Y7RX5+/ujRo6dPnx4REUF1LIBv8F8BpAuDwbC2tlZUVDx//jxkhc4zYMCAyMjIy5cv+/n5UR0L4Bv8YwBJdu7cue3btzc0NJBrnJ2d09PTo6KievToQWFg0mDq1Knu7u7Ozs7JyclUxwL4A01JQJJpa2t/+vRp1KhR//nPf/r373/x4sWlS5eeO3duxYoVVIcmFQiCsLa2vnfv3pMnT3744QeqwwG8gsQAJFZ6evq4ceMQQvLy8t26dfPx8dmyZYudnZ2vry/VoUmRmpqacePGqaioJCcnd+nShepwAE+gKQlIrMjISHl5eYQQnU6vqqqyt7fv2bPnkSNHqI5LuigrK1+9evXt27fbt2+nOhbAK0gMQDIRBBEREUGn0/Eik8kkCCI3N3fRokWVlZXUxiZtDAwMzp07d+LEib///pvqWABPIDEAyZSamvrlyxe2lUwmMyEhwcjI6M2bN5REJbUWLly4fft2R0fHp0+fUh0LaBv0MQDJ5OTkdOrUKfKOgRWNRuvevXtZWRlM9CZMTU1Nc+fOzczMfPLkiYaGBtXhAG7gjgFIICaTGR4e3mpWkJOTU1ZWDgwMhKwgZLKysqGhoU1NTUuXLm1qaqI6HMANJAYggZKTk0tKSthW4uFss2bNevfu3fLly6mIS9r16tXr8uXL9+7dg7lXRRwkBiCBIiMj2Z6MlJeX19TUvHLlyo0bN+CBegqNGzfOz8/v4MGDN27coDoWwBH0MQBJw2AwevXqVV5ejhdlZWWZTKa9vf3Ro0dVVFSojQ1gdnZ20dHRjx490tPTI1fevn3byMhIXV2dwsAABncMQNLcvn2bNStoaWnduXMnKCgIsoLoOHHihJ6e3qJFi2praxFCjY2Njo6OM2bM8PT0pDo0gBAkBiB5IiMjZWRk5OXl5eTk9u3bl5GRMWXKFKqDAs0oKChcuXKlsLDQwcHh8+fPEyZMCA4ORgiFhYVBG4YogKYkIFEaGxs1NTWrq6vHjRv3119/QaEYURYfHz937tzu3bvX1taSj5ClpqaamJhQGxiACm6CtG3bNpiHR0Q8fPhw6NChVEfBq/79++fn51MdhbDl5eXRaLSamhry6dUuXbpERkZCYqAc3DEIkpWVVX5+/rZt26gOBIiTtLQ0X19fqfpPrKmpWbVq1dWrV1tetaam5tevX2GUCbXgjkHABgwYYGlpSXUUQJxIVUpACJWUlJiYmOTl5bV64SUlJffv3zczMxN+YIAEnc8AAKFiMBh4TsNWt8rLy0dFRQk5JMAGEgMAQKj69OmTkZHh7u4uJycnJ8feaEGn08PDwxkMBiWxAQwSAwBA2OTl5V1cXJ49ezZy5MiWlbcrKir++9//UhEX+B9IDAAAavz4448PHz48deqUoqIi662DvLz8xYsXKQwMQGIAAFBGRkbmt99++/Dhw5w5cxBCNBoNIUSn06OiohobG6mOTnpBYgAAUKxfv34xMTFRUVFqamq4Gmt1dXVSUhLVcUkvSAySIzk52crKikaj0Wi00aNHh4aG4vV37tyZPXs2jUYzNzcnn/eg0WgyMjI7d+709PTMyspifZ2AgAD8xQ0hlJWV5enpuWnTJvyyQruWgoKCkJAQKysr7mOdzMzMaC1kZ2ez7cZ6RQih8vJyR0fHffv2bdmyZeXKlYWFhZ1yDYBPlpaWmZmZ1tbWeBFak6hEAMGxtLS0tLSkMAAmk2lra4sQGj9+PH4iEPv111937tzJugYhpKen1/IV0tPTFRUVW/5haGtrC/mvJS8vDyFkYGDAaYfXr1+PGDHC29v7r3+tW7du+PDhbLuxXVFtbe3gwYM9PDzw4pkzZ3r37v358+dOugpeREZGCuS9vXfvXsuHfABok5yc3L1791j/luDPSKLQaLSgoKC3b98+ePAgIiLCxsYGIXTx4kUVFRVPT0+2r/wtP0TKy8v/85//DBgwgO0eAiGkoKDAVyRpaWmxsbEeHh78X8T/aGlpcd/h1atXSUlJmpqa5Jrk5GS20YUtr8jf3z8rK8vCwgIvrly5cufOnX/88QeexE2sffnyhcFgSMYggIaGhsLCQh0dHaoDkQpWVlbsBdI7/j0FkCi/Y8A+fvyorKysrq5eUFCQnp4+adKk2tpatn1Qiy/jTCZz69atFRUVBgYGLf8wWl3ZUlNT0/Xr1ydNmiQjI7Nx48YOXkjLILmor69XVVV9+/YtuabVK8KdnHV1deRuM2bMUFFRYb2dEjJB3TEI6nWAtEEIRUZGsq6BOwYJpKOj4+fnZ29vv2TJkurq6piYGNyWwl1AQIC1tbWqqmr7TtrY2BgREeHl5ZWdnb1q1aqQkJBBgwYhhEpLS799+9bqIYqKiriFSiDi4+P79+/POp1qq1dUVFSEECorK+vXrx9eo6mpWVVV9fXr1759+woqGADEGiQGybRmzZqrV6/GxcXt2LFjwIABbe6flpbGYDDGjRvXjnNVV1cHBQX5+vrW1NQ4Ojo6OTn16dOH3PrXX385Ozu3euCECRPu37/fjjO2KjIykrUdidMVGRgYPH36NCkpacWKFXgNfgwGhtoCQIKnkiSWurq6goLC8ePHnz9/zn3P0tLS4ODgLVu2tOMs165dGzBgwLFjx5ycnD59+nT48GHWrIAQ2rFjB6cbWAFmhdra2piYGDIxcLmiLVu20Gi0Xbt2paSkVFZWXrlyJTExUVZWFm4XACBBYpBMfn5+CgoKoaGhdDp92bJldXV1XHZ2dHS0tbXNysrKyMjIyMhoaGhACGVkZLR87rOl4uLiyspKfX39kSNHdu/eXWAXwKe4uDgtLS2yAAOXKzI2Nr5x40bfvn1//vlnMzOz2tpaJpM5depUeJ4HABL8M0ighISE6OjoxMTErl272tjYhIeH79y5MyAggNP+MTExly5dYls5ZMgQPT29Dx8+cD/Xb7/9NmHCBG9v77lz5w4fPtzFxWXx4sWsH7LC6WOIjIwkHzRCbV3RnDlzcBc03rO4uHjVqlUCCQMACdH5Pd5SRBSeSsrMzNTX1y8sLMSLpaWlampqCKG4uDjW3RDnB37a91RSfn7+9u3blZWVdXR0Tpw48f37d7ze29ub09/ehAkTuF9Lq0HS6XS2NdXV1YqKiq9eveL0OpyCr66uHjx48KRJk5qamrhH0qkk6amk8vJyagMA7YBaPJUETUkSpaCgYNasWc7OzmSLubq6uouLC0Jo1apVvDQNtVv//v2PHj2an5/v4OBw8OBBbW3t48ePow70MdTW1iKEyKKPmIeHR8+ePXNzc1lXxsTEaGtrDxs2jK+AGxsb7ezsEELh4eEtJ/iUbARB+Pv7u7i4TJ06ddKkSZmZmS33GTduHKenBlqqr6/38PAwMTHR0NAQaKQShSCIs2fPWlpaurq62tvbh4eHc9mZ0+B/LqP9CYI4f/78/Pnzd+/ePXXqVEdHx/Ly8vaFCk1JkuPMmTNeXl55eXkvX7588eL/2rv3uJrv/wHgr26kmspCZl2UWmabb0xIueQ2c2v7Nqm0ZtXISGwNFUqJUKLipyVrxGgb35RL+TJTUua2CRmKFpU63e91Pr8/3j+f36dz61Sn8zmX1/MPjz6f87m8T96d1/m8P5/X+3V3zJgxAHDjxg2SQlxeXj5t2rRvvvmmZzeZxaSnp7dx48a1a9ceOXLk4sWLa9as6dlxLl++fPz4cQAoKirauXPn7Nmz//WvfwGAlpbWwIEDee4HkOeRujVjR35+/rJlyywsLH7//fehQ4f2rJHya9++fYGBgdXV1fX19V9++WVNTQ3/NiNGjBA/q1FTU3PdunWRkZFcLleiLVUooaGhiYmJt2/f1tfXr6qqsra2fvXqlbC/keHDh8+cOdPT05Nc7xL5+fk1NTW7du2i8zpzc3Ozs7PNzc0B4ODBgz4+Punp6R9//HF+fv5777338uXL06dP96StfXyNolxkYShJTNCd3DFK7AQ32VdYWBgcHBwaGnrnzh222/J/pD+U9M4771haWvb+jPyHVYxO0heKiorU1dXDw8PpNWFhYVpaWhUVFSL24vk7PX78+KtXr5gbfPHFF1u3biU/k2uL8vJyiqK4XK6BgYGOjo44bQMcSkI08qyOmBTmMX9TU9MtW7YEBQWRKyrlVFxcLM0pEREAJCcnt7e3z5gxg17j4ODQ2NjYrblYlixZwpwDpqWl5dSpU/RjF4MGDQIAUuOooaGBw+E4ODj0rLU4lKS8ioqKfH1933rrrU8//dTS0lLgNo8ePfr11185HE6f3p9AUpOWlpaWltbY2FhaWrpixYqOjo5FixZdvHjx9OnT2dnZrq6uhYWFt27dunTpUnp6emFh4e+//w4ATU1NZI6pu3fv6unp7dmz5/333weAxsbGoKCg+vr6IUOGdHR0NDQ0kLM0NDScOnUqPT392bNnkZGRK1eu5HA4ycnJgwcPXr9+fVZWloGBwdGjRz/88EOy/aNHjwICAszNzV+8eFFUVBQXF/f++++npqamp6efPXv2r7/+8vPzS0tLGzZs2A8//EDvJVB3T33jxo1Vq1Z98MEHenp6UVFR1dXVb7zxhrD3y9Tdx+3IHbW3336bXkMyT+/evSvW/5wgPNn+e/bsefDggZ+fn42NzfHjx/39/Tdt2tTDQ4tzoYHEJEdDSUh2SH8oCV4PUDQ3N2dnZ5MZU8LDwzMzMz09Pevq6nimtvXy8nrw4AH5edasWUOGDKmpqWlra7OxsfHy8iLTTD1+/FhNTY00oKOj4++//waAgQMHpqWl5efnA4CJicnOnTurq6tv3boFAFOnTqXbM3LkSDMzM4qiWltbdXV1R48ezeVyi4uLtbW1ASAsLKyoqIhMI29jYyP6rXX31BYWFvr6+uSxNCcnp7KyMmHvl+dE3X3cjlyhMmctI3F04sSJ4vxPCeTq6hocHMxcU15ebmtrO3z48LVr14o4LP9ZeIaSMDBIEgYG1AMsBgaCXC9WVlbSa8g9ZLLN9evX+T/7zpw5QzJj8vPz6b0sLCzoBjCPQFEUmZmKfsnAwEBXV5feMTIy8tixYxRFdXR0mJmZqaurMxtG7zVkyJB+/fp1+e66dWoyMnPgwAEul3v37t3q6mph77frX6tI9vb20Hn2RvLc3dixY0XsJSIwNDQ06OjoMH//FEUVFRXNmzfvo48+AoBvv/1WzOew+QMD3mNASNmR+w1khJq5hrhx48a7777L81Eyf/78jIwMAGDOjM186pfnHgYzK15FReXNN99kPgq1bt26BQsWxMXFbdu2raWlhb6hxTyIioqKvr6+OPU+u3XqAwcO6Ojo+Pj4TJ48uaWlRVdXV9j77fK8ollZWQFAdXU1vYY8S0pP5thdPNn+AJCbmztu3DgPD4/Tp0/b2tru3r178+bNPTs4BgaEkCiVlZWFhYX0/QOio6OjpKSEvNr7U+Tl5b3//vtmZmabNm3S0dHp/QHF5+TkdOfOndmzZ+fk5Nja2v7444/C3i/PjpWVlQ+FIANxPEieDbNcICmBYGdn17OW82T7A8DGjRsrKyunTZvWv39/Uv8uPj6+ZwfHwKBomF9JEOo9KyurpqamiIgIes39+/djY2PJV+D09PTen+Lzzz9va2sj85SQgSAyviEFmzdvNjc3v3DhwrFjx9rb2wMCAoS9X54dDx8+PEoINzc3/hO5u7vr6upevnyZXnPp0iUNDQ1STQu6+eBffX19eno6T1kqcjnVr18/ADAyMhoyZEjPnz0TZwQKiUn8ewxcLnfv3r3ffffdtGnT7OzsHj58yL+NjY2NiLRhHk1NTWFhYRMnTlRVVe1Gi5UMl8tNSEhwcnIKCAjw9PRMTk4WseX3338/ZswYbW3tDz744NChQwIr+ezbt4/nj+iff/4h2a2ibyoySfkeA/mOP2LECHoNeYSmrq6OXlNbWwsAw4YNoyiqqamJjBd9+eWXR48eDQwMnDVrVk1Nze3bt9XU1AYNGnTu3LnGxsb//ve/ZNDm6dOn1OsBdDpbwszMDABqa2uZZ2xvbyeLAwcOBICMjIyjR48OHjwYAK5fv/78+XOyGf2bJ6Mura2tot9gt049YMAADodDUVRra+vAgQPHjx8v7P12+Yvt0o4dOywsLEhLampqRo4cGRISQl4KCwvT09MrLCxkbk+uWkaOHMl/qOTkZCsrK54+GRcXBwDkbg2ZHcDX11echgHefO5T4geG6OhobW3ttra2qqqqTz75JDc3l38bZ2fnoKAg8c/e2NhIpkUSfxdlExISYmJiQj4IOByOiYlJdHS0wC3Xr1/v5uYWGxvr6+tLEoD37dvHs42w+thdVqvmIc3A8Oeffy5fvhwAVFRUgoODs7OzQ0JCyHdEb2/vW7duURRVX1+/YcMGsjIyMrKmpqawsHDBggX6+vpDhw719vYmKVQURV25csXW1lZHR8fMzGz79u329vbLly+/ePFiSUnJ2rVrybfXzMzM8+fPkweWVq9eXVFRQaIpAERERJB0rdjYWPKhnJOTEx0draent3DhQrphoaGh1dXVe/bsIYvr16/nr0hIKy0t7dapAcDa2nr79u2urq7z5s0jUU3Y++0l8r1k6dKlAQEBTk5O8fHx9Cd7VFSUsbFxcXExvfGlS5e8vb0BQF1dPSIi4vbt28xDLVy4cNOmTfzHj42NHT9+/Lp16xwdHTdt2sS81y0CBoa+JX5gwNRT6RM/9fT58+eurq704vnz5wHA3NycuQ2HwwkMDGQ+NsMks4EBIX78gQHvMbADU0+lT/zUU5IbRS/Onj3bwMCgvLycXkNRVGhoqL+/P/4nsoJ/Fjnaw4cP2W6dIsDMZ2nD1FPZTz3lf1CktbWVPIdO9LI+NuolSlq3ppUXO5cuCkr8oSTA1NPXZDz1lKKorKwsTU3NmzdvksVr165FRkaSn4WN3QEOJSH5AXiPoU/1IDAQmHoqs6mnbW1tU6ZMIb8ciqIqKiq+/PJLOqEUAwNSAPyBAe8xyARMPZXZ1NOQkJAZM2a4uLiQxd7Ux0ZIXuA9BjlAp2KSgR2CmXrKHDfvmby8PGdn5/3793/99dfJycm9PFq3ODk5WVtbr1y5MiMjw9bW9tChQ8LeLxkoo3X3HgOdempoaEjWdJl6eubMGW1tbfrZTehdfWyE5AVeMcgBTD1lJfU0IyOjpKSEGRWuXbvW3NzMvI6hh5IwKrClrKzs5MmT27ZtY7shPfH06dO9e/fu3LmT3JaTIZIfr1JiYt5jwNRTkPnU08zMzOnTp8e8tm/fPj8/v8DAQJ4DCrzHICJhVSC8x9Bj9+/fX7lyJXSzHKEECUt0nzJlCv+H7ePHj+kNampqvv76azMzs0uXLglMqpcmwJvPfUqcwICppzynBtlLPaWfE+Px5MkTngPyBwbRCasCYWDojaamJhYDAyUo0f3evXtjxozZtWvX4ddWrFjx/vvv0xuUlZVZW1tbWFhIqmP3EgaGvoX1GFAPYGDoJXYDA38DRFdm5nK5c+fOVVVVzcnJkWorheMPDHjzGfWEiIzfBw8ekJsfCCmnJUuWMBdJZeacnByymJaWdu7cublz506cOJGN1okFbz6jnhDx7QOjgtK6cePGhAkTvL29/f391dTU6urqAODRo0dOTk7r1693d3e3t7f/888/AaChoeHo0aMuLi62trY5OTnW1tYmJiZZWVkFBQWOjo4GBgZWVlZ//PEHAFAUlZOT880335iampaWlv773/8eNGjQe++998svvwhsA3lswdPT88MPP5w5c+Zff/0lom1M3a2vID6eysxJSUkAYGxsPGXKFB0dnbFjx6alpfXm+H2iby9RlAwOJaEeUJihJIFJ7PxJ9VR30uPb29vPnDlDJrhdtWrVlStXkpOTSTGfrKwscl7oao4AYW1j6m4iPRN0pzIzefhi9+7dL168yMnJIc+aC5xfWWoA7zH0KQwMqAcUJjDwJ7FTwpPqu5UeT1L66+vrySJ5DsLZ2ZksQldzBAhrm6SICAz8lZn79+9vaGhIL5KZZtzc3CTYnu7iDww4lIQQkgz+JHYQL6keukqPJyn9dMLjwoULAYD/2X8ROfMC2yYF/JWZDQ0NNTQ06MXp06cDQEFBgXTaIyYMDAghyeCvnwx9U8+ZXF6QyXGZRJRrFtg2nn374h4Df2Vm+ilVskguZZjT4cgCDAyo22Q/17RnCaWym4YqJ/iT2KFvkupJiujMmTN51ovImRfYNqbuJtKLQ2BlZldX15aWljt37pDFiooKALCxsenZKfqK1IaxlIEy3GOQ2VxTQmBCKZfLTUpKmj9//oYNG6ZNm7ZixQqSay16L6lRmHsM/EnslPCk+m6lx5NEwra2NrKYlJQ0duxYkoFPrg9MTEwo4XMECGubRHS3MnNbW9vo0aNdXFzI+piYmKFDh/J0SCkDvPncp5QhMFAymWtKCEsoPXDgAACkp6dTFHXv3j0AWLRoUZd7SY3CBAYQlMQuMKk+Pz+/W+nxJDDs2rXr1atXZWVl27dvJ/PHPHnyZPXq1WTjPXv2cDgcYTnzAtvWez2ozExRFIfDWbZsmbu7e2BgoJubG7PUMyswMPQtJQkMlOzlmlIiE0onTZoEAOQzgjzxoqOj0+VeUqMwgaHvYDHzPsUfGPAeA1IQJKF0zpw5/Aml5M7eb7/9BgANDQ0cDsfBwaHLvRBSWhgY5BvmmtJEJJTu2bPHzMzMz8/v2bNnsbGx/v7+x44d63IvJDvIOH59fT3bDVEaLF27KCbpDyVhrilNdEJpeXm5ra3t8OHD165dK/5e0oFDSSLU1dVt3LiR9Iply5Zdu3aN7RYpIMB7DH1K+oEBc01pohNKi4qK5s2b99FHHwHAt9+q+75kAAAgAElEQVR+SxdtloU0VAwMiF38gQGHkuQb5prSRCSU5ubmjhs3zsPD4/Tp07a2trt37968eXOXeyGktDAwyDfMNaWJSCjduHFjZWXltGnT+vfv/9NPPwFAfHx8l3shpLQwMMg3zDWliUgobW1tBYB+/foBgJGR0ZAhQ+iLJ/lIQ1UCsp9Or1ykNYqlFKR/jwFzTWkiEkrj4uIAgNx3KSoqAgBfX98u95IavMfAejo9ITqpnkYKxDo5OQUEBHh6eiYnJ9MvdVnqmSAZfH3yHnoE8OZzn5J+YADMNWXkmgpLKOVyubGxsePHj1+3bp2jo+OmTZuampq63EtqMDBQMpBOTwhLqmcKCQkxMTEh3x44HI6JiUl0dDQlRqlnIi8vj1QU77t30V0YGPqWImU+Y66p1GBgIGQhMHTZjKKiInV19fDwcHpNWFiYlpZWRUWF6FLPBIfDCQwMtLS0lKn/Kf7AgPcYEEJIXMnJye3t7TNmzKDXODg4NDY2JiQkLFmyhDy8QJBSz8w5tymKCg0N9ff3F1EyXUZgYECCYa4p6pmUlJRBgwapqKgEBQWRNfv371dVVSVPgglMy+dx8OBBFRUV8ulZW1sbGRlJL4LwTHumvivgnJWVBQAkEZIgj+rdvXuXZ0ueUs8AEBMT4+zsLLUaQb3C0rWLYlKMoSTMNZUyxRtKIreszp49SxafPXvm4uJCfhaYlk8AYwyHPBlBv8RcFJZpz9R3BZzHjBkDAI2NjfQa8hWK/341T6nna9euRUZGkp9lbZwWcCgJdUlHR4ceQk1MTCRTkyIkvuXLlxsZGZHZzgHg+++/9/f3Jz/7+PiEhYUBgJqa2ptvviksl5CZdchczM3NTUhIGDVqFLmGyMzMLC8v//3333l2//bbb4V9CJKv/D1GHvljjgWRn8kj0bTGxsbU1FS6RE9lZWVCQoKfn19vTi1N6mw3ACGkaPr167dmzRp/f/8nT54YGRkVFBRYW1uTl9atW1dfXx8XF8fhcJhp+WIimfZkpi9WWFlZXb16tbq62tDQkKypqqqC1xmgNJ5Szz4+Pj4+Po8ePSKLLS0tAPDw4UMNDQ1zc3PptV5sGBgQQpLn5eUVHBwcGxs7adIk5g3YvLw8Z2fn/fv3f/3118nJyd09LJ1pT0/WAgAdHR3k2WvmZq9evRJ4hAEDBpCUnZ4ZPXo0ALx48YIODC9fvgQAOzs75mY8pZ5TU1NTUlJ4DjVq1Chzc/PHjx/3uDF9B4eSlJ2SZJxSFEV/X0NSoKur6+XllZiYeOLEiU8++YReL2ZaPhmfId+suVwumcWLoigRmfZMEi/gTF/ZuLu76+rqXr58mX7p0qVLGhoarq6u9Br+Us/Nzc3M4Sz6HoNsRgXAwKDkHjx4sHXrVmdnZzKrqIygKIokoAYGBnp5edG1E7q7ZUxMjMprqqqqdBIf/zaSfw8IwNfXt76+3tramnnD4OXLlyUlJZmZmcnJydXV1QCQl5dXXFxM0vKbm5vJZlZWVgAQFhb2999/7927l0SICxcuzJ8/f8SIEaGhoSTlOCgoyM/Pb9myZTyn7vE9BtIMMtkXbdu2bYMHDyY584MGDdq4cePBgwdJfZHa2tr4+PigoCDmNGKpqakmJibk2kJe9fQ+NhJAHp9KkpGMUyZhmaXd2rK1tXXSpEnbX9u1axd/QQgZyUFVvKeSaGvWrKmoqGCuEZiWn5eXx5NOX1BQYGNjo6WlNWvWrIKCAjs7u6VLlx4/fry5uVlYpn3vCUuqj4qKMjY2ZibSJyQkLF26NCAgwMnJKT4+nsynQhNW6pkm+08lyVDjFIA8BgZKZjJOCRGZpd3aMikpKS4uTsSJZCcHVYEDA5IL/IEBh5KQbBGRWSr+llwuNyIiYsOGDbNmzdq8eXNhYSHPvpT85KAiJH0YGBSHYmScip9ZKmLL2traOXPmTJgwIScnJzQ01MrKauvWrcx95SkHFSHpY+naRTGxPpQk1xmnhPiZpeJsWV1dHRYWRp5lTEhIICtlLQcVh5IQuwCHkhSbAmSciplZKuaWurq6gYGBpB4D+VfuclARkj5McFMo8phxSh5MpE2ZMkWczFIQOwcVALy8vPz8/Egeg9zloCIkfRgYFI3cZZw+fPiQubh3714QI7MUxM5BBQA1NbVBgwaRYnZyl4OKkPThUJKikfeM0y4zS7uVg0qUlJS8ePGCZKLKXQ4qQizok3sZyor1m8/E06dPVVVVQ0NDmSuFFYJmFnCmKMrR0REAgoKCHj16FBUVpa+vDwDnzp2rr68XVttZ4nbs2GFhYUGKUdfU1IwcOTIkJIS8FBYWpqenV1hYKHrL4ODg1atX379/n6KoxsbGBQsWODo60uWsmfDmM0LAd/MZh5IU0IgRI1avXu3j48NcGR4eHhAQEBgYuG/fvsDAwODg4PDw8KCgIPIc0bNnz6Kjoz08PCIiIl68eBEVFZWbmxsbG/vrr7+amppWV1erq6tfunTJ19f31KlT6enpCxcuTE5OJsFG4r777jsDA4OVK1caGxs/evTou+++8/LyIi9paWkNHDhQXV1d9JbGxsanTp06dOjQokWLNDU1vb2958+fryQpC/wDZQh1lwolaDwB9czixYsB4OTJk2w3BMmTkydPOjs79/4v8erVqw4ODt19rAAh8rXP3t7+/9ew2BqEkATZ29u3tbWx3QqkCPDmM0IIoU4wMCCEEOoEAwNCCKFOMDAghBDqBAMDQgihTjAwIIQQ6gQDA0IIoU4wj0HCiouLMfUUdcv169fZbgJCnWBgkKS33347JSWF5D8jJD5mHTqEWIdTYiijPXv2fPvtt7/88guZMk8hVVRUTJw48a233srMzOzfvz/bzUFInuA9BqVz7tw5f3//iIgIBY4KAGBgYJCamvrnn3+uWLGC7bYgJGfwikG55OfnT548+dNPP01MTGS7LdJw/vz5BQsWhIWFrV+/nu22ICQ3MDAokdLS0gkTJpiammZmZvbr14/t5kjJvn37/Pz8jh8/7uzszHZbEJIPGBiURVNTk4ODw6tXr65fv25gYMB2c6Rq1apViYmJv/32m42NDdttQUgOYGBQChRFubm5XbhwIScnx9LSku3mSFtHR4ejo+PNmzdzc3ONjIzYbg5Csg4Dg1IIDAzctWvX+fPnHRwc2G4LO+rq6iZPnqympnb16lUdHR22m4OQTMOnkhTfjz/+GB4eHhsbq7RRAQDeeOON1NTUly9fOjs7d3R0sN0chGQaBgYFl5WV9dVXX23cuPGrr75iuy0sMzU1PXPmzOXLlzds2MB2WxCSaTiUpMgKCwsnTpxoZ2eXkpKiqopfAgAATp48uWTJkv3792N+A0LCYGBQWLW1tZMnT+7Xr9/vv/+ura3NdnNkyJYtW7Zv337u3LkZM2aw3RaEZBEGBsXU1tb28ccf379/Pzc3F+fh4UFRlLu7+5kzZ65duzZ69Gi2m4OQzMHAoJhWrlyZlJT022+/jR8/nu22yKLm5mYHB4fS0tLc3NzBgwez3RyEZAuOOyugqKiogwcPHjt2DKOCMJqamqmpqaqqqp9++mlLSwvbzUFItmBgUDTnzp377rvvdu7cuWjRIrbbItPILHv37t1bvnw5221BSLbgUJJCyc/Pt7W1dXJyOnToENttkQ8XLlyYP39+aGgoPsOKEA0Dg+JQzjnyei8mJmbNmjXHjh1bsmQJ221BSCZgYFAQTU1N06dPr66uzsnJ0dfXZ7s5cmb16tWHDh26fPnyhAkT2G4LQuzDwKAIKIpydXXNyMi4fv26hYUF282RPzjLHkJMGBgUQUBAwO7duy9cuDB9+nS22yKv6urq7OzsOjo6rl27NnDgQLabgxCb8KkkuZeUlLR9+/a4uDiMCr1BZtmrqKhYsmQJzrKHlBwGBvmWlZW1fPnygIAAb29vttsi90xMTNLS0q5cuYJ1QJGSw6EkOVZYWDhhwgR7e3ucI0+CUlJSnJ2d4+LifHx82G4LQuzAwCCvamtrbW1t+/fvj3PkSVxwcHB4ePjZs2dnzpzJdlsQYgEGBrmEc+T1KYqiPv/889TUVJxlDyknDAxyycfH5+jRo1lZWWPGjGG7LYqpubl5xowZL1++xFn2kBLCgWn5ExkZGR8ff/ToUYwKfUdTU/M///mPmpoazrKHlBAGBjlz9uzZ9evX7969G+fI62v0LHtYFRUpGwwM8uTOnTvOzs4eHh5r165luy1KYdSoUT/99NOxY8fCw8PZbgtC0oP3GOTGy5cvJ0yYYGZmlpGRgXPkSVNCQsJXX32VnJzs4uLCdlsQkgYMDPKBzJFXU1Nz7do1nCNP+nx9fRMSEi5dujRx4kS224JQn8PAIAfIHHmZmZk5OTk4Rx4rOjo6Pvnkkxs3buTm5hobG7PdHIT6FgYGObBx48bIyEicI49d9Cx72dnZurq6bDcHoT6EN59lS2JiopubW319Pb0mKSlpx44dOEce6+hZ9lxcXJiz7MXFxWGFH6RoKCQzuFwuKQbw7rvvPn/+nKKo33//vX///oGBgWw3Df2fGzduaGlprV27lqKotrY2ej6lP/74g+2mISQx6qxGJdTJb7/9VlxcDAB///332LFjExISvL2958+fv3XrVrabhv7Phx9++MMPPzg7OxsZGWVkZGRkZACAhoZGYmLiuHHj2G4dQpKB9xhkiLu7+4kTJ9ra2gBATU0NAMzMzO7evTtgwAC2m4Y68ff3j4+Pb2pqIv9ZAKCtrf3q1Sv8n0KKAe8xyIra2tqUlBT6g6ajo6Ojo+Pvv/+OiIjA4C1Trl+/fvjwYWZUAICmpqbTp0+z2CqEJAgDg6w4fvx4e3s7//rQ0NAlS5Y0NzdLv0mIX0pKytSpU6urq5lRAQBUVFS+//57tlqFkGThUJKsGDdu3J07d7hcrsBX582bl5aWJuUmIR5Hjhzx8PAQ9iejoqJSWFhoYmIi5VYhJHF4xSAT8vPzb926JTAqaGhoaGpqfvzxx9JvFeIxevRoc3NzcvuHn7q6+g8//CDdFiHUJzAwyITDhw9raGjwrCQfQLNmzSooKFi5ciUb7UKdjB079v79+5GRkdra2vz/X21tbfHx8cKu+RCSIziUxL729nZDQ8PKykrmSlVV1VGjRh04cMDe3p6thiFhKisrg4OD4+Li1NTUeO4MXbx4ccaMGWw1DCGJwCsG9p05c4bD4dCLGhoab7zxRlRU1N27dzEqyKY333wzJiYmLy/P2tpaVVVVRUWFrNfQ0Dh06BC7bUOo9/CKgX3z5s3LyMhob29XV1fv6Ohwc3OLiorCcpJygaKoI0eOrF27tra2llw6aGholJWV4Qy4SK7hFQPLXr58eeHChfb2dhUVlQ8//PDWrVtHjhzBqCAvVFRUPv/88ydPnqxcuVJNTU1NTa2tre2nn35iu10I9UqnK4bm5uazZ88yJwhDfS01NfXo0aO6uroeHh6TJ0+mByXki5qa2scff6ypqdnL41y9erW0tFQiTZK+4uLihISEBw8ejBgxIiIigu3mKJfx48ebmpqy3QoFwpw46ZdffmG7OUhe/fLLLxKYuksdJ+9CPbFkyZLedz9E6/R3SAZJKbzrgLpJRUVFYNp2d7W3t584cWLx4sW9PxRSHosXL8ZxDsnCewwIIYQ6wcCAEEKoEwwMCCGEOsHAgBBCqBMMDAghhDrBwIAQQqgTmQsM1dXVbDcBKS/sfggBQA/ziSiKiomJKSkpycvLa29vT0hIeOedd3i2mTBhwpQpU3bt2iXOAZubmyMjI9PS0vLy8vCRZGEoikpMTDx//rylpWVZWZmDg4Orq6uwLQ8dOhQbG/v48WNzc/M1a9YsW7aMTqvOz88PCAjIyspSUVGZOXNmVFTUW2+9BQBVVVUBAQGDBw+ura2tqqravn07WS9rsPuxolvdT9iWIvoYRVFHjhxJSUl57733rl+/bmVlFR4ejrNOsYOZ7XbixAmeNcJER0dra2u3tbVVVVV98sknubm5/Ns4OzsHBQWJn2vX2NhIOoH4uyibkJAQExMTDodDURSHwzExMYmOjha45fr1693c3GJjY319fclMFfv27SMv5efnOzo6/vrrr7du3Vq6dCkAODg4UBTV2NhoaWm5bds2stn3338/dOjQf/75R5yGAcCJEyd6/wbFPA52P1aI3/2EbSm6jx04cAAA0tPTKYq6d+8eACxatEichn322WefffZZr98f+n89DAzvvPOOpaWlxFtDvvdJ/LCKoaioSF1dPTw8nF4TFhampaVVUVHBs+Xz589dXV3pxfPnzwOAubk5WYyOjm5oaCA/t7a26urqamtrUxS1Y8cOACgoKKBf0tfX9/T0FKdtUg4M2P2kT/zuJ2JL0X1s0qRJAFBeXk5RFJfLNTAw0NHREadtGBgkrof3GIqLi+V0ujf5lZyc3N7eziwC4+Dg0NjYmJCQwLPls2fPIiMj6cXZs2cbGBiUl5eTxTVr1mhpadGvtre3e3p6AsCVK1cAwNjYmKzX0NAYN25cSkoKJXtTpGD3kz7xu5+ILUX3sUGDBgHAb7/9BgANDQ0cDsfBwaFv3xUSotuBIS0tbcWKFY2NjaWlpStWrPD29k5LS/Pz8zM1NS0pKZk6daqxsXFFRcXJkyc9PDymTJlC9mpqaoqIiPD09Pzwww9nzpz5119/kfWNjY3r1q376quvgoKCNm7c2NDQQNY3NDQcPXrUxcXF1tY2JyfH2traxMQkKyuroKDA0dHRwMDAysrqjz/+oFv16NEjJyen9evXu7u729vb//nnnxRF/ec///nqq6/efvvtqqoqDw+PN99887333mPuJVB3T33jxo0JEyZ4e3v7+/urqanV1dWJeL9MlZWVD4V49uwZ//ZZWVkA8Pbbb9NrjIyMAODu3bs8W9rZ2RkaGjLXtLa28tf84XK5mzdvjo6Ojo6OBoCysjIAYJYMMjAwqK2tlanpTrH7yX73E7Gl6D62Z88eMzMzPz+/Z8+excbG+vv7Hzt2TPSvC/UV5uWD+ENJAPDOO+9QFNXc3JydnT1gwAAACA8Pz8zM9PT0rKurI32LbENRlJeX14MHD8jPs2bNGjJkSE1NTVtbm42NjZeXF5fLpSjq8ePHpMoxRVEdHR1///03AAwcODAtLS0/Px8ATExMdu7cWV1dfevWLQCYOnUq3Z6RI0eamZlRr8dGRo8ezeVyi4uLtbW1ASAsLKyoqOjIkSMAYGNjI/qtdffUFhYW+vr6HR0dFEU5OTmVlZUJe788JxJxX3Ty5Mn8DRszZgwANDY20mvIB9nEiRNFv6OsrCxNTc2bN28yV/76668kVJiamn7//fdcLtfFxQUAkpKS6G3c3d0B4Pnz56KPT0l9KAm7H729DHY/EVt22cfKy8ttbW2HDx++du1a0b8oJhxKkrjeBgbC0tISACorK+k1pCQ62eb69ev8ne/MmTMxMTEAkJ+fT+9lYWFBN4B5BIqiyKML9EsGBga6urr0jpGRkceOHaMoqqOjw8zMTF1dndkweq8hQ4b069evy3fXrVMbGBgAwIEDB7hc7t27d6urq4W9365/rSKRz/GmpiZ6TWNjIwCMHTtWxF5tbW1TpkwhvxwmDoeTn58fExNDPlUPHz6cm5uroqIybNiwrKys6urqn3/+2dDQkFSe6bJtbAUGArufTHU/EVt22ceKiormzZv30UcfAcC3335LAl6XMDBInGTyGMiALxkiZK4hbty48e677/KceP78+RkZGQAwYsQIektVVVWBRwCAN954g/nSm2++WVNTQ69Zt27dggUL4uLitm3b1tLSQk8BzTyIioqKvr5+a2urmG9HzFMfOHBAR0fHx8dn8uTJLS0turq6wt5vl+cVzcrKCjo/aF9VVQUAop8oDQkJmTFjBvmmxqSvr//uu++uWrXq4MGDAPDjjz/a2Nikp6cPGzZszpw5U6dObWxs5HK506dPl/0aCdj9ZKr7idhSdB/Lzc0dN26ch4fH6dOnbW1td+/evXnz5l42G/WMNBLcKisrCwsL6QFcoqOjo6SkhLza+1Pk5eW9//77ZmZmmzZt0tHR6f0Bxefk5HTnzp3Zs2fn5OTY2tr++OOPwt4vz47dHeQdPXo0ALx48YJe8/LlSwCws7MT1rYzZ85oa2uL/utatGgRAPTr1w8A5s6de/Pmzfr6+jt37ujq6paXl3/xxRdd/QJkHXY/kG73E72liD62cePGysrKadOm9e/fn5RHjY+P79FvBfWWNAKDlZUVuRtGr7l//35sbCz5ZpGent77U3z++edtbW1z584FAHIlTknrWZrNmzebm5tfuHDh2LFj7e3tAQEBwt4vz46HDx8eJYSbmxv/idzd3XV1dS9fvkyvuXTpkoaGBp06xFMqJyMjo6SkZMOGDfSaa9eu8R+W/NF+/PHHzJX19fX+/v729vb8lxpyB7uflLtfl1sS/H2MXE6R7yhGRkZDhgzBZ89Yw7zeFPMeA/mSNWLECHqNiYkJANTV1dFramtrAWDYsGEURTU1NZEL9i+//PLo0aOBgYGzZs2qqam5ffu2mpraoEGDzp0719jY+N///pdcNT99+pR6PS5JP65uZmYGALW1tcwztre3k8WBAwcCQEZGxtGjRwcPHgwA169ff/78OdmM3F2kXg/Xtra2in6D3Tr1gAEDSCJPa2vrwIEDx48fL+z9dvmL7dKOHTssLCxIS2pqakaOHBkSEkJeCgsL09PTKywsJIuZmZnTp0+PeW3fvn1+fn6BgYEURUVGRiYkJFRVVVEU1dTUtGjRIlIAiz5LS0vL4sWLLS0ti4uLxWwYSPEeA3Y/2e9+IrYkBPaxuLg4ACB3a4qKigDA19dXnIbhPQaJ63Zg+PPPP5cvXw4AKioqwcHB2dnZISEhJMZ4e3vfunWLoqj6+nr6i2pkZGRNTU1hYeGCBQv09fWHDh3q7e1Nclgoirpy5Yqtra2Ojo6Zmdn27dvt7e2XL19+8eLFkpKStWvXAkC/fv0yMzPPnz9PnhhZvXp1RUXFvn37yMEjIiJevXpFUVRsbCz5q8jJyYmOjtbT01u4cCHdsNDQ0Orq6j179pDF9evXMx+Z4FFaWtqtUwOAtbX19u3bXV1d582bRz5WhL3fXuJyuQkJCUuXLg0ICHBycoqPj6c/dKKiooyNjcmfGf2gDo8nT55QFLVlyxZzc3M9Pb0VK1b4+vpmZmbSB6Eo6t69e+PHj3d1dS0tLRW/YVILDNj9ZL/7id6SEt7HuFxubGzs+PHj161b5+jouGnTJuYdbBEwMEicCsW45j158qSzszMlewlNSAqKioqSkpLU1NQWLFhAnjgUn4qKikRqNUvqOEg29aaPiUA6zMmTJyV1QCTrD5z0ERFjlw8ePCCjz8rG1NR0y5YtbLdCKSht98M+Ji+UNDDgVRFiEXY/JONkrh4DQgghdmFgQAgh1AkGBoQQQp1gYEAIIdSJMgaGsrKykydPbtu2je2GCPX06dO9e/fu3LmTTLQpPoqiHj161EetQlIg+50TKQOlCwwPHjzYunWrs7MzmQZZ+kpKShITExcvXkzqVfGora1dtWrVrFmzPvjgA39/fzLfp+i9YmJiVF5TVVWlc6CQ3GG3c06dOlWFz5MnT8irovstUjBK97jqqFGjIiMj9+/fz1YDhg8fPnPmTE9PT/769eXl5R999FF9ff3169fJzApd7tXW1nb8+PHt27eTRXV19c8//7xP24/6DoudMz8/v6amZteuXWQebwDIzc3Nzs42NzcniyL6LVI8ShcYAEBTU5PdBtClDZkoivriiy/u3r2bnZ3NExVE7HX8+PGlS5euXLlS8q1EbGCrc/71118XL16kowIAXLly5bPPPmNuI7AHIoWkjIFBNqWlpZ07d27u3LkTJ04UcxculxsREVFcXHzq1KlJkyYtW7aMWV0AIfEtWbKEudjS0nLq1KmcnBy22oPYxfI9BoEVa/kr6EJ3auFSFJWTk/PNN9+YmpqWlpb++9//HjRo0HvvvffLL78IbIOwArkC28bU3RntRUtKSgIAY2PjKVOm6OjojB07Ni0tTfQutbW1c+bMmTBhQk5OTmhoqJWV1datW7t7XiSMMnfOCxcuvP3226NGjerNLxDJMeaMeuKX9pQUgRVr+SvoUt2phdve3n7mzBlySb5q1aorV64kJyeT8ilZWVnkvNBVQWBhbWPqbtVcJuhcnJJ6PZ3y7t27X7x4kZOTQ2qp5+bmit6LqK6uDgsLI9NwJiQkdPlrlziQbmlP6VDazklRlKura3BwMP96YT2QXTi7qsSxHBj4K9ZSwivodqsWLnmep76+niySSY/J3LEUo3+LKJArsG2Swv8H1r9/f0NDQ3qRPJfi5uYmei+m//mf/wEAa2trCbZTTAoZGJS2czY0NOjo6DCrYdMwMCgJloeS+CvWgngVdKGrWrikfq+2tjZZXLhwIQDwpwWIKJArsG19x9DQUENDg16cPn06ABQUFIh/BC8vL01NTcxjkBSl7Zxnz541NjZ+9913JXhMJF9YDgz8FWuhbyrokm9wRkZGPOtFFMgV2DaefSV4j8HCwoIUVCGL5Cshs8B9l0g9spEjR3b31Eggpe2cJ06ccHJy6u27QnKN+WVE+kNJmzZtIj8cO3YMAIYPH05R1DvvvEN+oF5fdNPln4BxJUuep6YPJXrxn3/+AYCYmBie45Ca43QzKIrKz8+Pjo4W1jYmyd5jSExMBABSg4xucFBQkOi9mMguYWFhok/dF0ARh5KUs3PW1dUNGDDgr7/+Eviq6B7IFhxKkjiWAwN/xVpKeAXdbtXCJX97bW1tZDEpKWns2LGk3C75CmZiYkIJLwgsrG0SQRowcuRI5sq2trbRo0e7uLiQD5qYmJihQ4eSBgjbKzg4ePXq1ffv36coqrGxccGCBY6OjvRvQJoUMjAoZ+dMTk62srJiVuKkCey3sm+SmqwAAAgySURBVAADg8SxHBhAUMVagRV08/Pzu1ULl/zt7dq169WrV2VlZdu3byfF4p88ebJ69Wqy8Z49ezgcjrACuQLb1nuXLl3y9vYGAHV19YiIiNu3b9MvcTicZcuWubu7BwYGurm5MeukC9wrMTFxzJgxWlpaLi4uy5YtS01NFfj3LAUKGRiUsHNSFLVw4ULmNQpNRL9lHQYGiVPYms9WVlYFBQWK8V5kH9Z87hbsnJKFNZ8lTukm0UMIISSawgYGMh5aX1/PdkMQ4oWdE8k4BQwM9fX1AQEB5EkPX19fnO8FyQ7snEguKOAkejo6OuHh4eHh4Ww3BCFe2DmRXFDAKwaEEEK9gYEBIYRQJ3IfGLBGLpIR8tsVKSGlwkXXHhe2F1IA8h0YWC/gLBBFUYcOHfrss88CAwO9vLzIpAXCtkxISPjXv/6lo6MzZsyYxMRE+tn2qqoqHx+fzZs3+/n5eXh4vHjxQuARSMHnPnkbqDtkpCuKX5lZdKlwYbXHscC4kpDvm8+sF3AWKDQ0NDEx8fbt2/r6+lVVVdbW1q9evVqzZg3/lhs3bvznn3+8vb0fPXoUHx/v6enZ0NCwevXqpqamiRMnenh4BAQEAEBCQsLYsWNv3rw5fPhw5u43btxYv369lN4VEklGuqKYlZlFlwoXVnscC4wrEWYatPSnxJAIkKWJvYqKitTV1cPDw+k1YWFhWlpaFRUVPFs+f/7c1dWVXjx//jwAmJubUxS1Y8cOACDJsRRFtba26uvre3p6MnfncDiBgYGWlpay8F8GijglRg/ISFfsshlJSUlxcXECX+JyuXPnzlVVVc3JyRF/L3bhlBgSJ99DSTIoOTm5vb19xowZ9BoHB4fGxsaEhASeLZ89exYZGUkvzp4928DAoLy8HACuXLkCjNrrGhoa48aNS0lJoV4PNFEUFRoa6u/vj+NIqLtIqfANGzbMmjVr8+bNhYWFzFdJ7fE5c+bw1B4XvRdSMDIUGFJSUgYNGqSiohIUFETW7N+/X1VVNT4+HoTU2uVx8OBBMvoJALW1tZGRkfQiCC+fy9T7EgtZWVkAQApzEmSe/bt37/JsaWdnZ2hoyFzT2tpqb28PAGVlZQDA4XDolwwMDGpra0tLS8liTEyMs7NzX9cOUlqK0RWFEV0qXFjtcSwwrlyYlw+sDyWRe1lnz54li8+ePXNxcSE/C6y1SwDjwplMd0y/xFwUVj6XqZeVcimKGjNmDAA0NjbSa8j8BxMnThS9Y1ZWlqam5s2bNymKcnFxAYCkpCT6VXd3dwB4/vw5RVHXrl2LjIwk63lm9mcLKNxQklx3RRBvREtgqfAua4+zXmCcHw4lSZxsBYaWlhYjI6MFCxaQxaCgILpwjbBau5R4BVJElM+VLPKVv6mpiV5DZuofO3asiL3a2tqmTJlC3iBFUbm5uSoqKsOGDcvKyqqurv75558NDQ3V1NTa2toqKiq+/PJLUgWe//2yRfECg1x3RTEDA8FTKlyc2uP8e7ELA4PEydZTSf369VuzZo2/v/+TJ0+MjIwKCgqsra3JS+vWrauvr4+Li+NwOMxau2Ii5XPz8/Ml3mYrKyvm4pQpU65evVpdXU0PE1VVVcHr8o3ChISEzJgxg1woAICNjU16enpQUNCcOXNGjhz5zTffcLnc6dOnq6ur+/j4+Pj40M+Pt7S0AMDDhw81NDTMzc0l/u6Uljx2xZ7x8vLy8/Oje5ShoSGXy6VfFVZ7nGcvpGBkKzAAgJeXV3BwcGxs7KRJk5iFZ/Py8pydnffv3//1118nJyd397B0+Vy6AjsAdHR0kCti5mavXr0SeIQBAwaQq2weDx8+ZC7u3bsXAF68eEEHhpcvXwKAnZ2dsLadOXNGW1t7w4YNzJVz586dO3cu+Tk1NbW8vPyLL74gP6ekpPAcYdSoUebm5o8fPxZ2CtQDctcVe4aUCqcfS7WwsLh69SpFUeSOiLDa4zx7IUXDvHxgfSiJ8PPzGzhw4KeffkqKHRJi1tol39+bm5spiuro6CCfzlwuV0T5XKbe32OorKzU1dXdvXs3vWbnzp0aGhrk9gBFUXRBR+LChQsHDhxgrsnOzmYu1tXVWVpa2tvb08NHTDiU1KfktCuCoKEkno5H4ykVLk7tcf692IVDSRIni4Hh6dOnqqqqoaGhzJXCau0ya+RSFOXo6Ej68aNHj6KiovT19QHg3Llz9fX1wsrnStyOHTssLCxIvd+ampqRI0eGhISQl8LCwvT09AoLC8liZmbm9OnTY17bt2+fn59fYGAgfaiWlpbFixdbWloyy3wyYWDoU/LYFQVWZmZ2PNGlwoXVHpedAuP8MDBInCwGBoqi1qxZw5MRJrDWbl5eHk+N3IKCAhsbGy0trVmzZhUUFNjZ2S1duvT48ePNzc3CyudKHJfLTUhIWLp0aUBAgJOTU3x8PP2NMioqytjYmHzKZ2dnDxgwgP/74JMnT8jG9+7dGz9+vKura2lpqbBzYWDoa/LVFYVVZmZ2vC5LhQusPS47Bcb5YWCQOIWt+SzXioqKkpKS1NTUFixYQJ5/lXFY8xmxCGs+S5zM3XxGAGBqarplyxa2W4EQUlIylPmMEEJIFmBgQAgh1AkGBoQQQp1gYEAIIdQJBgaEEEKdYGBACCHUCQYGhBBCnQjIY8D0IsSiPXv2/Pzzz2y3AsmTnJycSZMmsd0KhaIWHBxML2hra5eVlWHmM+quDz74wMPDQ09Pr5fHqa2txWKlqLuMjIw+++yz0aNHs90QxaGCYQAhhBAT3mNACCHUCQYGhBBCnWBgQAgh1Mn/AnABODtTe7rCAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "idx = 1\n", "dot_data = StringIO()\n", "tree.export_graphviz(gbrt.estimators_[idx][0], out_file=dot_data)\n", "graph = graph_from_dot_data(dot_data.getvalue())[0]\n", "try:\n", " tree_image = Image(graph.create_png())\n", "except:\n", " tree_image =Image(\"images/temp2.png\")\n", "tree_image" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the following example, specifying the depth implies that leaves are expanded for every internal nodee until the desired depth is reached. The resulting tree is balanced with $2^d$ leaves, where $d$ is the depth of the tree." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "F1 score: 0.9214766469508465\n" ] } ], "source": [ "gbrt = ensemble.GradientBoostingClassifier(n_estimators=1000, \n", " max_depth=2, \n", " random_state=42)\n", "gbrt.fit(X_hastie_train, y_hastie_train)\n", "y_gbrt = gbrt.predict(X_hastie_test)\n", "\n", "print(\"F1 score: {0}\".format(metrics.f1_score(y_gbrt, y_hastie_test)))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAAFnCAYAAACcgmkRAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdeVhVVds/8O8BTBACQbQ0BkUZ1Myp1MShcChNrbfACacCNHoyhyQE07cEHFAyFfWJkDKnIFNT8snhyQYUBc3pNQEVRcIBRRBlhnP//lDOzyODh/Ec4fu5rnMVa++19r2Xex253WuvrRARAREREREREUFP2wEQERERERHpCiZIREREREREDzBBIiIiIiIiesBA2wEQEemK/Px87NmzByUlJdoOhaje6OvrY/jw4TA0NNR2KEREOoEJEhHRA3v27ME777yj7TCI6t2PP/6It99+W9thEBHpBCZIREQPFBcXAwC4uCc1JgqFQnXtExERn0EiIiIiIiJSYYJERERERET0ABMkIiIiIiKiB5ggERERERERPcAEiYiIiIiI6AEmSERERERERA8wQSIiIiIiInqACRIR0RPg999/x+jRo6FQKKBQKNCzZ09s3LhRtf3XX3/F66+/DoVCgVGjRiEqKkq1TaFQQE9PD5988gmWLFmCpKQkiAi+++47jBw5En5+fnj11Vfh7e2NzMxMAEBSUhKWLFmC6dOnq475JEhLS0NERARGjx6Nl19+uVptrF69usz5Dhw4UNUPj34uXrwIAI/tUyIiejIohG9EJCICAERFRWHMmDE6+6JYEcGkSZOwadMm9OnTB4cPH1b7Rf7tt9+Gvb09lixZolauUCjQvn17XLhwQVX273//G97e3vj5558xfPhwnD17Fs8//zzefPNN7Ny5U+24bdu2RUpKis72y6OuXLkCW1tbODo6IiEhoUp14+PjMXDgQOTl5anO9+zZs3B3d8eECRNgaWmp2vfo0aM4dOgQTp8+DaBqfapLFAoFIiMjMXr0aG2HQkSkEwy0HQAREWlGoVAgLCwMf//9N44cOYKtW7di/PjxAIDvv/8epqamZZKjUgYG6l/33333HQDgpZdeAgB06tQJlpaW+O9//1umrqGhYY3ijo2NRXR0NIKCgmrUjqZsbGyqVS8zMxM//fQTrK2tkZSUpCo/c+YMDhw4oJYcAffv6rm5ual+rkqfEhGR7uIUOyKiJ4iRkRG2bdsGExMTTJ8+HVevXkV8fDzWrl2LdevWaTwVzsLCAgDw22+/AQBycnJw+/ZtuLi41Eqc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XXD27Fls27YNDflr0dzcHJmZmfj444/RrFkztW2mpqaIiYnBqVOn4O7uDjs7Oxw5cgRXrlxBjx498MUXXyAuLg537txB8+bN4ejoiL59+yIuLg4//fQTzpw5g5kzZyI2NhYDBgyAjY0NOnfujHfeeQfJycnYt28f/vvf/8LKygpr1qxRrQ5XF5ydnWFsbIw1a9bg+PHj+JhFtIkAACAASURBVOabbzBp0iTMmjVLddfr+PHjOHHiBLy8vFQLNGhSr6H5/PPP4ebmpppiSETU2CmksrkTRESNSFRUFMaMGVPplDKihkahUCAyMhKjR4/WdihERDqBU+yIiIiIiIgeYIJERERERET0ABMkIiIiIiKiB5ggERERERERPcAEiYiIiIiI6AEmSERERERERA8wQSIiIiIiInqACRIREREREdEDBtoOgIhI1zSWF2YWFRXBwMAACoVC26HoFBFBcXExmjRpou1QiIhIC3gHiYjogV69emHs2LHaDqNeiAgOHz6M48ePazsUnXP8+HEcPnwYIqLtUOrF2LFj0atXL22HQUSkMxTSWP4GICIiFV9fX6xatQoxMTHo2bOntsPRKadOnULfvn0xffp0LFmyRNvhEBFRPeMdJCKiRuann37CsmXLsHbtWiZH5ejatSvCwsIQHByMbdu2aTscIiKqZ7yDRETUiCQlJaFXr15wd3fHmjVrtB2OTvvggw+wceNGHD16FJ06ddJ2OEREVE+YIBERNRL37t1Dnz59YGJigt9//x1NmzbVdkg6raioCC4uLrh58ybi4uJgamqq7ZCIiKgecIodEVEjICLw8PDAzZs3sW3bNiZHGmjSpAmioqKQnZ2NyZMnN5pFG4iIGjsmSEREjcDy5cuxfft2REZGwsrKStvhPDFat26NH374AT///DNCQkK0HY6aGzduICoqCkFBQdoOhYioQWGCRERUjoMHD0KhUMDU1BQvvPACevfuDYVCAUNDQ/Tu3RvPP/88DA0NoVAocO3aNW2HW6mDBw/C398fS5cuxSuvvKLtcJ44zs7OWLx4MebOnYv9+/fXqK1ly5ahefPmUCgU0NfXx9ChQzFixAi88cYbGDRoEGxsbKBQKHDlypVK2zl37hwWLlyIMWPGYOPGjTWKiYiI1PEZJCKicvz8889Yvnw5oqOjYWxsDABQKBRwdHREQkICACAjIwN9+vTB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\n", "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "idx = 1\n", "dot_data = StringIO()\n", "tree.export_graphviz(gbrt.estimators_[idx][0], out_file=dot_data)\n", "graph = graph_from_dot_data(dot_data.getvalue())[0]\n", "try:\n", " tree_image = Image(graph.create_png())\n", "except:\n", " tree_image =Image(\"images/temp3.png\")\n", "tree_image" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The difference between the two trees is really subtle. One can argue that the first tree looks like it was pruned. Allowing unbalance in the tree growing process can result in a tree that better follows the interaction of the variables (a variable that interact with another results in a split of first followed by a split of the second only in one of the two brances). In contrast allowing a larger number of leaves (the second tree) can potentially lead to a smoother function and a tree with leaves that are more pure.\n", "\n", "The picture below demonstrates the effect of **interaction order** on the dataset. Since simulated data is additive (sum of quadratic monomials) using an interaction effect $>2$ should create unnecessary variance and perform poorly as the number of iterations increases. As can be seen, interaction of order $2$ improves on test error, after a sufficent number of trees is built. This behavior can be explained by noting that GBRT are additive in nature and the function that creates the target has a very high ways of building it. Constraining GBRT to use shallow trees forces the algorithm to fit the mimic the generative function, that is it contruct the first tree with only a single variable, then the second tree will fit the residuals (i.e.: the other variable). Allowing the trees to be deeper, each tree will capture a more complex model (high variance) resulting in overfitting for lower values of boosting iteration." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"67bc2a43-8d27-446d-9abf-755f4dde4b1a\":{\"roots\":{\"references\":[{\"attributes\":{},\"id\":\"81f5071a-1ed5-4861-9c7a-3ad0516c4151\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"19d82a73-e436-4b2e-a38d-b73a58554338\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null},\"id\":\"89855855-efc5-4fd9-b808-04f589dc8854\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"8dd1b855-2b66-413d-a372-79ebb3de6bd1\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3ad4e2a2-417e-4c25-9803-b7f24bd00ebe\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"5c726aea-d86e-48e8-b19c-3dfc22cd6c12\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"66a4e5d8-2aba-4864-a9cd-0d8bb87a87c3\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"3ad4e2a2-417e-4c25-9803-b7f24bd00ebe\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"692b06e6-82be-4092-af6b-02a475e6d783\",\"type\":\"CDSView\"}},\"id\":\"d13316ee-b050-4378-b618-85f5f841c416\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"6a373517-1ab1-44cf-b22e-ca2905547d7b\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"label\":{\"value\":\"Depth 2\"},\"renderers\":[{\"id\":\"d13316ee-b050-4378-b618-85f5f841c416\",\"type\":\"GlyphRenderer\"}]},\"id\":\"b7c518fb-2864-48df-bef3-ec479b22e940\",\"type\":\"LegendItem\"},{\"attributes\":{\"callback\":null},\"id\":\"533c12c1-4ece-4b90-8c08-0b29e1537502\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_color\":\"turquoise\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"84d74647-2900-45f6-ba75-7a8f9dd00efa\",\"type\":\"Line\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"c09cf382-8a4a-43e1-adf3-09986232bbfa\",\"type\":\"PanTool\"},{\"id\":\"a95b18ad-ceaa-42be-a0c5-b965de9b39d2\",\"type\":\"WheelZoomTool\"},{\"id\":\"688bbc91-a42b-4304-a508-0277022a3e9e\",\"type\":\"BoxZoomTool\"},{\"id\":\"d67a6659-cd3c-49c3-a352-b2485610a3de\",\"type\":\"SaveTool\"},{\"id\":\"538917cc-35f0-4648-bdf6-9076280ea4c4\",\"type\":\"ResetTool\"},{\"id\":\"80f4e74f-4d4c-41c7-9fa1-1155aa731174\",\"type\":\"HelpTool\"}]},\"id\":\"10ee3e5b-e95f-4538-bfad-763b16587f7e\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101,106,111,116,121,126,131,136,141,146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281,286,291,296,301,306,311,316,321,326,331,336,341,346,351,356,361,366,371,376,381,386,391,396,401,406,411,416,421,426,431,436,441,446,451,456,461,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,586,591,596,601,606,611,616,621,626,631,636,641,646,651,656,661,666,671,676,681,686,691,696,701,706,711,716,721,726,731,736,741,746,751,756,761,766,771,776,781,786,791,796,801,806,811,816,821,826,831,836,841,846,851,856,861,866,871,876,881,886,891,896,901,906,911,916,921,926,931,936,941,946,951,956,961,966,971,976,981,986,991,996],\"y\":{\"__ndarray__\":\"leLSw7259T9LzTkgE8fzP97d1jfLG/I/duDAMjjZ8D9AI5GEQJPvPyRhVehWyO0/eLTUdORF7D/caA+2DAvrPzV/ClOS8Ok/odre4sX66D+/bhTgBBXoP7mDX0O2Tec/0GfzcZyy5j+oS8mihxXmP64Ikxl1keU/YRuPzuT65D9wb7TNppPkP9N7mq7TOeQ/j8tQjXLi4z8HFvZyJYTjP5zW589UNuM/hMqR84T34j/+xPwpj8biP2MbJ8gJhOI/BdbviIdP4j/GFBvAADLiP1/nfUn1A+I/k36p8Knq4T+K34RxPcDhP43T/n23leE/6Ywq8Ktx4T91lRj7XVHhPwXb8rrgOeE/+mWon1Et4T/vY9+HoxThPzPWPZNm/eA/whr+3tjs4D+swXIP/evgPwPyV8Yd1uA/1DJjTQbH4D/otuNl+LngP6oV0RoGtOA/s/JE3z+r4D/EjBvVCJ/gP4jBwFeCkeA/qeWi6yiH4D+TgWSfL43gPwV0BqRti+A/z3nLu32M4D9bJHskJ4zgP7x4jICZjuA/+BIF7U+P4D9bfkpZhpTgP4o6boV9keA/CGGFbfeU4D+Vu4UxqZHgP3QPHLaUoOA/30OzBOSb4D9z4JKXwKTgPxxUYSy+reA/znVa/o2s4D/fsX4OYrXgP/axiCXwz+A/Ld8NrtnT4D87PsEhwdfgPxiuMamL0OA/NAm5Lo/c4D9j4B5IE+TgP+Z4RbN98uA/0ptF8AwC4T/ORo4qqQ3hPx9Lv5WdE+E/d3KJyWUl4T8Pxws9YDHhP/FA+TozOeE/0aloT60/4T8u5e2WY0rhPwSryLGeUOE//H1GIi9n4T/yekatZ3XhP2+Ny/cthuE/wgr5efuQ4T8B1h2NaqHhP+MAggFirOE/ohzeyZO04T+RETmJXrvhPweXn0xNyuE/2nWihWHb4T/dwbkA7/XhP7rlu8U7D+I/xXpz7Zce4j/X7Hb8aDjiPwqxbeN7U+I/aOOZqdNh4j85mEovoGriP7njyorte+I/uAC+JfGL4j90gvyNZaLiP9p8FrFDpOI/tJmh3pmu4j84DDtlasDiP4iz6IiczuI/oLRTK9/Y4j8VyZT5e+DiPzUEiuRh2+I/aLfyU+Ha4j8YPVV1ldriPwx9o6xo2uI/bOBNPE7a4j9lVy2gPtriP+9Drmg12uI/eLp79y/a4j/J7dXALNriP7PzE9sq2uI/P9c+vCna4j8K698SKdriPzv93K4o2uI/eb7Ocyja4j/SlO9QKNriPzkvWDwo2uI/gXovMCja4j8OdQEpKNriP8sfxCQo2uI/9D5DIija4j9P0MggKNriP3Ja6R8o2uI/82ZlHyja4j+BfBcfKNriP1N66R4o2uI/bk/OHija4j+hRL4eKNriP5zLtB4o2uI/qDOvHija4j8Z5qseKNriP87yqR4o2uI/+8uoHija4j/jHageKNriPxe3px4o2uI/Y3qnHija4j+JVqceKNriP19Bpx4o2uI/4DSnHija4j9+LaceKNriPyMppx4o2uI/kianHija4j8OJaceKNriPygkpx4o2uI/oSOnHija4j9TI6ceKNriPyQjpx4o2uI/CyOnHija4j/6IqceKNriP/Iipx4o2uI/7CKnHija4j/oIqceKNriP+Yipx4o2uI/5SKnHija4j/jIqceKNriP+Eipx4o2uI/4CKnHija4j/gIqceKNriP94ipx4o2uI/3CKnHija4j/bIqceKNriP9kipx4o2uI/1yKnHija4j/XIqceKNriP9Uipx4o2uI/0yKnHija4j/SIqceKNriP9Aipx4o2uI/zyKnHija4j/NIqceKNriP8wipx4o2uI/yiKnHija4j/JIqceKNriP8cipx4o2uI/xSKnHija4j/EIqceKNriP8Mipx4o2uI/wSKnHija4j/AIqceKNriP70ipx4o2uI/vCKnHija4j+8IqceKNriP7oipx4o2uI/uCKnHija4j+3IqceKNriP7Yipx4o2uI/syKnHija4j+yIqceKNriP7Eipx4o2uI/riKnHija4j+tIqceKNriP6wipx4o2uI/qiKnHija4j+qIqceKNriP6gipx4o2uI/piKnHija4j+lIqceKNriPw==\",\"dtype\":\"float64\",\"shape\":[200]}}},\"id\":\"a076573c-eb23-41d8-bd64-86293ee5eb23\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"e0760bee-43c1-44e9-94b2-21243fae2893\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"a076573c-eb23-41d8-bd64-86293ee5eb23\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"84d74647-2900-45f6-ba75-7a8f9dd00efa\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"e0760bee-43c1-44e9-94b2-21243fae2893\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"7001ece7-9d5f-4b57-ba09-211f8ad597ff\",\"type\":\"CDSView\"}},\"id\":\"a7a1083f-5781-4d9b-9595-4e13bdde7ebd\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"below\":[{\"id\":\"cb1ec126-bb06-4551-a726-f51ba94ed03c\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"c90c88f9-d0d9-492f-865f-05ea0c8b10b2\",\"type\":\"LinearAxis\"}],\"plot_height\":500,\"plot_width\":700,\"renderers\":[{\"id\":\"cb1ec126-bb06-4551-a726-f51ba94ed03c\",\"type\":\"LinearAxis\"},{\"id\":\"d8da39b3-9216-4890-9986-41968669cbde\",\"type\":\"Grid\"},{\"id\":\"c90c88f9-d0d9-492f-865f-05ea0c8b10b2\",\"type\":\"LinearAxis\"},{\"id\":\"0fd3aec8-ce02-4829-87c6-10f7548c29bb\",\"type\":\"Grid\"},{\"id\":\"5e23bb02-0c98-4234-ad6c-3da538393b3a\",\"type\":\"BoxAnnotation\"},{\"id\":\"018b1ff0-5b26-48c5-9069-5d86e22fb9d3\",\"type\":\"Legend\"},{\"id\":\"d13316ee-b050-4378-b618-85f5f841c416\",\"type\":\"GlyphRenderer\"},{\"id\":\"a7a1083f-5781-4d9b-9595-4e13bdde7ebd\",\"type\":\"GlyphRenderer\"},{\"id\":\"65f76490-1024-494c-97f3-62ebd645ae0e\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"34b0ac1c-052e-41f7-a295-db78ffd307d5\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"10ee3e5b-e95f-4538-bfad-763b16587f7e\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"533c12c1-4ece-4b90-8c08-0b29e1537502\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"8dd1b855-2b66-413d-a372-79ebb3de6bd1\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"89855855-efc5-4fd9-b808-04f589dc8854\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"19d82a73-e436-4b2e-a38d-b73a58554338\",\"type\":\"LinearScale\"}},\"id\":\"ec7ca2b3-5341-4f41-a30a-9392a7125b06\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"source\":{\"id\":\"a076573c-eb23-41d8-bd64-86293ee5eb23\",\"type\":\"ColumnDataSource\"}},\"id\":\"7001ece7-9d5f-4b57-ba09-211f8ad597ff\",\"type\":\"CDSView\"},{\"attributes\":{\"label\":{\"value\":\"Depth 6 \"},\"renderers\":[{\"id\":\"a7a1083f-5781-4d9b-9595-4e13bdde7ebd\",\"type\":\"GlyphRenderer\"}]},\"id\":\"d439c089-77b2-464a-93be-78ae53f8b49f\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_color\":\"magenta\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"cbcd7d5a-d6e7-4b62-9b52-6c31bb130ff0\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101,106,111,116,121,126,131,136,141,146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281,286,291,296,301,306,311,316,321,326,331,336,341,346,351,356,361,366,371,376,381,386,391,396,401,406,411,416,421,426,431,436,441,446,451,456,461,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,586,591,596,601,606,611,616,621,626,631,636,641,646,651,656,661,666,671,676,681,686,691,696,701,706,711,716,721,726,731,736,741,746,751,756,761,766,771,776,781,786,791,796,801,806,811,816,821,826,831,836,841,846,851,856,861,866,871,876,881,886,891,896,901,906,911,916,921,926,931,936,941,946,951,956,961,966,971,976,981,986,991,996],\"y\":{\"__ndarray__\":\"ahZZC5Ju9T+3C0OlZrbyP3wzm5DMwvA/wFSbHRtw7j+qktoELhzsP267tdwhieo/4/bRE7Aj6T9NmzG9kg7oP7SNu+4hHec/KPvMSClZ5j+5UP/Po8rlP77D9kWiKuU/0ggG0YjK5D905WO/U4DkPyijD5VeOuQ/KwDefSUX5D9zlIzY+uLjP5GdgCBqouM/wbaqmviD4z+1e1TeXWbjP1YrUm6oUOM/M4vle7dM4z91lZzUX0PjP231CTmdU+M/vc76BIxH4z8fAhoEYkXjPwHTtk6DR+M/e1g+xORh4z8+qJH532njP02+wSU2feM/uiJawhWN4z/AzWa986fjPzQBvRRMs+M/P5HGx3Pm4z8T3yMFsPbjP5jk+KVz9OM/6FsOiVj14z8Z8rQ4TPHjP9Six2pP8OM/uWpkfrrv4z9sLwuuYu/jP606sN4u7+M/40+rShDv4z8z56U9/u7jP+pcc5Xz7uM/kRikSu3u4z8f9YeT6e7jPz8a7mHn7uM/jzdRFubu4z+2b4FS5e7jP/uy4d7k7uM/8mybmuTu4z/CtEpy5O7jP/9ufFrk7uM/btRtTOTu4z8w5CBE5O7jPwkjOj/k7uM/jTdVPOTu4z8Wtp865O7jP1penTnk7uM/3NEEOeTu4z/Avao45O7jP/2MdTjk7uM/biRWOOTu4z+PmEM45O7jP/2kODjk7uM/gy0yOOTu4z/4Wy445O7jP7waLDjk7uM/5MUqOOTu4z+f/Ck45O7jP8aFKTjk7uM/mD8pOOTu4z8oFik45O7jP7D9KDjk7uM/PO8oOOTu4z+15ig45O7jP6vhKDjk7uM/sd4oOOTu4z/v3Cg45O7jP+bbKDjk7uM/SNsoOOTu4z/t2ig45O7jP7XaKDjk7uM/ltooOOTu4z+C2ig45O7jP3faKDjk7uM/b9ooOOTu4z9r2ig45O7jP2raKDjk7uM/aNooOOTu4z9m2ig45O7jP2baKDjk7uM/ZNooOOTu4z9i2ig45O7jP2LaKDjk7uM/YNooOOTu4z9f2ig45O7jP17aKDjk7uM/XdooOOTu4z9b2ig45O7jP1raKDjk7uM/WdooOOTu4z9Y2ig45O7jP1baKDjk7uM/VdooOOTu4z9U2ig45O7jP1PaKDjk7uM/UdooOOTu4z9Q2ig45O7jP0/aKDjk7uM/T9ooOOTu4z9M2ig45O7jP0vaKDjk7uM/S9ooOOTu4z9J2ig45O7jP0faKDjk7uM/RtooOOTu4z9G2ig45O7jP0TaKDjk7uM/QtooOOTu4z9C2ig45O7jP0HaKDjk7uM/P9ooOOTu4z892ig45O7jPz3aKDjk7uM/PNooOOTu4z872ig45O7jPznaKDjk7uM/ONooOOTu4z832ig45O7jPzXaKDjk7uM/M9ooOOTu4z8z2ig45O7jPzHaKDjk7uM/MNooOOTu4z8v2ig45O7jPy3aKDjk7uM/LdooOOTu4z8r2ig45O7jPyraKDjk7uM/KdooOOTu4z8n2ig45O7jPyfaKDjk7uM/JdooOOTu4z8k2ig45O7jPyLaKDjk7uM/ItooOOTu4z8g2ig45O7jPx/aKDjk7uM/HtooOOTu4z8d2ig45O7jPxvaKDjk7uM/GdooOOTu4z8Z2ig45O7jPxjaKDjk7uM/FtooOOTu4z8V2ig45O7jPxTaKDjk7uM/E9ooOOTu4z8R2ig45O7jPxDaKDjk7uM/ENooOOTu4z8O2ig45O7jPwvaKDjk7uM/C9ooOOTu4z8K2ig45O7jPwnaKDjk7uM/B9ooOOTu4z8G2ig45O7jPwbaKDjk7uM/BNooOOTu4z8C2ig45O7jPwLaKDjk7uM/ANooOOTu4z/+2Sg45O7jP/7ZKDjk7uM//NkoOOTu4z/82Sg45O7jP/rZKDjk7uM/+dkoOOTu4z/42Sg45O7jP/bZKDjk7uM/9dkoOOTu4z/02Sg45O7jP/LZKDjk7uM/8dkoOOTu4z/w2Sg45O7jP+/ZKDjk7uM/7tkoOOTu4z/s2Sg45O7jP+zZKDjk7uM/6tkoOOTu4z/o2Sg45O7jP+jZKDjk7uM/59koOOTu4z/l2Sg45O7jP+TZKDjk7uM/49koOOTu4z/h2Sg45O7jPw==\",\"dtype\":\"float64\",\"shape\":[200]}}},\"id\":\"eeb8c4cb-63f4-466c-aff9-92ccd038b390\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"a8d35fec-80bc-4d20-b7a8-a7cac1a147be\",\"type\":\"Line\"},{\"attributes\":{\"items\":[{\"id\":\"b7c518fb-2864-48df-bef3-ec479b22e940\",\"type\":\"LegendItem\"},{\"id\":\"d439c089-77b2-464a-93be-78ae53f8b49f\",\"type\":\"LegendItem\"},{\"id\":\"8d41fd92-d6cc-424a-8661-50fe4e77f28b\",\"type\":\"LegendItem\"}],\"plot\":{\"id\":\"ec7ca2b3-5341-4f41-a30a-9392a7125b06\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"018b1ff0-5b26-48c5-9069-5d86e22fb9d3\",\"type\":\"Legend\"},{\"attributes\":{\"data_source\":{\"id\":\"eeb8c4cb-63f4-466c-aff9-92ccd038b390\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"cbcd7d5a-d6e7-4b62-9b52-6c31bb130ff0\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"a8d35fec-80bc-4d20-b7a8-a7cac1a147be\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"62eaf75f-87af-487c-8e66-89c3c14b13e8\",\"type\":\"CDSView\"}},\"id\":\"65f76490-1024-494c-97f3-62ebd645ae0e\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"eeb8c4cb-63f4-466c-aff9-92ccd038b390\",\"type\":\"ColumnDataSource\"}},\"id\":\"62eaf75f-87af-487c-8e66-89c3c14b13e8\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"5c726aea-d86e-48e8-b19c-3dfc22cd6c12\",\"type\":\"ColumnDataSource\"}},\"id\":\"692b06e6-82be-4092-af6b-02a475e6d783\",\"type\":\"CDSView\"},{\"attributes\":{\"label\":{\"value\":\"Depth 10\"},\"renderers\":[{\"id\":\"65f76490-1024-494c-97f3-62ebd645ae0e\",\"type\":\"GlyphRenderer\"}]},\"id\":\"8d41fd92-d6cc-424a-8661-50fe4e77f28b\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"80f4e74f-4d4c-41c7-9fa1-1155aa731174\",\"type\":\"HelpTool\"},{\"attributes\":{\"plot\":null,\"text\":\"Tree size\"},\"id\":\"34b0ac1c-052e-41f7-a295-db78ffd307d5\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"538917cc-35f0-4648-bdf6-9076280ea4c4\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"d67a6659-cd3c-49c3-a352-b2485610a3de\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101,106,111,116,121,126,131,136,141,146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281,286,291,296,301,306,311,316,321,326,331,336,341,346,351,356,361,366,371,376,381,386,391,396,401,406,411,416,421,426,431,436,441,446,451,456,461,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,586,591,596,601,606,611,616,621,626,631,636,641,646,651,656,661,666,671,676,681,686,691,696,701,706,711,716,721,726,731,736,741,746,751,756,761,766,771,776,781,786,791,796,801,806,811,816,821,826,831,836,841,846,851,856,861,866,871,876,881,886,891,896,901,906,911,916,921,926,931,936,941,946,951,956,961,966,971,976,981,986,991,996],\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[200]}}},\"id\":\"5c726aea-d86e-48e8-b19c-3dfc22cd6c12\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"overlay\":{\"id\":\"5e23bb02-0c98-4234-ad6c-3da538393b3a\",\"type\":\"BoxAnnotation\"}},\"id\":\"688bbc91-a42b-4304-a508-0277022a3e9e\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"a95b18ad-ceaa-42be-a0c5-b965de9b39d2\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"c09cf382-8a4a-43e1-adf3-09986232bbfa\",\"type\":\"PanTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"5e23bb02-0c98-4234-ad6c-3da538393b3a\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_color\":\"green\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"66a4e5d8-2aba-4864-a9cd-0d8bb87a87c3\",\"type\":\"Line\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"ec7ca2b3-5341-4f41-a30a-9392a7125b06\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"99a55130-fa74-4001-9c0a-05bcee390118\",\"type\":\"BasicTicker\"}},\"id\":\"0fd3aec8-ce02-4829-87c6-10f7548c29bb\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"99a55130-fa74-4001-9c0a-05bcee390118\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"Test Error\",\"axis_label_text_font_size\":{\"value\":\"11pt\"},\"formatter\":{\"id\":\"81f5071a-1ed5-4861-9c7a-3ad0516c4151\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"ec7ca2b3-5341-4f41-a30a-9392a7125b06\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"99a55130-fa74-4001-9c0a-05bcee390118\",\"type\":\"BasicTicker\"}},\"id\":\"c90c88f9-d0d9-492f-865f-05ea0c8b10b2\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":{\"id\":\"ec7ca2b3-5341-4f41-a30a-9392a7125b06\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"96b13404-5944-4774-89d7-c2bc8dd9cf73\",\"type\":\"BasicTicker\"}},\"id\":\"d8da39b3-9216-4890-9986-41968669cbde\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"96b13404-5944-4774-89d7-c2bc8dd9cf73\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"Number of Estimators\",\"axis_label_text_font_size\":{\"value\":\"11pt\"},\"formatter\":{\"id\":\"6a373517-1ab1-44cf-b22e-ca2905547d7b\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"ec7ca2b3-5341-4f41-a30a-9392a7125b06\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"96b13404-5944-4774-89d7-c2bc8dd9cf73\",\"type\":\"BasicTicker\"}},\"id\":\"cb1ec126-bb06-4551-a726-f51ba94ed03c\",\"type\":\"LinearAxis\"}],\"root_ids\":[\"ec7ca2b3-5341-4f41-a30a-9392a7125b06\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.13\"}};\n", " var render_items = [{\"docid\":\"67bc2a43-8d27-446d-9abf-755f4dde4b1a\",\"elementid\":\"0c63022a-374e-4f37-a1ca-420092a8474f\",\"modelid\":\"ec7ca2b3-5341-4f41-a30a-9392a7125b06\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "ec7ca2b3-5341-4f41-a30a-9392a7125b06" } }, "output_type": "display_data" } ], "source": [ "original_params = {'n_estimators': 1000, \n", " 'random_state': 42}\n", "\n", "#TOOLS = \"pan,box_zoom,reset,save,box_select\"\n", "\n", "fig = bk.figure(plot_width=700, \n", " plot_height=500,\n", " title=\"Tree size\")\n", "# tools=TOOLS)\n", "\n", "for label, color, setting in [('Depth 2', 'green',\n", " {'max_depth': 2}),\n", " ('Depth 6 ', 'turquoise',\n", " {'max_depth': 6}),\n", " ('Depth 10', 'magenta',\n", " {'max_depth': 10})]:\n", " params = dict(original_params)\n", " params.update(setting)\n", "\n", " clf1 = ensemble.GradientBoostingClassifier(**params)\n", " clf1.fit(X_hastie_train, y_hastie_train)\n", "\n", " test_error = np.zeros((params['n_estimators'],), dtype=np.float64)\n", " for i, y_hastie_pred in enumerate(clf1.staged_decision_function(X_hastie_test)):\n", " # clf.loss_ assumes that y_test[i] in {0, 1}\n", " test_error[i] = clf1.loss_(y_hastie_test, y_hastie_pred)\n", " \n", " fig.line((np.arange(test_error.shape[0]) + 1)[::5], \n", " test_error[::5],\n", " color=color, \n", " legend=label)\n", "#sostituire train score con loss! train_score e' insample!\n", " \n", "fig.xaxis.axis_label = \"Number of Estimators\"\n", "fig.xaxis.axis_label_text_font_size = '11pt'\n", "fig.yaxis.axis_label = \"Test Error\"\n", "fig.yaxis.axis_label_text_font_size = '11pt'\n", " \n", "bk.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Regularization**\n", "\n", "Illustration of the effect of different regularization strategies for Gradient Boosting. The loss function used is binomial deviance. Regularization via shrinkage (learning_rate $< 1.0$) improves performance considerably. In combination with shrinkage, stochastic gradient boosting (subsample $< 1.0$) can produce more accurate models by reducing the variance via bagging. Subsampling without shrinkage usually does poorly. Another strategy to reduce the variance is by subsampling the features analogous to the random splits in Random Forests (via the max_features parameter)." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"19cf6d7f-d015-4785-b056-ff4732fee2a7\":{\"roots\":{\"references\":[{\"attributes\":{},\"id\":\"1022d006-d941-4938-999a-6bfc6279e106\",\"type\":\"LinearScale\"},{\"attributes\":{\"data_source\":{\"id\":\"22ed02b8-9fb2-4169-b195-e6f14a632b6b\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"84a32d96-3667-47b9-895a-1399a8e7c57f\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"cc92099f-08c0-44b6-8152-b08964bfbc09\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"af7fd31c-d9b2-4686-8d5e-300db4429877\",\"type\":\"CDSView\"}},\"id\":\"fbf45a86-c9bf-44ac-a93e-8b4ffe928e9c\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"22ed02b8-9fb2-4169-b195-e6f14a632b6b\",\"type\":\"ColumnDataSource\"}},\"id\":\"af7fd31c-d9b2-4686-8d5e-300db4429877\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null},\"id\":\"1e025b06-633d-40c1-925f-909f8edfbc1c\",\"type\":\"DataRange1d\"},{\"attributes\":{\"label\":{\"value\":\"learning_rate=0.1\"},\"renderers\":[{\"id\":\"fbf45a86-c9bf-44ac-a93e-8b4ffe928e9c\",\"type\":\"GlyphRenderer\"}]},\"id\":\"d34c2270-ff7e-4956-bde4-db4fac47b2f1\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"833c84a0-5692-472c-b460-d5e5d4ea6e59\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101,106,111,116,121,126,131,136,141,146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281,286,291,296,301,306,311,316,321,326,331,336,341,346,351,356,361,366,371,376,381,386,391,396,401,406,411,416,421,426,431,436,441,446,451,456,461,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,586,591,596,601,606,611,616,621,626,631,636,641,646,651,656,661,666,671,676,681,686,691,696,701,706,711,716,721,726,731,736,741,746,751,756,761,766,771,776,781,786,791,796,801,806,811,816,821,826,831,836,841,846,851,856,861,866,871,876,881,886,891,896,901,906,911,916,921,926,931,936,941,946,951,956,961,966,971,976,981,986,991,996],\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[200]}}},\"id\":\"2ecc0305-fab7-4c63-b7b8-38fb0844be1b\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"7f628920-d9eb-4bd1-9380-de083a87ce5d\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"2ecc0305-fab7-4c63-b7b8-38fb0844be1b\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"833c84a0-5692-472c-b460-d5e5d4ea6e59\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"7f628920-d9eb-4bd1-9380-de083a87ce5d\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"4ca7feb8-c88a-4ff0-924f-af8c29208b9c\",\"type\":\"CDSView\"}},\"id\":\"a5df586a-4f05-45c2-99d5-6b12993fef7a\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"2ecc0305-fab7-4c63-b7b8-38fb0844be1b\",\"type\":\"ColumnDataSource\"}},\"id\":\"4ca7feb8-c88a-4ff0-924f-af8c29208b9c\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"9ea71fd0-9e28-4576-b515-615d863cbe30\",\"type\":\"LinearScale\"},{\"attributes\":{\"label\":{\"value\":\"subsample=0.5\"},\"renderers\":[{\"id\":\"a5df586a-4f05-45c2-99d5-6b12993fef7a\",\"type\":\"GlyphRenderer\"}]},\"id\":\"f104e79c-0597-4839-be30-4b33cfc7107b\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_color\":\"gray\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"d077a6b4-7bcb-44a1-beae-8e7fe13ca142\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"9c67b9d4-1c32-4e3d-a49f-2bf822ff9c8e\",\"type\":\"DataRange1d\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101,106,111,116,121,126,131,136,141,146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281,286,291,296,301,306,311,316,321,326,331,336,341,346,351,356,361,366,371,376,381,386,391,396,401,406,411,416,421,426,431,436,441,446,451,456,461,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,586,591,596,601,606,611,616,621,626,631,636,641,646,651,656,661,666,671,676,681,686,691,696,701,706,711,716,721,726,731,736,741,746,751,756,761,766,771,776,781,786,791,796,801,806,811,816,821,826,831,836,841,846,851,856,861,866,871,876,881,886,891,896,901,906,911,916,921,926,931,936,941,946,951,956,961,966,971,976,981,986,991,996],\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[200]}}},\"id\":\"8a6eb98d-d528-4fd5-a019-0f5a125d5a2b\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"eb8637e7-4a71-490c-be14-badf40074aa6\",\"type\":\"PanTool\"},{\"id\":\"d78e5fcf-076f-4545-9e9a-2107961095c6\",\"type\":\"WheelZoomTool\"},{\"id\":\"130f60cd-e5b1-4cc7-8a1d-3ba31da53366\",\"type\":\"BoxZoomTool\"},{\"id\":\"c1020542-4348-46df-ab3a-e5cc641931eb\",\"type\":\"SaveTool\"},{\"id\":\"4c0ded2c-24d8-4135-98f2-6edce66eaf61\",\"type\":\"ResetTool\"},{\"id\":\"99369e7a-e806-464b-9943-01f8eb3a0186\",\"type\":\"HelpTool\"}]},\"id\":\"7e68e539-2e96-4e11-baff-b17ecbc6a476\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"9fb1eba8-6990-44c8-89d9-312aa534b7b8\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"8a6eb98d-d528-4fd5-a019-0f5a125d5a2b\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"d077a6b4-7bcb-44a1-beae-8e7fe13ca142\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"9fb1eba8-6990-44c8-89d9-312aa534b7b8\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"e4e09f38-7575-4b80-93a4-2a1b37382533\",\"type\":\"CDSView\"}},\"id\":\"3a6e8f76-63d7-45e1-b0d7-5c386cb11537\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"plot\":null,\"text\":\"Regularization\"},\"id\":\"adc89028-d13c-4ac6-bd4b-ea6aa19f79b1\",\"type\":\"Title\"},{\"attributes\":{\"overlay\":{\"id\":\"3bb55988-1678-4f6b-9e4f-4135f8e3dbd0\",\"type\":\"BoxAnnotation\"}},\"id\":\"130f60cd-e5b1-4cc7-8a1d-3ba31da53366\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"8a6eb98d-d528-4fd5-a019-0f5a125d5a2b\",\"type\":\"ColumnDataSource\"}},\"id\":\"e4e09f38-7575-4b80-93a4-2a1b37382533\",\"type\":\"CDSView\"},{\"attributes\":{\"label\":{\"value\":\"learning_rate=0.1, subsample=0.5\"},\"renderers\":[{\"id\":\"3a6e8f76-63d7-45e1-b0d7-5c386cb11537\",\"type\":\"GlyphRenderer\"}]},\"id\":\"9a7edad0-813e-4845-ab7e-5c09166b7eb8\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_color\":\"magenta\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"46543754-447a-42e3-8f4e-52c8dd9d4d3e\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"d78e5fcf-076f-4545-9e9a-2107961095c6\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101,106,111,116,121,126,131,136,141,146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281,286,291,296,301,306,311,316,321,326,331,336,341,346,351,356,361,366,371,376,381,386,391,396,401,406,411,416,421,426,431,436,441,446,451,456,461,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,586,591,596,601,606,611,616,621,626,631,636,641,646,651,656,661,666,671,676,681,686,691,696,701,706,711,716,721,726,731,736,741,746,751,756,761,766,771,776,781,786,791,796,801,806,811,816,821,826,831,836,841,846,851,856,861,866,871,876,881,886,891,896,901,906,911,916,921,926,931,936,941,946,951,956,961,966,971,976,981,986,991,996],\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[200]}}},\"id\":\"55d34150-0a1e-475d-8b0d-834c5030c092\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"below\":[{\"id\":\"a4164e63-bc71-44fa-9afc-5b545337d1b9\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"ad21904e-fb9c-4a35-8327-9140b9e6d7ee\",\"type\":\"LinearAxis\"}],\"plot_height\":500,\"plot_width\":700,\"renderers\":[{\"id\":\"a4164e63-bc71-44fa-9afc-5b545337d1b9\",\"type\":\"LinearAxis\"},{\"id\":\"d586de17-6242-49ae-949f-992e6c4c0a26\",\"type\":\"Grid\"},{\"id\":\"ad21904e-fb9c-4a35-8327-9140b9e6d7ee\",\"type\":\"LinearAxis\"},{\"id\":\"6cf9140b-6e78-4907-9a4c-ebb120d12717\",\"type\":\"Grid\"},{\"id\":\"3bb55988-1678-4f6b-9e4f-4135f8e3dbd0\",\"type\":\"BoxAnnotation\"},{\"id\":\"1ab53a53-7428-4b3e-8de6-d71a273b5941\",\"type\":\"Legend\"},{\"id\":\"3ea46e5a-8471-43e8-a8b7-8249c16534eb\",\"type\":\"GlyphRenderer\"},{\"id\":\"fbf45a86-c9bf-44ac-a93e-8b4ffe928e9c\",\"type\":\"GlyphRenderer\"},{\"id\":\"a5df586a-4f05-45c2-99d5-6b12993fef7a\",\"type\":\"GlyphRenderer\"},{\"id\":\"3a6e8f76-63d7-45e1-b0d7-5c386cb11537\",\"type\":\"GlyphRenderer\"},{\"id\":\"b32908c4-1eb7-474d-9f35-8708eff77266\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"adc89028-d13c-4ac6-bd4b-ea6aa19f79b1\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"7e68e539-2e96-4e11-baff-b17ecbc6a476\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"9c67b9d4-1c32-4e3d-a49f-2bf822ff9c8e\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"1022d006-d941-4938-999a-6bfc6279e106\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1e025b06-633d-40c1-925f-909f8edfbc1c\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"9ea71fd0-9e28-4576-b515-615d863cbe30\",\"type\":\"LinearScale\"}},\"id\":\"e73fc7e0-b6b5-45a0-af92-a1453358f8af\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"926d8081-e8f5-4a24-9668-a724c616ba5f\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"4c0ded2c-24d8-4135-98f2-6edce66eaf61\",\"type\":\"ResetTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"3bb55988-1678-4f6b-9e4f-4135f8e3dbd0\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data_source\":{\"id\":\"55d34150-0a1e-475d-8b0d-834c5030c092\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"46543754-447a-42e3-8f4e-52c8dd9d4d3e\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"926d8081-e8f5-4a24-9668-a724c616ba5f\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"6ce2260b-9598-432e-a987-63251b2f95ce\",\"type\":\"CDSView\"}},\"id\":\"b32908c4-1eb7-474d-9f35-8708eff77266\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"55d34150-0a1e-475d-8b0d-834c5030c092\",\"type\":\"ColumnDataSource\"}},\"id\":\"6ce2260b-9598-432e-a987-63251b2f95ce\",\"type\":\"CDSView\"},{\"attributes\":{\"label\":{\"value\":\"learning_rate=0.1, max_features=2\"},\"renderers\":[{\"id\":\"b32908c4-1eb7-474d-9f35-8708eff77266\",\"type\":\"GlyphRenderer\"}]},\"id\":\"e392e728-6084-4061-840b-8553908a2960\",\"type\":\"LegendItem\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"e73fc7e0-b6b5-45a0-af92-a1453358f8af\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"8dccf3bd-7927-4dc8-b88c-f47d4e261ca6\",\"type\":\"BasicTicker\"}},\"id\":\"6cf9140b-6e78-4907-9a4c-ebb120d12717\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"Boosting Iterations\",\"axis_label_text_font_size\":{\"value\":\"10pt\"},\"formatter\":{\"id\":\"0571bb01-577c-4cc1-b56a-831362a7dd0b\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"e73fc7e0-b6b5-45a0-af92-a1453358f8af\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"b508519f-74e6-4f96-bbfc-6a4a0a0887eb\",\"type\":\"BasicTicker\"}},\"id\":\"a4164e63-bc71-44fa-9afc-5b545337d1b9\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"ff496466-515d-45e5-adc8-c6f500bde3f2\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"b508519f-74e6-4f96-bbfc-6a4a0a0887eb\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_color\":\"orange\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"69ae106f-f549-4ee5-a54b-11eb91eeee09\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"e73fc7e0-b6b5-45a0-af92-a1453358f8af\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"b508519f-74e6-4f96-bbfc-6a4a0a0887eb\",\"type\":\"BasicTicker\"}},\"id\":\"d586de17-6242-49ae-949f-992e6c4c0a26\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101,106,111,116,121,126,131,136,141,146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281,286,291,296,301,306,311,316,321,326,331,336,341,346,351,356,361,366,371,376,381,386,391,396,401,406,411,416,421,426,431,436,441,446,451,456,461,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,586,591,596,601,606,611,616,621,626,631,636,641,646,651,656,661,666,671,676,681,686,691,696,701,706,711,716,721,726,731,736,741,746,751,756,761,766,771,776,781,786,791,796,801,806,811,816,821,826,831,836,841,846,851,856,861,866,871,876,881,886,891,896,901,906,911,916,921,926,931,936,941,946,951,956,961,966,971,976,981,986,991,996],\"y\":{\"__ndarray__\":\"cY1XDcFS9T//6rxo5nrtP4Tw2f3mKOc/3SjYjRG14z+KUruQzPDgP7WS3gt43d4/rEki0Z963T82i2WU7dHbPzmehIQiF9s/QOecnW0a2j/zq5zEswTaPy4JfMcM5tg/Y8tug9Fd2D9zdMyWlWjYPxcvC+1f5Nc/SXrCtPjl1z8czFUdHbbXP+kSk8Zqgdc/Xy2QEO4p1z+wAgnogcHWPx5DD48CuNY/giwbSR7a1j/lHVKn7svWP0n7EXpRhNY/1Ztg3qKD1j9NnQAKK2XWPyfUGgttS9Y/6S3sqv9T1j+C52W4sGPWP7oK/DnwNdY/d145x1NT1j+YvDTypizWP/ti6lwPS9Y/RK98/dsQ1j8pi2dOnuLVP6rdRxF//9U//nVQPEFK1j8Ri9yMPx7WP+TGP0xiKNY/gV/Z1Ibo1T8wQqRi8jvWP0lqBZ7BS9Y/QpV6qrFG1j/3zG1ybFXWP1wAteDjJdY/qv79V3tE1j9IpE3CdFzWP1e6/Y8lYtY/7GQqEwOV1j/y+kGhKFTWP60J0LrgjtY/iUFlDseT1j/fAP0JM8fWP7yznWHsnNY/PhSBaAVb1j92nfpcP4vWP74Nc8uLztY/K/bg5V/B1j8lVUz3ytfWP89XB6f5w9Y/FyuWKqqh1j/W7Mw0COzWPwLln+iJx9Y/aprHC3bI1j/8CV8fnLDWP4OxbRjiutY/zHZnT7MY1z95MfNIwxTXP0nKUZoPBNc/mLKeW77j1j9pnlGZ2B7XP3Edcnj3X9c/jDyeem5C1z/R99OHczLXP8Eboh8NTNc/u3CYWKFJ1z+72DmRUlrXP4iL9981hdc/hlbNfESb1z/aiEoMidfXPzhcQ34Bkdc/63/aKpSc1z+xBM8Gl4LXP360xI49Utc/DfBBKGVz1z9qqddIMIXXP/vAGtGbstc/ZRafb1el1z+Vr+AyKsfXP53PlUxdwNc/+F0kPNIZ2D/jVg2ILQDYP39us5bvTtg/JEhCtAB12D8VzZr46F7YP3YMmo3Rotg/Gbh7qUvB2D+eF4FzHJrYP4e2iG+fodg/9wPPwdro2D9vXdsCTwvZP7Mkw83LR9k/CWfvpVAt2T8YhXQW4y7ZP/Ww9JWuOtk/4CdIVGBB2T9fjQ5UDmfZPzWGSz4nnNk/jkt9bTCc2T+PS31tMJzZP49LfW0wnNk/j0t9bTCc2T+PS31tMJzZP49LfW0wnNk/j0t9bTCc2T+PS31tMJzZP49LfW0wnNk/kEt9bTCc2T+QS31tMJzZP5BLfW0wnNk/kEt9bTCc2T+RS31tMJzZP5FLfW0wnNk/kUt9bTCc2T+RS31tMJzZP5FLfW0wnNk/kUt9bTCc2T+SS31tMJzZP5JLfW0wnNk/kkt9bTCc2T+SS31tMJzZP5JLfW0wnNk/kkt9bTCc2T+SS31tMJzZP5JLfW0wnNk/kkt9bTCc2T+SS31tMJzZP5RLfW0wnNk/lEt9bTCc2T+US31tMJzZP5RLfW0wnNk/lEt9bTCc2T+US31tMJzZP5RLfW0wnNk/lEt9bTCc2T+US31tMJzZP5VLfW0wnNk/lUt9bTCc2T+WS31tMJzZP5ZLfW0wnNk/lkt9bTCc2T+WS31tMJzZP5ZLfW0wnNk/lkt9bTCc2T+WS31tMJzZP5ZLfW0wnNk/lkt9bTCc2T+WS31tMJzZP5ZLfW0wnNk/lkt9bTCc2T+WS31tMJzZP5dLfW0wnNk/l0t9bTCc2T+XS31tMJzZP5dLfW0wnNk/l0t9bTCc2T+YS31tMJzZP5lLfW0wnNk/mUt9bTCc2T+ZS31tMJzZP5lLfW0wnNk/mUt9bTCc2T+ZS31tMJzZP5lLfW0wnNk/mUt9bTCc2T+aS31tMJzZP5pLfW0wnNk/mkt9bTCc2T+aS31tMJzZP5tLfW0wnNk/m0t9bTCc2T+bS31tMJzZP5tLfW0wnNk/m0t9bTCc2T+bS31tMJzZP5xLfW0wnNk/nEt9bTCc2T+cS31tMJzZP51LfW0wnNk/nUt9bTCc2T+dS31tMJzZP51LfW0wnNk/nUt9bTCc2T+dS31tMJzZP51LfW0wnNk/nUt9bTCc2T+dS31tMJzZP55LfW0wnNk/n0t9bTCc2T+fS31tMJzZPw==\",\"dtype\":\"float64\",\"shape\":[200]}}},\"id\":\"ec7dcb66-250e-468b-9717-ec57f72aeea2\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis_label\":\"Test Set Deviance\",\"axis_label_text_font_size\":{\"value\":\"10pt\"},\"formatter\":{\"id\":\"ff496466-515d-45e5-adc8-c6f500bde3f2\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"e73fc7e0-b6b5-45a0-af92-a1453358f8af\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"8dccf3bd-7927-4dc8-b88c-f47d4e261ca6\",\"type\":\"BasicTicker\"}},\"id\":\"ad21904e-fb9c-4a35-8327-9140b9e6d7ee\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"85bf2f63-3c8d-47cb-928d-10384c833bb3\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"ec7dcb66-250e-468b-9717-ec57f72aeea2\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"69ae106f-f549-4ee5-a54b-11eb91eeee09\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"85bf2f63-3c8d-47cb-928d-10384c833bb3\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"c30764ae-5f58-48d1-937b-1fe69b96ab23\",\"type\":\"CDSView\"}},\"id\":\"3ea46e5a-8471-43e8-a8b7-8249c16534eb\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"99369e7a-e806-464b-9943-01f8eb3a0186\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"8dccf3bd-7927-4dc8-b88c-f47d4e261ca6\",\"type\":\"BasicTicker\"},{\"attributes\":{\"source\":{\"id\":\"ec7dcb66-250e-468b-9717-ec57f72aeea2\",\"type\":\"ColumnDataSource\"}},\"id\":\"c30764ae-5f58-48d1-937b-1fe69b96ab23\",\"type\":\"CDSView\"},{\"attributes\":{\"label\":{\"value\":\"No shrinkage\"},\"renderers\":[{\"id\":\"3ea46e5a-8471-43e8-a8b7-8249c16534eb\",\"type\":\"GlyphRenderer\"}]},\"id\":\"53180b7a-6d5a-486e-8893-29ce265bb92a\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"0571bb01-577c-4cc1-b56a-831362a7dd0b\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"eb8637e7-4a71-490c-be14-badf40074aa6\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"c1020542-4348-46df-ab3a-e5cc641931eb\",\"type\":\"SaveTool\"},{\"attributes\":{\"items\":[{\"id\":\"53180b7a-6d5a-486e-8893-29ce265bb92a\",\"type\":\"LegendItem\"},{\"id\":\"d34c2270-ff7e-4956-bde4-db4fac47b2f1\",\"type\":\"LegendItem\"},{\"id\":\"f104e79c-0597-4839-be30-4b33cfc7107b\",\"type\":\"LegendItem\"},{\"id\":\"9a7edad0-813e-4845-ab7e-5c09166b7eb8\",\"type\":\"LegendItem\"},{\"id\":\"e392e728-6084-4061-840b-8553908a2960\",\"type\":\"LegendItem\"}],\"plot\":{\"id\":\"e73fc7e0-b6b5-45a0-af92-a1453358f8af\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"1ab53a53-7428-4b3e-8de6-d71a273b5941\",\"type\":\"Legend\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"cc92099f-08c0-44b6-8152-b08964bfbc09\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"turquoise\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"84a32d96-3667-47b9-895a-1399a8e7c57f\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101,106,111,116,121,126,131,136,141,146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281,286,291,296,301,306,311,316,321,326,331,336,341,346,351,356,361,366,371,376,381,386,391,396,401,406,411,416,421,426,431,436,441,446,451,456,461,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,586,591,596,601,606,611,616,621,626,631,636,641,646,651,656,661,666,671,676,681,686,691,696,701,706,711,716,721,726,731,736,741,746,751,756,761,766,771,776,781,786,791,796,801,806,811,816,821,826,831,836,841,846,851,856,861,866,871,876,881,886,891,896,901,906,911,916,921,926,931,936,941,946,951,956,961,966,971,976,981,986,991,996],\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[200]}}},\"id\":\"22ed02b8-9fb2-4169-b195-e6f14a632b6b\",\"type\":\"ColumnDataSource\"}],\"root_ids\":[\"e73fc7e0-b6b5-45a0-af92-a1453358f8af\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.13\"}};\n", " var render_items = [{\"docid\":\"19cf6d7f-d015-4785-b056-ff4732fee2a7\",\"elementid\":\"2f7eb7c7-6166-4d3d-864b-c57240b4ab74\",\"modelid\":\"e73fc7e0-b6b5-45a0-af92-a1453358f8af\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "e73fc7e0-b6b5-45a0-af92-a1453358f8af" } }, "output_type": "display_data" } ], "source": [ "original_params2 = {'n_estimators': 1000, \n", " 'max_leaf_nodes': 4, \n", " 'max_depth': None, \n", " 'random_state': 42,\n", " 'min_samples_split': 5}\n", "\n", "fig = bk.figure(plot_width=700, \n", " plot_height=500,\n", " title=\"Regularization\")\n", "\n", "for label, color, setting in [('No shrinkage', 'orange',\n", " {'learning_rate': 1.0, 'subsample': 1.0}),\n", " ('learning_rate=0.1', 'turquoise',\n", " {'learning_rate': 0.1, 'subsample': 1.0}),\n", " ('subsample=0.5', 'blue',\n", " {'learning_rate': 1.0, 'subsample': 0.5}),\n", " ('learning_rate=0.1, subsample=0.5', 'gray',\n", " {'learning_rate': 0.1, 'subsample': 0.5}),\n", " ('learning_rate=0.1, max_features=2', 'magenta',\n", " {'learning_rate': 0.1, 'max_features': 2})]:\n", " params2 = dict(original_params2)\n", " params2.update(setting)\n", "\n", " clf2 = ensemble.GradientBoostingClassifier(**params2)\n", " clf2.fit(X_hastie_train, y_hastie_train)\n", "\n", " # compute test set deviance\n", " test_deviance = np.zeros((params2['n_estimators'],), dtype=np.float64)\n", "\n", " for i, y_hastie_pred in enumerate(clf2.staged_decision_function(X_hastie_test)):\n", " # clf.loss_ assumes that y_test[i] in {0, 1}\n", " test_deviance[i] = clf2.loss_(y_hastie_test, y_hastie_pred)\n", "\n", " fig.line((np.arange(test_deviance.shape[0]) + 1)[::5], \n", " test_deviance[::5],\n", " color=color, \n", " legend=label)\n", "\n", "fig.xaxis.axis_label = \"Boosting Iterations\"\n", "fig.xaxis.axis_label_text_font_size = '10pt'\n", "fig.yaxis.axis_label = \"Test Set Deviance\"\n", "fig.yaxis.axis_label_text_font_size = '10pt'\n", "\n", "bk.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Hyperparameter Tuning:**\n", "This is a possible approach to tune hyperparameters in Gradient Boosting Regression Trees. Note that it is a difficoult task and there is no unique way to do it.\n", "\n", "1. set n_estimators with an high value\n", "2. tune hyperparameters via grid search\n", "3. finally set n_estimators even higher and tune learning_rate\n", "\n", "**Step 1 and 2**: do a grid search by using the maximum number of n_estimators and tune other hyperparameter" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Done in 36.034[s]\n" ] } ], "source": [ "gtb = ensemble.GradientBoostingClassifier(n_estimators = 1000)\n", "params = {'max_depth':[4, 6],\n", " 'min_samples_leaf':[3, 5, 9],\n", " 'learning_rate':[0.1, 0.05, 0.02],\n", " 'subsample':[0.5, 1.0],\n", " 'max_features':[2,3,4]}\n", "t0 = time()\n", "grid = model_selection.GridSearchCV(gtb, params, n_jobs=-1)\n", "grid.fit(df_train, y_train)\n", "gtb_best = grid.best_estimator_\n", "print('Done in %0.3f[s]' %(time() - t0))" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "learning_rate : 0.1\n", "max_depth : 4\n", "max_features : 4\n", "min_samples_leaf : 3\n", "subsample : 1.0\n", "F1 Score : 0.957\n", "\n", "Confusion Matrix:\n", "[[8 0 0]\n", " [0 7 0]\n", " [0 1 7]]\n" ] } ], "source": [ "for key, value in grid.best_params_.items():\n", " print(key.ljust(20), ':', value)\n", "print('F1 Score'.ljust(20), ': %.3f' %(metrics.f1_score(gtb_best.predict(df_valid), \n", " y_valid, average='micro')))\n", "print('\\nConfusion Matrix:')\n", "print(metrics.confusion_matrix(gtb_best.predict(df_valid), y_valid))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Step 3**: increase n_estimators and fine tune learning_rate:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Done in 14.628[s]\n" ] } ], "source": [ "gtb = ensemble.GradientBoostingClassifier()\n", "params = {'n_estimators':[3000],\n", " 'max_depth':[6],\n", " 'min_samples_leaf':[9],\n", " 'learning_rate':[0.05, 0.02, 0.01, 0.005],\n", " 'subsample':[0.5],\n", " 'max_features':[2]}\n", "t0 = time()\n", "grid = model_selection.GridSearchCV(gtb, params, cv=7, n_jobs=-1)\n", "grid.fit(df_train, y_train)\n", "gtb_best = grid.best_estimator_\n", "print('Done in %0.3f[s]' %(time() - t0))" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "learning_rate : 0.05\n", "max_depth : 6\n", "max_features : 2\n", "min_samples_leaf : 9\n", "n_estimators : 3000\n", "subsample : 0.5\n", "F1 Score : 0.957\n", "\n", "Confusion Matrix:\n", "[[8 0 0]\n", " [0 7 0]\n", " [0 1 7]]\n" ] } ], "source": [ "for key, value in grid.best_params_.items():\n", " print(key.ljust(20), ':', value)\n", "print('F1 Score'.ljust(20), ': %.3f' %(metrics.f1_score(gtb_best.predict(df_valid), \n", " y_valid, average='micro')))\n", "print('\\nConfusion Matrix:')\n", "print(metrics.confusion_matrix(gtb_best.predict(df_valid), y_valid))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**GBRT typical properties:**\n", "\n", "- PROS:\n", " - Natural handling of data of mixed type (= heterogeneous features)\n", " - Predictive power.\n", " - Robustness to outliers in input space (via robust loss functions)\n", " - Support for different Loss functions.\n", " - Automaticalli detects non-linear feature interactions\n", " - Fits naturally additive functions.\n", " - scikit-learn implementation supports warm start; it is possible to add additional estimators to an already fitted model.\n", "\n", "- CONS:\n", " - Requires careful tuning (RF are faster to tune, they use essentially one parameter)\n", " - Slow to train (but fast in prediction)\n", " - Cannot extrapolate (it is not possible to predict beyond the minimum and maximum limits of the response variable in the training data, common to many Machine Learning algorithms).\n", " - Scalability issue: due to its sequential nature it is hardly parallelizable." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "Visit [www.add-for.com]() for more tutorials and updates.\n", "\n", "This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License." ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [conda env:addfor_tutorials]", "language": "python", "name": "conda-env-addfor_tutorials-py" }, "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": 1 }