{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "*This notebook contains an excerpt from the book [Machine Learning for OpenCV](https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv) by Michael Beyeler.\n", "The code is released under the [MIT license](https://opensource.org/licenses/MIT),\n", "and is available on [GitHub](https://github.com/mbeyeler/opencv-machine-learning).*\n", "\n", "*Note that this excerpt contains only the raw code - the book is rich with additional explanations and illustrations.\n", "If you find this content useful, please consider supporting the work by\n", "[buying the book](https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv)!*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Using Decision Trees to Diagnose Breast Cancer](05.02-Using-Decision-Trees-to-Diagnose-Breast-Cancer.ipynb) | [Contents](../README.md) | [Detecting Pedestrians with Support Vector Machines](06.00-Detecting-Pedestrians-with-Support-Vector-Machines.ipynb) >" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Using Decision Trees for Regression\n", "\n", "Although we have so far focused on using decision trees in classification tasks, you can also use them for regression. But, you will need to use Scikit-Learn again, as OpenCV does not provide this flexibility. We therefore only briefly review its functionality here.\n", "\n", "Let's say we wanted to use a decision tree to fit a sine wave. To make things interesting, we will also add some noise to the data points using NumPy's random number generator:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "rng = np.random.RandomState(42)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We then create 100 x values between 0 and 5, and calculate the corresponding sine values:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "X = np.sort(5 * rng.rand(100, 1), axis=0)\n", "y = np.sin(X).ravel()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We then add noise to every other data point in y (using y[::2]), scaled by 0.5 so we don't introduce to much jitter:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "y[::2] += 0.5 * (0.5 - rng.rand(50))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can then create regression tree like any other tree before. We will build two trees, one with a depth of 2, and one with a depth of 5:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn import tree" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "DecisionTreeRegressor(criterion='mse', max_depth=2, max_features=None,\n", " max_leaf_nodes=None, min_impurity_split=1e-07,\n", " min_samples_leaf=1, min_samples_split=2,\n", " min_weight_fraction_leaf=0.0, presort=False, random_state=42,\n", " splitter='best')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "regr1 = tree.DecisionTreeRegressor(max_depth=2, random_state=42)\n", "regr1.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "DecisionTreeRegressor(criterion='mse', max_depth=5, max_features=None,\n", " max_leaf_nodes=None, min_impurity_split=1e-07,\n", " min_samples_leaf=1, min_samples_split=2,\n", " min_weight_fraction_leaf=0.0, presort=False, random_state=42,\n", " splitter='best')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "regr2 = tree.DecisionTreeRegressor(max_depth=5, random_state=42)\n", "regr2.fit(X, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can then use the decision tree like a linear regressor from Chapter 3, First Steps in Supervised Learning. For this we create a test set with x values densely sampled in the whole range from 0 through 5:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The predicted y values can then be obtained with the predict method:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "y_1 = regr1.predict(X_test)\n", "y_2 = regr2.predict(X_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we plot all of these together, we can see how the decision trees differ:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nB0ZXT45SHhIFAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "plt.style.use('ggplot')\n", "\n", "plt.figure(figsize=(10, 6))\n", "plt.scatter(X, y, c='k', s=50, label='data')\n", "plt.plot(X_test, y_1, label=\"max_depth=2\", linewidth=5)\n", "plt.plot(X_test, y_2, label=\"max_depth=5\", linewidth=3)\n", "plt.xlabel(\"data\")\n", "plt.ylabel(\"target\")\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Using Decision Trees to Diagnose Breast Cancer](05.02-Using-Decision-Trees-to-Diagnose-Breast-Cancer.ipynb) | [Contents](../README.md) | [Detecting Pedestrians with Support Vector Machines](06.00-Detecting-Pedestrians-with-Support-Vector-Machines.ipynb) >" ] } ], "metadata": { "anaconda-cloud": {}, "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.3" } }, "nbformat": 4, "nbformat_minor": 2 }