Skip to content

Instantly share code, notes, and snippets.

@bedohazizsolt
Created October 14, 2022 09:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bedohazizsolt/012243a6997ca3cf4f3768299da5f74e to your computer and use it in GitHub Desktop.
Save bedohazizsolt/012243a6997ca3cf4f3768299da5f74e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "L_NT2cWGTvgo"
},
"source": [
"# Linear regression\n",
"\n",
"### 1. Load the provided .npy files. You can load it with numpy.\n",
"\n",
"* each file contains one vector, X and y\n",
"* visualize X vs y on a scatter plot\n",
"* fit an y=w_0 + w_1⋅X + w_2⋅X^2 linear regression using `sklearn`\n",
"\n",
"### 2. Using different features\n",
"\n",
"* plot the residuals (the difference between the prediction and the actual y ) vs the original y \n",
"* a non-random-noise like pattern suggests non-linear connection between the features and the predictions\n",
"* someone told us that the connection between X and y is y=A⋅X+B⋅cos^3(X)+C⋅X^2+D \n",
" * using sklearn's linear regression estimate A,B,C,D !\n",
"* plot the residuals again! is it better now?\n",
"\n",
"### 3. Other methdods than sklearn for linear regression\n",
"\n",
"* using the statsmodels package perform the same linear regression as in 2.) (hint: use statsmodels.api.OLS)\n",
"* is the result the same? if not guess, why? (did you not forget to add the constant term?)\n",
"* try to get the same results with statsmodels as with sklearn!\n",
"* using the analytic solution formula shown during the lecture, calculate the coefficients (A, B, C, D). are they the same compared to the two previous methods?\n",
"\n",
"### 4.\n",
"\n",
"* load the [real_estate](https://gist.github.com/qbeer/f356d7144543cbb09c9792c34b8ad722) data to a pandas dataframe\n",
"drop the ID column and the geographic location columns\n",
"fit a linear regression model to predict the unit price using sklearn\n",
"* interpret the coefficients and their meaning shortly with your own words\n",
"* plot the residuals for the predictions. if you had to decide only on this information, which house would you buy?\n",
"\n",
"### 5.\n",
"* Using the same dataset from task 4) compute the parameters of the multivariate regression model via gradient descent. \n",
"* Compare the calculated parameters with the ones obtained in task 4) via sklearn. Is there any difference? If so give your explanation.\n",
"\n",
"Hint: you can use a function to calculate the loss and a function to perform the gradient descent to learn the parameters. Example:\n",
"\n",
"```python\n",
"def comp_cost(X, y, theta):\n",
" \"\"\"Compute cost given X, y and parameters theta.\"\"\"\n",
" .\n",
" .\n",
" .\n",
" return J\n",
"```\n",
"\n",
"```python\n",
"def grad_descent(X, y, theta, alpha, num_iters):\n",
" \"\"\"Perform gradient descent\"\"\"\n",
" .\n",
" .\n",
" . \n",
" return J_history, theta\n",
"```\n",
"\n",
"---\n",
"\n",
"## Hints:\n",
"\n",
"* On total you can get 10 points for fully completing all tasks.\n",
"* Decorate your notebook with, questions, explanation etc, make it self contained and understandable!\n",
"* Comments you code when necessary\n",
"* Write functions for repetitive tasks!\n",
"* Use the pandas package for data loading and handling\n",
"* Use matplotlib and seaborn for plotting or bokeh and plotly for interactive investigation\n",
"* Use the scikit learn package for almost everything\n",
"* Use for loops only if it is really necessary!\n",
"* Code sharing is not allowed between student! Sharing code will result in zero points.\n",
"* If you use code found on web, it is OK, but, make its source clear!"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "D0AT4kBnV-8u"
},
"outputs": [],
"source": [
"# Data generation\n",
"\n",
"import numpy as np\n",
"\n",
"N = 1000\n",
"np.random.seed(42)\n",
"X = np.random.uniform(-100, 100, N)\n",
"\n",
"A = 1.2\n",
"B = 124\n",
"C = 9/137\n",
"D = -50\n",
"\n",
"y = A*(X + np.random.uniform(-1, 1, N)) + B*np.cos(X+ np.random.uniform(-0.05, 0.05, N))**3 + C*(X + np.random.uniform(-1, 1, N))**2 + D + np.random.uniform(-1, 1, N)\n",
"\n",
"np.save('X', X)\n",
"np.save('y', y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 394
},
"id": "ZC62-SZPWEQB",
"outputId": "c880907b-b42b-4537-c279-43a271d930c9"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"%pylab is deprecated, use %matplotlib inline and import the required libraries.\n",
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 864x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"import statsmodels.api as sm\n",
"from sklearn.linear_model import LinearRegression\n",
"\n",
"%pylab inline\n",
"\n",
"X = np.load('X.npy')\n",
"y = np.load('y.npy')\n",
"\n",
"plt.figure(figsize=(12, 5))\n",
"plt.scatter(X, y)\n",
"\n",
"data = pd.DataFrame({'a':X, 'b':X**2})\n",
"lr = LinearRegression()\n",
"lr.fit(data, y)\n",
"\n",
"preds = lr.predict(data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 211
},
"id": "kioK8MRjWP-i",
"outputId": "d1ca118b-8835-4664-9813-07666c1ccd98"
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 864x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12, 3))\n",
"plt.scatter(y, preds-y)\n",
"\n",
"data = pd.DataFrame({'a':X, 'b':np.cos(X)**3, 'c':X**2})\n",
"lr = LinearRegression()\n",
"lr.fit(data, y)\n",
"\n",
"preds = lr.predict(data)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 229
},
"id": "4UlZiBPHWV5Y",
"outputId": "e969e5df-92f7-493f-cef6-e7e3b30fbf4a"
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f55962b4f10>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 864x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12, 3))\n",
"plt.scatter(y, preds-y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 3."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "WcO9JZRzWYeM",
"outputId": "57a1ec90-a156-4f27-ac02-ebf12a5de8f1"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" OLS Regression Results \n",
"==============================================================================\n",
"Dep. Variable: y R-squared: 0.999\n",
"Model: OLS Adj. R-squared: 0.999\n",
"Method: Least Squares F-statistic: 5.596e+05\n",
"Date: Tue, 04 Oct 2022 Prob (F-statistic): 0.00\n",
"Time: 18:03:31 Log-Likelihood: -3074.8\n",
"No. Observations: 1000 AIC: 6158.\n",
"Df Residuals: 996 BIC: 6177.\n",
"Df Model: 3 \n",
"Covariance Type: nonrobust \n",
"==============================================================================\n",
" coef std err t P>|t| [0.025 0.975]\n",
"------------------------------------------------------------------------------\n",
"a 1.1968 0.003 420.898 0.000 1.191 1.202\n",
"b 123.5677 0.297 416.608 0.000 122.986 124.150\n",
"c 0.0657 5.55e-05 1183.097 0.000 0.066 0.066\n",
"D -50.0711 0.252 -198.817 0.000 -50.565 -49.577\n",
"==============================================================================\n",
"Omnibus: 3.123 Durbin-Watson: 2.001\n",
"Prob(Omnibus): 0.210 Jarque-Bera (JB): 3.135\n",
"Skew: 0.082 Prob(JB): 0.209\n",
"Kurtosis: 3.220 Cond. No. 8.12e+03\n",
"==============================================================================\n",
"\n",
"Notes:\n",
"[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
"[2] The condition number is large, 8.12e+03. This might indicate that there are\n",
"strong multicollinearity or other numerical problems.\n"
]
}
],
"source": [
"lr.intercept_, lr.coef_\n",
"\n",
"data['D'] = 1\n",
"model = sm.OLS(y, data)\n",
"\n",
"results = model.fit()\n",
"print(results.summary())"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "qdbDHBorWhAG",
"outputId": "dc2f30d7-2d36-4c0a-cb49-18ead8d675c6"
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.19676853e+00, 1.23567661e+02, 6.56986322e-02, -5.00710927e+01])"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d = data.values\n",
"np.linalg.inv(d.T@d)@(d.T@y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 4. "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 221
},
"id": "3jqPVFfKWjea",
"outputId": "271f4192-753d-4aa3-ac1c-958c47e1a4a5"
},
"outputs": [
{
"data": {
"text/html": [
"<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>X1 transaction date</th>\n",
" <th>X2 house age</th>\n",
" <th>X3 distance to the nearest MRT station</th>\n",
" <th>X4 number of convenience stores</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2012.917</td>\n",
" <td>32.0</td>\n",
" <td>84.87882</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2012.917</td>\n",
" <td>19.5</td>\n",
" <td>306.59470</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2013.583</td>\n",
" <td>13.3</td>\n",
" <td>561.98450</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2013.500</td>\n",
" <td>13.3</td>\n",
" <td>561.98450</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2012.833</td>\n",
" <td>5.0</td>\n",
" <td>390.56840</td>\n",
" <td>5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" X1 transaction date X2 house age X3 distance to the nearest MRT station \\\n",
"0 2012.917 32.0 84.87882 \n",
"1 2012.917 19.5 306.59470 \n",
"2 2013.583 13.3 561.98450 \n",
"3 2013.500 13.3 561.98450 \n",
"4 2012.833 5.0 390.56840 \n",
"\n",
" X4 number of convenience stores \n",
"0 10 \n",
"1 9 \n",
"2 5 \n",
"3 5 \n",
"4 5 "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.read_csv('real_estate.csv')\n",
"data.pop('No');\n",
"data.pop('X5 latitude');\n",
"data.pop('X6 longitude');\n",
"y = data.pop('Y house price of unit area')\n",
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "jzVFn9KeWsPD",
"outputId": "74185ed7-f1fc-4c13-90e1-56f48e231ca8"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-11588.747800126168 [ 5.77804282e+00 -2.54477973e-01 -5.51299698e-03 1.25786410e+00]\n"
]
}
],
"source": [
"lr.fit(data, y)\n",
"print(lr.intercept_, lr.coef_)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 247
},
"id": "O8U4uXvwYE43",
"outputId": "c3a6f63c-0408-4fae-c1b9-df7771e8d4f6"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-11588.747800126168 [ 5.77804282e+00 -2.54477973e-01 -5.51299698e-03 1.25786410e+00]\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f5596189d90>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAADCCAYAAABUrzQ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAjKUlEQVR4nO3df5QddZnn8c/TNzdwgyNNhoySTtpkFMMhIkRaZMz+EGSm/YEkC67g4o7juJszc9gdYd120+JZ4Bw5ZCYzg3pmx7OMuqNHjgQh24JxNv4I7u5wJjiJCcQA0SgS0kFBoRmXtEknefaPW9Wpvl11b9Wtur8679c5HLrr1r1Vt6ovfO63nnq+5u4CAAAAUNXX6R0AAAAAugkBGQAAAIggIAMAAAARBGQAAAAggoAMAAAARBCQAQAAgIh5nd6BqLPPPtuXLVvW6d0AAADAHLdz585fuPuiuMe6KiAvW7ZMO3bs6PRuAAAAYI4zs6eTHiusxMLMSma2y8y+Hvy+3MweMbP9ZrbJzOYXtS0AAACgVYqsQf6IpCciv/+ppDvd/XWSXpT04QK3BQAAALREIQHZzJZIerekzwW/m6TLJd0XrPJFSWuL2FbRxnaNa/WGbVq+fotWb9imsV3jnd4lAAAAdFBRNcifkvQxSb8R/P6bkibc/Vjw+0FJA3FPNLN1ktZJ0uDgYEG7k87YrnGNbt6jyanjkqTxiUmNbt4jSVq7KnZ3AQAAMMflHkE2syslPefuO5t5vrvf5e5D7j60aFHsjYQts3HrvulwHJqcOq6NW/e1dT8AAADQPYoYQV4t6Soze5ek0yW9UtKnJfWb2bxgFHmJpK6rXTg0MZlpOQAAAOa+3CPI7j7q7kvcfZmk6yRtc/frJT0k6b3Bah+U9LW82yra4v5KpuUAAACY+1o5k95/kfSfzGy/qjXJn2/htpoyMrxClXJpxrJKuaSR4RUd2iMAAAB0WqEThbj7dyV9N/j5J5IuKfL1ixbeiLdx6z4dmpjU4v6KRoZXcIMeAADAKayrZtLrhLWrBgjEAAAAmNbKEgsAAACg5xCQAQAAgAgCMgAAABBBQAYAAAAiCMgAAABABAEZAAAAiCAgAwAAABEEZAAAACCCgAwAAABEEJABAACACAIyAAAAEEFABgAAACIIyAAAAEAEARkAAACIICADAAAAEbkDspktNbOHzOxxM9trZh8Jli80s2+Z2Y+Cf5+Vf3cBAACA1ipiBPmYpI+6+/mSLpV0g5mdL2m9pO+4+7mSvhP8DgAAAHS13AHZ3Z919+8HP/9K0hOSBiStkfTFYLUvSlqbd1sAAABAq80r8sXMbJmkVZIekfQqd382eOhnkl5V5LbQu8Z2jWvj1n06NDGpxf0VjQyv0NpVA7nXBQAAKEJhAdnMXiHpfkk3uvs/mdn0Y+7uZuYJz1snaZ0kDQ4OFrU76FJju8Y1unmPJqeOS5LGJyY1unmPJM0KvlnWBQAAKEohXSzMrKxqOL7b3TcHi39uZucEj58j6bm457r7Xe4+5O5DixYtKmJ30MU2bt03HXhDk1PHtXHrvlzrAgAAFCX3CLJVh4o/L+kJd//LyEMPSPqgpA3Bv7+Wd1vofYcmJlMvz7JukSjrAADg1FZEicVqSf9W0h4z2x0s+7iqwfheM/uwpKclva+AbfW8uRK+mn0fi/srGo8JuIv7K7nWLQplHQAAIHdAdve/l2QJD7897+vPJb0avmrD8GXnLdL9O8ebeh8jwytmHANJqpRLGhlekWvdotQr6+jmcwQAAIpTaBcL1NeoprYbR5bjQv2Xtx+YtV7aEBk+nua9Zlm3KJ0q6wAAAN3D3GObS3TE0NCQ79ixo9O70TLL129R0tE2acZjlXJJd1x9QaFhsJmyiNUbtsWWOcQxSU9teHfL9qkd5SlJ73egv6KH119e6LYAAEDnmNlOdx+Ke4wR5DZKqqmVNCs4F31ZP24keOSrj+q2B/dq4vBUYuDMMnLaZ6ZPjO3RQ08+nzrwtrrlW9YA/vKRY7OW1yvrmCs15QAA4KRC2rwhnZHhFaqUSzOWJRVvS43D6diuca3esE3L12/R6g3bNLZrPHHduPKOqROuFw9PyXUycNa+RpYb4o6768vbD2h8YnL6NW/ctFvX/80/pN6nIlu+haE6uj9x7zG67sTk1IzlZy0o65qLB7Rx675ZxznL6wMAgN7BCHIbxdXU1itfqBdOs46ophkJjhu1HhleoZH7HtXU8eZLcR7+8Qu6/m/+QT/95eSMG/2S3ntRLd+y3HAXt64kuSvxhsSk1//ovY/qpk27GVEGAKBHEZDbbO2qgRmBKanm1aS63RqydltoFMZDsYGzgDL1h3/8wvTPSTf6haJfDMIShqRdiFu30ZeP8YlJLV+/ZUaATQratSPK0snjnPSc40Fd//jEpG7atFs7nn5Bn1x7QcI7iN93gjUAAJ1DQO6wuFZmJun6SwfrBqSsI6px24lzZqU84/eNW/dp6kR7b+QMA+xbX7tQ3z/wUuI+R2uD40bU64mWREjpv0CE0lwBCLdz9/YDGnrNwti66o1b92l8YnLGTZpFtP9rdeAm0AMA5jICcoc128os6yQatduRVcsHallNUXSW0Fgk18xR51oDNccpqUSikXA0+LLzFunu7QdmdRI5vdynFw/PHkUOA3YaHuxf9JzWBvq4mzRve3BvUyG01f22PzG2Z8ax6pV+3gAApEWbtx5VG4KkbK3hklrO1bZqe+3oN6ZLBrqJBQE/DMo3btqd6/Uq5VLsKL6kWcG5GbXHNUv7vFC5z/SK0+fV7TpS77XPWlDWgvnzco36ju0a102bdsceD1rhAQB6CW3e5qC0I89Jl8LTjkB3YziWTo5+h6OXljAinlbt6LNL+vqjz+rIsROpwnFtH+tatce1mZH5sOtI+PykUdukMpsXD0+len499erBO3W1AQCAohGQe1jtDX+16l1qTzuN81kLyrElBt2kmdKKNOJu0EtSLxzHHdc+k/KWdid1zEhbTz05dVw3bto9PfpeW7YSp17XkFJtfU4MapcBAL2AgDyH1et0EV4KrxdWxnaN6//9evbEGUjPJF1zcfWYrt6wTYcmJtW/oJw7HIeiHTNu3LRb/+2hH8VOdpJG2HXjxk27E8NyvfB93F1ju8YLmRgGAIBOogZ5DktbZ5ykmTpZzGaS5pUsVy/pTumvlHXlhedMz47Y3+CKQli7HdfWjmm8AQDdpF4NMjPpzWFJHS3Szo6XZZppJHOpJ8OxVC0zic6O2KjcJmxrFzebYDOTvQAA0AmUWLRIUq1ltPdtyUzH3VPVfjYjbZ1xkqTL6Y1uSDsVnWrHpN77jba1i34O+oK/91qNvrBRtwwAaDcCcgsk1VruePqFGdMWR+tHW1GL2WyP5VBSwL7m4oEZ7+NU0CgAn0rhWGr8fg9NTM76HMSF40Zf2KhbBgB0AjXILZBUa1lKGEELpanFbPdoWtL2aieLOBX0QkePblEy0ysr82KPV/g5iLbmO2tBWbe8Z2XqUWfqlgEAedWrQW55QDazd0j6tKSSpM+5+4akdedKQE66Oa6RRjfPJYXS2hupkjpS3PrA3unWZdFAktXYrnGNfPXRtk9B3UlhIIuWyORVOzlJr8lTVtIn6UTNslKfaX7JNDlV+0j8ttPcaAoAQJKOBWQzK0n6oaTflXRQ0j9Ker+7Px63/lwJyM2OIJfM9Bfvu3A6tEZH0s6slDP15Y3Oqtco0Gatga7X3aK/UtYZp52cre2Fl4/EBp7+SllHjp1IFRDLfVKKzJSo1Gc6niPMl0umje+9cMbxKaLDx6euvUijmx9LFQi7Vadqr/srZd161UpqkwEATetkF4tLJO1395+4+1FJ90ha0+JtdtzI8ApVyqUZyyrlkt7/lqV1n3fcXaOb9+gTY3t00W3f1I2bdk93D8gSjqWT/Y6lag1yvdHesK4zrvNAnHpdB16anNLD6y/XUxverYfXX647rn5j7LG49aqVuuPqCzTQX5Gp0SQTpg9cOjjrdZL0V8oyVYP/WQvKucKxJJ0xf96s4HXZeYtyveZAcGPa0R7tbhFyVa9GtNuvjhzTyFcfnf58ZP0bBgCgnlYH5AFJz0R+Pxgsm9PWrhqYEf4G+iu64+oL9Mm1FzQME5NTx3X39gOZA3GcMMimaaMVDdSN1Os6UPtY0rEIZwEMw/RfvO9CJUXkqROuh558PlWgHuivaPctvzcd0CcKqBmemJzS6g3bZoSvh558vunXM1W/RG3cuq/p8H7avL6OBNM4najLPn7CZ33pS/obHts1rtUbtmn5+i2zziMAAHE63sXCzNZJWidJg4ODHd6b4iRNA33Le1bO6gxRq6gxxTCspp16OOw8EL1sfdl5i2bVNo8Mr4gt2SiXLLYjQaMpscN1wimPk/Yt+jq13Q2k+I4ISe+9ZKb3v2WpHnry+VTHprZ7Qp7eva7G77eRo8dOaN8n36nXjn6jbtnOqWZ8YlLL12+Z/luVRBcMAEBmra5B/h1Jt7r7cPD7qCS5+x1x68+VGuRGirzRK0mWGuRQn1WDY731wteVlOumv7juGPWOSVzXgjQdPZKCdHhsQsvWb0m13+F+5K1BHuiv6FBQHtCMsxaUtWD+vK6Y6bBbe0CbpEq5T4djarzb0QWD/s0A0N06eZPePFVv0nu7pHFVb9L7N+6+N279uRCQs/xPMa4rRTNhIzoamraLRR55w0VSaL3m4gFt+sdnZs06V+4zbfzXFzYdLtKck7SBN+yeEPcektbvxvBYlAUJAbQXhDfNhp+fodcszBxo600IlPQ3Xu9zCgBon063eXuXpE+p2ubtC+5+e9K6vR6Q045WJq1rkt762oX6/oGXZgWvej14s7S8Shvs6snbYispjIbdNG57cO/0ew27FbQ6RKQ9LtEvB9FwtGB+SS8fnf3c1a9dqJ/+crItI739GTudFGWufAnoMyl68aTeZze82lH73sPnJF0NSVqfkAwA7dfRgJxFrwfkesGvdsS1UUiMG5XK8vpJI1tFtCfLO4Kc1Ce6071tG5W+1BvJbnRumu2NHUoTQjsRVBu1Lux1tX/rab5IDaSs+a99DqPJANBe9QJyx2/Sm0uSbtyKW15v3aSb2i47b9Gskoy4G9PqTc+b5+Yy6WQHhjySbpyr1x2jHcLjnhR2X3H67HZvoUbnPuk9R2uJk8Jm2j7Oi3PWNWdVLtmscph2OGN+SYePHm/L+xyP3LiaNvQeihlZTrMdbh4EgO7R6jZvp5SkgBe3PMu6UjX03r9zfFa98jUXzw7TG7fumzXCFbbAShNCK+XkP4uwA0MeSX2i8wbvoiSF3Xot4xqdz5HhFSqXZramK5dMt7xn5fTxiIbjcM2B/op+47TG32NNmu4JXKSk1nt9Jl375qWJj7fS7f/qAt157UVNPdeU/J6SjG7ek2lEeHF/panzkKXVIgCgtQjIBcoS/LKGxLjQ64rvx1tvNDNuu7UWnnHa9EQWtZKWZxHXG/maiwe0ceu+VL1qW93XNuuXFynl+axNTcHvSec2vLz/Uoq64qyB7Iz5pYZ/ByWzxNd1r/7ttXv8+AOXDqZqG5jElf1YZanXL5cs1yQyaa/w0NsZAFqLEosChf/TTnMnfJZ1pWzlG/VKGKLbTRoVOzQxqTuvvShVn+Ha6bDNqiOtjd5PvZ7G9S43Z1m3dv/Sdg0YGV6R6r3Xvh8p+XzGzWY4dcKn14/TqDzDTFpQjr85sJFyqU9XXniO7t95MHGq63q1xWE5R7P6JJ25oDw9Kh+3pbD8JHo8pWq996E6JSkd5dKWx55NfPiM+SX1L5if+NlrdIVnbNf4jJtYJcozAKAVuEmvR2S9Qa+273HcDWaNXrNRuGx0w1K9O/Sjr92XEHSy3twYdxzSdhWpt39FtOOqd2NiUgCOnoek95FnspFyn0mmzHXEjTo11HaDmP38Pt1x9RsbTvpSe56K6MDSaZ+69qK6beDq/W02ev9xNxTShxkAknGT3hyQeVSzttAypvCy0Ws2upQdVxoQFdZUNhoFThoFzHpzY5r9S9qnWnku48epN6qf5jxI8aPT9QJyo24KjSaOSXrNaNCqF/Jqe28nTSaT9mpKo7+3btdfKU+/p6xXkMJ1673/6LnOeqUFADATAblHZPkf6sat+2aNCk4d9xnBMBxdmpw6Pn2pOmurqTSX2NMG1zhJNzem7YCRFA47MftcvRCc5twmBfak3sf9lXLsNvOoHaGst99xo52/rjOhSJovJPX+3irlUlvCczg6PtBf0ctHjiX2nY7rd3zrVStnrJP1S1ijz1vJTn4LzvPlEABAQG6LvJc6a59/Z3CZNkmjUda4EdzasJZGUlitXSft/kXVu7kx7Uh6Yts0a3/vhUYhuNkR61uvWhlbThOdXKWoac3jjnHSfrcioNUrRamdYKYZaSZaOefMmRPFJH0BcZ0MyUX1OG70eYv+rWe50gIAmI2A3GJ5L3U28/xGo6xFhZdGI5RJwTVp/0pmOuFe2M2NSaUbnbqxq+iyjfA1pcbBOy7MZalBjpYHpNGKgNZoFD58n1m/EETr8xtNpHMo0hc5vDH19HJfbDCPdiKR8n9RbvR5G+ivTG8j6Yx2utc4APQKAnKL5Q2jzTy/0ShrUeGlNpyl7WKRtH9pp9xNGzSTanCLaFXXTdIcj6QgHV12ZqWsqeMnZnXFiCsPaKQVk8FkKUX5xNgefXn7gVSvG3YTWbtqQCPDK3TTpt2JAbN/QXnG3+7E5FT1i0aCpKs2zdQEh+tF67pDlXJJl523SCP3PZr4haebeo0DQLcjILdY3jDazPMbBYkiw0szo6LN3KDUjGbatc1lSecq7ibKvOemVcc+7d9bXH/wesLPU6MbH91n90Wud7Njo6s2tz24N7GGO2557Uh59PHbHtybGI6ZyhoAsiEgt1jeMNrs8+sFiW4Ijq0oN4jbhtT6ID7XFHFuWnns0wT4rFdDop+npCsPJjWsUa7V6KrNi4enpsszwlHlHU+/oPt3jtcdbY47R/WCfW0LRABAfQTkFssbRlsRZk+l4NiOII54rTj2aUsVkr5YnrWgrF9Pnaj7eRoZXhFbqpC1cj1at53mhlapOqr8lUeemVUnTwcKAGgvAnKL5Q2jrQqzBEd0WjOlHGlr8pO+WN7ynpXTr1OvjjmuzjdU28It7mbH2rrtLC33svQFj6rX8g8AkA0BuQ3yhlHCLOaaZm9aS1uTn6a7Rz0v1SmlCLtTJN3smBS6a9dJ6qOc1J6wUVlVvZZ/AIBsCMgA2q7Z7i5ZavLzfLGsVxIRN615uL16avcnabrpay4emFGDHC5vVFZ1KpVOAUCrEZABtF2z3V3adYPpyPCKWaOxklQuWWHbqhdoh16zsKmgy9UmAChGroBsZhslvUfSUUk/lvQhd58IHhuV9GFJxyX9ibtvzberAOaKPN1ZpNaPkoavN7r5MU0GU2T3mXTtm5cWuq16rffmQtAtomUgAHRCX87nf0vSG9z9jZJ+KGlUkszsfEnXSVop6R2S/trMSjm3BWCOGBleoUp55n8S0o4Er101oIfXX66nNrxbD6+/vMWB6+QkICdcun/nuMZ2jbdwe3NHWEIyPjEpV7XO/MZNu3XRbd/kGALoerkCsrt/092PBb9ul7Qk+HmNpHvc/Yi7PyVpv6RL8mwLwNyxdtWA7rj6Ag30V2Sq1vWmnUmxXerVSaOxuOMnVXtJj27eQ0gG0NWKrEH+Q0mbgp8HVA3MoYPBMgAd0I2Xuru9jKCoKdmb0Y3nK6t6x4m+zgC6XcOAbGbflvTqmIdudvevBevcLOmYpLuz7oCZrZO0TpIGBwezPh1AA822VCtq270a9Iqckj2LPOerm453o8lRmv2i0U3vEcDc1bDEwt2vcPc3xPwThuM/kHSlpOvdp5t3jktaGnmZJcGyuNe/y92H3H1o0aJFud4MgNk6VSoQV4PaS5fW89RJ59Hs+eq24x13/KLOrJS1esM2LV+/Ras3bEu1n932HgHMXblqkM3sHZI+Jukqdz8ceegBSdeZ2WlmtlzSuZK+l2dbAJrTqVKBXq/h7VSddLPnq9uOd3j8zloweya/cp/p5aPHMgfdbnuPAOauvDXIfyXpNEnfMjNJ2u7uf+Tue83sXkmPq1p6cYO7N55jFUDhWlUq0OhSdydreIvSiTrppPPVZ6bl67cklhW063hnKXEIj1/tcw4fPaYXD8+cRTBNXfJc+JsC0BtyBWR3f12dx26XdHue1weQXysm10hTJ9upGt5eF3e+JE1PP51Uk9yO491sfXTtF43l67fErtco6PI3BaBd8vZBBtDlWlEqkOZSd6dqeHtd7fkqmc1aJ66soB3Hu6gSh6RA2yjo8jcFoF2Yaho4BRRdKpDmUne7Zr2bi6LnK+1oazuOd1ElDs1e1eBvCkC7EJABZJb2Une39zruBVnKClp9vIsqccgTdPmbAtAOlFgAyIxL3e3TTce6yH1p75ThAJANI8gAMuNSd/ukOdbtmjyD8w7gVGEn5/bovKGhId+xY0endwMAekZtZwmpOqrbjp7NANDLzGynuw/FPUaJBQD0MCbPAIDiUWIBAD2MyTOK166SFQDdixFkAOhhzfYURrywZCXrNNgA5hYCMgD0sG7qcjEXJJWs3Pbg3g7tEYBOICADQA9rxUyJp7Kk0pQXD08xigycQqhBBoAex+QZxUmaDEWqji5znIFTAyPIAAAE6pWmcOMjcOogIAMAEFi7akD9lXLsY9z4CJw6CMgAAETcetVKbnwETnHUIAMAEMGU2gAIyAAA1ODGR+DUVkiJhZl91MzczM4Ofjcz+4yZ7Tezx8zsTUVsBwAAAGi13AHZzJZK+j1JByKL3ynp3OCfdZI+m3c7AAAAQDsUMYJ8p6SPSfLIsjWSvuRV2yX1m9k5BWwLAAAAaKlcAdnM1kgad/dHax4akPRM5PeDwTIAAACgqzW8Sc/Mvi3p1TEP3Szp46qWVzTNzNapWoahwcHBPC8FAAAA5NYwILv7FXHLzewCScslPWpmkrRE0vfN7BJJ45KWRlZfEiyLe/27JN0lSUNDQx63DgAAANAuTZdYuPsed/8td1/m7stULaN4k7v/TNIDkn4/6GZxqaSX3P3ZYnYZAAAAaJ1W9UH+hqR3Sdov6bCkD7VoOwAAAEChCgvIwShy+LNLuqGo1wYAAADapZCJQgAAAIC5goAMAAAARBCQAQAAgAgCMgAAABBBQAYAAAAiCMgAAABABAEZAAAAiCAgAwAAABEEZAAAACCCgAwAAABEEJABAACACAIyAAAAEEFABgAAACIIyAAAAEAEARkAAACIICADAAAAEQRkAAAAICJ3QDaz/2hmT5rZXjP7s8jyUTPbb2b7zGw473YAAACAdpiX58lmdpmkNZIudPcjZvZbwfLzJV0naaWkxZK+bWavd/fjeXcYAAAAaKW8I8h/LGmDux+RJHd/Lli+RtI97n7E3Z+StF/SJTm3BQAAALRc3oD8ekn/3MweMbP/bWZvDpYPSHomst7BYBkAAADQ1RqWWJjZtyW9Ouahm4PnL5R0qaQ3S7rXzH47yw6Y2TpJ6yRpcHAwy1MBAACAwjUMyO5+RdJjZvbHkja7u0v6npmdkHS2pHFJSyOrLgmWxb3+XZLukqShoSFPv+sAAABA8fKWWIxJukySzOz1kuZL+oWkByRdZ2anmdlySedK+l7ObQEAAAAtl6uLhaQvSPqCmf1A0lFJHwxGk/ea2b2SHpd0TNINdLAAAABAL8gVkN39qKQPJDx2u6Tb87w+AAAA0G7MpAcAAABEEJABAACACAIyAAAAEEFABgAAACIIyAAAAEAEARkAAACIICADAAAAEQRkAAAAIIKADAAAAEQQkAEAAIAIAjIAAAAQQUAGAAAAIuZ1egcAAABwahnbNa6NW/fp0MSkFvdXNDK8QmtXDXR6t6YRkAEAANA2Y7vGNbp5jyanjkuSxicmNbp5jyR1TUimxAIAAABts3HrvulwHJqcOq6NW/d1aI9mIyADAACgbQ5NTGZa3gkEZAAAALTN4v5KpuWdkCsgm9lFZrbdzHab2Q4zuyRYbmb2GTPbb2aPmdmbitldAAAA9LKR4RWqlEszllXKJY0Mr+jQHs2WdwT5zyTd5u4XSfqvwe+S9E5J5wb/rJP02ZzbAQAAwBywdtWA7rj6Ag30V2SSBvoruuPqC7rmBj0pfxcLl/TK4OczJR0Kfl4j6Uvu7pK2m1m/mZ3j7s/m3B4AAAB63NpVA10ViGvlDcg3StpqZn+u6mj0W4PlA5Keiax3MFhGQAYAAEBXaxiQzezbkl4d89DNkt4u6SZ3v9/M3ifp85KuyLIDZrZO1TIMDQ4OZnkqAAAAUDirVkE0+WSzlyT1u7ubmUl6yd1faWb/XdJ33f0rwXr7JL2tUYnF0NCQ79ixo+n9AQAAANIws53uPhT3WN4Si0OS/qWk70q6XNKPguUPSPoPZnaPpLeoGpwbllfs3LnzF2b2dM59QjHOlvSLTu8EmsK5612cu97FuetNnLfeVcS5e03SA3kD8r+X9Gkzmyfp1wpKJSR9Q9K7JO2XdFjSh9K8mLsvyrk/KIiZ7Uj6VoXuxrnrXZy73sW5602ct97V6nOXKyC7+99LujhmuUu6Ic9rAwAAAJ3ATHoAAABABAEZSe7q9A6gaZy73sW5612cu97EeetdLT13ubpYAAAAAHMNI8gAAABABAEZMrOlZvaQmT1uZnvN7CPB8oVm9i0z+1Hw77M6va+YzcxKZrbLzL4e/L7czB4xs/1mtsnM5nd6HzGbmfWb2X1m9qSZPWFmv8NnrjeY2U3Bfyt/YGZfMbPT+dx1JzP7gpk9Z2Y/iCyL/ZxZ1WeCc/iYmb2pc3uOhHO3Mfhv5mNm9j/NrD/y2Ghw7vaZ2XDe7ROQIUnHJH3U3c+XdKmkG8zsfEnrJX3H3c+V9J3gd3Sfj0h6IvL7n0q6091fJ+lFSR/uyF6hkU9L+l/ufp6kC1U9h3zmupyZDUj6E0lD7v4GSSVJ14nPXbf6W0nvqFmW9Dl7p6Rzg3/WSfpsm/YR8f5Ws8/dtyS9wd3fKOmHkkYlKcgs10laGTznr82slGfjBGTI3Z919+8HP/9K1f9RD0haI+mLwWpflLS2IzuIRGa2RNK7JX0u+N1UnbTnvmAVzlsXMrMzJf0LSZ+XJHc/6u4T4jPXK+ZJqgRzACyQ9Kz43HUld/8/kl6oWZz0OVsj6UtetV1Sv5md05YdxSxx587dv+nux4Jft0taEvy8RtI97n7E3Z9SdR6OS/Jsn4CMGcxsmaRVkh6R9KrIDIg/k/SqTu0XEn1K0scknQh+/01JE5H/gBxU9csOustySc9L+h9BecznzOwM8Znreu4+LunPJR1QNRi/JGmn+Nz1kqTP2YCkZyLrcR672x9K+rvg58LPHQEZ08zsFZLul3Sju/9T9LFg8hdannQRM7tS0nPuvrPT+4LM5kl6k6TPuvsqSS+rppyCz1x3CupV16j6JWexpDM0+zIwegSfs95kZjerWh56d6u2QUCGJMnMyqqG47vdfXOw+Ofh5aXg3891av8Qa7Wkq8zsp5LuUfUS76dVvSwYzpK5RNJ4Z3YPdRyUdNDdHwl+v0/VwMxnrvtdIekpd3/e3ackbVb1s8jnrnckfc7GJS2NrMd57EJm9geSrpR0vZ/sVVz4uSMgI6xb/bykJ9z9LyMPPSDpg8HPH5T0tXbvG5K5+6i7L3H3ZarenLDN3a+X9JCk9warcd66kLv/TNIzZrYiWPR2SY+Lz1wvOCDpUjNbEPy3Mzx3fO56R9Ln7AFJvx90s7hU0kuRUgx0ATN7h6plhVe5++HIQw9Ius7MTjOz5areaPm9XNtiohCY2T+T9H8l7dHJWtaPq1qHfK+kQUlPS3qfu9fe7IAuYGZvk/Sf3f1KM/ttVUeUF0raJekD7n6kg7uHGGZ2kao3V86X9BNJH1J10ILPXJczs9skXavqJd5dkv6dqvWOfO66jJl9RdLbJJ0t6eeSbpE0ppjPWfCF569ULZk5LOlD7r6jA7sNJZ67UUmnSfplsNp2d/+jYP2bVa1LPqZqqejf1b5mpu0TkAEAAICTKLEAAAAAIgjIAAAAQAQBGQAAAIggIAMAAAARBGQAAAAggoAMAAAARBCQAQAAgAgCMgAAABDx/wE3D4/MywCDbgAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 864x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"print(lr.intercept_, lr.coef_)\n",
"\n",
"plt.figure(figsize=(12, 3))\n",
"plt.scatter(y, lr.predict(data)-y)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 578
},
"id": "CpByBmHhYMYK",
"outputId": "c6240425-f6c6-453a-8607-ed6d19e3e067"
},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'actual price')"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAIfCAYAAACW6x17AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAABsNUlEQVR4nO3dd3jUVdrG8e9JMoFQJIBgiYIoLq6IwBorrkKoCmpUFOzdfXftBRfsXRRd7O6q64qrAoIYRdSANJW1BUERBCuCQQWFgECASXLeP2YmTibTM5nfzOT+XBcXyZTfPBkCuTnnOecYay0iIiIimSrL6QJEREREGpPCjoiIiGQ0hR0RERHJaAo7IiIiktEUdkRERCSjKeyIiIhIRktq2DHGPGOMWWuM+dzvtnHGmOXGmM+MMa8YY/L97htjjPnaGLPCGDM4mbWKiIhIZkj2yM6zwJCA22YBB1hrDwS+BMYAGGP2B0YC3b3PedwYk528UkVERCQTJDXsWGvfAdYH3DbTWlvl/fQDYA/vxycAk6y126213wFfA4ckrVgRERHJCKnWs3M+8Kb34wJgtd99P3hvExEREYlajtMF+BhjbgCqgBfieO7FwMUALVu2PGi//fZLcHUiIiKSTCtXruTXX38F+MVa26Eh10qJsGOMORcYBvS3vx/WVQ7s6fewPby31WOtfRJ4EqCwsNCWlZU1XrEiIiLSaNxuN2effTYLFy7kjjvu4Kabbvq+odd0fBrLGDMEuA443lq71e+u14CRxphmxpguwL7AR07UKCIiIo1vx44djBw5kkmTJnHfffdx4403JuS6SR3ZMcZMBPoCOxtjfgBuwbP6qhkwyxgD8IG19v+stUuNMS8By/BMb11ira1OZr0iIiKSPKtXr+bdd9/lwQcf5IorrkjYdc3vs0aZQdNYIiIi6WXHjh24XC6MMaxfv5527drV3meMWWitLWzI9R2fxhIREZGma8uWLRx77LHccsstAHWCTqIo7IiIiIgjfvvtN4499ljmzp3Lvvvu22ivkxKrsUQEShaVM650BWsqKtk9P49Rg7tR3FtbS4lIZtq4cSPHHHMMH330ES+++CIjRoxotNdS2BFJASWLyhkzbQmVbk8PfnlFJWOmLQFQ4BGRjFNdXc0xxxxDWVkZL730EieddFKjvp7CjkgKGFe6ojbo+FS6qxlXukJhR0QyTnZ2NpdeeimtW7fmuOOOa/TXU9gRSQFrKipjul1EJB39/PPPfPbZZwwcOJDTTz89aa+rsCOSAnbPz6M8SLDZPT/PgWpERBJvzZo19O/fn59++omVK1fSpk2bpL22VmOJpIBRg7uR58quc1ueK5tRg7s5VJGISOKsXr2ao48+mh9++IFXX301qUEHNLIjkhJ8fTlajSUimWblypUUFRXx66+/MnPmTA4//PCk16CwI5IiinsXKNyISMZ57rnn2LBhA2+//TYHH3ywIzXouAgRERFJOGstxhistaxatYrOnTvHdR0dFyEiIiIpZ9myZRx88MF8/fXXGGPiDjqJomksERERSZjPPvuMAQMGkJOTg9vtdrocQCM7IiIikiCffPIJ/fr1o1mzZsyfP58//vGPTpcEKOyIiIhIAnz22Wf079+f1q1bM3/+/EY92DNWCjsiIiLSYF26dOGYY45h/vz57L333k6XU4d6dkRERCRuH330Efvvvz+tW7fmxRdfdLqcoDSyIyIiInF5++236du3L9dcc43TpYSlsCMiIiIxe/PNNxk2bBhdu3bljjvucLqcsBR2REREJCavvfYaxcXFdO/enblz59KxY0enSwpLYUdERESitm3bNi699FJ69erF7Nmzad++vdMlRaQGZREREYla8+bNefvtt9l1113ZaaednC4nKhrZERERkYgmTJjAqFGjsNbyhz/8IW2CDijsiIiISARPPfUU5513HosXL06ZIyBiobAjIiIiIT322GNcfPHFDBkyhOnTp5Obm+t0STFT2BEREZGgHnroIS699FJOOOEEXnnlFZo3b+50SXFR2BEREZGg9thjD0aOHMmUKVNo1qyZ0+XETWFHRERE6li2bBkAJ598MhMnTsTlcjlcUcMo7IiIiAgA1lpuvPFGDjzwQD7++GOny0kY7bMjIiIiWGu57rrruP/++7nooos46KCDnC4pYTSyIyIi0sRZa7nyyiu5//77ueSSS/jnP/9JVlbmRITM+UpEREQkLiUlJTz88MNcffXVPPLIIxkVdEDTWCIiIk1ecXExr7/+OsceeyzGGKfLSbjMim4iIiISlaqqKq644gqWL1+OMYahQ4dmZNABjeyIiIg0OW63mzPPPJOXXnqJffbZh/3228/pkhqVwo6IiEgTsmPHDkaOHMkrr7zC/fffz+WXX+50SY1OYUdERKSJ2LZtG8OHD2fGjBk8/PDDXHbZZU6XlBQKOyIiIk1ETU0NW7du5V//+hcXX3yx0+UkjcKOiIhIhtuyZQvV1dXstNNOzJo1i+zsbKdLSiqFHRERkQz222+/ceyxx5KVlcXcuXObXNABhR0REZGMVVFRwTHHHMPHH3/Miy++mHGbBUZLYUdERCQDrV+/nkGDBvHZZ58xdepUiouLnS7JMQo7IiIiGejcc89lyZIlvPLKKwwdOtTpchylsCMiIpKB/vGPf7By5UoGDBjgdCmOa5qTdyIiIhlozZo13HXXXVhr6dq1q4KOl0Z2REREMsDq1aspKirip59+YsSIEXTt2tXpklKGRnZERETS3MqVKzn66KNZu3YtM2fOVNAJoJEdERGRNPb1119TVFTE5s2bmT17NoWFhU6XlHIUdkRERNLY119/TXV1NXPmzKFXr15Ol5OSFHZERETS0ObNm2nVqhVDhgzh66+/Ji8vz+mSUpZ6dkRERNLMp59+SteuXZk6dSqAgk4ECjsiIiJpZOHChfTr1w+Xy0XPnj2dLictKOyIiIikiQ8++ID+/fvTpk0b3nnnHfbdd1+nS0oLCjsiIiJpYNWqVQwaNIidd96Z+fPn06VLF6dLShsKOyIiImlgzz335Pbbb2f+/Pl06tTJ6XLSilZjiYiIpLBZs2bRsWNHevbsyZVXXul0OWlJIzsiIiIpasaMGQwbNoxrr73W6VLSmsKOiIhICiopKeHEE0+kR48eTJ482ely0prCjoiISIqZMmUKp5xyCgcddBBvv/027dq1c7qktKawIyIikkKstTz77LMcdthhzJw5k/z8fKdLSntqUBYREUkRVVVV5OTkMGXKFGpqamjVqpXTJWUEjeyIiIikgCeffJI+ffqwceNGWrRooaCTQAo7IiIiDnv00Uf5y1/+QocOHWjWrJnT5WQchR0REREH/eMf/+Cyyy6juLiYadOm0bx5c6dLyjgKOyIiIg554oknuOaaazj11FN56aWXyM3NdbqkjKSwIyIi4pBjjjmGq6++mhdeeAGXy+V0ORlLYUdERCSJrLVMmzaNmpoa9tprLx544AFycrQ4ujEp7IiIiCSJtZZrr72Wk08+WbsiJ5GipIiISBLU1NRwxRVX8Oijj3LZZZcxcuRIp0tqMjSyIyIi0shqamr461//yqOPPso111zDQw89hDHG6bKaDIUdERGRRrZ06VImTJjA9ddfz7hx4xR0kkzTWCIiIo3EWosxhh49evD555+zzz77KOg4IKkjO8aYZ4wxa40xn/vd1s4YM8sY85X397be240x5mFjzNfGmM+MMX9KZq0iIiIN4Xa7GTlyJP/5z38A6Nq1q4KOQ5I9jfUsMCTgttHAbGvtvsBs7+cAxwD7en9dDDyRpBpFREQaZPv27Zxyyim89NJLbNiwwelymrykhh1r7TvA+oCbTwAmeD+eABT73f6c9fgAyDfG7JaUQkVEROK0bds2TjrpJF599VUeeeQRrr76aqdLavJSoUF5F2vtj96PfwJ28X5cAKz2e9wP3tvqMcZcbIwpM8aUrVu3rvEqFRERCaOqqorjjz+eN998k3/9619ceumlTpckpEbYqWWttYCN43lPWmsLrbWFHTp0aITKREREIsvJyaFv374888wzXHzxxU6XI16psBrrZ2PMbtbaH73TVGu9t5cDe/o9bg/vbSIiIill06ZNfP/99/To0YPrr7/e6XIkQCqM7LwGnOP9+BzgVb/bz/auyjoM2Og33SUiIpISKioqGDRoEAMGDGDz5s1OlyNBJHVkxxgzEegL7GyM+QG4BRgLvGSMuQD4HjjV+/A3gGOBr4GtwHnJrFVERCSS9evXM2jQID777DOmTJlCq1atnC5Jgkhq2LHWnhbirv5BHmuBSxq3IhERkfisW7eOAQMGsGLFCkpKSjj22GOdLklCSIWeHRERkbRz99138+WXXzJ9+nQGDhzodDkShvEMoGSOwsJCW1ZW5nQZIiKS4bZv387nn3/OQQcd5HQpGc0Ys9BaW9iQa6RCg7KIiEhaWLVqFSeddBK//vorzZo1U9BJE5rGEhERicJ3331Hv379qKio4Pvvv6d9+/ZOlyRR0siOiIhIBF999RVHHXUUv/32G7Nnz+ZPf9LZ1OlEIzsiIiJhrFixgn79+uF2u5kzZw49e/Z0uiSJkUZ2REREwmjZsiV777038+bNU9BJUxrZERERCeKbb75hr732Yo899uDdd9/FGON0SRInjeyIiIgE+PjjjyksLGTMmDEACjppTmFHRETEz/vvv8+AAQPIz8/nb3/7m9PlSAIo7IiIiHi9++67DBo0iI4dO/LOO++w1157OV2SJIDCjoiICLBlyxaGDx/OHnvswfz589lzzz2dLkkSRA3KIiIieFZdvfzyy+y7777ssssuTpcjCaSRHRERadJef/11/vWvfwFw5JFHKuhkIIUdERFpsl555RVOOukknnnmGaqqqpwuRxqJwo6IiDRJkydP5pRTTqGwsJCZM2eSk6POjkylsCMiIk3O888/z+mnn84RRxxBaWkpbdq0cbokaUQKOyIi0uSsXbuWvn378uabb9K6dWuny5FGZqy1TteQUIWFhbasrMzpMkREJAWtW7eODh06AFBVVaWpqzRgjFlorS1syDU0siMiIk3CI488QteuXVm6dCmAgk4TorAjIiIZ7/777+fyyy+nf//+7Lvvvk6XI0mmsCMiIhntrrvuYtSoUYwYMYLJkyeTm5vrdEmSZAo7IiKSsaZMmcKNN97IWWedxfPPP4/L5XK6JHGAwo6IiGSs4uJiHn/8cf7zn/+oR6cJU9gREZGMYq3lvvvu4+eff8blcvHXv/6V7Oxsp8sSBynsiIhIxqipqeHSSy/l73//O88995zT5UiK0JieiIhkhJqaGv7yl7/w9NNPM2rUKK699lqnS5IUoZEdERFJe9XV1Zx33nk8/fTT3Hjjjdx7770YY5wuS1KERnZERCTtVVRU8NFHH3H77bdz0003OV2OpBiFHRERSVs7duzAGEP79u0pKyujZcuWTpckKUjTWCIikpa2b9/OKaecwllnnYW1VkFHQlLYERGRtFNZWcmJJ57Ia6+9xlFHHaX+HAlL01giIpJWtm7dygknnMDs2bN56qmnuPDCC50uSVKcwo6IiKSVkSNHMmfOHJ599lnOPvtsp8uRNKCwIyIiaeW6667j9NNPZ+TIkU6XImlCYUdERFLehg0beOONNzjjjDM48sgjnS5H0owalEVEJKX9+uuv9O/fn/PPP5/vv//e6XIkDWlkR0REUtbatWsZMGAAX375Ja+++iqdO3d2uiRJQwo7IiKSkn788Uf69+/PypUref311xkwYIDTJUmaUtgREZGU9Pbbb7N69WrefPNNjj76aKfLkTSmsCMiIimlurqa7OxszjrrLAYOHMiuu+7qdEmS5tSgLCIiKePbb7/lwAMP5L333gNQ0JGE0MiOiIikhC+//JKioiIqKytp0aKF0+VIBlHYERERx33xxRcUFRVRXV3N3LlzOfDAA50uSTKIwo6IiDhq5cqVHH300WRnZzNv3jz2339/p0uSDKOeHRERcdSee+7Jaaedxvz58xV0pFFoZEdERByxcOFCdt11VwoKCnjooYecLkcymEZ2REQk6f73v/9RVFTERRdd5HQp0gQo7IiISFK98847DBo0iF122YUnn3zS6XKkCVDYERGRpJk9ezZDhgyhU6dOzJ8/nz322MPpkqQJUNgREZGksNZy/fXX07VrV+bNm8duu+3mdEnSRKhBWUREksIYw/Tp08nKymLnnXd2uhxpQjSyIyIijWratGmccsopuN1uOnbsqKAjSaewIyIijWbSpEmceuqplJeXU1lZ6XQ50kQp7IiISKN47rnnOOOMM+jTpw+lpaXstNNOTpckTZTCjoiIJNyECRM499xz6devH2+88QatW7d2uiRpwhR2REQk4fbff39OPfVUpk+fTsuWLZ0uR5o4hR0REUmYjz/+GICDDz6YSZMmkZeX53BFIgo7IiKSIPfeey+HHHIIJSUlTpciUofCjoiINNgdd9zB6NGjGTlyJMOGDXO6HJE6FHZERCRu1lpuvPFGbr75Zs466yyef/55cnK0X62kFoUdERGJW1lZGXfddRcXXHAB//nPf8jOzna6JJF6FL9FRCRuBx98MPPnz+fII48kK0v/f5bUpO9MERGJSU1NDVdddRWzZ88G4KijjlLQkZSm704REYladXU1F198MQ8++CDz5893uhyRqGgaS0REolJdXc15553Hf//7X2666SZuu+02p0sSiYrCjoiIRFRVVcVZZ53FpEmTuOOOO7jxxhudLkkkago7IiISUVZWFs2bN+fee+/luuuuc7ockZgo7IiISEjbt2/nl19+oaCggGeeeQZjjNMlicRMDcoiIhJUZWUlJ5xwAkcffTSVlZUKOpK2NLIjIiL1bNmyheOPP565c+fy1FNP6UBPSWsKOyIiUsdvv/3GsGHDeO+995gwYQJnnXWW0yWJNEjKTGMZY64yxiw1xnxujJlojGlujOlijPnQGPO1MWayMSbX6TpFRDLdqFGjWLBgAS+++KKCjmSElAg7xpgC4HKg0Fp7AJANjATuBcZba7sCG4ALnKtSRKRpuPvuu5kxYwYjRoxwuhSRhEiJsOOVA+QZY3KAFsCPQBEw1Xv/BKDYmdJERDLbL7/8wtVXX8327dtp164dgwcPdrokkYRJibBjrS0H7gdW4Qk5G4GFQIW1tsr7sB+AgmDPN8ZcbIwpM8aU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",
"text/plain": [
"<Figure size 648x648 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(9, 9))\n",
"plt.scatter(lr.predict(data), y)\n",
"plt.plot([-10, 120], [-10, 120], c='k', ls='--')\n",
"plt.xlim(-1, 120)\n",
"plt.ylim(-1, 120)\n",
"\n",
"\n",
"plt.xlabel('prediction', fontsize=15)\n",
"plt.ylabel('actual price', fontsize=15)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "KJFX7Iz8YM0i"
},
"source": [
"# 5."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create matrix of features."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"# normalizing\n",
"data_norm = (data-data.mean())/data.std()\n",
"# adding vector of values 1 to the first column\n",
"X0 = np.ones(len(data_norm))\n",
"data_norm.insert(loc=0, column='X0', value=X0)\n",
"X = data_norm.values"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Define functions for computing the loss and perfoming the gradient descent."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"def comp_cost(X, y, theta):\n",
"\n",
" m = len(y)\n",
" J = 1/(2*m)*np.dot((np.dot(X,theta)-y),(np.dot(X,theta)-y))\n",
" \n",
" return J\n",
"\n",
"# Vectorized implementation\n",
"def comp_cost_vectorized(X, y, theta):\n",
"\n",
" m = len(y)\n",
" J = 1/(2*m)*(X @ theta-y).T @ (X @ theta-y)\n",
" \n",
" return J"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"def grad_descent(X, y, theta, alpha, num_iters):\n",
" \n",
" m = len(y)\n",
" J_history = np.zeros(num_iters)\n",
" theta_temp = np.zeros(X.shape[1])\n",
" \n",
" for iter in range(num_iters):\n",
" \n",
" theta_temp[0] = theta[0] - (alpha/m)*np.sum(np.dot(X, theta)-y)\n",
" for idx_theta_temp in range(len(theta))[1:]:\n",
" theta_temp[idx_theta_temp] = theta_temp[idx_theta_temp] - (alpha/m)*np.sum(np.dot((np.dot(X, theta)-y), X[:,idx_theta_temp]))\n",
" \n",
" for idx_theta in range(len(theta)):\n",
" theta[idx_theta] = theta_temp[idx_theta]\n",
" \n",
" J_history[iter] = comp_cost(X, y, theta)\n",
" \n",
"\n",
" return J_history, theta\n",
"\n",
"# Vectorized implementation\n",
"def grad_descent_vectorized(X, y, theta, alpha, num_iters):\n",
" \n",
" m = len(y)\n",
" J_history = np.zeros(num_iters)\n",
" theta_temp = np.zeros(X.shape[1])\n",
" \n",
" for iter in range(num_iters):\n",
" theta -= alpha/m*X.T @ (X@theta - y)\n",
" J_history[iter] = comp_cost_vectorized(X, y, theta)\n",
" \n",
"\n",
" return J_history, theta"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 2.01 s, sys: 86.8 ms, total: 2.09 s\n",
"Wall time: 2.01 s\n"
]
}
],
"source": [
"%%time\n",
"# perform gradient descent to calculate theta\n",
"\n",
"theta = np.zeros(X.shape[1])\n",
"num_iters = 3000\n",
"alpha = 0.003\n",
"\n",
"J_history, theta = grad_descent(X, y, theta, alpha, num_iters)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1.22 s, sys: 60.8 ms, total: 1.28 s\n",
"Wall time: 1.21 s\n"
]
}
],
"source": [
"%%time\n",
"# perform gradient descent - vectorized - to calculate theta \n",
"\n",
"theta = np.zeros(X.shape[1])\n",
"num_iters = 3000\n",
"alpha = 0.003\n",
"\n",
"J_history_vec, theta_vec = grad_descent_vectorized(X, y, theta, alpha, num_iters)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.isclose(J_history, J_history_vec).any()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Loss')"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(range(num_iters), J_history_vec)\n",
"plt.xlabel('number of iterations', fontsize=12)\n",
"plt.ylabel('Loss', fontsize=12)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Obtained parameters via gradient descent: [37.97556908 1.62369662 -2.9042528 -6.91148237 3.75148186]\n",
"Obtained parameters via gradient descent - vectorized: [37.97556908 1.62369662 -2.9042528 -6.91148237 3.75148186]\n",
"Obtained parameters via sklearn: -11588.747800126168 [ 5.77804282e+00 -2.54477973e-01 -5.51299698e-03 1.25786410e+00]\n"
]
}
],
"source": [
"print('Obtained parameters via gradient descent: ', theta)\n",
"print('Obtained parameters via gradient descent - vectorized: ', theta_vec)\n",
"print('Obtained parameters via sklearn: ', lr.intercept_, lr.coef_)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Difference in the parmeters obtained via sklearn and gradient descent is because data passed to sklearn was not normalized\n",
"while data used for gradient descent was. Lets check it."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Obtained parameters via sklearn with normalized data: 37.98019323671437 [ 1.62921879 -2.89913637 -6.95800639 3.70511645]\n"
]
}
],
"source": [
"lr.fit((data-data.mean())/data.std(), y)\n",
"print('Obtained parameters via sklearn with normalized data: ', lr.intercept_, lr.coef_)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'actual price')"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAIfCAYAAACW6x17AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAB1IklEQVR4nO3deXxU1fnH8c+TZICwSADBJQriUqiISo1bsQpBFgUVFQW3qq1LW/cFCy51qVYUW7RurfprxVoFQcSFakA2K3ULgrgUrAuCQQWFgECALOf3x8zEyWTWZJI7M/m+X6+8krlz751n7kwyT855zjnmnENEREQkW+V4HYCIiIhIU1KyIyIiIllNyY6IiIhkNSU7IiIiktWU7IiIiEhWU7IjIiIiWa1Zkx0z+5uZrTWzD0K2TTSz5Wa2zMyeM7OCkPvGm9knZrbCzIY2Z6wiIiKSHZq7ZedxYFjYtjnAAc65A4GPgfEAZrY/MAboEzjmITPLbb5QRUREJBs0a7LjnHsNWB+2bbZzripw801gj8DPJwFTnHPbnXOfA58AhzVbsCIiIpIV0q1m5xfAy4GfC4HVIfd9GdgmIiIikrA8rwMIMrMbgCrgnw049iLgIoB27dod0rt37xRHJyIiIs1p5cqVfPfddwDfOue6NuZcaZHsmNl5wAhgkPthsa4yYM+Q3fYIbKvHOfcI8AhAUVGRKy0tbbpgRUREpMlUVlby85//nMWLF/P73/+em2666YvGntPzbiwzGwZcB5zonNsactcLwBgza21mPYH9gLe9iFFERESa3o4dOxgzZgxTpkzh7rvv5sYbb0zJeZu1ZcfMngYGADub2ZfAzfhHX7UG5pgZwJvOuV855z40s2eAj/B3b13inKtuznhFRESk+axevZp///vf3HvvvVxxxRUpO6/90GuUHdSNJSIikll27NiBz+fDzFi/fj2dO3euvc/MFjvnihpzfs+7sURERKTl2rJlC8cffzw333wzQJ1EJ1WU7IiIiIgnvv/+e44//njmz5/Pfvvt12SPkxajsURauplLyphYsoI15RXsXpDP2KG9GNlP00qJSPbauHEjxx13HG+//TZPPfUUo0ePbrLHUrIj4rGZS8oYP+N9Kir99fdl5RWMn/E+gBIeEclK1dXVHHfccZSWlvLMM89wyimnNOnjKdkR8djEkhW1iU5QRWU1E0tWKNkRkayUm5vLpZdeSocOHTjhhBOa/PGU7Ih4bE15RVLbRUQy1TfffMOyZcsYPHgwZ555ZrM9rpIdEY/tXpBPWYTEZveCfA+iERFpGmvWrGHQoEF8/fXXrFy5ko4dOzbbY2s0lojHxg7tRb4vt862fF8uY4f28igiEZHUWr16Nccccwxffvklzz//fLMmOqCWHRHPBetyNBpLRLLRypUrKS4u5rvvvmP27NkceeSRzR6Dkh2RNDCyX6GSGxHJSk888QQbNmzg1Vdf5dBDD/UkBi0XISIiIinnnMPMcM6xatUqevTo0aDzaLkIERERSTsfffQRhx56KJ988glm1uBEJ1XUjSUiIiIps2zZMo499ljy8vKorKz0OhxALTsiIiKSIu+++y4DBw6kdevWLFy4kB//+MdehwQo2REREZEUWLZsGYMGDaJDhw4sXLiwSRf2TJaSHREREWm0nj17ctxxx7Fw4UL23ntvr8OpQzU7IiIi0mBvv/02+++/Px06dOCpp57yOpyI1LIjIiIiDfLqq68yYMAArrnmGq9DiUnJjoiIiCTt5ZdfZsSIEey77778/ve/9zqcmJTsiIiISFJeeOEFRo4cSZ8+fZg/fz7dunXzOqSYlOyIiIhIwrZt28all17KwQcfzNy5c+nSpYvXIcWlAmURERFJWJs2bXj11VfZdddd2WmnnbwOJyFq2REREZG4Jk+ezNixY3HO8aMf/ShjEh1QsiMiIiJxPProo5x//vksXbo0bZaASIaSHREREYnqwQcf5KKLLmLYsGG8+OKLtGrVyuuQkqZkR0RERCK67777uPTSSznppJN47rnnaNOmjdchNYiSHREREYlojz32YMyYMUybNo3WrVt7HU6DKdkRERGROj766CMATj31VJ5++ml8Pp/HETWOkh0REREBwDnHjTfeyIEHHsg777zjdTgpo3l2REREBOcc1113Hffccw8XXnghhxxyiNchpYxadkRERFo45xxXXnkl99xzD5dccgl/+ctfyMnJnhQhe56JiIiINMjMmTP585//zNVXX83999+fVYkOqBtLRESkxRs5ciQvvfQSxx9/PGbmdTgpl12pm4iIiCSkqqqKK664guXLl2NmDB8+PCsTHVDLjoiISItTWVnJ2WefzTPPPMM+++xD7969vQ6pSSnZERERaUF27NjBmDFjeO6557jnnnu4/PLLvQ6pySnZERERaSG2bdvGqFGjmDVrFn/+85+57LLLvA6pWSjZERERaSFqamrYunUrf/3rX7nooou8DqfZKNkRERHJclu2bKG6upqddtqJOXPmkJub63VIzUrJjoiISBb7/vvvOf7448nJyWH+/PktLtEBJTsiIiJZq7y8nOOOO4533nmHp556KusmC0yUkh0REZEstH79eoYMGcKyZcuYPn06I0eO9DokzyjZERERyULnnXce77//Ps899xzDhw/3OhxPKdkRERHJQn/6059YuXIlxx57rNeheK5ldt6JiIhkoTVr1nDHHXfgnGPfffdVohOglh0REZEssHr1aoqLi/n6668ZPXo0++67r9chpQ217IiIiGS4lStXcswxx7B27Vpmz56tRCeMWnZEREQy2CeffEJxcTGbN29m7ty5FBUVeR1S2lGyIyIiksE++eQTqqurmTdvHgcffLDX4aQlJTsiIiIZaPPmzbRv355hw4bxySefkJ+f73VIaUs1OyIiIhnmvffeY99992X69OkASnTiULIjIiKSQRYvXszAgQPx+XwcdNBBXoeTEZTsiIiIZIg333yTQYMG0bFjR1577TX2228/r0PKCEp2REREMsCqVasYMmQIO++8MwsXLqRnz55eh5QxlOyIiIhkgD333JPbbruNhQsX0r17d6/DySgajSUiIpLG5syZQ7du3TjooIO48sorvQ4nI6llR0REJE3NmjWLESNGcO2113odSkZTsiMiIpKGZs6cycknn0zfvn2ZOnWq1+FkNCU7IiIiaWbatGmcdtppHHLIIbz66qt07tzZ65AympIdERGRNOKc4/HHH+eII45g9uzZFBQUeB1SxlOBsoiISJqoqqoiLy+PadOmUVNTQ/v27b0OKSuoZUdERCQNPPLII/Tv35+NGzfStm1bJToppGRHRETEYw888AAXX3wxXbt2pXXr1l6Hk3WU7IiIiHjoT3/6E5dddhkjR45kxowZtGnTxuuQso6SHREREY88/PDDXHPNNZx++uk888wztGrVyuuQspKSHREREY8cd9xxXH311fzzn//E5/N5HU7WUrIjIiLSjJxzzJgxg5qaGvbaay/++Mc/kpenwdFNScmOiIhIM3HOce2113LqqadqVuRmpFRSRESkGdTU1HDFFVfwwAMPcNlllzFmzBivQ2ox1LIjIiLSxGpqavj1r3/NAw88wDXXXMN9992HmXkdVouhZEdERKSJffjhh0yePJnrr7+eiRMnKtFpZurGEhERaSLOOcyMvn378sEHH7DPPvso0fFAs7bsmNnfzGytmX0Qsq2zmc0xs/8FvncKbDcz+7OZfWJmy8zsJ80Zq4iISGNUVlYyZswY/v73vwOw7777KtHxSHN3Yz0ODAvbNg6Y65zbD5gbuA1wHLBf4Osi4OFmilFERKRRtm/fzmmnncYzzzzDhg0bvA6nxWvWZMc59xqwPmzzScDkwM+TgZEh259wfm8CBWa2W7MEKiIi0kDbtm3jlFNO4fnnn+f+++/n6quv9jqkFi8dCpR3cc59Ffj5a2CXwM+FwOqQ/b4MbKvHzC4ys1IzK123bl3TRSoiIhJDVVUVJ554Ii+//DJ//etfufTSS70OSUiPZKeWc84BrgHHPeKcK3LOFXXt2rUJIhMREYkvLy+PAQMG8Le//Y2LLrrI63AkIB1GY31jZrs5574KdFOtDWwvA/YM2W+PwDYREZG0smnTJr744gv69u3L9ddf73U4EiYdWnZeAM4N/Hwu8HzI9p8HRmUdAWwM6e4SERFJC+Xl5QwZMoRjjz2WzZs3ex2ORNCsLTtm9jQwANjZzL4EbgYmAM+Y2S+BL4DTA7v/Czge+ATYCpzfnLGKiIjEs379eoYMGcKyZcuYNm0a7du39zokiaBZkx3n3BlR7hoUYV8HXNK0EYmIiDTMunXrOPbYY1mxYgUzZ87k+OOP9zokiSIdanZEREQyzh/+8Ac+/vhjXnzxRQYPHux1OBKD+RtQskdRUZErLS31OgwREcly27dv54MPPuCQQw7xOpSsZmaLnXNFjTlHOhQoi4iIZIRVq1Zxyimn8N1339G6dWslOhlC3VgiIiIJ+Pzzzxk4cCDl5eV88cUXdOnSxeuQJEFq2REREYnjf//7H0cffTTff/89c+fO5Sc/0drUmUQtOyIiIjGsWLGCgQMHUllZybx58zjooIO8DkmSpJYdERGRGNq1a8fee+/NggULlOhkKLXsiIiIRPDpp5+y1157sccee/Dvf/8bM/M6JGkgteyIiIiEeeeddygqKmL8+PEASnQynJIdERGREG+88QbHHnssBQUF/OY3v/E6HEkBJTsiIiIB//73vxkyZAjdunXjtddeY6+99vI6JEkBJTsiIiLAli1bGDVqFHvssQcLFy5kzz339DokSREVKIuIiOAfdfXss8+y3377scsuu3gdjqSQWnZERKRFe+mll/jrX/8KwFFHHaVEJwsp2RERkRbrueee45RTTuFvf/sbVVVVXocjTUTJjoiItEhTp07ltNNOo6ioiNmzZ5OXp8qObKVkR0REWpwnn3ySM888k5/+9KeUlJTQsWNHr0OSJqRkR0REWpy1a9cyYMAAXn75ZTp06OB1ONLEzDnndQwpVVRU5EpLS70OQ0RE0tC6devo2rUrAFVVVeq6ygBmttg5V9SYc6hlR0REWoT777+ffffdlw8//BBAiU4LomRHRESy3j333MPll1/OoEGD2G+//bwOR5qZkh0REclqd9xxB2PHjmX06NFMnTqVVq1aeR2SNDMlOyIikrWmTZvGjTfeyDnnnMOTTz6Jz+fzOiTxgJIdERHJWiNHjuShhx7i73//u2p0WjAlOyIiklWcc9x999188803+Hw+fv3rX5Obm+t1WOIhJTsiIpI1ampquPTSS/ntb3/LE0884XU4kibUpiciIlmhpqaGiy++mMcee4yxY8dy7bXXeh2SpAm17IiISMarrq7m/PPP57HHHuPGG2/krrvuwsy8DkvShFp2REQk45WXl/P2229z2223cdNNN3kdjqQZJTsiIpKxduzYgZnRpUsXSktLadeundchSRpSN5aIiGSk7du3c9ppp3HOOefgnFOiI1Ep2RERkYxTUVHBySefzAsvvMDRRx+t+hyJSd1YIiKSUbZu3cpJJ53E3LlzefTRR7ngggu8DknSnJIdERHJKGPGjGHevHk8/vjj/PznP/c6HMkASnZERCSjXHfddZx55pmMGTPG61AkQyjZERGRtLdhwwb+9a9/cdZZZ3HUUUd5HY5kGBUoi4hIWvvuu+8YNGgQv/jFL/jiiy+8DkcykFp2REQkba1du5Zjjz2Wjz/+mOeff54ePXp4HZJkICU7IiKSlr766isGDRrEypUreemllzj22GO9DkkylJIdERFJS6+++iqrV6/m5Zdf5phjjvE6HMlgSnZERCStVFdXk5ubyznnnMPgwYPZddddvQ5JMpwKlEVEJG189tlnHHjggbz++usASnQkJdSyIyIiaeHjjz+muLiYiooK2rZt63U4kkWU7IiIiOf++9//UlxcTHV1NfPnz+fAAw/0OiTJIkp2RETEUytXruSYY44hNzeXBQsWsP/++3sdkmQZ1eyIiIin9txzT8444wwWLlyoREeahFp2RETEE4sXL2bXXXelsLCQ++67z+twJIupZUdERJrdf/7zH4qLi7nwwgu9DkVaACU7IiLSrF577TWGDBnCLrvswiOPPOJ1ONICKNkREZFmM3fuXIYNG0b37t1ZuHAhe+yxh9chSQugZEdERJqFc47rr7+efffdlwULFrDbbrt5HZK0ECpQFhGRZmFmvPjii+Tk5LDzzjt7HY60IGrZERGRJjVjxgxOO+00Kisr6datmxIdaXZKdkREpMlMmTKF008/nbKyMioqKrwOR1ooJTsiItIknnjiCc466yz69+9PSUkJO+20k9chSQulZEdERFJu8uTJnHfeeQwcOJB//etfdOjQweuQpAVTsiMiIim3//77c/rpp/Piiy/Srl07r8ORFk7JjoiIpMw777wDwKGHHsqUKVPIz8/3OCIRJTsiIpIid911F4cddhgzZ870OhSROpTsiIhIo/3+979n3LhxjBkzhhEjRngdjkgdSnZERKTBnHPceOON/O53v+Occ87hySefJC9P89VKelGyIyIiDVZaWsodd9zBL3/5S/7+97+Tm5vrdUgi9Sj9FhGRBjv00ENZuHAhRx11FDk5+v9Z0pPemSIikpSamhquuuoq5s6dC8DRRx+tREfSmt6dIiKSsOrqai666CLuvfdeFi5c6HU4IglRN5aIiCSkurqa888/n3/84x/cdNNN3HrrrV6HJJIQJTsiIhJXVVUV55xzDlOmTOH3v/89N954o9chiSRMyY6IiMSVk5NDmzZtuOuuu7juuuu8DkckKUp2REQkqu3bt/Ptt99SWFjI3/72N8zM65BEkqYCZRERiaiiooKTTjqJY445hoqKCiU6krHUsiMiIvVs2bKFE088kfnz5/Poo49qQU/JaEp2RESkju+//54RI0bw+uuvM3nyZM455xyvQxJplLTpxjKzq8zsQzP7wMyeNrM2ZtbTzN4ys0/MbKqZtfI6ThGRbDd27FgWLVrEU089pURHskJaJDtmVghcDhQ55w4AcoExwF3AJOfcvsAG4JfeRSki0jL84Q9/YNasWYwePdrrUERSIi2SnYA8IN/M8oC2wFdAMTA9cP9kYKQ3oYmIZLdvv/2Wq6++mu3bt9O5c2eGDh3qdUgiKZMWyY5zrgy4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l/Lwww9z5ZVX8qc//UktOtKkZi4pa9TkliIi2UbJThN77LHHePjhh7nuuuuYMGGCEh1pUjOXlDF+xvtUVFYDUFZewfgZ7wMo4RGRFkvJThM777zzaN++PWeccYYSHWlyE0tW1CY6QRWV1UwsWaFkR0RaLNXsNIHKykrGjx/P2rVradWqFWeeeaYSHWkWa8orktouItISKNlJsR07djBmzBgmTJjArFmzvA5HWpjdC/KT2i4i0hIo2Umh7du3M2rUKGbMmMGkSZM4//zzvQ5JWpixQ3uR78utsy3fl8vYob08ikhExHuq2UmRiooKTj75ZEpKSnjooYf49a9/7XVI0gIF63I0GktE5AdKdlLk+++/Z9WqVTz22GP88pe/9DocacFG9itUciMiEkLJTiNt3ryZNm3a0K1bN5YsWaIFPUVERNKManYaYePGjQwZMoRf/OIXAEp0RERE0pCSnQbasGEDgwcPprS0lJEjR3odjoiIiEShbqwG+Pbbbxk8eDAfffQRM2bMYMSIEV6HJCIiIlEo2UmSc46TTjqJ5cuX88ILLzB06FCvQxIREZEYlOwkycyYMGECO3bsYNCgQV6HIyIiInGoZidBX375JY8//jgAP/vZz5ToiIiIZAi17CRg5cqVFBcXs379eo4//ni6devmdUgiIiKSILXsxPHpp59yzDHHsGHDBubMmaNER0REJMOoZSeGFStWUFxczPbt25k3bx79+vXzOiQRERFJkpKdGF5//XWqqqqYP38+ffv29TocERERaQBzznkdQ0oVFRW50tLSRp1jx44dtGrVCoDy8nIKCgpSEJmIiIgky8wWO+eKGnMO1eyEeffdd9lvv/144403AJToiIiIZDglOyHeeustiouLMTN23XVXr8MRERGRFFCyE7Bo0SIGDx5Mly5dWLhwIT179vQ6JBEREUkBJTvABx98wNChQ9ltt9147bXX6NGjh9chiYiISIoo2QF69+7NJZdcwoIFCygsLPQ6HBEREUmhFp3svPrqq6xZs4a8vDzuuusudtttN69DEhERkRRrscnO888/z/HHH88111zjdSgiIiLShFpksjN9+nRGjRpFv379ePjhh70OR0RERJpQi0t2nnrqKcaMGcNhhx3GnDlzNI+OiIhIlmtRyU5VVRV33303Rx11FCUlJey0005ehyQiIiJNLCPWxjKzYcB9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",
"text/plain": [
"<Figure size 648x648 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(9, 9))\n",
"plt.scatter(X@theta_vec, y)\n",
"plt.plot([-10, 120], [-10, 120], c='k', ls='--')\n",
"plt.xlim(-1, 120)\n",
"plt.ylim(-1, 120)\n",
"plt.xlabel('prediction calculated via gradient descent', fontsize=15)\n",
"plt.ylabel('actual price', fontsize=15)"
]
}
],
"metadata": {
"colab": {
"authorship_tag": "ABX9TyO+SGQqiJxE7tqyElTiYeKt",
"collapsed_sections": [],
"include_colab_link": true,
"name": "HW_4.ipynb",
"provenance": []
},
"kernelspec": {
"display_name": "Python 3.8.10 ('pipvenv': venv)",
"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.8.10"
},
"vscode": {
"interpreter": {
"hash": "af0cb040474e96ce2334942a5cd27cbda51ba78f88e1398e532bc789c6325bec"
}
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment