{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Chapter 6 – Decision Trees**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "_This notebook contains all the sample code and solutions to the exercises in chapter 6._"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<table align=\"left\">\n",
    "  <td>\n",
    "    <a href=\"https://colab.research.google.com/github/ageron/handson-ml3/blob/main/06_decision_trees.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n",
    "  </td>\n",
    "  <td>\n",
    "    <a target=\"_blank\" href=\"https://kaggle.com/kernels/welcome?src=https://github.com/ageron/handson-ml3/blob/main/06_decision_trees.ipynb\"><img src=\"https://kaggle.com/static/images/open-in-kaggle.svg\" /></a>\n",
    "  </td>\n",
    "</table>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "# Setup"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This project requires Python 3.7 or above:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "\n",
    "assert sys.version_info >= (3, 7)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It also requires Scikit-Learn ≥ 1.0.1:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from packaging import version\n",
    "import sklearn\n",
    "\n",
    "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As we did in previous chapters, let's define the default font sizes to make the figures prettier:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.rc('font', size=14)\n",
    "plt.rc('axes', labelsize=14, titlesize=14)\n",
    "plt.rc('legend', fontsize=14)\n",
    "plt.rc('xtick', labelsize=10)\n",
    "plt.rc('ytick', labelsize=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And let's create the `images/decision_trees` folder (if it doesn't already exist), and define the `save_fig()` function which is used through this notebook to save the figures in high-res for the book:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pathlib import Path\n",
    "\n",
    "IMAGES_PATH = Path() / \"images\" / \"decision_trees\"\n",
    "IMAGES_PATH.mkdir(parents=True, exist_ok=True)\n",
    "\n",
    "def save_fig(fig_id, tight_layout=True, fig_extension=\"png\", resolution=300):\n",
    "    path = IMAGES_PATH / f\"{fig_id}.{fig_extension}\"\n",
    "    if tight_layout:\n",
    "        plt.tight_layout()\n",
    "    plt.savefig(path, format=fig_extension, dpi=resolution)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Regression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's prepare a simple quadratic training set:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Code example:**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: #000;\n",
       "  --sklearn-color-text-muted: #666;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "}\n",
       "\n",
       "#sk-container-id-1.light {\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: black;\n",
       "  --sklearn-color-background: white;\n",
       "  --sklearn-color-border-box: black;\n",
       "  --sklearn-color-icon: #696969;\n",
       "}\n",
       "\n",
       "#sk-container-id-1.dark {\n",
       "  --sklearn-color-text-on-default-background: white;\n",
       "  --sklearn-color-background: #111;\n",
       "  --sklearn-color-border-box: white;\n",
       "  --sklearn-color-icon: #878787;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: flex;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "  align-items: center;\n",
       "  justify-content: center;\n",
       "  gap: 0.5em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label .caption {\n",
       "  font-size: 0.6rem;\n",
       "  font-weight: lighter;\n",
       "  color: var(--sklearn-color-text-muted);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  display: none;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  overflow: visible;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 0.5em;\n",
       "  text-align: center;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-3) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  border: var(--sklearn-color-fitted-level-0) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-0);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  border: var(--sklearn-color-fitted-level-0) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-0);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".estimator-table {\n",
       "    font-family: monospace;\n",
       "}\n",
       "\n",
       ".estimator-table summary {\n",
       "    padding: .5rem;\n",
       "    cursor: pointer;\n",
       "}\n",
       "\n",
       ".estimator-table summary::marker {\n",
       "    font-size: 0.7rem;\n",
       "}\n",
       "\n",
       ".estimator-table details[open] {\n",
       "    padding-left: 0.1rem;\n",
       "    padding-right: 0.1rem;\n",
       "    padding-bottom: 0.3rem;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table {\n",
       "    margin-left: auto !important;\n",
       "    margin-right: auto !important;\n",
       "    margin-top: 0;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:nth-child(odd) {\n",
       "    background-color: #fff;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:nth-child(even) {\n",
       "    background-color: #f6f6f6;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:hover {\n",
       "    background-color: #e0e0e0;\n",
       "}\n",
       "\n",
       ".estimator-table table td {\n",
       "    border: 1px solid rgba(106, 105, 104, 0.232);\n",
       "}\n",
       "\n",
       "/*\n",
       "    `table td`is set in notebook with right text-align.\n",
       "    We need to overwrite it.\n",
       "*/\n",
       ".estimator-table table td.param {\n",
       "    text-align: left;\n",
       "    position: relative;\n",
       "    padding: 0;\n",
       "}\n",
       "\n",
       ".user-set td {\n",
       "    color:rgb(255, 94, 0);\n",
       "    text-align: left !important;\n",
       "}\n",
       "\n",
       ".user-set td.value {\n",
       "    color:rgb(255, 94, 0);\n",
       "    background-color: transparent;\n",
       "}\n",
       "\n",
       ".default td {\n",
       "    color: black;\n",
       "    text-align: left !important;\n",
       "}\n",
       "\n",
       ".user-set td i,\n",
       ".default td i {\n",
       "    color: black;\n",
       "}\n",
       "\n",
       "/*\n",
       "    Styles for parameter documentation links\n",
       "    We need styling for visited so jupyter doesn't overwrite it\n",
       "*/\n",
       "a.param-doc-link,\n",
       "a.param-doc-link:link,\n",
       "a.param-doc-link:visited {\n",
       "    text-decoration: underline dashed;\n",
       "    text-underline-offset: .3em;\n",
       "    color: inherit;\n",
       "    display: block;\n",
       "    padding: .5em;\n",
       "}\n",
       "\n",
       "/* \"hack\" to make the entire area of the cell containing the link clickable */\n",
       "a.param-doc-link::before {\n",
       "    position: absolute;\n",
       "    content: \"\";\n",
       "    inset: 0;\n",
       "}\n",
       "\n",
       ".param-doc-description {\n",
       "    display: none;\n",
       "    position: absolute;\n",
       "    z-index: 9999;\n",
       "    left: 0;\n",
       "    padding: .5ex;\n",
       "    margin-left: 1.5em;\n",
       "    color: var(--sklearn-color-text);\n",
       "    box-shadow: .3em .3em .4em #999;\n",
       "    width: max-content;\n",
       "    text-align: left;\n",
       "    max-height: 10em;\n",
       "    overflow-y: auto;\n",
       "\n",
       "    /* unfitted */\n",
       "    background: var(--sklearn-color-unfitted-level-0);\n",
       "    border: thin solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       "/* Fitted state for parameter tooltips */\n",
       ".fitted .param-doc-description {\n",
       "    /* fitted */\n",
       "    background: var(--sklearn-color-fitted-level-0);\n",
       "    border: thin solid var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".param-doc-link:hover .param-doc-description {\n",
       "    display: block;\n",
       "}\n",
       "\n",
       ".copy-paste-icon {\n",
       "    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZD0iTTIwOCAwTDMzMi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw2Ny45IDY3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNDQ4IDMzNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek00OCAxMjhsODAgMCAwIDY0LTY0IDAgMCAyNTYgMTkyIDAgMC0zMiA2NCAwIDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OHoiLz48L3N2Zz4=);\n",
       "    background-repeat: no-repeat;\n",
       "    background-size: 14px 14px;\n",
       "    background-position: 0;\n",
       "    display: inline-block;\n",
       "    width: 14px;\n",
       "    height: 14px;\n",
       "    cursor: pointer;\n",
       "}\n",
       "</style><body><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeRegressor(max_depth=2, random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>DecisionTreeRegressor</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html\">?<span>Documentation for DecisionTreeRegressor</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\" data-param-prefix=\"\">\n",
       "        <div class=\"estimator-table\">\n",
       "            <details>\n",
       "                <summary>Parameters</summary>\n",
       "                <table class=\"parameters-table\">\n",
       "                  <tbody>\n",
       "                    \n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('criterion',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=criterion,-%7B%22squared_error%22%2C%20%22friedman_mse%22%2C%20%22absolute_error%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%22poisson%22%7D%2C%20default%3D%22squared_error%22\">\n",
       "            criterion\n",
       "            <span class=\"param-doc-description\">criterion: {\"squared_error\", \"friedman_mse\", \"absolute_error\",             \"poisson\"}, default=\"squared_error\"<br><br>The function to measure the quality of a split. Supported criteria<br>are \"squared_error\" for the mean squared error, which is equal to<br>variance reduction as feature selection criterion and minimizes the L2<br>loss using the mean of each terminal node, \"friedman_mse\", which uses<br>mean squared error with Friedman's improvement score for potential<br>splits, \"absolute_error\" for the mean absolute error, which minimizes<br>the L1 loss using the median of each terminal node, and \"poisson\" which<br>uses reduction in the half mean Poisson deviance to find splits.<br><br>.. versionadded:: 0.18<br>   Mean Absolute Error (MAE) criterion.<br><br>.. versionadded:: 0.24<br>    Poisson deviance criterion.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">&#x27;squared_error&#x27;</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('splitter',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=splitter,-%7B%22best%22%2C%20%22random%22%7D%2C%20default%3D%22best%22\">\n",
       "            splitter\n",
       "            <span class=\"param-doc-description\">splitter: {\"best\", \"random\"}, default=\"best\"<br><br>The strategy used to choose the split at each node. Supported<br>strategies are \"best\" to choose the best split and \"random\" to choose<br>the best random split.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">&#x27;best&#x27;</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"user-set\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('max_depth',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=max_depth,-int%2C%20default%3DNone\">\n",
       "            max_depth\n",
       "            <span class=\"param-doc-description\">max_depth: int, default=None<br><br>The maximum depth of the tree. If None, then nodes are expanded until<br>all leaves are pure or until all leaves contain less than<br>min_samples_split samples.<br><br>For an example of how ``max_depth`` influences the model, see<br>:ref:`sphx_glr_auto_examples_tree_plot_tree_regression.py`.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">2</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('min_samples_split',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=min_samples_split,-int%20or%20float%2C%20default%3D2\">\n",
       "            min_samples_split\n",
       "            <span class=\"param-doc-description\">min_samples_split: int or float, default=2<br><br>The minimum number of samples required to split an internal node:<br><br>- If int, then consider `min_samples_split` as the minimum number.<br>- If float, then `min_samples_split` is a fraction and<br>  `ceil(min_samples_split * n_samples)` are the minimum<br>  number of samples for each split.<br><br>.. versionchanged:: 0.18<br>   Added float values for fractions.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">2</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('min_samples_leaf',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=min_samples_leaf,-int%20or%20float%2C%20default%3D1\">\n",
       "            min_samples_leaf\n",
       "            <span class=\"param-doc-description\">min_samples_leaf: int or float, default=1<br><br>The minimum number of samples required to be at a leaf node.<br>A split point at any depth will only be considered if it leaves at<br>least ``min_samples_leaf`` training samples in each of the left and<br>right branches.  This may have the effect of smoothing the model,<br>especially in regression.<br><br>- If int, then consider `min_samples_leaf` as the minimum number.<br>- If float, then `min_samples_leaf` is a fraction and<br>  `ceil(min_samples_leaf * n_samples)` are the minimum<br>  number of samples for each node.<br><br>.. versionchanged:: 0.18<br>   Added float values for fractions.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">1</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('min_weight_fraction_leaf',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=min_weight_fraction_leaf,-float%2C%20default%3D0.0\">\n",
       "            min_weight_fraction_leaf\n",
       "            <span class=\"param-doc-description\">min_weight_fraction_leaf: float, default=0.0<br><br>The minimum weighted fraction of the sum total of weights (of all<br>the input samples) required to be at a leaf node. Samples have<br>equal weight when sample_weight is not provided.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">0.0</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('max_features',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=max_features,-int%2C%20float%20or%20%7B%22sqrt%22%2C%20%22log2%22%7D%2C%20default%3DNone\">\n",
       "            max_features\n",
       "            <span class=\"param-doc-description\">max_features: int, float or {\"sqrt\", \"log2\"}, default=None<br><br>The number of features to consider when looking for the best split:<br><br>- If int, then consider `max_features` features at each split.<br>- If float, then `max_features` is a fraction and<br>  `max(1, int(max_features * n_features_in_))` features are considered at each<br>  split.<br>- If \"sqrt\", then `max_features=sqrt(n_features)`.<br>- If \"log2\", then `max_features=log2(n_features)`.<br>- If None, then `max_features=n_features`.<br><br>Note: the search for a split does not stop until at least one<br>valid partition of the node samples is found, even if it requires to<br>effectively inspect more than ``max_features`` features.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">None</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"user-set\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('random_state',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=random_state,-int%2C%20RandomState%20instance%20or%20None%2C%20default%3DNone\">\n",
       "            random_state\n",
       "            <span class=\"param-doc-description\">random_state: int, RandomState instance or None, default=None<br><br>Controls the randomness of the estimator. The features are always<br>randomly permuted at each split, even if ``splitter`` is set to<br>``\"best\"``. When ``max_features < n_features``, the algorithm will<br>select ``max_features`` at random at each split before finding the best<br>split among them. But the best found split may vary across different<br>runs, even if ``max_features=n_features``. That is the case, if the<br>improvement of the criterion is identical for several splits and one<br>split has to be selected at random. To obtain a deterministic behaviour<br>during fitting, ``random_state`` has to be fixed to an integer.<br>See :term:`Glossary <random_state>` for details.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">42</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('max_leaf_nodes',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=max_leaf_nodes,-int%2C%20default%3DNone\">\n",
       "            max_leaf_nodes\n",
       "            <span class=\"param-doc-description\">max_leaf_nodes: int, default=None<br><br>Grow a tree with ``max_leaf_nodes`` in best-first fashion.<br>Best nodes are defined as relative reduction in impurity.<br>If None then unlimited number of leaf nodes.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">None</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('min_impurity_decrease',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=min_impurity_decrease,-float%2C%20default%3D0.0\">\n",
       "            min_impurity_decrease\n",
       "            <span class=\"param-doc-description\">min_impurity_decrease: float, default=0.0<br><br>A node will be split if this split induces a decrease of the impurity<br>greater than or equal to this value.<br><br>The weighted impurity decrease equation is the following::<br><br>    N_t / N * (impurity - N_t_R / N_t * right_impurity<br>                        - N_t_L / N_t * left_impurity)<br><br>where ``N`` is the total number of samples, ``N_t`` is the number of<br>samples at the current node, ``N_t_L`` is the number of samples in the<br>left child, and ``N_t_R`` is the number of samples in the right child.<br><br>``N``, ``N_t``, ``N_t_R`` and ``N_t_L`` all refer to the weighted sum,<br>if ``sample_weight`` is passed.<br><br>.. versionadded:: 0.19</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">0.0</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('ccp_alpha',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=ccp_alpha,-non-negative%20float%2C%20default%3D0.0\">\n",
       "            ccp_alpha\n",
       "            <span class=\"param-doc-description\">ccp_alpha: non-negative float, default=0.0<br><br>Complexity parameter used for Minimal Cost-Complexity Pruning. The<br>subtree with the largest cost complexity that is smaller than<br>``ccp_alpha`` will be chosen. By default, no pruning is performed. See<br>:ref:`minimal_cost_complexity_pruning` for details. See<br>:ref:`sphx_glr_auto_examples_tree_plot_cost_complexity_pruning.py`<br>for an example of such pruning.<br><br>.. versionadded:: 0.22</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">0.0</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('monotonic_cst',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=monotonic_cst,-array-like%20of%20int%20of%20shape%20%28n_features%29%2C%20default%3DNone\">\n",
       "            monotonic_cst\n",
       "            <span class=\"param-doc-description\">monotonic_cst: array-like of int of shape (n_features), default=None<br><br>Indicates the monotonicity constraint to enforce on each feature.<br>  - 1: monotonic increase<br>  - 0: no constraint<br>  - -1: monotonic decrease<br><br>If monotonic_cst is None, no constraints are applied.<br><br>Monotonicity constraints are not supported for:<br>  - multioutput regressions (i.e. when `n_outputs_ > 1`),<br>  - regressions trained on data with missing values.<br><br>Read more in the :ref:`User Guide <monotonic_cst_gbdt>`.<br><br>.. versionadded:: 1.4</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">None</td>\n",
       "        </tr>\n",
       "    \n",
       "                  </tbody>\n",
       "                </table>\n",
       "            </details>\n",
       "        </div>\n",
       "    </div></div></div></div></div><script>function copyToClipboard(text, element) {\n",
       "    // Get the parameter prefix from the closest toggleable content\n",
       "    const toggleableContent = element.closest('.sk-toggleable__content');\n",
       "    const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n",
       "    const fullParamName = paramPrefix ? `${paramPrefix}${text}` : text;\n",
       "\n",
       "    const originalStyle = element.style;\n",
       "    const computedStyle = window.getComputedStyle(element);\n",
       "    const originalWidth = computedStyle.width;\n",
       "    const originalHTML = element.innerHTML.replace('Copied!', '');\n",
       "\n",
       "    navigator.clipboard.writeText(fullParamName)\n",
       "        .then(() => {\n",
       "            element.style.width = originalWidth;\n",
       "            element.style.color = 'green';\n",
       "            element.innerHTML = \"Copied!\";\n",
       "\n",
       "            setTimeout(() => {\n",
       "                element.innerHTML = originalHTML;\n",
       "                element.style = originalStyle;\n",
       "            }, 2000);\n",
       "        })\n",
       "        .catch(err => {\n",
       "            console.error('Failed to copy:', err);\n",
       "            element.style.color = 'red';\n",
       "            element.innerHTML = \"Failed!\";\n",
       "            setTimeout(() => {\n",
       "                element.innerHTML = originalHTML;\n",
       "                element.style = originalStyle;\n",
       "            }, 2000);\n",
       "        });\n",
       "    return false;\n",
       "}\n",
       "\n",
       "document.querySelectorAll('.copy-paste-icon').forEach(function(element) {\n",
       "    const toggleableContent = element.closest('.sk-toggleable__content');\n",
       "    const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n",
       "    const paramName = element.parentElement.nextElementSibling\n",
       "        .textContent.trim().split(' ')[0];\n",
       "    const fullParamName = paramPrefix ? `${paramPrefix}${paramName}` : paramName;\n",
       "\n",
       "    element.setAttribute('title', fullParamName);\n",
       "});\n",
       "\n",
       "\n",
       "/**\n",
       " * Adapted from Skrub\n",
       " * https://github.com/skrub-data/skrub/blob/403466d1d5d4dc76a7ef569b3f8228db59a31dc3/skrub/_reporting/_data/templates/report.js#L789\n",
       " * @returns \"light\" or \"dark\"\n",
       " */\n",
       "function detectTheme(element) {\n",
       "    const body = document.querySelector('body');\n",
       "\n",
       "    // Check VSCode theme\n",
       "    const themeKindAttr = body.getAttribute('data-vscode-theme-kind');\n",
       "    const themeNameAttr = body.getAttribute('data-vscode-theme-name');\n",
       "\n",
       "    if (themeKindAttr && themeNameAttr) {\n",
       "        const themeKind = themeKindAttr.toLowerCase();\n",
       "        const themeName = themeNameAttr.toLowerCase();\n",
       "\n",
       "        if (themeKind.includes(\"dark\") || themeName.includes(\"dark\")) {\n",
       "            return \"dark\";\n",
       "        }\n",
       "        if (themeKind.includes(\"light\") || themeName.includes(\"light\")) {\n",
       "            return \"light\";\n",
       "        }\n",
       "    }\n",
       "\n",
       "    // Check Jupyter theme\n",
       "    if (body.getAttribute('data-jp-theme-light') === 'false') {\n",
       "        return 'dark';\n",
       "    } else if (body.getAttribute('data-jp-theme-light') === 'true') {\n",
       "        return 'light';\n",
       "    }\n",
       "\n",
       "    // Guess based on a parent element's color\n",
       "    const color = window.getComputedStyle(element.parentNode, null).getPropertyValue('color');\n",
       "    const match = color.match(/^rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)\\s*$/i);\n",
       "    if (match) {\n",
       "        const [r, g, b] = [\n",
       "            parseFloat(match[1]),\n",
       "            parseFloat(match[2]),\n",
       "            parseFloat(match[3])\n",
       "        ];\n",
       "\n",
       "        // https://en.wikipedia.org/wiki/HSL_and_HSV#Lightness\n",
       "        const luma = 0.299 * r + 0.587 * g + 0.114 * b;\n",
       "\n",
       "        if (luma > 180) {\n",
       "            // If the text is very bright we have a dark theme\n",
       "            return 'dark';\n",
       "        }\n",
       "        if (luma < 75) {\n",
       "            // If the text is very dark we have a light theme\n",
       "            return 'light';\n",
       "        }\n",
       "        // Otherwise fall back to the next heuristic.\n",
       "    }\n",
       "\n",
       "    // Fallback to system preference\n",
       "    return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n",
       "}\n",
       "\n",
       "\n",
       "function forceTheme(elementId) {\n",
       "    const estimatorElement = document.querySelector(`#${elementId}`);\n",
       "    if (estimatorElement === null) {\n",
       "        console.error(`Element with id ${elementId} not found.`);\n",
       "    } else {\n",
       "        const theme = detectTheme(estimatorElement);\n",
       "        estimatorElement.classList.add(theme);\n",
       "    }\n",
       "}\n",
       "\n",
       "forceTheme('sk-container-id-1');</script></body>"
      ],
      "text/plain": [
       "DecisionTreeRegressor(max_depth=2, random_state=42)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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NH/+fLW2tqqtrU1jx47VVVddpf379zvccv/J9L2I2rdvn+666y7NnDnToZY6xIAn7Ny505BkvPHGG7Ft//Vf/2UUFBQY+/fvT/vcN9980zj33HONAwcOGJKMF154webW+lsu70Vf69evN4qLi41Tp07Z0UzfqqqqMm655ZbY1z09Pcbo0aONxsbGpPvfcMMNxjXXXBO3rbq62li2bJmt7QyCTN+LRJ999plx1llnGc8++6xdTQyMbN6Lzz77zPjiF79oPP3008aiRYuMa6+91oGWOoOeG49oa2vT0KFDNW3atNi22tpaFRYWasuWLSmfd/z4cf3N3/yNVq5cmXaNLpiX7XuRqKurS2VlZRo0yLZamr5z8uRJbdu2TbW1tbFthYWFqq2tVVtbW9LntLW1xe0vSaFQKOX+MCeb9yLR8ePHderUKQ0fPtyuZgZCtu/F97//fZ1zzjm+7EHmquoRHR0dOuecc+K2DRo0SMOHD1dHR0fK591xxx364he/qGuvvdbuJgZGtu9FX4cOHdL9999velgREYcOHVJPT48qKiritldUVOi9995L+pyOjo6k+5t9r5BcNu9ForvvvlujR4/uF3wiM9m8F6+++qpWr16tt956y4EWOo+emzxbvny5CgoK0j7MXigS/fKXv9TGjRv16KOPWtton7Lzveiru7tb11xzjS655BJ973vfy73hgAc1NTVp7dq1euGFF1RaWprv5gTKkSNHtGDBAq1atUojRozId3NsQc9Nnt15551avHhx2n0mTJigysrKfolhn332mQ4fPpxyuGnjxo3as2ePhg4dGrf9uuuu08yZM7Vp06YcWu4/dr4XUUeOHNGcOXN01lln6YUXXtDgwYNzbXagjBgxQkVFRers7Izb3tnZmfJ3X1lZmdH+MCeb9yKqublZTU1NeuWVVzR58mQ7mxkImb4Xe/bs0b59+/S1r30ttq23t1dSpBf6/fff1wUXXGBvo+2W76QfmBNNYv3DH/4Q2/bSSy+lTWI9cOCAsWPHjriHJOOxxx4z/vjHPzrVdN/J5r0wDMPo6uoyZsyYYcyaNcs4duyYE031paqqKuPWW2+Nfd3T02Oce+65aROKv/rVr8Ztq6mpIaHYApm+F4ZhGA888IBRVlZmtLW1OdHEwMjkvfjzn//c795w7bXXGldccYWxY8cO48SJE0423RYENx4yZ84c4/LLLze2bNlivPrqq8bEiRON+fPnx74fDoeNz3/+88aWLVtSHkPMlrJEpu9FV1eXUV1dbUyaNMn44IMPjAMHDsQen332Wb5ehietXbvWKCkpMdasWWPs3LnTWLp0qTF06FCjo6PDMAzDWLBggbF8+fLY/q+99poxaNAgo7m52di1a5fR0NBgDB482NixY0e+XoJvZPpeNDU1GcXFxcZ//Md/xP0NHDlyJF8vwTcyfS8S+W22FMGNh3z88cfG/PnzjSFDhhhlZWXGkiVL4i4Ke/fuNSQZra2tKY9BcGONTN+L1tZWQ1LSx969e/PzIjzsiSeeMMaNG2cUFxcbVVVVxubNm2PfmzVrlrFo0aK4/devX29cdNFFRnFxsXHppZcav/nNbxxusX9l8l6cd955Sf8GGhoanG+4D2X6d9GX34KbAsMwDKeHwgAAAOzCbCkAAOArBDcAAMBXCG4AAICvENwAAABfIbgBAAC+QnADAAB8heAGAAD4CsENAADwFYIbAADgKwQ3ADynpqZGBQUFamtri9ve3d2tyy67TCUlJXr55Zfz1DoA+UZwA8BzHnjgAUnSP/3TP8W2nTx5Ul//+tf19ttv69lnn9Vf/dVf5at5APKM4AaA53z5y1/WNddco40bN2rTpk0yDEOLFy/Wxo0b9cgjj2jevHn5biKAPGLhTACetGPHDl122WX64he/qKqqKj388MNasWKFfvjDH+a7aQDyjOAGgGctWrRIzz33nCTpb//2b7V69ep++/znf/6nfvzjH2vbtm363//9X+3du1fjx493uKUAnMSwFADPGjlypCTprLPO0sqVK5Puc+zYMX35y1/W97//fSebBiCPBuW7AQCQjSeffFI/+tGPVFFRoc7OTj377LNatmxZv/0WLFggSXrnnXecbiKAPKHnBoDnrF+/Xt/5znf0l3/5l3rzzTdVXl6u++67T8ePH8930wC4AMENAE9paWnRggULNGnSJP385z/XqFGjdMcdd+jAgQN67LHH8t08AC5AQjEAz9i+fbtmz56ts88+W6+//rpGjRolKVK87/zzz1dPT4/++Mc/avjw4f2e+84772jSpEkkFAMBQM8NAE/Ys2ePvvKVr6i4uFgbNmyIBTaSVFZWprvvvltdXV1qbGzMYysBuAE9NwACgZ4bIDiYLQXA1w4fPqwPP/xQe/bskSTt3LlTn3zyicaNG5d0+AqA99FzA8DX1qxZoyVLlvTb/tOf/lSLFy92vkEAbEdwAwAAfIWEYgAA4CsENwAAwFcIbgAAgK8Q3AAAAF8huAEAAL5CcAMAAHyF4AYAAPgKwQ0AAPAVghsAAOArBDcAAMBXCG4AAICvENwAAABf+f+VL8XYLnmVvAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeRegressor\n",
    "import numpy as np\n",
    "\n",
    "np.random.seed(42)\n",
    "X_quad = np.random.rand(200, 1) - 0.5  # a single random input feature\n",
    "y_quad = X_quad ** 2 + 0.025 * np.random.randn(200, 1)\n",
    "\n",
    "axes=[-0.5, 0.5, -0.05, 0.25]\n",
    "x1 = np.linspace(axes[0], axes[1], 500).reshape(-1, 1)\n",
    "plt.axis(axes)\n",
    "plt.xlabel(\"$x_1$\")\n",
    "plt.plot(X_quad, y_quad, \"b.\")\n",
    "\n",
    "tree_reg = DecisionTreeRegressor(max_depth=2, random_state=42)\n",
    "tree_reg.fit(X_quad, y_quad)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.42.4 (0)\n",
       " -->\n",
       "<!-- Title: Tree Pages: 1 -->\n",
       "<svg width=\"758pt\" height=\"269pt\"\n",
       " viewBox=\"0.00 0.00 758.00 269.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 265)\">\n",
       "<title>Tree</title>\n",
       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-265 754,-265 754,4 -4,4\"/>\n",
       "<!-- 0 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>0</title>\n",
       "<path fill=\"#f6d6be\" stroke=\"black\" d=\"M450,-261C450,-261 300,-261 300,-261 294,-261 288,-255 288,-249 288,-249 288,-205 288,-205 288,-199 294,-193 300,-193 300,-193 450,-193 450,-193 456,-193 462,-199 462,-205 462,-205 462,-249 462,-249 462,-255 456,-261 450,-261\"/>\n",
       "<text text-anchor=\"middle\" x=\"375\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">x1 &lt;= &#45;0.303</text>\n",
       "<text text-anchor=\"middle\" x=\"375\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">squared_error = 0.006</text>\n",
       "<text text-anchor=\"middle\" x=\"375\" y=\"-215.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 200</text>\n",
       "<text text-anchor=\"middle\" x=\"375\" y=\"-200.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = 0.088</text>\n",
       "</g>\n",
       "<!-- 1 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>1</title>\n",
       "<path fill=\"#eb9d65\" stroke=\"black\" d=\"M354,-157C354,-157 204,-157 204,-157 198,-157 192,-151 192,-145 192,-145 192,-101 192,-101 192,-95 198,-89 204,-89 204,-89 354,-89 354,-89 360,-89 366,-95 366,-101 366,-101 366,-145 366,-145 366,-151 360,-157 354,-157\"/>\n",
       "<text text-anchor=\"middle\" x=\"279\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">x1 &lt;= &#45;0.408</text>\n",
       "<text text-anchor=\"middle\" x=\"279\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">squared_error = 0.002</text>\n",
       "<text text-anchor=\"middle\" x=\"279\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 44</text>\n",
       "<text text-anchor=\"middle\" x=\"279\" y=\"-96.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = 0.172</text>\n",
       "</g>\n",
       "<!-- 0&#45;&gt;1 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>0&#45;&gt;1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M343.83,-192.88C335.36,-183.89 326.1,-174.04 317.29,-164.68\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"319.74,-162.18 310.34,-157.3 314.65,-166.98 319.74,-162.18\"/>\n",
       "<text text-anchor=\"middle\" x=\"309.58\" y=\"-178.59\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">True</text>\n",
       "</g>\n",
       "<!-- 4 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>4</title>\n",
       "<path fill=\"#fae6d7\" stroke=\"black\" d=\"M546,-157C546,-157 396,-157 396,-157 390,-157 384,-151 384,-145 384,-145 384,-101 384,-101 384,-95 390,-89 396,-89 396,-89 546,-89 546,-89 552,-89 558,-95 558,-101 558,-101 558,-145 558,-145 558,-151 552,-157 546,-157\"/>\n",
       "<text text-anchor=\"middle\" x=\"471\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">x1 &lt;= 0.272</text>\n",
       "<text text-anchor=\"middle\" x=\"471\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">squared_error = 0.005</text>\n",
       "<text text-anchor=\"middle\" x=\"471\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 156</text>\n",
       "<text text-anchor=\"middle\" x=\"471\" y=\"-96.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = 0.065</text>\n",
       "</g>\n",
       "<!-- 0&#45;&gt;4 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>0&#45;&gt;4</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M406.17,-192.88C414.64,-183.89 423.9,-174.04 432.71,-164.68\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"435.35,-166.98 439.66,-157.3 430.26,-162.18 435.35,-166.98\"/>\n",
       "<text text-anchor=\"middle\" x=\"440.42\" y=\"-178.59\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">False</text>\n",
       "</g>\n",
       "<!-- 2 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>2</title>\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M162,-53C162,-53 12,-53 12,-53 6,-53 0,-47 0,-41 0,-41 0,-12 0,-12 0,-6 6,0 12,0 12,0 162,0 162,0 168,0 174,-6 174,-12 174,-12 174,-41 174,-41 174,-47 168,-53 162,-53\"/>\n",
       "<text text-anchor=\"middle\" x=\"87\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">squared_error = 0.001</text>\n",
       "<text text-anchor=\"middle\" x=\"87\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 20</text>\n",
       "<text text-anchor=\"middle\" x=\"87\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = 0.213</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;2 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>1&#45;&gt;2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M211.85,-88.95C191.12,-78.75 168.42,-67.57 148.13,-57.59\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"149.5,-54.36 138.99,-53.09 146.41,-60.64 149.5,-54.36\"/>\n",
       "</g>\n",
       "<!-- 3 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>3</title>\n",
       "<path fill=\"#f0b489\" stroke=\"black\" d=\"M354,-53C354,-53 204,-53 204,-53 198,-53 192,-47 192,-41 192,-41 192,-12 192,-12 192,-6 198,0 204,0 204,0 354,0 354,0 360,0 366,-6 366,-12 366,-12 366,-41 366,-41 366,-47 360,-53 354,-53\"/>\n",
       "<text text-anchor=\"middle\" x=\"279\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">squared_error = 0.001</text>\n",
       "<text text-anchor=\"middle\" x=\"279\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 24</text>\n",
       "<text text-anchor=\"middle\" x=\"279\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = 0.138</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;3 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>1&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M279,-88.95C279,-80.72 279,-71.85 279,-63.48\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"282.5,-63.24 279,-53.24 275.5,-63.24 282.5,-63.24\"/>\n",
       "</g>\n",
       "<!-- 5 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>5</title>\n",
       "<path fill=\"#ffffff\" stroke=\"black\" d=\"M546,-53C546,-53 396,-53 396,-53 390,-53 384,-47 384,-41 384,-41 384,-12 384,-12 384,-6 390,0 396,0 396,0 546,0 546,0 552,0 558,-6 558,-12 558,-12 558,-41 558,-41 558,-47 552,-53 546,-53\"/>\n",
       "<text text-anchor=\"middle\" x=\"471\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">squared_error = 0.001</text>\n",
       "<text text-anchor=\"middle\" x=\"471\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 110</text>\n",
       "<text text-anchor=\"middle\" x=\"471\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = 0.028</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;5 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>4&#45;&gt;5</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M471,-88.95C471,-80.72 471,-71.85 471,-63.48\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"474.5,-63.24 471,-53.24 467.5,-63.24 474.5,-63.24\"/>\n",
       "</g>\n",
       "<!-- 6 -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>6</title>\n",
       "<path fill=\"#edaa79\" stroke=\"black\" d=\"M738,-53C738,-53 588,-53 588,-53 582,-53 576,-47 576,-41 576,-41 576,-12 576,-12 576,-6 582,0 588,0 588,0 738,0 738,0 744,0 750,-6 750,-12 750,-12 750,-41 750,-41 750,-47 744,-53 738,-53\"/>\n",
       "<text text-anchor=\"middle\" x=\"663\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">squared_error = 0.002</text>\n",
       "<text text-anchor=\"middle\" x=\"663\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 46</text>\n",
       "<text text-anchor=\"middle\" x=\"663\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = 0.154</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;6 -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>4&#45;&gt;6</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M538.15,-88.95C558.88,-78.75 581.58,-67.57 601.87,-57.59\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"603.59,-60.64 611.01,-53.09 600.5,-54.36 603.59,-60.64\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.sources.Source at 0x7fb335240980>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.tree import export_graphviz\n",
    "from graphviz import Source\n",
    "\n",
    "# extra code – we've already seen how to use export_graphviz()\n",
    "export_graphviz(\n",
    "    tree_reg,\n",
    "    out_file=str(IMAGES_PATH / \"regression_tree.dot\"),\n",
    "    feature_names=[\"x1\"],\n",
    "    rounded=True,\n",
    "    filled=True\n",
    ")\n",
    "Source.from_file(IMAGES_PATH / \"regression_tree.dot\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-2 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: #000;\n",
       "  --sklearn-color-text-muted: #666;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "}\n",
       "\n",
       "#sk-container-id-2.light {\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: black;\n",
       "  --sklearn-color-background: white;\n",
       "  --sklearn-color-border-box: black;\n",
       "  --sklearn-color-icon: #696969;\n",
       "}\n",
       "\n",
       "#sk-container-id-2.dark {\n",
       "  --sklearn-color-text-on-default-background: white;\n",
       "  --sklearn-color-background: #111;\n",
       "  --sklearn-color-border-box: white;\n",
       "  --sklearn-color-icon: #878787;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-2 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-2 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: flex;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "  align-items: center;\n",
       "  justify-content: center;\n",
       "  gap: 0.5em;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 label.sk-toggleable__label .caption {\n",
       "  font-size: 0.6rem;\n",
       "  font-weight: lighter;\n",
       "  color: var(--sklearn-color-text-muted);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable__content {\n",
       "  display: none;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  overflow: visible;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-2 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-2 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-2 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-2 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 0.5em;\n",
       "  text-align: center;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-3) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  border: var(--sklearn-color-fitted-level-0) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-0);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  border: var(--sklearn-color-fitted-level-0) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-0);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-2 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-2 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".estimator-table {\n",
       "    font-family: monospace;\n",
       "}\n",
       "\n",
       ".estimator-table summary {\n",
       "    padding: .5rem;\n",
       "    cursor: pointer;\n",
       "}\n",
       "\n",
       ".estimator-table summary::marker {\n",
       "    font-size: 0.7rem;\n",
       "}\n",
       "\n",
       ".estimator-table details[open] {\n",
       "    padding-left: 0.1rem;\n",
       "    padding-right: 0.1rem;\n",
       "    padding-bottom: 0.3rem;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table {\n",
       "    margin-left: auto !important;\n",
       "    margin-right: auto !important;\n",
       "    margin-top: 0;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:nth-child(odd) {\n",
       "    background-color: #fff;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:nth-child(even) {\n",
       "    background-color: #f6f6f6;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:hover {\n",
       "    background-color: #e0e0e0;\n",
       "}\n",
       "\n",
       ".estimator-table table td {\n",
       "    border: 1px solid rgba(106, 105, 104, 0.232);\n",
       "}\n",
       "\n",
       "/*\n",
       "    `table td`is set in notebook with right text-align.\n",
       "    We need to overwrite it.\n",
       "*/\n",
       ".estimator-table table td.param {\n",
       "    text-align: left;\n",
       "    position: relative;\n",
       "    padding: 0;\n",
       "}\n",
       "\n",
       ".user-set td {\n",
       "    color:rgb(255, 94, 0);\n",
       "    text-align: left !important;\n",
       "}\n",
       "\n",
       ".user-set td.value {\n",
       "    color:rgb(255, 94, 0);\n",
       "    background-color: transparent;\n",
       "}\n",
       "\n",
       ".default td {\n",
       "    color: black;\n",
       "    text-align: left !important;\n",
       "}\n",
       "\n",
       ".user-set td i,\n",
       ".default td i {\n",
       "    color: black;\n",
       "}\n",
       "\n",
       "/*\n",
       "    Styles for parameter documentation links\n",
       "    We need styling for visited so jupyter doesn't overwrite it\n",
       "*/\n",
       "a.param-doc-link,\n",
       "a.param-doc-link:link,\n",
       "a.param-doc-link:visited {\n",
       "    text-decoration: underline dashed;\n",
       "    text-underline-offset: .3em;\n",
       "    color: inherit;\n",
       "    display: block;\n",
       "    padding: .5em;\n",
       "}\n",
       "\n",
       "/* \"hack\" to make the entire area of the cell containing the link clickable */\n",
       "a.param-doc-link::before {\n",
       "    position: absolute;\n",
       "    content: \"\";\n",
       "    inset: 0;\n",
       "}\n",
       "\n",
       ".param-doc-description {\n",
       "    display: none;\n",
       "    position: absolute;\n",
       "    z-index: 9999;\n",
       "    left: 0;\n",
       "    padding: .5ex;\n",
       "    margin-left: 1.5em;\n",
       "    color: var(--sklearn-color-text);\n",
       "    box-shadow: .3em .3em .4em #999;\n",
       "    width: max-content;\n",
       "    text-align: left;\n",
       "    max-height: 10em;\n",
       "    overflow-y: auto;\n",
       "\n",
       "    /* unfitted */\n",
       "    background: var(--sklearn-color-unfitted-level-0);\n",
       "    border: thin solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       "/* Fitted state for parameter tooltips */\n",
       ".fitted .param-doc-description {\n",
       "    /* fitted */\n",
       "    background: var(--sklearn-color-fitted-level-0);\n",
       "    border: thin solid var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".param-doc-link:hover .param-doc-description {\n",
       "    display: block;\n",
       "}\n",
       "\n",
       ".copy-paste-icon {\n",
       "    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZD0iTTIwOCAwTDMzMi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw2Ny45IDY3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNDQ4IDMzNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek00OCAxMjhsODAgMCAwIDY0LTY0IDAgMCAyNTYgMTkyIDAgMC0zMiA2NCAwIDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OHoiLz48L3N2Zz4=);\n",
       "    background-repeat: no-repeat;\n",
       "    background-size: 14px 14px;\n",
       "    background-position: 0;\n",
       "    display: inline-block;\n",
       "    width: 14px;\n",
       "    height: 14px;\n",
       "    cursor: pointer;\n",
       "}\n",
       "</style><body><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeRegressor(max_depth=3, random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>DecisionTreeRegressor</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html\">?<span>Documentation for DecisionTreeRegressor</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\" data-param-prefix=\"\">\n",
       "        <div class=\"estimator-table\">\n",
       "            <details>\n",
       "                <summary>Parameters</summary>\n",
       "                <table class=\"parameters-table\">\n",
       "                  <tbody>\n",
       "                    \n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('criterion',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=criterion,-%7B%22squared_error%22%2C%20%22friedman_mse%22%2C%20%22absolute_error%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%22poisson%22%7D%2C%20default%3D%22squared_error%22\">\n",
       "            criterion\n",
       "            <span class=\"param-doc-description\">criterion: {\"squared_error\", \"friedman_mse\", \"absolute_error\",             \"poisson\"}, default=\"squared_error\"<br><br>The function to measure the quality of a split. Supported criteria<br>are \"squared_error\" for the mean squared error, which is equal to<br>variance reduction as feature selection criterion and minimizes the L2<br>loss using the mean of each terminal node, \"friedman_mse\", which uses<br>mean squared error with Friedman's improvement score for potential<br>splits, \"absolute_error\" for the mean absolute error, which minimizes<br>the L1 loss using the median of each terminal node, and \"poisson\" which<br>uses reduction in the half mean Poisson deviance to find splits.<br><br>.. versionadded:: 0.18<br>   Mean Absolute Error (MAE) criterion.<br><br>.. versionadded:: 0.24<br>    Poisson deviance criterion.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">&#x27;squared_error&#x27;</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('splitter',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=splitter,-%7B%22best%22%2C%20%22random%22%7D%2C%20default%3D%22best%22\">\n",
       "            splitter\n",
       "            <span class=\"param-doc-description\">splitter: {\"best\", \"random\"}, default=\"best\"<br><br>The strategy used to choose the split at each node. Supported<br>strategies are \"best\" to choose the best split and \"random\" to choose<br>the best random split.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">&#x27;best&#x27;</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"user-set\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('max_depth',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=max_depth,-int%2C%20default%3DNone\">\n",
       "            max_depth\n",
       "            <span class=\"param-doc-description\">max_depth: int, default=None<br><br>The maximum depth of the tree. If None, then nodes are expanded until<br>all leaves are pure or until all leaves contain less than<br>min_samples_split samples.<br><br>For an example of how ``max_depth`` influences the model, see<br>:ref:`sphx_glr_auto_examples_tree_plot_tree_regression.py`.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">3</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('min_samples_split',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=min_samples_split,-int%20or%20float%2C%20default%3D2\">\n",
       "            min_samples_split\n",
       "            <span class=\"param-doc-description\">min_samples_split: int or float, default=2<br><br>The minimum number of samples required to split an internal node:<br><br>- If int, then consider `min_samples_split` as the minimum number.<br>- If float, then `min_samples_split` is a fraction and<br>  `ceil(min_samples_split * n_samples)` are the minimum<br>  number of samples for each split.<br><br>.. versionchanged:: 0.18<br>   Added float values for fractions.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">2</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('min_samples_leaf',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=min_samples_leaf,-int%20or%20float%2C%20default%3D1\">\n",
       "            min_samples_leaf\n",
       "            <span class=\"param-doc-description\">min_samples_leaf: int or float, default=1<br><br>The minimum number of samples required to be at a leaf node.<br>A split point at any depth will only be considered if it leaves at<br>least ``min_samples_leaf`` training samples in each of the left and<br>right branches.  This may have the effect of smoothing the model,<br>especially in regression.<br><br>- If int, then consider `min_samples_leaf` as the minimum number.<br>- If float, then `min_samples_leaf` is a fraction and<br>  `ceil(min_samples_leaf * n_samples)` are the minimum<br>  number of samples for each node.<br><br>.. versionchanged:: 0.18<br>   Added float values for fractions.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">1</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('min_weight_fraction_leaf',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=min_weight_fraction_leaf,-float%2C%20default%3D0.0\">\n",
       "            min_weight_fraction_leaf\n",
       "            <span class=\"param-doc-description\">min_weight_fraction_leaf: float, default=0.0<br><br>The minimum weighted fraction of the sum total of weights (of all<br>the input samples) required to be at a leaf node. Samples have<br>equal weight when sample_weight is not provided.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">0.0</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('max_features',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=max_features,-int%2C%20float%20or%20%7B%22sqrt%22%2C%20%22log2%22%7D%2C%20default%3DNone\">\n",
       "            max_features\n",
       "            <span class=\"param-doc-description\">max_features: int, float or {\"sqrt\", \"log2\"}, default=None<br><br>The number of features to consider when looking for the best split:<br><br>- If int, then consider `max_features` features at each split.<br>- If float, then `max_features` is a fraction and<br>  `max(1, int(max_features * n_features_in_))` features are considered at each<br>  split.<br>- If \"sqrt\", then `max_features=sqrt(n_features)`.<br>- If \"log2\", then `max_features=log2(n_features)`.<br>- If None, then `max_features=n_features`.<br><br>Note: the search for a split does not stop until at least one<br>valid partition of the node samples is found, even if it requires to<br>effectively inspect more than ``max_features`` features.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">None</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"user-set\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('random_state',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=random_state,-int%2C%20RandomState%20instance%20or%20None%2C%20default%3DNone\">\n",
       "            random_state\n",
       "            <span class=\"param-doc-description\">random_state: int, RandomState instance or None, default=None<br><br>Controls the randomness of the estimator. The features are always<br>randomly permuted at each split, even if ``splitter`` is set to<br>``\"best\"``. When ``max_features < n_features``, the algorithm will<br>select ``max_features`` at random at each split before finding the best<br>split among them. But the best found split may vary across different<br>runs, even if ``max_features=n_features``. That is the case, if the<br>improvement of the criterion is identical for several splits and one<br>split has to be selected at random. To obtain a deterministic behaviour<br>during fitting, ``random_state`` has to be fixed to an integer.<br>See :term:`Glossary <random_state>` for details.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">42</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('max_leaf_nodes',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=max_leaf_nodes,-int%2C%20default%3DNone\">\n",
       "            max_leaf_nodes\n",
       "            <span class=\"param-doc-description\">max_leaf_nodes: int, default=None<br><br>Grow a tree with ``max_leaf_nodes`` in best-first fashion.<br>Best nodes are defined as relative reduction in impurity.<br>If None then unlimited number of leaf nodes.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">None</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('min_impurity_decrease',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=min_impurity_decrease,-float%2C%20default%3D0.0\">\n",
       "            min_impurity_decrease\n",
       "            <span class=\"param-doc-description\">min_impurity_decrease: float, default=0.0<br><br>A node will be split if this split induces a decrease of the impurity<br>greater than or equal to this value.<br><br>The weighted impurity decrease equation is the following::<br><br>    N_t / N * (impurity - N_t_R / N_t * right_impurity<br>                        - N_t_L / N_t * left_impurity)<br><br>where ``N`` is the total number of samples, ``N_t`` is the number of<br>samples at the current node, ``N_t_L`` is the number of samples in the<br>left child, and ``N_t_R`` is the number of samples in the right child.<br><br>``N``, ``N_t``, ``N_t_R`` and ``N_t_L`` all refer to the weighted sum,<br>if ``sample_weight`` is passed.<br><br>.. versionadded:: 0.19</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">0.0</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('ccp_alpha',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=ccp_alpha,-non-negative%20float%2C%20default%3D0.0\">\n",
       "            ccp_alpha\n",
       "            <span class=\"param-doc-description\">ccp_alpha: non-negative float, default=0.0<br><br>Complexity parameter used for Minimal Cost-Complexity Pruning. The<br>subtree with the largest cost complexity that is smaller than<br>``ccp_alpha`` will be chosen. By default, no pruning is performed. See<br>:ref:`minimal_cost_complexity_pruning` for details. See<br>:ref:`sphx_glr_auto_examples_tree_plot_cost_complexity_pruning.py`<br>for an example of such pruning.<br><br>.. versionadded:: 0.22</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">0.0</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('monotonic_cst',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.tree.DecisionTreeRegressor.html#:~:text=monotonic_cst,-array-like%20of%20int%20of%20shape%20%28n_features%29%2C%20default%3DNone\">\n",
       "            monotonic_cst\n",
       "            <span class=\"param-doc-description\">monotonic_cst: array-like of int of shape (n_features), default=None<br><br>Indicates the monotonicity constraint to enforce on each feature.<br>  - 1: monotonic increase<br>  - 0: no constraint<br>  - -1: monotonic decrease<br><br>If monotonic_cst is None, no constraints are applied.<br><br>Monotonicity constraints are not supported for:<br>  - multioutput regressions (i.e. when `n_outputs_ > 1`),<br>  - regressions trained on data with missing values.<br><br>Read more in the :ref:`User Guide <monotonic_cst_gbdt>`.<br><br>.. versionadded:: 1.4</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">None</td>\n",
       "        </tr>\n",
       "    \n",
       "                  </tbody>\n",
       "                </table>\n",
       "            </details>\n",
       "        </div>\n",
       "    </div></div></div></div></div><script>function copyToClipboard(text, element) {\n",
       "    // Get the parameter prefix from the closest toggleable content\n",
       "    const toggleableContent = element.closest('.sk-toggleable__content');\n",
       "    const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n",
       "    const fullParamName = paramPrefix ? `${paramPrefix}${text}` : text;\n",
       "\n",
       "    const originalStyle = element.style;\n",
       "    const computedStyle = window.getComputedStyle(element);\n",
       "    const originalWidth = computedStyle.width;\n",
       "    const originalHTML = element.innerHTML.replace('Copied!', '');\n",
       "\n",
       "    navigator.clipboard.writeText(fullParamName)\n",
       "        .then(() => {\n",
       "            element.style.width = originalWidth;\n",
       "            element.style.color = 'green';\n",
       "            element.innerHTML = \"Copied!\";\n",
       "\n",
       "            setTimeout(() => {\n",
       "                element.innerHTML = originalHTML;\n",
       "                element.style = originalStyle;\n",
       "            }, 2000);\n",
       "        })\n",
       "        .catch(err => {\n",
       "            console.error('Failed to copy:', err);\n",
       "            element.style.color = 'red';\n",
       "            element.innerHTML = \"Failed!\";\n",
       "            setTimeout(() => {\n",
       "                element.innerHTML = originalHTML;\n",
       "                element.style = originalStyle;\n",
       "            }, 2000);\n",
       "        });\n",
       "    return false;\n",
       "}\n",
       "\n",
       "document.querySelectorAll('.copy-paste-icon').forEach(function(element) {\n",
       "    const toggleableContent = element.closest('.sk-toggleable__content');\n",
       "    const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n",
       "    const paramName = element.parentElement.nextElementSibling\n",
       "        .textContent.trim().split(' ')[0];\n",
       "    const fullParamName = paramPrefix ? `${paramPrefix}${paramName}` : paramName;\n",
       "\n",
       "    element.setAttribute('title', fullParamName);\n",
       "});\n",
       "\n",
       "\n",
       "/**\n",
       " * Adapted from Skrub\n",
       " * https://github.com/skrub-data/skrub/blob/403466d1d5d4dc76a7ef569b3f8228db59a31dc3/skrub/_reporting/_data/templates/report.js#L789\n",
       " * @returns \"light\" or \"dark\"\n",
       " */\n",
       "function detectTheme(element) {\n",
       "    const body = document.querySelector('body');\n",
       "\n",
       "    // Check VSCode theme\n",
       "    const themeKindAttr = body.getAttribute('data-vscode-theme-kind');\n",
       "    const themeNameAttr = body.getAttribute('data-vscode-theme-name');\n",
       "\n",
       "    if (themeKindAttr && themeNameAttr) {\n",
       "        const themeKind = themeKindAttr.toLowerCase();\n",
       "        const themeName = themeNameAttr.toLowerCase();\n",
       "\n",
       "        if (themeKind.includes(\"dark\") || themeName.includes(\"dark\")) {\n",
       "            return \"dark\";\n",
       "        }\n",
       "        if (themeKind.includes(\"light\") || themeName.includes(\"light\")) {\n",
       "            return \"light\";\n",
       "        }\n",
       "    }\n",
       "\n",
       "    // Check Jupyter theme\n",
       "    if (body.getAttribute('data-jp-theme-light') === 'false') {\n",
       "        return 'dark';\n",
       "    } else if (body.getAttribute('data-jp-theme-light') === 'true') {\n",
       "        return 'light';\n",
       "    }\n",
       "\n",
       "    // Guess based on a parent element's color\n",
       "    const color = window.getComputedStyle(element.parentNode, null).getPropertyValue('color');\n",
       "    const match = color.match(/^rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)\\s*$/i);\n",
       "    if (match) {\n",
       "        const [r, g, b] = [\n",
       "            parseFloat(match[1]),\n",
       "            parseFloat(match[2]),\n",
       "            parseFloat(match[3])\n",
       "        ];\n",
       "\n",
       "        // https://en.wikipedia.org/wiki/HSL_and_HSV#Lightness\n",
       "        const luma = 0.299 * r + 0.587 * g + 0.114 * b;\n",
       "\n",
       "        if (luma > 180) {\n",
       "            // If the text is very bright we have a dark theme\n",
       "            return 'dark';\n",
       "        }\n",
       "        if (luma < 75) {\n",
       "            // If the text is very dark we have a light theme\n",
       "            return 'light';\n",
       "        }\n",
       "        // Otherwise fall back to the next heuristic.\n",
       "    }\n",
       "\n",
       "    // Fallback to system preference\n",
       "    return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n",
       "}\n",
       "\n",
       "\n",
       "function forceTheme(elementId) {\n",
       "    const estimatorElement = document.querySelector(`#${elementId}`);\n",
       "    if (estimatorElement === null) {\n",
       "        console.error(`Element with id ${elementId} not found.`);\n",
       "    } else {\n",
       "        const theme = detectTheme(estimatorElement);\n",
       "        estimatorElement.classList.add(theme);\n",
       "    }\n",
       "}\n",
       "\n",
       "forceTheme('sk-container-id-2');</script></body>"
      ],
      "text/plain": [
       "DecisionTreeRegressor(max_depth=3, random_state=42)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree_reg2 = DecisionTreeRegressor(max_depth=3, random_state=42)\n",
    "tree_reg2.fit(X_quad, y_quad)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.30265072, -0.40830374, -2.        , -2.        ,  0.27175756,\n",
       "       -2.        , -2.        ])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree_reg.tree_.threshold"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.30265072, -0.40830374, -0.45416115, -2.        , -2.        ,\n",
       "       -0.37022041, -2.        , -2.        ,  0.27175756, -0.21270403,\n",
       "       -2.        , -2.        ,  0.40399227, -2.        , -2.        ])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree_reg2.tree_.threshold"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9IAAAF6CAYAAAD1Q2B0AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAr5RJREFUeJzs3Xl8E3X6wPFPWnpw9cC2FBpOKacCgoCICrKsuN7rgYsXaEFcYV1lFcWfAl6LCiqr4gUV1gNFd111ZRe8wFVAUBCQuxyFptAD6AEUSknn90dImrRJmmOSmUye9+uVF3QymTyZSb7PfGe+h0lRFAUhhBBCCCGEEEL4JEbrAIQQQgghhBBCiEgiFWkhhBBCCCGEEMIPUpEWQgghhBBCCCH8IBVpIYQQQgghhBDCD1KRFkIIIYQQQggh/CAVaSGEEEIIIYQQwg9SkRZCCCGEEEIIIfwgFWkhhBBCCCGEEMIPUpEWQgghhBBCCCH8IBVpIUTImUwmhg0bpnUYLoYNG4bJZNI6DCGEEKIByZtC6J9UpIUQhrRw4UJMJhMLFy7UOhQAjh8/znvvvceoUaPo2rUrTZs2JSUlhaFDh/LBBx9oHZ4QQogop7e8CfDyyy9z5ZVX0rFjR5o3b05KSgp9+vRhxowZHDlyROvwRJRronUAQggRDb7//ntuv/12zjrrLH7zm99www03UFJSwieffMItt9zCypUrefXVV7UOUwghhNCN3NxcAIYOHUpmZiYnT55kzZo1PPHEE7z99tusXbuWzMxMjaMU0Uoq0kIIEQaZmZm8++67jBo1ivj4eMfyv/71rwwaNIi5c+dyxx13MHDgQA2jFEIIIfRjzZo1JCYmNlj++OOP8/TTT/PCCy8wa9YsDSITQpp2C6GZFStWYDKZmDFjBqtWreLSSy+lZcuWpKenc++993LixAkAlixZwuDBg2nevDmtW7dmypQpnD592rGdiooKnnvuOYYOHUrbtm2Jj4+nbdu23HHHHezevdvlPQ8fPozZbKZly5bs2rXL5+d8NX/+fM455xwSExNp164dU6ZM4eTJkx7XP3r0KNOnT6dXr16Ops4jR47khx9+aLCuvW/WyZMneeSRR2jfvj2JiYn06NGDV155BUVRHOuOHTuWO++8E4A777wTk8nkeNRXU1PDjBkz6NixIwkJCXTt2pXXXnstoM/vTd++fbnttttcKtEArVu3ZsKECQD873//U/19hRDCKCRvRlfeBNxWogFuuukmgID3uxBqkDvSQmhszZo1PPfcc4wcOZIJEyawfPlyXn/9dSorK7n66qsZO3Ys1157LYMHD2bJkiXMmjWLFi1aMG3aNAC2bdvGtGnTuPTSS/n9739P8+bN2b59O4sWLWLJkiWsX7+eDh06AHDWWWfxzjvv8Nvf/tbRnDguLg6AnJwcCgsLWbhwIV26dPH7czz11FNMmzaN1q1bM378eOLi4li8eDHbtm1zu/6RI0e45JJL2LJlC0OGDOGee+6hsrKSzz77jEsvvZSPP/6Y6667rsHrRo0axS+//MINN9wAwD//+U/uu+8+8vPzeeGFFwC47rrrKC8v57PPPuPaa6+lb9++HuMePXo0a9eu5Xe/+x2xsbF89NFHTJw4kbi4OMaPH+/3fgiE/Rg0aSJFshBCNEbypuTNJUuWAHDOOeeE5f2EcEsRQmhi+fLlCqAAyqeffupYfurUKaV3796KyWRS0tLSlLVr1zqeq6ysVDIyMpRWrVopp06dUhRFUcrLy5XDhw832P63336rxMTEKOPGjWvw3COPPKIAypQpUxRFUZS5c+cqgDJ69OiAPkteXp7SpEkTJSsrSykuLnYsr6ioULp166YAytChQ11ec8sttyiAMm/ePJflxcXFSrt27ZT09HTlxIkTjuVDhw5VAKVbt25KeXm5Y3l5ebnSrVs3xWQyKT/99JNj+YIFCxRAWbBggduY7dsbNGiQUlFR4Vi+fft2pUmTJkq3bt1c1i8rK1OmT5/u16OsrKzRfXf69Gnl3HPPVUwmk/Lrr782ur4QQkQryZvRmzfffPNNZfr06crkyZOVYcOGKYBy3nnnKUeOHHG7vhDhIBVpITRiPyG49NJLGzz35JNPKoBy5513NnjurrvuUgBlz549jb7Hueeeq3Ts2LHB8lOnTikDBgxQYmJilJdffllp2rSp0rFjR5fE6I8nnnhCAZQXXnihwXPvvvtugxOC0tJSJTY2Vhk+fLjb7b388ssKoPz73/92LLMn8Pfee8/je0yaNMmxzNcTgm+//dbjc5WVlY5le/fudZzA+frYu3ev2/d2NnXqVAVQ7rrrrkbXFUKIaCZ5M3rzZv/+/V3Wu+yyy1wuQAihBWlHKITG3DWfatOmTaPPHThwgE6dOgG2fmNz5sxhzZo1HDp0yKUvWP0+uWBrSvzBBx/Qt29f7rvvPmJjY3n//fdJSkoK6DNs3LgRgIsvvrjBc+6W/fTTT1itVqqrq5kxY0aD5/Py8gDYvn07V111VaPbsy/75Zdf/I69f//+DZaZzWYAysvLadmyJQAdO3Z06U+mhjfeeIOZM2dy3nnn8be//U3VbQshhFFJ3pzR4Hmj582ff/4ZgEOHDrF69WoeeeQR+vXrx3/+8x969+6tynsI4S+pSAuhMXdJ2N5X1ttzNTU1AHz88cfcfPPNtGjRgpEjR9KxY0eaNWvmmAty3759bt+3c+fO9OnTh5UrV9K/f38uvPDCgD9DRUUFABkZGQ2ea926dYNl9rkfV65cycqVKz1u9/jx4z5tz77MHoc/vO1jq9Xq9/Z8NX/+fO69917OPfdcvvrqK1q0aBGy9xJCCCORvBmdeRMgLS2Nq6++mr59+5Kdnc348eNZs2ZNSN9TCE+kIi1EhJsxYwaJiYmsW7eO7Oxsl+c+/PBDj6978cUXWblyJWeddRZr167ltdde49577w0ohuTkZABKSkocA7TYFRcXN1jfnoT/8pe/MHv2bL/eq7i4mPbt27t9D3scoVBeXs6cOXP8es39999PSkpKg+Xz5s1jwoQJ9OzZk2+++YazzjpLnSCFEEI0SvJm5OXN+tq1a0ePHj346aefqKqqolmzZoEFKUQQpCItRITbvXs3vXr1anAycPDgQfbs2eP2Nb/88guPPvoo3bp1Y/ny5QwZMoQHH3yQoUOH0qtXL79j6NOnD5988gnff/89AwYMcHnu+++/b7D+gAEDMJlMrF692u/3+v7777n11lvdvsd5553nWBYbGwuod3W8vLycJ554wq/XjB07tsEJgb0S3aNHD7799lvS09NViU8IIYRvJG9GVt705ODBg5hMJkfcQoSbzCMtRITr0KEDu3btcrmCffLkSf74xz86mrE5O378OKNHjwbggw8+oE2bNixatIiamhpGjx7tdf5KT2655RZiY2N58cUXKSkpcSyvrKzk6aefbrB+ZmYmo0aNYtWqVcyaNcttH6o1a9ZQVVXVYPlTTz3l0hStoqKCp59+GpPJxJgxYxzLW7VqBUBBQYHfn8cde18vfx4dO3Z02cb8+fOZMGEC3bt359tvv3XbpE8IIURoSd6MjLx58OBBCgsLG2xXURRmzJhBcXExv/nNb0hISFAlXiH8JXekhYhwf/rTn/jTn/7Eeeedx4033sjp06f56quvUBSFPn36OAY0sfvzn//Mjh07mD17tuNK9AUXXMD06dN5/PHHeeihh3jllVf8iqFLly5MmzaN6dOn07t3b0aNGkWTJk345z//Se/evdmxY0eD17z22mvs2LGDKVOm8O677zJ48GBSUlIoKCjg559/Ji8vj4MHDzZortW1a1fOOeccl/kwLRYLkydP5vzzz3esN3jwYJo2bcqcOXMoKytz3Pl97LHH/Ppsavn222+5++67URSFSy65hNdff73BOn379nU7B6gQQgj1SN6MjLy5Y8cOfvvb33LBBReQnZ1N69atOXToEN9//z07duygbdu2zJ07V5PYhABkHmkhtGKfxmP69OkNnvM2BcX06dMVQFm+fLmiKIpSW1urvPHGG0qvXr2UxMREJTMzU8nJyVFKSkoc01HY/eMf/1AA5be//a1SW1vrsl2r1apccsklDabP8Me8efOUnj17KvHx8YrZbFYefPBBpaqqyu18mIqiKFVVVcrzzz+v9O/fX2nevLnStGlTpVOnTsp1112nvPPOO0pNTY1jXftnOXHihDJlyhSlXbt2Snx8vNKtWzfl5ZdfbvB5FEVRlixZogwYMEBp2rSpY8qM+ttzZ8yYMT5PX+Ur+zH19hgzZoxq7yeEEEYjeTO68ubBgweVKVOmKIMGDVLS09OVJk2aKC1btlT69eunPP74427nAhcinEyKovJ8LkIIEQLDhg3ju+++U30KKiGEEMKIJG8KEVrSR1oIIYQQQgghhPCDVKSFEEIIIYQQQgg/yGBjQgi35syZQ3l5eaPrjR07tsHo1EIIIUS0kbwpRHTRZR/puXPnMmvWLIqKiujTpw+vvPIKAwcOdLvuvHnzeOedd9i8eTMA/fv3569//avL+mPHjuXvf/+7y+tGjhzJ0qVLQ/chhIhwHTt2ZN++fY2ut3z5coYNGxb6gIQQQggdk7wpRHTR3R3pxYsXM3nyZN544w0GDRrEnDlzGDlyJDt27HA75+qKFSsYPXo0F154IYmJiTz33HNcdtllbNmyhaysLMd6l19+OQsWLHD8LXPOCeFdfn6+1iEIIYQQEUPyphDRRXd3pAcNGsSAAQN49dVXAaitraVdu3b86U9/4pFHHmn09VarldTUVF599VXuuOMOwHZHury8nE8//TSUoQshhBBCCCGEiAK6uiN96tQp1q1bx9SpUx3LYmJiGDFiBKtXr/ZpG1VVVdTU1NCqVSuX5StWrCAjI4PU1FSGDx/O008/zVlnneVxO9XV1VRXVzv+rq2t5ciRI5x11lmYTCY/P5kQQggRfoqicPToUdq2bUtMTOjGF5WcKYQQwgj8yZu6qkgfOnQIq9VK69atXZa3bt2a7du3+7SNhx9+mLZt2zJixAjHsssvv5zrr7+eTp06sXv3bh599FF+97vfsXr1amJjY91uZ+bMmTzxxBOBfxghhBBCJwoKCjCbzSHbvuRMIYQQRuJL3tRV0+4DBw6QlZXFqlWrGDx4sGP5lClT+O6771izZo3X1z/77LM8//zzrFixgt69e3tcb8+ePZx99tl8/fXX/OY3v3G7Tv2r6xUVFbRv356CggKOHk1i9244+2xw6oatme7du3Pw4EHatGnj8wUHPYjUuIUQjZPft7reeQfuuw8UBUwmePllONN7yavKykratWtHeXk5ycnJIYsvknImRO73M1LjFkI0Tn7f6gpH3tTVHem0tDRiY2MpLi52WV5cXExmZqbX186ePZtnn32Wr7/+2mslGqBz586kpaWxa9cujxXphIQEtwOSffppEn/+cxK1tRATA2+9BTk5jXywELM3O4iJiSEpKUnbYPwQqXELIRonv2/1WCzw5z/bTgbA9u/998N114GvN5lD3bw61DmzoqKCH374gYsuukiVCwLBfj/VjsdXev1dabU/hDASvf6+1RSusiJceTN0HaYCEB8fT//+/fnmm28cy2pra/nmm29c7lDX9/zzz/PUU0+xdOlSzj///Ebfx2KxcPjwYdq0aeN3jPfdB7W19thgwgTbwRJCCCFCIS+vLu/YWa2wa5c28fhDrZy5e/durrrqKnbv3q1ugAHSWzxak/0hhPBFuMqKcOVNXd2RBpg8eTJjxozh/PPPZ+DAgcyZM4fjx49z5513AnDHHXeQlZXFzJkzAXjuueeYNm0aixYtomPHjhQVFQHQokULWrRowbFjx3jiiSe44YYbyMzMZPfu3UyZMoUuXbowcuRIv+Or3xDeflBC2PVMCCFEFMvOtt3NdT4piI2FLl20i8lXauXMc889lwMHDpCWlqZecEHQWzxak/0hhPBFuMqKcOVNXd2RBrj55puZPXs206ZNo2/f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1iGKKHL++edjNps538BTCfhSzsoUWepo1aoVo0ePplWrVsHnzcTEurx5xRW+vcZLPEL2hxBqMHzetFppBYwG4mnpWBzJeVMq0hHA6xcqNpYioBCwHKl0NI2IpC+hs4ULF7Jw4ULeeecdPvvsM7Zt20ZeXh6jRo1i165dXHrppWzYsEHrMHXp6aef5scff2Tw4MHs3LmTxYsXs2bNGl544QVKS0u56667tA5RRJGioiIKCwspKirSOpSQ8bWclSmygnfkyBHee+89jhw54tP6Xo9NQoIjb+4/UBpQ3vQ3HqOT/SFE8AyfN61WjgDvASc4CUR+3pSKdITw+IVyatp97Jhrp/1I+RI25uyzz2bx4sXk5ORQVVUlFUI3Tp06xauvvgrA3LlzadGiheO5yZMn07t3b7777jvWrVunVYhCGJKv5awvd1GFZ/n5+dx+++3k5+f7/BqPx8apaXd5WWB5M5B4jEz2hxCiUVYr+cDtwKh7KgyRN6UiHUHcfaEOVzjPYKY06LQfCV9CX73wwgs0b96cX375hR9++KHB8wUFBUyaNImzzz6bxMREWrVqxVVXXcWqVasarLtixQpMJhNjx47l4MGDjB07ltatW9O0aVP69evHO++847L+woULHX2f9+3b59Kfe9iwYW7jnT9/Pr1796Zp06ZkZmYyYcIEysvLg94P7qxcuZKKigrOPvtszjvvvAbP33jjjQD8+9//Dsn7CxHNjFTO6lXfvn05efIkffv29et17o7N0VN1FWlTgHkz0HiMSvaHEKJRVit9gZPAJb3aGyJvSkU6wh0srbsjbR/iSs+DigUjOTmZ3/3udwAsX77c5bnVq1fTp08f5s6dS1xcHFdeeSXnnHMOy5Yt45JLLmHx4sVut3nkyBEuuOACli5dyrBhw7j44ov59ddfGTNmDDNmzHCs16VLF8aMGQNA8+bNHX25x4wZw+WXX95gu1OmTGHixIm0adOG3/3udyiKwltvvcU111yDoigq7ZE69pFS+/Xr5/Z5+/JNmzap/t5CCBFqMTExJCQkEFO/E3MADlfVTX9lwlYe+5s31YzHCGR/CCEaZbUSAyQAMXFxWkejCinxIlybrNgGyyJhULFA2a92b9u2zbGssrKSG264gcrKSt577z22b9/OP//5T/73v/+xevVqkpKSGDduHKWlpQ229+9//5tu3bqxe/duFi9ezJdffsmqVato0aIFTz31FOvXrwfgoosuYuHChQCkpaU5+nIvXLiQRx55pMF23333XTZt2sSyZcv45JNP2LJlC126dOH7779vcBHAfrfbn0f9u+D79+8HwOzh0p59+b59+xrfyUIIoTN79uzh+uuvV2XQxNRMp1G7z1Sk/c2basZjBLI/hBCNqq1lD3A9sMcg4yk0aXwVoWdnZThXpJWIGVQsUGlptuHyy8rKHMvefvttDh48yF/+8hduvfVWl/XPP/98Hn/8cSZPnsx7773HAw884PJ8TEwMr7zyCs2bN3csGzBgABMnTuS5557jtddeY/78+X7H+dRTT9GtWzeXuO+55x4efPBB/ve//zF8+HDHc853u33VvXt3l7+PHTsGQLNmzdyub/98R48e9et9hBBCD2pra6murqa2/vxUAUhOd23aHUjeVDMeI5D9IYRolNVKLVANGKWkkIq0jlgstnkss7P9SOhOg421aAbbdhi3Eg04mkU7z9X85ZdfAnD99de7fc3FF18M4HbqrL59+7pUeO1Gjx7Nc889x/fffx9QnJdddlmDZV27dgXg4MGDLssvuugiLrroooDeRwghokGXLl1YsmRJg+UB5c3EuqbdyS3h563+501P8UQr2R9CiEZZrXQBlgC0batxMOqQpt06kZtrGzl0+HDXEUQb5VSRjm0Snkq0xWIb0dQ+MEs4HTp0CMBlrkr7KKFDhgxx2wx6wIABLq911qFDB7fvY58r+sCBAwHF6a6JdcuWtjnzqqurA9qmN/ZRuquqqtw+f/z4cZcYhBAi0gWcN51G7W7SRDF83hRCCF2wWuv+H9uwa2okkjvSOmCxwN13g71FlH0E0ZEjfagYO38RPQxiFdAVew9yc+tijYmxzbkZzmm1fvnlFwB69uzpWGZvSnbjjTe6NNGur35z6FDyZ8CVH374we/m4927d3fpm92+fXsALB7O0uzLPV04EEIIPVu/fj39+/dn3bp19OvXL7i86VSRDjRv1o/HG63zZjj4sz+EEFHKamU90B9Yt38/RigppCKtA3l5dScDdvYRRH2pSD8PVAHNnPrd2qmZwIM6cVFBRUUFy5YtA+DSSy91LDebzezYsYNHHnmE/v37+7VNT4Nv2Ze3DUPTk127dvH3v//dr9cMHTrUpSLdp08fAMfgaPXZl/fu3TvAKIXwz/PPP09V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",
      "text/plain": [
       "<Figure size 1000x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# extra code – this cell generates and saves Figure 6–5\n",
    "\n",
    "def plot_regression_predictions(tree_reg, X, y, axes=[-0.5, 0.5, -0.05, 0.25]):\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$\")\n",
    "    plt.plot(X, y, \"b.\")\n",
    "    plt.plot(x1, y_pred, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n",
    "\n",
    "fig, axes = plt.subplots(ncols=2, figsize=(10, 4), sharey=True)\n",
    "plt.sca(axes[0])\n",
    "plot_regression_predictions(tree_reg, X_quad, y_quad)\n",
    "\n",
    "th0, th1a, th1b = tree_reg.tree_.threshold[[0, 1, 4]]\n",
    "for split, style in ((th0, \"k-\"), (th1a, \"k--\"), (th1b, \"k--\")):\n",
    "    plt.plot([split, split], [-0.05, 0.25], style, linewidth=2)\n",
    "plt.text(th0, 0.16, \"Depth=0\", fontsize=15)\n",
    "plt.text(th1a + 0.01, -0.01, \"Depth=1\", horizontalalignment=\"center\", fontsize=13)\n",
    "plt.text(th1b + 0.01, -0.01, \"Depth=1\", fontsize=13)\n",
    "plt.ylabel(\"$y$\", rotation=0)\n",
    "plt.legend(loc=\"upper center\", fontsize=16)\n",
    "plt.title(\"max_depth=2\")\n",
    "\n",
    "plt.sca(axes[1])\n",
    "th2s = tree_reg2.tree_.threshold[[2, 5, 9, 12]]\n",
    "plot_regression_predictions(tree_reg2, X_quad, y_quad)\n",
    "for split, style in ((th0, \"k-\"), (th1a, \"k--\"), (th1b, \"k--\")):\n",
    "    plt.plot([split, split], [-0.05, 0.25], style, linewidth=2)\n",
    "for split in th2s:\n",
    "    plt.plot([split, split], [-0.05, 0.25], \"k:\", linewidth=1)\n",
    "plt.text(th2s[2] + 0.01, 0.15, \"Depth=2\", fontsize=13)\n",
    "plt.title(\"max_depth=3\")\n",
    "\n",
    "save_fig(\"tree_regression_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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l1xyCRiGwaFDh1BSUoKEhARbYq81a9Zg8+bNuPzyy9GvXz9ERUVh165d2LRpE/r3749rrrnGI69r3rx5+Pbbb1FUVIStW7di0qRJ6NGjB6qrq7F3715s374db731Fvr27QuDwYAFCxbg6aefxpAhQzB16lQ0NDTgP//5D/r06YMePXp45Jr08OGHH9oqcBw8eNDWJoj/888/Hw888IBt/6ysLLz77rt4++23cfDgQYwbNw779+/Hv//9b/Tr1w+PP/64r18C4Q98VmiLIAiO4xzrSMvZunWrrYanvI40x3FcRUUFd9ttt3GpqalcWFgYl5qayt12221cRUWF5msQah1v3rxZdZ/GxkbuySef5IYPH8517tyZi46O5vr168dNnz6de+ONN2w1M3/55Rdu0aJF3LBhw7iEhAQuMjKS69+/P5eVlcX9/PPPDv0++eSTnNls5sLDwzkA3Lhx42zb5M/lKNWRFvjggw+4CRMmcF27duUiIyO5vn37crfeeiu3Z88ezedXqo3JcRx3+vRp7h//+Ac3cOBAW+3oP//5z1xJSYnDvs7eW6WaoC+//DJ39dVXc3369OGioqK4hIQEbuTIkVxubq6kFidBEIQvcFavV+keJiC/9zmrI610n+U45/d4Z+gZh06dOsXdfffdXN++fbnIyEjObDZzK1as4JqbmxXHIGfX5Oy1KPUl7H/8+HFu7ty5XHJyMhcZGckNGTKEe+uttxz6cPZ+syzLLVq0iDObzVxkZCQXGxvLXXDBBdycOXO4TZs22fbbuHEjN2vWLG7QoEFcly5duJiYGO7CCy/kHnzwQa62tlbx2l3h7HW/++673KRJk7j4+HguPDyc69mzJzd+/Hju6aeflpyvubmZe+KJJ2zX37t3b+7uu+/mTp06pdi/s++lJxC+v2p/SnOTc+fOcY888gh33nnncREREVxKSgo3Z84crqqqyivXSAQeDMdRvniCIAiCIAiC8CZ9+/YFAJuVkyCI4IZipAmCIAiCIAiCIAhCBySkCYIgCIIgCIIgCEIHlGyMIAiCIAiCCCi2bNliKzHojKFDh7arcgIBFBYWanI3nz59usfKPRJEKBCQQvqll17CU089haqqKgwZMgQvvPACRo4cqbhvfn4+3njjDezZswcAXwx+5cqVkv1nz56NoqIiyXGZmZnYuHGj914EQRAEQRAE4RZb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upPIysoS9913nzh8+LA4cOCASEpKElOmTLHtN5vNYvDgweLw4cNuzwFWInWhtF/r6upEamqqGDJkiDhz5oyoqKiwfTU3NwfqZQTcpk2bRHh4uCguLhanTp0Subm5Ijo6WlRWVgohhJg2bZpYtGiR7fiDBw+K0NBQsWrVKvHll1+KJUuWiG7duonjx48H6iXoltK+XbFihQgLCxPvv/++w+9nQ0NDoF6CbintW2fBWoW0M+NYqR2Ol+rgeKkdjpfa6arjJQPpTqK6ulpMmTJF3HbbbSIyMlLMmDHD4T/6uXPnBACxb98+t+fghwNXSvt13759AoDs17lz5wLzInTi9ddfF/369RNhYWEiJSVFfPrpp7Z9o0aNEtnZ2Q7Hb968Wdx5550iLCxM/OhHPxI7d+70c4uDh5K+7d+/v+zv55IlS/zf8CCg9PfWXrB+MOjMOFZqh+OlejheaofjpXa64ngpCSGEtpPHiYiIiIiIiDoPVu0mIiIiIiIiUoCBNBEREREREZECDKSJiIiIiIiIFGAgTURERERERKQAA2kiIiIiIiIiBRhIExERERERESnAQJqIiIiIiIhIAQbSRERERERERAowkCYiIiIiIiJSgIE0ERERERERkQIMpInIb9LS0iBJEkwmk8P2+vp6DB06FOHh4di9e3eAWkdERBR4HCuJggMDaSLym5UrVwIAnnvuOdu2Gzdu4OGHH8a///1vlJSU4Kc//WmgmkdERBRwHCuJggMDaSLymwcffBDjxo3D3r17sX//fgghMH36dOzduxevvvoqHn300UA3kYiIKKA4VhIFB0kIIQLdCCLqOo4fP46hQ4dixIgRSElJwerVq7F48WIsX7480E0jIiLSBY6VRPrHQJqI/C47OxsbNmwAAPz2t79FUVGRyzF/+9vfUFBQgKNHj6K2thbnzp3DgAED/NxSIiKiwOBYSaRvnNpNRH4XHx8PAOjevTvy8/Nlj7l27RoefPBBLFu2zJ9NIyIi0gWOlUT6FhroBhBR1/LGG2/glVdeQUJCAqqqqlBSUoJZs2a5HDdt2jQAwIkTJ/zdRCIiooDiWEmkf8xIE5HfbN68GU8++SR+8pOf4PPPP0dUVBSWLl2K69evB7ppREREusCxkig4MJAmIr/Ys2cPpk2bhiFDhmDbtm3o1asX5s+fj4qKCqxduzbQzSMiIgo4jpVEwYPFxohIc8eOHcNDDz2EuLg4HDp0CL169QIA1NfXY+DAgWhpacHXX3+N2NhYl8eeOHECQ4YMYQEVIiLq1DhWEgUXZqSJSFNnz57F2LFjERYWhl27dtk+GABAZGQkFi5ciLq6OuTl5QWwlURERIHDsZIo+DAjTUS6xqvsREREnnGsJPI/Vu0mIl2qqanB+fPncfbsWQDAqVOncPXqVfTr1092WhsREVFXw7GSKHCYkSYiXSouLsaMGTNctr/zzjuYPn26/xtERESkMxwriQKHgTQRERERERGRAiw2RkRERERERKQAA2kiIiIiIiIiBRhIExERERERESnAQJqIiIiIiIhIAQbSRERERERERAowkCYiIiIiIiJSgIE0ERERERERkQIMpImIiIiIiIgUYCBNREREREREpAADaSIiIiIiIiIFGEgTERERERERKcBAmoiIiIiIiEiB/w93iH4/867ehwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1000x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# extra code – this cell generates and saves Figure 6–6\n",
    "\n",
    "tree_reg1 = DecisionTreeRegressor(random_state=42)\n",
    "tree_reg2 = DecisionTreeRegressor(random_state=42, min_samples_leaf=10)\n",
    "tree_reg1.fit(X_quad, y_quad)\n",
    "tree_reg2.fit(X_quad, y_quad)\n",
    "\n",
    "x1 = np.linspace(-0.5, 0.5, 500).reshape(-1, 1)\n",
    "y_pred1 = tree_reg1.predict(x1)\n",
    "y_pred2 = tree_reg2.predict(x1)\n",
    "\n",
    "fig, axes = plt.subplots(ncols=2, figsize=(10, 4), sharey=True)\n",
    "\n",
    "plt.sca(axes[0])\n",
    "plt.plot(X_quad, y_quad, \"b.\")\n",
    "plt.plot(x1, y_pred1, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n",
    "plt.axis([-0.5, 0.5, -0.05, 0.25])\n",
    "plt.xlabel(\"$x_1$\")\n",
    "plt.ylabel(\"$y$\", rotation=0)\n",
    "plt.legend(loc=\"upper center\")\n",
    "plt.title(\"No restrictions\")\n",
    "\n",
    "plt.sca(axes[1])\n",
    "plt.plot(X_quad, y_quad, \"b.\")\n",
    "plt.plot(x1, y_pred2, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n",
    "plt.axis([-0.5, 0.5, -0.05, 0.25])\n",
    "plt.xlabel(\"$x_1$\")\n",
    "plt.title(f\"min_samples_leaf={tree_reg2.min_samples_leaf}\")\n",
    "\n",
    "save_fig(\"tree_regression_regularization_plot\")\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.13.5"
  },
  "nav_menu": {
   "height": "309px",
   "width": "468px"
  },
  "toc": {
   "navigate_menu": true,
   "number_sections": true,
   "sideBar": true,
   "threshold": 6,
   "toc_cell": false,
   "toc_section_display": "block",
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
