{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Data Analysis and Machine Learning Applications for Physicists" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Material for a* [*University of Illinois*](http://illinois.edu) *course offered by the* [*Physics Department*](https://physics.illinois.edu). *This content is maintained on* [*GitHub*](https://github.com/illinois-mla) *and is distributed under a* [*BSD3 license*](https://opensource.org/licenses/BSD-3-Clause).\n", "\n", "[Table of contents](Contents.ipynb)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns; sns.set()\n", "import numpy as np\n", "import pandas as pd\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import scipy.linalg" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from mls import locate_data" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from sklearn import linear_model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Supervised Learning in Scikit Learn" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The sklearn supervised learning functions are organized into several modules:\n", " - [linear_model](http://scikit-learn.org/stable/modules/linear_model.html): regression with [generalized linear models](https://en.wikipedia.org/wiki/Generalized_linear_model).\n", " - [kernel_ridge](http://scikit-learn.org/stable/modules/kernel_ridge.html): ridge regression using the kernel trick.\n", " - [svm](http://scikit-learn.org/stable/modules/svm.html): regression, classification (and outlier detection) with [support vector machines](https://en.wikipedia.org/wiki/Support_vector_machine).\n", " - [tree](http://scikit-learn.org/stable/modules/tree.html): regression and classification using [decision trees](https://en.wikipedia.org/wiki/Decision_tree).\n", " - [discriminant_analysis](http://scikit-learn.org/stable/modules/lda_qda.html): classification using [linear](https://en.wikipedia.org/wiki/Linear_discriminant_analysis) and [quadratic](https://en.wikipedia.org/wiki/Quadratic_classifier) discriminant analysis.\n", " - [ensemble](http://scikit-learn.org/stable/modules/ensemble.html): regression, classification (and anomaly detection) using [ensemble methods](https://en.wikipedia.org/wiki/Ensemble_learning).\n", " - [gaussian_process](http://scikit-learn.org/stable/modules/gaussian_process.html): regression and classification using [Gaussian processes](https://en.wikipedia.org/wiki/Gaussian_process).\n", " - [naive_bayes](http://scikit-learn.org/stable/modules/naive_bayes.html): Bayesian classification with [oversimplified assumptions](https://en.wikipedia.org/wiki/Naive_Bayes_classifier).\n", " \n", "More esoteric and less used supervised learning modules:\n", " - [isotonic](http://scikit-learn.org/stable/modules/isotonic.html): regression using an [isotonic model](https://en.wikipedia.org/wiki/Isotonic_regression).\n", " - [multiclass and multioutput](http://scikit-learn.org/stable/modules/multiclass.html): meta-estimators that enhance a base estimator.\n", " - [neural_network](http://scikit-learn.org/stable/modules/neural_networks_supervised.html): we will use [tensorflow](https://www.tensorflow.org/) instead to implement neural networks algorithms.\n", "\n", "Finally, useful infrastructure for supervised learning:\n", " - [preprocessing](http://scikit-learn.org/stable/modules/preprocessing.html): prepare your data before learning from it.\n", " - [pipeline](http://scikit-learn.org/stable/modules/classes.html#module-sklearn.pipeline): utilities to chain together estimators (and preprocessing) into a single pipeline.\n", " - [model_selection](http://scikit-learn.org/stable/modules/cross_validation.html): model selection (hyper-parameter tuning) via cross validation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since regression problems are more common in scientific applications, we will focus on them here. Our [earlier introduction](Learning.ipynb) of supervised learning used a probabilistic language where the solution is given by a distribution\n", "\n", "$$ \\Large\n", "P(Y'\\mid X,Y,X',M) \\; .\n", "$$\n", "\n", "Stated differently, our goal is, given a training set of random variables X and Y (i.e. D), to learn a function h : X 􏰀→ Y so that h(x) is a “good” predictor for the corresponding value of y. For historical reasons, this function h is called a **hypothesis**.\n", "\n", "When the target variable that we are trying to predict is continuous, we call the learning problem a **regression** problem. When Y can take on only a small number of discrete values, we call it a **classification** problem.\n", "\n", "Unfortunately, most sklearn algorithms give only limited information about this distribution, since they only return an estimate of its central tendency (mean / median / mode / ...):\n", "\n", "$$ \\Large\n", "P(Y'\\mid X,Y,X',M) \\;\\rightarrow\\; Y'(X,Y,X',M) \\simeq \\langle Y' \\rangle_{P(Y'\\mid X,Y,X',M)} \\; .\n", "$$\n", "\n", "In practice, if you need to make probabilistic statements about what you have learned from a regression, your best choices among the sklearn algorithms are:\n", " - [Linear regression](https://en.wikipedia.org/wiki/Generalized_linear_model) to model (approximately) linear relationships.\n", " - [Gaussian process regression](http://scikit-learn.org/stable/modules/gaussian_process.html) to model non-linear relationships." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Linear Regression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ordinary linear regression predicts the expected value of a given unknown quantity (the response variable, a random variable) as a linear combination of a set of observed values (predictors). This implies that a constant change in a predictor leads to a constant change in the response variable (i.e. a linear-response model).\n", "\n", "A standard linear regression assumes the observed data $D = (X,Y)$ is explained by the model,\n", "\n", "$$ \\Large\n", "Y = X W + \\delta Y \\; ,\n", "$$\n", "\n", "where, in general, all quantities are matrices, the model parameters are the elements of $W$, and $\\delta Y$ is the \"noise\" inherent in $Y$." ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden", "solution2_first": true }, "source": [ "**EXERCISE:** Assume that $X$ consists of $N$ samples of $n$ features, represented by a $N\\times n$ matrix, and $Y$ consists of $N$ samples of $m$ features, represented by a $N\\times m$ matrix. What are the dimensions of the matrices for $W$ and $\\delta Y$?" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ "$W$ must be $n\\times m$, in order that the matrix product $X W$ has the shape $N\\times m$.\n", "\n", "$\\delta Y$ must have the same shape as $Y$: $N\\times m$.\n", "\n", "When $m=1$, the linear regression problem is usually written with lower-case notation:\n", "\n", "$$ \\Large\n", "y = X w + \\delta y \\; .\n", "$$\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We further assume that:\n", " - There is no (or negligible) noise in $X$.\n", " - Each feature in $Y$ has zero mean, i.e., `np.mean(Y, axis=0) = 0`.\n", " \n", "If the last condition is not met, we could simply subtract the mean before applying this model,\n", "```\n", "Y -= np.mean(Y, axis=0)\n", "```\n", "but we will see that sklearn will do this automatically for you.\n", "\n", "By definition, \"noise\" is unbiased,\n", "\n", "$$ \\Large\n", "\\langle \\delta Y\\rangle = 0 \\; ,\n", "$$\n", "\n", "and uncorrelated with $X$,\n", "\n", "$$ \\Large\n", "\\langle \\delta Y^T\\,X\\rangle = 0 \\; .\n", "$$\n", "\n", "The noise is usually assumed to be Gaussian but, in the most general case, this is complex to model since there are potentially $n^2 m^2$ covariances (only ~half of which are independent),\n", "\n", "$$ \\Large\n", "\\langle \\delta Y_{ij} \\delta Y_{pq}\\rangle \\; ,\n", "$$\n", "\n", "to account for:\n", " - different variances for each of the $m$ features in $Y$, and\n", " - correlations between the $m$ features in $Y$, and\n", " - correlations between the $N$ samples in $Y$.\n", "\n", "In practice, the most general problem we solve is when\n", "\n", "$$ \\Large\n", "\\langle \\delta Y_{ip} \\delta Y_{jq}\\rangle = C_{ij} \\; ,\n", "$$\n", "\n", "i.e., all $m$ features have the same variance $C_{ii}$ for sample $i$, but samples are potentially correlated. The resulting $n\\times n$ \"sample covariance matrix\" $C$ then specifies the likelihood\n", "\n", "$$ \\large\n", "P(X,Y\\mid W, C) = \\prod_{k=1}^m\\, \\left(2\\pi C\\right)^{-1/2}\\,\n", "\\exp\\left[ -\\frac{1}{2} (Y - X W)_k^T C^{-1} (Y - X W)_k\\right] \\; ,\n", "$$\n", "\n", "where $(Y - X W)_k$ is the column of $N$ values (one per sample) for the $k$-th feature of $Y$. Note that we treat the elements of $C$ as fixed hyperparameters in standard linear regression.\n", "\n", "A important special case occurs when all samples (and features) have the same variance $\\sigma^2$,\n", "\n", "$$ \\Large\n", "C = \\sigma^2 {\\mathbb 1}_{n\\times n} \\; ,\n", "$$\n", "\n", "which we refer to as **homoscedastic** errors. Any type of non-homescedastic errors are called **heteroscedastic**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example: fitting a line" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Read our `line_data` dataset:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "D = pd.read_csv(locate_data('line_data.csv'))\n", "X = D['x'].values.reshape(-1, 1)\n", "y = D['y'].values\n", "y_true = pd.read_csv(locate_data('line_targets.csv'))['y_true'].values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `LinearRegression` function solves the [linear least squares problem](https://en.wikipedia.org/wiki/Linear_least_squares_%28mathematics%29) by minimizing sum of squared residuals\n", "\n", "$$ \\Large\n", "S \\equiv \\sum_{i=1}^N \\left| Y_i - (X W)_i \\right|^2\n", "$$\n", "\n", "with respect to the model parameters (elements of $W$), where $i$ indexes the $N$ samples in the dataset. The syntax will be familiar from the sklearn functions we used earlier:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "fit = linear_model.LinearRegression(fit_intercept=True).fit(X, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that `LinearRegression` will automatically calculate and subtract any non-zero mean of $y$ when `fit_intercept` is `True`.\n", "\n", "The resulting $W$ matrix has only a single element, the slope of the line (which is assumed to pass through the origin):" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "W = fit.coef_\n", "y0 = fit.intercept_" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(X[:, 0], y, label='D=(X,y)', lw=0, s=5, c='gray')\n", "plt.plot(X[:, 0], X.dot(W) + y0, 'r-', lw=8, alpha=0.5, label='fit')\n", "plt.plot(X[:, 0], y_true, 'k-', label='truth')\n", "plt.legend(fontsize='x-large')\n", "plt.xlabel('$X$')\n", "plt.ylabel('$y$')\n", "plt.xlim(-1., +1.);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In our probabilistic language, `LinearRegression` finds the maximum likelihood (ML) point estimate assuming homoscedastic Gaussian errors. This can also be interpreted as a maximum a-posteriori (MAP) point estimate if we believe that the priors should all be uniform.\n", "\n", "This ML solution can be found directly using linear algebra (which makes linear regression a very special case of supervised learning):\n", "\n", "$$ \\Large\n", "W = (X^T X)^{-1} X^T Y \\; .\n", "$$\n", "\n", "Note that the solution does not depend on the homoscedastic error $\\sigma$." ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden", "solution2_first": true }, "source": [ "**EXERCISE:** Explain why we cannot simplify this expression using:\n", "\n", "$$ \\Large\n", "(X^T X)^{-1} = X^{-1} (X^T)^{-1} \\; \\Rightarrow \\; W = X^{-1} Y \\; .\n", "$$" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ "This is only valid when $X$ is a square matrix, $N = n$, in which case finding $W$ reduces to solving a system of $N$ linear equations in $N$ unknowns. In the more general case where $N > n$, we have an overdetermined system of equations and seek the best compromise solution given the expected errors. If $N < n$, the problem is underdetermined and $X^T X$ is not invertible.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also directly solve the more general problem of Gaussian errors described by an $n\\times n$ sample covariance $C$:\n", "\n", "$$ \\Large\n", "W = (X^T C_N X)^{-1} X^T C_N^{-1} Y\n", "$$\n", "\n", "However, the `LinearRegression` function can only solve the case where $C$ is diagonal, i.e., each sample has a different variance but samples are uncorrelated:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "Dvalid = D.dropna()\n", "X = Dvalid['x'].values.reshape(-1, 1)\n", "y = Dvalid['y'].values\n", "dy = Dvalid['dy'].values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pass the diagonal elements of $C$ as the third argument to the `fit` method:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "fit_w = linear_model.LinearRegression().fit(X, y, dy ** 2)\n", "W_w = fit_w.coef_ \n", "y0_w = fit_w.intercept_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The weighted fit finds a slightly different solution since we are now giving more weight to observations near $x = 0$ where $\\sigma^2$ is smaller." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1.194]\n", " [1.187]]\n" ] } ], "source": [ "print(np.round([W, W_w], 3))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A `LinearRegression` fit can apply what is has learned to predict new data:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "X_new = np.array([[-1], [0], [+1]])\n", "y_new = fit_w.predict(X_new)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Not surprisingly, the predicted $y$ values lie on the straight-line fit:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "slope = W_w[0]\n", "plt.scatter(X_new[:, 0], y_new);\n", "plt.plot([-1, +1], [y0-slope, y0+slope], 'r--');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These are mean point estimates of $Y'$ given new $X'$, so of limited use when you want to make probabilistic statements about what your have learned. However, the likelihood is Gaussian in the model parameters:\n", "\n", "$$ \\Large\n", "P(X, Y\\mid W, C) = \\prod_{k=1}^m\\, \\left(2\\pi E\\right)^{-1/2}\\,\n", "\\exp\\left[ -\\frac{1}{2} (W - W_0)_k^t E^{-1} (W - W_0)_k\\right] \\; ,\n", "$$\n", "\n", "where $W_0$ is the ML weight matrix, $(W - W_0)_k$ is the $k$-th column with $n$ rows, and $E$ is its $n\\times n$ covariance, given by:\n", "\n", "$$ \\Large\n", "E = (X^T C X)^{-1} \\; .\n", "$$\n", "For homoscedastic errors $\\sigma$, this reduces to\n", "\n", "$$ \\Large\n", "E = \\sigma^{-2} (X^T X)^{-1} \\; .\n", "$$\n", "\n", "Unfortunately, the `LinearRegression` fit does not calculate these errors for you, but they are straightforward to calculate yourself, for example:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "C = np.diag(dy ** 2)\n", "E = np.linalg.inv(np.dot(X.T, np.dot(C, X)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this simple example, E is a $1 \\times 1$ matrix containing the variance of the slope:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "dslope = np.sqrt(E[0,0])" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(X_new[:, 0], y_new);\n", "plt.fill_between([-1, +1], [y0-slope+dslope, y0+slope-dslope],\n", " [y0-slope-dslope, y0+slope+dslope], color='r', alpha=0.5)\n", "plt.xlabel('$X$')\n", "plt.ylabel('$y$');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that we are not propagating the uncertainty in $y_0$ here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example: linear deconvolution" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The examples above have a large $N$ but only one feature in $X$ and $Y$, $n=m=1$, so that $W$ is just a single number, the slope of the line. For a more complex example, suppose we have an instrument with an unknown response, $R(t,t')$, that transforms each input pulse $z(t)$ into an output pulse via convolution\n", "\n", "$$ \\Large\n", "z'(t) = \\int dt' R(t-t') \\, z_{in}(t') \\; .\n", "$$\n", "\n", "If we discretize time, $t_k = k \\Delta t$, then the corresponding discrete response model is linear:\n", "\n", "$$ \\Large\n", "z'_i = \\sum_j R_{ij} z_j \\; ,\n", "$$\n", "\n", "with $R_{ij} = R(t_i - t_j)$.\n", "\n", "Generate some pulse data with a smooth Gaussian response:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "def plot_response(R, ax):\n", " lim = np.percentile(np.abs(R), 99)\n", " img = ax.imshow(R, interpolation='none', cmap='bwr', vmin=-lim, vmax=+lim)\n", " plt.colorbar(img, ax=ax, orientation='horizontal', pad=0.01, fraction=0.1)\n", " ax.axis('off')" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def generate(N=5000, n=50, tlo=0, thi=5, nplot=3, sigma_y = 0., seed=123):\n", " gen = np.random.RandomState(seed=seed)\n", " t_range = thi - tlo\n", " t0 = gen.uniform(tlo + 0.4 * t_range, thi - 0.4 * t_range, size=(N, 1))\n", " sigma = gen.uniform(0.05 * t_range, 0.15 * t_range, size=(N, 1))\n", " y0 = 1 + gen.rayleigh(size = (N, 1))\n", " t_grid = np.linspace(tlo, thi, n)\n", " X = y0 * np.exp(-0.5 * (t_grid - t0) ** 2 / sigma ** 2)\n", " r = np.exp(-0.5 * t_grid ** 2 / (t_range / 10) ** 2)\n", " R = scipy.linalg.toeplitz(r)\n", " Y = X.dot(R)\n", " Y += gen.normal(scale=sigma_y, size=Y.shape)\n", " fig, ax = plt.subplots(1, 3, figsize=(12, 4))\n", " for i in range(nplot):\n", " ax[0].plot(t_grid, X[i], '.-', lw=1)\n", " ax[2].plot(t_grid, Y[i], '.-', lw=1)\n", " plot_response(R, ax[1])\n", " return X, Y\n", " \n", "X, Y = generate()" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden", "solution2_first": true }, "source": [ "**EXERCISE:** With $n$ features (timesteps) in the input data $X$ and the same number $m=n$ of features in the target data $Y$, what is the minimum number of samples required to estimate the instrument response matrix $R$?" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ "The response matrix has $n m = n^2$ unknown parameters. While there are symmetries in $R$ that could reduce this number significantly, a linear regression does not know about these symmetries.\n", "\n", "Each of the $N$ samples provides an independent linear equation in the unknown parameters. Therefore, the problem has an exact solution when $N = n^2$ in the absence of any noise. When $N < n^2$, the problem is formally ill-determined since $X^T X$ is not invertible. However, a solution is still possible using a [pseudo matrix inverse](https://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_inverse) and sometimes gives reasonable results.\n", "\n", "With $N > n^2$, the problem is overdetermined, but we could expect additional samples to improve the answer when noise is present.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Try fitting with $N = 2 n^2$, $N = n^2$ or $N = n$:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "n = X.shape[1]\n", "fit1 = linear_model.LinearRegression(fit_intercept=False).fit(X, Y)\n", "fit2 = linear_model.LinearRegression(fit_intercept=False).fit(X[:n**2], Y[:n**2])\n", "fit3 = linear_model.LinearRegression(fit_intercept=False).fit(X[:n], Y[:n])\n", "R1, R2, R3 = fit1.coef_, fit2.coef_, fit3.coef_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The results look reasonable in all cases, although there are some artifacts visible in the underdetermined solution:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def plot_responses(*Rlist):\n", " n = len(Rlist)\n", " fig, ax = plt.subplots(1, n, figsize=(4 * n, 4))\n", " for i, R in enumerate(Rlist):\n", " plot_response(R, ax[i])\n", " \n", "plot_responses(R1, R2, R3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The examples above have no noise in $Y$ (except for tiny round-off errors) so now try adding some noise:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "X, Y = generate(sigma_y=1)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "fit1 = linear_model.LinearRegression(fit_intercept=False).fit(X, Y)\n", "fit2 = linear_model.LinearRegression(fit_intercept=False).fit(X[:n**2], Y[:n**2])\n", "fit3 = linear_model.LinearRegression(fit_intercept=False).fit(X[:n], Y[:n])\n", "R1, R2, R3 = fit1.coef_, fit2.coef_, fit3.coef_" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_responses(R1, R2, R3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This clearly not what we are looking for, so what happened? The problem is that the solution amplifies noise and finds a \"best\" solution that involves large cancellations between positive (red) and negative (blue) values (notice the $10^{12}$ in the colorbar scale!) This is not a problem that more samples can easily cure.\n", "\n", "However, the true response is still a near-optimal solution but just very unlikely to be the most optimum solution when noise is present. In a Bayesian framework, this is when we would introduce a prior for our belief that a valid solution should be \"smooth\" and not require these large cancellations. Classical regression methods (and sklearn) refer to these priors as \"regularization terms\", but they amount to the same thing.\n", "\n", "**Regularization** is implemented as a penalty term $R$ that we add to the least-squares score $S$ defined above:\n", "\n", "$$ \\Large\n", "S \\equiv \\sum_{i=1}^N \\left| Y_i - (X W)_i \\right|^2 \\;\\rightarrow\\;\n", "S + R \\; .\n", "$$\n", "\n", "The most common approach is to penalize using\n", "\n", "$$ \\Large\n", "R = \\alpha \\sum_{i=1}^N \\left| W_i \\right|^2 \\; ,\n", "$$\n", "\n", "which goes by several names including [Tikhanov regularization](https://en.wikipedia.org/wiki/Tikhonov_regularization) and [ridge regression](http://scikit-learn.org/stable/modules/linear_model.html#ridge-regression). Note that this introduces a hyperparameter $\\alpha$ which controls the strength of the regularization (prior) relative to the optimal solution (likelihood):" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "alpha = 0.1\n", "fit1 = linear_model.Ridge(fit_intercept=False, alpha=alpha).fit(X, Y)\n", "fit2 = linear_model.Ridge(fit_intercept=False, alpha=alpha).fit(X[:n**2], Y[:n**2])\n", "fit3 = linear_model.Ridge(fit_intercept=False, alpha=alpha).fit(X[:n], Y[:n])\n", "R1, R2, R3 = fit1.coef_, fit2.coef_, fit3.coef_" ] }, { "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": [ "plot_responses(R1, R2, R3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This has eliminated the wild fluctuations around $\\pm 10^{12}$ but is still noisy. Note how additional data now improves the solution, especially in the corners.\n", "\n", "Try again with stronger regularization (priors):" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "alpha = 10.\n", "fit1 = linear_model.Ridge(fit_intercept=False, alpha=alpha).fit(X, Y)\n", "fit2 = linear_model.Ridge(fit_intercept=False, alpha=alpha).fit(X[:n**2], Y[:n**2])\n", "fit3 = linear_model.Ridge(fit_intercept=False, alpha=alpha).fit(X[:n], Y[:n])\n", "R1, R2, R3 = fit1.coef_, fit2.coef_, fit3.coef_" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArMAAADvCAYAAADhNFy+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO2dWYwlWXrXv7vlzczOrCVr7e7qZTwzfe2ZYTwaDeIBG9vCCAmQeACLwRZ+ADxY7BLiBYzYhEAIy4jFDwO2LATIkpFAQjI8ICN5QQgh42XcnjvT09PTXb1Udy1dXdlVud2bPGTl3PP9IvN8dToyK/Pc+v+k0eSpiIx7IuJ8EdEZv/s/nd3dXRNCCCGEEKJGuifdASGEEEIIIT4qepgVQgghhBDVoodZIYQQQghRLXqYFUIIIYQQ1aKHWSGEEEIIUS16mBVCCCGEENXSb72Fe/d8ttfWlmXb9+8f3l5fz6/74IFvTya+3cWz+fKyb58759tra4cv4+8uLPiPnnZcO9ptdm11JTlst2/nf3llxTU3F1Zd+/3385/FXRtsfej/YWdn9jP20xYX/Wdv+f0mfYyoXhfRb9Pp4b+Mju+a/yz+am5TjwKPU5t1Ox3LH5jTBGs2Pf9mzfG3seHbaV3m6vmg9vZ2vm/DoW9j7GdrFu1J32+r9PKBoW+D6easwf0irNnpwLV5iAnLkO3ONOk8N8bzSVikQY1z8wUlbB1URa+XXz/aXsnvRutXU7PHmZ8ZXVTbtnNwHPIea36wsH55KeFHp+ebH8Xbe29n0/8D65s1FVwsdpefcu30EspNsUZ4CWTfO1ZwTzUrKhTec08TUb3qL7NCCCGEEKJa9DArhBBCCCGqpb1mEL1miN6/p39/55/2P/jAtz/E6/FNvBogfDfH7ad95bp4Tfhgw/+Fm3+5X1r0f/pfMryaxS9sbs3eJazbBbesj1cgZxf9+5Th+++59hXDMT+35pp37/MVp38FsrQ0+3mlj3c3OAfDQOXY3PGvhu5vURXwy9PDzlPQm/q+9DB2enxfU/q6JW3nlj1Ke+CPcVVENZzTEEqUhIPWJ5GGkL7Oo4KAfvYwoFb8sI9fz0/95XG7O6vZ+13/LpCHDD2z4Y6/dg2n+Cy8ptzG9nlYFxZmdYQ3901wHLjt+7jM8jDk3gbzutfoKI/xduFradZZ2pknuWZz5I5pW20guuaWaAbBuqzfpSU/0vk6nqfX3T94HboduDO8GUFh2jY/dvgosgtjMlUJWE8kOuT9vr+ndqJfSNvBMe+0ramo/ajLDiSvQOgvs0IIIYQQolr0MCuEEEIIIapFD7NCCCGEEKJa2juzpDQvKV2frgf9K2ZQ3bvn21Fczpkzvp1GgVFkuXgx+9H8qOVl73Ncvbrk2p2b3nMdJvs6ZKzHmfOufed97+fs2CXXXoILuGLeOzw7veNXWPT7uvvULOpr/UN4ZL2z/rOWsHjL56UMcQ4bju2id5F2+7PPa6S4bfm+TKdsW5Yw9if5uQP1jx4iN8X2nNp3MVHNMm6PhXT3rm/TmaXXeCkZ+5/4hF/22c+65o11XxjvvONX7/W8dPfcc7599r6v2UESoXeW2T7PPOOa7932I2hnx/dl1afr2Yp56W6w4a9tA16furNrxmQBRUn3HPF4A0T7nMVlsVU8D/PM2A54nNFApzeEqCVH6SkeZVRXzuU0C/Mse2zzvrno62D9wezasT319zE++fAy8xTuqZ0t1OfU3/cGg4zbbeb3JbpmRi5/ziM3a9Zccq3a7fK6ZEdKUdxl4bajetVfZoUQQgghRLXoYVYIIYQQQlSLHmaFEEIIIUS1HH3ObLSckkbqyNGX43yT0ax+pT5Q6qbQ5XvrLdd8+to11763kZ+ekhG5K2vec+1tJLmTcGY6696XO38un3nLw8SpM4ec9hPnoLMx839W6P5witku8vW63lOaBiOKi1N/b9iFb9svzJElbTLviufZrMjAa5sNnbZLfS/CsEi2KWmn3jvPAaaFvnLZj7Yrn/V1wDpiV9eXfM0Ov2PWHsBLp0R/aQHHdBmeOqa7XP/Q7/dk6tvQYG0pmc62F029GUxRvY3s50ZmJi67aWZmr+ePYU4VNIunt25UUUnNl17/ObdurZTcg0sySY+inetbMJ1tNG4by0HqvTamgAV0tRuXLWQz9zm9NJzaxncF0uMQTYW74oX6kumkD9p8N/1orBtl3pYSHee2W8+hv8wKIYQQQohq0cOsEEIIIYSoFj3MCiGEEEKIamlvTJTOzdvJeA+UPx/4LLeG1/r22759B3mqlL/o3Dz33Oxn+lNwZB/seFeUXWHs5Nm+n4vdXn/XtxPfZ/eZZ92i69f9qlOvAjLS0pZuv+n/gZLN5cuueWvD+3offDDbN053f2nNn5NGXm5jUnq/gcmi/yzqfes7s/HQ7/tjvLCANk5fZwfeYpt5w9s6szXN8x64Zg1yxyI6xqxh0hgQcM14TbhxY/YzizAai8hv5nDh5WEwxfVjK/kFFPw9854bR9oZXB86t2/5rrJmkYl9Dzm1b9ycXa86Hf/ZVORX+tgPCP0cuQOOjyU4fUlWZdus5walXrwoDPcMrnOUKEsd29z6pec2kkX53Q/2PW1zP+lq47MG0X6hRhoZt1vesd3ArqQsomsrKL/hDp4leI3k9xZy31MoPf9H2S69pxZePPSXWSGEEEIIUS16mBVCCCGEENXSXjNozEGK14accpavBm8lr9s43yTisRrtmzd9m1NjkrOY0i7tKxUFfNYSXvtdvnzl0E2Zmd2bYvrKF1/0KySv+vjK8bkzOC14pUnl4f6K1xRoTKws+7iMCzv+OF04l7xCwWdt7vjXJff7Pq6Ib1+6GA6NVyjQGNJYsMbrkvuFMU9tXqFEmUItX4GcKlizjeOOwcyaTSOwWINRDb8L3YbbphrEqK50mmkuYx4e9qNnXlnY2fGFwrd3Kyt++4M04waftcrxs4I62vJ61XT5gmv3MaXsoOv7urrjj8vq1dn424WewzJ5gBruLiNmKBj6nSlUoySGqHfUWkCbOL3S5fPCcUZzRTF9UTRf2o6UpCiqK5oqma5f+vvRIOdnBVoCYY0sLh4e+8ZN5cxLM2v2nfvJ45C77xXe5x7n9NIRms5WCCGEEELMLXqYFUIIIYQQ1aKHWSGEEEIIUS1HPJnZI0ChM3U0opgH+h0NOQwxQJTg6MWmy7nt1M0zM4PzGqlDjMfhVJuuTQfm6lXXvPNBftpF6Lx+qlwzs3VIOviFdFrPCdKuOJvo+WXGFeFABN7TNjzFHZt9wGTgP6wXqEDkKBW54pkxj+6jj59STy63PqegLnXs6LnTsSe5mr3kfW5+VhopdVDXOHQbU9amNctjgoKnI8tLUSP9agERZPwF7msin/OQEip1jak3tyi+533CSX/m3OZmJzeLZyBvOPdB3fmpdMt+t+Y0vWpglF46QHh/5mCJBkPkjvILGWlN4p633ff3muaM0H5wsSv86CF8/MGWvwcPppnve3SwXxvBfkeO7BHeCI93etpSNJ2tEEIIIYSYU/QwK4QQQgghqkUPs0IIIYQQolqOPmeWbXoyzIJMcyaZWcn2e+/ll9NLpUzWENUSb4b9Yh7m66+75iq8ldXLcGyjTL3094OMOyozpNeF1xK4RpOpd0/S1UO/LprWb8FnWEYzEqYwNjScGfkx+jynKW+vNdHYjLIo05PKXFjWXNSmN8fPYghj6uRxcDGz9rXX/KZQB1foxXO+5PuZ6XEjjw27wbFN35M+b6exPWwwkfyWWIPIneUhn0zQGTCgMovlvel28rPv17CDY7YbeJD8c0pJvnNrV3COajolV8+ltV6aO8vrQXr/5zL+Lomc2Wh55rOoS5/FHLITfAsi+jrOB1O//sKCz5lPld3OOr4XwI3xmEfXGraxfnptiaLaS3mc32NRzqwQQgghhJhb9DArhBBCCCGqRQ+zQgghhBCiWto7swxcizymXJYs/bhofmRm2lEOY2YlvdjUVaG7x77QS6Hn2pibHZl3PE7pvmR8uL1NP5Vb3Mi0HAbZnj307cHubPvUDhfgwDYybbe8TEQfaBhlB+c8p4bfFSwnLYSeuXJkCcdiNCd6bo70RuAifEz+LuuKNcsBeOuWb7/99uznd97J/y5rmn1hjXJw87ikdRW4g/0Fn2PJrnDTnfvMhoZHRw9u7cK3f+ZXBej3MSuauzmYBi4j1caSbHBS6LkeZx3ObYXnjml0zYzWjxxa3pzSccwx3Qx3zfeF15azZ32bDnwKrlMT1CdrhrCGVgZBzTQy8WfXnt2VVWzMtxvfBSnJ/TZrnLP0uwKDoP5qvu/pL7NCCCGEEKJa9DArhBBCCCGqRQ+zQgghhBCiWo4+Z5YOHL2YXM4snTfKYPTnuD4/mxOD5/wu+rfc9quv5rfF/bx2zbfp86TiWpD9t9T1Qs/Smvd36cxuLnqXaEivEX1dsbuzny97oe7eut9206n1MhE1xM4GZKTcRPKBq8l83CmyABtTex/+SeHyo8zHO3VEWZE5783M1zBr9M4d3+ZyDqDIm2MNp1mVdOKvX/dtDkaKb5H3fvWq78ri7PcbZhm9dLRX6Ox1vf+3CS++f9G3e5j7vbMzk3AvnPODdXIuXxdk0vd96fE45By90qzQaDnajeOcy5mNaKxfrx94bJTk/B4EB1s6PqLvtETiKr+3wmsD6zmtOdQfYp5tJbgWMAd603zNbEx9e4cKbdLmZWmwBV+e10xefyM/N/cdh9wya2Zxh0784wyaDep1nm/ZQgghhBBiztHDrBBCCCGEqBY9zAohhBBCiGpp78zSYyE5h8bMezSryF/jtpkzR+jfRU5tzpllhl3kqbCdc4PN/HGh0/r88655b8e7fvff9aufO+fbw427/h/o3PC4rq19+8e7H3gvJdrtRl7mFMcxyiVMCeS+HnyfKR1a/DqzPRvbSzSolmqf29aphyeNBy7wqlw7miec2xpwVnTA8cKaTZ1ZHnT+LmuacCy+i8KCo99JP5sD4PJl19y+/Kxr37jhV+el7NIa+sq+8BwlRf+g6/1aljt/laeIl5/eNDgHuTqNCily7kodzRzzKr4H37HIZsNG12Oeaw4mtnlfY/vmzUdfl/dvwoHLvuTWj3Lfg7HC+9pwwa/f7eJ7K4ihTfXeRvlwv3hDZ195DktqKKq/0vokJ1hzc1rtQgghhBDiSUAPs0IIIYQQolr0MCuEEEIIIaqlvTMbORW57Dczs6cS34uuCDy0hlMTten/sJ26J++955dRamNGZeQKX7qU//30uHBb6Ocqsl8XFryfM1xA3t4Ux5zHNTN/OtWiiKYig38o2GDpvNCDvt/vQTcI1CyZl7zY/alImi31FHNeVZAN3KijaH1CPyzNomQuJR1ZjnPWWaYOzKyZDZ3rK649g/veW79yxTv4dOomGD+9M77mc6750qKvA/p7jfzlYGgzd7Z7xrfd3PGRr0naLncdK8w8rdWhLTkmpduK2qyp0t8v2Vbky3/4YX45fz/dPs89nkO2l319vo+oV9KIsJ76vg3uwgdO+8brEDa2u+K/O8TSj4Z1bpi3LYGTLKHo6aDS6hZCCCGEEEIPs0IIIYQQomL0MCuEEEIIIaqlvTObm7fbLM6xS+WxyHGNZBH6uBcu+DZzKdPtR5mVr73m2/T13nrLtz/5Sd/+9Kd9+8UXZz9TwGFGLdpDro855O9seD+XauDq9PC+N8xPeIO31r0/x67S16P6d/4MvKlkAx2ebxL52NxRLs/JRYEMFPm8Vc3yXuq95dy2Up+P54i5sxzbzJ4+rB8HwRxL1jDhXPEf/7hvP/PM7GdeWzjWMJaZrjuAN7fbhVvMaxmPW3pdha+7sOxzZ1mjUZkFSp/10onneX3P5UgfRImfzeXHmVF7muB+tHFo2x6T6NrAcO/MOG3kxN5FPjoHKq8VbOf6xmsFimKA43IpunfsBGMN3/fZ7c/6Gp2+nnkHftgP3GLC7bu+5fsd3edKh97jLME5qXYhhBBCCPEkoodZIYQQQghRLe01gyj+5jjhKy2+xriNfA2qAXwNmRJN6RktZ4zIV77i2+krz2vX/LLv/E7f/sQnXHOy4DWC3obfr/NbfK94+FSYZmabF2dTb/It0RD/uXPhjF/hwkpe/Uhfr5iZbW55kWG6eH7WwCFs+xZxXt4yHjltp7NN4/SiGuS00KxJRnexL9H0mrnfZSTdLiLsuO033/Rtvva8fn3280sv+WWf/axvc3rbHf/6brDhlYYONSXuC7a33pnpF/dQ7gvYLR6Gs13oFA01gOMDMUaJErFh/vzx7StpYxWw3dYqqEoNSind0VwEHWud4471yUy5aLrqtK9R/fF+TO0nNx29mdkbb/h2WlO87nDMf+pTrjm5eMW1Obs03/Q3ZqTlYVmf7UuP+xnNGR/NPw0PaHvq77HpKeMpiOigSGhjtqnBo74/63YvhBBCCCGqRQ+zQgghhBCiWvQwK4QQQgghqqW9M0t/g85N5HukbWbAsM3fLdn2QdsrcWro09Hde+cd3372Wd9Oo7jMzD72sdnPFHAo6OCY9tbW/PJovwOxJZpR1EFPKTeFoJl1pj6Ka2Hh8GlfO4gkCWPfSqfSJG1iftimTHSaiWJneI5zkWd06kprktFbrFFmu6Xe6o0bfhmdeEZx0VW7edO3WaPPPefbqXzG3/2d3/FtRv8gPq+xn5y6Oxj7K4uzfR1e9A491UJqzIuL/pgPFjNxSgdscGCzNiONbLFQgiUtI/JEQNtYPraj6M108EXRXPyeCZdHoiqny83FgnH6+m99yzV72K+nObU16ndz53BP1cxsM3HcB5d9/Q376Df3m20+q+B5gTU5SGswiq+Mrv2NR0bWa6bdWpLN177+MiuEEEIIIapFD7NCCCGEEKJa9DArhBBCCCGqpb0zS2emdHrbtM11o+lq6ZlF+WxL3i1z3gv9Ojqy9PHYpivEvjBvMw1/ZD95HPhZPIY8DgyWDBzJzs7MmRtO6aUa2vkpZSdT77VEp9Rrq3BikFE77aIdzPJHhapBoug2jFfG51q+PahImW1Vo2xHJ7gRwIixyZNIRyvnvXNcv/66b7Mm79zxbdZVdL1Ja7g5j7Nv5/w9s8YU1I3jUpDXPZh6QW/A6S8bReeP8QST7W6hziaZbMpepJbzF4KucXk0g3kbatLcHUc5/XRp7UdTzue82GCa9obTHn2PhfWfW876On/et/nZfFYg8FiHuG4N2be03cU9E/W3s+ifFaYLeHYAbfLYy7OZC4NqHyP6y6wQQgghhKgWPcwKIYQQQohq0cOsEEIIIYSolvbObJRRSXLzwHMZvbPI70nnjDdrZlReuODbaa5dlHnHvrCvnMSYQXPMxEyXv/22X0YH9hOf8G36PzwHPC70mHJZwMiwXf/Q79cuo/7w0QPzmZW9yMFNxssuXL22sbKcJpy0cYmOel7px0qU/cnl9DfTdm7ZQdsiPMn06HLbo5dGz401SEmSWa/byFtldnTqB6Z5t2ZNB5Y1y2sRXUNef6JzlDkHk6YB7uh1vffW2/H7vcRTtuA/e7c7235Uo1xeCnc73X6beeGrpnRHczXIGoqyXKPsduZGp/cq3lN5X2Kb97G7d/N9vXfPt9P8Ve4H95vXBt7vWZ9R5j3rPbmvbk79jekD6Lq5R6SDPnrYxXWL15aSIoyKKrouHaewG/CklL8QQgghhJhD9DArhBBCCCGqRQ+zQgghhBCiWto7sxQ6IuEjtz4dmSgnNvLx6MDRx0sdWzouV67k+0IvhY4NfTu2U7eIc8KzL9xP5mNiXukGw6Fv07lNPm9zyzuyPIQ5h83MzPrBfx9lpLoOljXmfY+2fZyEfk89c8Y3nMqubzdUZGpQC7M67HGssoa5nI4d64rHmb5X6tXRY2NN7u7ml9Ph42cxlzbdFzqy3I9oHvqbN/PLo7zdZK747ak/f/xosrjox+qQdRVkh6e/HWjpRyCf55bzYlS67VqDZo+QyImM7t8c9/zeSjpuI2+VfaHzznplPee8Vy4r7QuvDbyu8Z7K61yyvei7H7znhusPfRUOF3170E+ug6VfPIko8V6PWWrXX2aFEEIIIUS16GFWCCGEEEJUix5mhRBCCCFEtbR2ZnfpCnYDD2nBL3dz/Ua+TpTtRqc2Wj9tM5Q0kkPpyLIdTfydemlvvVX2u+zL88/7No8D3SLOeZ3s6/CaP+Zbfe/b8qMb2jI/i/4dSc8BznfD34VCRSUyglHA6WEO4/KCbdc0zztzRnlSe9zZhuectEvndo8GEF2zxA01Mz++WHOsb3psdOYpl0bZr2nOJbeVy242azp2XM594eDOZEUPrvoTtrjosz6jEiz26NJzhvO32z/arGh6sGldtrFtzebImC3xkiNHtq0zm2uXZruyHvldEebKcqC//vrh69K/fR9hr7du+fYLL/h29D2XTD7v5MNDF5lZ8zANF3AtCJx2Y72n7Ta5sEex/BjRX2aFEEIIIUS16GFWCCGEEEJUix5mhRBCCCFEtbR2ZjtbEBmjyblzjl3k20VtbpvyyTPP+Haa9cplnHv961/37d/9Xd9+5RXfZo4kSZ0aun30d9M5ps3Mfu3XfPurX/Vtzgv/6U/7Nh3bVNqBO7RKb6nhVK255oOuzxm8P0XuIBgmmtSKeTdouOPlouF24F+SyAdL/1uuWzjndIN6cmbDmiyp4dIaZXYkjytrgUJZmv/88Y/7ZW++6dusi9/8Td9OnTqzpqNHUhf98uV8P3n94PWAv/+Zz/j25z7n23T00rGMmh1u+evFkH1b8zW7vum9+M1Nf/1pRN4m7YH5UMzOfV+zg7Y1mqnDxvc1AD/6BHW+4yUSkdN2VNusV9ZElJ+ca9N5jb5nQu+UPj37Qi82JcqcpzPL61Dk/kfbT47jSnS+OFAjTznymnPO9Cl2YEupp6dCCCGEEEIAPcwKIYQQQohq0cOsEEIIIYSoltbObHFuWS7nji5I5JZErh89Fzo1qaNDl68R9ua9soZTk/NxzZpOTdq3d97xy9jmZ9GJ5XIeY2bm0V1KXUBu6+mnfRu+3YMN761RebtwDl5UznOGbhW5QhMkRXI4kKyaxGWWb5OacmZDJysME86s27ZG6ejRPUthViT3i3nLzz57+LbMmnWSy6X97d/2y1591bevXvVt1iyX8/pDn5dOX5priZpsZPMiA5N18xRO/8owc60yM9vIeLAcK6jZ3W6+ZhuKbcHU8aV6X1U1m6ON15ir7aMg7Vt0T6XbTUeWWa5cn3ntqaceub38XX5Phetz4PIccHCl99XIeS3N/o0883R5MFYiD/0kiXqmv8wKIYQQQohq0cOsEEIIIYSolqN/x1ASE8J2FBlUGilEnkJMVPoa8uxZv4yv7viKg3CK2Dfe8G2+Pk01BMb0EP7u177m23wFQp2CsT+M+eFrj9xn49XrEl958FV/9O4/pSCWx8yyU12alUXzVJRAcvSUzjGaq9lwflLAA8+xmFMiotdt7Av1GmoFhNtPrxeMz2OdUBXiZzGqi8cxmpo7VR4K4xB7UIkmxqm8fbu3jOOabi8aO1AU+KpwcJRRQcVFfHpfqaYUv/rllPKZKeY7FswJXhrlxbis9L5JbSCqX07pTBWHmhHve+l9MYrd43689ppvc2xxbvQSnZK1HM1nWxhfR5XHncLCyzM5zffJU9w1IYQQQggh8uhhVgghhBBCVIseZoUQQgghRLW0dma34VtRydhGMtMko+BEs9NGaRgL0O2YjrXSgWOTTjnJaA62GdPDKC5GWn3+84d/lpmfapNT5dIVIoz1IXRo+dkk9Yl4EugZ0nsqjFPheEk1qF2c3w7GziBIjBr0cdxK/c0cczSdLaOZpo22h6ly6fAsVWYbiiyGy9ICTjrd0jSiin4eO0PP/aWXfJuuOj1XenNp/BajsyIiL541yqk+337bt597bvYzp6fmQeZxwfWhF/l+mekyJ1M/7iNF/igV2dD3FA1aO7KRM5tbP4r8o4fOewtv6PwODH37NrFjvHbQkb1zx7dfftm379717fTa8rGP+WWMDOT3daL9QpF00Hb1Xfq9lEYBlv3983FGfekvs0IIIYQQolr0MCuEEEIIIapFD7NCCCGEEKJaWjuzkZYSzZSZW1Yaf5mLdtvbADqTTvvIlemtMEeWbU5/x0w8kvpBFy74ZVEmHrdNv5fLub2c10QHim0SZeThpPC/nlLtqTOFJxj6Wi0zTdN2mGkbhNZWNDdmr7uLdn79IU5pzoNqEzNtZvZgyx/H/toV1x6kdUkPlXVAr5VjmVPEcuzmPFdeL771Ld+m987rAz+Lzj1rljm1acYmt80caU6lS8cWn729489vY6gn3mVvx19repFEXRL+fNDykpqNtl1JzT5WN7jAlzaz5vWf5z+t12iqak7DzOx31hzrmdtLvVZ+jySC26KvGz2M8LsmqfMe5V9fu+bb/I4MrxXBPfg0T1F7lOgvs0IIIYQQolr0MCuEEEIIIapFD7NCCCGEEKJaWjuzDc8xcKR6mRy7hm9V6l+RyP9J89voqTBHln4dMyjpAzEzj57LJz85+/mK9wIbeZf08ej/cE5qumD8bG4/7TtdIe4XvaUod5aZdzwHuf+eijLx2lKyvdM8KXUpLcXWTtpGjbK+G/VOQtE9MwaYBcnfZT5j1ObYZA3nviBAT525sIS5suwLoVfHfU9hTUaOHRgENZylNNuzTdBsm3XnmZIvpkT32ChXlm3eL9JxyxphTjTva1zO+uQ9mlmw6binP897KnNjuV/f/Ga+TQ+dmdaf+tTs50bYdpAjW5r9y9zZZHuRP1uqtJ8mKuqqEEIIIYQQHj3MCiGEEEKIatHDrBBCCCGEqJbWzmyxVJHLAox8qyhHEL9fMm84NzWwICeW/g5zadO5082anlqaU8vMWkIPiXma9HvefNO3t7d9O82oNPNzQ3O/6Oaxr1yfB5n+Xs5TjDINA4eWPlCkaxYRuERzleRX4jFGNYvlu13vc0fK3Q60uZTh0LdXVtBvOnicy50uKTvDfUtddI7zKBuaTh7Xp9NHd51Zk2nN8nxFc9azMNgX5n3yGpBur9SRJUdapE8GYW5oN5Ofy8gNWuoAACAASURBVGV974VHp6PN8kiP72zAC+f3VPhdj1dfxQZwXPj7RwnvTfR76cTn1uV16u5d305r3az5rJGrTzPX106QA99r+wwWrd+K/LjXX2aFEEIIIUS16GFWCCGEEEJUix5mhRBCCCFEtbR2Zje36Cl6J2cy8W1OWV6iTDE+le2FxhziPgO3N4UTl3pvUd4eXRLO2x65ppw/PfV/uCN0aLgtOjWE26MLSO813VfmWTLDlsvp40ZiVC5TL3Bk6VuWxg6TJzXCcnvK45g/rhNESbOGc/SxLZ7iYXcbbfibU7aTDU5xUibYON3PyGt/4w3f/sY37FDombLNuuBBYw1GNZpz1ZiHy4O8tOTbUa5l5AOn1yN+FwDbnpgfW83vLWT8zgPI1WFUorV67qEje4S0VSA7lrnB8+SvY8zTJWWbv8+x9/TTvp1euDjmeW2g43rjhm/zeya8SPKezb6m+3Lrll9286Zv0/XlPZeZthG57zjwhB510Gy6vWO+ic7RLVoIIYQQQjxp6GFWCCGEEEJUix5mhRBCCCFEtbR2Zof9SX6FNjmCpZlmzQ34Zi5jLXJJCPNT6e9E+aupY3P2rF9GH5eU+LgHLWf7/PnZz9xv9oXuH30efjZdIh63tJ1bZmYdHOMePChm5NGxFXsM+i3E9Wj9SGS+H8wrHvUlPcesWYyPSRcuKeixRvnZHNup98ZxTa+UojGdPWbcsm6ijM3UqWW/ue1Ll3ybfWfN01Vk5m26fX4WvOQeaniKmtwM4rxJ+nWAtgoev1rwJBKVa9TmMG+ayLODPBj4A76w4oOiO6znqB5ZU7x/pPfJK1fQLZx8/i7ve7xnMuudNcLrQVrP3Bb7wkxpXiOj56JcYfCYRtuOcmcjxzZtH7WPC/SXWSGEEEIIUS16mBVCCCGEENWih1khhBBCCFEtrZ3ZY80pw+8yby/S7Zpd8W5Kvz9r96bIhaQ3xhzIyO2jg3Ptmm+nLkpzknnfZj7mt77l28zAKyV1duj+cP7rkjnjzcxeeMG3c1my9I55HOBI7Qbzik8bmZaeJzVntrUol8uOjD4rcrJKlgfXnt4OhEz2lTXNscncyvTzOFbpvTOn8s03fZs5tPzsiLTv9Glfftm36e8xO5rXJtY06zCF55efBQbYz8EwOP/BPUCUEd22SnNmo/JN250djPl1jBXeczmW+H0N1iA916eemv3MMc77GD3W116zLKy5EnI+rVkzY5q5tHweoDvcQY3kvhvEdu57RY/SbkFU21Hlz9MtWgghhBBCPGHoYVYIIYQQQlSLHmaFEEIIIUS1tHdm2/p3qccWCD10JgaB77GNnEmqKl7R8esuL3sHbrgI/y7KmeS+0O955pnZz3Re6NByW3fv+jYz9Ojj0bnJZWJynmh+FpfzOJDUWzJrZuSmPl6U+4nlHfg6vaCdFb7aukGDfKbpaaKRv3uCebyllwtL2gso/07kb0beO8cf81mXlmY/s0aZFUm/j1472+wbxxvrMK1Zuob0cxkGyvXp0EbuYu6aXXK9N8s79GaN49DJOdMk9PmePP+2VHHk+h3bPXjFw8jd0yM/k8t5D+U45b0oHUusAY7DaMyTNJv9oO3l7ovpdcSsWfuvv57/bF4L6AOnzxZm3iWmb1ualx+ds1wubXBPjcdWvl71l1khhBBCCFEtepgVQgghhBDV0lozmFjwyrLgbW3jz8z8033Uxp/2B3jF0dASFpM/meNV/+aW/5P2+rZ/rTjAVHzDM4wdwWsGvsZI+7K66pflIoEOavMVSpS/wiiQ9JUnX3mwzdepjDhhrAgjTHgO0uPC40BFgTpG23b6yiSKKCFzldWVJ/v6J8rHC2q2x3YU5eXOmX8ltg1VaGfBq0Jd2jycips1y3baN45VRtBRQ+DYYx1RDYqUiPQ1KH+XCkMUI8Sxz77nXh3ydSyvB3xtWVKT0fIoZijKjapIDWpDm9mnm9PXdtCOPqt3yM8HlbYfd4vn/PW/s4HpbKP7YhpRFV3fI92FO8aa44HIxQZy3EUaIbUD1hi1IupRaZvLLl70bU5PzXakJbSp1+h8BvNPPzl3ZCGEEEIIMXfoYVYIIYQQQlSLHmaFEEIIIUS1tHZme134dGE0S8apK3VkI1+PZLyYydS7QFRcqaFR31hd9R7MCn2PnENLz+S553yb0Vv0Vh7AJaITS6+Nnku6nM4ro7iuX88v52dHzm26L5G/E0xv28qhy3mBc0YYgdJmOtu2NRtFvSQ1vLnjx1I07Dn0Ll3y/zBk3+impWOZNRS5ZtwvbpvXB3qrnKoz3dk33vDL7tzJf9bbb+fX53FgnaXxPrllZs0ovsixK/XqHnXZoyw/pRTHYYGeHX5fbC4L2h3Wa7B+VthFm2lYQTpWA44VRmDl1uWzAe81uUhJs+Y4/sY3fDv11lnrrL/o/s7patk37kv63ZPoOsV2af3m3OOSWn6U5Vy9aG0hhBBCCCFOEXqYFUIIIYQQ1aKHWSGEEEIIUS2tRUHmsU6n3kPbgdfWjKEcHrqsAXW6wgjDRk5dItX1IMmeh99x/mnvjqw/8Pu1idlud5Fxufo8XJLUoYmmtuSOPP+8b1PwZQYeZUE6Ounv8ySwbxQR2X73Xd+OsmJz26IEWZp5V+L3RLmDpFL/zsxse4c1i+Xbfrzs7rKm098dHrrsoG2TSF3jKRxMZ4U2vO/H8RVD3SzjHMH/eoC+37ILrj18zrdXdpNpXyN3nHDKSbponILyt37Lt19+2bc5BW0KXUFOrZurQbPmvnz1q76d5mDyONB7jzx4HgdeL5jnm/a9NCu00pzZ3bbT7uamqy6cyjq8R2fWjzNsfZvDlqroEJf/geG+R1c8hTdswrHCew3rlRc+3nPTcfvee34ZnVgeCN4XWfu8T+buuW0d9dJp3nNE34/gAFHOrBBCCCGEmFf0MCuEEEIIIapFD7NCCCGEEKJaWjuzjfnNCdXDkomio+WNNtaHStpwNFIhD74VvcKdIC6VKlhvyrnW0bk0j5G/TP+GTiyXM9vxM5/Jd+7VV337lVdmP9N5zeXCmjU9Fzpw9H9u3PDtdF/o8tK3436WziudywqkS8SxFTm0lfh3ZrH2FKlLpd5cyWc3plef8vqSrMCxiF/e7R7u+pqZ9fFZHF6dLXh1G8mOM/eVY5Hee85TN2vuy4sv+jZPSurFffObfhk9VuZaRmOb63Ou+FwtcL/Zpv9Hd5G+P8XJ9CRSqCbcTx7Dimq2DSX12qa2IyIdszRPly7xZIrzeW7mvPdY3BzjvO+9/rpv07+NDhTvJ+m9iDVBWAOsEX6PhX3LeedRbmz0PRP2PXJuc9I0B0C0PEB/mRVCCCGEENWih1khhBBCCFEtepgVQgghhBDVcvwT0pcId6XCThBSSe+1oWel+hYUNupU1FAambX3IeTR98gFaHK/I6emVGJshvv6duq1MsyPmZW3bvk2M+9u3/ZtZuBxeeoS0gWKnDf6PfQOQ8f6lMhkj5let8xN67X4T156bdFQbGZPHp55y6HKmm0okl34t426C8ZHbp7xyEONfM3ID6Nrmjp/dOzoubHmWLP0d+kLMnc2zcm8etUvY2YmiYKE6dg/oTX6uCi9REZZsCWwfns9/w9tI07dcl5oGgI96pPft6DDTgeX2e9vvunbX//67GceVDrp9Hkjcn6uma9v1nrkuLMdXbCj43qM6C+zQgghhBCiWvQwK4QQQgghqkUPs0IIIYQQolpaCw3bU++0NZ2b/Hy6qYNT6t80nJsgpmzop2J3OmixbkUXhK4IXRN+QOJ3Ptjyx6jb9Z7q8Ax2JPosuqP0e9iX1Lm54Oejt9de823O0x7NM02YiZe6g/Tv6AIxI68kR9Ysn6EXOY5RSGJFTKZ5j5WUqMZ06kgbx66Uhhu8Dl8sym/GeNk9d/7bP0exk+fP8bPhwfGzOZ5YC7m54ZkbzRrlZ73xhm9HJ4WObVo3POGRE8v9KKlRtvlZUQ1XXLNtyO126SFpZMFGF4e0piL/MmpHgdiZsbfb94769Mx51+7x3sE2vXPm0nK/+f2PtJ55HOjP83spXJ81wXt2rsa4jN+JydWbWbv75DHX35NZ3UIIIYQQYi7Qw6wQQgghhKgWPcwKIYQQQohqae3MFmW9Wdn0u1GuXM/ga5V6q8kGe3BDNjHPM+NSp1i+vOzbSwsItaW3lmxwCX7O5o53aDfNy77DyIFl7iQ9GZJ6LhSRo7nV6czRx6P/Qz/vnXcOX0bPkCeBbWb9pV7hQaT7nZtv3qw85LAijnKK7NJsyIbXGtVs2i7Mmd7pr7p2f823B330BWO9c3/mwZ1dDtwxcvGib9NF41hmtiuvbWlNc5zzmLGmOda/8Q3fpvfOukw9evYr8m95nHgcGOhN0gEU+XpyZs3sqKN6mQWL73v0fbtTcszb5gRjXKeeLG9bZImX/yhPlW73tWu+Ted2NbnW8JjwPpdmr5s1O8/AfNY3ayrnzHI/Ioc28tRzObNtbiyPwJNZ3UIIIYQQYi7Qw6wQQgghhKgWPcwKIYQQQohqOXZnts36XLeZcRdsIPLYMv5VF+oHo+BymzKzpkuSc/+wrA/vqKGlLXiHtkM/hzBgN5c1xx1hXh7z9i5d8m36ujwHnIc6dezoDZY6cG281tJJynl+owFyinicubI9xEw3/NwuHLy+H6vZa0DQ0UG/i7ZffRf+H/N3bcH7Y87vjeYkj6CrxrHN5XRJ0/FHp46/e/asbzPDln2/ccO3eQ1I952+X+rAm8XXYPp/3Bf6u6l7HOVK0/djXyI/t1J4n+wVXAZ70U21Me4L6iByJnn+gus/nfjGdSrR7zkUOlv8TgtcfX42nffoiwbNL9nMfmZGLeuV9xY6sW2I7pGl99jS7R8j+susEEIIIYSoFj3MCiGEEEKIammtGZBW0+NFrzBKX+0Ff0JPozuiJA6+qY/enjVegWCK2oXktUca+WNm1tvwc2X22O8F/9rwnvmIocXLiBz6APFYr7/u2+mrPr7q+exnfZvxV6+84tu//uu+zVeUfA2ZwleMjDMjfB0TTcVHFSA9rm1fj1T0yjIauw2dJ0epntH4/aCdqeGJ5XUc0vaNmdsXjlV+OGOCFn3989cXVqA0RMct3X409S2nuzzvp/JsDAi++uer/jQ+jTVKjSiaFpTL+Xo29wq2NHqL14M5hfpMbiiVTj/P5U3NaMh/+Da9wiS1zjQfvTmItAXXxjLeO/i7bafeJek4f/FFv4z7wXplVBc/i+Oa0Z2pIkFdgutG0V2neMpo/WVWCCGEEEJUix5mhRBCCCFEtehhVgghhBBCVMuRO7MRTX8n9XuCqfHo8tHXKPT30niOAbY1wTR93BSVmsjHa0yVmXov3A96K9gY+xI5kA3PhdvPSVXc+Llzvk1pirEj6dSXZs2Ykdz0l9GO0hWif8e+5tqlMT/R9LcV04ioysLsLbbLPjuM43Of7Mder5t36HbRN9YwU+UYK7a0mGyv8FoTXT+owa1y/K16D955rawLrsttsebo5F2/nu9cCneEfi0PauPCCI+ddUZnL21Hjnzk91VCkcNu1hhsvdyyaBxHXyaJ3NFMBGUYCxV8J4IRlTmNnR/N2h4O/TgcLAfPFhF0ydPOvPeeX8bjwHsqt8Ud5fdS+Ptp33n/LZ0Suk07GmstfVv9ZVYIIYQQQlSLHmaFEEIIIUS16GFWCCGEEEJUS2uJiD4PM+4iUm0ijnLroM1MvHxGXk7BGe74bMXeus877NENo58FH/PO++yrb585M3N0hjtwXoLPmva93xNF3A3ondEdTV0V+jmRt8pMvNHIt6Pj9uqrs5+ZMUmHhhmWzKzlfkZTDqZuEQ8i+x3l7y35nNDTTKTBUXOkgpX+fmkcY6SeMc95dZV1M/u584HPY25MrUpHHudwYc2PXf56Y99WZn1Z5cWEK6Pdw3jp9YLrJOuMTne6PJoClieQ9c+c2u/4jnzfbt6c/cwTzDqhE8vBxb7yJPAcp9eP0szLE8zAfKzkrnvRMSn+QkYLWp4P5tAu8WsMSZu+fKRvbm6xPvF9nkD37eSmp+Y98+mnfZv1TMGXjiyX05lPs2RZ+9F3RUpzZnM1eMz1+IRUtxBCCCGEmEf0MCuEEEIIIapFD7NCCCGEEKJajlyIaWTi5TLvzKyXPE4P+swdY3sn346EPagoNk38D7ghD5bh0zFeD9tahtp1/gw8NfqgtxOnDp7K9oqfO52/Sqi9DLfu4bPQOboq6XzNdGQoE7EzXP7WW75NnycnLj/11OHLzMwuXfLty5d9O5p3OucLcb/nNLPSzGzQxdjEcBiy7nKC2WJh7mQk0bINhdK2kvOAgf9gMV83W9jWIrrC4dR594b/h5uJT46a3TzjxyZ1bkMJ8rOWPsBnvXHbtzn+kg1sXnzWLeIhXPoYHDuOdbrorGHWQppVmROqzZqOLDNuS/M7xdFy1Dmz0fZSeB8KcmUnXe9fU1PnUExvPRzCvQ1fE71cLqxZ83qPGto2f++6v+W/Q9E9M6vR1c/hvkTHlW3e4G/j2hB9LyW9VkX32FIntsRTP2ZnXX+ZFUIIIYQQ1aKHWSGEEEIIUS16mBVCCCGEENVSl/gX+RmlHmO6Pn6X+i7j1+jnME6RuXYd+pqZOasHU595e+mi91i2kVm76Vc3W/DOzRC/38huTHPtcBwmi3BsLl5xzUayL7f99tu+TZkwJwRHuXQNJxoiMz0ottNMy1J3qOLMSo7NBkEmY27ZtOWU5lFJ97qJc4mNLxlyJ6/6jU2m+WxX5lZmMxeZ/RzErXK/ONxsA+ON1ws4epPlWY1vwAWmph5GfzPcl14d+5I6ejzB9HGZqRl57vQD2Zd0+20yLyuiNLudTDP561zGcp12/diYQHneDeo9c5trwK/A9HE55+leWkRneP1Px+n9wO3lxjHm1zf9Df79O3513oM59Nywf/ddv/C113z7lVd8m/fMyJHlvqQ1xVpumztbct+M7uctc2jrrG4hhBBCCCFMD7NCCCGEEKJi9DArhBBCCCGqpbUzS3+T7Ox4J4euadqeTv26VCIjgpg6G3aReZg6lPBtoMDaIOOsmTVVUaqgi4t+384uJ84Of5k+D/2d+95j4lTNZ8/69tDg2NAdTb0WHMRguns7zyxXOnHPPefbzLRMBb90znez5gCgmBzNAx/NO562cwPzoN+tmNJoSB6KNCo02haJtCjWsHNkzbI1G2VD9lDDm12fBfn+Ol1h72umw21p54FbtrTuC34JO7K56IuS2ly/7zNyL1zGQccv9JJrxllcHzYH/tp0d8Pvx9nPf95vm3W05I9Lw1v92tdmP7/3nl/GwfLAH6fG+hR8O7iflHhzlTqxEY3s9kJ6mcOSW3biRBemjSDDOoUXluDCw0xbDlOqplxOZ9Zle/OXv/u7ffuFF3ybDxO8KfM6yOOUub834DGkDFxaY2lfos+OaHwZwHOah7IQQgghhBBZ9DArhBBCCCGqRQ+zQgghhBCiWlo7s3RDovi2khw66lcRgVJh2zBhuyuJx7YC0ZTbhrvX2/H+7XmG4nF+e+a3dmce2v1FP687jwMjKc+f8Qfm/DI8l4bXgi1cvWqHgn7y/IXnhDl09IOYK5kKv5Sc+WFczgxLbjtqp74vReNoDuvSTONTRFu1sMRlj5xa9oURiltb3qFcWJidl8U1f44aObH8cLSHW97fHvKU8hwvzMbAA8y9vtH3bebOLmC/qJZ3PoBL/i68dh6opIbv3vfXtXvQUhkj2zjIdPC28d0Cuuhp5yN5kHVFx76kRvl5zMQszcAUTSJPNWrnaq70eweN+vPnb3cRNZiJmWU9ctO8xw6YWc37IPJ5+TUU9mV5ebb+kLXMX75927fpzJY4smb+2sEaiNq8eETr57KejzhXlugvs0IIIYQQolr0MCuEEEIIIapFD7NCCCGEEKJajlz8i7SH3PIwT680IHOnIPQSrsdu33tim3D3plP4twu+3ZhTHg5Obzrz0lYp7LAvmJt7MmWonW83sjkjUTFp87NCzaybm4TamucsN0n99et+GfN3Cbedk6YOWj9tl46timn436zJaF/7BROulzp3EdOks1t5p24b88pP+/C/8r9uHXjx6XhCEqstnfNF/GDD1xGHF4fmkH5nQc1SU2VMbEPv5o6yZl980bKkbuq9e/l1uV+lc73nnL2cn3dQe05yaHmNPlK6yFqGG8o/fzXKGcu3k67yKxBRTUwQUbyL21qg1Lqhls2YNzO7jXsHwcZ7GKerK749mWbOUR9j/to136aHzr4yWJ5ZsLl7bhTsHXnmUU0dsQdbwnxUtxBCCCGEeCLRw6wQQgghhKiWE88X8q8pgtcnXU5XWvZZ/Iu30xrwvqSz5f90PwziLzj9Hd8MGF7XpFEdvQ28NsDr8g5exT144LfF1y/Ly/449qJpP5NXCdMF/46Sb/r5hmMw8J918aKP4uktI1aE01Wm75YiTYC/W/Aq9kByr1/mGL4Ca77557Su3EKQgZeBVkpDx4kUmVwuGMbLoKEO5feL7V7Ba2q++uWqYZJb9M40cxwGA79fnEGWJsDWll//El9z8hc4zXTqNbBmeeFjrBdjv0h04NLtlWoFc1Ljraa3LdR+ekH99aL4u1z2JmkoaEEMFF6JMy4r7comtMA+ojh71F+C+/36h77eP8T01BzmadJjI0rzrbd8m7odo7pY4ISeUfr8QK2H+x1dh9rUVJv786NsvmhtIYQQQgghThF6mBVCCCGEENWih1khhBBCCFEtrZ3ZUn8nFyvSduY8QsWS+tbCwmyFTuD+NIDPQY2FuifVk95O4uTSiQnmBL53z7tB9Fo5A+SlRWyPDlziyfQQ0zOdev+GKSB0gzgz5llOOXnlim+nEi59HU7jxw9jbA99oMj3SZmj6K2IMJoLHGXN8hSyTprevB/r/cR7jZRJXptKU8F6hhXSQqPXDn9vunjetd+FU0euXvX7OaR7ynbiuk2XfR1EijyVusZJYNYXvbp0OmzWHD+MJ4Xb4vWBsURcnrZLp6+dE2e2FYXeYhQDVnKPjm6xjXqktor1F9Fm/FbvfnIziqaADSLkGM3JmDEOtdytaHfB12vn+ef9yozKi64FvOmynnMXOp7/0vy0NkSOe+NLDPnvaqi6hRBCCCFEtehhVgghhBBCVIseZoUQQgghRLV0dhlSWshk4sW0Ui8tXU5dI+paFDMaO7PJupmpKx/pwyDNcDrcnGrSmEYTGbf87N3FfBYsu0rtrLd+1/9D6hPBFXrQfcq1qbHynJ318X22asisZIZemrFHd7gZ1uuh5xRl6LGdyoNP+f1sbJtt+j6rq8c4x+QRU1j0JdNnHvXstSyzQT/peiSHBu75BJnKHG45rW5oqNForKII7933/ldjelvo4CvDzHSczNNd9mM5uj6wbIYbuD4wB/Odd2Y/84LAHclNX33Qh7NGWZdpu7RG2V5aqqNm296kc5ROR11KJst7e8cffn4fg+3GdLe49/D+ng6Hs2dwCDluWSSR+w23e3vZ3/i4+fRSxfs9NfHhFF/A4cZ4rSn5fk9UE9H0taXZzrmA7dLc2Q6f6PDr+d8WQgghhBDi9KKHWSGEEEIIUS16mBVCCCGEENXSOme2NLOyQYmT00bINbPGs/t0tvuTrhduHuz69oSRZ7A3nmLG5f0PXXtIryVxUybIcn2w7YU5ukDDqZeFzi5AJoKnso15qbcWvN+zkMxT7fJvzWxpx+/H0hq23fV9pc5zr7vq2qsvveRXSF1C+rQM54zcIUpVUTv97EhLm6OMSjqwpVpcyXTrR6ncmZlNprO+9+hIBh+220VOYRA1yc/uWVJ3W3kft+HnWj4jkWpZEKno95WZt9hYr1eWQ3vunL8+DC4XZHBH7mGUW8k2D0x6MeQybnuOavbYiI4RlpfmzqanhMvovLLdVs90JcgPp5sNcTW9zpjFWmoffbm0hp3JXZui7+PwSy9RtnPU2dxnRQc1Wv8Ea07VLoQQQgghqkUPs0IIIYQQolr0MCuEEEIIIaqldc6sEEIIIYQQJ0XbL4CtmdmZcC0hnhw+MLPb4Vong+pVCI/qVYh6OLRe2zzMrt2+bbfW1lpsQYj5446ZfcJO3w1S9SpEE9WrEPVwaL22eZg9s7Zm9gM/sDfbYbe7979eL/75UdfrdPaSIaKfu929dvTzvPavM53sxXtMp3v5Jvs/7+7uxXREP0+ne+3oZ27/sJ8fdb1569+1a2a/+qvnbe+vKaft5nhmbc3s+79/r15rGt9z1z+rdHzPW/+eeaaaeq1qfM9b/+wUj+/T2Kfj6l9Qr61zZt980+yNN2YDaH+Q5H5+EtebTGY/T6ezn3d3/Xpme/+2u7tXUPvsr7v/v0NJV0oHCgfI/sA8qH3Yz1ovv14FXL++V6+nvV5O+3pp3ZrFNXvorOK5ej3ogl9DHdSy3nR67PXWlv16Pa11cNrXY53u/9zpzJaZ7Q2FVvV6UnV6Wmrpca2XoXt0ZSeEEEIIIcTjRQ+zQgghhBCiWvQwK4QQQgghqkUPs0IIIYQQolr0MCuEEEIIIapFD7NCCCGEEKJaWkdzPftsBTlxlfYv/V+n4/93KOlKaSbJfhbJ/r+b7UVd7EeM7C9PM0qm070OPYmZdh+lf9eutS2nY+fatdMzvk97/X2U/h1Ws4fCejXzv7yfH7Q/Jjud2c/pv/d6fnz3+09e/X2UnNlTzn69npbxfdrr71H7t79e+tkfuV7N9jbIDUQ1u7s7q1vlzD5azmzu1OxmQ0uzrJnZK2Z2/qNuQIg55NTOKGSqVyGI6lWIeji0Xts8zJo9nDv6y1/+8rWf//mf/5UvfvGL3/ulL33pepsNngQ197/mvpvV3f9D+n6q53r/8pe//Klaj7dZ3ePFrP7+m9W/D+j/y3aK69X2ZjuqjtrHSIr25VRx6P217cOsmZmNRqMXzeybZvax8Xj8c2nyiQAABY1JREFUWusNPmZq7n/NfTeru/819r3GPqeo/ydP7ftQe/9rYJ6OsfalDrrxKkIIIYQQQpxO9DArhBBCCCGqRQ+zQgghhBCiWo7qYfZ9M/v7D/+/Rmruf819N6u7/zX2vcY+p6j/J0/t+1B7/2tgno6x9qUCjuQLYEIIIYQQQpwE0gyEEEIIIUS16GFWCCGEEEJUS+vpbEej0T80s8l4PP57ByxbMLOfMbMvmNkDM/vh8Xj81baf2ZbRaPS8mf17M7tsZmMz+5HxeLyOdV4ws6+Y2Tce/tON8Xj8hx9rR8FoNPphM/sJMxuY2T8fj8f/Gss/Z2b/1vaCtn/ZzH58PB7vPPaOHsAj9P3vmtmftb0ZPszM/g3XOWlGo9EZM/tfZvbHmNF3mo+9WZ11uo/q9eRQ3YpHpdY6TZmHmt1nHmq3hI/8l9nRaHR2NBr9jJn9jcxqf9XMPhyPx99lZn/dzH7uo37eEfPTZvbT4/H4O83s/5rZ3zlgnS+Y2X8cj8efe/i/k74xPmtm/8jMvsfMPmdmXxqNRp/Cav/ezP7yeDx+ycw6ZvZjj7eXB/OIff+CmX0xOd6nqqhGo9HvM7NfNbOXDlnltB77mut0H9XrCaC6FYVUV6cp81Cz+8xD7ZbSRjP442b2dTP7ycw6f9TM/oOZ2Xg8/mUzu/Twv95OjNFoNDCzP2Bm/+nhP/2cmf3QAav+XjP7zGg0+o3RaPRLo9Ho9zymLh7GD5rZL43H49vj8fhD2+v/n9xf+PC/eJfG4/H/fvhPP2cH79dJkO37Q75gZn9rNBr91mg0+lej0Wjxsfcyz4+Z2V8ys7e44JQf+yrrdB/V64miuhWPRMV1mjIPNbvPPNRuER/5YXY8Hv+78Xj8T8xsklntGTN7O2m/bWbXPupnHhEXzeyD5NXAYX3asL3/Cvu8mf0zM/svD1/HnhTRsTyNx3qfbN9Go9GKmf0/M/ubtne8z9nB/1V/YozH4z8/Ho9/5ZDFp/bYV1yn+6heTw7VrXhUaq3TlHmo2X2qr91SQmd2NBr9kJn9FP75q+Px+AcfYftdM0uzvzpmNn307rXjkL5/HX0yO6BPcAt/cTQa/WMz+y4z+82j7GMB0bE80WMdkO3bQ6/qj+y3R6PRT5rZz5rZ335cHWzJiR/7mut0H9XrqanXfVS3osGc1WnKPNTsPvNeuw3Ch9nxePwLZvYLH3H7183saZvJ3lftgNc9x8VBfX/4OuTWaDTqjcfjycP+HfQK6q/Ynttz6+E/dcxs+5i7nOO6mX1v0uax3D/Why0/SbJ9f/hK+wfH4/HPPvynkz7WpZz4sa+5TvdRvZ6aet1HdSsazFmdpsxDze4z77Xb4LijuX7RzH7UzGw0Gn2PmW2Mx+PXj/kzs4zH420z+xUz+1MP/+lHzey/HbDq95nZnzMzG41G32dmPTM7yW94/w8z+4Oj0ejSaDRaNrM/YWb/fX/heDz+lpltjEaj3//wn/6MHbxfJ0G277b3Dfp/OhqNPjYajTq257j95xPo50filB/7R+HU1ek+qtcTRXUrHomK6zRlHmp2n7mu3YM48ofZ0Wj046PR6B88bP5LMxuORqPfMbN/YXsn/zTwF23v230v295/vfyEWaPvf83M/tBoNPqK7bk9f3o8Hp/YK4XxePym7b0C+J9m9hu291+3/2c0Gv3iaDT6wsPVfsTMfmo0Gn3VzFZs75ifOFHfx+Pxe2b2F8zsv9pepEvH8l9YOhXUcOwPo5I63Uf1egKobkUh1dVpyjzU7D7zWrs5NJ2tEEIIIYSoFs0AJoQQQgghqkUPs0IIIYQQolr0MCuEEEIIIapFD7NCCCGEEKJa9DArhBBCCCGqRQ+zQgghhBCiWvQwK4QQQgghqkUPs0IIIYQQolr+P6M6vYu+RYC9AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_responses(R1, R2, R3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The sum of squares used in $S$ and $R$ above is called an [L2 norm](https://en.wikipedia.org/wiki/Norm_%28mathematics%29#Euclidean_norm) and measures the usual Euclidean distance:\n", "\n", "$$ \\Large\n", "\\|\\vec{x}\\|_2 = \\sqrt{\\sum_i x_i^2} \\; .\n", "$$\n", "\n", "Other norms are possible but generally more difficult to work with. The L0 norm is particularly interesting because it simply counts the number of non-zero elements in $W$ so directly measures how sparse the solution is. The L1 norm,\n", "\n", "$$ \\Large\n", "\\|\\vec{x}\\|_1 = \\max_i |x_i| \\; ,\n", "$$\n", "\n", "is almost as good for measuring sparsity and much easier to optimize over than the L0 norm. (There has been a lot of recent interest in L0 and L1 norms in the context of [compressed sensing](https://en.wikipedia.org/wiki/Compressed_sensing).)\n", "\n", "The \"lasso\" regression algorithm uses an L1 regularization term:\n", "\n", "$$ \\Large\n", "R = \\alpha ||W||_1\n", "$$\n", "\n", "and is also implemented in sklearn (but noticeably slower):" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "alpha = 0.001\n", "fit1 = linear_model.Lasso(fit_intercept=False, alpha=alpha).fit(X, Y)\n", "fit2 = linear_model.Lasso(fit_intercept=False, alpha=alpha).fit(X[:n**2], Y[:n**2])\n", "fit3 = linear_model.Lasso(fit_intercept=False, alpha=alpha).fit(X[:n], Y[:n])\n", "R1, R2, R3 = fit1.coef_, fit2.coef_, fit3.coef_" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_responses(R1, R2, R3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The results are indeed sparse, but that is probably not the best prior to use in this problem.\n", "\n", "For more regularization options, look at [ElasticNet](http://scikit-learn.org/stable/modules/linear_model.html#elastic-net) which combines both L2 and L1 terms." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example: basis function linear regression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For our final example, we will see how \"linear\" regression can solve problems that appear quite nonlinear. Suppose our model is\n", "\n", "$$ \\Large\n", "Y = a X e^{-X^2} + b \\sin X^2 + \\delta Y\n", "$$\n", "\n", "with unknown parameters $a$ and $b$:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def generate(N=100, xlo=-2, xhi=2, a=1, b=-1, seed=123):\n", " gen = np.random.RandomState(seed=seed)\n", " X = gen.uniform(xlo, xhi, N)\n", " y = a * X * np.exp(-X ** 2) + b * np.sin(X ** 2)\n", " plt.plot(X, y, 'r.')\n", " return X, y\n", "\n", "X, y = generate()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we replace the $N\\times 1$ dataset $X$ with a $N\\times 2$ dataset $Z$ of new features $(Z_1, Z_2)$:\n", "\n", "$$ \\Large\n", "Z_1 = X e^{-X^2} \\quad, \\quad Z_2 = \\sin X^2 \\; ,\n", "$$\n", "\n", "the transformed model is now linear:\n", "\n", "$$ \\Large\n", "Y = X W\n", "$$\n", "\n", "with\n", "$$ \\Large\n", "W = \\begin{bmatrix}\n", "a \\\\ b\n", "\\end{bmatrix} \\; .\n", "$$\n", "\n", "The new features $Z_1$ and $Z_2$ are known as \"basis functions\" and this approach is called \"basis function regression\". Sklearn has built-in support for [polynomial basis functions](http://scikit-learn.org/stable/modules/linear_model.html#polynomial-regression-extending-linear-models-with-basis-functions) but it is easy to apply the transformations yourself for arbitrary basis functions:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(100, 2)" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Z = np.stack([X * np.exp(-X ** 2), np.sin(X ** 2)], axis=1)\n", "Z.shape" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1. -1.]\n" ] } ], "source": [ "fit = linear_model.LinearRegression(fit_intercept=False).fit(Z, y)\n", "print(fit.coef_)" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden", "solution2_first": true }, "source": [ "**DISCUSS:** Suppose we have a multiplicative model for our data,\n", "\n", "$$ \\Large\n", "y = A x_1^a x_2^b \\; ,\n", "$$\n", "\n", "would it be valid to transform $y \\rightarrow \\log y$ and treat this as a linear regression problem?" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ "Since\n", "$$\n", "\\log y = \\log A + a \\log x_1 + b \\log x_2 \\; ,\n", "$$\n", "we could use\n", "$$\n", "Z = \\log X\n", "$$\n", "and solve for $a$ and $b$ as linear-regression coefficients. This is a useful trick, but with an important caveat: the linear regression solution assumes Gaussian uncertainties in $y$, but after this transform you would need Gaussian uncertainties in $\\log y$. In particular, if your original uncertainties in $y$ were Gaussian, they will not be Gaussian in $\\log y$.\n", "\n", "Note that the uncertainties are not an issue when we only transform $X$ since we assume $X$ is noise free.\n", "\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.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }