diff --git "a/ML0101EN-Reg-NoneLinearRegression.ipynb" "b/ML0101EN-Reg-NoneLinearRegression.ipynb" new file mode 100644--- /dev/null +++ "b/ML0101EN-Reg-NoneLinearRegression.ipynb" @@ -0,0 +1,867 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + " \"cognitiveclass.ai\n", + "
\n", + "\n", + "# Non Linear Regression Analysis\n", + "\n", + "Estimated time needed: **20** minutes\n", + "\n", + "## Objectives\n", + "\n", + "After completing this lab you will be able to:\n", + "\n", + "* Differentiate between linear and non-linear regression\n", + "* Use non-linear regression model in Python\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If the data shows a curvy trend, then linear regression will not produce very accurate results when compared to a non-linear regression since linear regression presumes that the data is linear.\n", + "Let's learn about non linear regressions and apply an example in python. In this notebook, we fit a non-linear model to the datapoints corrensponding to China's GDP from 1960 to 2014.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Importing required libraries

\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although linear regression can do a great job at modeling some datasets, it cannot be used for all datasets. First recall how linear regression, models a dataset. It models the linear relationship between a dependent variable y and the independent variables x. It has a simple equation, of degree 1, for example y = $2x$ + 3.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "x = np.arange(-5.0, 5.0, 0.1)\n", + "\n", + "##You can adjust the slope and intercept to verify the changes in the graph\n", + "y = 2*(x) + 3\n", + "y_noise = 2* np.random.normal(size=x.size)\n", + "ydata = y + y_noise\n", + "#plt.figure(figsize=(8,6))\n", + "plt.plot(x, ydata, 'bo')\n", + "plt.plot(x,y, 'r') \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Non-linear regression is a method to model the non-linear relationship between the independent variables $x$ and the dependent variable $y$. 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$). For example:\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 so on. For example: $$ y = \\log(x)$$\n", + "\n", + "We can have a function that's even more complicated such as :\n", + "$$ y = \\log(a x^3 + b x^2 + c x + d)$$\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's take a look at a cubic function's graph.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "x = np.arange(-5.0, 5.0, 0.1)\n", + "\n", + "##You can adjust the slope and intercept to verify the changes in the graph\n", + "y = 1*(x**3) + 1*(x**2) + 1*x + 3\n", + "y_noise = 20 * np.random.normal(size=x.size)\n", + "ydata = y + y_noise\n", + "plt.plot(x, ydata, 'bo')\n", + "plt.plot(x,y, 'r') \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, this function has $x^3$ and $x^2$ as independent variables. Also, the graphic of this function is not a straight line over the 2D plane. So this is a non-linear function.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Some other types of non-linear functions are:\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Quadratic\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$ Y = X^2 $$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "x = np.arange(-5.0, 5.0, 0.1)\n", + "\n", + "##You can adjust the slope and intercept to verify the changes in the graph\n", + "\n", + "y = np.power(x,2)\n", + "y_noise = 2 * np.random.normal(size=x.size)\n", + "ydata = y + y_noise\n", + "plt.plot(x, ydata, 'bo')\n", + "plt.plot(x,y, 'r') \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exponential\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "An exponential function with base c is defined by $$ Y = a + b c^X$$ where b ≠0, c > 0 , c ≠1, and x is any real number. The base, c, is constant and the exponent, x, is a variable.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "X = np.arange(-5.0, 5.0, 0.1)\n", + "\n", + "##You can adjust the slope and intercept to verify the changes in the graph\n", + "\n", + "Y= np.exp(X)\n", + "\n", + "plt.plot(X,Y) \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Logarithmic\n", + "\n", + "The response $y$ is a results of applying the logarithmic map from the input $x$ to the output $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 a polynomial representation of the $x$ values. In general form it would be written as\\\n", + "\\begin{equation}\n", + "y = \\log(X)\n", + "\\end{equation}\n" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + ":3: RuntimeWarning: invalid value encountered in log\n", + " Y = np.log(X)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "X = np.arange(-5.0, 5.0, 0.1)\n", + "\n", + "Y = np.log(X)\n", + "\n", + "plt.plot(X,Y) \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sigmoidal/Logistic\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$ Y = a + \\frac{b}{1+ c^{(X-d)}}$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "X = np.arange(-10.0, 10.0, 0.1)\n", + "\n", + "\n", + "Y = 1-4/(1+np.power(3, X-2))\n", + "\n", + "plt.plot(X,Y) \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Non-Linear Regression example\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For an example, we're going to try and fit a non-linear model to the datapoints corresponding to China's GDP from 1960 to 2014. We download a dataset with two columns, the first, a year between 1960 and 2014, the second, China's corresponding annual gross domestic income in US dollars for that year.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2022-05-22 22:25:06 URL:https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%202/data/china_gdp.csv [1218/1218] -> \"china_gdp.csv\" [1]\r\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
YearValue
019605.918412e+10
119614.955705e+10
219624.668518e+10
319635.009730e+10
419645.906225e+10
519656.970915e+10
619667.587943e+10
719677.205703e+10
819686.999350e+10
919697.871882e+10
\n", + "
" + ], + "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": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "#downloading dataset\n", + "!wget -nv -O china_gdp.csv https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%202/data/china_gdp.csv\n", + " \n", + "df = pd.read_csv(\"china_gdp.csv\")\n", + "df.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Did you know?** When it comes to Machine Learning, you will likely be working with large datasets. As a business, where can you host your data? IBM is offering a unique opportunity for businesses, with 10 Tb of IBM Cloud Object Storage: [Sign up now for free](http://cocl.us/ML0101EN-IBM-Offer-CC)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plotting the Dataset\n", + "\n", + "This is what the datapoints look like. It kind of looks like an either logistic or exponential function. The growth starts off slow, then from 2005 on forward, the growth is very significant. And finally, it decelerates slightly in the 2010s.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(8,5))\n", + "x_data, y_data = (df[\"Year\"].values, df[\"Value\"].values)\n", + "plt.plot(x_data, y_data, 'ro')\n", + "plt.ylabel('GDP')\n", + "plt.xlabel('Year')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Choosing a model\n", + "\n", + "From an initial look at the plot, we determine that the logistic function could be a good approximation,\n", + "since it has the property of starting with a slow growth, increasing growth in the middle, and then decreasing again at the end; as illustrated below:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "X = np.arange(-5.0, 5.0, 0.1)\n", + "Y = 1.0 / (1.0 + np.exp(-X))\n", + "\n", + "plt.plot(X,Y) \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The formula for the logistic function is the following:\n", + "\n", + "$$ \\hat{Y} = \\frac1{1+e^{-\\beta\\_1(X-\\beta\\_2)}}$$\n", + "\n", + "$\\beta\\_1$: Controls the curve's steepness,\n", + "\n", + "$\\beta\\_2$: Slides the curve on the x-axis.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Building The Model\n", + "\n", + "Now, let's build our regression model and initialize its parameters.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "def sigmoid(x, Beta_1, Beta_2):\n", + " y = 1 / (1 + np.exp(-Beta_1*(x-Beta_2)))\n", + " return y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lets look at a sample sigmoid line that might fit with the data:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "beta_1 = 0.10\n", + "beta_2 = 1990.0\n", + "\n", + "#logistic function\n", + "Y_pred = sigmoid(x_data, beta_1 , beta_2)\n", + "\n", + "#plot initial prediction against datapoints\n", + "plt.plot(x_data, Y_pred*15000000000000.)\n", + "plt.plot(x_data, y_data, 'ro')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our task here is to find the best parameters for our model. Lets first normalize our x and y:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "# Lets normalize our data\n", + "xdata =x_data/max(x_data)\n", + "ydata =y_data/max(y_data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### How we find the best parameters for our fit line?\n", + "\n", + "we can use **curve_fit** which uses non-linear least squares to fit our sigmoid function, to data. Optimize values for the parameters so that the sum of the squared residuals of sigmoid(xdata, \\*popt) - ydata is minimized.\n", + "\n", + "popt are our optimized parameters.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " beta_1 = 690.451709, beta_2 = 0.997207\n" + ] + } + ], + "source": [ + "from scipy.optimize import curve_fit\n", + "popt, pcov = curve_fit(sigmoid, xdata, ydata)\n", + "#print the final parameters\n", + "print(\" beta_1 = %f, beta_2 = %f\" % (popt[0], popt[1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we plot our resulting regression model.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfEAAAE9CAYAAAAbGFuyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAvT0lEQVR4nO3de3xU9Z3/8dcnN0IQkJuIhCSoqFAVFFBr1fVSW9SKotVi09ZurVm7P7vd6trqsr1su2nt6trWVreNrZdqKrW2IlWstqtWrDdQueMFEEIAFUEuEkJun98fZzKZxNxIcuZkZt7Px2MeM+d7vufMZ444n3y/8z3fr7k7IiIiknqyog5AREREekZJXEREJEUpiYuIiKQoJXEREZEUpSQuIiKSopTERUREUlRO1AHsr5EjR3pJSUnUYYiIiCTFyy+//J67j2pvX8ol8ZKSEhYvXhx1GCIiIklhZhs62qfudBERkRSlJC4iIpKilMRFRERSVMr9Jt6e+vp6qqurqa2tjTqUUOXn51NYWEhubm7UoYiISD+QFkm8urqawYMHU1JSgplFHU4o3J1t27ZRXV3N+PHjow5HRET6gbToTq+trWXEiBFpm8ABzIwRI0akfW+DiIh0X1okcSCtE3izTPiMIiLSfaElcTO708zeNbMVHew3M7vVzNaY2TIzOz6sWKLw3e9+l5tvvrnD/fPmzWPVqlVJjEhEREJVWQklJZCVFTxXVob+lmG2xO8GZnSy/xxgQuxRBvxviLH0O0riIiJppLISyspgwwZwD57LykJP5KElcXd/BtjeSZULgN944AXgQDMbE1Y8rYT011J5eTlHHHEEp5xyCq+//joAd9xxB9OnT2fy5MlcfPHF1NTU8NxzzzF//nyuu+46pkyZwtq1a9utJyIiKWLOHGj7vV1TE5SHKMrfxMcCGxO2q2NlH2JmZWa22MwWb926tXfvGtJfSy+//DJz585lyZIlLFiwgEWLFgFw0UUXsWjRIpYuXcrEiRP59a9/zcknn8zMmTO56aabWLJkCYcddli79UREJEVUVe1feR9JiYFt7l7h7tPcfdqoUe3OAd99If21tHDhQmbNmkVBQQFDhgxh5syZAKxYsYJTTz2VY445hsrKSlauXNnu8d2tJyIi/VBR0f6V95Eok/gmYFzCdmGsLFxJ/mvpi1/8Ij//+c9Zvnw53/nOdzq8Ray79UREpB8qL4eCgtZlBQVBeYiiTOLzgS/ERqmfBOx09y2hv2tIfy2ddtppzJs3j71797J7927+9Kc/AbB7927GjBlDfX09lQld9oMHD2b37t3x7Y7qiYhICigthYoKKC4Gs+C5oiIoD1FoM7aZ2f3A6cBIM6sGvgPkArj7L4AFwLnAGqAG+MewYmmlvDz4DTyxS70P/lo6/vjj+cxnPsPkyZM56KCDmD59OgDf//73OfHEExk1ahQnnnhiPHHPnj2bK6+8kltvvZUHH3yww3oiIpIiSktDT9ptmbsn9Q17a9q0ad52PfHVq1czceLE7p+ksjL4DbyqKmiBl5cn/cL31H5/VhERSWlm9rK7T2tvX1rMnb7fIvhrSUREpK+lxOh0ERER+TAlcRERkRSlJC4iIpKilMRFRERSlJK4iIhIilIS7yO33norEydOZNiwYdx4442AVioTEZFwZeYtZiG4/fbb+etf/0phYWG8bN68eXzqU59i0qRJEUYmIiLpSi3xPnDVVVexbt06zjnnHH784x9z9dVXt7vcqIiISF9SEu8Dv/jFLzjkkEN46qmnGDZsGEC7y42KiIj0pbTrTi+5/tHQzr3+xvNCO7eIiMj+UktcREQkRSmJh6jtcqMiIpLiKiuhpASysoLniJeOTrvu9P7U5d12uVH9Li4iksIqK1svZb1hQ7ANkS2qlZlLkaawTPqsIiL9SklJkLjbKi6G9etDe9vOliJVd7qIiEh3VFXtX3kSKImLiIh0R1HR/pUngZK4iIhId5SXQ0FB67KCgqA8ImmTxFPtt/2eyITPKCLSb5WWQkVF8Bu4WfBcURHZoDZIk9Hp+fn5bNu2jREjRmBmUYcTCndn27Zt5OfnRx2KiEjmKi2NNGm3lRZJvLCwkOrqarZu3Rp1KKHKz89vtcCKiIhktrRI4rm5uYwfPz7qMERERJIqbX4TFxERyTRK4iIiIn1ky8697K1rTNr7KYmLiIj0gYbGJq667xXOu3UhSzbuSMp7KomLiIj0gdueWsvSjTtY994eZlc8z/Y9daG/p5K4iIhILy2r3sGtT74Z3/7aWUcwfFBe6O+rJC4iItILtfWNfP13S2hsCibkml4yjLLTDk3KeyuJi4iI9MKNj73G2q17ABiUl83/XDKF7KzkTDymJC4iItJDC9/cyt3PrY9vf+tTkygaUdDxAX1MSVxERKQHdtbUc93vl8W3Pz7xID4zfVxSY1ASFxER6YFvz1/B27tqARg+KI8fXnRs0tfvUBIXERHZT48s28zDSzbHt38w6xhGDR6Q9DiUxEVERPbD2ztrmfPQivj2xccXMuPogyOJRUlcRESkm9ydb/xhGTv31gMw9sCBfGfmpMjiURIXERHppvterOKZN4Jlr83gfy6dzJD83MjiURIXERHphh01ddz059fi218+ZTwnHToiwoiUxEVERFpUVkJJCWRlBc+VlfFdP3tyDbtqGwAoGVHAtZ84MpoYE+REHYCIiEi/UFkJZWVQUxNsb9gQbANVM2bxm+fXx6t+c8ZR5OdmRxBka0riIiIiAHPmtCTwZjU1MGcO/20TqW8M5kafWjwsstHobYXanW5mM8zsdTNbY2bXt7O/yMyeMrNXzWyZmZ0bZjwiIiIdqqpqt3hJ3QAeWbYlvv3v5x6V9EldOhJaEjezbOA24BxgEnCZmbUdh/8fwAPufhwwG7g9rHhEREQ6VVT0oSIHfjDjn+Pb5xx9MFOLhycxqM6F2RI/AVjj7uvcvQ6YC1zQpo4DQ2KvhwKbERERiUJ5ORS0XrzkLx85jZcOOhyAnCzjGzOOiiKyDoWZxMcCGxO2q2Nlib4LfM7MqoEFwFdDjEdERKRjpaVQUQHFxWBGfcl4brz42vjuz51UzPiRgyIM8MOivsXsMuBudy8EzgXuNbMPxWRmZWa22MwWb926NelBiohIhigthfXroamJ393/FOv2BSPQBw/I4V/OmhBtbO0IM4lvAhLXZCuMlSW6AngAwN2fB/KBkW1P5O4V7j7N3aeNGjUqpHBFREQCH+xr4Cd/fSO+/ZUzDmP4oLwII2pfmEl8ETDBzMabWR7BwLX5bepUAWcBmNlEgiSupraIiESq4m9ree+DOgAOGZrPlz42PuKI2hdaEnf3BuBq4HFgNcEo9JVm9j0zmxmrdi1wpZktBe4HvujuHlZMIiIiXXlnVy13LHwrvn3tJ47sFxO7tCfUyV7cfQHBgLXEsm8nvF4FfCzMGERERPbHLU+8wd76RgAmjhnChce1HZPdf0Q9sE1ERKTfePOd3fz+5ZYbq/793KPIzuofE7u0R0lcREQk5pfPrKMp9qPuaUeM4tQJ/XswtZK4iIgI8PbOWh5e0nIT1df64S1lbSmJi4iIAHc/tz6+yMm04mFMLR4WcURdUxIXEZGM98G+Bipf3BDfvvK0QyOMpvuUxEVEJOPNfamK3bUNAIwfOYizJ46OOKLuURIXEZGMVt/YxJ3PttwX/uVTx5PVj0ekJ1ISFxGRjPbosi1s3lkLwIhBeVx8fGHEEXWfkriIiGQsd6fimXXx7ctPLum3s7O1R0lcREQy1t/XbGPVll0A5Odm8bmTiiOOaP8oiYuISMaqWNjSCr902rh+uVJZZ5TERUQks1RWQkkJq0cfyjNvBAtnZhlccUr/XKmsM0riIiKSOSoroawMNmzgjumz4sUzBtdRPGJQhIH1jJK4iIhkjjlzoKaGLYNHMH/iafHisgd/El1MvaAkLiIimaOqCoC7ps6kITtYjfuEquVMWbIwyqh6TElcREQyR1ERu/IK+O2Uc+JFZS89BEVFEQbVc0riIiKSOcrLmTv9fD4YUADAYds2cuaWlVBeHnFgPZMTdQAiIiLJ0njZZ7nntSFQH2xfufYZsip+CaWl0QbWQ0riIiKSMRa+uZVN9UEn9LCCXC58/F5IoRna2lJ3uoiIZIy5L22Mv774+MKUmmK1PUriIiKSEbbu3sdfV78T3559wrgIo+kbSuIiIpIRHny5moYmB2B6yTAOP2hwxBH1npK4iIikvaYm53eLquLbs6en5i1lbSmJi4hI2nth3TbWb6sBYHB+DuceMybiiPqGkriIiKS9+xe1DGibddxYBual9oC2ZkriIiKS1rbvqePxFW/Ht9OlKx2UxEVEJM398ZVq6hqbAJhcOJRJhwyJOKK+oyQuIiJpy92Zm9CVPvuE9GmFg5K4iIiksZc3vM+adz8AoCAvm/MnHxJxRH1LSVxERNLW/QkztM2cfAgHDEiv2caVxEVEJC3t3FvPo8s3x7fTrSsdlMRFRCRNzV+yidr6YEDbUQcPZnLh0Igj6ntK4iIiknbcvVVX+mUnFGFmEUYUDiVxERFJO8s37WTVll0ADMjJ4sIpYyOOKBxK4iIiknYSW+HnHTOGoQW5EUYTHiVxERFJK3v2NTB/yab4djoOaGumJC4iImllwfIt7KlrBOCwUYOYXjIs4ojCoyQuIiJp5aFXW1rhl04bl5YD2popiYuISNrYsnMvz6/bBoAZXJCmA9qaKYmLiEjamL9kM+7B65MPG8HBQ/OjDShkoSZxM5thZq+b2Rozu76DOpea2SozW2lmvw0zHhERSW+JXemzjiuMMJLkCG0SWTPLBm4DzgaqgUVmNt/dVyXUmQDcAHzM3d83s4PCikdERNLb6i27eO3t3QDk52bxyY+Mjjii8IXZEj8BWOPu69y9DpgLXNCmzpXAbe7+PoC7vxtiPCIiksbmJbTCz550MIPz0/Pe8ERhJvGxwMaE7epYWaIjgCPM7O9m9oKZzQgxHhERSVONTc68hHvDLzouvQe0NYt6TbYcYAJwOlAIPGNmx7j7jsRKZlYGlAEUFaXvTfsiItIzL6zbxju79gEwYlAep0wYGXFEyRFmS3wTMC5huzBWlqgamO/u9e7+FvAGQVJvxd0r3H2au08bNWpUaAGLiEhqShzQdv7kQ8idez+UlEBWVvBcWRlZbGEKM4kvAiaY2XgzywNmA/Pb1JlH0ArHzEYSdK+vCzEmERFJM3vrGnls+Zb49qx3lkNZGWzYAO7Bc1lZWiby0JK4uzcAVwOPA6uBB9x9pZl9z8xmxqo9Dmwzs1XAU8B17r4trJhERCT9/GX1O/FpVg8dOYhjy6+HmprWlWpqYM6cCKILV6i/ibv7AmBBm7JvJ7x24JrYQ0REZL8ljkq/8LixWFVV+xU7Kk9hmrFNRERS1nsf7ONvb2yNb184ZSx0NAA6DQdGK4mLiEjKemTpZhqbgnlWpxUPo2hEAZSXQ0FB64oFsfI0oyQuIiIp66Elm+OvL2y+N7y0FCoqoLg4WAWluDjYLi2NKMrwRH2fuIiISI+s3foBSzfuACA32zjvmDEtO0tL0zJpt6WWuIiIpKSHEwa0nXHkQQwblBdhNNFQEhcRkZTj7jy0JHHFssyYZrUtJXEREUk5r1S9z8btewEYnJ/DGUdl5iKYSuIiIpJy/vhKSyv8U8eOIT83O8JooqMkLiIiKaWuoYlHE6ZZvXBKZnalg5K4iIikmIVvbmVHTT0AhwzNZ3rJ8Igjio6SuIiIpJT5S1vuDT9/yiFkZVmE0USrW0k8tsKYiIhIpGrqGvjLqnfi2zMnHxJhNNHrNImb2flmthVYbmbVZnZykuISERH5kL+ufpea2Iplhx90AJPGDIk4omh11RIvB0519zHAxcAPww9JRESkffMTplmdOfkQzDK3Kx26TuIN7v4agLu/CAwOPyQREZEP21FTx9/eeDe+neld6dD13OkHmdk1HW27+y3hhCUiItLan1e8TX1jsGLZ5MKhlIwcFHFE0esqid9B69Z3220REZGkeDihK/18tcKBLpK4u/9nsgIRERHpyDu7annhrW1AsLqoknigy1vMzOwMM/uDma2MPR40s9PDD01ERCTwp6Wb8aAnnZPGj2D0kPxoA+onurrF7DzgTuAR4LNAKbAAuNPMzg0/PBERkSCJN7tgilrhzbpqiV8HXOjud7n7Undf4u53AhcC3ww9OhERyXhvvbeHpdU7AcjNNs45egxUVkJJCWRlBc+VlZHGGJWuBrYd7O5L2xa6+zIzGx1STCIiInGJrfB/OOIghj70AJSVQU1NULhhQ7ANUFoaQYTR6aolvqeH+0RERHrN3Xl4ScuyozOnHAJz5rQk8GY1NUF5humqJX6Ymc1vp9yAQ0OIR0REJG7Vll2s3Rq0GQvysvn4xIOgqqr9yh2Vp7GukvgF7ZTFxgdycx/HIiIi0kriNKtnTxpNQV4OFBUFXehtFRUlMbL+oavu9AOBo939b+7+N+Am4B7gbuCgcEMTEZFM1tTk7Y9KLy+HgoLWlQsKgvIM01US/waQ2J2eB0wDTgeuCikmERERFm94n807awE4sCCXUw4fFewoLYWKCiguDmZ+KS4OtjNsUBt03Z2e5+4bE7afdfdtwDYz06S1IiISmvlLWwa0nXvMGPJyEtqdpaUZmbTb6qolPixxw92vTtgc1ffhiIiIQH1jE48u2xLf1opl7esqib9oZle2LTSzfwJeCickERHJdM+ueY/3a+oBOHhIPieUDI84ov6pq+70rwPzzOyzwCuxsqnAAIJZ20RERPrcvFdbutLPnzyGrCyLMJr+q6tVzN4FTjazM4GPxIofdfcnQ49MREQy0gf7Gnh85dvx7QuPGxthNP1bl6uYAbj7k+7+s9hDCVxERELzxMq3qa1vAuCIHZuZVDgso+dH70y3kriIiEiyPJTQlX7hkicw95b50ZXIW1ESFxGRfuPdXbX8fc178e0LVv2tZWeGzo/eGSVxERHpN+Yv3UxTbHLvkzYsY+zura0rZOD86J1REhcRkX5jXsKKZbNWPfXhChk4P3pnlMRFRKRfePOd3azYtAuAPHNmVL3aukKGzo/eGSVxERHpFxJb4R8/egxDf/4TzY/eha4mexEREQldU5Mz79WWFcsunDIWPjJVSbsLaomLiEjkFm94n0079gLBimWnH6nVrrsj1CRuZjPM7HUzW2Nm13dS72IzczObFmY8IiLSPz30anX89XltVyyTDoV2lcwsG7gNOAeYBFxmZpPaqTcY+BrwYlixiIhI/1Vb38gjCSuWzdI0q90W5p86JwBr3H2du9cBc4EL2qn3feBHQG2IsYiISD/19Ovvsru2AYDCYQOZWjysiyOkWZhJfCywMWG7OlYWZ2bHA+Pc/dEQ4xARkX4scZrVWceNxUwrlnVXZD86mFkWcAtwbTfqlpnZYjNbvHXr1q6qi4hIithRU8dTr7V8r2vFsv0TZhLfBIxL2C6MlTUbDBwNPG1m64GTgPntDW5z9wp3n+bu00aNGhViyCIikkwLlr9NXWOwYtnkwqEcNuqAiCNKLWEm8UXABDMbb2Z5wGxgfvNOd9/p7iPdvcTdS4AXgJnuvjjEmEREpB+Zl7himVrh+y20JO7uDcDVwOPAauABd19pZt8zs5lhva+IiKSGjdtreGn9dgCys4xPHXtIxBGlnlBnbHP3BcCCNmXf7qDu6WHGIiIi/cv8pS0ztJ06YSSjBg+IMJrUpLvpRUQk6dydP77SMsGL7g3vGSVxERFJupc3vM/arXsAGJSXzdmTRkccUWpSEhcRkaSbu6hlGpGZUw6hIE/rcfWEkriIiCTVrtp6HlnW8nv47OlFEUaT2pTERUQkqeYv2UxtfXBv+FEHD+bYwqERR5S6lMRFRCSp5i6qir+ePX2cplntBSVxERFJmhWbdrJi0y4A8nKymLX2eSgpgays4LmyMtL4Uo1GEoiISNIktsLPPaCWoV+5EmpqgoING6CsLHhdWhpBdKlHLXEREUmKvXWNPPxqwoC2P9zWksCb1dTAnDlJjix1KYmLiEhSLFi+hd37gnXDS0YUcOLLT7Zfsaqq/XL5ECVxERFJisSu9M9ML8KKOri1rKNy+RAlcRERCd2adz9g0fr3AcjJMi6eOhbKy6GgoHXFgoKgXLpFSVxEREL3u4RW+FkTD+KgwfnB4LWKCiguBrPguaJCg9r2g0ani4hIqOoamvjDKy3rhs8+IaG7vLRUSbsX1BIXEZFQ/XX1O2zfUwfAIUPzOW3CqIgjSh9K4iIiEqr7X2rpSr9k2jiyszRDW19REhcRkdBs3F7Ds2veA4KfvS+ZVhhxROlFSVxERELz+8UbcQ9enzphFIXDCjo/QPaLkriIiISiscl5YHF1fPuy6eMijCY9KYmLiEgonn79Xd7eVQvAiEF5nDVxdMQRpR8lcRERCcWvn30r/vrTUwvJy1HK6Wu6oiIi0udWbNrJc2u3AZCdZXz+o8URR5SelMRFRKTP/Wrhuvjrc48ZowFtIVESFxGRPrV5x17+tGxLfPvKU8dHGE16UxIXEZE+dfdz62lsCu4rO3H8cI4tPDDagNKYkriIiPSZXbX1/PbFlhnaypqqoKQEsrKC58rKyGJLR1oARURE+szvXtrIB/saADhsQCNn/NsVULMn2LlhA5SVBa+16EmfUEtcRET6RH1jE3f9veW2si8vnEtWcwJvVlMDc+YkObL0pSQuIiJ9YsHyLWzeGUzuMvKAPGYt/EP7Fauq2i+X/aYkLiIivebu3JFwW9nnTyohf+yY9isXFbVfLvtNSVxERHrt+XXbWLFpFwADcrKCyV3Ky6Ggzf3hBQVBufQJJXEREem1O55paYVfMq2Q4YPygsFrFRVQXBysQ1pcHGxrUFuf0eh0ERHplTff2c1Tr28Fglx9xSmHtuwsLVXSDpFa4iIi0iu/WtgyIv3siaMZP3JQhNFkFiVxERHpsXd31/LQq5vi22WnHdpJbelrSuIiItJj9z6/gbrGJgCmjDuQqcXDIo4osyiJi4hIj+yoqeOe59bHt8t+9k1s/HhNrZpEGtgmIiI9cvvTa9lVG0yxWrJ9M59843nwJk2tmkRqiYuIyH6rfr+GuxNa4dc9cw/ZHnSra2rV5FESFxGR/XbLE29Q1xAk7cmbX+fc1//euoKmVk2KUJO4mc0ws9fNbI2ZXd/O/mvMbJWZLTOz/zOz4jDjERGR3lu5eScPLWkZkf7vT92Jta2kqVWTIrQkbmbZwG3AOcAk4DIzm9Sm2qvANHc/FngQ+O+w4hERkb5x42Ov4R68/vjgek7c/lbrCppaNWnCbImfAKxx93XuXgfMBS5IrODuT7l7TWzzBaAwxHhERKSXFr65lYVvvgdAlsE3v3yWplaNUJij08cCGxO2q4ETO6l/BfBYiPGIiEgvNDU5P1zwWnz7kqnjmDB6sKZWjVC/GNhmZp8DpgE3dbC/zMwWm9nirVu3Jjc4EZFMV1kJJSU8fOxZrNoSrFSWn5vF188+IuLAJMwkvgkYl7BdGCtrxcw+DswBZrr7vvZO5O4V7j7N3aeNGjUqlGBFRKQdlZVQVkZt9WZuPvVz8eIrDqzh4KH5EQYmEG4SXwRMMLPxZpYHzAbmJ1Yws+OAXxIk8HdDjEVERHpizhyoqeHe4z/FpqGjARhes5N/+oXuA+8PQkvi7t4AXA08DqwGHnD3lWb2PTObGat2E3AA8HszW2Jm8zs4nYiIRKGqip0DBvHzj14aL/rqc3MZsvaNCIOSZqFOu+ruC4AFbcq+nfD642G+v4iI9FJREbePP5OdAwcHm+9vofTVx3QfeD+hudNFRKRDm77zA+5aOTC+fd0zvyEvP0/3gfcT/WJ0uoiI9D/uzg1+OHU5eQAcu+VNztu7UfeB9yNK4iIiEr+NjKys4LmyksoXq3jmjeC2XjP41n9+gaz1bymB9yNK4iIimS52GxkbNoA7bNjAhn/7Fj+Yvzxe5cunjGd6yfAIg5T2KImLiGS62G1kzRoti2vPuoqapmBZk8MPOoBrP3FkVNFJJ5TERUQyXZtlQ381/UIWF34EgOws45ZLJ5Ofmx1FZNIFJXERkUyXcLvY6yOL+Z9TPx/fvvqMwzm28MAIgpLuUBIXEckU7QxeA4LbxQoKqM/K5przvk5dTi4Axwxs4OozD48sXOma7hMXEckEzYPXmn/73rAh2Ib4aPOf3f8cKw8OknaeObdcdSa52Wrr9Wf6ryMikgnaDF4Dgu05wRzoS087j9uOPS++67pzJgXLjEq/piQuIpIuOuouhw8NXkssr61v5JoHltDY5ACcUDKcL50yPvRwpfeUxEVE0kE793pTVtaSyDua67yoiB/9+TXWbt0DQEFeNjdfMpnsLEtS4NIbSuIiIumgi+7y5sFrrRQUcN81N3HX39fHi/7jvEkUjWhTT/otJXERkVTSUZd5J93lQDB4raICiouDOVSLi/nLzXfy7S0tCfvsSaO57IRxoYYvfUtJXEQkVXTWZd5Jd3lcaSmsXw9NTbz6zKt8dfMQYj+DM7lwKD+dPQUzdaOnEiVxEZH+pLPBaZ11mXfQXd7ekqHr39vDFfcspra+CYCi4QX8+ovTKcjTXcepRklcRKS/6GpwWmdd5u10l7e3ZOh7H+zj8rteYvueOgCGFeRyz5dOYOQBA8L8ZBISJXERkWTrqLXd1eC0rrrME7rLWb/+Qwm8pq6BK+5exIZtwXvk52bx6y9OZ/zIQX3xqSQC6jsREUmmzmZO62pwWnl562Ohwy7zthoam/jqb19lafVOALIMfnbZ8RxfNKynn0T6AbXERUTC0JPWdnda2t3oMm/L3fnWwyv5v9fejZf95wVHc/ak0T37bNJvqCUuItLXetravvferlvapaVdJu1E9Y1NfPvhFdz/0sZ42VdOP4zPn1Tc7XNI/6WWuIhIT/R0FHlnre0etrQ7snNvPf9416JWCXzWcWP5xieP7NH5pP9RS1xEZH91tSJYb1rb+9nS7kjVthq+dM8i1rz7Qbxs1nFj+dHFx+pe8DSilriIyP7qzSjyPm5tt+flDduZdfvfWyXwa84+glsunUxejr7204n+a4qIdKSnU5x2NfFKF7eC9cb8pZu57I4X2Ra7DzwvJ4ufzp7Cv5w1QS3wNKTudBGR9nTWZV5UFGy3lTiKHIKWeVVVUF5e3qfJui1352dPruGWv7wRLxs+KI87vjCVqcXDQ3tfiZa5e9Qx7Jdp06b54sWLow5DRNJdSUn7ibq4uOP7tfu4W7y73t1dy3ceXsljK96Olx02ahB3ffEErUiWBszsZXef1t4+tcRFRNrT1RSnkNSWdnuampwHFm/kBwtWs6u2IV7+scNHcHvpVIYOzE1qPJJ8+k1cRDJbR79793KK07CtefcDZle8wPV/XN4qgX/2xCLu/scTlMAzhFriIpK5OvvduxdTnIZpX0Mj//v0Wm5/ai11jU3x8qLhBZTPOppTJ4yKMDpJNiVxEclcnd0qtn59S50Iu8wTvfTWdm744zLWbt0TL8vOMspOO5R/OXMCA/OyI4tNoqHudBFJfZ3NntbZvq5uFYu4yxyCUecL39zK5371Ipf+8vlWCXzKuAN55Kun8M0ZRymBZyi1xEWk/6us7LhF3FmXOHQ+s1pXt4pFqKGxiUeXb+GXf1vHqi27Wu07YEAO133ySD53UjHZWbr3O5OpJS4iydOTFnNzkt6wAdxbEnF3VgXrama1riZliUBNXQP3PLee029+mq/NXdIqgWcZXDDlEP5yzWlcfnKJErgoiYtkpJ52P/f2vB0l4872dZWIO+sS7053echToHaHu/NK1fv81yOr+NiNT/Kd+Supfn9vfH9+bhaXf7SYv113Bj+dfRxjhg5ManzSf2myF5F01VEXdNvuZ2iZqAS6nsSkJ+ctLe188hToeF9VVZDY2zILfqvu6XmbB65FxN15deMOFizbwoLlW9i8s/ZDdYYV5HL5ySV84aMlDB+UF0GU0h90NtmLkrhIqtqf34mhJaHOmdPzpNfT865fH7TOO0rG0PG+jn637k5M0K9mVqtraGJZ9Q7+vOJtHlvxNpt27G23XuGwgZSddiiXTB2nAWvSaRLH3VPqMXXqVBcJxX33uRcXu5sFz/fd1zfHdnXenhx7333uBQXuQeoLHgUFLfuLi1vva340n6u9fWad7+vNebs6trN9XX3W3l7/EO3ZV+/PvrnVb3nidZ/9y+f9yP9Y4MXffKTdx7Hffdyv+/0Sf+q1d7y+oTFpMUr/Byz2DnJi5El5fx9K4hmip1/KPU2YXSWKrt6zo2O7c96eHNtZ0nPvPKH2NJn25rx9cZ0iSsTdta++0V/bsssfXrLJyx9d5Rf8/Fk/7IZHO0zabRN3nRK3dEBJXMIRRguzeV9Pvux7kzB70xLsTVLs6bG9afX25hqmaYt5f9Tsa/A339ntjy3f4j/96xv+z5Uv+8f/5+kuE3bz45Qf/Z9/4/dLlbil25TEeyLZLcGoztvTY8NqYbr3PLH1JmH2poXZm+7pnh7bm1Zvb/8dpniLuTN76xp84/Y9vqTqfX9i5dt+17Pr/L8eWelfuW+xn/+zhX78957oVqJOfJx9y9M+56FlPu/Vat+8oybqjygpqLMkHurANjObAfwUyAZ+5e43ttk/APgNMBXYBnzG3dd3ds6kDGzr6UCZzvb1ZlRwWOftzbFdDWLqzYjhng6A6mxfU1Pn5+1s8FSYo6N7emx3lsLsbOBbb4R13j7Q1OTsrW+kpq6RvXWN7KlrYNfeenbXNrCrtr7N6wa219Sx7YN9bNtTx3u797GnrrFX7184bCBHjh7MEQcP5viiYUwrHsYwjSqXXopkdLqZZQNvAGcD1cAi4DJ3X5VQ55+BY939KjObDcxy9890dt6+SuJNTc6euob2dx59DGxs5/7ScbFZnHqyb8Xy/nfe3hxbvbHjxLZjBxx4YM+S7Y4d+x2TY1A0Ltio2vjh44rGwfLlcMwxHe//1rfga1+DmpbRwl5QAD/9KXz/+7CxnePGjYOly+DB38O//murhOoFBfDjnwQbX/9X2JswCnngQPzHP4FPfxoefBC/5ppW+33gQLjlluD1tdfC3r3BZ2w+9uab4eKL4A9/hBtvhE2b8LGFcP038VkXxa6Jxy+xE/S4Qctldw/qNDX3xsX3eWwfNLnHm9tNsQObPDimKdYKaPLg/6XmssYmpzG2r7EJGps8Xt7kTkNj8LqhyWlsaoo9O/WNTkNjE/WNTdQ3OfUNrV/va2hiX0MjdfHXLdvNCbumrpG99b1Lwt2Rk2UcPDSfkhGDOPLgwRwx+gCOGD2YCaMHc8AATYIpfS+qJP5R4Lvu/snY9g0A7v7DhDqPx+o8b2Y5wNvAKO8kqL5K4lXbajjtpqd6fR4RSR+52caIQQMYcUAeIw4YwNgDB1I4bCBjDxzI2Njz6CH5milNkqqzJB7mn41jgcTmSzVwYkd13L3BzHYCI4D3EiuZWRlQBlDUD+Y0FpH+Kz83i4K8HArysinIy2ZIfi6D83MYMjC31evB+TkMLwiS9YgD8hg5aABDBuZgpgQtqSMl+n7cvQKogKAl3hfnNKPjrq/6eqjdG/Qpxg8A8mNTHfZkX25u/ztvXxy7rxaaPJjUeUB+UN6ss/1dHbufQvva7eLEne3uKhkk7m5bM/FYi5d9+J3bO0dzmWEJr9uc04JHlll8n8UqGrFyazlH8/7sLCMrtp0VOz4rqEi2WbA/VifbgtfN5dlZRk7zc3ZwXE6sfl52FrnZWeRkG7nZWeTGnnOys8jLNgbkZDMgJ4sBuVnx13mxR0FuDgNjCXtgbjZZaiVLJuloxFtvH8BHgccTtm8AbmhT53Hgo7HXOQQtcOvsvBqd3k9Gp4uISFIQxej02G/cbwBnAZsIBrZ91t1XJtT5f8Ax3jKw7SJ3v7Sz82raVRERySSR/CbuwW/cVxO0trOBO919pZl9j+CvivnAr4F7zWwNsB2YHVY8IiIi6SbU38TdfQGwoE3ZtxNe1wKXhBmDiIhIutJ64iIiIilKSVxERCRFKYmLiIikKCVxERGRFKUkLiIikqKUxEVERFKUkriIiEiKCnU98TCY2VagnUWWU95I2iz8Ih3SteoeXafu07XqHl2n7unr61Ts7qPa25FySTxdmdnijqbVk9Z0rbpH16n7dK26R9epe5J5ndSdLiIikqKUxEVERFKUknj/URF1AClE16p7dJ26T9eqe3Sduidp10m/iYuIiKQotcRFRERSlJJ4SMxshpm9bmZrzOz6dvYXm9n/mdkyM3vazApj5WeY2ZKER62ZXRjbd7eZvZWwb0pyP1Xf6+l1iu37bzNbaWarzexWM7NY+VQzWx47Z7w81YV0rZ6OnbP539RByfxMYejldfqRma2IPT6TUD7ezF6MnfN3ZpaXrM8TlpCuUzp+R91pZu+a2YoO9lvs/6k1sWt1fMK+y83szdjj8oTyvvuOcnc9+vgBZANrgUOBPGApMKlNnd8Dl8denwnc2855hgPbgYLY9t3Ap6P+fP3hOgEnA3+PnSMbeB44PbbvJeAkwIDHgHOi/qz9+Fo9DUyL+vP1k+t0HvAXIAcYBCwChsT2PQDMjr3+BfCVqD9rP71OafUdFftMpwHHAys62H9u7HvGYt87L8bKhwPrYs/DYq+Hxfb12XeUWuLhOAFY4+7r3L0OmAtc0KbOJODJ2Oun2tkP8GngMXevCS3SaPXmOjmQT/AFNADIBd4xszEEXygvePB/y2+AC0P9FMnR59cq9Iij0ZvrNAl4xt0b3H0PsAyYEWslnQk8GKt3D6n/b6rPr1MSYo6Euz9D0JjqyAXAbzzwAnBg7Hvok8Bf3H27u79P8IfPjL7+jlISD8dYYGPCdnWsLNFS4KLY61nAYDMb0abObOD+NmXlsS6bH5vZgL4KOCI9vk7u/jzBF8uW2ONxd18dO766i3OmojCuVbO7Yl2f30qDnx568//eUoIv2QIzGwmcAYwDRgA73L2hk3OmmjCuU7N0+o7qjo6uZWflffYdpSQenX8D/sHMXgX+AdgENDbvjP21dgzweMIxNwBHAdMJumi+mbRoo9PudTKzw4GJQCHB/wBnmtmp0YXZL/TkWpW6+zHAqbHH55MfdtK1e53c/QlgAfAcwR/Pz5Pw/2QG6sl1ysTvqEgpiYdjE63/Mi2MlcW5+2Z3v8jdjwPmxMp2JFS5FHjI3esTjtkS67LZB9xF0CWWynpznWYBL7j7B+7+AcHvSh+NHV/Y2TlTVBjXCnffFHveDfyWzP43hbuXu/sUdz+b4PfKN4BtBF2kOR2dMwWFcZ3S8TuqOzq6lp2V99l3lJJ4OBYBE2IjWvMIusXnJ1Yws5Fm1nz9bwDubHOOy2jTlR5rnRPr8rwQaHe0ZArpzXWqImgl5JhZLkFLYbW7bwF2mdlJsev0BeDhZHyYkPX5tYptj4wdmwt8igz+N2Vm2c0/aZnZscCxwBOx3y2fIhijAnA5qf9vqs+vU2w73b6jumM+8IXYKPWTgJ2x76HHgU+Y2TAzGwZ8guCnrL79jurLUXx6fGjE4hsEI0DnxMq+B8yMvf408Gaszq+AAQnHlhD8ZZbV5pxPAssJ/se4Dzgg6s8Z1XUiGF37S2A1sAq4JeGc02LXaC3wc2KTGqX6o6+vFcHI4pcJBiatBH4KZEf9OSO8Tvmx67MKeAGYknDOQwlGFK8hGLU9IJmfKYWuUzp+R91PMJaknuD36yuAq4CrYvsNuC12HZeTcLcH8KXYv5k1wD8mlPfZd5RmbBMREUlR6k4XERFJUUriIiIiKUpJXEREJEUpiYuIiKQoJXEREZEUpSQukuFi97c+a2bnJJRdYmZ/jjIuEemabjETEczsaIL7n48jWJ3qVWCGu6/twblyvGWecREJkZK4iADBmuPAHoJJYPYAxcDRBKuefdfdHzazEuDeWB2Aq939OTM7Hfg+8D5wlLsfkdzoRTKTkriIAGBmg4BXgDrgEWClu99nZgcSzFZ2HMGypk3uXmtmE4D73X1aLIk/Chzt7m9FEb9IJsrpuoqIZAJ332NmvwM+IFiA53wz+7fY7nygCNgM/NzMphCsXJXY4n5JCVwkuZTERSRRU+xhwMXu/nriTjP7LvAOMJlgYGxtwu49SYpRRGI0Ol1E2vM48NXYKkuY2XGx8qHAFndvIlh7PDui+EQEJXERad/3CQa0LTOzlbFtgNuBy81sKXAUan2LREoD20RERFKUWuIiIiIpSklcREQkRSmJi4iIpCglcRERkRSlJC4iIpKilMRFRERSlJK4iIhIilISFxERSVH/H7Y4UMEgDYVCAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "x = np.linspace(1960, 2015, 55)\n", + "x = x/max(x)\n", + "plt.figure(figsize=(8,5))\n", + "y = sigmoid(x, *popt)\n", + "plt.plot(xdata, ydata, 'ro', label='data')\n", + "plt.plot(x,y, linewidth=3.0, label='fit')\n", + "plt.legend(loc='best')\n", + "plt.ylabel('GDP')\n", + "plt.xlabel('Year')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Practice\n", + "\n", + "Can you calculate what is the accuracy of our model?\n" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "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": [ + "# write your code here\n", + "# split data into train/test\n", + "msk = np.random.rand(len(df)) < 0.8\n", + "train_x = xdata[msk]\n", + "test_x = xdata[~msk]\n", + "train_y = ydata[msk]\n", + "test_y = ydata[~msk]\n", + "\n", + "# build the model using train set\n", + "popt, pcov = curve_fit(sigmoid, train_x, train_y)\n", + "\n", + "# predict using test set\n", + "y_hat = sigmoid(test_x, *popt)\n", + "\n", + "# evaluation\n", + "print(\"Mean absolute error: %.2f\" % np.mean(np.absolute(y_hat - test_y)))\n", + "print(\"Residual sum of squares (MSE): %.2f\" % np.mean((y_hat - test_y) ** 2))\n", + "from sklearn.metrics import r2_score\n", + "print(\"R2-score: %.2f\" % r2_score(test_y,y_hat) )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python\n", + "# split data into train/test\n", + "msk = np.random.rand(len(df)) < 0.8\n", + "train_x = xdata[msk]\n", + "test_x = xdata[~msk]\n", + "train_y = ydata[msk]\n", + "test_y = ydata[~msk]\n", + "\n", + "# build the model using train set\n", + "popt, pcov = curve_fit(sigmoid, train_x, train_y)\n", + "\n", + "# predict using test set\n", + "y_hat = sigmoid(test_x, *popt)\n", + "\n", + "# evaluation\n", + "print(\"Mean absolute error: %.2f\" % np.mean(np.absolute(y_hat - test_y)))\n", + "print(\"Residual sum of squares (MSE): %.2f\" % np.mean((y_hat - test_y) ** 2))\n", + "from sklearn.metrics import r2_score\n", + "print(\"R2-score: %.2f\" % r2_score(test_y,y_hat) )\n", + "\n", + "```\n", + "\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\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\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Thank you for completing this lab!\n", + "\n", + "## Author\n", + "\n", + "Saeed Aghabozorgi\n", + "\n", + "### Other Contributors\n", + "\n", + "Joseph Santarcangelo\n", + "\n", + "## Change Log\n", + "\n", + "| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n", + "| ----------------- | ------- | ---------- | ---------------------------------- |\n", + "| 2020-11-03 | 2.1 | Lakshmi | Made changes in URL |\n", + "| 2020-08-27 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n", + "| | | | |\n", + "| | | | |\n", + "\n", + "##

© IBM Corporation 2020. All rights reserved.

\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}