{ "cells": [ { "cell_type": "code", "execution_count": 189, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from sklearn.datasets import load_boston, load_iris\n", "from sklearn.externals.six import StringIO \n", "import pydot\n", "\n", "from sklearn.tree import DecisionTreeRegressor, DecisionTreeClassifier, export_graphviz\n", "from sklearn.cross_validation import train_test_split, cross_val_score\n", "%matplotlib inline\n", "matplotlib.style.use('ggplot')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this notebook I'm reviewing heuristics for ranking features in decision trees and random forests, and their implementation in sklearn. In the text I sometimes use variable as a synonym of feature.\n", "Feature selection is a step embedded in the process of growing decision trees. An attractive side effect is that once model is built, we can retrive the relative importance of each feature in the decision making procees. This not only increases the general interpretability of the model, but can help both in exploratory data analysis as well as in feature engineering piepelines. A nice example of how tree based models can be used to improve feature engineering can be found in the winner recap notes of the Criteo Kaggle competition (http://machine-learning-notes.blogspot.nl/2014/12/kaggle-criteo-winner-method-recap.html). \n", "\n", "Tree based models, and ensambles of trees, are very powerful and well understood methods for supervised learning. Ensamles such as Random Forests are roboust and stable methods for both classification and regression, while decision trees allow for conceptually simple and easilly interpretable models. For an overview of tree models in classification and regression in sklean, there is an excellent talk from \n", "Gilles Louppe at PyData Paris 2015 (http://www.slideshare.net/glouppe/slides-46767187). A well regarded paper from the same author that provides a thorough analysis of the mathematics of feature selection in tree ensamles is \"Understanding variable importances in forests of randomized trees\" (Louppe et al. 2014). With this notebook I'm attempting to fill some gaps and bridge literature review to implementation (sklearn)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I'll be using the Boston dataset (http://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_boston.html) for regression and the Iris dataset (http://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_iris.html) for classification examples." ] }, { "cell_type": "code", "execution_count": 190, "metadata": { "collapsed": true }, "outputs": [], "source": [ "boston = load_boston()\n", "iris = load_iris()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Tree models for regression and classification" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tree based models are non parametric methods that recursively partition the feature space into rectangular disjoint subsets, and fit a model in each of them. Assuming the space is partitioned in *M* regions, a *regression tree* would predict a response $Y$ given inputs $X = \\{x_1, x_2, .. x_n\\}$ as $$f(x_i) = \\sum\\limits_{m=1}^M c_mI(x_i\\in R_m)$$ \n", "where $I$ is the indicator function and $c_m$ a constant that models $Y$ in region $R_m$. This model can be represented by a tree that has $R_1..R_m$ as its terminal nodes. In both the regression and classification cases, the algorithm decides the splitting variables and split points, and tree topology. Essentially, at each split point, the algorithm performs a feature selection step using an heuristic to estimate information gain; this is represented by a numerical value known as the *Gini importance* of a feature (not to be confused with the Gini index!).\n", "We can exploit this very same process to rank features (features engineering) and to explain their imporance with regards to the models we want to learn from data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The main difference between the regression and classification case is the criterion employed to evaluate the quality of a split when growing a tree. Regardless of this aspect, in sklearn, the importance of a variable is calculated as the Gini Importance or \"mean decreased impurity\" (http://stackoverflow.com/questions/15810339/how-are-feature-importances-in-randomforestclassifier-determined). See\n", "\"Classification and regression trees\" (Breiman, Friedman, 1984)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Gini importance (MDI) of a variable" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Gini importance, or *mean decreased impurity* is defined as the total decrease in node impurity $i(s, n)$, at split $s$ for some impurity function $i(n)$ . That is\n", "$$ \\Delta i(s, n) = i(n) - p_L i(t_L) - p_R i(t_R) $$\n", "Where $p_L$ and $p_R$ are the proportion of $N_L$ and $N_R$ samples in the left and right splits, over the total number of samples $N_n$ for node $n$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Under the hood](https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_tree.pyx#L3340), sklearn calculates MDI as follows:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```python\n", "cdef class Tree:\n", " [...]\n", " cpdef compute_feature_importances(self, normalize=True):\n", " [...]\n", " while node != end_node:\n", " if node.left_child != _TREE_LEAF:\n", " # ... and node.right_child != _TREE_LEAF:\n", " left = &nodes[node.left_child]\n", " right = &nodes[node.right_child]\n", "\n", " importance_data[node.feature] += (\n", " node.weighted_n_node_samples * node.impurity -\n", " left.weighted_n_node_samples * left.impurity -\n", " right.weighted_n_node_samples * right.impurity)\n", " node += 1\n", "\n", " importances /= nodes[0].weighted_n_node_samples\n", " [...]\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This method looks at a node and its left, right children. A list of split variables (*node.feature* objects) and the associated importance score is kept in *importance_data*. The node impurity is weighted by the probability of reaching that node, approximated by the proportion of samples (*weighted_n_node_samples*) reaching that node." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```python\n", "node.weighted_n_node_samples * node.impurity -\n", "left.weighted_n_node_samples * left.impurity -\n", "right.weighted_n_node_samples * right.impurity\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The *impurity* criteria are defined by implementations of the *Criterion* interface. For classification trees, impurity criteria are *Entropy* - cross entropy - and *Gini*, the Gini index. For regression trees the impurity criteria is *MSE* (mean squared error)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Regression trees" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As said, *sklearn.tree.DecisionTreeRegressor* uses mean squared error (MSE) to determine the quality of a split; that is, an estimate $\\hat{c}_m$ for $c_m$ is calcuated so to minimize the sum of squares $\\sum (y_i - \\hat{f}(x_i))^2$ with $y_i$ being the target variable and $\\hat{f}(x_i)$ its predicted value. The best (*proof!*) estimator is obtained by taking $\\hat{f}({x_i}) = avg(y_i | x_i \\in R_m)$. By bias variance decompostion of the squared error , we have $Var[\\hat{f}(x_i)] = E[(\\hat{f}(x_i) - E[\\hat{f}(x_i)])^2]$. So, for a split node, the mean squared error can then be calculated as the sum of variance of the left and right split: $MSE = Var_{left} + Var_{right}$" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2oAAAGlCAYAAACLCgVDAAAAAXNSR0IArs4c6QAAQABJREFUeAHs\nnQncTVX3x5eoTA1CKlSUIdJEaRDSIJIMaTBkCG8RGZtUKF6VocmUSFSmBhmazIpKiSIyJZLKG0kD\nEp3//q1/+3Tufe5wnse997nDb38+1z1nnz1+z92Ps85ae608jknCRAIkQAIkQAIkQAIkQAIkQAIk\nkDQEjkiakXAgJEACJEACJEACJEACJEACJEACSoCCGn8IJEACJEACJEACJEACJEACJJBkBCioJdkN\n4XBIgARIgARIgARIgARIgARIIB8RkAAJkAAJ5B6B/v37y5o1a3JvAOyZBBJIIF++fDJ48GApWbJk\nAntlVyRAAiSQmgSoUUvN+8ZRkwAJpAmB0aNHy8aNG9NkNpwGCYQncPDgQZk8ebKsWrUqfCFeIQES\nIAEScAlQo+ai4AEJkAAJ5A6Bdu3aSZcuXXKnc/ZKAgki8Mcff0jhwoUT1Bu7IQESIIHUJ0CNWurf\nQ86ABEiABEiABEiABEiABEggzQhQUEuzG8rpkAAJkAAJkAAJkAAJkAAJpD4BCmqpfw85AxIgARIg\nARIgARIgARIggTQjQEEtzW4op0MCJEACJEACJEACJEACJJD6BCiopf495AxIgARIgARIgARIgARI\ngATSjAAFtTS7oZwOCZAACZAACZAACZAACZBA6hOge/7Uv4ecAQmQAAnEhcCcOXNk165dAW0fffTR\nUq5cOTnzzDOlQIECAdd++uknmTdvnptXqVIlOffcc93z4INffvlF3nnnHTe7bNmyUr16dfc8tw/2\n7dsnM2bMkO+//17Kly8vDRo0iDik999/X5YuXSoFCxaUK664Qs4555yI5cF2zJgxcv/994cs9+OP\nP8q6deukdu3aIa9/88038u677+p9qF+/vpx44okhyzGTBEiABEggNQlQo5aa942jJgESIIG4Ezjv\nvPNk0aJF0rx5c+ndu7f8+uuvsmHDBhkwYIAcc8wx0qZNG/n999/dcRQvXlxq1qwpTzzxhNZp0aKF\nOI7jXg8+GDlypJZD+zt37hQIdsmS3nzzTbn44osFwlq3bt2iCml33XWXTJgwQe6++26pW7eu3HLL\nLTJ8+PCI02nfvr08/fTTWcpA4O3Vq5dAcJ0+fXqW68h4/PHHBfH3rrzyShWaIcx98MEHIcsykwRI\n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\nuT2klsj3XHKfq4KckFYAF2BC45OgnfQOndKkTmcbvpMfEF0mGimpI7bYYouuakQsRSdxPSbJ9bbb\nbluaG62JfleNU/rdhV4FIiACIiACIiACw0CA8Py52MMT4fqjhefPi6f12ELwx0ceeSSus8460ULM\nT+u1BtG5hYh3RpZ0N1pep2gJiBt3a0ZXtOh1pfUtsbf3C3/+LJpgtITcpXXzwrp2Z555ZrQExtHS\nEERLOhwPOuigeOCBB0YLM+/dwN+Mz2j5uaI9tEfq9yOWLy7eeeed/TTpu66livA59N1wkg2GTSeZ\n5kYbbRR32mmnuGzZMtfLdH/LEFjOsmireNEiWxa6ZkmqJ1RtUmdCg/++WG63aDkQo+VSc/21hPLR\nciBOqLp8+fJoYfnjvffeG3/88cdoSbujuSNHC8M/oR5f6vS7bpzDoN9dk1aBCIiACIiACIjA2BNo\nxYrayiuvHA477LDw+OOPe6LpYTBwGSMJsPtxWbOH0vDRRx+VTu+rr77yXFx8JmHvXF1I8rp2JO6+\n8cYbPdfauuuu613bA3nYcMMNPTH2rrvuGuDP35w5c2YtF1uac1s+h1UnSQS9wQYbVGJ86qmnfOWK\n1V1SDbz66qvh4IMP9uTTZsB7+yZ1yi5CO1bESUzNahqrs9dff70nB2ds22+/vedNZLVv8803DwsW\nLPBurr76atfJCy64wJOHp77r9LvJOKXfiaY+RUAEREAEREAEholAq6I+kuuJnFSjKJ9++ml45513\nAkEjygRjaq+99vK8UuTv4q/OSKOfunbfffedX85W0orLpuApuJ5JqgmMok7itnvddde5Gyy/t912\n2y0ccsghnq7i7bffdiBN6pSRu+uuu9ytdrXVVitOJ5dKjDEEt8jXX389nHDCCUUdXHKPOeaYcNtt\ntwVbiSvK6/R7suMsLqADERABERABERABEWgpgSmvqL322mvFKpi5wBVvyJcsWeL7nkhoe9xxx/n0\nMVbefPPN8P7774cddtgh7L///j2x8Eaet+V///23758huTTXeu+997zNAQcc4MZM6gCD5MUXXwzf\nfPON983DZ1uEOVx00UXhvvvuC5deemnXsH755Rc/x/6iU0891fekXXPNNRPm19XICpq0mz9/vq+W\nXXLJJWGbbbYJq6++enjooYd8NYO9Q6Mo/ejkH3/8EdDVpUuXuuFy1FFHVa4qsg/MXAudKatB5lYX\n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\ngAiIgAiIgAgMFQEzCibIZKI+5h3Yg3G0N+N5kR9TbisRHpnOjJBohlQ0AyKa61/89ttvoyW2jbba\n5lHfzNiLy5cv93ZEfLQH5miGTLTgD9Fc+TziHtHtzOXR61hwkmhGnbc1+NHCp0fLi9U1hkEV9BP1\nsfOa55xzTlfUR8vd5WMnKp49wHrURcs319k02kO117v11lv9XNN2ll8uWuj4eOyxxzpnouLdcsst\nXf1TYIbxSER9zCfXSyffeOONOGfOnGhuf9Fy+kVbYYzz5s2LlkssmpHcUyeJ6mhh7P1emBtfNFfS\naHn94p577hlt9cgvPdM6yUWbRn20lyXFb4XfS/5nRpePv0kdr2j/WIqDaC610VbSo61KxrfeeivC\n/Mgjj4zmzpiqTfik3nnnnRftxYrr4sKFC6OtNE+o00S/+xknnbdVvydMXF9EQAREQAREQAREwAj8\nDwq5ZfnXX3/5fhWip+277775qUbHuEuxKlQmuFTlK22dwQTK2lDG23benNOWT/YApbfueRvys/F2\nfv3118+LB3788MMPB3sI9VWXPFfUVC70ww8/+KoMiYGr8puxr4dgDEmatuM2m0Hsq5j2sNqV8Dj1\nx/VJRG4pDFJR7Serfri2nnTSSbV1J1uBACjcf3Ke9StVOom7Iyu1yS0PTugYq5B1wh7ElMcLHS27\nbzOlk4x14403djdOe+lRN/SBnmdVHGYkyyYHHVzY+9jr/4H84gQVYW8aQUjKpKl+l7UtK2urfpeN\nVWUiIAIiIAIiIALjTWCgro+grHo4y4006vYKYMC5XHgATg/BVQFDbHUkbzbtxxiagxKCfKSEv1V9\n5kYa9Zq2w4AloEOdpBDpdfWG6XyVTmLwJyONOcGpiZFG3WSkcZz0k+Nchlkn83lUHefh9gkUkoKF\nVLVJ53jp0stIo05T/U791X2Oon7XzVnnRUAEREAEREAEhpPAwA214cTQ36gxFldZZZWwYMGCYEmO\nffVgjz326K+TFtVmv5q5R3pwkd9++62n0dGiIWsoJQQwmAhgw946XoqQHqKXAVnSfGSLpN8je2s1\nMREQAREQAREYaQIy1CZxewmMkAdHmEQXrWpie/oCf4jtXWvV2DSY5gQIsCPpJiD97maiEhEQAREQ\nAREQgfYT+De8WvvHqRGKgAiIgAiIgAiIgAiIgAiIwNgQkKE2NrdaExUBERABERABERABERABERgW\nAjLUhuVOaZwiIAIiIAIiIAIiIAIiIAJjQ0CG2tjcak1UBERABERABERABERABERgWAh0BRMhXDkh\nyslbJRGBpgQIsz6dQv/kr+NPIgIzTWC69Xum56PriYAIiIAIiIAItJ9AV8JrhrxkyRJPWtv+4WuE\nbSCAcT9//vwJycwHPa5ly5aFpUuXDrpb9ScCtQRmQr9rB6EKIiACIiACIiACY0eg1FAbOwqasAiI\ngAiIgAiIgAiIgAiIgAi0iID2qLXoZmgoIiACIiACIiACIiACIiACIgABGWrSAxEQAREQAREQAREQ\nAREQARFoGQEZai27IRqOCIiACIiACIiACIiACIiACPwfCVDihqFJa9wAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To keep the diagram tractable, restrict the tree to at most 5 leaf nodes\n", "reg = DecisionTreeRegressor(max_leaf_nodes=5)\n", "reg.fit(boston.data, boston.target)\n", "dot_data = StringIO()\n", "export_graphviz(reg, out_file=\"/tmp/tree.dot\", \n", " feature_names=boston.feature_names) \n", "# pydot.graph_from_dot_data is broken in my env\n", "!dot -Tpng /tmp/tree.dot -o /tmp/tree.png\n", "from IPython.display import Image\n", "Image(filename='/tmp/tree.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the example above, with 5 terminal nodes, we identify three split variables: RM, DIS and LSTAT. For each non terminal node, the diagram shows the split variables and split value, the MSE and the number of datapoints (samples) contained in the resulting partitioned region. Terminal nodes, on the other hand, report the value for the response we want to predict.\n", "We can retrieve the Gini importance of each feature in the fitted model with the *feature\\_importances_* property. " ] }, { "cell_type": "code", "execution_count": 179, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n589hYGCAEydOIDk5GQ4ODtXeoYsQQgj/lAZ5fn4+xGIx97rsBusaGhrIzc1FTEwMvv32WzRv3hyB\ngYFo164d98SMqrxP2KvrC+JDqiPEdclOSUDNngVTSkdXF0Y8r6cQt1td1qA69aOG0iAXi8UoKCjg\nXjPGoKFR2htjYGAAU1NTrkH29vZISEioNsjpfuT1837H9aGO5v+/r3VNFUmlvNYX6narqxpUR301\nqgt+pX3kEokEd+7cAQDExsYqPL26efPmKCws5J5x9+jRI7Rq1apWjSOEEPLvKT0id3R0RFRUFPz9\n/QEAfn5+uHz5MgoLC+Hl5YUJEyZg48aNYIxBIpGgS5cuamk0IYSQ/1Ea5CKRCD4+PgrvlT/Et7a2\nrvbRSYQQQlSLLggihBCBoyAnhBCBoyAnhBCBoyAnhBCBoyAnhBCBoyAnhBCBoyAnhBCBoyAnhBCB\noyAnhBCBoyAnhBCBoyAnhBCBoyAnhBCBoyAnhBCBoyAnhBCBoyAnhBCBoyAnhBCBoyAnhBCBoyAn\nhBCBoyAnhBCBoyAnhBCBoyAnhBCBoyAnhBCBoyAnhBCB01I2US6XIzg4GElJSdDW1oavry9MTU25\n6SdOnEBYWBgaNWoEAPDx8YGZmZlqW0wIIUSB0iCPiIiATCZDQEAAnjx5gpCQEPz444/c9KdPn2Ly\n5Mlo27atyhtKCCGkckqDPCYmBvb29gAACwsLJCQkKExPSEjAn3/+iZycHDg4OODTTz9VXUsJIYRU\nSmmQ5+fnQywWc681NDQgl8uhoVHate7q6opPPvkEenp6WL16NW7fvg0HBwfVtpgQQogCpUEuFotR\nUFDAvWaMcSEOAAMGDOCC3sHBAU+fPq02yN+nD11d/e4fUh0hrkt2SgKKajG/jq4ujHheTyFut7qs\nQXXqRw2lQS6RSBAZGQlnZ2fExsbC3Nycm5afn49Zs2Zh7dq10NXVxf379+Hp6VltwbS0tFo10MzM\nrNafeR8fUh2hroumVFqr+YukUl7rC3W71VUNqqO+GtUFv9Igd3R0RFRUFPz9/QEAfn5+uHz5MgoL\nC+Hl5QVvb28sXrwY2trasLGx4frTCSGEqI/SIBeJRPDx8VF4r/w3g5ubG9zc3FTTMkIIITVCFwQR\nQojAUZATQojAUZATQojAUZATQojAUZATQojAUZATQojAUZATQojAUZATQojAUZATQojAUZATQojA\nUZATQojAUZATQojAUZATQojAUZATQojAUZATQojAUZATQojAUZATQojAUZATQojAUZATQojAUZAT\nQojAUZDy8QUJAAAgAElEQVQTQojAUZATQojAUZATQojAUZATQojAaSmbKJfLERwcjKSkJGhra8PX\n1xempqYV5tu+fTsMDAzg7e2tsoYSQgipnNIj8oiICMhkMgQEBMDb2xshISEV5jl37hySk5NV1kBC\nCCHKKQ3ymJgY2NvbAwAsLCyQkJBQYXpcXBy8vLxU10JCCCFKKQ3y/Px8iMXi/82soQG5XA4AyM7O\nxpEjR/Dtt9+qtoWEEEKUUtpHLhaLUVBQwL1mjEFDozT7r1+/jry8PCxfvhw5OTmQSqVo2bIl3N3d\nlRY0MzOrdSPf5zPv40OqI8R1yU5JQFEt5tfR1YURz+spxO1WlzWoTv2ooTTIJRIJIiMj4ezsjNjY\nWJibm3PT+vfvj/79+wMAwsPDkZaWVm2IA0BaWlqtGmhmZlbrz7yPD6mOUNdFUyqt1fxFUimv9YW6\n3eqqBtVRX43qgl9pkDs6OiIqKgr+/v4AAD8/P1y+fBmFhYXUL04IIfWE0iAXiUTw8fFReK+ybwYP\nDw9eG0UIIaTm6IIgQggROApyQggROApyQggROApyQggROApyQggROApyQggROApyQggROApyQggR\nOApyQggROApyQggROApyQggROApyQggROApyQggROApyQggROApyQggROApyQggROApyQggROApy\nQggROApyQggROApyQggROApyQggROApyQggROApyQggROApyQggROC1lE+VyOYKDg5GUlARtbW34\n+vrC1NSUm379+nUcO3YMIpEIbm5uGDBggMobTAghRJHSI/KIiAjIZDIEBATA29sbISEh3DS5XI4D\nBw5gwYIFCAgIwNmzZ/HmzRuVN5gQQogipUfkMTExsLe3BwBYWFggISGBm6ahoYF169ZBQ0MDOTk5\nkMvl0NJSujhCCCEqoDR58/PzIRaLudcaGhqQy+XQ0NDgXt+4cQO//PILHBwcoKOjo9rWEkIIqUBp\nkIvFYhQUFHCvGWNciJdxcnKCo6MjNm/ejEuXLsHDw0NpQTMzs1o38n0+8z4+pDpCXJfslAQU1WJ+\nHV1dGPG8nkLcbnVZg+rUjxpKg1wikSAyMhLOzs6IjY2Fubk5Ny0/Px8rVqyAv78/tLS0oKenVyHk\nK5OWllarBpqZmdX6M+/jQ6oj1HXRlEprNX+RVMprfaFut7qqQXXUV6O64Fca5I6OjoiKioK/vz8A\nwM/PD5cvX0ZhYSG8vLzQs2dPLFy4EJqammjdujV69uxZq8YRQgj595QGuUgkgo+Pj8J75b8ZvLy8\n4OXlpZqWEUIIqRG6IIgQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQ\nQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSO\ngpwQQgSOgpwQQgRO6TM7CSGEvB+t11lgmS8qvJ+dkgBNqbTSz4hMmkNm2KT2tWr9CUIIIdVimS9Q\nFDi7wvtFSj6jM2cF8B5BTl0rhBAicBTkhBAicBTkhBAicEr7yOVyOYKDg5GUlARtbW34+vrC1NSU\nm3758mX8/fff0NDQgLm5OcaPHw+RSKTyRhNCCPkfpUfkERERkMlkCAgIgLe3N0JCQrhpRUVFOHTo\nEBYuXIilS5ciPz8fkZGRKm8wIYQQRUqDPCYmBvb29gAACwsLJCQkcNO0tbWxbNky6OjoAABKSkq4\n/xNCCFEfpUGen58PsVj8v5k1NCCXywEAIpEIjRo1AgD8/fffkEqlsLW1VWFTCSGEVEZpH7lYLEZB\nQQH3mjEGDY3/Zb9cLsfevXuRnp6OmTNn1qigmZlZrRv5Pp95Hx9SHSGuS3ZKgtIxtu/S0dWFEc/r\nKcTtVpc1qE7Vars/A++/TysNcolEgsjISDg7OyM2Nhbm5uYK03fs2AEdHR388MMPNT7JmZaWVqsG\nmpmZ1foz7+NDqiPUdanqareqFEmlvNYX6narqxpUR7na7s9A1ft0dV8uSoPc0dERUVFR8Pf3BwD4\n+fnh8uXLKCwsRPv27REWFobOnTtjyZIlAID+/fvD0dGx1o0nhBDy/pQGuUgkgo+Pj8J75b8ZDh06\npJpWEUIIqTG6IIgQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSO\ngpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQ\nQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgROqyYzyeVyBAcHIykpCdra2vD1\n9YWpqanCPFKpFAEBAfDz84OZmZlKGksIIaSiGh2RR0REQCaTISAgAN7e3ggJCVGYHh8fj4ULFyIj\nI0MljSSEEFK1GgV5TEwM7O3tAQAWFhZISEhQmC6TyfDDDz/QkTghhNSBGnWt5OfnQywWc681NDQg\nl8uhoVH6PSCRSFTTOkIIIdWqUZCLxWIUFBRwrxljXIjX1vsctavrSP9DqiPEdclOSUBRLebX0dWF\nEc/rKcTtVpc1qE7Vars/A++/T9coyCUSCSIjI+Hs7IzY2FiYm5vXulCZtLS0Ws1vZmZW68+8jw+p\njlDXRVMqrdX8RVIpr/WFut3qqgbVUa62+zNQ9T5d3ZdLjYLc0dERUVFR8Pf3BwD4+fnh8uXLKCws\nhJeXV60bSwghhD81CnKRSAQfHx+F9yr7hli4cCE/rSKEEFJjdEEQIYQIHAU5IYQIHAU5IYQIXI36\nyAkhtaP1Ogss80Wl07JTEiod0SAyaQ6ZYRNVN418gCjICVEBlvkCRYGzK51W1dhinTkrAApy8h6o\na4UQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQ\nQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgSOgpwQQgRO\n6TM75XI5goODkZSUBG1tbfj6+sLU1JSbfuvWLfz+++/Q1NREr1690Lt3b5U3mBBCiCKlR+QRERGQ\nyWQICAiAt7c3QkJCuGkymQwhISHw9/fHokWLcP78ebx+/VrlDSaEEKJIaZDHxMTA3t4eAGBhYYGE\nhARuWmpqKkxNTSEWi6GlpQVLS0s8evRIta0lhBBSgdIgz8/Ph1gs/t/MGhqQy+UAgIKCAoVp+vr6\nyM/PV1EzCSGEVEVpH7lYLEZBQQH3mjEGDQ2NSqcVFBSgQYMG1RY0MzOrdSPf5zPv40OqI8h1MTMD\net7ib3nv1QSe1udDWheq874LUts+oPSIXCKR4M6dOwCA2NhYmJubc9PMzMyQnp6ON2/eQCaT4dGj\nR+jYsaNqW0sIIaQCEWOMVTWRMcaNWgEAPz8/JCQkoLCwEF5eXoiMjMSRI0fAGIOnpyf69u2rtoYT\nQggppTTICSGE1H90QRAhhAgcBTkhhAgcBTkhhAgcBTkh5P+84uJiFBcX13Uz3pvSceTqdvjwYYhE\nIrx7/lUkEmHYsGF11Cp+JCcnQ0tLCy1atKjrpryX7OxsGBkZVXj/4cOH6Ny5M291Fi9eXOW0hQsX\n8lIjISEB7dq1q/D+zZs34ejoyEsNdSsuLsbjx4+Rl5cHY2NjWFhYcNd8CM2TJ09w9uxZZGZmwsTE\nBH369OF9aHNiYiIOHjyIxo0bw8XFBevXrwcAfP3113B3d+etTlX7Gt/qVZCfPn0aYrEYrq6uMDY2\nBlA6BFIkEvFW4/DhwxXeK1s+n18WUVFR2Lp1K4KCghAaGorjx4/DwMAAvXv35vXmYhkZGfj1118x\nY8YMxMbGYt26ddDT08OUKVN43fmXLVuGr7/+GjY2NgBKb6h25MgRXLlyBRs2bOCtjp6eHtLT0+Hs\n7Izu3btDV1e3whf7v7Vnzx7uS2Hp0qXw9/cHAPz999+8BvmbN29w5MgRfPXVV0hJScGWLVugra0N\nPz8/Xi9uSUxMxIYNG9C2bVsYGhri6tWrSE1NxcyZM/HRRx/xVkcdX+Z3797F4cOH8cUXX6BZs2Z4\n/vw5du/ejWHDhqFr16681ACAnTt3YsSIEXjz5g1WrVqFFStWwNDQEMuWLeM1yMvva6pUr4J8+/bt\nuHv3Lq5cuYLExEQ4OTmhR48e0NfX562GoaGhwheDVCrFsWPHYGJiwmuQHz58GD///DO0tLRw7Ngx\nzJ8/HyYmJli0aBGvQb5r1y54eXlBS0sLISEhmDJlCj766CNs2LBB6dFtbc2bNw/r169HTEwMPDw8\nEBQUBBMTEwQGBvJWAwBmz56NvLw8XLt2DQcOHEDjxo3h5ubGfYHwreyWE6qwY8cOWFpaAgB2796N\nTz75BObm5ti9ezd++ukn3urs27cPP/zwg8KXQ3JyMkJCQjBv3jze6qjjy/zYsWOYO3cuGjZsCKD0\nwsMOHTpg7dq1vAa5trY2bG1tAQCnTp3ith2fWaNO9SrItbS00K1bN3Tr1g0FBQW4efMmNmzYAD09\nPXz//fe81Ch/0dLjx4+xfft29OvXD5999hkvyy+jpaUFIyMjpKenK3Sp8P3nbmFhIbp3747c3Fy8\nevWK2zn5Popt0qQJFixYgFWrVuH333/HmDFjMGDAAF5rlDEwMEDfvn3Rt29fvHz5Env37sWWLVuw\nbds2ldRTlZycHAwYMAD5+flISkqCu7s7RCIRCgsLea1TVFRU4Qi/VatWKCkp4bWOur7My0K8jKGh\nIe/7c/mDOW1tbe7/fH+xP378GN99912l9bdv385bnXoV5OUlJCQgJiYGmZmZXDjxRSaT4cCBA4iK\nisLUqVPRtm1bXpcPlP6gSkpKcPv2bdjZ2QEoDd2ioiJe65TthPfv34e1tTWA0hAvfx8cPhQXF+O/\n//0v8vLyMH78eBw/fhxmZmbc3TH5lpqaiitXriAyMhItWrSAj48Pb8uWy+WQyWRgjFX4P590dXUB\nAI8ePYKlpSUXHlKplNc6VR0c8L0+6vgyLykpgUwmg5bW/6JJJpPx/qWUnJyMDRs2gDGGlJQUro88\nJSWF1zqWlpb/97pWnjx5gitXriA6OhoWFhZwc3ODj48Pr33kCQkJ2Lp1K+zt7bF8+XKFHYZPH3/8\nMaZPnw6ZTIYFCxYgKSkJmzZtwieffMJrnVatWmH9+vVISEiAr68vcnJycPDgQVhZWfFaZ968ebCz\ns8PSpUuhqakJGxsbrF+/HtHR0RgzZgxvdY4ePYobN27A0NAQbm5uGDJkCPT09HhbPgBkZmZi2rRp\n3Ovy/+dT48aNsX//fty7dw+ff/45CgoKcPLkSbRu3ZrXOllZWTh//nyFo9asrCxe66jjy9zV1RVb\nt27F2LFj0bBhQ7x58wa7d++Gq6srbzUAYPr06dzAij59+nDvq+s2I0VFRdDR0eFtefXqEv0RI0bA\nzMwMXbp0qRCw3t7evNQYNWoUxGKxwpOOgNIj6ICAAF5qlMnPz4e2tja0tbWRnZ2N7Oxs3s9gy+Vy\n3L17F4aGhmjfvj2ePXuG6OhoDBgwgNdunKioqAp/GZU9XGTcuHG81RkxYgSaN28OAwMDhfdV8fNR\ntaKiIoSFhaFx48ZwcnJCbGwsrly5glGjRvH65fTbb79VebDzxRdf8Fbnhx9+gJ2dHUaNGgVNTU1k\nZGRg/fr16NSpE69f5ufOncPp06eRl5cHfX199O/fn/cDIHV59/cmPT0dZ8+exaVLlxAcHMxbnXoV\n5OHh4VVO8/Dw4KWGj48PfvjhBxgZGSkcwfzyyy+YM2cOLzWA0nUp/8ulq6uLtm3bonnz5rzVqAxj\nDJGRkThz5gyvJ9SA0i+mmzdv4uXLl2jatCkcHR0V7knPh7S0NERGRqJBgwawsbEBYww5OTk4ceIE\nZsyYwUsNmUyGS5cuwdPTE+vXr8fr168hEonw3XffVfiCF6qkpCScPn260v7Z96WuL/MPDWMMd+7c\nwZkzZ/D48WMMHToUvXr1qnQE0PuqV10rbm5uvJ/UeJeenh42b96MIUOGKIwe4bvfMjU1VSHICwsL\n8fvvv6N///7w9PTktRYA5OXlITQ0FOfPn0fz5s15f37q8+fPsWrVKnTt2hXNmzdHUlISjh49ih9/\n/JHXoXQHDx6ElpYWsrOzUVRUhKZNm2Lbtm3o378/bzX27t3L/WxevXoFPz8/3L9/H7///jsmTZrE\nW52qugX5PtFVRi6X4/r16zhz5gxycnJ43wfeDfH8/HxcvHgR0dHRvNUo66t+l0gkUlkXmCr99ddf\nuHjxIlq3bo2BAwdCLpfzPrACqGdBXtUPSiQSYdOmTbzUMDExwbRp07B27Vo8ffoU48aNU8mFE19+\n+WWF94qKirBo0SJegzw+Ph5nzpxBTEwMnJ2d0aRJE8yfP5+35ZcJCQnBtGnTFPp33dzcEBISwutf\nMhkZGQgMDIRMJsPs2bOhpaWFhQsX8joe+tmzZ9wJKC0tLZiZmcHMzAyhoaG81QBKxyonJibi+vXr\n3IU6PXr04P0BCdnZ2Th//jwuXbqEjh07ori4mNex/e9KTk7GmTNncO3aNTg6OvL65de3b99KD+b4\nPE+mTsePH4erqys8PT1hbm6OEydOqKROvQryzZs3V/o+30fpjRs3xoIFC/Drr79i8eLFvP3JXh0d\nHR3eT676+/tj8ODBWL16NbS1tfHzzz/zuvwyBQUFFU7StWvXDm/fvuW1Ttk4Xi0tLTDG4O/vX2E4\n2r9VfjTHqFGjKtTmy7Vr13Ds2DF4eXmhQ4cOyMjIwNq1azF8+HBeLzyaOnUqBgwYgBUrVkAsFqts\nHyg72pfJZPDw8EBaWhp8fX15rfH48WOVHLHWlc2bN+PGjRvYvXs3pFIppFIp3r59W6OnqdVGvQry\nt2/fIjQ0FA0bNoS7uzs0NDTw7Nkz7Ny5k/cTXVpaWhg/fjzCwsKwYMEClXfpAKXjivnuwlmyZAnO\nnz+PGTNmwMnJifcxymWq2j6qvKDG0NCQ9xAvU/Y82rKrX1XxvNlTp05h0aJFCic2PTw8sHLlSl6D\n3M/PDxcuXMDSpUvh4eGhsnuGbNq0CQMGDMCgQYPQqFEj3Lhxg/ca0dHRH1SQa2tro2fPnujZsyee\nP3+OCxcu4Mcff0S7du0wc+ZM3urUqyBfu3Yt2rdvj8TERLx69QqNGjXixqvy5d2z+L169UKrVq1w\n8OBB3moAFfv6ZDIZnj59iq+//prXOh06dECHDh1QWFiIK1eu4NGjR5g7dy7c3d15PdPfpk0bnD59\nWmGZZ86c4X0MflXje/nsI+3bty/WrFmDMWPGwNTUFC9evMDevXt5HxmhqalZYXSKWCyGpqYmr3Vc\nXFzg4uKCjIwMhIaGIiMjA+vWrcPHH3/M69WQGzduRHh4OBYuXIhWrVohLy+P91tovHnzBvfu3av0\nfktl12MIyZIlS7huvBYtWmD06NEYOXIkIiMjea1Tr4K8sLAQ3t7eYIzh+++/h4mJCVauXAlDQ0Pe\nalR2T4gOHTrw3q9cNja1bCfX0dGBmZkZ76M8yujp6XH3cUlKSsKFCxd4Xf6oUaOwbds2nDt3Ds2b\nN0dmZiaaN2+OyZMn81qnqvG9fIaFq6sr9PX1sX//frx8+RImJiZwc3PD8+fPeasBVN1mvv+Kkclk\nuHXrFho2bIiRI0di+PDhuHz5Mv7++29eg/y///0vpk+fjv/85z+Ijo7GhQsXMHnyZDg5OeGrr77i\npcbr169x5cqVSqcJMcgro6WlBScnJ36XyevS/qWyAfIikQg6OjqYPXs2r4Pm1cnKygo5OTm4ffs2\ncnNzYWJiopI7H5a/CVj5O0fy3SVx/fp12Nvbo3379mCMQSaToUmTJrh+/TqvNxni+0Kmqjg4OMDB\nwQFxcXE4ffo09u7dy/svV3JycqWjMPi+enDjxo3cSJ+UlBQ0bdoUe/bs4XWkDwDk5uYCKN3PbG1t\nYWtri9zcXFy6dIm3Gi1btsTEiRN5W15dK/9XZXl8j8KpV0FeXsOGDQUb4kDpJfPBwcFwcnKCoaEh\n4uPjcejQIUyaNIm7kRIfym4CxhjDyZMnMWjQIN7/3AUqDqeUy+X4+++/oaOjw2uQq0NxcTGuXLmC\nM2fOQFtbGwUFBdi8eTPv+1v5vy7K4/vqQXWM9AGAFy9eYP/+/bwu812VjSCTyWS4ceMG71d3qoOR\nkVGlI3H4/v2sV0GekJDAXcSSkpLC/V+IV/UdOXIEixcvVugWGjJkCIKCgrBgwQLe6pQPhWvXril0\nR/Cp/HDK9PR0bN68GQ4ODvjmm29UUk+VJk+eDFdXV0yZMgVmZmb4+eefVXLQoK6/LtQx0gcovaiN\n76GT7yq7pTBQeouBc+fOISwsDK1btxZkkDdo0IDX+/VXpV4F+apVq3Dv3j1YW1tDU1MTmZmZSElJ\nUdmNmVSJMVahb9/IyEiw42HLnD59GidPnsQ333zDa/+rOg0YMAD//PMPMjIy4OnpqZYRS+qiypE+\njRs35u0Ka2UePnyI06dP4+nTp9DQ0EBAQABMTExUXlcVunTpopY69SrIw8PDkZSUhJ49e3Jn+0+d\nOoXc3FzBPSFIXXekU5dXr15hy5YtMDAwwPLly1UWFuowdOhQDB06FA8ePMCFCxcQHx+PvXv34uOP\nP4a5uXldN6/W1DHSB4BK7hL6rtmzZ6Nly5bw8vKCtbU1AgMDBRviADB48GBERESge/fuyM/Px5Ej\nR6Cjo4NPP/2U1/vt1Kt7rcydOxfLli1TCEGZTIb58+fzfs9jVZs4cSLc3NwqvH/58mVs2bKFtzrl\n76eSkpLC9Yvy3R31zTffQFtbu0J3gVAvnS7vzZs3+OeffxAaGopVq1bVdXNq7cGDB1U+IlEdf9bz\nKTg4GDExMbCxsYGnpyfvD8dQt3379uH58+eYPn06tmzZAj09PbRo0QKJiYm8jviqV0fkenp6FY5k\ntbS0BPnUjuHDh9fq/fc1bdo0tXRH/fDDDwBQITCE3lUElJ5Y79+/P++jPNRFXX3x6jB+/HhIpVJc\nu3YN27dvR0pKCs6ePQsXFxdB/hX48OFDLFu2DDKZDLdv38bWrVuhp6fH+3DnehXkurq6SE9PV7gD\n3YsXLwQZFuroSwTU1x31IYUFqd90dXXh4eEBDw8PpKSkIDQ0FLNmzRLcE6IAcNeNxMfHw9zcnPsd\n5ftBGfUqyL/88kusXr0a1tbWaNasGV69eoW7d+/yelMedans9qEFBQUoKirCoUOHeKtz584dhe6o\nZs2a4fvvv8f8+fMFd16BEKB0vLqOjg709PTw0UcfYcyYMYLtJ9fU1MS9e/cQFhbGXafw6NGjD/te\nK61atcLixYsRERGBnJwctG3bFsOGDRNk18qOHTsUXp89exbHjx/n/RL9D6k7ipA//vgDYWFhKCkp\nwYQJE9CiRQusX78eYrFYZc+IVaVvvvkG+/fvR+PGjdG3b1/cvXsX+/btw5QpU3itU6+CHCgdd6mu\nbgl1yMrKwtatW6Gvr49ly5ahUaNGvC7/Q+qOIuTq1atYt24dcnNzsWHDBuTk5GDo0KEquYe/Opia\nmircXdXe3h729vaYO3culi9fzludehfkH5JLly7h8OHDGDFiRKUjWPjwIXVHEWJgYAAtLS00adIE\nWVlZmD59Ou+PR/wQUZCryOrVqxETE4NRo0ahYcOGuHv3LgD+7+L2IXVHEVKesbExhXgNUZCriFgs\nRpcuXfD48eMK0/i+i9uH1h1F/u/KysrC+fPnwRjjnnxUdu8gLy+vum5erVX16LoXL17wWoeCXEVS\nU1PrugmECI6rqyuys7Mr/F+o+vTpo5Ybp9WrKzs/JBkZGZW+LxKJ0LRpUzW3hhBhCA0NFeyJzbpE\nR+Qq0qxZs7puAiGC888//1CQvwcKckJIvSGVSpGWllbpNFXfQlfIKMgJIfXG8+fPsXPnzkqnlT37\nklREQU4IqTfatGlDgf0eKr9pNiGE1JH8/HxIpdK6boag0KgVQki9ceTIEYSFhUFDQwPffvutIJ8O\nVheoa4UQUm/cuXMHGzZsQH5+PoKCgijIa4i6Vggh9YaOjg60tLTQqFEj3u/Z/SGjICeE1EvU61tz\n1EdOCKk3xo8fDxsbGzDG8ODBA+7JVB/Cs2FViYKcEFJvfEgPklYnCnJCCBE46iMnhBCBoyAnhBCB\noyAnhBCBoyAngrdz505MnjwZBw8erPVnMzIysGbNGhW0ihD1oSs7ieCdP38eW7duRZMmTWr92Zcv\nX1Z521RChIJGrRBBW7BgAWJiYmBubo6xY8fi1KlTyMzMRElJCVxcXPCf//wHAPDHH3/g1q1bKC4u\nRmFhIcaMGYNu3bph2rRpyM7ORufOneHj44MZM2Zgz549AEqP1mfNmoWQkBCEh4cjNDQUUqkUDRo0\nwIIFCxAaGoqzZ8+CMYaGDRvi22+/pXtmkzpBR+RE0JYsWYIRI0Zg4cKFWLNmDQYNGoSuXbuiqKgI\ny5cvh6mpKSwsLHD//n0sXrwY2trauHLlCn777Tc4OjrCz88Pu3btwrx585CRkQGRSFRlrZSUFGzZ\nsgV6enp4+PAhLl68iCVLlkBHRwf37t3D6tWrsXbtWjWuPSGlKMjJB6GwsBAPHz7E27dvcejQIQCl\nT5t59uwZnJ2dMWnSJFy6dAkvXrzAkydPuNuk1uYP0tatW0NPTw8AcPv2baSnp2P+/Pnc9Ldv3+Lt\n27do0KABj2tGSPUoyMkHJSAgADo6OgCA3Nxc6OjoICEhAatWrcKgQYNgZ2eHzp07V/oUmnevKJTJ\nZArTdXV1uf/L5XJ8/PHH+PLLLwGUfiG8evWKQpzUCRq1Qj4Iurq66NixI06cOAGg9OEECxcuxK1b\nt/D48WO0b98eAwcORKdOnXDz5k3I5XIAgKamJneXvQYNGkAmkyElJQUAcPPmzSrr2dnZ4cqVK8jJ\nyU70RxsAAAC+SURBVAEAXLhwAQEBAapcRUKqREfk5IMgEokwdepU7Nq1C7NmzYJMJoObmxvc3Nzw\n+vVr3LhxAzNnzkTDhg3h6uqKK1euoLCwEK1atYKGhgZ++uknLFu2DKNHj8by5cvRqFEjODs7K/SZ\nl/+/nZ0dhg4diqVLl0JDQwNisRizZs2qi1UnhEatEEKI0FHXCiGECBwFOSGECBwFOSGECBwFOSGE\nCBwFOSGECBwFOSGECBwFOSGECBwFOSGECNz/A41S1IQ6Tzy4AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "reg = DecisionTreeRegressor(max_leaf_nodes=5)\n", "reg.fit(boston.data, boston.target)\n", "plt = pd.DataFrame(zip(boston.feature_names, reg.feature_importances_),\n", " columns=['feature', 'Gini importance']).plot(kind='bar', x='feature')\n", "_ = plt.set_title('Regression tree on the Boston dataset (5 leaf nodes)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Things become a bit more interesting when we grow larger trees." ] }, { "cell_type": "code", "execution_count": 180, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "reg = DecisionTreeRegressor()\n", "reg.fit(boston.data, boston.target)\n", "plt = pd.DataFrame(zip(boston.feature_names, reg.feature_importances_), \n", " columns=['feature', 'Gini importance']).plot(kind='bar', x='feature')\n", "_ = plt.set_title('Regression tree on the Boston dataset')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Classification trees" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assume a classification task where the target $k$ classes take values in $0,1,...,K−1$. If node $m$ represents a region $R_m$ with $N_m$ observations, then let $p_{mk} = \\frac{1}{N_m} \\sum_{x_i \\in R_m} I(y_i = k)$ be the proportion of class $k$ observations in node $m$. \n", "$sklearn.DecisionTreeClassifier$ allows two impurity criteria for determining splits in such a setting. On the Iris dataset the two criteria agree on which features are important. Experimental results suggest that for tree induction purposes both impurity measures generally lead to similar results (Tan et. al, Introduction to Data Mining). This is not entirely surprising given that both mesaures are particular cases of Tsallis entropy $H_\\beta = \\frac{1}{\\beta-1}(1 - \\sum_{k=0}^{K-1} p^{\\beta}_{mk})$. For Gini index $\\beta=2$, while cross entroy is recovered by taking $\\beta \\rightarrow 1$.\n", "\n", "Cross *entropy* might give higher scores to balanced partitions when there are many classes though. See \"Technical Note: Some Properties of Splitting Criteria\" (Breiman , 1996). On the other hand working in log scale *might* introduce computational overhead." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Gini Index" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Gini Index is defined as $\\sum_{k=0}^{K-1} p_{mk} (1 - p_{mk}) = 1 - \\sum_{k=0}^{K-1} p_{mk}^2$. It is a measure of statistical dispersion commonly used to measure inequality among values of frequency distributions. An interpretation of the Gini index is popular in social sciences as a way to represent levels of income http://en.wikipedia.org/wiki/Gini_coefficient of a nation's residents. In other words, it is the area under the Lorentz curve (http://en.wikipedia.org/wiki/Lorenz_curve). " ] }, { "cell_type": "code", "execution_count": 187, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cls = DecisionTreeClassifier(criterion='gini', splitter='best')\n", "est = cls.fit(iris.data, iris.target)\n", "zip(iris.feature_names, cls.feature_importances_)\n", "plt = pd.DataFrame(zip(iris.feature_names, cls.feature_importances_), \n", " columns=['feature', 'Gini importance']).plot(kind='bar', x='feature')\n", "_ = plt.set_title('Classification tree on the Iris dataset (criterion=gini)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cross Entropy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cross-entropy is defined as $- \\sum_{k=0}^{K-1} p_{mk} \\log(p_{mk})$. Intutively it tells us the amount of information contained at each split node." ] }, { "cell_type": "code", "execution_count": 185, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n/R9LZXIHffT8xAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cls = DecisionTreeClassifier(criterion='entropy', splitter='best')\n", "est = cls.fit(iris.data, iris.target)\n", "zip(iris.feature_names, cls.feature_importances_)\n", "plt = pd.DataFrame(zip(iris.feature_names, cls.feature_importances_), \n", " columns=['feature', 'Gini importance']).plot(kind='bar', x='feature')\n", "_ = plt.set_title('Classification tree on the Iris dataset (criterion=entropy)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Additional parameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Both DecistionTreeRegressor and DecisionTreeClassifier accept parameters that influence the shape of a tree, hence the topology of the partitioned feature space. These parameters allow to set thresholds to the number of features per split and tree depth. Once the process for growing trees is understood, sklean documentation should be pretty much straightforward. A parameter worth mentionign is *random_state*, that controls the randomization of sampling at each split. If we set this parameter to a constant, we are guaranteed to produce the same splits for each run of the algorithm." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Ensable methods" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Trees lead to very interpretable moodels, which are trivial to visualize. On the one hand this property makes them very attractive as a mean of \"communicating\" predictive models to a non technical audience. On the other end, they usually result in low bias high variance models. To control variance, we can combine the predictions of several trees into a single model.\n", "At the time of writing sklean ships with two tree ensemble methods: Random Forest (Breiman, 2001) and Extremely Randomized Trees (Geurts et al., 2006).\n", "Both methods extend the ideas of bootstrap aggregation or \"bagging\" (Breiman 1996), that is sampling a training set with replacement to obtain $m$ datasets (bootstrap sets) and combine the output $m$ models fit on each sampled set." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Random Forest" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Random Forest brings bagging to the feature selection step. $N$ trees are grown on a boostrapped dataset than,\n", "before each split, the algorithm randomly picks $m \\leq p$ variables as candidates for splitting. The best candidate is picked according to an heuristic, and the node is split in left/right children. After $N$ such trees are grown, the algorithm combines their predictions. In case of regression trees, this means averaging the output of the ensamlbe of $f$ models as:\n", "$f_{rf}(x) = \\frac{1}{N} \\sum_{n=1}^{N} f_n (x)$. For classification forests, a common combination strategy is majority voting.\n", "A common value for $m$ is $\\sqrt{p}$, the intuition being that small values of $m$ reduce the correlation between pair of trees, hence reduce the variance of the ensemble." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Regression and classification with Random Forests" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*sklearn.ensemble.RandomForestRegressor* and *sklearn.ensemble.RandomForestClassifier* are interaces for building ensembles of DecisionTreeRegressor and DecisionTreeClassifier respectively. The criteria for determining node impurity are the same as we've seen before: *mse* for regression trees and *gini* or *entropy* for classification trees. The logic for growing and combining the ensemble output is implemented in *sklearn.ensemble.ForestRegressor* and *sklearn.ensemble.ForstClassifier*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### oob_score" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Random Forest is known to be a robust classifier that does not overfit; the authors claim no need for cross-validation or even using a test set for model selection (https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#features). An estimate of the generalization error can be obtains as part of the algorithm run, by leaving out a portion of the bootstrap dataset used for fitting each tree and use it to build a test dataset across the $N$ trees with all data points left out by all trees. That is, but building an out-of-bag test set on the go. This behaviour is controlled by the boolean *oob_score* parameter. On a fitted model, the *oob_score* argument will then report the error estimate for the ensemble.\n", "\n", "In sklearn the out-of-bag error is calculated in *_set_oob_score* in [ForestRegressor](https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/ensemble/forest.py#L647) and [ForestClassifier](https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/ensemble/forest.py#L362). For regression trees, the oob score is expressed as the sum of the $R^2$ of each predictor on the oob dataset, averaged over the number of predictors. For classification trees, it is the vote given by each predictors *oob_decision_function* that for a forest of $k$ trees is a list of " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```python\n", "decision = (predictions[k] /\n", " predictions[k].sum(axis=1)[:, np.newaxis])\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "where *predictions[k]* is the sum of class probabilities predicted by the *predict_proba(X)* method, for some test input $X$, that for a singe tree $k$ is the fraction of samples of the same class in a leaf." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Intepretability of random forest" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With Random Forest we lose the capability visualizing the model as a decision tree diagram. However, we can still access the feature importance vector for the whole fitted esemble with the *feature\\_importances\\_* property. This is [computed as](https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/ensemble/forest.py#L309)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```python\n", "sum(all_importances) / len(self.estimators_)\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Extra trees" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "sklearn allows for Extremely Randomized Trees to be used instead of Decision Trees to compose an ensemble. I won't cover the working of ExtraTree in this notebook. For a very concise comparison see http://stackoverflow.com/questions/22409855/randomforestclassifier-vs-extratreesclassifier-in-scikit-learn" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Categorical features" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the toy examples above, I've dealt only with numerical features. Fitting models with categorical variables might be a bit confusing if you come from evirnoment like R, where the most common implementations are either able to handle categorical variables natively, or take care of encoding them. In sklearn, a bit more work is necessary to encode categorical variables using eg. Hashing Trick (sklearn.feature_extraction.FeatureHasher) and One-Hot-Encoding (). Alternatively, Pandas provides the convenient DataFrame.get_dummies() method. \n", "\n", "Suprisingly, to me at least, when growing trees on large datasets sklearn behaves well even with integer enconding of categorical features. See https://stackoverflow.com/questions/15821751/how-to-use-dummy-variable-to-represent-categorical-data-in-python-scikit-learn-r and https://github.com/szilard/benchm-ml/issues/1" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }