{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "d00487c4-2eb7-446c-a3cd-00eaa810890b",
   "metadata": {},
   "source": [
    "# Implementation of Linear Regression"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d5aa271a-68dd-45f4-8e8d-8a2dfb482065",
   "metadata": {},
   "source": [
    "-----------\n",
    "### Step1 Generate the Data "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "181c0a91",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets import make_regression\n",
    "x,y = make_regression(n_features=1, noise=5, n_samples=10000,random_state=1)\n",
    "import matplotlib.pyplot as plt\n",
    "plt.scatter(x,y)\n",
    "plt.xlabel('x')\n",
    "plt.ylabel('y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c947b222-7bfd-47d8-94d6-c74a46cd206c",
   "metadata": {},
   "source": [
    "-------------\n",
    "### Step 2 Split the Data into Training and Testing Sets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "7a630f46",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "e1355a19-2862-49a3-8479-4faec5400883",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 102.1991915 ,   75.21963318, -137.04699982, ...,   16.7730244 ,\n",
       "          2.1072226 ,    4.02596433], shape=(2000,))"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b300d0b0-2439-4649-ab6b-bb9b4b6a3484",
   "metadata": {},
   "source": [
    "---------------\n",
    "#### Step 3 Train the model "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "3c5fd834",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: #000;\n",
       "  --sklearn-color-text-muted: #666;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: flex;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "  align-items: start;\n",
       "  justify-content: space-between;\n",
       "  gap: 0.5em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label .caption {\n",
       "  font-size: 0.6rem;\n",
       "  font-weight: lighter;\n",
       "  color: var(--sklearn-color-text-muted);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  display: none;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  overflow: visible;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 0.5em;\n",
       "  text-align: center;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".estimator-table summary {\n",
       "    padding: .5rem;\n",
       "    font-family: monospace;\n",
       "    cursor: pointer;\n",
       "}\n",
       "\n",
       ".estimator-table details[open] {\n",
       "    padding-left: 0.1rem;\n",
       "    padding-right: 0.1rem;\n",
       "    padding-bottom: 0.3rem;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table {\n",
       "    margin-left: auto !important;\n",
       "    margin-right: auto !important;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:nth-child(odd) {\n",
       "    background-color: #fff;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:nth-child(even) {\n",
       "    background-color: #f6f6f6;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:hover {\n",
       "    background-color: #e0e0e0;\n",
       "}\n",
       "\n",
       ".estimator-table table td {\n",
       "    border: 1px solid rgba(106, 105, 104, 0.232);\n",
       "}\n",
       "\n",
       ".user-set td {\n",
       "    color:rgb(255, 94, 0);\n",
       "    text-align: left;\n",
       "}\n",
       "\n",
       ".user-set td.value pre {\n",
       "    color:rgb(255, 94, 0) !important;\n",
       "    background-color: transparent !important;\n",
       "}\n",
       "\n",
       ".default td {\n",
       "    color: black;\n",
       "    text-align: left;\n",
       "}\n",
       "\n",
       ".user-set td i,\n",
       ".default td i {\n",
       "    color: black;\n",
       "}\n",
       "\n",
       ".copy-paste-icon {\n",
       "    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZD0iTTIwOCAwTDMzMi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw2Ny45IDY3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNDQ4IDMzNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek00OCAxMjhsODAgMCAwIDY0LTY0IDAgMCAyNTYgMTkyIDAgMC0zMiA2NCAwIDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OHoiLz48L3N2Zz4=);\n",
       "    background-repeat: no-repeat;\n",
       "    background-size: 14px 14px;\n",
       "    background-position: 0;\n",
       "    display: inline-block;\n",
       "    width: 14px;\n",
       "    height: 14px;\n",
       "    cursor: pointer;\n",
       "}\n",
       "</style><body><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LinearRegression()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>LinearRegression</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.7/modules/generated/sklearn.linear_model.LinearRegression.html\">?<span>Documentation for LinearRegression</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\" data-param-prefix=\"\">\n",
       "        <div class=\"estimator-table\">\n",
       "            <details>\n",
       "                <summary>Parameters</summary>\n",
       "                <table class=\"parameters-table\">\n",
       "                  <tbody>\n",
       "                    \n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('fit_intercept',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">fit_intercept&nbsp;</td>\n",
       "            <td class=\"value\">True</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('copy_X',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">copy_X&nbsp;</td>\n",
       "            <td class=\"value\">True</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('tol',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">tol&nbsp;</td>\n",
       "            <td class=\"value\">1e-06</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('n_jobs',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">n_jobs&nbsp;</td>\n",
       "            <td class=\"value\">None</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('positive',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">positive&nbsp;</td>\n",
       "            <td class=\"value\">False</td>\n",
       "        </tr>\n",
       "    \n",
       "                  </tbody>\n",
       "                </table>\n",
       "            </details>\n",
       "        </div>\n",
       "    </div></div></div></div></div><script>function copyToClipboard(text, element) {\n",
       "    // Get the parameter prefix from the closest toggleable content\n",
       "    const toggleableContent = element.closest('.sk-toggleable__content');\n",
       "    const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n",
       "    const fullParamName = paramPrefix ? `${paramPrefix}${text}` : text;\n",
       "\n",
       "    const originalStyle = element.style;\n",
       "    const computedStyle = window.getComputedStyle(element);\n",
       "    const originalWidth = computedStyle.width;\n",
       "    const originalHTML = element.innerHTML.replace('Copied!', '');\n",
       "\n",
       "    navigator.clipboard.writeText(fullParamName)\n",
       "        .then(() => {\n",
       "            element.style.width = originalWidth;\n",
       "            element.style.color = 'green';\n",
       "            element.innerHTML = \"Copied!\";\n",
       "\n",
       "            setTimeout(() => {\n",
       "                element.innerHTML = originalHTML;\n",
       "                element.style = originalStyle;\n",
       "            }, 2000);\n",
       "        })\n",
       "        .catch(err => {\n",
       "            console.error('Failed to copy:', err);\n",
       "            element.style.color = 'red';\n",
       "            element.innerHTML = \"Failed!\";\n",
       "            setTimeout(() => {\n",
       "                element.innerHTML = originalHTML;\n",
       "                element.style = originalStyle;\n",
       "            }, 2000);\n",
       "        });\n",
       "    return false;\n",
       "}\n",
       "\n",
       "document.querySelectorAll('.fa-regular.fa-copy').forEach(function(element) {\n",
       "    const toggleableContent = element.closest('.sk-toggleable__content');\n",
       "    const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n",
       "    const paramName = element.parentElement.nextElementSibling.textContent.trim();\n",
       "    const fullParamName = paramPrefix ? `${paramPrefix}${paramName}` : paramName;\n",
       "\n",
       "    element.setAttribute('title', fullParamName);\n",
       "});\n",
       "</script></body>"
      ],
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "regressor = LinearRegression()\n",
    "regressor.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "358cbe87-04d9-4d13-8f19-d400030b5b10",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coef of the Model :  [86.43440685]\n"
     ]
    }
   ],
   "source": [
    "print(\"Coef of the Model : \" , regressor.coef_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "be781e40-515a-401e-99b0-5928a4354063",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "intercept of the model :  0.04227472301590912\n"
     ]
    }
   ],
   "source": [
    "print(\"intercept of the model : \", regressor.intercept_)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ab42c68e-8712-4a95-98e4-b7b6f1559151",
   "metadata": {},
   "source": [
    "------------\n",
    "###  Step 4 Predict the unseen data (Test data )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "b09ea457",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 107.6063556 ,   85.17598825, -137.70846548, ...,   21.43080311,\n",
       "          4.82186867,    6.46008839], shape=(2000,))"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred_test_data  = regressor.predict(X_test)\n",
    "y_pred_test_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "a418d979-1ee3-4e0d-b179-01a5117eebec",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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cERERETkhOGIiIiIyAnDEREREZEThiMiIiIiJwxHRERERE4YjoiIiIicMBwRUUiT/epat26N3r17uxzPyMhAtWrV8OSTT5bYcyOiksHtQ4go5P36669o0qQJ3nzzTfzjH/9QP4/+/ftj586datPnsLCwkP8ZEYUShiMiIgCvv/46Jk+ejD179iAtLQ133323CkaNGzfmz4coxDAcERHJFvA2G9q1aweDwYDdu3dj5MiReOqpp/izIQpBDEdERNfs27cP9evXR3JyMrZv3w6j0cifDVEIYkM2EdE1ixcvRlRUFA4dOoQ//viDPxeiEMXKERERgC1btuC2227D559/jhdeeEH9TL744gvodDr+fIhCDCtHRBTyLl26hIEDB2LYsGFo27Yt3nrrLdWUvWDBgpD/2RCFIlaOiCjkjR49GuvWrVNT92VYTSxcuBCPPvqoas6uWbNmyP+MiEIJwxERhbSvvvoK7du3x6ZNm3DzzTe7nOvcuTPMZjOH14hCDMMRERERkRP2HBERERE5YTgiIiIicsJwREREROSE4YiIiIjICcMRERERkROGIyIiIiInDEdEREREThiOiIiIiJwwHBERERE5YTgiIiIicsJwRERERIS//D/CjS5H3UllNAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X_test,y_test,label='Actual')\n",
    "plt.scatter(X_test,y_pred_test_data,label='Predicted')\n",
    "plt.xlabel('X')\n",
    "plt.ylabel('Y')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "67f7f1d4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test Data Score :  0.9966263246017432\n"
     ]
    }
   ],
   "source": [
    "print(\"Test Data Score : \", regressor.score(X_test, y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "914fdf9e-889e-4ca1-9c18-ecc25111a50b",
   "metadata": {},
   "source": [
    "-------------"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "bd63c916",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 130.08472986,  -44.53477921, -167.86426893, ..., -142.37365931,\n",
       "         13.8749839 ,  -72.20838078], shape=(10000,))"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred_train_data = regressor.predict(x)\n",
    "y_pred_train_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "b3305b8d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x,y,label='Actual')\n",
    "plt.scatter(x,y_pred_train_data,label='Predicted')\n",
    "plt.xlabel('X')\n",
    "plt.ylabel('Y')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "f717b65e-c4be-4967-a648-7293df1b5847",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train data Score :  0.9966263246017432\n"
     ]
    }
   ],
   "source": [
    "print(\"Train data Score : \", regressor.score(x,y))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "069f2016-11d6-45bc-af7d-99d03161ab2f",
   "metadata": {},
   "source": [
    "----------------------------\n",
    "### Step 5 ERROR  Measurment "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "811a01bb",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import mean_squared_error, mean_absolute_error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "ddacb353-e9ab-48fb-941e-3b420260e8f7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "25.151104131815604"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mse_test_data = mean_squared_error(y_test, y_pred_test_data)\n",
    "mse_test_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "f5d8a301-88dd-4ee7-80ba-609e9dfe2b49",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "25.151104131815604\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "mse_manual = np.mean((y_test-y_pred_test_data)**2)\n",
    "print(mse_manual)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "1d9bc147-7ec9-419a-8c88-262b8ff58aa0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "25.51035588985328"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mse_train_data = mean_squared_error(y, y_pred)\n",
    "mse_train_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "0be07565-6304-4938-af34-de68fd45d900",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE 5.015087649464923\n"
     ]
    }
   ],
   "source": [
    "print(\"RMSE\", np.sqrt(mse_test_data))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "3fbabb81-3e0e-4810-9dd0-1372793357ab",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model prediction average error is :  3.9945912527771634\n"
     ]
    }
   ],
   "source": [
    "MAE = mean_absolute_error(y_test, y_pred_test_data)\n",
    "print(\"Model prediction average error is : \", MAE)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5ceca852-0d21-43f3-be2b-1dc99072ffd8",
   "metadata": {},
   "source": [
    "* prediction average मा 3.995 units ले गलत छ"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e239bdaa-c62d-40a6-a26d-2f7422179959",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
