Created
August 5, 2020 06:00
-
-
Save oluwaseunolusanya/3bd81445a3b11462604fb88af805e27b to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
This file contains hidden or 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": 3, | |
"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": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"x = np.arange(-5.0, 5.0, 0.1)\n", | |
"\n", | |
"##You can adjust the slope and intercept to verify the changes in the graph\n", | |
"y = 2*(x) + 3\n", | |
"y_noise = 2 * np.random.normal(size=x.size)\n", | |
"ydata = y + y_noise\n", | |
"#plt.figure(figsize=(8,6))\n", | |
"plt.plot(x, ydata, 'bo')\n", | |
"plt.plot(x,y, 'r') \n", | |
"plt.ylabel('Dependent Variable')\n", | |
"plt.xlabel('Indepdendent Variable')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Non-linear regressions are a relationship between independent variables $x$ and a dependent variable $y$ which result in a non-linear function modelled 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": 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) # x is an array of 100 numbers between -5 and 5 in steps of 0.1.\n", | |
"\n", | |
"##You can adjust the slope and intercept to verify the changes in the graph\n", | |
"y = 1*(x**3) + 1*(x**2) + 1*x + 3\n", | |
"y_noise = 20 * np.random.normal(size=x.size)\n", | |
"ydata = y + y_noise\n", | |
"plt.plot(x, ydata, 'bo')\n", | |
"plt.plot(x,y, 'r') \n", | |
"plt.ylabel('Dependent Variable')\n", | |
"plt.xlabel('Indepdendent Variable')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"As you can see, this function has $x^3$ and $x^2$ as independent variables. Also, the graphic of this function is not a straight line over the 2D plane. So this is a non-linear function." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Some other types of non-linear functions are:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Quadratic" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"$$ Y = X^2 $$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 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 = 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": 8, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"X = np.arange(-5.0, 5.0, 0.1)\n", | |
"\n", | |
"##You can adjust the slope and intercept to verify the changes in the graph\n", | |
"\n", | |
"Y= np.exp(X)\n", | |
"\n", | |
"plt.plot(X,Y) \n", | |
"plt.ylabel('Dependent Variable')\n", | |
"plt.xlabel('Indepdendent Variable')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Logarithmic\n", | |
"\n", | |
"The response $y$ is a results of applying logarithmic map from input $x$'s to output variable $y$. It is one of the simplest form of __log()__: i.e. $$ y = \\log(x)$$\n", | |
"\n", | |
"Please consider that instead of $x$, we can use $X$, which can be polynomial representation of the $x$'s. In general form it would be written as \n", | |
"\\begin{equation}\n", | |
"y = \\log(X)\n", | |
"\\end{equation}" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"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": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"X = np.arange(-5.0, 5.0, 0.1)\n", | |
"\n", | |
"\n", | |
"Y = 1-4/(1+np.power(3, X-2))\n", | |
"\n", | |
"plt.plot(X,Y) \n", | |
"plt.ylabel('Dependent Variable')\n", | |
"plt.xlabel('Indepdendent Variable')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<a id=\"ref2\"></a>\n", | |
"# Non-Linear Regression example" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"For an example, we're going to try and fit a non-linear model to the datapoints corresponding to China's GDP from 1960 to 2014. We download a dataset with two columns, the first, a year between 1960 and 2014, the second, China's corresponding annual gross domestic income in US dollars for that year. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"2020-08-05 05:28:00 URL:https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/ML0101ENv3/labs/china_gdp.csv [1218/1218] -> \"china_gdp.csv\" [1]\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Year</th>\n", | |
" <th>Value</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1960</td>\n", | |
" <td>5.918412e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>1961</td>\n", | |
" <td>4.955705e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>1962</td>\n", | |
" <td>4.668518e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>1963</td>\n", | |
" <td>5.009730e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>1964</td>\n", | |
" <td>5.906225e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>1965</td>\n", | |
" <td>6.970915e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>1966</td>\n", | |
" <td>7.587943e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>1967</td>\n", | |
" <td>7.205703e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>1968</td>\n", | |
" <td>6.999350e+10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>1969</td>\n", | |
" <td>7.871882e+10</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Year Value\n", | |
"0 1960 5.918412e+10\n", | |
"1 1961 4.955705e+10\n", | |
"2 1962 4.668518e+10\n", | |
"3 1963 5.009730e+10\n", | |
"4 1964 5.906225e+10\n", | |
"5 1965 6.970915e+10\n", | |
"6 1966 7.587943e+10\n", | |
"7 1967 7.205703e+10\n", | |
"8 1968 6.999350e+10\n", | |
"9 1969 7.871882e+10" | |
] | |
}, | |
"execution_count": 11, | |
"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": 12, | |
"metadata": { | |
"collapsed": false, | |
"jupyter": { | |
"outputs_hidden": false | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 576x360 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.figure(figsize=(8,5))\n", | |
"x_data, y_data = (df[\"Year\"].values, df[\"Value\"].values)\n", | |
"plt.plot(x_data, y_data, 'ro')\n", | |
"plt.ylabel('GDP')\n", | |
"plt.xlabel('Year')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Choosing a model ###\n", | |
"\n", | |
"From an initial look at the plot, we determine that the logistic function could be a good approximation,\n", | |
"since it has the property of starting with a slow growth, increasing growth in the middle, and then decreasing again at the end; as illustrated below:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 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": 14, | |
"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": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[<matplotlib.lines.Line2D at 0x7f0a65c75be0>]" | |
] | |
}, | |
"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:" | |
] | |
}, | |
{ | |
"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 do 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": 17, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" beta_1 = 690.447530, 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": 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": [ | |
"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": 27, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Mean absolute error: 0.03\n", | |
"Residual sum of squares (MSE): 0.00\n", | |
"R2-score: 0.98\n" | |
] | |
} | |
], | |
"source": [ | |
"# split data into train/test\n", | |
"msk = np.random.rand(len(df)) < 0.8\n", | |
"train_x, train_y = (xdata[msk], ydata[msk])\n", | |
"test_x, test_y = (xdata[~msk], 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) )" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"jupyter": { | |
"source_hidden": true | |
} | |
}, | |
"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.11" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment