Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save kimbosliceit/34481e3636be57d07cd29e55988ff661 to your computer and use it in GitHub Desktop.
Save kimbosliceit/34481e3636be57d07cd29e55988ff661 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"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",
"\n",
"<h1><center>Non Linear Regression Analysis</center></h1>"
]
},
{
"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": [
"<h2 id=\"importing_libraries\">Importing required libraries</h2>"
]
},
{
"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 = $2x$ + 3."
]
},
{
"cell_type": "code",
"execution_count": 2,
"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": 3,
"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, '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": [
"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": 4,
"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",
"\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, '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": [
"### 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": 5,
"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",
"\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": 6,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/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+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3deXxddZ3/8denbbon3ZO26ZIu6Q4tEAqlIAWKLLKJIDDiiKNWR5hxcFwYddSRGcdlnBlHQa2IgPIrigiURaBlhwLd96b7lmZrmzZL2+yf3x/npISa3N42uTlJ7vv5eNxHznbP93PTNJ98z3czd0dERKQ5XaIOQERE2jclChERiUmJQkREYlKiEBGRmJQoREQkpm5RB5AIgwcP9qysrKjDEBHpMFasWHHA3Yc0da5TJoqsrCyWL18edRgiIh2Gme1u7pwePYmISExKFCIiEpMShYiIxKREISIiMSlRiIhITEoUIiISkxKFiIjE1CnHUYiIJIuDFVVsLa5ga3EFR6pq+cLF41q9DCUKEZEO4GBFFVuKKthSVM7W4nK2FlWwrbiCg0eqj1+TntqDz39oLGbWqmUrUYiItCOlR2vYUlzO5sJythQFr61FH0wIqT27kZ3el8unZDA+vS/ZGalkp/dlWL+erZ4kIOJEYWYPAtcAxe4+rYnzc4CngZ3hoT+7+/faLkIRkcSorKlja1EFm4vK2VxYxuaiCrYUllNYVnn8mr49upGd0Ze5kzPIzujLhIxUJmSkkpHWIyEJoTlR1ygeAn4OPBLjmjfd/Zq2CUdEpHXV1zt7So6SW1hGbmFQU9hcWM6ug0eoD1ei7t6tC9npfblg3CAmDk1lwtAgIQxPUA3hVEWaKNz9DTPLijIGEZHWUnq05nhCyC0sY1NBkBSO1dQBYAajB/Zm4tBUrp0+nElhUsga1IeuXaJPCM2JukYRj1lmtgbIB77i7huausjM5gHzAEaNGtWG4YlIsqmvd3aXHGVTQdnx18b8MvJL339s1L93CpOHpnHrzJFMGprKpKFpZGf0pXf3jvBr94Pae8QrgdHuXmFmVwNPAdlNXeju84H5ADk5Od52IYpIZ1ZZU8fmwnI2FpSxIb+UjflBjeFodVBL6GIwbkhfcrIGMnlYGpOHpTJ5WBrpqW3bjpBI7TpRuHtZo+3nzex+Mxvs7geijEtEOqfSozVsKChlw74gKWzIL2P7/orjbQl9e3RjyrA0Pp4z8nhCmJCRSs+UrtEGnmDtOlGY2VCgyN3dzGYSjCQ/GHFYItIJ7C+vYn1+KRv2lbJ+XxkbCkrZW3Ls+Plh/XoydXgaV00bypThaUwZ1o8RA3rRpR23JSRK1N1jFwBzgMFmlgd8B0gBcPdfAjcBf29mtcAx4FZ312MlETklxWWVrNtXyrowKazfV/qBbqhZg3pz5oj+3DZzFNOG92Pq8DQG9e0RYcTtS9S9nm47yfmfE3SfFRGJy4GKqiAp5JWyNq+UdfsOU1RWBQS9jsYN6cv5YwcyLbMf0zL7MWV4Gmk9UyKOun1r14+eRERiKausYX1eKWvySlmbd5i1eaXsOxw8PmpICheMG8wZmf04Y0Q/pgxLo08P/do7VfqOiUiHUF1bz6aCMlbvPcyavYdZk3eY7fuPHD8/elBvzh49gE/PzuKMzH5MzexHXyWFVqHvooi0O+7BaObVew+zas9hVu89zMb8Mqrr6gEY3LcHM0b244YZmZw5sj9nZvZjQJ/uEUfdeSlRiEjkKqpqWbv3MKv2HmbVnkOs2nP4+CR4PVO6cGZmfz51wWhmjBzAjFH9283UFslCiUJE2pS7s/vgUVbsPsTKPYdYsfsQW4rKj49VGDukD3MmpnP26P7MGNmfiRmpdOuqNdaipEQhIglVWVPHun2lLN8VJIVVew4dry2k9ujGjFH9uWLqUM4aFSSG/r31CKm9UaIQkVZVcqSa5btKWLH7EMt2lbB+3/ttC2MGB7WFc0YP4JzRAxif3rddT4YnASUKEWmRvENHWbqzhGW7Sli6s+R4T6SUrsYZmf349Oys44lBg9g6JiUKEYmbu7N9fwXv7QySwrKdJcdnTE3t2Y2c0QP42DkjODdrIGdk9uv0cyAlCyUKEWlWfb2ztbiC93Ye5L0dJby38yAHKoL2hSGpPZiZNZDPjxnIuVkDmTg0VY+ROiklChE5zt3ZVlzBOzsOsmTbQd7beZBDR2sAGN6vJxdlD+G8MQM5b+wgsgb1VhfVJKFEIZLE3J1dB4/yzvaDLNl+gHd3lHCgIpgXKbN/Ly6dlMH5Ywdy/thBjBjQS4khSSlRiCSZ4rJKlmw/yFvbDrBk24HjbQwZaT24cPwgZo0bxKyxgxk5UIlBAkoUIp1cRVUt7+04yJtbD/D2tgNsLa4AgqU6Z40dxBcvGcwF4wYxZnAfJQZpkhKFSCdTV++s31fKm1v388bWA6zcfYjaeqdnShfOzRrITeeMYPb4wUwZlpaUi/DIqVOiEOkEisoqeX3Lfl7fsp+3tx3gcNgAPS0zjc9eNJYPZQ/m7NED1F1VTkvUK9w9CFwDFLv7tCbOG/BT4GrgKHCHu69s2yhF2p/q2nqW7y4JksPm/eQWlgOQntqDuZMzuCh7MBeOH6wBbtIqoq5RPESwgt0jzZy/CsgOX+cBvwi/iiSdorJKXs0t5tXNxby19QBHqutI6WqcmzWQe66axMUThjBpaKraGaTVRb0U6htmlhXjkuuBR8J1st81s/5mNszdC9okQJEI1dU7q/cePp4cNuSXAcF4hhvOymTOxHQuGDdIK7ZJwrX3n7BMYG+j/bzw2F8lCjObB8wDGDVqVJsEJ9LajlTV8ubWAyzeVMSrucUcPFJN1y7GOaMG8PUrJ3HJpCFMzFCtQdpWe08UTf1v8KYudPf5wHyAnJycJq8RaY8KSytZtKmIxRuLeGfHQapr60nr2Y05E9O5bHI6cyak0693StRhShJr74kiDxjZaH8EkB9RLCKtZltxOS9uKOKlDYWsySsFIGtQbz55/mjmTs4gJ2sAKVqsR9qJ9p4oFgJ3mdljBI3YpWqfkI7I3VmTV8oL6wt5aWMhO8KpuKeP7M9Xr5jIFVMzGDekrx4pSbsUdffYBcAcYLCZ5QHfAVIA3P2XwPMEXWO3EXSP/XQ0kYqcuvp6Z+WeQzy/rpAX1heQX1pJty7GrHGD+PQFWVw+ZShD+/WMOkyRk4q619NtJznvwJ1tFI5Ii9XVO0t3lvCX9QW8sL6Q4vIqunfrwoeyh/DPH57I3MkZam+QDqe9P3oSafcaag7Pri3guXUF7C+vomdKFy6ZmM6V04Zy6aR0UnsqOUjHpUQhchrcnbV5pTyzJp/n1hVQUFpJj25duHRSOtecOZxLJg2hd3f995LOQT/JIqdgx/4Knlqdz9Or97H74FFSuhoXTxjC16+cxNwpGfTV4DfphPRTLXISxeWVPLOmgKdX72NtXilmMGvsIO6cM54rpg5Vm4N0ekoUIk2orKnjxQ2FPLFyH29t3U+9w9ThaXzz6slcO324eitJUlGiEAm5Oyt2H+KJlXk8u6aA8qpaMvv34u/njOOjZ2UyPj016hBFIqFEIUmvoPQYT6zI44mV+9h54Ai9Urpy1RlDuensEZw/dpAW95Gkp0QhSammrp5Xcov5w7K9vLa5mHqH88cO5ItzxnHVGcPUKC3SiP43SFLZeeAIf1i2lz+tyONARRUZaT344pzxfDxnJKMG9Y46PJF2SYlCOr2aunoWbSzi9+/uZsn2g3TtYlw6KZ1bzx3JxROG0E2T74nEpEQhnVb+4WM8tnQPjy3bS3F5FZn9e/HVKyZy8zkjSE9TryWReClRSKfi7ry17QCPvLOblzcV4cCcCUP4z/NHM2diOl3VMC1yypQopFM4Wl3Ln1fu46Elu9hWXMHAPt35/MXj+JuZoxg5UG0PIi2hRCEdWt6ho/zund0sWLqHsspapmWm8ZObp3PN9GH06NY16vBEOgUlCumQVu45xANv7uCF9YWYGVdOHcqnZ2dxzugBWvxHpJXFlSjMbDSQ7e6LzawX0M3dyxMbmsgH1dc7L+cWM/+N7SzbdYh+vVKY96FxfHLWaDL794o6PJFO66SJwsw+B8wDBgLjCNat/iVwWUsLN7MrgZ8CXYEH3P0HJ5y/A/gxsC889HN3f6Cl5UrHUllTx1Or9vHrN3ewff8RMvv34jvXTuHjOSPpo4FxIgkXz/+yO4GZwHsA7r7VzNJbWrCZdQXuAy4H8oBlZrbQ3TeecOkf3P2ulpYnHU9FVS2/f3c3D7y5kwMVVUwdnsZPb53BR84YprEPIm0onkRR5e7VDc99zawb4K1Q9kxgm7vvCO/7GHA9cGKikCRTeqyGh97exYNv76T0WA0XZQ/mCxfP4IJxg9T+IBKBeBLF62b2DaCXmV0OfBF4phXKzgT2NtrPA85r4rqPmdmHgC3A3e6+t4lrpBMoOVLNb97awSNLdlNeVcvcyRncdel4ZozsH3VoIkktnkRxD/AZYB3weeB5oDXaCZr60/DEmsozwAJ3rzKzLwAPA5c2eTOzeQRtKYwaNaoVwpO2crCiil+9sYPfvbObyto6rp42jDsvGc+U4WlRhyYixJEo3L0e+HX4ak15wMhG+yOA/BPKPtho99fAD5u7mbvPB+YD5OTktMajMUmw0mM1PPDmDh58ayfHauq4fkYmd14yTus+iLQzzSYKM1tHjLYIdz+zhWUvA7LNbAxBr6Zbgb85IYZh7l4Q7l4HbGphmdIOHKmq5bdv72T+Gzsoq6zlI2cO4+652UoQIu1UrBrFNYks2N1rzewu4EWC7rEPuvsGM/sesNzdFwL/aGbXAbVACXBHImOSxKqsqeP37+7m/te2U3KkmrmT0/ny5RP1iEmknTP3kz+lMbOhBL2UHFjm7oWJDqwlcnJyfPny5VGHIaH6eueZtfn86IXN7Dt8jIuyB/Plyydw1qgBUYcmIiEzW+HuOU2di2fA3WeBbwOvEDRA/8zMvufuD7ZumNIZvbvjIN9/fhNr80qZMiyNH910JrPHD446LBE5BfH0evoqcFZDw7KZDQKWAEoU0qxtxRX84C+5LN5UxLB+PfnJzdP56FmZWn9apAOKJ1HkAY3ndSrng+MfRI4rPVrD/yzewu/e3U2vlK587cqJ/N3sMfRM0UyuIh1VrF5PXw439wHvmdnTBG0U1wNL2yA26UDq653HV+zlhy9s5vDRav7mvFHcPXcCg/r2iDo0EWmhWDWKhr6K28NXg6cTF450RGv2HubbCzewZu9hckYP4N+un8nU4f2iDktEWkmzicLd/60tA5GOp+RINT9+MZfHlu1lcN8e/M8t07lhRqbmYxLpZOLp9TQE+BowFTi+Ir27NzmVhnR+7s4TK/fx789tpKKyls9eOIZ/vCyb1J4pUYcmIgkQT2P2o8AfCAbgfQH4FLA/kUFJ+7W35CjfeHIdb249wDmjB/CfN57BhAyNqBbpzOJJFIPc/Tdm9iV3f51gNtnXEx2YtC+1dfU8tGQXP3lpC10M7r1+Kp84b7S6u4okgXgSRU34tcDMPkIwcd+IxIUk7c3G/DLu+fNa1uaVctmkdO69YRrDtfSoSNKIJ1H8u5n1A/4Z+BmQBtyd0KikXaitq+f+17bzfy9vpX/vFH5221lcc+YwNVaLJJl4phl/NtwsBS5JbDjSXuw8cIS7/7Ca1XsPc+304XzvuqkM6NM96rBEJAKxBtx9zd1/ZGY/o4npxt39HxMamUTC3VmwdC/3PruRlK7GT2+dwfUzMqMOS0QiFKtG0bD2g6ZhTRL7y6u454m1vJxbzOzxg/ivm6czrJ/aIkSSXawBd8+YWVdgmrt/tQ1jkgi8klvEVx9fS3lVLd++Zgp3XJClHk0iApykjcLd68zsnLYKRtpebV09/71oC/e/tp3Jw9JYcOsMjYsQkQ+Ip9fTKjNbCDwOHGk46O5/TlhU0iaKyyr5hwWreG9nCbfNHMl3rp2qWV5F5K/EkygGAgeBxlN2ONDiRGFmVwI/JVgK9QF3/8EJ53sAjwDnhDHc4u67WlquwDvbD/IPC1ZRUVXDT26ezsfO0dAYEWlaPN1jP52IgsP2j/uAywnWvFhmZgvdfWOjyz4DHHL38WZ2K/BD4JZExJMs6uudX7y+nZ+8tJmswX149LPnMXGoHjWJSPPimRSwJ8Ev7BMnBfy7FpY9E9jm7jvCch4jWOuicaK4HvhuuP0n4OdmZh7PQt/yV8ora7j7D6tZvKmYa84cxg8+diZ9e8RTqRSRZNYljmt+BwwFrgBeJ5i+ozzmO+KTyQdXyssLjzV5jbvXEgz6G9TUzcxsnpktN7Pl+/drzsIT5R06yk2/eIdXN+/nu9dO4We3naUkISJxiSdRjHf3fwWOuPvDwEeAM1qh7Kb6Xp5YU4jnmuCg+3x3z3H3nCFDhrQ4uM5k5Z5D3HDf2+SXHuPhT8/kjtljNA2HiMQtnkTRMCngYTObBvQDslqh7DxgZKP9EQQTDjZ5jZl1C8suaYWyk8bTq/dx6/x36dOjG09+cTYXZg+OOiQR6WDiSRTzzWwA8C1gIUEbwg9boexlQLaZjTGz7sCt4f0bW0iw/gXATcArap+Ij7vzP4u28KXHVjNjRH+e/OJsxqf3jTosEemAYs31lOHuRe7+QHjoDWBsaxXs7rVmdhfwIkH32AfdfYOZfQ9Y7u4Lgd8AvzOzbQQ1iVtbq/zOrLKmjq/+aS3PrMnnY2eP4Ps3TqNHN42PEJHTE6s1c42ZrQMWAE+4e2lrF+7uzwPPn3Ds2422K4GbW7vczuxodS3zHlnBW9sO8LUrJ/L3F49Te4SItEisR0+ZwH8BFwFbzOwpM7vFzDRLXDtVeqyGT/5mKUu2H+C/bp7OF+eMV5IQkRZrNlG4e527vxgOuBsJ/Ba4AdhpZo+2VYASnwMVVdw2/13W5h3mvr85m5s00lpEWkk8jdm4ezVBI/YmoAyYksig5NTkHz7Gx3/1DjsOVPDAp87lqjOGRR2SiHQiMUdcmdkogikzbgP6AI8B17v7pljvk7az68ARPvHAe5Qdq+GRvzuPmWMGRh2SiHQysXo9LSFop3gcmOfuWsCondlSVM4nHniP2rp6Fsw7n2mZ/aIOSUQ6oVg1in8B3tC4hfapoSZhwB8/P4tsrSEhIgkSa4W719syEIlfYWklt/8mqEk8/oVZjE9XkhCRxNGscB1MyZFqbv/Nexw+WsP/+9x5ShIiknAn7fVkZmPiOSaJV15Zwx2/XcqekqP8+m9zOHNE/6hDEpEkEE/32CeaOPan1g5EYqusqeOzDy9nY34Zv/jE2cwa1+Rs6yIirS5Wr6dJBIsV9TOzGxudSqPRAkaSeDV19dz56EqW7irhf2+ZwWWTM6IOSUSSSKw2ionANUB/4NpGx8uBzyUyKHmfu/O1P63l5dxi7r1hGtfPOHFtJxGRxIrV6+lp4Gkzm+Xu77RhTNLIL17fzpOr9vHlyyfwyfNHRx2OiCSheHo9bTOzbxAsVnT8+lZYM1tO4pXcIn784maunT6cf7h0fNThiEiSiidRPA28CSwG6hIbjjTYvr+CLy1YzZRhafzoY2dqFlgRiUw8iaK3u3894ZHIcWWVNXzukeWkdOvCrz55Dr26a9EhEYlOPN1jnzWzq1uzUDMbaGaLzGxr+HVAM9fVmdnq8HXiMqmdUl2980+PrWbPwaPc/4mzGTGgd9QhiUiSiydRfIkgWVSaWZmZlZtZWQvLvQd42d2zgZfD/aYcc/cZ4eu6FpbZIfz3os28klvMd66dwvljNVZCRKJ30kTh7qnu3sXde7p7Wrif1sJyrwceDrcfJlgQKek9uzaf+17dzm0zR3K7ejiJSDsRzxQeZma3m9m/hvsjzWxmC8vNcPcCgPBrejPX9TSz5Wb2rpnFTCZmNi+8dvn+/ftbGF7b21pUzlcfX8s5owfwb9dNU+O1iLQb8TRm3w/UA5cC9wIVwH3AubHeZGaLgaFNnPrmKcQ3yt3zzWws8IqZrXP37U1d6O7zgfkAOTk5HWpq9Jq6eu7+42p6d+/KLz5xNt27xbXwoIhIm4gnUZzn7meb2SoAdz9kZt1P9iZ3n9vcOTMrMrNh7l5gZsOA4mbukR9+3WFmrwFnAU0mio7sZ69sY/2+Mn55+zmkp2l2FBFpX+L507XGzLoCDmBmQwhqGC2xEPhUuP0pgrEaH2BmA8ysR7g9GJhNsG53p7Jm72Hue3UbN56VyZXTmqqAiYhEK55E8X/Ak0C6mf0H8Bbw/RaW+wPgcjPbClwe7mNmOWb2QHjNZGC5ma0BXgV+4O6dKlFU1tTx5T+uJj21B9+5bmrU4YiINOmkj57c/VEzWwFcBhhwg7tvakmh7n4wvN+Jx5cDnw23lwBntKSc9u5HL2xm+/4j/P4z59GvV0rU4YiINCnWNOMDG+0WAwsan3P3kkQG1tm9s/0gD769k7+dNZoLswdHHY6ISLNi1ShWELRLGDAKOBRu9wf2AFrl7jSVV9bwlcfXMGZwH+65alLU4YiIxNRsG4W7j3H3scCLwLXuPtjdBxGsUfHntgqwM7r32Y0UlB7jJx+fTu/uWrZcRNq3eBqzz3X35xt23P0vwMWJC6lzeyW3iD8uz+MLF4/j7FFNTnElItKuxPPn7AEz+xbwe4JHUbcDBxMaVSdVVVvHdxduZEJGX740NzvqcERE4hJPjeI2YAhBF9mnCKbbuC2RQXVWjyzZzZ6So/zrNVPo0U1Th4tIxxBP99gSghlkpQUOHanmZ69sZc7EIVyUPSTqcERE4nbSRGFmE4Cv8NdLoV6auLA6n5++vJWKqlq+cfXkqEMRETkl8bRRPA78EngALYV6Wnbsr+D37+7m1pmjmJCRGnU4IiKnJJ5EUevuv0h4JJ3Yf/4ll54pXbl77oSoQxEROWXxNGY/Y2ZfNLNh4RKmA08YtS0xvLP9IIs2FvH3c8YxJLVH1OGIiJyyeGoUDbO8frXRMQfGtn44nUt9vfMfz28ks38vPnOhBrKLSMcUT68n/YY7TU+u2sf6fWX87y0z6Jmi7rAi0jHFsxRqbzP7lpnND/ezzeyaxIfWsR2rruPHL25m+oh+XDd9eNThiIictnjaKH4LVAMXhPt5wL8nLKJO4tdv7qCwrJJvXTOFLl20/rWIdFzxJIpx7v4joAbA3Y8RzCIrzSivrGH+Gzu4YmoG52ap3V9EOrZ4EkW1mfXi/aVQxwFVCY2qg/vj8jwqqmq56xLN5yQiHV88ieI7wAvASDN7FHgZ+FpLCjWzm81sg5nVm1lOjOuuNLPNZrbNzO5pSZltpa7eeXjJLnJGD+CMEf2iDkdEpMXi6fW0yMxWAucTPHL6krsfaGG564EbgV81d4GZdQXuI1hTOw9YZmYL2/u62a/kFrOn5Chfv1ILEolI5xDvqjkXAxcSPH5KIZhJ9rQ1rLltFrOpYyawzd13hNc+BlwPtOtE8du3dzK8X0+umJoRdSgiIq0inu6x9wNfANYR1AQ+b2b3JTowIBPY22g/LzzWJDObZ2bLzWz5/v37Ex5cU3ILy1iy/SCfnJVFt67xPNUTEWn/4qlRXAxMc/eGxuyHCZJGTGa2GBjaxKlvuvvTcZTbVHXDm7vY3ecD8wFycnKavS6RHnp7Fz1TunDbzJFRFC8ikhDxJIrNwChgd7g/Elh7sje5+9wWxAVBDaLxb9wRQH4L75kwJUeqeXLVPm48ewT9e3ePOhwRkVYTz/ORQcAmM3vNzF4jaCMYYmYLzWxhAmNbBmSb2Rgz6w7cCiSyvBZZsHQPVbX1fHp2VtShiIi0qnhqFN9u7ULN7KPAzwiWWH3OzFa7+xVmNhx4wN2vdvdaM7sLeBHoCjzo7htaO5bWUFNXz+/e2c2F4wdrvQkR6XTi6R77upmNBrLdfXE4+K6bu5efbqHu/iRN9Jxy93zg6kb7zwPPn245beUv6wspLKvk+zdOizoUEZFWF0+vp88Bf+L9MQ8jgKcSGVRH89u3dzJmcB/mTEiPOhQRkVYXTxvFncBsoAzA3bcC+o0YWrXnEKv2HOZTs0Zr8j8R6ZTiSRRV7l7dsGNm3YjRTTXZ/PbtXaT26MZNOeoSKyKdUzyJ4nUz+wbQy8wuBx4HnklsWB1DUVklz68r4OackfTtEe8gdxGRjiWeRHEPsJ9gkN3nCRqXv5XIoDqK59YWUFvvfOL8UVGHIiKSMPH0eqo3s6eAp9w9mrkx2qnFm4rITu/LuCF9ow5FRCRhmq1RWOC7ZnYAyAU2m9l+M2v1cRUdUenRGt7bWcLlUzT5n4h0brEePf0TQW+nc919kLsPBM4DZpvZ3W0SXTv26uZi6uqduUoUItLJxUoUfwvc5u47Gw6EU37fHp5Laos2FjEktQczRvSPOhQRkYSKlShSmlqgKGynSElcSO1fVW0dr20uZu7kdI2dEJFOL1aiqD7Nc53euztKOFJdp/YJEUkKsXo9TTezsiaOG9AzQfF0CIs2FtK7e1cuGDc46lBERBKu2UTh7l3bMpCOwt1ZvLGYD2UPoWeKvkUi0vlpvc5TtG5fKYVllertJCJJQ4niFC3aWEQXg0snaV5EEUkOShSnaNHGInKyBjKwj5Y7FZHkEEmiMLObzWyDmdWbWU6M63aZ2TozW21my9syxqbsLTlKbmE5H9ZjJxFJIlFNeboeuJH3F0OK5ZKmxnNEYdHGIgB1ixWRpBJJonD3TQBmHWuw2qKNRUzI6MvoQX2iDkVEpM209zYKB14ysxVmNi/WhWY2z8yWm9ny/ftbf5Lbw0erWbqrhLmTVZsQkeSSsBqFmS0GhjZx6pvu/nSct5nt7vlmlg4sMrNcd3+jqQvdfT4wHyAnJ6fVV+BrmARQj51EJNkkLFG4+9xWuEd++LXYzJ4EZgJNJopEW7yxmPTUHkzXJIAikmTa7aMnM+tjZqkN28CHCRrB21zDJICXTc7QJIAiknSi6h77UTPLA2YBz5nZi+Hx4Wb2fHhZBvCWma0BlgLPufsLUcT7zvaDHKmuU7dYEUlKUfV6ehJ4sonj+cDV4fYOYHobh9akV3OL6d29K7PGDYo6FBGRNtduHz21J+v2lXJGZj9NAigiSUmJ4iTq60Q+z/cAAAr5SURBVJ3NheVMHpYWdSgiIpFQojiJvEPHOFJdx6ShqVGHIiISCSWKk9hUGKzdNEk1ChFJUkoUJ5FbUI4ZTMjoG3UoIiKRUKI4iU0FZWQN6kPv7lHNnygiEi0lipPILSxT+4SIJDUlihiOVNWyu+Qok4aqfUJEkpcSRQxbispxh8nDVKMQkeSlRBFDbmE5gMZQiEhSU6KIIbegjL49upHZv1fUoYiIREaJIoZNheVMHJqqGWNFJKkpUTTD3cktUI8nERElimYUlFZSVlmrEdkikvSUKJqRG07dMVk1ChFJckoUzdhUEPR4mqBEISJJLqoV7n5sZrlmttbMnjSzJheiNrMrzWyzmW0zs3vaMsZNBWWMGNCLtJ4pbVmsiEi7E1WNYhEwzd3PBLYA/3LiBWbWFbgPuAqYAtxmZlPaKsDcwnKNyBYRIaJE4e4vuXttuPsuMKKJy2YC29x9h7tXA48B17dFfJU1dezYX6ER2SIitI82ir8D/tLE8Uxgb6P9vPBYwm0rrqDeNSJbRAQgYXNnm9liYGgTp77p7k+H13wTqAUebeoWTRzzGOXNA+YBjBo16pTjbWxTQbhYkRqyRUQSlyjcfW6s82b2KeAa4DJ3byoB5AEjG+2PAPJjlDcfmA+Qk5PTbEKJR25hOT1TujB6UJ+W3EZEpFOIqtfTlcDXgevc/Wgzly0Dss1sjJl1B24FFrZFfLmFZUzMSKWrpu4QEYmsjeLnQCqwyMxWm9kvAcxsuJk9DxA2dt8FvAhsAv7o7hsSHZi7s6lAPZ5ERBpEsr6nu49v5ng+cHWj/eeB59sqLoD9FVWUHKlmkno8iYgA7aPXU7uSG47IVo1CRCSgRHEC9XgSEfkgJYoT5BaWMzStJwP6dI86FBGRdkGJ4gSbCsrUPiEi0ogSRSPVtfVs31+hEdkiIo0oUTSy40AFNXWu9gkRkUaUKBpp6PGkGoWIyPuUKBrZVFhG965dGDNYU3eIiDRQomgkt6Cc8el9Semqb4uISAP9Rmwkt1A9nkREThTJFB7tUU1dPReOH8JF2YOjDkVEpF1RogildO3CTz4+PeowRETaHT16EhGRmJQoREQkJiUKERGJSYlCRERiUqIQEZGYlChERCQmJQoREYlJiUJERGIyd486hlZnZvuB3TEuGQwcaKNw2qNk/vzJ/NkhuT+/Pntso919SFMnOmWiOBkzW+7uOVHHEZVk/vzJ/NkhuT+/Pvvpf3Y9ehIRkZiUKEREJKZkTRTzow4gYsn8+ZP5s0Nyf3599tOUlG0UIiISv2StUYiISJyUKEREJKakSxRmdqWZbTazbWZ2T9TxtCUze9DMis1sfdSxtDUzG2lmr5rZJjPbYGZfijqmtmJmPc1sqZmtCT/7v0UdU1szs65mtsrMno06lrZmZrvMbJ2ZrTaz5ad1j2RqozCzrsAW4HIgD1gG3ObuGyMNrI2Y2YeACuARd58WdTxtycyGAcPcfaWZpQIrgBuS4d/ezAzo4+4VZpYCvAV8yd3fjTi0NmNmXwZygDR3vybqeNqSme0Cctz9tAcbJluNYiawzd13uHs18BhwfcQxtRl3fwMoiTqOKLh7gbuvDLfLgU1AZrRRtQ0PVIS7KeEraf5CNLMRwEeAB6KOpaNKtkSRCexttJ9HkvyykPeZWRZwFvBetJG0nfDRy2qgGFjk7knz2YH/Bb4G1EcdSEQceMnMVpjZvNO5QbIlCmviWNL8ZSVgZn2BJ4B/cveyqONpK+5e5+4zgBHATDNLikePZnYNUOzuK6KOJUKz3f1s4CrgzvAR9ClJtkSRB4xstD8CyI8oFmlj4fP5J4BH3f3PUccTBXc/DLwGXBlxKG1lNnBd+Jz+MeBSM/t9tCG1LXfPD78WA08SPII/JcmWKJYB2WY2xsy6A7cCCyOOSdpA2KD7G2CTu/931PG0JTMbYmb9w+1ewFwgN9qo2oa7/4u7j3D3LIL/76+4++0Rh9VmzKxP2HkDM+sDfBg45V6PSZUo3L0WuAt4kaAx84/uviHaqNqOmS0A3gEmmlmemX0m6pja0GzgkwR/Ua4OX1dHHVQbGQa8amZrCf5YWuTuSddNNEllAG+Z2RpgKfCcu79wqjdJqu6xIiJy6pKqRiEiIqdOiUJERGJSohARkZiUKEREJCYlChERiUmJQtoVM6s4+VUfuH5Oa80IambfNbOvtNK9HjKzm07zvTOa6rob9ok/aGb9Tjj+lJl9/BTuP9zM/nSSa5r9voazkQ6Otzzp+JQoRNqfGcBfJQp3PwK8BNzQcCxMGhcCcSVLM+vm7vnuflpJTJKTEoW0S+FftK+Z2Z/MLNfMHg1HVzesKZJrZm8BNzZ6T59wzY1l4doD14fH7zCzp83shXAtku80es83w2OLgYmNjo8Lr19hZm+a2aTw+ENm9n9mtsTMdjTUGizwczPbaGbPAemN7nWOmb0e3uvFcMpzws/3w3CtiC1mdlE4Y8D3gFvCQYG3nPCtWUAwwrjBR4EX3P2omc0M41oVfp3Y6PM/bmbPEEwOl2XhmiTh9ptmtjJ8XdDo3mlm9mT4mX5pZn/1+8LMbg/jX21mv7JgKn/pbNxdL73azQuoCL/OAUoJ5uPqQjCi/EKgJ8EMwNkEkzz+EXg2fM/3gdvD7f4Ea4/0Ae4ACoBBQC+CKQxygHOAdUBvIA3YBnwlfP/LQHa4fR7B1A8ADwGPhzFNIZi2HoKEtQjoCgwHDgM3EUzpvQQYEl53C/BguP0a8JNw+2pgcbh9B/DzZr4/3QlmgB0U7r8AfCTcTgO6hdtzgSca3S8PGBjuZwHrw+3eQM9wOxtY3uj7XwmMDT/TIuCm8NwuYDAwGXgGSAmP3w/8bdQ/Q3q1/qsbIu3XUnfPA7BgiuwsgoWXdrr71vD474GGqZM/TDABXEM7Q09gVLi9yN0Phu/5M0HSAXjS3Y+GxxeGX/sCFwCPh5UYgB6N4nrK3euBjWaWER77ELDA3euAfDN7JTw+EZgGLArv1ZUgaTVomJxwRfj5YnL36jDOm8zsCYLHVC+Fp/sBD5tZNsGsyCmN3rrI3ZtaiyQF+LmZzQDqgAmNzi119x1wfPqXC4HGbRuXESTbZeFn60WQxKSTUaKQ9qyq0XYd7/+8NjfvjAEfc/fNHzhodl4T7/Hw+qbu1QU47MG03CeLq/HU9U3dy4AN7j7rJPdq/PlOZgHwrfDeT7t7TXj8XuBVd/+oBWtuvNboPUeaudfdQBEwneBzVzY619T3rDEDHnb3f4kzbumg1EYhHU0uMMbMxoX7tzU69yLwD43aMs5qdO5yMxtoweypNwBvA28AHzWzXhbMsHktgAfrVOw0s5vD+5iZTT9JXG8At1qwQNAw4JLw+GZgiJnNCu+VYmZTT3KvciA1xvlXCR4T3UmQNBr0A/aF23ecpIzG7ykIa0ifJKjxNJhpwUzLXQgemb11wntfJqjZpAOE39/RcZYrHYgShXQo7l5J8KjpubAxe3ej0/cSPEpZGzbW3tvo3FvA74DVBM/ul3uwNOofGo4Bbza6/hPAZyyYdXMDJ18y90lgK0Gbxy+A18N4qwnaKn4Y3ms1wWOtWF4FpjTTmE34S/0JgjaXNxqd+hHwn2b2Nh/8hR/L/cCnzOxdgsdOjWse7wA/IGjT2Rl+xsZxbCSo2bxkwcy0iwhmqpVORrPHSqdnZncQLC5/V9SxiHREqlGIiEhMqlGIiEhMqlGIiEhMShQiIhKTEoWIiMSkRCEiIjEpUYiISEz/H9NlhaWtQYUIAAAAAElFTkSuQmCC\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": 7,
"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 corresponding 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": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2019-07-07 17:36:58 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": 8,
"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 decelerate slightly in the 2010s."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"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": [
"plt.figure(figsize=(8,5))\n",
"x_data, y_data = (df[\"Year\"].values, df[\"Value\"].values)\n",
"plt.plot(x_data, y_data, 'ro')\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": 10,
"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,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": 11,
"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": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fac0eb4a5f8>]"
]
},
"execution_count": 12,
"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": 13,
"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": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" beta_1 = 690.453017, 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 regression model."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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ClmoSdzMppvZ62a21syub6POpWa22sxWmdkfwoxHRETSW2JX+szjCyOMpHeENomsmWUDtwHnAlXAIjOb5+6rE+qMA24APubu75vZIWHFIyIi6W3N1t289vYeAPJzs/jERw6NOKLwhdkSPxFY6+7r3b0WmAtc2KrOlcBt7v4+gLu/G2I8IiKSxh5JaIWfO+EwBuan573hicJM4qOBTQnbVbGyREcBR5nZc2b2oplNDzEeERFJUw2NziMJ94ZffHx6D2hrEuaabMnG9HuSnz8OOAMoBBaa2bHuvrPFgczKgDKAoqL0vWlfRES65sX123ln934Ahg3I49RxwyOOqHeE2RKvAsYkbBcCW5LUedTd69z9LeB1gqTegruXu/tUd586YsSI0AIWEZHUlDig7VOTRpE7914oKYGsrOC5oiKy2MIUZhJfBIwzs7FmlgfMAua1qvMIcCaAmQ0n6F5fH2JMIiKSZvbVNvDEiq3x7ZnvrICyMti4EdyD57KytEzkoSVxd68HrgaeBNYA97v7KjP7gZnNiFV7EthuZquBBcB17r49rJhERCT9/GXNO/FpVg8fPoDj5lwP1dUtK1VXw+zZEUQXrjCviePu84H5rcq+k/DagWtiDxERkQOWOCr9ouNHY5WVySu2VZ7CNGObiIikrPc+2M8/3tgW375o8mhoawB0Gg6MVhIXEZGU9diyLTQ0Bjc+TS0eQtGwApgzBwoKWlYsiJWnGSVxERFJWQ8vbb7p6aKme8NLS6G8HIqLg1VQiouD7dLSiKIMT6jXxEVERMKybtsHLNsUTCuSm21cMHFk887S0rRM2q2pJS4iIinp0YQBbWcefQhDBuRFGE00lMRFRCTluDsPL01csSwzplltTUlcRERSzquV77Npxz4ABubncOYxmbkIppK4iIiknIdebW6Ff/K4keTnZkcYTXSUxEVEJKXU1jfyeMI0qxdNzsyudFASFxGRFLPwzW3srK4DYNTgfKaVDI04ougoiYuISEqZt6z53vBPTR5FVlayla8zQ6eSeGyFMRERkUhV19bzl9XvxLdnTBoVYTTRazeJm9mnzGwbsMLMqszslF6KS0RE5EP+uuZdqmMrlh15yEFMGDko4oii1VFLfA5wmruPBC4B/jv8kERERJKblzDN6oxJozDL3K506DiJ17v7awDu/hIwMPyQREREPmxndS3/eOPd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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": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean absolute error: 0.03\n",
"Residual sum of squares (MSE): 0.00\n",
"R2-score: 0.11\n"
]
}
],
"source": [
"# write your code here\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",
"\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": [
"<h2>Want to learn more?</h2>\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: <a href=\"http://cocl.us/ML0101EN-SPSSModeler\">SPSS Modeler</a>\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 <a href=\"https://cocl.us/ML0101EN_DSX\">Watson Studio</a>\n",
"\n",
"<h3>Thanks for completing this lesson!</h3>\n",
"\n",
"<h4>Author: <a href=\"https://ca.linkedin.com/in/saeedaghabozorgi\">Saeed Aghabozorgi</a></h4>\n",
"<p><a href=\"https://ca.linkedin.com/in/saeedaghabozorgi\">Saeed Aghabozorgi</a>, PhD is a Data Scientist in IBM with a track record of developing enterprise level applications that substantially increases clients’ ability to turn data into actionable knowledge. He is a researcher in data mining field and expert in developing advanced analytic methods like machine learning and statistical modelling on large datasets.</p>\n",
"\n",
"<hr>\n",
"\n",
"<p>Copyright &copy; 2018 <a href=\"https://cocl.us/DX0108EN_CC\">Cognitive Class</a>. This notebook and its source code are released under the terms of the <a href=\"https://bigdatauniversity.com/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.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