machinelearning

Machine learning code
git clone git://git.laack.co/machinelearning.git
Log | Files | Refs

DecisionTreeAndGradientBoostingQuadratic.ipynb (168037B)


      1 {
      2  "cells": [
      3   {
      4    "cell_type": "code",
      5    "execution_count": 54,
      6    "metadata": {},
      7    "outputs": [
      8     {
      9      "data": {
     10       "text/plain": [
     11        "<matplotlib.collections.PathCollection at 0x7fda6c2c6850>"
     12       ]
     13      },
     14      "execution_count": 54,
     15      "metadata": {},
     16      "output_type": "execute_result"
     17     },
     18     {
     19      "data": {
     20       "image/png": "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T396xLH6+noSduNk9n4bhmGsXLnSKC4uNjo7O9MxxKxi5n6/9957o/5G33jjjcb1119vbNu2zRgcHEzn0G2D4CXLzJw507jsssuMl19+2diyZYtx/vnnG3Pnzg19/4033jA++tGPGi+//HLEnyF2G8XF7L3u7+836urqjIsvvth4/fXXjd7e3tDj/fffz9SvYUsbNmwwCgsLjQcffNDYsWOHcdtttxklJSWG1+s1DMMwvvjFLxpLliwJnf/CCy8Yp512mrFq1Spj586dxrJly4wxY8YY27Zty9Sv4Chm7/eKFSuMgoIC49FHHx3xOj569GimfgVHMXu/T8VuI4KXrHPo0CFj7ty5xplnnmkUFxcbjY2NI/6g7Nmzx5BkPP/88xF/BsFLfMze6+eff96QFPaxZ8+ezPwSNvaTn/zEOPfcc42CggKjtrbWeOmll0Lfu/baa40FCxaMOP9Xv/qVccEFFxgFBQXGxz72MePpp59O84idzcz9/vCHPxz2dbxs2bL0D9yhzL6+T0bwYhguwzCMdC9VAQAAJIrdRgAAwFEIXgAAgKMQvAAAAEcheAEAAI5C8AIAAByF4AUAADgKwQsAAHAUghcAAOAoBC8AAMBRCF4AAICjELwAAABHIXgBAACO8v8DePEwspedH+wAAAAASUVORK5CYII=",
     21       "text/plain": [
     22        "<Figure size 640x480 with 1 Axes>"
     23       ]
     24      },
     25      "metadata": {},
     26      "output_type": "display_data"
     27     }
     28    ],
     29    "source": [
     30     "import numpy as np\n",
     31     "from sklearn.tree import DecisionTreeRegressor\n",
     32     "import matplotlib.pyplot as plt\n",
     33     "np.random.seed(10)\n",
     34     "X = np.random.rand(100,1) - .5\n",
     35     "y = 3 * X[:,0] ** 2 + .05 * np.random.randn(100)\n",
     36     "plt.scatter(X,y)"
     37    ]
     38   },
     39   {
     40    "cell_type": "code",
     41    "execution_count": 55,
     42    "metadata": {},
     43    "outputs": [
     44     {
     45      "data": {
     46       "text/html": [
     47        "<style>#sk-container-id-22 {\n",
     48        "  /* Definition of color scheme common for light and dark mode */\n",
     49        "  --sklearn-color-text: black;\n",
     50        "  --sklearn-color-line: gray;\n",
     51        "  /* Definition of color scheme for unfitted estimators */\n",
     52        "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
     53        "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
     54        "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
     55        "  --sklearn-color-unfitted-level-3: chocolate;\n",
     56        "  /* Definition of color scheme for fitted estimators */\n",
     57        "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
     58        "  --sklearn-color-fitted-level-1: #d4ebff;\n",
     59        "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
     60        "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
     61        "\n",
     62        "  /* Specific color for light theme */\n",
     63        "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
     64        "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
     65        "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
     66        "  --sklearn-color-icon: #696969;\n",
     67        "\n",
     68        "  @media (prefers-color-scheme: dark) {\n",
     69        "    /* Redefinition of color scheme for dark theme */\n",
     70        "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
     71        "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
     72        "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
     73        "    --sklearn-color-icon: #878787;\n",
     74        "  }\n",
     75        "}\n",
     76        "\n",
     77        "#sk-container-id-22 {\n",
     78        "  color: var(--sklearn-color-text);\n",
     79        "}\n",
     80        "\n",
     81        "#sk-container-id-22 pre {\n",
     82        "  padding: 0;\n",
     83        "}\n",
     84        "\n",
     85        "#sk-container-id-22 input.sk-hidden--visually {\n",
     86        "  border: 0;\n",
     87        "  clip: rect(1px 1px 1px 1px);\n",
     88        "  clip: rect(1px, 1px, 1px, 1px);\n",
     89        "  height: 1px;\n",
     90        "  margin: -1px;\n",
     91        "  overflow: hidden;\n",
     92        "  padding: 0;\n",
     93        "  position: absolute;\n",
     94        "  width: 1px;\n",
     95        "}\n",
     96        "\n",
     97        "#sk-container-id-22 div.sk-dashed-wrapped {\n",
     98        "  border: 1px dashed var(--sklearn-color-line);\n",
     99        "  margin: 0 0.4em 0.5em 0.4em;\n",
    100        "  box-sizing: border-box;\n",
    101        "  padding-bottom: 0.4em;\n",
    102        "  background-color: var(--sklearn-color-background);\n",
    103        "}\n",
    104        "\n",
    105        "#sk-container-id-22 div.sk-container {\n",
    106        "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
    107        "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
    108        "     so we also need the `!important` here to be able to override the\n",
    109        "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
    110        "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
    111        "  display: inline-block !important;\n",
    112        "  position: relative;\n",
    113        "}\n",
    114        "\n",
    115        "#sk-container-id-22 div.sk-text-repr-fallback {\n",
    116        "  display: none;\n",
    117        "}\n",
    118        "\n",
    119        "div.sk-parallel-item,\n",
    120        "div.sk-serial,\n",
    121        "div.sk-item {\n",
    122        "  /* draw centered vertical line to link estimators */\n",
    123        "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
    124        "  background-size: 2px 100%;\n",
    125        "  background-repeat: no-repeat;\n",
    126        "  background-position: center center;\n",
    127        "}\n",
    128        "\n",
    129        "/* Parallel-specific style estimator block */\n",
    130        "\n",
    131        "#sk-container-id-22 div.sk-parallel-item::after {\n",
    132        "  content: \"\";\n",
    133        "  width: 100%;\n",
    134        "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
    135        "  flex-grow: 1;\n",
    136        "}\n",
    137        "\n",
    138        "#sk-container-id-22 div.sk-parallel {\n",
    139        "  display: flex;\n",
    140        "  align-items: stretch;\n",
    141        "  justify-content: center;\n",
    142        "  background-color: var(--sklearn-color-background);\n",
    143        "  position: relative;\n",
    144        "}\n",
    145        "\n",
    146        "#sk-container-id-22 div.sk-parallel-item {\n",
    147        "  display: flex;\n",
    148        "  flex-direction: column;\n",
    149        "}\n",
    150        "\n",
    151        "#sk-container-id-22 div.sk-parallel-item:first-child::after {\n",
    152        "  align-self: flex-end;\n",
    153        "  width: 50%;\n",
    154        "}\n",
    155        "\n",
    156        "#sk-container-id-22 div.sk-parallel-item:last-child::after {\n",
    157        "  align-self: flex-start;\n",
    158        "  width: 50%;\n",
    159        "}\n",
    160        "\n",
    161        "#sk-container-id-22 div.sk-parallel-item:only-child::after {\n",
    162        "  width: 0;\n",
    163        "}\n",
    164        "\n",
    165        "/* Serial-specific style estimator block */\n",
    166        "\n",
    167        "#sk-container-id-22 div.sk-serial {\n",
    168        "  display: flex;\n",
    169        "  flex-direction: column;\n",
    170        "  align-items: center;\n",
    171        "  background-color: var(--sklearn-color-background);\n",
    172        "  padding-right: 1em;\n",
    173        "  padding-left: 1em;\n",
    174        "}\n",
    175        "\n",
    176        "\n",
    177        "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
    178        "clickable and can be expanded/collapsed.\n",
    179        "- Pipeline and ColumnTransformer use this feature and define the default style\n",
    180        "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
    181        "*/\n",
    182        "\n",
    183        "/* Pipeline and ColumnTransformer style (default) */\n",
    184        "\n",
    185        "#sk-container-id-22 div.sk-toggleable {\n",
    186        "  /* Default theme specific background. It is overwritten whether we have a\n",
    187        "  specific estimator or a Pipeline/ColumnTransformer */\n",
    188        "  background-color: var(--sklearn-color-background);\n",
    189        "}\n",
    190        "\n",
    191        "/* Toggleable label */\n",
    192        "#sk-container-id-22 label.sk-toggleable__label {\n",
    193        "  cursor: pointer;\n",
    194        "  display: block;\n",
    195        "  width: 100%;\n",
    196        "  margin-bottom: 0;\n",
    197        "  padding: 0.5em;\n",
    198        "  box-sizing: border-box;\n",
    199        "  text-align: center;\n",
    200        "}\n",
    201        "\n",
    202        "#sk-container-id-22 label.sk-toggleable__label-arrow:before {\n",
    203        "  /* Arrow on the left of the label */\n",
    204        "  content: \"▸\";\n",
    205        "  float: left;\n",
    206        "  margin-right: 0.25em;\n",
    207        "  color: var(--sklearn-color-icon);\n",
    208        "}\n",
    209        "\n",
    210        "#sk-container-id-22 label.sk-toggleable__label-arrow:hover:before {\n",
    211        "  color: var(--sklearn-color-text);\n",
    212        "}\n",
    213        "\n",
    214        "/* Toggleable content - dropdown */\n",
    215        "\n",
    216        "#sk-container-id-22 div.sk-toggleable__content {\n",
    217        "  max-height: 0;\n",
    218        "  max-width: 0;\n",
    219        "  overflow: hidden;\n",
    220        "  text-align: left;\n",
    221        "  /* unfitted */\n",
    222        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
    223        "}\n",
    224        "\n",
    225        "#sk-container-id-22 div.sk-toggleable__content.fitted {\n",
    226        "  /* fitted */\n",
    227        "  background-color: var(--sklearn-color-fitted-level-0);\n",
    228        "}\n",
    229        "\n",
    230        "#sk-container-id-22 div.sk-toggleable__content pre {\n",
    231        "  margin: 0.2em;\n",
    232        "  border-radius: 0.25em;\n",
    233        "  color: var(--sklearn-color-text);\n",
    234        "  /* unfitted */\n",
    235        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
    236        "}\n",
    237        "\n",
    238        "#sk-container-id-22 div.sk-toggleable__content.fitted pre {\n",
    239        "  /* unfitted */\n",
    240        "  background-color: var(--sklearn-color-fitted-level-0);\n",
    241        "}\n",
    242        "\n",
    243        "#sk-container-id-22 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
    244        "  /* Expand drop-down */\n",
    245        "  max-height: 200px;\n",
    246        "  max-width: 100%;\n",
    247        "  overflow: auto;\n",
    248        "}\n",
    249        "\n",
    250        "#sk-container-id-22 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
    251        "  content: \"▾\";\n",
    252        "}\n",
    253        "\n",
    254        "/* Pipeline/ColumnTransformer-specific style */\n",
    255        "\n",
    256        "#sk-container-id-22 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
    257        "  color: var(--sklearn-color-text);\n",
    258        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
    259        "}\n",
    260        "\n",
    261        "#sk-container-id-22 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
    262        "  background-color: var(--sklearn-color-fitted-level-2);\n",
    263        "}\n",
    264        "\n",
    265        "/* Estimator-specific style */\n",
    266        "\n",
    267        "/* Colorize estimator box */\n",
    268        "#sk-container-id-22 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
    269        "  /* unfitted */\n",
    270        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
    271        "}\n",
    272        "\n",
    273        "#sk-container-id-22 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
    274        "  /* fitted */\n",
    275        "  background-color: var(--sklearn-color-fitted-level-2);\n",
    276        "}\n",
    277        "\n",
    278        "#sk-container-id-22 div.sk-label label.sk-toggleable__label,\n",
    279        "#sk-container-id-22 div.sk-label label {\n",
    280        "  /* The background is the default theme color */\n",
    281        "  color: var(--sklearn-color-text-on-default-background);\n",
    282        "}\n",
    283        "\n",
    284        "/* On hover, darken the color of the background */\n",
    285        "#sk-container-id-22 div.sk-label:hover label.sk-toggleable__label {\n",
    286        "  color: var(--sklearn-color-text);\n",
    287        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
    288        "}\n",
    289        "\n",
    290        "/* Label box, darken color on hover, fitted */\n",
    291        "#sk-container-id-22 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
    292        "  color: var(--sklearn-color-text);\n",
    293        "  background-color: var(--sklearn-color-fitted-level-2);\n",
    294        "}\n",
    295        "\n",
    296        "/* Estimator label */\n",
    297        "\n",
    298        "#sk-container-id-22 div.sk-label label {\n",
    299        "  font-family: monospace;\n",
    300        "  font-weight: bold;\n",
    301        "  display: inline-block;\n",
    302        "  line-height: 1.2em;\n",
    303        "}\n",
    304        "\n",
    305        "#sk-container-id-22 div.sk-label-container {\n",
    306        "  text-align: center;\n",
    307        "}\n",
    308        "\n",
    309        "/* Estimator-specific */\n",
    310        "#sk-container-id-22 div.sk-estimator {\n",
    311        "  font-family: monospace;\n",
    312        "  border: 1px dotted var(--sklearn-color-border-box);\n",
    313        "  border-radius: 0.25em;\n",
    314        "  box-sizing: border-box;\n",
    315        "  margin-bottom: 0.5em;\n",
    316        "  /* unfitted */\n",
    317        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
    318        "}\n",
    319        "\n",
    320        "#sk-container-id-22 div.sk-estimator.fitted {\n",
    321        "  /* fitted */\n",
    322        "  background-color: var(--sklearn-color-fitted-level-0);\n",
    323        "}\n",
    324        "\n",
    325        "/* on hover */\n",
    326        "#sk-container-id-22 div.sk-estimator:hover {\n",
    327        "  /* unfitted */\n",
    328        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
    329        "}\n",
    330        "\n",
    331        "#sk-container-id-22 div.sk-estimator.fitted:hover {\n",
    332        "  /* fitted */\n",
    333        "  background-color: var(--sklearn-color-fitted-level-2);\n",
    334        "}\n",
    335        "\n",
    336        "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
    337        "\n",
    338        "/* Common style for \"i\" and \"?\" */\n",
    339        "\n",
    340        ".sk-estimator-doc-link,\n",
    341        "a:link.sk-estimator-doc-link,\n",
    342        "a:visited.sk-estimator-doc-link {\n",
    343        "  float: right;\n",
    344        "  font-size: smaller;\n",
    345        "  line-height: 1em;\n",
    346        "  font-family: monospace;\n",
    347        "  background-color: var(--sklearn-color-background);\n",
    348        "  border-radius: 1em;\n",
    349        "  height: 1em;\n",
    350        "  width: 1em;\n",
    351        "  text-decoration: none !important;\n",
    352        "  margin-left: 1ex;\n",
    353        "  /* unfitted */\n",
    354        "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
    355        "  color: var(--sklearn-color-unfitted-level-1);\n",
    356        "}\n",
    357        "\n",
    358        ".sk-estimator-doc-link.fitted,\n",
    359        "a:link.sk-estimator-doc-link.fitted,\n",
    360        "a:visited.sk-estimator-doc-link.fitted {\n",
    361        "  /* fitted */\n",
    362        "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
    363        "  color: var(--sklearn-color-fitted-level-1);\n",
    364        "}\n",
    365        "\n",
    366        "/* On hover */\n",
    367        "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
    368        ".sk-estimator-doc-link:hover,\n",
    369        "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
    370        ".sk-estimator-doc-link:hover {\n",
    371        "  /* unfitted */\n",
    372        "  background-color: var(--sklearn-color-unfitted-level-3);\n",
    373        "  color: var(--sklearn-color-background);\n",
    374        "  text-decoration: none;\n",
    375        "}\n",
    376        "\n",
    377        "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
    378        ".sk-estimator-doc-link.fitted:hover,\n",
    379        "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
    380        ".sk-estimator-doc-link.fitted:hover {\n",
    381        "  /* fitted */\n",
    382        "  background-color: var(--sklearn-color-fitted-level-3);\n",
    383        "  color: var(--sklearn-color-background);\n",
    384        "  text-decoration: none;\n",
    385        "}\n",
    386        "\n",
    387        "/* Span, style for the box shown on hovering the info icon */\n",
    388        ".sk-estimator-doc-link span {\n",
    389        "  display: none;\n",
    390        "  z-index: 9999;\n",
    391        "  position: relative;\n",
    392        "  font-weight: normal;\n",
    393        "  right: .2ex;\n",
    394        "  padding: .5ex;\n",
    395        "  margin: .5ex;\n",
    396        "  width: min-content;\n",
    397        "  min-width: 20ex;\n",
    398        "  max-width: 50ex;\n",
    399        "  color: var(--sklearn-color-text);\n",
    400        "  box-shadow: 2pt 2pt 4pt #999;\n",
    401        "  /* unfitted */\n",
    402        "  background: var(--sklearn-color-unfitted-level-0);\n",
    403        "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
    404        "}\n",
    405        "\n",
    406        ".sk-estimator-doc-link.fitted span {\n",
    407        "  /* fitted */\n",
    408        "  background: var(--sklearn-color-fitted-level-0);\n",
    409        "  border: var(--sklearn-color-fitted-level-3);\n",
    410        "}\n",
    411        "\n",
    412        ".sk-estimator-doc-link:hover span {\n",
    413        "  display: block;\n",
    414        "}\n",
    415        "\n",
    416        "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
    417        "\n",
    418        "#sk-container-id-22 a.estimator_doc_link {\n",
    419        "  float: right;\n",
    420        "  font-size: 1rem;\n",
    421        "  line-height: 1em;\n",
    422        "  font-family: monospace;\n",
    423        "  background-color: var(--sklearn-color-background);\n",
    424        "  border-radius: 1rem;\n",
    425        "  height: 1rem;\n",
    426        "  width: 1rem;\n",
    427        "  text-decoration: none;\n",
    428        "  /* unfitted */\n",
    429        "  color: var(--sklearn-color-unfitted-level-1);\n",
    430        "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
    431        "}\n",
    432        "\n",
    433        "#sk-container-id-22 a.estimator_doc_link.fitted {\n",
    434        "  /* fitted */\n",
    435        "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
    436        "  color: var(--sklearn-color-fitted-level-1);\n",
    437        "}\n",
    438        "\n",
    439        "/* On hover */\n",
    440        "#sk-container-id-22 a.estimator_doc_link:hover {\n",
    441        "  /* unfitted */\n",
    442        "  background-color: var(--sklearn-color-unfitted-level-3);\n",
    443        "  color: var(--sklearn-color-background);\n",
    444        "  text-decoration: none;\n",
    445        "}\n",
    446        "\n",
    447        "#sk-container-id-22 a.estimator_doc_link.fitted:hover {\n",
    448        "  /* fitted */\n",
    449        "  background-color: var(--sklearn-color-fitted-level-3);\n",
    450        "}\n",
    451        "</style><div id=\"sk-container-id-22\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeRegressor(max_depth=2, random_state=10)</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-22\" type=\"checkbox\" checked><label for=\"sk-estimator-id-22\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;DecisionTreeRegressor<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.tree.DecisionTreeRegressor.html\">?<span>Documentation for DecisionTreeRegressor</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>DecisionTreeRegressor(max_depth=2, random_state=10)</pre></div> </div></div></div></div>"
    452       ],
    453       "text/plain": [
    454        "DecisionTreeRegressor(max_depth=2, random_state=10)"
    455       ]
    456      },
    457      "execution_count": 55,
    458      "metadata": {},
    459      "output_type": "execute_result"
    460     }
    461    ],
    462    "source": [
    463     "tree_reg1 = DecisionTreeRegressor(max_depth=2, random_state=10)\n",
    464     "tree_reg1.fit(X,y)"
    465    ]
    466   },
    467   {
    468    "cell_type": "code",
    469    "execution_count": 56,
    470    "metadata": {},
    471    "outputs": [
    472     {
    473      "data": {
    474       "text/html": [
    475        "<style>#sk-container-id-23 {\n",
    476        "  /* Definition of color scheme common for light and dark mode */\n",
    477        "  --sklearn-color-text: black;\n",
    478        "  --sklearn-color-line: gray;\n",
    479        "  /* Definition of color scheme for unfitted estimators */\n",
    480        "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
    481        "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
    482        "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
    483        "  --sklearn-color-unfitted-level-3: chocolate;\n",
    484        "  /* Definition of color scheme for fitted estimators */\n",
    485        "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
    486        "  --sklearn-color-fitted-level-1: #d4ebff;\n",
    487        "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
    488        "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
    489        "\n",
    490        "  /* Specific color for light theme */\n",
    491        "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
    492        "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
    493        "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
    494        "  --sklearn-color-icon: #696969;\n",
    495        "\n",
    496        "  @media (prefers-color-scheme: dark) {\n",
    497        "    /* Redefinition of color scheme for dark theme */\n",
    498        "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
    499        "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
    500        "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
    501        "    --sklearn-color-icon: #878787;\n",
    502        "  }\n",
    503        "}\n",
    504        "\n",
    505        "#sk-container-id-23 {\n",
    506        "  color: var(--sklearn-color-text);\n",
    507        "}\n",
    508        "\n",
    509        "#sk-container-id-23 pre {\n",
    510        "  padding: 0;\n",
    511        "}\n",
    512        "\n",
    513        "#sk-container-id-23 input.sk-hidden--visually {\n",
    514        "  border: 0;\n",
    515        "  clip: rect(1px 1px 1px 1px);\n",
    516        "  clip: rect(1px, 1px, 1px, 1px);\n",
    517        "  height: 1px;\n",
    518        "  margin: -1px;\n",
    519        "  overflow: hidden;\n",
    520        "  padding: 0;\n",
    521        "  position: absolute;\n",
    522        "  width: 1px;\n",
    523        "}\n",
    524        "\n",
    525        "#sk-container-id-23 div.sk-dashed-wrapped {\n",
    526        "  border: 1px dashed var(--sklearn-color-line);\n",
    527        "  margin: 0 0.4em 0.5em 0.4em;\n",
    528        "  box-sizing: border-box;\n",
    529        "  padding-bottom: 0.4em;\n",
    530        "  background-color: var(--sklearn-color-background);\n",
    531        "}\n",
    532        "\n",
    533        "#sk-container-id-23 div.sk-container {\n",
    534        "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
    535        "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
    536        "     so we also need the `!important` here to be able to override the\n",
    537        "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
    538        "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
    539        "  display: inline-block !important;\n",
    540        "  position: relative;\n",
    541        "}\n",
    542        "\n",
    543        "#sk-container-id-23 div.sk-text-repr-fallback {\n",
    544        "  display: none;\n",
    545        "}\n",
    546        "\n",
    547        "div.sk-parallel-item,\n",
    548        "div.sk-serial,\n",
    549        "div.sk-item {\n",
    550        "  /* draw centered vertical line to link estimators */\n",
    551        "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
    552        "  background-size: 2px 100%;\n",
    553        "  background-repeat: no-repeat;\n",
    554        "  background-position: center center;\n",
    555        "}\n",
    556        "\n",
    557        "/* Parallel-specific style estimator block */\n",
    558        "\n",
    559        "#sk-container-id-23 div.sk-parallel-item::after {\n",
    560        "  content: \"\";\n",
    561        "  width: 100%;\n",
    562        "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
    563        "  flex-grow: 1;\n",
    564        "}\n",
    565        "\n",
    566        "#sk-container-id-23 div.sk-parallel {\n",
    567        "  display: flex;\n",
    568        "  align-items: stretch;\n",
    569        "  justify-content: center;\n",
    570        "  background-color: var(--sklearn-color-background);\n",
    571        "  position: relative;\n",
    572        "}\n",
    573        "\n",
    574        "#sk-container-id-23 div.sk-parallel-item {\n",
    575        "  display: flex;\n",
    576        "  flex-direction: column;\n",
    577        "}\n",
    578        "\n",
    579        "#sk-container-id-23 div.sk-parallel-item:first-child::after {\n",
    580        "  align-self: flex-end;\n",
    581        "  width: 50%;\n",
    582        "}\n",
    583        "\n",
    584        "#sk-container-id-23 div.sk-parallel-item:last-child::after {\n",
    585        "  align-self: flex-start;\n",
    586        "  width: 50%;\n",
    587        "}\n",
    588        "\n",
    589        "#sk-container-id-23 div.sk-parallel-item:only-child::after {\n",
    590        "  width: 0;\n",
    591        "}\n",
    592        "\n",
    593        "/* Serial-specific style estimator block */\n",
    594        "\n",
    595        "#sk-container-id-23 div.sk-serial {\n",
    596        "  display: flex;\n",
    597        "  flex-direction: column;\n",
    598        "  align-items: center;\n",
    599        "  background-color: var(--sklearn-color-background);\n",
    600        "  padding-right: 1em;\n",
    601        "  padding-left: 1em;\n",
    602        "}\n",
    603        "\n",
    604        "\n",
    605        "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
    606        "clickable and can be expanded/collapsed.\n",
    607        "- Pipeline and ColumnTransformer use this feature and define the default style\n",
    608        "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
    609        "*/\n",
    610        "\n",
    611        "/* Pipeline and ColumnTransformer style (default) */\n",
    612        "\n",
    613        "#sk-container-id-23 div.sk-toggleable {\n",
    614        "  /* Default theme specific background. It is overwritten whether we have a\n",
    615        "  specific estimator or a Pipeline/ColumnTransformer */\n",
    616        "  background-color: var(--sklearn-color-background);\n",
    617        "}\n",
    618        "\n",
    619        "/* Toggleable label */\n",
    620        "#sk-container-id-23 label.sk-toggleable__label {\n",
    621        "  cursor: pointer;\n",
    622        "  display: block;\n",
    623        "  width: 100%;\n",
    624        "  margin-bottom: 0;\n",
    625        "  padding: 0.5em;\n",
    626        "  box-sizing: border-box;\n",
    627        "  text-align: center;\n",
    628        "}\n",
    629        "\n",
    630        "#sk-container-id-23 label.sk-toggleable__label-arrow:before {\n",
    631        "  /* Arrow on the left of the label */\n",
    632        "  content: \"▸\";\n",
    633        "  float: left;\n",
    634        "  margin-right: 0.25em;\n",
    635        "  color: var(--sklearn-color-icon);\n",
    636        "}\n",
    637        "\n",
    638        "#sk-container-id-23 label.sk-toggleable__label-arrow:hover:before {\n",
    639        "  color: var(--sklearn-color-text);\n",
    640        "}\n",
    641        "\n",
    642        "/* Toggleable content - dropdown */\n",
    643        "\n",
    644        "#sk-container-id-23 div.sk-toggleable__content {\n",
    645        "  max-height: 0;\n",
    646        "  max-width: 0;\n",
    647        "  overflow: hidden;\n",
    648        "  text-align: left;\n",
    649        "  /* unfitted */\n",
    650        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
    651        "}\n",
    652        "\n",
    653        "#sk-container-id-23 div.sk-toggleable__content.fitted {\n",
    654        "  /* fitted */\n",
    655        "  background-color: var(--sklearn-color-fitted-level-0);\n",
    656        "}\n",
    657        "\n",
    658        "#sk-container-id-23 div.sk-toggleable__content pre {\n",
    659        "  margin: 0.2em;\n",
    660        "  border-radius: 0.25em;\n",
    661        "  color: var(--sklearn-color-text);\n",
    662        "  /* unfitted */\n",
    663        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
    664        "}\n",
    665        "\n",
    666        "#sk-container-id-23 div.sk-toggleable__content.fitted pre {\n",
    667        "  /* unfitted */\n",
    668        "  background-color: var(--sklearn-color-fitted-level-0);\n",
    669        "}\n",
    670        "\n",
    671        "#sk-container-id-23 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
    672        "  /* Expand drop-down */\n",
    673        "  max-height: 200px;\n",
    674        "  max-width: 100%;\n",
    675        "  overflow: auto;\n",
    676        "}\n",
    677        "\n",
    678        "#sk-container-id-23 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
    679        "  content: \"▾\";\n",
    680        "}\n",
    681        "\n",
    682        "/* Pipeline/ColumnTransformer-specific style */\n",
    683        "\n",
    684        "#sk-container-id-23 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
    685        "  color: var(--sklearn-color-text);\n",
    686        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
    687        "}\n",
    688        "\n",
    689        "#sk-container-id-23 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
    690        "  background-color: var(--sklearn-color-fitted-level-2);\n",
    691        "}\n",
    692        "\n",
    693        "/* Estimator-specific style */\n",
    694        "\n",
    695        "/* Colorize estimator box */\n",
    696        "#sk-container-id-23 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
    697        "  /* unfitted */\n",
    698        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
    699        "}\n",
    700        "\n",
    701        "#sk-container-id-23 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
    702        "  /* fitted */\n",
    703        "  background-color: var(--sklearn-color-fitted-level-2);\n",
    704        "}\n",
    705        "\n",
    706        "#sk-container-id-23 div.sk-label label.sk-toggleable__label,\n",
    707        "#sk-container-id-23 div.sk-label label {\n",
    708        "  /* The background is the default theme color */\n",
    709        "  color: var(--sklearn-color-text-on-default-background);\n",
    710        "}\n",
    711        "\n",
    712        "/* On hover, darken the color of the background */\n",
    713        "#sk-container-id-23 div.sk-label:hover label.sk-toggleable__label {\n",
    714        "  color: var(--sklearn-color-text);\n",
    715        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
    716        "}\n",
    717        "\n",
    718        "/* Label box, darken color on hover, fitted */\n",
    719        "#sk-container-id-23 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
    720        "  color: var(--sklearn-color-text);\n",
    721        "  background-color: var(--sklearn-color-fitted-level-2);\n",
    722        "}\n",
    723        "\n",
    724        "/* Estimator label */\n",
    725        "\n",
    726        "#sk-container-id-23 div.sk-label label {\n",
    727        "  font-family: monospace;\n",
    728        "  font-weight: bold;\n",
    729        "  display: inline-block;\n",
    730        "  line-height: 1.2em;\n",
    731        "}\n",
    732        "\n",
    733        "#sk-container-id-23 div.sk-label-container {\n",
    734        "  text-align: center;\n",
    735        "}\n",
    736        "\n",
    737        "/* Estimator-specific */\n",
    738        "#sk-container-id-23 div.sk-estimator {\n",
    739        "  font-family: monospace;\n",
    740        "  border: 1px dotted var(--sklearn-color-border-box);\n",
    741        "  border-radius: 0.25em;\n",
    742        "  box-sizing: border-box;\n",
    743        "  margin-bottom: 0.5em;\n",
    744        "  /* unfitted */\n",
    745        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
    746        "}\n",
    747        "\n",
    748        "#sk-container-id-23 div.sk-estimator.fitted {\n",
    749        "  /* fitted */\n",
    750        "  background-color: var(--sklearn-color-fitted-level-0);\n",
    751        "}\n",
    752        "\n",
    753        "/* on hover */\n",
    754        "#sk-container-id-23 div.sk-estimator:hover {\n",
    755        "  /* unfitted */\n",
    756        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
    757        "}\n",
    758        "\n",
    759        "#sk-container-id-23 div.sk-estimator.fitted:hover {\n",
    760        "  /* fitted */\n",
    761        "  background-color: var(--sklearn-color-fitted-level-2);\n",
    762        "}\n",
    763        "\n",
    764        "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
    765        "\n",
    766        "/* Common style for \"i\" and \"?\" */\n",
    767        "\n",
    768        ".sk-estimator-doc-link,\n",
    769        "a:link.sk-estimator-doc-link,\n",
    770        "a:visited.sk-estimator-doc-link {\n",
    771        "  float: right;\n",
    772        "  font-size: smaller;\n",
    773        "  line-height: 1em;\n",
    774        "  font-family: monospace;\n",
    775        "  background-color: var(--sklearn-color-background);\n",
    776        "  border-radius: 1em;\n",
    777        "  height: 1em;\n",
    778        "  width: 1em;\n",
    779        "  text-decoration: none !important;\n",
    780        "  margin-left: 1ex;\n",
    781        "  /* unfitted */\n",
    782        "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
    783        "  color: var(--sklearn-color-unfitted-level-1);\n",
    784        "}\n",
    785        "\n",
    786        ".sk-estimator-doc-link.fitted,\n",
    787        "a:link.sk-estimator-doc-link.fitted,\n",
    788        "a:visited.sk-estimator-doc-link.fitted {\n",
    789        "  /* fitted */\n",
    790        "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
    791        "  color: var(--sklearn-color-fitted-level-1);\n",
    792        "}\n",
    793        "\n",
    794        "/* On hover */\n",
    795        "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
    796        ".sk-estimator-doc-link:hover,\n",
    797        "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
    798        ".sk-estimator-doc-link:hover {\n",
    799        "  /* unfitted */\n",
    800        "  background-color: var(--sklearn-color-unfitted-level-3);\n",
    801        "  color: var(--sklearn-color-background);\n",
    802        "  text-decoration: none;\n",
    803        "}\n",
    804        "\n",
    805        "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
    806        ".sk-estimator-doc-link.fitted:hover,\n",
    807        "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
    808        ".sk-estimator-doc-link.fitted:hover {\n",
    809        "  /* fitted */\n",
    810        "  background-color: var(--sklearn-color-fitted-level-3);\n",
    811        "  color: var(--sklearn-color-background);\n",
    812        "  text-decoration: none;\n",
    813        "}\n",
    814        "\n",
    815        "/* Span, style for the box shown on hovering the info icon */\n",
    816        ".sk-estimator-doc-link span {\n",
    817        "  display: none;\n",
    818        "  z-index: 9999;\n",
    819        "  position: relative;\n",
    820        "  font-weight: normal;\n",
    821        "  right: .2ex;\n",
    822        "  padding: .5ex;\n",
    823        "  margin: .5ex;\n",
    824        "  width: min-content;\n",
    825        "  min-width: 20ex;\n",
    826        "  max-width: 50ex;\n",
    827        "  color: var(--sklearn-color-text);\n",
    828        "  box-shadow: 2pt 2pt 4pt #999;\n",
    829        "  /* unfitted */\n",
    830        "  background: var(--sklearn-color-unfitted-level-0);\n",
    831        "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
    832        "}\n",
    833        "\n",
    834        ".sk-estimator-doc-link.fitted span {\n",
    835        "  /* fitted */\n",
    836        "  background: var(--sklearn-color-fitted-level-0);\n",
    837        "  border: var(--sklearn-color-fitted-level-3);\n",
    838        "}\n",
    839        "\n",
    840        ".sk-estimator-doc-link:hover span {\n",
    841        "  display: block;\n",
    842        "}\n",
    843        "\n",
    844        "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
    845        "\n",
    846        "#sk-container-id-23 a.estimator_doc_link {\n",
    847        "  float: right;\n",
    848        "  font-size: 1rem;\n",
    849        "  line-height: 1em;\n",
    850        "  font-family: monospace;\n",
    851        "  background-color: var(--sklearn-color-background);\n",
    852        "  border-radius: 1rem;\n",
    853        "  height: 1rem;\n",
    854        "  width: 1rem;\n",
    855        "  text-decoration: none;\n",
    856        "  /* unfitted */\n",
    857        "  color: var(--sklearn-color-unfitted-level-1);\n",
    858        "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
    859        "}\n",
    860        "\n",
    861        "#sk-container-id-23 a.estimator_doc_link.fitted {\n",
    862        "  /* fitted */\n",
    863        "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
    864        "  color: var(--sklearn-color-fitted-level-1);\n",
    865        "}\n",
    866        "\n",
    867        "/* On hover */\n",
    868        "#sk-container-id-23 a.estimator_doc_link:hover {\n",
    869        "  /* unfitted */\n",
    870        "  background-color: var(--sklearn-color-unfitted-level-3);\n",
    871        "  color: var(--sklearn-color-background);\n",
    872        "  text-decoration: none;\n",
    873        "}\n",
    874        "\n",
    875        "#sk-container-id-23 a.estimator_doc_link.fitted:hover {\n",
    876        "  /* fitted */\n",
    877        "  background-color: var(--sklearn-color-fitted-level-3);\n",
    878        "}\n",
    879        "</style><div id=\"sk-container-id-23\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeRegressor(max_depth=2, random_state=11)</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-23\" type=\"checkbox\" checked><label for=\"sk-estimator-id-23\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;DecisionTreeRegressor<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.tree.DecisionTreeRegressor.html\">?<span>Documentation for DecisionTreeRegressor</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>DecisionTreeRegressor(max_depth=2, random_state=11)</pre></div> </div></div></div></div>"
    880       ],
    881       "text/plain": [
    882        "DecisionTreeRegressor(max_depth=2, random_state=11)"
    883       ]
    884      },
    885      "execution_count": 56,
    886      "metadata": {},
    887      "output_type": "execute_result"
    888     }
    889    ],
    890    "source": [
    891     "y2 = y - tree_reg1.predict(X)\n",
    892     "tree_reg2 = DecisionTreeRegressor(max_depth=2,random_state=11)\n",
    893     "tree_reg2.fit(X,y2)"
    894    ]
    895   },
    896   {
    897    "cell_type": "code",
    898    "execution_count": 57,
    899    "metadata": {},
    900    "outputs": [
    901     {
    902      "data": {
    903       "text/html": [
    904        "<style>#sk-container-id-24 {\n",
    905        "  /* Definition of color scheme common for light and dark mode */\n",
    906        "  --sklearn-color-text: black;\n",
    907        "  --sklearn-color-line: gray;\n",
    908        "  /* Definition of color scheme for unfitted estimators */\n",
    909        "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
    910        "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
    911        "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
    912        "  --sklearn-color-unfitted-level-3: chocolate;\n",
    913        "  /* Definition of color scheme for fitted estimators */\n",
    914        "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
    915        "  --sklearn-color-fitted-level-1: #d4ebff;\n",
    916        "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
    917        "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
    918        "\n",
    919        "  /* Specific color for light theme */\n",
    920        "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
    921        "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
    922        "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
    923        "  --sklearn-color-icon: #696969;\n",
    924        "\n",
    925        "  @media (prefers-color-scheme: dark) {\n",
    926        "    /* Redefinition of color scheme for dark theme */\n",
    927        "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
    928        "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
    929        "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
    930        "    --sklearn-color-icon: #878787;\n",
    931        "  }\n",
    932        "}\n",
    933        "\n",
    934        "#sk-container-id-24 {\n",
    935        "  color: var(--sklearn-color-text);\n",
    936        "}\n",
    937        "\n",
    938        "#sk-container-id-24 pre {\n",
    939        "  padding: 0;\n",
    940        "}\n",
    941        "\n",
    942        "#sk-container-id-24 input.sk-hidden--visually {\n",
    943        "  border: 0;\n",
    944        "  clip: rect(1px 1px 1px 1px);\n",
    945        "  clip: rect(1px, 1px, 1px, 1px);\n",
    946        "  height: 1px;\n",
    947        "  margin: -1px;\n",
    948        "  overflow: hidden;\n",
    949        "  padding: 0;\n",
    950        "  position: absolute;\n",
    951        "  width: 1px;\n",
    952        "}\n",
    953        "\n",
    954        "#sk-container-id-24 div.sk-dashed-wrapped {\n",
    955        "  border: 1px dashed var(--sklearn-color-line);\n",
    956        "  margin: 0 0.4em 0.5em 0.4em;\n",
    957        "  box-sizing: border-box;\n",
    958        "  padding-bottom: 0.4em;\n",
    959        "  background-color: var(--sklearn-color-background);\n",
    960        "}\n",
    961        "\n",
    962        "#sk-container-id-24 div.sk-container {\n",
    963        "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
    964        "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
    965        "     so we also need the `!important` here to be able to override the\n",
    966        "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
    967        "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
    968        "  display: inline-block !important;\n",
    969        "  position: relative;\n",
    970        "}\n",
    971        "\n",
    972        "#sk-container-id-24 div.sk-text-repr-fallback {\n",
    973        "  display: none;\n",
    974        "}\n",
    975        "\n",
    976        "div.sk-parallel-item,\n",
    977        "div.sk-serial,\n",
    978        "div.sk-item {\n",
    979        "  /* draw centered vertical line to link estimators */\n",
    980        "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
    981        "  background-size: 2px 100%;\n",
    982        "  background-repeat: no-repeat;\n",
    983        "  background-position: center center;\n",
    984        "}\n",
    985        "\n",
    986        "/* Parallel-specific style estimator block */\n",
    987        "\n",
    988        "#sk-container-id-24 div.sk-parallel-item::after {\n",
    989        "  content: \"\";\n",
    990        "  width: 100%;\n",
    991        "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
    992        "  flex-grow: 1;\n",
    993        "}\n",
    994        "\n",
    995        "#sk-container-id-24 div.sk-parallel {\n",
    996        "  display: flex;\n",
    997        "  align-items: stretch;\n",
    998        "  justify-content: center;\n",
    999        "  background-color: var(--sklearn-color-background);\n",
   1000        "  position: relative;\n",
   1001        "}\n",
   1002        "\n",
   1003        "#sk-container-id-24 div.sk-parallel-item {\n",
   1004        "  display: flex;\n",
   1005        "  flex-direction: column;\n",
   1006        "}\n",
   1007        "\n",
   1008        "#sk-container-id-24 div.sk-parallel-item:first-child::after {\n",
   1009        "  align-self: flex-end;\n",
   1010        "  width: 50%;\n",
   1011        "}\n",
   1012        "\n",
   1013        "#sk-container-id-24 div.sk-parallel-item:last-child::after {\n",
   1014        "  align-self: flex-start;\n",
   1015        "  width: 50%;\n",
   1016        "}\n",
   1017        "\n",
   1018        "#sk-container-id-24 div.sk-parallel-item:only-child::after {\n",
   1019        "  width: 0;\n",
   1020        "}\n",
   1021        "\n",
   1022        "/* Serial-specific style estimator block */\n",
   1023        "\n",
   1024        "#sk-container-id-24 div.sk-serial {\n",
   1025        "  display: flex;\n",
   1026        "  flex-direction: column;\n",
   1027        "  align-items: center;\n",
   1028        "  background-color: var(--sklearn-color-background);\n",
   1029        "  padding-right: 1em;\n",
   1030        "  padding-left: 1em;\n",
   1031        "}\n",
   1032        "\n",
   1033        "\n",
   1034        "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
   1035        "clickable and can be expanded/collapsed.\n",
   1036        "- Pipeline and ColumnTransformer use this feature and define the default style\n",
   1037        "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
   1038        "*/\n",
   1039        "\n",
   1040        "/* Pipeline and ColumnTransformer style (default) */\n",
   1041        "\n",
   1042        "#sk-container-id-24 div.sk-toggleable {\n",
   1043        "  /* Default theme specific background. It is overwritten whether we have a\n",
   1044        "  specific estimator or a Pipeline/ColumnTransformer */\n",
   1045        "  background-color: var(--sklearn-color-background);\n",
   1046        "}\n",
   1047        "\n",
   1048        "/* Toggleable label */\n",
   1049        "#sk-container-id-24 label.sk-toggleable__label {\n",
   1050        "  cursor: pointer;\n",
   1051        "  display: block;\n",
   1052        "  width: 100%;\n",
   1053        "  margin-bottom: 0;\n",
   1054        "  padding: 0.5em;\n",
   1055        "  box-sizing: border-box;\n",
   1056        "  text-align: center;\n",
   1057        "}\n",
   1058        "\n",
   1059        "#sk-container-id-24 label.sk-toggleable__label-arrow:before {\n",
   1060        "  /* Arrow on the left of the label */\n",
   1061        "  content: \"▸\";\n",
   1062        "  float: left;\n",
   1063        "  margin-right: 0.25em;\n",
   1064        "  color: var(--sklearn-color-icon);\n",
   1065        "}\n",
   1066        "\n",
   1067        "#sk-container-id-24 label.sk-toggleable__label-arrow:hover:before {\n",
   1068        "  color: var(--sklearn-color-text);\n",
   1069        "}\n",
   1070        "\n",
   1071        "/* Toggleable content - dropdown */\n",
   1072        "\n",
   1073        "#sk-container-id-24 div.sk-toggleable__content {\n",
   1074        "  max-height: 0;\n",
   1075        "  max-width: 0;\n",
   1076        "  overflow: hidden;\n",
   1077        "  text-align: left;\n",
   1078        "  /* unfitted */\n",
   1079        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
   1080        "}\n",
   1081        "\n",
   1082        "#sk-container-id-24 div.sk-toggleable__content.fitted {\n",
   1083        "  /* fitted */\n",
   1084        "  background-color: var(--sklearn-color-fitted-level-0);\n",
   1085        "}\n",
   1086        "\n",
   1087        "#sk-container-id-24 div.sk-toggleable__content pre {\n",
   1088        "  margin: 0.2em;\n",
   1089        "  border-radius: 0.25em;\n",
   1090        "  color: var(--sklearn-color-text);\n",
   1091        "  /* unfitted */\n",
   1092        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
   1093        "}\n",
   1094        "\n",
   1095        "#sk-container-id-24 div.sk-toggleable__content.fitted pre {\n",
   1096        "  /* unfitted */\n",
   1097        "  background-color: var(--sklearn-color-fitted-level-0);\n",
   1098        "}\n",
   1099        "\n",
   1100        "#sk-container-id-24 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
   1101        "  /* Expand drop-down */\n",
   1102        "  max-height: 200px;\n",
   1103        "  max-width: 100%;\n",
   1104        "  overflow: auto;\n",
   1105        "}\n",
   1106        "\n",
   1107        "#sk-container-id-24 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
   1108        "  content: \"▾\";\n",
   1109        "}\n",
   1110        "\n",
   1111        "/* Pipeline/ColumnTransformer-specific style */\n",
   1112        "\n",
   1113        "#sk-container-id-24 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
   1114        "  color: var(--sklearn-color-text);\n",
   1115        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
   1116        "}\n",
   1117        "\n",
   1118        "#sk-container-id-24 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
   1119        "  background-color: var(--sklearn-color-fitted-level-2);\n",
   1120        "}\n",
   1121        "\n",
   1122        "/* Estimator-specific style */\n",
   1123        "\n",
   1124        "/* Colorize estimator box */\n",
   1125        "#sk-container-id-24 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
   1126        "  /* unfitted */\n",
   1127        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
   1128        "}\n",
   1129        "\n",
   1130        "#sk-container-id-24 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
   1131        "  /* fitted */\n",
   1132        "  background-color: var(--sklearn-color-fitted-level-2);\n",
   1133        "}\n",
   1134        "\n",
   1135        "#sk-container-id-24 div.sk-label label.sk-toggleable__label,\n",
   1136        "#sk-container-id-24 div.sk-label label {\n",
   1137        "  /* The background is the default theme color */\n",
   1138        "  color: var(--sklearn-color-text-on-default-background);\n",
   1139        "}\n",
   1140        "\n",
   1141        "/* On hover, darken the color of the background */\n",
   1142        "#sk-container-id-24 div.sk-label:hover label.sk-toggleable__label {\n",
   1143        "  color: var(--sklearn-color-text);\n",
   1144        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
   1145        "}\n",
   1146        "\n",
   1147        "/* Label box, darken color on hover, fitted */\n",
   1148        "#sk-container-id-24 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
   1149        "  color: var(--sklearn-color-text);\n",
   1150        "  background-color: var(--sklearn-color-fitted-level-2);\n",
   1151        "}\n",
   1152        "\n",
   1153        "/* Estimator label */\n",
   1154        "\n",
   1155        "#sk-container-id-24 div.sk-label label {\n",
   1156        "  font-family: monospace;\n",
   1157        "  font-weight: bold;\n",
   1158        "  display: inline-block;\n",
   1159        "  line-height: 1.2em;\n",
   1160        "}\n",
   1161        "\n",
   1162        "#sk-container-id-24 div.sk-label-container {\n",
   1163        "  text-align: center;\n",
   1164        "}\n",
   1165        "\n",
   1166        "/* Estimator-specific */\n",
   1167        "#sk-container-id-24 div.sk-estimator {\n",
   1168        "  font-family: monospace;\n",
   1169        "  border: 1px dotted var(--sklearn-color-border-box);\n",
   1170        "  border-radius: 0.25em;\n",
   1171        "  box-sizing: border-box;\n",
   1172        "  margin-bottom: 0.5em;\n",
   1173        "  /* unfitted */\n",
   1174        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
   1175        "}\n",
   1176        "\n",
   1177        "#sk-container-id-24 div.sk-estimator.fitted {\n",
   1178        "  /* fitted */\n",
   1179        "  background-color: var(--sklearn-color-fitted-level-0);\n",
   1180        "}\n",
   1181        "\n",
   1182        "/* on hover */\n",
   1183        "#sk-container-id-24 div.sk-estimator:hover {\n",
   1184        "  /* unfitted */\n",
   1185        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
   1186        "}\n",
   1187        "\n",
   1188        "#sk-container-id-24 div.sk-estimator.fitted:hover {\n",
   1189        "  /* fitted */\n",
   1190        "  background-color: var(--sklearn-color-fitted-level-2);\n",
   1191        "}\n",
   1192        "\n",
   1193        "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
   1194        "\n",
   1195        "/* Common style for \"i\" and \"?\" */\n",
   1196        "\n",
   1197        ".sk-estimator-doc-link,\n",
   1198        "a:link.sk-estimator-doc-link,\n",
   1199        "a:visited.sk-estimator-doc-link {\n",
   1200        "  float: right;\n",
   1201        "  font-size: smaller;\n",
   1202        "  line-height: 1em;\n",
   1203        "  font-family: monospace;\n",
   1204        "  background-color: var(--sklearn-color-background);\n",
   1205        "  border-radius: 1em;\n",
   1206        "  height: 1em;\n",
   1207        "  width: 1em;\n",
   1208        "  text-decoration: none !important;\n",
   1209        "  margin-left: 1ex;\n",
   1210        "  /* unfitted */\n",
   1211        "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
   1212        "  color: var(--sklearn-color-unfitted-level-1);\n",
   1213        "}\n",
   1214        "\n",
   1215        ".sk-estimator-doc-link.fitted,\n",
   1216        "a:link.sk-estimator-doc-link.fitted,\n",
   1217        "a:visited.sk-estimator-doc-link.fitted {\n",
   1218        "  /* fitted */\n",
   1219        "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
   1220        "  color: var(--sklearn-color-fitted-level-1);\n",
   1221        "}\n",
   1222        "\n",
   1223        "/* On hover */\n",
   1224        "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
   1225        ".sk-estimator-doc-link:hover,\n",
   1226        "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
   1227        ".sk-estimator-doc-link:hover {\n",
   1228        "  /* unfitted */\n",
   1229        "  background-color: var(--sklearn-color-unfitted-level-3);\n",
   1230        "  color: var(--sklearn-color-background);\n",
   1231        "  text-decoration: none;\n",
   1232        "}\n",
   1233        "\n",
   1234        "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
   1235        ".sk-estimator-doc-link.fitted:hover,\n",
   1236        "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
   1237        ".sk-estimator-doc-link.fitted:hover {\n",
   1238        "  /* fitted */\n",
   1239        "  background-color: var(--sklearn-color-fitted-level-3);\n",
   1240        "  color: var(--sklearn-color-background);\n",
   1241        "  text-decoration: none;\n",
   1242        "}\n",
   1243        "\n",
   1244        "/* Span, style for the box shown on hovering the info icon */\n",
   1245        ".sk-estimator-doc-link span {\n",
   1246        "  display: none;\n",
   1247        "  z-index: 9999;\n",
   1248        "  position: relative;\n",
   1249        "  font-weight: normal;\n",
   1250        "  right: .2ex;\n",
   1251        "  padding: .5ex;\n",
   1252        "  margin: .5ex;\n",
   1253        "  width: min-content;\n",
   1254        "  min-width: 20ex;\n",
   1255        "  max-width: 50ex;\n",
   1256        "  color: var(--sklearn-color-text);\n",
   1257        "  box-shadow: 2pt 2pt 4pt #999;\n",
   1258        "  /* unfitted */\n",
   1259        "  background: var(--sklearn-color-unfitted-level-0);\n",
   1260        "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
   1261        "}\n",
   1262        "\n",
   1263        ".sk-estimator-doc-link.fitted span {\n",
   1264        "  /* fitted */\n",
   1265        "  background: var(--sklearn-color-fitted-level-0);\n",
   1266        "  border: var(--sklearn-color-fitted-level-3);\n",
   1267        "}\n",
   1268        "\n",
   1269        ".sk-estimator-doc-link:hover span {\n",
   1270        "  display: block;\n",
   1271        "}\n",
   1272        "\n",
   1273        "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
   1274        "\n",
   1275        "#sk-container-id-24 a.estimator_doc_link {\n",
   1276        "  float: right;\n",
   1277        "  font-size: 1rem;\n",
   1278        "  line-height: 1em;\n",
   1279        "  font-family: monospace;\n",
   1280        "  background-color: var(--sklearn-color-background);\n",
   1281        "  border-radius: 1rem;\n",
   1282        "  height: 1rem;\n",
   1283        "  width: 1rem;\n",
   1284        "  text-decoration: none;\n",
   1285        "  /* unfitted */\n",
   1286        "  color: var(--sklearn-color-unfitted-level-1);\n",
   1287        "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
   1288        "}\n",
   1289        "\n",
   1290        "#sk-container-id-24 a.estimator_doc_link.fitted {\n",
   1291        "  /* fitted */\n",
   1292        "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
   1293        "  color: var(--sklearn-color-fitted-level-1);\n",
   1294        "}\n",
   1295        "\n",
   1296        "/* On hover */\n",
   1297        "#sk-container-id-24 a.estimator_doc_link:hover {\n",
   1298        "  /* unfitted */\n",
   1299        "  background-color: var(--sklearn-color-unfitted-level-3);\n",
   1300        "  color: var(--sklearn-color-background);\n",
   1301        "  text-decoration: none;\n",
   1302        "}\n",
   1303        "\n",
   1304        "#sk-container-id-24 a.estimator_doc_link.fitted:hover {\n",
   1305        "  /* fitted */\n",
   1306        "  background-color: var(--sklearn-color-fitted-level-3);\n",
   1307        "}\n",
   1308        "</style><div id=\"sk-container-id-24\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeRegressor(max_depth=2, random_state=12)</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-24\" type=\"checkbox\" checked><label for=\"sk-estimator-id-24\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;DecisionTreeRegressor<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.tree.DecisionTreeRegressor.html\">?<span>Documentation for DecisionTreeRegressor</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>DecisionTreeRegressor(max_depth=2, random_state=12)</pre></div> </div></div></div></div>"
   1309       ],
   1310       "text/plain": [
   1311        "DecisionTreeRegressor(max_depth=2, random_state=12)"
   1312       ]
   1313      },
   1314      "execution_count": 57,
   1315      "metadata": {},
   1316      "output_type": "execute_result"
   1317     }
   1318    ],
   1319    "source": [
   1320     "y3 = y2 - tree_reg2.predict(X)\n",
   1321     "tree_reg3 = DecisionTreeRegressor(max_depth=2, random_state=12)\n",
   1322     "tree_reg3.fit(X,y3)"
   1323    ]
   1324   },
   1325   {
   1326    "cell_type": "code",
   1327    "execution_count": 58,
   1328    "metadata": {},
   1329    "outputs": [],
   1330    "source": [
   1331     "X_new = np.array([[-.4], [0], [.5]])"
   1332    ]
   1333   },
   1334   {
   1335    "cell_type": "code",
   1336    "execution_count": 59,
   1337    "metadata": {},
   1338    "outputs": [
   1339     {
   1340      "data": {
   1341       "text/plain": [
   1342        "array([0.47381305, 0.01428015, 0.66853101])"
   1343       ]
   1344      },
   1345      "execution_count": 59,
   1346      "metadata": {},
   1347      "output_type": "execute_result"
   1348     }
   1349    ],
   1350    "source": [
   1351     "# Sum the predicted outputs of each tree where each tree tries to correct\n",
   1352     "# errors in the prior trees.\n",
   1353     "\n",
   1354     "sum(tree.predict(X_new) for tree in (tree_reg1, tree_reg2, tree_reg3))"
   1355    ]
   1356   },
   1357   {
   1358    "cell_type": "code",
   1359    "execution_count": 60,
   1360    "metadata": {},
   1361    "outputs": [
   1362     {
   1363      "data": {
   1364       "text/plain": [
   1365        "<matplotlib.collections.PathCollection at 0x7fda6c102a50>"
   1366       ]
   1367      },
   1368      "execution_count": 60,
   1369      "metadata": {},
   1370      "output_type": "execute_result"
   1371     },
   1372     {
   1373      "data": {
   1374       "image/png": "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OKDKykpVV1erublZS5cu1apVq9TZ2RmxfUZGhr7//e+rsbFR//u//6uKigpVVFTohRdemHDxAAAg8Tksy7LsdCgpKdGKFSu0a9cuSVIoFFJeXp42b96sLVu2xLSPZcuW6aabbtJ9990XU/tAICCPxyO/36+0tDQ75QIAAENiPX/bujLS39+vQ4cOqays7PMdOJ0qKytTY2PjmP0ty1JDQ4OOHDmi66+/Pmq7vr4+BQKBIS8AADAz2QojXV1dCgaDys7OHrI9OztbPp8vaj+/36958+YpOTlZN910kx588EHdeOONUdvX1NTI4/GEX3l5eXbKBAAACWRKnqZJTU3Vm2++qddff13/+q//qsrKSr300ktR21dVVcnv94dfJ0+enIoyAQCAAXPsNM7MzFRSUpI6OjqGbO/o6JDX643az+l06oorrpAkFRYW6u2331ZNTY2++tWvRmzvcrnkcrnslAYAABKUrSsjycnJKioqUkNDQ3hbKBRSQ0ODSktLY95PKBRSX1+fnaEBAMAMZevKiCRVVlZq48aNWr58uYqLi1VbW6ve3l5VVFRIkjZs2KDc3FzV1NRIunD/x/Lly7Vo0SL19fXp+eef1+OPP649e/bE95MAAICEZDuMlJeX6/Tp09q6dat8Pp8KCwtVX18fvqn1xIkTcjo/v+DS29urv/u7v9P777+viy66SFdddZX27dun8vLy+H0KAACQsGzPM2IC84wAAJB4JmWeEQAAgHgjjAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKPGFUZ2796t/Px8ud1ulZSUqKmpKWrbvXv3auXKlZo/f77mz5+vsrKyUdsDAIDZxXYYOXDggCorK1VdXa3m5mYtXbpUq1atUmdnZ8T2L730ktatW6cXX3xRjY2NysvL09e+9jV98MEHEy4eAAAkPodlWZadDiUlJVqxYoV27dol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",
   1375       "text/plain": [
   1376        "<Figure size 640x480 with 1 Axes>"
   1377       ]
   1378      },
   1379      "metadata": {},
   1380      "output_type": "display_data"
   1381     }
   1382    ],
   1383    "source": [
   1384     "np.random.seed(10)\n",
   1385     "X_test = np.random.rand(100,1) - .5\n",
   1386     "y_test = sum(tree.predict(X_test) for tree in (tree_reg1, tree_reg2, tree_reg3))\n",
   1387     "plt.scatter(X_test,y_test)"
   1388    ]
   1389   },
   1390   {
   1391    "cell_type": "code",
   1392    "execution_count": 67,
   1393    "metadata": {},
   1394    "outputs": [
   1395     {
   1396      "data": {
   1397       "text/html": [
   1398        "<style>#sk-container-id-28 {\n",
   1399        "  /* Definition of color scheme common for light and dark mode */\n",
   1400        "  --sklearn-color-text: black;\n",
   1401        "  --sklearn-color-line: gray;\n",
   1402        "  /* Definition of color scheme for unfitted estimators */\n",
   1403        "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
   1404        "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
   1405        "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
   1406        "  --sklearn-color-unfitted-level-3: chocolate;\n",
   1407        "  /* Definition of color scheme for fitted estimators */\n",
   1408        "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
   1409        "  --sklearn-color-fitted-level-1: #d4ebff;\n",
   1410        "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
   1411        "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
   1412        "\n",
   1413        "  /* Specific color for light theme */\n",
   1414        "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
   1415        "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
   1416        "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
   1417        "  --sklearn-color-icon: #696969;\n",
   1418        "\n",
   1419        "  @media (prefers-color-scheme: dark) {\n",
   1420        "    /* Redefinition of color scheme for dark theme */\n",
   1421        "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
   1422        "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
   1423        "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
   1424        "    --sklearn-color-icon: #878787;\n",
   1425        "  }\n",
   1426        "}\n",
   1427        "\n",
   1428        "#sk-container-id-28 {\n",
   1429        "  color: var(--sklearn-color-text);\n",
   1430        "}\n",
   1431        "\n",
   1432        "#sk-container-id-28 pre {\n",
   1433        "  padding: 0;\n",
   1434        "}\n",
   1435        "\n",
   1436        "#sk-container-id-28 input.sk-hidden--visually {\n",
   1437        "  border: 0;\n",
   1438        "  clip: rect(1px 1px 1px 1px);\n",
   1439        "  clip: rect(1px, 1px, 1px, 1px);\n",
   1440        "  height: 1px;\n",
   1441        "  margin: -1px;\n",
   1442        "  overflow: hidden;\n",
   1443        "  padding: 0;\n",
   1444        "  position: absolute;\n",
   1445        "  width: 1px;\n",
   1446        "}\n",
   1447        "\n",
   1448        "#sk-container-id-28 div.sk-dashed-wrapped {\n",
   1449        "  border: 1px dashed var(--sklearn-color-line);\n",
   1450        "  margin: 0 0.4em 0.5em 0.4em;\n",
   1451        "  box-sizing: border-box;\n",
   1452        "  padding-bottom: 0.4em;\n",
   1453        "  background-color: var(--sklearn-color-background);\n",
   1454        "}\n",
   1455        "\n",
   1456        "#sk-container-id-28 div.sk-container {\n",
   1457        "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
   1458        "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
   1459        "     so we also need the `!important` here to be able to override the\n",
   1460        "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
   1461        "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
   1462        "  display: inline-block !important;\n",
   1463        "  position: relative;\n",
   1464        "}\n",
   1465        "\n",
   1466        "#sk-container-id-28 div.sk-text-repr-fallback {\n",
   1467        "  display: none;\n",
   1468        "}\n",
   1469        "\n",
   1470        "div.sk-parallel-item,\n",
   1471        "div.sk-serial,\n",
   1472        "div.sk-item {\n",
   1473        "  /* draw centered vertical line to link estimators */\n",
   1474        "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
   1475        "  background-size: 2px 100%;\n",
   1476        "  background-repeat: no-repeat;\n",
   1477        "  background-position: center center;\n",
   1478        "}\n",
   1479        "\n",
   1480        "/* Parallel-specific style estimator block */\n",
   1481        "\n",
   1482        "#sk-container-id-28 div.sk-parallel-item::after {\n",
   1483        "  content: \"\";\n",
   1484        "  width: 100%;\n",
   1485        "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
   1486        "  flex-grow: 1;\n",
   1487        "}\n",
   1488        "\n",
   1489        "#sk-container-id-28 div.sk-parallel {\n",
   1490        "  display: flex;\n",
   1491        "  align-items: stretch;\n",
   1492        "  justify-content: center;\n",
   1493        "  background-color: var(--sklearn-color-background);\n",
   1494        "  position: relative;\n",
   1495        "}\n",
   1496        "\n",
   1497        "#sk-container-id-28 div.sk-parallel-item {\n",
   1498        "  display: flex;\n",
   1499        "  flex-direction: column;\n",
   1500        "}\n",
   1501        "\n",
   1502        "#sk-container-id-28 div.sk-parallel-item:first-child::after {\n",
   1503        "  align-self: flex-end;\n",
   1504        "  width: 50%;\n",
   1505        "}\n",
   1506        "\n",
   1507        "#sk-container-id-28 div.sk-parallel-item:last-child::after {\n",
   1508        "  align-self: flex-start;\n",
   1509        "  width: 50%;\n",
   1510        "}\n",
   1511        "\n",
   1512        "#sk-container-id-28 div.sk-parallel-item:only-child::after {\n",
   1513        "  width: 0;\n",
   1514        "}\n",
   1515        "\n",
   1516        "/* Serial-specific style estimator block */\n",
   1517        "\n",
   1518        "#sk-container-id-28 div.sk-serial {\n",
   1519        "  display: flex;\n",
   1520        "  flex-direction: column;\n",
   1521        "  align-items: center;\n",
   1522        "  background-color: var(--sklearn-color-background);\n",
   1523        "  padding-right: 1em;\n",
   1524        "  padding-left: 1em;\n",
   1525        "}\n",
   1526        "\n",
   1527        "\n",
   1528        "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
   1529        "clickable and can be expanded/collapsed.\n",
   1530        "- Pipeline and ColumnTransformer use this feature and define the default style\n",
   1531        "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
   1532        "*/\n",
   1533        "\n",
   1534        "/* Pipeline and ColumnTransformer style (default) */\n",
   1535        "\n",
   1536        "#sk-container-id-28 div.sk-toggleable {\n",
   1537        "  /* Default theme specific background. It is overwritten whether we have a\n",
   1538        "  specific estimator or a Pipeline/ColumnTransformer */\n",
   1539        "  background-color: var(--sklearn-color-background);\n",
   1540        "}\n",
   1541        "\n",
   1542        "/* Toggleable label */\n",
   1543        "#sk-container-id-28 label.sk-toggleable__label {\n",
   1544        "  cursor: pointer;\n",
   1545        "  display: block;\n",
   1546        "  width: 100%;\n",
   1547        "  margin-bottom: 0;\n",
   1548        "  padding: 0.5em;\n",
   1549        "  box-sizing: border-box;\n",
   1550        "  text-align: center;\n",
   1551        "}\n",
   1552        "\n",
   1553        "#sk-container-id-28 label.sk-toggleable__label-arrow:before {\n",
   1554        "  /* Arrow on the left of the label */\n",
   1555        "  content: \"▸\";\n",
   1556        "  float: left;\n",
   1557        "  margin-right: 0.25em;\n",
   1558        "  color: var(--sklearn-color-icon);\n",
   1559        "}\n",
   1560        "\n",
   1561        "#sk-container-id-28 label.sk-toggleable__label-arrow:hover:before {\n",
   1562        "  color: var(--sklearn-color-text);\n",
   1563        "}\n",
   1564        "\n",
   1565        "/* Toggleable content - dropdown */\n",
   1566        "\n",
   1567        "#sk-container-id-28 div.sk-toggleable__content {\n",
   1568        "  max-height: 0;\n",
   1569        "  max-width: 0;\n",
   1570        "  overflow: hidden;\n",
   1571        "  text-align: left;\n",
   1572        "  /* unfitted */\n",
   1573        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
   1574        "}\n",
   1575        "\n",
   1576        "#sk-container-id-28 div.sk-toggleable__content.fitted {\n",
   1577        "  /* fitted */\n",
   1578        "  background-color: var(--sklearn-color-fitted-level-0);\n",
   1579        "}\n",
   1580        "\n",
   1581        "#sk-container-id-28 div.sk-toggleable__content pre {\n",
   1582        "  margin: 0.2em;\n",
   1583        "  border-radius: 0.25em;\n",
   1584        "  color: var(--sklearn-color-text);\n",
   1585        "  /* unfitted */\n",
   1586        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
   1587        "}\n",
   1588        "\n",
   1589        "#sk-container-id-28 div.sk-toggleable__content.fitted pre {\n",
   1590        "  /* unfitted */\n",
   1591        "  background-color: var(--sklearn-color-fitted-level-0);\n",
   1592        "}\n",
   1593        "\n",
   1594        "#sk-container-id-28 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
   1595        "  /* Expand drop-down */\n",
   1596        "  max-height: 200px;\n",
   1597        "  max-width: 100%;\n",
   1598        "  overflow: auto;\n",
   1599        "}\n",
   1600        "\n",
   1601        "#sk-container-id-28 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
   1602        "  content: \"▾\";\n",
   1603        "}\n",
   1604        "\n",
   1605        "/* Pipeline/ColumnTransformer-specific style */\n",
   1606        "\n",
   1607        "#sk-container-id-28 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
   1608        "  color: var(--sklearn-color-text);\n",
   1609        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
   1610        "}\n",
   1611        "\n",
   1612        "#sk-container-id-28 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
   1613        "  background-color: var(--sklearn-color-fitted-level-2);\n",
   1614        "}\n",
   1615        "\n",
   1616        "/* Estimator-specific style */\n",
   1617        "\n",
   1618        "/* Colorize estimator box */\n",
   1619        "#sk-container-id-28 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
   1620        "  /* unfitted */\n",
   1621        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
   1622        "}\n",
   1623        "\n",
   1624        "#sk-container-id-28 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
   1625        "  /* fitted */\n",
   1626        "  background-color: var(--sklearn-color-fitted-level-2);\n",
   1627        "}\n",
   1628        "\n",
   1629        "#sk-container-id-28 div.sk-label label.sk-toggleable__label,\n",
   1630        "#sk-container-id-28 div.sk-label label {\n",
   1631        "  /* The background is the default theme color */\n",
   1632        "  color: var(--sklearn-color-text-on-default-background);\n",
   1633        "}\n",
   1634        "\n",
   1635        "/* On hover, darken the color of the background */\n",
   1636        "#sk-container-id-28 div.sk-label:hover label.sk-toggleable__label {\n",
   1637        "  color: var(--sklearn-color-text);\n",
   1638        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
   1639        "}\n",
   1640        "\n",
   1641        "/* Label box, darken color on hover, fitted */\n",
   1642        "#sk-container-id-28 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
   1643        "  color: var(--sklearn-color-text);\n",
   1644        "  background-color: var(--sklearn-color-fitted-level-2);\n",
   1645        "}\n",
   1646        "\n",
   1647        "/* Estimator label */\n",
   1648        "\n",
   1649        "#sk-container-id-28 div.sk-label label {\n",
   1650        "  font-family: monospace;\n",
   1651        "  font-weight: bold;\n",
   1652        "  display: inline-block;\n",
   1653        "  line-height: 1.2em;\n",
   1654        "}\n",
   1655        "\n",
   1656        "#sk-container-id-28 div.sk-label-container {\n",
   1657        "  text-align: center;\n",
   1658        "}\n",
   1659        "\n",
   1660        "/* Estimator-specific */\n",
   1661        "#sk-container-id-28 div.sk-estimator {\n",
   1662        "  font-family: monospace;\n",
   1663        "  border: 1px dotted var(--sklearn-color-border-box);\n",
   1664        "  border-radius: 0.25em;\n",
   1665        "  box-sizing: border-box;\n",
   1666        "  margin-bottom: 0.5em;\n",
   1667        "  /* unfitted */\n",
   1668        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
   1669        "}\n",
   1670        "\n",
   1671        "#sk-container-id-28 div.sk-estimator.fitted {\n",
   1672        "  /* fitted */\n",
   1673        "  background-color: var(--sklearn-color-fitted-level-0);\n",
   1674        "}\n",
   1675        "\n",
   1676        "/* on hover */\n",
   1677        "#sk-container-id-28 div.sk-estimator:hover {\n",
   1678        "  /* unfitted */\n",
   1679        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
   1680        "}\n",
   1681        "\n",
   1682        "#sk-container-id-28 div.sk-estimator.fitted:hover {\n",
   1683        "  /* fitted */\n",
   1684        "  background-color: var(--sklearn-color-fitted-level-2);\n",
   1685        "}\n",
   1686        "\n",
   1687        "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
   1688        "\n",
   1689        "/* Common style for \"i\" and \"?\" */\n",
   1690        "\n",
   1691        ".sk-estimator-doc-link,\n",
   1692        "a:link.sk-estimator-doc-link,\n",
   1693        "a:visited.sk-estimator-doc-link {\n",
   1694        "  float: right;\n",
   1695        "  font-size: smaller;\n",
   1696        "  line-height: 1em;\n",
   1697        "  font-family: monospace;\n",
   1698        "  background-color: var(--sklearn-color-background);\n",
   1699        "  border-radius: 1em;\n",
   1700        "  height: 1em;\n",
   1701        "  width: 1em;\n",
   1702        "  text-decoration: none !important;\n",
   1703        "  margin-left: 1ex;\n",
   1704        "  /* unfitted */\n",
   1705        "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
   1706        "  color: var(--sklearn-color-unfitted-level-1);\n",
   1707        "}\n",
   1708        "\n",
   1709        ".sk-estimator-doc-link.fitted,\n",
   1710        "a:link.sk-estimator-doc-link.fitted,\n",
   1711        "a:visited.sk-estimator-doc-link.fitted {\n",
   1712        "  /* fitted */\n",
   1713        "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
   1714        "  color: var(--sklearn-color-fitted-level-1);\n",
   1715        "}\n",
   1716        "\n",
   1717        "/* On hover */\n",
   1718        "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
   1719        ".sk-estimator-doc-link:hover,\n",
   1720        "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
   1721        ".sk-estimator-doc-link:hover {\n",
   1722        "  /* unfitted */\n",
   1723        "  background-color: var(--sklearn-color-unfitted-level-3);\n",
   1724        "  color: var(--sklearn-color-background);\n",
   1725        "  text-decoration: none;\n",
   1726        "}\n",
   1727        "\n",
   1728        "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
   1729        ".sk-estimator-doc-link.fitted:hover,\n",
   1730        "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
   1731        ".sk-estimator-doc-link.fitted:hover {\n",
   1732        "  /* fitted */\n",
   1733        "  background-color: var(--sklearn-color-fitted-level-3);\n",
   1734        "  color: var(--sklearn-color-background);\n",
   1735        "  text-decoration: none;\n",
   1736        "}\n",
   1737        "\n",
   1738        "/* Span, style for the box shown on hovering the info icon */\n",
   1739        ".sk-estimator-doc-link span {\n",
   1740        "  display: none;\n",
   1741        "  z-index: 9999;\n",
   1742        "  position: relative;\n",
   1743        "  font-weight: normal;\n",
   1744        "  right: .2ex;\n",
   1745        "  padding: .5ex;\n",
   1746        "  margin: .5ex;\n",
   1747        "  width: min-content;\n",
   1748        "  min-width: 20ex;\n",
   1749        "  max-width: 50ex;\n",
   1750        "  color: var(--sklearn-color-text);\n",
   1751        "  box-shadow: 2pt 2pt 4pt #999;\n",
   1752        "  /* unfitted */\n",
   1753        "  background: var(--sklearn-color-unfitted-level-0);\n",
   1754        "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
   1755        "}\n",
   1756        "\n",
   1757        ".sk-estimator-doc-link.fitted span {\n",
   1758        "  /* fitted */\n",
   1759        "  background: var(--sklearn-color-fitted-level-0);\n",
   1760        "  border: var(--sklearn-color-fitted-level-3);\n",
   1761        "}\n",
   1762        "\n",
   1763        ".sk-estimator-doc-link:hover span {\n",
   1764        "  display: block;\n",
   1765        "}\n",
   1766        "\n",
   1767        "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
   1768        "\n",
   1769        "#sk-container-id-28 a.estimator_doc_link {\n",
   1770        "  float: right;\n",
   1771        "  font-size: 1rem;\n",
   1772        "  line-height: 1em;\n",
   1773        "  font-family: monospace;\n",
   1774        "  background-color: var(--sklearn-color-background);\n",
   1775        "  border-radius: 1rem;\n",
   1776        "  height: 1rem;\n",
   1777        "  width: 1rem;\n",
   1778        "  text-decoration: none;\n",
   1779        "  /* unfitted */\n",
   1780        "  color: var(--sklearn-color-unfitted-level-1);\n",
   1781        "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
   1782        "}\n",
   1783        "\n",
   1784        "#sk-container-id-28 a.estimator_doc_link.fitted {\n",
   1785        "  /* fitted */\n",
   1786        "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
   1787        "  color: var(--sklearn-color-fitted-level-1);\n",
   1788        "}\n",
   1789        "\n",
   1790        "/* On hover */\n",
   1791        "#sk-container-id-28 a.estimator_doc_link:hover {\n",
   1792        "  /* unfitted */\n",
   1793        "  background-color: var(--sklearn-color-unfitted-level-3);\n",
   1794        "  color: var(--sklearn-color-background);\n",
   1795        "  text-decoration: none;\n",
   1796        "}\n",
   1797        "\n",
   1798        "#sk-container-id-28 a.estimator_doc_link.fitted:hover {\n",
   1799        "  /* fitted */\n",
   1800        "  background-color: var(--sklearn-color-fitted-level-3);\n",
   1801        "}\n",
   1802        "</style><div id=\"sk-container-id-28\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GradientBoostingRegressor(learning_rate=1, max_depth=2, n_estimators=3,\n",
   1803        "                          random_state=10)</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-28\" type=\"checkbox\" checked><label for=\"sk-estimator-id-28\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;GradientBoostingRegressor<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.GradientBoostingRegressor.html\">?<span>Documentation for GradientBoostingRegressor</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>GradientBoostingRegressor(learning_rate=1, max_depth=2, n_estimators=3,\n",
   1804        "                          random_state=10)</pre></div> </div></div></div></div>"
   1805       ],
   1806       "text/plain": [
   1807        "GradientBoostingRegressor(learning_rate=1, max_depth=2, n_estimators=3,\n",
   1808        "                          random_state=10)"
   1809       ]
   1810      },
   1811      "execution_count": 67,
   1812      "metadata": {},
   1813      "output_type": "execute_result"
   1814     }
   1815    ],
   1816    "source": [
   1817     "# Using built in gradient boosting\n",
   1818     "\n",
   1819     "from sklearn.ensemble import GradientBoostingRegressor\n",
   1820     "gbrt = GradientBoostingRegressor(max_depth=2, n_estimators=3, learning_rate=1,random_state=10)\n",
   1821     "gbrt.fit(X,y)"
   1822    ]
   1823   },
   1824   {
   1825    "cell_type": "code",
   1826    "execution_count": 68,
   1827    "metadata": {},
   1828    "outputs": [
   1829     {
   1830      "data": {
   1831       "text/plain": [
   1832        "<matplotlib.collections.PathCollection at 0x7fda67dcaa50>"
   1833       ]
   1834      },
   1835      "execution_count": 68,
   1836      "metadata": {},
   1837      "output_type": "execute_result"
   1838     },
   1839     {
   1840      "data": {
   1841       "image/png": "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OKDKykpVV1erublZS5cu1apVq9TZ2RmxfUZGhr7//e+rsbFR//u//6uKigpVVFTohRdemHDxAAAg8Tksy7LsdCgpKdGKFSu0a9cuSVIoFFJeXp42b96sLVu2xLSPZcuW6aabbtJ9990XU/tAICCPxyO/36+0tDQ75QIAAENiPX/bujLS39+vQ4cOqays7PMdOJ0qKytTY2PjmP0ty1JDQ4OOHDmi66+/Pmq7vr4+BQKBIS8AADAz2QojXV1dCgaDys7OHrI9OztbPp8vaj+/36958+YpOTlZN910kx588EHdeOONUdvX1NTI4/GEX3l5eXbKBAAACWRKnqZJTU3Vm2++qddff13/+q//qsrKSr300ktR21dVVcnv94dfJ0+enIoyAQCAAXPsNM7MzFRSUpI6OjqGbO/o6JDX643az+l06oorrpAkFRYW6u2331ZNTY2++tWvRmzvcrnkcrnslAYAABKUrSsjycnJKioqUkNDQ3hbKBRSQ0ODSktLY95PKBRSX1+fnaEBAMAMZevKiCRVVlZq48aNWr58uYqLi1VbW6ve3l5VVFRIkjZs2KDc3FzV1NRIunD/x/Lly7Vo0SL19fXp+eef1+OPP649e/bE95MAAICEZDuMlJeX6/Tp09q6dat8Pp8KCwtVX18fvqn1xIkTcjo/v+DS29urv/u7v9P777+viy66SFdddZX27dun8vLy+H0KAACQsGzPM2IC84wAAJB4JmWeEQAAgHgjjAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKPGFUZ2796t/Px8ud1ulZSUqKmpKWrbvXv3auXKlZo/f77mz5+vsrKyUdsDAIDZxXYYOXDggCorK1VdXa3m5mYtXbpUq1atUmdnZ8T2L730ktatW6cXX3xRjY2NysvL09e+9jV98MEHEy4eAAAkPodlWZadDiUlJVqxYoV27dol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",
   1842       "text/plain": [
   1843        "<Figure size 640x480 with 1 Axes>"
   1844       ]
   1845      },
   1846      "metadata": {},
   1847      "output_type": "display_data"
   1848     }
   1849    ],
   1850    "source": [
   1851     "np.random.seed(10)\n",
   1852     "X_test = np.random.rand(100,1) - .5\n",
   1853     "y_test = gbrt.predict(X_test)\n",
   1854     "plt.scatter(X_test,y_test)"
   1855    ]
   1856   },
   1857   {
   1858    "cell_type": "code",
   1859    "execution_count": 77,
   1860    "metadata": {},
   1861    "outputs": [
   1862     {
   1863      "data": {
   1864       "text/html": [
   1865        "<style>#sk-container-id-33 {\n",
   1866        "  /* Definition of color scheme common for light and dark mode */\n",
   1867        "  --sklearn-color-text: black;\n",
   1868        "  --sklearn-color-line: gray;\n",
   1869        "  /* Definition of color scheme for unfitted estimators */\n",
   1870        "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
   1871        "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
   1872        "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
   1873        "  --sklearn-color-unfitted-level-3: chocolate;\n",
   1874        "  /* Definition of color scheme for fitted estimators */\n",
   1875        "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
   1876        "  --sklearn-color-fitted-level-1: #d4ebff;\n",
   1877        "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
   1878        "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
   1879        "\n",
   1880        "  /* Specific color for light theme */\n",
   1881        "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
   1882        "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
   1883        "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
   1884        "  --sklearn-color-icon: #696969;\n",
   1885        "\n",
   1886        "  @media (prefers-color-scheme: dark) {\n",
   1887        "    /* Redefinition of color scheme for dark theme */\n",
   1888        "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
   1889        "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
   1890        "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
   1891        "    --sklearn-color-icon: #878787;\n",
   1892        "  }\n",
   1893        "}\n",
   1894        "\n",
   1895        "#sk-container-id-33 {\n",
   1896        "  color: var(--sklearn-color-text);\n",
   1897        "}\n",
   1898        "\n",
   1899        "#sk-container-id-33 pre {\n",
   1900        "  padding: 0;\n",
   1901        "}\n",
   1902        "\n",
   1903        "#sk-container-id-33 input.sk-hidden--visually {\n",
   1904        "  border: 0;\n",
   1905        "  clip: rect(1px 1px 1px 1px);\n",
   1906        "  clip: rect(1px, 1px, 1px, 1px);\n",
   1907        "  height: 1px;\n",
   1908        "  margin: -1px;\n",
   1909        "  overflow: hidden;\n",
   1910        "  padding: 0;\n",
   1911        "  position: absolute;\n",
   1912        "  width: 1px;\n",
   1913        "}\n",
   1914        "\n",
   1915        "#sk-container-id-33 div.sk-dashed-wrapped {\n",
   1916        "  border: 1px dashed var(--sklearn-color-line);\n",
   1917        "  margin: 0 0.4em 0.5em 0.4em;\n",
   1918        "  box-sizing: border-box;\n",
   1919        "  padding-bottom: 0.4em;\n",
   1920        "  background-color: var(--sklearn-color-background);\n",
   1921        "}\n",
   1922        "\n",
   1923        "#sk-container-id-33 div.sk-container {\n",
   1924        "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
   1925        "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
   1926        "     so we also need the `!important` here to be able to override the\n",
   1927        "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
   1928        "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
   1929        "  display: inline-block !important;\n",
   1930        "  position: relative;\n",
   1931        "}\n",
   1932        "\n",
   1933        "#sk-container-id-33 div.sk-text-repr-fallback {\n",
   1934        "  display: none;\n",
   1935        "}\n",
   1936        "\n",
   1937        "div.sk-parallel-item,\n",
   1938        "div.sk-serial,\n",
   1939        "div.sk-item {\n",
   1940        "  /* draw centered vertical line to link estimators */\n",
   1941        "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
   1942        "  background-size: 2px 100%;\n",
   1943        "  background-repeat: no-repeat;\n",
   1944        "  background-position: center center;\n",
   1945        "}\n",
   1946        "\n",
   1947        "/* Parallel-specific style estimator block */\n",
   1948        "\n",
   1949        "#sk-container-id-33 div.sk-parallel-item::after {\n",
   1950        "  content: \"\";\n",
   1951        "  width: 100%;\n",
   1952        "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
   1953        "  flex-grow: 1;\n",
   1954        "}\n",
   1955        "\n",
   1956        "#sk-container-id-33 div.sk-parallel {\n",
   1957        "  display: flex;\n",
   1958        "  align-items: stretch;\n",
   1959        "  justify-content: center;\n",
   1960        "  background-color: var(--sklearn-color-background);\n",
   1961        "  position: relative;\n",
   1962        "}\n",
   1963        "\n",
   1964        "#sk-container-id-33 div.sk-parallel-item {\n",
   1965        "  display: flex;\n",
   1966        "  flex-direction: column;\n",
   1967        "}\n",
   1968        "\n",
   1969        "#sk-container-id-33 div.sk-parallel-item:first-child::after {\n",
   1970        "  align-self: flex-end;\n",
   1971        "  width: 50%;\n",
   1972        "}\n",
   1973        "\n",
   1974        "#sk-container-id-33 div.sk-parallel-item:last-child::after {\n",
   1975        "  align-self: flex-start;\n",
   1976        "  width: 50%;\n",
   1977        "}\n",
   1978        "\n",
   1979        "#sk-container-id-33 div.sk-parallel-item:only-child::after {\n",
   1980        "  width: 0;\n",
   1981        "}\n",
   1982        "\n",
   1983        "/* Serial-specific style estimator block */\n",
   1984        "\n",
   1985        "#sk-container-id-33 div.sk-serial {\n",
   1986        "  display: flex;\n",
   1987        "  flex-direction: column;\n",
   1988        "  align-items: center;\n",
   1989        "  background-color: var(--sklearn-color-background);\n",
   1990        "  padding-right: 1em;\n",
   1991        "  padding-left: 1em;\n",
   1992        "}\n",
   1993        "\n",
   1994        "\n",
   1995        "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
   1996        "clickable and can be expanded/collapsed.\n",
   1997        "- Pipeline and ColumnTransformer use this feature and define the default style\n",
   1998        "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
   1999        "*/\n",
   2000        "\n",
   2001        "/* Pipeline and ColumnTransformer style (default) */\n",
   2002        "\n",
   2003        "#sk-container-id-33 div.sk-toggleable {\n",
   2004        "  /* Default theme specific background. It is overwritten whether we have a\n",
   2005        "  specific estimator or a Pipeline/ColumnTransformer */\n",
   2006        "  background-color: var(--sklearn-color-background);\n",
   2007        "}\n",
   2008        "\n",
   2009        "/* Toggleable label */\n",
   2010        "#sk-container-id-33 label.sk-toggleable__label {\n",
   2011        "  cursor: pointer;\n",
   2012        "  display: block;\n",
   2013        "  width: 100%;\n",
   2014        "  margin-bottom: 0;\n",
   2015        "  padding: 0.5em;\n",
   2016        "  box-sizing: border-box;\n",
   2017        "  text-align: center;\n",
   2018        "}\n",
   2019        "\n",
   2020        "#sk-container-id-33 label.sk-toggleable__label-arrow:before {\n",
   2021        "  /* Arrow on the left of the label */\n",
   2022        "  content: \"▸\";\n",
   2023        "  float: left;\n",
   2024        "  margin-right: 0.25em;\n",
   2025        "  color: var(--sklearn-color-icon);\n",
   2026        "}\n",
   2027        "\n",
   2028        "#sk-container-id-33 label.sk-toggleable__label-arrow:hover:before {\n",
   2029        "  color: var(--sklearn-color-text);\n",
   2030        "}\n",
   2031        "\n",
   2032        "/* Toggleable content - dropdown */\n",
   2033        "\n",
   2034        "#sk-container-id-33 div.sk-toggleable__content {\n",
   2035        "  max-height: 0;\n",
   2036        "  max-width: 0;\n",
   2037        "  overflow: hidden;\n",
   2038        "  text-align: left;\n",
   2039        "  /* unfitted */\n",
   2040        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
   2041        "}\n",
   2042        "\n",
   2043        "#sk-container-id-33 div.sk-toggleable__content.fitted {\n",
   2044        "  /* fitted */\n",
   2045        "  background-color: var(--sklearn-color-fitted-level-0);\n",
   2046        "}\n",
   2047        "\n",
   2048        "#sk-container-id-33 div.sk-toggleable__content pre {\n",
   2049        "  margin: 0.2em;\n",
   2050        "  border-radius: 0.25em;\n",
   2051        "  color: var(--sklearn-color-text);\n",
   2052        "  /* unfitted */\n",
   2053        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
   2054        "}\n",
   2055        "\n",
   2056        "#sk-container-id-33 div.sk-toggleable__content.fitted pre {\n",
   2057        "  /* unfitted */\n",
   2058        "  background-color: var(--sklearn-color-fitted-level-0);\n",
   2059        "}\n",
   2060        "\n",
   2061        "#sk-container-id-33 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
   2062        "  /* Expand drop-down */\n",
   2063        "  max-height: 200px;\n",
   2064        "  max-width: 100%;\n",
   2065        "  overflow: auto;\n",
   2066        "}\n",
   2067        "\n",
   2068        "#sk-container-id-33 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
   2069        "  content: \"▾\";\n",
   2070        "}\n",
   2071        "\n",
   2072        "/* Pipeline/ColumnTransformer-specific style */\n",
   2073        "\n",
   2074        "#sk-container-id-33 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
   2075        "  color: var(--sklearn-color-text);\n",
   2076        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
   2077        "}\n",
   2078        "\n",
   2079        "#sk-container-id-33 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
   2080        "  background-color: var(--sklearn-color-fitted-level-2);\n",
   2081        "}\n",
   2082        "\n",
   2083        "/* Estimator-specific style */\n",
   2084        "\n",
   2085        "/* Colorize estimator box */\n",
   2086        "#sk-container-id-33 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
   2087        "  /* unfitted */\n",
   2088        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
   2089        "}\n",
   2090        "\n",
   2091        "#sk-container-id-33 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
   2092        "  /* fitted */\n",
   2093        "  background-color: var(--sklearn-color-fitted-level-2);\n",
   2094        "}\n",
   2095        "\n",
   2096        "#sk-container-id-33 div.sk-label label.sk-toggleable__label,\n",
   2097        "#sk-container-id-33 div.sk-label label {\n",
   2098        "  /* The background is the default theme color */\n",
   2099        "  color: var(--sklearn-color-text-on-default-background);\n",
   2100        "}\n",
   2101        "\n",
   2102        "/* On hover, darken the color of the background */\n",
   2103        "#sk-container-id-33 div.sk-label:hover label.sk-toggleable__label {\n",
   2104        "  color: var(--sklearn-color-text);\n",
   2105        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
   2106        "}\n",
   2107        "\n",
   2108        "/* Label box, darken color on hover, fitted */\n",
   2109        "#sk-container-id-33 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
   2110        "  color: var(--sklearn-color-text);\n",
   2111        "  background-color: var(--sklearn-color-fitted-level-2);\n",
   2112        "}\n",
   2113        "\n",
   2114        "/* Estimator label */\n",
   2115        "\n",
   2116        "#sk-container-id-33 div.sk-label label {\n",
   2117        "  font-family: monospace;\n",
   2118        "  font-weight: bold;\n",
   2119        "  display: inline-block;\n",
   2120        "  line-height: 1.2em;\n",
   2121        "}\n",
   2122        "\n",
   2123        "#sk-container-id-33 div.sk-label-container {\n",
   2124        "  text-align: center;\n",
   2125        "}\n",
   2126        "\n",
   2127        "/* Estimator-specific */\n",
   2128        "#sk-container-id-33 div.sk-estimator {\n",
   2129        "  font-family: monospace;\n",
   2130        "  border: 1px dotted var(--sklearn-color-border-box);\n",
   2131        "  border-radius: 0.25em;\n",
   2132        "  box-sizing: border-box;\n",
   2133        "  margin-bottom: 0.5em;\n",
   2134        "  /* unfitted */\n",
   2135        "  background-color: var(--sklearn-color-unfitted-level-0);\n",
   2136        "}\n",
   2137        "\n",
   2138        "#sk-container-id-33 div.sk-estimator.fitted {\n",
   2139        "  /* fitted */\n",
   2140        "  background-color: var(--sklearn-color-fitted-level-0);\n",
   2141        "}\n",
   2142        "\n",
   2143        "/* on hover */\n",
   2144        "#sk-container-id-33 div.sk-estimator:hover {\n",
   2145        "  /* unfitted */\n",
   2146        "  background-color: var(--sklearn-color-unfitted-level-2);\n",
   2147        "}\n",
   2148        "\n",
   2149        "#sk-container-id-33 div.sk-estimator.fitted:hover {\n",
   2150        "  /* fitted */\n",
   2151        "  background-color: var(--sklearn-color-fitted-level-2);\n",
   2152        "}\n",
   2153        "\n",
   2154        "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
   2155        "\n",
   2156        "/* Common style for \"i\" and \"?\" */\n",
   2157        "\n",
   2158        ".sk-estimator-doc-link,\n",
   2159        "a:link.sk-estimator-doc-link,\n",
   2160        "a:visited.sk-estimator-doc-link {\n",
   2161        "  float: right;\n",
   2162        "  font-size: smaller;\n",
   2163        "  line-height: 1em;\n",
   2164        "  font-family: monospace;\n",
   2165        "  background-color: var(--sklearn-color-background);\n",
   2166        "  border-radius: 1em;\n",
   2167        "  height: 1em;\n",
   2168        "  width: 1em;\n",
   2169        "  text-decoration: none !important;\n",
   2170        "  margin-left: 1ex;\n",
   2171        "  /* unfitted */\n",
   2172        "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
   2173        "  color: var(--sklearn-color-unfitted-level-1);\n",
   2174        "}\n",
   2175        "\n",
   2176        ".sk-estimator-doc-link.fitted,\n",
   2177        "a:link.sk-estimator-doc-link.fitted,\n",
   2178        "a:visited.sk-estimator-doc-link.fitted {\n",
   2179        "  /* fitted */\n",
   2180        "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
   2181        "  color: var(--sklearn-color-fitted-level-1);\n",
   2182        "}\n",
   2183        "\n",
   2184        "/* On hover */\n",
   2185        "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
   2186        ".sk-estimator-doc-link:hover,\n",
   2187        "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
   2188        ".sk-estimator-doc-link:hover {\n",
   2189        "  /* unfitted */\n",
   2190        "  background-color: var(--sklearn-color-unfitted-level-3);\n",
   2191        "  color: var(--sklearn-color-background);\n",
   2192        "  text-decoration: none;\n",
   2193        "}\n",
   2194        "\n",
   2195        "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
   2196        ".sk-estimator-doc-link.fitted:hover,\n",
   2197        "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
   2198        ".sk-estimator-doc-link.fitted:hover {\n",
   2199        "  /* fitted */\n",
   2200        "  background-color: var(--sklearn-color-fitted-level-3);\n",
   2201        "  color: var(--sklearn-color-background);\n",
   2202        "  text-decoration: none;\n",
   2203        "}\n",
   2204        "\n",
   2205        "/* Span, style for the box shown on hovering the info icon */\n",
   2206        ".sk-estimator-doc-link span {\n",
   2207        "  display: none;\n",
   2208        "  z-index: 9999;\n",
   2209        "  position: relative;\n",
   2210        "  font-weight: normal;\n",
   2211        "  right: .2ex;\n",
   2212        "  padding: .5ex;\n",
   2213        "  margin: .5ex;\n",
   2214        "  width: min-content;\n",
   2215        "  min-width: 20ex;\n",
   2216        "  max-width: 50ex;\n",
   2217        "  color: var(--sklearn-color-text);\n",
   2218        "  box-shadow: 2pt 2pt 4pt #999;\n",
   2219        "  /* unfitted */\n",
   2220        "  background: var(--sklearn-color-unfitted-level-0);\n",
   2221        "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
   2222        "}\n",
   2223        "\n",
   2224        ".sk-estimator-doc-link.fitted span {\n",
   2225        "  /* fitted */\n",
   2226        "  background: var(--sklearn-color-fitted-level-0);\n",
   2227        "  border: var(--sklearn-color-fitted-level-3);\n",
   2228        "}\n",
   2229        "\n",
   2230        ".sk-estimator-doc-link:hover span {\n",
   2231        "  display: block;\n",
   2232        "}\n",
   2233        "\n",
   2234        "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
   2235        "\n",
   2236        "#sk-container-id-33 a.estimator_doc_link {\n",
   2237        "  float: right;\n",
   2238        "  font-size: 1rem;\n",
   2239        "  line-height: 1em;\n",
   2240        "  font-family: monospace;\n",
   2241        "  background-color: var(--sklearn-color-background);\n",
   2242        "  border-radius: 1rem;\n",
   2243        "  height: 1rem;\n",
   2244        "  width: 1rem;\n",
   2245        "  text-decoration: none;\n",
   2246        "  /* unfitted */\n",
   2247        "  color: var(--sklearn-color-unfitted-level-1);\n",
   2248        "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
   2249        "}\n",
   2250        "\n",
   2251        "#sk-container-id-33 a.estimator_doc_link.fitted {\n",
   2252        "  /* fitted */\n",
   2253        "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
   2254        "  color: var(--sklearn-color-fitted-level-1);\n",
   2255        "}\n",
   2256        "\n",
   2257        "/* On hover */\n",
   2258        "#sk-container-id-33 a.estimator_doc_link:hover {\n",
   2259        "  /* unfitted */\n",
   2260        "  background-color: var(--sklearn-color-unfitted-level-3);\n",
   2261        "  color: var(--sklearn-color-background);\n",
   2262        "  text-decoration: none;\n",
   2263        "}\n",
   2264        "\n",
   2265        "#sk-container-id-33 a.estimator_doc_link.fitted:hover {\n",
   2266        "  /* fitted */\n",
   2267        "  background-color: var(--sklearn-color-fitted-level-3);\n",
   2268        "}\n",
   2269        "</style><div id=\"sk-container-id-33\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GradientBoostingRegressor(learning_rate=0.05, max_depth=2, n_estimators=500,\n",
   2270        "                          n_iter_no_change=10, random_state=10)</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-33\" type=\"checkbox\" checked><label for=\"sk-estimator-id-33\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;GradientBoostingRegressor<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.GradientBoostingRegressor.html\">?<span>Documentation for GradientBoostingRegressor</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>GradientBoostingRegressor(learning_rate=0.05, max_depth=2, n_estimators=500,\n",
   2271        "                          n_iter_no_change=10, random_state=10)</pre></div> </div></div></div></div>"
   2272       ],
   2273       "text/plain": [
   2274        "GradientBoostingRegressor(learning_rate=0.05, max_depth=2, n_estimators=500,\n",
   2275        "                          n_iter_no_change=10, random_state=10)"
   2276       ]
   2277      },
   2278      "execution_count": 77,
   2279      "metadata": {},
   2280      "output_type": "execute_result"
   2281     }
   2282    ],
   2283    "source": [
   2284     "# Using early stopping once it has gone 10 iterations with no changes\n",
   2285     "\n",
   2286     "from sklearn.ensemble import GradientBoostingRegressor\n",
   2287     "gbrt = GradientBoostingRegressor(max_depth=2, n_estimators=500, n_iter_no_change=10,  learning_rate=.05,random_state=10)\n",
   2288     "gbrt.fit(X,y)"
   2289    ]
   2290   },
   2291   {
   2292    "cell_type": "code",
   2293    "execution_count": 78,
   2294    "metadata": {},
   2295    "outputs": [
   2296     {
   2297      "data": {
   2298       "text/plain": [
   2299        "<matplotlib.collections.PathCollection at 0x7fda67a68f50>"
   2300       ]
   2301      },
   2302      "execution_count": 78,
   2303      "metadata": {},
   2304      "output_type": "execute_result"
   2305     },
   2306     {
   2307      "data": {
   2308       "image/png": "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97//fWDbiy++GHZCZXd3t3Hs2LExD0nGv/zLvxjvvfdeqrqekeI534ZhGG6321iyZIlx1113GQMDA6noakaqqakxvvWtbwW+9nq9xqxZs8JOYP2zP/uzMdvq6uqYwBqFWM+1YRjG448/bhQXFxttbW2p6GJWieV8f/zxxxP+Rt9zzz3GF7/4RePYsWPG0NBQKrueNggjaW7FihXG7bffbrzxxhvGq6++atx8883G2rVrA8+///77xi233GK88cYbIY8h7qaJWqzn2+12G7W1tcbcuXONd9991+ju7g48rly5Yta3kZYOHjxoFBQUGE899ZTR1dVlfP3rXzdKSkoMl8tlGIZh3HfffcamTZsC7X/7298aU6ZMMXbs2GH84Q9/MJqamoypU6cax44dM+tbyBixnuvt27cb+fn5xs9//vMxv8MXL14061vIKLGe7/G4m4YwkvbOnz9vrF271pg2bZpRXFxsNDQ0jPkDceLECUOS8fLLL4c8BmEkerGe75dfftmQFPRx4sQJc76JNPbDH/7QuP766438/HyjpqbGeP311wPP3XXXXcaGDRvGtP/pT39qfPrTnzby8/ONz372s8avfvWrFPc4c8Vyrm+44Yagv8NNTU2p73iGivV3ezTCiGFYDMMwUj00BAAA4MfdNAAAwFSEEQAAYCrCCAAAMBVhBAAAmIowAgAATEUYAQAApiKMAAAAUxFGAACAqQgjAADAVIQRAABgKsIIAAAw1f8PdU9HhYzzd/EAAAAASUVORK5CYII=",
   2309       "text/plain": [
   2310        "<Figure size 640x480 with 1 Axes>"
   2311       ]
   2312      },
   2313      "metadata": {},
   2314      "output_type": "display_data"
   2315     }
   2316    ],
   2317    "source": [
   2318     "np.random.seed(10)\n",
   2319     "X_test = np.random.rand(100,1) - .5\n",
   2320     "y_test = gbrt.predict(X_test)\n",
   2321     "plt.scatter(X_test,y_test)"
   2322    ]
   2323   },
   2324   {
   2325    "cell_type": "code",
   2326    "execution_count": 79,
   2327    "metadata": {},
   2328    "outputs": [
   2329     {
   2330      "data": {
   2331       "text/plain": [
   2332        "93"
   2333       ]
   2334      },
   2335      "execution_count": 79,
   2336      "metadata": {},
   2337      "output_type": "execute_result"
   2338     }
   2339    ],
   2340    "source": [
   2341     "gbrt.n_estimators_"
   2342    ]
   2343   }
   2344  ],
   2345  "metadata": {
   2346   "kernelspec": {
   2347    "display_name": "notebook",
   2348    "language": "python",
   2349    "name": "notebook"
   2350   },
   2351   "language_info": {
   2352    "codemirror_mode": {
   2353     "name": "ipython",
   2354     "version": 3
   2355    },
   2356    "file_extension": ".py",
   2357    "mimetype": "text/x-python",
   2358    "name": "python",
   2359    "nbconvert_exporter": "python",
   2360    "pygments_lexer": "ipython3",
   2361    "version": "3.11.2"
   2362   }
   2363  },
   2364  "nbformat": 4,
   2365  "nbformat_minor": 2
   2366 }