Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jukomol/24eafb90debb2ee239aba2a388bab7e4 to your computer and use it in GitHub Desktop.
Save jukomol/24eafb90debb2ee239aba2a388bab7e4 to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>\n",
" <img src=\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%202/images/IDSNlogo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n",
"</center>\n",
"\n",
"# Non Linear Regression Analysis\n",
"\n",
"Estimated time needed: **20** minutes\n",
"\n",
"## Objectives\n",
"\n",
"After completing this lab you will be able to:\n",
"\n",
"- Differentiate between Linear and non-linear regression\n",
"- Use Non-linear regression model in Python\n"
]
},
{
"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.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"importing_libraries\">Importing required libraries</h2>\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"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.\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"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('Independent 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)$$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's take a look at a cubic function's graph.\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEGCAYAAACZ0MnKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAwa0lEQVR4nO3deZgU5dXw4d+ZGcABQWRVgRkIIe55fQU1b/yMK27RiPsyrlFRo0YlalQ0IVFiNHGPRicuMThxIYpiXBBMUFEjDIqIGhXFwVEUUATZYeZ8fzzVTjP0Ur1UV3X3ua+rru6u7uo+NUudfnZRVYwxxhg/KsIOwBhjTPGwpGGMMcY3SxrGGGN8s6RhjDHGN0saxhhjfKsKO4Cg9erVSwcOHBh2GMYYU1Rmzpy5WFV7t99f8klj4MCBNDY2hh2GMcYUFRFpSrTfqqeMMcb4ZknDGGOMb5Y0jDHG+GZJwxhjjG+WNIwxxvhmScMYYyKsoQEGDoSKCnfb0BBuPCXf5dYYY4pVQwOMHAkrV7rHTU3uMUBdXTgxWUnDGGMiavTotoQRs3Kl2x8WSxrGGBNR8+dntr8QLGkYY0xE1dRktr8QLGkYY0xEjR0LnTtvuK9zZ7c/LJY0jDEmourqoL4eamtBxN3W14fXCA7We8oYYyKtri7cJNFeqCUNEblXRBaKyJy4fWNE5FMRmeVtB8c9d7mIzBWR90TkgHCiNsaY8hV29dRfgQMT7L9JVXfytqcBRGQ74Dhge++YO0SksmCRGmOMCTdpqOqLwFc+X34Y8JCqrlHVecBcYNfAgjPGmGL17rtw662wenXe3zrskkYy54nIbK/6anNvXz/gk7jXNHv7NiIiI0WkUUQaFy1aFHSsxhgTLWPGuBGAK1bk/a2jmDT+DAwGdgIWADd4+yXBazXRG6hqvaoOU9VhvXtvtFqhMcaUrrfegkcegQsugJ498/72kUsaqvqFqraoaivwF9qqoJqBAXEv7Q98Vuj4jDEm0saMgW7dYNSoQN4+cklDRLaMe3g4EOtZNRE4TkQ6icggYAgwvdDxGWNMZM2aBY89BhdeCD16BPIRYXe5fRB4FdhaRJpF5HTgehF5S0RmA3sDFwGo6tvAI8A7wLPAuaraElLoxhgTPWPGsLbzZnz/vosCm0o97N5Tx6vqlqraQVX7q+o9qnqSqu6oqt9X1Z+o6oK4149V1cGqurWqPhNm7MYYk0+5rJvR0ACHbDkTnniCsStH8dYn3VFtm0o9n4kjctVTxhhTbmLrZjQ1kfHFPnbszz6/iq/YnJu5YIPn8z2VuiUNY4wJWS7rZoweDTuvfImDeYbr+CXL2Gyj1+RzKnWbe8oYY0KWy7oZ85uUcVzBZ2zJbZyf8DX5nErdShrGGBOyXNbNOLnPM+zBNK7mKlbReaPn8z2VuiUNY4wJWdbrZrS2cmP1aD6S73APp3+7W7yh0EFMpW5JwxhjQpb1uhnjx9OjaRYLzvoNW9V2/PbYceNcg/rHH+d/WnVRTTgTR8kYNmyYNjY2hh2GMcbk19q1sN12UF3tBvVV5nfSbxGZqarD2u+3hnBjjClGd90FH34ITz+d94SRilVPGWNMsVm6FH77W9hnHzgw0ZJEwbGkYYwxxeb662HxYncriSYAD44lDWOMKSbNzXDjjXDCCTB0aME/3pKGMcYUk1/9Clpb4ZprQvl4SxrGGFMsXn8d/vpXOP98GDQolBAsaRhjTDFQhYsugl694KqrQgvDutwaY0wxeOwxePFFuPNO2GzjSQkLxUoaxhgTdatXwyWXwI47wumnp399gKykYYwxUXfLLTBvHkyZAlXhXratpGGMMVH22Weup9Shh8K++4YdjSUNY4yJtEsvhXXr4Kabwo4EsKRhjDGRE1svfE95ERoaeOugS2Hw4LDDAixpGGNMpMTW/G5uWs+tnE8TNew96TJf64UXgiUNY4yJkNh64WdzJ//DbC7iJr5c1dnXeuGFYEnDGGMiZP586MvnXMOVTGY/JnD4t/ujwJKGMcYELNZGUVHhblNVNdXUwI2MoppVnMvtgHy7PwosaRhjTIBibRRNTW4mkKYm9zhZ4rjnuMmcwINcy+V8wPcAn+uFF4gt92qMMQEaONAlivZqa90a3htYvRp23JFly4VdOs7mg082oabGJYx8r/WdTrLlXq2kYYwxWfJT7ZSsLaKpKcEx114Lc+fSbdwdvNe0Ca2tLrEUOmGkYknDGGOykK7aKZZQUlXmbHDMO++4pFFXB/vtV4hTyEqoSUNE7hWRhSIyJ25fDxGZLCIfeLebxz13uYjMFZH3ROSAcKI2xpi2rrHxVq50++MTSjorV8JVV7TAGWdAt26RGfmdTNgljb8C7VdFvwx4XlWHAM97jxGR7YDjgO29Y+4QkcrChWqMMW2SVTvNn584oaRy6Pzb4dVX3cSEvXvnJ8CAhJo0VPVF4Kt2uw8D7vfu3w+MiNv/kKquUdV5wFxg10LEaYwx7SXrAltTk9mYihqa+J1cAQcd5Nb9jriwSxqJ9FXVBQDebR9vfz/gk7jXNXv7NiIiI0WkUUQaFy1aFGiwxpjyNHas6wobL9Y1NllC6dmz/THK3RVn0bGTuMWVRIIKN2+imDSSSfTTTNjEpKr1qjpMVYf1jnhRzxhTnOrqoL7edZ0Vcbf19W5/soRyyy0bHnNpj3sY3jqJDn/8fXRG76URxUWYvhCRLVV1gYhsCSz09jcDA+Je1x/4rODRGWOMp64ucXfY2L7Ro11VVfuxFnV1uFbyHUfB3nvDOecULOZcRbGkMRE4xbt/CvBE3P7jRKSTiAwChgDTQ4jPGGPSqqtzYywSjrVobXXLtqrCvfe6gR5FItSShog8COwF9BKRZuDXwO+BR0TkdGA+cDSAqr4tIo8A7wDrgXNVtSWUwI0xJhd33gnPPw933eUGcxQRm0bEGGMK6YMPYKedYI894JlnItv4nfU0IuKcKCK/8h7XiIh1dTXGmEytWwcnngidOsHdd0c2YaTipyLtDuD/gOO9x98AtwcWkTHGlKqrr4bp0121VP/+YUeTFT9JYzdVPRdYDaCqS4COgUZljDEhy2QNDF9eftl1oTrlFDj66Jxj6tXLbXmLzyc/DeHrvOk6FEBEegOtgUZljDEhis0dFZsKJDaxIGQ54+yyZXDSSW6Axq235iWmL79sey7n+DLgp6RxKzAB6CMiY4FpwO8CjcoYY0KUajLCjKm6K/r8+fDAA25SwjzFlJf4MpQ2aahqA3ApcC2wABihquODDswYY8KSajLCZJJWZ91zDzz8MPz2t/DDH+Y9pkxfk6uk1VMi0iPu4ULgwfjnVLX9RIPGGFMSamoST2uebKaPZNVZmzW/zSG/+blbH+OyywKJyU98+ZSqpDETaPRu22828MEYU7JSTUaYSKKqI125kiFXHQtdu8K4cTmP+k4Uk9/48ilpSUNVBwX/8cYYEz3p5o5qb+NqIeVOzmbIunfggUmwxRZ5j6mHVxf01Vfp48snXyPCReQI4P/helC9pKqPBxxX3tiIcGNM0AYO3LDq6Czu5E7O4cbNfsOor38VWly5yGVE+B3A2cBbwBzgbBGxwX3GGOOJrzrahencwgVMqjiIvrddGW5gAfAzTmNPYAf1iiQicj8ugRhjjKGtWuiPly1mfPPRLKrckmV/GkfdScUze61ffs7oPSC+TX4AMDuYcIwxpjjVHbOON4YcQ22nL+j/n39w9Nk9ww4pEKm63D6Ja8PYDHhXRKZ7j3cDXilMeMYYUyR+8Qv497/h/vth2EZNASUjVfXUHwsWhTHGFLN774XbboNRo+Dkk8OOJlCputy+UMhAjDGmKL3yiluudfhwuO66sKMJnJ/eUz8QkRkislxE1opIi4gsK0RwxhgTaR99BCNGuIESDz0EVZkthpr3mXQLwM8Z/gk4DhgPDANOxq3PbYwx5evrr+GQQ2D9enjqqbbRdj7lfSbdAvHVH0xV5wKVqtqiqvfh1vU2xpjytG4dHHUUzJ0LEybA976X8VvkdSbdAvJT0lgpIh2BWSJyPW6m2y7BhmWMMRGlCmedBc8/D/fdB3vumdXbZDOTbhT4KWmcBFQC5wErcOM0jgwyKGNMaSrGOvyNXHWVSxa//jWcemrWb5NsRtpCzFSbi7QlDVWNzaiyCvhNsOEYY0pVsdbhb+COO9ycIWee6ZJGDsaO3fDnAYWbqTYXSUsaIvKId/uWiMxuvxUuRGNMKSjWOvxvPfoonHceHHqoSx4iOb1dXR3U17sVYEXcbX199BNo0lluRWRLVV0gIrWJno8rgUSazXJrTDRUVLjmgPZEoLW18PFkZNIklyx22QUmT069sEWJSDbLbarBfQtEpBK4R1X3CzQ6Y0zJy3Q1vMiYNg0OPxy23951rS2DhJFKyoZwVW3B9Z7arEDxGGNKVKar4UXCzJnw4x+7zDZpEnTvHnZEofPTe2o18JaI3CMit8a2oAMzxpSWoqvDf+MNNzXI5pvDlCnQpw9QIj3AcuBnnMZT3maMMTmpq4twkog3axbst59b33vqVOjfHyiRHmA58rXcazGzhnBjjF8NDdBwySzGLdiX1ZVdmPGHFxhx0aBvn2+/rGtMbS18/HHBwiyIjBvC4w4cAlwLbAdsEtuvqt/Ja4Qbf+7HwDdAC7BeVYeJSA/gYWAg8DFwjKouCTIOY0x5aGiAu06fzuNrDmQFXdizZSpfXDmI+j5tpYhiHcWdT37aNO4D/gysB/YG/gaMCzKoOHur6k5x2e4y4HlVHQI87z02xhS5KLQTPPGLF3lqzb4sYXP24CXm8Z2NxpEU6yjufPKTNKpV9XlcVVaTqo4B9gk2rKQOA+737t8PjAgpDmNMnsTaCZqa3DiOWDtBoRJHQwOc0vdZ/vrFgXzCAPbgJZoY+O3z8aWIouwBlme+ek+JSAXwgYicJyKHA30Cjgvc0rLPichMEfGamuirqgvAjSNJFoeIjBSRRhFpXLRoUQFCNcZkK8yR4g0N8PxPG7h74aG8x9bsyQssYKsNXhNfiii6HmABSDUivK+qfiEiuwDvAt2Bq4FuwB9U9T+BBiaylap+JiJ9gMnA+cBEVe0e95olqrp5qvexhnBjoi3MkeLX9LiBK5dczL/Ym8OZwDI2HJLWuXP5JYWYZA3hqUoab4rIZGBH3Foazap6mqoeGXTCAFDVz7zbhcAEYFfgCxHZEtw0J8DCoOMwpphEoW3Ar1isyTpwBtpO0NICo0Zx5ZKLeZhjOIhnNkoY5ViK8CNV0ugH/BHYA3hfRB4XkWNFpDrooESki4h0jd0H9gfmABOBU7yXnQI8EXQsxhSLsNsGMhEfayL5aidImERXrIAjj4SbbuK+rj/neB5kLZ02OC7WhdYSRgKqmnYDOuIaoR8EPgca/ByX7QZ8B3jT294GRnv7e+J6TX3g3fZI915Dhw5VY8pBba2qSxcbbrW1YUe2sWSxxuJ94IHcP+OBB1Q7d97wvfvRrI3srOup0Okn35rwNZ075+fzix3QqAmuqX6Xe10LvINr21iGG7MRGFX9SFX/x9u2V9Wx3v4vVXVfVR3i3X4VZBymvBRT1U4ixTSGIFlMIvn7ht++gX1XXuM1duV7vM9PmMhe/zgfsIbtTKUc3CciNcCxwPG4JV4fAg5T1XcLEJsxBVMK00MU0yyyhYg1PjGdxr38mXP4jK3YnZd5i++D10PLqqEyk2oRpleAl4C+wEhV3VpVf20Jw5Siol8giOIaQ+A31lxKfzU10JE1/IlzuZfTeZEfMYxGlzA8fkthxV4KzatEdVauOos98brkFvNmbRpG1dVR19aqiiSuMxdJXL8uEka02Ut3nlGSLtZc2xsm3PiRNlYMUwW9nou1knVZtfeUa7sHSdo0Qr+oB71Z0jB+/umLqRG5XOT0O3n8cdXu3XVN5830zN4Tvv0CkM2Fv1z/NpIlDV8N4cYUMz9VT7lW7eRafZHL8aVadZJVw/7KlfCzn8GIETB4MB3fep36hSNQhXHjsmvwLqYOBgWRKJPEb8AgP/uiullJw/itesq2aifX6otcjg+76iTI6rB03/Dbf/ZTV89U3WYb96KLL1ZdvbogcZQqsq2eAl5PsG9muuOislnSiKZC1r0H/U+f6/vncnyYF7SgE1aq949/roq1eiW/1TV00BWbb6U6eXJ+AvARRynLOGkA2wBHAh8CR8RtpwJvJzsuapsljehJdzHIdzLJ5vMyiSPXRvRcjg+zAb8QCSvZ7yH22d9nlr7OTqqgD3CC/k//xfn7cB9xlLJsksZhuLU0vvRuY9utwA+THRe1zZJG9CS72PTsGdw3ukT/9MmSyTnnZBZHuZY0wkxYnVmhY7lc11KlC+irhzGhYJ9dLnKpnvq/dK+J8mZJI3qSXWySbUFdAJNdcCsrM4uj2No08vWtObSE9cwz2lQ1SBX0Pk7RHiwuaLIsF7kkjd7AFUA9cG9sS3dcVDZLGtGTat6hQn5zzTR5pYoj1wtxLsdncmw+6+eDqutPdj6P3/ihPlN9uCro+xVb635V/w6kVGqcXJLGK8B1wDFeG8eRwJHpjovKZkkjc0HX3ya72PTsmfhiHfWSRjHJd+kg338rif42+lQv02d2vkJX0Um/oYtezljtyGrt0MH9zZRTO0Mh5ZI0ZqV7TZQ3SxqZKVRPkUzaGIK6GOSrTaOYBNkOkY8EEp/UqlirP+NP+jl9VEH/xom6Fc0ll8ijKpekcQ1wcLrXRXWzpJGZsPukF7qXSj56TxWToH6/+Ur4IqoVrNfjadD3+a4q6L/ZU3fhtYJWXZrkSSPpcq8xIvINbobbtd4mbkygdvM9gjBEttxrZsJcetMEr/1svpCfJU0HDkw8a21sMSNfWlr4+RaPcM7i37It/2U2O3IZv+cZDqKyUmhpyfH9TUayWe4VAFXtqqoVqrqJqnbzHhdFwjCZSzY1dRSn1w5bMU7fUVcXzPoROU21sXq1C2Lbbbl18Qm0ShVHMZ6dmMUzHEznzsLIkcUzg2/JS1T8iN9wJYsTgau8xwOAXdMdF5XNqqcyU66jXzNlP6cNZVXttXCh6jXXqG6xhXvx0KGq48frA39rKasqw6gihzaNPwO3A+96jzcHZqQ7LiqbJY3MRfGfM2oxhd32Uwj56sqbcI6o005T7dTJvXD4cNUpU1RbWwtzYsaXXJLG697tG3H73kx3XFQ2SxrFL4rf6ktl/Y1k8jVoMPY+XVmqI7lTG9lZFXRdJ6+b2ttvF+qUTIaSJQ0/DeGvAT/0Shc7i0hv4DlV/d+81pMFxBrCi19eGlnzLIox5VNezm/dOk7r9xwHLBrHYTxBNat5k+9Tz0heGlDH7Pnd8xewybusG8Jxc01NAPqIyFhgGvC7PMdnTFJhr2eQqME77KVVg26Ez/pnvn49TJniumhttRX3LTqE4UzmXn7KrrzGTsziDs5lTnP3/AZsCidR8aP9hpvx9lzgPGBbP8dEZbPqqQ1FrW3Aj6hO/x3Wz7IQ1XUZ/cyXLlV95BHVE09U7dHDvbBLF9XjjtMzej+uHVhT0m0/pYosZrntkWpLdlzUNksabaLYNuBHmHFHcdoNvzHlOp9V0p/5unWqr72mevXVqnvsoVpV5V7Qs6fqySerPvaY6sqV6d/HRFo2SWMe8JF32wIsxk2T3gLMS3Zc1DZLGm2KucdPPr/VF3KtjPafm69R0+liysdnxX5OnVmhR/d9QV8/5lrVAw9U3XTTtjcdOlT18stVX3zRJZMU71NMpVuTRdL49gVwJ3HTiAAHATekOy4qmyWNNqXe48ePTC+m+Uy0+XovP++T9WetXKk6Y4bqXXepjhzpkkKsJAGq223nej099JAbZ1GkLJGll0vS2Ghp12RvFsXNkkabQpU0ovwPmenPIJ/VK/lK2n5iSjXte22t6kP1S1VnzlT9+99Vf/Ur1aOOUt16a9WKirYXdu+uuu++qldcofrkk6qLFmV+0gUS1vTwpSyXpDEJuBIYCNQCo4FJ6Y6LylbqSSNq/yxR/4fM5sIdxUWLUsa0Zo3u1u8T3YXXdASP6bncptdxiT7Isfoqu+lCem0YQEWF6uDBqiNGqF51lWvU/vDDDQbbRfmLQJilx1KWLGn4GafRA/g18CNv14vAb1T1q0x7aoWhlMdpZDP5XEMDjB7tuk7W1LguornOOxQv6uMXwowv7e9L1c3DtGpV27ZihTtg+XL45hu3LVsGX38NS5fCV1/Bl1+6bfFiWLgQlizZ6LPX0JH51DCfGj5kMB8ymKW9vsudU7eB734XOnXKPu6QZfo7tUk5/Uk2TiNt0ogaETkQuAWoBO5W1d+nen0pJ40oXaBjyShRPBCdf8jYBXDVyla6sIJuLKPvJssYe/lyDvrRiraL9KpV7nb1aretWQNr1268rVvntvXr27b2j2P71q1j6ZfrWLJwHbJ+HdWVa+lWvY5NWOPef926zE6mSxfo3h169mzb+vaFPn2gb1+mftCPPzRsxczPt2IhfdB2w7L8/k6i9HeWSKZJIOrnExVZJw0R+R5wMa56qiq2X1X3yXOMaYlIJfA+MBxoBmYAx6vqO8mOKeWkEfY3pvhEIZI4lpjA/yFV3bfu5mb49FP4/HP44gu3LV7cti1ZwpovllC1YimVZPhDqqqCjh3d1qFD221sq6qCysq2+1VVG9+P32LHd+rUtlVXwyabuK1zZ5cYOneGTTeFrl3d1q0bbLaZO9aHXC+SYf+dpZPp+UW95BQVyZJGVaIXtzMe14Pqblx32zDtCsxV1Y8AROQh4DAgadIoZTU1if9Z2k9jHkSVVPt/vFQJI28jpdesgQ8+gLlz3e2HH7qrwscfux/E6tUbH7Pppu6bd69e7nabbei0+ebuG/pmm7kLcOxi3KVL21ZdveEFvFMnd/UsQmPHJr5I+v2d+P07C0um5xf72w+ymrakJWroiN9I0HsqrA04ClclFXt8EvCnBK8bCTQCjTU1Nbm3CEWUnwbAoBqmkzUmJmpczPizWlpU339fdfx41zA7YoTq9763Yc8ecKOPhw1TPfJI1VGjVG+6yTXivvyy6kcfqa5YkdtJlpDABvpFRJQb6osVOfSeGgP8DNiSkEeEA0cnSBq3pTqm3HtPBTWi2W/C8GXhQtUJE1R/+UvVffZR7dat7U0qK1W32cYlhiuvVG1oUJ0+XfWrr7I7AZNSKSx/W0yxRlkuSWNegu2jdMcFsQH/R1x3X+By4PJUx5R60kgn6BHNybaU30Q/+8xd/E8/XXXIkLaDOnRwg8nOPlv17rvdIDNvOor2cdhFIf+KoUSRTimcQ1RknTSitOHaYD4CBgEdgTeB7VMdU+5JoxAjmuMTUfsqqQceUB1Ss1r3ZYre1e0XuqT/9m0HdO+ueuihqtddpzptmuqqVWljKLaLQjEluFIYv1AK5xAVuZQ0OuMG99V7j4cAh6Q7LqgNOBjXg+pDYHS615d70ijEiOaEbRdff60vnfugjq88RpfSVRV0NR31+Yr99PXjrlNtbFRdvz7jGIrpolBsCa4UppkphXOIilySxsPApcAc73E1MCvdcVHZyj1pqBZwRPPy5W5OohEjVDt2VAX9nD56F2fqIUzULnyT8wU+3UUhCt/s07X7RDHBqRZXQk6mFM4hKnJJGo3e7Rtx+2y51zKU6Jtzl+oWfW70VNVTT3VrKIDqVlupXnih7s40rWB91t/6EiWAVBeFKHyz99Puk+78S3mdjqCVwjlERS5J4xWvdBFbK3wwMD3dcVHZSjFphPltOvbZfflcf9/9Wl3We5D7M+raVfXMM1WnTnVdZjW3b33J/vnPOSf5RSHdt/t8/Jyy7a3m9/zDvuhFoaSWq1I4hyjIJWkMB14AFgENwMfAXumOi8pWKkkj/qLYvoom6ItK/D/hiC1e1Xk/OM71dALVvfZyPaESjInI5QKYrkSR6KKQqs0lHz+nXGeX9RNDoatXgrrA2oW7+OXUewroCfwYOATo5eeYqGylkDT8VHkEeVHZtHq9HsUj+go/UAVdwmb6zoEXqr77rq/js7l4ZNOgmeu3/HRyWcfCb2kno84GOQqqVBN2acnkR65J4wjgRuAG4HA/x0RlK4Wk4ediGEjvkDVr9OKe9+h7uLEUHzBYz+NW7cI3gTcsZvONOx/tCanke8W8TNpsgrj4BlWqscbo0pBL9dQdwHPAad72LHB7uuOispVC0khX5ZH3f8g1a1TvvFN1wABV0BkM1SP4xwaN2kF3Ycz222qQPZf8Xgz9lK4yabMJ6ncdVPdU6/ZaGnJJGm/jzYbrPa4A3k53XFS2UkgaBfv2uX696n33qQ4c6N74hz/Uk/o8q9AayrfGqM2XlM/39NNmE3Sp0koaJpVcksZjQG3c41rgwXTHRWUrhaSR6GKVaPR11lpbVZ9+WnWHHdybDh2q+swzqq2tRV0/HURjbL7e08+38aAvvrmW5pL9DIr5b8a0ySVpvACsBKZ62wpgCjARmJju+LC3UkgaqgH2Rpk9W3W//dyfwuDBbmbZuGU+A/3sMuYnIRTi4pvp79ZvTPY3U/xySRp7ptrSHR/2VipJw4/4f9SePd2W9J92yRLVCy5ws8j26KF6yy2uLcMURLFefK3qqXzk2nuqFtjPu18NdPVzXBS2ckka6XoOfXtBam1VHTdOtU8fdyU65xzVxYvDDr8sRS0h+GGN3OUjWdJIuxSZiJwJ/AO4y9vVH3g83XGmsEaP3nDlsvZWroQ/XzoPDjoITjoJBg2Cxka44w63tnQRa2hwS35WVLjbhoawI/Knrs4tOtja6m6LYeW4ZKv1RWUVPxM8P+tXngvsDiwDUNUPgD5BBmUyN39+8ueEVi7gZiZ9tgO8/DLcdpu73XnnwgVIMBf32LKzTU3uO29Tk3tcLImj2Iwd65ZSjZe35XxNUfCTNNao6trYAxGpAjS4kEw2kn3TG8g8/sU+3MxF/Kd6b3jnHTjvPKisLGh8QV3cE5WwVq50+03+1dVBfT3U1oKIu62vL45SkskPP0njBRG5AqgWkeHAeODJYMMymdr4G6DyU+5hNt9nZ17n7I738nn9kzBgQCjxBXVxT1bCSlXyMrkpxmo1kz9+ksZluMkK3wLOAp7GLcpkIiT+G2B3vmZCx2O5hzOYwS4c2G8Oe9x7GnUnSmjxBXVxL6c69mJtuzElJlHrePsN6A309vPaqG3l0nvqWy+/rFpTo1pVpfr73387TXnYguqqWS4DycrlPE10kGnvKXHGiMhi4L/AeyKySER+VZh0ZjKiCjfdBHvu6dorpk2DX/7SfS2NgKAaUMuljt3abkxUpLqiXIjrNbWLqvZU1R7AbsDuInJRIYIzPi1bBsccA6NGwSGHwOuvw267hR3VBlJd3HOtdimHOnZruzFRkSppnAwcr6rzYjtU9SPgRO85EwXvvw+77goTJsD118Njj0H37hm/TSHqyxNd3K3LrD/l1HZjoi1V0uigqovb71TVRUCH4EIyvk2a5BLGl1/ClClwySXua3yGwrxwW7WLPzY+wkRFqqSxNsvnTNBU4eab4eCDXT3PjBmw115Zv12YF26rdvGnXNpuTPSJayRP8IRIC25G242eAjZR1aIobQwbNkwbGxvDDiN/1q+HCy+E22+HI46A+++HTTfN6S0rKlweak/EVSUFaeBAV7Jpr7bWVWEZY8IhIjNVdVj7/UlLGqpaqardEmxdiyVhlJzly+Hww13CuOQSGD8+54QB4daXW7WLMcUlGv0xTXoLF7oqqKefdpMMXn993rrThnnhtmoXY4pLVdgBGB8+/hj23x+am2HiRPjxj/P69rEL9OjRri2hpsYljEJduOvqLEkYUyyspBES311c58yB3XeHRYtcD6k8J4yYchjrYIzJnZU0QhDr4hrrsRTr4grtLtaNja6EUV0NL70EO+xQ8FiNMSZe5Eoa3tQln4rILG87OO65y0Vkroi8JyIHhBlnLnx1cX31Vdh3XzdQb9o0SxjGmEiIXNLw3KSqO3nb0wAish1wHLA9cCBwh4gUdlGIPEk7NuGFF2D4cOjb190fNCiQOGzWVGNMpqKaNBI5DHhIVdd4U5vMBXYNOaaspOziOnWqW5K1psYljIDWv7DpO4wx2Yhq0jhPRGaLyL0isrm3rx/wSdxrmr19GxGRkSLSKCKNixYtCiTAXL6lJ+viWn/yNDfh4KBBLnlsuWUeI96QTd9hjMlGKElDRKaIyJwE22HAn4HBwE7AAuCG2GEJ3irhcHZVrVfVYao6rHfv3nmPP9dv6YnGJjx66X/Y/+aDoV8/eP556BPsMuw2fYcxJhtJpxGJAhEZCPxTVXcQkcsBVPVa77lJwBhVfTXVewQxjUjep7544w3Ye2/o1ctVSfVLWIDKK5u+wxiTSsbTiIRFROLrZA4H5nj3JwLHiUgnERkEDAGmFzo+SP0tPeNqq/ffhwMOgG7d4F//2iBhBNlQbdN3GGOyEcVxGteLyE64qqePceuSo6pvi8gjwDvAeuBcVW0JI8CamsTf0nv08Dn+Iqa52fWSApg8eYMWct9jObIU9ihwY0xxinT1VD4EUT3V/oIO7lt6dbVb2qK9hFU+X34Je+wBzc08felUfnb3zhtcvEePtuojY0x4iqZ6qhgkm2Tvq68Sv36j6qxVq+AnP4GPPmLyz5/k6Gt33qhRPVHCSPhexhhTQJY0spRoriZfU4y3tMBJJ7kR3+PGceYDeybs+lqZZNiiLe9pjAmTJY08StW4HGvUvrnqYnj0UWaecAMcfXTSkkNLizVUG2Oix5JGHrWvturZ07VznHiiK1wc2nQbF3IzN3MBP5pwEQ0NyUsOsSovW2fCGBMl1hAekPaN5QfwLE/xY/7JIRzBY7RSSW2tKzkkalS3BGGMCZM1hBdY/DQd2/IOD3Msb7EjdTTQimuwmD/fVq4zxhSXKI7TKAmxtoqeLOZJDmUV1fyEiaygbU3vWNWUrVxnjCkWVtIISE0NVLKehzmWfnzKYTzBJ7Q1YFijtjGmGFnSCMjYsXBj1S/Zl39xFncxnd0Qb8pFq4IyxhQrq54KSJ38HdbfyH1dz2fc8lOotWk6jDElwJJGEGbNgjPOgD324LTnb+C0DmEHZIwx+WHVUxnwNevs0qVw1FFu9sLx46GDZQxjTOmwkoZPvmadVYXTTnPzirzwglvj2xhjSoiVNHzytTzqzTfDhAlw3XWw++6FDM8YYwrCkoZPaZdHfeUVuPRSGDECRo0qVFjGGFNQljR8SjmD7ddfw/HHw4ABcN99fNu31hhjSowlDZ+SzmB7jdJ0wEjWzf+MH8x7kIE7dc/rsqzGGBMlljR8SjZH1OCp91A7fTxXcg2vsdu3DeSWOIwxpchmuc3Fu++yavuhTNPdOYBJaFwOtmVZjTHFzGa5zbe1a+GEE1iuXTiZv22QMMCWZTXGlCZLGtkaMwZmzeKK3nfzOVtu9LQty2qMKUWWNLIxbZobi3H66ex102G2LKsxpmxY0kij/dQhD9/9DZx8smu0uOkmW0TJGFNWbBqRFBJNHbLy7FG0tjZR8dKL0LUrYIsoGWPKh5U0Umg/dcj+TOK0lru5q+slgU0T4mtSRGOMCYl1uU2hosLNQQjQjaXMYQe+oStDeZ1Vukkeo3Tal2zAtY9YdZcxptCsy20W4ntA/YFL2IrPOI376Fub/4QBPidFNMaYEFnSSCE2dchwnmMkf+GPXMyczrsF1jMq7aSIxhgTMmsIT6GuDqpWL2f3s0bybss23FvzG+p/F1xVUU2Na2xPtN8YY6IglJKGiBwtIm+LSKuIDGv33OUiMldE3hORA+L2DxWRt7znbhUpzFSyx865iv4tTWw77W7ea9ok0LaFpJMi2pgPY0xEhFU9NQc4AngxfqeIbAccB2wPHAjcISKV3tN/BkYCQ7ztwMCjnDEDbr0VzjmnIIsq2ZgPY0zUhVI9parvAiQoLBwGPKSqa4B5IjIX2FVEPga6qeqr3nF/A0YAzwQW5Lp1cMYZsMUWcO21gX1MezbmwxgTZVFrCO8HfBL3uNnb18+7335/QiIyUkQaRaRx0aJFGQfR0ADX9bkBZs9m5LrbafjnZhm/hzHGlKLAShoiMgXYIsFTo1X1iWSHJdinKfYnpKr1QD24cRppQt1AQwOcc+Z6Xlt1P49yBH9ZNIKGke45KwEYY8pdYElDVffL4rBmYEDc4/7AZ97+/gn2593o0fDNqip2YQabsBpoGythScMYU+6iVj01EThORDqJyCBcg/d0VV0AfCMiP/B6TZ0MJCut5CQ2JmIFm/IlvTbab4wx5SysLreHi0gz8H/AUyIyCUBV3wYeAd4BngXOVdUW77BzgLuBucCHBNQInmxMhI2VMMYYm3tqIzb/kzHG2NxTvtlYCWOMSc6mEUnAxkoYY0xiVtIwxhjjmyUNY4wxvlnSMMYY45slDWOMMb5Z0jDGGONbyY/TEJFFQIKljSKvF7A47CAKrBzPGcrzvMvxnKG4zrtWVXu331nySaNYiUhjooE1pawczxnK87zL8ZyhNM7bqqeMMcb4ZknDGGOMb5Y0oqs+7ABCUI7nDOV53uV4zlAC521tGsYYY3yzkoYxxhjfLGkYY4zxzZJGxInIxSKiItIr/auLn4j8QUT+KyKzRWSCiHQPO6agiMiBIvKeiMwVkcvCjqcQRGSAiPxbRN4VkbdF5IKwYyoUEakUkTdE5J9hx5ILSxoRJiIDgOFAOS02OxnYQVW/D7wPXB5yPIEQkUrgduAgYDvgeBHZLtyoCmI98AtV3Rb4AXBumZw3wAXAu2EHkStLGtF2E3ApUDa9FVT1OVVd7z38D9A/zHgCtCswV1U/UtW1wEPAYSHHFDhVXaCqr3v3v8FdRPuFG1XwRKQ/8GPcktVFzZJGRInIT4BPVfXNsGMJ0U8JaC34COgHfBL3uJkyuHjGE5GBwP8Cr4UcSiHcjPsC2BpyHDmzlftCJCJTgC0SPDUauALYv7ARFUaq81bVJ7zXjMZVZTQUMrYCkgT7yqZEKSKbAo8CF6rqsrDjCZKIHAIsVNWZIrJXyOHkzJJGiFR1v0T7RWRHYBDwpoiAq6J5XUR2VdXPCxhiIJKdd4yInAIcAuyrpTuQqBkYEPe4P/BZSLEUlIh0wCWMBlV9LOx4CmB34CcicjCwCdBNRB5Q1RNDjisrNrivCIjIx8AwVS2W2TGzJiIHAjcCe6rqorDjCYqIVOEa+vcFPgVmACeo6tuhBhYwcd+C7ge+UtULQw6n4LySxsWqekjIoWTN2jRM1PwJ6ApMFpFZInJn2AEFwWvsPw+YhGsMfqTUE4Znd+AkYB/v9zvL+wZuioSVNIwxxvhmJQ1jjDG+WdIwxhjjmyUNY4wxvlnSMMYY45slDWOMMb5Z0jBFQ0SWZ/j6vcKcUTTTeNsde6qIbJVk/4Pt9vUSkUUi0snnew8TkVt9fP6fkjyX9XmZ4mdJw5hoOhXYKGkAjwHDRaRz3L6jgImquibdm4pIlao2qurP8xOmKTeWNEzR8UoQU0XkH97aGw3eSOPYGhX/FZFpwBFxx3QRkXtFZIa3psFh3v5TReQJEXnWW9vi13HHnCgi070BaHd505kjIstFZKyIvCki/xGRvt7+QSLyqvcZV7eL+RJv/2wR+Y23b6C3rsRfvLUlnhORahE5ChgGNHifXR17H2+epheBQ+Pe/jjgQRE5VERe885vSlxcY0SkXkSeA/4WXwITkV1F5BXvmFdEZOu49x2Q6OeS7rxMiVNV22wrig1Y7t3uBSzFzddUAbwK/D/cvD6fAENwEwI+AvzTO+Z3wIne/e64KTy64L7RLwB6AtXAHNwFe1vgSaCDd8wdwMnefQUO9e5fD1zp3Z8Y95pz4+LdH6j3YqoA/gn8CBiIm5RxJ+91j8TFOBU3dUyin8PRwATv/la4Oasqgc1pG7B7BnCDd38MMBOojvv5xX4u3YAq7/5+wKPe/YQ/l3a/h4TnFfbfiW3BbjZhoSlW01W1GUBEZuEuwMuBear6gbf/AWCk9/r9cZPGXew93gSo8e5PVtUvvWMewyWg9cBQYIZXiKkGFnqvX4u7QIK7GA/37u8OHOndHwdcF/fZ+wNveI83xSW2+V68s+Lea6CPc/8ncIeIdAOOAf6hqi3emg0Pi8iWQEdgXtwxE1V1VYL32gy4X0SG4JJhh7jnEv1cGuOeT3ZeL/o4B1OkLGmYYhVff99C299ysnlxBDhSVd/bYKfIbgmOUe/196tqopUD16lq7Jj4z072+QJcq6p3tfvsgQnOo5o0VHWViDwLHI6rmrrIe+o24EZVnehNjDcm7rAVSd7uauDfqnq4F8/UFOfS/nHC8zKlzdo0TCn5LzBIRAZ7j4+Pe24ScH5c28f/xj03XER6eG0HI4CXgeeBo0Skj/f6HiJSm+bzX8ZdxAHq2n32T8WtIYGI9Iu9bwrf4CZuTOZBYBTQF7fCIbhSw6fe/VPSvH9M/DGntnsu0c8lXjbnZYqcJQ1TMlR1Na466imvIbwp7umrcVUvs0Vkjvc4ZhquOmkWrk6/UVXfAa4EnhOR2bi1y7dME8IFuDWvZ+AuxrG4ngP+DrwqIm8B/yB1QgD4K3Bn+4bwOM/h2jMejiv1jAHGi8hLgN9p9K8HrhWRl3HtIvE2+rnEP5nleZkiZ7PcmrImIqfiGnjPCzsWY4qBlTSMMcb4ZiUNY4wxvllJwxhjjG+WNIwxxvhmScMYY4xvljSMMcb4ZknDGGOMb/8fdbRrVChP41QAAAAASUVORK5CYII=\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('Independent 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.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some other types of non-linear functions are:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Quadratic\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ Y = X^2 $$\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"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",
"\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('Independent Variable')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exponential\n"
]
},
{
"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"
]
},
{
"cell_type": "code",
"execution_count": 15,
"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",
"\n",
"Y= np.exp(X)\n",
"\n",
"plt.plot(X,Y) \n",
"plt.ylabel('Dependent Variable')\n",
"plt.xlabel('Independent 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}\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"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": "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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",
"Y = np.log(X)\n",
"\n",
"plt.plot(X,Y) \n",
"plt.ylabel('Dependent Variable')\n",
"plt.xlabel('Independent Variable')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Sigmoidal/Logistic\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ Y = a + \\frac{b}{1+ c^{(X-d)}}$$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"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('Independent Variable')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"ref2\"></a>\n",
"\n",
"# Non-Linear Regression example\n"
]
},
{
"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. \n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2021-04-18 18:20:45 URL:https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%202/data/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": 17,
"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://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%202/data/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)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plotting the Dataset\n",
"\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.\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"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": [
"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:\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"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",
"Y = 1.0 / (1.0 + np.exp(-X))\n",
"\n",
"plt.plot(X,Y) \n",
"plt.ylabel('Dependent Variable')\n",
"plt.xlabel('Independent Variable')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"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.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Building The Model\n",
"\n",
"Now, let's build our regression model and initialize its parameters. \n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"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:\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7efc639055f8>]"
]
},
"execution_count": 21,
"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:\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"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",
"\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.\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"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 regression model.\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"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",
"\n",
"Can you calculate what is the accuracy of our model?\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"# write your code here\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\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",
"\n",
"</details>\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=\"https://www.ibm.com/analytics/spss-statistics-software\">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://www.ibm.com/cloud/watson-studio\">Watson Studio</a>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Thank you for completing this lab!\n",
"\n",
"## Author\n",
"\n",
"Saeed Aghabozorgi\n",
"\n",
"### Other Contributors\n",
"\n",
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>\n",
"\n",
"## Change Log\n",
"\n",
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n",
"| ----------------- | ------- | ---------- | ---------------------------------- |\n",
"| 2020-11-03 | 2.1 | Lakshmi | Made changes in URL |\n",
"| 2020-08-27 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n",
"| | | | |\n",
"| | | | |\n",
"\n",
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.13"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment