{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Linear Regression" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# import\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.preprocessing import PolynomialFeatures\n", "\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n+usAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X = [[6], [8], [10], [14], [18]]\n", "y = [[7], [9], [13], [17.5], [18]]\n", "\n", "plt.figure()\n", "plt.title('Pizza price plotted against diameter')\n", "plt.xlabel('Diameter in inches')\n", "plt.ylabel('Price in dollars')\n", "plt.plot(X, y, 'k.')\n", "plt.axis([0, 25, 0, 25])\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "** Simple Linear Regression **" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "lReg = LinearRegression()\n", "\n", "# fitting the data\n", "lReg.fit(X, y)\n", "\n", "# predicting the data for 12\" pizza\n", "lReg.predict([[12]])\n", "\n", "y_pred = lReg.predict(X)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plotting the new point in the plot\n", "\n", "\n", "X = [[6], [8], [10], [14], [18]]\n", "y = [[7], [9], [13], [17.5], [18]]\n", "\n", "plt.figure()\n", "plt.title('Pizza price plotted against diameter')\n", "plt.xlabel('Diameter in inches')\n", "plt.ylabel('Price in dollars')\n", "plt.plot(X, y, 'k.')\n", "plt.plot([12], lReg.predict([[12]]), c='r', marker='.')\n", "plt.axis([0, 25, 0, 25])\n", "plt.grid(True)\n", "\n", "x1 = [[0], [25]]\n", "y1 = lReg.predict(x1)\n", "plt.plot(x1, y1, 'g')\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Co-efficient : [[ 0.9762931]]\n", "Intercept : [ 1.96551724]\n" ] } ], "source": [ "# priting model coeff and intercept\n", "print(\"Co-efficient : \", lReg.coef_)\n", "print(\"Intercept : \", lReg.intercept_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Evaluating the fitness of a model with a cost function \n", "\n", " A cost function, also called a loss function, is used to define and measure the error of a mode \n", " The differences between the predicted and observed values in the test data are called prediction errors or test errors. \n", " \n", "We are going to use Residual Sum of Square cost function to evaluate our model \n", "\n", "$$ RSS = \\sum_{i=1}^{n} (y_i - f(x))^2 $$" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RSS : 1.74956896552\n" ] } ], "source": [ "# RSS(\n", "#print(y, lReg.predict(X))\n", "#print(\"RSS : \", np.sum(np.square(y-y_pred)))\n", "print(\"RSS : \", np.mean(np.square(y-lReg.predict(X))))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "** Variance ** \n", "Variance is a measure of how far a set of values is spread out. If all of the numbers \n", "in the set are equal, the variance of the set is zero. A small variance indicates that the \n", "numbers are near the mean of the set, while a set containing numbers that are far \n", "from the mean and each other will have a large variance. Variance can be calculated \n", "using the following equation:\n", "\n", "$$ VAR = \\frac{\\sum_{i=1}^{n} (x_i - \\overline{x})^2 }{n-1} $$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "X: [[6], [8], [10], [14], [18]]\n", "mean X: 11.2\n", "Variance: 23.2\n", "Variance: 23.2\n" ] } ], "source": [ "print(\"X: \", X)\n", "print (\"mean X: \", np.mean(X))\n", "\n", "var = np.sum(np.square(X - np.mean(X)))/(len(X)-1)\n", "print(\"Variance: \", var)\n", "\n", "print(\"Variance: \",np.var(X, ddof=1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "** Covariance ** \n", "Covariance is a measure of how much two variables change together. If the value of \n", "the variables increase together, their covariance is positive. If one variable tends to \n", "increase while the other decreases, their covariance is negative. If there is no linear \n", "relationship between the two variables, their covariance will be equal to zero; the \n", "variables are linearly uncorrelated but not necessarily independent. Covariance can \n", "be calculated using the following formula:\n", "\n", "$$ CoVar(x,y) = \\frac{\\sum_{i=1}^{n} (x_i - \\overline{x})(y_i - \\overline{y}) }{n-1} $$" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CoVariance: 22.65\n", "CoVariance: 22.65\n" ] } ], "source": [ "X1 = [6, 8, 10, 14, 18]\n", "y1 = [7, 9, 13, 17.5, 18]\n", "xbar = np.mean(X1)\n", "ybar = np.mean(y1)\n", "\n", "covar = np.sum((X1 - xbar)*(y1 - ybar))/(len(X1)-1)\n", "print(\"CoVariance: \", covar)\n", "\n", "print(\"CoVariance: \",np.cov(X1, y1)[0,1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We know that simple linear regression follows the below equation :\n", " $$ y = \\alpha + \\beta{x} $$ \n", " \n", "where $$ \\beta = \\frac{cov(X,y)}{var(x)} $$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "beta b (co-efficient)= 0.976293103448\n", "alpha a (intercept)= 1.96551724138\n" ] } ], "source": [ "# let's get the beta\n", "beta = covar/var\n", "alpha = np.mean(y) - beta*np.mean(X)\n", "print(\"beta b (co-efficient)= \", beta)\n", "print(\"alpha a (intercept)= \", alpha)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 12.70474138]\n", " [ 19.5387931 ]]\n" ] } ], "source": [ "x2 = [[11], [18]]\n", "print(lReg.predict(x2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Evaluating the model \n", "\n", "**R-squared measures** how well \n", "the observed values of the response variables are predicted by the model. More \n", "concretely, r-squared is the proportion of the variance in the response variable that \n", "is explained by the model. An r-squared score of one indicates that the response \n", "variable can be predicted without any error using the model. An r-squared score of \n", "one half indicates that half of the variance in the response variable can be predicted \n", "using the model. There are several methods to calculate r-squared. In the case of \n", "simple linear regression, r-squared is equal to the square of the Pearson product \n", "moment correlation coefficient, or Pearson's r. \n", "\n", "$$ R^2 = 1 - \\frac{SS_{res}}{SS_{tot}} $$\n", "where\n", "$$ SS_{res} = \\sum_{i=1}^{n} (y_i - f(x_i))^2 $$ \n", "\n", "$$ SS_{tot} = \\sum_{i=1}^{n} (y_i - \\overline{y})^2 $$ \n", "\n", "Using this method, r-squared must be a positive number between zero and one. \n", "This method is intuitive; if r-squared describes the proportion of variance in the \n", "response variable explained by the model, it cannot be greater than one or less than \n", "zero. Other methods, including the method used by scikit-learn, do not calculate \n", "r-squared as the square of Pearson's r, and can return a negative r-squared if the \n", "model performs extremely poorly." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.74956896552\n", "19.44\n", "R sqare score: 0.910001596424\n", "R sqare score: 0.910001596424\n" ] } ], "source": [ "SSres = np.mean(np.square(y-lReg.predict(X)))\n", "print(SSres)\n", "SStot = np.mean(np.square(y-np.mean(y)))\n", "print(SStot)\n", "\n", "Rsqr = 1 - (SSres/SStot)\n", "print(\"R sqare score:\", Rsqr)\n", "print(\"R sqare score:\",lReg.score(X, y))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "R squre Score is quite high which says there is a large proportion of the variance in the data\n", "\n", "### Multiple Linear Regression" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# in this there are two features of pizza - diameter and no of toppings\n", "\n", "X = [[6,2],[8,1],[10, 0],[14,2],[18, 0]]\n", "y = [[7],[9],[13],[17.5],[18]]\n", "X_test = [[8,2],[9,0],[11,2],[16,2],[12, 0]]\n", "y_test = [[11],[8.5],[15],[18],[11]]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training Score: 0.770167773132\n", "Test Score: 0.770167773132\n", "predicted : [ 10.0625] Actual : [11]\n", "predicted : [ 10.28125] Actual : [8.5]\n", "predicted : [ 13.09375] Actual : [15]\n", "predicted : [ 18.14583333] Actual : [18]\n", "predicted : [ 13.3125] Actual : [11]\n" ] } ], "source": [ "lReg2 = LinearRegression()\n", "lReg2.fit(X, y)\n", "\n", "y_pred = lReg2.predict(X_test)\n", "\n", "print(\"Training Score:\", lReg2.score(X_test, y_test))\n", "print(\"Test Score:\", lReg2.score(X_test, y_test))\n", "\n", "for i, yp in enumerate(y_pred):\n", " print(\"predicted : \",yp, \" Actual : \", y_test[i])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Polynomial Regression" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [], "source": [ "X = [[6], [8], [10], [14], [18]]\n", "y = [[7], [9], [13], [17.5], [18]]\n", "X_test = [[6],[8],[11],[16]]\n", "y_test = [[8],[12],[15],[18]]" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0.9762931]] [ 1.96551724]\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsMAAAHfCAYAAAC1cNU/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xm81mP+x/HXVZLS0EYi4jenjWgRMjKOMWPsSyRRljFk\nJrth4rScyjpomDGDiSw/TD8ZYqwxpmYydqW9zkHJUsmW0n6+vz+uNKHUWb/38no+HufRfe5zzn2/\n87jdvbu6vp8rJEmCJEmSlI9qpR1AkiRJSotlWJIkSXnLMixJkqS8ZRmWJElS3rIMS5IkKW9ZhiVJ\nkpS3NlmGQwgtQggvhBCmhRCmhBDOX3v/4BDC+yGEN9d+HFb9cSVJkqSqEzY1ZziEsAOwQ5Ikk0II\nDYA3gGOBnsCXSZIMr/6YkiRJUtXbYlPfkCTJfGD+2ttLQggzgJ3WfjlUYzZJkiSpWpVrz3AIYVeg\nI/DK2rvOCyFMCiHcGULYtoqzSZIkSdVqk9sk1n1j3CIxDhiWJMljIYTtgEVJkiQhhKuA5kmSnLWB\nn/O8Z0mSJNWIJEnKtXNhs8pwCGEL4Ang6SRJbtnA11sCf0+SZK8NfC3Z3MIt1aTi4mKKi4vTjiFt\nkK9PZSpfm8pkIYRyl+HN3SYxEpi+fhFee2Hd17oDU8vzxJIkSVLaNnkBXQjhAOBUYEoIYSKQAFcC\np4QQOgJlwBygbzXmlCRJkqrc5kyTeBGovYEvPVP1caSaU1hYmHYEaaN8fSpT+dpUrtnsC+gq/ATu\nGZYkSVINqMie4U2uDEuSJNWEXXfdlblz56YdQ1mgZcuWzJkzp0oey5VhSZKUEdau6qUdQ1lgY6+V\n6pwmIUmSJOUcy7AkSZLylmVYkiRJecsyLEmSpLxlGZYkSaqECRMm0K5du7RjVImDDz6YkSNHph2j\nRlmGJUmSNsNuu+3GCy+88J37u3XrxowZM1JI9F3Tpk3jsMMOY7vttqN27Q2dmaZvswxLkiRloTVr\n1nznvjp16tCzZ8+MW93dUNZMYRmWJEmqhPHjx7Pzzjuv+3y33XbjpptuokOHDjRq1IhevXqxcuXK\ndV9/4okn6NSpE40aNaJbt25MmTJl3deuv/56CgoK2GabbWjfvj1jxoxZ97V7772Xbt26cckll9C0\naVOGDBnynSytW7fmzDPPZPfdd9+s7M899xzt2rWjUaNGnH/++d+Z3Tty5Eh23313mjRpwuGHH857\n77237mtjx46lbdu2NGrUiH79+lFYWLiuhG8s6/c93syZMzn00ENp0qQJ7dq1Y/To0Zv1e6gsy7Ak\nSVIlhfDNcx5Gjx7N2LFjeffdd3nrrbe45557AJg4cSJnnXUWI0aM4NNPP6Vv374cc8wxrFq1CoCC\nggJefPFFFi9ezODBg+nduzcLFixY97ivvPIKBQUFLFy4kKKiokpl/uSTTzjhhBO45pprWLRoET/8\n4Q958cUX1339scce47rrrmPMmDF8/PHHHHjggfTq1QuARYsW0aNHD66//no++eQT2rRpw0svvfSN\nx/921u97vK+++opDDz2U3r17s2jRIkaNGkW/fv2YOXNmpX6Pm8MyLEmSskYIlf+oCRdeeCHNmjWj\nYcOGHH300UyaNAmAESNGcO6559KlSxdCCPTp04e6devy8ssvA3DCCSfQrFkzAHr06EGrVq149dVX\n1z3uTjvtxK9//Wtq1apF3bp1K5Xxqaeeon379hx//PHUrl2biy66iB122GHd1++44w6uuOIKWrdu\nTa1atejfvz+TJk1i3rx5PP3007Rv355jjz2WWrVqccEFF6zLvbGs3/d4TzzxBLvtthunnXYaIQQ6\ndOhA9+7da2R12DIsSZKyRpJU/qMmrF8M69evz5IlSwCYO3cuN910E40bN6Zx48Y0atSI999/nw8/\n/BCA++67b90WikaNGjFt2jQWLVq07rHW345RWR9++OF3Hm/9z+fOncuFF164LmuTJk0IIfDBBx9s\n8GdbtGix0cfa1OPNnTuXl19++Rv/XR588EHmz59fZb/fjdmi2p9BkiRJQCyIRUVFXHHFFd/52nvv\nvcc555zDP//5T/bff38AOnXq9I19vN/ejlEZzZs3/8aeXYB58+Z9I+uAAQPWbWVY3+zZs3n88ce/\ncd/777//jc+/nXWXXXbZ6OPNmTOHwsJCnn322XL/PirLlWFJkqTNtHLlSlasWLHuo7xTEs4++2xu\nv/32dVsfli5dylNPPcXSpUtZunQptWrVomnTppSVlXH33XczderUcmf8OluSJKxYseIbF++t78gj\nj2T69OmMGTOGNWvWcMstt3xjJfbcc8/lmmuuYfr06QB88cUXPPzww+t+durUqTz++OOsWbOGW2+9\n9Rt7mzekb9++G328o446itmzZ3P//fezevVqVq1axeuvv+6eYUmSpExy5JFHUr9+ferVq0f9+vU3\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lReg3 = LinearRegression()\n", "lReg3.fit(X, y)\n", "\n", "print(lReg3.coef_, lReg3.intercept_)\n", "\n", "xx = np.linspace(0, 20, 100)\n", "yy = lReg3.predict(xx.reshape(xx.shape[0],1))\n", "\n", "fig, ax = plt.subplots(figsize=(12,8))\n", "ax.plot(xx, yy)\n", "ax.legend(['Linear 1 degree'])" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "R squared for polynomial fit : 0.867544365635\n" ] }, { "data": { "image/png": "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\njRszZcqU3322c+fOVKpUiVatWvG3v/3tdxGOkJAQPvroIxo1akSjRo3Oe73MzEyeeuop6tevT82a\nNRkyZAgZGRnn/OfqLWqWRURERFxg165dzJkzhxYtWgDQq1cv6tWrx/79+5kyZQrPPfdcvr+IxMfH\nM2bMmDPHP/74I3v37qVjx47nvedXX31FzZo1iYqKyvf9IUOGEBERwYEDBxg5ciSffPLJmffS0tLo\n0KED/fv35/Dhw0ycOJEhQ4bw008/nflshQoVOHjwIKNHj8bj8eSJcMycOZPvv/+eDRs25Hu9hx9+\n+Mz1/vKXv7B161bWrFnD1q1b2bNnDy+//PJ5/4zFZtu2oy9TgoiIiIj3XUif8eLiF22Gkef14uIX\nL+j8c513IWJiYuwKFSrYUVFRdkxMjP3II4/Y6enp9q5du+xSpUrZqampZ8599tln7UGDBtm2bdvD\nhg2z4+LibNu27fT0dDs6OtreunWrbdu2/dRTT9kPP/zwee+9a9cuu3bt2vakSZPyfT8nJ8cOCwuz\nN2/efOZ7zz33nH3DDTfYtm3bkyZNstu1a/e7zzz44IP2yy+/fOazW7ZsOfPeX//61zOftW3btizL\nTkxMPHNc0PVs27bLlStnb9u27cx73333nd2gQYN8az/Xv/fT3y9Ur1rK9+24iIiIiHsNix3GsNhh\nPjv/fGbOnEn79u1/9729e/cSHR1NRETEme/Vr1+flStX5vl8mTJl6NWrF2PHjuWFF15gwoQJfPrp\npwXe89ChQ9x222088sgj9OzZ85zn5OTkUKdOnd/VsGTJEgB27NjBsmXLiI6OBswEbE5ODgMGDODQ\noUNkZ2f/7rN169bNc4+z3z/f9dLS0mjZsuWZ83Nzc/2y4YyaZZECJCYm6qlucSWNTXEzjc/Cya/h\nq1WrFkeOHCE1NZVy5coBsHPnTmrXrp3vNQYMGEBcXBxt2rShXLlytGrV6pz3O3bsGLfddhtdu3bl\nmWeeOed5VatWpVSpUuzatetMpnjnzp1n3q9bty6xsbHMmzcvz2dzc3MJCwtj9+7dNGzYEDAxkz86\nO5ZR0PVs2yYiIoL169dTs2bNc9bsC8osi4iIiLhMnTp1uP7663n22WfJyMhgzZo1jBw58pxrK7du\n3ZqQkBCefPLJAtdfPnHiBB06dKBt27b84x//KLCGkJAQunfvzrBhwzh16hQbNmzA4/Gceb9Tp05s\n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\n", "text/plain": [ "" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# doing feature preprocessing\n", "quad = PolynomialFeatures(degree=2)\n", "X_quad_train = quad.fit_transform(X)\n", "X_quad_test = quad.fit_transform(X_test)\n", "\n", "lReg4 = LinearRegression()\n", "lReg4.fit(X_quad_train, y)\n", "\n", "xx = np.linspace(0, 20, 100)\n", "xx_quad = quad.fit_transform(xx.reshape(xx.shape[0],1))\n", "yy = lReg4.predict(xx_quad)\n", "print(\"R squared for polynomial fit : \", lReg4.score(X_quad_test, y_test))\n", "ax.plot(xx, yy, linestyle='--')\n", "ax.plot(X, y, 'r.')\n", "ax.legend([ 'Linear ', 'Poly 2 degree'])\n", "ax.grid(True)\n", "fig" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's try with 9 degree polinomial" ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "R squared for 9 degree polynomial fit : -0.094356667043\n" ] }, { "data": { "image/png": "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\n3aWNGzfqwIEDdba9f/9+jRw5UsnJyRoyZIi2bt16zP4NGzZo2LBh6tChg/r27atFixYdc+6IESOU\nnJyswYMH66GHHjqmhCMsLEwvvPCC+vTpoz59+pywvbKyMt17773q2bOn0tPTNXXqVJWWltb77wpv\n470TnmOt1L9/k04lWQaAEMjJydF7772ngQMHSpKuu+46nXzyydqzZ48WLVqkGTNm1JlgTJw4Ua++\n+mr1+tdff61du3bpqquuOuE1ly1bpvT0dKXW86fHqVOnKi4uTrm5uZozZ45efvnl6n1FRUUaNmyY\nxo0bp/z8fC1cuFBTp07Vhg0bqs9NTEzU3r17NXfuXM2bN69WCcfixYu1cuVKrVu3rs72brvttur2\n7r//fm3ZskWrV6/Wli1btHPnTj366KMn/B4BoMGuuKJp51nnGdmuvZwQAKDxGvL+8fBHD1vNVK3X\nwx893KDj6zuuITIyMmxiYqJNTU21GRkZ9vbbb7clJSU2JyfHRkRE2CNHjlQfO336dDt58mRrrbUz\nZ86048ePt9ZaW1JSYtPS0uyWLVustdbee++99rbbbjvhtXNycuxJJ51k33jjjTr3V1RU2MjISLtp\n06bqbTNmzLAXXXSRtdbaN954w1588cXHnHPLLbfYRx99tPrczZs3V+978MEHq8+11lpjjF26dGn1\neqD2rLU2Pj7efvvtt9X7Pv30U9urV686Y+f3BoBG2bzZWsna8vKq949G5aoRQcvWAcCDZmbO1MzM\nmS12/IksXrxYl1566THbdu3apbS0NMXFxVVv69mzp7766qta50dHR+u6667Ta6+9pl/+8pdasGCB\n3nrrrYDXzMvL0xVXXKHbb79d1157bb3HVFRUqHv37sfE8O9//1uStG3bNn322WdKS0uT5AysVFRU\naMKECcrLy5PP5zvm3B511ALW3H+i9oqKijRo0KDq4/1+Pw8eARAcf/mLs4xoWtpLsgwEsHTpUu7q\nRrPUlfB169ZN+/fv15EjRxQfHy9J2r59u0466aQ625gwYYLGjx+v73//+4qPj9fgwYPrvV5BQYGu\nuOIKjR49WtOmTav3uE6dOikiIkI5OTnVNcXbt2+v3t+jRw9lZmbq/fffr3Wu3+9XZGSkduzYod69\ne0tyykyOV7MsI1B71lrFxcVp7dq1Sk9PrzdmtB68d8JTPv64WadTswwAIda9e3ddeOGFmj59ukpL\nS7V69WrNmTOn3rmVhwwZorCwMN1zzz0B518+fPiwhg0bpqFDh+qJJ54IGENYWJjGjBmjmTNnqri4\nWOvWrdO8efOq9w8fPlybNm3Sa6+9Jp/Pp/Lycn355ZfauHFjrXM3bNig+fPnB7xeoPaMMbrpppt0\n5513Ki8vT5K0c+dOLVmyJGCbANAgmzdL4eFNPp1kGQiAkRE0R6A5ixcsWKDvvvtO3bp109VXX63H\nHnusVrlGTRMmTNCaNWs0bty4eo/5y1/+oq+++kqvvPKKEhMTlZiYqKSkJO3YsaPO42fNmqXDhw8r\nPT1dU6ZM0ZQpU6r3JSQkaMmSJVq4cKG6deumbt26adq0adUzVMyaNUsFBQVKT0/XxIkTdcMNNyg6\nOrre7/1E7T355JPq3bu3hgwZopSUFA0bNqzRc0TDO3jvhKfk5koxMU0+3bhdE2aMsW7HAKB1Msa0\nm7rWV199VbNnz9by5cvdDqVO06ZNU25url555ZUWv1Z7+rkDCIKYGKljR2nHjqr3j0Y9fYmRZSAA\n5gqFFxQVFemFF17QLbfc4nYo1TZu3KhvvvlGkrRy5UrNmTNHY8aMcTkqeAXvnfCUsrImP5BEIlkG\nAE9bsmSJOnfurPT0dI0dO9btcKodPnxYY8aMUUJCgsaOHav77rtPI0aMcDssAKjNWmnAgCafThkG\ngFaLP8e3T/zcATSKMdJbb0ljxjSpDINkGUCrRdLUPvFzB9Bg2dlSr15ScbEUE0PNMhBs1N0BQOPx\n3gnPqHqIUzNmwyBZBgAAQNv0ySfNboIyDACtFn+Ob5/4uQNosH79pA0bJJ9PkijDAAAAAKrt2dOs\nEgyJZBkIiLo7uOGRRx4J+FjrljJv3jxddNFFIb8u2h7eO+EZhYVScnKzmiBZBoAWkpGRobi4OCUl\nJSk9PV2TJ09WUVFRg84N9KjsQN555x2dddZZSkpK0tChQ7V+/fpGnd/U6wKAJ5WXS927N6uJBifL\nxpg5xphcY8zqGtv+1xiz3hizyhjzljEmqca+6caYzZX7hzUrSsAlmZmZboeAVswYo7///e86dOiQ\nsrKy9OWXX+rxxx9vsett2bJF48aN04svvqiCggINHz5cI0eOlN/vb7FrNkRFRYWr10fo8d4Jz/D7\npbPOalYTjRlZfkXSFcdtWyLpTGvtAEmbJU2XJGPMGZKuldRX0pWSXjAMVwAItcOHpRUrnKUb50vV\nN6Klp6fryiuv1Jo1ayRJu3fv1qhRo9ShQwf16dNHL730Up3nDx8+XM8///wx2/r376/FixfXOvb9\n99/XRRddpAsuuEBhYWG6//77tXPnTi1btqzOtvfv36+RI0cqOTlZQ4YM0datW4/Zv2HDBg0bNkwd\nOnRQ3759tWjRomPOHTFihJKTkzV48GA99NBDx5RwhIWF6YUXXlCfPn3Up0+fE7ZXVlame++9Vz17\n9lR6erqmTp2q0tLSev9dAaDBLr+8Wac3OFm21n4s6cBx2z6w1lYNWXwmqWqce6SkhdZan7U2W04i\nfX6zIgVcQN1dK3b4sHTRRdLFFzvLxia8zT3/ODk5OXrvvfc0cOBASdJ1112nk08+WXv27NGiRYs0\nY8aMOvvbxIkT9eqrr1avf/3119q1a5euuuqqE17T7/fLWludoB9v6tSpiouLU25urubMmaOXX365\nel9RUZGGDRumcePGKT8/XwsXLtTUqVO1YcOG6nMTExO1d+9ezZ07V/PmzatVwrF48WKtXLlS69at\nq7O92267rbq9+++/X1u2bNHq1au1ZcsW7dy5U48++ugJv0d4E++d8IQdO5zl6NHNaiaYNctTJL1X\n+fVJknJq7NtZuQ0AQmPNGmntWme6oHXrnK9DeX6l0aNHKy0tTRdffLEuvfRSTZ8+XTt27NCKFSv0\n1FNPKTIyUv3799eNN96o+fPn1zp/5MiR2rx5c/Wo72uvvabrrrtOERERtY69/PLLtWzZMi1fvlzl\n5eX61a9+pfLy8jrrpP1+v95++2099thjiomJ0ZlnnqmJEydW73/33XfVq1cvTZgwQcYY9e/fX1df\nfbUWLVpUfe6jjz6q6Oho9e3b95hzq8yYMUMpKSmKjo6us70xY8ZUjy7Pnj1bzz77rJKTkxUfH69p\n06ZpwYIFTfo3BwBJ0l/+4iybORtG7XfbJjDGPCCp3FrbpHe2SZMmKSMjQ5KUkpKiAQMGVNc7VX06\nZZ11N9artnklHtaPXQ+oXz/pzDOdRPeMM5yvG6O551davHixLr300mO27dq1S2lpaYqLi6ve1rNn\nT3311Ve1zo+OjtZ1112n1157Tb/85S+1YMECvVX1RKrjnHbaaZo3b55uu+027dmzR+PGjdMZZ5yh\n7nXc3JKXl6eKiopj9vXs2VP//ve/JUnbtm3TZ599prS0NElOOUlFRYUmTJigvLw8+Xy+Y87t0aNH\n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\n4xSGHp8MG+OM9iYmSunpUt++Tq3m1VdLXbu6E3dL8fmkTz+VFi2SVq6Uvv667qexRUbK37mzSs8f\nrG3X/ES5MSk6lHtIh/cX6ewfnFnnyOBvr39JYVuTFF4WofCyCEWWRyiyLFwVE3I18fEJtY+/YIE6\n5nRQeZRf5ZE+VURWaH3JKl1yZz/96Parax0/78H5KtxTqsi4cEUlhCsqIVIxCVE654cDldL1lFol\nD/Xd9JaX5wzKN/SJbp06OTfGhYUF5SfgfYsXS6NHH7sthB+ivMq12TCag2QZXtbuEhK0Gm2yb5aU\nSHPmODWWa9c6I8Tlx9ZWKjzceZRXerp09tnSiBHStde2qxrfN595Q3tXH1LFESN/UbhMcYTiD5Zo\n0n9+oUiVOAc98YQzMp2VJd+O3QrX0Q8WVmEqCUvUvu/1Uo+Fc2olT3NnzFPhrjJFxIcpOilcscnR\nik+JVf8fDNDJp2Y0KMalS5dq6NDMWiUPgWZ72LfPKeVuaOLbqZMUH992pzhrlj17nP8jSUnSRx9J\nv/mNdOed7T5RlkiWAQCtgc8n/fGP0htvOEnxwYPHjhIb49Todu7slEZcfbV0ww3H1ue2EoUHDyl7\nw3fa8+0e9Tyzp049+/Rax8waN1th69IUWRKpqNJIRRdHKLY4XLuv/VY/++ONtY5/7scvKWx7ovzR\n5bKxPim2QmFxfp1/friG/GdpraSotLjEuWEqP1/6n/+R3n1X2r7d+XBSJSrKucHwpz+V7rijzn/r\nkpKGj/jm50uHDjn3L9Y3l29dX0dHB+WfHdHRzgfNoqJ29UGyIUiWAQDesny5M6r1+edOFlVzpNgY\nZyixe3fpggukW25xlh5T4fNp97ZdytmwTbnZeTq4u1BF+8p06sU9dPnYK2od/+wVc3XyVz0UdyRM\nUWXSkXir4ji/Cn68Tbf87qe1jv/T46/rYE6xolMjlNAhRinpSerYo6N6n91HSakpLfI9VU9xtnaP\nEh+fpsQV7yu6IE/GOh9arMK0L7qr/p4yTo9GPaG8AxEqK2v4iG+nTk6i3OgpztB8PXs6H4ZWrpTO\nO8/taDyHZBkIsjb5p260CZ7rmyUlTlK8aJG0ebMzA0XN9/aoKGekePBgaepU6bLLXAs1e8O32vTl\nBu3LKdDh3SUq3V+hioNh6nZxvK697/paxz938Wvq88VJOhLvV3G8TyWxZSqPLVPcfx/RpCdq1/Bm\nLVup0sJS9Ti9p9J7dgvJTWBVU5w19MEW+fnO4HGtxDfVp0u3vazBK2cpZc9GhVVUfrgJD5e6d5e5\n9Vbp3ntPOMrvuf7ZXlxzjfTnPzt/QZhW6zlwkEvzLAMA2pkdO6Rf/UpassT5uuaNZWFhzrNyzz1X\nuu466bbbWvzPwOu/Wqt1y9eqYOcRFef75CsIkw5HKvl8vyb/z6Rax//17mXqsqq7SuJSVBFXKhtX\nKsWVydYzg9zUD66t8678+gy85PwmfidHlZXVn/jW9YCLAwdUa4qzqhHfjAxngPH47bGxdV05QtLN\nla9Kf/iD9OyzzpzT06c7r8hI6ZxzpN/9jtFLr3jxRSdRvvxyEuUgY2QZAFC/tWudxHjZMmnv3mPL\nKMLDnaxr8GDpnnucmSeCYOs3m7R62Tc6sP2Qivb65DvgJL/xZ/t002+m1Dr+uR+/pNQvu6skvkxl\ncSXyxZdJCWXq8YMEXX3XtUGJqTmsdWZ9a8iIb9WrqMj5p62vvreup7odP8VZi/D5nJsH//AHZ77q\nqt/fHTpIP/mJ9MwzrbK2vNXbuFE6/XTnrze5uW5H42mUYQAAmi4ry0mMP/nEydhq3nQXGSl16+aU\nT8yYIfWu/TCI+uzfm691n63Rro17VJBTpJK8ClUURCjhNFtn8jtr3Gwl/7uHk/zGl8gXXyolltVb\nJhFqVc8UaWjim5fnlGc3JOmt2peS0kpmedi4UfrZz6QVK47eMBgVJX3/+85Uf+380cohUVjodBjJ\n+RnwYSUgkmUgyKi7g1c1u29+8YWTGK9Y4WR4NRPj6GipRw/pv//b+ZN7HXMUFx8p0sav1in7m+3a\nl31IRbvLldAjss6yh1njZyv9H6eoMLFMJfGlKosvkT+xVKmDTZ3z9oaaz6daU5wFSnz37XOmLGto\n4ls1xVm78Nhj0qxZWpqXp0zJKcvp3dsZcR4+3OXg2qAdO5wb+vx+516BRnyIba+oWQYA1PbFF84N\nP5984mR6NRPjmBhnyrDhw6WHHtIhK637fK22r92hqJhIja4jUf79LS/p1DnfU2GC1eGkeFUkRkgJ\nxSqKOVTn5X/+6k0t9Z3Vqbj4xIlvzfVDh5wyhrqS39NOcwZJj0+CG1HC3L489JDzWrrUGeW8804n\niRsxwtnftav04INOLTuaZ8UKp3MaI333HaP4LYiRZQBoS6pGjD/99JjE2EqyUVEKy8iQRo6UHnig\n+k+3C59coPIX0pR0MFJxRUaHkvwqTC7X/tN36673Jte6RNXjfmPj41r827HWSWYbM79veXnjHmzB\nFGchkJ0tTZggffbZ0br31FSnhOORRygdaKw//9mZ+SI62un0CQluR9RqUIYBAO1BVpb0619Ll14q\n/e1vzgjT/v3HJMYVJlKHIzsqJ+YCfWcmKO5Ikrb0LdDPVv+oVnNbv9mkNR+v1SkDeun0QWc0auaH\nxqqoODrFWUMS3/x8Jx8I9GCL47clJraSet/2qqBAmjxZ+sc/jtY5JyRI48ZJs2aROJ/Ik0865VEp\nKc5/FP69GoVkGQgyapbhBXu27dLX057Vacv+T53zshXrO6KlkjIlGckppTj5ZGn0aGn6dH2ZtUEf\n/26NYtKNUk+O18n9TtKZF57VIg+4qJrirCGJb9UUZ8nJDX+wRceOPICsNWrwe6fPJ918s/Tmm86U\nIZLzOPMf/Uh66SV++Me7+WZp9mypVy9nKj80GskyEGQky2hJBfn79fW/V2nHN7tV8F2RKkqkX7w6\n2Ukc/vAH6ZtvpEOHZP1HJwCuULjCVaFlki6RZMaPl+bPD0o81jo31tc3l29d61VTnDUk8a2a4oyB\nsLavSe+dPp/zwJNXXnFqbyQnWf6v/3K2pbTM0wxbjcsvl/71L+cpl59+6nY0rRbJMgB4RIXPp2/X\nbdGpZ59ea9/6r9Zq4+W5ijtYqq4xi9TNt1RJFbsV6S9R9Tu4Mc4IW+/e0vXXOzdKxcQ4JRiDBh1t\n7KuvpIED64zB73dGchsy4lv1CgtreOLbqZMzSkzJA1rEI49Iv/2tU7cjOdMXDh3qfDjs3t3d2ELp\nww+dDwzl5dK110pvvOF2RK0ayTIAuKD4SJH+eM0bCtsfq5iDcUo8GKvU/REqivdrVO4lzuOO166V\nnn5aWrZMdvfu6qfeGcnJUJOSpH79pEmTpIkT6xx+LS937tk7tCxLCS/9Rqsvu1NbEgfWm/ju3++U\ngja01rdTJyc/Bzzn+eelxx+X9uxx1sPDpf79nZKEej4stno+nzRggPPeERMjLV/O0xKDgGQZCDLK\nMNqvwoOHtGpZlr7LylHBtyXy5UYq4kCsJv/zSiUkJx1zbIXPp1n//ZrC0sqV0E0anJ+l3uu/UvTW\nLc7TK2qUUSgiwslOL7hAxbfdrbxThzZ4ft/CwqNTnEVELNWpp2YGrP3t2DFET3UDjtOi750LF0r3\n3y/l5Di1Q8Y4I80PPyz99Kctc81Qe+YZ6b77nO9v4kRp7ly3I2ozmGcZABqotLhEq/6dpbO/P6DO\nKYmX+20AABYUSURBVNDeP+UL2TCpLDVNSj4ipRZJpx2Sr9x39KDly6Xf/lbhn3+uO/bude52q2ZU\nFhWnA53O0OqTR+gvve5W9uGOR5Pf96WK9+of8c3IqL09NdUZhJacaWz5HId26frrnZfkTJV4663S\n6tXSjTc6r+Rk52bX3/2u9U2plp/vTO69f7/zn37dOudNAK5iZBlAu/DbsbOlbQmKORCv5ANxSt0f\nrsIEv7q+GqkLr7q41vFFhSUqLIpRXp5UvHSFOi78nVLXr1Dcwd2K8JXKmaDNUa5I7VUnfRU+WH/u\n+DNt6vnDBs32kJBAvS8QNAUFTrL8f//n3HkqOZ8uMzKcUdpbb3U1vIBefNGJ8dAh503hueekn//c\n7ajaJMowALQrhQcP6asPv9R3X+To0Ldl8u+N1jk/765LfnRZrWN/c81s+f1SeKdIRXXrquguA3W4\npPMxZQ6nbHhXP9z+svoWfaWOdq9iVCpTIymuMBEqiUnV/pPO0K6h1+vQNTeqU3oEU5wBXjR/vvTE\nE9LWrUefWhkd7Yzc3nabNGWKu1OzFBQ4j5T/7DOn3CImRpo61SnBQIshWQaCjJpl91X4fM4NcjVY\nKz1/3pvqs7qTDqb4dTC1WIXJhSpOLNK+752hfeVDatX/lpQ4Ce2pyXs0peQFDTn8gbod2azYsoMK\n95cfe9HIyP/f3r0HV13eeRz/PCfJSU7uN0KAhIuCiCgFVERBS5VWrJeyuqW6rSvbynbGOq3rTGfb\ndWa70+7stDu7LoyO7WzVqju1Lmq9da1FStEqXlCk0gJyDZBAQhJIIPecnGf/eE7kcHJOSCDJ75eT\n92vmNzm/S3K+4OOP73ny/X0f2aIiBWbNkm67TVq1yneZMGMTfua78dnRId1/v/Tss67Eofc5gkBA\nKiuTrr/ePUA43F029uxxtdWvvCKdPOmOXXCBW1xo5szhfW9IomYZwCgViUi/+cXvtPeNQwofSVPm\n8RzlNuWquCFLHyzap/2Fd/d58G3quFmKVFaqoLiwT6nDJaEmzf/TY6qs/a1yWnYovfuYFO6UOWKl\nI9E3NSa6mMckad48t3rYLbd8OtNEdQSQQrKypEcecZvkOk2sWSM9/ribeX7ySbdJLoEOhaSJE6UF\nC9xCINf0LdU6o6Ym6Uc/kl56yT2MGPtMQyjkVuH7t3879z8bhh0zywCGXFfXqaWKe5PbAzu2q3nf\nn9Viy3Skc8lpye+xY9J3L39U5a1FOpnTotbsLnXkZSu97HyVTb9M48vTNa15iy589UF13Xu/CpfM\nV/bOLe7XrO+8I1VVua4TXV1u2rmXMa4dRFGRNGOGWx76nnuk8nLP/m4A+FR1tfTTn0qvv+4S6Obm\nU+Ub8YxxSXV6uvu037slymfS0qTx46XrrpN++ENXQw3PUIYBYFi0tg5uYYvWVumOy57SpR0hFTTn\nqqQ+S4GI1DCuUwcurdbMFXefNhOcsMXZxx+75vtvvy3t3CnV1SUOrneGuKjILeDx2c+6WkT+QQIw\nFMJh15ViyxbX87iqyvV7rq93pRTBoOvAUVrqPohPmeI+nF9+uTR7ttfRIw7JMjDEfFd3NwSsdRMm\nA0l6ezdrT5U5lBU3aGreeyoO1yqnVYqUSBf/zTdO6/RQWCi9sGatjmxtVumsXF38uYs069LZp2qP\nq6qk5593s8KffCIdOeKaCMfPDEsuGTbm9F7FV1/tVrUaw+smp+LYROpgfMKvqFkGxqCeHreq20AT\n38ZGVy6XqJ3ZhAnSnDl9z+XkSL/4/hPKe7xCBdvS1DguqObiEnWUnlTh9IiWL48GU1srPfeytGmT\nbvvkE+nwYenFJumf293sTLJfUWZlSSUlbkbm0kulG2+Uli49lQzHL/G8evWYTpQBACOHmWXAZzo6\nzpz4xu43N7sKhGRLGSda1S0z073X4f3Vev/V91XzUaO6DmUoWJ+r7twO3ffm19wF4bBra/TOOzrx\nxpvq2bNfBV1tCjQ3uz6m3d3J6/R664VDITfVPHmyW572+uulZcsGn+xu2eKS5PvuS93lbQEAw4oy\nDMBnrHUlbQOZ8e0919V1KrG9IrhFXz36oDYtvF/ds+cnnA0uLnaTs/3qrbnbvNl9PXBADR9+rKyq\nNqUFWpRmOxVQtwI2IiObvBOEMe7NMjOlvDwXyOTJ0sUXu9KIpUt912INAIBeJMvAEIuvu4tEXOeG\ngSa+9fXu2Y9kM76JjuflRVd1iy89uPdeV3NRW+t+eFOTW+2prU3q7JTt6pLt7pZ6IqctpCElboNm\no4mv6Z39zctzpRATJ0rnnefe+9prh7/vKM4KNaHwM8Yn/IqaZWCQelucJUt8t2931zU0SCePtCjz\n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\n", "text/plain": [ "" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lReg9 = LinearRegression()\n", "\n", "# feature processing\n", "nine = PolynomialFeatures(degree=9)\n", "X_nine_train = nine.fit_transform(X)\n", "X_nine_test = nine.fit_transform(X_test)\n", "\n", "\n", "#fitting the model\n", "lReg9.fit(X_nine_train, y)\n", "\n", "xx_nine = nine.fit_transform(xx.reshape(xx.shape[0],1))\n", "yy = lReg9.predict(xx_nine)\n", "#print(xx_nine)\n", "\n", "print(\"R squared for 9 degree polynomial fit : \", lReg9.score(X_nine_test, y_test))\n", "\n", "\n", "ax.plot(xx, yy, linestyle='-', c='r', )\n", "ax.legend([ 'Linear ', 'Poly 2 degree', 'Poly 9 degree'], loc='upper center')\n", "\n", "fig\n", "\n", "# R square value is negative which indicates the poor performance" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "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.5.2" } }, "nbformat": 4, "nbformat_minor": 0 }