{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "Import all the required frameworks"
      ],
      "metadata": {
        "id": "PUDVUjMdnfuU"
      }
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "uZCSNIawbQKr"
      },
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "import pandas as pd"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "Create a data with the random numbers"
      ],
      "metadata": {
        "id": "kLatihjk4IZn"
      }
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "IfLejin3bVGL"
      },
      "source": [
        "np.random.seed(42)\n",
        "X = np.random.rand(100, 1) - 0.5\n",
        "y = 3*X[:, 0]**2 + 0.05 * np.random.randn(100)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "lHEpruVAbbG3"
      },
      "source": [
        "df = pd.DataFrame()\n",
        "df['X'] = X.reshape(100)\n",
        "df['y'] = y"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 423
        },
        "id": "p4nfMcL1beac",
        "outputId": "5d5601b2-565e-4c97-80a7-4f2544af6cc9"
      },
      "source": [
        "df"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "           X         y\n",
              "0  -0.125460  0.051573\n",
              "1   0.450714  0.594480\n",
              "2   0.231994  0.166052\n",
              "3   0.098658 -0.070178\n",
              "4  -0.343981  0.343986\n",
              "..       ...       ...\n",
              "95 -0.006204 -0.040675\n",
              "96  0.022733 -0.002305\n",
              "97 -0.072459  0.032809\n",
              "98 -0.474581  0.689516\n",
              "99 -0.392109  0.502607\n",
              "\n",
              "[100 rows x 2 columns]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-eb99b7f3-e5e7-442c-a329-a13f9c960e0a\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>X</th>\n",
              "      <th>y</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>-0.125460</td>\n",
              "      <td>0.051573</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>0.450714</td>\n",
              "      <td>0.594480</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>0.231994</td>\n",
              "      <td>0.166052</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>0.098658</td>\n",
              "      <td>-0.070178</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>-0.343981</td>\n",
              "      <td>0.343986</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>95</th>\n",
              "      <td>-0.006204</td>\n",
              "      <td>-0.040675</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>96</th>\n",
              "      <td>0.022733</td>\n",
              "      <td>-0.002305</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>97</th>\n",
              "      <td>-0.072459</td>\n",
              "      <td>0.032809</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>98</th>\n",
              "      <td>-0.474581</td>\n",
              "      <td>0.689516</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99</th>\n",
              "      <td>-0.392109</td>\n",
              "      <td>0.502607</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>100 rows × 2 columns</p>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-eb99b7f3-e5e7-442c-a329-a13f9c960e0a')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-eb99b7f3-e5e7-442c-a329-a13f9c960e0a button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-eb99b7f3-e5e7-442c-a329-a13f9c960e0a');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-de7fc4bc-3b71-4c6f-9806-ed99f490f9a8\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-de7fc4bc-3b71-4c6f-9806-ed99f490f9a8')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-de7fc4bc-3b71-4c6f-9806-ed99f490f9a8 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "  <div id=\"id_f66cffef-f5c6-4a26-9bcf-4e09f2c29776\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('df')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_f66cffef-f5c6-4a26-9bcf-4e09f2c29776 button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 100,\n  \"fields\": [\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2974894110153193,\n        \"min\": -0.4944778828763976,\n        \"max\": 0.4868869366005173,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          -0.43644164971397637,\n          0.3948273504276488,\n          0.2722447692966574\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"y\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2371976451305763,\n        \"min\": -0.07017795621787389,\n        \"max\": 0.759622208242618,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          0.6042716212468632,\n          0.44249212723134224,\n          0.16050410768426654\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 5
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 469
        },
        "id": "jpHtK8R1BNtN",
        "outputId": "7bb98ccb-f1e2-497a-f155-c15919a4725e"
      },
      "source": [
        "plt.scatter(df['X'],df['y'])\n",
        "plt.title('X vs Y')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Text(0.5, 1.0, 'X vs Y')"
            ]
          },
          "metadata": {},
          "execution_count": 6
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGzCAYAAAD9pBdvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA6O0lEQVR4nO3de3RU9b3//9ckksQLCWAOCcQoar1FlChIREBPPaGoSGGt0xZRgfLz0kPBckz9LaEVI6UKtB5/uAqV34n61VUX5eL6IV4wHgU8Fo1QQXpEQGsE4SATJLSTFCSBzP79ESfmMpe9Z/bM3nvm+Vgra5lhT/LJmMm85/15f95vn2EYhgAAAByS5fQCAABAZiMYAQAAjiIYAQAAjiIYAQAAjiIYAQAAjiIYAQAAjiIYAQAAjiIYAQAAjiIYAQAAjiIYAQAAjiIYARDVnXfeqby8PH366ac9/m3RokXy+Xx69dVXHViZVFdXp6ysLM2dOzfsvy9evFg+n0+vvfZailcGwAofs2kARHP48GFdeumlKi8v18aNGztu37t3ry6//HLdcsstevHFFx1b34wZM/TMM8/oww8/1OWXX95x+xdffKGysjKNGzdOq1evdmx9AGIjGAEQU01Nje69914999xzmjZtmiTp5ptv1nvvvaddu3appKTEsbUFAgFddtlluuCCC/SnP/1JPp9PkvT9739f77zzjnbv3q0BAwY4tj4AsbFNAyCmu+++WyNHjtQDDzygxsZGrVy5UrW1tfr1r38dMxC59dZbdcEFF4T9txEjRmjYsGEdn7/55psaNWqU+vTpo7POOkuXXHKJfvGLX0T9+gUFBXryySf17rvv6umnn5YkrV27Vq+88ooWLVpEIAJ4AJkRAKZ8/PHHuuqqqzRx4kT96U9/0jnnnKMtW7YoKyv6e5o//OEPmjp1qrZu3aprrrmm4/YvvvhCgwYN0m9/+1s98MAD+vjjj3X11Vfryiuv1JQpU5Sbm6vPPvtMW7du1X//93/HXN+tt96q9957Tx988IH++Z//WaWlpdq8eXNHpgSAe53m9AIAeMPll1+uBx54QAsXLlR2drZee+21mIGIJE2YMEG5ublatWpVl2Bk9erV8vl8+tGPfiSpPSvS2tqq119/XYWFhZbXt2zZMl1++eW65ppr1NzcrPXr1xOIAB7BNg0A00JBwsCBAzV48GBT98nPz9fNN9+s1atXq3MidtWqVbr22mt17rnnSpL69OkjSVq3bp2CwaDltZ133nmqrq7W0aNHVVVVZXp9AJxHMALAlAMHDqi6ulqDBw/WgQMH9Jvf/Mb0fSdNmqQDBw6orq5OklRfX69t27Zp0qRJXa4ZOXKk7r77bhUVFem2227T6tWrLQUmocxL5zoUAO5HMALAlFmzZkmSXn/9df3whz/Uo48+qs8//9zUfcePH68zzjij44jt6tWrlZWVpR/+8Icd15x++ul655139NZbb2nKlCn6n//5H02aNEljxoxRW1ub/T8QANcgGAEQ09q1a/Xyyy9rwYIFOuecc7RkyRLl5ORo5syZpu5/5pln6tZbb9WaNWsUDAa1atUqjR49WgMHDuxyXVZWlv7lX/5FTzzxhHbt2qVHH31UGzdu1KZNm5LxYwFwCYIRAFE1NzfrZz/7ma666irdd999ktprRhYsWKDa2lqtWbPG1NeZNGmSvvzySz399NP6y1/+0mWLRpKOHj3a4z7l5eWSpJaWlsR+CACuxtFeAFHNnj1bS5cu1fvvv9/lNExbW5uGDx8uv9+vPXv2qHfv3lG/zokTJ9S/f39J0vHjx/Xll192fC5J//7v/6533nlH48aN03nnnafDhw/r97//vXw+n3bu3KmCgoKYa3377bf13e9+V2vWrNEPfvCDOH9iAKlGZgRARNu2bdOyZcv005/+tEsgIknZ2dlavny5/H6/HnrooZhfKy8vT9///vfV3Nys7373u10CEam9Y+q5556rZ599VjNnztSyZct0/fXXa+PGjaYCEQDeRWYEAAA4iswIAABwFMEIAABwFMEIAABwVFzByLJlyzRo0CDl5eWpoqJCW7dujXr9kiVLdMkll+j0009XaWmp7r//fp04cSKuBQMAgPRiORhZtWqVqqqqVF1dre3bt2vIkCEaO3asDh8+HPb6FStWaM6cOaqurtbu3bv1zDPPaNWqVTHHggMAgMxg+TRNRUWFrrnmGi1dulSSFAwGVVpaqvvuu09z5szpcf2sWbO0e/dubdiwoeO2n//859qyZYs2b96c4PIBAIDXnWbl4tbWVm3btk1z587tuC0rK0uVlZUdA7C6u+666/TCCy9o69atGj58uD7//HOtX79eU6ZMifh9WlpaunRcDAaDOnr0qM4++2xGggMA4BGGYai5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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Step 1: m1(predictions as the mean of the target values)"
      ],
      "metadata": {
        "id": "8re-LGTU4eW7"
      }
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "GbiTrFJZbiWY"
      },
      "source": [
        "df['pred1'] = df['y'].mean()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 423
        },
        "id": "8XuACSn-bvev",
        "outputId": "dbdfacfa-e7a5-4acb-90bb-3749ca49ec21"
      },
      "source": [
        "df"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "           X         y     pred1\n",
              "0  -0.125460  0.051573  0.265458\n",
              "1   0.450714  0.594480  0.265458\n",
              "2   0.231994  0.166052  0.265458\n",
              "3   0.098658 -0.070178  0.265458\n",
              "4  -0.343981  0.343986  0.265458\n",
              "..       ...       ...       ...\n",
              "95 -0.006204 -0.040675  0.265458\n",
              "96  0.022733 -0.002305  0.265458\n",
              "97 -0.072459  0.032809  0.265458\n",
              "98 -0.474581  0.689516  0.265458\n",
              "99 -0.392109  0.502607  0.265458\n",
              "\n",
              "[100 rows x 3 columns]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-0e175678-e511-4b32-b053-e624b11c84d5\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>X</th>\n",
              "      <th>y</th>\n",
              "      <th>pred1</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>-0.125460</td>\n",
              "      <td>0.051573</td>\n",
              "      <td>0.265458</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>0.450714</td>\n",
              "      <td>0.594480</td>\n",
              "      <td>0.265458</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>0.231994</td>\n",
              "      <td>0.166052</td>\n",
              "      <td>0.265458</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>0.098658</td>\n",
              "      <td>-0.070178</td>\n",
              "      <td>0.265458</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>-0.343981</td>\n",
              "      <td>0.343986</td>\n",
              "      <td>0.265458</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>95</th>\n",
              "      <td>-0.006204</td>\n",
              "      <td>-0.040675</td>\n",
              "      <td>0.265458</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>96</th>\n",
              "      <td>0.022733</td>\n",
              "      <td>-0.002305</td>\n",
              "      <td>0.265458</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>97</th>\n",
              "      <td>-0.072459</td>\n",
              "      <td>0.032809</td>\n",
              "      <td>0.265458</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>98</th>\n",
              "      <td>-0.474581</td>\n",
              "      <td>0.689516</td>\n",
              "      <td>0.265458</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99</th>\n",
              "      <td>-0.392109</td>\n",
              "      <td>0.502607</td>\n",
              "      <td>0.265458</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>100 rows × 3 columns</p>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-0e175678-e511-4b32-b053-e624b11c84d5')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-0e175678-e511-4b32-b053-e624b11c84d5 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-0e175678-e511-4b32-b053-e624b11c84d5');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-e9b621fb-ec1e-456a-9bea-724a50abcf8d\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-e9b621fb-ec1e-456a-9bea-724a50abcf8d')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-e9b621fb-ec1e-456a-9bea-724a50abcf8d button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "  <div id=\"id_ebbe9c23-1ed4-422b-b046-40423b53403d\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('df')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_ebbe9c23-1ed4-422b-b046-40423b53403d button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 100,\n  \"fields\": [\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2974894110153193,\n        \"min\": -0.4944778828763976,\n        \"max\": 0.4868869366005173,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          -0.43644164971397637,\n          0.3948273504276488,\n          0.2722447692966574\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"y\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2371976451305763,\n        \"min\": -0.07017795621787389,\n        \"max\": 0.759622208242618,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          0.6042716212468632,\n          0.44249212723134224,\n          0.16050410768426654\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"pred1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 0.26545839669679816,\n        \"max\": 0.26545839669679816,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          0.26545839669679816\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 8
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Psuedoresiduals = difference between the target and the actual values"
      ],
      "metadata": {
        "id": "F36_cWBg4sfu"
      }
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "dUIy2RxobwVr"
      },
      "source": [
        "df['res1'] = df['y'] - df['pred1']"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 423
        },
        "id": "38KvYW9Sb5B-",
        "outputId": "031d7d22-270a-46a2-c578-ec1a1575b3cd"
      },
      "source": [
        "df"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "           X         y     pred1      res1\n",
              "0  -0.125460  0.051573  0.265458 -0.213885\n",
              "1   0.450714  0.594480  0.265458  0.329021\n",
              "2   0.231994  0.166052  0.265458 -0.099407\n",
              "3   0.098658 -0.070178  0.265458 -0.335636\n",
              "4  -0.343981  0.343986  0.265458  0.078528\n",
              "..       ...       ...       ...       ...\n",
              "95 -0.006204 -0.040675  0.265458 -0.306133\n",
              "96  0.022733 -0.002305  0.265458 -0.267763\n",
              "97 -0.072459  0.032809  0.265458 -0.232650\n",
              "98 -0.474581  0.689516  0.265458  0.424057\n",
              "99 -0.392109  0.502607  0.265458  0.237148\n",
              "\n",
              "[100 rows x 4 columns]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-e72e18ea-3596-47d7-bd4a-8ba55f17beac\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>X</th>\n",
              "      <th>y</th>\n",
              "      <th>pred1</th>\n",
              "      <th>res1</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>-0.125460</td>\n",
              "      <td>0.051573</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.213885</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>0.450714</td>\n",
              "      <td>0.594480</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>0.329021</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>0.231994</td>\n",
              "      <td>0.166052</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.099407</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>0.098658</td>\n",
              "      <td>-0.070178</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.335636</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>-0.343981</td>\n",
              "      <td>0.343986</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>0.078528</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>95</th>\n",
              "      <td>-0.006204</td>\n",
              "      <td>-0.040675</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.306133</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>96</th>\n",
              "      <td>0.022733</td>\n",
              "      <td>-0.002305</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.267763</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>97</th>\n",
              "      <td>-0.072459</td>\n",
              "      <td>0.032809</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.232650</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>98</th>\n",
              "      <td>-0.474581</td>\n",
              "      <td>0.689516</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>0.424057</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99</th>\n",
              "      <td>-0.392109</td>\n",
              "      <td>0.502607</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>0.237148</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>100 rows × 4 columns</p>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-e72e18ea-3596-47d7-bd4a-8ba55f17beac')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-e72e18ea-3596-47d7-bd4a-8ba55f17beac button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-e72e18ea-3596-47d7-bd4a-8ba55f17beac');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-e78e500e-33ec-4412-a552-1734f98c5759\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-e78e500e-33ec-4412-a552-1734f98c5759')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-e78e500e-33ec-4412-a552-1734f98c5759 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "  <div id=\"id_0db7cef1-bbea-4e26-a69c-94e8c75340cb\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('df')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_0db7cef1-bbea-4e26-a69c-94e8c75340cb button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 100,\n  \"fields\": [\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2974894110153193,\n        \"min\": -0.4944778828763976,\n        \"max\": 0.4868869366005173,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          -0.43644164971397637,\n          0.3948273504276488,\n          0.2722447692966574\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"y\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2371976451305763,\n        \"min\": -0.07017795621787389,\n        \"max\": 0.759622208242618,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          0.6042716212468632,\n          0.44249212723134224,\n          0.16050410768426654\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"pred1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 0.26545839669679816,\n        \"max\": 0.26545839669679816,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          0.26545839669679816\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"res1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2371976451305763,\n        \"min\": -0.33563635291467203,\n        \"max\": 0.4941638115458198,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          0.338813224550065\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 10
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 452
        },
        "id": "38eiADY1BaJO",
        "outputId": "066d414f-f7d6-4540-ae59-9221add288e9"
      },
      "source": [
        "plt.scatter(df['X'],df['y'])\n",
        "plt.plot(df['X'],df['pred1'],color='red')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7d1f75277940>]"
            ]
          },
          "metadata": {},
          "execution_count": 11
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGiCAYAAAA1LsZRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA15klEQVR4nO3df3RU9Z3/8dckksQfJIBZMpjGolStKUpalIhKPesJxdaycM7uWYoKlq+rXSouX2O/R2iFSN0a2bp+8VRWv5vq1rMcCrXnq9Zq41rAb7+0I7Sk7FcK2BqlsJgJEuwkDZLAzP3+EScmk/lx78yduffOfT7OyVEu9yafXDKZ9/183p/3O2AYhiEAAACHlDg9AAAA4G8EIwAAwFEEIwAAwFEEIwAAwFEEIwAAwFEEIwAAwFEEIwAAwFEEIwAAwFEEIwAAwFEEIwAAwFFZBSMbN27U1KlTVVFRocbGRu3evTvt+Rs2bNBll12ms88+W3V1dbr33nt16tSprAYMAACKi+VgZOvWrWpublZLS4s6Ojo0Y8YMzZs3T8eOHUt6/ubNm7Vq1Sq1tLTowIEDevrpp7V161Z985vfzHnwAADA+wJWG+U1Njbq6quv1hNPPCFJisViqqur0z333KNVq1aNOX/FihU6cOCAtm3bNnzsvvvu065du7Rz584chw8AALzuLCsnDw4Oas+ePVq9evXwsZKSEjU1NSkUCiW95tprr9WmTZu0e/duzZo1S++8845eeeUVLVmyJOXXGRgY0MDAwPCfY7GYTpw4ofPPP1+BQMDKkAEAgEMMw1BfX58uuOAClZSkXoyxFIwcP35c0WhUNTU1o47X1NTo4MGDSa+55ZZbdPz4cV1//fUyDENnzpzR3//936ddpmltbdW6deusDA0AALjUkSNH9IlPfCLl31sKRrLx+uuv6+GHH9a//Mu/qLGxUW+//bZWrlyphx56SGvWrEl6zerVq9Xc3Dz850gkogsvvFBHjhxRZWVlvocMAABs0Nvbq7q6Oo0fPz7teZaCkerqapWWlqq7u3vU8e7ubgWDwaTXrFmzRkuWLNHf/d3fSZKuuOIK9ff366677tK3vvWtpNM25eXlKi8vH3O8srKSYAQAAI/JlGJhaTdNWVmZZs6cOSoZNRaLadu2bZo9e3bSa06ePDkm4CgtLZU0tJYEAAD8zfIyTXNzs26//XZdddVVmjVrljZs2KD+/n4tW7ZMkrR06VLV1taqtbVVkjR//nw99thj+uxnPzu8TLNmzRrNnz9/OCgBAAD+ZTkYWbRokd5//32tXbtW4XBYDQ0Nam9vH05qPXz48KiZkAceeECBQEAPPPCAjh49qr/4i7/Q/Pnz9Z3vfMe+7wIAAHiW5TojTujt7VVVVZUikQg5IwAAeITZ92960wAAAEcRjAAAAEcRjAAAAEcRjAAAAEflvQKrW0Vjhna/e0LH+k5p8vgKzbpokkpL6HsDAECh+TIYad/XpXUv7VdX5NTwsSlVFWqZX6+bpk9xcGQAAPiP75Zp2vd1afmmjlGBiCSFI6e0fFOH2vd1OTQyAAD8yVfBSDRmaN1L+5WssEr82LqX9isac33pFQAAioavgpHd754YMyMykiGpK3JKu989UbhBAQDgkGjMUKizRy/uPapQZ49jD+O+yhk51pc6EMnmPAAAvMpN+ZO+mhmZPL7C1vMAAPAit+VP+ioYmXXRJE2pqlCqDbwBDUWFsy6aVMhhAQBQMG7Mn/RVMFJaElDL/HpJGhOQxP/cMr+eeiMAgKLlxvxJXwUjknTT9Cl68rbPKVg1eikmWFWhJ2/7HHVGAABFzY35k75KYI27afoUza0PpqzASnVWAECxcmP+pC+DEWloyWb2tPPHHHdTdjEAAHaL50+GI6eS5o0ENLRaUMj8Sd8t06TjtuxiAADs5sb8SYKRj7gxuxgAgHxwW/6kb5dpElnJLk62vAMAgJdkyp8sJIKRj7gxuxgAgHxKlT9ZaCzTfMSN2cUAAPgBwchHqM4KAIAzCEY+4sbsYgAA/IBgZAS3ZRcDAOAHJLAmcFN2MQAAfkAwkoRbsosBAPADghGL6FsDAIC9CEYsoG8NAAD2I4HVJPrWAACQHwQjJtC3BgCA/CEYMcFK3xoAAGANwYgJ9K0BACB/CEZMoG8NAAD5QzCSRjRmKNTZo3DvKU06d1zK8+hbAwBA9tjam0KybbzJ0LcGAIDcEIwkEd/Ga2ZvTJA6IwAA5IRgJEG6bbzS0EzIpHPL9MDNlytYdTYVWAEAyBHBSAIz23h7+gcVrDqb/jUAAFfzSgsTgpEEbOMFABQDL7UwYTdNArbxAgC8zmstTAhGEsy6aJKmVFUo1SQW23gBAG7mxRYmBCMJSksCaplfL0ljAhK28QIA3M6LLUwIRpK4afoUPXnb5xSsGr0UE6yq0JO3fc51a20AAMR5MfeRBNYUbpo+RXPrg57IQgYAIM6LuY8EI2mUlgTYvgsA8JR47mM4cipp3khAQzP9bsp9ZJkmT+J9bV7ce1Shzh5XJQoBAIqXF3MfmRnJAy/t7QYAFJ947mPie5FbW5gEDMNw/SN7b2+vqqqqFIlEVFlZ6fRw0krV1yYef5IACwAoFKcrsJp9/2ZmxEaZ9nYHNLS3e2590FXTYwCA4uSV3EdyRmzkxb3dAAA4jWDERl7c2w0AgNMIRmzkxb3dAAA4jWDERvS1AQDAOoIRG3lxbzcAAE4jGLHByAJnVWeXaeMtn6WvDQAAJrG1N0epCpytubleE88to68NAAAZMDOSg3iBs8TtvOHIKd29uUORDwe1oKFWs6edTyACAEAKBCNZylTgTBoqcEZPGgAA0iMYyRIFzgAAsAfBSJYocAYAgD0IRrJEgTMAAOxBMJIlCpwBAGAPgpEsUeAMAAB7EIzk4KbpU/TkbZ+jwBkAADmg6FmObpo+RXPrg9r97gkKnAEAXCUaMzzx/kQwYoPSkoBmTzvf6WEAADAsVYXwlvn1rpu5Z5nGA0b2vgl19lBIDQCQVroK4cs3dah9X5dDI0uOmZECyGWazEuRLQDAeZkqhAc0VCF8bn3QNUs2BCN5lkswEY9sE3+g4pEtSbIAgERWKoS7JcWAZZo8ymWajN43AIB0Ui3he7FCeFbByMaNGzV16lRVVFSosbFRu3fvTnv+n/70J919992aMmWKysvLdemll+qVV17JasBekWswQe8bAEAq7fu6dP367Vrc9oZWbtmrxW1v6Pr129W+r8uTFcItByNbt25Vc3OzWlpa1NHRoRkzZmjevHk6duxY0vMHBwc1d+5cHTp0SD/+8Y/11ltvqa2tTbW1tTkP3s1yDSa8GNkCAPIv1ax710ez7h/0D3iuQrjlYOSxxx7TnXfeqWXLlqm+vl5PPfWUzjnnHD3zzDNJz3/mmWd04sQJvfDCC7ruuus0depU3XDDDZoxY0bOg3ezXIMJL0a2AID8SjfrLg096H7rhX1ac7O3KoRbCkYGBwe1Z88eNTU1ffwJSkrU1NSkUCiU9Jqf/OQnmj17tu6++27V1NRo+vTpevjhhxWNRlN+nYGBAfX29o768Jpcgwl63wAAEmWadZekD06e1h+O9XmqQril3TTHjx9XNBpVTU3NqOM1NTU6ePBg0mveeecdbd++XbfeeqteeeUVvf322/r617+u06dPq6WlJek1ra2tWrdunZWhuU48mAhHTiWNYAMa+qFIFUzEe98s39ShgDTqc7g1sgUA5JfZWfd/++Uh7Vkz1zMVwvO+myYWi2ny5Mn613/9V82cOVOLFi3St771LT311FMpr1m9erUikcjwx5EjR/I9TNvZ0UiP3jcAAOnjnTN/6P6zqfP/9OFp7X73xHCF8AUNtZo97XxXBiKSxZmR6upqlZaWqru7e9Tx7u5uBYPBpNdMmTJF48aNU2lp6fCxyy+/XOFwWIODgyorKxtzTXl5ucrLy60MzZXiwURinZGghaJl9L4BAH9LVq/KDC9tcLAUjJSVlWnmzJnatm2bFi5cKGlo5mPbtm1asWJF0muuu+46bd68WbFYTCUlQxMxv//97zVlypSkgUixiQcTb7zTo1BnjyRDsy+u1jUWCs3Q+wYA/ClV8UszvLTBwfIyTXNzs9ra2vTss8/qwIEDWr58ufr7+7Vs2TJJ0tKlS7V69erh85cvX64TJ05o5cqV+v3vf6+XX35ZDz/8sO6++277vguXe21/WN947j/1xI639cSOTt369K7h/eAAACSTaedMKl7c4GC5HPyiRYv0/vvva+3atQqHw2poaFB7e/twUuvhw4eHZ0Akqa6uTq+++qruvfdeXXnllaqtrdXKlSt1//332/ddOCxd7xlKugMAsmFm50wir25wCBiG4fp64r29vaqqqlIkElFlZaXTwxklXe+ZufVBXb9+e8ofpviOmp333+ipHxoAQP69uPeoVm7Za+katzVSNfv+TaO8HGSa9fjvTZd6rlkRAMAdzOZ8rLn5clWPL/f0BgeCkSyZadH8b79619Tn8lLGMwCgMMzWq/rqdRd5MgAZia69WTLTe+ZPJ0+b+lxeyngGABSGHfWqvIJgJEtmZzMmnD2Oku4AgKz4pfglyzRZMjubsey6qdrw8z9Q0h0AkBU/FL8kGMmS2bW8FTdeosuC43OqwgoA8LdiL37J1t4cxHfTSMlnPUZOoSXWImmom6DNu/6oP544qU9OOkdLZk9V2VmsmgEAiofZ92+CkRylqzOSataj9ZX9avu/7yo24s6XBKQ751yk1V+qz/eQAQBFLl0xzkKizkiBWF3La31lv/7XL8Zu+Y0ZGj5OQAIAyFY2D8lOY2akgAbPxPTpNT8bNSOSqCQgHXzoiyzZAAAsS1WMM1n6QCGYff/mHa+A/j10KG0gIg3NkPx76FBBxgMAKB6ZinFK0rqX9iua6Y3IAQQjBfTHEydtPQ8AgDgzxTjjLUjchpyRAvrkpHNsPQ8A4D35Si41W4zTjS1ICEYKaMnsqfrOKwcy5owsmT21YGMCABROquTSNTdfronnlucUoJgtxunGFiQEIwVUdlaJ7pxzUdLdNHF3zrmI5FUAKEKpkku7Iqf09c2/HXUsm90vZotxurEFCe96Bbb6S/X62ucvUmLAWxKQvvZ56owAQDFKl1yaTDhySss3dah9X5fpr+Hlxnps7XXI4JmY/j10iAqsAOADoc4eLW57w9I18ZmMnfffaCmAcFOdEYqeuVzZWSW6Y87FTg8DAFAA2SSNjtz9YqUvjRcb6xGMAACQZ7kkjWYTyHitsR7rAgAA5Fk8uTSbuQk37n6xG8EIAAB5li65NJWAhnI93Lj7xW4EIwAAFMBN06foyds+p2BV5pkOt+9+sRs5IwAAFEiy5NIP+gf10Mujd78EXd5l124EIwAAFFCy5NJ50721+8VuBCMAADjMa7tf7EbOCAAAcBTBCAAAcBTBCAAAcBQ5Ix4UjRm+TnQCABQXghGPcVMDJADAEB4Sc0Mw4iHt+7q0fFPHmBbU8VbTT972OQISACgwHhJzR86IR0Rjhta9tH9MICJp+Ni6l/YrGkt2BgAgH+IPiSMDEenjh8T2fV0OjcxbCEY8Yve7J8b8sI80stU0ACD/eEi0D8GIR5htIZ1Nq2kAwFjRmKFQZ49e3HtUoc6eMUEFD4n2IWfEI8y2kPZDq2kAyDczeSA8JNqHmRGPmHXRJE2pqkjZetpPraYBIJ/M5oHwkGgfghGPKC0JqGV+vSSNCUj81moaAPLFSh4ID4n2IRjxkJumT9GTt31OwarRUXawqoJtvQBgAyt5IDwk2oecEY+5afoUza33d6tpAMgXq3kg8YfExPySIHVGLCEY8aBUraapAAgAuckmD4SHxNwRjBQJKgACQO7ieSDhyKmkeSMBDc16JOaBpHpIhDnkjBQBKgACgD3IA3EGwYjHUQEQAOzFZoHCY5nG46xkfjOFCADmkAdSWAQjHkcFQADID/JACodlGo+jAiAAwOsIRjyOCoAAAK8jGHGZTF0iE5H5DQDwOnJGXCTbWiFUAAQAeFnAMAzX7/ns7e1VVVWVIpGIKisrnR5OXsRrhST+Y8TnM8xsJ6MCKwDATcy+fzMz4gKZaoUENFQrZG59MG1wQeY3AMCLyBlxASu1QgAAKDbMjLgAtUIAoLiwbG4NwYgLUCsEAIoHjUutY5nGBagVAgDFgcal2SEYcQFqhQCA99G4NHsEIy5Bl0gA8DY2I2SPnBEXoUskAHgXmxGyRzDiMrnWCiGDGwCcwWaE7BGMFBEyuAHAOfHNCOHIqaR5IwENLb2zGWEsckaKBBncAOAsNiNkj2CkCJDBDQDuwGaE7LBMUwSsZHDTuwYA8ovNCNYRjBQBMrgBwF1oXGoNyzRFgAxuAICXEYwUAcrJAwC8jGCkSHzl6rqUW8mk/GZwR2OGQp09enHvUYU6e0iUBQBYQs6IxyWrLTJSMM91RqhtAgDIFcGIh8Vri6Sah7i36VKtuPFTo2ZE7KzQmurrx2ubsI0NAGAGwYhHpastIg0tz2z59WGtuPFTw8fsnMXIVNskoKHaJnPrg2xnAwCklVXOyMaNGzV16lRVVFSosbFRu3fvNnXdli1bFAgEtHDhwmy+LEaw2h3S7gqtdKcEANjFcjCydetWNTc3q6WlRR0dHZoxY4bmzZunY8eOpb3u0KFD+sY3vqE5c+ZkPVh8zEptkXxUaKW2CQDALpaDkccee0x33nmnli1bpvr6ej311FM655xz9Mwzz6S8JhqN6tZbb9W6det08cUX5zRgDLFSWyQfsxjUNgEA2MVSMDI4OKg9e/aoqanp409QUqKmpiaFQqGU133729/W5MmTdccdd5j6OgMDA+rt7R31gdGs1BbJxywGtU0AAHaxFIwcP35c0WhUNTU1o47X1NQoHA4nvWbnzp16+umn1dbWZvrrtLa2qqqqavijrq7OyjB9wUp3yHzMYtCdEgBgl7wWPevr69OSJUvU1tam6upq09etXr1akUhk+OPIkSN5HKV3me0Oma9ZDLpTAgDsYGlrb3V1tUpLS9Xd3T3qeHd3t4LB4JjzOzs7dejQIc2fP3/4WCwWG/rCZ52lt956S9OmTRtzXXl5ucrLy60MzbfMdIeMz2Is39ShgDQqkTXXWQy6UwIAcmUpGCkrK9PMmTO1bdu24e25sVhM27Zt04oVK8ac/+lPf1pvvvnmqGMPPPCA+vr69Pjjj7P8YhMz3SHjsxiJdUbsqNBKd0oAQC4sFz1rbm7W7bffrquuukqzZs3Shg0b1N/fr2XLlkmSli5dqtraWrW2tqqiokLTp08fdf2ECRMkacxx5B+zGAAAN7IcjCxatEjvv/++1q5dq3A4rIaGBrW3tw8ntR4+fFglJfTfcytmMQDAGjvbaCC5gGEYrm+x2tvbq6qqKkUiEVVWVjo9nKLFCw4ARqMZaG7Mvn/TmwaSeMEBQCKagRYO6ymwvW8NAHhdPtpoIDWCEZ/jBQegmEVjhkKdPXpx71GFOntM/y6jGWhhsUzjc1ZecCS+AvCSXJafaQZaWMyM+BwvOADFKNflZ5qBFhbBiM/xggNQbOxYfqYZaGERjPgcLzgAxcaOfA+agRYWwYjP8YIDUGzsWn6mGWjhkMCKvPatAYBCs3P5mTYahUEwAknZv+Co2grAbeLLz+HIqaR5IwENPWyZXX6mjUb+EYxgmNUXHFVbAbhRfPl5+aYOBaRRAQnLz+5EzgiGWSkORNVWAG5Gvoe3MDMCSdZmOTJtmwtoaNvc3PogTx4AHEO+h3cwMwLLsxyUSQbgFfHl5wUNtZo97XwCEZciGPG5bIoDUbUVAGAnlml8zuwsxxudPSopCehY3ykd7xsw9bmp2goAMINgxOfMzl7cvblDf/rw9PCfSwJSqvxWq9vmAAD+xjKNz5mdvRgZiEjpAxGJbXMAAPMIRnwuU2+aTBLjDbbNAQCsYpnG59IVBzIjZkhrbr5c1ePL2TYHAMgKMyNIWRxowtnjTF1fPb6cbXMAgKwxMwJJyYsDxQxDt35/V8Zr2TUDAMgFwQiGJfamicYMW5tNAQCQDMs0SCmeTyJpTIIru2YAuIWVvlpwJ2ZGkFY8nySxb02Q7rwAXIDu4cUhYBiG60PI3t5eVVVVKRKJqLKy0unh+FI0ZoxpNiWJBlQAHBPvq5X4Jhb/LUSZAeeZff9mZsRnkgUVZgKIxHwSnkYAOInu4cWFYMRH7AogUj2NxLv88jQCIN+sdA+fddEkZnFdjmDEJ+wKIMw+jdz46Rrt+eMHvPgB5IXZvlo/3x9W84/2MovrcgQjPmDndKbZp5FrWrfpRP/g8HFe/ADsZLa+0dO/PDTmGLO47sPWXh+wMp2ZidmnkZGBiPTxi799X5ep6wEgnUx9tQIa2zsrLv5gtu6l/WwDdgmCER8wG0CYOS/baqu8+AHYKVMdJEOpu4tL1h7CkH8EIz5gNoAwc14uXX558QOwU6q+WsGqCv2366aa+hxmH9aQX+SM+EA8gLCjrHuuXX4lXvwA7JOsr1Z898wzSfJFEtFbyx2YGfEBu8u6p3oamXSuuS6/vPgB2CleB2lk93AzOSVT6K3lGsyM+ITdZd2TPY3M/ORE3fDdHTTWA5AXI4s2Vp9XLhnS8f6BpOUD0s3i0lvLfSgH7zPZVmA1K17PREr+4mcrHYBsJCvaOFKq8gFUi3aW2fdvghHYjhc/ADulKto4UroHnnw/hCE1ghE4ihc/ADtEY4auX789ba2kuPhS8M77b+T3jUvQKA+OSmysNxKBCgCzMhVtHGlk+YBUv3/gTgQjKCiWcABYkU0pAMoHeA9be1Ew8XXfxKccSsUDSCWbUgCUD/AeghEURKZmfRKl4gGMZaXqM7VDvItgBAVhZ7M+AP6RrmjjSNQO8TaCERSEnc36APhLqqrPIwWrKqhj5GEksKIg7GzWB8B/Eqs+Z6rACm/xdzASi0nHj6f/u2TnJDsWjUoHDqQ+LxaTjh0bfV2ya+Ln9vdb+15cbrakQ2ZOXJ/fcQDwrlIN/S7JyrnnSiVZLgZUVw9dG/+vmXOtfF4r16f6+0zHL79cKi21Z9x54N9gJBZL/w8DACgeuTzg9fUN/bez056xuFU06lhAQs4IAABwlH9nRkpKhqJAlmkAoPixTMMyjWuVlEiTJ6f++2CwcGMpEpn6SNA7AgCQiGUa2Ip6IgAAqwhGYCvqiQAArCIYga2oJwIAsIpgBLbK1EeC3hEAgEQEI7BVuj4S9I4AACRDMALbpeojQe8IwL2iMUOhzh69uPeoQp09dNBGQfl7ay/yJrGPBL0jAPdq39eldS/tH7UTbkpVhVrm1/PwgIIIGIbh+vC3t7dXVVVVikQiqqysdHo4AFA02vd1afmmDiW+EcQfG5jNRC7Mvn+zTAMAPhWNGVr30v4xgYik4WPrXtrPkg3yjmAEAHzKbUUKyVvxL3JGAMCn3FSkkLwVf2NmBAB8yi1FCuN5K4mzNOHIKS3f1KH2fV15/fpwHsEIigZTvIA1VooU5uv1Rd4KJJZpUCSY4gWsixcpXL6pQwFpVEAwskjha/vDeXt9WclbmT3t/Jy+FtyLmRF4HlO8QPYyFSmUlNfXl5vyVuAcZkbgaZmmeAMamuKdWx+k4BqQQqoihZJ0/frteX19uSVvBc4iGEHeRGNG3iuwMsUL2KO0JDDmNRLq7Mn76yuetxKOnEoa9AQ0NEtDc83iRjCCvChUDgdTvED+FOL1ZTZvhZnN4kbOCGxXyBwOpniB/CnU64vmmsgqGNm4caOmTp2qiooKNTY2avfu3SnPbWtr05w5czRx4kRNnDhRTU1Nac+HtxV6m56VrYkArMn362vkduGqs8v0f/7HX+qHd16jx7/SoB/eeY123n8jgYhPWA5Gtm7dqubmZrW0tKijo0MzZszQvHnzdOzYsaTnv/7661q8eLF27NihUCikuro6feELX9DRo0dzHjzcp9DlpeNTvJLG/MJkihfITT5fX+37unT9+u1a3PaGVm7Zq8Vtb+iG7+5Q5MNBLWio1exp5/O69RHLXXsbGxt19dVX64knnpAkxWIx1dXV6Z577tGqVasyXh+NRjVx4kQ98cQTWrp0qamvSdde73hx71Gt3LI343mPf6VBCxpqbfu61BkB8ieX11eyRPbX9ofpFOwTZt+/LSWwDg4Oas+ePVq9evXwsZKSEjU1NSkUCpn6HCdPntTp06c1aVLqab2BgQENDAwM/7m3t9fKMOEgp3I4Um1N5MkKyF22r69kQUywskKnzkTZjo9RLAUjx48fVzQaVU1NzajjNTU1OnjwoKnPcf/99+uCCy5QU1NTynNaW1u1bt06K0ODSzi5TS/Z1kQA9rD6+oonsif+Hgj3pt95w3Z8fyrobppHHnlEW7Zs0fPPP6+KitRPxqtXr1YkEhn+OHLkSAFHiVyQwwEgXSK7WWzH9xdLwUh1dbVKS0vV3d096nh3d7eCwWDaax999FE98sgj+o//+A9deeWVac8tLy9XZWXlqA94B9v0AH/LlMhuBtvx/cXSMk1ZWZlmzpypbdu2aeHChZKGEli3bdumFStWpLzun/7pn/Sd73xHr776qq666qqcBgxvIIcD8K9cZzXYju8/liuwNjc36/bbb9dVV12lWbNmacOGDerv79eyZcskSUuXLlVtba1aW1slSevXr9fatWu1efNmTZ06VeFwWJJ03nnn6bzzzrPxW4HbkMMB+FOusxos5fqP5WBk0aJFev/997V27VqFw2E1NDSovb19OKn18OHDKin5ePXnySef1ODgoP7mb/5m1OdpaWnRgw8+mNvogQIqRK8dwK2s/PxnSmRP547rprKU60OW64w4gTojcBp1TOBn2fz8x3fTSLIUkPzwzmuYUS0iZt+/6U0DZFDIXjuA22T7858qkT2dCeeMI1fEp+jaC6SRqddOQNKDP/mdxleM0/E/D7B8g6Ji5uc/XYGykYns4ciHWvPi7/TngTMpvx6vGv8iGAHSMNNrJ9w7oFu/v2v4GMs3KBZWek2lWlqJJ7KHOnvSBiKS9MHJ0xQ78ymWaYA0stmiyPINioXZn38z59n5uVB8CEaANLLZohif0l730n5FY67PDwdSMvvzf+h4v22fi2Jn/kQwAqQR36JodS175PQ14FWzLpqkYGXm4OCHuw9nDLzNvJYmksDqWwQj8J1ozFCos0cv7j2qUGdP2l+i6XrtmMGUM7ystCSgxbMuzHheuHcgY+Adfy2lC1k+OHlar+0PWxwligEJrPCVbOolxLcoJl5nBlPO8Lqp1eeYOs9M4D23PqgJ54zTn06eTvr3mXbnoHgRjMA3UrY0/yjhNF0Tv8ReO9Xnluu+5/5T3b3JK0wGNNQYkClneJ2duR673z2RMhCRzO3OQXFimQa+kKlegpQ54TS+RXFBQ62uu6RaD/5V8uWb+J/pr4FikCnXIyDzje3YUYNUCEbgC1bqJZiVqsJksKoi7SwL4CXp8qasBt7sqEEqLNPAF/L1RJa4fEMFVhSjVHlTQYsF/jI10GN5078IRlDU4p1G/9DdZ+r8bJ7I4ss3gBeZ7cZrR+Adn2VZvqlDAY1uoMfypr8RjKBoJds5kwpPZPAjq7vL7Ai87ZplQXEJGIbh+hKRZlsQA3Gpds4kE38GI88DfpLqNVKo14PZGRl4m9n3b2ZGUHTS7ZxJhicy+E2u3XjtwPImRiIYQdHJtHMmbsVffkrXfap6eGkm1NmT1VMaT3jwGju68QJ2IhhB0TG7I+aSmvM0e9r5WVVljcvlWhQXLwWl1PuA2xCMoOhYqWWQS1XWXK5FcfFaUEq9D7gNRc9QdMxWjJz5yYlZV2W1o6IrikM8KE1c9ogHpe37uhwaWWp2VlUF7EAwgqJjtmLknj9+kHVV1nxUdIX3eDUotbOqKmAHghEUJTOl2s2uh//y7ff14t6jCnX2DL+psOYOydtBKe0M4CbkjKBoZaoYaXY9/IkdncP/H88DYM0dkveDUtoZwC0IRlDU0tUyyNQnI5l4HsDGWz5Ljw0URVBKvQ+4Acs08K106+apxAOPh14+oDU3s+budySCAvYgGIGvpVo3TyeeBzDx3DLW3H2ORFDAHvSmATS6YNUfuv+sJ3a8nfGax7/SoAUNtZ4qdoX88FqdEaBQ6E0DWDBy3TzU2WMqGInnAbDmDi8nghJMww0IRoAEmRJbSU5FMl4MSpnRgVuQMwIkIA8AfuDFyrEoXgQjQBIUhEIx82rlWBQvlmmAFLycBwCkY6VyrNeWnuBNBCNAGl7MAwAyJaV6vXIsig/BCAAUETNJqcVQORbFhZwRACgSZpNSqRwLtyEYAYAiYCUplR1jcBuCEQAoAlaSUiV2jMFdyBkB0qA6Jbwim6RUdozBLQhGgBSoTgkvyTYplR1jcAOWaYAkClWdMhozFOrs0Yt7jyrU2UORKWSNpFR4GTMjQIJMiYABDSUCzq0P5jSdzcxLfvh1aS2elLp8U4cC0qifX5JS4XYEI0CCQlSnjM+8JAY88ZkXEgiz49YAr1ABUjwpNfEeBF1wD4B0CEaABPmuTlmomRe/cWuAV+gAiaRUeBE5I0CCfFentLoFE5m5tfGbU51x40mpCxpqNXva+QQicD2CESBBvhMB6QtiPzcGeG4NkAA3IhgBEqSrTikNvZF85eq6rD8/fUHs58YAz40BEuBWBCOAxm6xnVsfTFqdMu5//vwPun799qym2dmCaT83BnhuDJAAtyIYge+17+vS9eu3a3HbG1q5Za8Wt72h69dvlyTtvP9G3dt0adLrsl33py+I/dwY4LkxQALcimAEvpYpwfDVfV3a8uvDSa/NZd3fbF8QiqKZ46YAL/5vFo58qEnnlrkqQALcKmAYhut/u/X29qqqqkqRSESVlZVODwdFIhozdP367SnX9QOSJp47Tif6T2f8XD+885qsao6kqz/h1poZbub0PUv29ZOJByjUk0GxM/v+TZ0R+JaZBEMzgYiU/bp/qr4gbq2Z4XZO1thI9W+WDEXIgNEIRuBbdiYO2rnuT1G03DjR+C3dv1ncpHPHac2XP6NgJUXIgETkjMC3zAYQhVz3j8YM/eCX77Il1GMyzbJJQ7NswcoKipABSRCMwLfM7sD4xwXTh/+c+PeSfYmR8V09D718wNT5bAl1D7bxArkhGIFvmd2B8aUrze18yUWqXT3psCXUPdjGC+SGnBH4mtkup/lMjDSTbzBS4KPxsSU0vUJ1ypU+nmULR04l/Xe069+skN8TUEgEI/A9s4FGvhIjzeQbxNm9NFSsb26F3uIbn2VbvqlDAWlUQGLXv5nT25aBfKLOCOCwF/ce1cote02da+ebT7G+uaXaYluI2h75uqdOfk9ALqgzAjggm5kGs3kEa26+XF+97iLbkmWLsY6J09ui87Gc5/T3BBQCwQhgk2yfis3mG9gViJh9cxtfPk7H+wc8tXxjpVNuvmqR2L2c54bvCcg3ghHABrnMNBQi32Aks29utz69a/iYlaUGJ/NQinGLbTF+T0AighEgR3ZMo5vd1WOHbN60zC7fOJ2HUoxbbIvxewISEYwAObJrGr1QfVWyedMyE1S5IQ8l31tsnZj1KdS2YcBJBCNAjuycRi9EX5VMb26ppAuq3JJkmc8lr3zN+mQKcAq9jAc4gQqsQI68No2ervKsGcmCKiuzQ/kWX/Kys2Juqgq58Vmf9n1dWY013gJgcdsbWrllrxa3vaHr128f8/ny8T0BbsLMCJAjL06jp8pRMSNZUOW2JEs7l7zyNetjdVmrUMt4gBMIRoAceXUaPfHNrfq8ct33o73q7h2wHFS5cXbIriWvfGytzTbAKcQyHuAElmkAG3h1Gj3+5ragoVbXfapaD/7VZyRZ71BstgOym2aHzMrHrI+blrUAN2BmBLBJMUyjZ7vF2KuzQ2bkY9bHbctagNMIRgAbWZ1Gd2OjumyDqkLWSimkfOQEuXFZC3BSVsHIxo0b9d3vflfhcFgzZszQ9773Pc2aNSvl+c8995zWrFmjQ4cO6ZJLLtH69ev1pS99KetBA8Ugl62i+Q5iss1NyPfskBPBWz5mfbyY9Azkk+WuvVu3btXSpUv11FNPqbGxURs2bNBzzz2nt956S5MnTx5z/q9+9St9/vOfV2trq7785S9r8+bNWr9+vTo6OjR9+nRTX5OuvSg2uXRhzUe9CzfO0CRyurqr3V8//jMgJQ9w3JxrBJhl9v3bcjDS2Nioq6++Wk888YQkKRaLqa6uTvfcc49WrVo15vxFixapv79fP/3pT4ePXXPNNWpoaNBTTz1l6zcDeEE0Zuj69dtTJjDGn4p33n/jmIAgH63knX6TNyMf33c27A7avHDvgVyYff+2tEwzODioPXv2aPXq1cPHSkpK1NTUpFAolPSaUCik5ubmUcfmzZunF154IeXXGRgY0MDAwPCfe3t7rQwTcLVst4rmo96FG0q4Z+KW6q7S2OWraMxQqLMn6+CkGJKeATtYCkaOHz+uaDSqmpqaUcdramp08ODBpNeEw+Gk54fD4ZRfp7W1VevWrbMyNMAzst1JYXe9Cze9yaeTjzofdrBrVoPaIYBL64ysXr1akUhk+OPIkSNODwmwTbY7KezeDuqVWhdu3Aabr/LwgF9ZCkaqq6tVWlqq7u7uUce7u7sVDAaTXhMMBi2dL0nl5eWqrKwc9QEUi2wLhNm9HdSNb/LJuG0bbKYZJWloRikas5SOB/iapWCkrKxMM2fO1LZt24aPxWIxbdu2TbNnz056zezZs0edL0mvvfZayvOBYpeuUV26raJ2Vzl125t8KvHvO5MP+gcynmMHr8woAV5ieZmmublZbW1tevbZZ3XgwAEtX75c/f39WrZsmSRp6dKloxJcV65cqfb2dv3zP/+zDh48qAcffFC/+c1vtGLFCvu+C8Bjsikfn20Qk4pXSriXlgS05ub6jOc99PKBgsxGeGVGCfASy0XPFi1apPfff19r165VOBxWQ0OD2tvbh5NUDx8+rJKSj2Oca6+9Vps3b9YDDzygb37zm7rkkkv0wgsvmK4xAhSrbHZS2Fnl1Esl3CeeW5bxnEIlsXplRgnwEst1RpxAnRFgNDvrXXih1sWLe49q5Za9Gc97/CsNWtBQm/G8XO5fvE5MpuqpyerEAH6TlzojANzBzu2gXqh1YedsRK7Bl5dmlACvcOXWXgCFFQ9uFjTUava08133RmpXfotdW3KzyfkBkBozIwBcz47ZCLuLvHlhRgnwCmZGAHhCrrMR+diS6/YZJcArmBkB4FqJiaZz64NZz0awJRdwL4IRAI7ItKPF7l0+bMkF3ItgBEDBZQo08tFNOJ4Em2lLrtNF3gA/ImcEQEFl2tHyyv/rykvvF7sr2AKwD8EIgIIx02RuzYv78tb7xa4tudGYoVBnj17ce1Shzh6a4gE5YpkGQMGY2dHS0z9o6nNlm2ia65ZcL1SsBbyGYARAwdi5UyWXRNNsK9jmI5cFAMs0AArIbAAx6dxxrusmbGaJKZtcFgAEIwAKyGxZ939cMH34z4l/LzmTaJqPomkAhhCMACiY+I6WVHMHhoYCjS9deYHrer9QNA3IH3JGAFiSqViZXdzW+4WiaUD+EIwAMC3XnSTxvItUEpvVZZtomg8UTQPyh2UaAKZkKlbWvq8r4+fIJe/C6doe6YqmxVE0DcgOMyMAMsq0kyRxRiOVbPMu3FLbI140bdX/flN/Onl61N9VnTOuYOMAig0zIwAysmsnSTZ5F3bMyNgtMRCRpMjJ046NB/A6ghEAGdm1k8Ts1t543oXbanuky3mh1giQPYIRABnZtZPEarM6t9X2cNt4gGJBMAIgI6szGulYaVbnttoebhsPUCxIYAWQUXxGY/mmDgWkUcsm2VRFNVtDxG21Pdw2HqBYMDMCwBQrMxpmxGuILGio1exp5ycNZOyckbGD28YDFAtmRgCYVuiqqHbPyBTbeIBiETAMw/Vp3729vaqqqlIkElFlZaXTwwFQYG6pM+LW8QBuZfb9m2AEgCcUqieOV8cDuJHZ92+WaQB4gpv61EjuGw/gZSSwAgAARxGMAAAARxGMAAAARxGMAAAARxGMAAAARxGMAAAARxGMAAAARxGMAAAARxGMAAAAR3miAmu8Yn1vb6/DIwEAAGbF37czdZ7xRDDS19cnSaqrq3N4JAAAwKq+vj5VVVWl/HtPNMqLxWJ67733NH78eAUC/m1E1dvbq7q6Oh05coSGgQXA/S4c7nVhcb8Ly8/32zAM9fX16YILLlBJSerMEE/MjJSUlOgTn/iE08NwjcrKSt/9QDuJ+1043OvC4n4Xll/vd7oZkTgSWAEAgKMIRgAAgKMIRjykvLxcLS0tKi8vd3oovsD9LhzudWFxvwuL+52ZJxJYAQBA8WJmBAAAOIpgBAAAOIpgBAAAOIpgBAAAOIpgxMVOnDihW2+9VZWVlZowYYLuuOMO/fnPfzZ1rWEY+uIXv6hAIKAXXnghvwMtElbv94kTJ3TPPffosssu09lnn60LL7xQ//AP/6BIJFLAUXvHxo0bNXXqVFVUVKixsVG7d+9Oe/5zzz2nT3/606qoqNAVV1yhV155pUAjLQ5W7ndbW5vmzJmjiRMnauLEiWpqasr474PRrP58x23ZskWBQEALFy7M7wBdjmDExW699Vb97ne/02uvvaaf/vSn+sUvfqG77rrL1LUbNmzwden8bFi93++9957ee+89Pfroo9q3b59+8IMfqL29XXfccUcBR+0NW7duVXNzs1paWtTR0aEZM2Zo3rx5OnbsWNLzf/WrX2nx4sW644479Nvf/lYLFy7UwoULtW/fvgKP3Jus3u/XX39dixcv1o4dOxQKhVRXV6cvfOELOnr0aIFH7k1W73fcoUOH9I1vfENz5swp0EhdzIAr7d+/35Bk/PrXvx4+9rOf/cwIBALG0aNH017729/+1qitrTW6uroMScbzzz+f59F6Xy73e6Qf/ehHRllZmXH69Ol8DNOzZs2aZdx9993Df45Go8YFF1xgtLa2Jj3/b//2b42bb7551LHGxkbja1/7Wl7HWSys3u9EZ86cMcaPH288++yz+RpiUcnmfp85c8a49tprje9///vG7bffbixYsKAAI3UvZkZcKhQKacKECbrqqquGjzU1NamkpES7du1Ked3Jkyd1yy23aOPGjQoGg4UYalHI9n4nikQiqqys1FlneaLtU0EMDg5qz549ampqGj5WUlKipqYmhUKhpNeEQqFR50vSvHnzUp6Pj2VzvxOdPHlSp0+f1qRJk/I1zKKR7f3+9re/rcmTJzOT+hF+Y7pUOBzW5MmTRx0766yzNGnSJIXD4ZTX3Xvvvbr22mu1YMGCfA+xqGR7v0c6fvy4HnroIdNLaX5x/PhxRaNR1dTUjDpeU1OjgwcPJr0mHA4nPd/sv4WfZXO/E91///264IILxgSEGCub+71z5049/fTT2rt3bwFG6A3MjBTYqlWrFAgE0n6Y/YWR6Cc/+Ym2b9+uDRs22DtoD8vn/R6pt7dXN998s+rr6/Xggw/mPnDAIY888oi2bNmi559/XhUVFU4Pp+j09fVpyZIlamtrU3V1tdPDcQ1mRgrsvvvu01e/+tW051x88cUKBoNjkp/OnDmjEydOpFx+2b59uzo7OzVhwoRRx//6r/9ac+bM0euvv57DyL0pn/c7rq+vTzfddJPGjx+v559/XuPGjct12EWlurpapaWl6u7uHnW8u7s75b0NBoOWzsfHsrnfcY8++qgeeeQR/fznP9eVV16Zz2EWDav3u7OzU4cOHdL8+fOHj8ViMUlDs7FvvfWWpk2blt9Bu5HTSStILp5Q+Zvf/Gb42Kuvvpo2obKrq8t48803R31IMh5//HHjnXfeKdTQPSmb+20YhhGJRIxrrrnGuOGGG4z+/v5CDNWTZs2aZaxYsWL4z9Fo1KitrU2bwPrlL3951LHZs2eTwGqS1fttGIaxfv16o7Ky0giFQoUYYlGxcr8//PDDMb+nFyxYYNx4443Gm2++aQwMDBRy6K5BMOJiN910k/HZz37W2LVrl7Fz507jkksuMRYvXjz89//1X/9lXHbZZcauXbtSfg6xm8Y0q/c7EokYjY2NxhVXXGG8/fbbRldX1/DHmTNnnPo2XGnLli1GeXm58YMf/MDYv3+/cddddxkTJkwwwuGwYRiGsWTJEmPVqlXD5//yl780zjrrLOPRRx81Dhw4YLS0tBjjxo0z3nzzTae+BU+xer8feeQRo6yszPjxj3886ue4r6/PqW/BU6ze70TspiEYcbWenh5j8eLFxnnnnWdUVlYay5YtG/XL4d133zUkGTt27Ej5OQhGzLN6v3fs2GFISvrx7rvvOvNNuNj3vvc948ILLzTKysqMWbNmGW+88cbw391www3G7bffPur8H/3oR8all15qlJWVGZ/5zGeMl19+ucAj9jYr9/uTn/xk0p/jlpaWwg/co6z+fI9EMGIYAcMwjEIvDQEAAMSxmwYAADiKYAQAADiKYAQAADiKYAQAADiKYAQAADiKYAQAADiKYAQAADiKYAQAADiKYAQAADiKYAQAADiKYAQAADiKYAQAADjq/wMSYGeWPA8HjAAAAABJRU5ErkJggg==\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "w-ocxPrbb5_N"
      },
      "source": [
        "from sklearn.tree import DecisionTreeRegressor"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "AHu918SIcS9v"
      },
      "source": [
        "tree1 = DecisionTreeRegressor(max_leaf_nodes=8)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "The target of the decision tree(m2) is the res1 (residuals of the previous predictor)"
      ],
      "metadata": {
        "id": "zjBH1dYa5EMI"
      }
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 74
        },
        "id": "RsGgZjNAcXz3",
        "outputId": "f6a27e8c-79b2-49ac-a84a-2d4801bcec38"
      },
      "source": [
        "tree1.fit(df['X'].values.reshape(100,1),df['res1'].values)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "DecisionTreeRegressor(max_leaf_nodes=8)"
            ],
            "text/html": [
              "<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeRegressor(max_leaf_nodes=8)</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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">DecisionTreeRegressor</label><div class=\"sk-toggleable__content\"><pre>DecisionTreeRegressor(max_leaf_nodes=8)</pre></div></div></div></div></div>"
            ]
          },
          "metadata": {},
          "execution_count": 14
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 406
        },
        "id": "qah9L_-aJ4_f",
        "outputId": "2757194e-29fd-47b7-cf79-d8be4ded5990"
      },
      "source": [
        "from sklearn.tree import plot_tree\n",
        "plot_tree(tree1)\n",
        "plt.show()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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b75hwIABmg5LaBmZTVCOZsyYwfnz54mMjKzURADA29ub119/nVGjRsnypqJaUhSF1atX06lTJ27evMkvv/zCkiVLanQiAKBSqbC2tubs2bN06NCBgQMH4uDgwP379zUdmtAikgyUkx07drBixQqWLl361N7nlaFOnTps2rSJO3fuYG9vL5ufiGrl+vXr9O/fH0dHRz799FNiYmIKXS2wJjM1NWX37t2sWrWKjRs30rFjR3799VdNhyW0hCQD5eD69etMmDABS0tLnJycNBZHq1atCAkJYevWrXzzzTcai0OIklIUhY0bN9KhQwfOnTvH7t27Wb16daW3rFUVKpWKyZMnExMTg7GxMb1798bNzY2MjAxNhyZqOBkzUEa5ubm8//77XLp0idOnT9O4cWNNh8Rnn31GeHg4x48f57XXXtN0OEIU6vbt2zg4OBAVFcXYsWMJCAiQTXsek5ubi5+fH3PnzqV169Zs2LABCwsLTYclaihpGSijhQsX8uuvvxIREVElEgF4tI56q1at+OSTT0hPT9d0OEI85bvvvqN9+/b873//4//+7/8IDw+XROAJOjo6uLu7c+LECXR1denevTteXl6F7loqRFlJMlAGv/76K15eXsybN4933nlH0+GoGRgYsGXLFv755x+mT5+u6XCEUEtNTWX8+PEMHTqUt99+m7NnzzJ8+HBNh1WldejQgT/++IPZs2ezYMEC3nrrLc6fP6/psEQNI90EpZScnEznzp155ZVX2L9/Pzo6OpoO6SlBQUFMnjyZ//u//5M/uELj9u7di62tLffu3WPFihV8+umnqFQqTYdVrRw7doxPP/2UuLg4Fi5ciKura5X82yOqH2kZKAVFUZg4cSIPHz4kIiKiyr4Z7e3tGT58OHZ2dly9elXT4Qgt9eDBA5ycnPjggw9o27Ytf/75J+PHj5dEoBS6devGyZMnmTx5Mm5ubrz33ntcvnxZ02GJGkCSgVJYuXIl33//PevWrcPU1FTT4RRJpVIREhJC/fr1GTNmDDk5OZoOSWiZ33//nc6dO7Nu3ToCAgLYs2ePLJ9bRvr6+vj7+3PgwAGuXbtGx44dWbNmjUwnFmUiycBziomJwc3NjalTp2JpaanpcJ6pYcOGbN68mSNHjuDp6anpcISWyMzMZNasWfTq1QsjIyNOnz7NlClTNLJ3Rk317rvvcubMGUaP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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "IdFPanXnciQ3"
      },
      "source": [
        "# generating X_test\n",
        "X_test = np.linspace(-0.5, 0.5, 500)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Tzu0mK9Xe8dn"
      },
      "source": [
        "y_pred = 0.265458 + tree1.predict(X_test.reshape(500, 1))"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 390
        },
        "id": "88mvQQ_UfVBO",
        "outputId": "abc333d5-d6c1-490c-88a4-13249c6978d8"
      },
      "source": [
        "plt.figure(figsize=(14,4))\n",
        "plt.subplot(121)\n",
        "plt.plot(X_test, y_pred, linewidth=2,color='red')\n",
        "plt.scatter(df['X'],df['y'])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.collections.PathCollection at 0x7d1f6a69c610>"
            ]
          },
          "metadata": {},
          "execution_count": 18
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1400x400 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "NXhf93RSfnfO"
      },
      "source": [
        "df['pred2'] = 0.265458 + tree1.predict(df['X'].values.reshape(100,1))"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 423
        },
        "id": "YKf7AMhwidKy",
        "outputId": "4a926371-fd12-4fa7-c763-bcfc9c1a9c86"
      },
      "source": [
        "df"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "           X         y     pred1      res1     pred2\n",
              "0  -0.125460  0.051573  0.265458 -0.213885  0.018319\n",
              "1   0.450714  0.594480  0.265458  0.329021  0.605884\n",
              "2   0.231994  0.166052  0.265458 -0.099407  0.215784\n",
              "3   0.098658 -0.070178  0.265458 -0.335636  0.018319\n",
              "4  -0.343981  0.343986  0.265458  0.078528  0.305964\n",
              "..       ...       ...       ...       ...       ...\n",
              "95 -0.006204 -0.040675  0.265458 -0.306133  0.018319\n",
              "96  0.022733 -0.002305  0.265458 -0.267763  0.018319\n",
              "97 -0.072459  0.032809  0.265458 -0.232650  0.018319\n",
              "98 -0.474581  0.689516  0.265458  0.424057  0.660912\n",
              "99 -0.392109  0.502607  0.265458  0.237148  0.487796\n",
              "\n",
              "[100 rows x 5 columns]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-cafd5214-8c67-4d09-a1ec-b5369f08309d\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>X</th>\n",
              "      <th>y</th>\n",
              "      <th>pred1</th>\n",
              "      <th>res1</th>\n",
              "      <th>pred2</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>-0.125460</td>\n",
              "      <td>0.051573</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.213885</td>\n",
              "      <td>0.018319</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>0.450714</td>\n",
              "      <td>0.594480</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>0.329021</td>\n",
              "      <td>0.605884</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>0.231994</td>\n",
              "      <td>0.166052</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.099407</td>\n",
              "      <td>0.215784</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>0.098658</td>\n",
              "      <td>-0.070178</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.335636</td>\n",
              "      <td>0.018319</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>-0.343981</td>\n",
              "      <td>0.343986</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>0.078528</td>\n",
              "      <td>0.305964</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>95</th>\n",
              "      <td>-0.006204</td>\n",
              "      <td>-0.040675</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.306133</td>\n",
              "      <td>0.018319</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>96</th>\n",
              "      <td>0.022733</td>\n",
              "      <td>-0.002305</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.267763</td>\n",
              "      <td>0.018319</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>97</th>\n",
              "      <td>-0.072459</td>\n",
              "      <td>0.032809</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.232650</td>\n",
              "      <td>0.018319</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>98</th>\n",
              "      <td>-0.474581</td>\n",
              "      <td>0.689516</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>0.424057</td>\n",
              "      <td>0.660912</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99</th>\n",
              "      <td>-0.392109</td>\n",
              "      <td>0.502607</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>0.237148</td>\n",
              "      <td>0.487796</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>100 rows × 5 columns</p>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-cafd5214-8c67-4d09-a1ec-b5369f08309d')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-cafd5214-8c67-4d09-a1ec-b5369f08309d button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-cafd5214-8c67-4d09-a1ec-b5369f08309d');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-2d6a80bc-3cf9-4645-a814-44f1e645915d\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-2d6a80bc-3cf9-4645-a814-44f1e645915d')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-2d6a80bc-3cf9-4645-a814-44f1e645915d button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "  <div id=\"id_7c79987d-5ea6-433f-80f2-393f4d36933c\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('df')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_7c79987d-5ea6-433f-80f2-393f4d36933c button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 100,\n  \"fields\": [\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2974894110153193,\n        \"min\": -0.4944778828763976,\n        \"max\": 0.4868869366005173,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          -0.43644164971397637,\n          0.3948273504276488,\n          0.2722447692966574\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"y\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2371976451305763,\n        \"min\": -0.07017795621787389,\n        \"max\": 0.759622208242618,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          0.6042716212468632,\n          0.44249212723134224,\n          0.16050410768426654\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"pred1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 0.26545839669679816,\n        \"max\": 0.26545839669679816,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          0.26545839669679816\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"res1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2371976451305763,\n        \"min\": -0.33563635291467203,\n        \"max\": 0.4941638115458198,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          0.338813224550065\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"pred2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.23003043747312438,\n        \"min\": 0.018319128458148426,\n        \"max\": 0.6609119351147752,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          0.6058835165586802\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 20
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "HPRqolQ8ih7t"
      },
      "source": [
        "df['res2'] = df['y'] - df['pred2']"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 423
        },
        "id": "oFaReIF6i5XV",
        "outputId": "6a7c247f-d012-4657-f086-a9038ee90b2b"
      },
      "source": [
        "df"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "           X         y     pred1      res1     pred2      res2\n",
              "0  -0.125460  0.051573  0.265458 -0.213885  0.018319  0.033254\n",
              "1   0.450714  0.594480  0.265458  0.329021  0.605884 -0.011404\n",
              "2   0.231994  0.166052  0.265458 -0.099407  0.215784 -0.049732\n",
              "3   0.098658 -0.070178  0.265458 -0.335636  0.018319 -0.088497\n",
              "4  -0.343981  0.343986  0.265458  0.078528  0.305964  0.038022\n",
              "..       ...       ...       ...       ...       ...       ...\n",
              "95 -0.006204 -0.040675  0.265458 -0.306133  0.018319 -0.058994\n",
              "96  0.022733 -0.002305  0.265458 -0.267763  0.018319 -0.020624\n",
              "97 -0.072459  0.032809  0.265458 -0.232650  0.018319  0.014489\n",
              "98 -0.474581  0.689516  0.265458  0.424057  0.660912  0.028604\n",
              "99 -0.392109  0.502607  0.265458  0.237148  0.487796  0.014810\n",
              "\n",
              "[100 rows x 6 columns]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-6de40600-083c-44f1-94ea-8ec6b3a2b0e3\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>X</th>\n",
              "      <th>y</th>\n",
              "      <th>pred1</th>\n",
              "      <th>res1</th>\n",
              "      <th>pred2</th>\n",
              "      <th>res2</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>-0.125460</td>\n",
              "      <td>0.051573</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.213885</td>\n",
              "      <td>0.018319</td>\n",
              "      <td>0.033254</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>0.450714</td>\n",
              "      <td>0.594480</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>0.329021</td>\n",
              "      <td>0.605884</td>\n",
              "      <td>-0.011404</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>0.231994</td>\n",
              "      <td>0.166052</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.099407</td>\n",
              "      <td>0.215784</td>\n",
              "      <td>-0.049732</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>0.098658</td>\n",
              "      <td>-0.070178</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.335636</td>\n",
              "      <td>0.018319</td>\n",
              "      <td>-0.088497</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>-0.343981</td>\n",
              "      <td>0.343986</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>0.078528</td>\n",
              "      <td>0.305964</td>\n",
              "      <td>0.038022</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>95</th>\n",
              "      <td>-0.006204</td>\n",
              "      <td>-0.040675</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.306133</td>\n",
              "      <td>0.018319</td>\n",
              "      <td>-0.058994</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>96</th>\n",
              "      <td>0.022733</td>\n",
              "      <td>-0.002305</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.267763</td>\n",
              "      <td>0.018319</td>\n",
              "      <td>-0.020624</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>97</th>\n",
              "      <td>-0.072459</td>\n",
              "      <td>0.032809</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>-0.232650</td>\n",
              "      <td>0.018319</td>\n",
              "      <td>0.014489</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>98</th>\n",
              "      <td>-0.474581</td>\n",
              "      <td>0.689516</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>0.424057</td>\n",
              "      <td>0.660912</td>\n",
              "      <td>0.028604</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99</th>\n",
              "      <td>-0.392109</td>\n",
              "      <td>0.502607</td>\n",
              "      <td>0.265458</td>\n",
              "      <td>0.237148</td>\n",
              "      <td>0.487796</td>\n",
              "      <td>0.014810</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>100 rows × 6 columns</p>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-6de40600-083c-44f1-94ea-8ec6b3a2b0e3')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-6de40600-083c-44f1-94ea-8ec6b3a2b0e3 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-6de40600-083c-44f1-94ea-8ec6b3a2b0e3');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-d55019e7-13e6-46d6-8a5d-472e034a1fb5\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-d55019e7-13e6-46d6-8a5d-472e034a1fb5')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-d55019e7-13e6-46d6-8a5d-472e034a1fb5 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "  <div id=\"id_876450a4-de88-410b-957b-25e020f57fd9\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('df')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_876450a4-de88-410b-957b-25e020f57fd9 button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 100,\n  \"fields\": [\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2974894110153193,\n        \"min\": -0.4944778828763976,\n        \"max\": 0.4868869366005173,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          -0.43644164971397637,\n          0.3948273504276488,\n          0.2722447692966574\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"y\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2371976451305763,\n        \"min\": -0.07017795621787389,\n        \"max\": 0.759622208242618,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          0.6042716212468632,\n          0.44249212723134224,\n          0.16050410768426654\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"pred1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 0.26545839669679816,\n        \"max\": 0.26545839669679816,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          0.26545839669679816\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"res1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2371976451305763,\n        \"min\": -0.33563635291467203,\n        \"max\": 0.4941638115458198,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          0.338813224550065\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"pred2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.23003043747312438,\n        \"min\": 0.018319128458148426,\n        \"max\": 0.6609119351147752,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          0.6058835165586802\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"res2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.05786813191570852,\n        \"min\": -0.10752856921556975,\n        \"max\": 0.1443842941268938,\n        \"num_unique_values\": 100,\n        \"samples\": [\n          -0.05664031386791202\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 22
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "6VfcebMZi6I1"
      },
      "source": [
        "tree2 = DecisionTreeRegressor(max_leaf_nodes=8)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "In model (m3), res2 is the target value for a given decision tree"
      ],
      "metadata": {
        "id": "xgodWLlf5zL2"
      }
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 74
        },
        "id": "4OLND2zyjD51",
        "outputId": "7b1c8fdd-ef02-463e-a9ca-593b1278abce"
      },
      "source": [
        "tree2.fit(df['X'].values.reshape(100,1),df['res2'].values)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "DecisionTreeRegressor(max_leaf_nodes=8)"
            ],
            "text/html": [
              "<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeRegressor(max_leaf_nodes=8)</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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">DecisionTreeRegressor</label><div class=\"sk-toggleable__content\"><pre>DecisionTreeRegressor(max_leaf_nodes=8)</pre></div></div></div></div></div>"
            ]
          },
          "metadata": {},
          "execution_count": 24
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "S_enS_gpjOlJ"
      },
      "source": [
        "y_pred = 0.265458 + sum(regressor.predict(X_test.reshape(-1, 1)) for regressor in [tree1,tree2])"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 408
        },
        "id": "tNz6xOm0jYa1",
        "outputId": "cb8b0e6d-1d4e-469b-ca5f-82d957688ac9"
      },
      "source": [
        "plt.figure(figsize=(14,4))\n",
        "plt.subplot(121)\n",
        "plt.plot(X_test, y_pred, linewidth=2,color='red')\n",
        "plt.scatter(df['X'],df['y'])\n",
        "plt.title('X vs y')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Text(0.5, 1.0, 'X vs y')"
            ]
          },
          "metadata": {},
          "execution_count": 27
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1400x400 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiAAAAF2CAYAAABXtiNrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABLDElEQVR4nO3de3RU9bk//vdckgyBXIgxmRCDQapAREHBhIiXJScUWkU4rYqoaPlZtQjWQl0FWhSoR4FqFU+l0qJ+aw9FQM+xysVYuVXRYBSkGsOlxiAImUAIJCGQyWRm//6Y7Jk9971n9lz2zPu1FovJzt6TTyaZzDPP5/k8H50gCAKIiIiIYkgf7wEQERFR6mEAQkRERDHHAISIiIhijgEIERERxRwDECIiIoo5BiBEREQUcwxAiIiIKOYYgBAREVHMMQAhIiKimGMAQkRERDHHAISIArrnnntgMplw6NAhn88tW7YMOp0OmzZtisPIiEjrdNwLhogCOXHiBIYOHYqRI0di+/btruONjY24/PLL8cMf/hBvvvlmHEdIRFrFDAgRBVRQUIDly5djx44deO2111zHH374YaSlpeGFF16I4+iISMsYgBBRUD/96U8xduxYPPbYYzh16hTWrVuH6upq/Nd//ReKi4uDXnvLLbfgkksu8fu5yspKjB492vXx+++/j+uuuw65ubno168fhgwZgl//+tdB7//GG2/EiBEj/H5uyJAhmDBhQojvjojihQEIEQWl0+nwpz/9CW1tbZg5cybmzJmD0aNHY9asWSGvnTp1KhobG/Hpp596HP/222+xe/du3HnnnQCAr776CrfccgusVit++9vf4ve//z1uvfVWfPTRR0Hvf/r06fjiiy9QV1fncfzTTz/FoUOHcM899yj8bokoVozxHgARJb7LL78cjz32GJYuXQqDwYDNmzdDrw/9/mXy5MnIyMjA+vXrcc0117iOb9iwATqdDnfccQcAZ/aju7sb7777LvLz82WP6/bbb8cjjzyCNWvWYNmyZa7ja9asQd++ffGjH/1IwXdJRLHEDAgRySIGBgMGDMDw4cNlXZOdnY0f/OAH2LBhA6T17uvXr8eYMWMwcOBAAEBubi4A4O2334bD4ZA9ppycHEyePBmvv/666/7tdjvWr1+PKVOmoG/fvrLvi4hiiwEIEYV09OhRLFq0CMOHD8fRo0fx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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Conclusion: Here, we have intentionally used 3 models (m1 -> mean of target, m2 -> target is the res1 and m3 -> target is the res2)"
      ],
      "metadata": {
        "id": "Ro8ftD_Z6DsU"
      }
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "wx8rt90LCtTV"
      },
      "source": [],
      "execution_count": null,
      "outputs": []
    }
  ]
}