Created
January 7, 2020 00:53
-
-
Save Ammaraf/4c0c16ffbd8f6f709d9e1baa7f299a3e to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://ibm.box.com/shared/static/cw2c7r3o20w9zn8gkecaeyjhgw3xdgbj.png\" width = 400, align = \"center\"></a>\n", | |
"# <center>Non Linear Regression Analysis</center>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"If the data shows a curvy trend, then linear regression will not produce very accurate results when compared to a non-linear regression because, as the name implies, linear regression presumes that the data is linear. \n", | |
"Let's learn about non linear regressions and apply an example on python. In this notebook, we fit a non-linear model to the datapoints corrensponding to China's GDP from 1960 to 2014." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Importing required libraries" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Though Linear regression is very good to solve many problems, it cannot be used for all datasets. First recall how linear regression, could model a dataset. It models a linear relation between a dependent variable y and independent variable x. It had a simple equation, of degree 1, for example y = 2*(x) + 3." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"x = np.arange(-5.0, 5.0, 0.1)\n", | |
"\n", | |
"##You can adjust the slope and intercept to verify the changes in the graph\n", | |
"y = 2*(x) + 3\n", | |
"y_noise = 2 * np.random.normal(size=x.size)\n", | |
"ydata = y + y_noise\n", | |
"#plt.figure(figsize=(8,6))\n", | |
"plt.plot(x, ydata, 'bo')\n", | |
"plt.plot(x,y, 'r') \n", | |
"plt.ylabel('Dependent Variable')\n", | |
"plt.xlabel('Indepdendent Variable')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Non-linear regressions are a relationship between independent variables $x$ and a dependent variable $y$ which result in a non-linear function modeled data. Essentially any relationship that is not linear can be termed as non-linear, and is usually represented by the polynomial of $k$ degrees (maximum power of $x$). \n", | |
"\n", | |
"$$ \\ y = a x^3 + b x^2 + c x + d \\ $$\n", | |
"\n", | |
"Non-linear functions can have elements like exponentials, logarithms, fractions, and others. For example: $$ y = \\log(x)$$\n", | |
" \n", | |
"Or even, more complicated such as :\n", | |
"$$ y = \\log(a x^3 + b x^2 + c x + d)$$" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's take a look at a cubic function's graph." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"x = np.arange(-5.0, 5.0, 0.1)\n", | |
"\n", | |
"##You can adjust the slope and intercept to verify the changes in the graph\n", | |
"y = 1*(x**3) + 1*(x**2) + 1*x + 3\n", | |
"y_noise = 20 * np.random.normal(size=x.size)\n", | |
"ydata = y + y_noise\n", | |
"plt.plot(x, ydata)\n", | |
"plt.plot(x,y, 'r') \n", | |
"plt.ylabel('Dependent Variable')\n", | |
"plt.xlabel('Indepdendent Variable')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"As you can see, this function has $x^3$ and $x^2$ as independent variables. Also, the graphic of this function is not a straight line over the 2D plane. So this is a non-linear function." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Some other types of non-linear functions are:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Quadratic" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"$$ Y = X^2 $$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"x = np.arange(-5.0, 5.0, .05)\n", | |
"\n", | |
"##You can adjust the slope and intercept to verify the changes in the graph\n", | |
"\n", | |
"y = np.power(x,2)\n", | |
"y_noise = 2 * np.random.normal(size=x.size)\n", | |
"ydata = y + y_noise\n", | |
"plt.plot(x, ydata, 's')\n", | |
"plt.plot(x,y, 'r') \n", | |
"plt.ylabel('Dependent Variable')\n", | |
"plt.xlabel('Indepdendent Variable')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Exponential" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"An exponential function with base c is defined by $$ Y = a + b c^X$$ where b ≠0, c > 0 , c ≠1, and x is any real number. The base, c, is constant and the exponent, x, is a variable. \n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"X = np.arange(-5.0, 5.0, 1)\n", | |
"\n", | |
"##You can adjust the slope and intercept to verify the changes in the graph\n", | |
"\n", | |
"Y= np.exp(X)\n", | |
"\n", | |
"plt.plot(X,Y) \n", | |
"plt.ylabel('Dependent Variable')\n", | |
"plt.xlabel('Indepdendent Variable')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Logarithmic\n", | |
"\n", | |
"The response $y$ is a results of applying logarithmic map from input $x$'s to output variable $y$. It is one of the simplest form of __log()__: i.e. $$ y = \\log(x)$$\n", | |
"\n", | |
"Please consider that instead of $x$, we can use $X$, which can be polynomial representation of the $x$'s. In general form it would be written as \n", | |
"\\begin{equation}\n", | |
"y = \\log(X)\n", | |
"\\end{equation}" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/ipykernel_launcher.py:3: RuntimeWarning: invalid value encountered in log\n", | |
" This is separate from the ipykernel package so we can avoid doing imports until\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEGCAYAAAB7DNKzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXxddZ3/8denbbon3ZO26ZIu6Q4tEAqlIAWKLIIggsKIiqPWBWYcHFFGndGRGcdxxplxlMUOIqD8QBHZK9Cy7933pvuWZuuapW2a7fP745yWS01ub5vcnJvc9/PxuI97tnu+n5Om95Pv+X7P92vujoiISHM6RR2AiIikNiUKERGJS4lCRETiUqIQEZG4lChERCSuLlEHkAwDBw70vLy8qMMQEWk3lixZssfdBzW1r0Mmiry8PBYvXhx1GCIi7YaZbW9un249iYhIXEoUIiISlxKFiIjEpUQhIiJxKVGIiEhcShQiIhKXEoWIiMTVIZ+jEBFJF3urj7CxvJqN5dUcPFLPVy8c0+plKFGIiLQDe6uPsKGsmg1lVWwsr2JjWTWbyqvZe7D22DHZmd34ykdGY2atWrYShYhICqk4VMeG8irWl1axoSx4bSz7cELI7N6F/OzeXDoph7HZvcnPySQ/uzdD+nRv9SQBEScKM3sAuAood/cpTeyfBTwNbA03/cndf9R2EYqIJEdNXQMby6pZX1bF+tJK1pdVs6G0itLKmmPH9O7Whfyc3syemEN+Tm/G5WQyLieTnKxuSUkIzYm6RvEg8Evg4TjHvOnuV7VNOCIiraux0dmx7xCFpZUUlgY1hfWlVWzbe5DGcCbqrl06kZ/dm/PGDGD84EzGDQ4SwtAk1RBOVqSJwt3fMLO8KGMQEWktFYfqjiWEwtJK1pUESeFwXQMAZjCyf0/GD87k6qlDmRAmhbwBvejcKfqE0JyoaxSJmGFmK4Bi4Fvuvqapg8xsDjAHYMSIEW0Ynoikm8ZGZ/u+Q6wrqTz2WltcSXHFB7eN+vbMYOLgLG6cPpwJgzOZMDiL/Jze9OzaHr52PyzVI14KjHT3ajO7EngKyG/qQHefC8wFKCgo8LYLUUQ6spq6BtaXVrG2pJI1xRWsLQ5qDIdqg1pCJ4Mxg3pTkNefiUOymDgkk4lDssjObNt2hGRK6UTh7pUxy/PM7B4zG+jue6KMS0Q6popDdawpqWDNriAprCmuZPPu6mNtCb27dWHSkCw+VTD8WEIYl5NJ94zO0QaeZCmdKMxsMFDm7m5m0wmeJN8bcVgi0gHsrjrC6uIK1uyqYPWuStaUVLBz3+Fj+4f06c7koVlcMWUwk4ZmMWlIH4b160GnFG5LSJaou8c+CswCBppZEfADIAPA3e8Drge+Zmb1wGHgRnfXbSUROSnllTWs2lXBqjAprN5V8aFuqHkDenL6sL7cNH0EU4b2YfLQLAb07hZhxKkl6l5PN51g/y8Jus+KiCRkT/WRICkUVbCyqIJVuw5QVnkECHodjRnUm3NH92dKbh+m5PZh0tAssrpnRBx1akvpW08iIvFU1tSxuqiCFUUVrCw6wMqiCnYdCG4fHU0K540ZyGm5fThtWB8mDcmiVzd97Z0s/cREpF2orW9kXUkly3ceYMXOA6woOsDm3QeP7R85oCdnjuzHF2bmcVpuHybn9qG3kkKr0E9RRFKOe/A08/KdB1i24wDLdx5gbXEltQ2NAAzs3Y1pw/tw7bRcTh/el9Nz+9CvV9eIo+64lChEJHLVR+pZufMAy3YeYNmO/SzbceDYIHjdMzpxem5fPn/eSKYN78e0EX1TZmiLdKFEISJtyt3ZvvcQS7bvZ+mO/SzZvp8NZVXHnlUYPagXs8Znc+bIvkwb3pfxOZl06aw51qKkRCEiSVVT18CqXRUs3hYkhWU79h+rLWR268K0EX25bPJgzhgRJIa+PXULKdUoUYhIq9p3sJbF2/axZPt+Fm3bx+pdH7QtjBoY1BbOGtmPs0b2Y2x275QeDE8CShQi0iJF+w+xcOs+Fm3bx8Kt+471RMrobJyW24cvzMw7lhj0EFv7pEQhIglzdzbvrub9rUFSWLR137ERUzO7d6FgZD8+edYwzs7rz2m5fTr8GEjpQolCRJrV2OhsLK/m/a17eX/LPt7fupc91UH7wqDMbkzP689XRvXn7Lz+jB+cqdtIHZQShYgc4+5sKq/m3S17eWfTXt7fupf9h+oAGNqnOxfkD+KcUf05Z/QA8gb0VBfVNKFEIZLG3J1tew/x7ua9vLN5D+9t2cee6mBcpNy+Pbh4Qg7nju7PuaMHMKxfDyWGNKVEIZJmyitreGfzXt7atId3Nu051saQk9WN88cOYMaYAcwYPZDh/ZUYJKBEIdLBVR+p5/0te3lz4x7e3rSHjeXVQDBV54zRA/j6RQM5b8wARg3spcQgTVKiEOlgGhqd1bsqeHPjbt7YuIel2/dT3+h0z+jE2Xn9uf6sYcwcO5BJQ7LSchIeOXlKFCIdQFllDa9v2M3rG3bz9qY9HAgboKfkZvGlC0bzkfyBnDmyn7qryimJeoa7B4CrgHJ3n9LEfgN+DlwJHAJucfelbRulSOqprW9k8fZ9QXJYv5vC0ioAsjO7MXtiDhfkD+T8sQP1gJu0iqhrFA8SzGD3cDP7rwDyw9c5wL3hu0jaKaus4dXCcl5dX85bG/dwsLaBjM7G2Xn9ufOKCVw4bhATBmeqnUFaXdRTob5hZnlxDrkGeDicJ/s9M+trZkPcvaRNAhSJUEOjs3zngWPJYU1xJRA8z3DtGbnMGp/NeWMGaMY2SbpU/w3LBXbGrBeF2/4iUZjZHGAOwIgRI9okOJHWdvBIPW9u3MOCdWW8WljO3oO1dO5knDWiH9+5fAIXTRjE+BzVGqRtpXqiaOp/gzd1oLvPBeYCFBQUNHmMSCoqrahh/royFqwt490te6mtbySrexdmjc/mkonZzBqXTZ+eGVGHKWks1RNFETA8Zn0YUBxRLCKtZlN5FS+uKeOlNaWsKKoAIG9ATz577khmT8yhIK8fGZqsR1JEqieKZ4DbzOwxgkbsCrVPSHvk7qwoquCF1aW8tLaULeFQ3FOH9+WOy8Zz2eQcxgzqrVtKkpKi7h77KDALGGhmRcAPgAwAd78PmEfQNXYTQffYL0QTqcjJa2x0lu7Yz7xVpbywuoTiihq6dDJmjBnAF87L49JJgxncp3vUYYqcUNS9nm46wX4Hbm2jcERarKHRWbh1H39eXcILq0sprzpC1y6d+Ej+IP7+o+OZPTFH7Q3S7qT6rSeRlHe05vDcyhKeX1XC7qojdM/oxEXjs7l8ymAunpBNZnclB2m/lChEToG7s7KogmdXFPP8qhJKKmro1qUTF0/I5qrTh3LRhEH07Kr/XtIx6DdZ5CRs2V3NU8uLeXr5LrbvPURGZ+PCcYP4zuUTmD0ph956+E06IP1Wi5xAeVUNz64o4enlu1hZVIEZzBg9gFtnjeWyyYPV5iAdnhKFSBNq6hp4cU0pTyzdxVsbd9PoMHloFt+7ciJXTx2q3kqSVpQoRELuzpLt+3liaRHPrSih6kg9uX178LVZY/jEGbmMzc6MOkSRSChRSNorqTjME0uKeGLpLrbuOUiPjM5ccdpgrj9zGOeOHqDJfSTtKVFIWqpraOSVwnJ+v2gnr60vp9Hh3NH9+fqsMVxx2hA1SovE0P8GSStb9xzk94t28sclReypPkJOVje+PmssnyoYzogBPaMOTyQlKVFIh1fX0Mj8tWX87r3tvLN5L507GRdPyObGs4dz4bhBdNHgeyJxKVFIh1V84DCPLdzBY4t2Ul51hNy+PbjjsvHccNYwsrPUa0kkUUoU0qG4O29t2sPD727n5XVlODBr3CD+7dyRzBqfTWc1TIucNCUK6RAO1dbzp6W7ePCdbWwqr6Z/r6585cIx/NX0EQzvr7YHkZZQopB2rWj/IX777nYeXbiDypp6puRm8bMbpnLV1CF069I56vBEOgQlCmmXlu7Yz/1vbuGF1aWYGZdPHswXZuZx1sh+mvxHpJUllCjMbCSQ7+4LzKwH0MXdq5IbmsiHNTY6LxeWM/eNzSzatp8+PTKY85ExfHbGSHL79og6PJEO64SJwsy+DMwB+gNjCOatvg+4pKWFm9nlwM+BzsD97v6T4/bPAp4Gtoab/uTuP2ppudK+1NQ18NSyXfzfm1vYvPsguX178IOrJ/GpguH00oNxIkmXyP+yW4HpwPsA7r7RzLJbWrCZdQbuBi4FioBFZvaMu6897tA33f2qlpYn7U/1kXp+99527n9zK3uqjzB5aBY/v3EaHzttiJ59EGlDiSSKI+5ee/S+r5l1AbwVyp4ObHL3LeF5HwOuAY5PFJJmKg7X8eDb23jg7a1UHK7jgvyBfPXCaZw3ZoDaH0QikEiieN3Mvgv0MLNLga8Dz7ZC2bnAzpj1IuCcJo6bYWYrgGLgW+6+phXKlhS072Atv35rCw+/s52qI/XMnpjDbRePZdrwvlGHJpLWEkkUdwJfBFYBXwHmAfe3QtlN/Wl4fE1lKTDS3avN7ErgKSC/yZOZzSFoS2HEiBGtEJ60lb3VR/jVG1v47bvbqalv4MopQ7j1orFMGpoVdWgiQgKJwt0bgf8LX62pCBgesz6MoNYQW3ZlzPI8M7vHzAa6+54m4pwLzAUoKChojVtjkmQVh+u4/80tPPDWVg7XNXDNtFxuvWiM5n0QSTHNJgozW0Wctgh3P72FZS8C8s1sFLALuBH4q+NiGAyUubub2XSgE7C3heVKxA4eqec3b29l7htbqKyp52OnD+H22flKECIpKl6NIqk9jdy93sxuA14k6B77gLuvMbOvhvvvA64HvmZm9cBh4EZ3V22hnaqpa+B3723nntc2s+9gLbMnZvPNS8frFpNIirNEvnfDv+ynE9QwFrl7abIDa4mCggJfvHhx1GFIqLHReXZlMT99YT27DhzmgvyBfPPScZwxol/UoYlIyMyWuHtBU/sSeeDuS8A/Aa8QNED/wsx+5O4PtG6Y0hG9t2UvP563jpVFFUwaksVPrz+dmWMHRh2WiJyERHo93QGc4e57AcxsAPAOoEQhzdpUXs1P/lzIgnVlDOnTnZ/dMJVPnJGr+adF2qFEEkUREDuuUxUffv5B5JiKQ3X894IN/Pa97fTI6My3Lx/PX88cRfcMjeQq0l7F6/X0zXBxF/C+mT1N0EZxDbCwDWKTdqSx0Xl8yU7+/YX1HDhUy1+dM4LbZ49jQO9uUYcmIi0Ur0ZxtK/i5vB11NPJC0faoxU7D/BPz6xhxc4DFIzsxz9fM53JQ/tEHZaItJJmE4W7/3NbBiLtz76DtfzHi4U8tmgnA3t3478/PZVrp+VqPCaRDiaRXk+DgG8Dk4FjM9K7+8VJjEtSmLvzxNJd/Mvza6muqedL54/iby/JJ7N7RtShiUgSJNKY/Qjwe4IH8L4KfB7YncygJHXt3HeI7z65ijc37uGskf34t+tOY1yOnqgW6cgSSRQD3P3XZvYNd3+dYDTZ15MdmKSW+oZGHnxnGz97aQOdDO66ZjKfOWekuruKpIFEEkVd+F5iZh8jGLhvWPJCklSztriSO/+0kpVFFVwyIZu7rp3CUE09KpI2EkkU/2JmfYC/B34BZAG3JzUqSQn1DY3c89pm/vfljfTtmcEvbjqDq04fosZqkTSTyDDjz4WLFcBFyQ1HUsXWPQe5/ffLWb7zAFdPHcqPPj6Zfr26Rh2WiEQg3gN333b3n5rZL2hiuHF3/9ukRiaRcHceXbiTu55bS0Zn4+c3TuOaablRhyUiEYpXo1gXvmsY1jSxu+oIdz6xkpcLy5k5dgD/ecNUhvRRW4RIuov3wN2zZtYZmOLud7RhTBKBVwrLuOPxlVQdqeefrprELeflqUeTiAAnaKNw9wYzO6utgpG2V9/QyH/N38A9r21m4pAsHr1xmp6LEJEPSaTX0zIzewZ4HDh4dKO7/ylpUUmbKK+s4W8eXcb7W/dx0/Th/ODqyRrlVUT+QiKJoj/BPNWxQ3Y40OJEYWaXAz8nmAr1fnf/yXH7Ldx/JXAIuMXdl7a0XIF3N+/lbx5dRvWROn52w1Q+eZYejRGRpiXSPfYLySg4bP+4G7iUYM6LRWb2jLuvjTnsCiA/fJ0D3Bu+yylqbHTufX0zP3tpPXkDe/HIl85h/GDdahKR5iUyKGB34Iv85aCAf93CsqcDm9x9S1jOYwRzXcQmimuAhz2Y2Ps9M+trZkPcvaSFZaelqpo6bv/9chasK+eq04fwk0+eTu9uiVQqRSSddUrgmN8Cg4HLgNcJhu+oivuJxOTy4ZnyisJtJ3sMAGY2x8wWm9ni3bs1ZuHxivYf4vp73+XV9bv54dWT+MVNZyhJiEhCEkkUY939H4GD7v4Q8DHgtFYou6m+l8c/2JfIMcFG97nuXuDuBYMGDWpxcB3J0h37ufbutymuOMxDX5jOLTNHaRgOEUnYyQwKeMDMpgClQF4rlF0EDI9ZH0Yw4ODJHiNxPL18F3f8cSVD+nTnsTlnMza7d9QhiUg7k0iNYq6Z9QO+DzxD0Ibw761Q9iIg38xGmVlX4Mbw/LGeAT5ngXOBCrVPJMbd+e/5G/jGY8uZNqwvT359ppKEiJySeGM95bh7mbvfH256AxjdWgW7e72Z3Qa8SNA99gF3X2NmXw333wfMI+gau4mge2xSemB1NDV1Ddzxx5U8u6KYT545jB9fN4VuXfR8hIicmni3nlaY2SrgUeAJd69o7cLdfR5BMojddl/MsgO3tna5Hdmh2nrmPLyEtzbt4duXj+drF45Re4SItEi8W0+5wH8CFwAbzOwpM/u0mWmUuBRVcbiOz/56Ie9s3sN/3jCVr88aqyQhIi3WbKJw9wZ3fzF84G448BvgWmCrmT3SVgFKYvZUH+Gmue+xsugAd//VmVyvJ61FpJUk0piNu9cSNGKvAyqBSckMSk5O8YHDfOpX77JlTzX3f/5srjhtSNQhiUgHErd7rJmNAD4N3AT0Ah4DrnH3dfE+J21n256DfOb+96k8XMfDf30O00f1jzokEelg4vV6eoegneJxYI67awKjFLOhrIrP3P8+9Q2NPDrnXKbk9ok6JBHpgOLVKP4BeCPseSQp5mhNwoA/fGUG+ZpDQkSSJN4Md6+3ZSCSuNKKGm7+dVCTePyrMxibrSQhIsmjUeHamX0Ha7n51+9z4FAd/+/L5yhJiEjSnbDXk5mNSmSbJF9VTR23/GYhO/Yd4v8+V8Dpw/pGHZKIpIFEusc+0cS2P7Z2IBJfTV0DX3poMWuLK7n3M2cyY8yAqEMSkTQRr9fTBILJivqY2XUxu7KImcBIkq+uoZFbH1nKwm37+J9PT+OSiTlRhyQiaSReG8V44CqgL3B1zPYq4MvJDEo+4O58+48rebmwnLuuncI105qct0lEJGni9Xp6GnjazGa4+7ttGJPEuPf1zTy5bBffvHQcnz13ZNThiEgaSqTX0yYz+y7BZEXHjm+FObPlBF4pLOM/XlzP1VOH8jcXj406HBFJU4kkiqeBN4EFQENyw5GjNu+u5huPLmfSkCx++snTNQqsiEQmkUTR092/k/RI5JjKmjq+/PBiMrp04lefPYseXTXpkIhEJ5Husc+Z2ZWtWaiZ9Tez+Wa2MXzv18xx28xslZktN7O0GGuqodH5u8eWs2PvIe75zJkM69cz6pBEJM0lkii+QZAsasys0syqzKyyheXeCbzs7vnAy+F6cy5y92nuXtDCMtuF/5q/nlcKy/nB1ZM4d7SelRCR6J0wUbh7prt3cvfu7p4Vrme1sNxrgIfC5YcIJkRKe8+tLObuVzdz0/Th3KweTiKSIhIZwsPM7GYz+8dwfbiZTW9huTnuXgIQvmc3c5wDL5nZEjObc4I455jZYjNbvHv37haG1/Y2llVxx+MrOWtkP/7541PUeC0iKSORxux7gEbgYuAuoBq4Gzg73ofMbAEwuIld3zuJ+Ga6e7GZZQPzzazQ3d9o6kB3nwvMBSgoKGhXQ6PXNTRy+x+W07NrZ+79zJl07ZLQxIMiIm0ikURxjrufaWbLANx9v5l1PdGH3H12c/vMrMzMhrh7iZkNAcqbOUdx+F5uZk8C04EmE0V79otXNrF6VyX33XwW2VkaHUVEUksif7rWmVlngttAmNkgghpGSzwDfD5c/jzBsxofYma9zCzz6DLwUWB1C8tNOSt2HuDuVzdx3Rm5XD6lqQqYiEi0EkkU/ws8CWSb2b8CbwE/bmG5PwEuNbONwKXhOmY21MzmhcfkAG+Z2QpgIfC8u7/QwnJTSk1dA9/8w3KyM7vxg49PjjocEZEmnfDWk7s/YmZLgEsAA65193UtKdTd94bnO357MXBluLwFmNqSclLdT19Yz+bdB/ndF8+hT4+MqMMREWlSvGHG+8eslgOPxu5z933JDKyje3fzXh54eyufmzGS8/MHRh2OiEiz4tUolhC0SxgwAtgfLvcFdgCa5e4UVdXU8a3HVzBqYC/uvGJC1OGIiMTVbBuFu49y99HAi8DV7j7Q3QcQzFHxp7YKsCO667m1lFQc5mefmkrPrpq2XERSWyKN2We7+9EGZtz9z8CFyQupY3ulsIw/LC7iqxeO4cwRTQ5xJSKSUhL5c3aPmX0f+B3Braibgb1JjaqDOlLfwA+fWcu4nN58Y3Z+1OGIiCQkkRrFTcAggi6yTxEMt3FTMoPqqB5+Zzs79h3iH6+aRLcuGjpcRNqHRLrH7iMYQVZaYP/BWn7xykZmjR/EBfmDog5HRCRhJ0wUZjYO+BZ/ORXqxckLq+P5+csbqT5Sz3evnBh1KCIiJyWRNorHgfuA+9FUqKdky+5qfvfedm6cPoJxOZlRhyMiclISSRT17n5v0iPpwP7tz4V0z+jM7bPHRR2KiMhJS6Qx+1kz+7qZDQmnMO1/3FPbEse7m/cyf20ZX5s1hkGZ3aIOR0TkpCVSozg6yusdMdscGN364XQsjY3Ov85bS27fHnzxfD3ILiLtUyK9nvQNd4qeXLaL1bsq+Z9PT6N7hrrDikj7lMhUqD3N7PtmNjdczzezq5IfWvt2uLaB/3hxPVOH9eHjU4dGHY6IyClLpI3iN0AtcF64XgT8S9Ii6iD+780tlFbW8P2rJtGpk+a/FpH2K5FEMcbdfwrUAbj7YYJRZKUZVTV1zH1jC5dNzuHsPLX7i0j7lkiiqDWzHnwwFeoY4EhSo2rn/rC4iOoj9dx2kcZzEpH2L5FE8QPgBWC4mT0CvAx8uyWFmtkNZrbGzBrNrCDOcZeb2Xoz22Rmd7akzLbS0Og89M42Ckb247RhfaIOR0SkxRLp9TTfzJYC5xLccvqGu+9pYbmrgeuAXzV3gJl1Bu4mmFO7CFhkZs+4+9oWlp1UrxSWs2PfIb5zuSYkEpGOIdFZcy4Ezie4/ZRBMJLsKTs657ZZ3KaO6cCmcO5szOwx4BogpRPFb97eytA+3blsck7UoYiItIpEusfeA3wVWEVQE/iKmd2d7MCAXGBnzHpRuK1JZjbHzBab2eLdu3cnPbimFJZW8s7mvXx2Rh5dOidyV09EJPUlUqO4EJji7kcbsx8iSBpxmdkCYHATu77n7k8nUG5T1Q1v7mB3nwvMBSgoKGj2uGR68O1tdM/oxE3Th0dRvIhIUiSSKNYDI4Dt4fpwYOWJPuTus1sQFwQ1iNhv3GFAcQvPmTT7Dtby5LJdXHfmMPr27Bp1OCIirSaR+yMDgHVm9pqZvUbQRjDIzJ4xs2eSGNsiIN/MRplZV+BGIJnltcijC3dwpL6RL8zMizoUEZFWlUiN4p9au1Az+wTwC4IpVp83s+XufpmZDQXud/cr3b3ezG4DXgQ6Aw+4+5rWjqU11DU08tt3t3P+2IGab0JEOpxEuse+bmYjgXx3XxA+fNfF3atOtVB3f5Imek65ezFwZcz6PGDeqZbTVv68upTSyhp+fN2UqEMREWl1ifR6+jLwRz545mEY8FQyg2pvfvP2VkYN7MWscdlRhyIi0uoSaaO4FZgJVAK4+0ZA34ihZTv2s2zHAT4/Y6QG/xORDimRRHHE3WuPrphZF+J0U003v3l7G5ndunB9gbrEikjHlEiieN3Mvgv0MLNLgceBZ5MbVvtQVlnDvFUl3FAwnN7dEn3IXUSkfUkkUdwJ7CZ4yO4rBI3L309mUO3F8ytLqG90PnPuiKhDERFJmkR6PTWa2VPAU+4ezdgYKWrBujLys3szZlDvqEMREUmaZmsUFvihme0BCoH1ZrbbzFr9uYr2qOJQHe9v3celkzT4n4h0bPFuPf0dQW+ns919gLv3B84BZprZ7W0SXQp7dX05DY3ObCUKEeng4iWKzwE3ufvWoxvCIb9vDveltflryxiU2Y1pw/pGHYqISFLFSxQZTU1QFLZTZCQvpNR3pL6B19aXM3titp6dEJEOL16iqD3FfR3ee1v2cbC2Qe0TIpIW4vV6mmpmlU1sN6B7kuJpF+avLaVn186cN2Zg1KGIiCRds4nC3Tu3ZSDthbuzYG05H8kfRPcM/YhEpOPTfJ0nadWuCkora9TbSUTShhLFSZq/toxOBhdP0LiIIpIelChO0vy1ZRTk9ad/L013KiLpIZJEYWY3mNkaM2s0s4I4x20zs1VmttzMFrdljE3Zue8QhaVVfFS3nUQkjUQ15Olq4Do+mAwpnouaep4jCvPXlgGoW6yIpJVIEoW7rwMwa18Pq81fW8a4nN6MHNAr6lBERNpMqrdROPCSmS0xsznxDjSzOWa22MwW797d+oPcHjhUy8Jt+5g9UbUJEUkvSatRmNkCYHATu77n7k8neJqZ7l5sZtnAfDMrdPc3mjrQ3ecCcwEKCgpafQa+o4MA6raTiKSbpCUKd5/dCucoDt/LzexJYDrQZKJItgVry8nO7MZUDQIoImkmZW89mVkvM8s8ugx8lKARvM0dHQTwkok5GgRQRNJOVN1jP2FmRcAM4HkzezHcPtTM5oWH5QBvmdkKYCHwvLu/EEW8727ey8HaBnWLFZG0FFWvpyeBJ5vYXgxcGS5vAaa2cWhNerWwnJ5dOzNjzICoQxERaXMpe+splazaVcFpuX00CKCIpCUlihNobHTWl1YxcUhW1D+vc/AAAArqSURBVKGIiERCieIEivYf5mBtAxMGZ0YdiohIJJQoTmBdaTB30wTVKEQkTSlRnEBhSRVmMC6nd9ShiIhEQoniBNaVVJI3oBc9u0Y1fqKISLSUKE6gsLRS7RMiktaUKOI4eKSe7fsOMWGw2idEJH0pUcSxoawKd5g4RDUKEUlfShRxFJZWAegZChFJa0oUcRSWVNK7Wxdy+/aIOhQRkcgoUcSxrrSK8YMzNWKsiKQ1JYpmuDuFJerxJCKiRNGMkooaKmvq9US2iKQ9JYpmFIZDd0xUjUJE0pwSRTPWlQQ9nsYpUYhImotqhrv/MLNCM1tpZk+aWZMTUZvZ5Wa23sw2mdmdbRnjupJKhvXrQVb3jLYsVkQk5URVo5gPTHH304ENwD8cf4CZdQbuBq4AJgE3mdmktgqwsLRKT2SLiBBRonD3l9y9Plx9DxjWxGHTgU3uvsXda4HHgGvaIr6auga27K7WE9kiIqRGG8VfA39uYnsusDNmvSjclnSbyqtpdD2RLSICkLSxs81sATC4iV3fc/enw2O+B9QDjzR1iia2eZzy5gBzAEaMGHHS8cZaVxJOVqSGbBGR5CUKd58db7+ZfR64CrjE3ZtKAEXA8Jj1YUBxnPLmAnMBCgoKmk0oiSgsraJ7RidGDujVktOIiHQIUfV6uhz4DvBxdz/UzGGLgHwzG2VmXYEbgWfaIr7C0krG52TSWUN3iIhE1kbxSyATmG9my83sPgAzG2pm8wDCxu7bgBeBdcAf3H1NsgNzd9aVqMeTiMhRkczv6e5jm9leDFwZsz4PmNdWcQHsrj7CvoO1TFCPJxERIDV6PaWUwvCJbNUoREQCShTHUY8nEZEPU6I4TmFpFYOzutOvV9eoQxERSQlKFMdZV1Kp9gkRkRhKFDFq6xvZvLtaT2SLiMRQooixZU81dQ2u9gkRkRhKFDGO9nhSjUJE5ANKFDHWlVbStXMnRg3U0B0iIkcpUcQoLKlibHZvMjrrxyIicpS+EWMUlqrHk4jI8SIZwiMV1TU0cv7YQVyQPzDqUEREUooSRSijcyd+9qmpUYchIpJydOtJRETiUqIQEZG4lChERCQuJQoREYlLiUJEROJSohARkbiUKEREJC4lChERicvcPeoYWp2Z7Qa2xzlkILCnjcJJRel8/el87ZDe169rj2+kuw9qakeHTBQnYmaL3b0g6jiiks7Xn87XDul9/br2U7923XoSEZG4lChERCSudE0Uc6MOIGLpfP3pfO2Q3tevaz9FadlGISIiiUvXGoWIiCRIiUJEROJKu0RhZpeb2Xoz22Rmd0YdT1syswfMrNzMVkcdS1szs+Fm9qqZrTOzNWb2jahjaitm1t3MFprZivDa/znqmNqamXU2s2Vm9lzUsbQ1M9tmZqvMbLmZLT6lc6RTG4WZdQY2AJcCRcAi4CZ3XxtpYG3EzD4CVAMPu/uUqONpS2Y2BBji7kvNLBNYAlybDv/2ZmZAL3evNrMM4C3gG+7+XsShtRkz+yZQAGS5+1VRx9OWzGwbUODup/ywYbrVKKYDm9x9i7vXAo8B10QcU5tx9zeAfVHHEQV3L3H3peFyFbAOyI02qrbhgepwNSN8pc1fiGY2DPgYcH/UsbRX6ZYocoGdMetFpMmXhXzAzPKAM4D3o42k7YS3XpYD5cB8d0+bawf+B/g20Bh1IBFx4CUzW2Jmc07lBOmWKKyJbWnzl5WAmfUGngD+zt0ro46nrbh7g7tPA4YB080sLW49mtlVQLm7L4k6lgjNdPczgSuAW8Nb0Ccl3RJFETA8Zn0YUBxRLNLGwvvzTwCPuPufoo4nCu5+AHgNuDziUNrKTODj4X36x4CLzex30YbUtty9OHwvB54kuAV/UtItUSwC8s1slJl1BW4Enok4JmkDYYPur4F17v5fUcfTlsxskJn1DZd7ALOBwmijahvu/g/uPszd8wj+v7/i7jdHHFabMbNeYecNzKwX8FHgpHs9plWicPd64DbgRYLGzD+4+5poo2o7ZvYo8C4w3syKzOyLUcfUhmYCnyX4i3J5+Loy6qDayBDgVTNbSfDH0nx3T7tuomkqB3jLzFYAC4Hn3f2Fkz1JWnWPFRGRk5dWNQoRETl5ShQiIhKXEoWIiMSlRCEiInEpUYiISFxKFJJSzKz6xEd96PhZrTUiqJn90My+1UrnetDMrj/Fz05rqutu2Cd+r5n1OW77U2b2qZM4/1Az++MJjmn25xqORjow0fKk/VOiEEk904C/SBTufhB4Cbj26LYwaZwPJJQszayLuxe7+yklMUlPShSSksK/aF8zsz+aWaGZPRI+XX10TpFCM3sLuC7mM73COTcWhXMPXBNuv8XMnjazF8K5SH4Q85nvhdsWAONjto8Jj19iZm+a2YRw+4Nm9r9m9o6ZbTlaa7DAL81srZk9D2THnOssM3s9PNeL4ZDnhNf37+FcERvM7IJwxIAfAZ8OHwr89HE/mkcJnjA+6hPAC+5+yMymh3EtC9/Hx1z/42b2LMHgcHkWzkkSLr9pZkvD13kx584ysyfDa7rPzP7i+8LMbg7jX25mv7JgKH/paNxdL71S5gVUh++zgAqC8bg6ETxRfj7QnWAE4HyCQR7/ADwXfubHwM3hcl+CuUd6AbcAJcAAoAfBEAYFwFnAKqAnkAVsAr4Vfv5lID9cPodg6AeAB4HHw5gmEQxbD0HCmg90BoYCB4DrCYb0fgcYFB73aeCBcPk14Gfh8pXAgnD5FuCXzfx8uhKMADsgXH8B+Fi4nAV0CZdnA0/EnK8I6B+u5wGrw+WeQPdwOR9YHPPzrwFGh9c0H7g+3LcNGAhMBJ4FMsLt9wCfi/p3SK/Wf3VBJHUtdPciAAuGyM4jmHhpq7tvDLf/Djg6dPJHCQaAO9rO0B0YES7Pd/e94Wf+RJB0AJ5090Ph9mfC997AecDjYSUGoFtMXE+5eyOw1sxywm0fAR519wag2MxeCbePB6YA88NzdSZIWkcdHZxwSXh9cbl7bRjn9Wb2BMFtqpfC3X2Ah8wsn2BU5IyYj85396bmIskAfmlm04AGYFzMvoXuvgWODf9yPhDbtnEJQbJdFF5bD4IkJh2MEoWksiMxyw188Pva3LgzBnzS3dd/aKPZOU18xsPjmzpXJ+CAB8Nynyiu2KHrmzqXAWvcfcYJzhV7fSfyKPD98NxPu3tduP0u4FV3/4QFc268FvOZg82c63agDJhKcN01Mfua+pnFMuAhd/+HBOOWdkptFNLeFAKjzGxMuH5TzL4Xgb+Jacs4I2bfpWbW34LRU68F3gbeAD5hZj0sGGHzagAP5qnYamY3hOcxM5t6grjeAG60YIKgIcBF4fb1wCAzmxGeK8PMJp/gXFVAZpz9rxLcJrqVIGkc1QfYFS7fcoIyYj9TEtaQPktQ4zlqugUjLXciuGX21nGffZmgZpMNEP58RyZYrrQjShTSrrh7DcGtpufDxuztMbvvIriVsjJsrL0rZt9bwG+B5QT37hd7MDXq749uA96MOf4zwBctGHVzDSeeMvdJYCNBm8e9wOthvLUEbRX/Hp5rOcFtrXheBSY105hN+KX+BEGbyxsxu34K/JuZvc2Hv/DjuQf4vJm9R3DbKbbm8S7wE4I2na3hNcbGsZagZvOSBSPTzicYqVY6GI0eKx2emd1CMLn8bVHHItIeqUYhIiJxqUYhIiJxqUYhIiJxKVGIiEhcShQiIhKXEoWIiMSlRCEiInH9f6UtiTvAnHV9AAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"X = np.arange(-5.0, 5.0, 0.1)\n", | |
"\n", | |
"Y = np.log(X)\n", | |
"\n", | |
"plt.plot(X,Y) \n", | |
"plt.ylabel('Dependent Variable')\n", | |
"plt.xlabel('Indepdendent Variable')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Sigmoidal/Logistic" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"$$ Y = a + \\frac{b}{1+ c^{(X-d)}}$$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"X = np.arange(-5.0, 5.0, 0.1)\n", | |
"\n", | |
"\n", | |
"Y = 1-4/(1+np.power(3, X-2))\n", | |
"\n", | |
"plt.plot(X,Y) \n", | |
"plt.ylabel('Dependent Variable')\n", | |
"plt.xlabel('Indepdendent Variable')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<a id=\"ref2\"></a>\n", | |
"# Non-Linear Regression example" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"For an example, we're going to try and fit a non-linear model to the datapoints corrensponding to China's GDP from 1960 to 2014. We download a dataset with two columns, the first, a year between 1960 and 2014, the second, China's corresponding annual gross domestic income in US dollars for that year. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"2020-01-07 00:37:23 URL:https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/ML0101ENv3/labs/china_gdp.csv [1218/1218] -> \"china_gdp.csv\" [1]\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Year</th>\n", | |
" <th>Value</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1960</td>\n", | |
" <td>5.918412e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>1961</td>\n", | |
" <td>4.955705e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>1962</td>\n", | |
" <td>4.668518e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>1963</td>\n", | |
" <td>5.009730e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>1964</td>\n", | |
" <td>5.906225e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>1965</td>\n", | |
" <td>6.970915e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>1966</td>\n", | |
" <td>7.587943e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>1967</td>\n", | |
" <td>7.205703e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>1968</td>\n", | |
" <td>6.999350e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>1969</td>\n", | |
" <td>7.871882e+10</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Year Value\n", | |
"0 1960 5.918412e+10\n", | |
"1 1961 4.955705e+10\n", | |
"2 1962 4.668518e+10\n", | |
"3 1963 5.009730e+10\n", | |
"4 1964 5.906225e+10\n", | |
"5 1965 6.970915e+10\n", | |
"6 1966 7.587943e+10\n", | |
"7 1967 7.205703e+10\n", | |
"8 1968 6.999350e+10\n", | |
"9 1969 7.871882e+10" | |
] | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"\n", | |
"#downloading dataset\n", | |
"!wget -nv -O china_gdp.csv https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/ML0101ENv3/labs/china_gdp.csv\n", | |
" \n", | |
"df = pd.read_csv(\"china_gdp.csv\")\n", | |
"df.head(10)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"__Did you know?__ When it comes to Machine Learning, you will likely be working with large datasets. As a business, where can you host your data? IBM is offering a unique opportunity for businesses, with 10 Tb of IBM Cloud Object Storage: [Sign up now for free](http://cocl.us/ML0101EN-IBM-Offer-CC)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Plotting the Dataset ###\n", | |
"This is what the datapoints look like. It kind of looks like an either logistic or exponential function. The growth starts off slow, then from 2005 on forward, the growth is very significant. And finally, it deaccelerates slightly in the 2010s." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 576x432 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.figure(figsize=(8,6))\n", | |
"x_data, y_data = (df[\"Year\"].values, df[\"Value\"].values)\n", | |
"plt.plot(x_data, y_data, 'bo')\n", | |
"plt.ylabel('GDP')\n", | |
"plt.xlabel('Year')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Choosing a model ###\n", | |
"\n", | |
"From an initial look at the plot, we determine that the logistic function could be a good approximation,\n", | |
"since it has the property of starting with a slow growth, increasing growth in the middle, and then decreasing again at the end; as illustrated below:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"X = np.arange(-5.0, 5.0, 0.1)\n", | |
"Y = 1.0 / (1.0 + np.exp(-X))\n", | |
"\n", | |
"plt.plot(X/2,2*Y) \n", | |
"plt.ylabel('Dependent Variable')\n", | |
"plt.xlabel('Indepdendent Variable')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"\n", | |
"\n", | |
"The formula for the logistic function is the following:\n", | |
"\n", | |
"$$ \\hat{Y} = \\frac1{1+e^{\\beta_1(X-\\beta_2)}}$$\n", | |
"\n", | |
"$\\beta_1$: Controls the curve's steepness,\n", | |
"\n", | |
"$\\beta_2$: Slides the curve on the x-axis." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Building The Model ###\n", | |
"Now, let's build our regression model and initialize its parameters. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def sigmoid(x, Beta_1, Beta_2):\n", | |
" y = 1 / (1 + np.exp(-Beta_1*(x-Beta_2)))\n", | |
" return y" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Lets look at a sample sigmoid line that might fit with the data:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[<matplotlib.lines.Line2D at 0x7fd753fbe2e8>]" | |
] | |
}, | |
"execution_count": 38, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"beta_1 = 0.10\n", | |
"beta_2 = 1990.0\n", | |
"\n", | |
"#logistic function\n", | |
"Y_pred = sigmoid(x_data, beta_1 , beta_2)\n", | |
"\n", | |
"#plot initial prediction against datapoints\n", | |
"plt.plot(x_data, Y_pred*15000000000000.)\n", | |
"plt.plot(x_data, y_data, 'ro')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Our task here is to find the best parameters for our model. Lets first normalize our x and y:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Lets normalize our data\n", | |
"xdata =x_data/max(x_data)\n", | |
"ydata =y_data/max(y_data)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### How we find the best parameters for our fit line?\n", | |
"we can use __curve_fit__ which uses non-linear least squares to fit our sigmoid function, to data. Optimal values for the parameters so that the sum of the squared residuals of sigmoid(xdata, *popt) - ydata is minimized.\n", | |
"\n", | |
"popt are our optimized parameters." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" beta_1 = 690.447527, beta_2 = 0.997207\n" | |
] | |
} | |
], | |
"source": [ | |
"from scipy.optimize import curve_fit\n", | |
"popt, pcov = curve_fit(sigmoid, xdata, ydata)\n", | |
"#print the final parameters\n", | |
"print(\" beta_1 = %f, beta_2 = %f\" % (popt[0], popt[1]))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now we plot our resulting regresssion model." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 576x360 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"x = np.linspace(1960, 2015, 55)\n", | |
"x = x/max(x)\n", | |
"plt.figure(figsize=(8,5))\n", | |
"y = sigmoid(x, *popt)\n", | |
"plt.plot(xdata, ydata, 'ro', label='data')\n", | |
"plt.plot(x,y, linewidth=3.0, label='fit')\n", | |
"plt.legend(loc='best')\n", | |
"plt.ylabel('GDP')\n", | |
"plt.xlabel('Year')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Practice\n", | |
"Can you calculate what is the accuracy of our model?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# write your code here\n", | |
"\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click __here__ for the solution.\n", | |
"\n", | |
"<!-- Your answer is below:\n", | |
" \n", | |
"# split data into train/test\n", | |
"msk = np.random.rand(len(df)) < 0.8\n", | |
"train_x = xdata[msk]\n", | |
"test_x = xdata[~msk]\n", | |
"train_y = ydata[msk]\n", | |
"test_y = ydata[~msk]\n", | |
"\n", | |
"# build the model using train set\n", | |
"popt, pcov = curve_fit(sigmoid, train_x, train_y)\n", | |
"\n", | |
"# predict using test set\n", | |
"y_hat = sigmoid(test_x, *popt)\n", | |
"\n", | |
"# evaluation\n", | |
"print(\"Mean absolute error: %.2f\" % np.mean(np.absolute(y_hat - test_y)))\n", | |
"print(\"Residual sum of squares (MSE): %.2f\" % np.mean((y_hat - test_y) ** 2))\n", | |
"from sklearn.metrics import r2_score\n", | |
"print(\"R2-score: %.2f\" % r2_score(y_hat , test_y) )\n", | |
"\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Want to learn more?\n", | |
"\n", | |
"IBM SPSS Modeler is a comprehensive analytics platform that has many machine learning algorithms. It has been designed to bring predictive intelligence to decisions made by individuals, by groups, by systems – by your enterprise as a whole. A free trial is available through this course, available here: [SPSS Modeler](http://cocl.us/ML0101EN-SPSSModeler).\n", | |
"\n", | |
"Also, you can use Watson Studio to run these notebooks faster with bigger datasets. Watson Studio is IBM's leading cloud solution for data scientists, built by data scientists. With Jupyter notebooks, RStudio, Apache Spark and popular libraries pre-packaged in the cloud, Watson Studio enables data scientists to collaborate on their projects without having to install anything. Join the fast-growing community of Watson Studio users today with a free account at [Watson Studio](https://cocl.us/ML0101EN_DSX)\n", | |
"\n", | |
"### Thanks for completing this lesson!\n", | |
"\n", | |
"Notebook created by: <a href = \"https://ca.linkedin.com/in/saeedaghabozorgi\">Saeed Aghabozorgi</a>\n", | |
"\n", | |
"<hr>\n", | |
"Copyright © 2018 [Cognitive Class](https://cocl.us/DX0108EN_CC). This notebook and its source code are released under the terms of the [MIT License](https://bigdatauniversity.com/mit-license/)." | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python", | |
"language": "python", | |
"name": "conda-env-python-py" | |
}, | |
"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.6.7" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment