4481 lines
881 KiB
Plaintext
4481 lines
881 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "35ef9776",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"<!-- HTML file automatically generated from DocOnce source (https://github.com/doconce/doconce/)\n",
|
||
"doconce format html week47.do.txt --no_mako -->\n",
|
||
"<!-- dom:TITLE: Week 47: From Decision Trees to Ensemble Methods, Random Forests and Boosting Methods -->"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e52e5823",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"# Week 47: From Decision Trees to Ensemble Methods, Random Forests and Boosting Methods\n",
|
||
"**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and Facility for Rare Ion Beams, Michigan State University\n",
|
||
"\n",
|
||
"Date: **November 18-22, 2024**"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2ec77941",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Plan for week 47\n",
|
||
"\n",
|
||
"**Lab sessions on Tuesday and Wednesday.**\n",
|
||
"\n",
|
||
" * Work and Discussion of project 3\n",
|
||
"\n",
|
||
" * Second last weekly exercise,\n",
|
||
"\n",
|
||
" \n",
|
||
"\n",
|
||
"**Plans for the lecture Monday 18 November, with video suggestions etc.**\n",
|
||
"\n",
|
||
"1. Basics of decision trees, classification and regression algorithms and ensemble models \n",
|
||
"\n",
|
||
"2. Readings and Videos:\n",
|
||
"\n",
|
||
"a. These lecture notes at <https://github.com/CompPhysics/MachineLearning/blob/master/doc/pub/week47/ipynb/week47.ipynb>\n",
|
||
"\n",
|
||
"b. See also lecture notes from week 46 at <https://github.com/CompPhysics/MachineLearning/blob/master/doc/pub/week46/ipynb/week46.ipynb>. The lecture on Monday starts with a repetition on how to make a decision tree.\n",
|
||
"<!-- * [Video of Lecture](https://youtu.be/SpWXsvn5I9E) -->\n",
|
||
"<!-- * [Whiteboard notes](https://github.com/CompPhysics/MachineLearning/blob/master/doc/HandWrittenNotes/2023/NotesNov23.pdf) -->\n",
|
||
"\n",
|
||
"c. Video on Decision trees <https://www.youtube.com/watch?v=RmajweUFKvM&ab_channel=Simplilearn>\n",
|
||
"\n",
|
||
"d. Video on boosting methods <https://www.youtube.com/watch?v=wPqtzj5VZus&ab_channel=H2O.ai>\n",
|
||
"\n",
|
||
"e. Video on AdaBoost <https://www.youtube.com/watch?v=LsK-xG1cLYA>\n",
|
||
"\n",
|
||
"f. Video on Gradient boost, part 1, parts 2-4 follow thereafter <https://www.youtube.com/watch?v=3CC4N4z3GJc>\n",
|
||
"\n",
|
||
"g. Decision Trees: Rashcka et al chapter 3 pages 86-98, and chapter 7 on Ensemble methods, Voting and Bagging and Gradient Boosting. See also lecture from STK-IN4300, lecture 7 at <https://www.uio.no/studier/emner/matnat/math/STK-IN4300/h20/slides/lecture_7.pdf>."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1a0d87d6",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Building a tree, regression\n",
|
||
"\n",
|
||
"There are mainly two steps\n",
|
||
"1. We split the predictor space (the set of possible values $x_1,x_2,\\dots, x_p$) into $J$ distinct and non-non-overlapping regions, $R_1,R_2,\\dots,R_J$. \n",
|
||
"\n",
|
||
"2. For every observation that falls into the region $R_j$ , we make the same prediction, which is simply the mean of the response values for the training observations in $R_j$.\n",
|
||
"\n",
|
||
"How do we construct the regions $R_1,\\dots,R_J$? In theory, the\n",
|
||
"regions could have any shape. However, we choose to divide the\n",
|
||
"predictor space into high-dimensional rectangles, or boxes, for\n",
|
||
"simplicity and for ease of interpretation of the resulting predictive\n",
|
||
"model. The goal is to find boxes $R_1,\\dots,R_J$ that minimize the\n",
|
||
"MSE, given by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "56e46863",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\sum_{j=1}^J\\sum_{i\\in R_j}(y_i-\\overline{y}_{R_j})^2,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5695a619",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"where $\\overline{y}_{R_j}$ is the mean response for the training observations \n",
|
||
"within box $j$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c992a08c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## A top-down approach, recursive binary splitting\n",
|
||
"\n",
|
||
"Unfortunately, it is computationally infeasible to consider every\n",
|
||
"possible partition of the feature space into $J$ boxes. The common\n",
|
||
"strategy is to take a top-down approach\n",
|
||
"\n",
|
||
"The approach is top-down because it begins at the top of the tree (all\n",
|
||
"observations belong to a single region) and then successively splits\n",
|
||
"the predictor space; each split is indicated via two new branches\n",
|
||
"further down on the tree. It is greedy because at each step of the\n",
|
||
"tree-building process, the best split is made at that particular step,\n",
|
||
"rather than looking ahead and picking a split that will lead to a\n",
|
||
"better tree in some future step."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3bac813d",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Making a tree\n",
|
||
"\n",
|
||
"In order to implement the recursive binary splitting we start by selecting\n",
|
||
"the predictor $x_j$ and a cutpoint $s$ that splits the predictor space into two regions $R_1$ and $R_2$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b60d3e74",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\left\\{X\\vert x_j < s\\right\\},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1117615c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"and"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "64c09717",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\left\\{X\\vert x_j \\geq s\\right\\},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "fd337b27",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"so that we obtain the lowest MSE, that is"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1502885a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\sum_{i:x_i\\in R_j}(y_i-\\overline{y}_{R_1})^2+\\sum_{i:x_i\\in R_2}(y_i-\\overline{y}_{R_2})^2,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d786f912",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which we want to minimize by considering all predictors\n",
|
||
"$x_1,x_2,\\dots,x_p$. We consider also all possible values of $s$ for\n",
|
||
"each predictor. These values could be determined by randomly assigned\n",
|
||
"numbers or by starting at the midpoint and then proceed till we find\n",
|
||
"an optimal value.\n",
|
||
"\n",
|
||
"For any $j$ and $s$, we define the pair of half-planes where\n",
|
||
"$\\overline{y}_{R_1}$ is the mean response for the training\n",
|
||
"observations in $R_1(j,s)$, and $\\overline{y}_{R_2}$ is the mean\n",
|
||
"response for the training observations in $R_2(j,s)$.\n",
|
||
"\n",
|
||
"Finding the values of $j$ and $s$ that minimize the above equation can be\n",
|
||
"done quite quickly, especially when the number of features $p$ is not\n",
|
||
"too large.\n",
|
||
"\n",
|
||
"Next, we repeat the process, looking\n",
|
||
"for the best predictor and best cutpoint in order to split the data\n",
|
||
"further so as to minimize the MSE within each of the resulting\n",
|
||
"regions. However, this time, instead of splitting the entire predictor\n",
|
||
"space, we split one of the two previously identified regions. We now\n",
|
||
"have three regions. Again, we look to split one of these three regions\n",
|
||
"further, so as to minimize the MSE. The process continues until a\n",
|
||
"stopping criterion is reached; for instance, we may continue until no\n",
|
||
"region contains more than five observations."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5de98f70",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Pruning the tree\n",
|
||
"\n",
|
||
"The above procedure is rather straightforward, but leads often to\n",
|
||
"overfitting and unnecessarily large and complicated trees. The basic\n",
|
||
"idea is to grow a large tree $T_0$ and then prune it back in order to\n",
|
||
"obtain a subtree. A smaller tree with fewer splits (fewer regions) can\n",
|
||
"lead to smaller variance and better interpretation at the cost of a\n",
|
||
"little more bias.\n",
|
||
"\n",
|
||
"The so-called Cost complexity pruning algorithm gives us a\n",
|
||
"way to do just this. Rather than considering every possible subtree,\n",
|
||
"we consider a sequence of trees indexed by a nonnegative tuning\n",
|
||
"parameter $\\alpha$.\n",
|
||
"\n",
|
||
"Read more at the following [Scikit-Learn link on pruning](https://scikit-learn.org/stable/auto_examples/tree/plot_cost_complexity_pruning.html#sphx-glr-auto-examples-tree-plot-cost-complexity-pruning-py)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7e81e271",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Cost complexity pruning\n",
|
||
"\n",
|
||
"For each value of $\\alpha$ there corresponds a subtree $T \\in T_0$ such that"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "8845d92b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\sum_{m=1}^{\\overline{T}}\\sum_{i:x_i\\in R_m}(y_i-\\overline{y}_{R_m})^2+\\alpha\\overline{T},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "bdf20e39",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"is as small as possible. Here $\\overline{T}$ is \n",
|
||
"the number of terminal nodes of the tree $T$ , $R_m$ is the\n",
|
||
"rectangle (i.e. the subset of predictor space) corresponding to the $m$-th terminal node.\n",
|
||
"\n",
|
||
"The tuning parameter $\\alpha$ controls a trade-off between the subtree’s\n",
|
||
"complexity and its fit to the training data. When $\\alpha = 0$, then the\n",
|
||
"subtree $T$ will simply equal $T_0$, \n",
|
||
"because then the above equation just measures the\n",
|
||
"training error. \n",
|
||
"However, as $\\alpha$ increases, there is a price to pay for\n",
|
||
"having a tree with many terminal nodes. The above equation will\n",
|
||
"tend to be minimized for a smaller subtree. \n",
|
||
"\n",
|
||
"It turns out that as we increase $\\alpha$ from zero\n",
|
||
"branches get pruned from the tree in a nested and predictable fashion,\n",
|
||
"so obtaining the whole sequence of subtrees as a function of $\\alpha$ is\n",
|
||
"easy. We can select a value of $\\alpha$ using a validation set or using\n",
|
||
"cross-validation. We then return to the full data set and obtain the\n",
|
||
"subtree corresponding to $\\alpha$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7bbbb688",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Schematic Regression Procedure\n",
|
||
"\n",
|
||
"**Building a Regression Tree.**\n",
|
||
"\n",
|
||
"1. Use recursive binary splitting to grow a large tree on the training data, stopping only when each terminal node has fewer than some minimum number of observations.\n",
|
||
"\n",
|
||
"2. Apply cost complexity pruning to the large tree in order to obtain a sequence of best subtrees, as a function of $\\alpha$.\n",
|
||
"\n",
|
||
"3. Use for example $K$-fold cross-validation to choose $\\alpha$. Divide the training observations into $K$ folds. For each $k=1,2,\\dots,K$ we: \n",
|
||
"\n",
|
||
" * repeat steps 1 and 2 on all but the $k$-th fold of the training data. \n",
|
||
"\n",
|
||
" * Then we valuate the mean squared prediction error on the data in the left-out $k$-th fold, as a function of $\\alpha$.\n",
|
||
"\n",
|
||
" * Finally we average the results for each value of $\\alpha$, and pick $\\alpha$ to minimize the average error.\n",
|
||
"\n",
|
||
"4. Return the subtree from Step 2 that corresponds to the chosen value of $\\alpha$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4ba9ac4b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## A Classification Tree\n",
|
||
"\n",
|
||
"A classification tree is very similar to a regression tree, except\n",
|
||
"that it is used to predict a qualitative response rather than a\n",
|
||
"quantitative one. Recall that for a regression tree, the predicted\n",
|
||
"response for an observation is given by the mean response of the\n",
|
||
"training observations that belong to the same terminal node. In\n",
|
||
"contrast, for a classification tree, we predict that each observation\n",
|
||
"belongs to the most commonly occurring class of training observations\n",
|
||
"in the region to which it belongs. In interpreting the results of a\n",
|
||
"classification tree, we are often interested not only in the class\n",
|
||
"prediction corresponding to a particular terminal node region, but\n",
|
||
"also in the class proportions among the training observations that\n",
|
||
"fall into that region."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5714cdd7",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Growing a classification tree\n",
|
||
"\n",
|
||
"The task of growing a\n",
|
||
"classification tree is quite similar to the task of growing a\n",
|
||
"regression tree. Just as in the regression setting, we use recursive\n",
|
||
"binary splitting to grow a classification tree. However, in the\n",
|
||
"classification setting, the MSE cannot be used as a criterion for making\n",
|
||
"the binary splits. A natural alternative to MSE is the **classification\n",
|
||
"error rate**. Since we plan to assign an observation in a given region\n",
|
||
"to the most commonly occurring error rate class of training\n",
|
||
"observations in that region, the classification error rate is simply\n",
|
||
"the fraction of the training observations in that region that do not\n",
|
||
"belong to the most common class. \n",
|
||
"\n",
|
||
"When building a classification tree, either the Gini index or the\n",
|
||
"entropy are typically used to evaluate the quality of a particular\n",
|
||
"split, since these two approaches are more sensitive to node purity\n",
|
||
"than is the classification error rate."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5c15435f",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Classification tree, how to split nodes\n",
|
||
"\n",
|
||
"If our targets are the outcome of a classification process that takes\n",
|
||
"for example $k=1,2,\\dots,K$ values, the only thing we need to think of\n",
|
||
"is to set up the splitting criteria for each node.\n",
|
||
"\n",
|
||
"We define a PDF $p_{mk}$ that represents the number of observations of\n",
|
||
"a class $k$ in a region $R_m$ with $N_m$ observations. We represent\n",
|
||
"this likelihood function in terms of the proportion $I(y_i=k)$ of\n",
|
||
"observations of this class in the region $R_m$ as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "eb39940c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p_{mk} = \\frac{1}{N_m}\\sum_{x_i\\in R_m}I(y_i=k).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4d9b9e2e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We let $p_{mk}$ represent the majority class of observations in region\n",
|
||
"$m$. The three most common ways of splitting a node are given by\n",
|
||
"\n",
|
||
"* Misclassification error"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d5167f74",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p_{mk} = \\frac{1}{N_m}\\sum_{x_i\\in R_m}I(y_i\\ne k) = 1-p_{mk}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "01f67bea",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"* Gini index $g$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1e531f1a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"g = \\sum_{k=1}^K p_{mk}(1-p_{mk}).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "efbea2ac",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"* Information entropy or just entropy $s$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "280b2efb",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"s = -\\sum_{k=1}^K p_{mk}\\log{p_{mk}}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7babf817",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Visualizing the Tree, Classification"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"id": "055c462e",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" mean radius mean texture mean perimeter mean area mean smoothness \\\n",
|
||
"0 17.99 10.38 122.80 1001.0 0.11840 \n",
|
||
"1 20.57 17.77 132.90 1326.0 0.08474 \n",
|
||
"2 19.69 21.25 130.00 1203.0 0.10960 \n",
|
||
"3 11.42 20.38 77.58 386.1 0.14250 \n",
|
||
"4 20.29 14.34 135.10 1297.0 0.10030 \n",
|
||
".. ... ... ... ... ... \n",
|
||
"564 21.56 22.39 142.00 1479.0 0.11100 \n",
|
||
"565 20.13 28.25 131.20 1261.0 0.09780 \n",
|
||
"566 16.60 28.08 108.30 858.1 0.08455 \n",
|
||
"567 20.60 29.33 140.10 1265.0 0.11780 \n",
|
||
"568 7.76 24.54 47.92 181.0 0.05263 \n",
|
||
"\n",
|
||
" mean compactness mean concavity mean concave points mean symmetry \\\n",
|
||
"0 0.27760 0.30010 0.14710 0.2419 \n",
|
||
"1 0.07864 0.08690 0.07017 0.1812 \n",
|
||
"2 0.15990 0.19740 0.12790 0.2069 \n",
|
||
"3 0.28390 0.24140 0.10520 0.2597 \n",
|
||
"4 0.13280 0.19800 0.10430 0.1809 \n",
|
||
".. ... ... ... ... \n",
|
||
"564 0.11590 0.24390 0.13890 0.1726 \n",
|
||
"565 0.10340 0.14400 0.09791 0.1752 \n",
|
||
"566 0.10230 0.09251 0.05302 0.1590 \n",
|
||
"567 0.27700 0.35140 0.15200 0.2397 \n",
|
||
"568 0.04362 0.00000 0.00000 0.1587 \n",
|
||
"\n",
|
||
" mean fractal dimension ... worst radius worst texture \\\n",
|
||
"0 0.07871 ... 25.380 17.33 \n",
|
||
"1 0.05667 ... 24.990 23.41 \n",
|
||
"2 0.05999 ... 23.570 25.53 \n",
|
||
"3 0.09744 ... 14.910 26.50 \n",
|
||
"4 0.05883 ... 22.540 16.67 \n",
|
||
".. ... ... ... ... \n",
|
||
"564 0.05623 ... 25.450 26.40 \n",
|
||
"565 0.05533 ... 23.690 38.25 \n",
|
||
"566 0.05648 ... 18.980 34.12 \n",
|
||
"567 0.07016 ... 25.740 39.42 \n",
|
||
"568 0.05884 ... 9.456 30.37 \n",
|
||
"\n",
|
||
" worst perimeter worst area worst smoothness worst compactness \\\n",
|
||
"0 184.60 2019.0 0.16220 0.66560 \n",
|
||
"1 158.80 1956.0 0.12380 0.18660 \n",
|
||
"2 152.50 1709.0 0.14440 0.42450 \n",
|
||
"3 98.87 567.7 0.20980 0.86630 \n",
|
||
"4 152.20 1575.0 0.13740 0.20500 \n",
|
||
".. ... ... ... ... \n",
|
||
"564 166.10 2027.0 0.14100 0.21130 \n",
|
||
"565 155.00 1731.0 0.11660 0.19220 \n",
|
||
"566 126.70 1124.0 0.11390 0.30940 \n",
|
||
"567 184.60 1821.0 0.16500 0.86810 \n",
|
||
"568 59.16 268.6 0.08996 0.06444 \n",
|
||
"\n",
|
||
" worst concavity worst concave points worst symmetry \\\n",
|
||
"0 0.7119 0.2654 0.4601 \n",
|
||
"1 0.2416 0.1860 0.2750 \n",
|
||
"2 0.4504 0.2430 0.3613 \n",
|
||
"3 0.6869 0.2575 0.6638 \n",
|
||
"4 0.4000 0.1625 0.2364 \n",
|
||
".. ... ... ... \n",
|
||
"564 0.4107 0.2216 0.2060 \n",
|
||
"565 0.3215 0.1628 0.2572 \n",
|
||
"566 0.3403 0.1418 0.2218 \n",
|
||
"567 0.9387 0.2650 0.4087 \n",
|
||
"568 0.0000 0.0000 0.2871 \n",
|
||
"\n",
|
||
" worst fractal dimension \n",
|
||
"0 0.11890 \n",
|
||
"1 0.08902 \n",
|
||
"2 0.08758 \n",
|
||
"3 0.17300 \n",
|
||
"4 0.07678 \n",
|
||
".. ... \n",
|
||
"564 0.07115 \n",
|
||
"565 0.06637 \n",
|
||
"566 0.07820 \n",
|
||
"567 0.12400 \n",
|
||
"568 0.07039 \n",
|
||
"\n",
|
||
"[569 rows x 30 columns]\n",
|
||
" malignant benign\n",
|
||
"0 True False\n",
|
||
"1 True False\n",
|
||
"2 True False\n",
|
||
"3 True False\n",
|
||
"4 True False\n",
|
||
".. ... ...\n",
|
||
"564 True False\n",
|
||
"565 True False\n",
|
||
"566 True False\n",
|
||
"567 True False\n",
|
||
"568 False True\n",
|
||
"\n",
|
||
"[569 rows x 2 columns]\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"0"
|
||
]
|
||
},
|
||
"execution_count": 1,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"import os\n",
|
||
"from sklearn.datasets import load_breast_cancer\n",
|
||
"from sklearn.tree import DecisionTreeClassifier\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.metrics import confusion_matrix\n",
|
||
"from sklearn.tree import export_graphviz\n",
|
||
"\n",
|
||
"from IPython.display import Image \n",
|
||
"from pydot import graph_from_dot_data\n",
|
||
"import pandas as pd\n",
|
||
"import numpy as np\n",
|
||
"\n",
|
||
"\n",
|
||
"cancer = load_breast_cancer()\n",
|
||
"X = pd.DataFrame(cancer.data, columns=cancer.feature_names)\n",
|
||
"print(X)\n",
|
||
"y = pd.Categorical.from_codes(cancer.target, cancer.target_names)\n",
|
||
"y = pd.get_dummies(y)\n",
|
||
"print(y)\n",
|
||
"X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)\n",
|
||
"tree_clf = DecisionTreeClassifier(max_depth=5)\n",
|
||
"tree_clf.fit(X_train, y_train)\n",
|
||
"\n",
|
||
"export_graphviz(\n",
|
||
" tree_clf,\n",
|
||
" out_file=\"DataFiles/cancer.dot\",\n",
|
||
" feature_names=cancer.feature_names,\n",
|
||
" class_names=cancer.target_names,\n",
|
||
" rounded=True,\n",
|
||
" filled=True\n",
|
||
")\n",
|
||
"cmd = 'dot -Tpng DataFiles/cancer.dot -o DataFiles/cancer.png'\n",
|
||
"os.system(cmd)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "373cd1f1",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Visualizing the Tree, The Moons"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"id": "9ba3d312",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"0"
|
||
]
|
||
},
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Common imports\n",
|
||
"import numpy as np\n",
|
||
"from sklearn.model_selection import train_test_split \n",
|
||
"from sklearn.tree import DecisionTreeClassifier\n",
|
||
"from sklearn.datasets import make_moons\n",
|
||
"from sklearn.tree import export_graphviz\n",
|
||
"from pydot import graph_from_dot_data\n",
|
||
"import pandas as pd\n",
|
||
"import os\n",
|
||
"\n",
|
||
"np.random.seed(42)\n",
|
||
"X, y = make_moons(n_samples=100, noise=0.25, random_state=53)\n",
|
||
"X_train, X_test, y_train, y_test = train_test_split(X,y,random_state=0)\n",
|
||
"tree_clf = DecisionTreeClassifier(max_depth=5)\n",
|
||
"tree_clf.fit(X_train, y_train)\n",
|
||
"\n",
|
||
"export_graphviz(\n",
|
||
" tree_clf,\n",
|
||
" out_file=\"DataFiles/moons.dot\",\n",
|
||
" rounded=True,\n",
|
||
" filled=True\n",
|
||
")\n",
|
||
"cmd = 'dot -Tpng DataFiles/moons.dot -o DataFiles/moons.png'\n",
|
||
"os.system(cmd)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d7f37116",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Other ways of visualizing the trees\n",
|
||
"\n",
|
||
"**Scikit-Learn** has also another way to visualize the trees which is very useful, here with the Iris data."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"id": "b58ec950",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[Text(0.5, 0.9166666666666666, 'x[2] <= 2.45\\ngini = 0.667\\nsamples = 150\\nvalue = [50, 50, 50]'),\n",
|
||
" Text(0.4230769230769231, 0.75, 'gini = 0.0\\nsamples = 50\\nvalue = [50, 0, 0]'),\n",
|
||
" Text(0.5769230769230769, 0.75, 'x[3] <= 1.75\\ngini = 0.5\\nsamples = 100\\nvalue = [0, 50, 50]'),\n",
|
||
" Text(0.3076923076923077, 0.5833333333333334, 'x[2] <= 4.95\\ngini = 0.168\\nsamples = 54\\nvalue = [0, 49, 5]'),\n",
|
||
" Text(0.15384615384615385, 0.4166666666666667, 'x[3] <= 1.65\\ngini = 0.041\\nsamples = 48\\nvalue = [0, 47, 1]'),\n",
|
||
" Text(0.07692307692307693, 0.25, 'gini = 0.0\\nsamples = 47\\nvalue = [0, 47, 0]'),\n",
|
||
" Text(0.23076923076923078, 0.25, 'gini = 0.0\\nsamples = 1\\nvalue = [0, 0, 1]'),\n",
|
||
" Text(0.46153846153846156, 0.4166666666666667, 'x[3] <= 1.55\\ngini = 0.444\\nsamples = 6\\nvalue = [0, 2, 4]'),\n",
|
||
" Text(0.38461538461538464, 0.25, 'gini = 0.0\\nsamples = 3\\nvalue = [0, 0, 3]'),\n",
|
||
" Text(0.5384615384615384, 0.25, 'x[2] <= 5.45\\ngini = 0.444\\nsamples = 3\\nvalue = [0, 2, 1]'),\n",
|
||
" Text(0.46153846153846156, 0.08333333333333333, 'gini = 0.0\\nsamples = 2\\nvalue = [0, 2, 0]'),\n",
|
||
" Text(0.6153846153846154, 0.08333333333333333, 'gini = 0.0\\nsamples = 1\\nvalue = [0, 0, 1]'),\n",
|
||
" Text(0.8461538461538461, 0.5833333333333334, 'x[2] <= 4.85\\ngini = 0.043\\nsamples = 46\\nvalue = [0, 1, 45]'),\n",
|
||
" Text(0.7692307692307693, 0.4166666666666667, 'x[1] <= 3.1\\ngini = 0.444\\nsamples = 3\\nvalue = [0, 1, 2]'),\n",
|
||
" Text(0.6923076923076923, 0.25, 'gini = 0.0\\nsamples = 2\\nvalue = [0, 0, 2]'),\n",
|
||
" Text(0.8461538461538461, 0.25, 'gini = 0.0\\nsamples = 1\\nvalue = [0, 1, 0]'),\n",
|
||
" Text(0.9230769230769231, 0.4166666666666667, 'gini = 0.0\\nsamples = 43\\nvalue = [0, 0, 43]')]"
|
||
]
|
||
},
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.datasets import load_iris\n",
|
||
"from sklearn import tree\n",
|
||
"X, y = load_iris(return_X_y=True)\n",
|
||
"tree_clf = tree.DecisionTreeClassifier()\n",
|
||
"tree_clf = tree_clf.fit(X, y)\n",
|
||
"# and then plot the tree\n",
|
||
"tree.plot_tree(tree_clf)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d84de959",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Printing out as text\n",
|
||
"\n",
|
||
"Alternatively, the tree can also be exported in textual format with the function exporttext.\n",
|
||
"This method doesn’t require the installation of external libraries and is more compact:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"id": "2fa071b1",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"|--- petal width (cm) <= 0.80\n",
|
||
"| |--- class: 0\n",
|
||
"|--- petal width (cm) > 0.80\n",
|
||
"| |--- petal width (cm) <= 1.75\n",
|
||
"| | |--- class: 1\n",
|
||
"| |--- petal width (cm) > 1.75\n",
|
||
"| | |--- class: 2\n",
|
||
"\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.datasets import load_iris\n",
|
||
"from sklearn.tree import DecisionTreeClassifier\n",
|
||
"from sklearn.tree import export_text\n",
|
||
"iris = load_iris()\n",
|
||
"decision_tree = DecisionTreeClassifier(random_state=0, max_depth=2)\n",
|
||
"decision_tree = decision_tree.fit(iris.data, iris.target)\n",
|
||
"r = export_text(decision_tree, feature_names=iris['feature_names'])\n",
|
||
"print(r)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1e720eed",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Algorithms for Setting up Decision Trees\n",
|
||
"\n",
|
||
"Two algorithms stand out in the set up of decision trees:\n",
|
||
"1. The CART (Classification And Regression Tree) algorithm for both classification and regression\n",
|
||
"\n",
|
||
"2. The ID3 algorithm based on the computation of the information gain for classification\n",
|
||
"\n",
|
||
"We discuss both algorithms with applications here. The popular library\n",
|
||
"**Scikit-Learn** uses the CART algorithm. For classification problems\n",
|
||
"you can use either the **gini** index or the **entropy** to split a tree\n",
|
||
"in two branches."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2af37685",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## The CART algorithm for Classification\n",
|
||
"\n",
|
||
"For classification, the CART algorithm splits the data set in two subsets using a single feature $k$ and a threshold $t_k$.\n",
|
||
"This could be for example a threshold set by a number below a certain circumference of a malign tumor.\n",
|
||
"\n",
|
||
"How do we find these two quantities?\n",
|
||
"We search for the pair $(k,t_k)$ that produces the purest subset using for example the **gini** factor $G$.\n",
|
||
"The cost function it tries to minimize is then"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "537562c6",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(k,t_k) = \\frac{m_{\\mathrm{left}}}{m}G_{\\mathrm{left}}+ \\frac{m_{\\mathrm{right}}}{m}G_{\\mathrm{right}},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "68e22aac",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"where $G_{\\mathrm{left/right}}$ measures the impurity of the left/right subset and $m_{\\mathrm{left/right}}$\n",
|
||
" is the number of instances in the left/right subset\n",
|
||
"\n",
|
||
"Once it has successfully split the training set in two, it splits the subsets using the same logic, then the subsubsets\n",
|
||
"and so on, recursively. It stops recursing once it reaches the maximum depth (defined by the\n",
|
||
"$max\\_depth$ hyperparameter), or if it cannot find a split that will reduce impurity. A few other\n",
|
||
"hyperparameters control additional stopping conditions such as the $min\\_samples\\_split$,\n",
|
||
"$min\\_samples\\_leaf$, $min\\_weight\\_fraction\\_leaf$, and $max\\_leaf\\_nodes$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3f559b28",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## The CART algorithm for Regression\n",
|
||
"\n",
|
||
"The CART algorithm for regression works is similar to the one for classification except that instead of trying to split the\n",
|
||
"training set in a way that minimizes say the **gini** or **entropy** impurity, it now tries to split the training set in a way that minimizes our well-known mean-squared error (MSE). The cost function is now"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "71b5c257",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(k,t_k) = \\frac{m_{\\mathrm{left}}}{m}\\mathrm{MSE}_{\\mathrm{left}}+ \\frac{m_{\\mathrm{right}}}{m}\\mathrm{MSE}_{\\mathrm{right}}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e637fe3d",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"Here the MSE for a specific node is defined as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4e57f15a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathrm{MSE}_{\\mathrm{node}}=\\frac{1}{m_\\mathrm{node}}\\sum_{i\\in \\mathrm{node}}(\\overline{y}_{\\mathrm{node}}-y_i)^2,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5a9ef68b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"with"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b23ecfb6",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\overline{y}_{\\mathrm{node}}=\\frac{1}{m_\\mathrm{node}}\\sum_{i\\in \\mathrm{node}}y_i,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "0c46a30e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"the mean value of all observations in a specific node.\n",
|
||
"\n",
|
||
"Without any regularization, the regression task for decision trees, \n",
|
||
"just like for classification tasks, is prone to overfitting."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f4befc8a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Why binary splits?\n",
|
||
"\n",
|
||
"It is custom to split to a tree uising binary splits. The reason is\n",
|
||
"that multiway splits fragment the data too quickly, leaving\n",
|
||
"insufficient data at the next level down. Multiway splits can be\n",
|
||
"achieved by a series of binary split and this is normally preferred."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "25b94011",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Computing a Tree using the Gini Index\n",
|
||
"\n",
|
||
"Consider the following example with attributes/features and two\n",
|
||
"possible outcomes (classes) for each attribute. Assume we wish to find some\n",
|
||
"correlations between the average grade of a student as function of the\n",
|
||
"number of hours studied and hours slept. We want also to correlate the\n",
|
||
"grade in a given course with the general trend, whether the students\n",
|
||
"recently has gotten grades below average or above.\n",
|
||
"\n",
|
||
"We have three features/attributes\n",
|
||
"1. Trend of average grades before present course, classified as either below or above the average grade of the whole class \n",
|
||
"\n",
|
||
"2. The number of hours studies, classified again as either higher (more than 3 hours per day) or lower . Here we have used a standard for one $ECTS$ which is scaled to 25-30 hours of work for a semester which lasts 18 weeks, with 15 weeks of lectures and 3 weeks for exams, assuming a total of 30 ECTS per semester. \n",
|
||
"\n",
|
||
"3. The number of hours slept as high for more than $8$ hours and below for less than 8 hours of sleep, classified again as either high or low\n",
|
||
"\n",
|
||
"4. The final grade whether it is above or below average"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "25639088",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## The Table\n",
|
||
"\n",
|
||
"<table class=\"dotable\" border=\"1\">\n",
|
||
"<thead>\n",
|
||
"<tr><th align=\"center\">Grade Trend</th> <th align=\"center\">Hours slept</th> <th align=\"center\">Hours Studied</th> <th align=\"center\">Grade</th> </tr>\n",
|
||
"</thead>\n",
|
||
"<tbody>\n",
|
||
"<tr><td align=\"center\"> Above </td> <td align=\"center\"> Low </td> <td align=\"center\"> High </td> <td align=\"center\"> Above </td> </tr>\n",
|
||
"<tr><td align=\"center\"> Below </td> <td align=\"center\"> High </td> <td align=\"center\"> Low </td> <td align=\"center\"> Below </td> </tr>\n",
|
||
"<tr><td align=\"center\"> Above </td> <td align=\"center\"> Low </td> <td align=\"center\"> High </td> <td align=\"center\"> Above </td> </tr>\n",
|
||
"<tr><td align=\"center\"> Above </td> <td align=\"center\"> High </td> <td align=\"center\"> High </td> <td align=\"center\"> Above </td> </tr>\n",
|
||
"<tr><td align=\"center\"> Below </td> <td align=\"center\"> Low </td> <td align=\"center\"> High </td> <td align=\"center\"> Below </td> </tr>\n",
|
||
"<tr><td align=\"center\"> Above </td> <td align=\"center\"> Low </td> <td align=\"center\"> Low </td> <td align=\"center\"> Below </td> </tr>\n",
|
||
"<tr><td align=\"center\"> Below </td> <td align=\"center\"> High </td> <td align=\"center\"> High </td> <td align=\"center\"> Below </td> </tr>\n",
|
||
"<tr><td align=\"center\"> Below </td> <td align=\"center\"> Low </td> <td align=\"center\"> High </td> <td align=\"center\"> Below </td> </tr>\n",
|
||
"<tr><td align=\"center\"> Above </td> <td align=\"center\"> Low </td> <td align=\"center\"> Low </td> <td align=\"center\"> Below </td> </tr>\n",
|
||
"<tr><td align=\"center\"> Above </td> <td align=\"center\"> High </td> <td align=\"center\"> High </td> <td align=\"center\"> Above </td> </tr>\n",
|
||
"</tbody>\n",
|
||
"</table>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b593237d",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Computing the various Gini Indices\n",
|
||
"\n",
|
||
"In computations we will translate all classes into numbers. Being\n",
|
||
"these binary classes, they can easily be split into ones and zeros.\n",
|
||
"\n",
|
||
"**Gini index for Average trend.**\n",
|
||
"\n",
|
||
"See whiteboard notes from lecture November 11 at <https://github.com/CompPhysics/MachineLearning/blob/master/doc/HandWrittenNotes/2024/NotesNovember11.pdf>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "91f6b55e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## A possible code using Scikit-Learn"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "2a84d4a4",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>Grade Trend</th>\n",
|
||
" <th>Hours slept</th>\n",
|
||
" <th>Hours Studied</th>\n",
|
||
" <th>Grade</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" Grade Trend Hours slept Hours Studied Grade\n",
|
||
"0 1 0 1 1\n",
|
||
"1 0 1 0 0\n",
|
||
"2 1 0 1 1\n",
|
||
"3 1 1 1 1\n",
|
||
"4 0 0 1 0\n",
|
||
"5 1 0 0 0\n",
|
||
"6 0 1 1 0\n",
|
||
"7 0 0 1 0\n",
|
||
"8 1 0 0 0\n",
|
||
"9 1 1 1 1"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[1 0 1]\n",
|
||
" [0 1 0]\n",
|
||
" [1 0 1]\n",
|
||
" [1 1 1]\n",
|
||
" [0 0 1]\n",
|
||
" [1 0 0]\n",
|
||
" [0 1 1]\n",
|
||
" [0 0 1]\n",
|
||
" [1 0 0]\n",
|
||
" [1 1 1]]\n",
|
||
"Train set accuracy with Decision Tree: 1.00\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"0"
|
||
]
|
||
},
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"%matplotlib inline\n",
|
||
"\n",
|
||
"# Common imports\n",
|
||
"import numpy as np\n",
|
||
"import pandas as pd\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from sklearn.tree import DecisionTreeClassifier\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.tree import export_graphviz\n",
|
||
"from sklearn.preprocessing import StandardScaler, OneHotEncoder\n",
|
||
"from sklearn.compose import ColumnTransformer\n",
|
||
"from IPython.display import Image \n",
|
||
"from pydot import graph_from_dot_data\n",
|
||
"import os\n",
|
||
"\n",
|
||
"# Where to save the figures and data files\n",
|
||
"PROJECT_ROOT_DIR = \"Results\"\n",
|
||
"FIGURE_ID = \"Results/FigureFiles\"\n",
|
||
"DATA_ID = \"DataFiles/\"\n",
|
||
"\n",
|
||
"if not os.path.exists(PROJECT_ROOT_DIR):\n",
|
||
" os.mkdir(PROJECT_ROOT_DIR)\n",
|
||
"\n",
|
||
"if not os.path.exists(FIGURE_ID):\n",
|
||
" os.makedirs(FIGURE_ID)\n",
|
||
"\n",
|
||
"if not os.path.exists(DATA_ID):\n",
|
||
" os.makedirs(DATA_ID)\n",
|
||
"\n",
|
||
"def image_path(fig_id):\n",
|
||
" return os.path.join(FIGURE_ID, fig_id)\n",
|
||
"\n",
|
||
"def data_path(dat_id):\n",
|
||
" return os.path.join(DATA_ID, dat_id)\n",
|
||
"\n",
|
||
"def save_fig(fig_id):\n",
|
||
" plt.savefig(image_path(fig_id) + \".png\", format='png')\n",
|
||
"\n",
|
||
"infile = open(data_path(\"grades.csv\"),'r')\n",
|
||
"\n",
|
||
"# Read the experimental data with Pandas\n",
|
||
"from IPython.display import display\n",
|
||
"grades = pd.read_csv(infile)\n",
|
||
"grades = pd.DataFrame(grades)\n",
|
||
"display(grades)\n",
|
||
"# Features and targets\n",
|
||
"X = grades.loc[:, grades.columns != 'Grade'].values\n",
|
||
"y = grades.loc[:, grades.columns == 'Grade'].values\n",
|
||
"print(X)\n",
|
||
"# Then do a Classification tree\n",
|
||
"tree_clf = DecisionTreeClassifier(max_depth=2)\n",
|
||
"tree_clf.fit(X, y)\n",
|
||
"print(\"Train set accuracy with Decision Tree: {:.2f}\".format(tree_clf.score(X,y)))\n",
|
||
"#transfer to a decision tree graph\n",
|
||
"export_graphviz(\n",
|
||
" tree_clf,\n",
|
||
" out_file=\"DataFiles/grade.dot\",\n",
|
||
" rounded=True,\n",
|
||
" filled=True\n",
|
||
")\n",
|
||
"cmd = 'dot -Tpng DataFiles/grade.dot -o DataFiles/grades.png'\n",
|
||
"os.system(cmd)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e209e5da",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Further example: Computing the Gini index\n",
|
||
"\n",
|
||
"The next example we will look at is a classical one in many Machine\n",
|
||
"Learning applications. Based on various meteorological features, we\n",
|
||
"have several so-called attributes which decide whether we at the end\n",
|
||
"will do some outdoor activity like skiing, going for a bike ride etc\n",
|
||
"etc. The table here contains the feautures **outlook**, **temperature**,\n",
|
||
"**humidity** and **wind**. The target or output is whether we ride\n",
|
||
"(True=1) or whether we do something else that day (False=0). The\n",
|
||
"attributes for each feature are then sunny, overcast and rain for the\n",
|
||
"outlook, hot, cold and mild for temperature, high and normal for\n",
|
||
"humidity and weak and strong for wind.\n",
|
||
"\n",
|
||
"The table here summarizes the various attributes and\n",
|
||
"<table class=\"dotable\" border=\"1\">\n",
|
||
"<thead>\n",
|
||
"<tr><th align=\"center\">Day</th> <th align=\"center\">Outlook </th> <th align=\"center\">Temperature</th> <th align=\"center\">Humidity</th> <th align=\"center\"> Wind </th> <th align=\"center\">Ride</th> </tr>\n",
|
||
"</thead>\n",
|
||
"<tbody>\n",
|
||
"<tr><td align=\"center\"> 1 </td> <td align=\"center\"> Sunny </td> <td align=\"center\"> Hot </td> <td align=\"center\"> High </td> <td align=\"center\"> Weak </td> <td align=\"center\"> 0 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 2 </td> <td align=\"center\"> Sunny </td> <td align=\"center\"> Hot </td> <td align=\"center\"> High </td> <td align=\"center\"> Strong </td> <td align=\"center\"> 1 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 3 </td> <td align=\"center\"> Overcast </td> <td align=\"center\"> Hot </td> <td align=\"center\"> High </td> <td align=\"center\"> Weak </td> <td align=\"center\"> 1 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 4 </td> <td align=\"center\"> Rain </td> <td align=\"center\"> Mild </td> <td align=\"center\"> High </td> <td align=\"center\"> Weak </td> <td align=\"center\"> 1 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 5 </td> <td align=\"center\"> Rain </td> <td align=\"center\"> Cool </td> <td align=\"center\"> Normal </td> <td align=\"center\"> Weak </td> <td align=\"center\"> 1 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 6 </td> <td align=\"center\"> Rain </td> <td align=\"center\"> Cool </td> <td align=\"center\"> Normal </td> <td align=\"center\"> Strong </td> <td align=\"center\"> 0 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 7 </td> <td align=\"center\"> Overcast </td> <td align=\"center\"> Cool </td> <td align=\"center\"> Normal </td> <td align=\"center\"> Strong </td> <td align=\"center\"> 1 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 8 </td> <td align=\"center\"> Sunny </td> <td align=\"center\"> Mild </td> <td align=\"center\"> High </td> <td align=\"center\"> Weak </td> <td align=\"center\"> 0 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 9 </td> <td align=\"center\"> Sunny </td> <td align=\"center\"> Cool </td> <td align=\"center\"> Normal </td> <td align=\"center\"> Weak </td> <td align=\"center\"> 1 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 10 </td> <td align=\"center\"> Rain </td> <td align=\"center\"> Mild </td> <td align=\"center\"> Normal </td> <td align=\"center\"> Weak </td> <td align=\"center\"> 1 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 11 </td> <td align=\"center\"> Sunny </td> <td align=\"center\"> Mild </td> <td align=\"center\"> Normal </td> <td align=\"center\"> Strong </td> <td align=\"center\"> 1 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 12 </td> <td align=\"center\"> Overcast </td> <td align=\"center\"> Mild </td> <td align=\"center\"> High </td> <td align=\"center\"> Strong </td> <td align=\"center\"> 1 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 13 </td> <td align=\"center\"> Overcast </td> <td align=\"center\"> Hot </td> <td align=\"center\"> Normal </td> <td align=\"center\"> Weak </td> <td align=\"center\"> 1 </td> </tr>\n",
|
||
"<tr><td align=\"center\"> 14 </td> <td align=\"center\"> Rain </td> <td align=\"center\"> Mild </td> <td align=\"center\"> High </td> <td align=\"center\"> Strong </td> <td align=\"center\"> 0 </td> </tr>\n",
|
||
"</tbody>\n",
|
||
"</table>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d8a45185",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Simple Python Code to read in Data and perform Classification"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"id": "8d46cd6c",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" (0, 0)\t1.0\n",
|
||
" (0, 7)\t1.0\n",
|
||
" (0, 9)\t1.0\n",
|
||
" (0, 13)\t1.0\n",
|
||
" (1, 3)\t1.0\n",
|
||
" (1, 5)\t1.0\n",
|
||
" (1, 8)\t1.0\n",
|
||
" (1, 12)\t1.0\n",
|
||
" (2, 3)\t1.0\n",
|
||
" (2, 5)\t1.0\n",
|
||
" (2, 8)\t1.0\n",
|
||
" (2, 11)\t1.0\n",
|
||
" (3, 1)\t1.0\n",
|
||
" (3, 5)\t1.0\n",
|
||
" (3, 8)\t1.0\n",
|
||
" (3, 12)\t1.0\n",
|
||
" (4, 2)\t1.0\n",
|
||
" (4, 6)\t1.0\n",
|
||
" (4, 8)\t1.0\n",
|
||
" (4, 12)\t1.0\n",
|
||
" (5, 2)\t1.0\n",
|
||
" (5, 4)\t1.0\n",
|
||
" (5, 10)\t1.0\n",
|
||
" (5, 12)\t1.0\n",
|
||
" (6, 2)\t1.0\n",
|
||
" :\t:\n",
|
||
" (8, 12)\t1.0\n",
|
||
" (9, 3)\t1.0\n",
|
||
" (9, 4)\t1.0\n",
|
||
" (9, 10)\t1.0\n",
|
||
" (9, 12)\t1.0\n",
|
||
" (10, 2)\t1.0\n",
|
||
" (10, 6)\t1.0\n",
|
||
" (10, 10)\t1.0\n",
|
||
" (10, 12)\t1.0\n",
|
||
" (11, 3)\t1.0\n",
|
||
" (11, 6)\t1.0\n",
|
||
" (11, 10)\t1.0\n",
|
||
" (11, 11)\t1.0\n",
|
||
" (12, 1)\t1.0\n",
|
||
" (12, 6)\t1.0\n",
|
||
" (12, 8)\t1.0\n",
|
||
" (12, 11)\t1.0\n",
|
||
" (13, 1)\t1.0\n",
|
||
" (13, 5)\t1.0\n",
|
||
" (13, 10)\t1.0\n",
|
||
" (13, 12)\t1.0\n",
|
||
" (14, 2)\t1.0\n",
|
||
" (14, 6)\t1.0\n",
|
||
" (14, 8)\t1.0\n",
|
||
" (14, 11)\t1.0\n",
|
||
"Train set accuracy with Decision Tree: 0.73\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"0"
|
||
]
|
||
},
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Common imports\n",
|
||
"import numpy as np\n",
|
||
"import pandas as pd\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from sklearn.tree import DecisionTreeClassifier\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.tree import export_graphviz\n",
|
||
"from sklearn.preprocessing import StandardScaler, OneHotEncoder\n",
|
||
"from sklearn.compose import ColumnTransformer\n",
|
||
"from IPython.display import Image \n",
|
||
"from pydot import graph_from_dot_data\n",
|
||
"import os\n",
|
||
"\n",
|
||
"# Where to save the figures and data files\n",
|
||
"PROJECT_ROOT_DIR = \"Results\"\n",
|
||
"FIGURE_ID = \"Results/FigureFiles\"\n",
|
||
"DATA_ID = \"DataFiles/\"\n",
|
||
"\n",
|
||
"if not os.path.exists(PROJECT_ROOT_DIR):\n",
|
||
" os.mkdir(PROJECT_ROOT_DIR)\n",
|
||
"\n",
|
||
"if not os.path.exists(FIGURE_ID):\n",
|
||
" os.makedirs(FIGURE_ID)\n",
|
||
"\n",
|
||
"if not os.path.exists(DATA_ID):\n",
|
||
" os.makedirs(DATA_ID)\n",
|
||
"\n",
|
||
"def image_path(fig_id):\n",
|
||
" return os.path.join(FIGURE_ID, fig_id)\n",
|
||
"\n",
|
||
"def data_path(dat_id):\n",
|
||
" return os.path.join(DATA_ID, dat_id)\n",
|
||
"\n",
|
||
"def save_fig(fig_id):\n",
|
||
" plt.savefig(image_path(fig_id) + \".png\", format='png')\n",
|
||
"\n",
|
||
"infile = open(data_path(\"rideclass.csv\"),'r')\n",
|
||
"\n",
|
||
"# Read the experimental data with Pandas\n",
|
||
"from IPython.display import display\n",
|
||
"ridedata = pd.read_csv(infile,names = ('Outlook','Temperature','Humidity','Wind','Ride'))\n",
|
||
"ridedata = pd.DataFrame(ridedata)\n",
|
||
"\n",
|
||
"# Features and targets\n",
|
||
"X = ridedata.loc[:, ridedata.columns != 'Ride'].values\n",
|
||
"y = ridedata.loc[:, ridedata.columns == 'Ride'].values\n",
|
||
"\n",
|
||
"# Create the encoder.\n",
|
||
"encoder = OneHotEncoder(handle_unknown=\"ignore\")\n",
|
||
"# Assume for simplicity all features are categorical.\n",
|
||
"encoder.fit(X) \n",
|
||
"# Apply the encoder.\n",
|
||
"X = encoder.transform(X)\n",
|
||
"print(X)\n",
|
||
"# Then do a Classification tree\n",
|
||
"tree_clf = DecisionTreeClassifier(max_depth=2)\n",
|
||
"tree_clf.fit(X, y)\n",
|
||
"print(\"Train set accuracy with Decision Tree: {:.2f}\".format(tree_clf.score(X,y)))\n",
|
||
"#transfer to a decision tree graph\n",
|
||
"export_graphviz(\n",
|
||
" tree_clf,\n",
|
||
" out_file=\"DataFiles/ride.dot\",\n",
|
||
" rounded=True,\n",
|
||
" filled=True\n",
|
||
")\n",
|
||
"cmd = 'dot -Tpng DataFiles/cancer.dot -o DataFiles/cancer.png'\n",
|
||
"os.system(cmd)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "bc86c6e2",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Computing the Gini Factor\n",
|
||
"\n",
|
||
"The above functions (gini, entropy and misclassification error) are\n",
|
||
"important components of the so-called CART algorithm. We will discuss\n",
|
||
"this algorithm below after we have discussed the information gain\n",
|
||
"algorithm ID3.\n",
|
||
"\n",
|
||
"In the example here we have converted all our attributes into numerical values $0,1,2$ etc."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"id": "67cf3feb",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"X1 < 0.000 Gini=0.408\n",
|
||
"X1 < 0.000 Gini=0.408\n",
|
||
"X1 < 1.000 Gini=0.394\n",
|
||
"X1 < 2.000 Gini=0.394\n",
|
||
"X1 < 2.000 Gini=0.394\n",
|
||
"X1 < 2.000 Gini=0.394\n",
|
||
"X1 < 1.000 Gini=0.394\n",
|
||
"X1 < 0.000 Gini=0.408\n",
|
||
"X1 < 0.000 Gini=0.408\n",
|
||
"X1 < 2.000 Gini=0.394\n",
|
||
"X1 < 0.000 Gini=0.408\n",
|
||
"X1 < 1.000 Gini=0.394\n",
|
||
"X1 < 1.000 Gini=0.394\n",
|
||
"X1 < 2.000 Gini=0.394\n",
|
||
"X2 < 0.000 Gini=0.408\n",
|
||
"X2 < 0.000 Gini=0.408\n",
|
||
"X2 < 0.000 Gini=0.408\n",
|
||
"X2 < 1.000 Gini=0.407\n",
|
||
"X2 < 2.000 Gini=0.407\n",
|
||
"X2 < 2.000 Gini=0.407\n",
|
||
"X2 < 2.000 Gini=0.407\n",
|
||
"X2 < 1.000 Gini=0.407\n",
|
||
"X2 < 2.000 Gini=0.407\n",
|
||
"X2 < 1.000 Gini=0.407\n",
|
||
"X2 < 1.000 Gini=0.407\n",
|
||
"X2 < 1.000 Gini=0.407\n",
|
||
"X2 < 0.000 Gini=0.408\n",
|
||
"X2 < 1.000 Gini=0.407\n",
|
||
"X3 < 0.000 Gini=0.408\n",
|
||
"X3 < 0.000 Gini=0.408\n",
|
||
"X3 < 0.000 Gini=0.408\n",
|
||
"X3 < 0.000 Gini=0.408\n",
|
||
"X3 < 1.000 Gini=0.367\n",
|
||
"X3 < 1.000 Gini=0.367\n",
|
||
"X3 < 1.000 Gini=0.367\n",
|
||
"X3 < 0.000 Gini=0.408\n",
|
||
"X3 < 1.000 Gini=0.367\n",
|
||
"X3 < 1.000 Gini=0.367\n",
|
||
"X3 < 1.000 Gini=0.367\n",
|
||
"X3 < 0.000 Gini=0.408\n",
|
||
"X3 < 1.000 Gini=0.367\n",
|
||
"X3 < 0.000 Gini=0.408\n",
|
||
"X4 < 0.000 Gini=0.408\n",
|
||
"X4 < 1.000 Gini=0.405\n",
|
||
"X4 < 0.000 Gini=0.408\n",
|
||
"X4 < 0.000 Gini=0.408\n",
|
||
"X4 < 0.000 Gini=0.408\n",
|
||
"X4 < 1.000 Gini=0.405\n",
|
||
"X4 < 1.000 Gini=0.405\n",
|
||
"X4 < 0.000 Gini=0.408\n",
|
||
"X4 < 0.000 Gini=0.408\n",
|
||
"X4 < 0.000 Gini=0.408\n",
|
||
"X4 < 1.000 Gini=0.405\n",
|
||
"X4 < 1.000 Gini=0.405\n",
|
||
"X4 < 0.000 Gini=0.408\n",
|
||
"X4 < 1.000 Gini=0.405\n",
|
||
"Split: [X3 < 1.000]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Split a dataset based on an attribute and an attribute value\n",
|
||
"def test_split(index, value, dataset):\n",
|
||
"\tleft, right = list(), list()\n",
|
||
"\tfor row in dataset:\n",
|
||
"\t\tif row[index] < value:\n",
|
||
"\t\t\tleft.append(row)\n",
|
||
"\t\telse:\n",
|
||
"\t\t\tright.append(row)\n",
|
||
"\treturn left, right\n",
|
||
" \n",
|
||
"# Calculate the Gini index for a split dataset\n",
|
||
"def gini_index(groups, classes):\n",
|
||
"\t# count all samples at split point\n",
|
||
"\tn_instances = float(sum([len(group) for group in groups]))\n",
|
||
"\t# sum weighted Gini index for each group\n",
|
||
"\tgini = 0.0\n",
|
||
"\tfor group in groups:\n",
|
||
"\t\tsize = float(len(group))\n",
|
||
"\t\t# avoid divide by zero\n",
|
||
"\t\tif size == 0:\n",
|
||
"\t\t\tcontinue\n",
|
||
"\t\tscore = 0.0\n",
|
||
"\t\t# score the group based on the score for each class\n",
|
||
"\t\tfor class_val in classes:\n",
|
||
"\t\t\tp = [row[-1] for row in group].count(class_val) / size\n",
|
||
"\t\t\tscore += p * p\n",
|
||
"\t\t# weight the group score by its relative size\n",
|
||
"\t\tgini += (1.0 - score) * (size / n_instances)\n",
|
||
"\treturn gini\n",
|
||
"\n",
|
||
"# Select the best split point for a dataset\n",
|
||
"def get_split(dataset):\n",
|
||
"\tclass_values = list(set(row[-1] for row in dataset))\n",
|
||
"\tb_index, b_value, b_score, b_groups = 999, 999, 999, None\n",
|
||
"\tfor index in range(len(dataset[0])-1):\n",
|
||
"\t\tfor row in dataset:\n",
|
||
"\t\t\tgroups = test_split(index, row[index], dataset)\n",
|
||
"\t\t\tgini = gini_index(groups, class_values)\n",
|
||
"\t\t\tprint('X%d < %.3f Gini=%.3f' % ((index+1), row[index], gini))\n",
|
||
"\t\t\tif gini < b_score:\n",
|
||
"\t\t\t\tb_index, b_value, b_score, b_groups = index, row[index], gini, groups\n",
|
||
"\treturn {'index':b_index, 'value':b_value, 'groups':b_groups}\n",
|
||
" \n",
|
||
"dataset = [[0,0,0,0,0],\n",
|
||
" [0,0,0,1,1],\n",
|
||
" [1,0,0,0,1],\n",
|
||
" [2,1,0,0,1],\n",
|
||
" [2,2,1,0,1],\n",
|
||
" [2,2,1,1,0],\n",
|
||
" [1,2,1,1,1],\n",
|
||
" [0,1,0,0,0],\n",
|
||
" [0,2,1,0,1],\n",
|
||
" [2,1,1,0,1],\n",
|
||
" [0,1,1,1,1],\n",
|
||
" [1,1,0,1,1],\n",
|
||
" [1,0,1,0,1],\n",
|
||
" [2,1,0,1,0]]\n",
|
||
"\n",
|
||
"split = get_split(dataset)\n",
|
||
"print('Split: [X%d < %.3f]' % ((split['index']+1), split['value']))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2b17db58",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Regression trees"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"id": "e2ffd4a9",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Quadratic training set + noise\n",
|
||
"np.random.seed(42)\n",
|
||
"m = 200\n",
|
||
"X = np.random.rand(m, 1)\n",
|
||
"y = 4 * (X - 0.5) ** 2\n",
|
||
"y = y + np.random.randn(m, 1) / 10"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"id": "8447d194",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<style>#sk-container-id-1 {color: black;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeRegressor(max_depth=2, random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">DecisionTreeRegressor</label><div class=\"sk-toggleable__content\"><pre>DecisionTreeRegressor(max_depth=2, random_state=42)</pre></div></div></div></div></div>"
|
||
],
|
||
"text/plain": [
|
||
"DecisionTreeRegressor(max_depth=2, random_state=42)"
|
||
]
|
||
},
|
||
"execution_count": 9,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.tree import DecisionTreeRegressor\n",
|
||
"\n",
|
||
"tree_reg = DecisionTreeRegressor(max_depth=2, random_state=42)\n",
|
||
"tree_reg.fit(X, y)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "874da81e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Final regressor code"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"id": "b6db9982",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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OvX7UIK9OeqyZcvo3bs399xzDzExMbzxxhskJycHtQ8bN24E4KKLLmrwnKdl3333HTU1NZw6dYqZM2c2eH7nzp0AbNu2jSuvvLLR7TmW/fDDDwHH3q9fvwbLbDYbABUVFTRv3hyAnJwctz4/apg/fz6zZs2iT58+/O1vf1N120IIYQaSQ2c2eD7ac+j3338PwKFDh1i7di0PPvggffv25eOPP6Znz56qvIcQIH1ahXDjKck5+jb6eq66uhqAd955h+uvv56kpCRGjRpFTk4OzZo1c86vVlBQ4PF927dvT69evVizZg39+vVjyJAhQe9DZWUlAJmZmQ2ey8rKarDMMZ/amjVrWLNmjdftHjt2zK/tOZY54giEr2NcU1MT8Pb8tXDhQu666y569OjBZ599RlJSUtjeSwghopXkUHPmUID09HSuuuoqevfuTceOHZk4cSLffvttWN9TmItUWoVQ0cyZM0lISCAvL4+OHTu6Pffmm296fd3cuXNZs2YN55xzDuvWreOll17irrvuCiqGlJQUAEpLS50DVjiUlJQ0WN+R5O677z7mzJkT0HuVlJTQtm1bj+/hiCMcKioqeP755wN6zZ/+9CdSU1MbLF+wYAGTJk2ia9eufPHFF5xzzjnqBCmEECIgkkONl0Pra9OmDV26dOG7777j+PHjNGvWLLgghahHKq1CqGj37t1069atQbI9cOAAe/bs8fiaH374gYcffpjOnTuzcuVKhg4dyv3338+wYcPo1q1bwDH06tWL9957j9WrV9O/f3+351avXt1g/f79+2OxWFi7dm3A77V69WpuvPFGj+/Rp08f57KYmBhAvSu9FRUVPPbYYwG9Zty4cQ0SrqPC2qVLF7788ksyMjJUiU8IIUTgJIcaK4d6c+DAASwWizNuIdQg87QKoaJ27dqxa9cut6uxJ0+e5M4773Q2f3J17NgxxowZA8CyZcto1aoVS5cupbq6mjFjxvicE86bG264gZiYGObOnUtpaalzeVVVFU888USD9Vu2bMno0aP5+uuvmT17tsd+Lt9++y3Hjx9vsPzxxx93a8JUWVnJE088gcViYezYsc7lLVq0AKCwsDDg/fHE0R8nkEdOTo7bNhYuXMikSZM4//zz+fLLLz02BRNCCBE5kkONkUMPHDhAcXFxg+0qisLMmTMpKSnhF7/4BU2aNFElXiFA7rQK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b75h8ODB7Nixg7feeotvv/2WZ599lrKyMm677TatQxQiJP4kVJkSxzyaNGlChw4daNKkic/1fH5vPFRaA8mh/sYQTcy4z0IYXm0tTbBPEBZDHBDdOdSiKIqidRB6UVVVRUpKCpWVlREb9r2oyH6l1zHABAAvvcTUyZMpB2oHXMZf/vWxc9CJSZPs9VjHl1LLL57NZqO4uJjs7GyKPLSxcjSp9fUVmzBhArm5ufTp04f169eHLVZfLBYL7dq1Iz8/3+PzOTk5FBQU+NyPcDh9+jSZmZlUVlayfv16+vTp4/Z8r1692LRpE99//z39+vWLaGxCW1OnTqW8vJy0tDRmz56tdTiq8FgWakSLXBANdJNDX3iBqX/8I+VAzaArePydjwyZQ4UQ4RE1OfTECWjWDICTg4fzzVMrozqHyp1WjXls/hQTwzIgF3hr3TduoyJGw5USV88++yyJiYn88MMPfPXVVw2eLyws5O677+a8884jISGBFi1acOWVV/L11183WHfVqlVYLBbGjRvHgQMHGDduHFlZWTRt2pS+ffvy2muvua2/ePFiZ8W6oKDArf/t8OHDPca7cOFCevbsSdOmTWnZsiWTJk2ioqIi5OPgyZo1a6isrOS8885rUGEFuO666wD4v//7v7C8v9CvZcuWkZuby7Jly7QORTWNzdMqzKG6upqysjKqq6v9Wt/j9yY+3plD3/7m64BzaKAxRAMz7rMwr6jJobW1VANlQEyCJepzqFRadai80v1jcR0wItp+2KWkpHDZZZcBsHLlSrfn1q5dS69evZg3bx5xcXFcccUVdO/enRUrVnDxxRfz1ltvedzm4cOHGTRoEJ988gnDhw/noosu4scff2Ts2LHMnDnTuV6HDh0YO3YsAImJic6+t2PHjuXSSy9tsN0HHniAyZMn06pVKy677DIUReGVV17h6quvDstd2I0bNwLQt29fj887lm/atEn19xZCCC38+OOPZGZm8uOPPwa9jcNH65oHW1ACzqFqxGA0ZtxnIQyvpoYfgUzgx+PHtY4m7KTSqkMHD9UNxGTBXhkyyqBLwXAMsb9161bnsqqqKn77299SVVXFkiVL2LZtG//617/43//+x9q1a0lOTmbChAmUlZU12N7//d//0blzZ3bv3s1bb73Fp59+ytdff01SUhKPP/64sxnyhRdeyOKz0yGkp6c7+94uXryYBx98sMF2X3/9dTZt2sSKFSt477332Lx5Mx06dGD16tUNKtyOu7iBPOrf3d23bx9gb0LmiWN5QUFB4wdZCCEMoH379nzwwQe0b98+6G0cPBzfYFkgOVSNGIzGjPsshOHV1tIe+ABoHwVzzjYmVusARENZLRteSzDKoEvBSE9PB6C8vNy57NVXX+XAgQPcd9993HjjjW7rX3DBBTzyyCNMmTKFJUuWcO+997o9b7VaefHFF0lMTHQu69+/P5MnT+bpp5/mpZdeYuHChQHH+fjjj9O5c2e3uO+44w7uv/9+/ve//3HJJZc4n3O9i+uv888/3+3vo0ePAtDsbH+F+hz7d+TIkYDeRwgh9Co1NZWrr746pG1ktXG/0wqB5VA1YjAaM+6zEIZXW0sqcDWACQZRk0qrDrXIiHH728jDU/vD0bTWdS7UTz/9FIDf/OY3Hl9z0UUXAXicLqd3795ulUuHMWPG8PTTT7N69eqg4vzVr37VYFmnTp0AOHDggNvyCy+8kAsvvDCo9xFCCLMqKyvjvffe4ze/+Q0ZGRlBbeOc1q4/3pSAc6gaMRiNGfdZCMOrqaEMeA/4TXU10X7mSvPgCCgqsg/84PfggC7j8iclKlEz6JI3hw4dAqBFixbOZY6RfIcOHeqxKW3//v3dXuuqXbt2Ht/HMRfr/v37g4rTUzPd5s2bA3Dq1KmgtulL0tmmHse99FM4duyYWwxCCGF0hYWFTJ48mcLCQueygHOoy5Q3Sc0CH7jQUwzRzoz7LITh1dZSCEwGCs9O7xXN5E5rmOXmwu232wdTslrt88o1mjxj6u60xsaG7w5rUZF9wvWOHbW9i/vDDz8A0LVrV+ey2rOzwF933XVuzXzrq9+kNpys9Sf58+Grr74KuAny+eef79aXtm3btgBep0JwLPdWSRdCCKPp27cvZ86ccf4dVA51qbTGxCgB57f6MXijlxyqBn/3WQihIzU19AXOALjc+IlWUmkNo6KiumQLdaMAjxrVSIJrpHKkRqIM6odAGFRWVrJixQoARowY4Vxus9nYvn07Dz74YMBzkHobmMixvHXr1kFG679du3bxz3/+M6DXDBs2zK3S2qtXLwCv89c6lvfs2TPIKIUQQr+CzqEulVY8jOweTTlUCGFijsIR3G54RStpHhxGO3e6f5/AzxEMfXzxcnOhXTu45BKcc88FytsPAS3mNr/vvvs4duwY/fv3Z/Dgwc7lv/zlLwH497//HfA2N2zYwM6dOxssf/PNNwEa9DWNi4tT/QrzuHHjUBQloMeqVavctjF06FBSUlLYvXs3GzZsaPAe7777LgBXXXWVqrELIYRWdu7cyahRo9i5c2fwOTS+4ejBDv7kUNcYPNFTDlVLY/sshNCh2lp2AqOAnWe7jEUzqbSGUceODW+a+jWCYUwMVwDXAVe4DCikVqIM+oeAivbs2cP1119Pbm4uiYmJ5Nb75TBp0iQyMzN55plneOWVV5zNhR3OnDnDihUr+Omnnxpsu7a2lj/84Q9ufUHz8vL4+9//jsVi4c4773Rbv3Xr1pSUlFBRUaHeDqogPj6eu+++G4DJkyc7+7ACzJ07l02bNjFs2LCA70QL47viiiu47rrruOKKK7QORQhVxcTEkJycTExMTPA5ND6+Loee7WYB/udQ1xg80UMOVVtj+yxENImaHFpTQwyQDKY4d6V5cBjZbPYmQ5Mm2ROa3yMYWq287Pj/Ndc4F/tKlIE0cXL8EKjfqiBcU+qMGzcOsFcmq6qq2LFjB9u2bUNRFDp27MjSpUvp0aOH22tSU1P54IMPuOqqq5g0aRJPPPEE3bt3Jy0tjYMHD7J+/XoqKir497//Tffu3d1ee+WVV7Jx40bOO+88Lr74YiorK/nyyy+prq5m+vTpXHDBBW7rX3311bz44ov07duXIUOGkJCQQOfOnZk6dWp4DkgApk+fzueff87XX39Nx44dueiiiygoKODbb78lIyODV199VesQhQZefvnlxlcSwoDat2/PO++84/w7qBwaH1+XQ11a8PibQ+vHUF+kc2gkNLbPQkSTqMmhZ+dpfQcgJUXjYMJPKq1hNn68vf/Nrl32hOZX5dL1aklNjfO/aiXKoCvTQXL07YyNjSU5OZnWrVtzyy23cM0113D11Vd7vTo0aNAgfvzxR5577jmWL1/Of//7XwBatWrFsGHD+PWvf83IkSMbvO6cc87hm2++Ydq0aaxYsYKqqiq6du3Kn/70J2cF2tWsWbNQFIUPPviAt956izNnzjBs2DBdVFoTEhJYuXIls2bNYunSpbz//vu0aNGCcePG8fjjj3sc0VgIIYyqpqaGkydPkpCQQExMTHA51LV5sMvI7v7m0Pox1BfpHBoJje2zEEKHamqoAU4CCUC0n7lSaY0Amy3AZObaHsolu6qZKIP6IRAgxcMAGIFq2bIlTz/9NE8//XRAr2vdujWvv/66X+smJiby4osv8uKLL3p83jH9jifDhw9XZT99adq0KX/5y1/4y1/+Etb3EcJIomnkVlFn48aN9OvXj7y8PPr27QsEkUNdK60u00D4m0M9xVBfJHJoJPmzz0IInamtZSPQD8irqiKQM9eIOVQqrXrk5U4rqJsoA/4hIIQQOiAjt0avnJwcli5d6pxXOyiuldZt2+Cpp6C0FDIzGZ+Wxm/vK6dqVynNO2SSVgL8yf4caWlQXk5OeTlLH3+80RiiKYeqctyFEJFVW0sOsBTISU72+2VGzaFSadUjq5ULgINAywUL+L7eHbb6idKIV0uEEMG74IILOHjwIC1btuT777/XOpxG1S+jQimzgp4GRRhCixYtGDNmTGgbefvtuhy6aRPfb9rk9nTq2YfXGIAxYL86vHhxaLEYhCrHXQiDiJYc2uVMDS05W141ber3toyaQ2X0YD2KieEgUAwcbGQIazWmwBFCGMvBgwcpLi7m4MGDWofSqPpl1LhxoZVZ0Thyq6hz+PBhlixZwuHDh4PbQFER3HtvXQ4NJgZgCXD4n/+E774LLg6DCfm4C2Eg0ZJDLxtVW1deVVf7tT0j51CptOqRa/NgH/0lo3GuuFA4+pcuNsmVcSH0zlMZ9c9/hlZmBT0NijCE/Px8br75Zp9jCfi0c6fPvOlXDMDNZ/9lzZqQtmUUIR93IYTqGsuhFqWmrrzyc55WI+dQqbTqUf1vkxdGvloihIh+nsqo+gItsxyD6Tiu7UXDyK2iTu/evTl58iS9e/cObgMdO4LFEloM2Efj7A0wdGhI2zKKkI+7EEJ1jeVQK7V15VVWll/bNHIOlT6teuTncPPROFecEMIPjgHajh1zG2TGMZCM82/Q9Lk++eXMpZQS7M9lUkopmVSQRirlZFLKITLp/R/gff/fb3xpKb+5L5PDP0OGUkpySSY8peL+FBaG7aMTvlmtVpo0aRL8Bmw2WLAAJkwIPgagCcDYsdC/f/CxGEjIx10IoTpPv/NdWamtK68CmKrKqKOfS6VVj1zvtPpo5rRihfvTVqtxrpYIIYKUmwuOfjgVFfDnP2saji+pwL3+rPhM4NtOO/sQ0WXPnj3cf//9zJkzh/bt2we3kfHjYfp0+3mSmgoPPABlZZCRUXdhoqyMdfkZ/OvfkEkZpWRQSRrzuJMC4P6kJOY8+ihBRmA4qhx3IYSqPE3TddNN8Prr9opsnKWGPQrcD8w5ciSg8sqIo59LpVWP/Lha4mjnXr9OO2pUmGISQmivqAgmTtQ6CiHCpra2llOnTlHbWLvyxjjyaGIiPPRQg6eLimBwO3B9F6sVXkq4n9rjxzh1NhazUO24CyFUVf+u6IoV9kor2O+01oK9vAqxW4QR6LpP67x588jJySEhIYGBAweybt06n+tXVFQwefJkWrVqRZMmTejUqRMff/xxhKJVkR99Wj21c6+tlf6sQkQ1FQaZEeZhxBzaoUMHli9fTocw93PxlkNrYuLpACxv3TrsMehJpI67EKKhoiJYudL7oIQ2Gwwfbv+/68BMKLX28grocM454Q9UY7qttL711ltMmTKFGTNmsH79enr16sWoUaMoLS31uP7p06f55S9/SX5+Pu+++y7bt29nwYIFZGdnRzhyFfhxp9XIo38JIYKkwiAzwhxMnUP94C2HWhPi7X+cPh35oIQQphPI1JX1L7bFUOPyh/99Wo1Kt5XWuXPnMnHiRG699Va6du3K/PnzadasGa+++qrH9V999VUOHz7M+++/z9ChQ8nJyWHYsGH06tXL63ucOnWKqqoqt4cu+NGn1dPoX/f61XlMCGFYNhu89JLWUQgDMGoOXb9+PRaLhfXr14e8LV+85VAlLp71gCU/P+wx6EmkjrsQok6gU1fWv9hmpdZeXgHrvVyQjCa67NN6+vRp8vLyeMilH4rVamXkyJGsXbvW42s+/PBDBg8ezOTJk/nggw/IyMjghhtuYNq0acR4ufowa9YsHnvssbDsQ0hiYngGOA40u+ACr6s52rn/7W/w7LMwZw7MnWtPxOPHqxtSUZH9Ck/HjsbruC1EVLnlFp658057+ZCVBX/8o8dBZsjIsK8fxue2laax6Ply50A2YB/U5toJGZzXz/Pr1uVnsOjfaSRT9zoLcMPIMnpeEkKcau5rUZGhLw4YOYe2bduWBQsW0LZt25C288wzz3D8+HGaNWvmdR1POXQS8bQFFiQlhRyDK73nULWOuxBG4E/5EAm+pq70VE40GJiJGnt5BVQUmWBoQkWHiouLFUD5+uuv3ZZPnTpVGTBggMfXdO7cWWnSpIly2223Kd9//73y5ptvKi1atFBmzpzp9X1OnjypVFZWOh+FhYUKoFRWVqq6PwHbtk1R7PdYFeWWW3yuWlioKFZr3eqgKDEx9uVqWbiw7j2sVvvfiqIo2dnZCqBkZ2er92ZCCN+OHq072X/xC01DCbb8WbdOUSyW8JZboaisrNRHLgiS6XNoAOp/hzfTRVFAqWmerNp7SA4VQngSag79FZ84X/iYZUbU51DdNg8OVG1tLZmZmbzyyiv069eP66+/nj//+c/Mnz/f62uaNGlCcnKy20MXXO/9NzKSn6+rNGoItOmCECLMXE94jfu3BjtJ+d69DXs+qFluicDpJYeWl5fz3nvvUV5eHvK2/FE/h54mnnLgvRMnVInBKDk00sddCBF6DrVSay+vgCPKqajPobqstKanpxMTE0NJSYnb8pKSElq2bOnxNa1ataJTp05uzZi6dOnCwYMHOW20ARVcm2LV1Hhfj/APyBTuSrEQIkD1J2fW2PjxkJ9vH/kwP7/xrgm5ufD73zdcLgPJqcfIOXTv3r389re/Ze/evRF5v/o59DTx7AV+d6ZalRiMkkMjfdyFEHah5NAYatgL/BYopyrqc6j2v3g8iI+Pp1+/fnzxxRfOZbW1tXzxxRcMHjzY42uGDh3Krl273OYY27FjB61atSI+Pj7sMavKamU7sBnYXlHhc9Vgr9L4S0YpFkJnamvryofjx7WOBqgbjr+xcsfb/NJql1tmZ+Qc2rNnT37++Wd69uwZ0na2b9/O5s2b2b59u8/16ufQM8TRE/gZ6NmtW0gxgHFyqFrHXQgj8Ld8iJRgc6iVWmd5Nf7aVlGfQ3VZaQWYMmUKCxYs4J///Cdbt27lzjvv5NixY9x6660A3HLLLW6DTNx5550cPnyYP/7xj+zYsYPly5fz1FNPMXnyZK12IXgxMfwC6A78YtWqRlcP9CpNIMJdKRZCBEhR6sqH777TOpqAeLrrBLBsmfqDx5mdUXNobGwsLVq0IDY2tHEif/GLX9C9e3d+8YtfNLquaw7tOzieWKAFENtI9xx/GCWHqnXchTCCQMoHPfE05Y2jvBo82GA36IKg29Lp+uuvp6ysjEcffZSDBw/Su3dvPvnkE7KysgDYt28fVpfLl23atGHFihXce++99OzZk+zsbP74xz8ybdo0rXYheH5MeVOfzRa+JOgYYXHXLvvVYb0lWyFMRUd9WgPluOvklnRjwMvNPxECo+bQvXv38sgjj/D4449z7rnnRux9nTm0ub158CPA4zt2cK6PKX/8ZYQcqtVxF0L4r34OtVJbV15VVBDtZ65uK60Ad999N3fffbfH51Z5uAM5ePBgvvnmmzBHFQE6nCA4nJViIUQA/LyQpUcNhuvX6V2naGHEHFpdXU1RURHV1dXaBBAfTzVQBFSfOKHaZvWeQzU/7kKIRtXPobHWWqprz5ZXBv5t4C9dV1pNS4eVViGETqjQZFFLRrjrJLTTqVMnjxXqiImPpxOwCqBNG+3iiDDNj7sQwi+uObTH5hrOuftseeVlkL1oIpVWPVJ5RFC9T2ouhAiAQa6m+ip39H7XSZiY66BTZ0dNlhwqhIg0v3LofpeL2DqYTSDcpNKqR653Ws+cgaeegtJSyMyEtDQoL6/7G3w+9+OXpSz9IpNy0kijnBt+UUqPSxp/nV/PHTtm/7uRaXmEECoywJ3W3Ny6uSmtVntzJhloSfhjw4YNDB06lDVr1tC7d+/IBxAfzwZgKLBm40byvjzXFN9lzY+7EMLJ7xxaU1NXXu3fT++IRhl5UmnVoyVL6v5/5gz8+c9Bb6oHMMt1wRdnH2o6eNB+hkVjJhdCb3ReaXUMye8Is7bW3v9m1Ci5SyUa17p1a2bNmkXr1q21CSA+ntbY82bs6VTTfJc1P+5CCCDAHFpb6yyvWqelRTjSyIv+e8lGU1QE99yjdRSBmzTJHrsQIrxcmwfrcPRgT9Pa1NTY+98I0ZjMzEzuueceMh0teyItPp5M4B7gRHlz03yXNT/uQgggwBxaW+ssrzKl0ioibudOw/RZcxOtmVwIvQnzndaiIvt8lcFeg3IMye8qJsY+6JIQjamqqmLFihVUVVVpE0B8PFXACqBFcrlpvsuaH3cV5eTkMHz4cK3DECYV0RxaU+Msr6pOnQruDQ1EKq1607GjLu+eNCpaM7kQehPGi1q5udCuHVxyif3f3NzAt+EYkt/RNV+mtRGB2LVrF5deeim7tLoIGh/PLuBSoPLoXtN8lxs77qtWrcJisTgfMTExpKWl0b17d8aOHcsnn3yCEsEL7s8//zyLFy+O2Pt5sn79eu6//3769u1LWloaaWlp9O/fn5deekmmDjKpiOfQ2lpnebXr0KEQIjcG6dOqNzYbLFjAdxMmUAMYZvKbaM3kQuhNbS3fgb18+NWvVNtssH1RPY1w6GtaGxmJVfjSvXt3CgsLQ26m+t1331FTU0OMjynkPH4X4+PpDhQCmTYbfS8zxxRN/h73MWPGcPnll6MoCkeOHGH79u28//77vPbaa4wcOZJ33nmH1NTUsMf7/PPPk5OTw7hx48L+Xt4888wzfP7551x77bVMnDiRmpoaPvroIyZPnswHH3zAJ598gsWINyFMwJ/yIVCa5NCamrryqm1b1fZFr6TSqkfjx9Nq1ChYuxZ+/tk+em9ZGWRkOEfz3fRlGUs/z0ABsijjwl9nMOBXae7rQoPXqfbcl1/Cxo32vzMyZBAmISJFUWjl+H9iomqb9dWPxlvC9TXCoadpbWRUYdGY+Ph4bCrUDFu1auXzea/fxfh44gEbOFs1mGGKJn+Pe9++fbnpppvcls2dO5cHHniAuXPnMmbMGP7zn/+EK0xd+cMf/sDixYtJSEhwLrv77ru56aabeOONN1i+fDlXXnmlhhEKbxorH4KhRQ5d/ftahnC2vHKdritaKcKpsrJSAZTKykqtQ/GpsFBRrFZFsWdU+yMmxr48Ym65RckGBVCys7Ii+MZCmNzOnXUn/o03qrbZQMuVcK+vJaPkAr1R47gVFBQot99+u1JQUKBiZO58fhf/+lelAJTbQSl45ZWwxaAoipKdnW3PodnZYX0ffzR23FeuXKkAyuzZs71u48ILL1QAZfXq1c5lFRUVygMPPKCcd955Snx8vJKenq78/ve/V3bv3u322kWLFimA8tlnnykzZsxQ2rZtq8THxys9evRQli1b5rYuZ3971H/s3btXURRFadeunTJs2DBl69atyuWXX64kJSUpycnJym9/+1vlwIEDQR4h/3344YcKoMyaNSvs7yX0Q4sceo/lhbry6oUXwrdzAQpXDpU7rQYUzNUcT0JqpmeCSYyF0CXXfmMqnoeOfjSTJtnLk8b67wVSDhUVwdtvq1Nuieh2/Phx1q9fz/Hjx8P2Hj6/u/HxHAfWA8ePHvW5nWhq6q7GcR8/fjxfffUVy5cv58ILL6SyspIhQ4awb98+brvtNrp168aBAwd46aWXGDhwIN9//z3t2rVz28a0adM4duwYd911FwCLFi1izJgxnDx50tkU+PXXX+fee+8lPT2dP7tMCZjhaA0GFBcXM3z4cH79618ze/ZsNm7cyMsvv0xVVRWffvqpc73q6moqKyv93sf09PRG1yk6OwJPVlaW39sVxqdFDrUoNXXllQn6UUulVadeeeUVjh49SlJSErfffrvbc46RxVy/vIGOgxRyMz2ptAqhjdpaXgGOAkk7d3J7Y+sHwFc/mvr8LYdcy5r6ZPw2Ud/555/Pd999F/J2gs6hm+M5H/gO6rrEeBBtTd3VOO49e/YEYMeOHQA8+uij7Nmzh2+++YZevXo51xs3bhw9evRgxowZDQZTOnToEJs2bSIlJQWAO+64g549ezJlyhSuv/56mjZtyk033cT06dPJyspq0FTZYdeuXbz11luMHj3aucxqtfLSSy+xfft2OnfuDMCaNWsYMWKE3/uoNDLY1NGjR5k9ezYpKSlcc801fm9XRJav8iEUkc6hsZZazlfOlldt2qixC7omlVad+stf/kJxcTHZ2dkNTqhAr+bUF2xncTeulVYjTtEjhFEpCn8BioHsTZtUrbSC//33/CmH6pc1rqJ5JFahvaBzqGu/sNOnPW5blRwahZKTkwH79DmKovDGG29w8cUXk52dzSGXkU0TExMZNGiQ2x1PhzvvvNNZYQVISUnhjjvu4OGHH2bVqlVcdtllfsXSunVrtworwCWXXMJLL73Ezp07nZXWXr168dlnnwW8r57U1NRw0003sXfvXpYuXUqLFi1U2a5Qn6/yIVSRzKGjf10D77osiHJSaTWoQK7m1KdK82K50yqENlSap1WNpo2NlUOeyhqA556D664z9w984dmmTZv4xS9+wRdffOG8cxcOXr+78fFsAn4BfLFnD54iUKuLjp6ocdwdc7wmJydTVlbGzz//zKeffurWbNeV1cPviC5dujRY1rVrVwD27Nnjdyzt27dvsOycc84B4Oeff3YuS0tLY+TIkX5v15va2lpuu+02PvjgA5588knGjBkT8jaFvukih75Ry6Z3z5ZX+/Z5LK+iiVRaDSzQEQ0dJ1hSUuNNEho9GWUYdyG0oULLBjWbNvoqh7w1f5IKq/AmMzOTKVOmhDzljT88fnfj48kEpgCZ33wDf/oTZGZCWhoV+eVU7SrlvKxMHgQyKKWUTCpIowXl9H29FL62x121u5QyMmlxXhpplENpqX07UPf/Y8fsf9fUhH1fG6PGcd+0aRMAnTt3djajHTlyJNOmTVMlxkD4msrEtYnv6dOnOXz4sN/bbdmyZYNltbW1TJgwgddee40ZM2bw8MMPBxasMBzd5NDa2rryygR39qXSahL1T7Cbb4YlSzw3SfDrZJQ7rUJoI8Q7rZFs2hhqVwZhPi1btuShhx7SLoDVq2kJPATwxRf2x1mpZx8Aszy99tW6/yafffjl4EF74tWwU6waxz03NxeAK664goyMDFJTU6mqqgroTubWrVsb9AXdsmUL4H73VK35T7/++uuQ+rQ6KqyLFi1i+vTpzJw5U5W4hH7pKofW1NSVV2dbEkQzqbTqXE0NrFwZWvMDTyfYkiX2aWCPHXNvkuD3ySiVViG04fqjKcAfblqM4htKVwZhPkePHmXDhg307t2bpKSkkLcXUA4tKoJ//IOjwAagNxB6BH7SuFNsKMe9pqaGadOm8dVXX3H55ZczdOhQAG688UbmzZvHu+++y3XXXdfgdaWlpQ3u7P7jH/9w69daWVnJ/PnzSU1NZdiwYc71kpKSArpD6k0ofVoVRWHixIksWrSIhx9+mMcffzzkeIS+6S6H1tbWlVenTkWuvNKIVFp17uBBuOSS0JofeOt/c+wYDB/u37oNTkaptAqhjSDvtGo5im+gXRmEee3YsYOLLrqIvLw8+vbtG/L2AsqhO3faYwAuAvKA0CPwk8adYv097uvXr2fJkiUAHDlyhO3bt/P+++9TUFDAr371K5YuXepc98knn2TNmjWMHj2a0aNHM2jQIOLj4ykoKODjjz+mX79+DUYPTk9PZ+DAgdx6662Afcqbffv2sXDhQpo1a+Zcb9CgQeTm5vLII4/QpUsXrFYrV111FYmJiQHtdyh9WqdOncqrr75Kr1696NKli/O4OJx33nkMHjw4qG0L/dFlDq2pqSuvDhyIXHmlEam06lT9Li6hND8IZIocb+uWltqvMDnf2/UOj4weLETkBHG+ySi+wii6du3Ktm3bGszfGaigcmjHjmCx0FVR2AaEFkGANJ7/yd/jvmzZMpYtW4bVaiUpKQmbzcawYcMYM2YMl156qdu6KSkprFmzhmeffZa3336bDz74gNjYWGw2GxdeeCETJkxosP2nn36a1atXM2/ePEpKSujUqRNvvPEGN9xwg9t6Tz75JIcPH2bevHlUVFSgKAp79+4NuNIaiu+//x6AjRs3cvPNNzd4fuzYsVJp1StHAXHsGDz1VF0/87Q0KG/YB728SSbfP5PGVMrJPNuXHSCTUg6RyeXXp2F7zUvfdS/bVOW5//yHrmAvr1RomaJ7inCqrKxUAKWyslLrUJT09GwFUCBbsf9KtT9WrgxuewsXKkpMjH0bMTH2v/1Z12pVFIul7v/O1/3pT0o2KICSnZERXFBCiMB9/33duZeY6NdLvvxScStHHI/nnlOUwsLwhmtEesoFRqKn4xZ0Dl24sC7phfnhPI/Bd1I2gUWLFimAsjLYHzlC+GvhQvdzL1oeFotuypFw5QK506pTsR4+mVAuxAbSr2zUKFi6FA4fhrvuqrux43alWpoHC6GNIJoHh2sUXzWG/BfCVVFREXPnzmXKlCnYQvhSBZ1Dx4+nqGdP5j72GFO6d8d2+jRkZNSNHry7jObnZZCWApSVOZ+jvNz5d0UlHNxURnl8Bos/SCOVcjIpo5QMrMBDE8pIzlsFP/xgf8/0dE0HYQL1jrsQulZUBBMnah2FqoqAucAURcEW5RNGS6VVp7p06YTVmsL+/VmAOk34/OlXVn/k4PotEZ3dbqTSKoQ2FIVOQAqQlZbm10vCMYqvmkP+C+FQVVXFihUrPDYdDUQoObQqMZEVe/cy4Zln4OwcoeA+erA3ublw+/S688LTJaZRN8JwZUJdpVUH+VSt4y6Eru3c6Z5DtY5HBVXACmACaN43Ptyk0qpTX375JWC/KBSpUTc9jRxcn/NKtczTKoQ2amv50vH/3/7W75epOYpvJIf8F+bStWtXNm/eHPJ2QsmhwcYQUA71MY+oFtQ67kLo2tl+619G0VgsXQHnmatx3/hwC/jyXklJCRaLBYvFwooVK3yue/fdd2OxWBgyZEiDua2Ef2w2+wi/of7AXLnS/q8vnkYOhrqLwG5Xql2vDMtnK0TkuJ5vLuehP+e5GuUJ+B5lXAg90W0O1VmlVWvjxo1DURSG15/SQAg12Wzw0ktaRxEeVmvUj6oY8J3WrKws2rdvz549e/j2228ZNWqUx/U2btzI/PnzsVqtvPjii6pNBC0CE0gTPm/93jzN56qH5kxCmJLrCXq2XI10U91ARiQXIhA//fQTV155JR999BHdu3fXPIZvv+1uihyqh+MuRETccgvceaf9/506wbhxbPqyjKWfZ1BOGmmUc8PIMnpekmFfx0vf9VCeq9pTxlML7e/n6PN+iAymTYPU04Ft86eaGq5ctoyPli6le5DTNxlFUM2Dhw4d6qy0evOHP/yBmpoabr/9dvr16xd0gCJ4gTbh89bvrX9/DxvXWcIVwjTq3Wn97jv7uBIeB0wL0wXXcPSRFQKgRYsW3HTTTbRo0ULzGE6ebBG+HOp6p1UHrZX0cNyFiAjXq0pt2vDdyIcY+Gf7cMIOc1ZC/qLw5bRkoOOghmVFahAXm1vs389NzZvTwqX/fbSyKEG0250/fz533nkn55xzDocOHWrw/JIlS7j55ptJS0tjx44dpKenqxJsuFVVVZGSkkJlZSXJycmaxnLjjTdy6NAh0tPTeeONN4LaxsqV9knVPS331QLHrz5AjzyC7YknKAay09MpKisLKkYhRID+9z9uHDaMQ0Bsqy58UrLFY5PExs5zNUSyz30k6SkXGImejpvuc+iUKdiee86eQzMyKCotDSpGIUSAqqq4MSWFQ0Cz5JZ8ePSA5FCVhSsXBH2nFeDnn39m165ddHBpE3bkyBEeeOABAB5//HHDVFj15r///S/FxcVkZ2cHvY1gm/B5GmW4wdQWcqdVCG0oCv8FioHkA4UeRyeNVFNdf0YkFyIQx48fZ9u2bZx//vk0a9Ys6O2EkkMdMdhs52O1NgtPDtVZn1a1jrsQuldb68yh6VXlhs+hZjp3g6p5dOvWjZSUFIAGTYQfe+wxDhw4QM+ePbnjjjtCj1AEzdFUyZEbg23Cl5sL7drZrzi3a2f/WwZiEkIjbpeEG44VYIKxGEQU27ZtG/369WPbtm2ax3DkyLbw5VCdNQ/Ww3EXIiJccqinM89oOdRM525QlVar1crAgQMB+Oabb5zLt27dygsvvADA3//+d2J0diXRjMaPh/x8ezOH/PzAB2fx1i+28ojcaRVCEz5+4Fqt8M03/p3n/o6IKkQknX/++eTl5XH++efrIoZw5dCqY/r6faSH4y5ERPi48GvEHGqmczfomoejibDrndZ77rmH6upqbrjhBi666KLQoxOqCGXIf29TWxwul9GghdCEywmZkOB+F+iVV7wM+lKPxzs/QuhAs2bN6Nu3r6bN3OrHEJYcWqmvSqsejrsQEeFyQsbFGT+HmuncDbrSOmTIEMA+tc2pU6f417/+xeeff05SUhKzZ89WLUChLUe/WFcxMdAiXe60CqEJlzutcXGB3wXydudH66vFQgDs37+f6dOns3///qiIwVsOTcvQV/NgPRx3ISLCpdIaE2P8HGqmczfomsegQYOIiYnh9OnTrFmzhvvuuw+A6dOn07p1a9UCFKEJtfmCt36xKWlSaRVCE/Vu2wR6F8jbnZ9du9QJT4hQHD58mCVLlnD48GFdxBC+HKqvO616OO5CRESU5VAznbtB1zySkpLo0aMHAOPHj6egoICOHTty7733qhacCI1azRc89umRgZiE0EaI55u3Oz+RGClRiMZ0796d/Px8unfvrnkM337bPTI5VAf0cNyFiAjXGqcl8K5uesuhZjp3Qyo1Hf1a8/PzAfjb3/5GfHx8yEGJ0KndfKHBlaggTnQhhApCTLhqjSouRDQLew7V2ejBQphGiOeb5FDthFRpdfRrBbjqqqu47LLLQg5IqCPszRd0dpVYCNPwNAt6gEIdEVWIcNmyZQvdunVjy5YtmsZw4YXdqK11j0HVHKqz2RX0cNyFiIgoy6FmOndjQ3lx06ZNAWjSpAnPPfecKgEJu4kTJ1JZWemcDzdQjuYLgU6K7jeptAqhDUVhIlAJpFxwQdCb8TWpeVGR/cJXx45y9VhEVnJyMqNGjSI5OTmk7YSSQ5OTk/nlL0eRm5vsdlNG1Ryqs0qrWsddCN2rra3LoeedF/Rm9JJDzXTuBl1prampYebMmQBMnTqV80L44EVDM2bMCOn1juYLkybZrw6r3nxBKq1CaKO2FmfpMHKk6pvPza1rFmm12ssRuRMrIsVmszF37tyQtxNKDrXZbCxYMJdBg8KYQ3XWPFit4y6E7rnm0J49Vd98pHOomc7doGseL7zwAps2bSInJ4eHHnpIzZiESsLafEEGYhJCG67nW4gXj+qPjBpqPz69TLYujOvkyZNs376dkydPah7DjTeeDF8O1dmdVj0cdyEiwrUJYhTkUDOdu0F9WsuWLWPatGlYLBYWLFhgigltjSqUSdHrczuZZCAmIbThknB377EEXUH0NLp4KH3h9TTZujCuLVu2cP7552vep9URQ9hyqM4qrXo47kJEhEuSO1BqNXwONdO563eldfny5eTk5JCSksINN9xAdXU106dPZ2QYmqc5zJs3j5ycHBISEhg4cCDr1q3z63VvvvkmFouFa6+9NmyxmU39k+nrb6R5sBCacLnT+o9XrEFVEL1dDU5KCm4of71Nti7sjJhDO3XqxOrVq+nUqVPE3zucMdTPoV+t1VelVQ/HXYiIcKlVfvKp8XOomc5dv2sea9asoaCggDNnztCnTx8WLlzIX/7yl7AF9tZbbzFlyhRmzJjB+vXr6dWrF6NGjaK0tNTn6/Lz87n//vu56KKLwhZbJNhsNiwWCzYdjILi6WRaslQqrUJo4eeyWmyABXiZJ4KqIHq7GpyfD1OmBD6Uv94mWxfGzaFJSUlceOGFJCUlhbSdUHKoWjE4eMqhi1/XV59WtfdZCL06uL8uh97H24bPoWY6d/2ueTz11FMoisKxY8dYv34948M8MsfcuXOZOHEit956K127dmX+/Pk0a9aMV1991etrampquPHGG3nsscdo3759WOMzE08n0xlFKq1CaOHAgYY/cAOtIHqaHN1qheuvhzlz7Of7/ff7349Pb5OtC+Pm0IMHDzJr1iwOHjyoyfuHIwZPObRa0dedVj0cdyEiYV9+3cnoyKZGzqFmOnd1WfM4ffo0eXl5bk2PrVYrI0eOZO3atV5f95e//IXMzEy/K9SnTp2iqqrK7SEa8nQyWaRPqxCaaJXZcI65QCuIniZHV5S6Gz6KAoHMYiaTreuLkXNoaWkpc+fObfSOcDipHYOnHIpFXz+/9HDchYiEdm1cc6j9t6yRc6iZzl19lZpnHTp0iJqaGrKystyWZ2Vleb2S8NVXX5Gbm8uCBQv8fp9Zs2aRkpLifLRp0yakuKOVp5Pppltk9GAhtHBOi7rzTSH4CqLr6OJLlzY8jQO98qynydbNzsg5tGfPnpSVldEzDFNRaBWDpxw6boK+mgfr4bgLEQlZGe4Xfo2eQ8107gY9T6ueHDlyhJtvvpkFCxaQnp7u9+seeughpkyZ4vy7qqpKKq5ejB8Po0bZT8AOHcD2mRX+qXVUQpiQSzvDpETYti34O5qOydGLiux3glybMAbTvNfXZOtCvySHhl+DHLomBvy/PiCEUItL7TIhAX7cKTnUKHR5pzU9PZ2YmBhKSkrclpeUlNCyZcsG6+/evZv8/HyuuuoqYmNjiY2N5bXXXuPDDz8kNjaW3bt3e3yfJk2akJyc7PYQvjnP9RDnthJCBMkl4cbGWVRJcNK8N7oYOYdu27aN/v37s23btpC3pccYnKevzqa80cNxFyIiXGqWMTHq5Dktc6iZzl1d1jzi4+Pp168fX3zxhXNZbW0tX3zxBYMHD26w/vnnn8+PP/7Ihg0bnI+rr76aESNGsGHDBrnyq4L6w/X/93/Sp1UITdQf0UUl0rw3ehg5hzZr1oy+fftqOv97OGKon0M/X6mv5sF6OO5CRESU5VAznbu6bR48ZcoUxo4dywUXXMCAAQN4/vnnOXbsGLfeeisAt9xyC9nZ2cyaNYuEhAS6d+/u9vrU1FSABstF4DwN15+7yPv1jqIi+2iJHTvKnRohVBfgD1zX8xF8n5vSNCl6GDWHtm3blpdffjmi7xnuGDzl0L/P936nVYscqofjLkREuFZa/RhUVO851Eznrm4rrddffz1lZWU8+uijHDx4kN69e/PJJ584B5bYt28fVmmiGhGNTnnj8iM6N7cuOVut9uYScsdGCBUFcJXY9Xx05GZFkXPTDIyaQ0+fPk1paSmZmZnEx8dHRQwep7yp9Vxp1SqH6uG4CxERUZZDzXTuWhRFB+1SdKKqqoqUlBQqKys1799qs9koLi4mOzubokBmPA6DoiJ7cybX83yM5U3+p4yhGMhOSaGoosLjejEx9mYScvdGCJW8+iq28eMpBlolp7K/stzjap7OR1dybnqnp1xgJGoct/Xr19OvXz/y8vLo27dv0LGEkkPVisHB07l4ufUTNtZeZs+hzZtTVFWlaQ5Ve5+F0K2vvsJ20UUUA60Tkyg+esTjakbJoXo8d8OVQ/V3mVUAsGTJEj755BOWLFmidSgeO5hPmNiwSYWnq8mBDvkthPBt9X9rWQJ8AvStmkBuruf1PJ2PruTcFHrUoUMHPvnkEzoEOuxmPaHkULVicPCUQ+/+Y8M7rVrmULX3WQi9Wv5/dTn0qmNXGD6HmunclTutLsx6dd3f/jNFRS7D9a99B9vo0XKnVYgIKiqCJ9q+wnxlEgC3kctrMbd5PMeMcpVYj8yaC0Jl1uMWVA7d8SW2X/xCN3dahTCDoiK4pe0qvlRGAPBXpjE95q+SQ1Umd1pFWNQf0dDbFSewn5jDh589QT30hZJpM4QIr507wfU6o4LF69Xe+uej1VrXJ0fOTaFXpaWlvPDCC5SWlhoiBlVy6NlzWsscqofjLkS47dwJKHW10Fqshs+hZjp3pdJqYp5GNJw0yb68UR4SLsi0GUKEU8eOEGtxT7i+JjB3PR8LCmDfPjk3hb7t37+fhx56iP379+s+hpByqJd5WrXKoXo47kKEWzTmUDOdu7odPdjsVq1axalTp2jSpAnDhw8Py3v46j/T6NUjH8OEy7QZQoSHzQY33qCw6g04BRxke6NXe+ufj3JuCj3r3bs3x44dC3k7oeRQf2MIKYd6qbSCNjlUreMuhJ7ZbDDlT7Wses6eQ/eyz/A51EznrlRadeqmm24K++jBHTvab5jW7z/jV19uHU6VIEQ08dZPbsigWmxvYB89OGU+K8Y/pVmMQuiV7nOoa6VVhhYRQnXecuilv6rF9pw9h7ZOep9cndwxFY2TmoeJhdR/RiqtQoSNz35yLj9w5TQU0WbHjh0MHz6cHTt26D6GkHKojzutWtDDcRdCLf7mUIvVe6tBozDTuSs/eUwu6P4zLr+Wa8742YennqIi+/u6vtbTMiHMpNF+cq63dXw00xfCiOLi4rDZbMTFxRkihqBzqEultaZG+xyqh+MuhBoCyqFRwEznrjQPFsH1n3H5sXzsuEK7dvYrzv4m7NzcukLFarW/Fhoui2RHd3+nLRAinBrtJydNCUUUO/fcczWfnzzQGILKoS6V1pMn0TyHqnHcJYcKPWg0h0ZZpVUPZWakyJ1WEZSyn92/OoGMmujtKtjEiUGOwqiCQKYtECKcHP3kXLn1kwsi4UoLBmEUZ86c4fDhw5w5cyaqYzhYVldptaBonkND3WfJoUIvzJZD9VBmRopUWkVQig/UfXUc91y9zXVVn7erYPVvIPm7vVCFNG2BECprtJ9cgHda5cekMJJNmzZxzjnnsGnTpqiOoaCoYZ9WLXNoKPssOVToSaM5NMBKq95zqB7KzEiRSqsISnabhl+dxkZNdFypSkryfBWsfvc8v0dhDJGvpiRCqM2fK7Y++8kFkHDlx6QwmnPPPZd//etfnHvuuVEdQ7tz9ZVDQ9lnyaEiklTNoY2MC2GEHKqHMjNSpNIqgpKR6X6iNzZqouuVqkGD4OabG14FW7AgyFEYQ9RoUxIhVBLIFVubDYYP93AOBHCnVX5MCqNJS0vjN7/5DWlpaVEdQ8ts1zutiuY5NJR9lhwqIkWVHBrAhV8j5FA9lJmRIpVWERyXDNWsqe9REz1dqVqyBNaudb8KFvQojCEKadoCIfyk2hXbAK4Sy49JYTSHDh1i4cKFHDp0KLpjcBmIKaGJ9jk0lH2WHCoiISw5tBFGyKF6KDMjRSqtIjguZ3FMjOIzOXm7UnXsWMOrYF6vjIWZVhVmYR6qXbEN4E6r/JgURrNv3z4mTpzIvn37ojsGl0qr1er7nIxEDg11nyWHinBTLYcGUGk1Qg7VQ5kZKTLljU4V6anBvCf1Lz354LhS5VpO6O1KFQQ5bYEQflLtPKitxVk6LFrU6Orjx8OoUfbE3qGDfMeFvvXt2xdFhWmdQsmhasXgk0ultbELUZHIoWrss+RQEU5hyaGPP97o6nrPoREpr3RC7rSK4ARQaTXClSohwk2188A1Y/t5HmrVgkEI4YVrpbURkkOFkBwqpNIqgtVIX7r6pOmQECqdB65XVAM8D4XQu127dnHFFVewS8ORTiISQwCVVgh/DtXDcReiMaqcB0FUWvXMTOeuNA8WwQniRPfUdKioyN5PoWNHuYIlzCHkJnRRlnCFcGW1WmnSpAlWDb/bEYkhgObBDuHMoXo47kL4I+Qc6nq+RcH33UznrlRadeqxxx6jsrKSlJQUZsyYoXU4DbmeHEG2pc/NrRsJzmq1N/uQO7BCNEJReAyoBFKWLmXGpZdqHZEQqmnfvj3vvfdeyNsJJYeqFYNPAd5p9UTNHBqRfRZCD2pr63Lo8uXMmDRJ64hCYqZz16KYpfeuH6qqqkhJSaGyspLk5GRNY7HZbBQXF5Odna3PQZny8rBdcAHFQHZiIkVHjwb08qIi+xxb9TvU5+fLHVchfHrkEWxPPGE/99LTKSor0zqiqKOnXGAkahy32tpaqquriYuLC+nOQSg5VK0YfDp2DFtSkv08btKEopMnA3q52jk0IvsshB4sXIht4kT7uZeWRtHhw1pHFBI9nrvhyqH62DthPCH2pTPChM1C6JJcZxRRbMOGDSQkJLBhw4bojiHE1kpq51A9HHchIiKAKW+MwEznrlRaRXBCvJoT7ITNRUX2DviuF849LRPqkmOsI1GWcIVwlZOTw+uvv05OTk50xxBi82C1c2hhYQ5/+5u2xz2aSQ7VkSjLoXooMyNFKq0iOCFWWoMZujw3194c6pJL7P/m5npeJtQlxzg4YfuRIndaRRRr0aIFN910Ey1atIjuGEKstKqdQ6+9tgX33nsT//63dsc9WkkODU7YcmiUVVr1UGZGilRaRXBUGIgpkKHLi4rqBpwA+7+3395w2aRJciVTTZ6OuxzjxoX1R0qUJVwhXB0+fJhly5ZxWMN+ZhGJQXc59DC1tcu4/fbDUr6rSHJocCSH+k8PZWakSKVVBEel+SH9nbDZU/+d2lrpFxtu0vc4cGH/kSLztIoolp+fzw033EB+fn50x6C7HJoP3EBtbb6U7yqSHBq4sOfQKKu06qHMjBSZ8kYEJ8IjlDn673iaorL+6ImN9ekR/vN03OUY++brR4oqI2NHWcIVwlWvXr04evQoCQkJpo5BbY3n0F7AUazWBCnfVSQ5NHARzaFRcOE3Gssrb+ROqwiOCpXWQPoreOq/88orgffpEYEJpt+U2QU7QIovbudKCH1aZTAQoXcxMTEkJiYSo8I8pkaOwR/q5tAYYmISeeWVGCnfVSQ5NHBhz6EhXPjVYw41SnmlBqm0iuCEWGkNpr+Cp/47gfTpEcGRYxy4KVPU+5FS/1z5aVNwCVcGAxFGsGfPHn73u9+xZ8+e6I/BcZcniAtRaufQN97Yw6WX/o4RI7Q77tFKcmjgwplDv/0munKoHsrMSJHmwTo1bNgwDh06RHp6utaheBZCkwpv/RVGjWq8ULLZGq7jaZlQlxxj/+Tm1n23LRa4/3744x+DP3aezpUvvlAYBhwC0vv0CXo7/p5zQkRSTU0NVVVV1NTUhLSdUHKoWjGESzhyaP/+Nfzzn/rdZ6OTHOqfSOTQf79bW5dDu3ULejt6yaF6L6/UJJVWnXrjjTe0DsG3EEY+DHt/BSE0UD+pKQo895w94Xpad+dOezMoX995T+eKRanFUTp8cMHjfsUm55wwio4dO7JixYqQtxNKDlUrhnAJx/ms930W0S9SOVRRFGcO/bznFL9i03MONdO5K82Do0xOTg7Dhw8P/xuF0Dw4HP0VhNCav6NEBtLEyNO5YqXuTZ76q9WvvjVyzgmhQ0E2D5bzWUQjLXLo3/8hOdRI5E6rH1atWsWIESOcf1utVpKTk8nOzqZfv36MGTOGUaNGYYnQKGTPP/88qampjBs3LiLv58nREyeoOvv/AydOYLFYGDZsGKtWrWr0tY6BCSZNshdIWg9M4O8VO2E8kfxs/RklMtAmRvXPFQALdT9wz9Ra/LrSq7dzTghv1q9fz4ABA1i3bh19+/Y1Rwy1tfDUU/b/l5ZCZqb7/9PSoLzc+bcN2DCilGVfZHKYNFpQzpjhpdhe8/06X8+tP3KEAc88w7qPPqLvZZcFFL7k0OgVjTnUtdJ6ptZq+ByqhzIzUqTSGoAxY8Zw+eWXoygKR44cYfv27bz//vu89tprjBw5knfeeYfU1NSwx/H888+Tk5OjaaX1UHk5R87+P85qpSbAO6/jx9sLmV277AWSVie+a/8Jq9VeKMkgCdEh0p+tP0ktmCZGjnNl7Vq4/nqwKnUbsFitfl/p1cs5J4Qvbdq0Yd68ebRp0yb6Y3BtB/nnPwf00h5nH05fnH0EqQ0wD2hz+eWwcKHfhaXk0OhlhhxqtVoMn0P1UGZGikVRQpg/IcpUVVWRkpJCZWUlycnJzuWOO62zZ8/m/vvvd3tNTU0NDzzwAHPnzuXSSy/lP//5jyqxXHLJJZSUlJCVlcWXX37p9lxOTg45OTke72r6ek5Np/bsIee88zgIZDdtSoXVygUXXBD291VTUZG9aUn9q3r5+fopjERwtPxsi4q8J7VQ48rNhTMT7+At5WVKAGtOf37cu07N8AXec4HwTU/HzVcO1YXvvsM2YADFQDagoxk0/C6UJIdGr2jOoUUTH+O/ykxKgDhbTzYUblQzfEH4coH0aQ1RTEwMzz77LBdeeCGffPIJX331lfO5yspKpk2bRocOHWjSpAkZGRmMGTOmwbDUixcvxmKx8PnnnzNz5kzatWvHypUr2bJlCxs2bHBb12KxUFBQwH//+18sFovzkZ+f77betm3buOKKK2jevDkpKSlcd911HDx4ULX9btK0Kc4ZoQx63cPf/hPCeLT8bG02GD7cd1OlYIfyHz8efn1NLTuALUD58QKVohZCHyoqKvjwww+pqKgIaTs7duxgy5Yt7NixQ7MYfFq9OnzbDkIF8OHZf/0tLCWHRq9ozqETxtfl0EMn96sUtXYiUl7phFRaVTL+bJuJ5cuXA/YK65AhQ3jppZe44oorePHFF7n77rv58ssvGThwIAUFDX9sTps2jTfffJO77rrLeWWivLycxYsXO9d5/fXXSU9P5/zzz+f11193PjIyMpzrFBcXM3z4cNq2bcvs2bO54YYbeO+997jlllvc3q+6uppDhw75/XAT4jyteiAd66OXnj/bUObsy82FD9+vu0h04qTq4QmhqT179nDNNddoPk9r2GO46KLwbTsIe4Brzv7rb2Gp53JWhEbPn22oOXTRwrra+MkoyKF6KDMjRhFOlZWVCqBUVla6LV+5cqUCKLNnz/b62ry8PAVQfvOb3yiKoij33HOPkpCQoGzYsMFtvfz8fKV58+bK2LFjncsWLVqkAErbtm2ViooKRVEUJTs7WwGUmJgYJS0tTTl+/Lhz/Xbt2inDhg3zGEe7du0UQHnrrbfclt91110KoGzbtq3Bfvn7cFNSomSfXZ6dkKAkJiZ6jUnPFi5UlJgYRQH7vwsXah2RUEu0fbaFhYpitSrKQm5znnuxZCmFhVpHFn285QLhmxrH7fTp00ppaaly+vTpkGJx5NDs7GzNYmhMdrNm9hjt7ZU0fZwGpfTsv4EUltFWzoo60fbZOnLoEzzszKFNSDd8Do1UeRWIcOVQGYhJJY47o1VVVfY5oN54g4svvpjs7Gy3u5SJiYkMGjSITz/9tME27rzzTlJSUtyWJSYmUl5ezqpVq7jMzxH9WrduzejRo92WXXLJJbz00kvs3LmTzp07A9CrVy8+++yzgPbTKQrutIJ+O9aL0EXbZ+toruU6ejDoY544IdQSFxfn1nIoqmNIS4Pjx6F5c3joIfuysjJwvLfj/46RfsP13JdfErdxIxkA//tfQHeBo62cFXWi7bN15FDX0YMVjJ9D9VBmRopUWlVSVWWfACY5OZmysjJ+/vlnPv30U69fJKuHSl+XLl0aLIuNtX9Egdz2b9++fYNl55xzDgA///yzc1laWhojR470e7tuVKq06mGofJvN2AWW8C5cn60W31tHcy1rvY5GemiuJYRa8vPzmTlzJjNnziQnJ8ccMSQn11VaA6RKWXTrreRv3MhMYOapU+QE+HLJodEr2nOoBePnUD2UmZGi69tl8+bNIycnh4SEBAYOHMi6dd5HyVywYAEXXXQRaWlpzsqYr/XVtmnTJgA6d+6McnZgopEjR/LZZ595fKxYsSJsscTExHh9zhEbwOnTpzl48KDfDzeuldYgB2IKZIJoIfRCq++tYwAKq6XufEtOlh+Lwjsj5VCHU6dOsWvXLk6dOhXx99ZTDP5QrSyKi+MUsAs4dfy4ihEK0ZDWOTTWUldpTUqyGD6HGqW8UoNu77S+9dZbTJkyhfnz5zNw4ECef/55Ro0axfbt28l0TJLtYtWqVYwZM4YhQ4aQkJDA008/za9+9Ss2b95MdnZ22OPNPXvWXXHFFWRkZJCamkpVVVVAdzK3bt3KNddc47bszJkzgPvdU4vFokLE8PXXXzNixAi/13et8LpWWmtr/au3ul5Zg8AmiPaXHu7cCv3w9H0I5TsS6MTmahs/Ho59XMvD79n/bto0/O8pjMloOdShc+fObqPwayHSMZw6ZS9bGitDwpZD4+LoDHwFlMRms3Kl5FBhF4059Mi3tTy3wP53QhTkUD2UmZGi20rr3LlzmThxIrfeeisA8+fPZ/ny5bz66qs8+OCDDdZ/44033P5euHAh//rXv/jiiy8ajJqrppqaGqZNm8ZXX33F5ZdfztChQwG48cYbmTdvHu+++y7XXXddg9eVlpY2+OHwj3/8o0G/1mPHjpGamsqwYcOcy5KSkjh8+HDIsYfUp9Wl4lxdDcer4cAB76vXn6R6ypTAJ4hujExyLlx5+j5AaN+RYCY2V1tiU2NOMSUiyyg51MwcNzUPHbLfcfJVHoU1h8bFOf/76yurWatIDhXRm0ObJ0kONSpdVlpPnz5NXl4eD7n08bBarYwcOZK1a9f6tY3jx49TXV1NixYtvK5z6tQpt9vpjn6p3qxfv54lS5YAcOTIEbZv3877779PQUEBv/rVr1i6dKlz3SeffJI1a9YwevRoRo8ezaBBg4iPj6egoICPP/6Yfv36uU1lA5Cens7AgQO59dZbOXLkCGCvFM+ZM4dmzZo51xs0aBC5ubk88sgjdOnSBavVylVXXUViYqJfx8YhlD6txQesHD37/+OcARR27Chg6tQnSEmxV4ivuuoqwPOVtblz7QVe/Qmig+1boPXVO6Evnr4Pt99e93/Hv4F+Rxx9YtT63gbF9c1VanUhootec6g/NmzYwMUXX8z//vc/evfuHfL29BpDUZF9HCQHX+VR2HNoXBwbgIuB85QtwCDJoSZnmhwaBfRQZkaKLiuthw4doqamhqysLLflWVlZbNu2za9tTJs2jdatW/uslM2aNYvHHnvM77iWLVvGsmXLsFqtJCUlYbPZGDZsGGPGjOHSSy91WzclJYU1a9bw7LPP8vbbb/PBBx8QGxuLzWbjwgsvZMKECQ22//TTT7N69WrmzZvH8ePHadmyJVdccYVzDliHJ598ksOHDzNv3jwqKipQFIW9e/cGXGkNxa49rpXWGqAGyGfOnEcAGDt2rLPS6unKWm0t3H8/PPec/SpboBNE16eHq3dCP7x95+oL9Dvi6BMzaZI639ugKAqPAkeBpD/8IYJvLIxCrznUH61atWLmzJm0atUqpO08+uijHD16lKSkJM1i8GXnzobLvJVHYc+hcXG0AmYC75HcaDwi+kV1Dq2trcuhUdCUIBLllW6oOoGOSoqLixVA+frrr92WT506VRkwYECjr581a5aSlpambNy40ed6J0+eVCorK52PwsJCTebmc8zTunLlyoi+bygKd510znOVTrxzHi9P812tW6coFov7tHCOdQsLFWXlSs+vCyies/NveXqPxl735Zehv79a9BaPUXn6PlitwX1HvG1fje9tUEaPrtuB/HwNAoh+Rp+n1Ww51IgKCxUFss/Og56tbQ599FHnhkfxH8mhIrpz6OTJdTvw3XcaBBD9wpVDdTl6cHp6OjExMZSUlLgtLykpoWXLlj5fO2fOHP7617/y6aef0rNnT5/rNmnShOTkZLeH8I+tjXuzRG9Xy3JzYdAg94GaXNe12WD4cPu/RUWwcqX934DjOXv1zjFwsj9X7/Q2erHe4jEyT9+HV14J/Dvia/uO723EeRkQTQgHI+fQqqoqPv/8c1WaGus5BpvNPlWqg6Y5NC6OKuBzIMZS6TOe+rHpKWfpLR4ji+oc6nrLOApyqB7KzIhRtQqsogEDBih333238++amholOztbmTVrltfXPP3000pycrKydu3aoN5Tq6vrRrzTqlRXO++0to6N93i1zNOVOovFftW4voUL69a1Wu1/B8Pfq3fB3pkNF73F44uRrmQXFirK228ryltv1cUb7iu8YT8+v/1t3ZfECB+CARn9TquiGDeH5uXlKYCSl5cX9DZCFakYsrPtd1rT07O1zaFPP63knc3nn/95tuTQMJMc2vh7hvX4TJpU9yX54YcwvUnk6KHMrC9cOVS3ldY333xTadKkibJ48WJly5Ytyu23366kpqYqBw8eVBRFUW6++WblwQcfdK7/17/+VYmPj1feffdd5cCBA87HkSNH/H5PPVVa9+/frxQWFir79++PaCx+q6lxVlqz4+M9rvLll+4JxPG4/3739bRINt5i0+q6gd7i8UatiwuREkq8wSTOiByfX/9a2Q9KISj7168PwxuIaKi0GjWHnjx5Utm7d69y8uTJoLehKKHlULViaIyj0pqdne3x+Yjl0LlzlZOg7AXl5Ouv+/USveUsvcXjjeTQ8L2f3yZOrMuhn38ehjeIrEiVV4EwXaVVURTlxRdfVNq2bavEx8crAwYMUL755hvnc8OGDVPGjh3r/Ltdu3Zn+4a4P2bMmOH3++nph0pjyUxztbWNVloLCxv2w/GUTLVINnq7Kqu3eDwxQoyuQok3mMQZseNz7bV1516rVipvXCiKvnJBKCSH6jiHKo3HGLEc+uKLdS/ys9Kqt3ygt3g8MUKMrqI2h44fX5dDMzNV3rhQFJP1aXW4++67KSgo4NSpU3z77bcMHDjQ+dyqVavcpozJz89HsVfC3R4zZ86MfOBm4DrVhqJ4XMVmg/vua7jcMdqcg2MIdFfhHgI9mD6w4aS3eDzxNUKzHgUbr7fpkxrrJxax4xNlw/WL8DFiDt23bx+TJ09m3759EX1fvcUAEcyhcXHsAyYD+w4e9Ds2PeUsvcXjieTQ8LxfwKJs2ji9lFeRoOtKqzC+P/6x8WSqVbIZNQqWLoW334b8fO0nUR8/3h7HypX6iKc+LS4uhCLYeINNnBE7Pl4uEgkRDY4dO8batWs5duyYqWNwiEgOjYvjGLAWAtpnyaGBkRwanvcLWJRd+NVTeRVuUmkVYeVvMo10snGMMnj99fD738OKFf6/NpRRjhuj6Yh6jTDClWxXjnhdk2BtbeOfdbCJM2LHJ8oSrhCuunTpwvr16+nSpYupY3CISA6Ni6MLsB7okp7u10skhwZOcqh/7yc5NDB6Kq/CTSqtIuz8Tab1k024EluwTVfA85D6330Hc+fa/412er+SXd+oUe43JhWl8c86lMQZjuPT4DyQO61CmErYc2hcXN3/q6sbjUdyaPAkh/omOVT4IpVWERGBXv0Mx3xrjoLr66/V66cxcSIMGGDvdzRgAIwbF3qceqfnK9n1ff11w/zkz2cdSuJU8/h4PA+i7CqxEK42bdpEq1at2LRpk6ljqC+sOTQujk1AK2CTj35xkkPVITnUt4jm0Cjo06rH8ipcpNIqdCeUq7jeuBZcv/99w3Iq2H4a9Qvzf/6z4dXicDaFEt7l5sKYMQ2X+9tHJlw/LPz9Png7D06ecPnSRUHCFcJVRkYGkydPJiMjw9QxhCLgHBoXRwb2gZgy4uM9riI51HyiNYcePxpdF36NXl4FQiqtIniOrKVyUwt/O/EHW3A5wnVtunLvvY3H5amfhidr1tT9Pxx3jEXj6n/mDlartn2IAvk+eDsPjh+LroQrhKtWrVoxffp0WrVqZeoYQhFoDj1UGUcrYDrQqmnTBtuTHGo+0ZxDj1ZFVw41enkVCKm0Ct1JSvK8PDGx7v+hFlyKAsuWwf3325+bM6fx7dTvp+Et+Q4dav83HHeMhX88feYAb76pXR+iQL8P3gazaNZU+uOI6HX06FHWrl3L0aNHTR1DKALNoTeMjeMo9tGDPe2z5FDzieYcmpQYXZVWo5dXgZBKq9Adb+edYzRvtQqunBz74A+Oq8b+JETXfhoFBTB2rPvzY8dC//72/xttTrZo4u0zHzxYm3gg8O+Dt8EsEuKiK+EK4WrHjh0MGTKEHTt2mDqGUASaQ08q8ewAhgA7SksbvE5yqPlEcw5t1iS6cqjRy6tAxGodgPDsiy++4MyZM8TGmu8jchSWroWTax8KXwWXtyYrU6bAc8/Z13MUXEePBr4dsD/neH7xYpg82d6caejQumTrz36I0BQV2b8LHTs2/LwcyWrSJPfPXMuBL/LyGi5r7Pswfrx99MZdu+zr2WzAGwpfAGeA2I8/DlO0QmijS5cu/PTTT7Rv3z6k7YSSQ9WKQSuB5tBq7FPe/AS0T072uE3JodHHtDn0o9q6HPr222GKNnKMXl4FRBFOlZWVCqBUVlZqHYohZFssCqBkx8aqvu2FCxUlJkZRwP7vwoV1zxUWKorVan/O8YiJsS/3tB3HuhaLotx/f916gWwnHPshguf6uVqt3o9rYaGirFyp7mcaDE/fNVCUZ54JYmPDhtVt4MQJtUMViuSCYMlxC0x2drY9h2Znq77tQHJoP76r+2Py5AbbkRwafUydQ6++um4DBw+qHqsIXy6Q5sEieGEaiAl8D5fu7xxgngaPeO65wLcTrv0QwQmkeXggoxeGc4RKb/2DXO8q+M31fPNnVBMhDKSoqIipU6dSpGHHRT3EEKpAcmitNY4iYCpQVF7uXE9yaHQyfQ513VAU5NBoKK/8ZfxPS0QtX4WlP4nMn/4PkUiIRpqTzQjC0c8p3CNUeusfFFQztyibY04IV5WVlXz44YdUVlaaOgY1+JtDP/4sjkrgQ6Dy+HHnOpJDo5Pk0OiqtEZLeeUP83WYNIilS5dy/PhxmjVrxg033KB1OLrl6yavv/1hXPvXqM1XnxERHLX7OXm76jxqlHqfmar9g2prWQocB5q99RY33HSTOkEKoQPdunVj+/btIW8nlByqVgxGoChAXBzdgO3gNvSw5NDoJDnUJYe+9x43TJyoTpAaMVN5ZVGUMLTtNKiqqipSUlKorKwk2ctgBJFis9koLi4mOztbt7f8bTExFNfWkm2xUPTEE/aFpaWQmen+/7Q0KC9X9bmvNqexfGk5GZRSRia/vhYGtGv4unUFmbz/PqRTyiEyufyGNC7spm4s3p5bV5DJovfTSKGcLEoZem0mA/pH7hhFxXNe1lPzc931fTkfvlpKKfbnMrH//9Y/pdE5Q939KSeNw3vKyVBKST4vyOOwYAG2/HyKgeyWLSk6cAChLj3lAiPR03EzRA7VMMbc3LqKxrmWfPYo59qfuP56+7wmLuvVryhEqomua4xWq73SIs2D1aHm57pypf0Oq6flw4eHFGYDRUX1BlUKxqhR2D791J5DW7emqLhYzRAF4csFcqdVBM+1o8uf/xzRt77w7MPpfc/rDTj7cFoapoD8ee/38RqnCIyan2sHYIqnJ54PfpvepJ19qObgQfuvD/klJ6LE5s2bueaaa/jggw/o1q2baWMIp/p3xk4pcWwGrgE++PlnXPfY4+irAbxPsHdJI3H3zsxC+Vzri+Qoz6rc1Y+ye3XRXl65Mn5jbqGN777TOgIhBDQ+MaIQBpKamsrvfvc7UlNTTR1DOHma8iYV+B2Q6mH9YPqUhtrHUeZoDT+1+gqrNSCXvwM5hTzgk6cRnQws2ssrV1JpFcFZvVrrCIQQIL/kRFTJzs5m1qxZZGdnmzqGcKo/qE01cWQDs4BsFeaGD2R0Wn9jBPXu3oVzlFuzCnVALn8vcqgy4FOUVVqjvbxyJZVWEZyLLtI6AiEEhK8dlhAaOHHiBJs2beLEiROmjiGcPE15cwLYBKrssxp3ScM1nU64R7nVm1Ar6IG8Ptg7t/5e5FDjYojzhVEk2ssrV1JpFcHp3x+aNdM6CiGE2hMjCqGhrVu30qtXL7Zu3WrqGMLN9c7Y5h1xbAV6AeuKq5yVgGArPGrdJVV7Oh3VKj0GkZsLbdvaK+ht2sDUqYHtazgq+J6+U/5e5FCtyXiUTRtnhvLKQQZiEsFLS4Pjx6F5c3joIfuysjLIyHD/v2NU1DA+t+47+OrfZZSQQSVpjOhdTvEG+98W4IaRZfS8xP9trsvP4N//hnTKOEQGV9x4dnRaNfchwG3syytj3r/sz2VSRikZVJDGAxPKOa+5Nsc9XM9V7SnjyYUN9zWN8rrP0sc2Kirh1aftn38FaaRSThZl3Dotg7QUdb5jt/26nAE5ZZTHZ/D005DhEmcLynloQhnJ7eu2WR6fwUNP20eTduyTFerWC+S78tBDUFEBLVvKIEwiqnTu3Jl169bRuXNnU8cQCc5BbWrjSAPWAUd2xdKuHdx8M7z+enAj96o5PYma0+n4qvRE23W/oiKYONF9zKE5c2DuXP8+y3AMhOVtNGh/B3JSbcCnKLvTapbyCqTSKtSQnFxXadVAUREMng6uxdDLG9zXmbMS8hf5X9gOAFqrMbS6iqxFMOffDQvsR2YAOohPTZ+8Dc8s9PycP5/lDyvhvqcbLu97aXBD8Hv6ji380H7132azJ9P6P9CS6/0oSAP6+7GeX554wl5pdbSdEyJKJCYm0r9/f9PHEElF+620xEp/atnLQSbW/oPUf5Yz++z0X9RC1YRSyndkkpbj33Rf4zMz+e19ULWrlOYdMkk7nQZPRWZKNG/P9dtdyoNkolA3tVkVafT+Tzm8r4Mp3lR87ujqUh5Q3KdxqyCN1Nryus8yxfs2Tu6G2bUur6OczJpSTs3MhPaBx1XeJJNdz+D8TlXUprF7QjlVX5diOy+TtVfDmvdLKTn7mYy7qhzbHPdt2jIz+e/v0/h4ablzurtrr6JuPX+/K65T3NTUBHSu6JGZyiuptArD83T1tL5grqaGc8L0YKg6ubaB+fNZqj0Ef2NX6P2dPkDNaQaEiEYHDhzg5ZdfZtKkSbRq1cq0MUTS0b/lUkotrwCTKGQ+d3le8ZnAtpuK59GItZKMfbCpBgLcLyM4H/irrxUa2WevU8EF2UQ4DS/H/lX7Px6nCPTA3+kO/RYF08aZqbySPq061bJlS7Kzs2nZsqXWoeiep/4z9el9rBp/+w6p3cdHr4YM8d7VxJ/PUu1BPPzpo+XvIBRqTDMg5YOIVocOHWLhwoUcOnQopO2Eco6oFYMhFBXR+dmJ/AwsBEywx0LQEsg++6/ROzabqbySO6069f3332sdgmF4ugN5002wZIkx7kh66+fhjd7uAIeDzQYLFtR9pg6BfJaB3NUsKrLfTe3Y0fN6ervLLeWDiFY9evSgSIUfkKGcI2rFYAg7d2JRFHoAJtljIXArHQzesdlM5ZVFUVy7aZtbVVUVKSkpVFZWkpycrHU4umez2SguLiY7O1sXJ0xRvT6ojr8TE+HoUe8VEi0VFdlH5avfjNXRV1IPGqvQhfu9HZ/hsWPhaVIbyEWD+t8xEZ0kFwRHjltgdJFDi4rsQ8zKT0FhVnr70RUFwpULpHmwiBr1m13abLB7NwwapN852VQbwl1Frk2VtZ7TzvGZ9u8fepNaTwKdAkGNpr1CCO+2bNlCz5492bJli6ljiJizzVq2AD0BE+yxEHWsVn03xfODmcoraR4solY4hmxXW2MDBkX6Lmf9u46KUncBXo/HL1RmmgJBCCNo3rw5w4cPp3nz5qaOIaLGj6d5jx4MnzGD5hddBC1aQHk5VXvKeGphxtnRdu3TdFWRxqxp5aSe1sF0aeCMsdwxwu3ZaeqmTYPU0/apxkpOpdGySWRiXpefwav/tk9tloV9ijS0PH5h3v620jQWPV83jZtjX6+dkMF5/bSfPs/regDnnAODBxs+2ZupvJLmwS701LRp0qRJHD58mBYtWvDyyy9rGos3umja5MPKlfY7hJ6WBzPtSbjk5jbsKzl+fOB9XUPlqamyJ3o7fqEwQvNsT4xQPhiZnnKBkejpuBnhHJEcqg7JodqRHCo8CVcukDutOrV8+XJnMhPBUXvaE0/UuBPqacAgLe4S+zN1kN5HYQ6U3gZY8peUDyJanTx5kqKiImw2GwkJCUFvJ5RzRK0YjMTTPksODYzkUMmhWjBTeSV9WkXUUnvak/rU7O9Zv6+kFn1dPU3rYrXWLTNKMgqUWaYREsIItmzZQseOHTXv06p1DJHmaZ8lhwZGcqjkUC2YqbySSquIauEqTAMdwCdQ/swLqjZPP1BeeQUKCgI/fv7OO6sXvgZYMtq+CGFkHTt2ZOXKlXTs2NHUMUSat32WHOo/yaGSQ7VgpvJKKq0i6oVjxNdwX8UN9xVubzz9QAn0+EVyxOFwJ0OtR08Wwmz0MKiIHmKINF/7LDnUf5JD3UkODT8zlVdSaRUiCJG4ihvpJjeO5AXB/0AJ99VzV+FOhpHcFyGEXUlJCbNnz6akpMTUMURapPdZcqj3bUgOFYEwU3kllVZhSqFeXYzUVdxIzQuqVvKKVD+iSCRDPc6hK0S0O3jwILNmzeLgwYOmjiHSAt1nyaHuJIc2JDk0MsxUXsnowcJ01BoG39OIhUYUyCiLjY30GInRJiEy86tGal+EEHV69erF4cOHTR9DpAWyz5JD3UkO9UxyaGSYqbySO63CVNS+uhipq7jh5O/VUH+uJEfq6nkkmpZp1SdKCCH0SnJoQ5JDPZMcKtQmlVZhKtJcpSF/klcgP1Qi0Y8oUslQhvIXIrK2b9/O4MGD2b59u6ljiDR/91lyaEOSQ72THBp+ZiqvpHmwTo0ZM4by8nLS0tK0DiWqSHOVhvyZHDzQpkQ2W2RGaYxE07JI7EugpHwQ0SohIYFu3bqRkJAQ0nZCOUfUisFI/N1nyaENSQ71TXJoeJmpvLIoiqJoHYReVFVVkZKSQmVlJcnJyVqHo3s2m43i4mKys7MpMtBwcLm5DZOLWa/+ufavAe/Jq6jI3pyp/g+V/Hz9JSMhQiW5IDhy3AIjOdT4JIcK0VC4coE0DxamE63NVQIdzbF+/5oVK7z3LZK+KUKISKiurubAgQNUV1ebOoZIC2SfJYfaSQ4VemCm8koqrcKUQh38IdwTcgcq0OH2gxlMw9cPFb0dDyGEMf3444+0bt2aH3/80dQxRFqg+yw5VHKo0AczlVe6rrTOmzePnJwcEhISGDhwIOvWrfO5/jvvvMP5559PQkICPXr04OOPP45QpMJMwj0hd6CCSZ7BDqbh6YeK3o6HEMLOiDn0vPPO46OPPuK8886L+HvrKYZIi+Q+6y1nSA4VRmaq8krRqTfffFOJj49XXn31VWXz5s3KxIkTldTUVKWkpMTj+mvWrFFiYmKUZ555RtmyZYsyffp0JS4uTvnxxx/9fs/KykoFUCorK9XajaB17txZad68udK5c2etQ/EqOztbAZTs7GytQ4mYwkJFsVoVBeoeMTH25Vr58kv3eByPlSu9v0at/dDj8TADI5QPRqanXBAsyaH6P0ckh+ojZ0gONR8jlA9GFq5coNs7rXPnzmXixInceuutdO3alfnz59OsWTNeffVVj+v/7W9/49JLL2Xq1Kl06dKFxx9/nL59+/L3v//d63ucOnWKqqoqt4deHD16lCNHjnD06FGtQxEuGru6qkUTn2DmW1Orf43epj8wSxMrKR9EY4yaQ8vKypg3bx5lZWUhbSeUc0StGIwkUvssOdSd5FBtRFMONVN5pctK6+nTp8nLy2PkyJHOZVarlZEjR7J27VqPr1m7dq3b+gCjRo3yuj7ArFmzSElJcT7atGmjzg6IqOUruWnVxMef5OkpEakxmEYkJij3lzSxEsLOyDm0qKiIKVOmaDqarh5iiLRI7bPkUHeSQ0WozFRe6bLSeujQIWpqasjKynJbnpWVxcGDBz2+5uDBgwGtD/DQQw9RWVnpfBQWFoYevNC1UK8iektuEHifGDX5Sp6+ElGog2noZUTEYPokCRGtjJxD+/Tpw6lTp+jTp0/I2zJyDJHm7z5LDpUcKvTFTOWVLiutkdKkSROSk5PdHiJ6qXUV0VNy00MTH0/JMxKJqP7xGDXK+4+acDU90sPxF8JsJIeai+RQyaFCaEmXldb09HRiYmIoKSlxW15SUkLLli09vqZly5YBrS/MRe3EUz+56amJj6tIJSLH8VixwvuPmnA2PdLr8RdCC0bOoTt37mTkyJHs3Lkzou+rtxgirbF9lhxaR3Ko0BMzlVe6rLTGx8fTr18/vvjiC+ey2tpavvjiCwYPHuzxNYMHD3ZbH+Czzz7zur4wl3AnHr008akvkonI14+acF+t1uvxF0ILRs6hsbGxZGRkEBsbG9H31VsMkdbYPksOrSM5VOiJqcorVcciVtGbb76pNGnSRFm8eLGyZcsW5fbbb1dSU1OVgwcPKoqiKDfffLPy4IMPOtdfs2aNEhsbq8yZM0fZunWrMmPGDEMP12+EofCNEKNDpIaVLyy0D5Ovp+HqFy6076tjnxcuDM/7+Jo2IJgpBYKhx+MfDkY694xIT7kgWJJD9X+OGCFGB8mhkkOjiZHOPSMKVy7QbbX8+uuvp6ysjEcffZSDBw/Su3dvPvnkE+dAEfv27cPqcvlryJAhLF26lOnTp/Pwww/TsWNH3n//fbp3767VLggdcVxFnDTJfnU4XFcRbTb9XZkcP97eR2bXLvvV4XDF57gi7Xo13vWKtK/n/FFUZL/a37Gj933Q4/EXQgtGzaE1NTUcO3aMxMREYhy3fSJMDzFEWmP7LDlUcqjQJ1OVV6pWgQ1OrhIHxggx1me0q4iFhfYrrEaJ19cV6VCuVi9cWHeV32oN35VuozDiuWckesoFRqLGccvLy1MAJS8vL6RYQjlH1IqhMXo6j/3dZ8mh4SU5NDL0dO6FKlLlVSDClUMtiqIoWlSW9aiqqoqUlBQqKys1HwXxo48+4sSJEzRt2pQrr7xS01i8sdlsFBcXk52dHXXzQ/lzRTLccnPr+rBYrfar3MHMAxdpRUXer0j7es7X9tq1a3iFOT/fvFeEjVA+GJmecoGRqHHcysvL+fzzzxk5ciRpaWlBxxLKOaJWDI3RUw5Ve58lhwZPcmj4RVMOjVR5FYhw5VCptLqQHyqB0VPCVZMeEl20JZlQfsCsXGkfLdHT8uHDVQlPCDeSC4Ijxy0wkkPDR3JoHcmhItLClQt0OXqwEFrxNkLfd9+FZ240b/QyZ5oac8KFOky/DMUvhHn8/PPPLF68mJ9//tnUMUSaWvssOdSd5FARbmYqr6TSKoQLb4lu0KDwzI3mjR6SjBpzwqkxTL8MxS+EeRQUFHDrrbdSUFBg6hgiTa19lhxaR3KoiAQzlVfSPNiFnpo25eXlcfr0aed8e3oUjU2bPDUpqi9STYxycxuO1BipJlZqNa1Ss1lSURGsXWsf6H/IEHMnXCOUD0amp1xgJGocN0VRqKmpISYmBovFEnQsoZwjasXQGD3lULX2WXKoneRQfYumHBqp8ioQ4cqhup3yxuyuueYa3SSzaOHvcO+uw/rXH2Ie6poYhbvAj9Qw+574aloVSByNDeEfiBUr6q44Wyxw333wxz+aM/FK+SCilcViITY29J8moZwjasVgJP7ss+RQ/0kO1bdoyqFmKq+kebAwhUCa6Ywfb78aunIlfPONtk2MbDb71dRwJ5X6/W7UalqlVrOk+k2kFAXmzIlcUzMhRGTs3r2bq6++mt27d5s6hkhrbJ8lh/omOVRoxUzllVRaRdQLpk+II9H176+PviBqDObgjacfI2r2gXH9AZOfH1zzLE9XrSG4/j1CCCH8JznUN8mhQkSGOe4nC1MLtZmOlk2MILzTB3j7MTJqlO/9DnT4fZsttOPmqYmUQ6Samgkhwu+8887jww8/NH0MkeZrnyWHeic5VGjNTOWV3GkVUU+NZjqRamJUnxojB/rS2LQAnvZbjRERA+W4al3/cwQZul+IaKIoCmfOnEHLMSL1EEOk+dpnyaHeSQ4VWjNTeSWVVhH1jDzce7jnmgv0x4inHwC3326fgy/cxo+HggK4/35jfpZCiMb98MMPxMXF8cMPP5g6hkjztc+SQ72THCq0ZqbySiqtwhTU6BOihXDPNRfojxFPPwBqa+1z8EXqavHs2cb8LIUQjWvXrh2LFi2iXbt2po4h0hrbZ8mhnkkOFVozU3kl87S60NPcfHqav80bI8QYjED7moRbJOaaKyryr7+Rrzn4IjX3nojec08v9JQLjERPx80I54gRYgyG5FDf60kO1V60nnt6Ea5cIHdahXChRV+TxkTiCre//Y189YtRs8mVEMKcysvLeeeddygvLzd1DJGm1j5LDm18PcmhQk1mKq+k0irEWeEesCEUWg1i4cn48drPvSeEiE579+5l9OjR7N2719QxRJoa+yw51D+SQ4WazFReyZQ3OrV161YURcFisWgdimmEOqx/tPLU1Msx9179JldmPk6RJOWDiFa9evWisrKSxMTEkLYTyjmiVgxGosY+Sw71THKo/kRTDjVTeSWVVp1q3ry51iGYjqd5zMx+5dPX/HZaz71nZlI+iGgVExOjSh+oUM4RtWIwEjX2WXJoQ5JD9SmacqiZyitpHizEWUYe1j8c/GnqpacmV0II49u7dy9jxozRvHmw1jFEmhr7LDnUneRQEQlmKq+k0iqEC6MO6x8O3pp6vfOOPvooCSGiz5kzZygrK+PMmTOmjiHS1NpnyaF1JIeKSDBTeSVT3rjQ03D9c+fOpaqqiuTkZKZMmaJpLN7IkOHRzdfQ/PWbOYnIMkL5YGR6ygVGoqfjZoRzRHJodJMcql9GKB+MLFy5QCqtLvSUcI2QzIwQowiN6/x29cmcctqRcy+89JQLjERPx80I54gRYhShkRyqT3LuhZfM0yqECKuiInuTLtfy29HUa+7chuvLnHJCCLX98MMPNGnShB9++MHUMUSaGfdZbZJDhRbMdO5KpVUI4XNCeJsNfvc7mVNOCBF+NpuNuXPnYtPw9pMeYog0M+6zmiSHCq2Y6dyVSqsQJufvCIcyKqQQItwyMjKYPHkyGRkZpo4h0sy4z2qRHCq0ZKZzVyqtQpicrwnhXcmokEKIcKusrGT58uVUVlaaOoZIM+M+q0VyqNCSmc5dqbQKYXKOCeFdeWu21Niccp769AghhL92797NlVdeye7du00dQ6SZcZ/VIjlUaMlM565UWoUwObWaLfnq0yOEEP7o0aMH+/fvp0ePHqaOIdLMuM9qkRwqtGSmc1cqrSJqyBXK4IXabMmfPj1CCNGYuLg4WrVqRVxcnKljiLS4uDhqalrx1VdxUm4HQXKo0IqZyiuptIqoIFcoQ9dYsyVf/O3TI4QQvhQUFDBhwgQKCgpMHUOkPfNMAW3aTOCSSwokhwZJcqjQgpnKq1itAxCe9e3blzZt2phiNLBQebtCOWqUjMwXKY4+Pa5JV4bzDx8pH0S0OnnyJJs3b+bkyZMhbSeUc0StGIyiqAgefPAksBk4KTlUA5JDIyuacqiZyiuptOrUhx9+qHUIhuHrCqUk3Mhw9OmZNMl+7GU4//CS8kFEq86dO7N27dqQtxPKOaJWDEaxcycoSmegbp8lh0aW5NDIiqYcaqbySiqtwvDkCqU+jB9vvzK/a5f92EuyFUII/ZMcqg+SQ4XwTfq0CsOTSbv1I5Q+PUIIsXHjRlq0aMHGjRtNHUMk2WzwyCMbgRbARsmhGpIcKgJlpvJK7rSKqCBXKIUQwvhatmzJQw89RMuWLU0dQ6TdeWdLzpx5iL59WzJggORQIYzCTOWVRVEUResg9KKqqoqUlBQqKytJTk7WNJarr76asrIyMjIydNv23mazUVxcTHZ2NkUyLrsQEWOE8sHI9JQLjERPx80I54jkUCG0YYTywcjClQvkTqtOrV+/3pnMhBDClZQPIlodOXKEvLw8+vXrR/PmzYPeTijniFoxGIkZ91mYVzTlUDOdu9KnVQghhBC6sHPnTkaMGMHOnTtNHUOkmXGfhYgGZjp35U6rEEIIIXSh6/+3d+exVZRvG8ev09KeYlgKYWnhx47sECNIU9YoVQirhggEbMCwBpAIhl1TlFXSoBFBIyBgRAmyKIGGRZAQagUDbUBaqiyyFwWElrL1tM/7hy+NQFlmoDPTnu8nmZBOn2nvuXOGi5s5S7Nm+uOPP/Q/F19U6YUanBaM5wyUBsF07TK0AgAAT4iIiFBDlz9rxQs1OC0YzxkoDYLp2uXpwQAAwBNOnz6tcePG6fTp00Fdg9OC8ZyB0iCYrl1PDq2XL1/WoEGDVKFCBUVGRmro0KG6du3aQ9e/9dZbaty4scqWLavatWtr3Lhxunr1qoNVAwDgvpKcoTk5Odq1a5dycnIc/91eqsFpwXjOQGkQTNeuJ58ePGjQIJ0/f17bt29XXl6e3nzzTY0YMULffPNNkevPnTunc+fOKTExUc2aNdPJkyc1atQonTt3TmvXrnW4egAA3FOSM7RZs2Y6ePCgo7/TizU4LRjPGSgNguna9dzQmpGRoS1btujXX39VmzZtJEkLFy5U9+7dlZiYqBo1atx3TIsWLbRu3brCrxs0aKDZs2frjTfeUCAQUJkynjtNAACeOjIUAFAaeS6JUlJSFBkZWRi2khQXF6eQkBDt3btXr7322mP9nDsfaPuwsL1165Zu3bp11zHSvx+K67aCgoLCP71QT1FKQo1AacS1V7zu9NQY43Il1pX0DD18+LD69u2rdevWqXnz5rZ/zpNcI0+rhkfx0nXs1DkDXuCla+9JefHaLbYMNR4ze/Zs06hRo/v2V61a1SxevPixfsbff/9tateubaZNm/bQdQkJCUYSGxsbGxvbfduxY8ds5ZibyFA2NjY2Ni9sTztDHbvTOmXKFH344YcPXZORkfHEvyc7O1s9evRQs2bNNGPGjIeunTp1qiZMmFD49ZUrV1SnTh2dOnVKFStWfOJagkF2drZq1aql06dPq0KFCm6XU2LQN+vomT30zbqrV6+qdu3aqly5stulFCJDSyeuT3vom3X0zB76Zl1xZahjQ+s777yjIUOGPHRN/fr1FRUVpb/++uuu/YFAQJcvX1ZUVNRDj8/JyVG3bt1Uvnx5bdiwQWFhYQ9d7/f75ff779tfsWJFHpgWVahQgZ7ZQN+so2f20DfrQkK88wb7ZGjpxvVpD32zjp7ZQ9+se9oZ6tjQWrVqVVWtWvWR62JjY3XlyhXt379frVu3liTt3LlTBQUFiomJeeBx2dnZ6tq1q/x+vzZu3KiIiIinVjsAAG4iQwEAwcw7/438/5o2bapu3bpp+PDh2rdvn5KTkzV27FgNGDCg8F0Pz549qyZNmmjfvn2S/g3bV155Rbm5uVq2bJmys7OVlZWlrKws5efnu3k6AAA4hgwFAJRGnnv3YElatWqVxo4dqy5duigkJER9+/bVJ598Uvj9vLw8ZWZm6vr165KkAwcOaO/evZKkhg0b3vWzTpw4obp16z7W7/X7/UpISCjy6U4oGj2zh75ZR8/soW/WlfSekaElBz2zh75ZR8/soW/WFVfPfMaUwPf0BwAAAAAEBc89PRgAAAAAgDsYWgEAAAAAnsXQCgAAAADwLIZWAAAAAIBnBd3QumjRItWtW1cRERGKiYkpfMv/B/nuu+/UpEkTRUREqGXLlkpKSnKoUu+w0rMlS5aoY8eOqlSpkipVqqS4uLhH9ri0svpYu2P16tXy+Xx69dVXi7dAD7LasytXrmjMmDGKjo6W3+9Xo0aNuEYfo28ff/yxGjdurLJly6pWrVoaP368bt686VC17tu9e7d69eqlGjVqyOfz6fvvv3/kMbt27dLzzz8vv9+vhg0basWKFcVepxeRodaRofaQodaRofaQoda4lqEmiKxevdqEh4ebL7/80hw+fNgMHz7cREZGmgsXLhS5Pjk52YSGhpr58+eb9PR08+6775qwsDBz6NAhhyt3j9WeDRw40CxatMikpqaajIwMM2TIEFOxYkVz5swZhyt3l9W+3XHixAlTs2ZN07FjR9OnTx9nivUIqz27deuWadOmjenevbvZs2ePOXHihNm1a5dJS0tzuHJ3We3bqlWrjN/vN6tWrTInTpwwW7duNdHR0Wb8+PEOV+6epKQkM336dLN+/XojyWzYsOGh648fP26eeeYZM2HCBJOenm4WLlxoQkNDzZYtW5wp2CPIUOvIUHvIUOvIUHvIUOvcytCgGlrbtm1rxowZU/h1fn6+qVGjhpk7d26R6/v162d69Ohx176YmBgzcuTIYq3TS6z27F6BQMCUL1/erFy5srhK9CQ7fQsEAqZdu3Zm6dKlZvDgwUEXuFZ79tlnn5n69eub27dvO1WiJ1nt25gxY8xLL710174JEyaY9u3bF2udXvU4gTtp0iTTvHnzu/b179/fdO3atRgr8x4y1Doy1B4y1Doy1B4y9Mk4maFB8/Tg27dva//+/YqLiyvcFxISori4OKWkpBR5TEpKyl3rJalr164PXF/a2OnZva5fv668vDxVrly5uMr0HLt9++CDD1StWjUNHTrUiTI9xU7PNm7cqNjYWI0ZM0bVq1dXixYtNGfOHOXn5ztVtuvs9K1du3bav39/4dOfjh8/rqSkJHXv3t2RmkuiYM8CiQy1gwy1hwy1jgy1hwx1xtPKgjJPsygvu3jxovLz81W9evW79levXl1Hjhwp8pisrKwi12dlZRVbnV5ip2f3mjx5smrUqHHfg7U0s9O3PXv2aNmyZUpLS3OgQu+x07Pjx49r586dGjRokJKSknT06FGNHj1aeXl5SkhIcKJs19np28CBA3Xx4kV16NBBxhgFAgGNGjVK06ZNc6LkEulBWZCdna0bN26obNmyLlXmHDLUOjLUHjLUOjLUHjLUGU8rQ4PmTiucN2/ePK1evVobNmxQRESE2+V4Vk5OjuLj47VkyRJVqVLF7XJKjIKCAlWrVk1ffPGFWrdurf79+2v69On6/PPP3S7N03bt2qU5c+Zo8eLFOnDggNavX6/Nmzdr5syZbpcG4D/I0MdDhtpDhtpDhronaO60VqlSRaGhobpw4cJd+y9cuKCoqKgij4mKirK0vrSx07M7EhMTNW/ePP34449q1apVcZbpOVb7duzYMf3555/q1atX4b6CggJJUpkyZZSZmakGDRoUb9Eus/NYi46OVlhYmEJDQwv3NW3aVFlZWbp9+7bCw8OLtWYvsNO39957T/Hx8Ro2bJgkqWXLlsrNzdWIESM0ffp0hYTwf5n3elAWVKhQISjuskpkqB1kqD1kqHVkqD1kqDOeVoYGTWfDw8PVunVr7dixo3BfQUGBduzYodjY2CKPiY2NvWu9JG3fvv2B60sbOz2TpPnz52vmzJnasmWL2rRp40SpnmK1b02aNNGhQ4eUlpZWuPXu3Vsvvvii0tLSVKtWLSfLd4Wdx1r79u119OjRwn+cSNLvv/+u6OjooAhbyV7frl+/fl+o3vlHy7/vqYB7BXsWSGSoHWSoPWSodWSoPWSoM55aFlh626YSbvXq1cbv95sVK1aY9PR0M2LECBMZGWmysrKMMcbEx8ebKVOmFK5PTk42ZcqUMYmJiSYjI8MkJCQE5dv1W+nZvHnzTHh4uFm7dq05f/584ZaTk+PWKbjCat/uFYzvfGi1Z6dOnTLly5c3Y8eONZmZmWbTpk2mWrVqZtasWW6dgius9i0hIcGUL1/efPvtt+b48eNm27ZtpkGDBqZfv35unYLjcnJyTGpqqklNTTWSzIIFC0xqaqo5efKkMcaYKVOmmPj4+ML1d96uf+LEiSYjI8MsWrQoaD/yhgy1hgy1hwy1jgy1hwy1zq0MDaqh1RhjFi5caGrXrm3Cw8NN27ZtzS+//FL4vc6dO5vBgwfftX7NmjWmUaNGJjw83DRv3txs3rzZ4YrdZ6VnderUMZLu2xISEpwv3GVWH2v/FYyBa4z1nv38888mJibG+P1+U79+fTN79mwTCAQcrtp9VvqWl5dnZsyYYRo0aGAiIiJMrVq1zOjRo80///zjfOEu+emnn4r8e+pOnwYPHmw6d+583zHPPfecCQ8PN/Xr1zfLly93vG4vIEOtI0PtIUOtI0PtIUOtcStDfcZwLxsAAAAA4E1B85pWAAAAAEDJw9AKAAAAAPAshlYAAAAAgGcxtAIAAAAAPIuhFQAAAADgWQytAAAAAADPYmgFAAAAAHgWQysAAAAAwLMYWgEAAAAAnsXQCgAAAADwLIZWAAAAAIBnMbQCQSI5OVk+n08+n09r1qwpcs3evXtVrlw5+Xw+TZw40eEKAQDwJjIUcJfPGGPcLgKAM/r06aONGzeqSZMm+u233xQaGlr4vczMTLVv316XLl3S4MGDtXz5cvl8PherBQDAO8hQwD3caQWCyNy5cxUaGqojR47o66+/Ltx/7tw5de3aVZcuXVLPnj21dOlSwhYAgP8gQwH3cKcVCDLDhg3TsmXLVK9ePWVmZio3N1edOnXSoUOH1KFDB23btk1ly5Z1u0wAADyHDAXcwdAKBJmzZ8/q2Wef1Y0bN/TRRx9pw4YN2r17t1q2bKndu3crMjLS7RIBAPAkMhRwB08PBoJMzZo1NW7cOEnS+PHjtXv3btWtW1dbt24tMmyvXbumGTNmqGfPnoqKipLP59OQIUOcLRoAAA8gQwF3MLQCQWjcuHEKCfn38q9cubK2bdum6OjoItdevHhR77//vg4cOKA2bdo4WSYAAJ5DhgLOK+N2AQCcFQgENHLkSBUUFEiSrl+//tDX30RHR+vMmTOqWbOmbt68yWt1AABBiwwF3MGdViCIGGM0bNgwbdq0SVWrVlW9evV08+ZNJSQkPPAYv9+vmjVrOlglAADeQ4YC7mFoBYLIpEmTtHLlSpUrV06bN2/W7NmzJUkrV65Uenq6y9UBAOBdZCjgHoZWIEgkJiYqMTFRYWFhWr9+vV544QUNGDBArVq1Un5+vqZOnep2iQAAeBIZCriLoRUIAl999ZUmTZokn8+nFStW6OWXX5Yk+Xw+zZw5U5K0ceNGJScnu1kmAACeQ4YC7mNoBUq5pKQkDR06VMYYLViwQAMHDrzr+71791ZMTIwkafLkyW6UCACAJ5GhgDcwtAKlWEpKil5//XUFAgFNnjxZb7/9dpHr7rwuJzk5WT/88IODFQIA4E1kKOAdfOQNUIrFxsYqNzf3keu6dOkiY4wDFQEAUDKQoYB3cKcVAAAAAOBZ3GkF8Eiffvqprly5okAgIEk6ePCgZs2aJUnq1KmTOnXq5GZ5AAB4FhkKPDmf4fkMAB6hbt26OnnyZJHfS0hI0IwZM5wtCACAEoIMBZ4cQysAAAAAwLN4TSsAAAAAwLMYWgEAAAAAnsXQCgAAAADwLIZWAAAAAIBnMbQCAAAAADyLoRUAAAAA4FkMrQAAAAAAz2JoBQAAAAB4FkMrAAAAAMCzGFoBAAAAAJ7F0AoAAAAA8Kz/A2DMNfVUDd5uAAAAAElFTkSuQmCC",
|
||
"text/plain": [
|
||
"<Figure size 1100x400 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.tree import DecisionTreeRegressor\n",
|
||
"\n",
|
||
"tree_reg1 = DecisionTreeRegressor(random_state=42, max_depth=2)\n",
|
||
"tree_reg2 = DecisionTreeRegressor(random_state=42, max_depth=3)\n",
|
||
"tree_reg1.fit(X, y)\n",
|
||
"tree_reg2.fit(X, y)\n",
|
||
"\n",
|
||
"def plot_regression_predictions(tree_reg, X, y, axes=[0, 1, -0.2, 1], ylabel=\"$y$\"):\n",
|
||
" x1 = np.linspace(axes[0], axes[1], 500).reshape(-1, 1)\n",
|
||
" y_pred = tree_reg.predict(x1)\n",
|
||
" plt.axis(axes)\n",
|
||
" plt.xlabel(\"$x_1$\", fontsize=18)\n",
|
||
" if ylabel:\n",
|
||
" plt.ylabel(ylabel, fontsize=18, rotation=0)\n",
|
||
" plt.plot(X, y, \"b.\")\n",
|
||
" plt.plot(x1, y_pred, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n",
|
||
"\n",
|
||
"plt.figure(figsize=(11, 4))\n",
|
||
"plt.subplot(121)\n",
|
||
"plot_regression_predictions(tree_reg1, X, y)\n",
|
||
"for split, style in ((0.1973, \"k-\"), (0.0917, \"k--\"), (0.7718, \"k--\")):\n",
|
||
" plt.plot([split, split], [-0.2, 1], style, linewidth=2)\n",
|
||
"plt.text(0.21, 0.65, \"Depth=0\", fontsize=15)\n",
|
||
"plt.text(0.01, 0.2, \"Depth=1\", fontsize=13)\n",
|
||
"plt.text(0.65, 0.8, \"Depth=1\", fontsize=13)\n",
|
||
"plt.legend(loc=\"upper center\", fontsize=18)\n",
|
||
"plt.title(\"max_depth=2\", fontsize=14)\n",
|
||
"\n",
|
||
"plt.subplot(122)\n",
|
||
"plot_regression_predictions(tree_reg2, X, y, ylabel=None)\n",
|
||
"for split, style in ((0.1973, \"k-\"), (0.0917, \"k--\"), (0.7718, \"k--\")):\n",
|
||
" plt.plot([split, split], [-0.2, 1], style, linewidth=2)\n",
|
||
"for split in (0.0458, 0.1298, 0.2873, 0.9040):\n",
|
||
" plt.plot([split, split], [-0.2, 1], \"k:\", linewidth=1)\n",
|
||
"plt.text(0.3, 0.5, \"Depth=2\", fontsize=13)\n",
|
||
"plt.title(\"max_depth=3\", fontsize=14)\n",
|
||
"\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"id": "bc19f352",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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kSNH8NZbbzn75efnY/bs2UhPT8f111+PpKQkVFVVYdeuXfi///s/3HDDDbrjIwiCCBRffvklnnzySeTk5GDmzJnYunUr8vPz0djYiIkTJ2Lq1Km47rrrkJWVhU2bNmHZsmXo0aMHFi5c6Pbcra2tuPLKK1FfX48bbrgBJ0+exLvvvosbb7wRH330Ea688kqPxmp0bgKAf//73ygoKMDYsWMxZswYOBwO7Ny5E08++SQ+//xzfPHFF6rz85QpU/D999/j97//PU6dOoW33noLEyZMwPbt2zFjxgy0tLRg8uTJqK2txbp163DVVVfhwIEDzucVaGlpwfjx43H8+HHceuutOHHiBNavX4+bb74ZR44cwZ133un29X755ZfIycnBiRMnMGHCBFitVpSXl+Ott97Cf//7XxQXF2PgwIEAgD179mDUqFEwm8247rrr0K9fPxw7dgw//fQTVq1ahQcffNCj91oLxhhuueUWvPPOO7Barbj55psRFRWFTz75BHl5efjpp5+wfPlyZ/8vvvgCTz/9NK644gqMHDkSkZGR+Oabb5Cfn4/Nmzdj9+7dzvfurrvuwp49e1BYWIjLL7/cuQAtXYgOJKdPn8aXX36JM888E/369ZPt4zgOv/vd77By5Up89dVXyM7ODsoYCS9hBNFFOXDgAAPAcnJyGGOM3XvvvQwAe+GFF5x9iouLGQCWm5srO3bs2LEMAFu5cqWs/aWXXmIA2Lhx4wyNYdGiRQwA6969O/vuu+9c9t98880MAFu9erWsvbq6mvXt25clJyezU6dOMcYY++CDDxgAdtddd7mcp6mpiZ0+fdq5nZubywCwAwcOqI4LAAPAbr/9dtbW1uay//LLL2fKy8eGDRsYAHb++eezI0eOyPa1trayqqoqw8/fr18/1q9fP1nb4sWLGQB2yy23MIfD4WzfvXs3i4qKYgkJCayxsdHZLry38fHx7JdffnG2nzx5kg0ZMoSZTCZ2+PBhZ/tFF13EoqKiWHV1tct4lK+HIAgiGGzdutV5fX7//fed7S0tLWzo0KGM4zjWu3dvtmvXLue+xsZGlpKSwnr16sVaWlpk51m0aJHs/P369WMA2HXXXceam5ud7Z9++qlsvvQET+Ymm80me14B4fr/5ptvytqFuejSSy9lx48fd7avW7eOAWAJCQls8uTJrLW11bnvySefZADY008/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uXMnCgsLsX37dowfPx59+vRBdXU1fvnlF3z55Zd4++230b9/f5hMJsyePRtPP/00LrjgAkycOBGNjY3473//i379+qFPnz4+GZMnvP/++3j//fcB8AJbaBOE9llnnYX58+c7++fm5mLdunV45513cODAAVx++eUoKyvDv//9bwwYMAD/+Mc/Av0SCF8QuETFBBFaKEveKBHSpkOlTitjjJWXl7Pbb7+dpaens4iICJaens5uv/12Vl5ebngMQumVrVu3avY5efIke+qpp9jw4cNZ9+7dWWxsLBswYACbNGkSe/31153153766Sc2d+5cNmzYMJaUlMSio6PZwIEDWW5uLvvxxx9dzvvUU08xq9XqLAtw+eWXO/cpt5WolbwReO+999jYsWNZfHw8i46OZv3792e33nor++GHHww/v1rKfsYYO378OHv44YfZkCFDnLVZr776alZUVOTSV++9VStV8PLLL7Pf//73rF+/fiwmJoYlJSWxESNGsPz8fFldO4IgiGChV1pE7bomoLwe6pW8Ubv2MqZ/3dfDk7mpqamJ3XPPPax///4sOjqaWa1WtmTJEtbS0qI6L+mNSe+1qJ1L6H/06FE2Y8YMlpqayqKjo9kFF1zA3n77bZdz6L3fNpuNzZ07l1mtVhYdHc3i4uLY2WefzaZNm8a2bNni7PfRRx+x2267jZ155pmsZ8+erEePHuycc85hDzzwgGbJOXfove5169ax8ePHs8TERBYZGcnOOOMMNmbMGPb000/Lnq+lpYU99thjzvFnZGSwe+65hzU1NameX+976QuE76/Wn9r9yunTp9kjjzzCBg0axKKiolhaWhqbNm2arGY8EV5wjFEeaoIgCIIgCKLr0r9/fwBwWu8IgggtKKaVIAiCIAiCIAiCCFlItBIEQRAEQRAEQRAhCyViIgiCIAiCIAyzbds2Z6kxPS688MIOZXUngLVr1xpyWZ40aZLPyr4RRChCopUgCIIgCIIwzLZt2wzV3szNzQ0b0Rqqsaxr167F559/7rZf//79SbQSnRpKxEQQBEEQBEEQBEGELBTTShAEQRAEQRAEQYQs5B4sweFw4LfffkPPnj3BcVywh0MQBEEEAcYYmpqa0KdPH5hMtLZrFJpDCYIgCH/NoSRaJfz222/o27dvsIdBEARBhAAVFRWwWCzBHkbYQHMoQRAEIeDrOZRE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8PuVk5MT/oHrTO2fNU/RGHCFUD9nX3/9tRg8eLCwWCyiV69e4vXXXxf19fVhHrX+1MzbtWvXxPz580Xv3r1FmzZtRFpamnjqqafEuXPnwj9wnezYsUP23ynXPGVlZYl7773X7z133nmniIuLE7169RLvv/9+2MdtBIyh6jGGasMYqh5jqDaMoeroFUMlIVjLJiIiIiIiImOKmmdaiYiIiIiIKPIwaSUiIiIiIiLDYtJKREREREREhsWklYiIiIiIiAyLSSsREREREREZFpNWIiIiIiIiMiwmrURERERERGRYTFqJiIiIiIjIsJi0EhERERERkWExaSUiIiIiIiLDYtJKREREREREhsWklShKFBYWQpIkSJKE/Px82XO+/fZbtGvXDpIk4fnnnw/zCImIiIyJMZRIX5IQQug9CCIKj4ceeggbN25Ev3798P3338NsNrtfO3z4MIYOHYqqqipkZWXh/fffhyRJOo6WiIjIOBhDifTDSitRFFm0aBHMZjN++OEH/O1vf3MfP3nyJDIzM1FVVYWxY8di1apVDLZEREQeGEOJ9MNKK1GUmTx5MlavXo2ePXvi8OHDqK2txfDhw/Hdd9/hnnvuwbZt29C2bVu9h0lERGQ4jKFE+mDSShRlTpw4gb59++Ly5ct46623sGHDBuzatQv9+/fHrl27kJiYqPcQiYiIDIkxlEgfXB5MFGW6du2KGTNmAABmzpyJXbt2oUePHti6datssL148SLmz5+PsWPHIiUlBZIkYdKkSeEdNBERkQEwhhLpg0krURSaMWMGTCbnX/+OHTti27ZtSE1NlT23srISr7zyCvbt24dBgwaFc5hERESGwxhKFH4xeg+AiMKrvr4eU6dORWNjIwDg0qVLQZ+/SU1Nhd1uR9euXXHlyhU+q0NERFGLMZRIH6y0EkURIQQmT56MTZs2oXPnzujZsyeuXLmCnJycgO+xWCzo2rVrGEdJRERkPIyhRPph0koURWbPno01a9agXbt22Lx5M15//XUAwJo1a3Do0CGdR0dERGRcjKFE+mHSShQllixZgiVLliA2Nhbr169Heno6HnvsMQwYMAANDQ2YO3eu3kMkIiIyJMZQIn0xaSWKAh988AFmz54NSZKQl5eHX/3qVwAASZKwYMECAMDGjRtRWFio5zCJiIgMhzGUSH9MWolauS1btsBms0EIgaVLl2LChAlerz/44IMYPHgwAOCFF17QY4hERESGxBhKZAxMWolasaKiIowbNw719fV44YUX8Oyzz8qe53oup7CwEJ999lkYR0hERGRMjKFExsEtb4hasYyMDNTW1jZ53n333QchRBhGREREFBkYQ4mMg5VWIiIiIiIiMixWWomoScuWLcP58+dRX18PAPjnP/+J1157DQAwfPhwDB8+XM/hERERGRZjKFHzSYLrGYioCT169MDx48dlX8vJycH8+fPDOyAiIqIIwRhK1HxMWomIiIiIiMiw+EwrERERERERGRaTViIiIiIiIjIsJq1ERERERERkWExaiYiIiIiIyLCYtBIREREREZFhMWklIiIiIiIiw2LSSkRERERERIbFpJWIiIiIiIgMi0krERERERERGRaTViIiIiIiIjIsJq1ERERERERkWP8PA2HxzU0o3MMAAAAASUVORK5CYII=",
|
||
"text/plain": [
|
||
"<Figure size 1100x400 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"tree_reg1 = DecisionTreeRegressor(random_state=42)\n",
|
||
"tree_reg2 = DecisionTreeRegressor(random_state=42, min_samples_leaf=10)\n",
|
||
"tree_reg1.fit(X, y)\n",
|
||
"tree_reg2.fit(X, y)\n",
|
||
"\n",
|
||
"x1 = np.linspace(0, 1, 500).reshape(-1, 1)\n",
|
||
"y_pred1 = tree_reg1.predict(x1)\n",
|
||
"y_pred2 = tree_reg2.predict(x1)\n",
|
||
"\n",
|
||
"plt.figure(figsize=(11, 4))\n",
|
||
"\n",
|
||
"plt.subplot(121)\n",
|
||
"plt.plot(X, y, \"b.\")\n",
|
||
"plt.plot(x1, y_pred1, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n",
|
||
"plt.axis([0, 1, -0.2, 1.1])\n",
|
||
"plt.xlabel(\"$x_1$\", fontsize=18)\n",
|
||
"plt.ylabel(\"$y$\", fontsize=18, rotation=0)\n",
|
||
"plt.legend(loc=\"upper center\", fontsize=18)\n",
|
||
"plt.title(\"No restrictions\", fontsize=14)\n",
|
||
"\n",
|
||
"plt.subplot(122)\n",
|
||
"plt.plot(X, y, \"b.\")\n",
|
||
"plt.plot(x1, y_pred2, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n",
|
||
"plt.axis([0, 1, -0.2, 1.1])\n",
|
||
"plt.xlabel(\"$x_1$\", fontsize=18)\n",
|
||
"plt.title(\"min_samples_leaf={}\".format(tree_reg2.min_samples_leaf), fontsize=14)\n",
|
||
"\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ff40c7b7",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Pros and cons of trees, pros\n",
|
||
"\n",
|
||
"* White box, easy to interpret model. Some people believe that decision trees more closely mirror human decision-making than do the regression and classification approaches discussed earlier (think of support vector machines)\n",
|
||
"\n",
|
||
"* Trees are very easy to explain to people. In fact, they are even easier to explain than linear regression!\n",
|
||
"\n",
|
||
"* No feature normalization needed\n",
|
||
"\n",
|
||
"* Tree models can handle both continuous and categorical data (Classification and Regression Trees)\n",
|
||
"\n",
|
||
"* Can model nonlinear relationships\n",
|
||
"\n",
|
||
"* Can model interactions between the different descriptive features\n",
|
||
"\n",
|
||
"* Trees can be displayed graphically, and are easily interpreted even by a non-expert (especially if they are small)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "cff76ce7",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Disadvantages\n",
|
||
"\n",
|
||
"* Unfortunately, trees generally do not have the same level of predictive accuracy as some of the other regression and classification approaches\n",
|
||
"\n",
|
||
"* If continuous features are used the tree may become quite large and hence less interpretable\n",
|
||
"\n",
|
||
"* Decision trees are prone to overfit the training data and hence do not well generalize the data if no stopping criteria or improvements like pruning, boosting or bagging are implemented\n",
|
||
"\n",
|
||
"* Small changes in the data may lead to a completely different tree. This issue can be addressed by using ensemble methods like bagging, boosting or random forests\n",
|
||
"\n",
|
||
"* Unbalanced datasets where some target feature values occur much more frequently than others may lead to biased trees since the frequently occurring feature values are preferred over the less frequently occurring ones. \n",
|
||
"\n",
|
||
"* If the number of features is relatively large (high dimensional) and the number of instances is relatively low, the tree might overfit the data\n",
|
||
"\n",
|
||
"* Features with many levels may be preferred over features with less levels since for them it is *more easy* to split the dataset such that the sub datasets only contain pure target feature values. This issue can be addressed by preferring for instance the information gain ratio as splitting criteria over information gain\n",
|
||
"\n",
|
||
"However, by aggregating many decision trees, using methods like\n",
|
||
"bagging, random forests, and boosting, the predictive performance of\n",
|
||
"trees can be substantially improved."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "290208bf",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Ensemble Methods: From a Single Tree to Many Trees and Extreme Boosting, Meet the Jungle of Methods\n",
|
||
"\n",
|
||
"As stated above and seen in many of the examples discussed here about\n",
|
||
"a single decision tree, we often end up overfitting our training\n",
|
||
"data. This normally means that we have a high variance. Can we reduce\n",
|
||
"the variance of a statistical learning method?\n",
|
||
"\n",
|
||
"This leads us to a set of different methods that can combine different\n",
|
||
"machine learning algorithms or just use one of them to construct\n",
|
||
"forests and jungles of trees, homogeneous ones or heterogenous\n",
|
||
"ones. These methods are recognized by different names which we will\n",
|
||
"try to explain here. These are\n",
|
||
"\n",
|
||
"1. Voting classifiers\n",
|
||
"\n",
|
||
"2. Bagging and Pasting\n",
|
||
"\n",
|
||
"3. Random forests\n",
|
||
"\n",
|
||
"4. Boosting methods, from adaptive to Extreme Gradient Boosting (XGBoost)\n",
|
||
"\n",
|
||
"We discuss these methods here."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1ba72d76",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## An Overview of Ensemble Methods\n",
|
||
"\n",
|
||
"<!-- dom:FIGURE: [DataFiles/ensembleoverview.png, width=600 frac=0.8] -->\n",
|
||
"<!-- begin figure -->\n",
|
||
"\n",
|
||
"<img src=\"DataFiles/ensembleoverview.png\" width=\"600\"><p style=\"font-size: 0.9em\"><i>Figure 1: </i></p>\n",
|
||
"<!-- end figure -->"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "70f1b9a0",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Why Voting?\n",
|
||
"\n",
|
||
"The idea behind boosting, and voting as well can be phrased as follows:\n",
|
||
"**Can a group of people somehow arrive at highly\n",
|
||
"reasoned decisions, despite the weak judgement of the individual\n",
|
||
"members?**\n",
|
||
"\n",
|
||
"The aim is to create a good classifier by combining several weak classifiers.\n",
|
||
"**A weak classifier is a classifier which is able to produce results that are only slightly better than guessing at random.**\n",
|
||
"\n",
|
||
"The basic approach is to apply repeatedly (in boosting this is done in an iterative way) a weak classifier to modifications of the data.\n",
|
||
"In voting we simply apply the law of large numbers while in boosting we give more weight to misclassified data in\n",
|
||
"each iteration. \n",
|
||
"\n",
|
||
"Decision trees play an important role as our weak classifier. They serve as the basic method."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9c6368b3",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Tossing coins\n",
|
||
"\n",
|
||
"The simplest case is a so-called voting ensemble. To illustrate this,\n",
|
||
"think of yourself tossing coins with a biased outcome of 51 per cent\n",
|
||
"for heads and 49% for tails. With only few tosses,\n",
|
||
"you may not clearly see this distribution for heads and tails. However, after some\n",
|
||
"thousands of tosses, there will be a clear majority of heads. With 2000 tosses\n",
|
||
"you should see approximately 1020 heads and 980 tails.\n",
|
||
"\n",
|
||
"We can then state that the outcome is a clear majority of heads. If\n",
|
||
"you do this ten thousand times, it is easy to see that there is a 97%\n",
|
||
"likelihood of a majority of heads.\n",
|
||
"\n",
|
||
"Another example would be to collect all polls before an\n",
|
||
"election. Different polls may show different likelihoods for a\n",
|
||
"candidate winning with say a majority of the popular vote. The majority vote\n",
|
||
"would then consist in many polls indicating that this candidate will\n",
|
||
"actually win.\n",
|
||
"\n",
|
||
"The example here shows how we can implement the coin tossing case,\n",
|
||
"clealry demostrating that after some tosses we see the [law of large](https://en.wikipedia.org/wiki/Law_of_large_numbers)\n",
|
||
"numbers kicking in."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "831bab47",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Standard imports first"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"id": "396a564f",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Common imports\n",
|
||
"from IPython.display import Image \n",
|
||
"from pydot import graph_from_dot_data\n",
|
||
"import pandas as pd\n",
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from sklearn.tree import DecisionTreeClassifier\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.tree import export_graphviz\n",
|
||
"from sklearn.preprocessing import StandardScaler, OneHotEncoder\n",
|
||
"from sklearn.compose import ColumnTransformer\n",
|
||
"from IPython.display import Image \n",
|
||
"from pydot import graph_from_dot_data\n",
|
||
"import os\n",
|
||
"\n",
|
||
"# Where to save the figures and data files\n",
|
||
"PROJECT_ROOT_DIR = \"Results\"\n",
|
||
"FIGURE_ID = \"Results/FigureFiles\"\n",
|
||
"DATA_ID = \"DataFiles/\"\n",
|
||
"\n",
|
||
"if not os.path.exists(PROJECT_ROOT_DIR):\n",
|
||
" os.mkdir(PROJECT_ROOT_DIR)\n",
|
||
"\n",
|
||
"if not os.path.exists(FIGURE_ID):\n",
|
||
" os.makedirs(FIGURE_ID)\n",
|
||
"\n",
|
||
"if not os.path.exists(DATA_ID):\n",
|
||
" os.makedirs(DATA_ID)\n",
|
||
"\n",
|
||
"def image_path(fig_id):\n",
|
||
" return os.path.join(FIGURE_ID, fig_id)\n",
|
||
"\n",
|
||
"def data_path(dat_id):\n",
|
||
" return os.path.join(DATA_ID, dat_id)\n",
|
||
"\n",
|
||
"def save_fig(fig_id):\n",
|
||
" plt.savefig(image_path(fig_id) + \".png\", format='png')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1a47c3dc",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Simple Voting Example, head or tail"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"id": "05709037",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuEAAAFcCAYAAABm/GCkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD7dklEQVR4nOyddZxU1fvH33dyZ7uTZamlu1FiAVHAFhQFRUwMLFQUFcUO7EKxEAxQEAOb7u6GhWWX7c7pub8/7u7Mzs7MBuEP/Z7367Uw99Q9d/Jzn/Oc55FkWZYRCAQCgUAgEAgE/xiq/+8JCAQCgUAgEAgE/2sIES4QCAQCgUAgEPzDCBEuEAgEAoFAIBD8wwgRLhAIBAKBQCAQ/MMIES4QCAQCgUAgEPzDCBEuEAgEAoFAIBD8wwgRLhAIBAKBQCAQ/MMIES4QCAQCgUAgEPzDCBEuEAgEAoFAIBD8wwgRLhAIBAKBQCAQ/MOclyLcbDbz2GOPER8fj8FgoF+/fvz9998N9ps5cyaSJHn8+fn5ebQtLS1l2rRpJCcnYzAYSEpK4rbbbiM9Pf1cXJJAIBAIBAKBQOBE8/89AW9MmjSJRYsW8eCDD5KcnMzcuXMZPXo0K1euZODAgQ32nz17NoGBgc5jtVrtVu9wOBgxYgQHDhzgnnvuoW3bthw7dowPP/yQP//8k4MHDxIUFHTWr0sgEAgEAoFAIIDzUIRv2bKFBQsWMGvWLB555BEAJk6cSOfOnZk2bRobNmxocIyxY8cSGRnps37Tpk1s3bqV999/n3vvvddZ3q5dO2699VaWLVvG1VdffeYXIxAIBAKBQCAQeOG8c0dZtGgRarWaO++801nm5+fHbbfdxsaNG8nIyGhwDFmWKSsrQ5Zlr/VlZWUAxMTEuJXHxcUBYDAYTnf6AoFAIBAIBAJBg5x3lvCdO3fStm1bgoOD3cr79u0LwK5du0hMTKx3jFatWlFRUUFAQABXXXUVb7zxhpvg7t27NwEBAcyYMYPw8HDatWvHsWPHmDZtGn369OGiiy7yObbZbMZsNjuPHQ4HRUVFREREIEnS6VyyQCAQCAQCgeAcIssy5eXlxMfHo1KdHzbo806EZ2dnOy3Stakpy8rK8tk3LCyMKVOmMGDAAPR6PWvXruWDDz5gy5YtbNu2zSnsIyMjWbhwIXfccQfDhw939r/kkktYtGgRGo3vp+Xll1/m2WefPd3LEwgEAoFAIBD8P5GRkUGzZs3+v6cBnIci3Gg0otfrPcprIpwYjUaffR944AG34zFjxtC3b18mTJjAhx9+yOOPP+6si4qKokePHkyZMoVOnTqxa9cuXnvtNW655Ra+//57n+eYPn06U6dOdR6XlpbSvHlzPn56BAX7Q9EF3+TWvseIRPpc2sqtbM6Dq52Px07rRVisP+/fOg6AzsMuYejE232eXyAQCAQCgUDQNMrKykhMTDyvAm+cdyLcYDC4uXvUYDKZnPVNYfz48Tz88MMsW7bMKcKPHz/O0KFDmTdvHmPGjAHgyiuvpEWLFkyaNInff/+dUaNGeR1Pr9d7vUkw+Gnx02rR6wLc22sC3Fxr8tPLMdRqs/evIxzd+CZ+Wi0Agf4GD1ccgUAgEAgEAsGZcz65Dp8fTjG1iIuLIzs726O8piw+Pr7JYyYmJlJUVOQ8njt3LiaTicsuu8yt3RVXXAHA+vXrm3wOX9R9rfesOuV2nHX4N2SHo1b78+4lEQgEAoFAIBCcZc47xde9e3eOHDnijGBSw+bNm531TUGWZdLS0oiKinKW5ebmIssydrvdra3VagXAZrOdxsx9UFeF14nY4qh7rvPnBk0gEAgEAoFAcI4470T42LFjsdvtzJkzx1lmNpv54osv6NevnzMySnp6OocOHXLrm5+f7zHe7Nmzyc/PZ+TIkc6ytm3bIssy3333nVvbb7/9FoAePXqcteupK7pNle6i22EvcjsWlnCBQCAQCASC/z7nnU94v379uPbaa5k+fTp5eXm0adOGL7/8krS0ND777DNnu4kTJ7J69Wq3WOBJSUmMGzeOLl264Ofnx7p161iwYAHdu3dn8uTJznaTJk3i9ddfZ/LkyezcuZNOnTqxY8cOPv30Uzp16nRWE/XUjVRut7pb31Uqd9P3eeSqJBAIBAKBQCA4R5x3Ihxg3rx5zJgxg/nz51NcXEzXrl1ZunQpgwcPrrffhAkT2LBhA4sXL8ZkMpGUlMS0adN48skn8ff3d7aLiIhg27ZtPP300/zyyy989NFHREREcOutt/LSSy+h0+maPmkJPCW396LaOOzuDXzkFxIIBAKBQCAQ/Ic4L0W4n58fs2bNYtasWT7brFq1yqPsk08+afQ5EhIS3Czr54q6WTvrim5TlXskmNqbNAUCgUAgEAgE/02EA/K5po5l226rUyDXcU9Ri5dEIBAIBAKB4L+OUHznmLreJQ67y9Ity1Ykyd31Revnj0AgEAgEAoHgv40Q4ecah7sMt9dyR7GUL0J2lLg3t5/F8IgCgUAgEAgEgvMSIcLPMUGR7hk+o5oFOh/Lds+kRA67nW2//MCfH73j4U8uEAgEAoFAIPhvcF5uzPy34k0ya7Tu9zkh0QYvrVw47HZWf/U5AB0HDyOxY5ezNT2BQCAQCAQCwXmCsISfY3xFR4lICPDavrzAlXDIajadu4kJBAKBQCAQCP7fECL8LCEBkuzpzy3XiThYI8L1/lqv4xRkpNUaU2TuEQgEAoFAIPgvIkT42aSu4vaCo3qjZl03lRosRqPrQKTPFAgEAoFAIPhPIkT4OebY9jw2/ZTqdEupEeFqHyLcVFHufCxVi3C7zUpZQZ6zvDgni++ee4K0PTvP1bQFAoFAIBAIBOcQIcLPIhKelvCc46Vs//0k6fuLAJDt9Ytwu83l0iJJSpuFz07nk3tvJevIQQB+f/8NMvbvYfGLMxodQcVmsbB/9XL+nvM+n95/O1WlJY2+LoFAIBAIBALB2UWI8LOIZDf6rKsqU9LT1/iEq9QNj2e3WwHIPnIIgH2rlgHumzcXPPNYo4T4hkXf8MeHb7Fn+R+U5uaw/dcfG56AQCAQCAQCgeCcIET4WUVmeZv5PuoU15Iad5S66erjktt59FjyyrP89v4bzuPCUxmAYtWuIevwAWwWc4Mz2/rTIrdjq7nhPgKBQCAQCASCc4MQ4WeRxmyjdIpwyd11pXWvfl7bH1y70vk46/ABAEyVFW5trKb6Qxmaqyo9yvLSUhucq0AgEAgEAoHg3CBE+FlErvWvzzbV7ihanbtkD46KbtQ5irMzPcrcIqrUPZ8se3U9yTx0oFHnEwgEAoFAIBCcfUTGzLOMLHkX4TXRBh12xQLuH+weJ1ylbtxL8fmDkz3KLCbfInzJq89yYue2Ro0tEAgEAoFAIPhnEJbws4Ts/N+HJbxGhFe7o0h13FFU6tN/KSzGKu9zkmUhwAUCgUAgEAjOQ4QI/4epiY4iU1eEn/6ihC+f8IbS3tcOhygQCAQCgUAg+OcQIvwsE15e//ZMuWZjJu7RUdTqRsQs9IG3jZcAlirvFvIa9iz7HdnRcJZPgUAgEAgEAsHZRYjws4jGAVduS/RaVyPNayzhdRP7qDSnbwk3+xDb5jpuKm369OeB+T84j1d88TEf3jGBoqxTp31ugUAgEAgEAkHTESL8LKHxr0IXbsbHvkyQJEpyqyjKqbZayy4R3qL7SFRnYAlfOfdjr+VHN613O27TZwAanc6tzFRRzhcP3XXa5xYIBAKBQCAQNJ3zUoSbzWYee+wx4uPjMRgM9OvXj7///rvBfjNnzkSSJI8/Pz8/r+1zc3OZPHkyCQkJ+Pn50aJFC2677bbTmnNAyzRaj08Hf++RSuw2B18/s4mKIiVJjlzjjiIF0qrXFfWGGWyIur7dVouZ/auXs/67r9zKOw4edtrnEAgEAoFAIBCcPc7LEIWTJk1i0aJFPPjggyQnJzN37lxGjx7NypUrGThwYIP9Z8+eTWBgoPPYm791RkYGF154IQB33XUXCQkJZGVlsWXLljOauyq03KNMlmUKMk4gy1YkSQlNKFETJUWDw+GgrFYq+hr0/gE+/b0NwSE47DbMlZ71676dx47ffvIolyTf/urzpt3HFQ8/SWhMrM82AoFAIBAIBIKzw3knwrds2cKCBQuYNWsWjzzyCAATJ06kc+fOTJs2jQ0bNjQ4xtixY4mMjKy3zeTJk9FoNGzdupWIiIizMndfOKzH2LrkFyR1JPrgiQDIzrT1KmWzZp01ibs/+RqVWs0Ht17vdUxjWSmXT53OL2++DMBfH7/LiDumIKlUHN6wxqP9oPGT6p1j/skTLH37FW58+e2mXJpAIBAIBAKB4DQ479xRFi1ahFqt5s4773SW+fn5cdttt7Fx40YyMjIaHEOWZcrKypBl7w7ahw4d4vfff+fRRx8lIiICk8mE1Wo9S1fgaW22W5TslLK9oNYca9xRVNjtMkldu7v10Wi1+AUEUh/+wSHOx3tX/MWJ3durx3a/7qsfe4a+V451Hg+/9W6v4+UeP1bv+QQCgUAgEAgEZ4fzToTv3LmTtm3bEhwc7Fbet29fAHbt2tXgGK1atSIkJISgoCBuvPFGcnNz3eqXLVsGQExMDMOHD8dgMGAwGBg1ahRpaWn1jm02mykrK3P7q41cf4RCJxWF2Up7ewGyXSYsNt6tXmfw9+gzYOwNbsd1RXpNSEJHnbCDiR27uB0ndOjkc177Vy/n4NqVDcxeIBAIBAKBQHAmnHciPDs7m7i4OI/ymrKsrCyffcPCwpgyZQoff/wxixYt4vbbb2fhwoUMGjTITSwfPXoUgDvvvBOdTsfChQt55ZVXWLduHRdddBFV9cTXfvnllwkJCXH+JSbWDUnYOBW+68+vnY9rsmje8PzrHu2Co6IB6H7JpVxw7QS3Ov+QULfj4pwsHA47pnL3GwONXu92HNW8BSPuvI+Lbr/H43x/fPgWv73/BuWFBR51AoFAIBAIBIKzw3nnE240GtHXEY2AM8KJsZ4oIg888IDb8ZgxY+jbty8TJkzgww8/5PHHHwegoqICgNjYWH799VdUKuVepFmzZtxwww1888033H777V7PMX36dKZOneo8LisrcxPiquBKqGjMlbqoEeHxbdsz7tlXCY12bY687Z1PyE9PIzqppUc/v8Agt+MN333Nhu++9mjnbUNm1+GXAHBs22bSdm33qD+5Zyedh45o2oUIBAKBQCAQCBrFeWcJNxgMmM1mj3JTdWp2g8HQpPHGjx9PbGys0wWl9hjXXXedU4ADXHvttWg0mno3f+r1eoKDg93+auM32ltfl4+2w17oWWt31Tdr34nAcNdGUZVaTUzL1kjV87zikScB6Hf1dWcUW7yGMdOf5c4P53qU/zXnvTMeWyAQCAQCgUDgnfPOEh4XF0dmZqZHeXa24kMdHx/vUdcQiYmJFBUVOY9rxoiJiXFrp1ariYiIoLi4uMnnaCwOSyqy2n18h8NXhh9PkvsMYMoX36H3d/cZV/vZ8Au1UJljoLZLjKHW5k1fePM/7zTkokbPSSAQCAQCgUDQNM47S3j37t05cuSIx4bHzZs3O+ubgizLpKWlERUV5Szr1asXgIfYt1gsFBQUuLU9O9QS2RJYK392q3XYGy/CAQ8BDtBh3HGSrzxJUKIrbnhYXALjX3ijwfF0XpIZybLDS0uBQCAQCAQCwdngvBPhY8eOxW63M2fOHGeZ2Wzmiy++oF+/fk7/6/T0dA4dOuTWNz/fM+HN7Nmzyc/PZ+TIkc6ylJQUoqOj+frrr51uLgBz587FbrczYsQ/6wvdFEu4LzR+SsjD2N75oFLGu+bxmY1KviOpPN8G+1ct89JSIBAIBAKBQHA2OO/cUfr168e1117L9OnTycvLo02bNnz55ZekpaXx2WefOdtNnDiR1atXu8XETkpKYty4cXTp0gU/Pz/WrVvHggUL6N69O5MnT3a20+v1zJo1i5tvvpnBgwdz0003kZ6ezjvvvMOgQYO45pprzugaEnR2DuvS0Zsi0dqCGmwvN9ESXh8B0SYSB2XTKvEpQmM9o8wIBAKBQCAQCP7/Oe9EOMC8efOYMWMG8+fPp7i4mK5du7J06VIGDx5cb78JEyawYcMGFi9ejMlkIikpiWnTpvHkk0/iX8eFY+LEieh0Ol555RUeffRRQkNDmTx5Mi+99JLXNPdNwRp8EqPmFMbADKJyBrt5o9iM6zzanw1LeG0i2pei03uuCjQFb37iAoFAIBAIBIKzw3kpwv38/Jg1axazZs3y2WbVqlUeZZ988kmTznP99ddz/fXe08KfCYWqujEK6xfZTfUJr82NL7/NtzPv8yjPN78GTMZsKcBizicoqEOTxq0b/lAgEAgEAoFAcPY473zC/wvkqosablQL+Qws4YExEl0mHfFZv25dP7ZsvYyiovVNGtdSVdlwI4FAIBAIBALBaSFE+Dmgbbu6gtfus60u6CbMVdbTPtfOXTf7rDuR9kGtdhPrHWf4rXcD0PtyxR/ebKxy87cXCAQCgUAgEJw9hAg/B0RHp7kde0vQU4OkjiTzSMlpn8tszvZZd/z4m40ep/sll/LwwqUMGHsDALLDgc1L0iSBQCAQCAQCwZkjRPg/gm+LsreU8o0lJ/eXJrV3OGwNttHq/ZAk5W1hNlad1rwEAoFAIBAIBPUjRPi/FLM5j/37H2xSn8zMr5yPZVnG4fC0dEuS5EzUY66su8FUIBAIBAKBQHA2ECL8H+Hs+1avWz+gyX3STn4EQFnZHrZuu5KVqzpiNuf6bL9g5uOnPT+BQCAQCAQCgW+ECP8nkHQNNjmTCCmNxWLJZ/OWS9m67WrKy/cDcPLkHJ/tTeVl53xOAoFAIBAIBP+LCBH+D6DSNGuwTcahxoc1tNtNvs7EkMG76+1bUXHI7dhqLWn0eQUCgUAgEAgEZwchws8xMjJSI3Ii/fJu/eIZ4Pjxt1m+ojWrVnfyWt+v329oNIE0b357o+cXEtLDoyyhvWv8zEMHGj2WQCAQCAQCgaBxCBH+j+Dd1eSyB59q0ign0t7zWXfBgNUEBiQD0LrVI4SFNc5nPD3jM4+yAWNucD5e8Mw0rNZyVv91Jan7v2vSfAUCgUAgEAgE3hEi/B/Abtnrtbx5ly5n7RwGg8vlRaXS0q2rS1wnJ/sW+0ZjukdZUGSU2/Gatd2xafaRljud5StaU1y86SzMWCAQCAQCgeB/l4b9JARniO8Nl34B/ufsrGq1nmFDjwASIJOX9welpdsa1Tc8PqHe+h07JzB8WOqZT1IgEAgEAoHgfxRhCf9/5EwS9dQmOLibj/HVSJIKSVLTu9dCJMn7PZe3eOEAcf3yaHlJhte6wrzdIq29QCAQCAQCwWkiRPg5p3FCNa5NSL31vrJddu70Lt27fd6ocwwbepjhw1IZ0H+ZW/nKVR3djo3GDLpeHUNM90JCWnhP2PPHl3ey6stPGnVegUAgEAgEAoE7QoSfa3wYu/tfMw6AsFj/6v8D6h3G4fAeljAm5lK02tAmTcnfvyV9ev/oVmaxFDgfb95yGaroVfWOYSzUs+P3n5EdjiadWyAQCAQCgUAgRPj/GxeOuwmAdv1jAXA0kKzHmwivK6SbglptcDteu66f87Hd7t36XZbuulFQ6xTxvX/NitOeg0AgEAgEAsH/KkKEn2PkBtxRVGrlJXDY67co2+3uftv9+/1JcPDpR1fx84v3KMvL+4PcvN+8tq/I8uf4780pOhoMgFpvB+Dolg2nPQeBQCAQCASC/1WECP9/RqVW/FUc9jpi3W6DinznYW1LeEzMFQQEtDmj86rV/vTs8Y1b2d5997Jv331e25dn+nPLWx9hN6uV/tUi/Pj2LWc0D4FAIBAIBIL/RYQIP+c0YAlXKSJcrivCvxgFr7eBvIOAuwhv3+65szKz0NC+jW577X1/Ex7frJYIF77gAoFAIBAIBKfLeSnCzWYzjz32GPHx8RgMBvr168fff//dYL+ZM2ciSZLHn5+fX7391q1b52xbUFBQb9umcsHGJ+utr7GE2+uK8FPVFuY9C5X6ahFu8GuORhN0VuYmSRIXDFjTYLvk5KfQ+ytuKHaz8pbR6OxnZQ4CgUAgEAgE/4ucl8l6Jk2axKJFi3jwwQdJTk5m7ty5jB49mpUrVzJw4MAG+8+ePZvAwEDnsVqt9tnW4XBw3333ERAQQGVl5VmZf20k2T20oFrS0KfNZVhzKtHGBtTyCfdlMVdEekX5IQCMJleGS2O5hc8fXUdynxguvq3Tac3PYKg/MU9wUFeaJ97iPK7rjgLgcNhRqXw/xwKBQCAQCAQCd847Eb5lyxYWLFjArFmzeOSRRwCYOHEinTt3Ztq0aWzY0PBGwLFjxxIZGdmo882ZM4eMjAxuv/123nnnnTOauzfqSuuOoReQZGtH7ts7aPbKIKcl3C3UX+0kONUJfQ4fedpZlHO8lNAYfz5/dB0AR7fmkjKhHTq/s/tyhoT0pEP7V93Kugy9klI+Iri564bFXFWFIfDsWOcFAoFAIBAI/hc479xRFi1ahFqt5s4773SW+fn5cdttt7Fx40YyMrxncKyNLMuUlZU1mNGxqKiIp556iueee47Q0NAznbpXHNU+3wNjxtA7ciTh+ji3eq8bM1Pdw/5t/uW42/Hi17az8AX3DZGmSutpz7FNm8cBaJ54G0NTDtK583sMHrSd3r2+JyCglVvbVj1cKxF+IVoA9vz9OwUZJ5XrcAg3FYFAIBAIBIKGOO9E+M6dO2nbti3BwcFu5X37KpsId+3a1eAYrVq1IiQkhKCgIG688UZyc3O9tpsxYwaxsbFMnjz5jOftG4kQbSQJ/m1oHdSNWEMLZ03p3ydRIROqlnDYalnCyzJrdVex7dc0TCXubiMVxe4hCxc+vwWr5fQEcFLzOxg29BjJyU+gUumIiR7tOwFQrRsbfaByA7FuwTy+fOReUrdv5t2bxvDRXRN5Y9xlHN647rTmIxAIBAKBQPBf57xzR8nOziYuLs6jvKYsKyvLZ9+wsDCmTJnCgAED0Ov1rF27lg8++IAtW7awbds2N2G/Z88ePv74Y3777bd6fcbrYjabMZtdArisrKze9g6VhCR5v9cpX56OTiUxJEhDYXn1mFYjHPipVitF6FbmdMYvNJPi1MFex7KY7HwxbR13vj2k0ddSG0nykdqzDrVjk1sspYAr6c+Prz2vzLW4CIClb79CuwFLT2s+AoFAIBAIBP9lzjsRbjQa0ev1HuU1EU6MRqPPvg888IDb8ZgxY+jbty8TJkzgww8/5PHHH3fW3X///YwaNYqLL764SfN7+eWXefbZZxvdXpYkJF+56wGpOlNmhLXaEv7VWDjpaUGWVMoGT7s50KOuBqvp3LuC1I7M0u6aNAByd0ZQeCgUS5nurJ2nsvI4paXbiIsb6/MmRiAQCAQCgeDfynmnbgwGg5uluQaTyeSsbwrjx48nNjaWZcuWOcsWLlzIhg0beOONN5o8v+nTp1NaWur8a8hH3dFIC7OTugJ8zWsAqNQWAGSHtt7uFqMNm/Wf9cuO6VFIxxtSnccqjQN9iOdr2BhkWcbhsLJp8wgOHprOsdRXG+5Ui7S02Sxf0Zqysr2ndX6BQCAQCASCf4LzzhIeFxdHZmamR3l2djYA8fGe6dYbIjExkaKiIufxo48+yrXXXotOpyMtLQ2AkpISADIyMrBYLD7Po9frvVrqfSE3VYR7wT/6AKGt1yrj2esX4Z88pMT9HjaxPR0uaPpzdSYYIkwYC/1oe80J/MKUm4atf79OmXq2MqehRxu0aq9Y6Z4JND39U5LbTG/0HFKPv66cd9tVDB+W2kBrgUAgEAgEgv8fzjtLePfu3Tly5IiHr/XmzZud9U1BlmXS0tKIiopylmVkZPDNN9/QsmVL519NeMKePXsyevToM7uI2uc/QxFeaQ+jecpbzmOHvXEuHyvmHaIws+KMzt1UEi7MwT+myinAAacABzh4qH4x7XCcfoQXALM574z6CwQCgUAgEPxTnHcifOzYsdjtdubMmeMsM5vNfPHFF/Tr14/ExEQA0tPTOXTokFvf/Px8j/Fmz55Nfn4+I0eOdJYtWbLE42/cuHEAzJs3j7feestjnNOlJkRhY9i3JpMdlVdRaot1lp2ydnRrI9sbv3hRN4LK2aJlywe9lqv1DtpeddJnv+zsRfWOW1F52Gu5LDfOvWbd+gGNaicQCAQCgUDw/815547Sr18/rr32WqZPn05eXh5t2rThyy+/JC0tjc8++8zZbuLEiaxevdotFnhSUhLjxo2jS5cu+Pn5sW7dOhYsWED37t3dwhBeddVVHuetCX04atSoRif6aQw2VePvc1Z/cxi4mY3lN3Nv7NUAlLQodWsj17GED7+5A8u/POh1vLPgCeOVli2mcOLE2x7lhvAzE/1bt17ptfzAgUfp1OnNJo9nt1ehVvuf0ZwEAoFAIBAIzgXnnQgHxRo9Y8YM5s+fT3FxMV27dmXp0qUMHuw9PF8NEyZMYMOGDSxevBiTyURSUhLTpk3jySefxN//nxNjVqtLKJf4+0E90VFq08FPxQmzA5MMZoc/elUV5mbu1n2NodjtWKtX0/+qVmz60T2hz7lEkiSGD0tFlmWys79v0M2kNg6HBZXK06WmoGCFl9YKObk/+RThGafmU1CwnICAZI+6bduvpV/fXxs9N4FAIBAIBIJ/CkluKK2koF7KysoICQnhp59bEBCgWL2tVh2bNiruLZ02raMiqiUjEiY2arxSu8waYwV9275Cl7I9bOwRjc3gcscIL7Jg3HgVOysVS/llU7rRrH0YH01Z5THWqLu60Kp7lEf52WbDxqEYjeluZbIDvO3B7NvnZ4KCOnmUL1/Rut5ztGz5AP6GJKKiLkGtVsJVllccYsuWS+vtJzZnCgQCgUAgqNFrpaWlHgkh/78473zC/wtIkuu+RpZ8J+vxRohaIrb3PEo6Z7KqXUeMjhC3er3FwVHjhc5jjVaFWuN9fNtpZtD0IP8wbHgfbN7dTQb097Rid0z6hcOLWlKV78exn5s7y+0OE0eOvsD+/Q9TVrYHh8NK3fvAAf2XMWTwbreY5CdOvMP+A1M5ftxlEc/L+93rfCTJlXzJ4bA17hoFAoFAIBAI/kHOS3eU/xKOBpL11MamK6Gw1c8EN98KgDoiF0dluFub5NRKVjqincdmo6fITGgXSubhEqzm+kV4dkU2sQGx9WfLnFnrJsBuhkEPezTx1j8+uSP3fLiMN8ZdplybWYVG72D79uucbXJyfyQ+7jpsdvcoLv7+LQG4YMAa1qzt4VaXnvEZzZvfgV4fRVra+57njb8enTaMtJNKVJay8t2EhvTyfX0CgUAgEAgE/w8IS/g5RrGEN06Ep6Y8SElzd6ty+SmXgGxub4/WLhOsznGN7/D0JvIPUnyubRaHz3MtOrKIixdfzCtbXvE9IUed/gd/qW/6TgyG5h5lxgI/r22zsr8jL+8353Gb1o85H2u1wW7W8Bp277nd57lbtXyQVq1cNwrbt1/H+g1DKCnZ1qi5CwQCgUAgEPwTCBF+DtBoXPGuHSoJ6QyeZtmhLFYUHRlOctytAPQKWOysj2mp+DVddl83ACISAp3uKVXlFnzx7MZnAfjm0De+T24qcT/O2tmoOdd2T/ELVER0UEJVo/o2b36H23Hb5BkebcrL92G1lniUA+h0kR43PSbTKbbvGNeo8wsEAoFAIBD8EwgRfo5piiXcG5JaEfSyXQdWk1KGy0IdGKZYmJM6RTDh2f6MfawXhzYplvIdf5z08LduEsbihttU06fPT4BEUtJdbtc7+r5Hquff8Bjt2j3v8VxFRAzx2nbNWtcKQcqQvfj7tyYubmy9z7UsO3yKd4FAIBAIBIJ/krPiE15ZWUlZWRnBwcEEBAScjSH/M8iA6gzudSSVIsLDIzRgM1aP6V1ohsZ4hmE8sjmHdv3j6j3H6ozVDEl0F7vrMtcRVpqLWxyTeHf/7NoEB3UmZche1GqDW3mLbj0ByNkRSVyfgnrnYTF7JlvS6SLp2OE1ZFkmKKgjW7Ze7tHm+PFMunX90RmGMisri/CwGRQVP+/WbsVKJYxhl84fsnffPW51nTq+RUzM5ZSX70WjCcHfP6neuQoEAoFAIBCcCactwi0WC7NmzWLu3LkcP+6KUd2qVStuueUWHnnkEXS6xqVY/y+jtcs4fIjmsHHtKF7oPUtkDZK6euOlXeO0hMdoj7oa2G2g9v0yLpt7kD0rT3HRLR0Ji/V+g/T1wa8ZkjgEm8NGpbWSUnMpdy+7G4C9gAOYExpM16KDXODrRLLsIcDBtWnTVKx3lpWeDKTzwGuJjb3KLUFPZOQwr0PHxY3xeX2yLPH11187jx977DFnttUOHe4nMupdjz51BTjA/gMPsf/AQ87joMBOdOv2GXr9uQ/xKBAIBAKB4H+P0zLRGo1GUlJSePrppzl58iTJyckMHjyYtm3bcvLkSWbMmEFKSgpGo/Fsz/dfh0qWvbpI6FuHENAjGl3L+mNV1ljC421bnJbwCG06Y8IfZ2LUHXD0T48+SV0i3I7zTpaz4pMtYFaikORU5rjVb8zeyLHiY/SY34OBCwby8Z6PnXVb/PR8HhLMB2GhTI6LJiNnF/LbXeDFOCVyyswQyD0Ar7eF9e94vYYHvlrCgFFPk70lilPrYjjxRzOS2zxJcFBnt3ZBdY690aH9q27HBw+4J3AqKHBZ2w8eLKZ7ty0NjumN8or9HDz0+Gn1FQgEAoFAIGiI0xLhr776Kps2beK6664jNTWVQ4cOsXLlSg4ePMjx48cZN24cmzZt4rXXXjvb8/3XYTcE0zXM06858vYuAERc377e/iFJiogMtBx2WsIBYnWHCVIXwILxMPcytz7t+sZ6jJOTKcPLCSDLfH/ke4/6q3++2vn459SfnY8/CQ3mnfBQ5/HoP29iia0QrLU2Ws4eAJV58PfTitCvKoK8g85qjVZLpyEXkbszkoL94YCEuaoSUJLp9Ov7GxcMWNUo3/m6VvHCwmZux5999pnb8XvvvdfgmL4oLFxFefmB0+4vEAgEAoFA4IvTEuELFy6kZ8+efPvttyQmJrrVNWvWjG+++YZevXqxYMGCszLJfzPRLUYRoot0K9PGBbgEp7pxmzazY/zAZvJembbW7TC+bajXZg5ZhZy6gjl75jTqnACbDJ4uJq+Hh/nusOVjeK0lfNgfZg8EmytCy/3zXVFdjGWlzseBge0wGNzfR/Wxa+dIDhwYzNo1N9GYt/CpUx08yqKjL6V/vz9JGbKX6GjfWTe3bL2cjIy52GzlZ7bJVSAQCAQCgaAWpyXC09LSuPjii+ttc9FFF5GWlnY6w/9HUARbXQEOIGldT7ukapwId6gAY0mj2gaE6L2WH7Mn03X9g40aoz7K1SreCAslTePFF335c67HuXvhBZdPtVanJzRG2SRaVVpat2ejOHnyJOXlURQWuDZO1r0RrEvaiZ5ux3p9LJ06ziIgoA1qtT9dOrv8xpOTnyI42H0D6pGjz7N6TXcOHXritOYsEAgEAoFAUJfTEuH+/v7k53tGsqhNfn6+M1rF/zLebKeO2pks1Y17CfyNdtj1VaPP22VoM4+ypZpOXlqeHnNDg7k8Mb7J/QwhSgbOqrKSJvfNzc1l7ty5HuWTJk3imWeeoX///s6yKVOmOB/Lsopjx/pQWhrNxg3X0a/vX6hU7jcqffv8QqeOb9E88RZ69/rO6/mzsr/jZPonmExZ9VrFq6qqyMjIaOLVCQQCgUAg+F/itER4//79WbBgAfv37/daf+DAARYuXMiAAQPOaHL/bhSRJkueYi2gd4zzcW1LuNrimR2yhmZZPlxRfDB4XFsCw9yF5gm97wya55RagtU/OBSAPcs9N5R6IzU1laKiIhwOB7Nnz/baRq1WI0kSI0eOZObMmcycOZPIyEiGDHH54mdntWfP7kuw2fS8+OIsHHWygQYFdSQ29goAJElFypB9BAZ29DjXsWOvsH7DILZs8e3C8tprr/HZZ5/x999/s2zZMsrLyxt1rQKBQCAQCP53OC0R/sQTT2AymejTpw/33XcfixYtYu3atSxatIgpU6bQp08fzGYz06dPP9vz/U+ga+6KiCLXegVkyeazT2CF7zpAiVJSB6vRXbi3P3kzg45fS4BZaTuqotJZNzj1Ou7a+A7BRsV9Ru3QcPn+e+l5qn63o0ax2rVBN/voIQDSdm3HZnHP6LmjrJLYlbvYWqrMKzU1lfnz5/Puu++yZMkSr0PffPPNPk87dOhQ7r77bpKSkrjrrrvc6p57zuU2U1FRgSzLlJaWsmjRIqqqqlCrDfTr+wsDL9zkdeyKysOcOvW1R3llpes5Xb9+PevWreONN97g119/ZebMmeTl5fmcr0AgEAgEgv8dTkuEX3jhhXzzzTfodDo++OADxo0bR0pKCuPGjePDDz9Ep9PxzTffcOGFF57t+f5rqNl36c1pocb6fezYMV6b9RonVIowk1W+hbbe2vRNgWaTp795p9yB3LTjOS7ffy935CqW97jS1nTMU16r8buUNPFtCnqRUNaWvhm+Lb4ABY1xp1n1kvNhVWmJ8/Ffj7pihMuyzOjtSvzzy3co///666/O+r179zofG2ptFm3ZsmW9p46JieGWW24hNtYzYsyKZav5448/eP3113n22Wd566232Ldvn1tUH70+iuHDUnGUej4Ph488TU76PreyWbNmeZ3H1q1bAfjwww/rna9AIBAIBIL/DU47Wc+1117LyJEj+emnn9i5c6czY2aPHj248sorCQry7Vrxv0G1O4pXGa7w1VeKj/dy3V5uNw13inCVJQCHrtJnv0bxxxPART6rE8ra8lfZW8xWT2N39v1udRq7jqGp453H/pZgrolvx/bM9VxZUcErEeHOuqHNm7F94NvoVDr4slaoxN63wTb3cIGyQ+bC629m/YIvATiYo+biuWPRTFpEmc09r32/jQcYVGkk0MvcH3vssQYu3jtPP/20mwV8zbqVPtuW5hvRGdQYAnVUFJs48ueVaPxSQGWnzWWu+OH7j13JR5/fREBAgNvNQX1s27aN3r17n9Y1CAQCgUAg+G9wRmnrg4KCuPHGG7nxxhvP1nz+M0iyIsO9SXBNtOeGVRmH0glote5Vjg2b4tHGyeBHIf8wHPzZvfylZpB8EYx4HjZ9QH0ivIbd2XViuQdv4OpDE92KUmKG8Wj3q1FtVUIMDq0yckligrO+17oHuaXTJKbW7jToYdjzHVgUf+iyvHLmP70VWXYPbzh77ShSYvdTmexuqT5psmBt35Mrdq9v8Boai0qlIipnMPmxaxpsO3/GeiRU3PTiAOY/uRGQsJlCATj213TaXPyyW/vKyko3V5Rx48aRkJDAm2++6TH20qVLMRgMdOp09jbKCgQCgUAg+HdxWu4ogoZx7bd0l+HxMweg0qs92td2RZFkDfoyVwi+nrtK3BtXFcF18xRrc20s5bB/CWTtOP2Jl11ARFkXt6JL4kehSnCF+YuvY7UG+GL/XHgiCzR+0O0GCEmAezY469d8rbhtSJIKSe3amGqpWMKaH3N5YflRjzGzQqPIDnHP/nnllVd6tGsqwcWeGy7rUhGszEcR4C6Mhhyy/U7hcLg+OhqN2aN/TEwMwcG+s6F+//33/PzzzxQXF/Pyyy/zxx9/sGPHDioqKhp7GYJ/GFl2YLWW/H9PQyAQCAT/ERplCZ83bx4AV199NUFBQc7jxjBx4sSGG/0HkVBUeF1LuMrP+1MeqHWFH5QcGgLzu2IOPgmAzT6PQssuInTVVuv4HorT+ehZHi4fgDM9/dmimS7Jo2xQwiDWZronCUIXAE/luo5Dm7uqyo8CSthEXdB4zCVvOevs1uNsS/bunrE/viWJ6UewhUQwduxYOneuk9pelsFcDn6+BW9d9OZI1DYDdo3RZxuTfy4m/1wicwYi1bpXrQg5AsD6dRPo228Rer2RgIASgkNyKSxoTlVVqHLpocr/999/P+++q8Qhv/322/n000+dY+3YsYMdO5Qbpk2bXBtAZ86c2ehrEZw+druZVavdb8gGD9qBVuu5ydnhsLBylZL0qVu3z4iMSHGOcfyEEtpSqw1DpdKd83mfS77LKeL+g+kAZKZ0Q92ILLYCgUAgOD0aJcInTZqEJEn079+foKAg53F9yLKMJEn/syJcJTlAVtXrE16bQN0SoNrqK6uRaz295sJgYDCyPAtJkqHD5dUn8bSoA5CuWG97B3zHtsrr8Pe3U1Xlo20jsJVXT+audfDFaJj4E2EnFnu0q3nNvWHJzqRGhNdtY678CfAuwo9FN8OQdYKunTo4BXh5UQE7f/+FbiNGE7LzXdj4vqtD38kw4B4Ia+ExVlmBS3Qn2zpSUOCPRV8ASJSFeU9PXxV4koAKZfOnoW8apLvqTKZA9HojXbv9BUCLFrsJDfmQjh0Ho1Ipwj08PNxNVD/22GO8+uqrXs9Vw/Hjx2nVqlW9bQRnzvYd13mUrVnbk/79/sLfvxUVlYcJ8G9Nael2duyc4Gyze7eyAhUY2J6KCiXaT3r6JwAMHrQdrTYUh8MCyB7x6Oujvs/PuaDEasNPpcJPreKLzAKmHznlVp+y5RBr+3lmmxUIBALB2aFRIvzzzz9HkiTi4pRsh1988cU5nZTZbObpp59m/vz5FBcX07VrV1544QVGjBhRb7+ZM2fy7LPPepTr9XpMJle4voyMDD7//HN+/fVXjh49ilqtpnPnzjz11FNcdFHDftSNISziFDn5LRrd3lHz4+tQO63onmgBC2gb2AC4cz4AfQMX0MpvIyXt7+ev9fVHEdHrwezpVQHAyvmHWL/oGHe8NRimK0lobgsM5edUd5/0N7a9Qf/4/lwQfwEqyWU9LrI146Tcz62tSpuMw6q4fFQZApzlHY7sIj8iloIIdx/xPX//RveLb2LzksMc3jATgK0/L+bhDnWs8Vs+Vv4ePQ4BNTc1MmyZw/wvkp3NrtNPpCIyAgcavi5wRSyZfOu9fPz5B87jqsAMAipa0vNmA3/+WUuBAyEhngmrSkrvwc/viPPYbM6nrGw3AQHJ6PWxGAwGnnjiCV566SWPvjXMmzePu+++m5iYGJ9tBKfPwYPTycr2npAJYNPmxoXlrBHgtVmztpfbsU4XSbeunxAc3LXesdZ+M5ctPy3yWX/r2x8THBWNWqNt1NzqIssyM45l8umpAo+6jzomeQhwgKNVZmJX7qK5n46+IQEsyi1m74WdiNI1fg6yLLM0v5Q79qcBsLl/B5IMjb8xEQgEgv8yjbaE16a+2Mxng0mTJrFo0SIefPBBkpOTmTt3LqNHj2blypUMHDiwwf6zZ88mMNAVV0OtdrcC//TTT7z66qtcddVV3HzzzdhsNubNm8eIESP4/PPPueWWW874GtRSTXQUF6oA3093TbxwtUaHoVsUVHpa0GW0SFhAXWvJe2ap1xjhAJIkE6VNg6RYaGB/43VPD/Dwf66NxegePvHggnLu2vkOy9vMp3Vhd1oUd+GXkg/4MlSJfLLqoo2sX3SUIap2fFvwilvf4NLjlAZfirnkbQCKQl2p7S9dsQibSs3bd7pupqwaLVqblXnTbkcfPN5tLItDhU7lJQnRrFbKcwOQvpGSX94CXGJbJTkI1igiukfAEnbmXM1NLw4gOMLzBic/dg1/1sktNG7cOPbsXUVkpGdmzBUr25KQcCPFR4ZSFeDut9+8+R20SLqHmTNnsmXLFlJTUxk7diwnTpzgm2++cbabPXs2AwYMYMSIEU6ruqBxOBw2qqqOExCQjCRJHDz0JFlZC4iIGEJh4WqP9gMv3IheH83yFa3P+lwslgK2bruawIB29OnzMxZLPnp9NCtWtgWgPNOfoIQqiAWNfxvsZjWy3fP1/vzByc7HUxf80mSLeeLq3dh8LMrddeCk2/GkhEjmZrrEerrJQrpJienfZf1+Dg3sTKi2/p8Om0PGIsu0WrPHrbzfpoOMjQnj/Y6eLm4CgUDwv8ZpRUdZs2YNLVq0oHnz5j7bZGRkcOLECQYPHtyksbds2cKCBQuYNWsWjzzyCKD4lXfu3Jlp06axYcOGBkaAsWPHEhkZ6bN+6NChpKenu7W566676N69O08//fRZEeE1P5G13VFUgb79RWss4ZJKB7JMcPYFFLVaiqHMZb2VqbZA1f0BfmA3vNPN59hRF14M36z1WQ94FZ91qSqz4B+sXEPazkIAhh+7yVl/+cF7+WjAAwSZwlnw/BYAvsJdgLdOXULzjOWsTHkfbcBlnPLbxsIrXEJVAiwt2nPHmp/4ZLCyCbPCPwgkifT4lnQ4+iW1n8Vthc24IMrdQl0XOf+Im7W7LhcEzeOCLicgYikAzzzzDCUlJbzzzjs++3To0IE2yX+yZo33TZ6ZmV9BwFce5enpn5Ce/gnDh6XSt29f+vbtC0Dbtm0ZNWoUv//+u7Ptxo0b2bhxIyNGjPifjrnfEEbjKfbsuZMuXT5g4ybXSlZISE86dXybrKwFAF4FOIBeHw1AypD9rFrtO2JNnz4/ERzUmYqKI2zeMgqACwasxGBojizLrFjZxmffisrDrFzVzqM8KKHK+bjzTccA2PVxe3RBVqyVGmSHpyAvzDhJZPMWANhs5aSd/Jiw0L6Eh1+Iw2FFktSoVC5r9fricp8CvDZjY8J4ITmBUK2GcbHhjNp+xGu79uv2efiLLy8sY15WAe93SMLikOm0fp/XvgCLcotZlFsMwLp+7fFTqbhw80HebJfImNhwn/0EAoHgv8ZpifChQ4fyzDPP8PTTT/tsM2/ePJ5++mnsds9IGvWxaNEi1Go1d955p7PMz8+P2267jSeeeIKMjAwSExPrHUOWZcrKyggKCvJqMfIWGk6v1zN69GjefPNNysvLzzjOueu0tX796vyeGgwGjEbFT7nGB1yl0mLcW4Bejqf1ynfR+oUhozyHOeY5JPh5+rF68392Q+36QT6ZsJPX7M+RZ23F94VvuDWLbhFMXlqZ87j9BXEc2pDtPP7lvV0MGteWg+uzfJ4qvDKO6/Y87rM+LmcjrX/5CcuYmygKa89LMx/0aOPQG1DLMsFVFZT5B7K7Yx+2dh8EwF9DruKBT59FZ7MCsLEgidj4LFpN/APmXQHWKvfBZJmsxXOAF5xF4yPv9ZxY2lrFbUWSkCSJkBDvqwt+fn7OmzStRo9K5YfDYfLatj5stnI0Gvf3WL9+/cjKymL37t1u5X///TerV6/miSeeaPJ5/o3k5y/j8JFnuGDAalSq+r+izOZcNmwcAuAmwAFKS3ewYaN3I0Bis0nEx19HYKBLGKvVfgwflkp6xhdkZy+mbx/vFufAwLYMH5bqViZJEsOHpVJYuIZ9+x9kQP+/sNvNPs9fH90nu7u55G0YTNbePGpu7X944yFaX+luYT55crbbcXT0aLp0fo9HDmXwVXahs/z3Xm3JMVu4ZV8aKmBCfATzswp5slUc9yW53J96BPuTM7Q7RVYbHdd5CuqEVbsZFRnC7wWlbuXJa/d6tAW4LSGS73OLKLO5r1oN3Oy61nsPpnPvQdcN9Z4LOhGtPz33G4FAIPg3cFoiXJYbNqs4HI7T2mS0c+dO2rZt6xHercZiuGvXrgZFeKtWraioqCAgIICrrrqKN954o1H+tTk5Ofj7++Pv7xnHuwaz2Yy5lvN0WVmZz7bg7o5i0/t+3moMXpKkdXbSWIORra6bGBl/GOdpXa2XS5R41qogO45yNdpkM1xXRHRlAYEvHaOi2MyNz/cH4IoHupOXVoYkgSFIR3h8gJsIL8ioYMnr9Yc/rE+A99n2Mp1W/oEmMhK9pZS43M1u9cHlJdj8XcK0zF9xKaoR4DX8fPENjP3NFaFnUnAS7+q1bM75FpvVwVVhT5Gg369EiTnyB8fN7v7oYREaKAX63Q2ba4mX7F1K5BlZRpWzm2d4i2d5yFkdTjH3P/QC6F1zTBmyl6LiDWxdFETG0f20GjXD67VLkg5ZtjiPS0t3ERExyKPd5Zdf7iHCASwWCzNnzuSOO+4gISHBo/58prBwLanHX6db10+RJBUaTYhXcX0i7QOOH3fFVV+5qh1DUw66RRyx202Yzbn4+ydhNKazYePQJs9n8KCdaLW+o+k0T7yF5om3NOp7ri4REYMZMtj1GRk29BhL352Jfxffn9tQ/9GUVP3msz76gjVEX+D7nBu5kK30pzlpqHBwBUvIy/uN61cksUpy3Zi83TaaJPtuVFmfc2rQ22g0yl6MWe18f5+GazXkDO3uPI5ducv5uK4A98Z1sWG83b45KknixbbN2F1exSXbvFvY69J1w35SB3UhQHP6m8plWcbskPFrTGZfgUAg+Ic5o2Q99XH06FGf1sT6yM7Odm4ArU1NWVaWbytsWFgYU6ZMYcCAAej1etauXcsHH3zAli1b2LZtW71xm48dO8YPP/zAtdde6+FDXpuXX37Z6+bPusgoFh+zZHWWqQa7L7XW/pGXq29YVCot6hA99lLvuyQLNrcivIUNlaERL1270UqkEEBzXQYLNi/mgsSeSlSVoBhuftn9xkRv0JDYwX2OVz/Ss0Hh3RjaHfmWoIpTaOpxE0rKz8SY5LlkX5cTzdsiqWOR7TkAXLkunt/kTwi2XIMkSfxY/AJ3x4xBfikJFTb2VC1x9r39zUHgX8taN/QJeKVahKSt58eTf3F064fcV1yKHzCFL3gfxfI9hbnw1hJ4XLHWvTFOyRDa7+pxjLzzJipL2/Pj23EYEj8lpIUr5OCxn2cx4ZlLCQzTs3JVBxwOC4cPfMzOr61cdEtH2vVzbULVaDQ88cQTrP19B2t3/uFx7Z988sm/KoShLDvYtXsSAOvW9/faxmBogdGY5rUuNfV1kpOVFYDjx9/mRNp7AERFXUJ+/p9e+3Ts+AYqScO+/Q84y7p2nUN5+QFatrgHSXL/fFtMRoqzMolppbiT2CwW3rnpGmf9uGdfRa3WEJfsem/abTbennAVAA/M/wGNzrur2ZvXV0cy2uAZZcTdt/s9co0VdNukuKQMllcwmQ88+tRlOq+TLimbrjejKPX18mCCKOOg5ArnOV6eS9ThX9hZfbx6TVcG9F/Oxk3DCQ3tR7t2zxIYkFx3eA8yU7qRsMrzJrEuBpXE8cFdPQwx3YIUC/uaonKePpbJoUplFenJVnG8eDzbY5zWa/dyYnBXDNUi2iHLZJqtBKtVhNTjl76vvIqLfIj9uxKj+ChD2Q+SPqQrWkli5PYj7C43Nnnj6T/N0UoT2WYrg8P/1zNSCwT/DRotwm+99Va34x9//JG0tDSPdna7nYyMDNasWcOoUaOaPCGj0Yhe77l73s/Pz1nviwceeMDteMyYMfTt25cJEybw4Ycf8vjj3q20VVVVXHvttRgMBl555RWvbWqYPn06U6e6ckOWlZV5tczbJMWCvV57mA726tB8/rWebll2i9hiq87uI0k6NBF+ThGujQvAmu3KxGg6VETWsxtp9oqnFbU2vwT4c0BVRtGaxxjbdixGdQV5QekEaOvvV5f4NqFNal+X4zEavk4JBu5lf8I07A47ZruZcj/wN0uoHA4c1RsP+59yX+IfsreS1V0CvIwK+uDxmIpdVlP9+pOYeQu/MOW1mZ27GFk2YzNtRaM3IqkUn3e9f50f2FrxxRdtfIlnIyMgJJh5IcHsPZFOJCUMaXWER2yHCSkPIcAhM6bgMHmHc5z9Ni9ZyMDrbyIgRM+EZ4Zitw9h0dufYqospyKrBwBfTl9Pj4ub4whVrOFG60bgVpZ9cYC2fZWboZ1/p5PYPpyIhAAO/V5FJIOwakspjXB3PThTjMZM9Pqosx7T2mIpIj3jM06e/AiAzp3epbzCe+hH9/mk+axLz/iM2Nir2bL1MrfyugI8ZcgBLJY8JEmDn59ywx5o6Mn8p26kMtefXbzF/fMWeQhwgK+mP0RxlhId5KFvfnIT4AALn3nM+bj35ddwfMdWijJdG3Lrtgdo0b0X2Uc9o6cAjLznIToNGQ5AjtlK9w37PdqskYYRFXUFl+Vdhg6rR721Us2kQO8RXk5J7nt1HpFfpAeeN9IbNylzKCnZzObNI53lHTu8hr9/S0JCenr0UUsSOwZ0pOdG5XV9vk0CByqNvNAmoUkW68HhQfzVuy1zMwu4IjqMWL0WvUpidVEFb3dIpMt613PScs0e3miXyMOH3TdBdw0ysKfc9++BL2oEOEDz1e6frS7r9/NEqzjuT6p/5fTvglIidBp+zC1hzql81vRtT9sAvybPxRd2Wea6XamEazW837E5OWYr9x9MZ3NppUfb7JRu/2hoS4FAcPaQ5EauudaO0CBJUr1LtZIk0adPH7766ivatPG9WckbnTt3JiYmhuXLl7uVHzhwgE6dOvHRRx8xefJkH729ExcXR6dOnVi2bJlHnd1u5+qrr+bPP//k999/Z9iwYU0au6ysjJCQEH76uQUBAa7n6OjRfuRkKxEQbjcpP3bqe5KIq9nMmrGVmZ/96mzfLnQ30V33EBjYnpY7X8ZyohQHMroof2z5nj80HiJ862fw11NgrWJGZDg/BgV69AEY3XI0rw6uP051XT64a0WT2gN02/0+WmsFV856za08Kl3ZyBlZKvPCV4GMefUjkGXuXPMzqjox1aNyBvP8OJdl/uKtx/irTxuameGWH4vcRHgN+tD7kSQNdmsa1oofnOV+YVOZ8Gx/QmO8uBpVR5fp0tJzo/EN0f34Ns/dbQYZJv3uHt1B7x+AuUr5gWzZvRfXTFdWS+o+d2HJy4jpsdBzDsDRn6ZgM3Vk/DMD+fY51zllZHSxlWRVC6lHHnnELfpPUzh+4j1OnHjbedy712JCQro7j3Nyf6Gi4jDlZXvp1u1Ttw1+dcnP/4t9+6fSs+fXHDv2CiUlW05rTnVp1/Y5tLow9u27r1HtazZMlhXk8/1zT3DJPQ+y4rPZ5Ken1dvvzg/nUlFcyDdPPnwWZl0/d3zwOYFhEUgqFSdOnGD58uWMuvxyeh/MabDvm+0SGR8fwfHj75Cv68qVR8Mafd7n5Gm0JrXhhg3Qs8e3hIX1bVIfk8mEVqutd2WxPlqt2UOV3Uvko3+IN9snMjpS+W7It9gYtMX7TVUNcXot18eGszS/hIdbxDIoLAh/tQqDWkWvDfvJNLtuphL0Wjb274CuTuSjfIvV7QakKYRq1Oy8oJNz1UAgELhTo9dKS0vr9Yz4J2m0JfzEiROA4kLRqlUrHnzwQQ/LMyjhAMPCwggI8G7BbIi4uDgyMzM9yrOzlaXK+Pj4Jo+ZmJhIUVGR17o77riDpUuX8vXXXzdZgDeZ2sYKs7sveZ4qgmiqfcKBMqmKH3Vb6VSZRC9aNDx2n9ug961Qmc+Pi4f7bPbbid8aFOEOWUZVy7Jy70fD3MTkprZ6tib7MWl5GUEmRTh32fsxe7u4bo4iig9i0vq2tBaESBQGK2LCYDV7CPBKUxVRQHKWhaPxOm7/s5R+Wz/nrz4vkatTVhD0oQ9gLH2XQ2260iLjKP6mKswl7+IXNtVNgAPIss2rAC8wFqC78QcuXP+g13nWFuAT/kxEa1exomeeR7saAQ5wYtd2ygsLCIqIJLlPDEe3urKIFh9L8SnCk698n10ft+eP2UeR5XZOq62EhDUnEKq9VlYuX83lV17qdYyGqC3AAbZtH+N8LElqZNm1B2HlqvZIkhZZVsRDYuIttE1+CgCrtZQ9e+9WxtjmaQmuS1zctWRnfw8oIQF37ppIl84fIONwWmH79P6NkhIDCQmJSJLEPjxFePPE26ioPEJRkRLtJ17/GZ/c/jganR6bRVk9qm25ro8590yqt374bfew/DMlqo5NrWFDr6G0STvIvnY9KQ6NZOyvc1E7GhaJQ2++g+BIJQJLaWkpn3zzLcs69GaGDwGutVmx1ooHPvVwBrvLq5iaOJkLNnsKwbGb/ybSVImmrBhjRQmf3aDsY7hl4TuMfnwqqelPcXJZAn76VnQaeBkr5r9Kx/GKMK+oCCMwsLjBa9ix8wbn4/btXuTQ4Sedx/37/UlAgLux5c8//2TjRiXk6VVXXUXXrl0xm80YDA1HYarh+OCubj7oTeXxlrE82EL50JTZ7NhkmTSjmWt3pbKhXwe61VqBuCI6lEyThe1lro3dUw9lMBXPEKS+yDZbeeuk8lmvG/axLplmq4cV/kwpsdlpucb7mPsv7EyE7px5nwoEgtOk0Z/KpCSX5e+LL76gR48ebmVni+7du7Ny5UrKysrc7lQ2b97srG8KsiyTlpZGjx49POoeffRRvvjiC95++21uuOEGL71PH8lLpkybbPPSUsFPr4g4h8OEpFWxWXMUi2RjpyOVffo0bjanNOKkEgRG19tkQNwAn3UfpufxXKric39XYhQz23jfAPh3D+UG6+/u/rz/yiRklPuLpJN/cjLpEvpufRGAHe07e/R1SAZUsmLZ39JOsXL7m92ji4xboIjUvKhTXCvdTqWfRLBRJqZYEb9WyY/nx/kxY2ERc2+YSWGwIlbv/Pp1QspLsFuPe5zXXPIu21ZYeLH8M46VHGNcu3GcKj/F+qwGAqhX0zLLH211/OZhO+p/jgF+/u1TJtz0OCNu7ciRLVmKwHVUYDNtrbdfu2uPc/j7P4A/0Ic+5LbMrLLrcajN7Ny6l+07t9Klc1f6dBxCQrtADh95hrCw/sTFXuVzbJutvN5z1xbgrjKX9S4j4wuKi3bQtu2T7NjpJUpPPWzd0p4TJ5RVkLVrPuThh78nJycPtVrL8GGpnNy7izff/Natz8SJL3Ai7Snn8b75bdhVtYGB109k1wIljvUuXleuzeIj0xRw8+sf8OUjXiLi1CIkJpbSXJcovm/ud+gM/rTp0x+TWkvn7Ypo3dxziLPNm3c+B0CXQD/2Vpj4xM9IO5UDnd6P1V99jizL9Bh5Gd1GjEaWZdafOMnYkyVwoecN1JU715AdGkmP9CNIwN74VqxPdiX4+TKrkC+zCj36Xbd1OeEm5bvDFhxGcEkBU794EbXZiAx8OncTcBkBqXuANDL2vAXo2PDHVdj9Pf2Kg4Ly6d7Dcy9CbWoLcIBNmy9RnsPgASxd6rny+eOPP/Ljjz+6lXUPuRy7TUbbLovU1FSsViuRkZHccsstbu/5zEFdefzoKebnKEaUk0O6IsuwrLCMToEGglUS1lIrZYFqYnQagjRqJCB9fxFRtfymg6tdZcK1GlIHK89rztDu2GUZFa4svgcqjAzberje66+hb4jyPfhRxySne87Z5LrYMIqtdv4uLOPq6FA6BBq4JzEajUrCLstYHLJP0V2XTuv3cWxQFwLPYJOrQCA4+zTaHeWfYvPmzfTv398tTrjZbKZz585ERESwaZOy4S09PZ2qqirat2/v7Jufn09UVJTbeB9++CH33nsvb775Jg895Ip0MWvWLKZNm8YTTzzBiy++eNrz9eWOcuxoX7KzlY1cNe4of1x6gNsHVVuLjy1n5leu2N2DBs93Ph7cdR8vvu9urW5jjyXF6gqt6MsnPLsim4sX+87498yAZxjbdqxHuV2WPTZc1Y6KUGMJl4EXql1Ewsrt/DDtRq/nKQoKYcxrH3mUBxbNw1DxNwAdjVNZ3a4HiYU5XLpPeV1H/PkX4cWKZa7SP5bNfZVoI322vkRgZSbDZruEWlCVg3J/96XXRz56yme+UYC5o+u3UAF8cckX3PKne6z4Sb81/Ybz4YVL+fXdWaTt2UGbfg+wb5kSJjFxSBYR7X1Hltj1cXtAos2AYVTYiik5lgJIGA1ZVIQcc7ar/Z6poUf3+YSHu0Jp5OT+gr8hieDgrpzK/IbDh5Xns1PHt9h/4CGP/mfKtq/6YIprRXBkMV27/cWpUx04cbx3g/1UxkochrqrZzLJ4atIGXMXGZtVrF/oeb31cdW0p9H6NeeX9w4gyzIDrm5Fed5ytv/6o1u76BatuenVd0jdvpkDq1cw+v5H3DJTDttyiAOVjQ9D+UevtnQP9keWZbbkbOGd3DBWFFf5bJ+y9ytO+q/HLtkxq8xcffJqZ93WpPZsb9Hea79b1i1Fb/d9Y+8LXV4mlujGRNiR0WgsPPzwPWzYmNLo8fPzkjh8+EJkuQHBV3P3Xo1abUGjsRKUcRGSQ0t58BFM/sqNUWTOQKRaMV47D05g3xr3FVNvm8gnvnQBK+YdpCS3ihufH4Ba0zhXjc0lFVy585hb2WttmzExwfvGcocsM/NYFnZZ5rZmUXyYnucWGjJAreLQwC6U2GxEaDV8nJHPs6negwzUuB81lpoIMAtyinjcS+bTuvzaM5leIY1bqb5+VyrhOg1PtIojXq91WyFtCLssu8WSFwj+vzkf3VHOSISbTCa2bt1KVlaWW9i+2kycOLHJ41533XUsWbKEhx56iDZt2vDll1+yZcsWli9f7kz+k5KSwurVq9180/39/Rk3bhxdunTBz8+PdevWsWDBArp168b69eudoQeXLFnCNddcQ3JystdY5yNGjGh0ynCfIvxYH7KzlB/P203DcahNLBi8immXVAv+Y8uY+dU6ACTJwcBBXzv7Dh+W6jUCRo2YB98ifM2pNdy73LfV792h7zK0uWdYtxKrjfZ14gHXFuHHiqvY+stx8pd9wkvVcbIvW7+dh7963WOsv/oO5OVbas1BtoHkWnSJyJjMzFaPMO+Ila0tO9I++yR3/LKQnjt3eoxVEN6JbweXc9+PSkSSobO/9WhTm4nff0BMoWeUhRpWdc8nLa6K+pT63pv3UmouJVgXTI/5PWifGkCfQ55+uIeal7OtfTE3/tWckkALPw7ObqRYlwlKrKQiyx/ZrkLSOOh2m8v6lrkxmvw9EXSffBCAyMjh5Gy5nwN7DmOOX0+fvj/VO3r3busICtKxdp3Lh7dZs5s5depL5/HwYak+M0TWrcvNbUVMjOfqAsDBA4MwmoLQ64wUF8c1LLxOA0PaIUwJrZBruTf5nziILEk49H6oqypQW0w4NFpMLfrTu10iw8ddxycPrPEYa8DVrel5Sf2vUbHVRqhGjSRJ7CirZPT2o2f9mgB0VdvxL12C1up+Y3hv0L3k7HFZ5YsNgSzs6wo1OHn1j6yJXc2QHJdV/kDoATqWeE8cVR+Bh7ZjDY1CXVUGkoqqlr7H0GqNtGy1nZgYxTVx+/bLSEra7TVrLMDRX1+kVFWGMSALSbIzcJCSEba2gaKGvv0Wo9f7vlHZuOE6AnMGoLWd3l6I2oTHB3DxbZ3Q+2v4crpn8rcr7u9OYkffSYPMVVbyTpYT3yaUrb+ewFhpJTBUT8+RSVQUmQmO9GPf6kwyj5Rw8W0dsVkdrP7mMM3ah6FSSWz/4yT9r2pNy26RHKo0EVlsoyir0i1K0plgc8iU2uxO95OXUrN4N93ThW5CXDgJfjpeO5FDgl7Lou5tSPDTolOpSK0ycaEX16fRkSF82rkFJ40WgjVqfskv4fEjp7g5PoKLIoI5XGliwPG9TNZEc6pWTPhLo0L4Nd/d8JCV0q1Jol4gOFP+UyL8gw8+YMaMGZSWerfoybKMJElNTtYDirifMWMGX331FcXFxXTt2pXnn3+eSy65xNnGmwi/44472LBhAxkZGZhMJpKSkhgzZgxPPvmkW/KdmTNn1htmcOXKlaSkpDRqrr5E+OHDF5CXqwiZ203DOXzxJMCVIpvDvzPzW8XFJj7+EK3buNwUzkSEr0xfyf0r7/c53z0T93jdSX/SaKbfpoNuZTW77stsdtpWJ+EYvX4Fv12o+M73PLSPJZdcyImrriJmxlPkzFBuaBoSygDDDm4nJyScA/Et6XnyMK+99hxqh4PAoUPJ3bWRgGKX5fHZ8Spa5sDEFQ5W9+jLzDt9W3Dbpu7jyr8XOI+PJlSQnOn5w728Vx4ZMYpbjJ9ZxeXr4yht7cf0qZ9w+Lc/adm9F9/OeLTea7ixxQ5WR0s8HxHuFPU6i4rxy+qPY1+XNn0GcOUjT7oJ311z2tP9TvcfQYclEpWuoG73JtOmzeMkNb8DgOLiLej1UZw48T45uT8yeNAObBVWtv/1FSdzc8iyVFJZEYFabaF9h7WEh7tb79auucnbKZwEHtpORftejZ6btjAHe0AwDj/fsfobg9rmT3iBpwW+zCDxzhVhBKhVfNqpBYVWG9OOnGJG63jKiky8XOD7+X19j4MePWPY/sdJygtNHInTsnCw8r0SIJmolBuOjtGsKBdzxSMe5Q/1eohbO7siUPkKQ7kmdg35Bld0D4PNgFVlxaayMeLUCIKtjf9h2RGxgy+vn8Ou335hyE23smDGNLKPHcau80Nls1LRztOFzxehodl06eq58b3gwGgC4/biF9Z432pfbN1yFSZTEMHFHdGbfYc6dUOyo9KYUWursFY1sk81wya2xy47SO4R44yqZKqw8tkj9WcfPhOuuL87q745RFmB8v13/Yy+RCTUf+Mhyw527rwJnT6K1q2motfHekQ+mp2e59Py/v9Jf3kdd/ARfhhp2eI+TOZscnOXMmDAchxmA1mpWyksWkNSh2GEhrdDowlEowlSwrweeRaTMYNmzW4iPHwgKpXOa/Sj/xo12qo2NoeMTZbRVrsqHasyMz+rkA4BflwfF+6xAfj/k7ICI5t+TKX9BXGExynv7ZP7CmjdMxq/gHMbHvQ/I8J/+OEHxo4dS5cuXZg0aRIPP/wwV111Ff369WPNmjX8/vvvjBkzhssuu4ybb775XMz7vMGXCN+96xLKyhTf4doivCaTHTNDmMmDgESr1ltJSHAJrjMR4SMXjySzwnNjK8CIpBG8meIZUQTwugFqWstYpraIZWtpJZfv8G4NrG3NMO7axf5jaVwW0cKjneSoRFZ5XwK91FbBSzs2YDp0kOZz5rAhbwvhw2931t88Vc11ax1culV5q34/bBQfXut9haX37nUM3fgHuWEmlvfKx6Z20PNIKJ1PeMasr3FNGbo9iqRcRfR1GXYxe1f85XVsgA4DUzi4bhUAD3eo82M8U7khffq2kYRUNLzdQq3Vcv2zrxHbWonPvGXLFZRXnF5khF07Rzboy1tDWMuP6NlyBAAbszYS5xeHKc9E6qrVNF/4LfsjrqYwsgv5sZ6WZACdJQhVcBYmk+vGNvDgdio6uMS2prwYv1OpqKRAZLnC51xM0c2wRigWQL+sE2hLlSV8U2xzrGEN+943RFSOsnKm7xLKicxy9iTp2dr29ELJzVjofXP3RwOUDeoOyUBx3Cs4NJ5W1LHbVxJZUcqfzf7kwYEPkhCUgCzLdIvuRrDO88fAYrUw4asJDEwayPWdrkdWy0SHR2NxWNCpdeRV5XHpgiuwqI0ggcauRSVr+OKKT1FLaib9NIloYzQZgRnIkvK5kWSJwVkpRFrCceBgSYslbitCv1/zO28/fjdxBUp7S1gU5lj3VYOAY3uobNER7CYCTxwD7Ngj+xBguxAJCUltpt2YKafz9DYJu92PTi1Xog06glaTwILndmLEyoXX/02FcaXPfkd/egO7ORhJbSEgdh92cyDGgrYNnq+w42EiDrSl3iW0c8SNzw/gwPosOg2KR3bI+Ifo0WhUSCqJqqqTbNzkO6BAs4SbiQ65md1//YXNauNEeCwzQls26fwvJCewq6yKRbkNb+A9EybJc+jDZrRY0GMmjxjiOb0bh8GDtqHV+o4iZHY4eOdkLr2CAxge4VuMORwyskNutBvTuWRtUTkPHkp3i7LTFN5ol8gNceGoJIkSq411xRVcHBn8jwj0E3sK+O3DhvcvXDalG+HxAfgFatHqzv4N1X9GhA8ePJgjR45w/Phx/P39UalUzJw50+na8c0333DzzTfz999/N9qi/G/Ftwi/mLIyxaWltgiPjBxOt65zcMwM4bnqbIytWm8hIcHljtAYER59b3d0iZ4bq/p93Y8qm/dl3Z+v+pmWIZ5fwN78wWtY2jMZW2UlVx1WvgyDKisoD3BZZg4O7Eze8VQqKyvp2bOnVzEfmvM0poAhmIK8R225Pjactzu4wgPKssyhDq5l8Q6HDmI6coQTV1ypzFeSmPTMG5yKiaPbkQO8/MFrfDRmAj8PVoTlsQvbMOBb9w2o3txEigMtrO1WyBXrPZNDeWPsky+Q1LW7YokoToN3u7s3mHYC/MPp8mUXn24pd8/5ik0/LKTDwBS35C8AW7I3Un7Qu4+9Nw591wpTsR5ZrcYY34pmnVJpnqSI+AeYTYEUTetTh3gy7kn01W9Nc6mWgwvaIEtSvRZqrTkEq961yhWW2xVjUD7+Fc2RZDWFMa5lfMPJQ2iqKogvLqd79bL3ihRXopn+G2ewvk0wVh+bwsa98RHh4eEc3VjAsjn3OMvrzjE8ry+yykZxZNOSRz3zzDPENSLBTH3c9VsJUeW+I6F81O8BRmaOJMDmutG0qVRY1Fr8rYqrXt/RfRndd3S955FlmY+mrMJhd30tj32sNzEtlR+MoqxKt/CVAN93fZVr9ygRYS65ozNtekUjyzKvbX2NNRt2cG3ceCpXKt8VcvWGcalaTB4P340kq8gMOYJNZSHluLJB3Vz2NbI9F1NMImpTlfPmyCeSnhtf/oKIhAA0OjVH0z4m/bh7eNLI6CtJbvWAT9E4/ZQBoyyx48YdaNWKRSy34iRrNwwnTHP2ti5FBN1BYfknbmU9u/5OsV3izoUPcvWBh1FpKzFEnMA/+iAR7d1vyk+uaE/J8Xi0/imUBar5s92n3BR4D5b1oW7tBlzdmo1LUlHrywiMrMRWsY2yggO0GpWBIdz3RuLcXddhKY9B619IbK9vKEvvQ9amO6h7A6APOUXLSxqROM4Bhxe3pP21ihuRo9q3fuvGC1EPuQXD3JfIbtWM7/vfTIWkvM/Uso27t73Oxe3G0vfKsciyg737H+Xh/B7spTPN5RN0Yi8hlHIJv/EVkwimlNYcZT630oVd3MKnAJjwI5NmxJJFAFXIwFQ+IE9qvPvNPfJbdGcHAfh2WapLUFAnevb4hmybjkU5RczNLCDX4n0Pxco+7YjXa7luxzF2V7lWYaf+WEyAWXnvXTi2Dd0v8gxje7awWx389tFe0vcrn7XCC8JZHCsxKCaYRUUNZ6c9XRZ3b03fAH/UagmVWoXDIbN+0VEKMyvx89eg0qgIjvCjILOCrinNiG0dgsMmY6ywoNaqUKkkAsM8DRsOu4OVXx92y7rtnTqbQwBDkJYx03qzcUkquWmlIENkYhDZqSWYK5u+D6YGo6WSR7+44t8vwkNDQ7nuuuuYM2cOoMQQnzFjhpuLxyWXXILVamXFiqbHmP434VOE776YslJFhN9mGsaRixU/6hoRbpsZzgsobiONFeHjTBcQhBLiy79XDOHXelpw3t7+Np/t+8zrXJeNXUZMgKeve57ZSlcvCUNqGLRzM2t79PNa90PXlvz13lsA3HnnnfQ87O57KDmMRJ66k76lKfza5TavY2wf0JEEP/flU2tREccuuBDdfbfT+l4ljvOp++6j/G/Xknftj+7EZ14nI1bZbNYzyJ8DWb8QWDzX9dH2Etu7KbTs0ZtrHp/pXjgztHoW1Qx9CoY8yq/Hf+WJVY8zdEcUIZVagqtcS2wPL1zqdfw9+XuY8NsE3k50/5E5vLgFsb3zCUlyhUDc92UyNpN3S7vdX8+bE2d4lEcac7lz3ScYszTYA0OwRCo3Hma1FqNOT6jRt7Wak4fZ174XA7JgR/MuGFUlbOjejnbZJxl6ZCexOzdwwdFMtLXC9RWHJrOz+4PO45473sA6JJmt6e6b3Ube+zBBEV3ZtyaTE7tdriCX3NGZ1j2i+OCeFThUZlQOHRIqsm9I5IfSMp45ambcwxeQY7ayu7SCm/efJLa0kM+bh5G9x8LWNNeqwLGoeJZ1bHyM6xkLizBpJUxaiUCTA41DEa9WXQkAWmsw2YEniC9vg4ydosjtODTeN24+/fTTbjkWGsJXTP7hkzqwfO5Br3Xninm9ZjBx+/M4bHlYyr9qVJ+/++SSFWVGRmZ0iIWLg5UfzJez/ci1uZ6HoUFWMi0qUs0q7F6sy7tu2sWYn8eQWqpEpRkeZOXy0NOzADaWgv2hmIr1NBuY22BbY5GOYz8nYTcrn8OsCCOreuZj0croJJmBgTYuDrbid5aNjKaSBJDV+IWle9Qd/bk5yVd4ljcFB5JHuNhzhaVcw+IdY1ia0rRIS9fL87icn8jbG0bWxhi0/jYiOpQQ28vdlewUzfiRa9koDTyjedYW4r7oeUlzBlztigy0uqCUL7OLGBweRJhWTf+QQLeQmDVcHBFMO38/Dh4ooMvyQuwqieNxWpb2aXyIZ51VJqbERnCVA6tGws8i0ybbSmSZ4gq8+IJAZwSxBq91xVHK9Fr2RUbTItfO7hY6jsXr0NqU62+ebyPI5MDf5GBjewMTV5YRV+zuchwQt5vEQe97HT9/35UkJV9AVPJJqkpl8ktnO+vS/n4SU3GLRl/36fCfEeEBAQE8+OCDzqgiAQEB3H777bzzzjvONtOmTWPOnDmUlJSctcmej/gS4Xt2X0xptQi/1TKIoxfdCUBk5EV06/ox5pmRvIyybNtYER7hCOJqiyIm1BF+xD3ax61elmW6zlPCb6kkFRtv2MjU1VNZn6mE4ds9cTcqyfNX4WCFkaHVYbl6BPmzs7zx1oYorZprli1GAsITm/NSK1eWvZmt47EU/8WatB/pvLMzuUGhrG7bg6JAd9eQzJRujd5Fn/nIo5Qt9RSye1u15f5HPa1CAcUL8C9XkiLtuWk3xTnZfPFQ45M9PfTtT0iSyntGOocDik/Ae7UyCz5dDDYjXb51pWivsYpfcN0EBozxHgqzy5ddAEgJtHJVmEtsTD3pj0MFty1rhtrPjqVMuVkZcecUdmxexjz/VVy8JRqtXcWHNz1GZYDvdNZ9ThygV7orlXdeYCg/9EpxHt+6bim6OtE2NiS0Zk+bLj7HvP+z57l6m2d4tla//cqns9Ko+3suyxYs5d8DalTaBLQG725Vd72Xgmn7VrKNoSxbnMXEGd2whAc7Nw9fFxvGux2SGLLlEIdrRS5Z3L01akni6QMn6LrqV/7u2IfcEM9IE3et/tH5ODJnEEfidTgcp1ib9CogI6HCrrKBDFMsU8jOcrfmbIzeSL+8/qjqcU+4aMgoBg71fvPqjaoyC19MW9fo9ueKUXd1oVX3KFJLUrnqp6vom34Zw4NHUXxQeW84bLlYK5ciqWPZ0iGX3ntKvI5zOLGcdhmu9+MPgzOJL/BDkiWSTwUi+2tZ2jMdWYIAoxqz1oGtrsVbBq1Nwqp1lcdLGqY1c8+zUJstm6/GbPb0o+7dfRGGYFfiM0ulBrtZhSHc0pin5bwlb09nsja6hJDGYMNmVERXbK8CYnuf+T4Sb8h2yN0dQUVmAL0vepD2KV3ZtNm1gTg4uDvdun7M2nXun4GhKYdRqTRUlhRzYuc22g9MoaC8nA/Tcthz6hS92rVjXm4pIyJD+KEJLjC9d6/DrDOwt0Pj9qA8LL/Mx9zrtP7Xx4UHjEgy5IeoOdxM+Q6+eXkZzQptqOq8Zbe31vNb79PLk1IfE+S5DOMv/HCtotiMwWSsux9zcRIBsXtJHPyuW5+jP72BSm3BWhVOboiWP3v6cypCQ6d0C83zrSzte+Ybnb1xubyEFJYTS0NWcHfUqkjI/oz9qz03Ep8pKo2ETTZx/4ej//0iPDk5mUGDBvH5558D0LFjRyIjI1mzxuVDOm7cOJYvX05BPRud/gvUFeFVlSH4B5SyZ/cISkuV5bbLWp6iNFHxU4yIGEr3bp9inBnNqyhL77VFeIf2rxAaeimvvfaa1/PVdkkBd7eUbTnbnKH1WoW04qerfmJfwT5u+PUGrmpzFc9f+LzHeJVbttC60mWFTh3chdZr9jb5eWibk06QqcoZTu2Z1vHc3Vzx6T1w4ADffedKsf3RkKvc+taOwtIQssPBoY6uUI3+/fsT98LzpF40wueG0MiM2xnb5jJmXjATgKwjBxvcdKkz+HPTq+8SGtOIJdM3OkC5u+/icn8DD8ZUh8uU4eG293LzgMlIkkR+VT6RhkinsD9ZdpLLlihp2SVk3kpUhMIHeXqOml0WjPBSLVesj2dLhyIOtHSP+R0oT+dEUsPRMSav/tEpGxf1TKEgKNRru6SCbE5GNs5N54/7JxI/6WYKP1GWn1v/9Se65s0pKzAy/6mNjRqjNu0HxBL/8hi3Mm+v7XsdmnPfwaZb/iZu+N3pIlKb35v9TpVWuQENtAZSpa5yCxfYGAyV8WgtIejNymvffkAsKTe2Z9tvaXS/qDl6g/cVDNkh8+E9Ll/mu95PoSirku9e8owrnzKhHR0HxmO3Ofj4vtUANO8UjiFIx+FN3hMA9bm0Bb1Gt0BdK5vi8V35/P6R+2e9oegxFcUmjmzJRVLBnoI9yF0KWfLzRwze3bRNj77Y1LGIQy2U97a/Uc11K5s56+7+9Bv6Lb5QWf6S4fL0y9E5dIp/e8slbuP4W/0ZdWqUx/gGQym9+/xMaUk0B9b0xC8nncRBWUR2KPFoW1wcS15ua8rKIjGZlB9srdZI/wGLzugalxRrySvW45cRQPfjkcgW1wpSUGIFUZ2L8I82IssSh79rhSHKROvR3je2Zm6IJn+v+02mStsOh1X5PdEGXkZcnx3og7PJ2XED1opYQMYQdYikoe77g9JX3oMh+gTlGX0wl8WSNPR1/KNcUZGyNkeRdzQWv8DeyAHhVJWXorGHUxajCK2UISkMHDQQjcbzPe5wmJEkLZIXI1BDHK00ce+Bk+yp8Mwc3Viel6cRSxb+uI9RePgiQtqtZCe9yCKBwawkjBIAlvs/xufGxq2g+RtNVBlOb6+JLy6Rf+UmPq82CZz56kTzZlPwD2xOZU5HNv2QTUWJCX3UMWYN6kyJ5Dsa0JnSW95MDDnkEcNWyWWcukWeQzd2kOjnh8nk+f6O0L5Np36j0WglJX+KpMVur0KrDeFElZliq40Ku4O5mQX8VuDprhOv15JltvJkqzhubRaJv0pFeXn5f8MnfPz48Rw4cIBdu3YBMHXqVN555x1eeOEFrrjiCtatW8eUKVO46KKL+P3338/2nM8r6orwysoQAgJK2bPnIkpLFBGT0n8Jdp1ruX/4sFQqv7uLWQcUgVdbhHft8hEqVU/ee+89r+erK8LBtUmzxppaw96blR/YMksZQdogD2vup6fyeeqo+ybOzN6tKfMz0KFOuMLGMODYXjZWW03Th3R1bvioa9U/ExFeQ/mKFejbtEHXXPHRO9i+A4ebt+Su6S95tF3Vpx3tA90z9aVu38yPr7luSi59YBq/vuO68fHlNuKVnL3wkeeSZ5eW7v6DK69byRNrn2BjtiJMayLV1H7dFl+xmJuWXoOfJFNkb9wPltnQg7KoqW5lMWVFjNq7kV+7XEB+sGuDUnJuBkdjmha9pSn80L0Nbfz1ROsVFxxZlnnrvpVU6VXsS9KhcsCFhzxdN+wSZIerGb7mGW587m2uXvkHS4aOPGvzuuDYHrpmeg+zeDYILu6E3txwbGeVRsJhc//K1ftr6H5RIpt/Vnx2W3SN5NJ7lBWt/IxyvntREeLt+sXS85IkwuPrt7JVFJv5cvp6+l3Rkp6XJKFqRBpzm9WOwyaj83GT0BBFWZmYKyv45qmHT6v/mWC/tgvzK5fSLqwdh4trJdqRYcymThDrPc56bfT6Slq13kphYSJ5uS2B+p+ziIh0OnZa7bP+1PoYKnMMGAuU752ccBNH2vvRo1iJ2LM5ajOnApWY3pIDNHbF2n/J5hjiCusTczKSWkalcThdYWrQBU9CpfYupqKaBzH85g6ExwcgSRJ/zNlL+pG9OKwB2M1B3PLaQNRaldtNYnFuJe9+9CparQmLpfHRisZdMYm23RIpKCigqqqKL7/8kpCQEMaPH094WCQ2sx1DkLv74a5du9ixYwenTp1iaMpwoiKiWPf9MSoKLZRE7HJvm9CBvQmtqWzgvRpaWsCEJXMwWCoJbV5OWUYgKrWMf7SRihx/5FruUX5hZtpf5/n9sIIRfCbd1ehrryFZPsQMZnCc1pgwsJ7BjOZnmuNuNDChR0ZCi43vGI8fRrqzg0ROouX0fZ9PB41/CivkkYSSShfjJxQRjg0tUeQhISMBNtSosXOMtrTiGB/yADvphQHjGQv5WdrX+MEygEN05HKW0IajRJNDIBXM4zb+kurfT9MoKivIvXzQv1+EL1myhCeeeILff/+dFi1akJ+fT+/evTl1SvlSkWWZkJAQ1qxZQ5cuvpey/wt4ivBQAgJK2LvnIkqqRfiQAYtxaF0uHsOHpVK+6D7e2Kf8aPfr/z266lTs3bp9hkSXsyrCfeFtE+Xa56eSvGIFq4vKGbc7td7+dWlRkEVaZDzdg/z5o7firy7Lskc4yPWtu7C3mSsc3+mI8LrIskzx19/QMaGTR90XnVswKirUvb3DwS9vvUJwVBQpE5VwfbPvvJGq0hJntsQmMdMz+ooV6NmyaRt59t68l51lVciyzOjqiDSXqlfyTPcxXLpEybRo0belNMbT77s2k1f9SO17rro3PrVpfiqV9FqvR138MXLPRy86LeiLh2Ty6vWruXZ3/aL2vubRvOclPjHAt8+8ycn4tvwx8UpWGZoexrQ2g3Zu5qnP3+eS97wn80nIy+byg8pmxuTDRzjari2rY1djVpu5ONN3YqvarIldw1OjniLJP4n5HyjniYqKoqqqigceeACtVktliZkNP6QSEKJj17LTD8l3z+yh3t2f/kVUlZUy+44JgHJDu/bbL9ny4/fO+ohmzSk8dWb+y7Vp3bs/Vz36FKXmUo7lHGLVNPdVP7ufP1UtO9K1T2f2bG3YwDB16lTy8/OJjY1l//79nDp1ij17PKM7qNUWJEnGZtMTHJyHRmumqDARfc5J4oMDGTlxGrMXed+jc8r/FAfCDtA3vy8FfgU0q2zG/rD9dCvshkbWoK4sw1CdQbWGPk9OIS6xNclhyRzYtpXvlv5KiJ+OGyfdgr9fOBq9muOr97B/3U7axrZilX0vUdFRGI1GLBYL/v7+jB071pkzo4ZPPvmEzEzFIDNixAiio6P5+uuvOdv4VzQnoKIFNrWRksgdyNKZffZrCA+KIahfT3YfOEhoVhoJCQl0jInEbrcRFd+S3KpyVGo1p/bu5MSRw8hqLX6ZqV6dyeomU5OBcoKRkNFhRocFGRXfcQO/SNd49B8kr+RG5hJIPftsGkl09Gjy8/9Glq306vUdoSHurjY2WwW799xJSclmIiOG0anTW2g0iouJ3W4mM+sbSkq2kZ9ff+SstOUJlBxzidIuwy9m6C2TUKm0lJbtwm6rpKBgOVnZ33n09dPHExTchaTmdxAS0gNZllleVM7XWYX87sVC/f+Jo7KC/P+CCPdGcXExn376KcePHycpKYmbbrqJhITGZGX7d+MhwitCCQgsYe+e4ZSUxAMw5ILv3TZuDR+WSsnCe3n7oLJkXTvzYY/u83A42vH++943NngT4XFP9kMdpHMT4Te0v4En+j3h0bZ2jNG6IrxT6mHef30mHQ4dxOqQSVztO6LEyMPb+aOdb9+7nKHdsdvtzJs3j5Mn3ZORFPkH8V0f5TpqC/azwW3PvcGvg4YTYKyispaQPhtCv15eaQ6m6i+cVkPhuOJasMHgx+TYhkPt2TSxFMfPOuNphGU9is5cwp1bXsXkl0d5qBL6cmHvYRQHeP/S2d+lLZMX7GZdJ4NH3ca+7WgZoJTXfn+tvG4lpXKg14Qe54p2aanMfvUpciKiGP+Cy/dx5d3e/ey/GnklHU4co9fh/dhVKiRZRlX9dfdrH4kvL6p29ZFhTNoYr2MADL9qOAO7DWyyMPa1ybI+LruvG0mdGp8t8d/Ozj+XsmnxAm5//zNO7NjKL2+94lY//sU3iG3dlk2LF7Dh+9MXhQPGjueCa8c7j/Pz8/nggw882oWFhfHAAw80ON7q1as5fvw43bt356ef6k+edTYocBxjc7O9mHQOoo3RJFYm0qKihVub4NBAykqaJvwefPBB3n777SbPJygoiI4dO2K1WgkICCR7o5rs4hNUBqU1eazzAX1WGg5DACqLCXVkDFXV0XlatdpGQrP6v+OKSmMgwEq4xj2EaWamEv0qIeEwhQXNiIg8RUV5KOUFYcS1VFa9srLaUliYSElxHCChUtnQaM1ERyUzatSlHDhwAKPRyMUXX4yfX8PuLrIss3fvXkwmE21atcJhrMQ/JJRN27aydeuv2B0aWrXcTlh4FmVlUWSe6khJSSw1IQ60hTmoTVWoq8pR2Vx7kxwaLRffMplO/YZiTS9H1zwYdZ3VjLrYy8yY0svx6xTB/P3zeH37m0g40MhqIo1RdCy7hP3xLdlXjwHIFyny34zgD8IoRoPVa9QcMzr0WEilDfvoynfShP+OCE9PT0en0xEbe3YyfP2bqRHh4eFKqB5ZViFJDqxWPxwOZbmrJhNccrKe51+IZfiwVIq+mcy7R+L49ttvKCpyWRS12lBAR0VFBRKSM6TYgAEDGDBggFOEV5irGPqpkihFHaQFlURulWtXf4y/KwrKTz/9RK9evTg6bBi2rGz2334bD779Ntl14o2Gl5WgdjhQh4cjabXkqLREfunua1n+0VuYVvyBwWrGqNV7fU5UsoNxIy+hTZs2buVzP/mcovISACr1irCL1Ws9rBGvvfYa48e7fjAPHz7M8OHewxvW5ZukFpT5BdAqM51hs7+lauliKufNIU5ffxKAtm3bekTymTBhAqtX+15yruGOO+7gmVtHw2cXwchXoP/dNIuPgwrl9ShSq7G6XaSEQx2GJFtIvD0Ude/RVEQo1njLrm2UvvRko6416rs/3a9hyXw2ffUeWrUWndHTkl9mUN6Pum69CHlScdt5s30i4+MiGDZsGEeOKJs2SyoqMWp1RGhU6NQun3QZGUZAeIqy7Lh63Gq+PZjN/Rf7jlNcm7DXP0bTvIXz2Lj8dyo+frvePhE6DSWBoYR/9DVDV08gO1yiXabM4e9MrC8vI7iiAm2dzaQWDeiqi0YHBfNotPtN0KUnjlPlcFDqDzY1RBoiUaGioqICP70etcWKvaqSF996i5vvvBOtVnnvbN++nSuvvLJR13rw4EG3BGFvvvkmb775JqYKKxqdipofPZVawliubAzU+2vp2783P//8s9tYV1xxBTt2NByWcerUqUyd6nJLKi8vp0OHDo2ab813RA1Lly7lrrsaXoYPDAzk0CF3kfLoo4/y7bcNJ+y69NJL+fjjj93KevfuTU5ODg67XYkqU+fGx2oyodJoeOPNNxk/fjwn9+xi0YtPkVdWwcer3UM31qAPCECrdwmYrVu3EhenrFIajUZefvllPvvsM4+bLHupa8OmpFXRMiiehTe8Q1BKM2yFJox7C7jvl+fYlL4LhyRjxPcGz549e5KSksKNpsGUSVX8rN/Gm296z9lQl2uuuYYWLVpgk6xoZC1paWn88MMPjepb+/0AsGrVqka9l1q0aME11yhW3hkP3I76nU4M+7KSI4UO0AWApRLUGrDbQB8I+iCsFgdWs5ULBw+gV69eSA4NWkswjqxIXv/hfhwq38+PJKtQyVruu+x1QmP8QXJQFnqQvXv3smHDBlQqtfOtIMsydrsdh8OByaQYtwIDA7nzzjvdxvzll184erThbLedO3fm4ovdV8Tef/99LBbP+SpzkJFlZTKXXXYZbdu6jEhZWVksWLDAo5837r33XvR612/oxo0b2bjR9x4atVqNXq+nb9++/Pjjj1itVmRZ5vDhw4wbN46srIZjqtfoiBrMZrPXm1FvTBw3gWkRNzg3oy87toHpf77hrHdIDhzI2LA7Q6A6cKDRaZkyxT13wF9//cW+fbVWpCQJi1qDxmFH5XAo2ZAlFZHde9L+1rtolZ9FTLmySXfOnDlUVNR/s6lSObhpxOWMvsQfa8xOjMYgjh3T8castRSXmM8rEX5aDoAtW7bk5ptvdm7MFEBRUc3mmprlNVdIufLqPXRRUa6lN4dDeaxWp1NQUHtJzns8XrPZfSOZjExORXXmPC/vx8xil6+3sbiY4gULsVVHeMh46y0yvXxgnVto8xQXgoA6odUCrTKlFWU4CvJqXZ0nDmDnzp0eIryivILymiej+n9vXxtVVe53tTabzblU2hAJCxYQdbsiaOc//RDXdOmJoyCPhnqHhHi6kxQUFDTqvKWlpZDYB54pcYqGzOzaG+S8+fYpz3FJ+IvoIy5wlspWC46Cpu8Mn9elJX/8IrO22IoVK1Xe4ulWv2j9i3NZMrAzoVrXxz83N9fjWvPxJNbkuvEesnAIiwcvbvR8R4cHsk2rpsiqvN9lk7HBvvlAQoJEWPpN7GupvB83BEN8QT62inK8ps+p9XSXOVyfLV2LFkRMnkze2DFUOhxQHWAjp9j1WtWOuVH+0ksce+99mn00m6CUFCwWS6Pfh3VtG2VlZQ33rVQstHXJz89v1HnLytwjhsiy3Oj51hUcRqOxUX1r32jUUFxc3Ki+hQWF2CssqAMVi5rDZCPzcLrre60ear4jkrp2Z8wTz/HBYw9RavQeJpI65bWzOBsMBkJDQxslYIJUiuGgfNUpZ1lRVSk5FQ0HH+jWprPTgOInh3C7aTjPljcc4xuU7z8Ajax1Hju/RxvgMnNPZECDmirJzBHVXlY3oq/eXMGT8idoMGF/awF51lfJLH+VzPI0XD841Uac8nLANeZA034eYw2oQNbDiXAtMyobiDNfTRe/HxgbuhpJkuHeLXz6U7NG3XDo0NDb2pqudsX9zxZxnL+MeY16nmqEfG3Ky8u9ivC6WK3uhqwRuh180sjXpgadTcaikTCbzY2a786dO3nuuefcyiorKxvV12w245d1AmtwOPbqKGWNfS8ZHRY+93MZqirl/EZ9VnU6T4u5yWTyet662+UD83MYcNw9tGNFRUWj5nzSXMnmU+3glLIHKi8vj+ISz6y+/9+clggPCwsjIuJ/Z8m0MdS1hNssOuyyBjUqNHrlSys01GVVtB9bAUwkNFRNZKSrXKMJBvRUVlaiklQYZB1GyeJ2xwxKso3YQMWdRdKpsOtlikyKJIk0RKKulb435/Y7iKi1lOUnqVBFulsHtTYboRVlVBmUHxpJlomwWBi3bin741vSNTOVSaYUninW8Uv1D2+NNbsuBqvZ69JZbEAkVmxo1Br01WmVVV4219T1V9RoNI12bfJv3RpNnz5Ubd1Ks/wcJIO/x7WCpwU+JsYzfnpkZKTX89pkmfzqpA+ROo1TwP+YV0JqlZmHW8Yq/axGMBZjUutxqPWotBokJCyyhgq7ctMmad2/oCStDlVkNJpqMR+u1ZBn8YyPHKpVe7jYrFOpiKkdmcDPH7OsjK+1VqJyWFGHhhLfvr2bAK+5/tLShv33pl44lS/4wnl8xc9XoAnTEKILwU9T/3Lpk20TaZ3clmbVbk7T20bxtlaLVC1YC6v1XJAuCH+N8h6w2C0UagsJo1b2O0nC0jmemO3HARWSRoM6PBQAh+xwC8PZ8oYbiOo0CdOhIlTBOkKv7ke0RkNVrZjmXpFUhA24Hz+dxKm77gYg02Rye341td4zNVZTdbAOJDysqsHBwY16D0dFRXkta0zfupYdSZIa/bmp+0NpMBga1Tcw0DPEWVhYmM++stmOw6SIYL9UC9kvuFuvowI9N3epDGqkOtnzan9HRJRGc90VT/HtvlsanC8oFsW611AzX9nqwFHlfUNcZIBnBsZw/xDn93DNa++N8MQomj0zCNOxYmyFJgztw4mdHQUOkNQSkp8a7LLzuQGQJRkLNi529OB4LZGr0WgIDwpDJ6sBCXWgFnuFFbNkRYVEuaYSg9ZApbWS51vM5oMT1W6JMsRZauYrY5McmLEiIeEvu/++NNO0Jtf8tMf1l5mVO3m7ZMessuJvr/7MSzaQqz8b6jGcMl1BvP5qVJIVg9pMQpAKUGHSaCnDikpWYZdcn0GtQ02QQ0/7gPWASrmJfb8vur0aEoJVOOQgZLQge3+CowLC6W5v4TzWFbahla4HJwLNqKVCFLOVDofsaf3sq23Hteb+SsZXWcIPLV8FfkGlxRVJRSUpz79UIxMlLWj9udlvOZfxF0xYBMkj2L79chK+HwHGEo/zyEg4CARZj4zMzaYUAuXq97ENHKoCDgcq4V5NjkocgCQrVmFZ7freqfv7WFNWc0Ms2W1IsoysUiNXG9IkWUay2wguycPqCGKk9jLCjCEUWkuYG+j6zpElGWSwSjZsONySe9X93GTqi73ehNfFmwjvoGtOduAptzK7bEMtua7TLFk9dESyPZbkQBu51VtFzejQYMeMFjvu86tZwQQlg7NKpSIwMLBBK/o/zWm5o1x99dUUFha6hST8X6WuT3h5eThBQUUcXtuFPLk7CfZwWg19x63P8GGpZM9sw8fc6OYPDtCjx1eUlsTy5ZdfEhkZyb2T7+G7H77n4EElUcf9ncdTtc0zmcSzw+axKXsToLgJhPu5fswOtvdckq4b8m3F3TcgAQuvH+csG/nb7/wx2hXma5ilMxFyEN/rlSWzNW26ciChlcfY125bQUSlu1Wui605/WzJWLChRe1croq6pxv65md/WSjrqacoXbTYZ9hCgKyUbqia6Odrc8hOEemLV9o2Y1JCJLfuPspvRa41g2W929I5yJ/J+9P4Ka/EZ//feiXTM9gVAWNjSQXjdqWyqHtrugT5Y/AS7cLy9xxS73ur3nm1/vMPdEl1ws/ZzKDSgKrxKYLf2v4Wn+/zXAVbevVSkoKTKDQWkvJdCqH6UNZev9bnOHU3Etfm69Ff0z68Pb2+ct93UHuzcckvqVSsVyyY4ePb49/VU8CWrcyg7M8057E6WEfkHV04NqgXkn8EstUIVvdVA3VkW/wHPuJ1XuU/3aWkIKymw6GD5H+yB3Oq6wamZqP0vxnZ7qDouyMED0tEG6O8Fy0Z5dhLzRg6u4cjdBhtVG7JQRNpwFDHn91RZSXruU1nd3IS6FuGYD5e/01j5K2dQYKKTdlEjG+PpFZhL7eg8tciqZXPvTW/CtnqIO/dnZ6nUdlIuA0qSzqSfaiQz9TlxB09zDWVLfHrFEHE9e2RtGc3G48syxTOP4jpgGI5jnmkN8a9BZT+eYKTqnyCZANhcgAqVAReGE/IqJZI9aRULzYVM3jhYEJtQXx79NWzOtfGUqkyEuDwbrC5s9VzdK1KZkqO930djeHTuKdZGVDG58efRO/w/A4416wI3sKASy8mIjkBh+Tgt+O/MTL+QtQFOUS0HkDe8ZXsyS2h/S8N7w2qj60Ff3FIfQpznPIdriktRLJZ0ZcWEWjXEqqLpk1wD/KMGaRV7GNHX5kAVQAHDcfJ1imrNSOLL+SBnAn1nmdLwD76VnZ2Ht/a+hkKNMW0rGpGl3zf+8AMaYdQ2a30TdpOP3UJxQ4DeRWhRGgraOZfrQfCWkBxGoVmA0EaO1Y5GbVUiJ/atRopyyDjj9nRiULrM4RqPsBfvQoJM5JUj/Fk0MOQdCEsvp3CEiNbyloR3qwFXUMLMJQdQb7sXTICu5HUosV55Y5yWiL80KFD9O/fn6lTp/LEE094jQv6v4KnCI8gKKiQw2s6kUdPkvQyzfu5Z5sbNvQYWc+24xPGe4jwPbunOC2SsbGx3HXXXSxatMjpP/X0E0+R9bSn39gTQz5hZ57yQ7JlwhYMGuVLr2r7dk5O8EyFXlucfvLCY/Tq35vSxT+4iXBvtLfFc0ijCB8ZsKg1dA6+kIe7hqG3WgivLOPy3evcAnxdau5JnOxpRQKIvK0zfsne686Ug+078MGYG1l00aU+28Tptey8wDOiii8m7D7O8iLfiULqY/aB57j63h88EswAXBQRzFddPW9oGsXMEA4tinULuVWXdju2o6ptQTGWwKt1BPnDh1mVpSK9qIrhHWK45K01dEsM4evb+1MXs91M7696N2p6j/d9nAkd3L/4S0wlDFroLlZbmBKYfULxh/80+gdaR7ZhX9F+7su5gblRP3HBVaMY1lpZ0vcl7mIf7Y0mQnnvWzIryHvPU1ydDSqXz8RRnkX8m59Qvsb7V2izVwaR+cwGZLPLupnw4kCMBwoo+voQsdP6oAk/u7GFm8Lm44WMm7OJIL0GnUZFYaVizT/2wihynlpfb9+Yh3pS8OUB7EU+XEAAXYtgLGmn91k5H0jQX+H80b/PMoX3dMpm+e2OZMZYnkXCwatjunFdH98RkIoqLWSXGokM1BMTfHqvtXHvXrSxsWgC1Jg+vB9jcQKhms+QJCvcuwWi2kFpJrxVJ0/A0KcgKBZ+nkKuWs2IxGb8dkjx/03VZ3Bfy1eQJZlAu4ErilIYWzgCg6zMcXXQdmKtEbQztcAkWfgu4k++j/yLXhUdmXnqbp9zHdN2KouPNM7X/UyZHfMdS8NW45DcP38XVBmJNI3i7tyGM3H6ukH4POpHwuxBXF3UuL1ITeWFhDmsD9oFQJA9gBcyptDWdPoZnc8GJepyJrZ5EqvKcyXosopKLquopKXVSrDdQbFk4N2wYDYGqLmsoopHiopPz62iLg/sVoR6SQZs+wy2fg7mBlZoL38XOl4Bhvp1hNXuYNuRTC7o2PzfL8JvvfVWjh49yoYNG4iNjaVbt27ExMR4LMFKksRnn3kPz/RfwUOEl0UQFFzIkdUdyJV6e4hsgGFDj5DxbCc+53qP+rVrbnI+TkhI4I477uDvv/9m/XrlR/Hhhx+m9MVdHmM+dOG7HCpSNkjVzozpzQoO7iJ85d030OHQQY6NvpSv+vbx2t4X3W0t6G1rjeqGZsxZ8qVH/VXmvkTKvpeswsYmE9Db9wbfSrONY3kVdG0Wwu/7clCrJC7p1LgNwSWLfyD1uee59O0v6m23oFsrUsIb/kDKskzcqvqt4PVxQ/avvKo5SqvoB6kTKppfeibTJ+Q0sqz9cCfsWcjBBfE+m0Q99BCRk2ttWipOg3e6+Wzf0fQ5VbgEQ+uoABbffQH9XlrOM5d3YsuJQqaP7oCFfEYvaXzs1t9G/sIfWX/x7h738JtaScvCg686BUBD6JKCsZz0Le4SXhpIzmtbsZd4JuQ53wi/vh3+3c/MQgbw1aaTPPXjPlpGBrDykRS3uhqxDfDRjT0Z2TmOL9af4Nlf3DOd6oDWqLgDP/qenZ9Ur8Q91c/pB16DbHNgza1CWx3HWrbLyDY7JT+lUrXj7GfP84W/agX+6lXoVTsVv+RG8En/Zdx6cW/UKuX3L6OoikGvrWygF3x7R38GtK7j1llVxJHcSuzXjoGKpvkWA8T1LSakpbHuflYnVsAhQZWkIl+tpqXVijYoDoLiYOKPmLV+LDy0kMyKTPy1/pQbbUhyIL+lf0WZtQSHLYDKozPwB9qjJgsHoZKVbv4Z/Bq4B5MpHtkawrCwnTyTeYfbuXO1hcRYIygKUBFe6WnRzO5nZu+hHTQ3x9Le1BKAInUp4fYQ9htSeStuPlbJRp7O604Qr/Qr7+K8acjVFnJL66cVlwtAJUtorQ5GbZORJYluJxzMH6biRKz7kxdiC6RnYXMmnRhAdIhvS3Bj2By4l5mJs+tt062yLa+kP4gdOyf0mehkHc0tZzcIxm3aKj5/eDDxIX5O3Way2ll5KI+/D+YyvKuDV3c+QitDCh+Mfgy9SoNm4zuw3Pc+hiI5EC12giQjn9lG0VE6yQC1ZzZlgK2dnyZ84CRax0Ywb2MaGpWK8f0aCOcry0pOjtguHhu288pM9H1peYPX7TBXkfH2df9+Ea5SNW4JTpIkt00w/0XqivCysgiCgws5uro9OVIfryJ8aMpBnntOiU5Ru/7QwYHk57d0HiclJXHLLbdgNBp59VVlKfHSSy8lbrGn9emufq9yskwJBbjrxl1O/62GRPhr775En4N78fv9N0pOneKn5Q2/kWtzjbkf4XIgETd1pGpHLpk5WfxQ6Uq9PcmUggY1+lYh+HWIoPRXz9jSzV4ZRNXuPIq+PUzwyBYEp7iSyVzz4Xp2pJfQNiaQI7mKL9fB50Zi0DXOfaLgo4/4fNte3rtuEj9+/hb+u3Z6dVH5vHMLRteJJV6X3/JLuHVfGgAJei2ZZk9f7Yb4Ydf9XNP9XQJtlXy3Zyqje35Ml0ADf/dp17gBZBmeDaMmH7zsgEPfuQR4s0GFBCWYkR2QvTWUwHgTwY/Nh7a1dv97iWlelxambxpsk/aKssJQYCxg6HdDfbYbXNaL6Zm3OY/nRy7lpoLLmNjmSfLUZfxx2HtM/MaiDtXXK7h1iUFE3NzRw/+4PnTNg4i+pzuFXx/EuPefyfobfV8PdAmNSyPtcMiUm2089eM+qsw2lh9ShGoP1BSrYdWLI3n5651ctreMsFrrUk9QxXZLOdcfWcafSf04FRTNSLQ8hXd3gcZi6BSBcb/vzXcJLzc9xKM3CubuJ+dECaFmB89Sxd91Nj1fipY1WLkGHXdU30jm4yCqgeQ74dqX8VfXb/2vj5esNzDHfjkAQVTxrvY94qVCLre8iAWXb2p8RT6VWgOdCk+wIa4zSBLfHfuGoH0NRyxpKpGdy4jsVOFdkMf3AEM4jPu/9u47vqnqfeD4J6NNF23pbhmlbGQVBMreyFBkI+AXRJaDITJUVIYgQ1HcIjhAEEV/IIooCCggSFkCMpRNKaOljC5okzbJ/f0RmjZN2qal0ILP+/WKNueee+5JbkKenJz7nOWWbCc5ZBjNpGeaeG7lAbYeL/jCO4AnW1RiyZ8xNmXNKpdlXttAMlOvsWPvMro8PhX/VAVtSAgqtRpTioG4OXtwq+mH3+BaoE9H7Wnbl6wVnwG0RoVxiU0xlnmY2WdcQGVGpU1BMXkSmppIYrXfcPHNzuWekdgEw+VHs+eqAw0vH2d29Kf5PhaP5s050jSYV7RrMWlUPP67iR67b4VJWncw5lq5U6NDE1AdbXBdXMo3QuVqeQ+b0xNRDKlc93PDo0U5QhtXAN8yzNk9h5/P/OzU8wrgpnFjWpOpRC53QZVp/+9D5sW/yDy7DcyZmK6fAa0Ol4rNMSWe5bJKRUaDwdQsY7nm4eq1k+j+fAfMlvfNRe9g5jQchL8+hb3BNXExGwnQJ3PZvSxmJ6YoumGwzs12jkKeF044Qa2CmT3q8OoPhV9MEO6jIDx33uf8hOeeg3qfsQ/CA/D2vsqZLdW4qGnqMAhv2+Yos2ZZ8uHm3J5zFDzLjBkzbBa86dKlC+V/sA/+1tTazmK+wV/vT8crHenUqRNRUVEkvPUW1z6z/TXiik9Z+s/7GIDVLzxN2dRkvitgGoojj+mbU+bWh7fKRY2SaSZVlc63up3WOiMMHfDtWRWPeoGoXNRcdPAzt/dD4aRszH5NZc2pPRafQpd37ecUPxheluc7VqdlNeeWys79RWTC+Fc5UMN+Ckpc2/oOA4WYdAPP/RvL7uTs+d0nWtWl+vbs+cnHW9bBx0XLtJMXWXzB9oOrb3BZVl1OtH0MKUf5+cCzKC/GonIvICjeNA3+fA96fwY/TwBD9ihw7hHwmv0vkXtl6BsaH65mutEzYyZjW4Qw/K/sNHttDW/TUHWSBa6f2OzzsGEOR5VK+Xbr6TZVeKmrZTXC0V/vZ3PCx7iWtQS6gTHPUlVdk2k3Cz+iqnJV2yzlnZ9ys5qjcrF8WFx4yfH883KzW1rnAAMkrT3NjZ235pI/bnltuNfy4+L0nWBS7L4IZlxIRe2uReOjI/WPCzav1SypP41F4xuORyv7ueQ3t8wCtRbPNlMKfDxqLxc8o0LxahqKpowrmQlpGK+lg0nh2lf/4v+/WiT+cIqHb1wn8dYXsedxo4/TH4KQtvNdNH5VUDLTcKub9/s+s4M3Zw/vYVhCGGWADCzZCwbjylO3Alxl+AN8dTKB5PRMpnevjTr+JpoyrtzcHYfxuh6/gTWLHHwrisLMdf8Q4KUjsoIvj3/m+EvUqw/X4vWf/823LQ/0HNZNQE0aZjwYbniBJbpX7eeYPvUHhNTj2OVUHv3gT97tEU63X26ldBu5BYLroCxugyrB8QjfOlNTHtHYTpPKTFNz5UgZks8U4ZeuYvbmsx/ySdeKXP9qBWWfeIJVO07w4JzxNnUW1u3JuohmmNUa6lw9TYXUBDZUikJRqUFR6N2wPHN618Xt1vvOmJjIucf/R5lOnfAZMxaNWoVGreJEo8aYb+adR8urTRvC3n6LpJUrSXgrO9WdT+/ehLz6CinrN+DT/REuXzpF0v9Golx1fgQcQHF15ei4mfis+z9UQcGYjh4m/FrRF9EqDmWHDMZv+Ag2HLnE+F9jiUiJIyr+H9ZXakqKqyeKSoVaMbNhUgeqBnlhTEzk32XfoV34bon1+UBgNRpcsaR6vOLuw9i240nW5X9BptpsIvTmNVzNRs76hKExmzDdCurVipkyGTcLbKO41S3nw5AHg+jfosa9H4SLbHZBeHIg3j5XOLulGhfyCMLbtD7E669bFmbJ2n7tann++cd+NDFryfes/w8ZMoTwoPIkrTllN/I0rMp0oq62QGPQWPdxNBK+o34jpj5tWV56/bgn0JpNrO7Xt9CPPefCQWpPLeabRjIx8aXbVrv+Z8krUMop+PmGuAR7Uuml/EcLzs7t5tQHvDMXpgKMKB/AZxeusvCBcHoG+XLTZKbvwdMcTLW9cK+czoW/mtdmZdw1xh87z4wqYTxd0XZKwQ+XE5lzJo6v6lWmuqeb3cJIldIvsGvP49D7U6jbL/vntdTLcPj/oPFwcHGHM9tg2aMOH1fmTQ2nfsrO0PFp7Ud44YtZhFzbnec+3xnb0F9ryX1eRb/cekW5Gwa26Z4nWJVkrTu4wkb+jUvl6o2co8wK/+iG4aEysNT4EIuNj7Bz3hNMeWkTo3FjL0YWoOcbnBvRzelxbnAOS1Dk43uRJzvpGf/gOOv2jLibJLxnGTFUe7oQNtV2rrpiMnPxlewveb49quDZOCTfC9eKKv3IVZTMRDIT9CR/+x43d2YfVxsSgjE+3m6fSqtX4V47+8ufM++F/IzlJh9Q/IGd2ccF49+/YThouZZFFxnJ4MiRXExKL2DP7F9Hsqw/HMfKvefZdiL7i+mnQxrR6QH7bERGk5mJ//c3hy4kc/ZqfklQs7WpHsiXjWNh9XDbDX6V4foZMvp+hesq+2tiHHrpPLg598FsNhhQmc2o3ghBUUB/3YWYTcV3UaDa1UyN3vG8XvEzXo0dAUC19C8xKWqbEUpfUvFSpXNRCSAs9Sqv7vmSSqn2F+4XN68OHSj/zgLipk0n+Ycf7vjx7qQpzUcRWyaYDI0Ly359HXeT49SEz7SbSIxPqOXXyFv/XgekJaHGTI3EWF7e+xXpGtc89y8umVoXDlRvypdBjfDXJ/NXUA2C0xLpem4XLiYTPc/c3r8rt8utXj30DlaXzcuNcpUwaHVs1wTxaZ1HCh6BVxRczCbe+eN9qiRfQq9x4aJvGPW6tiawR3fc6tQhbfduXCMicMmV9SwrXpMg/D6SOwhPTg7Ex+cKZ7dW5YK6mcMgvHWrA8yebbl4pWWrr1CpFPb/9TA3b9qn58oKYj/55BPi4+N5/PHHqVatGmD/IX5915v82LUJpnSTdd/cAWiGVsu2BlHMGWZJnr/lmYGcb9WSnYVc3XSIvg2uecwb/czNMqXF1+zB+Jkv2GxL+vkMN6Lj8O1aiaSfHC97XrZvddxqluWV17exigyHWbYB1o1tSZ1ytqPIhphkrnxyCPfIQPwHWEZp0w8fJqaf7UU654NC2D5oKEtr1ifTwTvgf6H+lHNz4Y2z9sFUS18vVjWoar9TPpZevMpLJ7JTMgUbrvL3rhyrNA76DsKbw9zy2WXhLeHcDhzRKy6c/Tb7Q39Ki6c4GFiNF7vUpE/DcjSZ8xvN1Ef5xnW2w/3/NNXm8czciwIpxLjZXkBpbvsynxwy88Gl6rSoVZHP/L+xXDBzi0nxIc5w+8tbp6PQKUcaNrB8zuX81ylm3sMomWYyr6bjGuo4+FTMCsm/xuBe2/+OZN1xxJyRwfF6ljn2NQ/9jcrVlZOtWmN0kPPbIyoKz6ZR+A8fjqJoSNl0DrWXCykbYu5I39J3fYS23IPo//4az05zUOscfzkynFhPxj9rHG7LcnbkJHZtO8Cqau1Ic8l7/r6rVk2GMf9fMqKntCfDaObrPbEs2ub43wF7CoM1m5jlshSA601fxG+XZZqeYgajQY2Lu3O/oNjwLo9p+E5ORGV/qfMbPgzD8RPc3GF5/1XfFY3G1xfFZOJY3XpQUIrLQqrZ7xKb3bvTpPlIfFq3srz4cwww6DNNvLPpBAOaVCQiwNOyMuLFZIxmhWe++ovLKZYvyg+EetO6sg+n41Lo9OVc6l5z9rm9c9SenpQdOIBrn32OW/166P92PkDLzW/oUIzXrpHy009FbqPq1i243Fpo0GxW2PhPPK2qBXIy4QYzfzrKoZirNIn/l6l7LNc4pWl19O820zqSWyiKQv2rp3jq8FoiUuKK3GeAr6t3pO0br9KhliWwjL2WxqZ/L9O5djCBZXS4qC1pkm0ObzJhSkwk4+xZXCtXtqRzzbEmxo3zF7n59VdoAwK58uGH+Pbriy4igvjXbPOQ321qT0+8H3kE/ZEj6I8epeygQXi2bMmFZ58tcpvaoCB0Tz9F+OOPSxB+P8krCE/8pQJHvNrmEYTvY/bs9wCFVq0to0379vYgPd3+RZEVhH/22WdcuHCBxx57zLoKXs6RQYC0P97g64ca2eybFYSX6dwZ74e7Ud0le8S2+rkzLJr3SoEZUTpnRPKr60Hr/elTp3P5/f14NAhyGDxkBeFNH3iQLv27221XMs1kJqQ5lbniHCbGlzFyJdXxnN8jr3XG01WDSqUi/eg1ri3P/pk4bFpT1B6W+Zh5zY3PCAik86z3HW4bGOrHN3H2P4H+GVWTKh6Fz3Tw69VknjhsWa74+I6H8TEVLV9pUpIHcRt8bcq69nzLYd2fXF+mrjrGrtzUeR47/PvyxBd7rGVn53ZDZcqE1/Mf0bP8i+HC5YwPMSoFf3lLUu9gnfYiL6mXk/bg06hd6+K6czIq0jhdeze/7b/IXPLOspFTx1pBzOtTD09XLW4uatIyTHjqSmd2pozYWDIvXSL94N9ccbA0+O7+o+k55GF8q0aQlppBytKjGC/m/ZrYhZGmeXzxDXymPrpw7+zXuUYHJtv3jMrVC69uli//KjcNitHIzU2zUfTJKAVlIMhDXq+7LEFp16mWeIE/w+pS6/o5Fmy3ZBiZ2Go0Md6heQbz7ugZrlnPJJf/K7APRr2akz/YXrgW3v4qurKZnPstgLJVblK2WhrUfIS/mn7A3s/GMsrtN9S6MvD8Ef6tE+ncg70NIUPb43n1G1y9clwjFRoJzcZAlXbg6dzUurwkpWWgUaso42a7MvDXu2OZ9d1eWtQI5u3wm1x6bjwAP1ZuSY8zO9geVo93G/RnxsAm9G9UAcOZM1xf+iVJ331XqONX+HQx+n/+5co72WlSy3TpQrm330KlcRy83vjjD86PegqfXr0Inf06KrWa9CNH0R8+RPxrM/Hp3RvDyZNovL0Je/MNtLnWJlEUBSUzE/WtPNRKZiZmgwHNrdz1phs3Sf31Vzyiosg4F4Pa3R2Phg0LfCxms0JSeiZ+nq6cvXqTdm9tzbf+mHZV6ftgeSoFWAYGbhqM1J7+q109lWKm7tUz9L/2N1UrBhJmvIF3p06U6dSJpJXfcO3zLzAlJuISGUnmwYPoNS78UqkZ31Vvxx9z+uDjnv+qz3eKYjKhmEyoXV3RnzjB2UedWzU4+OUpGK9eI+PsGVI32S6So6tWFcPJU3eiu/m6YTLR5NRJCcLvJ/ZBeBA+PgncXBvKft+ODoPwVi13M2fOh/j7x/JAbcvUgD17emLQ286Rqlq1Kv/7n+Wn1KVLlxITE0OfPn2oWzc7v3LO0fC07W/ydafsq7dfefppTrW1THGpuHQpnk2jbKZFVLkUyxsfvcHmhzrZ9bGOsSJHtLFEmILokFnXGlhXrFmPJ/r3smYCiH9rH8artj9Tr3P9i3h1Es8++yxBQY4zP5huZhI3y7n8wZoplswDvx69zIpd5zgWnz1i+gJuPIorLuW8yHQQwJR7vQUqrZqkVauIe3Wqw/bzyyWepU9wWSZHhHA902iTw7swFEVh4N9niPT24KX03fB/Tzi/c69FJM5/nvh9vnabpjYbzs3IKP6Nc5QxRKGyKo7fdbnmKr+aAFodF5PS0WnVBHjpyIy/ibqMK5r5+QcEcYZPMSmhBXbZV7sQtSop/wveHl/NhYDmxCXraRRelogpvxTYbm4P1wvlo0EFf7jeSZkmM2kZJk4lpOKp01I5wAvXW9NgFEXhWK0HCmgBnm89hiXzh9Fs7u8Ot3tmpLPqF8tr2Ouxz1AZzGRe2It+X/4XmgFErPkeN0dL2F89SeL/rSH+PdsMQmpPT6rv3kXKL79w6YUX82077M03SI9qRdN3sq8FKXfjCp9tLlxe6u6PzqWe5iwt1EeY6LLKZlvKeTcu/mn5pbDKI5dx9TJhylBx4vuCX4dZav77j930tUsvvkTyjz8Wqp958R85gqCJE1FMJlCpUDmZwOBuu2kwMm/9MTRqFS93q2V9neZFURQwm22C6cyLFznVoSMqNzeqbf8DjROLtvzXXEhMY+J3f7P77HV+m9iGKoGFn6KXkKrHx90FnbYIo/AlxJyRgUqrdfr1b0xMROPlheHkSc727lPwDljea2W6dMG9dm0UsxnFYEDl4sK1L5ZwZcECyi/8mIvjn0fJtdK4BOH3IbsgPCkIH98E0n4K4S+fTg6DcDfdLPZu2ot7aDxVq1lGInfv6k1Ghm1w161bN5o0aQLAV199xalTp+jRowcNGjSw1rnw0nbiVIkc1Z6nWWZ1vnHLDnhe6NGDcwMHAVBx2ZekRTag7p/ZS8BWuhpHl6O7KePpSWquC2iG69tzVZWKn+KFBjWGkWF8sOo3fk4MZlqP+gxuVgmwLDV9aYZt3vKQ15uRnp5e4GpaqdsukLzeMjL8J5lURE0F7P+xCZ7dApccC9RM/O5vVu+3TO3YQf5vpKwsFwDmtDSMCQmc7tLVps7hX39n3Jm851E+FuLHe7UKSJ9UFLfSCxZkWMYk2nR7nCYjHOc7L7f/IF5urlR+2TaA7VgrmD9OXOGvqR0pc/Vv+KwDPH8UfMrbtZFxPpWEjw4CoNIqBKgno1Mfs6t3Qb/OYR9CdEPRqq5at4e4DkOrdjK13Ixbo7CKgjnhOHqfSpy4oqfnR5bXsjMX3mVpVS2AZcOakJJuxMfj7owcHb6QTPcP7acNdakdwht96lF/5kYAxur/pdsG51K2Zqi1nPEJw8dwE6/MNI7VaU6UKhnz/n2F6ptn82ZUeGcuqt0fQNWOsOzWKFbVjnDKfglnY7n2qM5uQTPiB6jc1lqesuFXLj7/vO38oDsgvP1VFDPEbr29keH8uDd6EPe69VBMRhKXZf/7HDzlJXz79UMxmUheuxbDyZMEjhlDwvz5JP+41lrPNSKCyj+vK7VBthD3g8zLCWiDAi1Z9pKSMKWkoPH1RVPE4NmckUHC7t2Etm4tQXhBDAYD06ZNY/ny5SQmJlKvXj1ef/11OnWyH7HNacaMGdYsIjnpdDr0evufuz///HPeeustzp49S4UKFRg3bhxjx44tVF9zB+FJScH4+l4mbW0If/k6DsLT08uwb29PQkOPW4PwXdF9ycy0TRPm4eHBCy9Y5lSvXLmSY8csQdHYsWPxv/XT3IWXtltHqUNNZYnTZGfheGxldoAXvnwZU8sEsyLH9Irwa/F0PeJ4NDrnRZfencLx7lDReqGkp6uGozO7WLfnHI0PGtcA1zDnvvHvOXud/oui8UVFCgp9cOU57H+ezrpQM6dKL/1MB7S8hv0SvrnlXsHw4gsvkLLWdk5h1mj4vmYP0CjaNvPB4Ra1CXS9gwHd8Q3wTfaUoN6GGXyvmwFAnOJHM8OHNEw4zuydtiOef3/xMwOaZy/wc+RiMo98YAkGG4WXZdUzzZ3uwsXXolHSbWffB7lOwFV9AkVRofxvAylLV3PDZH/BZ/mRmbC8l9PHsjP1Kuz/En6eaFvu5gso0GsxfPMYvzVexPDt9l/sKqsuWUf6a+m/ID3Ha+iLoY1oXS0QrYNVRgvt1G/wVW/r3bhqg2h2+BFcySQDLYVJvfXh7wuoknLp9vvkQI1Df1t/ogdg5eNwzPGXpwJNT4LYaFhi+8VVUeDYt3nnps9LuXcWcOOP7SSvyX/+eVHU+Psgap2OlPXrufj8BAC0oaEY4wqei1t97558R3MNZ85gSkzE48HbyxMthCg5pfHCzFI5mXLo0KGsWrWK8ePHU61aNZYuXUq3bt3YsmULLVu2LHD/hQsX4uWVHQhqHMxJW7RoEU8//TR9+vRhwoQJbN++nXHjxpGWlsaLL+b/86sz8lvowd091a6OotgHCTn7nXNV0rVr1/Lkk09a2nDJ/iDPGYADlOm5mMQ9H7K6dS34+WfOdh9ks/2cv+MFAAboW9i2066Czf2bGSaWR8cQ6uNOxweCCZ7wIJcX/IVXm/JOB+AA/RdZRtCTbqVa20imwyA8/fBVNN46Lr2WPeKe1wj4MUzUdDCanlPYG28Q8PTTnOmWPbJ8LtwbXWXHK1be0QAcoEYXmJHMmm8W8/vhc+xXqtNM/wFtNQf5xtSeJ/75hQEnbKcoBIwbaxOAA9Qp52OXncIZZr3RLgAHSMiwzB92r+VN+ucpQHYA7turKl5ROaYC1HgYjjvIZjPoO4j+EM7+AVMuWrJYRLSGBoNh3q3X1aw8Rj31SZb/3/qC0mHvU8SM/xOD2p1J737BT+ZmdheS/us2jEr6FWQFxMOWWkaO3xsQSYdawXg5M3/cZIT06+CVYyqVotgE4AChJ78mxi07n3rO4xZkTPsJHH+9Cws3HmHMH22J2RhAZlrh/zku9+47lOncmWO166B2d6f6vr22Uy5S4ooegAO85uuwWKWCWgMuEbfXh6TTjqdnBTVIxiMgA7WLGVPrOXjEfAS7B+Ctg7ABljo34nSoXcyc21xwZpGygwbi1b4D50eMsJb5DniMkOnTbR6zd9eueHfN/tKgGI0cq1OXvFT+aW2B0yny+rdBCCFuR6kbCd+zZw9RUVHMnz+fSZMso1t6vZ46deoQFBTEzp0789w3ayT8ypUrBATk/XNmeno6FSpUoGnTpqxbl/0B9b///Y8ffviB8+fPU7asc0up242EJ4bgWzae9J+C2efzkMORcLDkBC9X7h8qV/kLgJ1/DsBksg32mjVrRufOnQH44YcfOHjwIABBQUEkJFh+6q9x4jTHq1dxeIwR+g7WUXKAjQ805kyg7YV0T2/7wfp3p4rNCD9hGVn+1M3ISL0Wv0E18agXiNFkpuor6+2OkRX0KYpSqHzAeV28EoqK/8P2A7FMh4qY0zK5GV3wiFY7LPOiR6DjcXRofHSETmnisG7OizXLvfsuZTp04vrqE8TV9qXjVUtWlK6XMlnUpiau5Ys+5zHz0iUMp8+QsmE9Ia++itrd8cIouVMyPlWvLD1n2qZeUwUGUnP7H0XuC4DpRoZ14Zpyc1tycYrjDCx5yZ1HG4DMdLhxGX68daFZq4mOd87JiUWDisqZgHj1M814MDxXRiLDDZh76z1StRP879bc5Csn4CMnV5Ot8TAfnyrLmzctq4nWVp3l01Edab7oNA+oYniqS2N6tGkCCx6AlIvZh07RcuaXIDxD9KjUcOOSG1oPIyo1ZN6wBOhlyqdTvmUi+iQtaq1ie6FfhaZwPscvW+5lId32izkeAZYsPPGHIfEsjN0P/rf+/dj5AWx81bnHmIvZBCgq1NpCfpxEPQ27P0FRINWlG3FrTmK+eRPP5s2o+MUXee6mGI0oRiNqt8JdIJ124ADGywlcHD8egGrRO9E6+W+9EOLedt+MhB8+fJi9e/fSt29f6wNJT09nwoQJrF27Fnd3dyZNmsTTTz9d6LZXrVqFRqNh1KjsZbbd3NwYPnw4L7/8MufPn6dChQr5tGAJCFNSUihTpozDwHDLli1cu3aNZ3Oluxk9ejQrVqzg559/tl4Q6Sy93oxaDel6E7p0M4ZMIxkZGaSnO05llZFhICMj07pdq3UjPd32AsfmzZtz89ZcbWNmJhkZlvyj6enp1r8PV6oAGY7zkl7IvEqGOnubz7XLKF7ZQUf565et7QC4uehIy0jnZHkPlly4zkpgf5WG3Lx5k9hrNzFn2E/puZaUwp+nrvLcyoP4ebrw0aCG1C3vm+9zZTIrPLPiL5v2Nk9oTccFf3ARaI7lefgZL3SoSFt/PN/2XlPpiVNMJKJguDWq/jUGeuGFcjWdMimpqBxMR/B98w2ufLgOl3KNuPDpp7gd8sIYfxPXPbG85a/hqquKbnFGYv6KptysFnb7O+Of/w1FfTQ7JdeVrduoujH7y4diNKLSaolLSrd5PrrVCeGhGU9im6Ecqv3fd9bXRFFd/+Ek6RmW5/jMzG2YcrwGQl+NIvH7k+j/cbwwhmsVHzSN/Rz3wTUQ+t2aAuVMHx//xW6aA32XWALJ3Yuceix5OaL5H8PD1hB92vHjUGNmzvufcI0yzGtupm7HIaB1hUVtIeNWIPnPRvh9AVTvAh9b0ted82nM4MsDGaT9jae1eeSxP7yOJ4An1Dm+gH/6MkezXoK/wk3775/glknF3tlBec6vB4oCGa0W4Lp9AjczAI9MTEBmzrf+adtrM8jI8dird4V+eQS1Weeq/jB4YKAls8r1s7Ao16+OT20HvwjIL1WbPgXednL11w7ToOkzULU7lK2Exr0s5Z/P2S0nXkOFfS9Ur46menUq/mX5hcQAGG7z/SSEuDfc7mfnHaEUQf/+/ZWwsDDFbDZby8aPH6+oVCqlTJkyiqurq6JWq5WNGzcWuu2OHTsqtWrVsivfvHmzAihr167Nc9/p06crgOLl5aUAiqenp/L4448r8fHxNvVef/11BVAuX75sU24wGBS1Wq1MmDAhz2Po9XolOTnZejt//ryCZS1WuclNbnKTm9zkJje5leJbcnJyISPTO6dIVyvt2bOHdu3aWUeZjUYjS5YsoUmTJiQkJHD27FkCAwN57733Ct12XFwcoaH2aaeyyi5dyvtiprJlyzJmzBgWLVrEqlWrGDFiBN9++y2tWrUiJSU7fVtcXBwajcYufZ6rqyv+/v75HmPu3Ln4+PhYbwWNygshhBBCCJFbkaajXLlyxSb43Lt3LykpKTz99NO4ubkRFhZGjx49+OWXwuf8TU9PR6fT2ZW73Zr7l3vKRk7PPfeczf0+ffrQpEkTHn/8cT7++GNeeuklaxuuObMH5DpOfseYMmUKEyZMsN5PSUmhQoUKfPtdRTw81CQmhlK2bBwBAc+z7qcLNG2W92ITJ040pXr1XfiVbcq6dRF22195xbKi4bEGDVnd17n8mfn5vKVl4ZwHY/4h8sJpm201jeVoarSsxLkYPd+Rad3276wu1Jq6wenjbJ3clmBv27mamSYz9WZstKv7v6YVeeVh2xzKStZlCmbFLv1h2PRmoFFxY+clUjbE4FbHH//Hatrt/+gHO/jkSvZ3zIdIJefEoO/b1sB7a/7ZKdJ2f4RH1GibMuPVk6Tveh/XT7/k4R8usObnV0ClQeXuh5Jmv0Jicaj6+2+3NW816ZczBc6nD30lCrVbqbxOO28XD4BPOdsLKAFm5/gS/2IMXDsJn+WfWSmns+ZgumXM4zvXGdRVn7OWdzbMI1axrFZ35LXO1lz5TjEa4MoxCKptmXddpQNUagGuBWf3EUIIcftSUlIICyt8Vqc7qUifulqtFkOOJOhbt25FpVLRrl07a5m/vz9Xr14tdNvu7u42bWfJSjHonsdFbXkZNGgQEydOZPPmzdYg3N3d3WYudO7j5HcMnU6Xx5cENe7uatLTNbi7q/HydMPV1QV397x/bAgLvYy7u5pM47+4utrPo/T0tGQd8FCriUhI4GJ5+/zOzjKpVKhuPa79tR6kScJ5m+3tzfXg1veSm4A6R4YRT09P1K7OXwCVatRQ2dMTg9HElmMJNKsSwImEVIdtHIzTWx+nIx6u2eei3NyW1l9fvB6qTlDbKqhdHc9Pnd7nQT794qA120oVTJy+FYZ7oyJkZyK4Oj7PqT8+DYoZXa7jAxBWD5fyjTCNe45fDSmgK0OZh98BwHBsHRnH1to3eBvKf/wRZQp53s0GE+YbGRgTDVz97DDg4HEAoVObohhMaP0Kv/pnqVA9j0xJ0y/C3FvP2Tu3vty6OgiYm42BTrP4/M8Y1Gd+58SJf/jGZEnNqXaFIczihOsTANTTL+bQ2/mvLJs/T/C5lTKy7we30Y4QQoiiMJlMBVe6y4oUhFeqVIktW7ZY7//f//0fERERhIeHW8suXrxozWVdGKGhoVy8eNGuPO5WrteifIupUKEC169nX6QUGhqKyWQiISHBZkpKRkYG165du71vSkrWh71CQclCAoMso2xGY6pNea9evfDz8yN57VrranX+V6/dVhC+tUb2ioK6TNsvIOVMthkituUYBQc4Hm/bv4L0+OhPYuY9zJsbjvP5jrMAjGhpP9IPMKlz9Xzb8n+yNqm/nydwVD27i2zzCsABWlcLYG/bCrDVMjr9JV60JAVX4BcKyHSiZI+Z39wyE89202w2uzexXHB8Y8MLeHV501quq/mIXRA+qdVovn9/BDVe+41BxzYy+JjtrwHnygQTnpr3QkFebdrYld3cF4/aTYt7HdsMQIqikPh/J0jbn/8iOT5dIyjT5tZrybNklkK+o3ROZLLpMB1aWX7RGt6qMrSypKCbCyTezKDBrE1k4EIlvSUF4f6pzo+kCyGEEM4oUhA+ePBgJk+eTFRUFDqdjr///ts6dSLLoUOHqFatWqHbjoyMZMuWLaSkpNikkNm9e7d1e2EoikJMTIzNKpNZbezbt49u3bpZy/ft24fZbC70MWyOl/WHyuZeodSvXx+Afzs9VOR+5HYyOHv6UL992TmnHzU0wk+xze2dOyNH53ezU+ItG9aEazcNbDl2hbV/5z+dIysAB/gsx98AvRuWY0DjijSulP80C/cafrjX8Mu3jiMqlYpJXWpyYWv2FJEKqPkG28f62K1pKllpEQ25cl2bky+QvvtjtKGRuFS0XfwmZwCepUzPxda/Oxmvkq51RefuxmuP1mY68HWNTuT+drb+B0sqziu9/seDj7Yn9slhVFy6BPcGDWyWilYUxSadoN/AGnjUz/4S6WyqQWsAfj97NQFezzVNZciPENHG7vnPrayna5HyrQshhBCFUaQLM8eMGUO/fv3Yt28fO3bsoGvXrrz88svW7UePHuXvv/+mffv2hW67b9++mEwmFi/ODmYMBgNLliwhKirKOhc9NjbWuoJklitX7OfkLly4kCtXrtClS/YKj+3bt8fPz4+FCxfa1fXw8ODhh2/nA1hl/W9+C/YUlosxs+BKTvLKkQovSPFBm2PqSWtSbOp655on3CTCj14NylMzNHu08eF69hfSAnnOme1QM4hpjzxAkwi/QuUWLwrfHtk51HMH4ImYuYhCHApxPufRH/k/Mv790aZO155vYYw7iH7/0kIf+ymtNz0jLb+qPNG8kuW5vPV4j7zW2Vrv/2Z/Tdkvv6LVnJfxbNaMWsf+xbNpU9S5pj2lbI61uX/9m+NkXrakXLq2Iv9l3UNeaIx7vQBCJjUq9OO4J2l10PCJ7PtTLliWYb/DrzchhBDCWUUaCdfpdHz77bekpKSgUqkok2u1seDgYA4cOEClSpUK3XZUVBT9+vVjypQpJCQkULVqVb788ktiYmL4/PPPrfWGDBnCtm3bsi/iA8LDw3nssceoW7cubm5u7Nixg5UrVxIZGclTTz1lrefu7s6sWbMYPXo0/fr1o3Pnzmzfvp2vvvqK2bNn4+dX+JFXq6zuqBSKOhIOkLLRdtpCpbMx/NXIPoDq9+13qBWFDf8bRLLR8XwnZ3vRP9fFiwCpBiPVg704cfkGAG4uloD9iWaV2H3mOp1rhzAoqiIfDYLRK/bz82HLtKGnl/+FyWx/5JGtIuwuxLyTPKNCSfrxtMNtXkMegGV7AKg1oT/qzjVRDAOJfXKYtc7G51vjltKem7//jv7Al7g1eMJhW470xZWAPvWs9w/N6Myfp67yQKg3XjotJ2d35cbVdG6+sx/jXri4ZgfaYA/8+tcAtQrX0Oy58jf3xpP6W6zdMS6/s9/hscv2r05GTApeLcJwCba04z+olsO6961H37fchBBCiFLottIh5LXiUEBAQL4rVhZk2bJlTJ06leXLl5OYmEi9evVYt24drVu3zne/xx9/nJ07d7J69Wr0ej3h4eG88MILvPLKK3h42GYhePbZZ3FxceHtt99m7dq1VKhQgXfeeccuw0phZYWd6WmHqFHjiFP7+PpG2ZVdHGfbD63JRNWTJzmVa4qP+taXkD3+++l6qRNnNAlUMQVzWpM9z9joYHGNAHMZGhgt87Q1vjqCxkRy6fVNAIxpV5Ux7atSc+oGFAVrAL7kyewVAz11Wr4cZrsS5YLH6luD8A1H4x0+1ild724gqMpjND5oTCSu5ctwdm43TGYFrUYNDS3z5qv+sY2rCxdSdsBA3ILLoLz/Hmf79uMrkwvbuMFNFFblmlce8lIT4uftsTuOTm37Y1OLqpb3helGBpdvrVqZk/FyGgkfHADAvV6ANXBOXH3SWkcb6I7xSt4ZfMrPawWAZ8PgPOsIIYQQomSVypxkbm5uzJ8/n/nz5+dZZ+vWrXZln376aaGOM3LkSEaOHFnY7hXAEvQlp/yKX+7rUk2Ag2sJzxs6AtmjnEoeV/BWO2EfhGc56n6auZnPUc0Uiu++HzndvJJ1m7c6e9714OgN6BQtPTOyA2iXEE80Xq6EeLsRn6LnodrB1hHvnHzc87+IT6fNZyW9W9SFSetWTMrPa8WFl7Zb73t3qWRdhl6lUqHV2PbJJSiI0OnTrfdVWi2Vf1hDu5NXSNx/kfl965H2x0VSfo0BIHRKEzQ+OkJeaEz8m3tRl3HFnGq5+PXiKzusQTFA+tFrXFv+j1P9Tj90FWM3PRof22kpwRMexJyaQdwc+6C/3Nw8MoYIIYQQolRxak64Wq1Go9EU+qbVlsoY/85S8g4yleOOcwJ/tesiPxjqADB06FAujHM8Gq81Gm3ud9i0OcdhFbS1vakSXhlibYOzRmbL9A8XYyaeGXpCzbYXQ/oNqMELq/4mPsUyV7yMm+Ngu6AgvCDaEgjAs3g2CbH+bUqyT4HpjFbVAnnnsUi0GjWejbNHmbOCZK2fG+XntSLsFftfNrI4G4BniZ+31/ZizEE1UalUaLx1hE1ralM37LVmd3yOvRBCCCGKh1NRcuvWre0+3BMTEzl06BAajYYKFSoQHBzM5cuXOX/+PCaTiXr16lH2NhYYuS+ZHAdIZkVDkuLOFs82zKhUiX9/+81hPU2uEfKAa9cA+LSzmnfbvkv5cMt0iqCn/oEZM6z1km8tdJSptQTRLTOzp4QEj2/IpfQMvtt3wVqW+2LMLL5OBOGrnm5G309sF9g5Nbsrm/65TKcHSm56RNne1ciMv0lGbCq+DztOl1gYGi9Xys1uAXl8sSjTtjypWy3PqVlvBBUk/3zWYV0AjwZBuJb3wqVCGTLOJpO88RyY7OfUe9QLtP6t9nCxGWUXQgghxL3DqSA899SPCxcu0KJFCwYNGsScOXOoWLGidVtsbCxTpkzhzz//ZN26dcXa2XtBfhdBKqc8UdW9aVduUiw/SJy7ljs5oK3cQXiW06EqOoR3sClr3bo1f/zxB80zazCzZvZ0hhF623raIA9avmy7smnWSPjTbarwybbsixq9nQjCqwXbzpWOntIerUZN17qOM6jcTUHPRhZreypN3j8keXeuZA3CL82IRlfZB8OZZLt6gU/Xw7Wit83cdV1Fb0w3Mrmx3TZfvjawcAtVCSGEEKL0KlKKwkmTJhEaGspXX31lE4ADVKxYkRUrVhASEsLkyZOLpZP3lDymo7jvVmM+5uVwm0kpeC41gNqcO3eJxWvt5tqVtW/fnhkzZvCAqTyujncD4GamfWDvqrW8LIY0C7cpd8kn6MyScxT9m5FNCfX5bwaOuX85yh2Al5vTkvLzWqGr5OPw4lGfh24991o1fgNq4DeoJiET/yPpBYUQQoj/gCJN2t68ebNNyj9H2rdvX+gLJe9nvl9rSA5zHGybzc59F1IrjsfZHwip57AcYEOIln98LMet4+WOxtuAKSV7xcxHP8x7gZcw3+wAuk31wDzr5aRSqTjxelduGIz4ebo6tc/9Kmh0JAkfHbQrDxheJ8+sLVlULhqZaiKEEELcx4oUhOv1eusy8nm5dOkS6el5p1G7Xyk4Dq5UmSoUlYrtf/yPVq2/ynN/wxn7ecM1D/3NsXqWVTQrxMZyPtevD/l5tX52IB1ZxgNzxnWb7Weu2E+PySlm3sOYzEqeC+844qpV46f9bwfgAK4V7JdPLzerOSoHmWeEEEII8d9SpOkoDz74ICtXriQ6Otrh9p07d/Ltt9/SuHFjh9v/qxSVCvII0rOc6dbN5n66K6hcswPaB/f9xUnvk2wO22i9zlMbEoIzfr6ShKLPzrDyCxn51M5WmABc2ArNlSlFAnAhhBBCQBFHwmfPnk2HDh1o1aoV3bt3p2XLlgQFBZGQkMD27dtZt24dWq2W119/vbj7W/rll6Lw1jzhzAwdLq7ZafJUKNS7cop4D/uVOnfVUNEwx31dRgaH/A8BsOfLsfSq3MNuefMsF/S2QXZirhU155C9fH0ZnZZZPesQWcE3z/6LwtOUcSVsWlMMZ1Nwq3kbK7EKIYQQ4r5SpCC8ZcuW/PLLL4waNYoff/yRH3/8EZVKZV1CPiIigsWLF9OiRYti7ey9IN/sKLdGlFVGBXLM1uh1ahst/jzlcJ91TdQ8m0d7w5rktcWi70HHbToyu3ddHq0f5nR94Ty1hwvutXOv3CSEEEKI/7Iir6bToUMHTp06xY4dO/j7779JTk7Gx8eH+vXr07Jly//woiEFj4TnHi1vcOWkdT/vRx4hJUdqR7MazIoZnx49SP7xR2b3d34GUUy67Uj47qa1UO88gDk1065u2xrOXXgphBBCCCFu320taalSqWjVqhWtWkkWB6t8hsKzg3DbckvWk1vbck0tueQHk7ZNYsEbCwh7Yx5/f1m3SN2KbxcJgHF0JN/O28m3ueaDe7r+B1c3FUIIIYQoIUW6MFPkLa/sKEs6qzCrHD/dqhxTtVftjbX+PWqsBkWtYtO5TQDE34y3busa0bXAvjTy9rAr0/q68QrpHMJ2frhcfCmEEEIIcffc1vBndHQ0mzdv5tKlSxgMBrvtKpWKzz///HYOcd+44ptjJDwX11PZ5RpzdnBsyLVAZWxKdoD+StQrBR7zWqYlE8rr1cpZy9IyjHlVF0IIIYQQd0mRgnCj0cjAgQP5/vvvURTF5qJMwHr/PxmE55EdxaTOvjAz53QUr1/VqHLs0+HCfuvfmbmy2blqsq/mdNO6FdiVs7fmhP92LYUR5S1zvt/ZdMKmToOKvnSsFVxgW0IIIYQQovgUaTrK22+/zerVq3nyySfZt28fiqIwfvx4oqOjeeONN/D19aVfv36cPn26uPtb6uWbHeXWSHjKvvB8amUzavOeIqLTOE5LaD1Wji9FW66nWv/+dHv2YkCvdKvFmmdbMLpdVaf6I4QQQgghikeRgvAVK1ZQp04dPvvsMxo2tGSx9vX1JSoqismTJ/PHH3+wbt06fv3112Lt7L3BceBcNUGxBuH6M/4FVbeTac5k8PrBduWKovDVpWv8lWy78qXenB2E/9ywGgAZRrNNnYr+9nPGhRBCCCHEnVekIPzUqVO0bdvWel+lUpGZmZ32rnbt2nTv3p2FCxfedgfvOXkMhfdNTbUG4WrF7LhSPjJM9qtbxifrGbn+CJOOn+fh/Se5pM8gZMtBQrYcJOKPQ9Z6ES4umM0Ke2Nsl6wv5+ueu0khhBBCCHEXFCkId3V1xcMjexTVy8uLhIQEmzrh4eGcPHny9np3T3I8tB1iMlmzo6iU/CatWLzdy/bUJBmSbO6n6DNpOvc3fkm+YS1rGP2Pw7YaztxE5Zd/Ifd1oXXK+RTYDyGEEEIIUfyKFIRXqFCB8+fPW+/XrFmTP/74w2Ye8q5du/Dz++8t0+3MnHCVueAg/HAl24j5/f3vW//WaXR8+PspjBFemEOcH82e+sMR69+THqru9H5CCCGEEKJ4FSkIb9OmjU3Q/dhjj3H8+HEeeeQRPvroIwYOHMiOHTvo0qVLkTplMBh48cUXCQsLw93dnaioKDZt2lTodjp16oRKpWLMmDF225KTk3nhhReoVq0a7u7uhIeHM3z4cGJjYx20VAh5ZEdR5ciO4sxIuCnXmfnl7C/Z2wz+/Ho0HmP1wo1kn76SPW98TPtqhdpXCCGEEEIUnyKlKBw2bBgmk4mLFy9Svnx5xo4dy9atW1m3bh3r168HoEmTJsybN69InRo6dCirVq1i/PjxVKtWjaVLl9KtWze2bNlCy5YtnWrj+++/Jzo62uE2s9lMp06d+Oeff3j22WepXr06p06d4uOPP+bXX3/l33//pUyZMkXqe158wtNRzliCcKM6OwjXXnIctBs1oL/cFbfg9XbbDCYj566lAWWLtY9CCCGEEOLuKFIQ3rBhQ5uLLl1cXFi7di379u3j9OnThIeH06RJE9Tqwg+079mzh5UrVzJ//nwmTZoEwJAhQ6hTpw4vvPACO3fuLLANvV7PxIkTefHFF5k2bZrd9l27drF3714+/PBDRo8ebS2vUaMGw4YNY/PmzfTq1avQfYe8p6OotYrNhZlvx+uINJr5317H9U1qyLzexmEQrtElONgjj+NeTne6rhBCCCGEuDuKddn6Ro0a8dhjj9G0adMiBeAAq1atQqPRMGrUKGuZm5sbw4cPJzo62mYuel7efPNNzGazNYjPLSUlBYDgYNtFakJDQwFwd7+NrCF5TEcBSL01uq6g4nymhv1XtDYL9WQxqsHuKspcgr3zzxMO4LL/Gq4Hr9uVD2hcocB9hRBCCCHEnXNby9ZnZGSwefNmjh07xs2bN5k6dSpgGYlOSUkhICCg0MH4gQMHqF69Ot7e3jblTZo0AeDgwYNUqJB3EBkbG8u8efP44osv8gymGzVqhKenJ1OnTsXPz48aNWpw6tQpXnjhBRo3bkzHjh0L1ecsx/5tSZkyV/PcfjkkBICYKlWBY5jziLONGsflNm2lGByWqxP0aC7cRJ2cgSrDcSpEd1cnDiCEEEIIIe6YIo+Er127looVK9K9e3cmTZrEjBkzrNsOHTpEaGgoK1euLHS7cXFx1hHpnLLKLl26lO/+EydOpEGDBgwYMCDPOgEBAXz77bckJyfToUMHypcvT9u2bQkLC+P3339Hq837u4nBYCAlJcXmlkVRVDhxzSWZrpZR7Lg8ksfkDMLNmfYXX944MfVWRfsg2+XfJDRX9HkG4ABldLf13UsIIYQQQtymIgXhf/75J3379kWn0/Hee+8xaNAgm+1NmjShatWqrF69utBtp6eno9PZT7Vwc3Ozbs/Lli1bWL16Ne+++26BxwkMDKRBgwbMnj2bH374gRkzZrB9+3aefPLJfPebO3cuPj4+1pv9qLzj4W09rvaFeUw5yRmEKyb7VS0Vk6flD7WD/Z1Ifzi8VeUC6wghhBBCiDunSEOis2bNwtfXl7/++ouAgACuXbtmV6dRo0bs3r270G27u7tjMNhPtdDr9dbtjhiNRsaNG8fgwYNp3Lhxvsc4c+YM7dq1Y9myZfTp0weAHj16UKlSJYYOHcr69evp2rWrw32nTJnChAkTrPdTUlJyBOIqh1dmuqSp+Fz9P3AwOL23morGJ213Mjrx1UhR4TgIN9q25e2mJUVvtCnzcXcp+ABCCCGEEOKOKdJI+O7du+nRowcBAQF51qlQoQLx8fGFbjs0NJS4uDi78qyysLAwh/stW7aM48eP89RTTxETE2O9AaSmphITE0NaWhoAS5cuRa/X88gjj9i08eijjwKWkf686HQ6vL29bW75OX68OaF/uXHF7Din9z8VHVyYqQHjzSoO66edG2H5I0cArjl3A5e9V3DdlWC3ENCC/pGMbBVhvf/BwAb59lcIIYQQQtx5RQrCDQZDgcFnUlJSkTKkREZGcuLECZu51oB1VD0yMtLhfrGxsWRmZtKiRQsiIiKsN7AE6BEREWzcuBGAy5cvoygKJpPJpo3MzEzAMqpeVEqu6SjXr5W3y4BS45/D1r8fPGU/dG7U5JyGYruvKa2q5Q9Ndrn2WDKa6xmoky3971w7O+vL4YvJlC+bPaWlVmj+500IIYQQQtx5RQrCK1euzN69eSS4viU6OpqaNWsWuu2+fftiMplYvHixtcxgMLBkyRKioqKsUz9iY2M5duyYtc6AAQNYs2aN3Q2gW7durFmzhqioKACqV6+Ooih89913Nsf+5ptvAGjQ4DZGi3PF1IqisgvMyyZmpw0MSHYchLt5XgYg43pza7k6x+whxT174njusfQhzSpZ/25UqSxHLyVb73vqJDOKEEIIIURJK9Kc8D59+vD666+zZMkShxcyvvXWWxw5coQ333yz0G1HRUXRr18/pkyZQkJCAlWrVuXLL78kJiaGzz//3FpvyJAhbNu2DeVWOpKaNWvmGfRHRETQs2dP6/2hQ4fy1ltv8dRTT3HgwAFq167N/v37+eyzz6hdu3aRF+rJS+4gPGcKFUdpxU1qMGksC/IYkx8k0+MMLr77uXmhn7VOZi3fPI/nlSP7SeNKfgxfus96X6eVIFwIIYQQoqQVKQifPHkyq1evZsSIEXz99dfWCylfeOEFoqOj2blzJ5GRkYwZM6ZInVq2bBlTp05l+fLlJCYmUq9ePdatW0fr1q2L1F5u/v7+7Nu3j2nTpvHTTz/xySef4O/vz7Bhw5gzZw6urg4ymThBwUHAjQol1w8O6hzztg9WVhH6V64LM23iZBX6uP7o43uAkp01RvHJu4/Vg8vQrLI/njotOq2an8e1pNM7fwDg51m0xyaEEEIIIYqPSlGcyWxtLzExkTFjxvDdd9/ZzK1WqVT079+fjz/+mLJlyxZbR0urlJQUfHx8+HFtJc6da4uXxzUqVjpq3f7njgGUNadyjeyk4F7nf+fL1okAaI0Kc5eaCL+S3ebRivDa41pS/51ncyy1CjLCPDDWsX1e3X69aHP/7NxuqHKlP9RnmtBp1XblQgghhBD3u6x4LTk5ucDrGu+WIq/aUrZsWVasWMH777/P3r17uX79Ot7e3jRu3NhuOfj/FvuR8JwBOMCGhtl1jFoVk0do+W5u9sWgtWMh3KsaR3K19HzH6sxW3yy4Bw4CbTcXmYYihBBCCFFa3PbSif7+/nTp0qU4+nLvU1R2l7oqDiZ9ZzrxrFfwDrMLwkN83CC14CBcCCGEEEKUbkVetl44FhJyqsA6ZlXeS8pnmdF8qs39Ua0r06V+aIH7jW7nOL+4EEIIIYQoPZweCX/22WcL3bhKpeKjjz4q9H73MldXfa4S+5FwRyH44XAVdc9lT88P9sye0jOzR22GNKvE9Uz7/OUfPxDOzO0JJKVZcoRP7lz4tJBCCCGEEOLucjoI/+STTxyWq1Qq8rq2878YhOeW+6nZX6EaZ8M74nP5NbTG7BVFv2qv5o0ltosH/T3tIa7eNFAl0AuAy4ZMu/Zb+Hqx95WObD95hVbVAov/AQghhBBCiGLndBC+ZcsWu7KlS5eybNkyh9tEFtuR8D2VawNw03cAPlfftZa7Zdjv6ePhgo+Hi/X+9FMX7eq4qVW4aNS0r/lfvhhWCCGEEOLe4nQQ3qZNG7uyrVu35rlNZMkjJaDKdjq+0YnkJafSDHZlOrVM6xdCCCGEuNdIBFeMynhfKbhSHjJyfB1a3MXxaTGY7af96NSS91sIIYQQ4l4jQXgxcndPLfK+54Ky/77h5riOq4OAWxbfEUIIIYS490gQXlo4CKbfOBPHqKMxmG9d3Rnn4MJMIYQQQghx77ntxXpEUdkH3adCoXIcHK5k2fbOucsADC8XQKjOxa6+EEIIIYS4N0kQXoq8MkSDiwkyXGwDdL1ZkVFwIYQQQoj7iNNBeLdu3ezKTp06lec2sMxX/vnnn4vYtXuQgyXqczoaWinHPRVzWs7h5R0vZ++uVpGhho4VO2LKkWBcQeH4TfvMKEIIIYQQ4t7kdBC+YcOGQm+TiwZtba8eaXO/ll8t698qVChYAu8uEV3IyJEJJSY9g/+Lv26zb3k3F+ZUK3/nOiuEEEIIIe4Yp4Pws2fP3sl+/OfkTjao5CrJMGcvbv/SiQt0CfC23j/Wsg6+LjKTSAghhBDiXuV0JBceHn4n+3HfSEvzxsMjxam6CgpNQ5uyK24Xvar2Ys2pNQAEewSTkWu9+4cCfNhw1dKuBOBCCCGEEPc2ieaK2ckTTakfudF6/6qXD2qzGb+03DnELdNPFrRdwJ+X/qRN+TZ0qNiBmJQYIoMiuai3XcfeeGt6StcAnzv9EIQQQgghxB0mQXgxy8x0t/59Ew9WPdgOgKe2/ZCrpmW+fBnXMnSp1AWANhXa0IY2ABxMTbOpnTUy7mjBHiGEEEIIcW+RxXqKWc5ZJEmUzS7PnRdcpcHfzT/PdlbHJ9rcz1qyXoJwIYQQQoh7nwThxU7l4C9QcmWKqVa2Jv7ueQfhuS/c3J10AwA3tZwyIYQQQoh7XamM6AwGAy+++CJhYWG4u7sTFRXFpk2bCt1Op06dUKlUjBkzxuH2y5cv89RTT1GuXDnc3NyoVKkSw4cPL3K/FeyD5yzJ7p42991dvPJtq2ug7dzvjdcsF2W6StpHIYQQQoh7XqmcEz506FBWrVrF+PHjqVatGkuXLqVbt25s2bKFli1bOtXG999/T3R0dJ7bz58/T4sWLQB4+umnKVeuHJcuXWLPnj231/k8FuzZUqOhzf1MJa9w3UKTR7lORsKFEEIIIe55pS4I37NnDytXrmT+/PlMmjQJgCFDhlCnTh1eeOEFdu7cWWAber2eiRMn8uKLLzJt2jSHdZ566im0Wi179+7F3z/vaSGFZzMJxfrXFe+yNrVMBQThuVMUZtHJnHAhhBBCiHteqRtWXbVqFRqNhlGjRlnL3NzcGD58ONHR0Zw/f77ANt58803MZrM1iM/t2LFjrF+/nsmTJ+Pv749eryczM7NY+p8zdlblOTkFjt7Q59tOplmCcCGEEEKI+1WpC8IPHDhA9erV8fb2tilv0qQJAAcPHsx3/9jYWObNm8cbb7yBu7u7wzqbN28GIDg4mA4dOuDu7o67uztdu3YlJiYm3/YNBgMpKSk2t2wqyJ0FpYgSM00Oy8+mZzgsF0IIIYQQ945SF4THxcURGhpqV55VdunSpXz3nzhxIg0aNGDAgAF51jl58iQAo0aNwtXVlW+//ZZ58+axY8cOOnbsSFpaWp77zp07Fx8fH+utQoUKNtvzn2TiWIrRxICDp2m+61/Ophksxzkb57BuzuXshRBCCCHEvanUzQlPT09Hp9PZlbu5uVm352XLli2sXr2a3bt353uMGzcs6f5CQkL4+eefUd+62LF8+fIMHDiQr7/+mhEjRjjcd8qUKUyYMMF6PyUlxTYQz3FhpuLkd5yZpy6xNdGyouaTR86ytUnNPOu6yoWZQgghhBD3vFIX0bm7u2MwGOzK9Xq9dbsjRqORcePGMXjwYBo3blzgMQD69+9vDcAB+vXrh1arzffiT51Oh7e3t80tL6epmm8/shxIvWn9+9hNPe/ExOdZVxbrEUIIIYS495W6kfDQ0FAuXrxoVx4XZ5meERYW5nC/ZcuWcfz4cRYtWmQ3rzs1NZWYmBiCgoLw8PCwthEcHGxTT6PR4O/vT2Ki7WqVTlNAyTES/olqnFO7qXLNI3/jbN5BuITgQgghhBD3vlI3Eh4ZGcmJEydyXfCIdYpJZGSkw/1iY2PJzMykRYsWREREWG9gCdAjIiLYuHEjAA8++CCAXbCfkZHB1atXCQwMvI1H4HyYbLyVASW/PV6tbDs/3lebVwZxIYQQQghxryh1QXjfvn0xmUwsXrzYWmYwGFiyZAlRUVHW+dexsbEcO3bMWmfAgAGsWbPG7gbQrVs31qxZQ1RUFABt27YlKCiIFStWWKe5ACxduhSTyUSnTp3uxkNly/WUAut45wq6x4QH51FTCCGEEELcK0rddJSoqCj69evHlClTSEhIoGrVqnz55ZfExMTw+eefW+sNGTKEbdu2odxKzF2zZk1q1nR8QWNERAQ9e/a03tfpdMyfP58nnniC1q1bM3jwYGJjY3nvvfdo1aoVvXv3LnL/lTxWzHTkpsmS6eTwjbwvNs0dhOe+L4QQQggh7j2lLggHy/SRqVOnsnz5chITE6lXrx7r1q2jdevWxXaMIUOG4Orqyrx585g8eTK+vr489dRTzJkzB43m7gS6aaaC0w16aErdjxVCCCGEEOI2qRSlgPXTRb5SUlLw8fHhx7WVSLsZwYkTzWjRciUAj6tW29Wv6+VuM/Id3y6SkC0H82z/xwZV6XHglE19IYQQQgjhvKx4LTk5Od/MdneTDLPeZQ29PezKyuQz2h2fkXknuyOEEEIIIUqABOHFSHFi2fqN1+wvxmzvn/c3Mg0qugf6AnC4Re3b6Z4QQgghhCglSuWc8HtZQRdmxhnsR7bz+yZUr4w7jwT53l6nhBBCCCFEqSIj4cVIReGn1y86n4Aun6XoK7rrbqdLQgghhBCiFJIgvBg5Mx0lt+mnLmGUa2OFEEIIIf5TZDpKMStKPL3qcmLxd0QIIYQQ9ySTyURmpiRmKAwXF5e7lmK6uEgQXuwKNxIuhBBCCAGgKArx8fEkJSWVdFfuSb6+voSEhKBS3RuxmAThxS7/E587T3h+hoT5F0eHhBBCCHEPyArAg4KC8PDwuGeCyZKmKAppaWkkJCQAEBoaWsI9co4E4XdZgKvzT/noikF3sCdCCCGEKC1MJpM1APf3l0G4wnJ3dwcgISGBoKCge2JqilyYWcwqnzmV7/bCzBkPl8woQgghxH9C1hxwDw/7Rf2Ec7Keu3tlPr0E4cVMVUCQHaJzuTsdEUIIIcQ9R6agFN299txJEH6HXCbYYfnUKmH80aTmXe6NEEIIIYQoTWRO+B3yEeMdlvu7avEvxLxwIYQQQghx/5GR8OKUY8n66xT+oorNjaoXZ2+EEEIIIe64GTNmoFKpbG41a2b/6r948WLatm2Lt7c3KpXKLgWjwWBg8ODBeHt7U716dTZv3myzff78+YwdO/ZuPJS7SoZkS5E6ZTxo7uvFzqQbJd0VIYQQQgin1a5d2yZ41mqzQ8y0tDS6dOlCly5dmDJlit2+ixcv5q+//iI6Opr169czaNAgLl++jEql4uzZs3z66afs27fvrjyOu0mC8DtAazSjaO0vDhhRPqDAfQeE+rEz6QZ1vdzvRNeEEEIIIYqdVqslJCTE4bbx48cDsHXrVofb//33Xx599FFq165N5cqVmTx5MlevXiUwMJBnnnmGN954A29v7zvU85IjQfgd0HxPIkkt/OzK+wTbl+XWL7gsld111PR0uxNdE0IIIcQ9ZsGCBSxYsKDAeg0bNmTt2rU2ZY8++ij79+8vcN8JEyYwYcKEIvfx5MmThIWF4ebmRrNmzZg7dy4VK1Z0at/69euzfPly0tPT+fXXXwkNDSUgIIAVK1bg5uZGr169ityv0kyC8GKUlu6NK+BidJynsIpHdt7v9n5l+P16ql0dlUpFIx/PO9VFIYQQQtxjUlJSuHjxYoH1KlSoYFd25coVp/ZNSUkpUt8AoqKiWLp0KTVq1CAuLo7XXnuNVq1aceTIEcqUKVPg/sOGDePQoUM88MADBAQE8N1335GYmMi0adPYunUrr776KitXrqRKlSp88cUXlCtXrsh9LU0kCC9GV69UIoyEPLfnvAp2VIVAh0G4EEIIIURO3t7eTgWegYGBDsuc2fd2pnt07drV+ne9evWIiooiPDyc7777juHDhxe4v4uLCx999JFN2ZNPPsm4ceM4cOAAP/zwA3///Tdvvvkm48aNY/Xq1UXua2kiQXgxKmg1zJw55B/0ltFuIYQQQhTsdqaK5J6ecjf4+vpSvXp1Tp3KfxXxvGzZsoWjR4/y2WefMXnyZLp164anpyf9+/fnww8/LObelpxSmaLQYDDw4osvEhYWhru7O1FRUWzatKnQ7XTq1AmVSsWYMWPyrbdjxw5rSp2rV68WtdsF0pAdhZfRau7YcYQQQgghSsqNGzc4ffo0oaGhhd5Xr9czevRoFi1ahEajwWQyWZehz8zMxGQyFXd3S0ypDMKHDh3KggULePzxx3nvvffQaDR069aNHTt2ON3G999/T3R0dIH1zGYzY8eOxdOzOEam818uVX1vraYqhBBCCFGgSZMmsW3bNmJiYti5cye9evVCo9EwcOBAAOLj4zl48KB1ZPzw4cMcPHiQ69ev27U1a9YsunXrRoMGDQBo0aIF33//PYcOHeLDDz+kRYsWd++B3WGlLgjfs2cPK1euZO7cucyfP59Ro0bx+++/Ex4ezgsvvOBUG3q9nokTJ/Liiy8WWHfx4sWcP3+eESNG3G7XC6TOJ0hv6O1xx48vhBBCCFHcLly4wMCBA6lRowb9+/fH39+fXbt2Weeof/LJJzRo0ICRI0cC0Lp1axo0aGA3VebIkSN89913vPbaa9ayvn378vDDD9OqVSsOHTrEe++9d/ce2B1W6oLwVatWodFoGDVqlLXMzc2N4cOHEx0dzfnz5wts480338RsNjNp0qR8612/fp1XX32VmTNn4uvre7tdL5Amn5HwL+tG3PHjCyGEEEIUt5UrV3Lp0iUMBgMXLlywZjLJMmPGDBRFsbsNHTrUpp06depw8uRJm9kJarWajz/+mOTkZPbs2UPVqlXv1sO640pdEH7gwAGqV69ud5VukyZNADh48GC++8fGxjJv3jzeeOMN3N3zX/Bm6tSphISE8NRTTzndP4PBQEpKis3NWSpV3lF4oKuL0+0IIYQQQoh7W6kLwuPi4hxO5M8qu3TpUr77T5w4kQYNGjBgwIB86x06dIhFixaxYMECNBrnL5KcO3cuPj4+1pujnJxCCCGEEELkp9SlKExPT0en09mVu7m5WbfnZcuWLaxevZrdu3cXeJxx48bRtWtXHnrooUL1b8qUKTZpglJSUgoMxOfXKE8tT1mGXgghhBBCWJS6INzd3R2DwWBXrtfrrdsdMRqNjBs3jsGDB9O4ceN8j/Htt9+yc+dOjhw5Uuj+6XQ6h18S8jM4LMBheVmthkTj/ZNqRwghhBBCOKfUBeGhoaEOl1eNi4sDICwszOF+y5Yt4/jx4yxatIiYmBibbampqcTExBAUFISHhweTJ0+mX79+uLq6WusmJSUBcP78eTIyMvI8Tn4KWKvHTj5TxIUQQgghxH2s1AXhkZGRbNmyhZSUFJuLM7OmmERGRjrcLzY2lszMTIf5I5ctW8ayZctYs2YNPXv25Pz583z99dd8/fXXdnUbNmxI/fr1C7wAtDioCsgrLoQQQggh7k+lLgjv27cvb731FosXL7amGDQYDCxZsoSoqCjr/OvY2FjS0tKoWbMmAAMGDHAYoPfq1Ytu3boxcuRIoqKiAFizZo1dvZUrV/Ltt9+ybNkyypcvf1uPwdkRcQnBhRBCCCH+m0pdEB4VFUW/fv2YMmUKCQkJVK1alS+//JKYmBg+//xza70hQ4awbds2FMUS8tasWdMakOcWERFBz549rfdz/p0la+S7a9euBAQ4nsPtLLOTSWcquLlyNdN4W8cSQgghhBD3nlIXhINl+sjUqVNZvnw5iYmJ1KtXj3Xr1tG6deuS7lr+FMvYttnJyd6f1A7n5RMXGV0x6E72SgghhBBClDIqJWsoWRRJSkoKPj4+/Li2EkeP9KH8P/E8VnU9FVv/Zq0T3y6y5DoohBBCiFJPr9dz9uxZIiIirGmZReHk9xxmxWvJycl2C0KWlFK3WM/9IOd0FDeTfbpFIYQQQoj7xYwZM1CpVDa3nFOE9Xo9o0ePxt/fHy8vL/r06cPly5et269fv0737t3x8vKiQYMGHDhwwKb90aNH8/bbb9+1x3O3SBB+Byg5ZqNoFMkDLoQQQoj7W+3atYmLi7PeduzYYd32/PPP89NPP/F///d/bNu2jUuXLtG7d2/r9tmzZ5Oamsr+/ftp27YtI0eOtG7btWsXu3fvZvz48Xfz4dwVpXJO+L3O2QszhRBCCCHyoigKaWlpJXJsDw8PVIVY0ESr1RISEmJXnpyczOeff87XX39N+/btAViyZAm1atVi165dNG3alH///ZcBAwZQvXp1Ro0axeLFiwHIzMzk6aef5rPPPkOj0RTPAytFJAi/I7JftGrMJdgPIYQQQtyr0tLS8PLyKpFj37hxA09PT6frnzx5krCwMNzc3GjWrBlz586lYsWK/PXXX2RmZtKxY0dr3Zo1a1KxYkWio6Np2rQp9evX5/fff2fEiBH8+uuv1KtXD4A333yTtm3b0qhRo2J/fKWBDNneATmzo6gKvY6mEEIIIcS9IyoqiqVLl7JhwwYWLlzI2bNnadWqFampqcTHx+Pq6oqvr6/NPsHBwcTHxwPw0ksvodVqqVKlCmvWrOHzzz/n5MmTfPnll0ydOpWnn36aypUr079/f5KTk0vgEd4ZMhJ+Byg5RsKbpp8BWpVcZ4QQQghxT/Lw8ODGjRsldmxnde3a1fp3vXr1iIqKIjw8nO+++w53d/cC9/fx8bFbxbx9+/bMnz+fFStWcObMGY4fP87IkSOZOXPmfXORpgThxco+T/jbdRwvICSEEEIIkR+VSlWoKSGlha+vL9WrV+fUqVN06tSJjIwMkpKSbEbDL1++7HAOOVjmjPv6+tKjRw969+5Nz549cXFxoV+/fkybNu0uPYo7T6aj3AE5R8L9vHxLriNCCCGEEHfZjRs3OH36NKGhoTz44IO4uLjw22/Z66ccP36c2NhYmjVrZrfvlStXmDlzJh988AEAJpOJzMxMwHKhpsl0/2Sdk5HwYqeyyY4ic8KFEEIIcT+bNGkS3bt3Jzw8nEuXLjF9+nQ0Gg0DBw7Ex8eH4cOHM2HCBPz8/PD29mbs2LE0a9aMpk2b2rU1fvx4Jk6cSLly5QBo0aIFy5cv56GHHmLx4sW0aNHibj+8O0aC8DsgZ55wlSxIKoQQQoj72IULFxg4cCDXrl0jMDCQli1bsmvXLgIDAwF45513UKvV9OnTB4PBQOfOnfn444/t2vn11185deoUy5cvt5aNGTOGffv2ERUVRZMmTZg+ffpde1x3mixbf5tyLlt/5Ehfmm3aR50OZ6nb/AcA4mu7QZDMCxdCCCFE3mTZ+tsny9b/h0WcOUvI5XjrnHC1YgKZjiKEEEIIIXKRILwY+SQloSI7O4oKBTSuJdspIYQQQghR6kgQXuxUOUbCFfCvUsL9EUIIIYQQpY0E4cVoe43G/NK8ne1IuBBCCCGEELlIdpRiYkDHkg6PAdB1307g1ki4EEIIIYSTJF9G0d1rz52MhBeTzBzfZ9LVOkBGwoUQQgjhHBcXFwDS0tJKuCf3rqznLuu5LO1kJPwOMKss321UmEu4J0IIIYS4F2g0Gnx9fUlISADAw8MDlUpVwF4CLCPgaWlpJCQk4Ovri0ajKekuOUWC8GKS821ivnVPpbo3XgRCCCGEKHkhISEA1kBcFI6vr6/1ObwXSBB+B1izo7i4l3BPhBBCCHGvUKlUhIaGEhQURGZmZkl3557i4uJyz4yAZymVQbjBYGDatGksX76cxMRE6tWrx+uvv06nTp0K1U6nTp3YvHkzo0eP5sMPP7SWnz9/ni+++IKff/6ZkydPotFoqFOnDq+++iodO3a87f6bW02EGyC/IgkhhBCisDQazT0XUIrCK5UXZg4dOpQFCxbw+OOP895776HRaOjWrRs7duxwuo3vv/+e6Ohoh9t+/PFH3njjDapWrcrrr7/O1KlTSU1NpVOnTixZsuS2+2+uagnk1UgULoQQQggh7KmUUpbPZc+ePURFRTF//nwmTZoEgF6vp06dOgQFBbFz584C29Dr9dSqVYthw4Yxbdo0u5Hwo0ePEhwcTEBAgLXMYDAQGRnJjRs3OH/+vNP9TUlJwcfHh2/WPsB4rxUArIqsQt+Dpymr1fBvq7pOtyWEEEIIIYpfVryWnJyMt7d3SXcHKIUj4atWrUKj0TBq1ChrmZubG8OHDyc6OtqpAPnNN9/EbDZbg/jcateubROAA+h0Orp168aFCxdITU29rceQ9bVGpqMIIYQQQghHSt2c8AMHDlC9enW7bylNmjQB4ODBg1SoUCHP/WNjY5k3bx5ffPEF7u6FuzAyPj4eDw8PPDw88qxjMBgwGAzW+8nJyQCkpZkwq24AkJKSjPnmDcwuWlJSUgrVByGEEEIIUbyy4rHSNAGk1AXhcXFxhIaG2pVnlV26dCnf/SdOnEiDBg0YMGBAoY576tQpvv/+e/r165fvxRBz587ltddesysfPuA40AqAR26VXQF8CtULIYQQQghxp1y7dg0fn9IRnZW6IDw9PR2dTmdX7ubmZt2ely1btrB69Wp2795dqGOmpaXRr18/3N3dmTdvXr51p0yZwoQJE6z3k5KSCA8PJzY2ttScVHHnpKSkUKFCBc6fP19q5pSJO0fO93+LnO//Fjnf/y3JyclUrFgRPz+/ku6KVakLwt3d3W2me2TR6/XW7Y4YjUbGjRvH4MGDady4sdPHM5lMDBgwgH/++Yf169cTFhaWb32dTufwS4KPj4+8if9DvL295Xz/h8j5/m+R8/3fIuf7v0WtLj2XQ5a6IDw0NJSLFy/alcfFxQHkGSQvW7aM48ePs2jRImJiYmy2paamEhMTQ1BQkN1875EjR7Ju3TpWrFhB+/bti+dBCCGEEEIIkY/S83XglsjISE6cOGF3QWPWFJPIyEiH+8XGxpKZmUmLFi2IiIiw3sASoEdERLBx40abfSZPnsySJUt45513GDhwYPE/GCGEEEIIIRwodSPhffv25a233mLx4sXWFIMGg4ElS5YQFRVlzYwSGxtLWloaNWvWBGDAgAEOA/RevXrRrVs3Ro4cSVRUlLV8/vz5vPXWW7z88ss899xzRe6vTqdj+vTpDqeoiPuPnO//Fjnf/y1yvv9b5Hz/t5TG813qFusB6N+/P2vWrOH555+natWqfPnll+zZs4fffvuN1q1bA9C2bVu2bdtWYKoZlUplt1jPmjVr6N27N9WqVWPatGl2+3Tq1Ing4ODifVBCCCGEEELcUupGwsEyfWTq1KksX76cxMRE6tWrx7p166wB+O36+++/ATh58iSDBw+2275lyxYJwoUQQgghxB1TKkfChRBCCCGEuJ+VugszhRBCCCGEuN9JEC6EEEIIIcRdJkF4ERkMBl588UXCwsJwd3cnKiqKTZs2lXS3hAN79+5lzJgx1K5dG09PTypWrEj//v05ceKEXd1///2XLl264OXlhZ+fH4MHD+bKlSt29cxmM2+++SYRERG4ublRr149vvnmG4fHd7ZNcefMnj0blUpFnTp17Lbt3LmTli1b4uHhQUhICOPGjePGjRt29Qrznne2TVF89u/fz6OPPoqfnx8eHh7UqVOH999/36aOnOv7w8mTJxkwYADly5fHw8ODmjVrMnPmTNLS0mzqyfm+99y4cYPp06fTpUsX/Pz8UKlULF261GHdkvy8Lkyb+VJEkQwYMEDRarXKpEmTlEWLFinNmjVTtFqtsn379pLumsilT58+SkhIiDJ27Fjl008/VWbNmqUEBwcrnp6eyuHDh631zp8/rwQEBChVqlRR3nvvPWX27NlK2bJllfr16ysGg8GmzZdeekkBlJEjRyqLFy9WHn74YQVQvvnmG5t6hWlT3Bnnz59XPDw8FE9PT6V27do22w4cOKC4ubkpDRo0UBYuXKi88sorik6nU7p06WLXjrPv+cK0KYrHr7/+qri6uipRUVHKggULlMWLFysvvviiMnnyZGsdOdf3h9jYWMXX11cJDw9X5s6dqyxatEgZOnSoAiiPPvqotZ6c73vT2bNnFUCpWLGi0rZtWwVQlixZYlevpD+vnW2zIBKEF8Hu3bsVQJk/f761LD09XalSpYrS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",
|
||
"text/plain": [
|
||
"<Figure size 800x350 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"\n",
|
||
"# Common imports\n",
|
||
"import numpy as np\n",
|
||
"import matplotlib\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from matplotlib.colors import ListedColormap\n",
|
||
"plt.rcParams['axes.labelsize'] = 14\n",
|
||
"plt.rcParams['xtick.labelsize'] = 12\n",
|
||
"plt.rcParams['ytick.labelsize'] = 12\n",
|
||
"\n",
|
||
"heads_proba = 0.51\n",
|
||
"coin_tosses = (np.random.rand(10000, 10) < heads_proba).astype(np.int32)\n",
|
||
"cumulative_heads_ratio = np.cumsum(coin_tosses, axis=0) / np.arange(1, 10001).reshape(-1, 1)\n",
|
||
"plt.figure(figsize=(8,3.5))\n",
|
||
"plt.plot(cumulative_heads_ratio)\n",
|
||
"plt.plot([0, 10000], [0.51, 0.51], \"k--\", linewidth=2, label=\"51%\")\n",
|
||
"plt.plot([0, 10000], [0.5, 0.5], \"k-\", label=\"50%\")\n",
|
||
"plt.xlabel(\"Number of coin tosses\")\n",
|
||
"plt.ylabel(\"Heads ratio\")\n",
|
||
"plt.legend(loc=\"lower right\")\n",
|
||
"plt.axis([0, 10000, 0.42, 0.58])\n",
|
||
"save_fig(\"votingsimple\")\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7567cc03",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Using the Voting Classifier\n",
|
||
"\n",
|
||
"We can use the voting classifier on other data sets, here the exciting binary case of two distinct objects using the make moons functionality of **Scikit-Learn**."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"id": "65319b56",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"LogisticRegression 0.864\n",
|
||
"RandomForestClassifier 0.872\n",
|
||
"SVC 0.888\n",
|
||
"VotingClassifier 0.896\n",
|
||
"LogisticRegression 0.864\n",
|
||
"RandomForestClassifier 0.872\n",
|
||
"SVC 0.888\n",
|
||
"VotingClassifier 0.912\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.datasets import make_moons\n",
|
||
"\n",
|
||
"X, y = make_moons(n_samples=500, noise=0.30, random_state=42)\n",
|
||
"X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)\n",
|
||
"\n",
|
||
"from sklearn.ensemble import RandomForestClassifier\n",
|
||
"from sklearn.ensemble import VotingClassifier\n",
|
||
"from sklearn.linear_model import LogisticRegression\n",
|
||
"from sklearn.svm import SVC\n",
|
||
"\n",
|
||
"log_clf = LogisticRegression(solver=\"liblinear\", random_state=42)\n",
|
||
"rnd_clf = RandomForestClassifier(n_estimators=10, random_state=42)\n",
|
||
"svm_clf = SVC(gamma=\"auto\", random_state=42)\n",
|
||
"\n",
|
||
"voting_clf = VotingClassifier(\n",
|
||
" estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],\n",
|
||
" voting='hard')\n",
|
||
"\n",
|
||
"voting_clf.fit(X_train, y_train)\n",
|
||
"\n",
|
||
"from sklearn.metrics import accuracy_score\n",
|
||
"\n",
|
||
"for clf in (log_clf, rnd_clf, svm_clf, voting_clf):\n",
|
||
" clf.fit(X_train, y_train)\n",
|
||
" y_pred = clf.predict(X_test)\n",
|
||
" print(clf.__class__.__name__, accuracy_score(y_test, y_pred))\n",
|
||
"\n",
|
||
"log_clf = LogisticRegression(solver=\"liblinear\", random_state=42)\n",
|
||
"rnd_clf = RandomForestClassifier(n_estimators=10, random_state=42)\n",
|
||
"svm_clf = SVC(gamma=\"auto\", probability=True, random_state=42)\n",
|
||
"voting_clf = VotingClassifier(\n",
|
||
" estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],\n",
|
||
" voting='soft')\n",
|
||
"voting_clf.fit(X_train, y_train)\n",
|
||
"\n",
|
||
"from sklearn.metrics import accuracy_score\n",
|
||
"\n",
|
||
"for clf in (log_clf, rnd_clf, svm_clf, voting_clf):\n",
|
||
" clf.fit(X_train, y_train)\n",
|
||
" y_pred = clf.predict(X_test)\n",
|
||
" print(clf.__class__.__name__, accuracy_score(y_test, y_pred))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f5a68723",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Voting and Bagging"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"id": "5813866a",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<style>#sk-container-id-2 {color: black;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n",
|
||
" ('rf', RandomForestClassifier(random_state=42)),\n",
|
||
" ('svc', SVC(random_state=42))])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">VotingClassifier</label><div class=\"sk-toggleable__content\"><pre>VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n",
|
||
" ('rf', RandomForestClassifier(random_state=42)),\n",
|
||
" ('svc', SVC(random_state=42))])</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lr</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LogisticRegression</label><div class=\"sk-toggleable__content\"><pre>LogisticRegression(random_state=42)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>rf</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier(random_state=42)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>svc</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(random_state=42)</pre></div></div></div></div></div></div></div></div></div></div>"
|
||
],
|
||
"text/plain": [
|
||
"VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n",
|
||
" ('rf', RandomForestClassifier(random_state=42)),\n",
|
||
" ('svc', SVC(random_state=42))])"
|
||
]
|
||
},
|
||
"execution_count": 15,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.datasets import make_moons\n",
|
||
"\n",
|
||
"X, y = make_moons(n_samples=500, noise=0.30, random_state=42)\n",
|
||
"X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)\n",
|
||
"from sklearn.ensemble import RandomForestClassifier\n",
|
||
"from sklearn.ensemble import VotingClassifier\n",
|
||
"from sklearn.linear_model import LogisticRegression\n",
|
||
"from sklearn.svm import SVC\n",
|
||
"\n",
|
||
"log_clf = LogisticRegression(random_state=42)\n",
|
||
"rnd_clf = RandomForestClassifier(random_state=42)\n",
|
||
"svm_clf = SVC(random_state=42)\n",
|
||
"\n",
|
||
"voting_clf = VotingClassifier(\n",
|
||
" estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],\n",
|
||
" voting='hard')\n",
|
||
"voting_clf.fit(X_train, y_train)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 16,
|
||
"id": "830a0e71",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"LogisticRegression 0.864\n",
|
||
"RandomForestClassifier 0.896\n",
|
||
"SVC 0.896\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"VotingClassifier 0.912\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.metrics import accuracy_score\n",
|
||
"\n",
|
||
"for clf in (log_clf, rnd_clf, svm_clf, voting_clf):\n",
|
||
" clf.fit(X_train, y_train)\n",
|
||
" y_pred = clf.predict(X_test)\n",
|
||
" print(clf.__class__.__name__, accuracy_score(y_test, y_pred))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"id": "84ab0a03",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<style>#sk-container-id-3 {color: black;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-3 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-3 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n",
|
||
" ('rf', RandomForestClassifier(random_state=42)),\n",
|
||
" ('svc', SVC(probability=True, random_state=42))],\n",
|
||
" voting='soft')</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">VotingClassifier</label><div class=\"sk-toggleable__content\"><pre>VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n",
|
||
" ('rf', RandomForestClassifier(random_state=42)),\n",
|
||
" ('svc', SVC(probability=True, random_state=42))],\n",
|
||
" voting='soft')</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lr</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LogisticRegression</label><div class=\"sk-toggleable__content\"><pre>LogisticRegression(random_state=42)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>rf</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" ><label for=\"sk-estimator-id-8\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier(random_state=42)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>svc</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-9\" type=\"checkbox\" ><label for=\"sk-estimator-id-9\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(probability=True, random_state=42)</pre></div></div></div></div></div></div></div></div></div></div>"
|
||
],
|
||
"text/plain": [
|
||
"VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n",
|
||
" ('rf', RandomForestClassifier(random_state=42)),\n",
|
||
" ('svc', SVC(probability=True, random_state=42))],\n",
|
||
" voting='soft')"
|
||
]
|
||
},
|
||
"execution_count": 17,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"log_clf = LogisticRegression(random_state=42)\n",
|
||
"rnd_clf = RandomForestClassifier(random_state=42)\n",
|
||
"svm_clf = SVC(probability=True, random_state=42)\n",
|
||
"\n",
|
||
"voting_clf = VotingClassifier(\n",
|
||
" estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],\n",
|
||
" voting='soft')\n",
|
||
"voting_clf.fit(X_train, y_train)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"id": "df22a42d",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"LogisticRegression 0.864\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"RandomForestClassifier 0.896\n",
|
||
"SVC 0.896\n",
|
||
"VotingClassifier 0.92\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.metrics import accuracy_score\n",
|
||
"\n",
|
||
"for clf in (log_clf, rnd_clf, svm_clf, voting_clf):\n",
|
||
" clf.fit(X_train, y_train)\n",
|
||
" y_pred = clf.predict(X_test)\n",
|
||
" print(clf.__class__.__name__, accuracy_score(y_test, y_pred))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "fc679c18",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Bagging\n",
|
||
"\n",
|
||
"The **plain** decision trees suffer from high\n",
|
||
"variance. This means that if we split the training data into two parts\n",
|
||
"at random, and fit a decision tree to both halves, the results that we\n",
|
||
"get could be quite different. In contrast, a procedure with low\n",
|
||
"variance will yield similar results if applied repeatedly to distinct\n",
|
||
"data sets; linear regression tends to have low variance, if the ratio\n",
|
||
"of $n$ to $p$ is moderately large. \n",
|
||
"\n",
|
||
"**Bootstrap aggregation**, or just **bagging**, is a\n",
|
||
"general-purpose procedure for reducing the variance of a statistical\n",
|
||
"learning method."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c338a140",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## More bagging\n",
|
||
"\n",
|
||
"Bagging typically results in improved accuracy\n",
|
||
"over prediction using a single tree. Unfortunately, however, it can be\n",
|
||
"difficult to interpret the resulting model. Recall that one of the\n",
|
||
"advantages of decision trees is the attractive and easily interpreted\n",
|
||
"diagram that results.\n",
|
||
"\n",
|
||
"However, when we bag a large number of trees, it is no longer\n",
|
||
"possible to represent the resulting statistical learning procedure\n",
|
||
"using a single tree, and it is no longer clear which variables are\n",
|
||
"most important to the procedure. Thus, bagging improves prediction\n",
|
||
"accuracy at the expense of interpretability. Although the collection\n",
|
||
"of bagged trees is much more difficult to interpret than a single\n",
|
||
"tree, one can obtain an overall summary of the importance of each\n",
|
||
"predictor using the MSE (for bagging regression trees) or the Gini\n",
|
||
"index (for bagging classification trees). In the case of bagging\n",
|
||
"regression trees, we can record the total amount that the MSE is\n",
|
||
"decreased due to splits over a given predictor, averaged over all $B$ possible\n",
|
||
"trees. A large value indicates an important predictor. Similarly, in\n",
|
||
"the context of bagging classification trees, we can add up the total\n",
|
||
"amount that the Gini index is decreased by splits over a given\n",
|
||
"predictor, averaged over all $B$ trees."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d6c4024d",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Making your own Bootstrap: Changing the Level of the Decision Tree\n",
|
||
"\n",
|
||
"Let us bring up our good old boostrap example from the linear regression lectures. We change the linerar regression algorithm with\n",
|
||
"a decision tree wth different depths and perform a bootstrap aggregate (in this case we perform as many bootstraps as data points $n$)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"id": "3e843b8a",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Polynomial degree: 1\n",
|
||
"Error: 0.06380941468319971\n",
|
||
"Bias^2: 0.05160313473529168\n",
|
||
"Var: 0.01220627994790804\n",
|
||
"0.06380941468319971 >= 0.05160313473529168 + 0.01220627994790804 = 0.06380941468319971\n",
|
||
"Polynomial degree: 2\n",
|
||
"Error: 0.043464037468677004\n",
|
||
"Bias^2: 0.02659851591375224\n",
|
||
"Var: 0.01686552155492476\n",
|
||
"0.043464037468677004 >= 0.02659851591375224 + 0.01686552155492476 = 0.043464037468677\n",
|
||
"Polynomial degree: 3\n",
|
||
"Error: 0.020716391693769383\n",
|
||
"Bias^2: 0.01159033914386312\n",
|
||
"Var: 0.00912605254990626\n",
|
||
"0.020716391693769383 >= 0.01159033914386312 + 0.00912605254990626 = 0.02071639169376938\n",
|
||
"Polynomial degree: 4\n",
|
||
"Error: 0.02063627410934057\n",
|
||
"Bias^2: 0.0117496656370668\n",
|
||
"Var: 0.008886608472273775\n",
|
||
"0.02063627410934057 >= 0.0117496656370668 + 0.008886608472273775 = 0.020636274109340574\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Polynomial degree: 5\n",
|
||
"Error: 0.02087627881701288\n",
|
||
"Bias^2: 0.01349183949256158\n",
|
||
"Var: 0.007384439324451296\n",
|
||
"0.02087627881701288 >= 0.01349183949256158 + 0.007384439324451296 = 0.020876278817012876\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Polynomial degree: 6\n",
|
||
"Error: 0.02069601123831537\n",
|
||
"Bias^2: 0.013918526350129823\n",
|
||
"Var: 0.0067774848881855445\n",
|
||
"0.02069601123831537 >= 0.013918526350129823 + 0.0067774848881855445 = 0.020696011238315368\n",
|
||
"Polynomial degree: 7\n",
|
||
"Error: 0.022964339924731444\n",
|
||
"Bias^2: 0.01550381208433455\n",
|
||
"Var: 0.007460527840396904\n",
|
||
"0.022964339924731444 >= 0.01550381208433455 + 0.007460527840396904 = 0.022964339924731455\n",
|
||
"Simple tree: 0.5148389267750961\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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99d/4tfdJ/hwdQL3XFmz2P1FRKQUyE6Hl6qac+7RByGwXLF3j4uLY/LkyVgsFho0aMAff/zB5MmTCww3Tz75pOd5rVq1GDduHI888ogn3CQkJHD77bfTrFkzAOrUKZvf/vXqtlRsbCxJSUn52nPbqlYt+D+kqKgogoKCitU392dMTEye/Ww2GxUrVuTkyZNF1hgUFERERESeh7dqVAxlRI8GALz87RYST+j2lIiIXBpXXnkllrOu9Fx11VXs2LEDp9OZb99FixbRpUsXqlWrRnh4OPfccw/Hjx/3DNkYOnQo48aN45prrmHs2LFs3Ljxsr2O0sSrKzctW7ZkyZIlpKSk5AkNq1at8mwviNVqpVmzZqxduzbftlWrVlGnTh3Cw8MBaN26NeCe8O9sWVlZHDt2jOjoaG9KvmD3XVWLBX8cYvXeE4z64g9mDWqX5z8+EREpxeyh7isoZp37Eti7dy833XQTf//733nxxReJiori559/ZtCgQWRlZREaGsqDDz5I9+7d+eabb/jhhx8YP348r732Go8//vglqam08urKTd++fXE6nUydOtXT5nA4mDZtGu3bt/fc/klISGDr1q35+q5ZsyZPwNm2bRs//vgj/fr187R16tSJypUr8+GHH3puWQFMnz4dp9NJt27dvHuFF8hqtfBK3+YEBVj5eecxPl5T+NfcRUSklLFY3LeGzHh4+Q/h3AsEuX799Vfq16+PzWbL0/7bb7/hcrl47bXXuPLKK4mPjy/wizxxcXE88sgjfPHFFzz11FO8++673r9/Ps6rKzft27enX79+jBo1iiNHjlCvXj1mzJjB3r17ef/99z373XvvvSxbtswz2hvg0Ucf5d133+XGG29k+PDh2O12Jk2aRExMDE899ZRnv6CgICZMmMB9991Hhw4duOeee0hISGDKlClcd9113HbbbSXwsoundqVyPN29AeO+2cKL32yhY3w0VcsXPK5IRETkQiQkJPB///d/PPzww/z++++88cYbvPbaa/n2q1evHtnZ2bzxxhvcfPPNrFixgv/+97959nnyySfp2bMn8fHxnDx5kiVLltCoUaPL9VJKjwuZTXD48OFGlSpVjKCgIKNt27bGd999l2efjh07GgUdOjEx0ejbt68RERFhhIWFGTfddJOxY8eOAs/z0UcfGS1atDCCgoKMmJgYY8iQIUZKSoq3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YPXq1SxevJgOHToA0KlTJ5YtW8bZh05NTaVVq1akpqYyfPhw7HY7kyZNwul0sn79eqKjoz37vvXWWzz22GP07duX7t27s3z5cmbOnMmLL77I6NGjvXqBKSkpREZGkpycnO8r7CIiIlI6Xcznt1cDigFmzpzJmDFjmDVrFidPnqR58+bMnz/fE2wKEx4eztKlSxk2bBjjxo3D5XLRqVMnJk+enCfYADz66KPY7XZee+015s2bR1xcHJMnT+aJJ57wtlwREREpY7y+cuNrdOVGRETE91zM57fXC2eKiIiIlGYKNyIiIuJXFG5ERETEryjciIiIiF9RuBERERG/onAjIiIifkXhRkRERPyK15P4+ZrcaXzOXQ9LRERESq/cz+0LmY7P78PN8ePHATzrXomIiIjvOH78OJGRkV718ftwExUVBbgX8/T2zfFnKSkpxMXFkZiYqJmbz6H3pnB6bwqn96Zwem8Kp/emcMnJydSoUcPzOe4Nvw83Vqt7WFFkZKT+wylARESE3pdC6L0pnN6bwum9KZzem8LpvSlc7ue4V30uQR0iIiIiplG4EREREb/i9+EmKCiIsWPHEhQUZHYppYrel8LpvSmc3pvC6b0pnN6bwum9KdzFvDcW40K+YyUiIiJSSvn9lRsREREpWxRuRERExK8o3IiIiIhfUbgRERERv+KX4SYtLY2xY8fSo0cPoqKisFgsTJ8+3eyyTLdmzRqGDBlCkyZNKFeuHDVq1KB///5s377d7NJMt2nTJvr160edOnUIDQ2lUqVKdOjQga+//trs0kqlF198EYvFQtOmTc0uxVRLly7FYrEU+Pj111/NLq9U+P333+nduzdRUVGEhobStGlT/v3vf5tdlqkGDhxY6H83FouFAwcOmF2iaXbs2MGdd95J9erVCQ0NpWHDhrzwwgukp6d7dRy/nKH42LFjvPDCC9SoUYMWLVqwdOlSs0sqFV555RVWrFhBv379aN68OYcOHeLNN9/kiiuu4Ndffy3TH1T79u0jNTWV++67j6pVq5Kens7nn39O7969eeeddxg8eLDZJZYa+/fv56WXXqJcuXJml1JqDB06lLZt2+Zpq1evnknVlB4//PADN998M61atWLMmDGEhYWxa9cu9u/fb3Zppnr44Yfp2rVrnjbDMHjkkUeoVasW1apVM6kycyUmJtKuXTsiIyMZMmQIUVFRrFy5krFjx/Lbb7/x1VdfFf9ghh/KzMw0kpKSDMMwjDVr1hiAMW3aNHOLKgVWrFhhOByOPG3bt283goKCjAEDBphUVemVk5NjtGjRwmjQoIHZpZQqd9xxh3H99dcbHTt2NJo0aWJ2OaZasmSJARifffaZ2aWUOsnJyUZMTIxx6623Gk6n0+xySr3ly5cbgPHiiy+aXYppXnzxRQMw/vzzzzzt9957rwEYJ06cKPax/PK2VFBQEFWqVDG7jFLn6quvJjAwME9b/fr1adKkCVu2bDGpqtLLZrMRFxfHqVOnzC6l1Pjpp5+YM2cOr7/+utmllDqpqank5OSYXUapMXv2bA4fPsyLL76I1Wrl9OnTuFwus8sqtWbPno3FYuFvf/ub2aWYJiUlBYCYmJg87bGxsVit1nyfX0Xxy3AjxWcYBocPH6ZSpUpml1IqnD59mmPHjrFr1y4mT57MggUL6NKli9lllQpOp5PHH3+cBx98kGbNmpldTqly//33ExERQXBwMJ07d2bt2rVml2S6RYsWERERwYEDB2jQoAFhYWFERETw97//nczMTLPLK1Wys7P59NNPufrqq6lVq5bZ5ZimU6dOAAwaNIj169eTmJjIJ598wttvv83QoUO9uhXul2NupPg+/PBDDhw4wAsvvGB2KaXCU089xTvvvAO4V6K97bbbePPNN02uqnT473//y759+1i0aJHZpZQagYGB3H777fTq1YtKlSqxefNmJk6cyHXXXccvv/xCq1atzC7RNDt27CAnJ4c+ffowaNAgxo8fz9KlS3njjTc4deoUH330kdkllhrff/89x48fZ8CAAWaXYqoePXrwr3/9i5deeol58+Z52v/5z38ybtw47w5WwrfMSh2NuSncli1bjIiICOOqq64ycnJyzC6nVNiyZYuxcOFCY8aMGcaNN95o3HrrrcahQ4fMLst0x44dM6KiooyJEyd62jTmpmA7duwwQkJCjO7du5tdiqnq1KljAMYjjzySp/3hhx82AGP79u0mVVb63HXXXYbdbjeOHTtmdimmmzVrltG9e3dj6tSpxueff2488MADhsViMd544w2vjqNwU0YlJSUZderUMeLi4owDBw6YXU6p1a1bN6Nt27aGy+UyuxRTPfLII0a9evXyDEhXuCncnXfeaQQGBpbpfzQ0adLEAIxly5blaV+2bJkBGDNmzDCpstIlNTXVCA0NNW666SazSzHdRx99ZISEhBiJiYl52gcOHGiEhoZ6Ff405qYMSk5OpmfPnpw6dYrvvvuOqlWrml1SqdW3b1/WrFlTpucC2rFjB1OnTmXo0KEcPHiQvXv3snfvXjIzM8nOzmbv3r2cOHHC7DJLlbi4OLKysjh9+rTZpZgm9++VcweHVq5cGYCTJ09e9ppKoy+//JL09PQyf0sK4K233qJVq1ZUr149T3vv3r1JT09n3bp1xT6Wwk0Zk5mZyc0338z27duZP38+jRs3NrukUi0jIwNwB8Ky6sCBA7hcLoYOHUrt2rU9j1WrVrF9+3Zq166tMVvn2L17N8HBwYSFhZldimlat24NkG9CuoMHDwIQHR192WsqjT788EPCwsLo3bu32aWY7vDhwzidznzt2dnZAF59G1EDissQp9PJHXfcwcqVK/nqq6+46qqrzC6p1Dhy5IjnX5S5srOzmTlzJiEhIWU6BDZt2pS5c+fma3/mmWdITU1lypQp1K1b14TKzHf06NF8H9IbNmxg3rx59OzZE6u17P77sX///rz88su8//77XH/99Z729957j4CAAM83Y8qyo0ePsmjRIu666y5CQ0PNLsd08fHx/PDDD2zfvp34+HhP+0cffYTVaqV58+bFPpbfhps333yTU6dOef6V8PXXX3tmxXz88ceJjIw0szxTPPXUU8ybN4+bb76ZEydO8L///S/P9rvvvtukysz38MMPk5KSQocOHahWrRqHDh3iww8/ZOvWrbz22mtl+l/glSpV4pZbbsnXnjvXTUHbyoo77riDkJAQrr76aipXrszmzZuZOnUqoaGhvPzyy2aXZ6pWrVrxwAMP8MEHH5CTk0PHjh1ZunQpn332GaNGjdLtcOCTTz4hJydHt6TOePrpp1mwYAHXXXcdQ4YMoWLFisyfP58FCxbw4IMPevffTEkPCCotatasaQAFPvbs2WN2eabo2LFjoe+JH/+nUCwfffSR0bVrVyMmJsYICAgwKlSoYHTt2tX46quvzC6t1NKAYsOYMmWK0a5dOyMqKsoICAgwYmNjjbvvvtvYsWOH2aWVCllZWcZzzz1n1KxZ07Db7Ua9evWMyZMnm11WqXHllVcalStXLtMDz8+1atUqo2fPnkaVKlUMu91uxMfHGy+++KKRnZ3t1XEshmEYJRq9RERERExUdm8Ii4iIiF9SuBERERG/onAjIiIifkXhRkRERPyKwo2IiIj4FYUbERER8SsKNyIiIuJXFG5ERETEryjciIiIiF9RuBERERG/onAjIiIifkXhRkRERPyKwo2IiIj4lf8HpRiWfkcaGOgAAAAASUVORK5CYII=",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import numpy as np\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.pipeline import make_pipeline\n",
|
||
"from sklearn.utils import resample\n",
|
||
"from sklearn.tree import DecisionTreeRegressor\n",
|
||
"\n",
|
||
"n = 100\n",
|
||
"n_boostraps = 100\n",
|
||
"maxdepth = 8\n",
|
||
"\n",
|
||
"# Make data set.\n",
|
||
"x = np.linspace(-3, 3, n).reshape(-1, 1)\n",
|
||
"y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)\n",
|
||
"error = np.zeros(maxdepth)\n",
|
||
"bias = np.zeros(maxdepth)\n",
|
||
"variance = np.zeros(maxdepth)\n",
|
||
"polydegree = np.zeros(maxdepth)\n",
|
||
"X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n",
|
||
"\n",
|
||
"from sklearn.preprocessing import StandardScaler\n",
|
||
"scaler = StandardScaler()\n",
|
||
"scaler.fit(X_train)\n",
|
||
"X_train_scaled = scaler.transform(X_train)\n",
|
||
"X_test_scaled = scaler.transform(X_test)\n",
|
||
"\n",
|
||
"# we produce a simple tree first as benchmark\n",
|
||
"simpletree = DecisionTreeRegressor(max_depth=3) \n",
|
||
"simpletree.fit(X_train_scaled, y_train)\n",
|
||
"simpleprediction = simpletree.predict(X_test_scaled)\n",
|
||
"for degree in range(1,maxdepth):\n",
|
||
" model = DecisionTreeRegressor(max_depth=degree) \n",
|
||
" y_pred = np.empty((y_test.shape[0], n_boostraps))\n",
|
||
" for i in range(n_boostraps):\n",
|
||
" x_, y_ = resample(X_train_scaled, y_train)\n",
|
||
" model.fit(x_, y_)\n",
|
||
" y_pred[:, i] = model.predict(X_test_scaled)#.ravel()\n",
|
||
"\n",
|
||
" polydegree[degree] = degree\n",
|
||
" error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )\n",
|
||
" bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )\n",
|
||
" variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) )\n",
|
||
" print('Polynomial degree:', degree)\n",
|
||
" print('Error:', error[degree])\n",
|
||
" print('Bias^2:', bias[degree])\n",
|
||
" print('Var:', variance[degree])\n",
|
||
" print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))\n",
|
||
" \n",
|
||
"mse_simpletree= np.mean( np.mean((y_test - simpleprediction)**2))\n",
|
||
"print(\"Simple tree:\",mse_simpletree)\n",
|
||
"plt.xlim(1,maxdepth)\n",
|
||
"plt.plot(polydegree, error, label='MSE')\n",
|
||
"plt.plot(polydegree, bias, label='bias')\n",
|
||
"plt.plot(polydegree, variance, label='Variance')\n",
|
||
"plt.legend()\n",
|
||
"save_fig(\"baggingboot\")\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a0a80178",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Random forests\n",
|
||
"\n",
|
||
"Random forests provide an improvement over bagged trees by way of a\n",
|
||
"small tweak that decorrelates the trees. \n",
|
||
"\n",
|
||
"As in bagging, we build a\n",
|
||
"number of decision trees on bootstrapped training samples. But when\n",
|
||
"building these decision trees, each time a split in a tree is\n",
|
||
"considered, a random sample of $m$ predictors is chosen as split\n",
|
||
"candidates from the full set of $p$ predictors. The split is allowed to\n",
|
||
"use only one of those $m$ predictors. \n",
|
||
"\n",
|
||
"A fresh sample of $m$ predictors is\n",
|
||
"taken at each split, and typically we choose"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9f44e8c0",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"m\\approx \\sqrt{p}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "37291a05",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"In building a random forest, at\n",
|
||
"each split in the tree, the algorithm is not even allowed to consider\n",
|
||
"a majority of the available predictors. \n",
|
||
"\n",
|
||
"The reason for this is rather clever. Suppose that there is one very\n",
|
||
"strong predictor in the data set, along with a number of other\n",
|
||
"moderately strong predictors. Then in the collection of bagged\n",
|
||
"variable importance random forest trees, most or all of the trees will\n",
|
||
"use this strong predictor in the top split. Consequently, all of the\n",
|
||
"bagged trees will look quite similar to each other. Hence the\n",
|
||
"predictions from the bagged trees will be highly correlated.\n",
|
||
"Unfortunately, averaging many highly correlated quantities does not\n",
|
||
"lead to as large of a reduction in variance as averaging many\n",
|
||
"uncorrelated quantities. In particular, this means that bagging will\n",
|
||
"not lead to a substantial reduction in variance over a single tree in\n",
|
||
"this setting."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "0be5b6c3",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Random Forest Algorithm\n",
|
||
"The algorithm described here can be applied to both classification and regression problems.\n",
|
||
"\n",
|
||
"We will grow of forest of say $B$ trees.\n",
|
||
"1. For $b=1:B$\n",
|
||
"\n",
|
||
" * Draw a bootstrap sample from the training data organized in our $\\boldsymbol{X}$ matrix.\n",
|
||
"\n",
|
||
" * We grow then a random forest tree $T_b$ based on the bootstrapped data by repeating the steps outlined till we reach the maximum node size is reached\n",
|
||
"\n",
|
||
"1. we select $m \\le p$ variables at random from the $p$ predictors/features\n",
|
||
"\n",
|
||
"2. pick the best split point among the $m$ features using for example the CART algorithm and create a new node\n",
|
||
"\n",
|
||
"3. split the node into daughter nodes\n",
|
||
"\n",
|
||
"4. Output then the ensemble of trees $\\{T_b\\}_1^{B}$ and make predictions for either a regression type of problem or a classification type of problem."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "fede920e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Random Forests Compared with other Methods on the Cancer Data"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"id": "bbc27ece",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"(426, 30)\n",
|
||
"(143, 30)\n",
|
||
"Test set accuracy Logistic Regression with scaled data: 0.96\n",
|
||
"Test set accuracy SVM with scaled data: 0.96\n",
|
||
"Test set accuracy with Decision Trees and scaled data: 0.87\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[0.93333333 0.73333333 0.93333333 1. 1. 0.92857143\n",
|
||
" 1. 0.92857143 0.92857143 0.92857143]\n",
|
||
"Test set accuracy with Random Forests and scaled data: 0.98\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import numpy as np\n",
|
||
"from sklearn.model_selection import train_test_split \n",
|
||
"from sklearn.datasets import load_breast_cancer\n",
|
||
"from sklearn.svm import SVC\n",
|
||
"from sklearn.linear_model import LogisticRegression\n",
|
||
"from sklearn.tree import DecisionTreeClassifier\n",
|
||
"from sklearn.ensemble import BaggingClassifier\n",
|
||
"\n",
|
||
"# Load the data\n",
|
||
"cancer = load_breast_cancer()\n",
|
||
"\n",
|
||
"X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n",
|
||
"print(X_train.shape)\n",
|
||
"print(X_test.shape)\n",
|
||
"#define methods\n",
|
||
"# Logistic Regression\n",
|
||
"logreg = LogisticRegression(solver='lbfgs')\n",
|
||
"# Support vector machine\n",
|
||
"svm = SVC(gamma='auto', C=100)\n",
|
||
"# Decision Trees\n",
|
||
"deep_tree_clf = DecisionTreeClassifier(max_depth=None)\n",
|
||
"#Scale the data\n",
|
||
"from sklearn.preprocessing import StandardScaler\n",
|
||
"scaler = StandardScaler()\n",
|
||
"scaler.fit(X_train)\n",
|
||
"X_train_scaled = scaler.transform(X_train)\n",
|
||
"X_test_scaled = scaler.transform(X_test)\n",
|
||
"# Logistic Regression\n",
|
||
"logreg.fit(X_train_scaled, y_train)\n",
|
||
"print(\"Test set accuracy Logistic Regression with scaled data: {:.2f}\".format(logreg.score(X_test_scaled,y_test)))\n",
|
||
"# Support Vector Machine\n",
|
||
"svm.fit(X_train_scaled, y_train)\n",
|
||
"print(\"Test set accuracy SVM with scaled data: {:.2f}\".format(logreg.score(X_test_scaled,y_test)))\n",
|
||
"# Decision Trees\n",
|
||
"deep_tree_clf.fit(X_train_scaled, y_train)\n",
|
||
"print(\"Test set accuracy with Decision Trees and scaled data: {:.2f}\".format(deep_tree_clf.score(X_test_scaled,y_test)))\n",
|
||
"\n",
|
||
"\n",
|
||
"from sklearn.ensemble import RandomForestClassifier\n",
|
||
"from sklearn.preprocessing import LabelEncoder\n",
|
||
"from sklearn.model_selection import cross_validate\n",
|
||
"# Data set not specificied\n",
|
||
"#Instantiate the model with 500 trees and entropy as splitting criteria\n",
|
||
"Random_Forest_model = RandomForestClassifier(n_estimators=500,criterion=\"entropy\")\n",
|
||
"Random_Forest_model.fit(X_train_scaled, y_train)\n",
|
||
"#Cross validation\n",
|
||
"accuracy = cross_validate(Random_Forest_model,X_test_scaled,y_test,cv=10)['test_score']\n",
|
||
"print(accuracy)\n",
|
||
"print(\"Test set accuracy with Random Forests and scaled data: {:.2f}\".format(Random_Forest_model.score(X_test_scaled,y_test)))\n",
|
||
"\n",
|
||
"\n",
|
||
"import scikitplot as skplt\n",
|
||
"y_pred = Random_Forest_model.predict(X_test_scaled)\n",
|
||
"skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)\n",
|
||
"plt.show()\n",
|
||
"y_probas = Random_Forest_model.predict_proba(X_test_scaled)\n",
|
||
"skplt.metrics.plot_roc(y_test, y_probas)\n",
|
||
"plt.show()\n",
|
||
"skplt.metrics.plot_cumulative_gain(y_test, y_probas)\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7913e347",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"Recall that the cumulative gains curve shows the percentage of the\n",
|
||
"overall number of cases in a given category *gained* by targeting a\n",
|
||
"percentage of the total number of cases.\n",
|
||
"\n",
|
||
"Similarly, the receiver operating characteristic curve, or ROC curve,\n",
|
||
"displays the diagnostic ability of a binary classifier system as its\n",
|
||
"discrimination threshold is varied. It plots the true positive rate against the false positive rate."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ad87de09",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Compare Bagging on Trees with Random Forests"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 21,
|
||
"id": "c532317c",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"bag_clf = BaggingClassifier(\n",
|
||
" DecisionTreeClassifier(splitter=\"random\", max_leaf_nodes=16, random_state=42),\n",
|
||
" n_estimators=500, max_samples=1.0, bootstrap=True, n_jobs=-1, random_state=42)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 22,
|
||
"id": "8c51aedd",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"0.9790209790209791"
|
||
]
|
||
},
|
||
"execution_count": 22,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"bag_clf.fit(X_train, y_train)\n",
|
||
"y_pred = bag_clf.predict(X_test)\n",
|
||
"from sklearn.ensemble import RandomForestClassifier\n",
|
||
"rnd_clf = RandomForestClassifier(n_estimators=500, max_leaf_nodes=16, n_jobs=-1, random_state=42)\n",
|
||
"rnd_clf.fit(X_train, y_train)\n",
|
||
"y_pred_rf = rnd_clf.predict(X_test)\n",
|
||
"np.sum(y_pred == y_pred_rf) / len(y_pred)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "527f134c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Boosting, a Bird's Eye View\n",
|
||
"\n",
|
||
"The basic idea is to combine weak classifiers in order to create a good\n",
|
||
"classifier. With a weak classifier we often intend a classifier which\n",
|
||
"produces results which are only slightly better than we would get by\n",
|
||
"random guesses.\n",
|
||
"\n",
|
||
"This is done by applying in an iterative way a weak (or a standard\n",
|
||
"classifier like decision trees) to modify the data. In each iteration\n",
|
||
"we emphasize those observations which are misclassified by weighting\n",
|
||
"them with a factor."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4446e3df",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## What is boosting? Additive Modelling/Iterative Fitting\n",
|
||
"\n",
|
||
"Boosting is a way of fitting an additive expansion in a set of\n",
|
||
"elementary basis functions like for example some simple polynomials.\n",
|
||
"Assume for example that we have a function"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f1775df0",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"f_M(x) = \\sum_{i=1}^M \\beta_m b(x;\\gamma_m),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "22abcdf4",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"where $\\beta_m$ are the expansion parameters to be determined in a\n",
|
||
"minimization process and $b(x;\\gamma_m)$ are some simple functions of\n",
|
||
"the multivariable parameter $x$ which is characterized by the\n",
|
||
"parameters $\\gamma_m$.\n",
|
||
"\n",
|
||
"As an example, consider the Sigmoid function we used in logistic\n",
|
||
"regression. In that case, we can translate the function\n",
|
||
"$b(x;\\gamma_m)$ into the Sigmoid function"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3646360d",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\sigma(t) = \\frac{1}{1+\\exp{(-t)}},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ef362813",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"where $t=\\gamma_0+\\gamma_1 x$ and the parameters $\\gamma_0$ and\n",
|
||
"$\\gamma_1$ were determined by the Logistic Regression fitting\n",
|
||
"algorithm.\n",
|
||
"\n",
|
||
"As another example, consider the cost function we defined for linear regression"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2aa0474a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\boldsymbol{y},\\boldsymbol{f}) = \\frac{1}{n} \\sum_{i=0}^{n-1}(y_i-f(x_i))^2.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "04df8e29",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"In this case the function $f(x)$ was replaced by the design matrix\n",
|
||
"$\\boldsymbol{X}$ and the unknown linear regression parameters $\\boldsymbol{\\beta}$,\n",
|
||
"that is $\\boldsymbol{f}=\\boldsymbol{X}\\boldsymbol{\\beta}$. In linear regression we can \n",
|
||
"simply invert a matrix and obtain the parameters $\\beta$ by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4ce3858e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\boldsymbol{\\beta}=\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5c25282a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"In iterative fitting or additive modeling, we minimize the cost function with respect to the parameters $\\beta_m$ and $\\gamma_m$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a483876b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Iterative Fitting, Regression and Squared-error Cost Function\n",
|
||
"\n",
|
||
"The way we proceed is as follows (here we specialize to the squared-error cost function)\n",
|
||
"\n",
|
||
"1. Establish a cost function, here ${\\cal C}(\\boldsymbol{y},\\boldsymbol{f}) = \\frac{1}{n} \\sum_{i=0}^{n-1}(y_i-f_M(x_i))^2$ with $f_M(x) = \\sum_{i=1}^M \\beta_m b(x;\\gamma_m)$.\n",
|
||
"\n",
|
||
"2. Initialize with a guess $f_0(x)$. It could be one or even zero or some random numbers.\n",
|
||
"\n",
|
||
"3. For $m=1:M$\n",
|
||
"\n",
|
||
"a. minimize $\\sum_{i=0}^{n-1}(y_i-f_{m-1}(x_i)-\\beta b(x;\\gamma))^2$ wrt $\\gamma$ and $\\beta$\n",
|
||
"\n",
|
||
"b. This gives the optimal values $\\beta_m$ and $\\gamma_m$\n",
|
||
"\n",
|
||
"c. Determine then the new values $f_m(x)=f_{m-1}(x) +\\beta_m b(x;\\gamma_m)$\n",
|
||
"\n",
|
||
"We could use any of the algorithms we have discussed till now. If we\n",
|
||
"use trees, $\\gamma$ parameterizes the split variables and split points\n",
|
||
"at the internal nodes, and the predictions at the terminal nodes."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "34b4f8fa",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Squared-Error Example and Iterative Fitting\n",
|
||
"\n",
|
||
"To better understand what happens, let us develop the steps for the iterative fitting using the above squared error function.\n",
|
||
"\n",
|
||
"For simplicity we assume also that our functions $b(x;\\gamma)=1+\\gamma x$. \n",
|
||
"\n",
|
||
"This means that for every iteration $m$, we need to optimize"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "52a7a596",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"(\\beta_m,\\gamma_m) = \\mathrm{argmin}_{\\beta,\\lambda}\\hspace{0.1cm} \\sum_{i=0}^{n-1}(y_i-f_{m-1}(x_i)-\\beta b(x;\\gamma))^2=\\sum_{i=0}^{n-1}(y_i-f_{m-1}(x_i)-\\beta(1+\\gamma x_i))^2.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "fdc0273e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We start our iteration by simply setting $f_0(x)=0$. \n",
|
||
"Taking the derivatives with respect to $\\beta$ and $\\gamma$ we obtain"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "297a1574",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\frac{\\partial {\\cal C}}{\\partial \\beta} = -2\\sum_{i}(1+\\gamma x_i)(y_i-\\beta(1+\\gamma x_i))=0,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "871eee02",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"and"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "8d396469",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\frac{\\partial {\\cal C}}{\\partial \\gamma} =-2\\sum_{i}\\beta x_i(y_i-\\beta(1+\\gamma x_i))=0.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "45079607",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We can then rewrite these equations as (defining $\\boldsymbol{w}=\\boldsymbol{e}+\\gamma \\boldsymbol{x})$ with $\\boldsymbol{e}$ being the unit vector)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "39e6b26e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\gamma \\boldsymbol{w}^T(\\boldsymbol{y}-\\beta\\gamma \\boldsymbol{w})=0,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9b3840f3",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which gives us $\\beta = \\boldsymbol{w}^T\\boldsymbol{y}/(\\boldsymbol{w}^T\\boldsymbol{w})$. Similarly we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "067eabcc",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\beta\\gamma \\boldsymbol{x}^T(\\boldsymbol{y}-\\beta(1+\\gamma \\boldsymbol{x}))=0,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "af02c603",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which leads to $\\gamma =(\\boldsymbol{x}^T\\boldsymbol{y}-\\beta\\boldsymbol{x}^T\\boldsymbol{e})/(\\beta\\boldsymbol{x}^T\\boldsymbol{x})$. Inserting\n",
|
||
"for $\\beta$ gives us an equation for $\\gamma$. This is a non-linear equation in the unknown $\\gamma$ and has to be solved numerically. \n",
|
||
"\n",
|
||
"The solution to these two equations gives us in turn $\\beta_1$ and $\\gamma_1$ leading to the new expression for $f_1(x)$ as\n",
|
||
"$f_1(x) = \\beta_1(1+\\gamma_1x)$. Doing this $M$ times results in our final estimate for the function $f$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2023c709",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Iterative Fitting, Classification and AdaBoost\n",
|
||
"\n",
|
||
"Let us consider a binary classification problem with two outcomes $y_i \\in \\{-1,1\\}$ and $i=0,1,2,\\dots,n-1$ as our set of\n",
|
||
"observations. We define a classification function $G(x)$ which produces a prediction taking one or the other of the two values \n",
|
||
"$\\{-1,1\\}$.\n",
|
||
"\n",
|
||
"The error rate of the training sample is then"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "663987d3",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathrm{\\overline{err}}=\\frac{1}{n} \\sum_{i=0}^{n-1} I(y_i\\ne G(x_i)).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3e9edc83",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"The iterative procedure starts with defining a weak classifier whose\n",
|
||
"error rate is barely better than random guessing. The iterative\n",
|
||
"procedure in boosting is to sequentially apply a weak\n",
|
||
"classification algorithm to repeatedly modified versions of the data\n",
|
||
"producing a sequence of weak classifiers $G_m(x)$.\n",
|
||
"\n",
|
||
"Here we will express our function $f(x)$ in terms of $G(x)$. That is"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3cda9bcd",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"f_M(x) = \\sum_{i=1}^M \\beta_m b(x;\\gamma_m),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7edaf000",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"will be a function of"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1fa4f58b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"G_M(x) = \\mathrm{sign} \\sum_{i=1}^M \\alpha_m G_m(x).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e28a8e62",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Adaptive Boosting, AdaBoost\n",
|
||
"\n",
|
||
"In our iterative procedure we define thus"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5a37bdc6",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"f_m(x) = f_{m-1}(x)+\\beta_mG_m(x).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4c4be7c9",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"The simplest possible cost function which leads (also simple from a computational point of view) to the AdaBoost algorithm is the\n",
|
||
"exponential cost/loss function defined as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "38b84a95",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\boldsymbol{y},\\boldsymbol{f}) = \\sum_{i=0}^{n-1}\\exp{(-y_i(f_{m-1}(x_i)+\\beta G(x_i))}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ba895ac8",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We optimize $\\beta$ and $G$ for each value of $m=1:M$ as we did in the regression case.\n",
|
||
"This is normally done in two steps. Let us however first rewrite the cost function as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "af95caad",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\boldsymbol{y},\\boldsymbol{f}) = \\sum_{i=0}^{n-1}w_i^{m}\\exp{(-y_i\\beta G(x_i))},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "646e0ad0",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"where we have defined $w_i^m= \\exp{(-y_if_{m-1}(x_i))}$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "51da297b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Building up AdaBoost\n",
|
||
"\n",
|
||
"First, for any $\\beta > 0$, we optimize $G$ by setting"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5fa1359f",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"G_m(x) = \\mathrm{sign} \\sum_{i=0}^{n-1} w_i^m I(y_i \\ne G_(x_i)),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c2b57438",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which is the classifier that minimizes the weighted error rate in predicting $y$.\n",
|
||
"\n",
|
||
"We can do this by rewriting"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "893c5364",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\exp{-(\\beta)}\\sum_{y_i=G(x_i)}w_i^m+\\exp{(\\beta)}\\sum_{y_i\\ne G(x_i)}w_i^m,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "aeda7004",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which can be rewritten as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "610ed75e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"(\\exp{(\\beta)}-\\exp{-(\\beta)})\\sum_{i=0}^{n-1}w_i^mI(y_i\\ne G(x_i))+\\exp{(-\\beta)}\\sum_{i=0}^{n-1}w_i^m=0,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2b3f30a8",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which leads to"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "0bbb00a7",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\beta_m = \\frac{1}{2}\\log{\\frac{1-\\mathrm{\\overline{err}}}{\\mathrm{\\overline{err}}}},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "027b1d12",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"where we have redefined the error as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "bef74b85",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathrm{\\overline{err}}_m=\\frac{1}{n}\\frac{\\sum_{i=0}^{n-1}w_i^mI(y_i\\ne G(x_i)}{\\sum_{i=0}^{n-1}w_i^m},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "71e5d396",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which leads to an update of"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9216bec9",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"f_m(x) = f_{m-1}(x) +\\beta_m G_m(x).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "fd01ca82",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"This leads to the new weights"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "94eafa92",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"w_i^{m+1} = w_i^m \\exp{(-y_i\\beta_m G_m(x_i))}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "257ef84d",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Adaptive boosting: AdaBoost, Basic Algorithm\n",
|
||
"\n",
|
||
"The algorithm here is rather straightforward. Assume that our weak\n",
|
||
"classifier is a decision tree and we consider a binary set of outputs\n",
|
||
"with $y_i \\in \\{-1,1\\}$ and $i=0,1,2,\\dots,n-1$ as our set of\n",
|
||
"observations. Our design matrix is given in terms of the\n",
|
||
"feature/predictor vectors\n",
|
||
"$\\boldsymbol{X}=[\\boldsymbol{x}_0\\boldsymbol{x}_1\\dots\\boldsymbol{x}_{p-1}]$. Finally, we define also a\n",
|
||
"classifier determined by our data via a function $G(x)$. This function tells us how well we are able to classify our outputs/targets $\\boldsymbol{y}$. \n",
|
||
"\n",
|
||
"We have already defined the misclassification error $\\mathrm{err}$ as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "387cf524",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathrm{err}=\\frac{1}{n}\\sum_{i=0}^{n-1}I(y_i\\ne G(x_i)),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7642db24",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"where the function $I()$ is one if we misclassify and zero if we classify correctly."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "bfaadd1b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Basic Steps of AdaBoost\n",
|
||
"\n",
|
||
"With the above definitions we are now ready to set up the algorithm for AdaBoost.\n",
|
||
"The basic idea is to set up weights which will be used to scale the correctly classified and the misclassified cases.\n",
|
||
"1. We start by initializing all weights to $w_i = 1/n$, with $i=0,1,2,\\dots n-1$. It is easy to see that we must have $\\sum_{i=0}^{n-1}w_i = 1$.\n",
|
||
"\n",
|
||
"2. We rewrite the misclassification error as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "00ae56a9",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathrm{\\overline{err}}_m=\\frac{\\sum_{i=0}^{n-1}w_i^m I(y_i\\ne G(x_i))}{\\sum_{i=0}^{n-1}w_i},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "225ecc0c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"1. Then we start looping over all attempts at classifying, namely we start an iterative process for $m=1:M$, where $M$ is the final number of classifications. Our given classifier could for example be a plain decision tree.\n",
|
||
"\n",
|
||
"a. Fit then a given classifier to the training set using the weights $w_i$.\n",
|
||
"\n",
|
||
"b. Compute then $\\mathrm{err}$ and figure out which events are classified properly and which are classified wrongly.\n",
|
||
"\n",
|
||
"c. Define a quantity $\\alpha_{m} = \\log{(1-\\mathrm{\\overline{err}}_m)/\\mathrm{\\overline{err}}_m}$\n",
|
||
"\n",
|
||
"d. Set the new weights to $w_i = w_i\\times \\exp{(\\alpha_m I(y_i\\ne G(x_i)}$.\n",
|
||
"\n",
|
||
"5. Compute the new classifier $G(x)= \\sum_{i=0}^{n-1}\\alpha_m I(y_i\\ne G(x_i)$.\n",
|
||
"\n",
|
||
"For the iterations with $m \\le 2$ the weights are modified\n",
|
||
"individually at each steps. The observations which were misclassified\n",
|
||
"at iteration $m-1$ have a weight which is larger than those which were\n",
|
||
"classified properly. As this proceeds, the observations which were\n",
|
||
"difficult to classifiy correctly are given a larger influence. Each\n",
|
||
"new classification step $m$ is then forced to concentrate on those\n",
|
||
"observations that are missed in the previous iterations."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "23d21cb5",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## AdaBoost Examples\n",
|
||
"\n",
|
||
"Using **Scikit-Learn** it is easy to apply the adaptive boosting algorithm, as done here."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 23,
|
||
"id": "5b306dbb",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.ensemble import AdaBoostClassifier\n",
|
||
"\n",
|
||
"ada_clf = AdaBoostClassifier(\n",
|
||
" DecisionTreeClassifier(max_depth=2), n_estimators=200,\n",
|
||
" algorithm=\"SAMME.R\", learning_rate=0.01, random_state=42)\n",
|
||
"ada_clf.fit(X_train, y_train)\n",
|
||
"y_pred = ada_clf.predict(X_test)\n",
|
||
"skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)\n",
|
||
"plt.show()\n",
|
||
"y_probas = ada_clf.predict_proba(X_test)\n",
|
||
"skplt.metrics.plot_roc(y_test, y_probas)\n",
|
||
"plt.show()\n",
|
||
"skplt.metrics.plot_cumulative_gain(y_test, y_probas)\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1ad57bea",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Making an ADAboost code yourself"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 24,
|
||
"id": "9fa47591",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Predictions: [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"\n",
|
||
"class DecisionStump:\n",
|
||
" def fit(self, X, y, weights):\n",
|
||
" m, n = X.shape\n",
|
||
" self.alpha = 0\n",
|
||
" self.threshold = None\n",
|
||
" self.polarity = 1\n",
|
||
"\n",
|
||
" min_error = float('inf')\n",
|
||
"\n",
|
||
" for feature in range(n):\n",
|
||
" feature_values = np.unique(X[:, feature])\n",
|
||
"\n",
|
||
" for threshold in feature_values:\n",
|
||
" for polarity in [1, -1]:\n",
|
||
" predictions = np.ones(m)\n",
|
||
" predictions[X[:, feature] < threshold] = -1\n",
|
||
" predictions *= polarity\n",
|
||
"\n",
|
||
" error = sum(weights[predictions != y])\n",
|
||
"\n",
|
||
" if error < min_error:\n",
|
||
" min_error = error\n",
|
||
" self.alpha = 0.5 * np.log((1 - error) / (error + 1e-10))\n",
|
||
" self.threshold = threshold\n",
|
||
" self.feature_index = feature\n",
|
||
" self.polarity = polarity\n",
|
||
"\n",
|
||
" def predict(self, X):\n",
|
||
" m = X.shape[0]\n",
|
||
" predictions = np.ones(m)\n",
|
||
" if self.polarity == 1:\n",
|
||
" predictions[X[:, self.feature_index] < self.threshold] = -1\n",
|
||
" else:\n",
|
||
" predictions[X[:, self.feature_index] >= self.threshold] = -1\n",
|
||
" return predictions\n",
|
||
"\n",
|
||
"class AdaBoost:\n",
|
||
" def fit(self, X, y, n_estimators):\n",
|
||
" m = X.shape[0]\n",
|
||
" self.alphas = []\n",
|
||
" self.models = []\n",
|
||
"\n",
|
||
" weights = np.ones(m) / m\n",
|
||
"\n",
|
||
" for _ in range(n_estimators):\n",
|
||
" stump = DecisionStump()\n",
|
||
" stump.fit(X, y, weights)\n",
|
||
" predictions = stump.predict(X)\n",
|
||
"\n",
|
||
" error = sum(weights[predictions != y])\n",
|
||
" if error == 0:\n",
|
||
" break\n",
|
||
"\n",
|
||
" self.models.append(stump)\n",
|
||
" self.alphas.append(stump.alpha)\n",
|
||
"\n",
|
||
" weights *= np.exp(-stump.alpha * y * predictions)\n",
|
||
" weights /= np.sum(weights)\n",
|
||
"\n",
|
||
" def predict(self, X):\n",
|
||
" final_predictions = np.zeros(X.shape[0])\n",
|
||
" for alpha, model in zip(self.alphas, self.models):\n",
|
||
" final_predictions += alpha * model.predict(X)\n",
|
||
" return np.sign(final_predictions)\n",
|
||
"\n",
|
||
"# Example dataset (X, y)\n",
|
||
"X = np.array([[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]])\n",
|
||
"y = np.array([-1, -1, -1, -1, 1, 1, 1, 1, 1, 1]) # Labels must be -1 or 1\n",
|
||
"\n",
|
||
"# Train AdaBoost\n",
|
||
"ada = AdaBoost()\n",
|
||
"ada.fit(X, y, n_estimators=10)\n",
|
||
"\n",
|
||
"# Predictions\n",
|
||
"predictions = ada.predict(X)\n",
|
||
"print(\"Predictions:\", predictions)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "23a21ab9",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent\n",
|
||
"\n",
|
||
"Gradient boosting is again a similar technique to Adaptive boosting,\n",
|
||
"it combines so-called weak classifiers or regressors into a strong\n",
|
||
"method via a series of iterations.\n",
|
||
"\n",
|
||
"In order to understand the method, let us illustrate its basics by\n",
|
||
"bringing back the essential steps in linear regression, where our cost\n",
|
||
"function was the least squares function."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "894970ab",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## The Squared-Error again! Steepest Descent\n",
|
||
"\n",
|
||
"We start again with our cost function ${\\cal C}(\\boldsymbol{y}m\\boldsymbol{f})=\\sum_{i=0}^{n-1}{\\cal L}(y_i, f(x_i))$ where we want to minimize\n",
|
||
"This means that for every iteration, we need to optimize"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ba3e00c7",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"(\\hat{\\boldsymbol{f}}) = \\mathrm{argmin}_{\\boldsymbol{f}}\\hspace{0.1cm} \\sum_{i=0}^{n-1}(y_i-f(x_i))^2.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "025a4a04",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We define a real function $h_m(x)$ that defines our final function $f_M(x)$ as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "00edbd24",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"f_M(x) = \\sum_{m=0}^M h_m(x).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b8e706d0",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"In the steepest decent approach we approximate $h_m(x) = -\\rho_m g_m(x)$, where $\\rho_m$ is a scalar and $g_m(x)$ the gradient defined as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "15830208",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"g_m(x_i) = \\left[ \\frac{\\partial {\\cal L}(y_i, f(x_i))}{\\partial f(x_i)}\\right]_{f(x_i)=f_{m-1}(x_i)}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "0cea352b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"With the new gradient we can update $f_m(x) = f_{m-1}(x) -\\rho_m g_m(x)$. Using the above squared-error function we see that\n",
|
||
"the gradient is $g_m(x_i) = -2(y_i-f(x_i))$.\n",
|
||
"\n",
|
||
"Choosing $f_0(x)=0$ we obtain $g_m(x) = -2y_i$ and inserting this into the minimization problem for the cost function we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "80ef3457",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"(\\rho_1) = \\mathrm{argmin}_{\\rho}\\hspace{0.1cm} \\sum_{i=0}^{n-1}(y_i+2\\rho y_i)^2.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f8b48156",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Steepest Descent Example\n",
|
||
"\n",
|
||
"Optimizing with respect to $\\rho$ we obtain (taking the derivative) that $\\rho_1 = -1/2$. We have then that"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "85fd2972",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"f_1(x) = f_{0}(x) -\\rho_1 g_1(x)=-y_i.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2d109d22",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We can then proceed and compute"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d06bc383",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"g_2(x_i) = \\left[ \\frac{\\partial {\\cal L}(y_i, f(x_i))}{\\partial f(x_i)}\\right]_{f(x_i)=f_{1}(x_i)=y_i}=-4y_i,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c3aec756",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"and find a new value for $\\rho_2=-1/2$ and continue till we have reached $m=M$. We can modify the steepest descent method, or steepest boosting, by introducing what is called **gradient boosting**."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e3a45e4c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Gradient Boosting, algorithm\n",
|
||
"\n",
|
||
"Steepest descent is however not much used, since it only optimizes $f$ at a fixed set of $n$ points,\n",
|
||
"so we do not learn a function that can generalize. However, we can modify the algorithm by\n",
|
||
"fitting a weak learner to approximate the negative gradient signal. \n",
|
||
"\n",
|
||
"Suppose we have a cost function $C(f)=\\sum_{i=0}^{n-1}L(y_i, f(x_i))$ where $y_i$ is our target and $f(x_i)$ the function which is meant to model $y_i$. The above cost function could be our standard squared-error function"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b67a78f2",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\boldsymbol{y},\\boldsymbol{f})=\\sum_{i=0}^{n-1}(y_i-f(x_i))^2.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c28b4f95",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"The way we proceed in an iterative fashion is to\n",
|
||
"1. Initialize our estimate $f_0(x)$.\n",
|
||
"\n",
|
||
"2. For $m=1:M$, we\n",
|
||
"\n",
|
||
"a. compute the negative gradient vector $\\boldsymbol{u}_m = -\\partial C(\\boldsymbol{y},\\boldsymbol{f})/\\partial \\boldsymbol{f}(x)$ at $f(x) = f_{m-1}(x)$;\n",
|
||
"\n",
|
||
"b. fit the so-called base-learner to the negative gradient $h_m(u_m,x)$;\n",
|
||
"\n",
|
||
"c. update the estimate $f_m(x) = f_{m-1}(x)+h_m(u_m,x)$;\n",
|
||
"\n",
|
||
"4. The final estimate is then $f_M(x) = \\sum_{m=1}^M h_m(u_m,x)$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e0537946",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Gradient Boosting, Examples of Regression"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 25,
|
||
"id": "aeb13f92",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Max depth: 1\n",
|
||
"Error: 0.5342761103009219\n",
|
||
"Bias^2: 0.2691876756287694\n",
|
||
"Var: 0.2650884346721525\n",
|
||
"0.5342761103009219 >= 0.2691876756287694 + 0.2650884346721525 = 0.5342761103009219\n",
|
||
"Max depth: 2\n",
|
||
"Error: 0.5517083121701298\n",
|
||
"Bias^2: 0.2702955477508497\n",
|
||
"Var: 0.2814127644192802\n",
|
||
"0.5517083121701298 >= 0.2702955477508497 + 0.2814127644192802 = 0.5517083121701298\n",
|
||
"Max depth: 3\n",
|
||
"Error: 0.5517159806402345\n",
|
||
"Bias^2: 0.2702960238760386\n",
|
||
"Var: 0.2814199567641959\n",
|
||
"0.5517159806402345 >= 0.2702960238760386 + 0.2814199567641959 = 0.5517159806402345\n",
|
||
"Max depth: 4\n",
|
||
"Error: 0.5517159842993391\n",
|
||
"Bias^2: 0.2702960240930953\n",
|
||
"Var: 0.2814199602062437\n",
|
||
"0.5517159842993391 >= 0.2702960240930953 + 0.2814199602062437 = 0.551715984299339\n",
|
||
"Max depth: 5\n",
|
||
"Error: 0.5517159842993391\n",
|
||
"Bias^2: 0.2702960240930953\n",
|
||
"Var: 0.2814199602062437\n",
|
||
"0.5517159842993391 >= 0.2702960240930953 + 0.2814199602062437 = 0.551715984299339\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/ensemble/_gb.py:424: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
|
||
" y = column_or_1d(y, warn=True)\n",
|
||
"/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/ensemble/_gb.py:424: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
|
||
" y = column_or_1d(y, warn=True)\n",
|
||
"/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/ensemble/_gb.py:424: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
|
||
" y = column_or_1d(y, warn=True)\n",
|
||
"/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/ensemble/_gb.py:424: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
|
||
" y = column_or_1d(y, warn=True)\n",
|
||
"/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/ensemble/_gb.py:424: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
|
||
" y = column_or_1d(y, warn=True)\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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izz7jRs3TmvWrKlxL5ouXbpozJgx6t+/vwIDA7Vu3TqtWLFCCQkJuuuuu5quRwAAoE0y/ZiEZcuWKTU1VcuXL1dubq4GDBiglStXauDAgfXWGzt2rDZs2KD33ntPJSUl6tKli6ZNm6ZHHnlEQUFBje4AAACAJNkMH7y1r8vlUnh4uPLz8+u9vw0AAGg9mvv72/RTugEAAFojQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAEQg0AALAE06HG7XZr+vTpiouLk9PpVFJSklatWmX6g//85z/LZrNp0qRJpusCAACcyHSoGT9+vObMmaOxY8dq3rx5stvtGj58uNatW9fgY7z//vvauHGj2Y8GAACok6lQs2nTJq1YsUIzZszQrFmzNGHCBH355Zfq0qWLpk2b1qBjlJSUaMqUKZo+fXqjGgwAAFAbU6EmLS1NdrtdEyZM8JQFBgYqOTlZGzduVFZW1kmP8eyzz6qyslJTp04131oAAIA6mAo1W7duVa9evRQWFlajPDExUZK0bdu2eutnZmbqmWee0cyZM+V0Os21FAAAoB7+ZnbOyclRbGysV3l1WXZ2dr31p0yZonPPPVc333yzmY+V2+2W2+32vHe5XKbqAwAA6zMVaoqLi+VwOLzKAwMDPdvrsnr1ar333ntKT0832URpxowZevzxx03XAwAAbYep009Op7PGjEm1kpISz/balJeX6/7779ftt9+uCy+80HQjU1JSlJ+f73k1ZO0OAABoW0zN1MTGxmr//v1e5Tk5OZKkuLi4WustW7ZMP//8s1599VVlZGTU2FZQUKCMjAx16NBBQUFBtdZ3OBy1zhABAABUMzVTk5CQoF27dnmtaak+pZSQkFBrvczM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XXjhhbXWAwDAl7WJUONLLrvsMs2fP79GWVRUlOf3Cy64wKtOly5dagSTHTt2KD4+3hNoJOnss89WRESEduzY4Qk1J9YDAMCXtYlQ4wywa/sTQ1vkc80KDg5Wjx496t3ekLKGfhYAAFbRJkKNzWYzfRrIl/Xp00dZWVnKysryzNZs375deXl5Ovvss1u4dQAANI+2803vI9xutw4cOFCjzN/fX9HR0Q0+xhVXXKH+/ftr7Nixev7551VeXq577rlHgwYNqvX0FQAAVsAl3a3Mp59+qtjY2BqvSy+91NQxbDabPvroI0VGRmrgwIG64oor1L17d7399tvN1GoAAFoeD7REq8C4AYD18UBLAACABiDUAAAASyDUAAAASyDUAAAASyDUAAAASyDUAAAASyDUAAAASyDUAAAASyDUAAAASyDUtCKDBw/W5MmT69zetWtXPf/886etPQAA+BIeaOlDNm/erODg4JZuBgAArRKhxofExMS0dBMAAGi1OP3UypSXl2vSpEkKDw9XdHS0UlNTVf3M0RNPP82ZM0f9+/dXcHCw4uPjdc8996iwsNCz/ddff9W1116ryMhIBQcHq2/fvvrkk09Od5cAADgt2sZMjWFIZUWn/3MDgiSbzVSVpUuXKjk5WZs2bdK3336rCRMmqHPnzvrrX//qta+fn59eeOEFdevWTXv37tU999yjadOm6ZVXXpEk3XvvvSotLdXXX3+t4OBgbd++XSEhIU3SNQAAWpu2EWrKiqSn407/5z6cLbUztwYmPj5ec+fOlc1m01lnnaUff/xRc+fOrTXUHL+ouGvXrnryySd19913e0JNZmambrrpJvXv31+S1L1798b3BQCAVo7TT63MRRddJNtxszsXX3yxdu/erYqKCq99P//8cw0ZMkRnnHGGQkNDdfvtt+u3335TUVHVrNT999+vJ598Un/605/06KOP6ocffjht/QAA4HRrGzM1AUFVsyYt8bnNJCMjQ9dcc40mTpyop556SlFRUVq3bp2Sk5NVWlqqoKAg3XnnnRo6dKg+/vhjffbZZ5oxY4aee+453Xfffc3WLgAAWkrbCDU2m+nTQC0lPT29xvtvvvlGPXv2lN1ur1H+3XffqbKyUs8995z8/Kom3N555x2v48XHx+vuu+/W3XffrZSUFL322muEGgCAJXH6qZXJzMzUQw89pJ9//llvvfWWXnzxRT3wwANe+/Xo0UNlZWV68cUXtXfvXi1fvlwLFiyosc/kyZP1z3/+U/v27dOWLVu0evVq9enT53R1BQCA04pQ08qMGzdOxcXFSkxM1L333qsHHnhAEyZM8NrvnHPO0Zw5czRz5kz169dPb7zxhmbMmFFjn4qKCt17773q06ePhg0bpl69enkWEQMAYDU2o/omKD7E5XIpPDxc+fn5CgsLq7GtpKRE+/btU7du3RQYGNhCLYRZjBsAWF99399NgZkaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYQaAABgCYSaNsBms+nDDz9s6WYAANCsCDWtxLXXXqthw4bVum3t2rWy2Wz64YcfGnXsnJwcXXXVVafSPAAAWj1CTSuRnJysVatW6V//+pfXtsWLF+uCCy7QgAEDTB2ztLRUktSpUyc5HI4maScAAK0VoaaVuOaaaxQTE6MlS5bUKC8sLNS7776r66+/XrfccovOOOMMBQUFqX///nrrrbdq7Dt48GBNmjRJkydPVnR0tIYOHSrJ+/TT9OnT1atXLwUFBal79+5KTU1VWVmZZ/tjjz2mhIQELV++XF27dlV4eLhuvvlmFRQUePaprKzUs88+qx49esjhcKhz58566qmnPNuzsrI0evRoRUREKCoqSiNGjFBGRkbT/YEBAHAC06HG7XZr+vTpiouLk9PpVFJSklatWtWguvv37/d80YWFhWnEiBHau3ev6UabZRiGisqKTvvLzAPQ/f39NW7cOC1ZsqRGvXfffVcVFRW67bbbdP755+vjjz/WTz/9pAkTJuj222/Xpk2bahxn6dKlateundavX68FCxbU+lmhoaFasmSJtm/frnnz5um1117T3Llza+yzZ88effjhh1q5cqVWrlypNWvW6JlnnvFsT0lJ0TPPPKPU1FRt375db775pjp27ChJKisr09ChQxUaGqq1a9dq/fr1CgkJ0bBhwzyzRwAANDWbYeabV9Itt9yitLQ0TZ48WT179tSSJUu0efNmrV69Wpdeemmd9QoLC3XeeecpPz9fU6ZMUUBAgObOnSvDMLRt2za1b9++wW2o79HlJSUl2rdvn7p166bAwEBJUlFZkZLeTDLTzSaRfmu6ggKCGrz/zp071adPH61evVqDBw+WJA0cOFBdunTR8uXLvfa/5ppr1Lt3b82ePVtS1UyNy+XSli1bauxns9n0wQcf6Prrr6/1c2fPnq0VK1bo22+/lVQ1UzNr1iwdOHBAoaGhkqRp06bp66+/1jfffKOCggLFxMTopZde0p133ul1vP/6r//Sk08+qR07dshms0mqOhUWERGhDz/8UFdeeaVXndrGDQBgLfV9fzcFfzM7b9q0SStWrNCsWbM0depUSdK4cePUr18/TZs2TRs2bKiz7iuvvKLdu3dr06ZNuvDCCyVJV111lfr166fnnntOTz/99Cl0wxp69+6tSy65RK+//roGDx6sX375RWvXrtUTTzyhiooKPf3003rnnXe0f/9+lZaWyu12KyioZmg6//zzT/o5b7/9tl544QXt2bNHhYWFKi8v9/rL1bVrV0+gkaTY2FgdOnRIkrRjxw653W4NGTKk1uN///33+uWXX2rUl6qCy549exr0ZwEAgFmmQk1aWprsdrsmTJjgKQsMDFRycrIefvhhZWVlKT4+vs66F154oSfQSFVf4kOGDNE777zTrKHG6e9U+q3pzXb8+j7XrOTkZN133316+eWXtXjxYv3bv/2bBg0apJkzZ2revHl6/vnn1b9/fwUHB2vy5Mlep3OCg4PrPf7GjRs1duxYPf744xo6dKjCw8O1YsUKPffcczX2CwgIqPHeZrOpsrKyql/O+vtVWFio888/X2+88YbXtpiYmHrrAgDQWKZCzdatW9WrVy+vf9UnJiZKkrZt21ZrqKmsrNQPP/ygf//3f/falpiYqM8++0wFBQVe/7Kv5na75Xa7Pe9dLpeZZstms5k6DdSSRo8erQceeEBvvvmmli1bpokTJ8pms2n9+vUaMWKEbrvtNklVf6a7du3S2Wefber4GzZsUJcuXfTII494yn799VdTx+jZs6ecTqe++OKLWk8/nXfeeXr77bfVoUOHZpleBACgNqYWCufk5Cg2NtarvLosOzu71npHjx6V2+1uVF1JmjFjhsLDwz2vumaDrCAkJERjxoxRSkqKcnJyNH78eElVQWLVqlXasGGDduzYobvuuksHDx40ffyePXsqMzNTK1as0J49e/TCCy/ogw8+MHWMwMBATZ8+XdOmTdOyZcu0Z88effPNN1q0aJEkaezYsYqOjtaIESO0du1a7du3T1999ZXuv//+Wi9ZBwCgKZgKNcXFxbXe76R6YWdxcXGd9SQ1qq5UdaVNfn6+55WVlWWm2T4nOTlZubm5Gjp0qOLi4iRJf//733Xeeedp6NChGjx4sDp16lTnwt/6XHfddXrwwQc1adIkJSQkaMOGDUpNTTV9nNTUVE2ZMkX/+Mc/1KdPH40ZM8az5iYoKEhff/21OnfurBtvvFF9+vRRcnKySkpKmLkBADQbU1c/9evXTx07dtQXX3xRo3z79u3q27evFixYoLvuusur3pEjRxQTE6MnnnjC6wv0lVde0b333qudO3fqrLPOalA7zF79hNaPcQMA62vuq59MzdTExsYqJyfHq7y6rHpW4URRUVFyOByNqgsAANAQpkJNQkKCdu3a5bVQNz093bO91g/x81P//v0990E5sW737t3rXCQMAADQEKZCzciRI1VRUaGFCxd6ytxutxYvXqykpCTPAt7MzEzt3LnTq+7mzZtrBJuff/5ZX375pUaNGnUqfQAAADB3SXdSUpJGjRqllJQUHTp0SD169NDSpUuVkZHhufJFqroh35o1a2rc7v+ee+7Ra6+9pquvvlpTp05VQECA5syZo44dO2rKlClN1yMAANAmmQo1krRs2TKlpqZq+fLlys3N1YABA7Ry5UoNHDiw3nqhoaH66quv9OCDD+rJJ59UZWWlBg8erLlz53JDNgAAcMpMP/upNWjI1U9dunTxeoQAWq+ioiL9+uuvXP0EABbWqp795AvatWsnPz8/ZWdnKyYmRu3atfM8VBGtj2EYKi0t1eHDh+Xn56d27dq1dJMAAD7KcqHGz89P3bp1U05OTr13KUbrEhQUpM6dO8vPz9TadQAAPCwXaqSq2ZrOnTurvLxcFRUVLd0cnITdbpe/vz8zagCAU2LJUCNVPcQyICDA62nTAADAmpjrBwAAlkCoAQAAlkCoAQAAluCTa2qqb61z4jOoAABA61X9vd1ct8jzyVDz22+/SZLnWVMAAMB3/PbbbwoPD2/y4/pkqImKipJU9eDM5vhDaa1cLpfi4+OVlZXVLHdibK3oN/1uC+g3/W4L8vPz1blzZ8/3eFPzyVBTfYO28PDwNvWXoVpYWBj9bkPod9tCv9uWttrv5rrRKguFAQCAJRBqAACAJfhkqHE4HHr00UflcDhauimnFf2m320B/abfbQH9bp5+24zmuq4KAADgNPLJmRoAAIATEWoAAIAlEGoAAIAlEGoAAIAltKpQU1hYqEcffVTDhg1TVFSUbDablixZ0uD6eXl5mjBhgmJiYhQcHKzLLrtMW7Zsab4GN5FT6feSJUtks9lqfR04cKB5G34KNm/erEmTJqlv374KDg5W586dNXr0aO3atatB9X11rE+l37461pL0f//3fxo1apS6d++uoKAgRUdHa+DAgfqf//mfBtX31fE+lX778njX5qmnnpLNZlO/fv0atP/+/fs1evRoRUREKCwsTCNGjNDevXubuZVNz0y/H3vssVrHOzAw8DS0tPG++uqrOv+ufvPNNyet35Rj3aruKHzkyBE98cQT6ty5s8455xx99dVXDa5bWVmpq6++Wt9//73+9re/KTo6Wq+88ooGDx6s7777Tj179my+hp+iU+l3tSeeeELdunWrURYREdE0DWwGM2fO1Pr16zVq1CgNGDBABw4c0EsvvaTzzjtP33zzTb3/A/DlsT6VflfztbGWpF9//VUFBQW64447FBcXp6KiIr333nu67rrr9Oqrr2rChAl11vXl8T6VflfzxfE+0b/+9S89/fTTCg4ObtD+hYWFuuyyy5Sfn6+HH35YAQEBmjt3rgYNGqRt27apffv2zdzipmG239Xmz5+vkJAQz3u73d7UTWsW999/vy688MIaZT169Ki3TpOPtdGKlJSUGDk5OYZhGMbmzZsNScbixYsbVPftt982JBnvvvuup+zQoUNGRESEccsttzRHc5vMqfR78eLFhiRj8+bNzdjCprd+/XrD7XbXKNu1a5fhcDiMsWPH1lvXl8f6VPrtq2Ndl/LycuOcc84xzjrrrHr38+Xxrk1D+22l8R4zZoxx+eWXG4MGDTL69u170v1nzpxpSDI2bdrkKduxY4dht9uNlJSU5mxqkzLb70cffdSQZBw+fPg0tK7prF692uu/0YZq6rFuVaefHA6HOnXq1Ki6aWlp6tixo2688UZPWUxMjEaPHq2PPvpIbre7qZrZ5E6l38crKChQRUVFE7So+V1yySVq165djbKePXuqb9++2rFjR711fXmsT6Xfx/Olsa6L3W5XfHy88vLy6t3Pl8e7Ng3t9/F8eby//vprpaWl6fnnn29wnbS0NF144YU1/tXfu3dvDRkyRO+8804ztLLpNabf1QzDkMvlkuGDt5ErKChQeXl5g/dv6rFuVaHmVGzdulXnnXee10OyEhMTVVRU1OC1Gr7qsssuU1hYmIKCgnTddddp9+7dLd0k0wzD0MGDBxUdHV3vflYb64b2u5ovj/Xvv/+uI0eOaM+ePZo7d67+93//V0OGDKm3jhXGuzH9rubL411RUaH77rtPd955p/r379+gOpWVlfrhhx90wQUXeG1LTEzUnj17VFBQ0NRNbVKN6ffxunfvrvDwcIWGhuq2227TwYMHm6GVTe8vf/mLwsLCFBgYqMsuu0zffvttvfs3x1i3qjU1pyInJ0cDBw70Ko+NjZUkZWdnN+ovV2sXFBSk8ePHe/7H991332nOnDm65JJLtGXLFsXHx7d0ExvsjTfe0P79+/XEE0/Uu5/Vxrqh/bbCWE+ZMkWvvvqqpKqn9N5444166aWX6q1jhfFuTL+tMN4LFizQr7/+qs8//7zBdY4ePSq32+0Z3+MdP+ZnnXVWk7WzqTWm35IUGRmpSZMm6eKLL5bD4dDatWv18ssva9OmTfr2229b7dO827Vrp5tuuknDhw9XdHS0tm/frtmzZ+v//b//pw0bNujcc8+ttV6zjLXpE1anidm1JX5+fsbEiRO9yr/44gtDkvHBBx80bQObidl+12bt2rWGzWYz7rrrrqZrWDPbsWOHERYWZlx88cVGeXl5vftaZawNw1y/a+NrY71jxw5j1apVxtKlS42rr77auOGGG4wDBw7UW8cK492YftfGl8b7yJEjRlRUlDF79mxPWUPWlmRmZhqSjJkzZ3ptW7RokSHJ2Lp1a1M3t8k0tt91eeONNwxJxowZM5qqiafF7t27DafTaQwdOrTOfZpjrC1z+snpdNZ6br2kpMSzva249NJLlZSUZPpfCS3lwIEDuvrqqxUeHq60tLSTrvS3ylib7XdtfG2se/furSuuuELjxo3TypUrVVhYqGuvvbbetQNWGO/G9Ls2vjTef//73xUVFaX77rvPVL3q8fTVMW9sv+ty6623qlOnTj4x5sfr0aOHRowYodWrV9e5Hqw5xtoyoSY2NlY5OTle5dVlcXFxp7tJLSo+Pl5Hjx5t6WacVH5+vq666irl5eXp008/bdA4WWGsG9PvuvjKWNdm5MiR2rx5c73rYqww3idqSL/r4gvjvXv3bi1cuFD333+/srOzlZGRoYyMDJWUlKisrEwZGRl19iEqKkoOh8Mnx/xU+l0fXxjz2sTHx6u0tFS///57rdubY6wtE2oSEhK0ZcsWVVZW1ihPT09XUFCQevXq1UItaxl79+5VTExMSzejXiUlJbr22mu1a9curVy5UmeffXaD6vn6WDe233XxhbGuS3FxsaSqkFcXXx/v2jSk33XxhfHev3+/Kisrdf/996tbt26eV3p6unbt2qVu3brVuYbMz89P/fv3r3WRaXp6urp3767Q0NDm7kKjnEq/62IYhjIyMlr9mNdm7969CgwMrHHPneM1x1j7ZKjJycnRzp07VVZW5ikbOXKkDh48qPfff99TduTIEb377ru69tpr5XA4WqKpTaq2fh8+fNhrv08++UTfffedhg0bdjqbZ0pFRYXGjBmjjRs36t1339XFF19c635WG+tT6bevjrUkHTp0yKusrKxMy5Ytk9Pp9AQ7q433qfTbl8e7X79++uCDD7xeffv2VefOnfXBBx8oOTlZkpSZmamdO3fWqF89k3X8l93PP/+sL7/8UqNGjTqtfTHjVPtd25jPnz9fhw8fbtVjXlu7v//+e/33f/+3rrzySs+Vi6djrG2G2ZO6zeyll15SXl6esrOzNX/+fN14442eldP33XefwsPDNX78eC1dulT79u1T165dJVV9WVx66aX66aefatx1NDMzU5s3b27VK+Wlxve7Z8+eOvfcc3XBBRcoPDxcW7Zs0euvv67Y2Fht3rxZHTt2bMFe1W3y5MmaN2+err32Wo0ePdpr+2233SZJlhvrU+m3r461JN1www1yuVwaOHCgzjjjDB04cEBvvPGGdu7cqeeee04PPfSQJOuN96n025fHuy6DBw/WkSNH9NNPP9UoW7NmTY31RQUFBTr33HNVUFCgqVOnKiAgQHPmzFFFRYW2bdvmc7MWDe13UFCQxowZo/79+yswMFDr1q3TihUrdM4552j9+vUKCgpqieaf1OWXXy6n06lLLrlEHTp00Pbt27Vw4UIFBARo48aN6tOnj6TTNNamlhWfBl26dDEk1frat2+fYRiGcccdd9R4X+3o0aNGcnKy0b59eyMoKMgYNGiQz9yNs7H9fuSRR4yEhAQjPDzcCAgIMDp37mxMnDixUVdWnE6DBg2qs7/H/7W02lifSr99dawNwzDeeust44orrjA6duxo+Pv7G5GRkcYVV1xhfPTRRzX2s9p4n0q/fXm861LbVUDV/02cKCsryxg5cqQRFhZmhISEGNdcc42xe/fu09XUJtXQft95553G2WefbYSGhhoBAQFGjx49jOnTpxsul+t0Nte0efPmGYmJiUZUVJTh7+9vxMbGGrfddpvXeJ2OsW51MzUAAACN4ZNragAAAE5EqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJbw/wGg6MpQPiQyUgAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import numpy as np\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.ensemble import GradientBoostingRegressor\n",
|
||
"import scikitplot as skplt\n",
|
||
"from sklearn.metrics import mean_squared_error\n",
|
||
"\n",
|
||
"n = 100\n",
|
||
"maxdegree = 6\n",
|
||
"\n",
|
||
"# Make data set.\n",
|
||
"x = np.linspace(-3, 3, n).reshape(-1, 1)\n",
|
||
"y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)\n",
|
||
"\n",
|
||
"error = np.zeros(maxdegree)\n",
|
||
"bias = np.zeros(maxdegree)\n",
|
||
"variance = np.zeros(maxdegree)\n",
|
||
"polydegree = np.zeros(maxdegree)\n",
|
||
"X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n",
|
||
"\n",
|
||
"for degree in range(1,maxdegree):\n",
|
||
" model = GradientBoostingRegressor(max_depth=degree, n_estimators=100, learning_rate=1.0) \n",
|
||
" model.fit(X_train,y_train)\n",
|
||
" y_pred = model.predict(X_test)\n",
|
||
" polydegree[degree] = degree\n",
|
||
" error[degree] = np.mean( np.mean((y_test - y_pred)**2) )\n",
|
||
" bias[degree] = np.mean( (y_test - np.mean(y_pred))**2 )\n",
|
||
" variance[degree] = np.mean( np.var(y_pred) )\n",
|
||
" print('Max depth:', degree)\n",
|
||
" print('Error:', error[degree])\n",
|
||
" print('Bias^2:', bias[degree])\n",
|
||
" print('Var:', variance[degree])\n",
|
||
" print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))\n",
|
||
"\n",
|
||
"plt.xlim(1,maxdegree-1)\n",
|
||
"plt.plot(polydegree, error, label='Error')\n",
|
||
"plt.plot(polydegree, bias, label='bias')\n",
|
||
"plt.plot(polydegree, variance, label='Variance')\n",
|
||
"plt.legend()\n",
|
||
"save_fig(\"gdregression\")\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "0f3ebcc3",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Gradient Boosting, Classification Example"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 26,
|
||
"id": "5cd3bdba",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"(426, 30)\n",
|
||
"(143, 30)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[0.93333333 0.86666667 0.93333333 1. 1. 0.92857143\n",
|
||
" 1. 0.92857143 1. 0.85714286]\n",
|
||
"Test set accuracy with Gradient boosting and scaled data: 0.97\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import numpy as np\n",
|
||
"from sklearn.model_selection import train_test_split \n",
|
||
"from sklearn.datasets import load_breast_cancer\n",
|
||
"import scikitplot as skplt\n",
|
||
"from sklearn.ensemble import GradientBoostingClassifier\n",
|
||
"from sklearn.model_selection import cross_validate\n",
|
||
"\n",
|
||
"# Load the data\n",
|
||
"cancer = load_breast_cancer()\n",
|
||
"\n",
|
||
"X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n",
|
||
"print(X_train.shape)\n",
|
||
"print(X_test.shape)\n",
|
||
"#now scale the data\n",
|
||
"from sklearn.preprocessing import StandardScaler\n",
|
||
"scaler = StandardScaler()\n",
|
||
"scaler.fit(X_train)\n",
|
||
"X_train_scaled = scaler.transform(X_train)\n",
|
||
"X_test_scaled = scaler.transform(X_test)\n",
|
||
"\n",
|
||
"gd_clf = GradientBoostingClassifier(max_depth=3, n_estimators=100, learning_rate=1.0) \n",
|
||
"gd_clf.fit(X_train_scaled, y_train)\n",
|
||
"#Cross validation\n",
|
||
"accuracy = cross_validate(gd_clf,X_test_scaled,y_test,cv=10)['test_score']\n",
|
||
"print(accuracy)\n",
|
||
"print(\"Test set accuracy with Gradient boosting and scaled data: {:.2f}\".format(gd_clf.score(X_test_scaled,y_test)))\n",
|
||
"\n",
|
||
"import scikitplot as skplt\n",
|
||
"y_pred = gd_clf.predict(X_test_scaled)\n",
|
||
"skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)\n",
|
||
"save_fig(\"gdclassiffierconfusion\")\n",
|
||
"plt.show()\n",
|
||
"y_probas = gd_clf.predict_proba(X_test_scaled)\n",
|
||
"skplt.metrics.plot_roc(y_test, y_probas)\n",
|
||
"save_fig(\"gdclassiffierroc\")\n",
|
||
"plt.show()\n",
|
||
"skplt.metrics.plot_cumulative_gain(y_test, y_probas)\n",
|
||
"save_fig(\"gdclassiffiercgain\")\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "898b364e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## XGBoost: Extreme Gradient Boosting\n",
|
||
"\n",
|
||
"[XGBoost](https://github.com/dmlc/xgboost) or Extreme Gradient\n",
|
||
"Boosting, is an optimized distributed gradient boosting library\n",
|
||
"designed to be highly efficient, flexible and portable. It implements\n",
|
||
"machine learning algorithms under the Gradient Boosting\n",
|
||
"framework. XGBoost provides a parallel tree boosting that solve many\n",
|
||
"data science problems in a fast and accurate way. See the [article by Chen and Guestrin](https://arxiv.org/abs/1603.02754).\n",
|
||
"\n",
|
||
"The authors design and build a highly scalable end-to-end tree\n",
|
||
"boosting system. It has a theoretically justified weighted quantile\n",
|
||
"sketch for efficient proposal calculation. It introduces a novel sparsity-aware algorithm for parallel tree learning and an effective cache-aware block structure for out-of-core tree learning.\n",
|
||
"\n",
|
||
"It is now the algorithm which wins essentially all ML competitions!!!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "33ef99cd",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Regression Case"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 27,
|
||
"id": "e824145e",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[08:11:29] WARNING: /var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_21wtzqx5vy/croot/xgboost-split_1675457780668/work/src/learner.cc:767: \n",
|
||
"Parameters: { \"colsaobjective\" } are not used.\n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"ename": "XGBoostError",
|
||
"evalue": "[08:11:29] /var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_21wtzqx5vy/croot/xgboost-split_1675457780668/work/src/tree/updater_colmaker.cc:177: Check failed: param_.max_depth > 0 (0 vs. 0) : exact tree method doesn't support unlimited depth.\nStack trace:\n [bt] (0) 1 libxgboost.dylib 0x0000000162809b90 dmlc::LogMessageFatal::~LogMessageFatal() + 124\n [bt] (1) 2 libxgboost.dylib 0x00000001629fff1c xgboost::tree::ColMaker::Builder::Update(std::__1::vector<xgboost::detail::GradientPairInternal<float>, std::__1::allocator<xgboost::detail::GradientPairInternal<float>>> const&, xgboost::DMatrix*, xgboost::RegTree*) + 1092\n [bt] (2) 3 libxgboost.dylib 0x00000001629fed88 xgboost::tree::ColMaker::Update(xgboost::HostDeviceVector<xgboost::detail::GradientPairInternal<float>>*, xgboost::DMatrix*, xgboost::common::Span<xgboost::HostDeviceVector<int>, 18446744073709551615ul>, std::__1::vector<xgboost::RegTree*, std::__1::allocator<xgboost::RegTree*>> const&) + 412\n [bt] (3) 4 libxgboost.dylib 0x00000001628fa74c xgboost::gbm::GBTree::BoostNewTrees(xgboost::HostDeviceVector<xgboost::detail::GradientPairInternal<float>>*, xgboost::DMatrix*, int, std::__1::vector<std::__1::unique_ptr<xgboost::RegTree, std::__1::default_delete<xgboost::RegTree>>, std::__1::allocator<std::__1::unique_ptr<xgboost::RegTree, std::__1::default_delete<xgboost::RegTree>>>>*) + 1944\n [bt] (4) 5 libxgboost.dylib 0x00000001628f47bc xgboost::gbm::GBTree::DoBoost(xgboost::DMatrix*, xgboost::HostDeviceVector<xgboost::detail::GradientPairInternal<float>>*, xgboost::PredictionCacheEntry*, xgboost::ObjFunction const*) + 472\n [bt] (5) 6 libxgboost.dylib 0x000000016291335c xgboost::LearnerImpl::UpdateOneIter(int, std::__1::shared_ptr<xgboost::DMatrix>) + 708\n [bt] (6) 7 libxgboost.dylib 0x0000000162823908 XGBoosterUpdateOneIter + 160\n [bt] (7) 8 libffi.8.dylib 0x00000001053bc04c ffi_call_SYSV + 76\n [bt] (8) 9 libffi.8.dylib 0x00000001053b9834 ffi_call_int + 1404\n\n",
|
||
"output_type": "error",
|
||
"traceback": [
|
||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||
"\u001b[0;31mXGBoostError\u001b[0m Traceback (most recent call last)",
|
||
"Cell \u001b[0;32mIn[27], line 24\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m degree \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(maxdegree):\n\u001b[1;32m 22\u001b[0m model \u001b[38;5;241m=\u001b[39m xgb\u001b[38;5;241m.\u001b[39mXGBRegressor(objective \u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mreg:squarederror\u001b[39m\u001b[38;5;124m'\u001b[39m, colsaobjective \u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mreg:squarederror\u001b[39m\u001b[38;5;124m'\u001b[39m, colsample_bytree \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0.3\u001b[39m, learning_rate \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0.1\u001b[39m,max_depth \u001b[38;5;241m=\u001b[39m degree, alpha \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m10\u001b[39m, n_estimators \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m200\u001b[39m)\n\u001b[0;32m---> 24\u001b[0m \u001b[43mmodel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX_train\u001b[49m\u001b[43m,\u001b[49m\u001b[43my_train\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 25\u001b[0m y_pred \u001b[38;5;241m=\u001b[39m model\u001b[38;5;241m.\u001b[39mpredict(X_test)\n\u001b[1;32m 26\u001b[0m polydegree[degree] \u001b[38;5;241m=\u001b[39m degree\n",
|
||
"File \u001b[0;32m~/miniforge3/envs/myenv/lib/python3.9/site-packages/xgboost/core.py:620\u001b[0m, in \u001b[0;36mrequire_keyword_args.<locals>.throw_if.<locals>.inner_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 618\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, arg \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(sig\u001b[38;5;241m.\u001b[39mparameters, args):\n\u001b[1;32m 619\u001b[0m kwargs[k] \u001b[38;5;241m=\u001b[39m arg\n\u001b[0;32m--> 620\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
|
||
"File \u001b[0;32m~/miniforge3/envs/myenv/lib/python3.9/site-packages/xgboost/sklearn.py:1025\u001b[0m, in \u001b[0;36mXGBModel.fit\u001b[0;34m(self, X, y, sample_weight, base_margin, eval_set, eval_metric, early_stopping_rounds, verbose, xgb_model, sample_weight_eval_set, base_margin_eval_set, feature_weights, callbacks)\u001b[0m\n\u001b[1;32m 1014\u001b[0m obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1016\u001b[0m (\n\u001b[1;32m 1017\u001b[0m model,\n\u001b[1;32m 1018\u001b[0m metric,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1023\u001b[0m xgb_model, eval_metric, params, early_stopping_rounds, callbacks\n\u001b[1;32m 1024\u001b[0m )\n\u001b[0;32m-> 1025\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_Booster \u001b[38;5;241m=\u001b[39m \u001b[43mtrain\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1026\u001b[0m \u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1027\u001b[0m \u001b[43m \u001b[49m\u001b[43mtrain_dmatrix\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1028\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_num_boosting_rounds\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1029\u001b[0m \u001b[43m \u001b[49m\u001b[43mevals\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mevals\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1030\u001b[0m \u001b[43m \u001b[49m\u001b[43mearly_stopping_rounds\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mearly_stopping_rounds\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1031\u001b[0m \u001b[43m \u001b[49m\u001b[43mevals_result\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mevals_result\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1032\u001b[0m \u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mobj\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1033\u001b[0m \u001b[43m \u001b[49m\u001b[43mcustom_metric\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmetric\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1034\u001b[0m \u001b[43m \u001b[49m\u001b[43mverbose_eval\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mverbose\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1035\u001b[0m \u001b[43m \u001b[49m\u001b[43mxgb_model\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1036\u001b[0m \u001b[43m \u001b[49m\u001b[43mcallbacks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcallbacks\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1037\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1039\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_set_evaluation_result(evals_result)\n\u001b[1;32m 1040\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\n",
|
||
"File \u001b[0;32m~/miniforge3/envs/myenv/lib/python3.9/site-packages/xgboost/core.py:620\u001b[0m, in \u001b[0;36mrequire_keyword_args.<locals>.throw_if.<locals>.inner_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 618\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, arg \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(sig\u001b[38;5;241m.\u001b[39mparameters, args):\n\u001b[1;32m 619\u001b[0m kwargs[k] \u001b[38;5;241m=\u001b[39m arg\n\u001b[0;32m--> 620\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
|
||
"File \u001b[0;32m~/miniforge3/envs/myenv/lib/python3.9/site-packages/xgboost/training.py:185\u001b[0m, in \u001b[0;36mtrain\u001b[0;34m(params, dtrain, num_boost_round, evals, obj, feval, maximize, early_stopping_rounds, evals_result, verbose_eval, xgb_model, callbacks, custom_metric)\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cb_container\u001b[38;5;241m.\u001b[39mbefore_iteration(bst, i, dtrain, evals):\n\u001b[1;32m 184\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[0;32m--> 185\u001b[0m \u001b[43mbst\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdtrain\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 186\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cb_container\u001b[38;5;241m.\u001b[39mafter_iteration(bst, i, dtrain, evals):\n\u001b[1;32m 187\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n",
|
||
"File \u001b[0;32m~/miniforge3/envs/myenv/lib/python3.9/site-packages/xgboost/core.py:1918\u001b[0m, in \u001b[0;36mBooster.update\u001b[0;34m(self, dtrain, iteration, fobj)\u001b[0m\n\u001b[1;32m 1915\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_validate_dmatrix_features(dtrain)\n\u001b[1;32m 1917\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m fobj \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1918\u001b[0m \u001b[43m_check_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43m_LIB\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mXGBoosterUpdateOneIter\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1919\u001b[0m \u001b[43m \u001b[49m\u001b[43mctypes\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mc_int\u001b[49m\u001b[43m(\u001b[49m\u001b[43miteration\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1920\u001b[0m \u001b[43m \u001b[49m\u001b[43mdtrain\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1921\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1922\u001b[0m pred \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpredict(dtrain, output_margin\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m, training\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n",
|
||
"File \u001b[0;32m~/miniforge3/envs/myenv/lib/python3.9/site-packages/xgboost/core.py:279\u001b[0m, in \u001b[0;36m_check_call\u001b[0;34m(ret)\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Check the return value of C API call\u001b[39;00m\n\u001b[1;32m 269\u001b[0m \n\u001b[1;32m 270\u001b[0m \u001b[38;5;124;03mThis function will raise exception when error occurs.\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 276\u001b[0m \u001b[38;5;124;03m return value from API calls\u001b[39;00m\n\u001b[1;32m 277\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 278\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ret \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m--> 279\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m XGBoostError(py_str(_LIB\u001b[38;5;241m.\u001b[39mXGBGetLastError()))\n",
|
||
"\u001b[0;31mXGBoostError\u001b[0m: [08:11:29] /var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_21wtzqx5vy/croot/xgboost-split_1675457780668/work/src/tree/updater_colmaker.cc:177: Check failed: param_.max_depth > 0 (0 vs. 0) : exact tree method doesn't support unlimited depth.\nStack trace:\n [bt] (0) 1 libxgboost.dylib 0x0000000162809b90 dmlc::LogMessageFatal::~LogMessageFatal() + 124\n [bt] (1) 2 libxgboost.dylib 0x00000001629fff1c xgboost::tree::ColMaker::Builder::Update(std::__1::vector<xgboost::detail::GradientPairInternal<float>, std::__1::allocator<xgboost::detail::GradientPairInternal<float>>> const&, xgboost::DMatrix*, xgboost::RegTree*) + 1092\n [bt] (2) 3 libxgboost.dylib 0x00000001629fed88 xgboost::tree::ColMaker::Update(xgboost::HostDeviceVector<xgboost::detail::GradientPairInternal<float>>*, xgboost::DMatrix*, xgboost::common::Span<xgboost::HostDeviceVector<int>, 18446744073709551615ul>, std::__1::vector<xgboost::RegTree*, std::__1::allocator<xgboost::RegTree*>> const&) + 412\n [bt] (3) 4 libxgboost.dylib 0x00000001628fa74c xgboost::gbm::GBTree::BoostNewTrees(xgboost::HostDeviceVector<xgboost::detail::GradientPairInternal<float>>*, xgboost::DMatrix*, int, std::__1::vector<std::__1::unique_ptr<xgboost::RegTree, std::__1::default_delete<xgboost::RegTree>>, std::__1::allocator<std::__1::unique_ptr<xgboost::RegTree, std::__1::default_delete<xgboost::RegTree>>>>*) + 1944\n [bt] (4) 5 libxgboost.dylib 0x00000001628f47bc xgboost::gbm::GBTree::DoBoost(xgboost::DMatrix*, xgboost::HostDeviceVector<xgboost::detail::GradientPairInternal<float>>*, xgboost::PredictionCacheEntry*, xgboost::ObjFunction const*) + 472\n [bt] (5) 6 libxgboost.dylib 0x000000016291335c xgboost::LearnerImpl::UpdateOneIter(int, std::__1::shared_ptr<xgboost::DMatrix>) + 708\n [bt] (6) 7 libxgboost.dylib 0x0000000162823908 XGBoosterUpdateOneIter + 160\n [bt] (7) 8 libffi.8.dylib 0x00000001053bc04c ffi_call_SYSV + 76\n [bt] (8) 9 libffi.8.dylib 0x00000001053b9834 ffi_call_int + 1404\n\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import numpy as np\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"import xgboost as xgb\n",
|
||
"import scikitplot as skplt\n",
|
||
"from sklearn.metrics import mean_squared_error\n",
|
||
"\n",
|
||
"n = 100\n",
|
||
"maxdegree = 6\n",
|
||
"\n",
|
||
"# Make data set.\n",
|
||
"x = np.linspace(-3, 3, n).reshape(-1, 1)\n",
|
||
"y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)\n",
|
||
"\n",
|
||
"error = np.zeros(maxdegree)\n",
|
||
"bias = np.zeros(maxdegree)\n",
|
||
"variance = np.zeros(maxdegree)\n",
|
||
"polydegree = np.zeros(maxdegree)\n",
|
||
"X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n",
|
||
"\n",
|
||
"for degree in range(maxdegree):\n",
|
||
" model = xgb.XGBRegressor(objective ='reg:squarederror', colsaobjective ='reg:squarederror', colsample_bytree = 0.3, learning_rate = 0.1,max_depth = degree, alpha = 10, n_estimators = 200)\n",
|
||
"\n",
|
||
" model.fit(X_train,y_train)\n",
|
||
" y_pred = model.predict(X_test)\n",
|
||
" polydegree[degree] = degree\n",
|
||
" error[degree] = np.mean( np.mean((y_test - y_pred)**2) )\n",
|
||
" bias[degree] = np.mean( (y_test - np.mean(y_pred))**2 )\n",
|
||
" variance[degree] = np.mean( np.var(y_pred) )\n",
|
||
" print('Max depth:', degree)\n",
|
||
" print('Error:', error[degree])\n",
|
||
" print('Bias^2:', bias[degree])\n",
|
||
" print('Var:', variance[degree])\n",
|
||
" print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))\n",
|
||
"\n",
|
||
"plt.xlim(1,maxdegree-1)\n",
|
||
"plt.plot(polydegree, error, label='Error')\n",
|
||
"plt.plot(polydegree, bias, label='bias')\n",
|
||
"plt.plot(polydegree, variance, label='Variance')\n",
|
||
"plt.legend()\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d3afaeea",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Xgboost on the Cancer Data\n",
|
||
"\n",
|
||
"As you will see from the confusion matrix below, XGBoots does an excellent job on the Wisconsin cancer data and outperforms essentially all agorithms we have discussed till now."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 28,
|
||
"id": "c751b513",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import numpy as np\n",
|
||
"from sklearn.model_selection import train_test_split \n",
|
||
"from sklearn.datasets import load_breast_cancer\n",
|
||
"from sklearn.preprocessing import LabelEncoder\n",
|
||
"from sklearn.model_selection import cross_validate\n",
|
||
"import scikitplot as skplt\n",
|
||
"import xgboost as xgb\n",
|
||
"# Load the data\n",
|
||
"cancer = load_breast_cancer()\n",
|
||
"\n",
|
||
"X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n",
|
||
"print(X_train.shape)\n",
|
||
"print(X_test.shape)\n",
|
||
"#now scale the data\n",
|
||
"from sklearn.preprocessing import StandardScaler\n",
|
||
"scaler = StandardScaler()\n",
|
||
"scaler.fit(X_train)\n",
|
||
"X_train_scaled = scaler.transform(X_train)\n",
|
||
"X_test_scaled = scaler.transform(X_test)\n",
|
||
"\n",
|
||
"xg_clf = xgb.XGBClassifier()\n",
|
||
"xg_clf.fit(X_train_scaled,y_train)\n",
|
||
"\n",
|
||
"y_test = xg_clf.predict(X_test_scaled)\n",
|
||
"\n",
|
||
"print(\"Test set accuracy with Gradient Boosting and scaled data: {:.2f}\".format(xg_clf.score(X_test_scaled,y_test)))\n",
|
||
"\n",
|
||
"import scikitplot as skplt\n",
|
||
"y_pred = xg_clf.predict(X_test_scaled)\n",
|
||
"skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)\n",
|
||
"save_fig(\"xdclassiffierconfusion\")\n",
|
||
"plt.show()\n",
|
||
"y_probas = xg_clf.predict_proba(X_test_scaled)\n",
|
||
"skplt.metrics.plot_roc(y_test, y_probas)\n",
|
||
"save_fig(\"xdclassiffierroc\")\n",
|
||
"plt.show()\n",
|
||
"skplt.metrics.plot_cumulative_gain(y_test, y_probas)\n",
|
||
"save_fig(\"gdclassiffiercgain\")\n",
|
||
"plt.show()\n",
|
||
"\n",
|
||
"\n",
|
||
"xgb.plot_tree(xg_clf,num_trees=0)\n",
|
||
"plt.rcParams['figure.figsize'] = [50, 10]\n",
|
||
"save_fig(\"xgtree\")\n",
|
||
"plt.show()\n",
|
||
"\n",
|
||
"xgb.plot_importance(xg_clf)\n",
|
||
"plt.rcParams['figure.figsize'] = [5, 5]\n",
|
||
"save_fig(\"xgparams\")\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "219c871d",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Gradient boosting, making our own code for a regression case"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 29,
|
||
"id": "8b7d107b",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"class DecisionTreeRegressor:\n",
|
||
" def __init__(self, max_depth=3):\n",
|
||
" self.max_depth = max_depth\n",
|
||
" self.tree = None\n",
|
||
" def fit(self, X, y):\n",
|
||
" self.tree = self._grow_tree(X, y)\n",
|
||
" def _grow_tree(self, X, y, depth=0):\n",
|
||
" n_samples, n_features = X.shape\n",
|
||
" if depth < self.max_depth:\n",
|
||
" best_feature, best_threshold = self._best_split(X, y)\n",
|
||
" if best_feature is not None:\n",
|
||
" left_indices = X[:, best_feature] < best_threshold\n",
|
||
" right_indices = X[:, best_feature] >= best_threshold\n",
|
||
" left_child = self._grow_tree(X[left_indices], y[left_indices], depth + 1)\n",
|
||
" right_child = self._grow_tree(X[right_indices], y[right_indices], depth + 1)\n",
|
||
" return (best_feature, best_threshold, left_child, right_child)\n",
|
||
" return np.mean(y)\n",
|
||
" def _best_split(self, X, y):\n",
|
||
" best_mse = float('inf')\n",
|
||
" best_feature, best_threshold = None, None\n",
|
||
" n_samples, n_features = X.shape\n",
|
||
" \n",
|
||
" for feature in range(n_features):\n",
|
||
" thresholds = np.unique(X[:, feature])\n",
|
||
" for threshold in thresholds:\n",
|
||
" left_indices = X[:, feature] < threshold\n",
|
||
" right_indices = X[:, feature] >= threshold\n",
|
||
" if len(y[left_indices]) > 0 and len(y[right_indices]) > 0:\n",
|
||
" left_mse = np.mean((y[left_indices] - np.mean(y[left_indices])) ** 2)\n",
|
||
" right_mse = np.mean((y[right_indices] - np.mean(y[right_indices])) ** 2)\n",
|
||
" mse = (len(y[left_indices]) * left_mse + len(y[right_indices]) * right_mse) / n_samples\n",
|
||
" \n",
|
||
" if mse < best_mse:\n",
|
||
" best_mse = mse\n",
|
||
" best_feature = feature\n",
|
||
" best_threshold = threshold\n",
|
||
" return best_feature, best_threshold\n",
|
||
" def predict(self, X):\n",
|
||
" return np.array([self._predict_sample(sample, self.tree) for sample in X])\n",
|
||
" def _predict_sample(self, sample, node):\n",
|
||
" if isinstance(node, tuple):\n",
|
||
" feature, threshold, left_child, right_child = node\n",
|
||
" if sample[feature] < threshold:\n",
|
||
" return self._predict_sample(sample, left_child)\n",
|
||
" else:\n",
|
||
" return self._predict_sample(sample, right_child)\n",
|
||
" return node\n",
|
||
"class GradientBoostingRegressor:\n",
|
||
" def __init__(self, n_estimators=100, learning_rate=0.1, max_depth=3):\n",
|
||
" self.n_estimators = n_estimators\n",
|
||
" self.learning_rate = learning_rate\n",
|
||
" self.max_depth = max_depth\n",
|
||
" self.models = []\n",
|
||
" def fit(self, X, y):\n",
|
||
" y_pred = np.zeros(y.shape)\n",
|
||
" for _ in range(self.n_estimators):\n",
|
||
" residuals = y - y_pred\n",
|
||
" model = DecisionTreeRegressor(max_depth=self.max_depth)\n",
|
||
" model.fit(X, residuals)\n",
|
||
" y_pred += self.learning_rate * model.predict(X)\n",
|
||
" self.models.append(model)\n",
|
||
" def predict(self, X):\n",
|
||
" y_pred = np.zeros(X.shape[0])\n",
|
||
" for model in self.models:\n",
|
||
" y_pred += self.learning_rate * model.predict(X)\n",
|
||
" return y_pred\n",
|
||
"# Example usage\n",
|
||
"if __name__ == \"__main__\":\n",
|
||
" # Sample data\n",
|
||
" X = np.array([[1], [2], [3], [4], [5]])\n",
|
||
" y = np.array([1.5, 1.7, 3.5, 3.7, 5.0])\n",
|
||
" model = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1, max_depth=2)\n",
|
||
" model.fit(X, y)\n",
|
||
" predictions = model.predict(X)\n",
|
||
" print(\"Predictions:\", predictions)"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"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.9.15"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
} |