{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Decision trees, overarching aims\n", "\n", "\n", "We start here with the most basic algorithm, the so-called decision\n", "tree. With this basic algorithm we can in turn build more complex\n", "networks, spanning from homogeneous and heterogenous forests (bagging,\n", "random forests and more) to one of the most popular supervised\n", "algorithms nowadays, the extreme gradient boosting, or just\n", "XGBoost. But let us start with the simplest possible ingredient.\n", "\n", "Decision trees are supervised learning algorithms used for both,\n", "classification and regression tasks.\n", "\n", "\n", "The main idea of decision trees\n", "is to find those descriptive features which contain the most\n", "**information** regarding the target feature and then split the dataset\n", "along the values of these features such that the target feature values\n", "for the resulting underlying datasets are as pure as possible.\n", "\n", "The descriptive features which reproduce best the target/output features are normally said\n", "to be the most informative ones. The process of finding the **most\n", "informative** feature is done until we accomplish a stopping criteria\n", "where we then finally end up in so called **leaf nodes**. \n", "\n", "## Basics of a tree\n", "\n", "A decision tree is typically divided into a **root node**, the **interior nodes**,\n", "and the final **leaf nodes** or just **leaves**. These entities are then connected by so-called **branches**.\n", "\n", "The leaf nodes\n", "contain the predictions we will make for new query instances presented\n", "to our trained model. This is possible since the model has \n", "learned the underlying structure of the training data and hence can,\n", "given some assumptions, make predictions about the target feature value\n", "(class) of unseen query instances.\n", "\n", "\n", "## General Features\n", "\n", "The overarching approach to decision trees is a top-down approach.\n", "\n", "* A leaf provides the classification of a given instance.\n", "\n", "* A node specifies a test of some attribute of the instance.\n", "\n", "* A branch corresponds to a possible values of an attribute.\n", "\n", "* An instance is classified by starting at the root node of the tree, testing the attribute specified by this node, then moving down the tree branch corresponding to the value of the attribute in the given example.\n", "\n", "This process is then repeated for the subtree rooted at the new\n", "node.\n", "\n", "\n", "\n", "In simplified terms, the process of training a decision tree and\n", "predicting the target features of query instances is as follows:\n", "\n", "1. Present a dataset containing of a number of training instances characterized by a number of descriptive features and a target feature\n", "\n", "2. Train the decision tree model by continuously splitting the target feature along the values of the descriptive features using a measure of information gain during the training process\n", "\n", "3. Grow the tree until we accomplish a stopping criteria create leaf nodes which represent the *predictions* we want to make for new query instances\n", "\n", "4. Show query instances to the tree and run down the tree until we arrive at leaf nodes\n", "\n", "Then we are essentially done!" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "editable": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2nd degree coefficients:\n", "zero power: -4.653578701904388\n", "first power: 0.17297886491529482\n", "second power: -0.0007790285013223805\n" ] }, { "data": { "image/png": "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efOsHNAdweTJk2nWrBnvvPMOly5dwsvLi759+7J//37at29Ply5dCn00BaN3794cOnSII0eOWPW5dOnSUo9/8803c/LkSYKDg+2O1ahRo0Jt3N3d6d27t+5UvX///kL7BAQEcPvttzN+/HgSExOLTEJZnddZECobsSwJghPSv39/Bg4cyPPPP09qairXXXcdBw8eZNq0aXTq1Il77723VH20bt2abdu2cc899xAWFlYuWQICAnj55ZeZOnUq9913H3fddRcJCQm8+uqreHh4MG3atHL1Wxr8/Pzo1asX7733HiEhITRq1IgdO3Ywf/583bfIUbi6uvLWW28xatQoZs2axUsvvcSsWbO4/vrr6dmzJ4899hiNGjXi0qVLnDhxgtWrV+u+ZU8//TRffvklgwYN4rXXXiM8PJxvv/2Wf/75BwCjseT32qeffprly5fTq1cvnnnmGdq3b4/ZbObs2bNs3LiRZ599lm7duvHKK69w/vx5+vXrR7169UhOTmbWrFm4urrSu3dvAIYOHarn8QoNDeXMmTPMnDmThg0bFplwszqvsyBUNmJZEgQnxGAwsHLlSiZOnMiCBQsYPHiwnkZg69athSwtRTFq1CiAIkPYS8uUKVOYN28eBw4cYPjw4UyYMIE2bdrw+++/V3q262+//Za+ffsyefJkRowYwd69e9m0aRP+/v4OH2vkyJF069aNDz/8kJSUFFq3bs2+ffto27YtL730EgMGDOChhx7ihx9+sLK01KlThx07dtC8eXPGjRvH6NGjcXNz47XXXgMolWLn7e3Nr7/+ypgxY5g7dy5Dhgxh1KhRfPzxx9SrV0+3LHXr1o3o6Gief/55BgwYwCOPPIKnpydbt26lTZs2gJrk9JdffmHcuHH079+fl156iX79+rFjxw5cXV2LlKE6r7MgVCYGRbmcfEMQBMGGLl26YDAY2LNnT3WLckXyyCOPsGTJEhISEnBzc6tucQThikWm4QRBsCI1NZVDhw6xZs0a/vrrL3788cfqFumK4LXXXqNOnTo0adKEtLQ01qxZw7x583jppZdEURKEakaUJUEQrNi3bx99+/YlODiYadOmMXz48OoW6YrA1dWV9957j/Pnz5OXl8dVV13Fhx9+yFNPPVXdognCFY9MwwmCIAiCIBSDOHgLgiAIgiAUgyhLgiAIgiAIxSDKkiAIgiAIQjGI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\n", "text/plain": [ "
" ] }, "metadata": { "filenames": { "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter6_1_1.png" } }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAHFCAYAAADi7703AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAACTSUlEQVR4nOzdeVwU9f8H8Nfscp+uyLEoImheeILmVV7kVaammVmmpFke1dcr0w7zKC3TMv2lZppoWh55lJkXKWZ5IXiCogKKxwKKyyE3u5/fH+sOs+zBAgt78H764OHOzOcz85nZ2dn3fj6f+QzHGGMghBBCCCE6icxdAEIIIYQQS0bBEiGEEEKIARQsEUIIIYQYQMESIYQQQogBFCwRQgghhBhAwRIhhBBCiAEULBFCCCGEGEDBEiGEEEKIARQsEUIIIYQYQMESIRYiMjISHMfxf05OTvDz80OfPn2wZMkSZGRk1Oj2b926BY7jEBkZWal8ERERaNKkSY2UydA2hcdK319EREStlqu88uXx8PBA9+7d8euvv5q1XLWpqucVIZaEo8edEGIZIiMj8eabb2Ljxo1o2bIlSkpKkJGRgX///RcbN26EWCzG9u3b8dxzz9XI9ouKinD+/Hk0bdoU3t7eRudLSkpCTk4OOnbsWCPl0rfNBw8e8NNxcXGYOnUqFi9ejD59+vDzvb290bRp01orV3kcx+Hll1/GzJkzwRhDSkoKFi9ejPj4eGzduhWvvfaa2cpWW6p6XhFiSShYIsRCqIOlmJgYdOrUSWNZamoqnnnmGWRlZeHGjRvw9fU1UyktU3R0NPr06YOdO3fi5Zdf1puuoKAATk5O4DiuVsrFcRymTp2K//u//+Pn3b59G02aNEHPnj1x/PjxWimHWn5+PlxcXGp1m4TYAmqGI8QKNG7cGMuXL0dubi5++OEHjWXnzp3DkCFDUL9+fTg5OaFjx47YsWOH1jru3buHt99+GwEBAXBwcIC/vz9efvllpKenA9DdXPLgwQM+j6OjI7y9vdGjRw9ERUXxaXQ1wxUWFmLu3LkICgqCg4MDGjZsiKlTpyIrK0sjXZMmTTB48GAcPHgQoaGhcHZ2RsuWLfHTTz9V74ChrFnz8OHDGD9+PLy9veHi4oKioiIAwPbt29GtWze4urrCzc0NAwYMwPnz57XWY+zxNVZgYCC8vb35466Wk5ODWbNmaRyzadOmIS8vTyNdVlYWJkyYgPr168PNzQ0vvPACkpOTwXEc5s+fz6ebP38+OI5DXFwcXn75ZUgkEr6WjTGG1atXo0OHDnB2doZEIsHLL7+M5ORkjW2dP38egwcPho+PDxwdHeHv748XXngBd+/e5dPs3LkTXbp0gaenJ1xcXBAcHIzx48fzy/U1w/37778IDw+Hu7s7XFxc0L17d+zfv18jjfo9PHbsGCZPnowGDRrAy8sLw4cPx/379yt97AmpKgqWCLESzz//PMRiMf755x9+3rFjx9CjRw9kZWVh7dq1+P3339GhQweMGjVK48vp3r176Ny5M/bs2YMZM2bgwIEDWLFiBTw9PSGXy/Vu84033sDevXsxb948HD58GOvXr8dzzz2HzMxMvXkYYxg2bBiWLVuGN954A/v378eMGTOwadMm9O3blw9W1C5evIiZM2di+vTp+P3339GuXTtMmDBBYz+rY/z48bC3t8fPP/+M3377Dfb29li8eDFGjx6N1q1bY8eOHfj555+Rm5uLZ599FgkJCXxeY49vZWRnZ+PRo0do3rw5Py8/Px+9evXCpk2b8P777+PAgQP48MMPERkZiSFDhkDdAKBUKvHiiy/il19+wYcffog9e/agS5cuGDhwoN7tDR8+HM2aNcPOnTuxdu1aAMA777yDadOm4bnnnsPevXuxevVqxMfHo3v37nwQl5eXh379+iE9PR3ff/89jhw5ghUrVqBx48bIzc0FAJw6dQqjRo1CcHAwtm3bhv3792PevHkoLS01eAyOHz+Ovn37Ijs7Gxs2bMCvv/4Kd3d3vPjii9i+fbtW+rfeegv29vb45ZdfsHTpUkRHR2PMmDGVO/CEVAcjhFiEjRs3MgAsJiZGbxpfX1/WqlUrfrply5asY8eOrKSkRCPd4MGDmVQqZQqFgjHG2Pjx45m9vT1LSEjQu+6UlBQGgG3cuJGf5+bmxqZNm2aw3OPGjWOBgYH89MGDBxkAtnTpUo1027dvZwDYunXr+HmBgYHMycmJ3b59m59XUFDA6tevz9555x2D2xU6duwYA8B27tzJz1Mfz7Fjx2qkTU1NZXZ2duy9997TmJ+bm8v8/PzYK6+8ws8z9vjqA4BNmTKFlZSUsOLiYnb9+nU2ZMgQ5u7uzs6dO8enW7JkCROJRFrv/W+//cYAsL/++osxxtj+/fsZALZmzRqNdEuWLGEA2GeffcbP++yzzxgANm/ePI20p06dYgDY8uXLNebfuXOHOTs7s9mzZzPGGDt37hwDwPbu3at3/5YtW8YAsKysLL1pdJ1XXbt2ZT4+Piw3N5efV1paytq0acMaNWrElEolY6zsPZwyZYrGOpcuXcoAMJlMpne7hJgS1SwRYkWYoIvhzZs3ce3aNbz++usAgNLSUv7v+eefh0wmQ2JiIgDgwIED6NOnD1q1alWp7T399NOIjIzE559/jtOnT6OkpKTCPEePHgUArTvRRo4cCVdXV/z9998a8zt06IDGjRvz005OTmjevDlu375dqbLqM2LECI3pQ4cOobS0FGPHjtU4Zk5OTujVqxeio6MBVO74GrJ69WrY29vDwcEBzZs3x4EDB/Drr78iLCyMT/Pnn3+iTZs26NChg8Z2BgwYAI7j+DKp+zi98sorGtsYPXq00fv/559/guM4jBkzRmNbfn5+aN++Pb+tZs2aQSKR4MMPP8TatWs1atzUOnfuzJdnx44duHfvXoXHIy8vD2fOnMHLL78MNzc3fr5YLMYbb7yBu3fvah3XIUOGaEy3a9cOAEx2jhBSEQqWCLESeXl5yMzMhL+/PwDwzSWzZs2Cvb29xt+UKVMAAA8fPgSg6nvUqFGjSm9z+/btGDduHNavX49u3bqhfv36GDt2LNLS0vTmyczMhJ2dndadTxzHwc/PT6sJz8vLS2sdjo6OKCgoqHR5dZFKpRrT6uPWuXNnreO2fft2/phV5vga8sorryAmJgYnT57EDz/8AHd3d7z66qu4ceOGRpkuXbqktR13d3cwxvjtqI9t/fr1NbZhqMO/rv1njMHX11dre6dPn+a35enpiePHj6NDhw746KOPEBISAn9/f3z22Wd80NyzZ0/s3buXDz4bNWqENm3aGBwaQS6XgzGmVS4A/Lld0Tni6OgIACY7RwipiJ25C0AIMc7+/fuhUCjQu3dvAECDBg0AAHPnzsXw4cN15mnRogUA1S30wk65xmrQoAFWrFiBFStWIDU1FX/88QfmzJmDjIwMHDx4UGceLy8vlJaW4sGDBxoBE2MMaWlpfG1EbSl/55v6uP32228IDAzUm68yx9cQb29v/u7Gbt26oVWrVujVqxemT5+OP//8k9+Ws7Oz3o7t6rKoj+2jR480AiZDwauu/ec4DidOnOCDDiHhvLZt22Lbtm1gjOHSpUuIjIzEwoUL4ezsjDlz5gAAhg4diqFDh6KoqAinT5/GkiVL8Nprr6FJkybo1q2b1volEglEIhFkMpnWMnWnbfX+EmIpKFgixAqkpqZi1qxZ8PT0xDvvvANA9UX91FNP4eLFi1i8eLHB/IMGDcLPP/+MxMREo77gdWncuDHeffdd/P333/jvv//0pgsPD8fSpUuxZcsWTJ8+nZ+/a9cu5OXlITw8vErbN5UBAwbAzs4OSUlJWk1UQpU5vpXx7LPPYuzYsdi0aRNOnTqFbt26YfDgwVi8eDG8vLwQFBSkN2+vXr2wdOlSbN++HZMnT+bnb9u2zejtDx48GF9++SXu3bun1ZynD8dxaN++Pb799ltERkYiLi5OK42joyN69eqFevXq4dChQzh//rzOYMnV1RVdunTB7t27sWzZMjg7OwNQdV7fsmULGjVqpNH5nRBLQMESIRbmypUrfD+SjIwMnDhxgh+Ucs+ePRq1NT/88AMGDRqEAQMGICIiAg0bNsSjR49w9epVxMXFYefOnQCAhQsX4sCBA+jZsyc++ugjtG3bFllZWTh48CBmzJiBli1bapUjOzsbffr0wWuvvYaWLVvC3d0dMTExOHjwoN6aFgDo168fBgwYgA8//BA5OTno0aMHLl26hM8++wwdO3bEG2+8YfqDVglNmjTBwoUL8fHHHyM5ORkDBw6ERCJBeno6zp49C1dXVyxYsACA8ce3shYtWoTt27fj008/RVRUFKZNm4Zdu3ahZ8+emD59Otq1awelUonU1FQcPnwYM2fO5O9669GjB2bOnImcnByEhYXh1KlT2Lx5MwBAJKq4Z0WPHj3w9ttv480338S5c+fQs2dPuLq6QiaT4d9//0Xbtm0xefJk/Pnnn1i9ejWGDRuG4OBgMMawe/duZGVloV+/fgCAefPm4e7duwgPD0ejRo2QlZWF7777Dvb29ujVq5feMixZsgT9+vVDnz59MGvWLDg4OGD16tW4cuUKfv3111obB4sQo5mxczkhREB954/6z8HBgfn4+LBevXqxxYsXs4yMDJ35Ll68yF555RXm4+PD7O3tmZ+fH+vbty9bu3atRro7d+6w8ePHMz8/P2Zvb8/8/f3ZK6+8wtLT0xlj2nctFRYWskmTJrF27doxDw8P5uzszFq0aME+++wzlpeXx6+3/N1wjKnuaPvwww9ZYGAgs7e3Z1KplE2ePJnJ5XKNdIGBgeyFF17Q2qdevXqxXr16GX3sDN0Np+/uwr1797I+ffowDw8P5ujoyAIDA9nLL7/MoqKiNNIZe3x1AcCmTp2qc9kHH3zAALDjx48zxhh7/Pgx++STT1iLFi2Yg4MD8/T0ZG3btmXTp09naWlpfL5Hjx6xN998k9WrV4+5uLiwfv36sdOnTzMA7LvvvuPTqe+Ge/Dggc7t//TTT6xLly7M1dWVOTs7s6ZNm7KxY8fyd+ldu3aNjR49mjVt2pQ5OzszT09P9vTTT7PIyEh+HX/++ScbNGgQa9iwIX++Pv/88+zEiRN8Gl13wzHG2IkTJ1jfvn357Xft2pXt27dPI42+91D9fh87dkzPkSfEtGgEb0IIsXK//PILXn/9dfz333/o3r27uYtDiM2hYIkQQqzIr7/+inv37qFt27YQiUQ4ffo0vv76a3Ts2LHWH59CSF1BfZYIIcSKuLu7Y9u2bfj888+Rl5cHqVSKiIgIfP755+YuGiE2i2qWCCGEEEIMoEEpCSGEEEIMoGCJEEIIIcQACpYIIYQQQgygDt4moFQqcf/+fbi7u9NgaoQQQoiVYIwhNzcX/v7+Bgd1pWDJBO7fv4+AgABzF4MQQgghVXDnzh2DDxunYMkE3N3dAagOtoeHh5lLQwghhBBj5OTkICAggP8e14eCJRNQN715eHhQsEQIIYRYmYq60NhUB+8mTZqA4zitv6lTp+pMHx0drTP9tWvXarnkhBBCCLFUNlWzFBMTA4VCwU9fuXIF/fr1w8iRIw3mS0xM1KgREj7VnRBCCCF1m00FS+WDnC+//BJNmzZFr169DObz8fFBvXr1arBkhBBCCLFWNtUMJ1RcXIwtW7Zg/PjxFbZFduzYEVKpFOHh4Th27FiF6y4qKkJOTo7GHyGEEEJsk80GS3v37kVWVhYiIiL0ppFKpVi3bh127dqF3bt3o0WLFggPD8c///xjcN1LliyBp6cn/0fDBhBCCCG2y2YfpDtgwAA4ODhg3759lcr34osvguM4/PHHH3rTFBUVoaioiJ9W33qYnZ1Nd8MRQgghViInJweenp4Vfn/bVJ8ltdu3byMqKgq7d++udN6uXbtiy5YtBtM4OjrC0dGxqsUjhBBCiBWxyWa4jRs3wsfHBy+88EKl854/fx5SqbQGSkUIIYQQa2RzNUtKpRIbN27EuHHjYGenuXtz587FvXv3sHnzZgDAihUr0KRJE4SEhPAdwnft2oVdu3aZo+iEEEIIsUA2FyxFRUUhNTUV48eP11omk8mQmprKTxcXF2PWrFm4d+8enJ2dERISgv379+P555+vzSITQgghxILZbAfv2mRsBzFCCCGEWA5jv79tss8SIYQQQoip2FwzHCF1mVwuR2xsLJo2bYqkpCSt/8PCwiCRSGq8DNHR0QCA3r171/j2rE3590jXe6JOUxvvV22y1f0ito+CJUJshFwuR0hICGQyGUQiEZRKpdb/UqkU8fHxNfZFJZfL0apVK6SnpwMA/Pz8kJCQQF+MT+h6j8q/J8I0Nf1+1SZb3S9SN1AzHCE2IjY2FjKZDIDqrlBd/8tkMsTFxdVoGdSBEgCkpaXV6Pasja73qPx7IkxT0+9XbbLV/SJ1AwVLhNiIsLAwfowwkUik839/f3+EhobWaBl8fX35aT8/vxrdnrXR9R6Vf0+EaWr6/apNtrpfpG6gu+FMgO6GI5ZCLpcjLi4OwcHBSE5O1vo/NDS0VvosHT9+HADQq1cvamopp/x7pOs9UaepjferNtnqfhHrZez3NwVLJkDBEiGEEGJ9aOgAQgghhBAToGCJEEIIIcQACpYIIYQQQgygYIkQQgghxAAKlgghhBBCDKBgiRBCCCHEAAqWCCGEEEIMoGCJEEIIIcQACpYIIYQQQgygYIkQQgghxAAKlgghhBBCDKBgiRBCCCHEAAqWCCGEEEIMoGCJEEIIIcQACpYIsQFyuRxRUVGQy+UVpklJSdH431CeymxTVxn0bbO62zYHY45xZfNXdAyru01Tlr8q29L3fsvlcuzZswd79uyxqnOA1GGMVFt2djYDwLKzs81dFFIHPXr0iEmlUgaASaVS9ujRI4NpRCKRxv/68lRmm8nJyVplMLTN6mzbHIw5xpXNX9Ex1HVMzVX+qm5L1/udnJzMfH19GQAGgPn5+VnFOUBsk7Hf31SzRIiVi42NhUwmAwDIZDLExcUZTKNUKjX+15enMtvcuXOnVhkMbbM62zYHY45xZfNXdAx1HVNzlb+q29L1fu/cuRPp6el8+rS0NKs4B0gdV0vBm02jmiViTsJf8v7+/pWuWdKXpzLbFNaCqNdnTM1SVbZtDsYc48rmr+gY6jqm5ip/Vbel6/2mmiViSYz9/uYYY6wWYzOblJOTA09PT2RnZ8PDw8PcxSF1kFwuR1xcHEJDQyGRSAymCQ4ORnJyMv+/oTyV2aauMujbZnW3bQ7GHOPK5q/oGFZ3m6Ysf1W2pe/9lsvlOH78OACgV69eVnMOENtj7Pc3BUsmQMESIYQQYn2M/f6mPkuEEEIIIQbYmbsAhJCqYUoG+d9yFN0pMndRqsXBzwGS/hKI7Oi3GyHEMlGwRIiVurfqHm5Ou2nuYphE4GeBCJofZO5iEEKITvRTjhArlXM2x9xFMJncs7nmLgIhhOhFNUuEWCtl2cugL4Jg721vvrJUgTJfWVYzRreZEEIsGAVLhFgp4Y2sPqN94BzkbMbSVF5JVgkfLNFNuYQQS0bNcIRYK2F8wZmtFFXGcYJCU6xECLFgFCwRYq0EAYZG4GEthEWmYIkQYsEoWCLEWgkDDGv8JFOwRAixEtZ4iSWEoFw/HyusWCKEEGtBwRIh1sqGmuGogzchxJLZVLA0f/58cByn8efn52cwz/HjxxEWFgYnJycEBwdj7dq1tVRaQqqJOngTQkitsLmhA0JCQhAVFcVPi8VivWlTUlLw/PPPY+LEidiyZQv+++8/TJkyBd7e3hgxYkRtFJeQqrPyYIn6LBFCrIXNBUt2dnYV1iaprV27Fo0bN8aKFSsAAK1atcK5c+ewbNkyCpaIRZDL5YiNjUVYWBgkEonGMqYsizBOnDiBsH7aaSqzjaZNm+LChQsAgN69e+tdV/kyGSqjIVlZWYKdqXxZk5KSEBYWBgA6yyNMU5XjUn6bwvVHR0cDADp06ICkpCSD2zLm+BhKU5n86nLo+1/X8TJmfbr2Xd85UtnzoTrbIqS22FywdOPGDfj7+8PR0RFdunTB4sWLERwcrDPtqVOn0L9/f415AwYMwIYNG1BSUgJ7e90jIhcVFaGoqOzhpTk5tvPYCWI55HI5QkJCIJPJIJVKER8fr/mFIQgwXhn1CpykTtppKrENjuP4vkN+fn5ISEjQ+cUtLNN///2HHj166C+jge2GhoViEzYBAEpKSipVVpFIBKVSCV9fX3Ach7S0NK3yqNNUplzl3dpyCz++8yPy8/NxzOUYXnrpJezevRsFBQUAgH/wj0b6Yy7H8Oqrr8LR0RGA6lqxbds2Pr9wmZqhNJXNX5GjzkfBgUN+QeXWp2vfzzmfw6ujNfMbU15TbMu9kzv8IvzAiayxSpVYI5sKlrp06YLNmzejefPmSE9Px+eff47u3bsjPj4eXl5eWunT0tLg6+urMc/X1xelpaV4+PAhpFKpzu0sWbIECxYsqJF9IEQtNjYWMpkMACCTyRAXF4fw8PCyBEz4kulOU4ltCDtZp6Wl6VxX+TLt3LnTcBkNbTdNxk8/zn1cqbIqlapnvaSnp/PLy5dHnaYqxwUACpIKcOuNW+iHfqoZ+cDjrY/RH/31Z8oHMn/K1JglzF9+mTFpKpW/IgWGy6p3fbr2vUB3fmPKa4ptOQU6QRJOtU2kdthUB+9BgwZhxIgRaNu2LZ577jns378fALBp0ya9ecrfRaT+wjB0d9HcuXORnZ3N/925c8cEpSdEU1hYGB+w+/v7IzQ0VGO5MLhhYDrTVGYbwnPez89P57rKl2nkyJEGy2hou8Lmcjc3t0qVVSQS8eVUr6d8edRpqnJcAKAguaDiRMRs6P0htYljNn7Pbr9+/dCsWTOsWbNGa1nPnj3RsWNHfPfdd/y8PXv24JVXXkF+fr7eZrjycnJy4OnpiezsbHh4eJis7KRu2XN1D44kH9GYV1RUhAcPHsDb21urOeOZ+c/A/5w/AGD1stVwD3I32OShj3obHh4eyMxU/XpXN2UbSq8uk6EyGlLyuASvv/o6AOBByAMc++pYpcqak5MDb29vVX4d5RGmqcpx8Y3zRa95vQAAl3tcRuqwVNjb26OkpAQPHjwAAHh6eiIvLw+urq7Iy8uDRCLRum6UlJRALpfrXGZMmsrkV5dD3//qpsjKrk+dVrjv3t7eOvMbU96qbqvhmYYI+TUEAPDU2qfQ8J2GFa6fEEOM/f62qWa48oqKinD16lU8++yzOpd369YN+/bt05h3+PBhdOrUyehAiRBTuPnoJobvGK4/QZr2rMZZjeEPVbB0MOMgch/nVq8Qwm1U3HqiXSYdZTRErBDjdaiCJVmuDGvOaf+gqXDbaTrmGUpTCZ1vdkYvqIKlWLtYbMoT1FC7PPm/BICD4P88PSsztMyYNMbmL18efeWr7PqEadX7bii/MeuvwrYG5g9ECFTBUuKDRDQEBUukdthUM9ysWbNw/PhxpKSk4MyZM3j55ZeRk5ODcePGAVA1n40dO5ZPP2nSJNy+fRszZszA1atX8dNPP2HDhg2YNWuWuXaB1FHJ8uRK5+EE994zzvoqiJmg0xXHLK+jrrBM1nh8bZHwnHmY99CMJSF1jU3VLN29exejR4/Gw4cP4e3tja5du+L06dMIDAwEoOromZqayqcPCgrCX3/9henTp+P777+Hv78/Vq5cScMGELN6q+NbmNx5coXp8qLzoLipAABER0SD87S8gMMQpmDIXaSqDevg2wGxb8eauUSaSv4uQcFWVb+YSZ0m4X9v/8/MJSJnvjsD/K56zWhwLlKLbCpY2rZtm8HlkZGRWvN69eqFuLi4GioRIcYRdh30d/dHqLTiDskXHS5CDjkAoL20Pew8revjzBQMx3EcAODq4GrUPtemTEkmLuMyAEDqIUUTaRPzFoggyTWpbEJpvnKQusemmuEIsVYaTVLGPudN+GVhXZVKKhY+grcwgKXxfCwP1SyR2kTBEiEWQOOL2cjIR+NGVmv8LrfwYMnqg1EbRM8TJOZCwRIhFqBKNUtW/mw44X5a5AgmVn58bZKlB9jEZlGwRIgFqErNkvDLwugAy1JZ4Bef1dfc2SJhxZIlBtjEZlGwRIgFqHbNkrV+ktW7aonfe4JmOOqzZBmoGY6Yi7VeYgmxKXWyz5Klo2Y4yyP4xqIO3qQ2UbBEiAWo0oXfFprhLLhmiYJRyyP8IWGJA5kS20XBEiEWpq508AbAl9si+5/YQjBqwyzynCE2i4IlQixAdTt4W2uwxAchlvi9Jxw6gK6UlkH4PljiOUNslnUN+UuIjWKlDEt/XorOSZ2B+UA0oiu3AisNlqgZjlSGxQ83QWwW/V4ixAKIz4tVgVIV2NWzs967tSw4WKJmOAtE4ywRM6GaJUJM6eFDYM0aQCarVDaWpgTwKgCg0CUL9Z2LoVAoYG+v+oiWlJRCLBZDoVBo/K9kxQhonwTu3V9MuhuFRUV48OABvL294eToyE97enggOyeHn19tpSMAiFGcnIzCCWs0tuXt7Q0ABrerK62hNMaUWZ1ekdkRQB/VzJ07gcQbRuf19PDAw4cPAQD+DRua5Fjpew8qu3/l1ydcz/1793SWWdc2ypfHVOeGoW0VF0gBjFYlvHQRmPJflbdTa/z9gcmTAS8vc5eEVAMFS4SY0uefA999V/l8AZ2hDpYy6+/FwLubjM977MmfCTkBCNAz7WHSLQ0DIIZ9Tg6cfvpJ57YNbVdfWkNpKqJOn4YC8MHSfyeA//YYnRcw9XHSv+7K7p++fE4Ago1Mq688pthnQ9tybNSzbGbKbeD4DhNssRZkZQHLlpm7FKQaqBmOEFNKSqo4jQ5M2L7A1Z32BY5vS7HEZi7BberU5mMRNMektMRzRo/kZHOXgFQT1SwRUlOiogCJxLi0v8cAC1UvT4LhW46DkjE0eFJ1/zAzE6In88r/792gAXbu3AkPD9PUZeTk5GDkyJF48PAhvBs0wE8//YTx48fjwcOHJt8m654DFAE3AHxSblu69l24XWE5hWn1pTGmzML0ncGpG3xQ+L//AWM/Nfq4cSjrUtPAywu//fZbtY6VcN3CYyE8XpV5T3S9xxEREch89EirzLqOIQCt8pji3KhoW03BMPVJ2tJu3YA9syu9jVrz4AEwcKC5S0FMhIIlQkxJeIdO+/ZAgwbG5Tt1h3/ZonMnzDq+AMnJyQgNDQUAxMXFITg4GMnJyVr/h4aGwsPYoMwIHgC2Xb+OuLg4hIaGQiKR8NOm3iYn/gcMSkibBGNb3HWNbenad+F2y5dTndZQmorKLEzvE+eDzNmZAACnFk8BoQ2NzhscHIyLFy8CAHr16lXtY1V+3epjUf54GbsdXe/xjps3cfz4ca0y6zuG5ctjinOjom3dO3kPmKdKa1ffC3jyvlukSvZbJJaNY3T/ZbXl5OTA09MT2dnZJvt1T6zU4MHA/v2q1w8eGB0s7f1+L+q9Ww8AcO+de3h97es1VEDL8o/bP1DmKeES4oKnrzxt7uJokG2UIXF8IgDgqTVPoeEkw8ESqXl/rPoDHu+rrrF3J9/FmNVjzFwiA2QyVeduAHjpJWD3bvOWh+hk7Pc39VkixBIoyl7SbeoWQjh0gLUOzWDDmJJ+55PaQ81whNSUSgQ9GhW8degnjDowLEgswKnGp8xcGk2Kx8II1nzlIGWs9ocENeBYPQqWCDGlql4UhY/WsNLvg6oQe4iheKwAK2UoulNk7uLoJXYXm7sIBOWCJaX+dISYGgVLhFiAulqzFLw4GLc/vw1FvqLixGbi3tkdDV40sqM+qVnW9Nmw1lowohMFS4TUlMo0wymr8CBdG+A3zg9+4/zMXQxijahli9Qia4rTCbF8VW2GE2ajTyUhOgl/SNCN3KQ20WWZEAtAT7gnpGJWe1ciBXZWj4IlQmpKJZrhOKXwcSc1UBZCbIHws0EdvEktomCJEFOq4i/IutrBm5BKoR8SxEzoskyIJRD8SrbasWQIqWGc5pN0LRt9jm0KBUuE1JSqDkpJ11hCdBIGS9TBm9QmCpYIMSUT3A1ntZ1YCalp9NEgZkLBEiEWQOM5V/SFQIhOVtUMJ0S1YFaPgiVCakpl+izQOEuEVEz4kaL4g9QiuixbOblcjqioKMjlcnMXhQAGf0Hqe6/uJt1F/s/5/LQldfCuzfOr/LZMue2K1iWXy7Fnzx7s2bPHaj5Lpjo+1nQNEX42fPb6IO1cGh7++RA3vrmB/ZP2Y/+k/bi98zaYwgIiKQv6HJPqo8edWDG5XI6QkBDIZDJIpVLEx8dDIpGYu1hEB33vVWlJKU4+fRJNHjXh0xaXFJuvoAK1eX6V39Z///2HHj16mGTbFe2HXC5Hq1atkJ6eDgDw8/NDQkKCRX+WTPXeWN01RBB/OOc641rna/y0K1wBACk/pKB4WTGemvlUbZeO2DCqWbJisbGxkMlkAACZTIa4uDgzl4joo++9eih7CJ9HPhpplY0sY7S92jy/ym9r586dJtt2RfsRGxvLB0oAkJaWZvGfJVO9N1Z3DWkFFIsr/jFxJ+pOLRSG1CUULFmxsLAwSKVSAIC/vz9CQ0PNXCKi0QwnqIbX915pdOwGML3pdLw45sWaL6cRavP8Kr+tkSNHmmzbFe1HWFgYfH19+Wk/Pz+L/yyZ6r2xumtIfWDsu2OR55CntWgbtvGvvep71WapKkYdvK0eNcNZMYlEgvj4eMTFxSE0NNSyq8/rOH3vlXCsmKttruLoP0ct5n2szfNL17ZMte2K1iWRSHD16lUcP34cANCrVy+LeQ/0MdXxsbZrCAcO6ZJ0HOx4ECPOjNBYNnjBYOAz1WsHewczlI7YMgqWrJxEIkF4eLi5i0GMoOu9UrKyJjcHRweL+7KqzfOr/LZMue2K1iWRSDBs2DCTbKu2mOr4WNM1RN3Bm+m4FS5VkorWaA0AUCotoCmbOnjbFGqGI8SU9DTD6U2upGfCEWIs7kkPb8ZpB0trz6/lXyc+SKy1MpG6gS7PhJiRUmEBv4AJsRKh0lC42rtCyWl/boTzsvOza7NYpA6wqWBpyZIl6Ny5M9zd3eHj44Nhw4YhMdHwL4zo6GhwHKf1d+3aNYP5CDEFeiYcIcaTOEuQ8r8UDG01VGvZ9Geml01YWn9q6uBt9WwqWDp+/DimTp2K06dP48iRIygtLUX//v2Rl6d950R5iYmJkMlk/N9TT9EYHaSaKtsMR8ESIRXydvXGUw20r89PN366bIJiE2JiNtXB++DBgxrTGzduhI+PD2JjY9GzZ0+DeX18fFCvXr0aLJ3plWaXIi0yDcVpZeOOODdzhu8YX4gcbSoOth7lfkE+vvgYD357AFb6ZL4I8HrRC55dPQGU64hKwRIhRtH1sGmRWHDNo2CJmJhNBUvlZWer2q3r169fYdqOHTuisLAQrVu3xieffII+ffroTVtUVISioiJ+Oicnp/qFrYJbC2/h7jd3teYri5VoOLmhGUpEhJTFSlzsdxklD0o05t/99i663e8G+3r2ms1wFN8SYhwdPyw4O8FMS+gKSHfD2RSbvTwzxjBjxgw888wzaNOmjd50UqkU69atw65du7B79260aNEC4eHh+Oeff/TmWbJkCTw9Pfm/gICAmtiFCuVfzdc9/5ru+aR2lWQptQIlAFAWKFF0RxVsW8QtzoRYGx3fXBo1S/SxIiZmszVL7777Li5duoR///3XYLoWLVqgRYsW/HS3bt1w584dLFu2TG/T3dy5czFjxgx+OicnxywBk/BhkcFLg5E8O/nJglovClET1hQJXnv08IC9xB6Zf2aqZjy5mFOfJUIqT1cznEbNEl0DiYnZZM3Se++9hz/++APHjh1Do0aNKp2/a9euuHHjht7ljo6O8PDw0PgzB2Gw5N7JXbDADIUh2gTvg4OPAxwDHMsWPQmSNGqWbPLTSEgN0PHDQmRnwX2W6G44q2dTNUuMMbz33nvYs2cPoqOjERQUVKX1nD9/nn9ekiXjOw0D4OzLrh6MPpgWQnBFF0EzGFLXLAneK10D7RFCtOmsWRKXzeOUVE1LTMumgqWpU6fil19+we+//w53d3ekpaUBADw9PeHs7AxA1YR27949bN68GQCwYsUKNGnSBCEhISguLsaWLVuwa9cu7Nq1y2z7YTRF2UuRvQX/qqpLhMGPxmDenMYFXl2zJGyG46hDKCHG0VELK7YTl01YwjWQPs82xaaCpTVr1gAAevfurTF/48aNiIiIAADIZDKkpqbyy4qLizFr1izcu3cPzs7OCAkJwf79+/H888/XVrGrTNgMR+31Fqj8gJM6apZo6ABCqqCiu+HoGkhMzKaCJWOanyIjIzWmZ8+ejdmzZ9dQiWqWMFjS+CKmC4WF4DRe6qxZohG8Cak0neMsWXKfJWL1qEupFVP3WeLsOI0vWuqzZEYad8MJ5nPQDIaoZomQqqto6ABLuwTSNdnqUbBkhXKzc7HprU14HPcYAFDCleCDQx/wy48mH8XKMyspaDKDoiI33MQkJOBjJLxfdkdleno6iorLBjKNORsDuVyOxzmPyzJTsFTj5HI5oqKiIJfLdU4T66Crf5+wZqnJxSa49tk13P7yNi6MvICjA4/izoE7Rq1bfU6kpKTQuUF4NtUMV1f8tfwvBG4I5KeLuCIcuXUEr+JVAEBSZhKWH1yOdr7t0LtJbzOVsm5KufUM0tBFNXG47JmEx6KPIS8mD0MwBAAwa8YspH2VBj83P6zACgCAginKr46YkFwuR0hICGQyGaRSKf777z/06NGDn46Pj4dEIjF3MYkRhHf/AoASSuQUaD5JIW1hGv9aBBHOHTkH1wxX1PfS/0QH4TkiEomgVCrp3CAAqGbJKuXf0hyh+1CHQzpvO0/NTtWaR2pW3mM3nfMZGHLzcvlpDhzS09ORnZXNzxM+QoeYXmxsLGQyGQDVjR47d+7UmI6LizNn8UgleL3oBeZeds07hEOIvxmPYyHH9OaRKCU4H3Pe4HqF54i6ibzK5wbdDWdTKFiyRoJuLosDFuNX+a+ot78eP0/E6G01lwJH3RdI9hQD16lsmehFEezes4Pd82WVu07OTjVevrosLCyMHz/N398fI0eO1JgODQ01Z/FIJbg85YJ2ie0wzXsaRmIktvhvQYd2HbBw5EKsC1+nN1+H9h0Mrld4johEqusonRsEoGY46ySoRBo+fji2/287Cq8WIrFHIgCAY6ovZeqzVPtuORdD15jxzJmh1KWUn+bqcSj1KoWypCzydbB3qIUS1l0SiQTx8fGIi4tDaGiozmliPbykXjiWeIx//5iT6nqX4ZmhN0+9evUMrlN4TgQHByM5OZnODQKAgiWrJBzIsHmL5pBIJMirl6edzuJuCbF92o/NVRGLxLATl33cnMXOcLF3gbOdMz+vhXcLXVmJCUkkEoSHh+udJtZF+P5lFWYBAJScgafoGvGAXeE6q/oUCC30w9XqUbBkjcqNDA1Ao0GVapbMR18vhdfavwbnIGfcOnYLALDrhV2o378+8i7n4fz/qfpR1HfR3/GUEGIYp/70GegqRNdEUlUULFkjYbD0ZHA24a206osG1SyZAdN9peY4TiOgTRiZoCNRDZWJkDpAxKk+YNWtWTIZ6uBtU6gnsDUSjmMo1v41RTVL5sPp+0hxgIOf4T5JFS0nhOjnZOcET0dPgw+kLi0t1buMEEOoZskaCYMlTn/VM9UsmYG+Q84BPqN9kH81H3nx2v3LnIOd4T/Jv2bLRogNsxfbY9OwTYhOj9abRqGgscxI1VCwZI10NMPpqlkitY/TN2wDB9i52aHZN81qt0CE1CFDWw5F917dEb8iXudyjccLCRTeLUTynGQU3dY/1ln9QfUR+FGg3uUGUS2/1aNgyRrpaIbT2WeJPqAWQ9fjGQghpqfrIbtqSoXuYOneqnvI2Kp/yAEAyP43G15DvODWRvfAs8S2UZ8la6TrbjhdfZaoGa7W6a3Vo1iJkNph6G44pe5rYkmGvkE/yqV7YFw6VTnoQ29LqGbJGlXQDMcno5ql2megGY4QUvOqUrMkvFZ2utwJLi1d+Olbn95C6pdPHh1Fl9Q6i4IlayRshjPQZ4lqliwIBUuE1A4D7SX6+ixp/AC14yCyE6xELEimp2aK2D5qhrNGxo6zRDVLtU5fB2/qs0RILTHwUdMbLAmzl/usatRUVfWSStdiq0fBkjXSVbOkawRvqlmqdXr7LNEnjZBaYagZTm/NkHB2+ezC6doc1JJYFLqEWyMjhw6gmiVzoA7ehJhVNZvhyn9WhcEXXVPrLgqWrJGRzXCk9umrWaJmOEJqh6HPmr6aJY0gyFQ1S/SZtykULFmjCjp4q4MpaoYzB6pZIsSsDNUs6bkbTudwLPwM3elI3ULBkpW49fktnAw6iWO+xxBwIoCfLxI9eQsFH+ie13risx2fAYWG1ymXyxEVFYWUlBSN/+VyeYV55HK5Vn5D+WxdUVoRLg68CP8HwboTlLv+Co8jqX10/G2XoT5L13pew9/efyOmWwzyrgoeOyQIgv47+Z/GeVFYVHYhVddAlT9/6HyyfTR0gBUoeVSCW/NuAUzVxGYPe35ZHlN94MUuYlXo++SHU++E3kg8ngj01L1OuVyOkJAQyGQyiEQiKJVK/n+pVIr4+HhIJBK9eXx9fcFxHNLS0irMVxdk/JIB+SH9F8oS+7LB7ITHsS4fM3Oh42/bxO5ivcvs5KqvvLyHeUj+Nhlt17VVLRAES2+MfQOclEN8vOqRKd+t/A6jMAoA8DjnMcRyscb5899//6FHjx6Gzyfq62T1qGbJCigeK/gPczGK8dDxITI8MvBLj19wTX4NAGDnaQfFG5oPicy+k613nbGxsZDJZADKOj2q/5fJZIiLizOYJz09HWlpaUblqwtKszWfZh7TNAZ3kIqHeIhLuARZexm/THgc6/IxMxc6/rbNraMblIOUePDk38UGF5HQMAEP3R5CzpX9oHlw6wH/unzHbfV5ERsbi+zcsuto0s0krfNn586ddD7VAVSzZAWEnRL/xb9YNGAREKqaHtd6HL8s9NtQTPp3EiYnTQYASOrp/7UcFhYGqVSqs2bJ398foaGhBvP4+fkBgEbNkr58dYKgK8TMN2Yirmkc/Nb4Ii09Hf7+/rgy+Aq/XHgc6/QxMxM6/raN4zh03NqRr/1xet4JhcGqprSGXzfElrwtAACv+l5lmZjwJdM4L3a67wRyVcuaBjWFZ5inxvkzcuRIrFixQvt8og7eNoWCJWsg+CLu3ac3rr1yDTtv7gQASDzLAiKJRIIRI0cAX6qmHewd9K5SIpEgPj4ecXFxCA4ORnJyMv9/aGiozmYJYR71BUGYX1++ukDjLhsOECmBhIQExJ0/r3Vcyh/HunrMzIWOv+0Tvser0lbh95u/AwC+WPwF8D9VGns7e515t27ditBBZefFjJkzIJuvqjlydXXVef7Q+WT7KFiyBoLvYT9/P7i5lT31uvwwAU5OTjrz6SKRSBAeHg4ACAoK0vjfmDwAtPLXWYJjreSU4KB9rIQMLSM1j46/7VO/x+t+W8fP6/FsD9zFXdWE8PooeN3jmR5wkpRdR51dncuSPflRVP78ofPJ9lGwZMEOJx1GqbIU3C0OzlB9YO/n3kdqdiqfRus2V2EvNBptttYIa5YYx8AxUDU8IRZAxJVdFJlIo71N9+vyIwcIP8f0uJM6i4IlCzZy50jkFOWg0cNG+Bk/AwD+vv03/k75m0+jNQAlDc1vHoJjzcBoWCVCLITwGsmgO1gyOCil8AcoxTx1FgVLVkA4KrTww+7h6IFGHo000+p56KNsowxJHyRBkat5x1x59vXt8dTqp+D9knf1Cl3XlGuGE9FFlRCLIKxZ6ru5L7ZA1cF755WdWPz5YgDAp1c/xTN4BgAQvDIYmR6ZfJ6XTr6ESZgEABjz2xgcv37c4PbsRfaY2nkqvurysUn3g5gXBUsW7ONnP0ZRaRFcbrnw8zr4d8DC3gshFonxYvMX4ergqplJ8CtI2DSU+lUqSjM1b2/XpTitGHe/uUvBUiXpbIYjhJidl3PZXW8lyrLxzpiSoVhRDEDzmXHFimJ+PgCUsLI8CqVCY5kuxYpiLDu1DJ+E/g/u1S49sRQULFmw2T1mAwDyGuQhBjEAVMHSq71e1ZtHX/u6Ml91MeDsOLi2LRdgPfH4/GMAgCLPcO0TKVNUWoSBWwei9cnWGImRAJ4ES2YuFyFE5f0u7+N29m2kZqfC09GTn1/PqR46+nUEAEgcy+5gC/ENQa5nLj/d0LMh/zrII4jPo0uSPAk5RTlQMiWKFMUULNkQCpasgLDWosIHsurr4P1kFfa+9ugU10ln1n9c/oGyQAlWStUixjp++ziib0UjhIXw8xjH0CDfjIUihPCa1m+Kva/uBQAU3SvCqbmnAADPBT2Hae9MAwBcPnAZmRdVTW+H3zgMR6kjn/9e6T3c2H4DAPB538/hN8ZP77Ze/PVF/Hn9TwDaA10S60YjeFsDYdBT0TumpzOi+oNrKNjixKplTEEfcmMVlBQAAESs7MB3lCnx/X5zlYgQope+G2AM3A1XmZtm9Hcmp2uqtaOaJSsg/IVi6CGRQLlgSNfFwEB2zo6CpcpSXxCFnfDX7GfwoGEDCLE8wo+lnsucoeFY7iy/g4wdGXpXP+z+MHQu6IxDHQ5RzZKNoWDJGgiDnoq+g/Xd5mpEsIQnz5+kZjjj8TV2ggPL0f3FhFgk4Y9NjWDGQM2SyKHsopp3KQ95l/L0rj/4yb+w5DAovqTrgC2hZjgroPEojQreMY2ap8rWLD1phgP17zaakj3pOM8qUVdPCDEPfTVLBoIlrxe84BTkhMpwKXZRPQCd2AyqWbIGwvHSqtgMR32Waoa6GU7YZ4kDaPRuQiyRnmDJ0KCUDr4O6HKzC0rlFQ+98kvfXxB4KVB7ncTq2WSwtHr1anz99deQyWQICQnBihUr8Oyzz+pNf/z4ccyYMQPx8fHw9/fH7NmzMWnSpFoscQUq0wwnLnuZkZeB36+pHiDpXuoOEUTIL83n55XnzlRpCgoK8Me/f1SryB71PNAzpKfGgHC2iA9CqWaJEMsnHFlFqbsZTtcPSk7Ewd5L94N3hRT2ZbVJms18FDhZO5sLlrZv345p06Zh9erV6NGjB3744QcMGjQICQkJaNy4sVb6lJQUPP/885g4cSK2bNmC//77D1OmTIG3tzdGjBhhhj3QVtUO3hdlF/Hh9g8BALsLdkMCCWR5MozZPkZn3l8LfoUf/CB6KILHsx7VKnOpqBTfTfwO09dOr9Z6LJ2uDt7UZ4kQy6T3OW+G7oar1AYEq1TSdcCW2NzP/m+++QYTJkzAW2+9hVatWmHFihUICAjAmjVrdKZfu3YtGjdujBUrVqBVq1Z46623MH78eCxbtqyWS66t8G4hCu8UQn5TXjazgg9y43plAaF3jjd/EdB6hpwODzweVKWYOtkp7dDgzwYAVMFe+pV0RP0ahUePHplsG5aAMQaRUgTfbF/hXGqGI8QSCb7xHj54CLlcdW0tKS4bpVvfpVIulyMqKgopKSmIioqCXC7n56nXo+7DCFBlkq2xqZql4uJixMbGYs6cORrz+/fvj5MnT+rMc+rUKfTv319j3oABA7BhwwaUlJTA3l676rWoqAhFRUX8dE5OjglKry0mJAaKHM1OgkXFRXpSq/h6+CIDqltbh8UMw1M3n0LGtgy42KkemcIKGLi/OTDG4O7ujunTp8PZ2RkAUOhbiKOfH4VDgQPs7OzQtGlTiMViKBQKJCUlobS0FHZ2qlNG/VpXmm7ybhAzMZQFSjx68Ag3+t1AwcUC2MEO++z2YfDdwfDy9dK9A9YmH9j0f5vQ6JHwGX3UDEeIRRIEQjExMRgTMgb//fcf/v33X7RHewBAdnY2GkgaaGSTy+UICQmBTCaDSCSCUqmEr68vOI5DWloapFIp/vvvP6RnpKMZmgGoue8FYh42FSw9fPgQCoUCvr6+GvN9fX2RlpamM09aWprO9KWlpXj48CGkUqlWniVLlmDBggWmK3glpCvTEYIQvcsdAxw1pkPkIWh5ryXfAZkVMrATqp88uchFz5k9Ef5MOAAgqjAK/e714/NG/RKF8PBwREVFYW6/uTq3pyvNPod9cCt2Axhwfsd5iC+WdaQKLA3EhW0XEP6/8CrsveWxj7GH7yPh+VMCB2SbrTyEEP2EzXAiiCCTybBz505wRYLuCxcvIryJ5vUpNjYWMpkMQNlz5NLT0/nl6vUolGU/bq9dS3wSfhFbYHPNcIB2Bz3GmOG7wHSk1zVfbe7cucjOzub/7ty5U80S69ZgWAN4DvXEaafTiEY09rrtRbsP2xnM49bODY2+aaQxr1XzVrATq+JiBgaRSPW2+/v7IzQ0lE8XFhbGB4fCZcL5fn5+8PPzM5iGPXmKrAgitGjaQquMzYObV+IoWLhyN8i4ipfAHjnUDEeIJSr3sfT398fIkSPh6FD2I7N9B+0QR3h9U18/y18LR44cCZG47Cu1+VNPla2A2uSsnk3VLDVo0ABisVirFikjI0Or9kjNz89PZ3o7Ozt4eeluKnJ0dISjo6POZabUalMrAEATeRPExcUhNDQUEomkglxAs+nNkH8xH482qfoHebh78H2WAgICcPP4TSQnJ2utTyKRID4+Xmtb5ecDMJgm/0XVg9Hs7ezh7q79KEk3N7eqHhKLI+zEeWnUJUy59gi4aMYCEUL0E1QPdArthCtRVyCRSNC9e3c8jlY9SLyepJ5WNuH1LTg4mL9+AprXQl8/XyBVlcfN1Xauc8TGgiUHBweEhYXhyJEjeOmll/j5R44cwdChQ3Xm6datG/bt26cx7/Dhw+jUqZPO/krmIJFIEB5euWYrJ+eyQdSYkvG1Za6urggKCkJQUFCltlV+vqE0f3CqYQc4xum+I8SGuvQI98/bxxt2N8QGUhNCzEnYWiCRSPgfe/Z2gmu9nkph4TVQeP0UXgtFdmXRGI2zZFtsrhluxowZWL9+PX766SdcvXoV06dPR2pqKj9u0ty5czF27Fg+/aRJk3D79m3MmDEDV69exU8//YQNGzZg1qxZ5toF0yg/7I8xjzsxEXUzHMc4nYGRLd1SK9wXjWEdqBmOEMujZzg0Q4NSVnX9FCvZFpuqWQKAUaNGITMzEwsXLoRMJkObNm3w119/ITBQNaqqTCZDamoqnz4oKAh//fUXpk+fju+//x7+/v5YuXKlxYyxVGXlnxGnvjDUxnf4k21wjNP968qWLiLlB7OjKyQhlktw/Su4WYDkucn8az6JiX7oUM2SbbG5YAkApkyZgilTpuhcFhkZqTWvV69eiIuLq+FS1S7hB17YDFebNUsaQZpwuQ3VLFVqdHVCiFkJa3+L7hQh9ctUHYmqsQHBj1QKlmyLzTXDkSfK1yypY6VaaB7SaIbTdb2woWuI3occUzMcIRZH5ChCvT719C737OUJsUvV+x3yPxRR7hmbFDhZPZusWSKav6CYkpmtz5Ktd/DWesgxXRQJsWjtDrdD7tlcKIs0L0QiBxHcu2jfvVspGk9ToWuBLalSzdLmzZs1RrBWKy4uxubNm6tdKGICZuzgLeyzZOvNcBr7QpVJhFg8kZ0Int09Iekj0fjz7OGpcTdblVAHb5tVpTPjzTffRHa29ijFubm5ePPNN6tdKGIC5ZrhzNVnyeY7eAuDQWrUJqRu0wiWbOlCR6p0edc3Ivbdu3fh6elZ7UKR6ivfwdtsfZZsvWZJcEHUuBuO+iwRUvcIgyWF7VznSCX7LHXs2BEcx4HjOISHh/MPVQUAhUKBlJQUDBw40OSFJFUgDIPNNc4SbL/Pkt4O3oSQukdfzRLVMlm9SgVLw4YNAwBcuHABAwYM0HhshYODA5o0aWL94xPZCI0O3qx2O3hr9Fmy8bvhqBmOEMKjZjibValg6bPPPgMANGnSBKNGjYKTk1MFOYjZlOvgba4+SzF3YuAMZ43l5+6eQ2liKTydPNEjoAfEIit+REj5QSnLJmq/LIQQi0Gxkm2p0m/hcePGobCwEOvXr8fcuXPx6JHqga1xcXG4d++eSQtIqkg4OFot91nia5aUHBb/s1hr8df/fo0h24agV2QvTNmve/BQa6HVDEdXSELqLo1BKc1XDGJ6VRpn6dKlS3juuefg6emJW7duYeLEiahfvz727NmD27dv0/ABFkDjOWWCQSlro2ZJ/VBKDpyqKa48wUUk+nZ0zReoJgma4TSOOSGk7hFedm3oRhZSxZql6dOnIyIiAjdu3NBoihs0aBD++ecfkxWOVIMZx1nyc/cDADiLnfF6m9e1lr/a+lU42anOG6tv1xcWX3hsqRmOkLqHgiWbVaVg6dy5c3jnnXe05jds2BBpaWnVLhSpPmEtx9kfzgoWGJdfLpcjKioKKSkpiIqKglwuN3rbYrGqD5K4WIxOyZ20lje70AzPXX4OXa53AbTHNq1V6v2szP6pPbj/AEV7y3aARvAmxLpU5/Ovk+D6emLdSRSKnjTe0HXB6lWpGc7JyQk5OTla8xMTE+Ht7V3tQhETEHxonfaU1f4pFIoKs8rlcoSEhEAmk0EkEkGpVEIqlSI+Ph4SiaTC/Eqlqm2KK+GQG5mrtVy0T4SZmAkAOHjhIOQT5Eat19SE+1mZ/QOA0pJSRLeNRtCjIH5eUbGZIz9CiNGq8/nXS3Dd7fh7GLY0moO37n5evXUSi1ClmqWhQ4di4cKFKCkpAaDqNJyamoo5c+bQ0AEWwi3UTef8x9LHFeaNjY2FTCYDUBb4yGQyxMXFGbXt/Eb5RpYSCLkfYvR6TU24n5XZPwC4e/MuvB9p/jAo9S4tm6BmOEIsWnU+//p4hHpoTEuy21R7ncQycKwKnUZycnLw/PPPIz4+Hrm5ufD390daWhq6deuGv/76C66urjVRVouVk5MDT09PZGdnw8PDo+IMxhoxAsg3PvAQYgx4mNEQly/loPRJbZKdOA/dnwWcnAx/kZeUlODEv/+iqKgIHFTdchwdHfHsM8/A3t6+wm0XFgAn/xOhtNSJz29nfxshIa0Rf7kIpYpSKO3fglOJM9I872JEp0ij1mtqwv2szP4BQHKpA1KjppdNS9/FG639YH/mDPD4MeDiAuTl1VTRCSHVJKxZ8vf3x5UrV6pds1RaUop9q/dBMk21nky3DIx4PAro1QuIjjZBqYmpGfv9XaVgSe3o0aOIi4uDUqlEaGgonnvuuaquyqrVWLDk6QnoaO60BX8474FHQT1keNzDKzljzF2cSrvp7ou7udtUrxsdw1t3F2om8PQEsrJqv2CEEKPJ5XLExcUhNDTUpF0BdtXbBa9sLzxyfYDhea9QsGTBjP3+rlKfJbW+ffuib9++1VkFqaOU3JN+TbUypLjpCX9hMK7c81vEYuC992q1PISQypNIJAgPDzf9itVjzalfUAdvq1elYGnlypU653McBycnJzRr1gw9e/bk74oiVXT7trlLUHMCogEAnNgeMNWdKLWIXU4Gej6p9QtoBFwS7IO9PVDHmqIJIWXKHiZOz0CyFVUKlr799ls8ePAA+fn5kEgkYIwhKysLLi4ucHNzQ0ZGBoKDg3Hs2DEEBASYusx1R7165i5BjVGKntQsMZFV7idzcQWgCpY4sdgq94EQUjOEDxMntqFKYe/ixYvRuXNn3LhxA5mZmXj06BGuX7+OLl264LvvvkNqair8/Pwwffr0ildG6iT++XFWStjVz9r3hRBiWmU1SxQs2Yoq1Sx98skn2LVrF5o2bcrPa9asGZYtW4YRI0YgOTkZS5cupWEESIVEVlpNrTE6L10PCSECTETBkq2pUrAkk8lQWlqqNb+0tJQfwdvf3x+5udoDEhICCDp4K813Mck6kYWck2V3G4pcRfAZ6QMHX4cK81KwRAipGHXwthVVCpb69OmDd955B+vXr0fHjh0BAOfPn8fkyZP5u+MuX76MoKAgQ6shdZmZA4zHVx7jQs8LWvMf7nqIDsc6VJhfY8QNCpYIIQLqZjhrrTkn2qr0Tm7YsAH169dHWFgYHB0d4ejoiE6dOqF+/frYsGEDAMDNzQ3Lly83aWGJ7TD3xSTvku4BIx9frniEc6BsZHMAVfwUEUJsFTXD2Z5K1ywxxlBUVITff/8dd+7cQWJiIhhjaNmyJVq0aMGn69Onj0kLSmwL3ynaTLXTTFG2YelEKTL/zESxrNjo8tATxQkhFaNgyVZUKVh66qmnEB8fjxYtWmgESIQYy9x3iwiDJbdQN2RFZz1ZYGR+6rNECNFDXbMkopolm1HpBgSRSISnnnoKmZmZNVEeUkeYuxkOirKXnJgrC3iMDZaEfZaoGY4QIlBWc07Bkq2o0mV+6dKl+OCDD3DlyhVTl4fUEZbUDMfZcYKbVowrEHXwJoTo9eSawP8YpLvhrF6V7oYbM2YM8vPz0b59ezg4OMDZ2Vlj+aNHj0xSOGK7zN4MVyoIlsQcOE4dLRmXX6kQdPCmYIkQImDu6xsxvSoFSytWrDBxMUhdY+5mOI2apeo2w9H1kBAiQI87sT1VCpbGjRtn6nKQOsaSmuEgRqWDJQgqluh6SAjR8OSaQDVLtqNKwZJQQUEBSkpKNOZ5eHhUd7XExqmDJftSe5wbcw45OTkI6B2Apu83hciurLZJLpcjNjYWYWFhkEgk1dpmXkIebq2+hfTUdDjfL2s65uw4KBSqHt+6+iypy9C0aVMkJSUhLCwMj3MF4zHR9ZAQIqC+G07MxNgUOAYDcQ++Zi4TqZ4qBUt5eXn48MMPsWPHDp13xam/eAjRRylSVc2ImRiPtz6GCCLc23cPdl52CBqnGvldLpcjJCQEMpkMUqkU8fHx1QqYLr9yGYXxhRBBhCIU8fMfZD7AzaSbCEAA8vPzIZfL+e0IyyASiaBUKuHr64tA10B8ha8AAAolne+EkDLq6xsABN6egH2uf+ItM5aHVF+VOozMnj0bR48exerVq+Ho6Ij169djwYIF8Pf3x+bNm01dRmKDTrc+rXN+yn8p/OvY2FjIZDIAqucRxsXFVWubBUkFWvOykIWDsoMoKVXVjjLGNLYjLIN61O709HTk5JQ9U66gSHu9hJC6S95ZrjHN8rzMVBJiKlWqWdq3bx82b96M3r17Y/z48Xj22WfRrFkzBAYGYuvWrXj99ddNXU5iYw4NPITfW/0Od7k7Ov7cEZPZZACAv9SfTxMWFgapVAqZTAZ/f3+EhoZWa5tikRhKKHEXd/E59zmUTIliaTGOjTuGE1+cAEoBESfS2I6wDOqaJT8/P3i6eQIPVWlcXFyqVS5CiG2JWB2BF84NwuKbXwIAOE5s5hKR6qpSsPTo0SP+IbkeHh78UAHPPPMMJk+ebLrSEZslFouRJklDgXcB5v0wDw/efgAAcHYs60skkUgQHx+PuLg4hIaGVrvPkrpTdsPghjgQdQDJycn8etNbpKMwvhBOjk4a2xGWITg4mM8TezAWeO3JvtjRhZAQUkYikeCnnT8hrWMGALorzhZUKVgKDg7GrVu3EBgYiNatW2PHjh14+umnsW/fPtSrV8/ERSS2zM7eDr5SXzyAKlgq/8w1iUSC8PBwk2xLvW53D3cEBQXxAT8gCHgEm2eMQbZOhqx/siCFFAUogBRSyH6SweGOA5Tq6ItG8CaElFOvnifSoAqWaCRv61elYOnNN9/ExYsX0atXL8ydOxcvvPACVq1ahdLSUnzzzTemLiOxQepBIBkYOJHgQqLUk8EU1IGQjuBG16CUuedycX3S9YpXK6LReQkhmkQi4YWGgiVrV6Vgafr06fzrPn364Nq1azh37hyaNm2K9u3bm6xwlXHr1i0sWrQIR48eRVpaGvz9/TFmzBh8/PHHcHBw0JsvIiICmzZt0pjXpUsXnD6tuwMyMQ2NamnBNaV8zZIpqdf9sOAh1sWu01jWuKAxnOAEpVLJL3M76gZ/+GutRyjPIQ9pPdJqpsCEEKslEpc1z9N4S9av0sGSUqlEZGQkdu/ejVu3boHjOAQFBeHll19Gu3btaqKMRrl27RqUSiV++OEHNGvWDFeuXMHEiRORl5eHZcuWGcw7cOBAbNy4kZ82FFwR02Ks9mqWmJKBA4eU7BRM+XOKxrIfcn5AczSHQqnAO3++AwDoFd8L8zEfALDl2S34q+NfWuuUu8kxpdUUrfmEkLpNxAmuaxQsWb1KBUuMMQwZMgR//fUX2rdvj7Zt24IxhqtXryIiIgK7d+/G3r17a6iohg0cOBADBw7kp4ODg5GYmIg1a9ZUGCw5OjrCz8+vpotIBDSa4cRlF5KarFlS/7rjRw83kAbQfBRLtks2ZPVlOvM83fBpE5WQEGIrRBo3flCwZO0qFSxFRkbin3/+wd9//40+ffpoLDt69CiGDRuGzZs3Y+zYsSYtZFVlZ2ejfv36FaaLjo6Gj48P6tWrh169euGLL76Aj49PLZSw7tLXDFdTNUvCkbnt7ezx05CfNJb7b/cHZKp+Buplro6uwG+q5a+2fRXPD3lea71PeT2FHgE9aqbQhBCrJawxp2Y461epYOnXX3/FRx99pBUoAUDfvn0xZ84cbN261SKCpaSkJKxatQrLly83mG7QoEEYOXIkAgMDkZKSgk8//RR9+/ZFbGwsHB0ddeYpKipCUVHZCNDCAQpJ5ZRvhquxmiVBEGYntsObHd/UWBzrGotc5IJjHL8s/Wo6ruIqAKBLQBc06tioZspGCLE5IjF18LYllbrp+dKlSxpNXeUNGjQIFy9erHahhObPnw+O4wz+nTt3TiPP/fv3MXDgQIwcORJvvWV4kPlRo0bhhRdeQJs2bfDiiy/iwIEDuH79Ovbv3683z5IlS+Dp6cn/BQQEmGRf6xJhM1xt1yzpvHtN14N0ha9peABCSCWIqYO3TalUzdKjR4/g66v/cYC+vr6Qy+V6l1fFu+++i1dffdVgmiZNmvCv79+/jz59+qBbt25Yt26d/kx6SKVSBAYG4saNG3rTzJ07FzNmzOCnc3JyKGCqJGEzXG3XLOn8kacjWBKWhePoYkcIMR5HHbxtSqWCJYVCATs7/VnEYjFKS0urXSihBg0aoEGDBkalvXfvHvr06YOwsDBs3Lix3DgXxsnMzMSdO3cglUr1pnF0dNTbREeMw9cssdqpWdIIgnR18NZ1LaOaJUJIFVEHb9tS6bvhIiIiDPblMZf79++jd+/eaNy4MZYtW4YHDx7wy4R3urVs2RJLlizBSy+9hMePH2P+/PkYMWIEpFIpbt26hY8++ggNGjTASy+9ZI7dqHPKD0pZUzVLSoUgCtNx3RL+CmSMgeM4zbLQtY4QUgnCH+sco19b1q5SwdK4ceMqTGOuzt2HDx/GzZs3cfPmTTRqpNkRV9hfJTExEdnZ2QBUNWGXL1/G5s2bkZWVBalUij59+mD79u1wd3ev1fLXNepmuPI1Sw+2P0Du2Vy9+VzbuKLpsqaw86jcEGEVBUsa89iTaWGsJKJoiRBiPM0O3sTaVeobRzhwo6WJiIhAREREhemEgZOzszMOHTpUg6Ui+ghrckTOZReV4rRiFKcV682XcyoH7p3d4T/R8Mja5SmVgmBJ1zWsfLAEVNzPiRBC9BBe46iDt/Wj0JeYFQODa4grGgw3rl8aAJQ8KKn0dhQKRdlEBdctdUAtDKypZokQUhkafWapGc7qVenZcIRUl7AZjuM4tNnVRiM4KS/zz0xcGXJFNVGFbk3CZjijO3hTzRIhpBoUnAJiJqbLhw2gYImYha5b8bOyshAbG4umTZsiKSmJ/z8sLAx5+Xl8OkOdwFO/SsX9LfdRkFcABwcHFBcXw8HBAfl5+bCHvSqRjh95wvJkPcpCfZ/6yM/LL0vwJI9cLkdsbCzCwsIgkUgqt9OEkLqD41Q/zBgQkN4c67qvw7Cdw+DTkJ4OYY0oWCJmxZ5UE8nlcoSEhEAmk0EkEkGpVPL/+/r6okNxB8zBHABAQX6BznUV3StC8pxkAKqaqxKU8P/zgRKAYnvtPlGlirIhL9q3b49/Tv6DhfMXYjzGAwDy8/M1yiiVShEfH08BEyFEryL7QtgVuQEAmp9qjgNLD2DcdxXfKEUsDwVLxCzUzXClylL8evlXXL5yGTIvGeAFKJ+0f6n/T0c6HuU+Ap6Md3ryxklcuHxBa512N+3gDW8AgAIKFHOCoIgDIAYeuT3C8a7HMQVTNPI+fvyYL1N6Wjp27typ8Rib26m3kRKbAplM9TBdmUyGuLg4hIeHV/tYEEJsk9xvM1xvl11rHqU+MmNpSHVQsETMQt3sVaosxWu7X1PNfNlAhpsAbqte/vvwX0TujtRKEpQehJ+gegjugdADWD5E93MBnwt8Tmuem4cb8qBq6vOX+mPkyJFI+CIBeBIvNQlqAkmYBFKpFDKZDP7+/ggNDa1wPwkhddeY2ztxSHobjrKvAABubm5mLhGpKuqiT8yio1/HSqVXcmW9rfXdhiucr7MT9xNPBzytNc/evqyZLvZcLIKCgvDRRx/x81zdXSGRSBAfH4+oqChcuXKFmuAIIRXiBHek2IvtDaQkloxqlohZrBq0Cn2D+uJRgXHV0m5n3YCfVa8HBA9Ah4EdtNI4XXcC1qped2/cHYEDA7XS+Ln5YWiLodobEMRf9erVAwC4OLloLZdIJNT0RggxmogJ7sStqWdfkhpHwRIxC1cHV4xpN8bo9PLHclzERQBAZ//OCO4SrJUm1z4XsYgFALT1a4sRXUYYXyBBsJR9MhtiZzEKkss6ktM4S4SQqhDWLNXYsy9JjaNgiVgHYx62a6IH317qd0l7JsVKhJAqEAZLhsaSI5aN+iwR6yAIVvRdcIRV3LrGcTLEpYWLweXOzZ0rtT5CCAE0m+GoZsl6Uc0SsQoawY++H2fCC1ElfwYELQqCUxMnFGdoj8FU79l6cO9AD1YmhFQTBUtWi4IlYh2MaIarzrPc7L3s0Xh24yoUjBBC9BMxJX/JomY460XNcMQ6GNEMR89yI4RYFI6jDt42goIlYhWMaYbTuC2XzmxCiAXQCJaoYslq0VcKsQ6VvBuObvUnhFgC6uBtGyhYItaBmuEIIVZIeCmiQSmtFwVLxCpoNMPVQAdvQgipCRyj6iRbQMESsQ7CM9WYoQMoViKEmBt18LYZFCwR61DJQSnpzCaEWAIRdfC2CfSVQqyCMc1w1MGbEGJpOOrgbRNoUEpiHQRh/d2UuxBfEiMlJQVBQUG4dFn1LLfmuc3LElUjVpLL5YiNjUVYWBgkEknVV0QIqfM4wY+4gowCZGZmwsvLCwCQmZaJ82fOo2PXjvDy9TJTCYkxKFgi1kEQ/IgOinDn4B3YwQ53cAcSqAKaB3jApyksKqzSZuRyOUJCQiCTySCVShEfH08BEyGkykSC6qS2sW2xq9UuvBD7AooOFeH629fhxJxwmjuNNr+0QeCrgWYsKTGEmuGIVXDwcQDjjG/wlxXJqrSd2NhYyGSqvDKZDHFxcVVaDyGEgOPgXZgFBafgZzV/0Bz71u3Dre9vwYk5AQBcmSuSv082VymJEahmiVgFR39HBHwbgD8//BMlRSUG0z50fYgPpn9Qpe2EhYVBKpVCJpPB398foaGhVVoPIYQAQKN8Of7rsBG+F97i5/l6+cLNwQ35yOfneTh7mKN4xEgULBGr0ex/zTBu7DjExcUhODgYycnJCA4OxsWLFwEA7du3R3JyMkJDQ6vcdCaRSBAfH4+4uLhqrYcQQtRG2SVifcRNNItsBgBwdHSEnVjz69fezt4cRSNGomCJWBWJRILw8HAAQFBQkMb/5V+bYhuEEFJtjMHeoSwYYkqmNZo3je5t2ajPEiGEEFLDNIYzYdAec4liJYtGwRIhhBBSw4TBklKp1B5zicZgsmgULBFCCCE1QTiYrrBiSUHNcNaGgiVCCCGkhglrlhhj1AxnZShYIoQQQmqYRrBEHbytDgVLhBBCSE1iTKsZjvosWRcKlgghhJAaRnfDWTcKlgghhJCaIOzgLfi2pWY460PBEiGEEFLDyvdZyi/K11gedy8OgSsCEbgiEOP2joNCqSi/CmJGFCwRQgghNax8sJSZn6mxvLi0GKnZqUjNTsXmi5vxz+1/aruIxAB63AkhhBBSk3JzgQcZAPwAAEwmAyv10UjiyNnDTeyMx4oCAEBO3Cngjrgsga8v0KJFbZWYlEM1S4QQQkhNunED3JHDZdN/HQCKSjSSdLirwCcHC/hp9snHQK9eZX8tWwKrVtVWiUk5NhUsNWnSBBzHafzNmTPHYB7GGObPnw9/f384Ozujd+/eiI+Pr6USE0IIsVmCmiBOcLsbAwdOOJYAAAaRxhyl5mKVv/4ycQGJsWyuGW7hwoWYOHEiP+3m5mYw/dKlS/HNN98gMjISzZs3x+eff45+/fohMTER7u7uNV1cQgghtmr3bmDrVqCgANwVBqSqZrPWbYDT5b5+ffzA9eoF4LgqzbChwIstgKIi4LvvnmSkO+bMxaZqlgDA3d0dfn5+/J+hYIkxhhUrVuDjjz/G8OHD0aZNG2zatAn5+fn45ZdfarHUhBBCbM5TTwHz5wNffQWuy9P8bFmBFHaljhpJc0XusLMfii7Xu8AzzxPcM2NxO2wKjnk/B6b+qqZgyWw4xmzn6Ddp0gRFRUUoLi5GQEAARo4ciQ8++AAODg460ycnJ6Np06aIi4tDx44d+flDhw5FvXr1sGnTJp35ioqKUFRUxE/n5OQgICAA2dnZ8PDwMO1OEUIIsXq/LfwNDT5rUKW83jiKECwC+vUDDh+uOAMxWk5ODjw9PSv8/rapZrj//e9/CA0NhUQiwdmzZzF37lykpKRg/fr1OtOnpaUBAHx9fTXm+/r64vbt23q3s2TJEixYsMB0BSeEEGLTGj/dGPnIrzihDlkINXFpSGVZfLA0f/78CgOTmJgYdOrUCdOnT+fntWvXDhKJBC+//DK++uoreHl56c3PceU62jGmNU9o7ty5mDFjBj+trlkihBBCdHl64NP4Y80f+OPbP1BcVAxwQD7Lx52SO2ib2xbFucVo59kOnbI7aeVl6q7fttMQZHUsPlh699138eqrrxpM06RJE53zu3btCgC4efOmzmDJz0815kVaWhqkUik/PyMjQ6u2ScjR0RGOjo56lxNCCCHlDZk0BM+OehZxcXEIDg5GcnIyQkNVtUZxcXFI+SUF+ElXTv0/3kntsPhgqUGDBmjQoGrtvOfPnwcAjUBIKCgoCH5+fjhy5AjfZ6m4uBjHjx/HV199VbUCE0IIIXpIJBKEh4cDUH0HqYWHh+PX33/Vk4tqlszNZu6GO3XqFL799ltcuHABKSkp2LFjB9555x0MGTIEjRs35tO1bNkSe/bsAaBqfps2bRoWL16MPXv24MqVK4iIiICLiwtee+01c+0KIYSQukjPNzKjmiWzs/iaJWM5Ojpi+/btWLBgAYqKihAYGIiJEydi9uzZGukSExORnZ3NT8+ePRsFBQWYMmUK5HI5unTpgsOHD9MYS4QQQmqX3piIapbMzWaCpdDQUJw+fbrCdOVHSuA4DvPnz8f8+fNrqGSEEEJIxYQP2xVittMIZLXoHSCEEEIsgL5giWqWzI+CJUIIIcQS6ImVSjkOe1oCxZyydstDeBQsEUIIIZZAzzdyqYjD8FeBBYEptVsewqNgiRBCCLEA+gZDFjHVV3Wse25tFocIULBECCGEWAKx7tkcUwVR1GPJfChYIoQQQiyAvpqlsmCJwiVzoWCJEEIIsQR6vpFFTxZQqGQ+FCwRQgghFkD/0AEAGAVL5kTBEiGEEGIB9DXDAWWdvIl50NEnhBBCLIGhb2RGfZbMiYIlQgghxAJUVLNEoZL5ULBECCGEWAID38gvn34ZDkUuJt+kXC5HVFQU5HK53jRMwZC+NR0J0xPw97i/kXYuzeTlsHQ28yBda6BQKFBSUmLuYhAr5uDgAJGIfuMQYosMdfB+J+odnH4gNen25HI5QkJCIJPJIJVKER8fD4lEopXu4e8PcXXMVQCAGGJE/RKFFzJe0JnWVlGwVAsYY0hLS0NWVpa5i0KsnEgkQlBQEBwcHMxdFEKIiYUOC8XVT6/CqcRJ53KvRw1Nur3Y2FjIZDIAgEwmQ1xcHMLDw7XS5V/L15iWlkr1prVVFCzVAnWg5OPjAxcXF4Pt0oToo1Qqcf/+fchkMjRu3JjOI0JsTGCLQBRfKMZbL70FeZYcmeJMNCsOwoLMzwEAnIl7zoSFhUEqlUImk8Hf3x+hoaG6E5brLMWBQ8fQjiYti6WjYKmGKRQKPlDy8vIyd3GIlfP29sb9+/dRWloKe3t7cxeHEGJiT7V+CntP70VcXBxCQ0NRmJWPxOAbAFRBiilJJBLEx8fz29LXrMaUmtGSCCLUq1fPpGWxdBQs1TB1HyUXF9N3zCN1j7r5TaFQULBEiI2SSCR8E1ehqKxJjquBsZaE29JLqWMeA0wcu1k06ilaS6jJhJgCnUeE1C2c2PyfecZ0DFpQx8YxoGCJEEIIsVAisZh/XRM1S0bRUbNUvmnO1lGwRCqld+/emDZtmrmLQQghdYOgYoljZqpl0hUX6Wqas2EULJEaEx0dDY7jaMgEQgipIpFY8DVtpmBJVy1SXatZog7ehBBCiIUSDlRp6rvhZBtkkB8tG7lb5CyC/9v+8HjaQzOhvg7edQjVLBG98vLyMHbsWLi5uUEqlWL58uUay7ds2YJOnTrB3d0dfn5+eO2115CRkQEAuHXrFvr06QNAdbcFx3GIiIgAABw8eBDPPPMM6tWrBy8vLwwePBhJSUm1um+EEGINNEb1NmHN0uNLj5H4ViIyfsng/9I2pOHq61e10urq4F3XapYoWCJ6ffDBBzh27Bj27NmDw4cPIzo6GrGxsfzy4uJiLFq0CBcvXsTevXuRkpLCB0QBAQHYtWsXACAxMREymQzfffcdAFUQNmPGDMTExODvv/+GSCTCSy+9BKWyjjWCE0JIBYR3wJqyz1Lh7ULd81N1zNd1aa5jl2tqhrMicrkcsbGxCAsLq/Fn8jx+/BgbNmzA5s2b0a9fPwDApk2b0KhRIz7N+PHj+dfBwcFYuXIlnn76aTx+/Bhubm6oX78+AMDHx0djALMRI0ZobGvDhg3w8fFBQkIC2rRpU4N7RQgh1kfBKSBmYpMGS6y0rGYoYHYAMv/MRH5Cvs7mNZ21SHWrYolqlqyF+oGH/fr1Q0hIiMEnRJtCUlISiouL0a1bN35e/fr10aJFC376/PnzGDp0KAIDA+Hu7o7evXsDAFJTUytc92uvvYbg4GB4eHggKCjIqHyEEFKXmbLPElOURTsOPg4QOT0JB3QFQcYGUDaMgiUroeuBhzVJ5yBkAnl5eejfvz/c3NywZcsWxMTEYM+ePQBUzXOGvPjii8jMzMSPP/6IM2fO4MyZM0blI4SQukjJPWnzMuXdcArBazH4IQp0XvupGY6CJWuhfuAhAMMPPDSRZs2awd7eHqdPn+bnyeVyXL9+HQBw7do1PHz4EF9++SWeffZZtGzZku/crSZ8NIdaZmYmrl69ik8++QTh4eFo1apVjdeSEUKINWOcKoAx5aCUwmY4TsyV9Y3SVYukq4N3BT+obQ31WbISxj7w0FTc3NwwYcIEfPDBB/Dy8oKvry8+/vhjiESqD2vjxo3h4OCAVatWYdKkSbhy5QoWLVqksY7AwEBwHIc///wTzz//PJydnSGRSODl5YV169ZBKpUiNTUVc+bMqdF9IYQQa8YHS6Zcp6AZjrPjylZeLgbafXU3MpMz8RSe0pj/4aEPUVSvSOe6HcWOGNt+LDpKO5qwxOZFwZIVMeqBhyb09ddf4/HjxxgyZAjc3d0xc+ZMZGdnAwC8vb0RGRmJjz76CCtXrkRoaCiWLVuGIUOG8PkbNmyIBQsWYM6cOXjzzTcxduxYREZGYtu2bXj//ffRpk0btGjRAitXruT7OxFCCNHEnjTDmbRmSaFZs6QrWLqeeR0jdozA+2nvawVLm85vgtxdf6vA3sS9SH4/2WaeZ0nBEtHLzc0NP//8M37++Wd+3gcffMC/Hj16NEaPHq2Rp3zV7KeffopPP/1UY95zzz2HhIQEg/kIIYSoKDnTXx/LN8PpqrZKlierlutYWFFn81tZt8DATD6QprlQsEQIIYRYMPakuscr2w+nOp9CYWEhfJ/zRavlrTQHrSxHONwMAP510R9FuP729bKEYs2+pYwxcBwHpmQYGz0Ww2KGaa17x4EdKGJFcHB0QHFRMf///aL7yGbZ2PP0HtWPYNuIlShYIoQQQixZsX0RXItd4VDqhKJzReDAIeNKBtzD3REwOEBnHvVwMzKZDL6+vuA4DmlpaQjyDcJP8p800mY+zsSFixfQHM1VeR/JUd+rPpAAvBn9ps71ixPEcIELAMDuSShhBzs0QzMAQLO0ZniY+RC+3r4mOQbmRnfDEUIIIRZsV5cdKLLT7kx9Pea6jtQqwuFm0tPTkZaWBgDISc8BBKO0XMd1HHx0EMUlZTPPx54HAHAPNauFspGNR3hkVJk9CzxxPu68UWmtAdUsEUIIIRZsd7ft+PWZnXgqHeiwbiQmsUkAgODAYL151MPNyGQy+Pn5AQDS0tIg9ZUC6ao0J3ACa/3X4t83/sXhzw8DJar5HTuo7mIT9iXd1HgTDhYfBMc4pKenQ8SJoGRKrf+/8/kObTJUT2Jo3669qQ+F2VDNEiGEEGLhlCIl7JzsMPfjufw8FxcXvenVw81ERUUhISEBCQkJiIqKQtSRKD5Nj149cOXKFQQFBSG0U9nYferHUwlH6W4X1g4JCQmIvxqPw1GHcT3pus7/XT1c+Twenh6m2HWLQDVLhBBCiAVT3wzHiUTw8vaCHE9u2a9gFO3yw82Eh4ej4FYBP+3r58uP2WdnLwgH1DGSYP31G9Tn06rXqX5UlfD/TeJNZauxoUeiUM0SIYQQYsHKhkBiGt/aVQpGBAGQxp10gpfq5jelUqlzuSFMMMyBUmE7z0SxmWApOjoaHMfp/IuJidGbLyIiQit9165da7HkhBBCiH58sMSVC3CqUnEjzCOIADQGj9RRs2RoiAIN1Q3mLJTNNMN1796d7/mv9umnnyIqKgqdOnUymHfgwIHYuHEjP61+phkhhBBiburKGgZoVnFUoeJGGMDoq1lSB0tVGSxYWLMkHLvJ2tlMzZKDgwP8/Pz4Py8vL/zxxx8YP358hcOtOzo6auStX79+LZWaVFdkZCTfGbGmRUREYNiwYbWyLUII0UX4fVbdZjiNCEBHsKQ3rSE6mvNsgc3ULJX3xx9/4OHDh4iIiKgwbXR0NHx8fFCvXj306tULX3zxBXx8fGq+kMQi3bp1C0FBQTh//jw6dOhQo9tZtGgRjh49irS0NPj7+2PMmDH4+OOPqXaTEMJTxx833Iow5+gcjMd4AMDsQ7PxT/Y/lVqXNF2KL/ElAGDn1Z3YsGKDal13ZiMEIQDKghxhsMOJjWuGE9YsCZ8/Z+1sNljasGEDBgwYgIAA3aObqg0aNAgjR45EYGAgUlJS8Omnn6Jv376IjY2Fo6OjzjxFRUUoKiobICwnJ8ekZSd1w7Vr16BUKvHDDz+gWbNmuHLlCiZOnIi8vDwsW7bM3MUjhFgIjyIOOY4MpSIgszCTny/PlyM1O7VS6xLllFURPS55zOcvUJTdJcfXLFWlFU0QU1EH71o0f/58vR231X/nzp3TyHP37l0cOnQIEyZMqHD9o0aNwgsvvIA2bdrgxRdfxIEDB3D9+nXs379fb54lS5bA09OT/6soILNWvXv3xnvvvYdp06ZBIpHA19cX69atQ15eHt588024u7ujadOmOHDgAABV+/SECRMQFBQEZ2dntGjRAt999x2/vsLCQoSEhODtt9/m56WkpMDT0xM//vijUWWKjIxE48aN4eLigpdeegmZmZlaafbt24ewsDA4OTkhODgYCxYsQGlpKb+c4zisWbMGgwYNgrOzM4KCgrBz505+ufo22I4dO4LjOPTu3Vtj/cuWLYNUKoWXlxemTp2KkpISo8penrqvXP/+/REcHIwhQ4Zg1qxZ2L17d5XWRwixTV/864BmmYC0wA4eTmVjF9VzqAepm7RSfz7OZa0mTg5O/HxdHbw1mtGMjRYE6ZTMdoIlMAv34MEDdvXqVYN/BQUFGnkWLlzIvL29WXFxcZW22axZM/bll1/qXV5YWMiys7P5vzt37jAALDs7WyttQUEBS0hI0CqjNejVqxdzd3dnixYtYtevX2eLFi1iIpGIDRo0iK1bt45dv36dTZ48mXl5ebG8vDxWXFzM5s2bx86ePcuSk5PZli1bmIuLC9u+fTu/zvPnzzMHBwe2Z88eVlpaynr06MGGDh1qVHlOnz7NOI5jS5YsYYmJiey7775j9erVY56ennyagwcPMg8PDxYZGcmSkpLY4cOHWZMmTdj8+fP5NACYl5cX+/HHH1liYiL75JNPmFgsZgkJCYwxxs6ePcsAsKioKCaTyVhmZiZjjLFx48YxDw8PNmnSJHb16lW2b98+5uLiwtatW8ev+5133mGurq4G/27fvq13Hz/++GMWFhamd7k1n0+EkCpyd2cMYKx1ayaLlLFjOMaO4Ri7u/pupVeVeyGXz3/t7Wv8/LWt1/LzS7JKGGOM7f1yLz9v8/TNRq1/Q8cNfJ57t+5Vuny1LTs7W+/3t5DFN8M1aNAADRo0MDo9YwwbN27E2LFjYW9vX+ntZWZm4s6dO5BKpXrTODo66m2iM0qnTsCT5/TUKj8/oFwtXEXat2+PTz75BAAwd+5cfPnll2jQoAEmTpwIAJg3bx7WrFmDS5cuoWvXrliwYAGfNygoCCdPnsSOHTvwyiuvAAA6dOiAzz//HBMnTsTo0aORlJSEvXv3GlWW7777DgMGDMCcOXMAAM2bN8fJkydx8OBBPs0XX3yBOXPmYNy4cQCA4OBgLFq0CLNnz8Znn33Gpxs5ciTeeustAMCiRYtw5MgRrFq1CqtXr4a3tzcAwMvLi39MgJpEIsH//d//QSwWo2XLlnjhhRfw999/88dj4cKFmDVrlsH98Pf31zk/KSkJq1atwvLly406HoSQOkJd68M0x1mqytABjFV8N5y647jGnXMV3CjF5xX2WaKhAyzX0aNHkZKSorcJrmXLlliyZAleeuklPH78GPPnz8eIESMglUpx69YtfPTRR2jQoAFeeumlmitkWhpw717Nrd+E2rVrx78Wi8Xw8vJC27Zt+Xm+vqonSmdkZAAA1q5di/Xr1+P27dsoKChAcXGxVifpmTNn4vfff8eqVatw4MABo4Phq1evar0v3bp10wiWYmNjERMTgy+++IKfp1AoUFhYiPz8fP7xAN26ddNaz4ULFyosQ0hICMRiMT8tlUpx+fJlftrHx6dKNwfcv38fAwcO1AjiCCGkPGGAY8q74YRBjqma4RjdDWe5NmzYgO7du6NVq1Y6lycmJiI7OxuA6sv/8uXL2Lx5M7KysiCVStGnTx9s374d7u7uNVfIcrUVtaYK2y1fO8dxnMY89a8NpVKJHTt2YPr06Vi+fDm6desGd3d3fP311zhz5ozGOjIyMpCYmAixWIwbN25g4MCBRpXFmA+eUqnEggULMHz4cK1lTk5OBvMa88tJ1/EQjnI7adIkbNmyxeA6EhIS0LhxY376/v376NOnD7p164Z169ZVWAZCSB2jvjbdvAl88AHw5G44LFoMfH+sUqtiBY0BPHm+3C+/AEe3q14XvFmWpmtXQJwP2LUDMFk189BB4M8vUKGCsQCaAgCUQ4YCivxKlc+g7t2BDRtMt75KsLlg6ZdffjG4XPiF6+zsjEOHDtV0kbRVsinMWpw4cQLdu3fHlClT+HlJSUla6caPH482bdpg4sSJmDBhAsLDw9G6desK19+6dWucPn1aY1756dDQUCQmJqJZs2YG13X69GmMHTtWY7pjR9WTttW37VdlQLXKNsPdu3cPffr0QVhYGDZu3AiRyOLvuSCE1DZXVyA7GygpAWR3+dmFGQy5GaUGMmrLF7TdcVmPgKxrqomAsuud8sZNADlgjQLL0ubmALeuVbyBhmU3vLBbt4E87ZtwqsyMN1PZXLBEzKdZs2bYvHkzDh06hKCgIPz888+IiYnh7y4DgO+//x6nTp3CpUuXEBAQgAMHDuD111/HmTNnKhxb6P3330f37t2xdOlSDBs2DIcPH9ZoggNUfagGDx6MgIAAjBw5EiKRCJcuXcLly5fx+eef8+l27tyJTp064ZlnnsHWrVtx9uxZbHjyi8XHxwfOzs44ePAgGjVqBCcnJ3h6ehp1DCrTDHf//n307t0bjRs3xrJly/DgwQN+Wfm+UoSQOuyzz4AFC4C8PHDFzsCTu/zvYhTuYlTV1+tgDzirrm3CenWlp4dqjoOgb669GDDiOsiEd8O5uwN2lQvmDHJ1Nd26Kol+xhKTmTRpEoYPH45Ro0ahS5cuyMzM1KhlunbtGj744AOsXr2aH27h+++/R1ZWFj799NMK19+1a1esX78eq1atQocOHXD48GG+87nagAED8Oeff+LIkSPo3Lkzunbtim+++QaBgYEa6RYsWIBt27ahXbt22LRpE7Zu3crXbtnZ2WHlypX44Ycf4O/vj6FDh1b30Oh0+PBh3Lx5E0ePHkWjRo0glUr5P0II4b39tqqfa1YWnE9sM9lqnZdNB7KyVH9eZU+ueHTyFJCVhaKRr/LzuJEjy9Ia+mtUVnN+dvGXkKekGEwvT0lB1G+/IeX8eY3/1fnkKSnYs3Ej9mzcCPlPP5ls3yuLY7bUA8tMcnJy4OnpiezsbHh4eGgsKywsREpKCoKCgirsM0NqB8dx2LNnj1U+uoTOJ0JI8o/J2DBtA/Lz8+Hs7AwOHPILtPsGqcej27Nnj1baXPdcfHX1K3g19AIArOm4Bq0ulPX1FUvFUMjKmuZuzb6FiK8iKizb+h7r0exkWTeI5S2WY/OpzZBIJFppf/3sV7gtdYN7oWYfYSWUyHLOgnc9b40yXHK4hDfS3tC5rqoy9P0tRM1whBBCiBVJDkrG4vzFqokCAwnzAc92nli8VUfaXGD0tdEIbxgOAMh2zNbIKgxSACCtxMjhbso9WnXQo0GIi4tDeHi4VtKin4ogLdSuSRdBhPoF9aEo0CxDUXGR3nXVNGqGIxZj0KBBcHNz0/m3ePFicxePEEIsQlhYGN9cr34APAD+BhH1//7+/hg5cqTOtP7+/ggNDeXXeW7IOZxoeULn9nY/vRuOg40bW7Dnwp643vk6P+2odNTYjpBjiWqdCk6BBO8EJHgn4KHrQ610SUhCAhKQ6ZKpd101jWqWiMVYv349Cgp0/0yqX7++zvlVQS3PhBBrJpFIEB8fj7i4OD54iIuLQ3BwMJKTk/n/Q0ND9aZVL1N73Pgx5r06D8fmaw5F8G+Lf7Hq+VX4wfMHo8rWvGNzND/bHAcdDsKpxAlOjk4VNpsVOhRi0JlBSE5Oxs3vb6LBHs2x97z/zxvKhkqM7jXapE1wlUHBErEYDRs2NHcRCCHEKkgkEo3mKPVr9d3HwruQ9aUVEnGq2igFp4CYlQ28q+RU48hxMG4EbzX1IJcc059PvYxxDEFBQQgKCsL9jfe10j3X/zm4POVSqe2bGjXDEUIIIXWcOljS8iTWMfZxJ2qVCpZEZbX9IrF2OTQey2ImVLNECCGE1HHqYEnJKU1as2To+XV8sCRIpGtg3l8u/4ISeQkaeTTC4OaDK1UOU6FgiRBCCKnj1MGSxjPiBNOVrllC5Zrh+HLoqFn6OPpjpEvS0S+4n9mCJWqGI4QQQuq4Lg27ANARLD0JetTLjaVuWjMULPEP7BVsM6Ce9iNNypfJHKhmiRBCCKnjPnzmQ3Ty7wTxl2JA8ISSLgFdED8lHq29K35+p1BVa5b8PfxxC7c00i0fsBwKPwWk7uZ7ugHVLBGrFhkZiXr16tXKtiIiIqxy1G9CCKmIiBOhX9N+sLez15gf5BVU6UAJMK6Dt4jpaPrTEZWMbDsS4zqMQ/+m/StdDlOhYImQcm7dugWO43DhwoUa31aTJk3AcZzG35w5c2p8u4QQolO52KayfZXUjOngrasZTuedbxYQqVAzHCFmtnDhQkycOJGfdnNzM2NpCCF1WvnApIqBSmXHWSqbqSth1cpgShYQrxFL1bt3b7z33nuYNm0aJBIJfH19sW7dOuTl5eHNN9+Eu7s7mjZtigMHDgAAFAoFJkyYgKCgIDg7O6NFixb47rvv+PUVFhYiJCQEb7/9Nj8vJSUFnp6e+PHHH40qU2RkJBo3bsw/IDIzM1Mrzb59+xAWFgYnJycEBwdjwYIFKC0ta4TnOA5r1qzBoEGD4OzsjKCgIOzcuZNfrh7MrWPHjuA4Dr1799ZY/7JlyyCVSuHl5YWpU6eipKTEqLLr4+7uzj+GwM/Pj4IlQojZlK/ZqeoYR1UNlnRtzxLGWaJgiRi0adMmNGjQAGfPnsV7772HyZMnY+TIkejevTvi4uIwYMAAvPHGG8jPz4dSqUSjRo2wY8cOJCQkYN68efjoo4+wY8cOAICTkxO2bt2KTZs2Ye/evVAoFHjjjTfQp08fjZoVfc6cOYPx48djypQpuHDhAvr06YPPP/9cI82hQ4cwZswYvP/++0hISMAPP/yAyMhIfPHFFxrpPv30U4wYMQIXL17EmDFjMHr0aFy9ehUAcPbsWQBAVFQUZDIZdu/ezec7duwYkpKScOzYMWzatAmRkZGIjIzkl0+aNEnv8+3Uf6mpqRpl+eqrr+Dl5YUOHTrgiy++QHFxsfFvECGEmFL5uKSKcYoxd8NZU80Sx+hBWdWWk5MDT09PZGdnw8PDQ2NZYWEhUlJSEBQUBCcnJwBAp3WdkPbYyCc4m5Cfmx/OvX3O6PS9e/eGQqHAiROqhysqFAp4enpi+PDh2Lx5MwAgLS0NUqkUp06dQteuXbXWMXXqVKSnp+O3337j53399ddYunQpRo8ejZ07d+Ly5cto0KCBVt7yXnvtNcjlcr4mCwBeffVVHDx4EFlZWQCAnj17YtCgQZg7dy6fZsuWLZg9ezbu31cNo89xHCZNmoQ1a9bwabp27YrQ0FCsXr0at27dQlBQEM6fP48OHTrwaSIiIhAdHY2kpCSIxapB21555RWIRCJs27YNAJCRkYGcnByD+9GkSRPY2alawL/99lv+GU1nz57F3LlzMXToUKxfv15nXl3nEyGEmMp/3v+h5GFZbbnfBD+0XN+y0uvZJdkFrywvyD3keCn7JZ1p/nD7Ax55Hkj3Sseoh6MAAKnLUpH8QbJGuh4Pe8Dey17XKqrN0Pe3EPVZMoO0x2m4l3vP3MUwSrt27fjXYrEYXl5eaNu2LT/P19cXgCpIAIC1a9di/fr1uH37NgoKClBcXKwRcADAzJkz8fvvv2PVqlU4cOCAUYESAFy9ehUvvaT5oevWrRsOHjzIT8fGxiImJkajJkmhUKCwsBD5+flwcXHh85VfjzEdukNCQvhACQCkUikuX77MT/v4+MDHx8eo/QGA6dOn86/btWsHiUSCl19+ma9tIoSQWlWuvam6zXBGjeBNHbyJLn5uflazXXt7zWie4ziNeeo7JZRKJXbs2IHp06dj+fLl6NatG9zd3fH111/jzJkzGuvIyMhAYmIixGIxbty4gYEDBxpVFmMqQZVKJRYsWIDhw4drLauoJsaYuz50HQ+lUslPT5o0CVu2bDG4joSEBDRu3FjnMnXt3M2bNylYIoTUPlM1w1Wiz5LGNiy0GY6CJTOoTFOYNTlx4gS6d++OKVOm8POSkpK00o0fPx5t2rTBxIkTMWHCBISHh6N164rH8WjdujVOnz6tMa/8dGhoKBITE9GsWTOD6zp9+jTGjh2rMd2xY0cAgIODAwBVjVRlLVy4ELNmzTKYxt/fX++y8+fPA1DVWBFCSG0zdQdv9VhKOrdlRR28KVgiJtOsWTNs3rwZhw4dQlBQEH7++WfExMTwd5cBwPfff49Tp07h0qVLCAgIwIEDB/D666/jzJkzfJCiz/vvv4/u3btj6dKlGDZsGA4fPqzRBAcA8+bNw+DBgxEQEICRI0dCJBLh0qVLuHz5skZn8J07d6JTp0545plnsHXrVpw9exYbNmwAoGpKc3Z2xsGDB9GoUSM4OTnB09PTqGNQmWa4U6dO4fTp0+jTpw88PT0RExOD6dOnY8iQIXprngghREgulyM2NhZhYWGQSCTVX6Gphg540sFbXCrGnnV78PDhQ/Qa0gtN/JogIyYD1xKvQaxQdWlQP6xX7/YsoBnOAopAbMWkSZMwfPhwjBo1Cl26dEFmZqZGLdO1a9fwwQcfYPXq1QgIUD3/5/vvv0dWVhY+/fTTCtfftWtXrF+/HqtWrUKHDh1w+PBhfPLJJxppBgwYgD///BNHjhxB586d0bVrV3zzzTcIDAzUSLdgwQJs27YN7dq1w6ZNm7B161a+dsvOzg4rV67EDz/8AH9/fwwdOrS6h0YnR0dHbN++Hb1790br1q0xb948TJw4Eb/++muNbI8QYlvkcjlCQkLQr18/hISEQC6XV3ud5bs7FBUXVW09TzoruRa5QvKOBE99/BTut72Pk94ncfP5m7CbbgenElXXiJKSkrKy66hEUt/AY050N5wJVPZuOGJeHMdhz549VvnoEjqfCCFqUVFR6Nevn8Z0eHh4tdZ5tONRiC6U1aMopyrR9//6Vno9a0LWoFVCK6PSngg+ge7ruiM8PByPDj/CpQGX+GUZyIDXIS+E96/efulDd8MRQgghNiwsLAxSqRQymQz+/v4IDQ2t9jpDNodgUfdFUDxWIN8zH9989E2V1tMjsgdWjlkJ+yJ7BBYHoqtMc2iZkziJO53v4LHbYxxuehjvhr4LAJA8J0HjdY2xevpqZOdl47L3ZRzofEDXJmoV1SyZANUsmcagQYP4MZ3K++ijj/DRRx+ZZDtUs0QIsRVyuRxxcXH8eG2WtE71etKOpaHhFw01linmKTDcaThyinPQrF4z3PjfjRopQ0WoZolYnfXr16OgoEDnsvr165tsO/T7gBBiKyQSSbWb3mpqner1HLioXTPUrn074LrqtXDsOlOXwVQoWCIWo2HDhhUnIoQQYlV0BUPgyn64GjPGnbnR3XCEEEIIqTG6gqVvz3yL/JJ8AICIs/xQxPJLSAghhBCr5WCnPYbe8dvHoWCqgX/tRJbfyEXBEiGEEEJqTLMG2k9UUA9EKeJEeKPdG7VdpEqz/HCOEEIIIVbLzk471Fg/bD2c+znD3cEd3q7eZihV5VCwRAghhJAao+vZbn7ufvCSWM/DwqkZjli1yMhI1KtXr1a2FRERYZVjMxFCiFnpuNnNEh6OWxkULBFSzq1bt8BxHC5cuFCj24mOjgbHcTr/YmJianTbhBBSW3QGRlYWfVAzHCFm0r17d8hkMo15n376KaKiotCpUyczlYoQQkxMV2BkXRVL1hbbkdrUu3dvvPfee5g2bRokEgl8fX2xbt065OXl4c0334S7uzuaNm2KAwdUo7MqFApMmDABQUFBcHZ2RosWLfDdd9/x6yssLERISAjefvttfl5KSgo8PT3x448/GlWmyMhING7cGC4uLnjppZeQmZmplWbfvn0ICwuDk5MTgoODsWDBApSWlvLLOY7DmjVrMGjQIDg7OyMoKAg7d+7klwcFBQEAOnbsCI7j0Lt3b431L1u2DFKpFF5eXpg6dSpKSkqMKnt5Dg4O8PPz4/+8vLzwxx9/YPz48VYxSBshhBhDV80SNcMRm7Jp0yY0aNAAZ8+exXvvvYfJkydj5MiR6N69O+Li4jBgwAC88cYbyM/Ph1KpRKNGjbBjxw4kJCRg3rx5+Oijj7Bjxw4AgJOTE7Zu3YpNmzZh7969UCgUeOONN9CnTx9MnDixwrKcOXMG48ePx5QpU3DhwgX06dMHn3/+uUaaQ4cOYcyYMXj//feRkJCAH374AZGRkfjiiy800n366acYMWIELl68iDFjxmD06NG4evUqAODs2bMAVE/wlslk2L17N5/v2LFjSEpKwrFjx7Bp0yZERkYiMjKSXz5p0iS4ubkZ/EtNTdW5f3/88QcePnyIiIiICo8FIYRYDV1xkXXFSvQgXVOo7IN0z3U6h+K04lovp4OfAzqdM755p3fv3lAoFPzDbRUKBTw9PTF8+HBs3rwZAJCWlgapVIpTp06ha9euWuuYOnUq0tPT8dtvv/Hzvv76ayxduhSjR4/Gzp07cfnyZTRo0KDC8rz22muQy+V8TRYAvPrqqzh48CCysrIAAD179sSgQYMwd+5cPs2WLVswe/Zs3L9/H4CqZmnSpElYs2YNn6Zr164IDQ3F6tWrcevWLQQFBeH8+fPo0KEDnyYiIgLR0dFISkriR6R95ZVXIBKJsG3bNgBARkYGcnJyDO5HkyZNdN5K+/zzzwMA/vrrL7156UG6hBBr8yjqES71u6Qxr0N0B9TrVc88BRKwuQfpfvHFF9i/fz8uXLgABwcH/stRKDU1FVOnTsXRo0fh7OyM1157DcuWLYODg/booWpFRUWYNWsWfv31VxQUFCA8PByrV69Go0aNamxfitOKUXyv9oOlqmjXrh3/WiwWw8vLC23btuXn+fr6AlAFCQCwdu1arF+/Hrdv30ZBQQGKi4s1Ag4AmDlzJn7//XesWrUKBw4cMCpQAoCrV6/ipZde0pjXrVs3HDx4kJ+OjY1FTEyMRk2SQqFAYWEh8vPz4eLiwucrvx5jOnSHhIRoDN0vlUpx+fJlftrHxwc+Pj5G7Y/Q3bt3cejQIb4WjhBCbAV18K5FxcXFGDlyJLp164YNGzZoLVcoFHjhhRfg7e2Nf//9F5mZmRg3bhwYY1i1apXe9U6bNg379u3Dtm3b4OXlhZkzZ2Lw4MGIjY3V/fA/E3Dw0x+81aSqbNfe3l5jmuM4jXnqvjVKpRI7duzA9OnTsXz5cnTr1g3u7u74+uuvcebMGY11ZGRkIDExEWKxGDdu3MDAgQONKosxlaBKpRILFizA8OHDtZZVVBNjTD8hXcdDqVTy05MmTcKWLVsMriMhIQGNGzfWmLdx40Z4eXlhyJAhFZaBEEKsig00w1lNsLRgwQIA0OgfInT48GEkJCTgzp078Pf3BwAsX74cERER+OKLL3RWr2VnZ2PDhg34+eef8dxzzwFQNdkEBAQgKioKAwYMqJF9qUxTmDU5ceIEunfvjilTpvDzkpKStNKNHz8ebdq0wcSJEzFhwgSEh4ejdevWFa6/devWOH36tMa88tOhoaFITExEs2baw+uXzzd27FiN6Y4dOwIAXxOpUCgqLFN5CxcuxKxZswymUZ+faowxbNy4EWPHjtUKxgghxNrZQgdvqwmWKnLq1Cm0adNG44towIABKCoqQmxsLPr06aOVJzY2FiUlJejfvz8/z9/fH23atMHJkyf1BktFRUUoKiripyvqo1JXNGvWDJs3b8ahQ4cQFBSEn3/+GTExMfzdZQDw/fff49SpU7h06RICAgJw4MABvP766zhz5ozB5lIAeP/999G9e3csXboUw4YNw+HDhzWa4ABg3rx5GDx4MAICAjBy5EiIRCJcunQJly9f1ugMvnPnTnTq1AnPPPMMtm7dirNnz/I1lj4+PnB2dsbBgwfRqFEjODk5wdPT06hjUJVmuKNHjyIlJQUTJkyoVD5CCLEKOprccnNz4QnjrquWwMpaDfVLS0vj+8+oSSQSODg4IC0tTW8eBwcHSCQSjfm+vr568wDAkiVL4Onpyf8FBARUfwdswKRJkzB8+HCMGjUKXbp0QWZmpkYt07Vr1/DBBx9g9erV/DH7/vvvkZWVhU8//bTC9Xft2hXr16/HqlWr0KFDBxw+fBiffPKJRpoBAwbgzz//xJEjR9C5c2d07doV33zzDQIDAzXSLViwANu2bUO7du2wadMmbN26la/dsrOzw8qVK/HDDz/A398fQ4cOre6hMWjDhg3o3r07WrVqVaPbIYQQc3Br7wbmUtaNIgc5SCxJNGOJqoCZ0WeffcYAGPyLiYnRyLNx40bm6empta6JEyey/v37a823t7dnv/76q87tb926lTk4OGjNf+6559g777yjt9yFhYUsOzub/7tz5w4DwLKzs7XSFhQUsISEBFZQUKB3faR2AWB79uwxdzGqhM4nQog1yriRwQZLBrMe6MGe8nuKPXr0yNxFYowxlp2drff7W8iszXDvvvsuXn31VYNpmjRpYtS6/Pz8tDoSy+VylJSUaNU4CfMUFxdDLpdr1C5lZGSge/fuerfl6OgIR0dHo8pFCCGE1HXezbyxOWkz4uLiEBoaqtWiY+nM2gzXoEEDtGzZ0uCfsWPJdOvWDVeuXNF4fMThw4fh6OiIsLAwnXnCwsJgb2+PI0eO8PNkMhmuXLliMFgiNWPQoEF6B3JcvHixuYtHCCGkGiQSCcLDw60uUAKsqIN3amoqHj16hNTUVCgUCn5MnGbNmsHNzQ39+/dH69at8cYbb+Drr7/Go0ePMGvWLEycOJG/E+7evXsIDw/H5s2b8fTTT8PT0xMTJkzAzJkz4eXlhfr162PWrFlo27Ytf3ccqT3r169HQUGBzmX169c32XYYjcNKCCGkEqwmWJo3bx42bdrET6tv8z527Bh69+4NsViM/fv3Y8qUKejRo4fGoJRqJSUlSExMRH5+Pj/v22+/hZ2dHV555RV+UMrIyMgaG2OJ6NewYUNzF4EQQgjRQo87MYHKPu6EkKqi84kQQkzH2Med2MzQAZaOYlJiCnQeEUJI7aNgqYapR2QWNv0RUlXFxapnClIzMSGE1B6r6bNkrcRiMerVq8c/aNbFxcWoZ5ARUp5SqcSDBw/g4uICOzv66BJCSG2hK24t8PPzAwA+YCKkqkQiERo3bkwBNyGE1CIKlmoBx3GQSqXw8fFBSUmJuYtDrJiDgwNEImo9J4SQ2kTBUi0Si8XU14QQQgixMvQTlRBCCCHEAAqWCCGEEEIMoGCJEEIIIcQA6rNkAuqBAnNycsxcEkIIIYQYS/29XdGAvxQsmUBubi4AICAgwMwlIYQQQkhl5ebmwtPTU+9yejacCSiVSty/fx/u7u4mHf8mJycHAQEBuHPnjsFn1pDqo2NdO+g41w46zrWDjnPtqMnjzBhDbm4u/P39DQ7LQjVLJiASidCoUaMaW7+Hhwd9EGsJHevaQce5dtBxrh10nGtHTR1nQzVKatTBmxBCCCHEAAqWCCGEEEIMoGDJgjk6OuKzzz6Do6OjuYti8+hY1w46zrWDjnPtoONcOyzhOFMHb0IIIYQQA6hmiRBCCCHEAAqWCCGEEEIMoGCJEEIIIcQACpYIIYQQQgygYMmCrV69GkFBQXByckJYWBhOnDhh7iJZtfnz54PjOI0/Pz8/fjljDPPnz4e/vz+cnZ3Ru3dvxMfHm7HE1uGff/7Biy++CH9/f3Ach71792osN+a4FhUV4b333kODBg3g6uqKIUOG4O7du7W4F5avouMcERGhdX537dpVIw0d54otWbIEnTt3hru7O3x8fDBs2DAkJiZqpKFzuvqMOc6WdE5TsGShtm/fjmnTpuHjjz/G+fPn8eyzz2LQoEFITU01d9GsWkhICGQyGf93+fJlftnSpUvxzTff4P/+7/8QExMDPz8/9OvXj3/2H9EtLy8P7du3x//93//pXG7McZ02bRr27NmDbdu24d9//8Xjx48xePBgKBSK2toNi1fRcQaAgQMHapzff/31l8ZyOs4VO378OKZOnYrTp0/jyJEjKC0tRf/+/ZGXl8enoXO6+ow5zoAFndOMWKSnn36aTZo0SWNey5Yt2Zw5c8xUIuv32Wefsfbt2+tcplQqmZ+fH/vyyy/5eYWFhczT05OtXbu2lkpo/QCwPXv28NPGHNesrCxmb2/Ptm3bxqe5d+8eE4lE7ODBg7VWdmtS/jgzxti4cePY0KFD9eah41w1GRkZDAA7fvw4Y4zO6ZpS/jgzZlnnNNUsWaDi4mLExsaif//+GvP79++PkydPmqlUtuHGjRvw9/dHUFAQXn31VSQnJwMAUlJSkJaWpnHMHR0d0atXLzrm1WDMcY2NjUVJSYlGGn9/f7Rp04aOfSVFR0fDx8cHzZs3x8SJE5GRkcEvo+NcNdnZ2QCA+vXrA6BzuqaUP85qlnJOU7BkgR4+fAiFQgFfX1+N+b6+vkhLSzNTqaxfly5dsHnzZhw6dAg//vgj0tLS0L17d2RmZvLHlY65aRlzXNPS0uDg4ACJRKI3DanYoEGDsHXrVhw9ehTLly9HTEwM+vbti6KiIgB0nKuCMYYZM2bgmWeeQZs2bQDQOV0TdB1nwLLOaTuTro2YFMdxGtOMMa15xHiDBg3iX7dt2xbdunVD06ZNsWnTJr7TIB3zmlGV40rHvnJGjRrFv27Tpg06deqEwMBA7N+/H8OHD9ebj46zfu+++y4uXbqEf//9V2sZndOmo+84W9I5TTVLFqhBgwYQi8VakXFGRobWrxlSda6urmjbti1u3LjB3xVHx9y0jDmufn5+KC4uhlwu15uGVJ5UKkVgYCBu3LgBgI5zZb333nv4448/cOzYMTRq1IifT+e0aek7zrqY85ymYMkCOTg4ICwsDEeOHNGYf+TIEXTv3t1MpbI9RUVFuHr1KqRSKYKCguDn56dxzIuLi3H8+HE65tVgzHENCwuDvb29RhqZTIYrV67Qsa+GzMxM3LlzB1KpFAAdZ2MxxvDuu+9i9+7dOHr0KIKCgjSW0zltGhUdZ13Mek6btLs4MZlt27Yxe3t7tmHDBpaQkMCmTZvGXF1d2a1bt8xdNKs1c+ZMFh0dzZKTk9np06fZ4MGDmbu7O39Mv/zyS+bp6cl2797NLl++zEaPHs2kUinLyckxc8ktW25uLjt//jw7f/48A8C++eYbdv78eXb79m3GmHHHddKkSaxRo0YsKiqKxcXFsb59+7L27duz0tJSc+2WxTF0nHNzc9nMmTPZyZMnWUpKCjt27Bjr1q0ba9iwIR3nSpo8eTLz9PRk0dHRTCaT8X/5+fl8Gjqnq6+i42xp5zQFSxbs+++/Z4GBgczBwYGFhoZq3FJJKm/UqFFMKpUye3t75u/vz4YPH87i4+P55Uqlkn322WfMz8+POTo6sp49e7LLly+bscTW4dixYwyA1t+4ceMYY8Yd14KCAvbuu++y+vXrM2dnZzZ48GCWmppqhr2xXIaOc35+Puvfvz/z9vZm9vb2rHHjxmzcuHFax5COc8V0HWMAbOPGjXwaOqerr6LjbGnnNPek0IQQQgghRAfqs0QIIYQQYgAFS4QQQgghBlCwRAghhBBiAAVLhBBCCCEGULBECCGEEGIABUuEEEIIIQZQsEQIIYQQYgAFS4QQQgghBlCwRAipEyIiIsBxHDiOg729PXx9fdGvXz/89NNPUCqVRq8nMjIS9erVq7mCEkIsDgVLhJA6Y+DAgZDJZLh16xYOHDiAPn364H//+x8GDx6M0tJScxePEGKhKFgihNQZjo6O8PPzQ8OGDREaGoqPPvoIv//+Ow4cOIDIyEgAwDfffIO2bdvC1dUVAQEBmDJlCh4/fgwAiI6Oxptvvons7Gy+lmr+/PkAgC1btqBTp05wd3eHn58fXnvtNWRkZJhpTwkhpkTBEiGkTuvbty/at2+P3bt3AwBEIhFWrlyJK1euYNOmTTh69Chmz54NAOjevTtWrFgBDw8PyGQyyGQyzJo1CwBQXFyMRYsW4eLFi9i7dy9SUlIQERFhrt0ihJiQnbkLQAgh5tayZUtcunQJADBt2jR+flBQEBYtWoTJkydj9erVcHBwgKenJziOg5+fn8Y6xo8fz78ODg7GypUr8fTTT+Px48dwc3Orlf0ghNQMqlkihNR5jDFwHAcAOHbsGPr164eGDRvC3d0dY8eORWZmJvLy8gyu4/z58xg6dCgCAwPh7u6O3r17AwBSU1NruviEkBpGwRIhpM67evUqgoKCcPv2bTz//PNo06YNdu3ahdjYWHz//fcAgJKSEr358/Ly0L9/f7i5uWHLli2IiYnBnj17AKia5wgh1o2a4QghddrRo0dx+fJlTJ8+HefOnUNpaSmWL18OkUj1W3LHjh0a6R0cHKBQKDTmXbt2DQ8fPsSXX36JgIAAAMC5c+dqZwcIITWOapYIIXVGUVER0tLScO/ePcTFxWHx4sUYOnQoBg8ejLFjx6Jp06YoLS3FqlWrkJycjJ9//hlr167VWEeTJk3w+PFj/P3333j48CHy8/PRuHFjODg48Pn++OMPLFq0yEx7SQgxNQqWCCF1xsGDByGVStGkSRMMHDgQx44dw8qVK/H7779DLBajQ4cO+Oabb/DVV1+hTZs22Lp1K5YsWaKxju7/344d1EAQAlEU7BWBCSSMESwghRBEcEck66BPm8weqhT8vr3080TvPVprUUqJOWeUUmLvHeecqLXGGCPWWi9dCfza59573x4BAPCvfJYAABJiCQAgIZYAABJiCQAgIZYAABJiCQAgIZYAABJiCQAgIZYAABJiCQAgIZYAABJiCQAg8QWi02JHdBILQAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "filenames": { "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter6_1_2.png" } }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.preprocessing import PolynomialFeatures\n", "from sklearn.linear_model import LinearRegression\n", "\n", "steps=250\n", "\n", "distance=0\n", "x=0\n", "distance_list=[]\n", "steps_list=[]\n", "while x" ] }, "metadata": { "filenames": { "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter6_24_1.png" } }, "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", "metadata": {}, "source": [ "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": 5, "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", "metadata": {}, "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.\n", "\n", "### 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", "metadata": {}, "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", "metadata": {}, "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$.\n", "\n", "\n", "### 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", "metadata": {}, "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", "metadata": {}, "source": [ "Here the MSE for a specific node is defined as" ] }, { "cell_type": "markdown", "metadata": {}, "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", "metadata": {}, "source": [ "with" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\overline{y}_{\\mathrm{node}}=\\frac{1}{m_\\mathrm{node}}\\sum_{i\\in \\mathrm{node}}y_i,\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "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.\n", "\n", "\n", "\n", "### Computing the Gini index\n", "\n", "The 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", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
Day Outlook Temperature Humidity Wind Ride
1 Sunny Hot High Weak 0
2 Sunny Hot High Strong 1
3 Overcast Hot High Weak 1
4 Rain Mild High Weak 1
5 Rain Cool Normal Weak 1
6 Rain Cool Normal Strong 0
7 Overcast Cool Normal Strong 1
8 Sunny Mild High Weak 0
9 Sunny Cool Normal Weak 1
10 Rain Mild Normal Weak 1
11 Sunny Mild Normal Strong 1
12 Overcast Mild High Strong 1
13 Overcast Hot Normal Weak 1
14 Rain Mild High Strong 0
\n", "\n", "### Simple Python Code to read in Data and perform Classification" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "editable": true }, "outputs": [ { "ename": "FileNotFoundError", "evalue": "[Errno 2] No such file or directory: 'DataFiles/rideclass.csv'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", "Input \u001b[0;32mIn [6]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 34\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21msave_fig\u001b[39m(fig_id):\n\u001b[1;32m 35\u001b[0m plt\u001b[38;5;241m.\u001b[39msavefig(image_path(fig_id) \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m.png\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28mformat\u001b[39m\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpng\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m---> 37\u001b[0m infile \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mdata_path\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mrideclass.csv\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mr\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 39\u001b[0m \u001b[38;5;66;03m# Read the experimental data with Pandas\u001b[39;00m\n\u001b[1;32m 40\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mIPython\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mdisplay\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m display\n", "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'DataFiles/rideclass.csv'" ] } ], "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", "metadata": {}, "source": [ "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": null, "metadata": { "collapsed": false, "editable": true }, "outputs": [], "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", "metadata": {}, "source": [ "## Entropy and the ID3 algorithm\n", "\n", "The ID3 algorithm learns decision trees by constructing\n", "them in a top down way, beginning with the question **which attribute should be tested at the root of the tree**?\n", "\n", "1. Each instance attribute is evaluated using a statistical test to determine how well it alone classifies the training examples.\n", "\n", "2. The best attribute is selected and used as the test at the root node of the tree.\n", "\n", "3. A descendant of the root node is then created for each possible value of this attribute.\n", "\n", "4. Training examples are sorted to the appropriate descendant node.\n", "\n", "5. The entire process is then repeated using the training examples associated with each descendant node to select the best attribute to test at that point in the tree.\n", "\n", "6. This forms a greedy search for an acceptable decision tree, in which the algorithm never backtracks to reconsider earlier choices. \n", "\n", "The ID3 algorithm selects which attribute to test at each node in the\n", "tree.\n", "\n", "We would like to select the attribute that is most useful for classifying\n", "examples.\n", "\n", "What is a good quantitative measure of the worth of an attribute?\n", "\n", "Information gain measures how well a given attribute separates the\n", "training examples according to their target classification.\n", "\n", "The ID3 algorithm uses this information gain measure to select among the candidate\n", "attributes at each step while growing the tree.\n", "\n", "\n", "### Cancer Data again now with Decision Trees and other Methods" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "editable": true }, "outputs": [], "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", "\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", "# Logistic Regression\n", "logreg = LogisticRegression(solver='lbfgs')\n", "logreg.fit(X_train, y_train)\n", "print(\"Test set accuracy with Logistic Regression: {:.2f}\".format(logreg.score(X_test,y_test)))\n", "# Support vector machine\n", "svm = SVC(gamma='auto', C=100)\n", "svm.fit(X_train, y_train)\n", "print(\"Test set accuracy with SVM: {:.2f}\".format(svm.score(X_test,y_test)))\n", "# Decision Trees\n", "deep_tree_clf = DecisionTreeClassifier(max_depth=None)\n", "deep_tree_clf.fit(X_train, y_train)\n", "print(\"Test set accuracy with Decision Trees: {:.2f}\".format(deep_tree_clf.score(X_test,y_test)))\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", "# 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)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Another example, the moons again" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "editable": true }, "outputs": [], "source": [ "from __future__ import division, print_function, unicode_literals\n", "\n", "# Common imports\n", "import numpy as np\n", "import os\n", "\n", "# to make this notebook's output stable across runs\n", "np.random.seed(42)\n", "\n", "# To plot pretty figures\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", "\n", "from sklearn.svm import SVC\n", "from sklearn import datasets\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.datasets import make_moons\n", "from sklearn.tree import export_graphviz\n", "\n", "Xm, ym = make_moons(n_samples=100, noise=0.25, random_state=53)\n", "\n", "deep_tree_clf1 = DecisionTreeClassifier(random_state=42)\n", "deep_tree_clf2 = DecisionTreeClassifier(min_samples_leaf=4, random_state=42)\n", "deep_tree_clf1.fit(Xm, ym)\n", "deep_tree_clf2.fit(Xm, ym)\n", "\n", "\n", "def plot_decision_boundary(clf, X, y, axes=[0, 7.5, 0, 3], iris=True, legend=False, plot_training=True):\n", " x1s = np.linspace(axes[0], axes[1], 100)\n", " x2s = np.linspace(axes[2], axes[3], 100)\n", " x1, x2 = np.meshgrid(x1s, x2s)\n", " X_new = np.c_[x1.ravel(), x2.ravel()]\n", " y_pred = clf.predict(X_new).reshape(x1.shape)\n", " custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0'])\n", " plt.contourf(x1, x2, y_pred, alpha=0.3, cmap=custom_cmap)\n", " if not iris:\n", " custom_cmap2 = ListedColormap(['#7d7d58','#4c4c7f','#507d50'])\n", " plt.contour(x1, x2, y_pred, cmap=custom_cmap2, alpha=0.8)\n", " if plot_training:\n", " plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\", label=\"Iris-Setosa\")\n", " plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\", label=\"Iris-Versicolor\")\n", " plt.plot(X[:, 0][y==2], X[:, 1][y==2], \"g^\", label=\"Iris-Virginica\")\n", " plt.axis(axes)\n", " if iris:\n", " plt.xlabel(\"Petal length\", fontsize=14)\n", " plt.ylabel(\"Petal width\", fontsize=14)\n", " else:\n", " plt.xlabel(r\"$x_1$\", fontsize=18)\n", " plt.ylabel(r\"$x_2$\", fontsize=18, rotation=0)\n", " if legend:\n", " plt.legend(loc=\"lower right\", fontsize=14)\n", "plt.figure(figsize=(11, 4))\n", "plt.subplot(121)\n", "plot_decision_boundary(deep_tree_clf1, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False)\n", "plt.title(\"No restrictions\", fontsize=16)\n", "plt.subplot(122)\n", "plot_decision_boundary(deep_tree_clf2, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False)\n", "plt.title(\"min_samples_leaf = {}\".format(deep_tree_clf2.min_samples_leaf), fontsize=14)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "editable": true }, "outputs": [], "source": [ "np.random.seed(6)\n", "Xs = np.random.rand(100, 2) - 0.5\n", "ys = (Xs[:, 0] > 0).astype(np.float32) * 2\n", "\n", "angle = np.pi/4\n", "rotation_matrix = np.array([[np.cos(angle), -np.sin(angle)], [np.sin(angle), np.cos(angle)]])\n", "Xsr = Xs.dot(rotation_matrix)\n", "\n", "tree_clf_s = DecisionTreeClassifier(random_state=42)\n", "tree_clf_s.fit(Xs, ys)\n", "tree_clf_sr = DecisionTreeClassifier(random_state=42)\n", "tree_clf_sr.fit(Xsr, ys)\n", "\n", "plt.figure(figsize=(11, 4))\n", "plt.subplot(121)\n", "plot_decision_boundary(tree_clf_s, Xs, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False)\n", "plt.subplot(122)\n", "plot_decision_boundary(tree_clf_sr, Xsr, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False)\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "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": null, "metadata": { "collapsed": false, "editable": true }, "outputs": [], "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": "code", "execution_count": null, "metadata": { "collapsed": false, "editable": true }, "outputs": [], "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": null, "metadata": { "collapsed": false, "editable": true }, "outputs": [], "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", "metadata": {}, "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)\n", "\n", "### 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." ] } ], "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.10" } }, "nbformat": 4, "nbformat_minor": 4 }