Created
September 8, 2019 06:29
-
-
Save STHITAPRAJNAS/7c5810536e5061424d3411d099d6fd69 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", | |
"\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": 2, | |
"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": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEGCAYAAACO8lkDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd5hU5fXA8e9ZQGAtIAsaC+wCQQiKiiCxK7YoYq+4osSCxhprFLCLNcYfihjRWHeDir2gKCoYFcuCiHSQqqJiBURpe35/vDMyuzsze6fce2dmz+d53mdn7tzyDjH3zH3LeUVVMcYYY2IVhV0BY4wxuceCgzHGmDosOBhjjKnDgoMxxpg6LDgYY4ypo3HYFciG1q1ba1lZWdjVMMaYvDJp0qTvVLVNvM8KIjiUlZVRVVUVdjWMMSaviMiiRJ9Zs5Ixxpg6LDgYY4ypw4KDMcaYOiw4GGOMqSPU4CAiD4nItyIyLWbbdSLypYhMiZQ+YdbRGGMaorCfHB4BDomz/S5V3TlSxgRcJ2OMCVVlJZSVQVGR+1tZGXwdQh3KqqrviEhZmHUwxphcUlkJAwfCqlXu/aJF7j1AeXlw9Qj7ySGR80VkaqTZafN4O4jIQBGpEpGqZcuWBV0/Y4zxxeDBGwJD1KpVbnuQcjE43Ad0BHYGlgJ3xttJVUeqak9V7dmmTdwJfsYYk3cWL05tu19yLjio6jequl5Vq4EHgF5h18kYY4LSrl3i7UH2ReRccBCRrWLeHg1MS7SvMcYUmqFDobi45rbiYujTx/U9LFoEqhv6IvwKEGEPZR0FTAQ6i8gXInIGcLuIfCYiU4HewMVh1tEYY4JUXg4jR0JpKYi4vyNHwpgxwfZFSCGsId2zZ0+1xHvGmEJWVOSeGGoTgerq9M4pIpNUtWfc66V3SmOMMUFK1hfhBwsOxhiTBxL1RQwd6s/1LDgYY0wOi45Q6t8fmjeHkpKafRF+TYwriMV+jDGmENWeLf399+5p4fHH/Z8tbU8OxhiTo8KcLW3BwRiTd3IhMV0QwpwtbcHBGJNXok0tQU0GC1PQI5RiWXAwxuSVXElMF4SgRyjFsuBgjMkruZKYLgiJZksHkbrbgoMxJq+E2dSSjF/9IOXlsHChmwW9cGFwazpYcDDG5JUwm1oSyUY/SK51sltwMMbklTCbWhLJtB8kreBSXQ1PPQVjx6Zd72Qs8Z4xxmQo06R4ZWUuINRWWuqakmpQdQFh0CD45BM46ih47rk0am2J94wxxleZ9oN47mSfOBF694ZDD4Uff4RHH4Wnn/Zcz1RYcDDGmAxl2g9Sb3CZOhWOOAL22ANmzYJ77nF/Tz0VGjVKu97JWHAwxpgMZdoPkii4DLvwc3eSnXeGd95xO37+OZx/PjRtmv0vEsP6HIwxJgdUVroO7MWLoefWX1HR5Ua2m/AgNGkCF14IV1wBrVpl9ZrW52CMMSkKemhpeTks/ORHqq+4ko9++KMLDGed5Z4Ubr0164GhPpay2xhjaqmdKjs6tBR8GjL7yy8wbBjcfjssXw4nnwzXXw8dO/pwMW/sycEYY2oJLH/TmjUwfLgLAoMHwz77wKefQkVFqIEBLDgYY0wdvudvWr8eHnuMldt2hgsuYPw3XThmy/eoPPFF6NYtSxfJjAUHY4ypxbf8Tarw/POw005w2mnM+25zDuFVevM2z32zR06lHrfgYIwxtfiSv+mtt2D33eHoo2HtWs5t/RS7aBVjOQQQIPWUG352mFtwMMaYWrKav+njj+Ggg+CAA+DLL+HBB2H6dP79/fFonFuwl6arIBY8snkOxhjjh5kzYcgQePZZKClxuZDOPReaNQNSzKdUSybHxrJ5DsYYE5TFi+H002GHHeD11+Haa2H+fLjkkt8DA2TWdBXEgkcWHIwxOSvX1jhI6ttv4e9/h06d4L//da8XLIDrroPNNquzeyZNV0EseGTBwRiTk/xsV89q0Pn5Z7jmGjcv4Z57oH9/mDsX7rwTWrdOemi6q7wFsuCRquZ96dGjhxpjCktpqaoLCzVLaWlm562oUC0urnnO4mK3PdkxpaWqIu5vRYWqrlqlescdqq1auZMcf7zqrFmZVS4FceuUIqBKE9xXQ7+xZ6NYcDCm8IjEDw4imZ031aBTO5g0Zo2et9H9+svm27gNf/mLalVVnWMyvXEHIVlwsGYlY0xO8qtdPdXO3GgqDaGaE3mCGXRl+JqzmbmqHYwfD6+9Bj16/L5/EMNMg2DBwRiTk/xqV0816CxepBzKGCbRgyfox68053BeZNfV78G++9bZP1FeplNOyYNO9RihBgcReUhEvhWRaTHbWonIGyIyN/J38zDraIwJR1YnosVIKei89x4Tm+7LGA6jBT9zCo/TnU94mcNpVypxz59sOGk+PUWE/eTwCHBIrW1XAm+qaifgzch7Y0wDlO5onqh4o5KSBZ3o/jvLp7xZ3Bf22osdm83loiYj6MIsKjmFaholfYKpr9nLl+yufkjUGRFUAcqAaTHvZwNbRV5vBcyu7xzWIW2MqS3eqKRoJ3e8TuKKCtUdms3VSvqpgv5ASx3S5FYd9eDKGh3MJSWuJOpsjnfdbHeqZwu5PFopTnD4qdbnPyY4biBQBVS1a9cu+/9qxpi8lmhUUtzhq19+qRWbnK1raKwrKdahXKUt+LHOKCavAScaTBJdO9PhuNlSkMEhttiTgzHByZdhmomGwsaWnbb9TvXyy1WbNdPVNNF7OE+3ZGnCX/kpBRxNb05FkPItOFizkjE5KtdvdrGS3cg3ZoUO5kb9ic3c3b9/f91r68/r/ZXvJeDUfirI5WCaLDiE3SEdz4vAaZHXpwEvhFgXY0yMwJbPzIJ4o5I2YjUXcDef05GbuJoPm/eGqVPhscc45/YO9Y5i8jLHovZopUw71cMS9lDWUcBEoLOIfCEiZwC3AgeJyFzgoMh7Y0wOCCIbaKp5jxLtHzsqqYj1DOARZtOZu7mI6WzPfk0nsuyB5132VLwNnY0XcGpLFkDyKpFgokeKfCrWrGRMMJKlnshG80mqzVb17l9drfrss6pdu6qCfrpRDz2I17W0XXXazTuxnc21m5kyqmsIyOU+h2wUCw7GBCPRDe5vf8vOjS/VvEdJ9x83TrVXL7ehSxfVp592wSKLUgmIfiUSzESy4GArwRljUlJZ6foYFi92TShDh7r32ViZrKjI3TJrE3Ft9l7235WPuJlBHMib0LatW0/h1FOhcWPvFfFBqt8tCLYSnDENkF/t2/E6WLPVF5Fq3qPY7X9iBs9wDB/xZ7oXfQp33QVz5rhV2UIODBDMAj3ZZMHBmAIUdGbQbN34Uk22N3QodGm2kIcZwGd040DGcWOT6xl3/3y3ElvMspxhC2SBnmxK1N6UT8X6HIypKej27VRTVdR3Lk/t+F9/rXrBBbquURP9jab6Ty7VnbddllPzCGrLtTkPZNohDZQCB0ZeNwc29XJcUMWCgzE1+bVQTjLpjuJJ2U8/qQ4ZorrxxqqNGqmedZbqkiUZ1ztXbthBShYc6m1WEpGzgKeB+yObtgWe9+MpxhiTHWG0b0f7IkpL63a8ZmWi3K+/wh13QIcOcNNN0LcvzJjhJiNsu21apyyUhXn84KXP4TxgT2A5gKrOBbbws1LGmMyE2b6d9Ylya9fC/ffDH/8IV1wBf/4zTJ4MTzwB222Xdj0hv2Z8B81LcFitqmuib0SkMZD/41+NKWBe1izwa5Zu1p5aqqth1Cjo2hXOOQfat4d33oExY6B794zrCcHM+M5XXoLDBBEZBDQXkYOA0cBL/lbLGJOpeENOg2hGyfipRRVeeQV22QVOPtkd/PLL8L//wd57Z6+i5N/w0iB5CQ5XAsuAz4CzgTHAED8rZYzxRxDNKLWfWkpKoHlz6N/fw5NKNAD07QsrVridP/kEDjvMnSzL8m54aZAS9VTnU7HRSsZ4E/QoJs/5hCZPVj30ULfDVlup3nef6po1dc7lx6giG62U4lBW3JPC1EQl0XFhFAsOxjj13eiCnv9Q7/Vmz1Y98US3cfPNVW+7TfWXX+J+r1xLWlcI0g0OpclKouPCKBYcjPF2Aw36JpvoSWVblqieeaabp1BcrDp4sOqPPyY8Ty4mrSsEyYJDwj4HVV0ULcBqYCdgR9zopTgptowxYfLSn+BlzYJsqt2x24rvuYPLmMsfWfPgo8w64FyYP9/NW2jZMuF5bFRR8LxMgjsT+Ag4BjgO+EBETve7YsaY1Hi9gQa5Mlm0w3cTVnA1N7CA9lzMXTzBSWzHHHq8ezeV47as9zw2qih4XkYrXQ50V9UBqnoa0AP4h7/VMsakKhdvoOXH/saEY/6PBUUduYFrGceBdOMz/sojLKLM80gpG1UUPC/B4QtgRcz7FcASf6pjjElXTt1A162Dhx6C7bajZ8XFtN6vG7vxAcfyLDPpWmNXL01DQTeHGUiY5FxELom8/BL4UERewM2MPhLXzGSMySHRG2XthXgCvYGqwjPPwNVXw6xZsOuuLkgceCBflwFxeiu9PtmUl1swCFKyJ4dNI+VzXKK9aMqMF4ClPtfLGJOGIPsTalCF1193weD4493P+2eegQ8/hAMPBHLsycbUK+GTg6peH2RFjGlI4i21mbe/ij/8EK66Ct5+27X3PPywmw7dqFGN3XLiycZ45mW0UhsRuUNExojIW9ESROWMKUS5lCY6oyR806bBUUfBbrvB9Olw990wezYMGFAnMESF9mRjUualQ7oSmAW0B64HFgIf+1gnYwparqSJTjtILVgAp54KO+7onhZuvBE+/xwuuACaNg2k7sZ/XoJDiar+B1irqhNU9XRgN5/rZUzByvaErnR//accpL7+Gs4/Hzp3htGj4fLLGX37AsoeHELRZpv4kv7bhCdhn0OMtZG/S0XkMOAr3Gpwxpg0tGvnfqXH256q6K//6E0++usf6m+y8RykfvoJbr8dhg2D1avhzDPh6qupHL9N2tc2eSBRXo1oAfoCLYAdgLeBScAR9R0XZLHcSiafZDO/USY5h+o99pdfVG+5RbVlS/fBSSepzpmTlWub3EAma0ir6suq+rOqTlPV3qraQ1Vf9DNgGVPIsjGhK9qUFO8JBLw1USUaWnrL9WtgxAjo2NGNQtpzT5gyxa3K1qlTvdewfEeFIdkkuCtU9XYRuYc4y4Kq6oW+1syYApbJhK7aTUnxeGmiqj20tKzteh7vM4o9b7jWJcPbe2/Xt7DXXgmvka3mMZN7kj05zIz8rcI1JdUuxpgQxOtIjpXKxLLycli4QKl+4SXmt+jOnv/uD5tu6tZpnjAhYWAAm9RW6JJNgntJRBoBO6jq5QHWyRiTRLJmm9LSFCeWTZgAgwbB+++7JqMnnnAznIvqH8hok9oKW9LRSqq6XkR6BFUZY0z9EjXnlJa6iWWeTJ7sgsLYsbDNNnD//fDXv0KTJinVxfIdFS4vQ1k/EZEXgdHAL9GNqvqsb7UCRGQhLgPsemCdqvb083rG5IuhQ+v2OXhuzpk92yXFGz0aWrWCO+6A886D5s19q6/JT16CQyvge2D/mG0K+BocInqr6ncBXMeYvJFWc86SJXD99fDII9CsmQsQl14KLVoEUWWTh7wMZf1rnGIrwRkTIs85ipYtg0sucf0Jjz/unhLmz4cbbkgaGDLKuRSifK13LvKSeK+ZiJwnIiNE5KFoCaBuCrwuIpNEZGAA1zMm56R9s1u+HK67Djp0cDObTz4Z5sxxr7fYot5r5kpiwFTka71zVqLZcdGC62u4Ebeuw2nA68Cw+o7LtABbR/5uAXwK7FPr84G4YbZV7dq1y8ZkQWNySlozqX/9VfVf/1Jt3dodcOyxqjNmpHTdfJ35nK/1DhNJZkiL+zwxEflEVbuLyFRV3VFEmgBjVXX/pAdmkYhcB6xU1X/G+7xnz55aVVUVVHWMCUSiGdBxRyWtWwePPur6FZYsgYMOgptvhp6pj+MoKnK31dpEXDNWrsrXeodJRCZpgsE+XrKyRhPv/SQiO+DyLJVlqW5xicjGIrJp9DVwMDDNz2sak2s8paeornYjj3bYwSXE23preOsttypbGoEBEs9wzvWZz/la71zlJTiMFJHNgSHAi8AM4DZfawVbAu+KyKe49apfUdXXfL6mMXGF1cmZ9Gan6uYo7LornHACNG4Mzz8PEydC7951jknlO+TrzOd8rXfOStTeBGyZ6LNcK5aV1fglmxlUs3Xt1659X3Xffd2GsjLVxx5TXbcuq9+hosK11Yu4v0F832zI13qHhSR9DsmCw9fAG8DpQItE++VCseBg/JJOJ2c2b1Cx5zp4q6m6pPvhrgJbbql6zz2qv/3my3cImt3Uw5FucGgE/AV4GPgGeB44EWie6JiwigUH4xeR+DdWkfj7+/KkMW+eanm5u2iLFqpDh6quXOnbdwhKNCBE6xLG01lDlyw4JOxzUNX1qjpWVf8KtI0EiaOABSJiI4dNg5BqJ2dW14deuhTOPRe6dIFnn4UrrnAT2AYNgo039nyaXOyojZ2TAHVHGYWxprapyUuHNKq6BtcRPRNYDnT1s1LG5IpUOzmzsQDO6JE/MqLFVazauiNr73uAOfueBfPmwa23unxIKcrFjtr60o6DLRoUtqTBQUTaicjlIjIZeBnX1HSkqnYPpHbGhCzVVdsy+pX+yy9MOfEWDjy7A+csv41nOYYuzKL7xBFUvr11YN8hCF5u/DYENWSJ2puA94FFwD+Bnon2y4VifQ4mV6TV57B6terw4ap/+IMq6Ascrt34NGc7j7MhUSe59TkEizTXkL4KKFPVy1TVph8b40FKv9LXr3fJ8Lp0gfPPh06d2JP3OJIX+Ywda+xaaE0s8Zq6RNzfXHiyMUmalVR1QiSyGGNSUG/GVFV44QXYaSc49VRo2RJefRUmTODL0j3inrPQmljiBdHHH3f/NEmzzJrAeOqQNqZQBT77efx42H13OOooWLsWnnwSqqrgkENAJCc7j/3iOe24CYWXlN3tvWwzJt8EmuK5qoql3Q6G3r1Z8uGX/KPVA/x38HSX+iJmveZc7Dw2DZOXrKyTVXWXWtsmqWrOrC1tWVlNOlLKepquWbPcqmtPP813lHAzgxjBuaymGcXFduM34UorK6uIdBGRY4EWInJMTBkANPOprsakLdUmomzMSUh68tNPh+23h9de4/9aXEsH5nMXl7A68n8fm+hlclmyNaQ7A32BlsDhMdtXAGf5WSljUhVtIopOrIo2EUHyOQnxnhwy6vz99lu3jsJ997l2oYsugquu4pIt2xDvGb3QRiGZwpFstNIL6lJn9NWa60dfqKrvB1hHY+qVStqK6BPGokUbhk9GpdL5G/uk0q3dz3x29DXQsSPccw/07w9z51LZ41+U7dqmTnqIqHwYhWTrMjdQiSZARAvQBhgEjAQeipb6jguy2CQ44zW5XLxJatFjU8kGGj1PM1bppdyh39FKFXRhr+NUZ85MeK18m+gVZspy4z/Sycr6+w5upvRtwAnAsdFS33FBFgsOhSmVNM5e01In2y/2eiUlriS6dsd2a/Qs7tclbKMK+hoH6y5U1bheslnA+ZKWOh/SfZv0ZRocptS3T9jFgkPhSfUXq9f9Ez1hRPev91f++vWqo0bpbDqpgr7Pbrofb8V9UsnVVNmpKITvYBJLFhy8TIJ7WUT6ZLcxy5jkUk197XV+QKI2/kaNkmcJXbVKeeOSV6FHD+jXj+omTTmCF9iD9xnPhmU5Y8+fi6myU1UI38GkKVHUiBbc6KRq4Ddcuu4VwPL6jguy2JNDfovXfOTXL9ZETxjJksDtwbs6nn1UQZe3aa8XlTyuRayrd4GaQmivL4TvYBIjk2alfCgWHPJXoptPSUn8G7XXtu5k/RXxPovXtr4jU/QlDlMF/Yo/6GUb36stmq9OqTPbS79JriyRmageuVI/k30ZBQdAgFOAqyPv2wK96jsuyGLBIXjZumEk6vAsKUn8i7W+a6fzazf2mI7M1Ur66XpEf6Cl/oNbtHXzlRkHrPquG+Yv81yphwlWpsHhPuBeYGbk/ebAx/UdF2Sx4BCsbN5IkjUfxQsCXq6d7gibZ+75Uis2OVvX0FhXUqz/an6Vbs4PvjZ1pVJXP3/B26ikhinT4DA58veTmG2f1ndckMWCQ7CyeSNJdbinl2unfBP/7jvVyy9XbdZMtXFj1XPPVV261NfvnWpd/f5lb6OSGqZkwcHLaKW1ItII3Ox/EWkT6aA2DVQ2cxLFS1EdFS9Lqpdrex5hs3Klq0CHDvDPf8Lxx8Ps2XDvvfCHP3iqa6bptL3WNdXRW37VwzQgiaJGtADlwIvAF8BQYDZwfH3HBVnsySFY2f4FnahDON55vVy73l/Zv/2mevfdqlts4T488kjVzz5Lqa7ZatrJdH5Gtn7ZW59Dw0Smo5WALsB5wPnAn7wcE2Sx4BAsv24kXm6AXq8d9ya+bp3qI49siDC9e6tOnJhZpbPAS8AJok/ARiU1PGkFB6BVspLouDCKBYfg+XEj8XoDTPna1dWqzz6r2rWrO2GPHqpjx7rtecJ+2Rs/pBscFgDzI3/XA98B30deL0h0XBjFgkNh8OUGOG6caq9e7mSdO6s+/bQvQSGIX932y95kW0bNSsC/gT4x7w8F7qzvuCCLBYfCkbUb4Icfqh5wgPtPvG1b1f/8R3Xt2izWdAP7VW/yVbLg4GWZ0DpLgopIlSZYWi4Mtkyo+d2MGTBkCDz3HLRuDYMGwd/+Bs38W7wwkOVGjfFBWsuExvhORIaISJmIlIrIYFzzkjGBSbTgTHR7e1nI05sMoHqHbjBuHFx/PcyfDxdf7GtgAJ+XGzUmJF6CQz/cgj/PAc8DW0S2GROI6BKgixa5Rpvo/Idzz4UhZ33DJYsuZDbb0feXJ7in0cU8fft8uOYa2HTTGufwazUzmyNgClKi9qawC3AIbk7FPODKZPtan0NhizeKaTN+0ptkiK5gY11LIx3JmbotixOObvKzT8D6HEy+IsM+h+2Ay4AyoHFMUNnfp3hFZEb2HOAg3OS7j4F+qjoj3v7W51DYiorcLRegGb9yPsO5klsp4Qee4ESu4Qbmst3v+4tAdcwc/iD6BCor3WzlxYvdE8PQoXXXkjAm1yTrc2gcb2Mto3Ejlh7EDWMNQi9gnqrOBxCRJ4AjgbjBwRS2du3gy0VrOZ2HuIYb2IaveJVDuLroZiZVd4+7f6wg+gTKyy0YmMLipc9hnarep6ofqeqkaPG5XtsAS2LefxHZ9jsRGSgiVSJStWzZMp+rY0JTXU3FYaOYKV25n3NYSBn7MIHjil+l19ndPeU6sj4BY1LnJTi8JCLnishWItIqWnyul8TZVqP9S1VHqmpPVe3Zpk0bn6tjAqcKr7wCu+zCXiNOpqRtMae3eYm9eZfFpfswciSMGOFtaVA/EuYZU+i8NCudFvl7ecw2BTpkvzq/+wK3qFDUtsBXPl7P5JL//Q+uugree89lTK2sZPOTTuKhoiIeqrWrl+ac6OfWJ2CMd/U+Oahq+zjFz8AArgO6k4i0F5GNgJNwmWFNwPwcAlrHlCnQpw/ss4+bo3DffTBrFpx8sqtABsrLXedzdbX7a4HBmOTq/X+ciBRHJsGNjLzvJCJ9/ayUqq7DZYAdC8wEnlLV6X5e09SVaH5B1gPE3LnQrx907w4ffAC33Qbz5sE550CTJlm+mDHGCy9DWZ8EJgGnquoOItIcmKiqOwdRQS9sKKs/fB8C+uWXcMMN8J//QNOmbjbzZZdBy5ZZOLkxpj6ZDmXtqKonikg/AFX9VUTidRibAuPbENDvv4dbb4Xhw2H9ejfVefBg2HLLDE9sjMkWLw25ayJPC9FlQjsCq32tlckJ6Q4BTdhPsWIF3Hij62S+80448USYMwfuvtsCgzE5xktwuBZ4DWgrIpXAm8AVvtbK5IR0hoDG66c4/6zVVPUfBh07upxH++8Pn30GjzzioocxJud4Ga30BnAMMAAYBfRU1fH+Vst45edoovJyb/MIYg0e7Ba+B2jEOgbwMFN+3Y6eFX+Hbt1ch/Nzz8H222evosaYrPPS5wCwL7AXrmmpCS5DqwlZ9Fd69GYcHU0E2RuqmWpaCNcfoRzDs9zEEP7ELD6mJ2fyH95488DsVMoY4zsvQ1lHAOcAnwHTgLNF5F6/K2bqF/srPWrVKrc9E5k8jfRrM46P6MUzHIciHMMz9OIj5pZaYDAmn3jpc9gX+IuqPqyqDwN9gP18rZXxxI/RRGnPbfjwQzjgACq/PYgt5VsG8DDd+IznOAYRYdGiACbRGWOyxktwmA3Ejk9pC0z1pzomkXi/5v1IKJfy08j06XD00bDbbq6Tedgw3ntoDuNLB1BNI0Q2pNv2bRKdMSbrvASHEmCmiIwXkfG4tNltRORFEbGUFgFI9Gu+T5/sJ5Tz/DSyYAGcdprrZH7rLTeZ7fPP4cIL6TegKQsXug7s2nMss9HsZYzxn5cO6Wt8r4VJKtGv+TFj3OihbCaUa9cu/qzo359Gvv4abrrJXbhRI7j0UrjySigpqXOMra1sTP6qN30GgIiUAp1UdVxkQlxjVV3he+08KvT0GbErocWqveJZNtQeAQXuaeThu37ihIW3w7BhsHo1nHGGm7OwzTYJzxXECmzGmPQlS5/hZbTSWcDTwP2RTdsCz2eveqY+QS5WU3tuQ+e2q3i3762c8I/2cMstcMQRMHMm3H9/0sAAySfRBZrt1RiTMi99DucBewLLAVR1LrCFn5UyNQW9WE15OSycu5bqe+9j1ro/0v2pq2CPPeCTT2DUKOjUyfN54k2ig4CyvRpj0ualz2G1qq6J5toTkcbUWpXN+CvQxWqqq10AuOYat6bCXnvBk0/C3nundbp4k+jKyhKPiLJ1FozJDV6eHCaIyCCguYgcBIwGXvK3WqY2PxarqdG0U6qMv/Ql2HlnOOUU2HRTt0znO++kHRgSsY5qY3Kfl+BwJbAMN0P6bGAMMMTPShn/xQ6P3VsnULl4L/b71xEs//ZX9+QwebIbK+sxO3sqfQhB9qEYY9LjJfFeNa4D+lxVPU5VH1AvQ5xMTorexE85BTqvmsyrHMIE9qOMhQzkfnZpOgNOOimlZTlTnVUddB+KMSZ1Ce8A4qHWmmUAABB5SURBVFwnIt8Bs4DZIrJMRGzeg0dhjsiJd+3oTbzpotk8yQlMpge78jGXczt/ZB4PMJD5S1JfljPVWdXpZHs1xgRMVeMW4GLgDaB9zLYOuHWdL050XBilR48emmsqKlSLi1Xdb2lXiovd9ooK1dJSVRH3t6IimGt3a7lYH+AMXUsjXcHGegNDdDN+qrFfaWnq1xOpea1oEcnu9zLGZBdQpYliQMIP4BOgdZztbYBPEh0XRsnF4FBaGv+GWVKSOGhkKhp0al+zNd/qnVysv9JUf2Mj/T8u1DZ8U2e/dOuR6LumE2iMMcFJFhySNSw3UdXv4jxpLMOt6WCSSDTy5vvv/UuzHW33j9qEFVzD9cynAxcxjFH0Yzvm8HeGsazWVJVMmnasD8GYwpMsOKxJ8zND6iNvFi/OrI8itt2/Kb/xd+5iPh24nusYy1/YgWlcXvIw3xWX1jiuuBgqKjIbHmt9CMYUoESPFMB63Kzo2mUFsDbRcWGUXGxWStTuX1LiT3OTiGoj1urpPKiLaKsK+joHak8+CrS/wxiTP0inzyGfSi4GB9X4N+J4QSNRh26idvs6531svf6t9VM6k86qoB/QS3vzZo1zWBAwxtRmwSHHxHYcJwsM8Ub81Awu1Xowr+lk2UUVdLp01SN5TqE6qx3dtettTx3GFIZkwcH7TKcCFNY8hGgqjHiL4dRWVFSzftG+hd2YyNv0ZiyHsLl+z6UljzDl0alMKT0KEcl6u3/ay4caY/KSp/Uccl066zkkWrcgyI7UROs0JFJcDB1WfcZQBnMEL/ENW3ATQxjJQNZK06yv7RDL1mYwpvBktJ5DoUp5rWQfJBvR1KhRzfftmc+/V/XnU3ZiH95hMDfRkc8ZzgWsoanveYksWZ4xDUuDDQ65cLNLND+gomLDCm9/YCnDOY9ZdOFYnuEOLmeH5vO5mcH8wia/H+P3nAJLlmdMw9Jgg0Mu3OySzQ/YYZsfuZmr+JyODGQkD3Imf2Qe95Xexm0PtAp8ToFNdDOmgUnUU51PJZ3RSslyH4Vq5UrVm2/W34pb6npEKzhZOzAvo/pla5SRjVYyprCQT0NZgeuAL4EpkdKnvmPSHcqaUze71atVhw9X3XJL9z9L37768s2fZly/nA2CxpjQ5WNwuCyVY8Ke5+AlyCTcZ9061cceU23f3v3Psc8+qu++m7W6WVI8Y0wiyYJDg+1zyBYv4//j7nOWMuGSF2CnneDUU6FFCxgzBsaPhz33zFr9cqHjPSrM9S2MManJ1eBwvohMFZGHRGTzsCuTjJchsbX32Y+3GffrHux711Gwdi08+SRMmgSHHup5WU6vcqHjHWwSnTH5JpTgICLjRGRanHIkcB/QEdgZWArcmeAcA0WkSkSqli1bFmDta/Lyyzz6ugdVjOVg3mZ/tuULzuIBmD4dTjghpWU5U5Ero4xyYV6JMSYFidqbcqEAZcC0+vYLs8/BS5v+/lvP1NEcqwq6jBK9hH9qM1YF1u6fCx3vtlqcMbmHfOpzEJGtYt4eDUwLug6ptI0n/WW+eDGccQZvLN2evzCW67iWDsznX1xKUXHzwH69R3M5VVdntm5DJnKlecsY403OBQfgdhH5TESmAr1xa1kHJtW28XgT2R795zLKqy6GTp2gooKiiy5k7Ij5PFJ6HStlswa5GE6uNG8ZYzxK9EiRTyWbzUoZDf38+WfVa65R3WQT1aIi1dNPV120KGt181MQTU+50LxljNmAJM1KDTYrayKJMqWKUCPraTR99uLF0GnbX/nv3iPoMfYWt0j0ccfBjTdCly5ZqZPfciFDrTEmeJaVNQVe2sajN9MvFq3jdH2QN5d0osd/L+OrrXtAVRWMHp03gQFsJJExpi4LDrV4aRsfMqiaw1Y9xXS250HOYglt2Y+32WP5WOjRI9gKZ0EuTZQzxuQGCw61JMuUiiq8+irPLO7JU5zIGjbiCF5gD95nAvvl7c3URhIZY2qz4BBH3KGf778P++0HffrQuvFP9OcxdmYKL3EE4GY15+vN1EYSGWNqs+BQn6lT4fDDXb6jOXPg3nt578FZPFvcn2o2LNeWzzfTpE9LxpgGqXHYFchZn38O11wDo0a5pHg33wwXXggbb0w/oLrxhtFK7dq5wJDPN9Py8vyuvzEmuyw41PbVV24Y6oMPQpMm8I9/wBVXwOY18//ZzdQYU8gsOET98APcdhvcc4/LlDpwIAwZAlttVf+xxhhTYCw4rFwJw4bBHXfA8uXuceD666FDh7BrZowxoWnYweHDD+GII+Dbb93fm26Cbt3CrpUxxoSuYQeHLl1g991dv8Luu4ddG2OMyRkNOzi0aAHPPx92LYwxJufYPAdjjDF1WHAwxhhThwUHY4wxdVhwMMYYU4cFB2OMMXVYcDDGGFOHBQdjjDF1WHAwxhhThwUHY4wxdVhwMMYYU4cFB2OMMXVYcKhHZSWUlUFREbRu7UpRkdtWWRl27Ywxxh8NO/FePSor3Zo/q1a5999/v+GzRYvcZ2ArwhljCo89OSQxePCGwBDPqlVuH2OMKTQWHJJYvDj1fWKboazpyRiTryw4RMS7qbdrV/9xsftEm6EWLQLVDU1PFiCMMfnGggOJb+p9+kBxceLjioth6NAN7+M1Q1nTkzEmH1lwIPFNfcwYGDkSSktBBEpKXBFx20aOrNkZnagZykvzlDHG5BIbrUTym3p5uffRSO3auaeOeNuNMSafhPLkICLHi8h0EakWkZ61PrtKROaJyGwR+UsQ9Ul08071pj50aN1mqNpNT8YYkw/CalaaBhwDvBO7UUS6AicB2wOHACNEpJHflcnWTb28vGYzVLymJ2OMyQehNCup6kwAEan90ZHAE6q6GlggIvOAXsBEP+sTvXkPHuyaktq1c4EhnZt6Ks1QxhiTq3Ktz2Eb4IOY919EttUhIgOBgQDtstCobzd1Y4zZwLfgICLjgD/E+Wiwqr6Q6LA42zTejqo6EhgJ0LNnz7j7GGOMSY9vwUFVD0zjsC+AtjHvtwW+yk6NjDHGeJVr8xxeBE4SkaYi0h7oBHwUcp2MMabBCWso69Ei8gWwO/CKiIwFUNXpwFPADOA14DxVXR9GHY0xpiELa7TSc8BzCT4bCtjMAGOMCZGo5n9frogsA+LMTc55rYHvwq5ECBri926I3xka5vfOp+9cqqpt4n1QEMEhX4lIlar2rH/PwtIQv3dD/M7QML93oXznXOuQNsYYkwMsOBhjjKnDgkO4RoZdgZA0xO/dEL8zNMzvXRDf2focjDHG1GFPDsYYY+qw4GCMMaYOCw45QkQuExEVkdZh1yUIInKHiMwSkaki8pyItAy7Tn4RkUMii1fNE5Erw66P30SkrYi8LSIzI4t6XRR2nYIiIo1E5BMReTnsumTKgkMOEJG2wEFAQ1pt+g1gB1XdEZgDXBVyfXwRWazqXuBQoCvQL7KoVSFbB1yqqn8CdgPOawDfOeoiYGbYlcgGCw654S7gChKkJy9Eqvq6qq6LvP0Al4G3EPUC5qnqfFVdAzyBW9SqYKnqUlWdHHm9AnezjLsuSyERkW2Bw4AHw65LNlhwCJmIHAF8qaqfhl2XEJ0OvBp2JXyyDbAk5n3CBawKkYiUAd2BD8OtSSD+D/cjrzrsimRDrq0EV5CSLXwEDAIODrZGwfCy4JOIDMY1Q1QGWbcAeV7AqtCIyCbAM8DfVXV52PXxk4j0Bb5V1Ukisl/Y9ckGCw4BSLTwkYh0A9oDn0bW094WmCwivVT16wCr6Iv6FnwSkdOAvsABWrgTbhrkAlYi0gQXGCpV9dmw6xOAPYEjRKQP0AzYTEQqVPWUkOuVNpsEl0NEZCHQU1XzJaNj2kTkEOBfwL6quizs+vhFRBrjOtwPAL4EPgZOjqxdUpDE/dJ5FPhBVf8edn2CFnlyuExV+4Zdl0xYn4MJy3BgU+ANEZkiIv8Ou0J+iHS6nw+MxXXMPlXIgSFiT6A/sH/kf9spkV/UJo/Yk4Mxxpg67MnBGGNMHRYcjDHG1GHBwRhjTB0WHIwxxtRhwcEYY0wdFhxM6ERkZYr775etrJcicp2IXJalcz0iIseleezO8YZ7isjGIvK9iLSotf15ETkhhfNvLSJP17NPwn9XEVnYUDIGG8eCgzG5YWegTnBQ1V+A14GjotsigWIvwFOAFJHGqvqVqqYVuEzDZMHB5IzIL9fxIvJ0ZK2Hyshs2+iaCLNE5F3gmJhjNhaRh0Tk40ge/SMj2weIyAsi8lpkLYVrY44ZHNk2Dugcs71jZP9JIvI/EekS2f6IiNwtIu+LyPzo04E4w0Vkhoi8AmwRc64eIjIhcq6xIrJVZPt4EblNRD4SkTkisreIbATcAJwYmTB2Yq1/mlHASTHvjwZeU9VVItIrUq9PIn87x3z/0SLyEvC6iJSJyLTIZ2WR7zc5UvaIOfdm4tbXmCEi/xaROvcIETklUv8pInK/uLTkptCoqhUroRZgZeTvfsDPuPxDRcBE3C/kZrjMpp1wieyeAl6OHHMzcErkdUtcqoqNgQHAUqAEaA5MA3oCPYDPgGJgM2AeLtUBwJtAp8jrPwNvRV4/AoyO1KkrLgU3uCD1BtAI2Br4CTgOaAK8D7SJ7Hci8FDk9XjgzsjrPsC4yOsBwPAE/z4bAd8CJZH3rwGHRV5vBjSOvD4QeCbmfF8ArSLvy4BpkdfFQLPI605AVcy//29Ah8h3egM4LvLZQqA18CfgJaBJZPsI4NSw/xuykv1iifdMrvlIVb8AEJEpuJvaSmCBqs6NbK8ABkb2PxiX8Czab9AMaBd5/Yaqfh855llcoAF4TlVXRba/GPm7CbAHMDrysALQNKZez6tqNTBDRLaMbNsHGKWq64GvROStyPbOwA641CDgbrRLY84VTUQ3KfL9klLVNZF6Hiciz+CaoF6PfNwCeFREOuGyvTaJOfQNVf0hzimbAMNFZGdgPbBdzGcfqep8ABEZhfs3i+2rOAAXYD+OfLfmuMBlCowFB5NrVse8Xs+G/0YT5XkR4FhVnV1jo8if4xyjkf3jnasI+ElVd/ZQr9g03PHOJcB0Vd29nnPFfr/6jAKGRM79gqqujWy/EXhbVY8Wt3bC+JhjfklwrouBb4CdcN/7t5jP4v2bxRLgUVUtyJX7zAbW52DywSygvYh0jLzvF/PZWOCCmL6J7jGfHSQirUSkOa5D9z3gHeBoEWkuIpsChwOoW29ggYgcHzmPiMhO9dTrHeAkcesGbwX0jmyfDbQRkd0j52oiItvXc64VuESEibyNawI6Dxcoolrgsr2Ca0ryogWwNPIk1B/3ZBPVS0TaR/oaTgTerXXsm7gnmC0AIv++pR6va/KIBQeT81T1N1wz0iuRDulFMR/fiGsmmRrpcL0x5rN3gceBKbi2+Cp1y1c+Gd0G/C9m/3LgDBH5FJhO/ct5PgfMxfVh3AdMiNR3Da7v4bbIuabgmqySeRvomqBDmsiN/BlcH8o7MR/dDtwiIu9R8yafzAjgNBH5ANekFPuEMRG4FddHsyDyHWPrMQP3BPO6iEzF9Uts5fG6Jo9YVlZTkERkAG5tjPPDrosx+cieHIwxxtRhTw7GGGPqsCcHY4wxdVhwMMYYU4cFB2OMMXVYcDDGGFOHBQdjjDF1/D+6iUoOZOUTpAAAAABJRU5ErkJggg==\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", | |
"\n", | |
"y_noise = 2 * np.random.normal(size=x.size)\n", | |
"#print(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": 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", | |
"y = 1*(x**3) + 5*(x**2) + 6*x + 4\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": 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.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": 7, | |
"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= 2* np.exp(X) + 5\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": 8, | |
"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": "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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('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": 9, | |
"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-6/(1+np.power(4, 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": 10, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"2019-09-08 06:14:39 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", | |
" <td>0</td>\n", | |
" <td>1960</td>\n", | |
" <td>5.918412e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>1</td>\n", | |
" <td>1961</td>\n", | |
" <td>4.955705e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>2</td>\n", | |
" <td>1962</td>\n", | |
" <td>4.668518e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>3</td>\n", | |
" <td>1963</td>\n", | |
" <td>5.009730e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>4</td>\n", | |
" <td>1964</td>\n", | |
" <td>5.906225e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>5</td>\n", | |
" <td>1965</td>\n", | |
" <td>6.970915e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>6</td>\n", | |
" <td>1966</td>\n", | |
" <td>7.587943e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>7</td>\n", | |
" <td>1967</td>\n", | |
" <td>7.205703e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>8</td>\n", | |
" <td>1968</td>\n", | |
" <td>6.999350e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>9</td>\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": 10, | |
"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": 30, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"[1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973\n", | |
" 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987\n", | |
" 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001\n", | |
" 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014]\n" | |
] | |
}, | |
{ | |
"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", | |
"print(x_data)\n", | |
"plt.plot(x_data, y_data, 'ro')\n", | |
"plt.ylabel('GDP')\n", | |
"plt.xlabel('Year')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" Year\n", | |
"0 1960\n", | |
"1 1961\n", | |
"2 1962\n", | |
"3 1963\n", | |
"4 1964\n", | |
"5 1965\n", | |
"6 1966\n", | |
"7 1967\n", | |
"8 1968\n", | |
"9 1969\n", | |
"10 1970\n", | |
"11 1971\n", | |
"12 1972\n", | |
"13 1973\n", | |
"14 1974\n", | |
"15 1975\n", | |
"16 1976\n", | |
"17 1977\n", | |
"18 1978\n", | |
"19 1979\n", | |
"20 1980\n", | |
"21 1981\n", | |
"22 1982\n", | |
"23 1983\n", | |
"24 1984\n", | |
"25 1985\n", | |
"26 1986\n", | |
"27 1987\n", | |
"28 1988\n", | |
"29 1989\n", | |
"30 1990\n", | |
"31 1991\n", | |
"32 1992\n", | |
"33 1993\n", | |
"34 1994\n", | |
"35 1995\n", | |
"36 1996\n", | |
"37 1997\n", | |
"38 1998\n", | |
"39 1999\n", | |
"40 2000\n", | |
"41 2001\n", | |
"42 2002\n", | |
"43 2003\n", | |
"44 2004\n", | |
"45 2005\n", | |
"46 2006\n", | |
"47 2007\n", | |
"48 2008\n", | |
"49 2009\n", | |
"50 2010\n", | |
"51 2011\n", | |
"52 2012\n", | |
"53 2013\n", | |
"54 2014\n" | |
] | |
}, | |
{ | |
"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_data1, y_data1 = (df[[\"Year\"]], df[[\"Value\"]])\n", | |
"print(x_data1)\n", | |
"plt.plot(x_data1, y_data1, '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": 13, | |
"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": 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:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" Year\n", | |
"0 0.047426\n", | |
"1 0.052154\n", | |
"2 0.057324\n", | |
"3 0.062973\n", | |
"4 0.069138\n", | |
"5 0.075858\n", | |
"6 0.083173\n", | |
"7 0.091123\n", | |
"8 0.099750\n", | |
"9 0.109097\n", | |
"10 0.119203\n", | |
"11 0.130108\n", | |
"12 0.141851\n", | |
"13 0.154465\n", | |
"14 0.167982\n", | |
"15 0.182426\n", | |
"16 0.197816\n", | |
"17 0.214165\n", | |
"18 0.231475\n", | |
"19 0.249740\n", | |
"20 0.268941\n", | |
"21 0.289050\n", | |
"22 0.310026\n", | |
"23 0.331812\n", | |
"24 0.354344\n", | |
"25 0.377541\n", | |
"26 0.401312\n", | |
"27 0.425557\n", | |
"28 0.450166\n", | |
"29 0.475021\n", | |
"30 0.500000\n", | |
"31 0.524979\n", | |
"32 0.549834\n", | |
"33 0.574443\n", | |
"34 0.598688\n", | |
"35 0.622459\n", | |
"36 0.645656\n", | |
"37 0.668188\n", | |
"38 0.689974\n", | |
"39 0.710950\n", | |
"40 0.731059\n", | |
"41 0.750260\n", | |
"42 0.768525\n", | |
"43 0.785835\n", | |
"44 0.802184\n", | |
"45 0.817574\n", | |
"46 0.832018\n", | |
"47 0.845535\n", | |
"48 0.858149\n", | |
"49 0.869892\n", | |
"50 0.880797\n", | |
"51 0.890903\n", | |
"52 0.900250\n", | |
"53 0.908877\n", | |
"54 0.916827\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"[<matplotlib.lines.Line2D at 0x7f562bda0400>]" | |
] | |
}, | |
"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", | |
"print(Y_pred)\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": 33, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"2014\n" | |
] | |
} | |
], | |
"source": [ | |
"# Lets normalize our data\n", | |
"from __future__ import division\n", | |
"xdata =x_data/max(x_data)\n", | |
"print(max(x_data))\n", | |
"ydata =y_data*1.0/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": 34, | |
"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." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfEAAAE9CAYAAAAbGFuyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXxU9b3/8ddnkpAwEnYQCCQBRQVFUQHrWltt3VoQe1uxua21S+pt7a3tba/28uvV3pbbRduqt7U2VbqZijvFSrVq3Vo3QEAERNkSArKLBELIMt/fH2cymQzZkzMnM/N+Ph7zmDnf852TzxyGfPL9nu/5fs05h4iIiKSeUNABiIiISPcoiYuIiKQoJXEREZEUpSQuIiKSopTERUREUpSSuIiISIrKDjqArho+fLgrLi4OOgwREZGkWbZs2W7n3IjE8pRL4sXFxSxdujToMERERJLGzCpaK1d3uoiISIpSEhcREUlRSuIiIiIpKuWuibemvr6eqqoqamtrgw7FV3l5eYwdO5acnJygQxERkT4gLZJ4VVUV+fn5FBcXY2ZBh+ML5xx79uyhqqqK8ePHBx2OiIj0AWnRnV5bW8uwYcPSNoEDmBnDhg1L+94GERHpvLRI4kBaJ/AmmfAZRUSk83xL4mY238x2mtmbbew3M7vDzNab2RtmdppfsQTh5ptv5tZbb21z/8KFC1mzZk0SIxIREV+Vl0NxMYRC3nN5ue8/0s+W+O+Ai9vZfwkwMfooBX7lYyx9jpK4iEgaKS+H0lKoqADnvOfSUt8TuW9J3Dn3ArC3nSqzgD84zyvAYDMb7Vc8Lfj019K8efM4/vjjufDCC1m3bh0Av/nNb5g+fTqnnHIKn/jEJ6ipqeGll15i0aJFfPvb32bq1Kls2LCh1XoiIpIi5s6FxN/bNTVeuY+CvCZeAGyJ266Klh3BzErNbKmZLd21a1fPfqpPfy0tW7aMBQsWsHz5ch555BGWLFkCwBVXXMGSJUtYuXIlkyZN4p577uGss85i5syZ3HLLLaxYsYJjjjmm1XoiIpIiKiu7Vt5LgkzirY3Scq1VdM6VOeemOeemjRhxxPzvXePTX0svvvgis2fPJhwOM3DgQGbOnAnAm2++ybnnnsuUKVMoLy9n9erVrb6/s/VERKQPKizsWnkvCTKJVwHj4rbHAtt8/6k+/rXU2ujxz33uc/ziF79g1apV3HTTTW3eItbZeiIi0gfNmwfhcMuycNgr91GQSXwR8NnoKPUPAO875971/af69NfSeeedx6OPPsqhQ4eorq7mscceA6C6uprRo0dTX19PeVyXfX5+PtXV1bHttuqJiEgKKCmBsjIoKgIz77mszCv3kW8ztpnZfcD5wHAzqwJuAnIAnHN3AYuBS4H1QA1wjV+xtDBvnncNPL5LvRf+WjrttNO48sormTp1KkVFRZx77rkAfP/73+eMM86gqKiIKVOmxBL3nDlz+NKXvsQdd9zBQw891GY9ERFJESUlviftROZcq5eh+6xp06a5xPXE165dy6RJkzp/kPJy7xp4ZaXXAp83L+knvru6/FlFRCTlmdky59y0xPK0mDu9ywL4a0lERKS3pc20qyIiIplGSVxERCRFKYmLiIikKCVxERGRFKUkLiIikqKUxHvJHXfcwaRJkxgyZAg/+tGPAK1UJiIi/srMW8x8cOedd/LXv/6V8ePHx8oWLlzIxz72MSZPnhxgZCIikq7UEu8F1157LRs3bmTmzJn8/Oc/57rrrmt1uVEREZHepCTeC+666y7GjBnDs88+y5AhQwBaXW5URESkN6Vdd3rxjY/7duzNP7rMt2OLiIh0lVriIiIiKUpJ3EeJy42KiEiKKy+H4mIIhbzngJeOTrvu9L7U5Z243Kiui4uIpLDy8pZLWVdUeNsQ2KJambkUaQrLpM8qItKnFBd7iTtRURFs3uzrj25rKVJ1p4uIiHRGZWXXypNASVxERKQzCgu7Vp4ESuIiIiKdMW8ehMMty8JhrzwgaZPEU+3afndkwmcUEemzSkqgrMy7Bm7mPZeVBTaoDdJkdHpeXh579uxh2LBhmFnQ4fjCOceePXvIy8sLOhQRkcxVUhJo0k6UFkl87NixVFVVsWvXrqBD8VVeXh5jx44NOgwREekj0iKJ5+TktFg9TEREJBOkzTVxERGRTKMkLiIi0kveO1jHewfrkvbzlMRFRER6gXOO7zyyiotue4Fn1+1Mys9UEhcREekFj7y+lSdWb2dn9WGu+e0S3t7h/wJYSuIiIiI9tHXfIW5etDq2XXJGIccdne/7z1USFxER6YFIxPGtB1ZSfbgBgOJhYeZelpyFqpTERUREemD+Pzfx8sY9AIQMfnblVML9knMHt5K4iIhIN729o5qfPLkutv2V84/ltMIhSfv5SuIiIiLdUNcQ4foFK6hriABw4piB/PsFE5Mag5K4iIhIN9z+zNuseXc/AP2yQ9x25VT6ZSc3rSqJi4iIdNGyir386rkNse3/vOh4JiZhNHoiJXEREZEuOHi4gW8+sJJIdHXoMycM4/NnB7N+h5K4iIhIF/zg8bVU7KkBID83m1s/dQqhUDDLYCuJi4iIdNKzb+3kvtcqY9vfm3UiBYP7BxaPkriIiEgn1DVEuPmx5lnZLjlpFLNPLQgwIiVxERGRlsrLobgYQiHvubzcK361ItaNPjAvm3mzp2AWTDd6k+RMKSMiIpIKysuhtBRqvGRNRQWUlvJ+o3HH5uGxal/78ESGHtUvoCCbqSUuIiLSZO7c5gTepKaGXz30Ku/V1AMwdkh/PntWUQDBHcnXJG5mF5vZOjNbb2Y3trJ/kJk9ZmYrzWy1mV3jZzwiIiLtqqw8omhr/gjmH3d+bPvbFx1PbnZWEoNqm29J3MyygF8ClwCTgavMbHJCta8Ca5xzpwDnAz81s+D7J0REJDMVFh5R9NPzPkNdtpeaTh47iI+fPCbZUbXJz5b4DGC9c26jc64OWADMSqjjgHzzRgYMAPYCDT7GJCIi0rZ58yAcjm2+OXICj554fmz7vy6dFNg94a3xM4kXAFvitquiZfF+AUwCtgGrgK875yI+xiQiItK2khIoK4OiIpwZP7zkKzjzUuWFk0bygQnDAg6wJT+TeGt/qriE7YuAFcAYYCrwCzMbeMSBzErNbKmZLd21a1fvRyoiItKkpAQ2b+b5tdv556gTAMgKGTdeckLAgR3JzyReBYyL2x6L1+KOdw3wiPOsBzYBR5wl51yZc26ac27aiBEjfAtYREQEoDHi+OHit2LbV04fx7Ejk7/ASUf8TOJLgIlmNj46WG0OsCihTiVwAYCZHQ0cD2z0MSYREZEOPbysinU7qgEI98vi+guTu054Z/k22YtzrsHMrgOeBLKA+c651WZ2bXT/XcD3gd+Z2Sq87vcbnHO7/YpJRESkIzV1Dfz0qXWx7S+fdwwj8/MCjKhtvs7Y5pxbDCxOKLsr7vU24KN+xiAiItIV97y4iR37DwMwIj+XL54bzDKjnaEZ20RERKL2Hqzjruc3xLa/+ZHjOCq3785QriQuIiIS9YeXN3OwrhGAiSMH8MnTxwYbUAeUxEVERIBDdY384eWK2PZ1Hz6W7Ky+nSb7dnQiIiJJ8vDrVew9WAdAweD+XDZldMARdUxJXEREMl5jxHH3i813OH/+nPF9vhUOSuIiIiI8tWYHm/d4S5AOzMvmyunjOnhH36AkLiIiGa/sheYR6SUfKGJAHx6RHk9JXEREMtrSzXt5vXIfAP2yQlxzVnGwAXWBkriIiGS0shear4VffuoYRg7sm7OztUZJXEREMtbGXQd4au2O2PaXzp0QYDRdpyQuIiIZ6+5/bMJFF8n+8AkjmXh031uprD1K4iIiklnKy6G4mN0DhvDQS80D2krPS61WOPi8AIqIiEifUl4OpaVQU8MfzimhLisHgJP7N3DG+KEBB9d1aomLiEjmmDsXamo4lJ3LH067LFZc+vTvMbMAA+seJXEREckclZUAPDjlQvb1HwjAuH3bufilRUFG1W1K4iIikjkKC2m0EHdPvzxW9IUlC8ke17dXK2uLkriIiGSOefN48qQPUjnEW9xk0KFqPrX+nzBvXsCBdY8GtomISOYoKeG3GwaAN006n9n4D8J3/h+UlAQbVzcpiYuISMZYv7OaJTVe6ssOGZ/9062QnzoztCVSd7qIiGSMBa9tib2+cNLRjEzhBA5K4iIikiEONzTy8OtVse05M1JjudH2KImLiEhG+NvqHbxXUw9AweD+nDtxRMAR9ZySuIiIZIQFSypjrz81bRxZodSb3CWRkriIiKS9ij0H+ef6PQCEDD41PTXvC0+kJC4iImlvwZLmAW3nHz+S0YP6BxhN71ESFxGRtFbfGOHBpXED2qan/oC2JkriIiKS1p5Zu5PdBw4DMDI/lw+fMDLgiHqPkriIiKS1+AFtn5w2luys9El96fNJREREEmzdd4jn394V275yWmGA0fQ+JXEREUlbDyzZgnPe63OOHU7hsHCwAfUyJXEREUlLjRHHg0ubR6WnwwxtiZTERUQkLb3w9i62vV8LwNCj+vGRyUcHHFHvUxIXEZG0dN9rzQPaPnFaAbnZWQFG4w8lcRERSTs799fyzFs7Y9tXTk+vAW1NlMRFRCTtPLisisaIN6JtRvFQjh05IOCI/KEkLiIiaSUScdy/JL0HtDVREhcRkbTy6qa9VO6tAWBgXjaXThkdcET+URIXEZG08ujy5nnSZ00tIC8n/Qa0NVESFxGRtFFb38hfV22Pbc8+rSDAaPynJC4iImnjmbU7qT7cAEDxsDCnjhsccET+8jWJm9nFZrbOzNab2Y1t1DnfzFaY2Woze97PeEREJL3Fd6VffmoBZhZgNP7L9uvAZpYF/BL4CFAFLDGzRc65NXF1BgN3Ahc75yrNLH3WhxMRkaTae7CO59Y1L3Zy+dT07koHf1viM4D1zrmNzrk6YAEwK6HOp4FHnHOVAM65nYiIiHTD429soyF6b/iphYMpHn5UwBH5z88kXgBsiduuipbFOw4YYmbPmdkyM/usj/GIiEgae2T51tjrK05N/1Y4+NidDrR2IcK18vNPBy4A+gMvm9krzrm3WxzIrBQoBSgsTM+p80REpPs27z7I8sp9AGSHjMtOHhNwRMnhZ0u8CoifJmcssK2VOk845w4653YDLwCnJB7IOVfmnJvmnJs2YsQI3wIWEZHUtHBFcyv8/ONHMHThg1BcDKGQ91xeHlhsfvIziS8BJprZeDPrB8wBFiXU+TNwrpllm1kYOANY62NMIiKSZpxzPBrXlT774CYoLYWKCnDOey4tTctE7lsSd841ANcBT+Il5gecc6vN7FozuzZaZy3wBPAG8Bpwt3PuTb9iEhGR9LN8yz4q9njTrObnZnPBT+dCTU3LSjU1MHduANH5y89r4jjnFgOLE8ruSti+BbjFzzhERCR9LYxrhV8yZRR5mza0XrGysvXyFKYZ20REJGXVNUR4bGXzcKvZp46FtgZAp+HAaCVxERFJWS+8vYv3auoBGD0ojzPGD4V58yAcblkxHPbK04ySuIiIpKxH40alz5paQChkUFICZWVQVARm3nNZmVeeZny9Ji4iIuKX/bX1PLVmR2x7dvwELyUlaZm0E6klLiIiKemJVdupa4gAMHn0QI4flR9wRMmnJC4iIimpxb3hGTLNaiIlcRERSTnb9h3ilU17AAgZzJyaGdOsJlISFxGRlPPnFdtw0dU4zj52OEcPzAs2oIAoiYuISMr5c9yo9ExYN7wtSuIiIpJS1m2v5q3t1QDkZoe46KRRAUcUHCVxERFJKYtWNrfCL5x8NANyM/du6U4lcTMb7ncgIiIiHXHOsShumtWZp2TmgLYm7SZxM/u4me0CVplZlZmdlaS4REREjrB8yz627D0EQH5eNucfPyLgiILVUUt8HnCuc2408Angh/6HJCIi0rpFK5pb4ZecNIrc7KwAowleR0m8wTn3FoBz7lUg86bDERGRPqGhMcJf3ng3tj0rg0elN+loNMBIM/tmW9vOuZ/5E5aIiEhLr2zcy+4DhwEYkZ/LByYMCzii4HWUxH9Dy9Z34raIiEhSxN8b/rGTR5MVsgCj6RvaTeLOue8lKxAREZG21NY38sTq7bHtTB+V3qTDW8zM7ENm9rCZrY4+HjKz85MQm4iICADPrdtFdW0DAIVDw0wdNzjgiPqGjm4xuwyYD/wF+DRQAiwG5pvZpf6HJyIiAo8l3Btupq506Lgl/m3gcufcb51zK51zK5xz84HLgRv8D09ERDJddW09T6/dEdueNXUMlJdDcTGEQt5zeXlg8QWpo4Fto5xzKxMLnXNvmNnRPsUkIiIS89SaHRxuiABwwqh8Jj69CEpLoabGq1BR4W0DlJQEFGUwOmqJH+zmPhERkV7x57gJXmZNLYC5c5sTeJOaGq88w3TUEj/GzBa1Um7ABB/iERERidlz4DD/WL87tv3xU0ZDZWXrldsqT2MdJfFZrZRFl2Hn1l6ORUREpIXFq96lMeKlnWlFQxg7JAyFhV4XeqLCwiRHF7yOutMHAyc55553zj0P3AL8HvgdMNLn2EREJMO1WLFsavTe8HnzIBxuWTEc9sozTEdJ/D+B+O70fsA04HzgWp9iEhERYeu+QyzZ/B4AWSHj0imjvR0lJVBWBkVFYOY9l5Vl3KA26Lg7vZ9zbkvc9j+cc3uAPWZ2lI9xiYhIhou/N/zsY4czfEBu886SkoxM2ok6aokPid9wzl0Xt5nZi7iKiIiv4kela5rV1nWUxF81sy8lFprZl4HX/AlJREQy3fqd1ax9dz8A/bJDXHSipiZpTUfd6d8AFprZp4HXo2WnA7l4s7aJiIj0ukeXN69YdsEJI8nPywkwmr6ro1XMdgJnmdmHgROjxY875/7ue2QiIpKRIhHHwuXNXemXn1oQYDR9W4ermAE45/7unPu/6EMJXEREfLO04j227jsEwODDB/jQKYUZPT96ezqVxEVERJIlviv9sjUv0K+xvnl+dCXyFpTERUSkzzjc0MjjbzR3pc9e/WzzzgydH709SuIiItJnPPvWLvbXNgAwdt92Tt+6tmWFDJwfvT1K4iIi0mcsjOtKn73mOSyxQgbOj94eJXEREekT3q+p5+9v7Yxtz9r4SssKGTo/enuUxEVEpE9Y/Oa71DVGADh57CCO/fHNmh+9Ax1N9iIiIpIU8aPSL59aAOeco6TdAbXERUQkcFXv1fDapr2At2LZxzVXeqf4msTN7GIzW2dm683sxnbqTTezRjP7Fz/jERGRvil+sZNzjh3OiPzcdmpLE9+SuJllAb8ELgEmA1eZ2eQ26v0YeNKvWEREpO9yzvHI61Wx7dmaZrXT/GyJzwDWO+c2OufqgAXArFbqfQ14GNjZyj4REUlzq7ftZ8OugwCE+2XxUa1Y1ml+JvECYEvcdlW0LMbMCoDZwF0+xiEiIn1Y/IC2i08cRbifxlx3lp9J/Ih79AGXsH0bcINzrrHdA5mVmtlSM1u6a9euXgtQRESC1dAYYdFKrVjWXX7+uVMFjIvbHgtsS6gzDVhgZgDDgUvNrME5tzC+knOuDCgDmDZtWuIfAiIikqJe2rCHXdWHARiRn8tZxwwLOKLU4mcSXwJMNLPxwFZgDvDp+ArOufFNr83sd8BfEhO4iIikr/hpVmeeMobsLN353BW+JXHnXIOZXYc36jwLmO+cW21m10b36zq4iEgGq6lr4InV22PbGpXedb6OHnDOLQYWJ5S1mrydc5/zMxYREelbnlqzg5o6b0jUsSMHcOKYgQFHlHrUbyEiIoF4+PW4FctOLSA6Pkq6QElcRESSbuu+Q7z4TvPdRjM1zWq3KImLiEjSPbh0Cy56r9G5E4czbmg42IBSlJK4iIgkVWPE8cCS5rnA5kwvDDCa1KYkLiIiSfXiO7vY9n4tAEOP6seFk0cGHFHqUhIXEZGkWvBacyv8ilMLyM3OCjCa1KYkLiIiSbOr+jBPr90R256zYyUUF0Mo5D2XlwcWWyrSLPMiIpI0D79eRUPEG9E2LdzAsf/+Raip8XZWVEBpqfe6pCSgCFOLWuIiIpIUzjnujx/Q9vc/NSfwJjU1MHdukiNLXUriIiKSFK9t2sum3d664fm52Vz68qLWK1ZWJjGq1KYkLiIiSbEgrhU+c+oYwqOPbr1ioW456ywlcRER8d37NfUsXvVubPuqGYUwbx6EEyZ5CYe9cukUJXEREfHdwhVbOdwQAeDEMQM5qWCQN3itrAyKisDMey4r06C2LtDodBER8ZVzjvtea77OPWdGXHd5SYmSdg+oJS4iIr5atfV93tpeDUBeTohZU7XYSW9REhcREV/dFzdD22VTxjAwLyfAaNKLkriIiPjm4OEGFq1oXjd8zoxxAUaTfpTERUTEN4+/8S4H6xoBOGbEUUwrGhJwROlFSVxERHyzYEncgLbphZhZgNGkHyVxERHxxbrt1bxeuQ+AnCzjitMKAo4o/SiJi4iIL+75x8bY649OHsWwAbkBRpOelMRFRKTX7ayuZeHybbHta84uDi6YNKYkLiIive4PL1VQ1+jN0HZq4WBO14A2XyiJi4hIr6qpa+CPr1TEtkvPnaABbT5REhcRkV710LIq3j9UD0Dh0DAfPXFUwBGlLyVxERHpNY0Rx90vboptfyF3N1kTxkMoBMXFUF4eXHBpSAugiIhIr/nb6u1U7q0BYFBWhE/+95dh/3vezooKKC31XmvRk16hlriIiPSa37zYfFvZv77xN8JNCbxJTQ3MnZvkqNKXkriIiPSKZRV7Y5O79MsKcfVzf2q9YmVl6+XSZUriIiLSK37zQvO18FlTxzByWH7rFQsLWy+XLlMSFxGRHtu8+yBPrtke2/7SeRNg3jwIh1tWDIe9cukVSuIiItJj9/xjE855r88/fgTHHZ3vDV4rK4OiIjDznsvKNKitF2l0uoiI9Mh7B+t4cNmW2PaXzp3QvLOkREnbR2qJi4hIj9z7SgW19d4Uq5NHD+SsY4YFHFHmUBIXEZFuq61v5Pcvx02xep6mWE0mJXEREem2P6/Yyu4DhwEYPSiPy04eHXBEmUVJXEREuqW+McKvntsQ275m4Z3kHDNBU6smkQa2iYhIt9z3WiWb93hTrA6sPcCcFU9AXY2mVk0itcRFRKTLDhxu4Pan34ltf/XlBxhY5yV0Ta2aPEriIiLSZWXPb2DPwToACt7fydXLHmtZQVOrJoWvSdzMLjazdWa23sxubGV/iZm9EX28ZGan+BmPiIj03M79tfwmbrnRb754L3mN9S0raWrVpPAtiZtZFvBL4BJgMnCVmU1OqLYJ+KBz7mTg+0CZX/GIiEjv+PnT73CovhGASXmNXL751ZYVNLVq0vjZEp8BrHfObXTO1QELgFnxFZxzLznnmtapewUY62M8IiLSQ+t3VnP/kuau8hs/fSZZv/61plYNiJ+j0wuALXHbVcAZ7dT/AvBXH+MREZEe+vET64hE50g/+9hhnDdxOBynqVWD4mdLvLUpe1yrFc0+hJfEb2hjf6mZLTWzpbt27erFEEVEpEPl5VBczJJxJ/HUmh2x4u9cMkmzswXMzyReBYyL2x4LbEusZGYnA3cDs5xze1o7kHOuzDk3zTk3bcSIEb4EKyIirSgvh9JSXEUF/3v+NbHiWYPqOKlgUICBCfibxJcAE81svJn1A+YAi+IrmFkh8AjwGefc2z7GIiIi3TF3LtTU8MRxZ7G84AQA+jXU8617fxBwYAI+XhN3zjWY2XXAk0AWMN85t9rMro3uvwv4b2AYcGe0S6bBOTfNr5hERKSLKiupD2Xxkw9eHSv6zPLHGbd2eYBBSRNfp111zi0GFieU3RX3+ovAF/2MQUREeqCwkAVDT2TT0AIA8msPcN1L9+s+8D5Cc6eLiEibDvzPPG5f2rz9lVceZEioUfeB9xGadlVERNo0b8DJ7A4PBmD0/l1cs2ul7gPvQ5TERUQkdhsZoZD3XF7Os+t2ct9rcRO7lH6EvA3vKIH3IUriIiKZLnobGRUV4BxUVLDva9/ghj82T6d6yUmjmHnKmACDlNYoiYuIZLrobWTx/vucq9nZ4KWI4QP68YPLT9LELn2QkriISKZLWDb08ePPZtHk82Pb/zt7CsMG5CY5KOkMJXERkUwXd7vYzqMG8/8++pXY9idOG8tHTxwVRFTSCUriIiKZopXBa4B3u1g4jAO+c/G/817Ym051TE6Em2YmriAtfYnuExcRyQRNg9earn1XVHjbEBtt/uDdj/HMsTNib7nl6jMZmJeT7EilC9QSFxHJBK0MXqOmxisHqi6dzf+c17zAydVnFnH2scOTGaF0g5K4iEi6aKu7HI4YvBZfHok4vv3gGxw43ADA+OFHceMlk3wPV3pOSVxEJB20cq83paXNibytuc4LC/ntS5t5eaO3EnTI4KefOoX+/bKSFLj0hJK4iEg66KC7vGnwWgvhMM/c8GPmPb4mVnTtB4/htMIhPgcrvUVJXEQklbTVZd5OdzngDV4rK4OiIjCDoiJW3nYP120bRMR5VU4eO4ivXzjR708gvUhJXEQkVbTXZd5Od3lMSQls3gyRCBXLVvP57cM4VN8IwLih/bnn6unkZqsbPZUoiYuI9DVttbbb6zJvo7u8tSVD9xw4zNXzX2PPwToAhoRz+P01MxiRr1nZUo3uExcR6Uvau5+7vS7zppXF5s71tgsLvQSesOLYobpGvvD7pWze4x0/NzvE3VdPY8KIAX58GvGZWuIiIsnW3q1g7bW2O+oyj+suZ/PmIxJ4Y8TxtfuWs2LLPsC7NH77nFM5vWhob3wqCYCSuIhIMnV0K1h7re0udJkncs5x06I3eXrtjljZ92aeyMUnaV70VKYkLiLih+5c14b2W9utjDCnrOyIFndrfvX8Bu59pfkPhC9/cAKfPbO4yx9L+hZdExcR6W3dva4NXqs6/r3QsrVdUtKppN3EOcftz7zDbU+/EyubecoYbrjohE4fQ/outcRFRLrDz+va3WxtJzrc0Mg37l/RIoGfOWEYt3zyZEIh6/LxpO9RS1xEpKs6WhGsvdb2H//Yfku76RjdSNrx9h6s48t/XMqSze/Fys6dOJPJrxUAAA78SURBVJw7S07TveBpRC1xEZGuCui6dmet33mAy3/5zxYJ/NNnFDL/c9PJ19KiaUVJXESkLd2d4rSjUeQd3ArWEy+t380Vd/6Tyr3eHxlm8P8um8S8y08iJ0u/8tONutNFRFrTXpd5YaG3nSj+ujZ0OPFKb3tgyRb+69FVNEQnQ++fk8Vtc6Zy0Ym6jSxdmXMu6Bi6ZNq0aW7p0qVBhyEi6a64uPVEXVTU9gjyXu4W76zq2np+/MRbLW4hG5mfyz1XT2fK2EFJj0d6n5ktc85NSyxXS1xEpDW9MMVpMjy5ejs3/Xk12/fXxsomjR7I/M9NY/Sg/kmPR5JLF0hEJLO1dd27h1Oc+m37+7V8+Y9L+fIfl7VI4B+dfDQPXnumEniGUEtcRDJXe9e9O5p0JSCNEUf5qxX85Il1HDjcECsfPqAfN338RD528mjMdA94plASF5HM1d6tYps3N9cJuMu8yVvb9/OdR1axvHJfi/KrZozjxosnMSis28cyjbrTRST1tTd7Wnv7OrpVLOAu8yYrtuzj3+5dxiW3v9gigU8YcRT3l36AH15xshJ4hlJLXERSQ3l5663i9rrEof2Z1Tq6VSxAzjmeW7eLu57fwKub9rbY1y8rxFc+dAz/dv4xmn0tw6klLiLJ090Wc3vLd7bXJd7RzGo9WNrTL3UNER5eVsXFt73INb9bckQC/9DxI1j89XO4/sLjlMBFSVwkI7WXMDuzvzvHbS8Rd7TGdnvJuL0u8c50l/s8BWpnOOd4a/t+fvq3dXzwlmf5jwdXsm5HdWx/dsi44rQCnrj+XH57zQyOHZmf1Pik79JkLyLpqrPdz9ByopLO7O/OcdubPAXa3rd5s/dHQWu/q8za7hLvzHED5Jxj3Y5qHn/jXR5f9S4bdx08ok64XxZXzSjk8+eMp2CwbhnLZG1N9qIkLpKq2kqmTfvaSqhz57af2Lo7U1lHx20vEUPb+yKR7scEfWpmtcaIY+27+/nb6u38pY3EDd7tYtecPZ5/PaNIA9YEaDuJ45xLqcfpp5/uRHxx773OFRU5Z+Y933tv77y3o+N257333utcOOycl/q8RzjcvL+oqOW+pkfTsVrbZ+a9t739PTlue+9tb19nPm9Pzr+Pausb3JJNe9wv/v6Ou3r+q+6k/37CFd3wl1Yfk777V/fV8mVu8Rvb3KG6hqTFKKkBWOpayYmBJ+WuPpTEM0R3fyl3N2F2lCS6+97OJJ/uvLejpNfdROxc9xN1TxJxT85/H1Hf0OjW76x2i9/Y5m554i33ybtecsfNXdxm0k5M3DWHlbilbUri0vv8aGE27evOL/ueJMyeJKCetDC7+96etHr9Ok89TcR9PEk3qa1vcJt2HXDPrN3u7nx2vbt+wXJ3yW0vuIkdJOymx/QfPOW+9qfXlbilS5TEuyrZLUE/3xtEd25Pkm13E5tfLcyevLcnXdd+tXp78p3o6XH7uNr6BrdtX41bVbXP/X3tDveHlze7Hy5e675avsxd/st/uOk/eMoV39hxoo5/fPAnf3ffemCFu39Jpdu8+4CLRCJBf0xJQW0lcV8HtpnZxcDtQBZwt3PuRwn7Lbr/UqAG+Jxz7vX2jpmUgW3tDQqC7g+i6e5xe/Jev47bk8FR4M8AqPb2RSLdH+Hs5+jo7p6nziyF2d7At57w67i9wDlHbX2EmroGauoaOVjXQHVtA9W19ew/1MD+2nqqaxvYf6ie/bX1vHewnj0HD7P7QB27Dxymurah4x/SjqMH5nLc0fkcd3Q+pxYOZkbxUEYOzOulTyeZLOmj080sC3gb+AhQBSwBrnLOrYmrcynwNbwkfgZwu3PujPaO21tJ3DnXYvGAFk6aAltaub90XHQWp+7se3NV94/bk/f6ddyqLW0ntX37YPDg7iXbffu6HJPDoHCct1G55cj3FY6DVatgypS293/3u/D1r0PNoebjhsNw++3wyU/CySfDllbeOy763uuvb5FQXTgMP7/N2/jG9XCo+bj074/7+W3wL/8CDz0E3/wG7lDzKlSuf3/42c+81//xH3DokPcZm957663wiSvg4UfgRz+CrVtxBWPhxhtws6+InhMXO8UO7/sOzafdueY6TfsjLvrOaFnEuVhzOxJ9YyRaLxJtBUQcRCLNZRHnaIw0PXujsZ1zNEbLGxq950bnaIg4GhsjNES81/UNEeojjvrGCA2NEeobHXWNEeobItQ1RjhcH31uaORwfYTDDRHqGiIcqm+MJe1D9Y2tfrV6U8hg1MA8xg0Nc/woL2EfPyqf40bmayS5+CaIJH4mcLNz7qLo9ncAnHM/jKvza+A559x90e11wPnOuXfbOm5vJfFIxDHhvxb3+Dgikj6yQsbQo/ox7Kh+DB+Qy5jBeRQMDlMwpD8Fg/szdkh/Rg3KIydL82RJcrWVxP2cO70AiG+6VOG1tjuqUwC0SOJmVgqUAhT2gTmNRaTvys0OEe6XRbhfNv37ZTEwL5v8vBwG9s+Je53NwLwcBvXPYfiAXIYP8JL2oP45hEJaxlNSh59JvLX/CYnN/s7UwTlXBpSB1xLveWieAbltfPz6eqg91DISA/KiMyZ1Z19OTveP25P3+h3T4VqIOK+PMTfPK2/S3v6O3ttFvv3a7eDA7e3uaE3nxN3WYp8dUd6yvh1RlljPsLjXCce06CNaJ2Tmvd+8uiGzFvstuj8rZISi26Ho+0JeRbLMCIW8sqyQRbe9elkhIysUIjvk7Yt/DoWMnKwQOVlGdihEv+zm1znZIXJCRm5OiNzsLHKzo885IfplhcjNCZGXneUl7dxs+udkkaUkLJmktdFuvfEAzgSejNv+DvCdhDq/xrtO3rS9Dhjd3nE1Or2PxSQiIr4j2aPTzSwbb2DbBcBWvIFtn3bOrY6rcxlwHc0D2+5wzs1o77iadlVERDJN0q+JO+cazOw64Em8W8zmO+dWm9m10f13AYvxEvh6vFvMrvErHhERkXTj5zVxnHOL8RJ1fNldca8d8FU/YxAREUlXuk9CREQkRSmJi4iIpCglcRERkRSlJC4iIpKilMRFRERSlJK4iIhIilISFxERSVG+rifuBzPbBbSyyHJaGA7sDjqIFKDz1Dk6T52nc9U5Ok+d48d5KnLOjUgsTLkkns7MbGlr0+pJSzpPnaPz1Hk6V52j89Q5yTxP6k4XERFJUUriIiIiKUpJvG8pCzqAFKHz1Dk6T52nc9U5Ok+dk7TzpGviIiIiKUotcRERkRSlJO4TM7vYzNaZ2Xozu7GV/UPM7FEze8PMXjOzk6Llx5vZirjHfjO7PrrvZjPbGrfv0mR/rt7W3fMU3fcNM1ttZm+a2X1mlhctH2pmT5nZO9HnIcn8TH7x6VzpO9XyPH09eo5WN/2/i5an3XfKp/OUjt+n+Wa208zebGO/mdkd0fP4hpmdFrev1XPcq98n55wevfwAsoANwASgH7ASmJxQ5xbgpujrE4Bn2jjOdrz7AwFuBr4V9OfrC+cJKAA2Af2j2w8An4u+/glwY/T1jcCPg/6sffhc6TvVfJ5OAt4EwkA28DQwMR2/Uz6ep7T6PkU/03nAacCbbey/FPgrYMAHgFc7Ose9+X1SS9wfM4D1zrmNzrk6YAEwK6HOZOAZAOfcW0CxmR2dUOcCYINzLl0nt+npecoG+ptZNt4vlG3R8lnA76Ovfw9c7t9HSBq/zlW66cl5mgS84pyrcc41AM8Ds6PvSbfvlF/nKe04514A9rZTZRbwB+d5BRhsZqNp/xz32vdJSdwfBcCWuO2qaFm8lcAVAGY2AygCxibUmQPcl1B2XbTLZn4adOl1+zw557YCtwKVwLvA+865v0Xfc7Rz7l2A6PNI3z5B8vh1rkDfqab/e28C55nZMDML47WwxkXfk27fKb/OE6TX96kz2jqX7Z3jXvs+KYn7w1opS7wN4EfAEDNbAXwNWA40xA5g1g+YCTwY955fAccAU/F+Gf+0F2MOQrfPU/SXwyxgPDAGOMrM/tXPYAPm17nSdyp6npxza4EfA08BT+AlsQbSk1/nKd2+T53R1rnszDnusezePqAA3l9c8X+ZjiWh+9I5tx+4BryBEXjXLDfFVbkEeN05tyPuPbHXZvYb4C+9Hnly9eQ8XQRscs7tiu57BDgLuBfYYWajnXPvRru1dvr9QZLAl3Ol71TL/3vOuXuAe6L7/jd6PEi/75Qv5ykNv0+d0da57NdGOfTi90ktcX8sASaa2fhoi3oOsCi+gpkNju4D+CLwQvQ/TZOrSOhKj/5jN5mN162VynpyniqBD5hZOPoL5gJgbbTeIuDq6OurgT/7/DmSwZdzpe9Uy/97ZjYy+lyI15Xc9H8w3b5TvpynNPw+dcYi4LPRUeofwLtc9S7tn+Pe+z4FPfIvXR9414nexhudODdadi1wbfT1mcA7wFvAI8CQuPeGgT3AoIRj/hFYBbwR/RKMDvpzBnyevhctfzN6bnKj5cPwBuS8E30eGvTn7MPnSt+plufpRWANXhfxBXHlafed8uk8peP36T68SwP1eK3uLyScJwN+GT2Pq4Bp7Z3j3v4+acY2ERGRFKXudBERkRSlJC4iIpKilMRFRERSlJK4iIhIilISFxERSVFK4iIZLHpv6z/M7JK4sk+Z2RNBxiUinaNbzEQynHlLTD4InIq38tIK4GLn3IYeHDPbeYtjiIiPlMRFBDP7CXAQOAqods5938yuBr6KN33kS8B1zrmImZXhLc3YH7jfOfc/0WNUAb8GLgZuc8492MqPEpFepLnTRQS8Gd1eB+qAadHW+WzgLOdcQzRxzwH+hLcO8t7osqbPmtlDzrk10eMcdM6dHcQHEMlESuIignPuoJndDxxwzh02swuB6cBSb7p1+tO8rOJVZvYFvN8fY/DWnW5K4vcnN3KRzKYkLiJNItEHePNBz3fOfTe+gplNBL4OzHDO7TOze4G8uCoHkxKpiAAanS4irXsa+JSZDQcws2HRFasGAtXA/uiKVRcFGKNIxlNLXESO4JxbZWbfA542sxDeCk7XAkvxus7fBDYC/wwuShHR6HQREZEUpe50ERGRFKUkLiIikqKUxEVERFKUkriIiEiKUhIXERFJUUriIiIiKUpJXEREJEUpiYuIiKSo/w99n0IiGMTCbwAAAABJRU5ErkJggg==\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": 36, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/scipy/optimize/minpack.py:794: OptimizeWarning: Covariance of the parameters could not be estimated\n", | |
" category=OptimizeWarning)\n" | |
] | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Mean absolute error: 0.19\n", | |
"Residual sum of squares (MSE): 0.10\n", | |
"R2-score: -43697518773920577177518080.00\n" | |
] | |
} | |
], | |
"source": [ | |
"# write your code here\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": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"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 © 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", | |
"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