{ "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: -6.548110376991839\n", "first power: 0.2232822462117919\n", "second power: -0.0007480407244119591\n" ] }, { "data": { "image/png": "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nn/efIW7W7cT49OIiIhItZTUtFSHDpmzb4P5Kne7dt6NR0REpIVTUtNSzZoFNhskJ8PEid6ORkREpMVTUtMS7dx5YhbuefPAqv9MIiIitdHTsiWaNg3sdhgzBi6+2NvRiIiItApKalqazz+HDz4Af39zOgQRERGpEyU1LYndfuItp8mToXdv78YjIiLSiiipaUleew22b4f27eGRR7wdjYiISKuipKalOH4cHn7YXJ4xAzp29G48IiIirYySmpbi6achKwt69IC77vJ2NCIiIq2OkpqWICPDTGrA7BwcFOTdeERERFohJTUtwSOPQFERDB0K48Z5OxoREZFWSUmNt/30Eyxdai4//TRYLF4NR0REpLVqNUlNUlISFovF7ecBxwzWrdkDD0BFhVlDM3iwt6MRERFptfy9HUB9zJ49m9tvv935OSwszIvReMBXX5kD7fn5mZNWioiISIO1qqQmPDycrl27ejsMzzAMczoEgNtvh1NP9W48IiIirVyraX4CmDt3Lh07duTMM8/k8ccfp7S01NshNdzKlfDf/0JoKMyc6e1oREREWr1WU1Pz17/+leTkZKKiovjmm2948MEHSU1N5dVXX63xmJKSEkpKSpyfbTZbc4Rau7IyeOghc/m++8BXap9ERES8yGIYhuGti8+aNYtHH330pPts2bKFs88+u8r6lStXcvXVV3P48GE61jD6bk3nz8vLIyIiomFBe8KiReYAe507w549EB7uvVhERERaOJvNRmRkZK3Pb68mNYcPH+bw4cMn3ScpKYng4OAq6zMyMoiLi2Pz5s2ce+651R5bXU1NfHy8d5Oa/Hzo1QtycmDhQo0eLCIiUou6JjVebX6Kjo4mOjq6Qcdu27YNgJiYmBr3CQoKIqiljc47b56Z0PTqBX/+s7ejERER8Rmtok/Npk2b2Lx5M8OGDSMyMpItW7Zwzz33MHr0aBISErwdXt1lZ8Mzz5jLTzwBAQHejUdERMSHtIqkJigoiBUrVvDoo49SUlJCYmIit99+O9Mcr0S3FrNnQ0EBDBoEV1/t7WhERER8ilf71DS3urbJNYldu6BfP7DbYd06uOii5r2+iIhIK1XX53erGqemVXvoITOhufxyJTQiIiJNQElNc9i82Rxsz2qFOXO8HY2IiIhPUlLT1AwDHnzQXL7hBujf37vxiIiI+CglNU3ts8/MPjSB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fzamTp1qhIaGGvv37/d2aK3WfffdZ6xbt87Yt2+fsXnzZmPUqFFGeHi4s0znzJljREZGGm+//baxY8cO47rrrjNiYmIMm83m5chbtvz8fGPbtm3Gtm3bDMCYP3++sW3bNuPAgQOGYdStXCdNmmTExcUZn332mfHdd98Zl1xyiXHGGWcY5eXl3rqtFudk5Zyfn2/cd999xsaNG43U1FRj7dq1xuDBg41u3bqpnOvpzjvvNCIjI41169YZWVlZzp/CwkLnPvpON15t5dzSvtNKajzghRdeMBITE43AwEAjOTnZ7VU3qb/x48cbMTExRkBAgBEbG2uMGzfO+Omnn5zbKyoqjJkzZxpdu3Y1goKCjAsvvNDYsWOHFyNuHdauXWsAVX5uvPFGwzDqVq5FRUXGlClTjA4dOhghISHGqFGjjLS0NC/cTct1snIuLCw0UlJSjE6dOhkBAQFGQkKCceONN1YpQ5Vz7aorY8D417/+5dxH3+nGq62cW9p32vJ70CIiIiKtmvrUiIiIiE9QUiMiIiI+QUmNiIiI+AQlNSIiIuITlNSIiIiIT1BSIyIiIj5BSY2IiIj4BCU1IiIi4hOU1IiI1+Xk5HDHHXeQkJBAUFAQXbt25dJLL2XTpk2AOdPyO++8490gRaTF8/d2ACIiV111FWVlZbz22mv06NGD3377jc8//5wjR454OzQRaUVUUyMiXnXs2DE2bNjA3LlzGTZsGImJiQwaNIgHH3yQyy+/nKSkJACuvPJKLBaL8zPA+++/z8CBAwkODqZHjx48+uijlJeXO7dbLBZefPFFRo4cSUhICN27d+ett95ybi8tLWXKlCnExMQQHBxMUlISTz75ZHPduoh4mJIaEfGqsLAwwsLCeOeddygpKamyfcuWLQD861//Iisry/n5008/ZeLEidx99938/PPPvPzyyyxdupTHH3/c7fgZM2Zw1VVXsX37diZOnMh1113Hzp07AXj++ed57733ePPNN/n1119544033JImEWldNKGliHjdypUruf322ykqKiI5OZmLLrqICRMmMGDAAMCscVm1ahVjx451HnPhhRcycuRIHnzwQee6N954g2nTppGZmek8btKkSbz44ovOfc477zySk5NZtGgRd999Nz/99BOfffYZFouleW5WRJqMampExOuuuuoqMjMzee+997j00ktZt24dycnJLF26tMZjtm7dyuzZs501PWFhYdx+++1kZWVRWFjo3G/w4MFuxw0ePNhZU3PTTTfx/fffc+qpp3L33XezevXqJrk/EWkeSmpEpEUIDg5mxIgRPPLII2zcuJGbbrqJmTNn1rh/RUUFjz76KN9//73zZ8eOHezevZvg4OCTXstRK5OcnExqaip///vfKSoq4tprr+Xqq6/26H2JSPNRUiMiLVK/fv0oKCgAICAgALvd7rY9OTmZX3/9lV69elX5sVpP/NO2efNmt+M2b95Mnz59nJ8jIiIYP348r7zyCitWrGDlypV660qkldIr3SLiVbm5uVxzzTXccsstDBgwgPDwcL799lueeuopxowZA0BSUhKff/45Q4cOJSgoiKioKB555BFGjRpFfHw811xzDVarlR9++IEdO3bw2GOPOc//1ltvcfbZZ3P++eezbNkyvvnmG/75z38C8OyzzxITE8OZZ56J1WrlrbfeomvXrrRv394bRSEijWWIiHhRcXGx8cADDxjJyclGZGSk0a5dO+PUU081Hn74YaOwsNAwDMN47733jF69ehn+/v5GYmKi89hPPvnEGDJkiBESEmJEREQYgwYNMhYvXuzcDhgvvPCCMWLECCMoKMhITEw0/vOf/zi3L1682DjzzDON0NBQIyIiwhg+fLjx3XffNdu9i4hn6e0nEfFZ1b01JSK+S31qRERExCcoqRERERGfoI7CIuKz1Lou0raopkZERER8gpIaERER8QlKakRERMQnKKkRERERn6CkRkRERHyCkhoRERHxCUpqRERExCcoqRERERGfoKRGREREfML/BzwXrCb0ojAvAAAAAElFTkSuQmCC\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": "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559aUKGnT+vSpQsLFixAVVW2b9/O3LlzeeWVVwgICODZZ58F4KabbuKmm24iLy+PDRs2MHXqVO644w7atGlD7969y+zfaDRiMBgwm81l1tk6RdvOV4i6RIIhIWpZSkoKTz75JCEhITz00ENA8Qdx+/bt2bZtG6+//nq52w8bNozPP/+cvXv3uvQB7khUVBT/93//x6+//sq6deuc5hs0aBDTpk1j/vz5TJgwQUtfvHgx2dnZDBo0qErHd5chQ4bg7e3NwYMHyzQh6VXm+lbGVVddxZgxY/jss89Yv349vXv35vrrr+f1118nLCyM6Ohop9v279+fadOmsXDhQh5++GEtfcGCBS4f//rrr+c///kPx48fL9Pc5oyiKHTr1o23336buXPnkpiYWCaPn58f/fv3JzQ0lF9++YUtW7Y4DIaCgoLo2bMn3377LdOnTycgIAAo7hw+f/58WrZsade5XIi6QoIhIWrQzp07tX4cJ0+e5M8//9QmXVyyZIldbctHH33EsGHDGDJkCGPHjqVFixacOXOG3bt3k5iYyKJFiwB45ZVXWLZsGf369eO5556jS5cuZGRksHz5ciZOnEjHjh3LlCMzM5OBAwdyxx130LFjR4KDg9m0aRPLly93WlMCMHjwYIYMGcIzzzxDVlYWffv2Zfv27bz88sv06NGDu+++2/0XrRLatGnDK6+8wvPPP8+hQ4cYOnQoRqORtLQ0/v77b4KCgpgyZQrg+vWtrFdffZWFCxfy4osvsmrVKh5//HEWL15Mv379mDBhAl27dsVqtZKSksKKFSt44okntFFjffv25YknniArK4v4+HjWr1/PvHnzADAYKu7V0LdvXx588EHuvfdeNm/eTL9+/QgKCsJsNrN27Vq6dOnCww8/zI8//sjMmTMZPnw4MTExqKrKt99+S0ZGBoMHDwbgpZde4tixYwwaNIiWLVuSkZHBO++8g4+PD/3793dahqlTpzJ48GAGDhzIk08+ia+vLzNnzmTnzp189dVXNTYPlBCVUoudt4VoMGwjZ2w/vr6+avPmzdX+/furr7/+unry5EmH223btk299dZb1ebNm6s+Pj5qRESEevXVV6sffvihXb6jR4+q48aNUyMiIlQfHx81MjJSvfXWW9W0tDRVVcuO+snNzVXHjx+vdu3aVW3cuLEaEBCgdujQQX355ZfV7Oxsbb+l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HhcMFRQUcNttt2G1Wpk5c2a5eXv16mXX16Vv377ExcXx3nvv8e677zrcZurUqUyZMsWtZa4P2rVrx7x58/jll1+Ijo7m888/Z9OmTdroLID333+f9evXs337dlq1asWyZcu488472bhxoxaEOPPPf/6TPn36MG3aNIYPH86KFSvsmsgAXnrpJa6//npatWrFqFGjMBgMbN++nR07dth1tl60aBGXXXYZV155JV988QV///03s2fPBoqbugICAli+fDktW7bE39+fkJAQl65BZZrJ1q9fz4YNGxg4cCAhISFs2rSJCRMmcOONN5bbrCuEM67UntbF0WRSMyQ8QZ0ZTeaKgoICbr31VpKTk1m5cmWFHaJKMxgMXH755ezfv99pnkmTJpGZman9HD169GKLXS+MHz+eESNGMHr0aHr27El6erpdLdGePXt46qmnmDlzJq1atQKKg6OMjAxefPHFCvffq1cvZs2axXvvvUf37t1ZsWIFL7zwgl2eIUOG8OOPP7Jy5Uouv/xyevXqxX//+19at25tl2/KlCksWLCArl278tlnn/HFF19otVPe3t68++67fPTRR0RGRnLTTTdd7KVxyM/Pj4ULFzJgwAA6d+7MSy+9xAMPPMBXX31VLccTDVhdr3mp6+UTgjo0mkxPURS70WRQEgjt37+f1atX06xZs0rvV1VVrrjiCrp06cKnn37q0jZVGU0mao+j146nkNeTKM+p7FM0n15cM3nDJTfw/e3fA7Dt2m1YVloAuDLzSrwb140K/y9bfknk8UhyfXIZmu9a30Eh3MkjR5OdO3eOAwcOaMvJycls3bqVJk2aEBkZyciRI0lMTOTHH3+kqKhIezhgkyZNtCaYMWPG0KJFC6ZOnQoU1xD06tWL9u3bk5WVxbvvvsvWrVt5//33a/4EhRDiIrjUgboOtUjJaDLhSepMMLR582YGDhyoLU+cOBGAe+65h8mTJ/P998XfgkoP5V69erU2i3BKSgoGQ0nLX0ZGBg8++CCpqamEhITQo0cP/vjjD6644orqPRlRxrBhw7Q5jUp77rnneO6552q4REJ4LmczUNcptj5DEgwJD1BngqEBAwaU20HQlda8NWvW2C2//fbbvP322xdbNOEGs2bNIicnx+G6Jk2auO04dbDVVwi3cPbarqujyWwkGBKeoM4EQ6J+a9GiRW0XQQhRg1x5UKsQdYUEQ0II4WH0AUZhgf2DimuKxWIhISGB+Ph4jEZj2Qy6ZrJDhw5x6NAh4uPjUbYrpK1O49ixY7Rs2RKAY8eOERYWRnp6Oi1btiQgIICcnJyS9Ox0ujzWheYdXJ8BXojKkGBICCE8gKMO1BaLhY0bNhJLLFDcTzIsqPpnN7dYLMTGxmI2mzGZTCQlJZUJiPTlbde+HapV5YqmV/DG6TcA8MILM2bt7wwy7NJKpy/+ZDG3pd7mOPAS4iJ51DxDQgghSmqAEhISyMsvmTHflWfwuUNCQgJmc3HQYjabSUxMLJOnyFo8y7uiKlq/ppDTrk1w6kjL/JYOjyOEO0jNkBBCeABHHajj4+PZ67sX8ouXu/foXiNliY+Px2QyYTabiYyMJC4urkweg3fxd20DBpRGCmqhWlxrdbp4/Xde37GvyT6g5FmTqqpiDDXywgsv8Oqrr5KRmcG/Cv5FM7UZBoOBTl071cj5iYZHgiEhhPBQRqORK664guy12QCENgmtseMmJSWRmJhIXFxcuX2GANSJKiiQvTkbfixO23P9Hpb3WF52O+DHMz/Co8V/3/+/+2l2uhl4wyWfXMKcm+YwKnaUm89INHTSTCbqrLlz5xIaGlojxxo7dqxHzlotGiZ9B2pvr9r5Tms0Ghk0aJDTPjy+3iXPI7QNr/cq8tLSCg2FZbZxxDYqzaAayC7I5tOtrj09QIjKkJoh0aAcPnyY6OhotmzZUmYCT3das2aN3SSien///TeXX355tR1b1E9OZ6DWTzNUhx7U2iqkFQUUAPBQ4UOoBpUOhR209V1bdMWvvV+F+2nk3wgoCajyi/KrobSioZNgSIhq0KdPH62Dqc2LL77IqlWruOyyy2qpVKK+cBr01J1YiADfAC0YGv366DLrn736WZrdXPEzJjdN20T20WytNkwmVhXVQZrJGqgBAwbw2GOP8fjjj2M0GgkPD+fjjz8mOzube++9l+DgYNq2bcuyZcsAKCoq4r777iM6OpqAgAA6dOjAO++8o+0vNzeX2NhYHnzwQS0tOTmZkJAQPvnkE5fKNHfuXKKioggMDOTmm28mPT29TJ4ffviB+Ph4/P39iYmJYcqUKRQW2s+z8sEHHzBs2DACAgKIjo5m0aJF2vro6GgAevTogaIo2qNcbKZPn47JZCIsLIxHH32UgoICl8pemq+vLxEREdpPWFgY33//PePGjatT396F53AaBNTR2CCwY+BFrbexvV9sNUMuPaNNiEqSmqEG7LPPPuPpp5/m77//ZuHChTz88MMsXbqUm2++meeee463336bu+++m5SUFHx8fGjZsiVff/01TZs25a+//uLBBx/EZDJx66234u/vzxdffEHPnj257rrruOGGG7j77rsZOHAgDzzwQIVl2bhxI+PGjeP1119nxIgRLF++nJdfftkuzy+//MJdd93Fu+++y1VXXcXBgwe14Euf98UXX+Q///kP77zzDp9//jm33347l156KZ06deLvv//miiuuYNWqVcTGxmoP+YXi59yZTCZWr17NgQMHGD16NN27d9fKP378eObPn1/ueezatYuoqKgy6d9//z2nT59m7NixFV4LISpkhZzkHFDBmmMtSa9DcXbbN9oS2DGQglNlv1CEDgglqFOQazu68JXdoBb/ITVDojooqryyypWVlUVISAiZmZk0btzYbl1ubi7JyclER0fj7++vpW++bDP5qTXbru0b4ctlm11vfhkwYABFRUXaw1OLiooICQlhxIgRzJs3D4DU1FRMJhPr16+nV69eZfbx6KOPkpaWxjfffKOlvfnmm0ybNo3bb7+dRYsWsWPHDpo2bVphee644w4sFotWEwVw2223sXz5cjIyMgDo168fw4YNY9KkSVqe+fPn8/TTT3PixAmg+Fvk+PHj+eCDD7Q8vXr1Ii4ujpkzZzrtMzR27FjWrFnDwYMH8fIq7uR56623YjAYWLBgAQAnT54kKyur3PNo06YN3t5lv2Ncd911APz8889Ot3X2ehIC4HjWcVq+3RKfQh8WzFlAk+Nln+nXr6CfNqS9vki4PIGzm89SpBRxzcvXcFXUVfxx7x+1XSzhAcr7/C5NaoaqQX5qPvnH634nv65du2p/e3l5ERYWRpcuXbS08PBwoDgIAPjwww+ZNWsWR44cIScnh/z8/DKdkJ944gm+++473nvvPZYtW+ZSIASwe/dubr75Zru03r17s3x5ydDbhIQENm3axL///W8traioiNzcXM6fP09gYKC2Xen9uDIZXWxsrBYIAZhMJnbs2KEtN2/enObNK/84gGPHjvHLL7/w9ddfV3pbIWxszUMdjndwGAj5mnxRDHWoashdLsR20kwmqpMEQ9XAN8K34kx14Jg+Pj52y4qi2KXZ2uqtVitff/01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\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 }