Skip to content

Instantly share code, notes, and snippets.

@arghyadeep99
Created August 15, 2020 10:06
Show Gist options
  • Save arghyadeep99/d5deb306288a696b6c806eab7892d55c to your computer and use it in GitHub Desktop.
Save arghyadeep99/d5deb306288a696b6c806eab7892d55c to your computer and use it in GitHub Desktop.
Linear_Regression.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Linear_Regression.ipynb",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/arghyadeep99/d5deb306288a696b6c806eab7892d55c/linear_regression.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ekBSiyI1uydb",
"colab_type": "text"
},
"source": [
"# Linear Regression\n",
"\n",
"In statistics, linear regression is a linear approach to modeling the relationship between a scalar response (or dependent variable) and one or more explanatory variables (or independent variables). The case of one explanatory variable is called simple linear regression."
]
},
{
"cell_type": "code",
"metadata": {
"id": "NiDzHCJmxsVr",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 70
},
"outputId": "2bb52f9a-5dae-4e53-b081-6d40438c18fc"
},
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns; sns.set()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.\n",
" import pandas.util.testing as tm\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "E6fKuvTe-x36",
"colab_type": "text"
},
"source": [
"## Real Estate - Housing prices Example\n",
"\n"
]
},
{
"cell_type": "code",
"metadata": {
"id": "iB148eNczP2W",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 345
},
"outputId": "b5e77abb-4fad-4d91-c7ee-3b4ae19ed364"
},
"source": [
"plt.figure(figsize = (8,5))\n",
"\n",
"x = np.array([1, 3, 4, 6, 8, 10])\n",
"y = np.array([2, 2.9, 5, 7.5, 8.6, 11])\n",
"plt.axis([0, 12, 0, 14])\n",
"plt.scatter(x, y, s = 50)\n",
"plt.xlabel('Area(sqft) in thousands', fontsize=15)\n",
"plt.ylabel('Price($) in million', fontsize=15)\n",
"\n",
"L = np.array(np.arange(12))\n",
"plt.plot(7,0,'rx', markersize=12)[0].set_clip_on(False)\n",
"#plt.plot(L, L + 1, 'r')\n",
"#plt.plot(L, 0.7*L + 0.5, 'y')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FmEK4618SX7G",
"colab_type": "text"
},
"source": [
"Theory --> Modelling --> Algorithm --> Application"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FcTjba8SUSi6",
"colab_type": "text"
},
"source": [
"## Mathematical Modelling\n",
"\n",
"- #### $ n $ => No. of training examples\n",
"#### Where a single training example is of the form $ (x_i, y_i) $\n",
"- #### $ x $ => Input feature(s)\n",
"- #### $ y $ => Output/Target variable\n",
"<br/>\n",
"\n",
"#### $ (x_i,y_i) $ ---> Algorithm ---> function ($y'$)\n",
"\n",
"In the above case it will give us a linear function of the form $$ y' = mx + c $$\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "11eZaDt4UvvA",
"colab_type": "text"
},
"source": [
"### Cost Function $ (J) $\n",
"\n",
"Choose $m$ and $c$ in such a way that $y'$ is close to $y$ for each of our training examples.\n",
"\n",
"$$ J = \\frac{1}{2n} \\cdot \\sum_{i = 1}^{n} (y' - y)^2$$\n",
"\n",
"### Derivatives - \n",
"\n",
"- ### $ \\frac{\\partial J}{\\partial c} = \\frac{1}{n} \\cdot \\sum_{i = 1}^{n} (y'_i - y_i)$\n",
"\n",
"- ### $ \\frac{\\partial J}{\\partial m} = \\frac{1}{n} \\cdot \\sum_{i = 1}^{n} (y'_i - y_i)\\cdot x_i$\n",
"\n",
"These are the derivatives you will need to compute while performing gradient descent. \n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "HCvI-kFOrz1P",
"colab_type": "text"
},
"source": [
"## Gradient Descent Algorithm -\n",
"\n",
"#### Repeat until Convergence {\n",
"#### $ m = m - \\alpha \\frac{\\partial J}{\\partial m} $\n",
"\n",
"#### $ c = c - \\alpha \\frac{\\partial J}{\\partial c} $ <br>\n",
"}\n",
"\n",
"#### $ \\alpha $ => learning rate\n",
"<br/>\n",
"\n",
"#### For simplicity let's assume c = 0, so we get\n",
"\n",
"#### $ y' = mx $\n",
"\n",
"#### $ J = \\frac{1}{2n} \\cdot \\sum_{i = 1}^{n} (mx - y)^2 $"
]
},
{
"cell_type": "code",
"metadata": {
"id": "efRwmciUUpBj",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 272
},
"outputId": "ecb0730a-0f91-4cab-f025-34ffcafb621d"
},
"source": [
"x = np.arange(-6,6.5, 0.5)\n",
"\n",
"plt.plot(x, np.zeros_like(x), 'k')\n",
"plt.plot(x, 2*x**2 - 3)\n",
"plt.axis([-7,7,-5,60]) \n",
"\n",
"plt.plot(4, 0, 'ro', markersize=8)[0].set_clip_on(False)\n",
"plt.plot(4, 29, 'rx', markersize = 15)\n",
"#plt.plot(x, 16*x - 35, 'g')\n",
"#plt.plot(2, 0, 'ro', markersize = 8)\n",
"#plt.plot(2, 5, 'rx', markersize = 15)\n",
"#plt.xlabel('m', fontsize = 16)\n",
"#plt.plot(x, 8*x - 11, 'g')\n",
"plt.ylabel('Cost fn (J)', fontsize = 16)\n",
"\n",
"plt.show() # m = m - alpha*(dJ/dm)"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9Rj0KOi8EO-w",
"colab_type": "text"
},
"source": [
"## Linear Regression in action"
]
},
{
"cell_type": "code",
"metadata": {
"id": "kL8S1VGHPM_p",
"colab_type": "code",
"colab": {}
},
"source": [
"def linear_regression(x, y, num_iter, alpha, print_cost):\n",
"\n",
" m = 0\n",
" c = 3\n",
" n = len(x)\n",
" costs = []\n",
"\n",
" for i in range(num_iter + 1):\n",
"\n",
" yhat = m*x + c\n",
" cost = np.power(np.sum(yhat - y),2)\n",
" costs.append(cost)\n",
"\n",
" if(i % print_cost == 0):\n",
" print(f'Cost after {i} iterations: {cost}')\n",
"\n",
" plt.figure(figsize = (8,5))\n",
"\n",
" plt.axis([min(x)-1, max(x)+1, min(y)-1, max(y)+1])\n",
" plt.scatter(x, y, s = 50)\n",
"\n",
" plt.plot(x, m*x+c)\n",
" plt.show()\n",
"\n",
" dm = 1/n*np.sum((yhat - y)*x)\n",
" dc = 1/n*np.sum(yhat - y)\n",
"\n",
" m -= alpha*dm\n",
" c -= alpha*dc\n",
"\n",
" return costs, (m,c)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "8DUvqIQ4rFNm",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "ad497fdc-04c2-4058-de3c-2e770cd7fe1b"
},
"source": [
"x = np.array([1, 3, 4, 6, 8, 10])\n",
"y = np.array([2, 2.9, 5, 7.5, 8.6, 11])\n",
"\n",
"costs, (m ,c) = linear_regression(x, y, 20, 0.01, 2)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Cost after 0 iterations: 361.0\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Cost after 2 iterations: 25.380436409999994\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Cost after 4 iterations: 0.06009065985845279\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Cost after 6 iterations: 5.007503844147921\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Cost after 8 iterations: 8.89779044567252\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAE1CAYAAAA2zJNzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3da2xc933m8e8MhxySIilSFIcih7Ku5J+0LFGULdmxrpSdOHGc1ImrJE4at2mLtgGMwO+2xW43vQBFkM26RtsU7ZsCQdqNu9rtpl2g2xa1hrIlXySHQ+pi6S9ZlmVxeBneJN6Hczn7gozg2lQsakY8Z8jnAxiSz3AOH/w1Mw/P8PzO+BzHQURERNzldzuAiIiIqJBFREQ8QYUsIiLiASpkERERD1Ahi4iIeIAKWURExAMCd/JFxpgfAM8AG4Ht1tpzxphq4MfAFmAWuAz8trV28B5lFRERWbbu9Aj5p8AB4NqHtjnA9621xlq7HbgCfC/H+URERFaEOzpCttaeADDGfHjbCNDxoS97E/h2DrOJiIisGHdUyJ/EGONnroz/aRF3CwK7gT4gnYscIiIiHlYA1AGngcRHb8xJIQN/DkwAf7GI++wGXsvR9xcREckX+4ETH92YdSHPn/DVCHzBWptZxF37AEZHJ8lkdD3tu1VdXcbw8ITbMfKa1jB7WsPsaQ1zw8vr6Pf7qKpaBfP991FZFbIx5k+AB4HPW2s/dvj9CdIAmYyjQs6S1i97WsPsaQ2zpzXMjTxYxwV/TXunY09/BnwZWAf8uzFmGPgK8HvAJeD1+RO+rlprv5STuCIiIivInZ5l/R3gOwvc5MttHBERkZVJV+oSERHxABWyiIiIB6iQRUREPECFLCIi4gEqZBEREQ9QIYuIiHiACllERMQDVMgiIiIeoEIWERHxABWyiIiIB6iQRUREPECFLCIi4gEqZBEREQ9QIYuIiHiACllERMQD7ujzkEVERLxsOpHi9MU44zMpyosD7G4OURLMr4rLr7QiIiIfcen6DV462o3jOCSSGYKFfl5+5TIvHGmlaX2l2/HumN6yFhGRvDWdSPHS0W5mZtMkkhkAEskMM7Pp+e0plxPeORWyiIjkrdMX4ziOs+BtjuNw6kJ8iRPdPRWyiIjkrYGRqVtHxh+VSGaIj04tcaK7p0IWEZG8VbumlGDhwlUWLPQTqipd4kR3T4UsIiJ5a3dzCJ/Pt+BtPp+PPS2hJU5091TIIiKSt0qCAV440kpxUcGtI+VgoZ/iooL57fkzTJQ/SUVERBbQtL6SF5/fy6kLcSYSKcqCAfa0hPKqjEGFLCIiy0BxUYADrfXU1JQzODjudpy7oresRUREPECFLCIi4gEqZBEREQ9QIYuIiHiACllERMQDVMgiIiIeoEIWERHxABWyiIiIB6iQRUREPECFLCIi4gEqZBEREQ9QIYuIiHiACllERMQDVMgiIiIeoEIWERHxABWyiIiIBwQ+6QuMMT8AngE2AtuttefmtzcBPwKqgWHgOWvt5XsXVUREZPm6kyPknwIHgGsf2f5XwA+ttU3AD4G/znE2ERGRFeMTC9lae8Jae/3D24wxIWAX8JP5TT8BdhljanIfUUREZPn7xLesb2M9ELPWpgGstWljTO/89sHF7Ki6uuwuI8jP1dSUux0h72kNs6c1zJ7WMDfydR3vtpBzZnh4gkzGcTtG3qqpKWdwcNztGHlNa5g9rWH2tIa54eV19Pt9v/Ag9G7Psr4OhI0xBQDzf9bPbxcREZFFuqtCttbGgS7g2flNzwJRa+2i3q4WERHJhWv94/zrqQ9IpjJuR7lrdzL29GfAl4F1wL8bY4attduA3wF+ZIz5r8Ao8Nw9TSoiIvIhyVSaUxfiRKIx3usdoyRYwOf2bXY71l37xEK21n4H+M4C2y8CD9+LUCIiIrcTH52iI9rLa2d6mZxJsW5NKc8+3sjeB9ZRvbrEs79D/iSun9QlIiLySTIZh+4rQ0Q6Y5y7OoLf52NX01ra28I0b6jC5/O5HTFrKmQREfGsm5OzvNrdy/GuGCNjCSrLinh63yb2t9ZTVR50O15OqZBFRMRTHMfh0vUbRKIxfmYHSWccWjZU8exjjbRuXUugYHl+DIMKWUREPGE6keL1c/10RGPEhiYpDQY4vKuBQ2311FWvcjvePadCFhERV12PTxCJxnjjXD+JZJoN68r51uea2XN/LcHCArfjLRkVsoiILLlkKsPbdm5k6d2emxQG/OxpCXF4VwOb6ircjucKFbKIiCyZoRvTdHTNjSyNTyUJVZXw1cNb2bu9jrKSQrfjuUqFLCIi91Qm43Du6jDHOmOcvTIMPti5dS2HdzXQsrEK/zIYWcoFFbKIiNwTY1OznDjTR0c0xtDNGVavKuKpRzdycGc9ayqK3Y7nOSpkERHJGcdxuBIb41i0h7cvxkmlHZrvq+SXD21hV1PNsh1ZygUVsoiIZG1mNsWb5weIRGNcj09QEizg4M4wh9rChNcu/5GlXFAhi4jIXYsNTdLRGePkuT5mZtOsD5Xx3GcNj9xfS3GRKmYxtFoiIrIoqXSGzkuDRDpj2Os3CBT42N0con1XA1vqK5bFdaXdoEIWEZE7MjI2Q0dXL6929zI2Ocva1cUcObSFvTvqqCgtcjte3lMhi4jIbWUch3feHyHSGaPr3SFwYMeWatp3NfDA5jUaWcohFbKIiHzMxHTy1shS/MY05aWFPPnIBg621rO2ssTteMuSCllERIC5kaWrfeNEOns4dTFOMpWhsWE1T+/fxIMmRGFAI0v3kgpZRGSFSyTTvPXOAJHOGNcGxgkWFbBvex3tbWEaQmVux1sxVMgiIitU3/AkkWiM18/2M5VIEa5Zxa98polPbVtHSVD1sNS04iIiK0gqnaHr8hCRaIwL10Yp8Pt4qDlEe1uYxobVGllykQpZRGQFGB1P8Gp3L8e7YtyYmKW6IsiXD2xmf2s9q1dpZMkLVMgiIsuU4zhcvDbKsWiM6KUhHMdh2+Y1PPdEAzu2VOP362jYS1TIIiLLzNRMkpNn+4lEY/SPTLGqOMBn9qzn0M56QlWlbseT21Ahi4gsE9f6xznW2cNb7wwwm8qwpb6C33yqhd3NIQoDBW7Hk0+gQhYRyWOzyTSnL8aJRGO81ztGUaGfR7ato70tzIZ15W7Hk0VQIYuIuGg6keL0xTjjMynKiwPsbg7d0cjRwOgUHdEYJ870MTmToq66lK8/3sijD6yjtLhwCZJLrqmQRURccun6DV462o3jOCSSGYKFfl5+5TIvHGmlaX3lx74+nclw5t1hItEY566OUOD30dZUQ3tbmOb7KjWylOdUyCIiLphOpHjpaDczs+lb2xLJDAAvHe3mxef33vo84ZsTCV4908fxrhgjYwmqyoM8vW8T+1vrqSoPupJfck+FLCLigtMX4ziOs+BtjuPw1jsDrFtTSiQa42d2kHTG4f6NVTz7WBM7G6sp8Ou60suNCllExAUDI1O3jog/KpHM8L+Pv8fEdJLSYIDHHmzgUFuYdWs0srScqZBFRFxQu6aUYKH/tqUcLCrgSPsW9rTUEizUyNJKoPc8RERcsLs5dNvbigJ+/vg39rB/R73KeAXREbKIyBIbvDFNR1cMv98PZPABDlAU8OH3+3nhSOutE7pk5dC/uIjIEshkHM6+NzeydPbKMPigrbGGvdvXMTY5y+RsmrJggD0tIZXxCqV/dRGRe2hsapYTZ/roiMYYujnD6lVFPPXoRg7urGdNRfGtr6upKWdwcNzFpOI2FbKISI45jsOV2BjHoj28fTFOKu3QfF8lR9q30ta4lkCBTt+Rj1Mhi4jkyMxsijfPD3CsM0bP4AQlwQIO7gxzqC1MeO0qt+OJx6mQRUSyFBucIBKN8fq5fmZm09wXKuNXP2t4+P5a/T5Y7pgeKSIidyGVztB5aZBjnTEuXb9BoMDH7uZa2neF2VJfoetKy6KpkEVEFmH45gzHu2O82t3H2OQsa1cXc6R9C/u211FeWuR2PMljWReyMeYp4I8B3/x/f2it/Yds9ysi4hUZx+GdqyNEojG63h0CB1q3ruVQW5gHNq/Br6NhyYGsCtkY4wN+DOy31p4zxuwAThpjfmqtXfh6cCIieWJiOnlrZCl+Y5ry0kKefGQDB1vrWVtZ4nY8WWZy8ZZ1Blg9//dKoE9lLCL5ynEcrvaNE+ns4a0LcVLpDI0Nq3n6wCYebApRGNDIktwbvtt9/NedMsY8Bvw9MAmUA09aa9+8g7tuBK5m9c1FRHJkZjbFq9EY//z6Va703KQkWMChB9fz5KOb2FhX4XY8WV42Ae9/dGNWhWyMCQD/AnzXWnvSGLMX+Alwv7V24hPuvhG4Ojw8QSaT3Q8FK5mu7pM9rWH28nkN+4YniURjnDzbz3QiRbhmFYfbwjyybR0lwaU77zWf19BLvLyOfr+P6uoyuE0hZ/to2wnUW2tPAsyX8iTQApzOct8iIvdEKp2h6/IQkWiMC9dGKfD7eKg5RHtbmMaG1RpZEldkW8g9QIMxxlhrrTGmBagFrmQfTUQkt0bHE7za3cvxrhg3JmaprgjyzMHN7NtRz+pVGlkSd2VVyNbafmPMt4H/ZYz5+Ylcv26tHck+mohI9hzH4cK1USLRGNFLQziOwwObq3nuiTA7tlTj9+toWLwh61+QWGv/Dvi7HGQREcmZqZkkJ8/2E4nG6B+ZoqykkM/sWc+hnfWEqkrdjifyMbpSl4gsK9f6xznW2cNb7wwwm8qwpb6C33yqhd3NIQoDBW7HE7ktFbKI5L3ZZJrTF+Mc64xxtW+MokI/j2xbR3tbmA3ryt2OJ3JHVMgikrcGRqfoiMY4caaPyZkUddWlfP3xRh59oI7SYr28SX7RI1ZE7tp0IsXpi3HGZ1KUFwfY3Ry657O76UyGM+8OE4nGOHd1hAK/j7amGg63hTH3VWpkSfKWCllE7sql6zd46Wg3juOQSGYIFvp5+ZXLvHCklab1lTn/fjcn5keWunsZGUtQVR7k6X2b2N9aT1V5MOffT2SpqZBFZNGmEyleOtrNzGz61rZEcm7y8aWj3bz4/F6Ki7J/eXEch0vXbxCJxviZHSSdcdi2sYpnH2tiZ2M1BX5dV1qWDxWyiCza6YtxbnfZXcdxOHUhzoHW+rve/3Qixevn5kaWeocmKQ0GeOzBBg61hVm3RiNLsjypkEVk0QZGpm4dEX9UIpkhPjp1V/v9YGCcjmiMN84PkEim2biunG892cyellqChRpZkuVNhSwii1a7ppRgoX/BUg4W+hd14Y1kKsPbNk6kM8a7sZsUBvw83FJL+64wm/QpS7KCqJBFZNF2N4d4+ZXLC97m8/nY0xL6xH0M3pimoyvGa919TEwnqa0q4WuHt/Lo9jrKSgpzHVnE81TIIrJoJcEALxxp/dhZ1j6fjxeOtN72hK5MxuHse3MjS2evDIMP2hpraG8L07KxCr9GlmQFUyGLyF1pWl/Ji8/v5dSFOBOJFGXBAHtaQguW8djULK9193K8q5ehmzOsXlXEU49u5ODOetZUFLuQXsR7VMgicteKiwIcaK1f8EPhHcfhSmyMY9Ee3r4YJ5V2aL6vkiPtW2lrXEugQCNLIh+mQhaRnJqZTfHm+QGOdcboGZygJFjAwZ1hDrWFCa9d5XY8Ec9SIYtITsQGJ4hEY7x+rp+Z2TT3hcr41c8aHr6/NicXCRFZ7vQsEZG7lkpn6Lw0yImj3Zy7MkygwMfu5loO7wqzub5C15UWWQQVsogs2vDNGY53x3i1u4+xyVlq15RypH0L+7bXUV5a5HY8kbykQhaRO5JxHN65OkIkGqPr3SFwoHXrWg61hWnfs4Hh4Qm3I4rkNRWyiPxCE9NJTpzpoyMaI35jmvLSQp58ZAMHd9azdnUJAH6/3poWyZYKWUQ+xnEc3usbo6MzxlsX4qTSGRobVvP0gU082BSiMKCRJZFcUyGLyC2JZJq33hkg0hnj2sA4waIC9u+oo70tTEOozO14IsuaCllE6BueJBKNcfJsP9OJFOGaVXzzM008sm0dJUG9TIgsBT3TRFaoVDpD1+UhItEYF66NUuD38VBziPa2MI0NqzWyJLLEVMgiK8zoeILjXTGOd/dyc2KW6oogzxzczL4d9axepZElEbeokEVWAMdxuHBtlEhnjOjlIRzH4YHN1bR/NsyOzdU6S1rEA1TIIsvY5EySk2f76YjG6B+ZoqykkCf2rOdgW5hQZYnb8UTkQ1TIIsvQ+/1jRDpjvPXOALOpDFvCFfzmUy3sbg5RGChwO56ILECFLLJMzCbTnLoQJxKNcbVvjKJCP49sW0d7W5gN68rdjicin0CFLJLnBkan6IjGOHGmj8mZFHXVpXz98UYefaCO0mI9xUXyhZ6tInkonclw5t1hjkVjnL86QoHfR1tTDYfbwpj7KjWyJJKHVMgieeTmRIJXu3vp6OpldDxBVXmQp/dv4kBrPZVlQbfjiUgWVMgiHuc4Dpeu3+BYZ4zOS4OkMw7bNlbxjU830bq1mgK/ristshyokEU8amomxRvn+4lEY/QOTbKqOMBjDzbQ3hamdk2p2/FEJMdUyCIe88HAOJFojDfPD5BIptlUV863nmxmT0stwUKNLIksVypkEQ9IpjK8beNEOmO8G7tJYcDPw/fX0t4WZlNdhdvxRGQJqJBFXDR4Y5qOrhivdfcxMZ2ktqqErx3eyqPb6ygrKXQ7nogsIRWyyBLLZBzOvjdMJBrj7JVhfD4fOxvX0r4rTMuGKvwaWRJZkVTIIktkbHKW18700hHtZXhshtWrivjC3o0caK1nTUWx2/FExGUqZJF7yHEc3o3dJNIZ4/TFOOmMQ/N9lXz18FZ2Nq4lUKCRJRGZo0IWuQemEynefGeASGcPPYOTlAQLaG8Lc6gtTP3aVW7HExEPyrqQjTHFwJ8CjwMzwBvW2t/Kdr8i+ahncIJINMYb5/qZmU1zX6iMX/tcMw+31BIs0siSiNxeLo6Qv89cETdZax1jTG0O9imSN1LpDD+zg0SiMS5dv0GgwM+elhDtbWE211foutIickeyKmRjTBnwHNBgrXUArLUDuQgm4nXDN2c43h3j1a5exqaS1FQWc6R9C/u211FeWuR2PBHJM9keIW8BhoHvGmPagQngv1hrT2SdTMSDMo7D+asjRDpjdF8ZAqB1y9zI0rZNazSyJCJ3zec4zl3f2RizC/gZ8A1r7f8wxjwM/F9gq7V27BPuvhG4etffXGQJjU3O8u+nPuBf3nifvuFJKsuCfPrh+/jsIxsJ6brSIrI4m4D3P7ox2yPkD4AU8BMAa+1bxpghoAl4+052MDw8QSZz9z8UrHQ1NeUMDo67HSOv3W4NHcfhvd4xItEYpy7ESaUzNDWs5otf3MaDpmZuZCmd1vqjx2EuaA1zw8vr6Pf7qK4uu+3tWRWytXbIGBMBPg38mzGmCQgB72azXxE3JWbTvHVhgGOdPXwwMEFxUQH7W+tobwvTUHP7J5OISDZycZb17wB/Y4z570AS+Ka19kYO9iuypPqGJ4l0xjh5rp/pRIqGmlV88wnDI/fXUhLUyL6I3FtZv8pYa98DDmUfRWTppdIZTnb38o/H3+XCtVEK/D52N4c41BamsWG1RpZEZMnox35ZkUbGZni1u5fj3b3cnJiluqKYZw5uZv+OeipWaWRJRJaeCllWjIzjcOHaKB2dMaKXh3Ach+1bqvmlr25lQ3Upfr+OhkXEPSpkWfYmZ5KcPNNHpKuXgZEpykoKeWLPeg62hQlVlnj6rEwRWTlUyLJsvd8/xrHOGKfeGWA2lWFreDVffOp+HmquoTCg60qLiLeokGVZmU2mOXUhTiTaw9W+cYoK/XzqgXW0t4W5r7bc7XgiIrelQpZlYWBkikg0xsmzfUzOpKirLuUbn27iU9vWUVqsh7mIeJ9eqSRvpTMZut8dJtLZw/n350aWdjXVcHhXmKb1lRpZEpG8okKWvHNjIjE3stTVy+h4gqryIF/av4n9rfVUlgXdjicicldUyJIXHMfBfnCDY9EY0UuDpDMO2zat4Vc+3cSOrdUU+P1uRxQRyYoKWTxtaibF6+f6iERj9A1Psao4wOMPNXBoZ5hafcqSiCwjKmTxpA8GxolEY7xxvp/ZZIZNdRX8+pMt7GkJUVSokSURWX5UyOIZyVSaty8Ocizaw5XYGEUBP3vur6W9Lcymugq344mI3FMqZHFd/MY0x6MxXjvTx8R0kto1pXztsUb2bl/HquJCt+OJiCwJFbK4IpNxOPPeMJHOGOfeG8bn89HWuJb2XWFaNlRpZElEVhwVsiypsclZXjvTS0e0l+GxGVaXFfGFvRs5uDNMVblGlkRk5VIhyz3nOA6Xe24SicZ4+2KcdMahZUMVXz28lZ2NawkUuDOyNJ1IcfpinPGZFOXFAXY3hygJ6ikhIu7Qq4/cM9OJFG+e7ycSjdEzOElJMED7rjDtbWHqqle5mu3S9Ru8dLQbx3FIJDMEC/28/MplXjjSStP6SlezicjKpEKWnOuJTxCJxnj9fD+J2TT31Zbxa59r5uGWWoJF7o8sTSdSvHS0m5nZ9K1tiWQGgJeOdvPi83spLtJTQ0SWll51JCdS6Qxv2zgdnTEu9dwkUOBnT0uI9rYwm+srPHWS1umLcRzHWfA2x3E4dSHOgdb6JU4lIiudClmyMnRzmuNdvbzW3cvYVJJQZQlfad/Kvh11lJV4c2RpYGTq1hHxRyWSGeKjU0ucSEREhSx3IeM4nL86QqQzRveVIQBat6zl8K4w929ag99DR8MLqV1TSrDQv2ApBwv9hKp0SU4RWXoqZLlj41OznDjbR0c0xuCNGSpWFfH5T23gYGuY6tXFbse7Y7ubQ7z8yuUFb/P5fOxpCS1xIhERFbJ8AsdxeK93jGOdMU5fjJNKZ2haX8kzB7ewq6nGtZGlbJQEA7xwpPVjZ1n7fD5eONKqE7pExBV65ZEFJWbTvPlOP5HOGB/EJyguKuBAax2H2sI01JS5HS9rTesrefH5vZy6EGcikaIsGGBPS0hlLCKu0auP/Ae9Q5NzI0vn+phOpGmoKeO5JwwP31+77C6aUVwU4EBrPTU15QwOjrsdR0RWuOX1Cit3JZXOEL08RKSzh4sf3CBQ4OOh5rmRpa3h1Z4aWRIRWa5UyCvYyNgMr3b3cry7l5sTs6xdXcwzBzezf0c9FauK3I4nIrKiqJBXmIzjcOH9USLRGF2Xh3Ach+1bqmn/bJjtm6vx+3U0LCLiBhXyCjE5k+TkmT4i0RgDo9OUlRTyxMPrObQzTE1lidvxRERWPBXyMne1b4xIZ4y3LgyQTGXYGl7NF/dt4iETojCQfyNLIiLLlQp5GUok05y6MECkM8b7/eMECwvY+8A6DrWFua+23O14IiKyABXyMtI/MkVHNMaJM31MJVLUr13FNz7dxKe2raO0WP/UIiJeplfpPJdOZ/iZHaQj2sP590cp8Pt40NTQ3hamaX2lRpZERPKECjlP3ZhI8GpXL6+d7WP45gxrKoJ86cBmDuyoY3VZ0O14IiKySCrkPOI4Dhc/uEEkGiN6aZB0xmGXCfH1xxrZsbWaAr9O0hIRyVcq5DwwNZPk5Ll+OqIx+oanWFUc4PGHGjjUFuaBplpd9lFEZBlQIXvYtf5xItEYb77Tz2wyw+b6Cn7j8y3sbg5RVFjgdjwREckhFbLHJFNpTl+ME+mMcaV3jKKAn4fvr6V9V5iN6yrcjiciIveICtkj4qNTdHT1cuJMHxPTSWrXlPLsY408un0dq4oL3Y4nIiL3mArZRZmMw5krwxyL9nD+vRF8Ph9tTWtpbwvTsqFKI0siIiuICtkFNydnea27l+NdMYbHElSWFfHFfZs40FpPVblGlkREVqKcFbIx5rvAHwDbrbXncrXf5cJxHC733CQSjfH2xTjpjEPLhiq+eriRnY1rCRRoZElEZCXLSSEbY3YBjwDXcrG/5WQ6keKN8/1EojFig5OUBAMc3tXAobZ66qpXuR1PREQ8IutCNsYEgR8CzwId2e5vueiJTxCJxnj9fD+J2TQbasv5tc8183BLLcEijSyJiMh/lIsj5D8C/tZa+74xZtF3rq4uy0EEb0im0rx+po9/fv0q71wdoSjgZ9/OMJ/fu4nGe3hd6ZoafYJTtrSG2dMaZk9rmBv5uo5ZFbIx5lPAQ8Dv3u0+hocnyGScbGK4bujmNMe7enm1u5fxqSShyhK+0r6VfTvqKCuZG1kaGpq4J9+7pqZcV+rKktYwe1rD7GkNc8PL6+j3+37hQWi2R8gHgRbg6vzRcQPwr8aYb1lr/y3LfXtaxnE4994Ikc4ezlwZBh/s3LqW9l1h7t+4Br9GlkREZBGyKmRr7feA7/38/40x7wNPLeezrMenZjlxpo9INMbQzRkqVhXx+Uc3crC1nurVxW7HExGRPKU55DvgOA5XeseIdPZw+uIgqXQGs76SXz60hV1NNRpZEhGRrOW0kK21G3O5P7fNzKZ4850BIp0xrscnKC4q4GBrPYfa6gnXLJ+T0URExH06Qr6NK703efHvu5hOpGmoKeO5zxoeub+W4iItmYiI5J7a5TZWFReyf0c9D5kQW8IVuq60iIjcUyrk21i3ppSvPdbodgwREVkhdDaSiIiIB6iQRUREPECFLCIi4gEqZBEREQ9QIYuIiHiACllERMQDVMgiIiIeoEIWERHxABWyiIiIB6iQRUREPECFLCIi4gEqZBEREQ9QIYuIiHiACllERMQD9PGLck9MJ1KcvhhnYGSK2jWl7G4OURLUw01E5Hb0Cik5d+n6DV462o3jOCSSGYKFfl5+5TIvHGmlaX2l2/FERDxJb1lLTk0nUrx0tJuZ2TSJZAaARDLDzGx6fnvK5YQiIt6kQpacOn0xjuM4C97mOA6nLsSXOJGISH5QIUtODYxM3Toy/qhEMkN8dGqJE4mI5AcVsuRU7ZpSgoULP6yChX5CVaVLnEhEJD+okCWndjeH8Pl8C97m8/nY0xJa4kQiIvlBhSw5VRIM8MKRVoqLCm4dKQcL/RQXFcxv14n9IiIL0auj5FzT+kpefH4vpy7EiY9OEaoqZU9LSGUsIvIL6BVS7oniogAHWuvdjiEikn9WPogAAAYeSURBVDf0lrWIiIgHqJBFREQ8QIUsIiLiASpkERERD1Ahi4iIeIAKWURExANUyCIiIh6gQhYREfEAFbKIiIgHqJBFREQ8QIUsIiLiASpkERERD1Ahi4iIeEBWn/ZkjKkGfgxsAWaBy8BvW2sHc5DNNdOJFKcvxhkYmaJ2TSm7m0OUBPXBWCIicu9k2zIO8H1rbQeAMea/Ad8DfiPL/brm0vUbvHS0G8dxSCQzBAv9vPzKZV440krT+kq344mIyDKV1VvW1tqRn5fxvDeBDVklctF0IsVLR7uZmU2TSGYASCQzzMym57enXE4oIiLLVc5+h2yM8QPfBv4pV/tcaqcvxnEcZ8HbHMfh1IX4EicSEZGVIpe/GP1zYAL4i8Xcqbq6LIcRsjM+k7p1ZPxRiWSGiUSKmpryJU71ybyYKd9oDbOnNcye1jA38nUdc1LIxpgfAI3AF6y1CzfabQwPT5DJLHxUutTKiwMEC/0LlnKw0E9ZMMDg4LgLyW6vpqbcc5nyjdYwe1rD7GkNc8PL6+j3+37hQWjWb1kbY/4EeBB42lqbyHZ/btrdHMLn8y14m8/nY09LaIkTiYjISpFVIRtjtgG/B9QDrxtjuowx/ycnyVxQEgzwwpFWiosKCBbOLU2w0E9xUcH8do0+iYjIvZFVw1hrzwMLH1Lmqab1lbz4/F5OXYgTH50iVFXKnpaQylhERO4ptcwCiosCHGitdzuGiIisILp0poiIiAeokEVERDxAhSwiIuIBKmQREREPUCGLiIh4gApZRETEA1TIIiIiHqBCFhER8QAVsoiIiAeokEVERDxAhSwiIuIBKmQREREPUCGLiIh4gApZRETEA1TIIiIiHqBCFhER8QAVsoiIiAcEXPzeBQB+v8/FCMuD1jB7WsPsaQ2zpzXMDa+u44dyFSx0u89xnKVL8x/tA15z65uLiIi4ZD9w4qMb3SzkILAb6APSboUQERFZIgVAHXAaSHz0RjcLWURERObppC4REREPUCGLiIh4gApZRETEA1TIIiIiHqBCFhER8QAVsoiIiAeokEVERDzAlUtnGmOagB8B1cAw8Jy19rIbWfKRMaYa+DGwBZgFLgO/ba0ddDVYnjLGfBf4A2C7tfacy3HyijGmGPhT4HFgBnjDWvtb7qbKP8aYp4A/Bnzz//2htfYf3E3lbcaYHwDPABv50HM3n/vFrSPkvwJ+aK1tAn4I/LVLOfKVA3zfWmustduBK8D3XM6Ul4wxu4BHgGtuZ8lT32euiJvmH4u/73KevGOM8TH3A/Y3rbU7gW8CPzLG6B3MX+ynwAE+/tzN235Z8n9wY0wI2AX8ZH7TT4Bdxpiapc6Sr6y1I9bajg9tehPY4FKcvGWMCTL3hP2221nykTGmDHgO+H1rrQNgrR1wN1XeygCr5/9eCfRZazMu5vE8a+0Ja+31D2/L935x4yew9UDMWpsGmP+zd367LNL8T9HfBv7J7Sx56I+Av7XWvu92kDy1hbm3BL9rjHnbGNNhjNnndqh8M//DzFeAfzTGXGPuyO85d1PlrbzuF70lkv/+HJgA/sLtIPnEGPMp4CHgL93OkscKgM1A1Fr7EPCfgH8wxlS4Gyu/GGMCwO8Bv2St3QB8Afif8+9AyAriRiFfB8LGmAKA+T/r57fLIsyf1NAIfFVvby3aQaAFuGqMeR9oAP7VGPMZN0PlmQ+AFPNvD1pr3wKGgCY3Q+WhnUC9tfYkwPyfk8w9PmVx8rpflryQrbVxoAt4dn7Ts8z9hK0zhBfBGPMnwIPA09baj32Ml/xi1trvWWvrrbUbrbUbgR7gCWvtv7kcLW9Ya4eACPBpuHV2awh4181ceagHaDDGGABjTAtQy9zJmrII+d4vrnz8ojGmmbnT0quAUeZOS7dLHiRPGWO2AeeAS8D0/Oar1tovuZcqv80fJT+lsafFMcZsBv6GuRGTJPCfrbX/z91U+ccY8w3gd5k7uQvgu9ban7oYyfOMMX8GfBlYx9w7M8PW2m353C/6PGQREREP0EldIiIiHqBCFhER8QAVsoiIiAeokEVERDxAhSwiIuIBKmQREREPUCGLiIh4gApZRETEA/4/N1l+NBWr4/wAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Cost after 10 iterations: 10.59631448984333\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Cost after 12 iterations: 11.210733554519427\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Cost after 14 iterations: 11.379719816113258\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Cost after 16 iterations: 11.375974086267988\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Cost after 18 iterations: 11.30694353486148\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Cost after 20 iterations: 11.213818338414479\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5YOxP-9KuZVk",
"colab_type": "text"
},
"source": [
"## Multivariate Linear Regression\n",
"\n",
"#### For n input features - $ x_1, x_2 ... x_n$\n",
"\n",
"#### $$ y = \\beta_0 + \\beta_1x_1 + \\beta_2x_2 . . . \\beta_nx_n $$"
]
},
{
"cell_type": "code",
"metadata": {
"id": "D8SCdMhGJTxp",
"colab_type": "code",
"colab": {}
},
"source": [
"from sklearn.model_selection import train_test_split\n",
"from sklearn.datasets import load_boston\n",
"from sklearn.linear_model import LinearRegression"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "9yescRDdP6bQ",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 894
},
"outputId": "0674c3b7-7fd9-4c42-b945-c6c40cd926e0"
},
"source": [
"b_data = load_boston()\n",
"print(b_data.DESCR)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
".. _boston_dataset:\n",
"\n",
"Boston house prices dataset\n",
"---------------------------\n",
"\n",
"**Data Set Characteristics:** \n",
"\n",
" :Number of Instances: 506 \n",
"\n",
" :Number of Attributes: 13 numeric/categorical predictive. Median Value (attribute 14) is usually the target.\n",
"\n",
" :Attribute Information (in order):\n",
" - CRIM per capita crime rate by town\n",
" - ZN proportion of residential land zoned for lots over 25,000 sq.ft.\n",
" - INDUS proportion of non-retail business acres per town\n",
" - CHAS Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)\n",
" - NOX nitric oxides concentration (parts per 10 million)\n",
" - RM average number of rooms per dwelling\n",
" - AGE proportion of owner-occupied units built prior to 1940\n",
" - DIS weighted distances to five Boston employment centres\n",
" - RAD index of accessibility to radial highways\n",
" - TAX full-value property-tax rate per $10,000\n",
" - PTRATIO pupil-teacher ratio by town\n",
" - B 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town\n",
" - LSTAT % lower status of the population\n",
" - MEDV Median value of owner-occupied homes in $1000's\n",
"\n",
" :Missing Attribute Values: None\n",
"\n",
" :Creator: Harrison, D. and Rubinfeld, D.L.\n",
"\n",
"This is a copy of UCI ML housing dataset.\n",
"https://archive.ics.uci.edu/ml/machine-learning-databases/housing/\n",
"\n",
"\n",
"This dataset was taken from the StatLib library which is maintained at Carnegie Mellon University.\n",
"\n",
"The Boston house-price data of Harrison, D. and Rubinfeld, D.L. 'Hedonic\n",
"prices and the demand for clean air', J. Environ. Economics & Management,\n",
"vol.5, 81-102, 1978. Used in Belsley, Kuh & Welsch, 'Regression diagnostics\n",
"...', Wiley, 1980. N.B. Various transformations are used in the table on\n",
"pages 244-261 of the latter.\n",
"\n",
"The Boston house-price data has been used in many machine learning papers that address regression\n",
"problems. \n",
" \n",
".. topic:: References\n",
"\n",
" - Belsley, Kuh & Welsch, 'Regression diagnostics: Identifying Influential Data and Sources of Collinearity', Wiley, 1980. 244-261.\n",
" - Quinlan,R. (1993). Combining Instance-Based and Model-Based Learning. In Proceedings on the Tenth International Conference of Machine Learning, 236-243, University of Massachusetts, Amherst. Morgan Kaufmann.\n",
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "J6JwgXETRE58",
"colab_type": "code",
"colab": {}
},
"source": [
"X_train, X_test, y_train, y_test = train_test_split(b_data.data, b_data.target, test_size = 0.2, random_state = 9)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "sDEIOH4ISDs-",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "b08b9a1f-bc3b-4648-ee15-efdcd19dc535"
},
"source": [
"lin_reg = LinearRegression()\n",
"lin_reg.fit(X_train, y_train)\n",
"lin_reg.score(X_test, y_test)"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0.7660111574904017"
]
},
"metadata": {
"tags": []
},
"execution_count": 9
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "JdCckQGoSoZw",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 118
},
"outputId": "b76c4d73-18c4-4ec9-e341-bdd038de7662"
},
"source": [
"print('Coefficients: ' + str(lin_reg.coef_))\n",
"print()\n",
"print('Intercept: ' + str(lin_reg.intercept_))"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Coefficients: [-1.13857949e-01 4.26244079e-02 3.24416726e-02 2.02422869e+00\n",
" -1.48729064e+01 3.94626653e+00 -3.73513877e-04 -1.36065848e+00\n",
" 2.80024959e-01 -1.22345482e-02 -8.74200433e-01 8.19816141e-03\n",
" -5.24173305e-01]\n",
"\n",
"Intercept: 32.72612668297055\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "bVlvHNllTZMu",
"colab_type": "text"
},
"source": [
"## Polynomial Regression\n",
"\n",
"#### $ y = \\beta_0 + \\beta_1x_1 + \\beta_2x_2 + \\beta_3x_3 $\n",
"\n",
"#### $$ y = \\beta_0 + \\beta_1x_1 + \\beta_2x_1^2 + \\beta_3x_1^3 $$"
]
},
{
"cell_type": "code",
"metadata": {
"id": "CC31yzw2Zodg",
"colab_type": "code",
"colab": {}
},
"source": [
"import operator\n",
"from sklearn.preprocessing import PolynomialFeatures"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "KVBMhVi9WS84",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 268
},
"outputId": "1af12022-5a5e-463b-f450-0af5daac9c5f"
},
"source": [
"np.random.seed(0)\n",
"x = 2 - 3 * np.random.normal(0, 1, 20)\n",
"y = x - 2 * (x ** 2) + 0.5 * (x ** 3) + np.random.normal(-3, 3, 20)\n",
"plt.scatter(x, y, s=20)\n",
"plt.show()\n",
"\n",
"x = x.reshape(20,1)\n",
"y = y.reshape(20,1)"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "vGK3QlIBZI2o",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 268
},
"outputId": "dc8dfcea-c777-4f31-ce64-9f0cb9af4869"
},
"source": [
"lin_model = LinearRegression()\n",
"\n",
"lin_model.fit(x, y)\n",
"y_pred = lin_model.predict(x)\n",
"\n",
"plt.scatter(x, y, s=10)\n",
"plt.plot(x, y_pred, color='r')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Q_63-8X8b_Zo",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 268
},
"outputId": "760fca6a-fbed-44a7-81c4-945a2638f85a"
},
"source": [
"np.random.seed(0)\n",
"x = 2 - 3 * np.random.normal(0, 1, 20)\n",
"y = x - 2 * (x ** 2) + 0.5 * (x ** 3) + np.random.normal(-3, 3, 20)\n",
"\n",
"x = x.reshape(20,1)\n",
"y = y.reshape(20,1)\n",
"\n",
"polynomial_features = PolynomialFeatures(degree = 2) # 2, 3, 18\n",
"x_poly = polynomial_features.fit_transform(x)\n",
"\n",
"poly_model1 = LinearRegression()\n",
"\n",
"poly_model1.fit(x_poly, y)\n",
"y_pred = poly_model1.predict(x_poly)\n",
"\n",
"plt.scatter(x, y, s=10)\n",
"\n",
"# sort the values of x before line plot\n",
"sort_axis = operator.itemgetter(0)\n",
"sorted_zip = sorted(zip(x,y_pred), key=sort_axis)\n",
"x, y_pred = zip(*sorted_zip)\n",
"plt.plot(x, y_pred, color='m')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAD7CAYAAABqvuNzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3da3BU553n8W+37vdr6wYCBEgPRsLcgo0d3x1s4xuxYyexE2dmamviTM3szFRtdiv7ZnZqdnYzM56ara1NqsZTqcpk4x3HY8cJNja2iQE72AbbgAEJeBAgQNYFCUnofu+zL7oBgZGRUHefvvw+VS5Z52l1/x+kPr8+z/OcczyO4yAiIuJ1uwAREYkOCgQREQEUCCIiEqRAEBERQIEgIiJByW4XMAdpwDqgDZh0uRYRkViRBJQDnwCjUxtiORDWAb93uwgRkRh1O7Br6oZYDoQ2gJ6eQfz+6DqXoqgom66uAbfLcIX6rr4nmljru9froaAgC4L70KliORAmAfx+J+oCAYjKmiJFfU9M6nvM+cJQuyaVRUQEUCCIiEiQAkFERAAFgoiIBCkQREQEiO1VRiIiCWl/YycNTd3UVhWyutoXsufVEYKISAzZ39jJ85sb2L6vhec3N7C/sTNkz61AEBGJIQ1N3YxN+AEYm/DT0NQdsudWIIiIxJDaqkJSkwO77tRkL7VVhSF7bs0hiIi4bDZzAqurfTy7qTYscwgKBBERF12YExib8LPrYBvPbqqdUSiEMggu0JCRiIiLwjknMFs6QhCRiHAch8kJPxMTfibGJxkfD3x1nMDF4RzHwfE7eDwe8gozyMhMwePxuF122NVWFbLrYBtjE/6QzwnMlgJBRObMcRyGBscY7B9loG808PXCf1O+90/O/Kqg6RkpFPoyKfJlU+jLpLA4i4LiLNLS42u3Fc45gdmKr39ZEQk5x3EYGR5noC+wUx/su7Szv/D/g/1jTE76L/s5r9dDVk4a2TlplFbksjgnjfSMZJKTk0hO8ZKckkRSkhevFzxeD16vB4/Hg9/vcL57iO7OQbo7Bzl6qJ3xsUtXas7OTaPQl0VhcRZFviwKfVnkF2WSnBy7I+DhmhOYLQWCiAAwMjzO2da+wI743BADvSPBnf0ok1d8sp+6sy+pyKWkNAdvkofs3LTA9ty0OQ35LFh8adjEcRz6e0fpPjcYrG2Q7o5BPm/quXgfAo8H8goyAkFxISxKssjNz8Drjf9hp1BRIIgkIMdxON81RHtL38X/zncNXWzPykklJy+dkvIcsk0x2TnpF3f02TlpZGRdvrP3+XLo7OwPS60ej4fc/HRy89NZtLTo4vbJST99PcN0dQ5eDLGujkFO2nMXH5OU7KWgKDDcVFiSRWFxJkW+LLJy0hJifmK2FAgiCWB8bJKOtn7aW3ppb+njbEsfoyMTAKSlJ1M2LxdTV0ppRQ7Fpdmkpae4XPG1JSV5KQjOK3DDpe3j45Oc7wqEw4WjipYzPRxrOHvxMalpSRePJAp9l4ae0jOiv9/h5HogGGNqgF8ARUAX8D1rbaO7VYlEl9mcuOQ4DgN9oxd3/O0tvZw7O4ATHPUpKMqkqqaYsnm5lM3PI78wI64+LaekJOEry8FXlnPZ9pHh8WBAXJqfOH6kk7HPLt1aODMrNTjslHkxLAqLs0hJTYp0N1zheiAA/wz81Fr7gjHmu8DzwD0u1yQSNWZy4lJ/7wjNTT18fqqH9pZeBvvHAEhO8VJSnsvqWxZQNi+X0orchP0UnJ6RQkVlPhWV+Re3OY7D0MDYlGGnwNfD+9uYmLg0SZ6bnz5l2Ck4kV2YQVJS7E5kX42rgWCMKQHWABuCm14EfmKM8VlrQ3cJP5EYdrUTl1YuKaajrY9Tx7s4fbyb7s5BIDD2Xz4/j7J5eZTNz6WoJFuTql/C4wlMjmflpF02ke33O/T3jlw27NTdOcjpE10Xj7S8Xg/5RZmUz8sjKzf14tBTTl56zB5xuX2EUAm0WGsnAay1k8aY1uB2BYIIl05cmpjwU+T1kt41zC9+8hEjQ+N4PFBemcctdy9mwZJCCooyo3ZnFK5r+IeD1+shryCDvIIMFpvii9snJ/yc7x66dEQRnJ843z188THJKd7LhpsunEtx5UR8NHI7EOasqCjb7RKuyufLufaD4pT6HjqjI+OUp6exoaKAs83n8fihp22AZbWl1CwvZckyHxmZqSF9zev1ZX3fU9/Gv7x2mNHxST441M5//u5abq4rn/ax+491srrGN+1j3FRWnveFbaMj43SeHaCjrZ+O9j462vppPtnN0YPtFx+TkZlCSXkOJWW5lJQH5jhKynKiagjP7UBoBuYZY5KCRwdJQEVw+4x0dQ1cXIscLcK5BC/aqe9z77vjOLS39FG/t4WmY+eYnHRISU/mHA5d+BmddPjK4nxKK3MZGBxlYHA0BNXPzbX6/uGBFkbHAyeXjY5P8uGBFhaXfvHD3NT5km17Ts/oQm9u8/ly6OsfIS0zmcolBVQuKbjYNjQ4NmVuYojuzgE++6T5iyfaFWcxb2E+NbWlZGaHN+C9Xs+0H6RdDQRrbYcx5jPgKeCF4Nf9mj+QRDQxPknj4Q7q97ZyrmOA1LQkblhZztLlJfyuoY1T+1sDD5wMzCNE+45yqpler+dq8yWx1M8rZWalkpmVyvxFl0LiwiqwqRPZ584O8NGOk+zeeZIFS4pYtqKUhUuLIj5p7fYRAsAPgF8YY/4K6AG+53I9IhHV3ztC/b5WjhxoY3RkgoLiTO64v5qa2tKLyx3rhsf44FD7tDvUaB+fn+n1eqLpQm/h4vF4yMlLJyfv8hPtes4NYuvPYuvPcvp4F+kZyVQvL8WsKP3CEtqw1eY40TXcMguLgCYNGUWXaOi7WzvH2fTdcRxaTp/n0N4WTh/vAmBRdTEr1s6jYkHeVScfp+vX1GGW1GSvK8Msofy9R3u4XSnUf/N+v0NzUzf20FmaGs/hn3QoKsnCrCijprZkznNGU4aMqoBTU9ui4QhBJGSu52YjkTQ+Nomtb6d+bys9XUOkZ6Swan0ltasqyMlLv+yxV+4Yp7sAWqiGWaJlRxwtF3pzi9frYeGSIhYuKWJkeJzjRzo4evAsH757gt07TrJwSSE3rCxn4ZSji1BRIEhcidYx6PPdQ9TvbcXWtzM2OomvLJu7HzIsvaHkqlfpnE2wTR1m8XogI232b+toD9JElZ6RQt2aedStmUdX5yD2UDvH6s/S1NjFU99fR35hZkhfT4EgcWXqzjHZ66Gzd5j9jZ2u7Nwcx+HMiW4O7Wuh+WQPXq+HJct81K2dR2lFzpeuSZ9NsK2u9rFhXSVbd5/B7zhs+6SZxRW5s+pztAapXFLky+LWe5Zw851V9J0fIa8gI+SvoUCQuHJh8nLn/haOnO7h0Ilu7Onzc/rEO9uhlNGRCY4ebKd+Xwt950fIzE5l3W0LWb6qYsZLCmc7uTo8OoE/OB94PTt0NyZzo2WIKtYkJQWu4BoOCgSJO6urfTQ0dXPoZODetHMdV5/pUEpHWx/v/66RYw1nmRj3UzY/l5vvrKKqpnjWywdnexetue7QI33XLg1RRScFgsSlUH3ivdZQit/vcKrxHIf2ttB6ppekZC/Vy0uoW1Mx56WCs5lcDcUOPZKTuRqiik4KBIlLofrEO12wDA+NceRAOw37WxnoGyUnN417H1rGgqWFrl2KIJZW5yTC+QaxSOchhEE0rMV3Szz2fepY9/ycdA592sLxIx1MTjrMW5jPirXzWLi0iNLS3Ljr+0xdz+89XuYQYu1vXuchiMzBjYuLyBrzU/9RM7tb+0lO8bJsZTl1ayooLM5yu7yYFUtHNIlCgSAyDcdxOGnPsXvnyYvL/L567xLMijLS0vXWkfijv2qRq2hv6eXD7Sc529JHoS+LjU/UsXBJYdRfz15kLhQIIlP0nR9m984mThztJDMrlTs31rBsRVnC3XUsXsb3ZXYUCCIETibb++FpDu1twevxsPbWBaxevyBhbq4+lc4RSFwKBElok5N+Gva38umu04yOTGBWlHLT7VVk56a5XZprdI5A4lIgSEJyHIdTjV18tOMkvT3DzFuYzy13L47Ydeejmc4RSFwKBEk4HW39fLj9BG3NveQXZWrC+AqRvoyFRA8FgiSM/t4R9rzfRGNDB+mZKdx+XzU3rCyL+G0KY4HOEUhMCgSJe2OjE+zbfYaDn7SA47B6fSWr1y/QuQQiV9A7QuKW3+9w5EAbH//+FCND41TXlnDzHVVfuDOZiAQoECQutbf08v7bjXR1DFI+P49bn1xMSXmu22WJRDUFgsSVsdEJPtpxksOftZGVk8p9X1/OYlOsCWORGVAgSNw4d3aAdzYfpq9nmBvXzWPdbYtIvY77C4skKr1bJOY5jsPhz9r44HfHSctI4dGnVlKxIN/tskRijgJBYtrY6ATvvXWM40c6qawq4J6Hl5GZNbP7FovI5RQIErM62/vZtvkIfeeHufnOKlavr9RcgcgchDUQjDE/Be4FRoEB4C+stZ8G20qBXxK489kw8H1r7Z5w1iPxwXEcGva38eG7x0nPTOHRp1dSUakhIpG5CvcpmluBFdbalcCPgZemtP0YeN9aWwP8KfCCMUYf7+RLjY1OsG3zEX7/TiMVC/N58o/WKgxEQiSsRwjW2i1Tvv0ImG+M8Vpr/cA3CRwdYK3dZYwZBb4CfBLOmiR2dbb3885vD9PfO8L6u6pYdbOGiERCKZJzCH8GvGGt9RtjigCPtfbclPYzQCUKBLlCYIiolQ/ePUFGZgqbnl5FeWWe22WJxJ05BYIxZh+wYJrmUmvtZPBx3waeBu6Yy+tdTVFRdqifMiR8vsS9jHIo+z4yPM7r/36QIwfbWHpDCV//9ioys6N3FZF+74kpXvo+p0Cw1q651mOMMY8B/wO411p7NvhzXcYYjDHFU44SFgDNs62hq2sAv9+Z7Y+Flc+XQ2dnv9tlXJcrb50421sphrLvVxsiGhweZXB4NCTPH2qx/HufK/U9dvru9Xqm/SAd7lVGDwP/BGyw1p66ovll4AfA3xpjbgMygL3hrEe+3JW3TtywrpJtnzRH/FaKjuNQv6+VD7efICMzlU3fWUX5fA0RiYRbuOcQfg6MAa8YYy5su9da2wX8iMDKoj8gsOz0meBks7jkylsnftZ4LuK3UhwdmWDHm5amY+dYuKSQex5eRnpGSlhfU0QCwr3KaNq9h7W2HfhaOF9fZufKWyeuqi6m8/xwxG6l2NEWGCIa7B/llrsXs/Km+VpFJBJBOlNZLrrarRMXV+SG/VaKjuNwaG8LH20/SWZ2Kpu+s5KyeRoiEok0BYJc5spbJ4b7VoqXDREtLeKeh4yGiERcokAQ15xt7WPb5iMM9o9y6z2LuXGdhohE3KRAkIhzHIeDn7awe8eFIaJVlM3T3cxE3KZAkIgaHRln+xuWU41dLFpaxN0aIhKJGgoEiZizrX1s++1hBgfGuPWeJdy4bp6GiESiiAJBws5xHA5+8jm7dzaRlZPG17+7itIKDRGJRBsFgoTVyPA4O96wnDreRVV1YIgoLV1DRCLRSIEgYdPe0se2zYcZGhjjq19bwoq1GiISiWYKBAk5x3E48PHn7HkvMET02DOrKCnXEJFItFMgSEgNDY6x9ZV6Tp/opqqmmLsfNKSl689MJBbonSoh0/55L+9uOcpA3yi3fW0pdWsrNEQkEkMUCDJnjuPw2cefs2fnSfIKMnnsmdWUlMfHDUNEEokCQeZkeGic7W8c5cyJbhabYp54Zi39AyNulyUi10GBINet7fNetm0+wvDQGLdvWErtmgrSM1IUCCIxSoEgs+Y4Dp/taWbPe03k5KXz+DOr8ZVpiEgk1ikQZFaGh8bZvuUoZ052s2SZjzsfqNEqIpE4oXeyzFhbcy/bXjvM8NA4t99XTe3qcq0iEokjCgS5Jsdx2L+7mY/fbyI3P4PHn6nTEJFIHFIgyJcaHhrj3S1HaT7Zw9IbAkNEqWn6sxGJR3pny7Q62/vZ+ko9I8Pj3HF/NctXaYhIJJ4pEOSqzpzs5u3fNJCekcLj31tDcWm22yWJSJgpEOQLjhxo4723jlHky+bBJ+vIyklzuyQRiQAFglzkOA57PzjNJ7tOU1lVwH1fX675ApEEone7AIEw+GjHSQ58/Dk1daXctbGGpCSv22WJSARFJBCMMXcB7wJ/Ya39SXBbKfBLYBEwDHzfWrsnEvXI5RzHYde249Tva6VuTQW3bViqyWORBBT2j4DGmBzg74GtVzT9GHjfWlsD/CnwgjFGe6EI8/sddm49Rv2+VlbeNF9hIJLAIjEm8E/Ac8C5K7Z/E/hnAGvtLmAU+EoE6pEgv99h+xtHOXqwnbW3LuCWuxcrDEQSWFgDwRizEciz1r5yxfYiwGOtnRoSZ4DKcNYjl0xO+tm2+TCNDR3cdMcibrqjSmEgkuDmNIdgjNkHLJiuGfg7YMNcXuNaioqic328zxe9l3aYGJ/klf+7j5P2HPc9upz1dy4O6fNHc9/DTX1PTPHS9zkFgrV2zXRtxpjbgHLgY2MMQDHwiDGm0Fr7N8YYjDHFU44SFgDNs62hq2sAv9+5jurDx+fLobOz3+0yrmp8fJK3X22guamH2++rZslyX0hrjea+h5v6rr7HAq/XM+0H6bCtMgrOC5Rc+N4Y86/ApxdWGQEvAz8A/jYYHhnA3nDVIzA2OsHWX9fTeqaXuzbWcMPKcrdLEpEo4uZ5CD8isLLoDwgsO33GWut3sZ64NjoywRsvH6KjtY97H1lGTW2p2yWJSJSJWCBYa//wiu/bga9F6vUT2cjwOFteOkhXxyAbNi1nyTKf2yWJSBTSmcpxbmhwjNd/dZDz3UPc/3gti5YWuV2SiEQpBUIcG+wf5bVfHWSgd4QHn6ijsqrQ7ZJEJIopEOJUf+8Ir714gOGhcR765goqFuS7XZKIRDkFQhzq7Rnm9RcPMDo6wcPfWkHZvDy3SxKRGKBAiDM9XUO8/uIBJib8PPrUSt37WERmTIEQR7o6B3n9VwdwHNj09EqKSqLzLG4RiU4KhDjR2d7PlpcO4k3ysumpGykoznK7JBGJMQqEOHC2tY8tLx0kNS2ZR59aSV5BhtsliUgMUiDEuNbm87z5cj0ZmSk8+tRKcvLS3S5JRGKUAsFl+xs7aWjqpraqkNXVszuD+PNTPWz9dT3Zuek88u0byc5JC1OVIpIIFAgu2t/YyfObGxib8LPrYBvPbqqdcSicPtHF2682kFeYySPfvpHMrNQwVysi8U53UXdRQ1M3YxOB6/mNTfhpaOqe0c+dtOd469cNFBRnsenplQoDEQkJBYKLaqsKSU0O/ApSk73UzuDSEo2HO3jntw34yrJ59KmVpGekhLtMEUkQGjJy0epqH89uqp3xHMLRQ+3sfNNSNj+PB5+oIzVNvz4RCR3tUVy2uto3o3mDIwfa2Ln1GPMX5fPAN+pISUmKQHUikkgUCDHg+JEOdm49RmVVAQ98o47kZI30iUjoac8S5U6f6OLd14+SU5RBT14qh5q63C5JROKUAiGKtZ45z9u/OUx6bhofnh9ix2etPL+5gf2NnW6XJiJxSIEQpTrb+3nzlXpy8tLxVOYyMjn75akiIrOhQIhCPecG2fLSIdLTk3nkWzeyoqZ41stTRURmS5PKUabv/DCv/+ogHi888tRKsnPTWJ07u+WpIiLXQ4EQRQYHRnn9VweZmPCz6enLr1o60+WpIiLXS0NGUWJkeJzXf3WQocExHvrmCt3cRkQiToEQBcZGJ3jj3w/R1zPMxm/UUVqR63ZJIpKAFAgum5jws/XXDXS297Ph68uZv6jA7ZJEJEGFfQ7BGPMfgT8FxoFJa+2q4PZM4OfAWmAC+KG1dku464kmjuOw401L65nz3PvIMqqqi90uSUQSWFiPEIwxjwNPAuustSuA+6c0/xDos9YuBR4BfmaMSaiB870fnuH44Q5uvrOKmtpSt8sRkQQX7iGj/wT8tbW2H8Bae3ZK27eA54PbG4FPgY1hridqHD/SwSe/P0VNXSmr11e6XY6ISNgDYTmw3hjzoTHmU2PMH09pWwCcnvL9GSAh9owdbX1sf8NSNj+Xux6owePxuF2SiMjc5hCMMfsI7NivphRIIrCTvw0oBj4wxlhr7ftzed2pioqic5TJ58u56va+88O8/ZvD5OSm8Z0/vpms7Pi7D/J0fU8E6ntiipe+zykQrLVrvqzdGHMGeNFa6wc6jDHbgJuA9wkcESwELlypbQGwY7Y1dHUN4Pc7s/2xsPL5cujs7P/C9vGxSX77/z5jdGSCh55ZzdDwGEPDYy5UGD7T9T0RqO/qeyzwej3TfpAO95DRvwEPABhjsoDbgQPBtpeBZ4Nt1cA64K0w1+Max3F49/UjdHUMsGHTDRT6stwuSUTkMuEOhP8FVBpjGoCPgRestduCbc8B+caY48AW4PsXJp/j0Z73mmhq7OLWe5awcEmR2+WIiHxBWM9DsNYOA89M0zZIYElq3Dt6sJ39u5tZvqqcFV+Z53Y5IiJXpTOVw6y1+TzvvXWMeQvzuW3DUq0oEpGopUAIo77zw7z9agM5+enc/9hykpL0zy0i0Ut7qDAZHZngzZfrcRx48Ik60tJT3C5JRORLKRDCwD/pZ9vmw/T2DHP/Y7XkF2a6XZKIyDUpEMLgndcO09zUw+33VzNvYb7b5YiIzIgCIcTq97Xy8a5TrFw3n+Ury90uR0RkxhQIIdTc1M2ubY1ULy9h/d2L3S5HRGRWFAgh0tM1xDu/PUxBcRaPf2cNXq+Wl4pIbFEghMDI8DhvvnyIpCRvcEVR2O87JCIScgqEOZqc9PPWqw0M9o/ywDdqyclLd7skEZHrokCYA8dxeP/tRtqae7nrQUPZvDy3SxIRuW4KhDk48PHnHD3YztpbF+gWmCIS8xQI16mp8Rwf7TjJkmU+1t2+yO1yRETmTIFwHc6dHeB3rx3BV5bD3Q8ZXbBOROKCAmGWhgbG2PrretLSk9n4RC0pKUlulyQiEhIKhFmYGJ9k66v1jAyPs/EbdXF5P2QRSVwKhBlyHIcdW4/R0drPvQ/fgK8sPm6qLSJygQJhhvZ+cJrjhzu4+c4qFptit8sREQk5BcIMHD/SwSe7TlNTV8rq9ZVulyMiEhYKhGs429rH9jcsZfNzueuBGq0oEpG4pUD4EgN9I2z9dT2ZWak88HgtScn65xKR+KU93DTGxyZ585V6Jif8PPhEHRmZqW6XJCISVgqEq3Ach9+9foTuzkE2bFpOoS/L7ZJERMJOgXAVu3c2caqxi6/eu5QFiwvdLkdEJCIUCFc4erCdz/Y0U7u6grq1FW6XIyISMWG9k4sxpgb4FyAfSANestb+dbAtE/g5sBaYAH5ord0SznqupfXMed576xjzF+Xz1a8t0YoiEUko4T5C+AfgFWvtKmAd8EfGmJuCbT8E+qy1S4FHgJ8ZY7LDXM+0enuGefs3DeTmp3Pf12tJStLBk4gklnDv9Rzgwl1jMoPfdwS//xbwPIC1thH4FNgY5nquanRkgjdfqcdx4MEnV+gWmCKSkMIdCH8JfMsY0wKcAp6z1p4Kti0ATk957Bkg4qcB+/0O2zYfpq9nmPsfqyWvICPSJYiIRIU5fRQ2xuwjsGO/mlLgWeCX1trnjDHlwE5jzKfW2j1zed2piormNsq09dVDNDf18Mg3b2TVV0KXRz5f4l78Tn1PTOp77JtTIFhr13xZuzHmz4HFwce2GWO2A3cAewgcESwEOoMPXwDsmG0NXV0D+P3ObH8MgPq9LXzywWlW3jSf+YsL6Ozsv67nuZLPlxOy54o16rv6nmhire9er2faD9LhHjJqAh4AMMbkALcD9cG2lwkcQWCMqSYw6fxWmOu5qLmpm12/O87CpUWsv2txpF5WRCRqhTsQ/hD4gTHmAIGjgn+31m4Ntj0H5BtjjgNbgO9bayMSsz1dQ7zz28MUFmex4dEb8Hq1vFREJKzLaay1e4Fbp2kbBJ4M5+tPp+V0D6lpyWx8oo6UVN0CU0QEwhwI0ap2dQXLV1XoyEBEZIqEDASPx4NOQhYRuZxOxxUREUCBICIiQQoEEREBFAgiIhKkQBAREUCBICIiQQoEEREBFAgiIhKkQBAREUCBICIiQQoEEREBFAgiIhKkQBAREUCBICIiQQoEEREBFAgiIhKkQBAREUCBICIiQQoEEREBFAgiIhKkQBAREUCBICIiQQoEEREBIHmuT2CM+S7wX4DlwF9aa38ypS0T+DmwFpgAfmit3XKtNhERibxQHCF8Bnwb+LertP0Q6LPWLgUeAX5mjMmeQZuIiETYnAPBWltvrT0M+K/S/C3g+eDjGoFPgY0zaBMRkQgL9xzCAuD0lO/PAJUzaBMRkQi75hyCMWYfgZ331ZRaaydDW9LsFBVF5yiTz5fjdgmuUd8Tk/oe+64ZCNbaNXN4/jPAQqAz+P0CYMcM2masq2sAv9+ZQ4mh5/Pl0NnZ73YZrlDf1fdEE2t993o9036QDveQ0cvAswDGmGpgHfDWDNpERCTC5hwIxpinjDGfA08C/90Y87kxZnmw+Tkg3xhzHNgCfN9a2z+DNhERibA5n4dgrX0ReHGatkECQTGrNhERiTydqSwiIoACQUREghQIIiICKBBERCRIgSAiIkAIVhnFov2NnTQ0dVNbVcjqap/b5YiIRIWEO0LY39jJ85sb2L6vhec3N7C/sfPaPyQikgASLhAamroZmwhcmHVswk9DU7fLFYmIRIeEC4TaqkJSkwPdTk32UltV6HJFIiLRIeHmEFZX+3h2U63mEERErpBwgQCBUFAQiIhcLuGGjERE5OoUCCIiAigQREQkSIEgIiKAAkFERIJieZVREgTuDxqNorWuSFDfE5P6Hhum1Jp0ZZvHcaLrBvWzcBvwe7eLEBGJUbcDu6ZuiOVASAPWAW3ApMu1iIjEiiSgHPgEGJ3aEMuBICIiIaRJZRERARQIIiISpEAQERFAgSAiIkEKBBERARQIIiISpEAQEREgti9dEROMMXcB7wJ/Ya39icvlRIQx5qfAvQROehkg0PdP3a0qfIwxNcAvgCKgC/ietbbR3arCzxhTBPwSWAKMAY3As8BVpOIAAAIvSURBVNbaTlcLizBjzH8D/hpYYa2td7mcOdERQhgZY3KAvwe2ul1LhG0l8OZYCfwYeMnlesLtn4GfWmtrgJ8Cz7tcT6Q4wD9Ya421dgVwAvg7l2uKKGPMGmA9cNrtWkJBgRBe/wQ8B5xzu5BIstZusdaOB7/9CJhvjInLvzVjTAmwBngxuOlFYI0xJu7v0Wqt7bbW7pyyaTew0KVyIs4Yk0bgA8CfuF1LqMTlmzQaGGM2AnnW2lfcrsVlfwa8Ya31u11ImFQCLdbaSYDg19bg9oQRDPw/AV5zu5YI+hvgBWvtKbcLCRXNIVwnY8w+YMF0zQQOnTdErqLIuUbfSy/sHI0x3waeBu6IVG3imv9DYL4oUebJbgG+AvzI7VpCSRe3CwNjzG3Aq8BQcFMxgQnW/22t/RvXCosgY8xjwD8C98bTJ6grBYeMjgFF1tpJY0wSgYnl6kSZXDXG/CNwI/CItXb0Wo+PB8aYHwF/TmAyHWA+cBb4I2vtO64VNkcKhAgwxvwr8GkCrTJ6mMAnxg3W2uNu1xNuxpidwM+stS8YY74L/Adr7d0ulxURxpj/CdwCPGStHbrW4+OVMeYU8HCsrzLSkJGEw88JfHJ6xRhzYdu91tou90oKqx8AvzDG/BXQA3zP5XoiwhhTC/xXAkdIHwZ/103W2sdcLUyum44QREQE0CojEREJUiCIiAigQBARkSAFgoiIAAoEEREJUiCIiAigQBARkSAFgoiIAPD/AaEdXqsugrpEAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "pw7y6oFUjEaP",
"colab_type": "text"
},
"source": [
"## Regularization\n",
"\n",
"- #### Keep all the features but reduce magnitude/value of the parameters\n",
"- #### Works well when we have a lot of features, each of which contributes a bit to predicting y\n",
"\n",
"#### We are going to discuss about two types of Regularization today -\n",
"\n",
"- #### L1 Regularization\n",
"\n",
"- #### L2 Regularization\n",
"\n"
]
},
{
"cell_type": "code",
"metadata": {
"id": "Sc3Atp2x45pB",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 326
},
"outputId": "d2bdd6fd-c2eb-435f-ab5e-56b2d2ab192f"
},
"source": [
"np.random.seed(0)\n",
"x = 2 - 3 * np.random.normal(0, 1, 30)\n",
"y = x - 2 * (x ** 2) + 0.5 * (x ** 3) + np.random.normal(-3, 3, 30)\n",
"\n",
"plt.figure(figsize = (18,5))\n",
"plt.subplot(131)\n",
"plt.axis([-5,5.5,-80,20])\n",
"plt.scatter(x, y, s=20)\n",
"\n",
"plt.subplot(132)\n",
"plt.axis([-5,5.5,-80,20])\n",
"x = np.arange(-4, 5, 0.05)\n",
"y = x - 2.5 * (x ** 2) + 0.5 * (x ** 3)\n",
"sort_axis = operator.itemgetter(0)\n",
"sorted_zip = sorted(zip(x, y), key=sort_axis)\n",
"x, y = zip(*sorted_zip)\n",
"plt.plot(x, y, color='m')\n",
"\n",
"plt.subplot(133)\n",
"plt.axis([-5,5.5,-80,20])\n",
"x = np.arange(-6, 4, 0.05)\n",
"y = x - 1.5*(x ** 2) + 0.3 * (x ** 3)\n",
"sort_axis = operator.itemgetter(0)\n",
"sorted_zip = sorted(zip(x, y), key=sort_axis)\n",
"x, y = zip(*sorted_zip)\n",
"plt.plot(x, y, color='m')\n",
"\n",
"plt.show()\n",
"\n"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABBsAAAE1CAYAAACm3OglAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXCc933n+U+faFyNo3ESxEWQfCBQpChRB2XZkmX5pOUjziQaZycTzVRtkprs7kzVZqtm/9ma2prdZCdbM39MpjbenapwKt6JHTub2JZFx5JlWZIl6qIo8cJDnMRBnA2gG0Cj0cfz7B+AaIImCYDo7qeP96vKRbMb7Of7E5tfPP3B73DZti0AAAAAAIBMcTtdAAAAAAAAKC6EDQAAAAAAIKMIGwAAAAAAQEYRNgAAAAAAgIwibAAAAAAAABlF2AAAAAAAADLKm4kXMQwjJOmvJPVISkgakPQHpmnOGYZxUtK3JJVLGpX0T0zTnM3EdQEAv0IvBgBn0YcB4FcyNbPBlvTvTNM0TNM8KmlI0p8ahuGW9G1Jf2Sa5mFJr0n60wxdEwCwFb0YAJxFHwaATRkJG0zTXDBN89WbHjorqVPSCUlx0zTf2Hz8LyT99i5e2iupSxmagQEAGZKXvSlLvTgvxwoAysP+xD0xgBJz197ksm07o1fbTG5/KumHkiYl/XPTNL980/MxSftN01zYwcv1SBqU9ClJExktFADu3X5Jr0s6qI2fWuWdDPZi+jCAfJXXvZh7YgAl4K59OBvp6H+UtCLpzyX9xh5fq3Xz19f3+DoAkA2tysMb3E2Z6sX0YQD5Ll97MffEAErFbftwRsMGwzD+T0mHJH3FNE3LMIwxbUwd+/j5BknWDhNcSZqSpMXFVVlWZmdg3EkoVKVweCUn13JCsY9PKv4xMj7nud0u1dVVSps9Kt9kuBfnvA9LhfE+2AvGV9iKfXxSYYwxn3sx98T5r9jHJxX/GBmf87brwxkLGwzD+N+1sR7ty6Zprm8+/L6kcsMwPrm5Ru0PJX1vFy+bliTLsnN6k5vLazmh2McnFf8YGV/eSDtdwK2y0Isd6cMfX7OYMb7CVuzjkwpqjHnVi7knLhzFPj6p+MfI+PLGbftwpo6+PCLpf5Z0VdKbhmFI0ohpmr9hGMbvSvqWYRgBbR7zk4lrAgC2ohcDgLPowwDwKxkJG0zTvCTJdYfn3pR0NBPXAQDcGb0YAJxFHwaAX8nI0ZcAAAAAAAAfI2wAAAAAAAAZRdgAAAAAAAAyirABAAAAAABkFGEDAAAAAADIKMIGAAAAAACQUYQNAAAAAAAgowgbAAAAAABARhE2AAAAAACAjCJsAFByorGERqaiisYSTpcCAAAAFCWv0wUAQC6dvTSt02f65XG7lLZsPX+qVyf7WpwuCwAAACgqzGwAUDKisYROn+lXImVpLZFWImXp9Iv9zHAAAAAAMoywAUDJCEfi8rhdWx7zuF0KR+IOVQQAAAAUJ8IGACUjVBNQ2rK3PJa2bIVqAg5VBAAAABQnwgYAJSNY4dfzp3rl97pV7vfI73Xr+VO9Clb4nS4NAAAAKCpsEAmgpJzsa1FfV73CkbhCNQGCBgAAACALCBsAlJxghZ+QAQAAAMgillEAAAAAAICMImwAAAAAAAAZRdgAAAAAAAAyirABAAAAAABkFGEDAAAAAADIKMIGAAAAAACQUYQNAAAAAAAgowgbAAAAAABARhE2AAAAAACAjCJsAAAAAAAAGUXYAKBoRGMJjUxFFY0lnC4FAAAAKGlepwsAgEw4e2lap8/0y+N2KW3Zev5Ur072tThdFgAAAFCSmNkAoOBFYwmdPtOvRMrSWiKtRMrS6Rf7meEAAAAAOISwAUDBC0fi8rhdWx7zuF0KR+IOVQQAAACUNsIGAAUvVBNQ2rK3PJa2bIVqAg5VBAAAAJQ2wgYABS9Y4dfzp3rl97pV7vfI73Xr+VO9Clb4nS4NAAAAKElsEAmgKJzsa1FfV73CkbhCNQGCBgAAAMBBhA0Aikawwk/IAAAAAOQBllEAAAAAAICMImwAAABAzi2GYzr7i2Gl05bTpQAAsoCwAQAAADm1Fkvox39zQVcvzMjlcm3/BwAABYewAQAAADmTTlv6h7+7rNhqQl/4xhG53YQNAFCMCBsAAACQE7Zt6/WfDmpqPKKnTxlq3hd0uiQAQJYQNgAAACAnzr89risfTumhxzt0qK/J6XIAAFlE2AAAAICsMy9M6+yrIzrY16RHn+xyuhwAQJYRNgB5IBpLaGQqqmgs4XQpAABk3Njwgl49c1VtnbX6zCmDTSEBoAR4nS4AKHVnL03r9Jl+edwupS1bz5/q1cm+FqfLAgAgI6YmIvqHv7ukuoYKffEbR+Tx8rMuACgFdHvAQdFYQqfP9CuRsrSWSCuRsnT6xX5mOAAAisLM9ah+/DcXVFldpmd/+5j8ZfycCwBKBWED4KBwJC7PLUd+edwuhSNxhyoCACAz5qaX9cJ3P1J5hU9f/eYDqqjyO10SACCHchIvG4ZxWNJ/kRSSFJb0T03THMjFtYF8FqoJKG3ZWx5LW7ZCNQGHKkIxoxcDyJXpyY0ZDWVlXn31mw+oqrrM6ZLyAn0YQCnJ1Vy2v5D0n0zT/LZhGP9E0rckfSZH1wbyVrDCr+dP9er0i1v3bAhW8NOfW0VjCYUjcYVqAvz3uXf0YuSMbdtKrKeVTKZlpW3Zti0rbUkul3w+j3x+t7w+jzweJlkWm4nRRZ3524uqrCrTs88dUzUB+s3ow8ipZCKttVhSyWRaqWRayURaqZSl1GZv1uYEW5fLJZdr41eP1y2fzy2f3yOfzyOvzyN/mVf+Mg+bu2JXsh42GIbRJOkhSZ/bfOivJf25YRiNpmnOZfv6QL472deivq56PkjfBZto7h29GNkQX0tqYX5VS+GYFsMxLYXXFFtJaD2e1OpKQtYtM7dux+NxqaKqTBVVflVW+VVZVaZgXUC19RWqrS9XVTAgt5ub20IxbM7rpR9eVm19hb7y3DGWTtyEPoxMs21bsZWElhZiiizFFV1a0/JSXMvRdcVWEoqvJZVMpDN2PbfbpUCFT+Xlvo1fK3wqr/CrvNKnqmBA1cEyVQXLVFldRpAMSbmZ2dAuadI0zbQkmaaZNgzj+ubjO2qsoVBVFsv7dY2N1Tm9Xq4V+/ikwhtjo6Se3Xx9gY1vt24eX2RlXad/YiqRsm48dvqMqSdPdKimimm5u7CnXpzrPiyV1vu8UCwtxDRkzml8ZEHjo4taDMduPOf1udXQWKX6hkpVVvlVUeVXRVWZysq8crtdcntccrtdsm0pmUgpkUgrsZ7WejypleV1LUfiii7FNTG6pMR66sbrejxuNTZXqWV/jVrbatTaXqPm1qB8fo8T/wluKMS/v93azRht29bZ10b00o8uq629Vr/z3z6qcsLzW3FPnGcKaXy2bWtpYU3jowuamoho5npUM9ejWoslb3yN2+1SbX25auoq1NRcrcrqshshrr/MszFTwe+Vz+eR3++R2+PafG1JtmTLlm3ZSiatm/p06kavjq0mFFtJaHU1odWVdYVnVxVbXdR6PLW1WJdUVV2mmtpyBWvLVVNXrrr6CtU1VKi+oVK1deVyZyiMKKS/w3tR6OMriC2Bw+GVHf10JBMaG6s1N7eck2s5odjHJxX/GHc7vkJbfnDr+EamovLc8kNNj0syh+fV3RrMcXUb3G6XIx++nZTLPizx7zhf2LatuellDV6Z07WhBS1thgvllT61tNXIONai+oYK1YUqVV1TdmN67V7GZ9u21mJJRRbWtLQQ09LCmsKzK+q/MK3z74xLklwuqa6hUi37g9rXXqvW/TWqCuYufCyUv7+92M0YLcvWGy8N6tIH13XAaNBnnu3Vyuq6VlbXs1ojvTi7iv19XgjjiyyuaWx4QVPjEU1PRLS6snFamdfrVn1jpboOhRRqqlJdqELB2nJVBcu2zATbboyWNt9LLv1qOYXbJb/XI3+5R5U7rDOVTGtleV0r0Y3/LUfjN/7/1MSSBi7PKHXTD43cbpeqawIK1gU2Aom6jUCipq5cwZrAjo/HLYS/w92yLFuL4Zhq68rV0lqT9+Pbrg/nImwYl9RmGIZnM8H1SNq3+ThKTC4++EZW1jUyFS2YD9fZVAzLD9hEM2Poxdixlei6rnw4pauXZhRdisvtdqmts1ZHjreq/UC9auvLs7Zu1+VyqaLSr4pKv1rba248btu2VpfXNTe9ornpZc1OL2vg0qwufzAlSaquCWhfe432ddSqvbtOlWxImBOx1YRe+sEVXR9b0vHH2nXy092s6b4z+jDuKp22NDUe0bWhsK4NLSiysCZJqqwuU2vHRrDauj+ouobKvFpe5vV5Npe+Vdz2edu2FVtNKLK4puhifOPXpTVFFtc0MxlVYn3rUo/qYNmNACJYG7gxO6KmrtzxWW2ZZtu2liNxXR+LbMwaHNmYKfLMV3rV0lqz/QvkuayHDaZpzhqGcV7SNyV9e/PXD1ibVnpy8cH37KVpnf6JKY9LGb1Goc0OkDZqPn2mf+vygxf71ddVXzBjkNhEM1PoxdiObdu6Prakj96b1LXBsGxb2t9VqxOf6FT34ZDKAj5H63O5XKoKBlQVDKj7cIOkjZ8AhWdXNDUe0fXxiK4NLci8OCNJqm+sVHt3ndq769TaXivvDn9Shp2bnojop39/WfF4Sk9/2VDv0cIKs3ONPozbsW1b05NRDVye1dCVOcXXkvJ4XNrXUaujD7Wpo6deNXXlTpe5Jy6XS5VVZaqsKtO+9q3P2bat+FpqM4jYCCAim0HEsDmv+Fpyy9eXV/g2Q4hytbbVyOt3bwYTAQXKfXkfdiYTaYXnVjQ/vaKpyaimxpe0urwxY6W80qeuQyF19oRufJ8rdLlaRvGHkv6LYRj/i6RFSf80R9dFnsjFB99sXaNQZweEI3F5bkm9PW6XxmaWVRnwFVRwwiaaGUMvxq+xbVujA2Gde2tMs1PLClT4dPxku/oeaFWwNr9vcN1ulxpbqtXYUq1jj+yXbdtamFvV2MiixocXdOH9SX34zoS8XrdaO2rUcaBeXQdDeT+ufGdZts6/Pa53Xx9VVbBM3/jdB9XQXFrLGfaAPgxJ0sryui6fn9LVC9Najq7L63Wr61BIPb1Nau+uK7qf4N+Jy+Xa3GjSp5a2X18eux5PKbq0pujS1hkR18eXdPXyjHTT5Fevz62q6o0NKquqy1QZLLvx+8oqvyqryxQo92V9VsiN5YCb4Ul0ce3GksClzdkqklRZtTGDr7W9Vvvaa1TXUJH3Yclu5SRsME2zX9JjubgW8tOdPviGI/GMfXDMxjUKeXbA7ZYfJJJp/ce/vSBvgQUn0sYMh3z/b57v6MW41cToos6+OqK56WVV1wT05BcOyTjaUrCzAFwul0JNVQo1VenBx9qVTKR1fXxJ48OLGh9Z0C9fHtIvXx5SXUOFug6F1HUwpKbWYF5NR8530aW4XnmhX1MTER0wGvTpLx12fNZLIaEPl7aPZ5BdPHddI1fnZdtSe3edHnmyW92HQvKXFcR2ejlVFvDeCJVvVVdboeGh+Rsf6Jcjca2uJLSyvK7JsSWtLq9vbH55m9csC3gVKPcpUO5TWblXgYBPXp9bHq9bXu+vfnW73bJtW7atzV9t2ZaUSm1scpzc3EQzvpZUbHVjE8211a2nMblcG0v9Qo2VOtTXpFBzlRqaqlQVLCu6cOFWvKORE7lYd5+Na+QiJMmWW5cfpNKWLFtKpix9PCGtUIITAJm1GI7plz8b1PjwoqqCZXr6y4YOH2kuug/dPr9HnT0bU1Kljc3WRgfCGh0M6/zZcX3w1rgCFT519YTUeTBUUj9N3C3LsnXp3HW9/dqIXC7pM8/26vCRpqK/UQYywbJsDfXP6dxbY1qYW1VZwKsHHt2vIw/uY6bVHnh9HtWFKlQXuv1eEZZla211I3xYXV7XyvK64mspra8lFY9v/LoWS2oxHNN6PKlUypKV3vkGrC6X5PN75S/zqCzgVUWVX/WNFZtHOZcpWBtQTV25qmsCJXsUKGEDciIX6+5vXOPM1j0b9nKNQt+c8OblB6vxpP6vv7uotZvOWy6U4ARAZqSSaZ17a0wfvD0ur9etx58+oPtPtBXsTIbdqqkr1wOP7tcDj+7XejypseFFjQ6GNXx1Xv0XpuXxuNTWWafOgxuzHnJ5wkU+m5te1i9+MqC56WW1d9fpyS8cVrC2ML4PAk5Kpy0NXJrVubfGFFlcU11DhZ4+ZejgfY3y+gg2s83tdm0sodjFhsG2bSuVspROWTfCB5dr45QOl2tjBp3L5ZLXtzHzgcD17ggbkDO5WHd/sq9FT57okDk8n5FrBCv8eu6Zg/rrlwfkdbtk2Sq4zQk/Xn4QjSWUSltbniuk4ATA3kyNR/TKj/sVXYrr8JEmPf6ZHlVUFk4vy7SygE+H+pp0qK9J6bSl6YmoRgfnNToQ1thPF/T6TwfU0Fylzp56dfSE1NRaXXQzP7azEl3XO6+NyLw4o/JKnz73tfvU09vIzTWwDdu2NXhlTm//YkTLkbgamqr0+a/36YDRwL+fPOdyueTzeeQjDMoIwgbkVC7W3ddUlam79dc3mNmNj0+fGJ2K6ruvDMrrcSuVtvTNzx7K6R4HmTwF4/LIgm6epOFxFV5wAmD30ilL77w+qvNvj6u6JqCvfvOY2jrrnC4rr3g8brV11qqts1af+EyPlsIxjQ5uLLc499aY3n9zTIFynzoO1KmjJ6SqR4p7xkNsNaGXzl7WO2+MSrat44+166HHO1QW4LYR2M7UeERvvjKk2allhZoq9aV/dL86e+oJGVCS+K4B3OLj0yfcbpfiia3n/n73Z4M6YTTd+ICezSMxM3kKxscbXd68JMTtcauvqz5T5QLIQ0sLMf307y8rPLuqvuOtevzpA2xAtg2Xy6W6hkrVNVTqwZMdiq8lNT6yqLGhsMaGF3X10qx+9qMram4LquNAvTp7Qgo1VRbFB4noUlwfvTuhyx9OyUpbOtTXpEef7FY1M+CAbS1H4vrlz4Y0cnVelVV+PX3K0OH7i28vHGA3uOMAbnK70ydudvMeB9k8EvNup2A03sPr3W6jSy/7NQBFbdic089fNOVyufSlf3S/ug6GnC6pIAXKf7XcwrJszU4ta356RVc+mtI7r43qnddGVVnlV1tX3cbsiI7agvpwblm2xkcWdOncdV0bWpDb7dLh+5v1zKleWdr5RmlAqbIsWxfem9Q7r49Ikh75VJceeGQ/m80CImwAtrjdh/KbfbzHQbaPxLzbKRg99/B6hb7RJYCdsyxbb/9iROffHlfTvmp9/mt9BfXhN5+53S61tAV19Hib7j+xT6sr6xofXtTY8ILGhhZ09eKMJClYG1BbZ532ddSopS2o6ppAXs18sG1bc9MrGrg8o8Erc4qtJFRe6dOJT3So7/g+VQXLFGqs0tzcstOlAnltY/PUq5qbXlFnT70+9flD9FvgJoQNyBvZXJKwU7f7UC5JAZ97y+aQI1PRrB6JmelwIBengQBwXjKR1ss/uqLRgbCOPLhPT3y2p2SP28qFyqoy9R5rUe+xFtm2rYW5VU1eW9LktSUN9c/qyodTkqRAhU/NrdVq3hdU076N8+ID5b6c1hpbTWhqPKLxkY1gZHUlIbfbpY6eeh0+0qyuQyHeK8AOpdOW3vvlNX3w1pgCFWyeCtwJYQPyQjaXJOzG7T6UP/fMQXW1BLeEINmeKbCXcOBOoU0uTgMB4JyV5XWd+d5FhedW9MnPHdTRE21Ol1RSXC6XQk1VCjVV6dgj+2VZG+HDzPWoZq8va+Z6VNeGFm58fUWVX/UNlapv3DgjvromoGBtuaqCZXv60J9OW4qtJLS0EFN4dlXh2VXNTEUVWViTJPnLPGrvrldHT726D4VUFsht6AEUusjiml7+4RXNTi3LONqsJ57p4d8RcAeEDXBctpck7NZOPpTnYqbAvYQD24U2uTgNBEDuLS3E9MJ3PlI8ntKp3zqqjgNs/uo0t9ulhuYqNTRX6ciDG4+tx1OanYoqPLuqhblVLcyv6vIHU0rdsk9QZZVfgXKfysp9Kq/wqSzglcfjltvtktvjktvtUiplKZlMK5VIK5lIKxZLaiUaV2wlIdve+loNzVW671iLWttr1NhSzQwG4B7Yti3zwozeeHlQLpdLn/96n3p672UnLaB0EDbAcXfbn8CpD8Y7+VCei5kCuwkH8i20AZAb8zMreuG7H8m2pa/9zgNqbKl2uiTcQVnAq/buerV3/yoMsixbq8vrWo7EFV2KazkS18ryuuKxpOLxpMKzK4rHU7LSlizL3vhf2pbX65bXv3EWvM/vUaDcp/1ddaoKBlQdLFN1TUChpkqV0/+BPUsm0nr1J1c1eHlW+zpq9MyzvaoKsjcDsB3CBjiukDcv3OtMgUzuU5GPoQ2A7Jq5HtUL3/1I/jKvnn3umOpCFU6XhF1yu12qrgmouiagfR1OVwPgVtGlNZ3520tanF/Vo0926cGTHRxnCewQYQMcV6qbF2Z6n4pCDm0A7N7s1EbQECj36avffIAd0AEgw8aGF/TyD69Ikr7820e3zEoCsD3CBuSFUtu8MBtLHko1tAFK0dz0sn70nQsqC/j0td95gOm8AJBBtm3r/NvjevsXI6pvqNQXf/OIgrXlTpcFFBzCBuSNnSxJyIfjMW91LzVla8lDqYU2QClamFvVj77zkcoCXoIGAMgwy7L12j8M6MqHUzp4X6M+/SVDPr/H6bKAgkTYgKzLVECQL8djZqKmbC554MQJoHgtR+J64W8+ksfj1le/eYylEwCQQclEWi/94LKuDS3oocc79OiTXXK52J8BuFeEDciqTAUE+XjSwl5qYskDgN2KryX1wt9cUDKR1tf/m+NM6QWADIqtJnTm+xc1N72sJ79wSEce3Od0SUDBI2xA1mQyIMjHkxb2WhNLHgDsVCpl6cXvX9Ty0pqefe6YQk1VTpcEAEUjurSmH33nI8VWEvrCN46o+1CD0yUBRYGwAVmTyYAgH09ayERNLHkAsB3btvXqi6ZmJqP6/Nf7tK+j1umSAKBoRBbX9MO//lDJRFpf+eYDamkLOl0SUDTcTheA4pXJgODjZQd+r1vlfo/8Xrfjyw7ysSYAxefcW2MauDyrR5/sUk9vo9PlAEDRWAzH9IP/97xSybS+StAAZBwzG5A1md6XIB+XHeRjTQCKx1D/nN55bVSHjzTpocc7nC4HAIrG7PSyfvBfz0u29NXfOa5QY6XTJQFFh7ABWZXpD+P5uOwgH2sCUPgW51f1yo/71byvWk99yWBHdADIkPDcql74zkdyuVz66jePqa6BoAHIBsIGZB0fxgFgdxLrKf3k7y7L6/Po879xRF4vqx4BIBMii2t64TsfyeNx6dl/fEy19RVOlwQULcIGAADyiG3bevXMVUUWYnr2uWOqqi5zuiQAKAqry+v60Xc+Ujpt6ff+xROSx+mKgOLGj0oAAMgjF9+/rqH+OT32VLf2d9U5XQ4AFIX4WlI/+u5Hiq8l9exzR9XYUu10SUDRI2wAACBPhGdX9ObPh9TZU6/jj7U7XQ4AFIXEeko//psLii6u6Uu/eURNrZw6AeQCYQMAAHkgmUzrpR9cUaDcp6e/zIaQAJAJ6bSln/79Zc1NL+tzX+9TWyczxoBcIWwAACAPvPnKkBbDMT3zbK/K2VQXAPbMtm298dKgxkcW9dQXD6v7UIPTJQElhbABAACHjQ7M6/IHUzr+2H72aQCADPno3UldPj+lB0+2674HWp0uByg5hA0AADgovpbUqz+5qlBTpR59stvpcgCgKIxcndebrwzpgNGgx56itwJOIGwAAMBBr780qPW1lD7z5V55PHxbBoC9mpte1ss/uqKm1mp95tle9sABHMJdDQAADhnqn9Pg5VmdeKJTDc1VTpcDAAUvtprQmb+9qEC5T1/6zfvl83mcLgkoWYQNAAA4YC2W1Gs/HVBDc5UePMkxlwCwV5Zl66UfXFZ8LaUv/eb9qqhis13ASYQNAAA44K1XhpSIp/SZLxssnwCADDj76rCuj0X01BcPM1sMyAPc3QAAkGMjA/MyL87ogcf2K9TEDTEA7NVQ/5w+fGdC9z+0T8b9zU6XA0CEDQAA5FQqZenH37+gYG1AD3+i0+lyAKDgLcyv6pUf96u5LahPPNPjdDkANhE2AACQQ+fevKaF+VU99cXD8rJxGQDsSTKR1j/8f5fk83n0+a/3sSwNyCP8awQAIEeWFmL64Oy4jj7Upv1ddU6XAwAF7/WXBrS0sKbPfa1PVdVlTpcD4CaEDQAA5MgvfzYkj9etz33lPqdLAYCCN3B5VuaFGZ34RIfaOmudLgfALQgbAADIgdHBsMaGFvTwE52qCgacLgcAClp0aU2v/cNVNbcF9fAnu5wuB8BtEDYAAJBlqZSlX748qNpQhY4+3OZ0OQBQ0NJpSy//8Iok6bNfuU9ut8vhigDcDmEDAABZ9tG7E4ouxfXJz/aweRkA7NF7v7ymmevLeuqLhxWsZaYYkK+44wEAIItiqwmde2tM3YdCau+ud7ocACho18eXdO7NMfUebdHB+5qcLgfAXRA2AACQRe++Map0ytLJpw84XQoAFLRkIq2f/9hUsDagT37uoNPlANgGYQMAAFmyML+qK+endOTBfaqtr3C6HAAoaG//YkTRpbiePmXI5/c4XQ6AbXj3+gKGYfwnSc9IWpe0Iulfmqb53uZzzZL+SlKXpDVJv2+a5tt7vSYAYCt6cX46+/Nh+fwenXii0+lSAGQZfTi7ro8t6cL7kzp6ok37OjjmEigEmZjZcEbSUdM0H5D0J5K+e9NzfyLpNdM0D0v6I0nfNgyD7WIBIPPoxXlm8tqirg0t6KHHO1Re4XO6HADZRx/OkmQirVc2l0889lS30+UA2KE9hw2mab5gmmZy87dvSdpvGMbHr/vbkv5i8+ve0EbS+/BerwkA2IpenF9s29bZX4yoKlimoyc46hIoBfTh7Dn76rCWI3E9/WWWTwCFZM/LKG7x30n6sWmalmEYIUku0zTnb3p+TFK7pHd386KhUFUGS9xeY2N1Tq+Xa8U+Pqn4x8j4sNUOUM0AACAASURBVI2M9+Jc92GpsN8HVy/PaPb6sp79raNq3Xf76b6FPL6dYHyFrxTGmEXcE2fI6OC8Lp67rsc+1a0HHmrP6Gvnw/iyrdjHyPjy27Zhg2EY5yR13OHpZtM005tf948l/Y6kJzNX3oZweEWWZWf6ZW+rsbFac3PLObmWE4p9fFLxj5HxOc/tduX8hs/pXpzLPiwVxvvgTmzb1ssvXFGwNqB9XbW3HUchj28nGF/hK4Qx5roXO92HpdK7J06lLP3gOx8qWBvQ0UfbMlpPPowv24p9jIzPedv14W3DBtM0H9ruawzD+A1J/5ukZ0zTnNn8c2HDMGQYRsNNSW6HpPEdVQ4AuIFeXDiGzXnNz6zoM1825PFw6BNQLOjDuffBW2OKLK7p2eeOyudj+QRQaPZ8F2QYxrOS/r2kL5imOXrL09+T9IebX/dJSeWS3t/rNQEAW9GL84Nl2Xr3jVHVhip06Eiz0+UAyCH6cGYthmM6d3ZMB/ua1N5d73Q5AO5BJvZs+EtJCUnfNwzj48eeMU0zLOlfa2O33d/TxjE/v2uappWBawIAtqIX54HBK7NanI/pc1+7T243G80DJYY+nCG2bev1nw7I63Xric/0OF0OgHu057DBNM3Guzw3Lemze70GAODu6MXOsyxb771xTaHGSvX03vGvA0CRog9nztVLs5q8tqQnv3BIFVV+p8sBcI9YTAoAQAZcvTijyOKaHvlUl1wuZjUAwL2IryX15itDat5Xrb7jrU6XA2APCBsAANgjy7L1/pvX1NhSpa5DIafLAYCCdfbVEa2vJfXUFw8T3AIFjrABAIA9GuqfU3QprhOf6OTmGADu0dz0sq58OKVjD+9XqCm3R0wDyDzCBgAA9sC2bX3w1pjqQhXMagCAe2Tbtt54eVCBCp9OPNHpdDkAMoCwAQCAPRgbXlB4blXHT7YzqwEA7tHglTlNT0T12FPdKgtk4sA8AE4jbChw0VhCI1NRRWMJp0sBgJJ07q0xVQXLdKivyelSAKAgJZNpvfXzYTU0V6n3aIvT5QDIEGLDAnb20rROn+mXx+1S2rL1/KleneyjQQNArkyNRzQ9EdUTn+2Rx0N+DwD34vzZca0ur+uzX+2V280MMaBYcGdUoKKxhE6f6VciZWktkVYiZen0i/3McACAHPrg7JgC5T7d9wDHswHAvViOxPXB2+M6eF+j9rXXOl0OgAwibChQ4UhcnluSX4/bpXAk7lBFAFBawrMruja0oGMPt8nn8zhdDgAUpLOvDkuSTn76gMOVAMg0woYCFaoJKG3ZWx5LW7ZCNQGHKgKA0nLu7Lh8fo/uP7HP6VIAoCBNT0Y1eGVOxx/dr2ruYYGiQ9hQoIIVfj1/qld+r1vlfo/8XreeP9WrYIXf6dIAoOgtR+IaujKrvuOtKgv4nC4HAAqObds6++qwyit8Ov5Yu9PlAMgCNogsYCf7WtTXVa+xmWVJUkdztcMVAUBpuHhuUpJ09ESbw5UAQGEaG1rQ1HhEn/rcQfnL+EgCFCP+ZRe4yyMLnEgBADmUTKR1+fy0ug83MO0XAO6BZdk6+4sR1dSV677jbLALFCuWURQwTqQAgNy7emlGifWUjj283+lSAKAgXb00o4W5VT36ZBfHBgNFjH/dBYwTKQAgt2zb1kfvTaqhuUot+4NOlwMABSeVsvTu66NqbKlWT2+j0+UAyCLChgLGiRQAkFvjI4taCsd07JH9crlc2/8BAMAWF9+f1Ep0XY8/3U0fBYocYUOBisYSCkfieu6Zg5xIAQA5cuG9SZVX+nSQn8YBwK6tx1M699aY2g/Uqa2zzulyAGQZG0QWoLOXprdsCvncMwfV1RJUqCZA0AAAWbIYjmlseEEPf7JTHi9ZPQDs1ofvTmg9ntLJpw44XQqAHOBuqYBEYwldHAnrL1+8smVTyO/+bJCgAQCy7OL7k3J7XDry4D6nSwGAghNfS+qjdyfUfbhBDc1VTpcDIAeY2VAgPp7N4HJJyfTWfRo+3hSSsAEAsmM9nlL/hWkduq9JFZX0WgDYrQ/fnVAykdYjn+x0uhQAOULYUABuPuLydtgUEgCy6+rFGaWSlo4+3OZ0KQBQcOJrSV14b1I9vY0KNTGrASgVhA0F4HZHXEpSmdctW2JTSADIItu2den8dTW2VKmxpdrpcgCg4Jx/e1zJRFoPP8GsBqCUEDYUgNsdcenzuvVHv3lUHc3VBA0AkEUzk1Etzsf01BcPO10KABSctVhCF96f1MH7GlXfWOl0OQByiA0iC0Cwwq/nT/VuOeLyn53q1f3dIYIGAMiyS+en5PN7dKivyelSAKDgnH97QqmkxawGoAQxs6FAnOxrUV9XvcKROCdPAECOrMeTGuqfk3G0WT6/x+lyAKCgxFYTunhuUoeONKmugVkNQKkhbCggwQo/IQMA5JB5YUbplKUjxznuEgB266N3J5ROWTrxCWY1AKWIZRQAANyGbdu6fH5KTa3VnAkPALu0Hk/p4rnr6ultVF2owulyADiAsAEAgNuYmohoMRxT3/FWp0sBgIJz8dykkom0HjzZ4XQpABxC2AAAwG1cOT8lf5lHB+9jY0gA2I1kMq2P3p1UR089M8OAEkbYAADALeJrGxtDHjrCxpAAsFtXPpxSfC2ph5jVAJQ0wgYAAG5x9eKM0mlbR1hCAQC7kk5b+vCdCbXur1Fre43T5QBwEGEDAAC3MC/MqLGlSqEmpv8CwG4MXJrVSnRdDz7e7nQpABxG2AAAwE3mZ1Y0P7si42iL06UAQEGxLFsfnB1TQ1OVOg7UO10OAIcRNgAAcBPz4rTcbpcO9bExJADsxsjVeS0trOnBx9vlcrmcLgeAwwgbAADYlE5bGrg0q86DIQXKfU6XAwAFw7ZtnX97XDV15TpgNDpdDoA8QNgAAMCm8ZFFrcWSMo42O10KABSU6cmoZqeWdeyRNrndzGoAQNgAAMAN5oVpBSp8rDUGgF368J0JlQW8Mu5nvxsAGwgbAACQFF9LanQwrMN9TfJ4+PYIADsVWVzTyNV59T3YKp/f43Q5APIEd1MAAEgavDwrK21zCgUA7NKF9ybldrt09KE2p0sBkEcIGwAAkGRenFGoqVINzVVOlwIABWM9ntKVj6Z08L4mVVaXOV0OgDxC2AAAKHkL86uanVpmVgMA7NLlD6eUSlo69gizGgBsRdgAACh5Vy/OyO126VBfk9OlAEDBSKctXXhvUvs6atXYUu10OQDyDGEDAKCk2batgcuzau+uU0Wl3+lyAKBgDJvzWl1e1/FH9ztdCoA8RNgAAChp05NRrUTXdZBZDQCwY7Zt68N3JlRbX66OHo4LBvDrCBsAACVt8PKsPF63ug6GnC4FAArG7NSy5qaXdfREm1wul9PlAMhD3ky9kGEYn5b0M0n/0jTNP998rFnSX0nqkrQm6fdN03w7U9cEAGxFL94dy7I11D+nroMh+csy9i0RQAkrlT588f3r8vk9Onx/s9OlAMhTGZnZYBhGtaT/Q9KZW576E0mvmaZ5WNIfSfq2YRhEnwCQBfTi3Zu8tqi1WFIH72MJBYC9K5U+HFtNaLB/Vsb9zQS1AO4oU8so/r2kP5M0f8vjvy3pLyTJNM03JK1LejhD1wQAbEUv3qWBy7Pyl3lYbwwgU0qiD/d/NC0rbev+h/Y5XQqAPLbnsMEwjC9JqjFN8/u3PB6S5DJN8+ZmOyapfa/XBABsRS/evXTK0sjVeXUfbpDXyxZGAPamVPqwZdm69MF1tXXWqq6h0ulyAOSxbec9GYZxTlLHnZ6W9KeSPpfJom4VClVl8+V/TWNjcZ8TXOzjk4p/jIyv9Djdi3Pdh6Xsvw/6L0wrsZ7WiZOdjrzniv19zvgKXymMcTec7sNSftwT91+Y1kp0Xae+cX/Bv0cKvf6dKPYxMr78tm3YYJrmQ3d6zjCMT0pqlfSOYRiS1CDpK4Zh1Jum+b8ahiHDMBpuSnI7JI3vtshweEWWZe/2j92TxsZqzc0t5+RaTij28UnFP0bG5zy325XzGz6ne3Eu+7CUm/fB+2evKVDhU3VdIOfvuUJ4n+8F4yt8hTDGXPdip/uwlB/3xG++OqiqYJnqmirz/j1yN4XwHt+rYh8j43Pedn14Tzu6bK45u7GrlmEYpyW99/HOu5K+J+kPJf3bzSZcLun9vVwTALAVvXj3kom0rg2GZRxrkdtdsHu0AcgTpdKHF8MxTYwu6dEnu+idALaV7e1j/7U2dtv9PW0c8/O7pmlaWb4mAGArevEtRgbmlUpZOsQpFAByoyj68KVz1+X2uHTfA61OlwKgAGQ0bDBN8/lbfj8t6bOZvAYA4O7oxdsbvDyryuoytewPOl0KgCJUjH04mUir/8K0enobVVHpd7ocAAWA7bcBACVlPZ7S+MiiDvY2yuViGjAA7MTglVklE2kdeZDjLgHsDGEDAKCkXBsKy7JsHehtcLoUACgYlz+cUl1DhVramBEGYGcIGwAAJWXYnFdllV/N+7hhBoCdCM+uaPb6su57oJUZYQB2jLABAFAykom0xocX1H24gRtmANihy+en5Pa4ZNzf7HQpAAoIYQMAoGSMDS8olbJ0wGAJBQDsRDKZ1tVLs+oxGhUo9zldDoACQtgAACgZw1fnFSj3qbW91ulSAKAgDPfPKbGe4rhLALtG2JBF0VhCI1NRRWMJp0sBgJKXTlm6NhhW9+GQ3G6WUADATlz+cEo1deXa11HjdCkACozX6QKK1dlL0zp9pl8et0tpy9bzp3p1sq/F6bIAoGRNjC4qmUjrgNHodCkAUBAW51c1PRHVyacPsM8NgF1jZkMWRGMJnT7Tr0TK0loirUTK0ukX+5nhAAAOGjbn5S/zqK2TJRQAsBOXP5yS283GkADuDWFDFoQjcXlumaLrcbsUjsQdqggASls6bWlkYF5dB0PyePjWBwDbSaXSunpxRl2HQqqo9DtdDoACxB1XFoRqAkpb9pbH0patUE3AoYoAoLRNjUe0Hk+xhAIAdsi8OKP4Wkp9x9kYEsC9IWzIgmCFX8+f6pXf61a53yO/163nT/UqWEEqDABOGDbn5fW51d5d53QpAFAQPnx3XFXBMrV10jcB3Bs2iMySk30t6uuqVzgSV6gmQNAAAA6xbVsjV+fV2ROS1+dxuhwAyHury+saMuf04OMdnN4D4J4RNmRRsMJPyAAADpu5HlVsNaHuww1OlwIABeHqpRnZttgYEsCesIwCAFDURgfDcrtd6jhQ73QpAJD3bNuWeWFG7V11qq2vcLocAAWMsAEAUNRGB8Jq2V+jsgCT+QBgO3PTy1oMx/TAI/udLgVAgSNsAAAUrejSmhbnY+o6FHK6FAAoCP0XZuTxutX3wD6nSwFQ4AgbAABFa3QgLEnqOkjYAADbSaUsDV6e1YHDDQqU+5wuB0CBI2wAABSt0cGw6hoqVFNX7nQpAJD3rg2GtR5PyTjKxpAA9o6wAQBQlNbjKU2NR5jVAAA71H9hWpXVZWrrrHO6FABFgLABAFCUxkcWZFk2YQMA7MDqyrrGhxd0+P4mud0up8sBUAQIGwAARWl0IKxAuU9N+4JOlwIAeW/g0qxsWzLub3G6FABFgrABAFB00mlL14YW1NlTz0/oAGAHBi7Nqqm1WnWhCqdLAVAkCBsAAEVneiKqxHqKIy8BYAcW5lc1P7uiQ0eanC4FQBEhbAAAFJ1rg2G5PS61d9c7XQoA5L2BS7NyuaSD9xE2AMgcwgYAQFGxbVujg2G1ddbK5/c4XQ4A5DXbtjVweVb7u+pUUel3uhwARYSwAQBQVJYW1hRZXOMUCgDYgZnJqJYjcR3qY1YDgMwibAAAFJVrg2FJUmcPYQMAbOfq5Vl5vG51H25wuhQARYawAQBQVMZHFlTXUKHqmoDTpQBAXkunLQ1dmVPXwZD8ZV6nywFQZAgbAABFI5lI6/p4RB0H2BgSALYzMbqo+FqSUygAZAVhAwCgaEyOLclK24QNALADA5dmVRbw0jMBZAVhAwCgaIwNL8jrc6t1f43TpQBAXksm0hoZmFdPb6M8Hj4SAMg8OgsAoCjYtq2xoQW1ddbJ4+XbGwDczcjAvFJJi1MoAGQNd2MAgKIQWVzTciSujgN1TpcCAHlv8PKsqoJlam1nJhiA7CBsAAAUhbGhBUli7TEAbGM9ntT4yKJ6ehvlcrmcLgdAkSJsAAAUhbHhBdXWlytYW+50KQCQ10auhmVZtg7e1+h0KQCKGGEDAKDgpZIbR162M6sBALY11D+n6pqAGluqnS4FQBEjbAAAFLzJsSWlUxZLKABgG/G1pCZGWUIBIPsIG+5RNJbQyFRU0VjC6VIAoOSNDy/K63VrX0et06UAQF4buTrPEgoAOeF1uoBCdPbStE6f6ZfH7VLasvX8qV6d7GtxuiwAKFljwwva11ErL0deAsBdDfXPKVgbUENzldOlAChy3JXtUjSW0Okz/UqkLK0l0kqkLJ1+sZ8ZDgDgkMjimiKLayyhAIBtsIQCQC4RNuxSOBKXx721OXvcLoUjcYcqAoDSNj68eeRlD2EDANzN8NV52bbU08sSCgDZR9iwS6GagNKWveWxtGUrVBNwqCIAKG3jo4uqrgmopo4jLwHgboauzKmmrpwlFABygrBhl4IVfj1/qld+r1vlfo/8XreeP9WrYIXf6dIAoORYlq3rY0tq765zuhQAyGtrsYQmr7GEAkDusEHkPTjZ16K+rnqFI3GFagIEDQDgkNmpqBLrae3vImwAgLsZYQkFgBwjbLhHwQo/IQMAOGxidEmS1NbJkZcAcDeDV+ZUU1+uUFOl06UAKBEZCRsMw/jvJf2RpKSktGmaxzcfr5D0l5JOSEpJ+mPTNF/IxDUBAFuVYi+eGF1UY0uVAuU+p0sBgLztw2uxpK6PLenBxztYQgEgZ/a8Z4NhGN+Q9FuSHjFN86ikL9z09B9LipqmeVDSVyT9Z8Mw2JEGADKsFHtxMpHWzGSUJRQA8kI+9+HRgY0lFAcON+TqkgCQkQ0i/0dJ/8Y0zWVJMk1z5qbnnpP0rc3HByS9J+lLGbgmAGCrkuvF18eXZFk2YQOAfJG3fXjk6ryqg2WcQgEgpzKxjKJP0knDMP6tJL+kb5mm+f9sPtch6dpNXzsmqX23FwiFctsYGxurc3q9XCv28UnFP0bGh9vIai/OdR+Wtn8fnHtzTB6vW/cfb5PP58lRVZlT7O9zxlf4SmGMGZaX98Tr8ZQmRpf08BOdamoK7urPFvt7oNjHJxX/GBlffts2bDAM45w2GuTtNEvyaKNZflJSg6RfGoZhmqb5WqaKDIdXZFl2pl7urhobqzU3t5yTazmh2McnFf8YGZ/z3G5Xzj98O92Lc9mHpZ29DwauzKqlLailpViOqsqcQnif7wXjK3yFMMZc92Kn+7B0b7148Mqs0mlLre01u/o7LYT3wF4U+/ik4h8j43Pedn1427DBNM2H7va8YRhjkv7aNE1L0qxhGC9JelTSa9pIbTslzW1+eYekn++sdADAx+jFW8VWElqYW9XJT3c7XQqAElGofXjYnFd5hU/Nbbub1QAAe5WJPRv+q6QvSpJhGJWSPiXpw83nvifpDzafOyTpEUk/ycA1AQBblVQvnri2KEns1wAgn+RdH06lLI0NL6j7cIPcbk6hAJBbmQgb/oOkdsMwLkl6R9K3TdN8afO5P5NUaxjGoKQXJP3+x5vmAAAyqqR68cToosoCXoWa2OwMQN7Iuz48MbqoZCKtbk6hAOCAPW8QaZrmmqTfvcNzq9o4AggAkEWl1Itt29bE6JLaOmv5SR2AvJGPfXjEnJe/zKO2ztpcXxoAMjKzAQCAnFlaWNPq8jpLKADgLizL1ujgvDoPhuTxcMsPIPfoPACAgjI5urFfQ3s3YQMA3MnU+JLiayl1H2IJBQBnEDYAAArKxOiiqmsCCtaWO10KAOStYXNeHq9bHQfqnS4FQIkibAAAFAzbtnV9PML6YwC4C9u2NTIwr47uOvn8HqfLAVCiCBsAAAUjPLuq9XhKbR2EDQBwJ3PTy1pdTnAKBQBHETYAAArG5LUlSdI+wgYAuKPRgbBcLqnzYMjpUgCUMMIGAEDBuD62pJq6clUFy5wuBQDy1uhgWC1tNQqU+5wuBUAJI2wAABQEy9rYr2FfR43TpQBA3lqOxBWeXVXXIWY1AHAWYQMAoCCEZ1eUWE+xhAIA7uLaYFiSCBsAOI6wAQBQEK6PsV8DAGxndDCsmvpy1dZXOF0KgBJH2AAAKAiTY5GN/Rqq2a8BAG4nsZ7S5LUldbExJIA8QNgAAMh7lmVranyJWQ0AcBfjI4uyLJslFADyAmEDACDvbezXkGZzSAC4i9GBsMoCXrW00SsBOI+wAQCQ9z7er6GNmQ0AcFuWZWtsOKzOnpDcbpfT5QAAYQMAIP9NXltSTX25KtmvAQBua3oyovhaiiUUAPIGYQMAIK9Zlq2piQizGgDgLkYHwnK7XWrvrnO6FACQRNgAAMhzv9qvgbABAO7k2mBYbZ218pd5nS4FACQRNgAA8tzktY39GtgcEgBubzEc09LCGkdeAsgrhA0AgLx2fWxJtfXlqqxivwYAuJ2xobAkqZOwAUAeIWwAAOStj/drYAkFANzZtaEF1TdWqrom4HQpAHADYQMAIG8tzK0qsZ5WaztLKADgdhLrKU2NR9RxgI0hAeQXwgYAQN6aGo9Iklr3EzYAwO1MXluSZdnqOMASCgD5hbABAJC3piYiqgqWMTUYAO7g2tCCfH6PWvYHnS4FALYgbAAA5CXb3tivgVkNAHB7tm1rbDis9u46eTzc1gPIL3QlAEBeii7FFVtJsF8DANzBwtyqVpcT6jhQ73QpAPBrCBsAAHlpamJjv4YWZjYAwG1dG1qQJMIGAHmJsAEAkJemxiMqC3hV31DhdCkAkJfGhhfU0Fylyuoyp0sBgF9D2AAAyEtTExG1tAXlcrmcLgUA8s56PKXpiYg6epjVACA/ETYAAPLO6vK6Igtr7NcAAHcwMboo25Y6WUIBIE8RNgAA8s7YyMY6ZE6iAIDbuzYUVlnAq6Z9HHkJID8RNgAA8s7YyII8XrcaW6udLgUA8s7GkZcLaj9QL7ebpWYA8hNhAwAg74yPLKi5tZpz4wHgNuZnVrS2mmQJBYC8xl0cACCvJBNpTU1G1cJ+DQBwWx8fedl+oM7hSgDgzggbAAB5ZeZ6VLZls18DANzB+PCCmlqrVV7hd7oUALgjwgYAQF65Ph6RyyW1tLHpGQDcaj2e0sz1qNq7mdUAIL8RNgAA8srUeETN+4Lyl3mdLgUA8s7ktSXZtrSfsAFAniNsAADkjXTa0uz1qDq62fQMAG5nfGRBPr9HzRx5CSDPETYAAPJGMpFWOm3p4H1NTpcCAHnHtm2NjyyqrbOW03oA5D26FAAgbwTKffrn/+oJHewlbACAWy1H4lqOxNXO7C8ABYCwAQCQV9irAQBub3oiKklsDgmgIBA2AAAAAAVgcjyiYG1ANXXlTpcCANsibAAAAAAKwOxklCUUAAoGYQMAAABQAJLJNEsoABQMwgYAAACgALjdLrV11jpdBgDsCGEDAAAAUAAamqvYRBdAwdhztzIM47Ck/1tSraQySd81TfPfbD5XIekvJZ2QlJL0x6ZpvrDXawIAtqIXA4CzctGH97XXZKxeAMi2TMxs+HeSvm+a5nFJj0j6Z4ZhPLr53B9LipqmeVDSVyT9Z8MwqjJwTQDAVvRiAHBW1vtwK2EDgAKSiXlYtqSPO1/F5u9nN3//nKTfkyTTNAcMw3hP0pckfW+Hr+2RNtan5VKur5drxT4+qfjHyPicdVN9HifruEW2erEjfdipa+YS4ytsxT4+Kf/HmIe9OOv3xKGm3ObE+f4e2KtiH59U/GNkfM7arg9nImz4V5J+ZBjGv5BUJ+l/Mk1zdPO5DknXbvraMUntu3jtVkmqq6vMQJk7FwoV9w/8in18UvGPkfHljVZJQ04XsSlbvdiRPiwV1PvgnjC+wlbs45MKaoz50ouzfk+c67+TAnoP3JNiH59U/GNkfHnjtn1427DBMIxz2miQt9Ms6Q8k/ZVpmn9mGEarpFcNw3jPNM2391LtpnclfUrSlKR0Bl4PADLBo42m+m6uLuhgL6YPA8hXOe3F3BMDwK+5ax/eNmwwTfOhuz1vGMb/IOnA5tdOGYbxiqQnJb2tjdS2U9L/3979g9ZVhnEc/xYVh1Ic4p+l1kHaZ5AqRgcLIkooKNahm4gUxEELopvURSVD/VcEqQEFwRYLVSyColQEsYOoQ3Hq8lildVCQWl2kEKVeh3MrKRqi5M1973vO97OEvOeQ+7vk5nfDk3PenBmfvgn47L8mBxaBz//H+ZI0KRP9K1rFLraHJU2ziXWxvxNL0r9atodLbBB5CrgbICI20E1dT4yPvUs35SUiNtNtlvNxgceUJF3MLpakuuxhSVpi3Wg0WtUXiIhbgP3AeuAy4O3MnB8fWw8cAG6mu+Trycx8f1UPKEn6B7tYkuqyhyXpYqseNkiSJEmSJC1V4jYKSZIkSZKkvzlskCRJkiRJRTlskCRJkiRJRTlskCRJkiRJRTlskCRJkiRJRV1aO8A0i4g7gU+BJzLz1cpxiomIBWAOWAR+o3t+x+umWr2I2AIcBGaAs8CuzDxZN1UZETEDvAVcD/wOnAQeycwzVYOtgYh4BngW2JqZJ1Y4XQNgF7ejzz0MdrGGyx5uS5+72B5ui1c2LCMiNgAvAEdrZ1kDR+letDcBzwHvVM5TymvAQmZuARaA1yvnKWkEvJiZkZlbge+A5ytnKi4iZoHbgO9rZ9F0sIub0+ceBrtYA2QPN6nPXWwPN8Rhw/JeBl4Cfq4dpLTM/DAz/xh/+iWwMSKafi1ExNXALHB4vHQYmI2Iq+qlKiczf8nMY0uWvgKuqxRnTUTE5XRviLtrZ9FUsYsb0fceBrtYg2UPN6TvXWwPGku3CQAAAe5JREFUt6XpH6a1EhH3AFdk5pHaWSbgMeCjzPyzdpBVuhb4ITPPA4w//jhe75Xxm+Bu4IPaWQqbBw5l5unaQTQd7OLmDKaHwS7WMNjDTRpMF9vD02+QezZExNfApuUO012Ks31yicpa4fldc6F8IuJ+4AHgjkllUxH76e4r7NM9k9uAW4E9tbNocuxiu7hxdrGaZw/bw42zh6fcutFoVDvDVImI24H3gHPjpSvpNo15JTPnqwUrLCJ2AvuAuT5MzcaXjH0DzGTm+Yi4hG5DnM192jAmIvYBNwL3ZeZi7TylRMQe4HG6jX4ANgI/AQ9l5ifVgqkau7g9Q+lhsIs1DPZwm4bSxfZwGxw2rCAiDgDHe7bz7g66SeD2zPy2dp5SIuIY8EZmHoqIB4GHM/OuyrGKiYi9wDbg3sw8t9L5LYuI08COVnfeVXl2cRv63sNgF2u47OF29L2L7eF2DPI2CvEm3bTsSERcWJvLzLP1IhXxKHAwIp4GfgV2Vc5TTETcADxFN6n+Yvx9O5WZO6sGk7Qafezi3vYw2MVSD/Wxh6HHXWwPt8UrGyRJkiRJUlH+NwpJkiRJklSUwwZJkiRJklSUwwZJkiRJklSUwwZJkiRJklSUwwZJkiRJklSUwwZJkiRJklSUwwZJkiRJklTUX7QFLGnUAoGyAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 1296x360 with 3 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "iJZG7aXUpLXt",
"colab_type": "text"
},
"source": [
"### Ridge Regression\n",
"\n",
"Linear Regression with L2 Regularization\n",
"\n",
"We are going to modify our Cost function as follows -\n",
"\n",
"$$ J = \\frac{1}{2n} \\cdot \\Bigg\\{\\sum_{i = 1}^{n} (y' - y)^2 + \\lambda \\sum_{i = 1}^{j} \\beta_j^2 \\Bigg\\} $$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "x9Wf8rn4r1nc",
"colab_type": "text"
},
"source": [
"### Lasso\n",
"\n",
"Linear Regression with L1 Regularization\n",
"\n",
"We are going to modify our Cost function as follows -\n",
"\n",
"$$ J = \\frac{1}{2n} \\cdot \\Bigg\\{\\sum_{i = 1}^{n} (y' - y)^2 + \\lambda \\sum_{i = 1}^{j} |\\beta_j| \\Bigg\\} $$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "grrT0nbfr5rE",
"colab_type": "text"
},
"source": [
"### Elastic net\n",
"\n",
"It is just a combination of Lasso and Ridge Regression\n",
"\n",
"Cost function - \n",
"\n",
"$$ J = \\frac{1}{2n} \\cdot \\Bigg\\{\\sum_{i = 1}^{n} (y' - y)^2 + \\lambda_1 \\sum_{i = 1}^{j} \\beta_j^2 + \\lambda_2 \\sum_{i = 1}^{j} |\\beta_j| \\Bigg\\} $$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "eOHEyJt53QMt",
"colab_type": "text"
},
"source": [
"### Ridge Regression in action"
]
},
{
"cell_type": "code",
"metadata": {
"id": "Tsimj4BEvI66",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 268
},
"outputId": "09ee9aaa-5e75-4cd0-8d5b-08ee99ec14b8"
},
"source": [
"from sklearn.linear_model import Ridge\n",
"\n",
"np.random.seed(0)\n",
"x = 2 - 3 * np.random.normal(0, 1, 20)\n",
"y = x - 2 * (x ** 2) + 0.5 * (x ** 3) + np.random.normal(-3, 3, 20)\n",
"\n",
"x = x.reshape(20,1)\n",
"y = y.reshape(20,1)\n",
"\n",
"polynomial_features = PolynomialFeatures(degree = 10) # 2, 3, 18\n",
"x_poly = polynomial_features.fit_transform(x)\n",
"\n",
"poly_model = Ridge(alpha = 1) # 1, 1000 , 10e9\n",
"\n",
"poly_model.fit(x_poly, y)\n",
"y_pred = poly_model.predict(x_poly)\n",
"\n",
"plt.scatter(x, y, s=10)\n",
"\n",
"# sort the values of x before line plot\n",
"sort_axis = operator.itemgetter(0)\n",
"sorted_zip = sorted(zip(x,y_pred), key=sort_axis)\n",
"x, y_pred = zip(*sorted_zip)\n",
"plt.plot(x, y_pred, color='m')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment