Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save Arroak/9618f45b9419a9459f8c176328e520f9 to your computer and use it in GitHub Desktop.

Select an option

Save Arroak/9618f45b9419a9459f8c176328e520f9 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": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://ibm.box.com/shared/static/cw2c7r3o20w9zn8gkecaeyjhgw3xdgbj.png\" width = 400, align = \"center\"></a>\n",
"# <center>Non Linear Regression Analysis</center>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If the data shows a curvy trend, then linear regression will not produce very accurate results when compared to a non-linear regression because, as the name implies, linear regression presumes that the data is linear. \n",
"Let's learn about non linear regressions and apply an example on python. In this notebook, we fit a non-linear model to the datapoints corrensponding to China's GDP from 1960 to 2014."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Importing required libraries"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Though Linear regression is very good to solve many problems, it cannot be used for all datasets. First recall how linear regression, could model a dataset. It models a linear relation between a dependent variable y and independent variable x. It had a simple equation, of degree 1, for example y = 2*(x) + 3."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"x = np.arange(-5.0, 5.0, 0.1)\n",
"\n",
"##You can adjust the slope and intercept to verify the changes in the graph\n",
"y = 2*(x) + 3\n",
"y_noise = 2 * np.random.normal(size=x.size)\n",
"ydata = y + y_noise\n",
"#plt.figure(figsize=(8,6))\n",
"plt.plot(x, ydata, 'bo')\n",
"plt.plot(x,y, 'r') \n",
"plt.ylabel('Dependent Variable')\n",
"plt.xlabel('Indepdendent Variable')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Non-linear regressions are a relationship between independent variables $x$ and a dependent variable $y$ which result in a non-linear function modeled data. Essentially any relationship that is not linear can be termed as non-linear, and is usually represented by the polynomial of $k$ degrees (maximum power of $x$). \n",
"\n",
"$$ \\ y = a x^3 + b x^2 + c x + d \\ $$\n",
"\n",
"Non-linear functions can have elements like exponentials, logarithms, fractions, and others. For example: $$ y = \\log(x)$$\n",
" \n",
"Or even, more complicated such as :\n",
"$$ y = \\log(a x^3 + b x^2 + c x + d)$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's take a look at a cubic function's graph."
]
},
{
"cell_type": "code",
"execution_count": 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",
"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": 6,
"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= 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": 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": null,
"metadata": {},
"outputs": [],
"source": [
"X = np.arange(-5.0, 5.0, 0.1)\n",
"\n",
"\n",
"Y = 1-4/(1+np.power(3, X-2))\n",
"\n",
"plt.plot(X,Y) \n",
"plt.ylabel('Dependent Variable')\n",
"plt.xlabel('Indepdendent Variable')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"ref2\"></a>\n",
"# Non-Linear Regression example"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For an example, we're going to try and fit a non-linear model to the datapoints corrensponding to China's GDP from 1960 to 2014. We download a dataset with two columns, the first, a year between 1960 and 2014, the second, China's corresponding annual gross domestic income in US dollars for that year. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"#downloading dataset\n",
"!wget -nv -O china_gdp.csv https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/ML0101ENv3/labs/china_gdp.csv\n",
" \n",
"df = pd.read_csv(\"china_gdp.csv\")\n",
"df.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Did you know?__ When it comes to Machine Learning, you will likely be working with large datasets. As a business, where can you host your data? IBM is offering a unique opportunity for businesses, with 10 Tb of IBM Cloud Object Storage: [Sign up now for free](http://cocl.us/ML0101EN-IBM-Offer-CC)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plotting the Dataset ###\n",
"This is what the datapoints look like. It kind of looks like an either logistic or exponential function. The growth starts off slow, then from 2005 on forward, the growth is very significant. And finally, it deaccelerates slightly in the 2010s."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": null,
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": null,
"metadata": {},
"outputs": [],
"source": [
"# Lets normalize our data\n",
"xdata =x_data/max(x_data)\n",
"ydata =y_data/max(y_data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### How we find the best parameters for our fit line?\n",
"we can use __curve_fit__ which uses non-linear least squares to fit our sigmoid function, to data. Optimal values for the parameters so that the sum of the squared residuals of sigmoid(xdata, *popt) - ydata is minimized.\n",
"\n",
"popt are our optimized parameters."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from scipy.optimize import curve_fit\n",
"popt, pcov = curve_fit(sigmoid, xdata, ydata)\n",
"#print the final parameters\n",
"print(\" beta_1 = %f, beta_2 = %f\" % (popt[0], popt[1]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we plot our resulting regresssion model."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"x = np.linspace(1960, 2015, 55)\n",
"x = x/max(x)\n",
"plt.figure(figsize=(8,5))\n",
"y = sigmoid(x, *popt)\n",
"plt.plot(xdata, ydata, 'ro', label='data')\n",
"plt.plot(x,y, linewidth=3.0, label='fit')\n",
"plt.legend(loc='best')\n",
"plt.ylabel('GDP')\n",
"plt.xlabel('Year')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Practice\n",
"Can you calculate what is the accuracy of our model?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# write your code here\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click __here__ for the solution.\n",
"\n",
"<!-- Your answer is below:\n",
" \n",
"# split data into train/test\n",
"msk = np.random.rand(len(df)) < 0.8\n",
"train_x = xdata[msk]\n",
"test_x = xdata[~msk]\n",
"train_y = ydata[msk]\n",
"test_y = ydata[~msk]\n",
"\n",
"# build the model using train set\n",
"popt, pcov = curve_fit(sigmoid, train_x, train_y)\n",
"\n",
"# predict using test set\n",
"y_hat = sigmoid(test_x, *popt)\n",
"\n",
"# evaluation\n",
"print(\"Mean absolute error: %.2f\" % np.mean(np.absolute(y_hat - test_y)))\n",
"print(\"Residual sum of squares (MSE): %.2f\" % np.mean((y_hat - test_y) ** 2))\n",
"from sklearn.metrics import r2_score\n",
"print(\"R2-score: %.2f\" % r2_score(y_hat , test_y) )\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Want to learn more?\n",
"\n",
"IBM SPSS Modeler is a comprehensive analytics platform that has many machine learning algorithms. It has been designed to bring predictive intelligence to decisions made by individuals, by groups, by systems – by your enterprise as a whole. A free trial is available through this course, available here: [SPSS Modeler](http://cocl.us/ML0101EN-SPSSModeler).\n",
"\n",
"Also, you can use Watson Studio to run these notebooks faster with bigger datasets. Watson Studio is IBM's leading cloud solution for data scientists, built by data scientists. With Jupyter notebooks, RStudio, Apache Spark and popular libraries pre-packaged in the cloud, Watson Studio enables data scientists to collaborate on their projects without having to install anything. Join the fast-growing community of Watson Studio users today with a free account at [Watson Studio](https://cocl.us/ML0101EN_DSX)\n",
"\n",
"### Thanks for completing this lesson!\n",
"\n",
"Notebook created by: <a href = \"https://ca.linkedin.com/in/saeedaghabozorgi\">Saeed Aghabozorgi</a>\n",
"\n",
"<hr>\n",
"Copyright &copy; 2018 [Cognitive Class](https://cocl.us/DX0108EN_CC). This notebook and its source code are released under the terms of the [MIT License](https://bigdatauniversity.com/mit-license/).​"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment