machinelearning

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

GradientDescentPolynomialRegression.ipynb (111815B)


      1 {
      2  "cells": [
      3   {
      4    "cell_type": "code",
      5    "execution_count": 1,
      6    "metadata": {},
      7    "outputs": [],
      8    "source": [
      9     "import numpy as np\n",
     10     "\n",
     11     "np.random.seed(42)\n",
     12     "\n",
     13     "m = 100\n",
     14     "X = 6 * np.random.rand(m,1) - 3\n",
     15     "y = .5 * X ** 2 + X + 2 + np.random.randn(m,1)"
     16    ]
     17   },
     18   {
     19    "cell_type": "code",
     20    "execution_count": 2,
     21    "metadata": {},
     22    "outputs": [
     23     {
     24      "data": {
     25       "image/png": "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",
     26       "text/plain": [
     27        "<Figure size 640x480 with 1 Axes>"
     28       ]
     29      },
     30      "metadata": {},
     31      "output_type": "display_data"
     32     }
     33    ],
     34    "source": [
     35     "import matplotlib.pyplot as plt\n",
     36     "\n",
     37     "plt.scatter(X, y)\n",
     38     "plt.show()"
     39    ]
     40   },
     41   {
     42    "cell_type": "code",
     43    "execution_count": 3,
     44    "metadata": {},
     45    "outputs": [
     46     {
     47      "data": {
     48       "text/plain": [
     49        "array([-0.75275929])"
     50       ]
     51      },
     52      "execution_count": 3,
     53      "metadata": {},
     54      "output_type": "execute_result"
     55     }
     56    ],
     57    "source": [
     58     "# Create new array X_poly that contains two features namely\n",
     59     "# the values and their squares.\n",
     60     "\n",
     61     "from sklearn.preprocessing import PolynomialFeatures\n",
     62     "\n",
     63     "poly_features = PolynomialFeatures(degree=2, include_bias=False)\n",
     64     "X_poly = poly_features.fit_transform(X)\n",
     65     "X[0]"
     66    ]
     67   },
     68   {
     69    "cell_type": "code",
     70    "execution_count": 4,
     71    "metadata": {},
     72    "outputs": [
     73     {
     74      "data": {
     75       "text/plain": [
     76        "array([-0.75275929,  0.56664654])"
     77       ]
     78      },
     79      "execution_count": 4,
     80      "metadata": {},
     81      "output_type": "execute_result"
     82     }
     83    ],
     84    "source": [
     85     "X_poly[0]"
     86    ]
     87   },
     88   {
     89    "cell_type": "code",
     90    "execution_count": 5,
     91    "metadata": {},
     92    "outputs": [
     93     {
     94      "data": {
     95       "text/plain": [
     96        "(array([1.78134581]), array([[0.93366893, 0.56456263]]))"
     97       ]
     98      },
     99      "execution_count": 5,
    100      "metadata": {},
    101      "output_type": "execute_result"
    102     }
    103    ],
    104    "source": [
    105     "# Since we have the values and their squares we can now use linear\n",
    106     "# regression because there are two parameters now to find the regression\n",
    107     "# line. \n",
    108     "\n",
    109     "# When we fit this we get both the first and second coefficients for the polynomial\n",
    110     " \n",
    111     "\n",
    112     "from sklearn.linear_model import LinearRegression\n",
    113     "\n",
    114     "lin_reg = LinearRegression()\n",
    115     "lin_reg.fit(X_poly, y)\n",
    116     "lin_reg.intercept_, lin_reg.coef_"
    117    ]
    118   },
    119   {
    120    "cell_type": "code",
    121    "execution_count": 6,
    122    "metadata": {},
    123    "outputs": [
    124     {
    125      "name": "stdout",
    126      "output_type": "stream",
    127      "text": [
    128       "100\n",
    129       "100\n"
    130      ]
    131     },
    132     {
    133      "data": {
    134       "text/plain": [
    135        "<matplotlib.collections.PathCollection at 0x7febdc961990>"
    136       ]
    137      },
    138      "execution_count": 6,
    139      "metadata": {},
    140      "output_type": "execute_result"
    141     },
    142     {
    143      "data": {
    144       "image/png": "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qlGjRpozZ07OYz6fT3PmzFGTJk0C/XIAAMBlgrLIWO/evZWSkqKrrrpKjRs31vDhw3Xw4EF16NAhGC8HAABcJCjh495779Uff/yhAQMGaPv27briiiv05ZdfnjIIFQAARB6PZVlWwaeFTlZWluLj45WZmam4uDi7ywEAAIXgz/Xb9tkuAAAgshA+AABASBE+AABASBE+AABASBE+AABASBE+AABASAVlnY/iOD7zl91tAQBwj+PX7cKs4OG48LF//35JUo0aNWyuBAAA+Gv//v2Kj48/4zmOW2TM5/Np27ZtKl++vDweT0CfOysrSzVq1NCWLVtYwKwAvFeFx3tVeLxXhcd75R/er8IL1ntlWZb279+vatWqKSrqzKM6HNfyERUVperVqwf1NeLi4vjLWUi8V4XHe1V4vFeFx3vlH96vwgvGe1VQi8dxDDgFAAAhRfgAAAAhFVHhIzY2VgMHDlRsbKzdpTge71Xh8V4VHu9V4fFe+Yf3q/Cc8F45bsApAAAIbxHV8gEAAOxH+AAAACFF+AAAACFF+AAAACEVseHj9ttvV82aNVWqVCmdc845at++vbZt22Z3WY6zadMmdezYUbVr11bp0qVVp04dDRw4UIcPH7a7NEcaPHiwmjZtqjJlyqhChQp2l+M4GRkZqlWrlkqVKqWrr75aS5cutbskR5o/f75at26tatWqyePxaNq0aXaX5Ejp6elKTExU+fLlVaVKFbVp00Zr1qyxuyxHeuONN3TZZZflLCzWpEkTffHFF7bVE7HhIykpSR988IHWrFmjjz/+WBs2bNDdd99td1mO8+uvv8rn82n06NH65Zdf9O9//1ujRo3SU089ZXdpjnT48GG1bdtWXbt2tbsUx5kyZYp69+6tgQMH6ocfftDll1+uli1baufOnXaX5jgHDx7U5ZdfroyMDLtLcbR58+YpNTVVixcv1qxZs3TkyBHddNNNOnjwoN2lOU716tU1ZMgQLV++XN9//72uv/563XHHHfrll1/sKciCZVmWNX36dMvj8ViHDx+2uxTHe+mll6zatWvbXYajjRs3zoqPj7e7DEdp3LixlZqamnPf6/Va1apVs9LT022syvkkWVOnTrW7DFfYuXOnJcmaN2+e3aW4QsWKFa0xY8bY8toR2/Jxoj179mjChAlq2rSpSpQoYXc5jpeZmamEhAS7y4CLHD58WMuXL1dycnLOY1FRUUpOTtaiRYtsrAzhJDMzU5L4fCqA1+vV5MmTdfDgQTVp0sSWGiI6fDz55JMqW7asKlWqpM2bN2v69Ol2l+R469ev16uvvqouXbrYXQpcZNeuXfJ6vapatWqex6tWrart27fbVBXCic/nU69evdSsWTM1aNDA7nIc6eeff1a5cuUUGxurRx99VFOnTtUll1xiSy1hFT769u0rj8dzxtuvv/6ac/4TTzyhH3/8UV999ZWio6P14IMPyoqQBV/9fa8kaevWrbr55pvVtm1bde7c2abKQ68o7xWA0EpNTdWqVas0efJku0txrHr16mnFihVasmSJunbtqpSUFK1evdqWWsJqefU//vhDu3fvPuM5559/vkqWLHnK47///rtq1KihhQsX2tYMFUr+vlfbtm1TixYtdM011+idd95RVFRY5dYzKsrfq3feeUe9evXSvn37glydOxw+fFhlypTRRx99pDZt2uQ8npKSon379tHqeAYej0dTp07N874hr+7du2v69OmaP3++ateubXc5rpGcnKw6depo9OjRIX/tmJC/YhBVrlxZlStXLtKf9fl8kqTs7OxAluRY/rxXW7duVVJSkho1aqRx48ZFVPCQivf3CkbJkiXVqFEjzZkzJ+ci6vP5NGfOHHXv3t3e4uBalmWpR48emjp1qr755huCh598Pp9t17ywCh+FtWTJEi1btkzNmzdXxYoVtWHDBvXv31916tSJiFYPf2zdulUtWrTQeeedp5dffll//PFHzs/OPvtsGytzps2bN2vPnj3avHmzvF6vVqxYIUm64IILVK5cOXuLs1nv3r2VkpKiq666So0bN9bw4cN18OBBdejQwe7SHOfAgQNav359zv2NGzdqxYoVSkhIUM2aNW2szFlSU1M1ceJETZ8+XeXLl88ZPxQfH6/SpUvbXJ2zpKWlqVWrVqpZs6b279+viRMn6ptvvtHMmTPtKciWOTY2++mnn6ykpCQrISHBio2NtWrVqmU9+uij1u+//253aY4zbtw4S1K+N5wqJSUl3/dq7ty5dpfmCK+++qpVs2ZNq2TJklbjxo2txYsX212SI82dOzffv0cpKSl2l+Yop/tsGjdunN2lOc7DDz9snXfeeVbJkiWtypUrWzfccIP11Vdf2VZPWI35AAAAzhdZnfcAAMB2hA8AABBShA8AABBShA8AABBShA8AABBShA8AABBShA8AABBShA8AABBShA8AABBShA8AABBShA8AABBShA8AABBS/w/xe+j5c9CLQwAAAABJRU5ErkJggg==",
    145       "text/plain": [
    146        "<Figure size 640x480 with 1 Axes>"
    147       ]
    148      },
    149      "metadata": {},
    150      "output_type": "display_data"
    151     }
    152    ],
    153    "source": [
    154     "# This proves it, i'm a dumbass.\n",
    155     "# I should have used the model to show the models fit because doing this\n",
    156     "# I had to create an extra function to graph the polynomial when\n",
    157     "# using lin_reg.predict() would have done it for me...\n",
    158     "\n",
    159     "# Set constants\n",
    160     "LOWER = -3\n",
    161     "UPPER = 3\n",
    162     "POINTS = 100\n",
    163     "\n",
    164     "# Get evenly spaced values in an array between points with specified\n",
    165     "# number of points.\n",
    166     "x = np.linspace(LOWER, UPPER, POINTS)\n",
    167     "\n",
    168     "# Equation set\n",
    169     "equa = lin_reg.intercept_[0], lin_reg.coef_[0][0], lin_reg.coef_[0][1]\n",
    170     "\n",
    171     "# Example equation:\n",
    172     "# [3 , 4 , 5]\n",
    173     "# Represents:\n",
    174     "# y = 3 + 4x + 5x^2\n",
    175     "def solveSecond(equation, xPos):\n",
    176     "    return equation[0] + xPos*equation[1] + xPos*xPos * equation[2]\n",
    177     "\n",
    178     "yVals =  []\n",
    179     "for i in x:\n",
    180     "    yVals.append(solveSecond(equa,i))\n",
    181     "\n",
    182     "print(len(x))\n",
    183     "print(len(yVals))\n",
    184     "\n",
    185     "plt.plot(x, yVals, c='red')\n",
    186     "plt.scatter(X, y, s=5)\n",
    187     "\n"
    188    ]
    189   },
    190   {
    191    "cell_type": "code",
    192    "execution_count": 7,
    193    "metadata": {},
    194    "outputs": [
    195     {
    196      "data": {
    197       "text/plain": [
    198        "<matplotlib.collections.PathCollection at 0x7febda698050>"
    199       ]
    200      },
    201      "execution_count": 7,
    202      "metadata": {},
    203      "output_type": "execute_result"
    204     },
    205     {
    206      "data": {
    207       "image/png": "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qlGjRpozZ07OYz6fT3PmzFGTJk0C/XIAAMBlgrLIWO/evZWSkqKrrrpKjRs31vDhw3Xw4EF16NAhGC8HAABcJCjh495779Uff/yhAQMGaPv27briiiv05ZdfnjIIFQAARB6PZVlWwaeFTlZWluLj45WZmam4uDi7ywEAAIXgz/Xb9tkuAAAgshA+AABASBE+AABASBE+AABASBE+AABASBE+AABASAVlnY/iOD7zl91tAQBwj+PX7cKs4OG48LF//35JUo0aNWyuBAAA+Gv//v2Kj48/4zmOW2TM5/Np27ZtKl++vDweT0CfOysrSzVq1NCWLVtYwKwAvFeFx3tVeLxXhcd75R/er8IL1ntlWZb279+vatWqKSrqzKM6HNfyERUVperVqwf1NeLi4vjLWUi8V4XHe1V4vFeFx3vlH96vwgvGe1VQi8dxDDgFAAAhRfgAAAAhFVHhIzY2VgMHDlRsbKzdpTge71Xh8V4VHu9V4fFe+Yf3q/Cc8F45bsApAAAIbxHV8gEAAOxH+AAAACFF+AAAACFF+AAAACEVseHj9ttvV82aNVWqVCmdc845at++vbZt22Z3WY6zadMmdezYUbVr11bp0qVVp04dDRw4UIcPH7a7NEcaPHiwmjZtqjJlyqhChQp2l+M4GRkZqlWrlkqVKqWrr75aS5cutbskR5o/f75at26tatWqyePxaNq0aXaX5Ejp6elKTExU+fLlVaVKFbVp00Zr1qyxuyxHeuONN3TZZZflLCzWpEkTffHFF7bVE7HhIykpSR988IHWrFmjjz/+WBs2bNDdd99td1mO8+uvv8rn82n06NH65Zdf9O9//1ujRo3SU089ZXdpjnT48GG1bdtWXbt2tbsUx5kyZYp69+6tgQMH6ocfftDll1+uli1baufOnXaX5jgHDx7U5ZdfroyMDLtLcbR58+YpNTVVixcv1qxZs3TkyBHddNNNOnjwoN2lOU716tU1ZMgQLV++XN9//72uv/563XHHHfrll1/sKciCZVmWNX36dMvj8ViHDx+2uxTHe+mll6zatWvbXYajjRs3zoqPj7e7DEdp3LixlZqamnPf6/Va1apVs9LT022syvkkWVOnTrW7DFfYuXOnJcmaN2+e3aW4QsWKFa0xY8bY8toR2/Jxoj179mjChAlq2rSpSpQoYXc5jpeZmamEhAS7y4CLHD58WMuXL1dycnLOY1FRUUpOTtaiRYtsrAzhJDMzU5L4fCqA1+vV5MmTdfDgQTVp0sSWGiI6fDz55JMqW7asKlWqpM2bN2v69Ol2l+R469ev16uvvqouXbrYXQpcZNeuXfJ6vapatWqex6tWrart27fbVBXCic/nU69evdSsWTM1aNDA7nIc6eeff1a5cuUUGxurRx99VFOnTtUll1xiSy1hFT769u0rj8dzxtuvv/6ac/4TTzyhH3/8UV999ZWio6P14IMPyoqQBV/9fa8kaevWrbr55pvVtm1bde7c2abKQ68o7xWA0EpNTdWqVas0efJku0txrHr16mnFihVasmSJunbtqpSUFK1evdqWWsJqefU//vhDu3fvPuM5559/vkqWLHnK47///rtq1KihhQsX2tYMFUr+vlfbtm1TixYtdM011+idd95RVFRY5dYzKsrfq3feeUe9evXSvn37glydOxw+fFhlypTRRx99pDZt2uQ8npKSon379tHqeAYej0dTp07N874hr+7du2v69OmaP3++ateubXc5rpGcnKw6depo9OjRIX/tmJC/YhBVrlxZlStXLtKf9fl8kqTs7OxAluRY/rxXW7duVVJSkho1aqRx48ZFVPCQivf3CkbJkiXVqFEjzZkzJ+ci6vP5NGfOHHXv3t3e4uBalmWpR48emjp1qr755huCh598Pp9t17ywCh+FtWTJEi1btkzNmzdXxYoVtWHDBvXv31916tSJiFYPf2zdulUtWrTQeeedp5dffll//PFHzs/OPvtsGytzps2bN2vPnj3avHmzvF6vVqxYIUm64IILVK5cOXuLs1nv3r2VkpKiq666So0bN9bw4cN18OBBdejQwe7SHOfAgQNav359zv2NGzdqxYoVSkhIUM2aNW2szFlSU1M1ceJETZ8+XeXLl88ZPxQfH6/SpUvbXJ2zpKWlqVWrVqpZs6b279+viRMn6ptvvtHMmTPtKciWOTY2++mnn6ykpCQrISHBio2NtWrVqmU9+uij1u+//253aY4zbtw4S1K+N5wqJSUl3/dq7ty5dpfmCK+++qpVs2ZNq2TJklbjxo2txYsX212SI82dOzffv0cpKSl2l+Yop/tsGjdunN2lOc7DDz9snXfeeVbJkiWtypUrWzfccIP11Vdf2VZPWI35AAAAzhdZnfcAAMB2hA8AABBShA8AABBShA8AABBShA8AABBShA8AABBShA8AABBShA8AABBShA8AABBShA8AABBShA8AABBShA8AABBS/w/xe+j5c9CLQwAAAABJRU5ErkJggg==",
    208       "text/plain": [
    209        "<Figure size 640x480 with 1 Axes>"
    210       ]
    211      },
    212      "metadata": {},
    213      "output_type": "display_data"
    214     }
    215    ],
    216    "source": [
    217     "# Much better.\n",
    218     "\n",
    219     "# get a 100,1 2d array of values (can't pass in 100 1D matrix)\n",
    220     "# the -1 specifies to create as many rows as needed and the 1\n",
    221     "# specifies the number of columns.\n",
    222     "\n",
    223     "xVals = np.linspace(LOWER,UPPER,POINTS).reshape(-1,1)\n",
    224     "\n",
    225     "xPoly = poly_features.transform(xVals)\n",
    226     "\n",
    227     "yVals = lin_reg.predict(xPoly)\n",
    228     "\n",
    229     "plt.plot(xVals, yVals, c='red')\n",
    230     "plt.scatter(X,y, s=5)"
    231    ]
    232   },
    233   {
    234    "cell_type": "code",
    235    "execution_count": 12,
    236    "metadata": {},
    237    "outputs": [
    238     {
    239      "data": {
    240       "text/plain": [
    241        "(0.0, 10.0)"
    242       ]
    243      },
    244      "execution_count": 12,
    245      "metadata": {},
    246      "output_type": "execute_result"
    247     },
    248     {
    249      "data": {
    250       "image/png": "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t9+a+8qVg+RkSEqyfVGzwni8Fq9GdvDgQYYOHcr06dPZvXs3NWrU4JZbbuGJJ56gdOnShf58eno6UVFRpKWlUalSJStLExERcbVTpgg3LEfE22/B+PGwY4d5UHg43HADPPccxMYW/7l9nH7sz/nb8jDiL4URERGRgr0yez2jZ63l4i0/c8fKL+icuoTw7CzzzZgYuO8+M1j13HOL99yz1+Vtstc/sYFPXUv+nL+1N42IiIgbpKUR/eZYZs36kHr7tx2//5JL4MEHTWtIEXogTsfO6ccKIyIiIk6WmQmvvw7PPMMd+01AOFS6LJ80ao/ngQe4rddVlhwmPjaahal781pGSmz6MQojIiIizpSdDZMnwxNPwObNAHgbNmRup5uZUv8ymjSsZekU4RKffnwCjRkRERFxmnnzzPTcn382t889F556Cu68EyKc2Y6gMSMiIiLBICvLhI5nngGvFypXhiFDoE8fKFvW7uoCRmFERETECXbsgFtuOb5OyD33wKhREF1yYzfsojAiIiJit5kz4Y47YO9eqFDBrBty6612V1ViLN8oT0RERIrI64Wnn4YuXUwQad4cVqwIqSACCiMiIiL28HrNxnVPPGFu9+4NixZBgwb21mUDddOIiIiUNK8XBg2CF180t0ePhn79bC3JTgojIiIiJcnrhQED4JVXzO2UFNMqEsIURkREREpKTo5ZPyQlxdweP97sJRPiFEZERERKSv/+Joh4PPDmm3D33XZX5AgKIyIiIiVh7Fh49VUTRCZMgO7d7a7IMTSbRkREJNByl3cHePZZBZGTKIyIiIgE0saNcOONZqn3W26BRx+1uyLHURgREREJlEOH4JprYN8+aNUK3nrLdNNIPgojIiIigZCTY3bZ/flniImBTz4J6s3u/KEwIiIiEghPPw3Tp0Pp0uZrzZp2V+RYCiMiIiJWW7gQnnrKXB8/Htq2tbceh1MYERERsdLBg6Z7Jreb5q677K7I8RRGRERErDRgAPz+O9SpA2PG2F2NKyiMiIiIWGXGjOMzZiZNgqgouytyBYURERERK+zaBT17musPPwyXX25vPS6iMCIiIuIvrxfuvRf27IGmTc1MGikyhRERERF/vfkmfP65mcb77rsQGWl3Ra6iMCIiIuKP7dvhoYfM9eRkaNLE3npcSGFERETEHwMGmOm8bdpA//52V+NKCiMiIiLF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g1i5ciVff/014eHh3HnnnXi1cKzPryPA9u3bufLKK7npppvo2bOnTZU7T3FeSxEJDklJSaxevZqpU6faXYprnX/++fz4448sWbKEBx54gO7du/Prr78W+edtWQ5+z5497Nu374yPOe+88yhduvQp92/bto1atWrx/fffh/wuwL6+jjt27KB9+/ZcfPHFTJw4kbAwVzSMlYji/J+cOHEi/fv358CBAwGuzv2OHDlCuXLl+Oijj7j22mvz7u/evTsHDhxQa2cxeTwepk+fnu81Fd88+OCDzJgxg2+//Za4uDi7ywkaiYmJ1K1bl/Hjxxfp8QHZtbcw1apVo1q1asX62ZycHAAyMzOtLMmVfHkdt2/fTkJCAq1atWLChAkKIifx5/+kFK506dK0atWKOXPm5J04c3JymDNnDg8++KC9xUlI8nq99OnTh+nTpzNv3jwFEYvl5OT4dJ62JYwU1ZIlS1i2bBnt2rWjSpUqbNiwgaFDh1K3bt2QbxXxxfbt22nfvj116tThhRdeYM+ePXnfq169uo2VudOWLVvYv38/W7ZsITs7mx9//BGAevXqUaFCBXuLc7CBAwfSvXt3LrroIlq3bs3o0aPJyMigR48edpfmKocOHSI1NTXv9saNG/nxxx+Jjo6mdu3aNlbmLklJSUyZMoUZM2ZQsWLFvLFLUVFRlC1b1ubq3GXIkCF06dKF2rVrc/DgQaZMmcK8efP43//+V/QnCdCsHkusWrXKm5CQ4I2OjvZGRkZ6Y2Njvffff79327ZtdpfmKhMmTPACBV7Ed927dy/wtZw7d67dpTneq6++6q1du7a3dOnS3tatW3sXL15sd0muM3fu3AL//3Xv3t3u0lzldO+JEyZMsLs017n77ru9derU8ZYuXdpbrVo17xVXXOH9+uuvfXoOW8aMiIiIiOTSwAERERGxlcKIiIiI2EphRERERGylMCIiIiK2UhgRERERWymMiIiIiK0URkRERMRWCiMiIiJiK4URERERsZXCiIiIiNhKYURERERs9f9BhcfCQ8DU1QAAAABJRU5ErkJggg==",
    251       "text/plain": [
    252        "<Figure size 640x480 with 1 Axes>"
    253       ]
    254      },
    255      "metadata": {},
    256      "output_type": "display_data"
    257     }
    258    ],
    259    "source": [
    260     "# Mess about with degree\n",
    261     "\n",
    262     "poly_features = PolynomialFeatures(degree=10, include_bias=False)\n",
    263     "X_poly = poly_features.fit_transform(X)\n",
    264     "lin_reg = LinearRegression()\n",
    265     "lin_reg.fit(X_poly, y)\n",
    266     "\n",
    267     "xVals = np.linspace(LOWER,UPPER,POINTS).reshape(-1,1)\n",
    268     "\n",
    269     "xPoly = poly_features.transform(xVals)\n",
    270     "\n",
    271     "yVals = lin_reg.predict(xPoly)\n",
    272     "plt.plot(xVals, yVals, c='red')\n",
    273     "plt.scatter(X,y, s=5)\n",
    274     "plt.xlim(left=-3, right=3)\n",
    275     "plt.ylim(bottom=0, top=10)"
    276    ]
    277   },
    278   {
    279    "cell_type": "code",
    280    "execution_count": 28,
    281    "metadata": {},
    282    "outputs": [
    283     {
    284      "data": {
    285       "text/plain": [
    286        "(0.0, 10.0)"
    287       ]
    288      },
    289      "execution_count": 28,
    290      "metadata": {},
    291      "output_type": "execute_result"
    292     },
    293     {
    294      "data": {
    295       "image/png": "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NUpLSyu8LSYmRmlpaVq+fLmDlQFGdna2JPG5WE0FBQWaM2eODh06FNQSMJ4IIw899JDq1q2rxo0b6/vvv9f8+fOdLsnTsrKy9NJLL+mee+5xuhREib1796qgoEBJSUklbk9KStLOnTsdqgow/H6/hg8frp49e6pz585Ol+NJX375perVq6f4+Hjde++9mjdvnk477bRK/7wjYWTUqFHy+Xzlbhs2bCi8/8iRI/X555/ro48+UmxsrO644w5ZTBwb9OsoSdu3b9dll12mG2+8UQMGDHCocvepymsJIDKkp6frq6++0pw5c5wuxbNOPfVUrVu3TitXrtSgQYPUr18/ff3115X+eUemg9+zZ49++umncu9z8sknq2bNmsfd/sMPP6hly5b69NNPo34V4GBfxx07dqhXr14677zzNGPGDMXEeKJhLCyq8n9yxowZGj58uPbv3x/i6rwvLy9PderU0dy5c3XttdcW3t6vXz/t37+f1s4q8vl8mjdvXonXFMEZMmSI5s+fr6VLl6pNmzZOlxMx0tLS1LZtW73yyiuVun9IVu2tSJMmTdSkSZMq/azf75ck5ebm2lmSJwXzOm7fvl2pqak6++yzNX36dILIMarzfxIVq1mzps4++2wtXLiw8MDp9/u1cOFCDRkyxNniEJUsy9LQoUM1b948LV68mCBiM7/fH9Rx2pEwUlkrV67U6tWrdf7556tRo0bavHmzxowZo7Zt20Z9q0gwtm/frl69eql169Z69tlntWfPnsJ/a9q0qYOVedP333+vffv26fvvv1dBQYHWrVsnSTrllFNUr149Z4tzsREjRqhfv34655xzdO6552rChAk6dOiQ+vfv73RpnnLw4EFlZWUVXt+yZYvWrVunxMREtWrVysHKvCU9PV2zZ8/W/PnzVb9+/cKxSwkJCapdu7bD1XnL6NGjdfnll6tVq1Y6cOCAZs+ercWLF+vDDz+s/IOE6KweW3zxxRdWamqqlZiYaMXHx1vJycnWvffea/3www9Ol+Yp06dPtySVuiF4/fr1K/W1XLRokdOlud5LL71ktWrVyqpZs6Z17rnnWitWrHC6JM9ZtGhRqf//+vXr53RpnlLWZ+L06dOdLs1z7rzzTqt169ZWzZo1rSZNmlgXX3yx9dFHHwX1GI6MGQEAAAhg4AAAAHAUYQQAADiKMAIAABxFGAEAAI4ijAAAAEcRRgAAgKMIIwAAwFGEEQAA4CjCCAAAcBRhBAAAOIowAgAAHPX/roz8M74srzsAAAAASUVORK5CYII=",
    296       "text/plain": [
    297        "<Figure size 640x480 with 1 Axes>"
    298       ]
    299      },
    300      "metadata": {},
    301      "output_type": "display_data"
    302     }
    303    ],
    304    "source": [
    305     "from sklearn.linear_model import Ridge\n",
    306     "\n",
    307     "poly_features = PolynomialFeatures(degree=10, include_bias=False)\n",
    308     "X_poly = poly_features.fit_transform(X)\n",
    309     "\n",
    310     "# Something to note here, when using SGD you can specify a penalty of 12 and\n",
    311     "# then send in an alpha value to do the same thing with SGD.\n",
    312     "\n",
    313     "# This hyperparameter of 1000 can create a visually more flat graph of the data\n",
    314     "# by punishing higher coeficcients.\n",
    315     "\n",
    316     "rdg = Ridge(alpha=1000, solver='cholesky')\n",
    317     "rdg.fit(X_poly, y)\n",
    318     "\n",
    319     "xVals = np.linspace(LOWER,UPPER,POINTS).reshape(-1,1)\n",
    320     "\n",
    321     "xPoly = poly_features.transform(xVals)\n",
    322     "\n",
    323     "yVals = rdg.predict(xPoly)\n",
    324     "plt.plot(xVals, yVals, c='red')\n",
    325     "plt.scatter(X,y, s=5)\n",
    326     "plt.xlim(left=-3, right=3)\n",
    327     "plt.ylim(bottom=0, top=10)"
    328    ]
    329   }
    330  ],
    331  "metadata": {
    332   "kernelspec": {
    333    "display_name": "notebook",
    334    "language": "python",
    335    "name": "notebook"
    336   },
    337   "language_info": {
    338    "codemirror_mode": {
    339     "name": "ipython",
    340     "version": 3
    341    },
    342    "file_extension": ".py",
    343    "mimetype": "text/x-python",
    344    "name": "python",
    345    "nbconvert_exporter": "python",
    346    "pygments_lexer": "ipython3",
    347    "version": "3.11.2"
    348   }
    349  },
    350  "nbformat": 4,
    351  "nbformat_minor": 2
    352 }