{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Quick Start\n", "\n", "This quick start will show how to do the following:\n", "\n", "- `Install` everything needed to use pyGAM.\n", "- `fit a regression model` with custom terms\n", "- search for the `best smoothing parameters`\n", "- plot `partial dependence` functions\n", "\n", "\n", "## Install pyGAM\n", "#### Pip\n", "\n", " pip install pygam\n", "\n", "\n", "#### Conda\n", "pyGAM is on conda-forge, however this is typically less up-to-date:\n", "\n", " conda install -c conda-forge pygam\n", " \n", "\n", "#### Bleeding edge\n", "You can install the bleeding edge from github using `poetry`.\n", "First clone the repo, ``cd`` into the main directory and do:\n", "\n", " pip install -e ." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Get `pandas` and `matplotlib`\n", "\n", " pip install pandas matplotlib\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fit a Model\n", "\n", "Let's get to it. First we need some data:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/dswah/miniconda3/envs/pygam36/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88\n", " return f(*args, **kwds)\n" ] } ], "source": [ "from pygam.datasets import wage\n", "\n", "X, y = wage()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's import a GAM that's made for regression problems.\n", "\n", "Let's fit a spline term to the first 2 features, and a factor term to the 3rd feature." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from pygam import LinearGAM, f, s\n", "\n", "gam = LinearGAM(s(0) + s(1) + f(2)).fit(X, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's take a look at the model fit:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LinearGAM \n", "=============================================== ==========================================================\n", "Distribution: NormalDist Effective DoF: 25.1911\n", "Link Function: IdentityLink Log Likelihood: -24118.6847\n", "Number of Samples: 3000 AIC: 48289.7516\n", " AICc: 48290.2307\n", " GCV: 1255.6902\n", " Scale: 1236.7251\n", " Pseudo R-Squared: 0.2955\n", "==========================================================================================================\n", "Feature Function Lambda Rank EDoF P > x Sig. Code \n", "================================= ==================== ============ ============ ============ ============\n", "s(0) [0.6] 20 7.1 5.95e-03 ** \n", "s(1) [0.6] 20 14.1 1.11e-16 *** \n", "f(2) [0.6] 5 4.0 1.11e-16 *** \n", "intercept 1 0.0 1.11e-16 *** \n", "==========================================================================================================\n", "Significance codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n", "\n", "WARNING: Fitting splines and a linear function to a feature introduces a model identifiability problem\n", " which can cause p-values to appear significant when they are not.\n", "\n", "WARNING: p-values calculated in this manner behave correctly for un-penalized models or models with\n", " known smoothing parameters, but when smoothing parameters have been estimated, the p-values\n", " are typically lower than they should be, meaning that the tests reject the null too readily.\n" ] } ], "source": [ "gam.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Even though we have 3 terms with a total of `(20 + 20 + 5) = 45` free variables, the default smoothing penalty (`lam=0.6`) reduces the effective degrees of freedom to just ~25." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By default, the spline terms, `s(...)`, use 20 basis functions. This is a good starting point. The rule of thumb is to use a fairly large amount of flexibility, and then let the smoothing penalty regularize the model.\n", "\n", "However, we can always use our expert knowledge to add flexibility where it is needed, or remove basis functions, and make fitting easier:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "gam = LinearGAM(s(0, n_splines=5) + s(1) + f(2)).fit(X, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Automatically tune the model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By default, spline terms, `s()` have a penalty on their 2nd derivative, which encourages the functions to be smoother, while factor terms, `f()` and linear terms `l()`, have a l2, ie ridge penalty, which encourages them to take on smaller values.\n", "\n", "`lam`, short for $\\lambda$, controls the strength of the regularization penalty on each term. Terms can have multiple penalties, and therefore multiple `lam`." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0.6], [0.6], [0.6]]\n" ] } ], "source": [ "print(gam.lam)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our model has 3 `lam` parameters, currently just one per term.\n", "\n", "Let's perform a grid-search over multiple `lam` values to see if we can improve our model. \n", "We will seek the model with the lowest generalized cross-validation (GCV) score.\n", "\n", "Our search space is 3-dimensional, so we have to be conservative with the number of points we consider per dimension.\n", "\n", "Let's try 5 values for each smoothing parameter, resulting in a total of `5*5*5 = 125` points in our grid." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100% (125 of 125) |######################| Elapsed Time: 0:00:07 Time: 0:00:07\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "LinearGAM \n", "=============================================== ==========================================================\n", "Distribution: NormalDist Effective DoF: 9.2948\n", "Link Function: IdentityLink Log Likelihood: -24119.7277\n", "Number of Samples: 3000 AIC: 48260.0451\n", " AICc: 48260.1229\n", " GCV: 1244.089\n", " Scale: 1237.1528\n", " Pseudo R-Squared: 0.2915\n", "==========================================================================================================\n", "Feature Function Lambda Rank EDoF P > x Sig. Code \n", "================================= ==================== ============ ============ ============ ============\n", "s(0) [100000.] 5 2.0 7.54e-03 ** \n", "s(1) [1000.] 20 3.3 1.11e-16 *** \n", "f(2) [0.1] 5 4.0 1.11e-16 *** \n", "intercept 1 0.0 1.11e-16 *** \n", "==========================================================================================================\n", "Significance codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n", "\n", "WARNING: Fitting splines and a linear function to a feature introduces a model identifiability problem\n", " which can cause p-values to appear significant when they are not.\n", "\n", "WARNING: p-values calculated in this manner behave correctly for un-penalized models or models with\n", " known smoothing parameters, but when smoothing parameters have been estimated, the p-values\n", " are typically lower than they should be, meaning that the tests reject the null too readily.\n" ] } ], "source": [ "import numpy as np\n", "\n", "lam = np.logspace(-3, 5, 5)\n", "lams = [lam] * 3\n", "\n", "gam.gridsearch(X, y, lam=lams)\n", "gam.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is quite a bit better. Even though the in-sample $R^2$ value is lower, we can expect our model to generalize better because the GCV error is lower.\n", "\n", "We could be more rigorous by using a train/test split, and checking our model's error on the test set. We were also quite lazy and only tried 125 values in our hyperopt. We might find a better model if we spent more time searching across more points." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For high-dimensional search-spaces, it is sometimes a good idea to try a **randomized search**. \n", "We can achieve this by using numpy's `random` module:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "lams = np.random.rand(100, 3) # random points on [0, 1], with shape (100, 3)\n", "lams = lams * 6 - 3 # shift values to -3, 3\n", "lams = 10**lams # transforms values to 1e-3, 1e3" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100% (100 of 100) |######################| Elapsed Time: 0:00:07 Time: 0:00:07\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "LinearGAM \n", "=============================================== ==========================================================\n", "Distribution: NormalDist Effective DoF: 15.6683\n", "Link Function: IdentityLink Log Likelihood: -24115.6727\n", "Number of Samples: 3000 AIC: 48264.6819\n", " AICc: 48264.8794\n", " GCV: 1247.2011\n", " Scale: 1235.4817\n", " Pseudo R-Squared: 0.2939\n", "==========================================================================================================\n", "Feature Function Lambda Rank EDoF P > x Sig. Code \n", "================================= ==================== ============ ============ ============ ============\n", "s(0) [137.6336] 20 6.3 7.08e-03 ** \n", "s(1) [128.3511] 20 5.4 1.11e-16 *** \n", "f(2) [0.3212] 5 4.0 1.11e-16 *** \n", "intercept 1 0.0 1.11e-16 *** \n", "==========================================================================================================\n", "Significance codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n", "\n", "WARNING: Fitting splines and a linear function to a feature introduces a model identifiability problem\n", " which can cause p-values to appear significant when they are not.\n", "\n", "WARNING: p-values calculated in this manner behave correctly for un-penalized models or models with\n", " known smoothing parameters, but when smoothing parameters have been estimated, the p-values\n", " are typically lower than they should be, meaning that the tests reject the null too readily.\n" ] } ], "source": [ "random_gam = LinearGAM(s(0) + s(1) + f(2)).gridsearch(X, y, lam=lams)\n", "random_gam.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this case, our deterministic search found a better model:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gam.statistics_[\"GCV\"] < random_gam.statistics_[\"GCV\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `statistics_` attribute is populated after the model has been fitted.\n", "There are lots of interesting model statistics to check out, although many are automatically reported in the model summary:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['n_samples',\n", " 'm_features',\n", " 'edof_per_coef',\n", " 'edof',\n", " 'scale',\n", " 'cov',\n", " 'se',\n", " 'AIC',\n", " 'AICc',\n", " 'pseudo_r2',\n", " 'GCV',\n", " 'UBRE',\n", " 'loglikelihood',\n", " 'deviance',\n", " 'p_values']" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(gam.statistics_.keys())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Partial Dependence Functions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of the most attractive properties of GAMs is that we can decompose and inspect the contribution of each feature to the overall prediction. \n", "\n", "This is done via **partial dependence** functions.\n", "\n", "Let's plot the partial dependence for each term in our model, along with a 95% confidence interval for the estimated function." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEICAYAAABPgw/pAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xd81FXW+PHPTUIoIdTQSaH3HkpAVhFQEAQ7ghR3VXTVXdd1ddVdXeuufXUfV10eVyUIii5YVkVFxIIMgdCk90wKJYQQWkid+/vjTB4iPzBtes779ZpXJt9p58uEM3fuPfdeY61FKaVU8AvzdwBKKaU8QxO6UkqFCE3oSikVIjShK6VUiNCErpRSIUITulJKhQhN6KpWMsb0NMakGmNMJe57uTFmoS/iUqomNKGr2upx4DnrnohhjGlmjPnAGHPKGOM0xkwru6O19r9AL2NMX38Fq1RlaEJXtY4xpg0wCviw3OF/AkVAK+AG4FVjTK9yt78DzPZZkEpVgyZ0FdKMMX80xmQZY04YY3YYY0YDY4F11toC932igKuBh6y1J621K4CPgRnlnuobYIKPw1eqSjShq5BljOkG3AkMttZGA5cCaUAfYEe5u3YFSqy1O8sd2wiUb6FvAxKMMY28GrRSNaAJXYWyUqAu0NMYU8dam2at3QM0AU6Uu19D4PhZjz0GRJf7vez+TbwVrFI1pQldhSxr7W7gd8AjQLYx5l1jTFvgKD9N1ieBs1vejfhp0i+7f553olWq5jShq5BmrV1grb0AiAcs8DTwI9LNUmYnEGGM6VLuWD9gS7nfewBp1tqzW/JKBQxN6CpkGWO6GWMuNsbUBQqA04ALWAoMNMbUA7DWngIWA48ZY6KMMSOAycC8ck93IbDEpyegVBVpQlehrC7wFJADHARaAg9Yaw8BXyNJu8ztQH0gGylR/LW1tnwLfSrwL18ErVR1Gd3gQtVGxpiewFxgiK3gP4Ex5nJghrX2Op8Ep1Q1aUJXSqkQoV0uSikVIjShK6VUiNCErpRSISLCly8WExNjExISfPmSSikV9NauXZtjrW1R0f18mtATEhJITU315UsqpVTQM8Y4K3M/7XJRSqkQoQldKaVChCZ0pZQKEZrQlVIqRGhCV0qpEKEJXSmlQoQmdKWUChGa0JVSyptOnICDB33yUprQlVLKm+rXh9df98lLaUJXSilPS0uD6dPh6FGIiID77/fJy2pCV0opTykpgRdegF694KOPYN06OR7hm1VWNKErpZQnbNgAw4bBPffAxRfDli0werRPQ6gwoRtjYo0xy40xW40xW4wxd7mPP2uM2W6M+dEY84Expon3w1VKqQD1yCOQkQELF8LHH0NcnM9DqEwLvQS4x1rbExgG3OHej3Ep0Nta2xfYCTzgvTCVUioALVsGe/fK9ddeg+3b4brrwBi/hFNhQrfWHrDWrnNfPwFsA9pZa7+01pa477YKaO+9MJVSKoAcOQI33ghjxsBf/yrHWreGpk39GlaV+tCNMQnAACDlrJt+BSw5z2NmG2NSjTGphw8frk6MSikVGKyF+fOhe3f5+eCD8D//4++o/k+lE7oxpiGwCPidtfZ4ueN/Qrpl5p/rcdbaOdbaRGttYosWFW64oZRSgeuVV6QcsVMnqWB58kmpMw8QlaqlMcbUQZL5fGvt4nLHbwQmAqOttdYrESqllD+VlMCBAxAbCzNmSAnizTdDeLi/I/v/VKbKxQD/BrZZa18od3wccB8wyVqb770QlVLKT9avl1LEceOguBgaNYJbbw3IZA6V63IZAcwALjbGbHBfLgNeBqKBpe5jr3kzUKWU8pn8fLjvPhg8GDIzpSTRR5ODaqLCCK21K4Bz1eB85vlwlFLKz/buleqVffuka+WZZ/xevVJZgf+Ro5RSvuByQViYTAgaPBjefBMuvNDfUVWJTv1XStVu1sK8edC375nFtBYuDLpkDprQlVK12Z49cMklMHOmDHjm5fk7ohrRhK6Uqn1cLukb79MHUlLg5ZdhxQro0MHfkdWI9qErpWofY+D77+HSSyWZt2vn74g8QlvoSqna4eRJ+MMfpJvFGHjvPfjgg5BJ5qAJXSlVG3z2mWw68fzz8MUXciyApux7iiZ0pVToOngQrr8eJkyAhg2ln/z22/0dlddoQldKha7nnpNulccfl2n8I0b4OyKv0kFRpVRo2bFDpu4PGAAPPwy33ALduvk7Kp/QFrpSKjQUFUlLvG9f+O1v5VijRrUmmYMmdKVUKPjhhzMt8quugvff93dEfqFdLkqp4LZ0qcz2jI+Xapbx4/0dkd9oC10pFXyshawsuT5qlMz63Ly5Vidz0ISulAo26ekwaRIMHHhmMa1775WyxFpOE7pSKjiUlsJLL0HPnvD117IBRXS0v6MKKNqHrpQKfMeOyaYTqanSrfLKK5CQ4O+oAo620JVSgcvlkp+NGkG/fvDOO/Dpp5rMz0MTulIqMH3+OfTufWYxrddfl2n85lw7YirQhK6UCjSHDsG0adK14nJJd4uqFE3oSqnA8eab0KMHLFoEjzwCGzdKNYuqFE3oSqnAsW6d7CK0cSP85S9Qt66/I6qxA8dO88LSnRw7Xez119IqF6WU/xQUwFNPwdixshLic89BnToQFtxtTWstjr1HmOdw8uXWQ7ispVfbRlzaq7VXX1cTulLKP775Bm69FXbulBrzESOCvkV+srCED9Zlkuxwsiv7JE0a1OHmkR2YPjSe2GYNvP76mtCVUr515IjM7HzzTdmU+fPPZW/PILY7+yTzHGksWpfFycIS+rRrzDPX9GVSv7bUqxPuszg0oSulfOvtt2HePLj/fnjoIWjg/ZarN5SUuli2PZt5DicrducQGR7GhL5tmJkUT//YJhg/lFdqQldKed/u3eB0wujRcMcd0mfes6e/o6qWIycLWZiawfxV6WTlnaZt43rce2k3pgyOJaahf7uMKkzoxphYIBloBVhgjrX2JWNMM2AhkACkAddZa496L1SlVNApKoJnn5WNJ+LiYNs2WUwrCJP5how8kh1pfLLxAEWlLkZ0bs5DE3sypkdLIsIDYxC3Mi30EuAea+06Y0w0sNYYsxS4EVhmrX3KGHM/cD/wR++FqpQKKitWyKDn1q1wzTWysFa47/qTPaGguJRPfzxAsiONjZnHiIoM5/ohscwYFk+XVoG3MFiFCd1aewA44L5+whizDWgHTAYuct9tLvANmtCVUiD15CNHyqYTn3wCEyb4O6IqyTyaz/yUdBauySD3VBGdWkTx6KReXDWwHdH16vg7vPOqUh+6MSYBGACkAK3cyR7gINIlo5SqrayF7dtlpueAAWfWXomK8ndkleJyWX7Yk8PclU6+3n4IgDE9WnHj8ASSOjX3yyBnVVU6oRtjGgKLgN9Za4+XPzlrrTXG2PM8bjYwGyAuLq5m0SqlAtOePXD77fDdd9JPnpAAN93k76gq5XhBMYvWZjLP4WRvzimaR0Xy64s6MW1oPO2a1Pd3eFVSqYRujKmDJPP51trF7sOHjDFtrLUHjDFtgOxzPdZaOweYA5CYmHjOpK+UClJlg55PPAGRkTLTMzbW31FVyo6DJ0h2pPHB+izyi0oZENeEv0/px2V92lA3Irj6+stUpsrFAP8GtllrXyh308fALOAp98+PvBKhUiowFRTA4MGyl+e118KLL0Lbtv6O6mcVl7pYuvUQyY40Vu3NJTIijEn92jIzKZ6+7Zv4O7waq0wLfQQwA9hkjNngPvYgksjfM8bcBDiB67wTolIqoJw+DfXrQ716MHUq9O8Pl13m76h+1uEThby7Op35KekcPF5Auyb1+eO47kwZHEuzqEh/h+cxxlrf9YIkJiba1NRUn72eUsqDrJUZnvfeK8vbXnCBvyP6WdZa1qUfZe5KJ0s2H6C41DKySwyzkhIY1b0l4WGBP8hZxhiz1lqbWNH9dKaoUqpi27fDr38tC2olJUHTpv6O6LxOF5Xy8cYs5q50svXAcaLrRTB9WDwzhsXTsUVDf4fnVZrQlVI/76mnZG3yBg3gX/+Cm28OyOVt04/k83aKk4VrMjh2upjuraN58sreXNG/HVF1a0eqqx1nqZSqvshIGfR8/nloFVjTTVwuy7e7DjPP4WT5jmzCjOHSXq2YlZTAkA7NgqJ23JM0oSulfurAAfj97+Hyy2Vvz7vvDriNmY/lF/P+2gzeXuUk7Ug+MQ3r8puLuzBtSBytG9fzd3h+owldKSVKS+G11+DBB6UkcdgwOR5AyXzr/uPMWyW14wXFLhLjm/L7S7oxrldrIiMCrxvI1zShK6Vg/XqYPRtSU2HMGHjlFejSxd9RAVBU4uLzLQdJXplGqvMo9eqEcUX/dsxIiqdX28b+Di+gaEJXSsG+fZCRAQsWyPorAdAqP3S8gAUp6SxYnc7hE4XENWvAny7rwXWJsTRuELgLZPmTJnSlaiNrYeFCyM2VNViuvBIuuQQa+resz1rL6n25JK9y8sXmg5Ray4VdWzBreAIXdmlBWBDVjvuDJnSlapudO2XXoK++kiVub7tNyhD9mMzzi0r4cP1+kh1pbD94gkb1IvjliASmD4snvnlwrNYYCDShK1VbnD4Nf/sbPP20TNt/+eUzydxP9uWcYp7DyftrMzhRUEKPNo14+uo+TOrXjvqRwblAlj9pQleqtti2DZ58UkoRn30WWrf2SxilLss3O7KZ63Dy3c7DRIQZxveRzZUT45vWutpxT9KErlQoS0+Hzz6TlvjAgTKF30/VK0dPFfFeagbzVjnJPHqaVo3qcveYrkwdEkvLRrW3dtyTNKErFYqKiuDvf4fHHpOKlSuvlFmefkjmm7OOMXdlGh9v3E9hiYuhHZrxwPgeXNKrFXUCZHPlUKEJXalQs2yZDHru2AFXXCHrlPt4yn5hSSlLNh1kriON9el5NIgM55pB7ZmZlEC31oG3uXKo0ISuVCjJzYXJkyWBf/qpz9cp3593mgUp6by7Jp2ck0V0iIni4Yk9uXpQexrX19pxb9OErlSwKy6G99+XzSaaNYMvvpD+8vq+2Q/TWotj7xHmOZx8ufUQLmsZ3b0lM5ISGNk5RmvHfUgTulLBbPlyuPNO2LoV2rSBUaNgxAifvPTJwhI+WJdJssPJruyTNGlQh5sv6MD0YfHENmvgkxjUT2lCVyoYZWbCPffAe+9Bx47w8ceSzH1gd/ZJ5jnSWLQui5OFJfRu14hnr+nL5f3aUq+O1o77kyZ0pYKNywVjx0JaGjz6KNx3n0wU8qKSUhfLtmeT7Ejjh91HiAwPY0LfNsxIimdAbBOtHQ8QmtCVChZlU/Xr1oU5c6B9e+jQwasveeRkIe+uyWBBSjpZeadp27ge917ajSmDY4lpWNerr62qThO6UoFu927ZZOKTT+Cf/5TFtEaO9OpLbsjII9mRxicbD1BU6mJ4p+Y8fHlPRndvSYTWjlddXh40aeL1l9GErlSgOnkS/vpX2fotMhKeeUb28/SSguJSPv3xAMmONDZmHiMqMpypQ2KZkRRP55ZaO16hwkLYtEnWlE9NhS1bYMUKCA+Hgwc1oStVq91wgwx2zpghC2q1aeOVl8k8ms/8lHQWrskg91QRnVs25LHJvbhyQDui62nt+DkVF0tlUdeuUh766qtw111yHCAmBgYNkpZ58+bQubNPwjLWWp+8EEBiYqJNTU312espFXRWr5Z+8RYtZBehwsIzW8F5kLWWFbtzSHY4WbbtEABje7ZiZlICwzs110HOs+XkwJIlsGaNtL43bJDVK7/+WqqLHA746CNITITBgyEuzqObhBhj1lprEyu6n7bQlQoEWVnwwAMwb56UIz73HAwY4PGXOV5QzKK1mcxb5WTv4VM0j4rktgs7ccOweNo18c1EpIBmLezdK0l7zRqZaXvxxbKj08yZEBUlk7Zuu00Sd58+8rikJLn4mSZ0pfwpP1/6yJ9+Wr6u33+/bNLsYTsOniDZIZsr5xeV0j+2CX+f0o/L+rShbkQtrR23Vr4B1asHJ07ANddIIs/Nldvr1pVKoosvhn79YPNm6N5d+sQDlCZ0pfzpnnvgtdfg6qtl0LNjR489dXGpi6VbD5HsSGPV3lwiI8KY1K8tM5Pi6dve+wN0AScn50zLu+wyZox8K2rYUD5Qr7pKWt6DB0OvXjIYDfKzVy//xl8JmtCV8rXvv5c+8u7d4Y9/lDVYfvELjz394ROFvLs6nfkp6Rw8XkD7pvW5f3x3rkuMpVlUpMdeJ6CdOAFr10J2Nlx3nRwbNUpa2cZAt26SzMePl9uMkf7wIFdhQjfGvAFMBLKttb3dx/oDrwH1gBLgdmvtam8GqlTQ27lTulQ++EAqV5KTISFBLjVkrWVdutSOf7bpAMWllpFdYnj8it5c3L0l4bVhgayPP4bFi6XlvW2bdKk0bQrXXisJ+5lnpCJl4EBo1Mjf0XpFZVrobwEvA8nljj0DPGqtXWKMucz9+0Uej06pUJCdLRtN/Otf0i/7+OPw+9975KkLikv5eMN+5jrS2LL/ONF1I7hhaDwzk+Lp2MJ/mz57TWmp7Lq0Zo1UBK1dKwuUNWgAK1dKJcrgwdIqHzJEqk7Kqk3KWuMhrMKEbq39zhiTcPZhoOwjrjGw37NhKRVC/ud/pJ989mz4y188stlE+pF83k5x8l5qBnn5xXRrFc0TV/TmygHtiKobIj2p1kJGhiwJ3LChLER2000y4QogOloSdk6OlAk+9phsgl2LSy4rVYfuTuiflOty6QF8ARggDBhurXWe57GzgdkAcXFxg5zOc95NqdBRXAyvvy7bvY0ZA8eOwYED0mdeAy6X5dtdh5nncLJ8RzZhxnBpL6kdH9qhWfDXjufny8zK1avPXA4dkm6UK6+U2u/XX5eW9+DB0g8eVjuWIahsHXp1E/o/gG+ttYuMMdcBs621Yyp6Hp1YpEKaywXvvAMPPyy1zLfcIoto1dCx/GLeX5vB26ucpB3JJ6ZhXaYNiWXq0DjaNA7S2vGCAknQq1dD795SGrhzpyTpskHLIUPkMnEixMf7O2K/8vbEolnAXe7r7wOvV/N5lAoNS5dKCeKmTVKz/MknNd7+bev+48xbJbXjBcUuEuObcvfYrozv3YbIiCBsmbpcMj1+1SrYuPHMNPnf/lYSepcush/qoEHQuLF/Yw1S1U3o+4ELgW+Ai4FdngpIqaBhrSSp8HBpkRcUwLvvSlVFNbsCikpcfLHlIMmONNakHaVenTAm92vHzOHx9GobJEnu8GFISTlzadVKar3DwmSKfHS0DAoPHSot8Hbt5HHGSGJX1VaZssV3kAqWGGNMJvAX4BbgJWNMBFCAu49cqVrBWvj8cxmEmz4d7rhDButuugkiqtdGOnS8gAUp6SxYnc7hE4XENWvAnyf04NpBsTRuEMALZBUWyvK+ZZNupkyRwUuQBN6nj7S4y6xZU6sHLb2tMlUuU89z06DzHFcqNFkLn30miXz1aqmsaNZMbqtGIrfWsibtKMmOND7ffJASl+Wibi2YmRTPRV1bBubmygcOwHffSbfJqlWwbp0cP35cSjInTJAEPnSo/Gx4VumkJnOvCpH6JqV84Oab4Y03ZIBuzhyYNevM1PAqyC8q4cP1+0l2pLH94Aka1Ytg1vAEZgyLJyEmyvNxV9fp0zJVftUq+fbRrJlMhrr/fpmgk5go/d/lV4OcOdN/8SpN6EqdV0GB9P1OmiT9wDNmyBT9adOgTtW7QdJyTjFvldSOnygooXvraJ66qg+T+7ejfmSALPi0Zw+89JL0dW/YACUlcrx/f9nH9IYbpBSzb99q/Rso79KErtTZcnNlVuc//iE7zZw+LS3Riy6q8lOVuizf7sxm7kon3+48TESYYXyfNsxKimdQfFP/1Y4XFcl66ytXyuX662WBsIIC+Pe/ZbDy3ntlSdhhw2TtGZDVB9u390/MqkKa0JUqY60k7jfekEkuY8fC229Xq/Li6Kki3kvN4O0UJxm5p2kZXZffjenCtCFxtGxUzwvBV6CkRPr5T5+GSy+VwcmCArktPl6OAfTsKROhqjm4q/xL3zVVu7lc0k88ZIgM2B05IpUad999ZvOCKticdYxkRxofbdhPYYmLIR2a8cdx3bm0V2vq+GpzZWshLU1WdVyxAn74AXr0gP/8R/q+W7SQDRpGjIDhw6Ft2zOPNUaTeRDTd07VTjk58NZb0rWye7fMUuzSBebPr3IlRlGJiyWbDzB3ZRrr0vOoXyecqwa2Z9bweLq39sGqfi4XOJ2ydR1IpcmSJXK9cWNJ3OW/ZSxa5P2YlF9oQle1S3q67Aj0/vvSjzxypJQhlk0tr0IyP3DsNAtS0nlndTo5J4voEBPFwxN7cvWg9jSu78UBw9JSGbD89lu5fP+9dJ/k5UnVzdSpMl3+ggtkWn0tWe9EaUJXtUFGhnSl9O8vy6wuXSrrrNx2myS8KrDWsmpvLsmONL7cegiXtYzu3pIZSQmM7Bzjndrx0lIZwOzZU+J/6in485/lts6dZeGqkSOlpQ5SjaNqJU3oKjSdPCkbScydKzvRJCVJX3JMjGzIXMV+4lOFJSxen8U8Rxo7D52kSYM63HxBB6YPiye2WQPPxm6t7Kzz9ddy+fZbGaj87DNZ0/vqq2Wrugsv/Gn/t6r1NKGr0PPYY9KKPX1a+pUffvinE16qkMz3HD7JPIeTRWszOVFYQu92jXjm6r5M6t+WenU8WDuekSEt8YQEWbhqwAA53qmTbNZw0UUycAuyDG8Nl+JVoUkTugpuxcXSil24EJ57TmYzxsfDjTfKBKDhw6vch1zqsny9PZtkRxrf78qhTrjhsj5tmDU8gQGxTTxTO37qFHzzDXz5pVy2b5cuoFdflUk7b70lSbyWLxurqqZS66F7iq6HrjyioECS4KJFso9kXp7sEfnf/9Zos+XcU0UsXCPrjmflnaZ1o3pMHxbHlMFxtIiuW7OYrZVVCFu2lN87d5ZZmfXrS9fJ2LGy3K62vNU5eHs9dKV8KydHdnLv0AEyM2HyZNkAePJk6VO+5BJZHKoafszMY+5KJ//9cT9FJS6SOjbnzxN6MLZnKyJqUjteVCSt8P/+Fz79VFYmzMyUSpq//lXiHzkS6vlhopEKSZrQVWAqGxj89FNJiA6HrDO+cKG0br/7TqakV3M9kcKSUj798QDJDicbMvJoEBnOdYntmTEsgW6to2se/5w58Ic/yIdQ/fowerS0wIuLpbTwuutq/hpKnUUTugochYVnWtmXXAJffSXXBw6Ugc3Jk8/cd+TIar1EVt5pFqQ4eXd1BkdOFdGxRRSPXN6Tqwa1p1G9ataOZ2fDhx9KF9DTT0t5ZOfOUg9++eWSzOsH6VZxKqhoQlf+U1oKa9dKXfgXX8CWLbIYVp06sjTt9dfDuHFndrSpJmstK/ccYe7KNL7adgiAMT1aMWt4AsM7Na/eIOepU7IS43vvSVmhyyVJPDtbbr/4Yt19R/mcJnTlO2UD8MbIZsp33AFHj8qxAQOkyuP0aUno06fX+OVOFBSzeF0WyY409hw+RbOoSG67sBM3DIunXZNqtJhPnJDywp495fd77oHYWJl5eu21svaLbuCg/EgTuvKujAxYvlxKC5cvh9dfl4qOjh3hiivk+pgxZ5Zn9YBdh06Q7HCyeF0mp4pK6RfbhOev7ceEvm2qXjteWirfIObNk4lKXbvKtPuoKNi2TRK6JnEVIDShK88qLpYWdnq6dDns2SPHmzeHUaPObEk2dKhcPKSk1MVX2w4xd6UTx94jREaEMbFvG2YlJdAvtkn1nvTNN2WK/f79UpEya5Z8c7BWknhcnMfiV8oTNKGr6rMW9u2TipPvvpO+5PHj4eWXpd970CC4805J5H36eGWRqJyThby7Op35KekcOFZAuyb1uW9cN6YkxtK8YRXLGAsKpBU+erTUi9etK11BL70kg5vVLItUylc0oavKc7lkk+CyQcqkJEhJkevNmsmknuHD5ffwcCkx9AJrLesz8pjncPLpjwcoKnVxQecYHp3Ui9E9WhFe1QWy9u2D116TnXqOHJEPpDvukJmm06Z55RyU8gZN6Or8Cgpk84cffpAlWn/4QbpM0tOly+GGG2SNlF/8QgYKvbxMa0FxKR9v3M88h5NNWcdoWDeCaUPjmD4sns4tG1b8BGcrLoarrpJa97Aw6dO/9VZpoSsVhDShqzMOH5b9JSdOlBb2PffAK6/Ibd27wzXXyBrbLpfc/pvf+CSsjNx83k5x8t6aDI7mF9OlZUMen9yLKwe2p2HdKv4J5+fLh9Oll0pff0wMPPQQzJ5d4/JIpfxNE3pttn//mVmYK1fCrl1yfP16mRxz000ywWf4cI9WoVSGy2VZsTuHZIeTZdsPEWYMY92148M6Nqt67fjhw/DPf8olN1d2+GnfXgY+lQoRmtBri6NHpb/b4ZAZlwMHwqZNUvvdooVsU3bzzfKzRw95zMCBcvGh4wXFLFqbyTyHk705p4hpGMkdF3Vm2tA42landvzgQXjiCekfLyiASZNkSr62xlUI0oQeynJz4d57JYlv2ybHwsKgTRtJ1CNHyl6anTv7vZZ6x8ETJDvS+GB9FvlFpQyIa8KLU/ozvk9r6kZUY93xoiJZM8Xlkk0ubrhB/i26dfN47EoFCk3ooSAnR1rfq1bJZehQaZVGR8ukmL59pVojKUk2SYh2Lz7VoIFsjOwnxaUulm49xNyVaaTsyyUyIozJ/doyMymBPu0bV+9JN2yQcz96FJYtkx199u8/c85KhbAKE7ox5g1gIpBtre1d7vhvgDuAUuBTa+19XotSnVFUJEuwduwov48cCStWyPXwcKn3buKeSFOnjvQVB9hMxuwTBby7OoP5KU4OHS+kfdP63D++O1MSY2kaFVm9J92wAR59VBbJatRIBmxLSmR3Ik3mqpaoTAv9LeBlILnsgDFmFDAZ6GetLTTGtPROeIr0dCkXTEmRy7p1MphXNgPz8sulKiUpSSbyREX99PEBksyttaxLP8rclU6WbD5AcallZJcYnryiD6O6t6x67Xh5ixfLmuiNG8Mjj8Bdd535UFOqFqkwoVtrvzPGJJx1+NfAU9baQvd9sj0fWi2Umwtr1kjt9wMPSH/3E0/A//4KVw2RAAAWMElEQVSvLL+amAi//a10qZRNP78vsL8YnS4q5eONWSQ7nGzZf5zouhFMHxbPjGHxdGxRjdrxMjt3SuXKiBFSifPkk3D77ZrIVa1WqS3o3An9k7IuF2PMBuAjYBxQAPzBWrvmPI+dDcwGiIuLG+R0Oj0SeMhYtUpmJq5efaZs0Jgzg5Xbt0t1Ru/eVd6p3p/Sj0jt+MI1GRw7XUy3VtHMHB7PFf3bEVXV2vHyMjOla+XNN2VsYO3agPkWopS3eHsLugigGTAMGAy8Z4zpaM/x6WCtnQPMAdlTtJqvF9xcLtixQ5J22eXvf5dJOocPy0qEQ4fCr34lg5aJidIPDEG1x6TLZflu12GSHU6W78gmzBjG9WrNjKR4hnaoRu14eUeOwN/+Jh9+1srU/Acf1GSuVDnVTeiZwGJ3Al9tjHEBMcBhj0UWrKyVVmRYmNQ6b9smW6UdPy63R0dLwi4tld8nTpQqjCB2LL+Y99fK5sppR/KJaViX34zqzLSh8bRu7KH9Mj//XD4EZ86UfvL4eM88r1IhpLoJ/UNgFLDcGNMViARyPBZVMHG5ZKu01aul/3v1apnM8oc/wLPPyqbG06dLy3vwYGlxl1/zJIhbmNsOHCfZ4eTD9VmcLi5lUHxT7h7blfG92xAZUcN1XUpLITlZft58s2znNmhQUH1jUcrXKlO2+A5wERBjjMkE/gK8AbxhjNkMFAGzztXdEnJOnZJp8atXyyDlr399ZpGqnByZtDJ2rCTusu3H6tWT6eYhorjUxRdbDpK80snqtFzq1Qljcr92zEiKp3e7ataOn+3LL+UDcdMm2YLuppvkQ1CTuVI/qzJVLlPPc1PN9wgLZC7XmZb0o4/KBsBbtshxkIRdltCXLoWEhJCusMg+XsCC1eksSEkn+0Qhcc0a8OBl3bkuMZYmDapZO3627dvhd7+T/UU7dpTld6+9Nqi/xSjlS8FTNuFNpaUyaFlWMrhmjWydlpkpyeTYMekPv+IKaX0PHgytW595fP/+/ovdi6y1pDqPMndlGp9vPkiJy3Jh1xY8dXU8F3atYe34ueTkyLef55+XQU/dUEKpKql9Cb1sl501a2Shpvr1ZfnUv/1Nbm/YUNY5mTpVygXr14cXXvBvzD6WX1TCRxv2M3dlGtsPniC6XgQ3Dk9g+rB4EmKiKn6CyioslN2A8vLgr3+Vqp/09DPb1CmlqqR2JPTdu2WBprIW+JEjcnzlSplhee210v89eLD8DK/GYlAhIC3nFPNWOXk/NYPjBSV0bx3N367qw+T+bWkQ6cE/FWtlq7d774W9e+HKK890cWkyV6raQiuhHz4sCbus2+TOO2UW4f790gLv3fun3SZ9+sjjBgyQSy3kclm+2ZlNssPJNzsOExFmGNe7NTOTEhic0LRmtePnsmuX7Aq0fLm8H19+KQPJSqkaC96Enpcnu8+0bQuHDsnEnLJZqMZIS/vYMfk9KUnqwBs08F+8ASYvv4j3UzOZt8pJem4+LaPrctfoLtwwNI6WjTxUO34uYWEyXvHKK3DLLUE1+1WpQBc8/5tWrJBWd1m3ya5dUs72+uuyQcOFF0qLb/Bg6QMvm2kJsupgnTr+iz2AbNl/jOSVTj7amEVBsYvBCU25b1w3Lu3VmjrhXtgTtKRENmBevVrqyjt1grQ0fT+U8oLgSei//KX0hcfGygSTG2+EUaPktrAw6SNX51RU4mLJ5gPMczhJdR6lfp1wrhzQjhnDEujZtlHFT1Bd33wji4lt2iRlnqdOyWqQmsyV8orgSejvvSc77ZQvF1Q/6+CxM7XjOScLSWjegD9P6MG1g2Jp3MCLSTU7WxL5woUyRX/RIhn41HpypbwqeBJ6LR20rCprLav35ZLscPL5loO4rGVUt5bMSIrnwi4tCPN07fi5REbKtnePPCLL+9avxl6gSqkqC56Ern7WqcISPtyQRfJKJzsOnaBx/Tr8akQCM4YlENfcB4PBS5bIeMbChTJjdudOnRiklI9pQg9yew+fZN4qJ/9JzeREYQm92jbimav7cnm/ttSP9EE9fVqaTNf/6CPo2hWysqSbRZO5Uj6nCT0Ilbosy7dnk7zKyXc7D1Mn3HBZnzbMTEpgYFwTz9eOn0tRETz9tMzwDA+Hp56Cu++W7hallF9oQg8iR08VsTBV1h3PPHqa1o3q8fuxXbl+SCwto71YO34uxkj3yuWXy9II7dv79vWVUv8fTehBYFPmMeY60vjvxv0UlrgY2qEZD4zvwSW9Wnmndvx8nE547DFJ4I0by8BndLTvXl8p9bM0oQeowpJSlmw6yFxHGuvT82gQGc7Vg9ozKymBbq19nESLimQFxMcfl5b51KkwZowmc6UCjCb0ALM/7zQLUtJ5Z3U6R04V0TEmir9c3pOrB7WnUT0/TMj5+mtZynb7dqklf/FFiIvzfRxKqQppQg8A1loce4+QvNLJ0m2HcFnL6O6tmJkUzwWdY3xTO34+zzwjLfTPPoPx4/0Xh1KqQprQ/ehkYQkfrMsk2eFkV/ZJmjaow80jOzB9aDyxzfy0kFhJiSycNWmS7MI0d66si6OTg5QKeJrQ/WB39kneXuXkP2szOVlYQp92jXn2Gqkdr1fHj2uxp6TItnrr18tqlg8/DK1a+S8epVSVaEL3kVKXZdm2QyQ7nKzYnUNkeBgT+rZhZlI8/WN9VDt+PkePwgMPwJw5sl7O++/D1Vf7Lx6lVLVoQveyIycLWZiawfxV6WTlnaZN43rce2k3pgyOJaZhgMymfOIJmbb/u9/JhthavaJUUNKE7iUbM/KY60jjkx8PUFTiYnin5jw0sQdjerQiwpe14+ezbRsUF0PfvvDnP8OMGSG72bVStYUmdA8qKC7l0x8PkLzKycaMPKIiw5mSGMvMpHi6tAqQVm9+Pjz5JDz7rGzK/PXX0LSpXJRSQU0Tugdk5Z1m/ion767JIPdUEZ1aRPHopF5cNbAd0f6oHT+fJUukpnzfPpg5U5K6UipkaEKvJmstP+w+QrIjja+2HQJgTI9WzBqewPBOzf07yHkuixfLQGe3brJB80UX+TsipZSHaUKvohMFxSxel0WyI409h0/RLCqS2y7sxLShcbRvGmCbUJeWwt690KWLLKL18stw8826tK1SIUoTeiXtOnSCZIeTxesyOVVUSr/YJjx/bT8m9G3j39rx81m7Fm69Ffbvl80mGjaU7halVMiqMKEbY94AJgLZ1treZ912D/Ac0MJam+OdEP2npNTFV+7a8ZV7jhAZEcbEvrLueP/YJv4O79yOH4eHHpLWeMuWsvZKVJS/o1JK+UBlWuhvAS8DyeUPGmNigUuAdM+H5V85JwtZuEbWHT9wrIB2Tepz37huTEmMpXmg1I6fS1YWDB0qrfLbbpPNJ5oE6AePUsrjKkzo1trvjDEJ57jp78B9wEcejskvrLVsyMgj2eHk0x8PUFTq4oLOMTw6qRcXd28ZGLXj53P6tKy10ratDHxOmyaJXSlVq1SrD90YMxnIstZurKiawxgzG5gNEBeAy64WFJfy3437SXY42ZR1jIZ1I5g2NI7pw+Lp3LKhv8P7ecXF8NJLsiLimjWyl+dLL/k7KqWUn1Q5oRtjGgAPIt0tFbLWzgHmACQmJtqqvp63ZOTm83aKk/fWZHA0v5guLRvy+OReXDmwPQ3rBsFYcUqKDHpu3AgTJ8q+nkqpWq06masT0AEoa523B9YZY4ZYaw96MjhPc7ksK3bnkOxwsmz7IQxwSc/WzBweT1LHAKwdPxdr4a67ZNCzbVupL7/iCtlJSClVq1U5oVtrNwEty343xqQBiYFc5XK8oJhFazOZ53CyN+cUzaMiueOizkwbGkfbJkG2zrcxsmb5nXfKolqNGvk7IqVUgKhM2eI7wEVAjDEmE/iLtfbf3g7ME3YcPEGyI40P1meRX1TKgLgm/H1KPy7r04a6EUHUReF0wm9/C3/6EwwZAv/8p7bIlVL/n8pUuUyt4PYEj0XjAcWlLpZuPcTclWmk7MslMiKMSf3aMispgT7tG/s7vKopKZFBzocflt+nTJGErslcKXUOQTD6VznZJwp4d3UGC1LSOXhcasfvH9+dKYmxNI2K9Hd4VbdmDcyeDRs2yKDnyy9LFYtSSp1HUCd0ay3r0vNIdqTx2aYDFJdaRnaJ4YkrejOqe0vC/bm5ck199RUcOnRm9yBtlSulKmCs9V0lYWJiok1NTa3x8xQUl/Lxxv0kO9LYnHWc6LoRXJPYnhnD4unYIsBrx3/Ohx9CnTowYQIUFcmEocZB1k2klPI4Y8xaa21iRfcLqhZ6Rm4+b69ysjA1g7z8Yrq2asjjV/TmqgHtiAqG2vHzycyE3/xGEvq4cZLQIyPlopRSlRQUWXDlnhz+/f0+vt6RTZgxXNKzFTOTEhjWsVlw1I6fT2kpvPKKVK+UlMDTT8Pdd/s7KqVUkAqKhP7NjsNszMzjN6M6M3VoHG0aB1nt+Pl8/rmUI15yCbz6KnTs6O+IlFJBLCj60I8XFFM3Iiy4asfPJz8fUlPhF7+QWZ/LlsHo0TroqZQ6r8r2oQfwEoJnNKpXJzSS+RdfQO/ecNllkJsrSXzMGE3mSimPCIqEHvSys+GGG2TAMzISPvsMmjXzd1RKqRATFH3oQS03F3r2lJ2EHn4YHnxQ9/RUSnmFJnRvOXIEmjeXlvhDD8nAZ48e/o5KKRXCtMvF04qK4PHHITYWVq+WY3fdpclcKeV12kL3pBUrZP2VbdtkIa0A3KFJKRW6tIXuKXffDSNHwqlT8Omn8O670Lq1v6NSStUimtBrwlq5gOwe9Pvfw5YtUpaolFI+pl0u1ZWRAXfcAbNmyWqI997r74iUUrWcttCrqrQU/vEPKUVctgyOHvV3REopBWgLvWp+/BFuuUWqV8aNk4W1OnTwd1RKKQVoQq+aLVtg3z5YsACuv16n7CulAoom9Ip89RVkZUlf+fXXy4CnbjqhlApA2od+Pjk5ksTHjoUXX5S+c2M0mSulApYm9LNZC2+/LTM7FyyQzSdWroTwEFjtUSkV0rTL5WybNsGMGTB0KPzv/0KfPv6OSCmlKkVb6CDbvy1bJtf79oXly+GHHzSZK6WCiib0tWth8GDpK9++XY5ddJF2sSilgk7tTeinTsE998CQIXDoEPznP9Ctm7+jUkqpaqudfeglJdIq37YNbr0VnnoKmjTxd1RKKVUjtSuh5+VJ2WFEhKy90rmzrJColFIhoMIuF2PMG8aYbGPM5nLHnjXGbDfG/GiM+cAYE9jNW2vhrbegUydYvFiO/fKXmsyVUiGlMn3obwHjzjq2FOhtre0L7AQe8HBcnrN7twx4/vKXUlves6e/I1JKKa+oMKFba78Dcs869qW1tsT96yqgvRdiq7lXX5XSwzVr5Pp33+lWcEqpkOWJKpdfAUvOd6MxZrYxJtUYk3r48GEPvFwVNG0K48fD1q1w220QVnuLepRSoa9GGc4Y8yegBJh/vvtYa+dYaxOttYktWrSoyctV7ORJ2QruxRfl9ylTpM+8XTvvvq5SSgWAaid0Y8yNwETgBmvL9mHzo88/h969JZlnZsoxXd5WKVWLVCuhG2PGAfcBk6y1+Z4NqYqys2HaNOlaqV8fvv8ennvOryEppZQ/VKZs8R3AAXQzxmQaY24CXgaigaXGmA3GmNe8HOf57dol3SqPPAIbNsAFF/gtFKWU8qcKJxZZa6ee4/C/vRBL5e3ZA0uXykDniBGQng4tW/o1JKWU8rfgKvsoLoann5a+8gcegFx3NaUmc6WUCqKEvnatLKR1//2yQfPmzdCsmb+jUkqpgBEca7nk5cmSttHRsGgRXHWVvyNSSqmAExwJvUkTWd526FBdFVEppc4jOBI6wKWX+jsCpZQKaMHTh66UUupnaUJXSqkQoQldKaVChCZ0pZQKEZrQlVIqRGhCV0qpEKEJXSmlQoQmdKWUChHGl3tTGGMOA85qPjwGyPFgOP6k5xJ4QuU8QM8lUNXkXOKttRVu+ebThF4TxphUa22iv+PwBD2XwBMq5wF6LoHKF+eiXS5KKRUiNKErpVSICKaEPsffAXiQnkvgCZXzAD2XQOX1cwmaPnSllFI/L5ha6EoppX6GJnSllAoRfkvoxphYY8xyY8xWY8wWY8xd7uPNjDFLjTG73D+buo8bY8w/jDG7jTE/GmMGuo/HG2PWGWM2uJ/ntmA9l3LP18gYk2mMeTmYz8UYU+p+XzYYYz4O4vOIM8Z8aYzZ5n6+hGA8F2PMqHLvxwZjTIEx5opgPBf3bc+4n2Ob+z4miM/laWPMZvdlSrWDstb65QK0AQa6r0cDO4GewDPA/e7j9wNPu69fBiwBDDAMSHEfjwTquq83BNKAtsF4LuWe7yVgAfBysL4v7ttOBvvfl/u2b4Cx5f7GGgTruZR7zmZAbrCeCzAc+AEId18cwEVBei4TgKXIDnJRwBqgUbVi8uU/QAX/OB8BY4EdQJty/2A73Nf/BUwtd///u1+5Y82BdHyc0D15LsAg4F3gRvyQ0D18Ln5L6J46D/d/0BX+jt9T70m5Y7OB+cF6LkASsBaoDzQAUoEeQXou9wIPlTv+b+C66sQQEH3o7q+wA4AUoJW19oD7poNAK/f1dkBGuYdluo+VffX50X3709ba/T4I+5xqci7GmDDgeeAPPgm2AjV9X4B6xphUY8wqX3+1L6+G59EVyDPGLDbGrDfGPGuMCfdJ4OfggfekzPXAO14LtBJqci7WWgewHDjgvnxhrd3mg7DPqYbvy0ZgnDGmgTEmBhgFxFYnDr8ndGNMQ2AR8Dtr7fHyt1n5uKqwrtJam2Gt7Qt0BmYZY1pV9Bhv8MC53A58Zq3N9FKIleaJ9wVZfyIRmAa8aIzp5PlIf54HziMCGIl8yA4GOiLfnnzOQ+8Jxpg2QB/gC48HWUk1PRdjTGegB9AeSYoXG2NGeincn1XTc7HWfgl8BqxEPmQdQGl1YvFrQjfG1EH+IeZbaxe7Dx9y/8GV/eFlu49n8dNPrfbuY//H3TLfjPwH9CkPnUsScKcxJg14DphpjHnKB+H/hKfeF2tt2c+9SD/0AK8HX46HziMT2GCt3WutLQE+BH4yiO0LHv6/ch3wgbW22LtRn5uHzuVKYJW19qS19iTSN53ki/jL8+D/lSettf2ttWORPvad1YnHn1UuBukr2matfaHcTR8Ds9zXZyH9UmXHZ7pHiocBx6y1B4wx7Y0x9d3P2RS4AOmb8hlPnYu19gZrbZy1NgFpESZba+/3zVkID74vTY0xdd3PGQOMALb65CTw3HkgA1RNjDFlK91djA/PAzx6LmWm4qfuFg+eSzpwoTEmwp1ULwR82uXiwf8r4caY5u7n7Av0Bb6sVlB+HEC4APkq8iOwwX25DBnYXAbsAr4Cmrnvb4B/AnuATUCi+/hY93NsdP+cHaznctZz3oh/qlw89b4Md/++0f3zpmA8j7P+xjYBbwGRQXwuCUirMMzXf1se/vsKRwYZtyEfsC8E8bnUc5/DVmAV0L+6MenUf6WUChF+HxRVSinlGZrQlVIqRGhCV0qpEKEJXSmlQoQmdKWUChGa0JVSKkRoQldKqRDx/wAHnOyHTFEV1wAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for i, term in enumerate(gam.terms):\n", " if term.isintercept:\n", " continue\n", "\n", " XX = gam.generate_X_grid(term=i)\n", " pdep, confi = gam.partial_dependence(term=i, X=XX, width=0.95)\n", "\n", " plt.figure()\n", " plt.plot(XX[:, term.feature], pdep)\n", " plt.plot(XX[:, term.feature], confi, c=\"r\", ls=\"--\")\n", " plt.title(repr(term))\n", " plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note: we skip the intercept term because it has nothing interesting to plot." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "pygam36", "language": "python", "name": "pygam36" }, "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.6" } }, "nbformat": 4, "nbformat_minor": 2 }