{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Machine Learning and Statistics for Physicists" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Material for a [UC Irvine](https://uci.edu/) course offered by the [Department of Physics and Astronomy](https://www.physics.uci.edu/).\n", "\n", "Content is maintained on [github](github.com/dkirkby/MachineLearningStatistics) and 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" ] }, { "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", "P(Y'\\mid X,Y,X',M) \\; .\n", "$$\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", "P(Y'\\mid X,Y,Y',M) \\;\\rightarrow\\; Y'(X,Y,Y',M) \\simeq \\langle Y' \\rangle_{P(Y'\\mid X,Y,Y',M)} \\; .\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": [ "A standard linear regression assumes the observed data $D = (X,Y)$ is explained by the model,\n", "$$\n", "Y = X W + \\delta Y \\; ,\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", "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", "\\langle \\delta Y\\rangle = 0 \\; ,\n", "$$\n", "and uncorrelated with $X$,\n", "$$\n", "\\langle \\delta Y^t\\,X\\rangle = 0 \\; .\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", "\\langle \\delta Y_{ij} \\delta Y_{pq}\\rangle \\; ,\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", "\\langle \\delta Y_{ip} \\delta Y_{jq}\\rangle = C_{ij} \\; ,\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", "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", "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", "C = \\sigma^2 {\\mathbb 1}_{n\\times 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", "S \\equiv \\sum_{i=1}^N \\left| Y_i - (X W)_i \\right|^2\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": {}, "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", "W = (X^t X)^{-1} X^t Y \\; .\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", "(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", "W = (X^t C_N X)^{-1} X^t C_N^{-1} Y\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": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD3CAYAAADmBxSSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzt3XeA0/Xh//FnksvlVm7BidZZBd5V0Qp1oIICojirhSqKVSsOHIiA4sItakURUBxV0Z/WUdxbWpU6wIEDFVt9U7StC2QdR27lMj6/PxL4nniMu+Tuk+Rej78un0/Giw+fe9077yTveBzHQUREcovX7QAiIpJ+KncRkRykchcRyUEqdxGRHKRyFxHJQXluB1hr+fJQym/bqagoorq6Ph1x0iYTM4FytUYmZgLlao1MzATpyVVVFfS0tD2nRu55eT63I/xMJmYC5WqNTMwEytUamZgJ2jdXTpW7iIgkqNxFRHKQyl1EJAep3EVEcpDKXUQkB6ncRURykMpdRMQF4UiMJSvqCEdi7XL/GfMhJhGRziAWjzNrzmIWLFrOqlCYymCA3j2rGD6oOz5v+sbbGrmLiHSgWXMW8+7cL/nVh3NwHFi5JsxrH37HrDmL0/o4GrmLiHSQcCSG79lnuPOlOymrr2FJ+VZ8vcWOACxYtIJhB+5EwJ+eT61q5C4i0gG8Py6l9NQ/MPrx6ylprOXh/U/kf122W7e/OtRITW04bY+nkbuISDsLPP4YJRMvxluzGrvdrkwddA7fV279k+tUBAsoKwmk7TFV7iIi7cz3w/cQjRK66VZmb92P7z/+4WfX6d2za9qmZEDlLiKSfrEYgSf+SnjosZCfT/2559N43AnEf7E1w+Nx8HpZsGgF1aFGKoIF9O7ZleGDuqc1gspdRCSNfPZLgmPPxf/RB9QuW0bDmHHg9xP/RWIaxuf1MmJwT4YduBO+fD+xpkhaR+xrpfSCqjFmH2PMGy1sP8oY84Ex5l1jzBmpPIaISFZoaqLolj9RMWh//B99QOPQ39M44qQNXj3g97FV1+J2KXZIYeRujLkIOAmoW2+7H5gK7JXcN88Y84K1dmkqQUVEMlXeJx8TPP8c8r74F7GtfkHt5Kk0DTnM3Uwp3PYrYCjwl/W27wwsttZWAxhj5gL9gSc2dmcVFUVp+VaSqqpgyveRbpmYCZSrNTIxEyhXa7RrpqZa+OJfMGoUvptuoqyszPVcbS53a+1TxpgdWthVCtQ0uxwCNvkvTcf3G1ZVBVm+PJTy/aRTJmYC5WqNTMwEytUa7ZHJ/9YbRM3OON26wd4H4Ht7PjHzK2gCNvOx0pFrQ38c2uNDTGuA5o8WBFa3w+OIiHQ4z+pqSsaeS/nvf0vJxIvWbY+ZX7mY6ufa490yXwA9jDGVQC1wAHBLOzyOiEiHyn/pBUouHo9v2Y9Ed92NhvPGuh1pg9JW7saYEUCJtfYeY8x44G8knhncb639Pl2PIyLS0TzLlhG89EICLzyLEwhQd9mV1J97Pvj9bkfboJTK3Vr7X6Bv8udHm21/AXghpWQiIhnCUxsi/9XZRPbuS2jqDGI9erodaZP0ISYRkRZ4v/kfnlCI2K69iO+4E9UvvUZs116QxjXX21N2pBQR6SixGIX33kXlAX0pHXUqNDUlNu+2e9YUO2jkLiKyTvOlA+IVFdSPGZ/R8+obo3IXEWlqouj2qRRNvRlPUxONxwyl9vqbcaqq3E7WZip3EZFIhILHHiZe2SWxdMChh7udKGUqdxHpnOrryfvnQqJ77QPFxdQ8+BjxbbfFKd38pQMyWfa8OiAikib+uW9ReWBfyo4fhveHxMdwYrv2ypliB5W7iHQinprVlFwwhvKhR+L99hsaTz6VeHmF27HahaZlRKRTyH/lpcTSAUuXEN2lF6FpM4ju0cftWO1G5S4iuc9xKHzgXryrVlJ36RXUjx6btW9x3FwqdxHJTY5D3scfEv3NXuDxEJpyG56GBmI9jdvJOoTm3EUk53i//Yay44dScdhB+N+dB0B82+06TbGDyl1Eckk8TsHMP1PZfx/y//E6TQMGEdt6G7dTuULTMiKSE3yLLMFxo/F/8D7x8nJCN91N+LgTwONxO5orVO4ikhMKZj2K/4P3aTx6KLXXT8bZYgu3I7lK5S4iWcv3xb8SX2/n9VJ34SVE9t2PpsFD3I6VETTnLiLZp76e4muuoGLgfhQ8cG9iW2Ghir0ZjdxFJKv4571NyfjzyPvP18S234FYz8z6YupMoXIXkazgWVND8bVXUfjQ/TheL/Vnn0fdxROhqMjtaBlJ5S4iWcH/xhwKH7qf6M67EJo6g2ifPd2OlNFU7iKSsTzLl0O+H6esnKajjmHNnfcS/u3vID/f7WgZTy+oikjmcRwCT/yVyn57Unz15YltHg/h3w9XsW8mjdxFJKN4v/uWkgljCbz+Kk5REbFddgXH6bQfRmorlbuIZIZ4nIIH7qN40tV462ppOnAgoVumE99+B7eTZSWVu4hkBN/XX1FyxSU4JSWsue0uwsNHaLSeApW7iLgnEsG7aiXxblsS696D0F330dR3f5xu3dxOlvX0gqqIuCLvs08oHzKQ0pOPh1gMgPDRQ1XsaaJyF5GO1dBA8XVXUT5kIP7PPyO6867Q2Oh2qpyjaRkR6TD+d+dRMm40eV9/RWy7HQhNmU7kwIFux8pJKncR6RiNjQTP+CPeFcupH3UudZdcDsXFbqfKWSp3EWlXnmXLEmurFxQQuv1unNLSxPeaSrvSnLuItAvPihUEzxpJ5YC+eFatBCAy8CAVewdRuYtIejkOgSdnUdlvTwqefpLY9jvgWbPG7VSdTpunZYwxXuBO4NdAGDjdWru42f7bgP2BUHLT0dbamhSyikiG837/HfzxQkpffhmnqIja626k4fSzwOdzO1qnk8qc+zFAgbV2X2NMX2AKcHSz/X2AIdbaFakEFJHsERw3Gt6YQ9MBAwlN0dIBbkplWqYfMBvAWvsesG5x5eSovgdwjzFmnjFmZEopRSRjeWpWr/u59ro/wcyZ1DzxrIrdZR7Hcdp0Q2PMfcBT1tpXkpe/AXa01kaNMUHgfOBWwAf8Axhprf1sQ/cXjcacvDw9dRPJGtEoTJkCkybBm29Cnz5uJ+qsWlyAJ5VpmTVAsNllr7U2mvy5Hphura0HMMbMITE3v8Fyr66uTyFKQlVVkOXLQ5u+YgfKxEygXK2RiZnA3Vx5Cz+lZOxo/As/JV61BWu++pbItj1cz7UhmZgJ0pOrqirY4vZUpmXmAYcDJOfcFzbb1xOYa4zxGWP8JKZwPk7hsUQkEzQ2Unz9NZQfMgD/wk9pOOEPrJo7n8iAQW4nk/WkMnJ/BjjYGPMOiacFpxpjxgOLrbXPG2MeAd4DIsBD1tp/ph5XRNxUNO1miqZPIbbd9oRunkZk4EFuR5INaHO5W2vjwFnrbf6y2f7JwOS23r+IZIi6OigqAo+HhnPGgONQf954KClxO5lshD7EJCIblP/a36jstxeBJ/4KgFNaRv2lV6rYs4DWlhGRn/GsXEnJ5RdT8NTjOHl5eJcvdzuStJLKXUT+j+MQeOZJSiZehHflSiK9+xCaekfiS6olq6jcRWSd/FdnU3rWaTiFhdRecwMNZ56tpQOylMpdpLOLxxMfSMrPp2nwEOrPGUPDKSOJ/3JHt5NJCvSCqkgn5vt6MWVDj6R40tWJDV4vdVdPUrHnAI3cRTqjaJTCu2ZQfPMNeBobcSoqEyN4r8Z7uULlLtLJ+D5fSHDsufg/+4R41yrWzPgzTUcdA54WlyiRLKVyF+lEvEt+oOLQgXiammgcPoLaa67HqezidixpByp3kc4gGoW8POJb/YL68RcR2aMPkUGD3U4l7UjlLpLDPLUhiiddjW/xYmqeeBY8HurHX+R2LOkAevVEJEflv/53KvrvQ+H99+Jd8j2eZcvcjiQdSOUukmM8q1YSPPdMyk74Pd4fl1I3/iKq58zD6dbN7WjSgTQtI5JLYjHKjziYvK8WE9mjd2LpgF17uZ1KXKByF8kFa9+j7vNRP/ZCvCtW0DDqHMjTr3hnpf95kWzmOBQ8/CCFM+9h9Yt/wykJEh4+wu1UkgE05y6SrRYvpmzYUQQvGIP322/wff6524kkg6jcRbJNNErhHbfB7ruTP/ctwkMOo3rufKJ993U7mWQQTcuIZJng2HMpePwxqKpizfQ7CR89VEsHyM+o3EWygeOsK/CGkWcAUHDn7YTj+W6mkgymaRmRDJc3/33KBx+A76t/AxDtsyehGX+GLloTRjZM5S6SqWprKb5sAuVHHULe55/hf2OO24kki2haRiQD+ee8RnDCWHzffkO0ew9CU+8guk9ft2NJFtHIXSTDFDx4P+XHD8W75Afqxl1I9Zx5KnZpNY3cRTJM+PCjCLz4HLVXXkdst93djiNZSiN3EZd5ly6h9JQR5M9+GQCnqoqaJ55TsUtKVO4ibnEcCh55iIp+exN45UUCzz7pdiLJIZqWEXGB97//IXjBGPLffpN4SZDQzdNoPOmPbseSHKJyF+lgeQs+ovyYw/E0NBA+5FBqJ08l/out3Y4lOUblLtLBor12J7LPvjSe8AfCxwzT0gHSLlTuIu0tHKZo2i04BQU0nH8B+P3UPP6s26kkx+kFVZF2lPfhfCoG96d4yk0UPvIQhMNuR5JOQuUu0h5qaym+/OLEV97ZL2k49XSqX38bAgG3k0kn0eZpGWOMF7gT+DUQBk631i5utv8MYBQQBSZZa19MMatIVvDUrKbioP74vvkf0Z26Uzt1BpG++7kdSzqZVEbuxwAF1tp9gUuAKWt3GGO2BMYA+wNDgBuNMRqySKfglJXTtH9/6s+/gOp/vKNiF1ekUu79gNkA1tr3gD2b7dsbmGetDVtra4DFgD5uJzkr/8XnKZkwbt3l2ml3UDfxKigocDGVdGapvFumFKhpdjlmjMmz1kZb2BcCyjZ2ZxUVReTl+VKIk1BVFUz5PtItEzOBcrXGBjMtWQKjR8PTT0MgQOHEi6FHD/dzuSwTc2ViJmi/XKmU+xqgeSpvsthb2hcEVm/szqqr61OIklBVFWT58lDK95NOmZgJlKs1WszkOAT++gglV16Gt2Y1TX33o/bW24mVbwkdlD8TjxVkZq5MzATpybWhPw6plPs84CjgcWNMX2Bhs33zgeuNMQVAANgZ0FezS25wHEpPGUFg9kvEi0sI3XQrjaeMBK/efCaZI5VyfwY42BjzDuABTjXGjAcWW2ufN8bcBrxNYl5/orW2MfW4Ih0rHImxZEUdsUiMgD85bejxJF4kjUYSSwdss627IUVa4HEcx+0MACxfHko5SCY+9crETKBcmxKLx5k1ZzELFi1nVShMr4alnPzpc5Q/8gC+oiKIxxPLBri4dECmHKv1ZWKuTMwEaZuWafEk1PIDIi2YNWcxr334HXmxCMPnP8Vx7z+JPx7l5Sn3s9cVozUFIxlP5S6ynnAkxoJFy+m5ZBFj/j6D7Vd+w4qSLtw5+Cy+7tKH3ZtP0YhkKJW7yHpqasMMeP0xTn77L3hxeHn3Q/l//U+mIVCEN9RITW2YLSqK3I4pslEqd5H1lJUE+PGXv+KHz7fijsHn8Pm2vdbtqwgWUFaiD1tL5lO5i5BYD6b4hmupHzOewNbbUHDoIZxbaYh7fzr90rtnV03JSFZQuUunl//SC5RccgG+H5fi+P3UTbqJ4YO6A7Bg0QqqQ41UBAvo3bPruu0imU7lLp2W58cfCV42gcALz+IEAtROvIqGc8YA4PN6GTG4J8MO3Alfvp9YU0QjdskqKnfplPxvzKH0zD/iXb2ayN59CU2dQaxHz59dL+D3UdW1OCPfIy2yMSp36ZRiO3XHyQ8QuvEWGk89Xe9bl5yjcpfOIRajcOafE19OvV8/4ttux6oPF2pJXslZKnfJeT77JcGx5+L/6AMiv9mT1S+/nlg2QMUuOUzPRSV3NTVRdMufqDioH/6PPqDxd8OoeWiWq+vBiHQUjdwlJ3n/91/KTj6BvC/+SWzLraidPJWmQw93O5ZIh9HIXXJSfItu0BSm4eSRVM+dr2KXTkcjd8kZ/rffxLt0CeFjj4fCQqpffQtKStyOJeIKlbtkPU/NaoqvuYLChx8kHiyl6dDDcYKlKnbp1DQtI1kt/+UXqei3N4UPP0h0l17UPPV8othFOjmN3CU7NTYSHD2KguefwcnPp+7SK6gfPRb8freTiWQElbtkp0AAT7iRyF77JJYO6GncTiSSUVTukjW8335DYPZLNJxxNng8hO64B6e4BHxa0EtkfSp3yXzxOAX330PJpGvw1NcR2XNvor1/g1Na5nYykYylcpeM5ltkCY4bjf+D94lXVBC6aQrRPfq4HUsk46ncJWMV3j6N4psm4WlqovHoodRePxlniy3cjiWSFVTukrE8dbXEKyqpvelWmg4/0u04IllF73OXzFFfD9OmQTSauDhuQmLpABW7SKtp5C4ZwT/vbUrGnwf/+ZqCcJzGkWdAIIATCLgdTSQrqdzFVZ41NRRfcyWFf3kAx+uFCy6g8fgT3Y4lkvVU7uIa/5zXCI49F9/SJUR33oXQ1BlUDBkI+r5SkZSp3MU1nvp6vCtXUHfxROrPGwf5+W5HEskZKnfpOI5D4OknaBpwEE6XLjQd+VtWvf8J8W22dTuZSM7Ru2WkQ3i/+5ayE4ZRevbpFF97xbrtKnaR9qFyl/YVj1Mw8x4q+u9D/pzXaDpwIPXjL3I7lUjO07SMtBvv119Rev45+N9/l3h5OWtuu4vw8BH6gmqRDtCmcjfGFAIPA1sAIeAUa+3y9a7zPNAFiAAN1trDUswqWcYTjZK34CPCRx1D6Iabcbp1czuSSKfR1pH72cBCa+3VxpjjgcuB89e7TndgV2utk0pAyS55ny7A8eUR67UbsZ6G6jffJbZTD7djiXQ6bZ1z7wfMTv78CjC4+U5jTDegHHjBGDPXGKPPj+e6hgaKr72S8kMHERxzNsTjACp2EZdscuRujDkNGLfe5h+BmuTPIWD9hbXzgSnAdKASmGeMmW+tXbahx6moKCIvL/UvXaiqCqZ8H+mWiZkgjbnefBPOOAP+/W/45S/xT51CVbe2r7WeiccrEzOBcrVGJmaC9su1yXK31s4EZjbfZox5GlibKAisXu9mS4G7rbVRYJkxZgFggA2We3V1fStit6yqKsjyDPt0YyZmgvTk8tSGEksHPDgTx+ul4azR1F08EYqL2/wp00w8XpmYCZSrNTIxE6Qn14b+OLR1WmYecHjy58OAt9fbPxh4HMAYUwL0Ar5o42NJpnIc8l+dTfRXO7P6pVepu/aGRLGLiOva+oLqXcCDxpi5QBMwAsAYMxl40lr7ijFmiDHmPSAOXGatXZGWxOIqz4oV5C36ksh+/XCCpdQ88Ryx7XfQ0gEiGaZN5W6trQeObWH7Rc1+HptCLsk0jkPgqccpufxiiMdZNe8jnKoqYj16up1MRFqgDzHJJnm//46SCWMJvPZ3nKIi6i69Aqey0u1YIrIRKnfZsHicggfvp/i6q/DWhmg6YCChKdOJb7+D28lEZBNU7rJRgWefAp+PNdPvJHz8iVo6QCRLqNzlpyIR/O/MJXLgQPB6Cc34M+TnE++2pdvJRKQVtCqkrJO38FPKhwyk7LhjyPtwPgDxbbdTsYtkIY3cJbF0wJSbKLxjOp5YjIYT/kBsp+5upxKRFKjcOzn/e+9QMm40eV8tJrbd9oRumU5kwCC3Y4lIijQt08nlv/Asvq+/on7UOax6410Vu0iO0Mi9E8p7/z04IrGQZ92lVxIeeizR3+zlcioRSSeN3DsRz8qVBM8+nYqjDoH77ktsLClRsYvkII3cOwPHIfDMk5RMvAjvypVEevfB37ev26lEpB1p5J7jvD98T+lJwyk96zQ89fXUXnMDq19+HXbbze1oItKONHLPcf633iDw99k09T+Q0C3Tif9yR7cjiUgHULnnIN/Xi4lXbYETLCU8fAQ1FZU0HXKolg4Q6UQ0LZNLolEKb59GxYD9KJ50dWKbx0PTkMNU7CKdjEbuOcK38DOC40bj/+wT4l2raOp3gNuRRMRFKvds19hI0a2TKbp9Kp5YjMbhI6i99gacCq23LtKZqdyzXN6iLym67VbiW29D6OZpRAYNdjuSiGQAlXsW8tSG8KxZQ/wXWxPdfQ/WPPAITf0PhJISt6OJSIbQC6pZJv/1v1PRfx9KR42EeByApsOOULGLyE+o3LOEZ9VKgueeSdkJv8f741Ka9u8HsZjbsUQkQ2laJtM5DoHnnqbksgl4V6wg8uvehKbdQWzXXm4nE5EMpnLPcJ41NZRcckFi6YCrJtEw6hzI03+biGycWiITxeN4v/uW+Hbb45SVs+bu+4lttz3xHXdyO5mIZAnNuWcY79dfUTbsKMqPOBhPzWoAIgMGqdhFpFVU7pkiGqVwxnQqB+xL/ry3ifbuA00Rt1OJSJbStEwG8H2+MLF0wKcLiHetInT73YR/+zutByMibaZyd5vjEJxwPv5PF9B43AmJpQMqu7idSkSynMrdJd4flxLvtiV4PIRuno532VIigw52O5aI5AjNuXe02lqKL5tA5Z674fviXwDEeu2mYheRtNLIvQP557xGcMJYfN9+Q7R7DzzhRrcjiUiO0si9A3iqVxE87yzKjx+Kd8kP1I27kOo584ju0cftaCKSozRy7wDFk2+gYNajRHbfg9DUGcR2293tSCKS41Iqd2PM74BjrbUjWth3BjAKiAKTrLUvpvJY2cazauW6L8yom3Apse13oOH0s7R0gIh0iDZPyxhjpgM3tnQfxpgtgTHA/sAQ4EZjTKCtj5VVHIeChx+kcu89yH/h2cSmyi40nDVaxS4iHSaVOfd3gLM3sG9vYJ61NmytrQEWAzk/F+H9z9eUDTuK4PjzwHHwhMNuRxKRTmqTQ0ljzGnAuPU2n2qtnWWMGbCBm5UCNc0uh4CyjT1ORUUReXm+TcXZpKqqYMr30WqxGEybBldcAQ0NcOSReO+6i9JttnEv02ZQrs2XiZlAuVojEzNB++XaZLlba2cCM1t5v2uA5omDwOqN3aC6ur6VD/FzVVVBli8PpXw/rRV4/DFKL7yQeNeu1E67g/AxwxJLBywPuZZpU5Rr82ViJlCu1sjETJCeXBv649Bek8DzgeuNMQVAANgZ+LydHssda6dcAgHCw46j7r//oeG0UThdtHSAiLgvre9zN8aMN8b81lq7FLgNeBuYA0y01ubMJ3byPpxPxeD+FE25KbHB56P+ostU7CKSMVIauVtr3wDeaHb51mY/3wvcm8r9Z5zaWor/dB2F996Nx3FoOmAAOI5WbxSRjKP35m0m/xtzCF54Pr5v/kd0p+7UTp1BpO9+bscSEWmRyn0z+P69iPLjjsHx+ag//wLqLrgYCgrcjiUiskEq941paIDCQmI9elJ7+TVEBg4iutuv3U4lIrJJKvcWeH9cSsnFF0C4kTWPPgkeDw1j1n+rv4hI5tKqkM05DgWP/oWKfnsTePkFPPX1eGoz772xIiKbopF7kve//yF44Vjy3/oH8ZIgoclTaTz5VPDq75+IZB+VO0BjIxVHHIx3+TLCBw+hdvJU4ltv43YqEZE269zlHomA3w8FBdRecQ34/YSHHqv3rYtI1uuc5d7URNH0KQSee5rqv78JRUWEjz/R7VQiImnT6SaU8z76gIrB/Sm++UY8oRC+//3X7UgiImnXecq9ro7iKy6l/PDB5H35BQ2nnEb13PnEdt7F7WQiImnXaaZlyk47ifw5rxHdcSdqb72dyH793I4kItJucrvcYzHwJb4ApH7shUR36UXdhEuhsNDlYCIi7Stnp2XyX3yeyn374E3OqUf67kfdldeq2EWkU8iZcg9HYixZUUfk+x8oHXkSZSP/gHfJD/g/+djtaCIiHS7rp2Vi8Tiz5ixmgV3GHu+9whlvPkCgsZamffalduoMYt17uB1RRKTDZX25z5qzmNc+/I7h783iD+88Rr2/gLsGnUnTyNMZoWIXkU4qq8s9HImxYNFyAF7tdTDbr/iGBw74I8tLq+iyeBXDBsYI+H0upxQR6XhZXe41tWFWrUl8UfWqkkomHzlh3b7qUCM1tWG2qChyK56IiGuy+gXVspIAlaWBFvdVBAsoK2l5n4hIrsvqcg/4ffTuWdXivt49u2pKRkQ6rayelgEYPqg7AAsWraA61EhFsIDePbuu2y4i0hllfbn7vF5GDO7JsAN3wpfvJ9YU0YhdRDq9rJ6WaS7g97FV12IVu4gIOVTuIiLyf1TuIiI5SOUuIpKDVO4iIjlI5S4ikoM8juO4nUFERNJMI3cRkRykchcRyUEqdxGRHKRyFxHJQSp3EZEcpHIXEclBKncRkRyUtUv+GmN+BxxrrR3Rwr4zgFFAFJhkrX3RGNMVeBQoBH4ATrXW1qcpSyHwMLAFEAJOsdYub7b/UOCS5EUP0A/olczyAvDv5L67rLWz0pFpc3Ilr/M80AWIAA3W2sOMMd2B/wc4wOfAudbaeAfnupnEccoD7rHW3muMqQQWJTMBPGOtnZ5iFi9wJ/BrIAycbq1d3Gx/h55Lrcg1Djg+efFla+01xhgP8B3/dz69a629tAMz3QbsT+L/FOBowI+Lx8oYswcwrdnV+wLHAPNJ87m0gWz7ADdZawest/0o4EoS59X9yfN7k78XrZGVI3djzHTgRlrIb4zZEhhD4iQbAtxojAmQOJCPWmv7AwtI/MKmy9nAwuR9PwRc3nyntXa2tXZA8j/4RRL/2V8AfYBb1+5LZ7FvTq6k7kC/5OMfltx2K3B58nYeEr+kHZbLGDMQ6G6t3ZdEwV9sjKkgcbwea3a80vHLeAxQkHysS4ApzXK4cS5tTq4dgROB/YB9gUOMMbsDOwEfNzs+aSv2TWVK6gMMafb4Nbh8rKy1nzT73bsDeNpaO5v2OZd+whhzEXAfULDedj8wFTgEOBA4M3mubc7v62bLynIH3iFxIFqyNzDPWhtOnlyLgd1JlMTs5HVeAQanMc9m3bcxZhvgJOCa5KbfAEcYY94yxsw0xgTTmGmTuYwx3YBy4AVjzFxjzJHNcr25odu1dy7gXWBk8mcH8JF4ZvE0POkvAAADxUlEQVQboI8x5k1jzBPGmK3SmcVa+x6wZ7N9bpxLm5PrW+BQa20s+YzKDzSSOD5bG2P+YYx52RhjOipTcvTcA7jHGDPPGDNy/dvgzrFam6+YxO/dmOSm9jiX1vcVMLSF7TsDi6211dbaJmAu0J80H6uMnpYxxpwGjFtv86nW2lnGmAEbuFkpUNPscggoW2/72m3pyvTjZt73eGCqtTacvDwfuM9a+5ExZiJwFXBhB+bKJzHKmQ5UAvOMMfMBj7XW2cjt2jWXtbYRaEyOcB4kMS1Ta4z5EvjIWvuaMeZE4Hbg923NlrT++RIzxuRZa6Mt7EvrudTWXNbaCLAiOQ1zM7DAWrsoOfq70Vr7hDGmH4mn+Ht1RCagmMT/x60k/hj/wxjzIS4fq2bbTgOesNauSF5uj3PpJ6y1TxljdtiMvO1yXmV0uVtrZwIzW3mzNUDzEXAQWN1se0OzbWnJZIx5utljtnjfyZHNkcDEZpufsdauve4zJE6wNmljrqXA3clfgmXGmAWAAZrPr7f5WKWQi+Q0zJPAG9baG5Ob5wBr52ufAa5ta65m1j9fvM1KoV3PpRRyYYwpAO4nUQLnJDd/SGIOF2vtXGPM1saY5n+o2zNTPTB97Xy6MWYOiTlw149V0on8tLzb41zaXJs6r5pva7NsnZbZmPlAf2NMgTGmjMRToM+BecDhyescBrydxsfcnPvuBXxprW1otu1vxpi9kz8fBHyUxkybk2sw8DiAMaYkmfELYEGzZ0bpPlabzJV8Yel1Ei80Xdds133AsOTP6Tpe67IYY/oCC5vtc+Nc2mSu5Ij9OeBTa+0oa20suesqYGzyOr8GvkljsW80E9ATmGuM8SWfcfUDPsblY5XcVgYErLXfNtvcHufS5voC6GGMqTTG5AMHkJiKTOuxyuiRe2sYY8aTmMd6Pvmq/dsk/nhNtNY2GmMmAQ8m3/2wAvjZu2xScFfyvucCTWvv2xgzGXjSWjufxIj46/VudzYwwxjTRGIUfWYaM21OrleMMUOMMe+RGK1fZq1dYYy5ALg3eeJ9QWIE3WG5SLyAuSNwRvL/C+BUEi+W3W+MOQeoA05PQ5ZngIONMe+QePH4VJfPpU3mIjHtcSAQMMasfRH8UuBPwMPGmCNIjOD/2FGZksfqEeA9Eq+PPGSt/afbx8pa+zyJPzz/Xe827XEubZQxZgRQYq29J5nvbyTOq/uttd8bY1r8vWgrLfkrIpKDcnFaRkSk01O5i4jkIJW7iEgOUrmLiOQglbuISA5SuYuI5CCVu4hIDvr/lVudNDx6PLsAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "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", "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", "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", "E = (X^t C X)^{-1} \\; .\n", "$$\n", "For homoscedastic errors $\\sigma$, this reduces to\n", "$$\n", "E = \\sigma^{-2} (X^t X)^{-1} \\; .\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": {}, "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", "z'(t) = \\int dt' R(t-t') \\, z_{in}(t') \\; .\n", "$$\n", "If we discretize time, $t_k = k \\Delta t$, then the corresponding discrete response model is linear:\n", "$$\n", "z'_i = \\sum_j R_{ij} z_j \\; ,\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": {}, "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": {}, "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": {}, "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": {}, "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", "S \\equiv \\sum_{i=1}^N \\left| Y_i - (X W)_i \\right|^2 \\;\\rightarrow\\;\n", "S + R \\; .\n", "$$\n", "The most common approach is to penalize using\n", "$$\n", "R = \\alpha \\sum_{i=1}^N \\left| W_i \\right|^2 \\; ,\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": {}, "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": "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\n", "text/plain": [ "" ] }, "metadata": {}, "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", "\\|\\vec{x}\\|_2 = \\sqrt{\\sum_i x_i^2} \\; .\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", "\\|\\vec{x}\\|_1 = \\max_i |x_i| \\; ,\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", "R = \\alpha ||W||_1\n", "$$\n", "and is also implemented in sklearn (but noticeably slower):" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/david/anaconda3/envs/MLS/lib/python3.6/site-packages/sklearn/linear_model/coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n", " ConvergenceWarning)\n" ] } ], "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": "iVBORw0KGgoAAAANSUhEUgAAArwAAADtCAYAAABd96Y4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzt3Xu0HXV99/HvSXJIQk4ScoMAIaQhMFxSGpAHLCgrsiACKrUt3lhKuYkUlSemLLWU+riorvqwqEUqlYe2aKlFS3kAKXihWHnkUsCIKQTIxJhGCCFAEnIPuZyc548T3L/vZ+fML3P25czMfr/WYq39zewzM2fv/d0znP3Z3+nq6+szAAAAoKqGDfUOAAAAAK3ECS8AAAAqjRNeAAAAVBonvAAAAKg0TngBAABQaZzwAgAAoNI44QUAAECljWjLVoo07HeYnOPv3t22TfdZl6u7rIGH5c03fT1qVObde3f7be/a5ZeP3C/HvugPj2juy6ipj1ORdHV1xe9UEEPZs9qjr73m68mT27cvzbRjh6/32y/Xj2/a7F8+Y3saeIrWr/f1AQcMfl17Eb7fvPKKXzbt0BL1c1l6tkjH2Lyuv752e8ECvyxybNm8xT89L73klx92mK/HjBl4XbFTgeHDIg/xmjW+1v4eNy7zx7fvqP0uengfPy7n09viY3RhRfqVv/ACAACg0jjhBQAAQKVxwgsAAIBK62pL9KdI+aJDD/X1pz/t689/vn37ErFzVy2O0j2iwQyP5iK1buW+oF9Z8oBmQ9uzp53m68MP9/Udd7Ru26tX+3rq1EGvatub/unWSF80E6gazAA3Qn+X0aM65D2gLD1bpGNsXu95T+32Bz7gl51/vq97elx5z73ZT8/s2b6eMcPX3Vs31Irly/3C/ff39YEH+lpy79oj+lYiu25TJstTFoaIly71y/R9SLb9+hq/7bvu8ne/6CJf5+pfPWd64QVfR7LJbUWGFwAAAJ2ME14AAABUGie8AAAAqLTOy/BqdlUH3rUxF1dHc7dhpifnfoUz/cxyztndm3DfhnCmX9N/r3YqSx7QrNg9++yzvj7uuKZtau06/xRNmpjzYQhnceacF6wzRXvG5Ny2DhLNmdPHXpSlZ4vUr0LnR995p19+6SU5dv2BB3x90EG+1tCuzKffsNHvSzjie+JE/6M6mjqauV+3ztd6zNZMcEZ/aiZ39Gi/PPresHChr7du9fXpp2f/fA5dw/y+9u0ewpciGV4AAAB0Mk54AQAAUGmc8AIAAKDSOi/Dq8EcrR9+2Nc6uK+VNMMbajA322c+2tJlDTwlZAUHpyx5QLNi9ay+vu6919fnnbfv69Ism65bMn9N1eQ5ug31tL7XNDmXH84kLfXM3rL0bJH79ZxzfH3PPb7O0Qff+a5/OsaO9ctPOcXXdbNu9Ts7zz9fu62Z+2nTfC2/16uv+X3Rw6KO7a3LAK9f7+uwJ3Pm/xv+7kGWMh3vyfACAACgk3HCCwAAgErjhBcAAACV1nkZXr0mdTiIz8zskUd8fdppzdt2OKPTLHdOJ9S720dVojMCVc5czs5dte11jyjO01kqZckDmhWrZ5W+Vv/4j3395S/XbmtGP6+NG33dwHXjc/es9qhmgCN543D+qUZ0G87Vav6w0ce5qMrSs0Xu15hnnhl4mc7V1d7P+t6LWTSbHmbNNd7f0+Prupnv2gO6Ah3sK/2qM+XDtxr90dzHd6Ezvp97zi8/5eQmvnyOPtrXS5f6Wt/XmokMLwAAADoZJ7wAAACotM6LNOhHIkcd5evbb/f1scfWbuv4lFaP6wjXN4SX881LxyXpJJiWjilaudLXOlpmKJXl41GzYvfspz7l6y98wdfhx+v6MaPGArSvNCagy/P0eIHG92hPqobGFMa0eARaS5WlZ4vUr8uX+3rWLF/n+Ej7Rw/6h1/f3j/6UV/XxQ40srhiha/DsaMyR0wjSPqjGnnQMWRd69b6f3jlFV9PmTLgCl5Y4re9apW/60kn+Xr8OPm9NSZy332+vvZaG6zfPdXv238+XpyXHpEGAAAAdDROeAEAAFBpnPACAACg0jovwztnjq8163Lxxb5esKB2+7jjGtu2jjiKjRnaf//a7QLlAdutMiPRypIHNCtWz8Ze+1df7etLLqnd1hE5eWkAXXtYezYM9nVwz4bC0U9mJbvUcFl6tkj9qnQGlo4RfPDB2u1WXtrbzGz1al+H24uM1guPQ2Zmmzf75ZrpjR6rmjjysE6ZLgfcTGR4AQAA0Mk44QUAAEClccILAACASuu8DK9mWSZM8PU3vuHrMPOrIZ1G6VzfrDxgB2n4sslFVZY8oNnQ9ux55/n6/vt9/ZnP+PpP/sTXYRZPc3Jaa0ZX3x/CHL1Z/TU/m3hJ3YZf902cd6tze1s6p7fIytKzRTrGNmLePF/roN2zz/a1Dr8V//mEf/q0XQ87rHa7Z+ROv/D5532tx+tDDvG1ZHB1lm5vr7/74Yf7emxP8BTqwOE1a3w9c2bmtmP+e4Xft/Ct48hZJX4pkeEFAABAJ+OEFwAAAJXGCS8AAAAqrfMyvJoH1LzgySf7OpzxqTM9NXMbm30Xy+xqXjBc3uj153Xmr+5LDtt3+JhM3fXLmy0ceFjmXHNZ8oBmxepZFZspecMNtdvnnuuXaYhP+0LrWKZXs3O6vJl08KduK8eszTfW+5fihAOa/HSHWelmzhdtt7L0bJH7VX37277+wQ9qt//mb/wyzcxH1OXg17zq77B+va/D9wPZ1k7rdvXy5f5Hx4zx9UEH+bp7nWz7xRd9PXWqr6dN+83NdKn/PXTb73ynr3vGyNP/xBO+XrLE1xddZPtKH9MPf9gv/9c7C/TSI8MLAACATsYJLwAAACqNE14AAABUWudleDXndsIJvv7c53wdZny2bvXLNO+nmVzNC+rMQF2u+dQwZ6v7HauV5otVE6+1Xdk5uo0qSx7QrNg9q9m3K6/0tc7WDo0e7WvtSZ2tqdvSPKpm4bP6TH8PzeW38Hr3QzpX97XXfB2ZnVooZenZNvbr//qif0iuu052ZXfOXXn66drtk07yyz7yEV//1V/5WvtTPPmU31d96c2YUbtd1xOrV2euuy5fLO8FO3f5bWt7Zx0XN232P6tvK+PHRR5jnTf++OO+1nnGDWj59wHyIMMLAACATsYJLwAAACqNE14AAABUWudleDWDp7Mtzz/f1x/8YO22BoDyZu40XqJ5Qs3whhkhzfvmncurIaA33/R1A/NDt73pf6/Ro5r8dIfZ6VbOOW21suQBzYrVs0r7btYsX4eZ3mOP9cu0j2LzqMOLzO+N5vbDntV8YbMzutrD+rvk2J5mBsf2NPHpJ8Pbeq3sV/3uis6j1/myzXThhb6ePdvXc+f6es4cX0f6+5XVtadXD791PaCPw5o1vs46fu/F2nX+pRUe2qLHUH1fanROf0iH/k6f3rptNRsZXgAAAHQyTngBAABQaZzwAgAAoNIKHMZoEZ1Ppzm3Bx/0tWaGQprBVcOH+1qzLxq70uVhZkizSJpl1Z/VzK5mfmLZxRxieaOGZ4CWObeL1tMcfpgZ1Yyt5uy01ox/1mxss/pcfpir1Yyfrlv3LUZ7WHu8gYyw5hV1hmj3iAYiomXK7KKevv+uXOnrZct8rZn6Biz+3D+5+vDD/fK6nO2dd/pa911eiweHc7dH6Uxff0zdsGuMqzcN9/UBI/1P9+hxbt06V07S962ecPv+fUa/J7N2bberpx2aM/Or+f/wfW7mzOx1lRh/4QUAAEClccILAACASuOEFwAAAJXWeRne2AzPq6/2dZgB0uyS5oGVzvzUuZyxOZ1h7ka3tWOHrzUPqNmlvPNGNR/YQOZX40Kjc0YXM7VyHiGKYcyY7OXz5/t6xozabZ2duX69rzVnq32kPTx5sq911mZWrl97Vmn/xzK5TczhK33Yxo/b+/2aoolZZLSAPh8nnODrJmZ21ezu1P/DlV/y9Zln+vrUU32dY99i3zUZP2KLr7slg7tT+nGHHIP1vSIypzekx1B9W4rK+n6Q0u8tNOg73/WP60c+PHQj3nlnAQAAQKVxwgsAAIBK67xLC6vYx2eXX167ffLJfpmOGdKP1/VjA/1IUz+S1M8pDjqodvvgg/0y/TgkNrordolU3ZchjAZs3uI/AukZU9yXTy5luUypWbl79tpra7fPOMMv08iCRhpWrfK1RiC0T8KxRmY+ThHeNqvvWf09Yu8X2pP6/pNBP67Vt4OGxo5FNHXEWbuVpWeL3K8x8+bVbl9wwcDLzOpf8/pZv/arjv7KGs+p69b4UuSj/jfWZ79U9Mcb6gMdBae/t15SPcdoz49c4H+P79xRopcWlxYGAABAJ+OEFwAAAJXGCS8AAAAqjRlOl13m67//e1+HuTvN1GneLzY6bKRce1Azu5oh2rlz4HUrzTJp1jCW0S3QOK+e3g3yL62ciYTSeeQRX7/znb5++eXa7Wee8cv0ct9hj5nFL8Edy8KFWTodY6h5wtilhnXbWWMLzTJ7WEcsdbe63YPHoTv3DCUUSdcwH4u8+GK//LZ/aDDj+dBDtdvhZcHNzN7+dl9rZl6DsZq71Z7T7GvYQ3oM1Uy99qf024QDIo+Drn+HjOPLeG/ZtNk/B+v2O9LVh5+U8znQzG9wSebv3HG5VRV/4QUAAEClccILAACASuOEFwAAAJXGHN6bb/b12rW+XreudlszPHpJTKWZOs3oaIYvq9Zlsfyv1rFLDee5nGcLL2m6N+Ecz1LN8FRlmelpVqye/eEPfd3b6+tjjvF12NNb/OVA6zK7etlinZWrfaaZQb2UcFjrfXVdsW1pz+r7Sez9J+zpNvdsOJM0mm0ssrL0bJH6Na/bbqvd1sy9ZninTfO1Huc0o6+1HufCvsj7vZfYpcC1jn1vpomX1H5ppX/Z6q9y0IFNfLl861u+vuii5q07L+bwAgAAoJNxwgsAAIBK44QXAAAAlUaGVzND//Ivvg7n1WneTzN23d2+juWHNIOny8P1a77vwAN9PXWqr/X+kRmCddvW+2vdRH3mYzc6M7QyypIHNCt2z6r77/f1VVfVbs+d65fNmOFrzQBqD+vDoLNvtYfDsFzentVMb96ejX1nYIiUur/L0rNt7Ne16/xDMmlig5v+gz+o3T7qKL9s/nxfa8/onN0VK3y9erWvdRZu2CPanzrzV/tT1L3OX3vV30FnDGu/Tp++9/0ysxeW+HXrOOFjj/X1ETNzPifh9yQWLvTLPv95XxdoZn8dMrwAAADoZJzwAgAAoNI44QUAAEClkeFVM2f6+pprarc1r6eZHs0TaX5IMzyxa3VPmVK7feihfpnmi2KZXc0Ta1ZRs4z6u7V5jqcT5iaLnB+KKUse0KxcPavCHOA73uGX6VxPzblu2OBrncuty7Wvwj7SHtV68mRf60xf7dFYRlfXV5ReWbXK1/o4FFlZerbM/ZpFM7eXXurrt73N17Nm+Vozv1nz6Rudi6vnB1rr+nVOt9aB3t3+Zfj88365Hp7DOLCZ2ehRLXx5aIBYd66dyPACAACgk3HCCwAAgErjhBcAAACVVpCQV4EsWuTrcAad5ns1o6O5Wc3k6AxPzfTo8k2barc1D6zb3rnT15MmZe+L0jyxCn8+tq6Y2OOgipJFRDmE+XPtWe1Rzb5rGK6319eaKdTcvr62Q5oJ1FozuJoP1nXHth3mFTW7mFfefGKoTJldtNyjj/mYZZrWbl9wgb/vaO3Xc8/19b//u6+1B7TWcGuY4dXe1/6M9b4eQ2P9nXEcXfmyf4z0reC3Z+fM5Gq/Zu177PtAaigzuznxF14AAABUGie8AAAAqDROeAEAAFBpzOH94Ad9fd11vj766IF/9oknfP34477WGZ7btvlaczWaIQrzRTpzU3M1Wo8Z42vN9Op1w2P5oqyZhLH5guhXlpmeZsXq2c9+1tezZ/v6wgsHv+4/+zNfv/KKr/UpGz/e1zqvOnzt6xxdfUh13dqzOkN02jRfaw/re0CYX9Qso76f0LN7V5aeHcp+1f67/fbWbWvlSl9/9au+Pv54X+uMWO2h8Ni1caNf9uqrvg6/U2NW32+aD5bvD2x707+UNPI7aWLwFOrvuWyZr3XesP5e4t/u99vW8eQTDmjg5fOVr/g6/N5TuzGHFwAAAJ2ME14AAABUGie8AAAAqDQyvDEPPFC7fcQRftnChdk/q7m5HTt8rbPwNEMUhnx0XZr31dl5mu/TWu+vGT7NJ2XliXXGp+5bjIaZdP1VUZY8oFm5ezbsS52duWqVrzWbHptXuX69r7N6Vmf4ak9NmOBr7VHN3WvPjh2bvf6w1v7Wns0761ofF/352OzOsihLz5apX+fN8/Wtt9Zuz5iRb13arzqvfunSfV9XbIavvsa1h2LHXD2u6frD9xLtL+0nXXfE5i3+Zdwzpjwvl1zI8AIAAKCTccILAACASiPS8PWv+/qjH/W1foyY5aGHfK2RB/14VT9OzYoCxOIR+vHp6NG+1o9PDzrI1zqWTH/vrMuU6kc1+tGPfuyk+673J9Iw9Ircs9pXOqYs6+P0FSt8/R//4WuNKMQuoavX/Az7UNelH1Pq5cA1oqCjhnTskfasvn+ELzd9P9D+1jprDOHeaNQjz/tmkZWlZ9vYr13D/EPSt7vBTYeRhvnz/bL77vP1mWfmWnWf+X3tWvysv0P4fqDHWB0rqGMDYzFA7cesmKAu15/NGxPMaeeu2uPUPaK4b/1RRBoAAADQyTjhBQAAQKVxwgsAAIBKyzmLpoI+9anB/+wzz/has4UnnuhrzeysW+drHakS1pqR277d15o3UrptzRNv2bLv69NLJOt9Ndt0yCG+rsrIIgyNk04a/M/efbev58zxteZi9XKierlRvQTomjW129pTauRIX2sf6bg+Hammy7NyuZo/zBqJZFaf4Y1darwqmV3UZXT10JM7sxvLgz/1VO22vKYvvsTvy7dkotlNN/n68st9PfL6v/D/8PTTvj744NrtU07xy+T6u30z/VhSbe+e4XJcfPRRXy9f7mv9Lky4Pcnv/+hB/zjo29TbTow8J1de6evLLnNlt56r5PDus/2+/eiHxc0A8xdeAAAAVBonvAAAAKg0TngBAABQaczhbYRmeGOXKdUwVJj321sd3l/zejrLVjN5ui+am9X80MSJvs7KA2qeL3bZUl2uMwVjGa8WzyBsm7LM9DSrbs8qzd1rxm/mTF/ra1Gzr2HOVvO92v86O3v8eF9rUE/r2PzrsK+0B/XSpJqz1/eDGP1OQFiXOd9blp4dyn7V49x11/n6i18c9Kp/ucw//Np+Opq6y+RhWLTI16+95utwFrbOxVbab9qPU6f6WntOj9lZx3ulv6j2q9j2pn/cRo/qjLdz5vACAACgo3HCCwAAgErjhBcAAACVRoZX6ew8mcWXy+LFvtY5mpoZ0nrz5tptndmrtWYJNVelGd6xY32t+cGsnK5mdDWjp/m/2DXHY3VVlCUPaFbsntUcnuZR89CeXLLE1xoa1JysZlfDvtQMr87ZDvvbrD7LHsvZx7LxYR/pHN4pU3ytj6FuS9et3xlQum9lVZaeLXK/Pvywr5cu9fWFF9Zu63u/HsdixzntIe0x7d/wdazfk9FMrdba+7H+1eOk9ojuW0j7T/PDWT+7F33mX9Z12eeyIsMLAACATsYJLwAAACqNE14AAABUGhneVtJ84LJl2ffXXFyYKdL8kGZ4dblml3QG4PDhvtZMb1Z+MM/MXrP6XJbmkbSOzfEtq7LkAc06t2fVAw/4WvtGX9thri82d1uXa4ZQ3w80p6dzQbN6NtZTui5drj2tM0dzZghLoyw9W6R+nTvX1/fe6+scc5k3b/EP/7e+5ZefdZavdWx299YN/h9++ENfh6/bvJl5pf2reWPtZz3uhY+L7ov2Z2x2vdL3KV1fHnpu0ei+NRMZXgAAAHQyTngBAABQaZzwAgAAoNLI8DaTzgeNzarUOX5ZcwA1s6vb0uUbJLsUu054d7evNZcTzvHULFNs3qAu17zwhAm+jlwnvLTKkgc0K3fPhhkz7RMN+cXonM9Fi3y9bZuvt2+v3dZ+1p584w1faw/rz2sPjxzpa521G87WjuXstUdjuXu9f97HtSzK0rMl6te/+JJ/SD/72drtkftFfo3bbvP19Om+PvVUX8txbOXLAz+d06Zs9/+g84NffNHXenyfNs3Xs2f7esYMX+v3asIZ4AsX+mX6Pnbssb4+7zzL8o1b/O999tl++W/NaODl88lP+vqII3y9YMHg150XGV4AAAB0Mk54AQAAUGmc8AIAAKDSKjo8sUV0rp7Om9Pr0cfErtUd5gc1Q6czAjVzp3k+XbfmCXX5pk2+DnO7+nvH5u7qjM4tW3ytWUbNSh199MDbArQvX3qpdvu44xpbt77WTzzR18uX+3rx4tptzfhp5nbyZF9rbl57cu3a7OVah32m0TbNzWvPKs0Xr17ta806z5qVvT50jN7d/rX30EN++Z9fmyM/qpl5fZ1F5svqYdFF0Zet8Au1JzQvnDVH16z+vUNzuPq+FS7X9w7dl1i/Cn2Y9KsIvzUj1+q8m2/2tf7e7czwRvAXXgAAAFQaJ7wAAACoNE54AQAAUGnM4W0lvea0zt3V3JvmdsI5nPqzum7N973+uq81c6d5P13/8OG+zprDq7mpvLWuT7PQOs+wrMoy09Os3D0bvpb1da7Zd83hxejsTO2rMJenc3TzzN02M1uzJrvWnH1vr6/DnJ/Ovp4yxdf6uGhPag5fc3p6/+OP3/t+lE1ZerbA/fqxC/1DqKN0u0fk2PWVK32t2XKddauvPT3Ghv2svR2jx289Jsf6V98Pwn3VY6Dm/bUf9b1gu8wU1hCvztFuwC8W+ef3hDlD+FJkDi8AAAA6GSe8AAAAqDROeAEAAFBpZHiH0qpVvtZcTkjzfjrDL2/+T7NPun7NOoV0PzUHqbkpzQtprflCrcP5hprn1SxhkZUlD2jWuT0b6wN9rWuOL/x57dFYz2qtParLdX1ZGUTtyViOXpfrz+vjoPcPM4hz5gy8X0VXlp6taL/2mX/4tQV09G2XycOg/btiha/D162+hmO9rpldnbOrtb636PYOPrh2WzP2+ntkzf82qz9GX3aZDdaTT/nn4JSTC/xSI8MLAACATsYJLwAAACqNSENM+BlKqy9rq5/XhB9jZI0sM6v/eEU/Do1FGnTbWSOV9KMd/fhEr984aZKvdQSS3l+Fl5PUCMO8eb7Wj2aLpCwfj5qVq2f1UtR6CdBW0j7KigLl7Vn9SFSXa6RBxxyF+6I9q/TjW40d6Zgk7WH9eDbctl5K/LDDfB2OMCuasvRsmfpVrF1Xe4ivv94v+/SnfT3t0Miv+fDDvtZj9rRpvtZxXxn0EsnD35TX9ZIlvo69N2RF/7SfsuKOZvXHxVjUT3syHGP68svZ99WI0sknZ2+rnYg0AAAAoJNxwgsAAIBK44QXAAAAldZ5GV69NKFmeppo+w4fJxm5X86H4bnnard1TInmfzS/p5cWfuUVX+e91HB4qUK9hKlexlCXa55I911zt5q7CvODJ57olx1yiJVGWfKAZsXqWc2yap60AZu3+KdEf+uxPZGHQUcLhn0zdapfpn2gGVxdl2bptEe17zQjGO6LXnpU69ilxbNGBZrVZyHD99XTT/fLGCXYfEPZr/pa0Nf188/7+uij93nVRx7lH/4rr/TLzz/f13o473rqSf8Pv/ylr8M8+VFH+WXSv2HW2Kw+gq/tPnJF6v/hZz/ztfZvuPM6fjN2nNPs8ve/7+u1a339oQ/5Wr8L04DjZvvH6bnFbXxpkuEFAABAJ+OEFwAAAJXGCS8AAAAqrfMyvGUSZvb0sqGag1Wxyx5qhlczPjp7L8z46TzRWB5Q6dxdnfmpv1sYy9GfnTvX1zNmZG97KJUlD2jWOT2r82mbmS+NzcKOzdrUPtMcvta6/jBLmTWj16z+9+7u9rVmeHXfVbg93bbmE88+O3tdQ6ksPVvmfr3uutrt+fP9Mjk2/Pxp/3QsXOjvroeDmTN93b11g/+HRYsG3FZdKFdrse1Nv291h7HFz/p/0O8ThT05YYJfFl522Cyem9aZwEuX+lrf9844o3a7yHOxY8jwAgAAoJNxwgsAAIBK44QXAAAAlUaGNybMn8Vys62kmVzNxWkGTzN6mgHeIFkmzfBqxjfMAGs2UfdFYzSa/9O5u7HsYrgvOotUZzouWGCFVZY8oFm5e3Yohdk4fR0r7VG9f6zW7Pwbb/g67FnN+2oP69OteUadAzpxoq81ExjmEzVPqL/3TTf5Wt8fhlJZenYI+/XXL/qH6L3v9cuffaaJu/bUU77W2bmabY0IZ+uOHOmX9YyJ7Lf2kB6bYrRnwrm827b5ZdozesyMfQ9G3yt+9StfL1s28LqvuMLX++1nhUWGFwAAAJ2ME14AAABUGie8AAAAqLQR8bt0tu3DRv/m9kgrUKwxNgczNl9UM0E7d/pac7lhBlhjMnpN8Bhdd2xm8KuvDryuIueJMCTCXN6kiW3u2bDPNDevr1XtYa21T3TWpvawZgjDLN748X6ZzrPW3J7uq76fLF/u61WrfP3ii7Xb+nvosNQiZXaR2+HTfY8tXuyPD/96l68/cH6OnnzsMV+Hc3PNzKZP3/d1mdkjj/p9OfDA2u1DD4388OLFvtb+mzzZ19OmubJ3t9+2tvOEnuAYfN99fuELL/ha+/ess3yt2WZ13HEDL/vqV30tv4d985u+fs97srdVIPyFFwAAAJXGCS8AAAAqjRNeAAAAVBpzeIVeD3v0qDbuumZZw0yfZnBjNF+k69Za5/JqHjCcC6iZXa1jmVy9hvhLL/laZwaGv/sRR/hlV17p66xs0lAry0xPs1L17MqX/cM67dAm7rpmV/W1PHVq87al1qzxdWwWd1aPb9nil8V6VmeM6lxurV9/3de9vbXbmrO86ipfz55thVWWnh3Cfv2LL/mH6B3v8MvfNbeJu6bZcZ03q/Oh83zHI3KM3bwl+6UwerSvh2+V49iKFb7WjH84S1fzwDpnV3s/nKNrZvb0074OM/Vm9bn5M8+s3T7+eCst5vACAACgk3HCCwAAgErjhBcAAACVRoa3hfqf05vXAAATmElEQVTMx0m6Gpnjq5lczRbqHE3NI2nmJ5b/y8r0ah4wa2avWX1eUH9e84CaRwrnH2qu8eyzfX3rrVZYZckDmnVszzaV9kGsZ7VWsZyt1uGgz9i+xN4vNLv83HO+/tnPfP3MM7XbBxzgl911l69POskKqyw9W6B+7RrmHzJ9afXuyrGrF1zg63BwrpnZRRf5es6czNX9YpHft7AtNI6v0fO64/eSJZnbqluh9MHOXQM/TsPXSSb+ySd9rXPzZ870dSyHG/anmdkdd9Ru//KXftmCBb4+7bTsdQ8lMrwAAADoZJzwAgAAoNI44QUAAEClkeFtoaZmeJVm8GKZPKWZPq23bvV1mOHVHK3O7NWf1X3RWu+/dKmvf/rT2u1HHvHLdA5jmvparwM+lMqSBzTr2J5V2sPaZsOHNfAwaU5WV66vbe0bzfVrhjfM3WpOXntW6ba11p59/nlfP/hg7fbDD2dvS/t91qzs+7dTWXq2Kv0avtebmZ1+eq4fT5f6p0sjvxMOyHiY9Limr3mdXSu278jOLnePkG2HGXsz35Oa59d5wrpc8/36PRjN7P76174+8sja7SuusNIiwwsAAIBOxgkvAAAAKi0yBweN0AiDfuShn1LkijzoRxj6cUss0hD7yFJ/PrwcsH6couNX9BfTdem+6yUX9aPe8ONT/eQuvOSxmdn3vufrT37SgMHS1EDdx5J56EeYeXtWaR/q57fh5US1v2M9q+vWyJP2qP58eGlU3S8dcXbDDb6+5RZDdfze+/1x7+ab/XJ3KfCcEQY3stLMEn2tjZNL9Gb8jW/nAVNcrS/xUZH3gpH7yXtDXSxQau2x8LLIsTGj2o+xY7Iu15lr4TH57rv9Mr1WtD7GJcJfeAEAAFBpnPACAACg0jjhBQAAQKWR4W0hHWnUUGZXxTK3Eb27s0eodGXlC/XOet/JkpvSfdWRSJrpW7vW13oZU7ejMoWEzC6aSKNvmsOvy+3lkbNn31jvt61X7K17Pxk9unZb88P6wzq+T5dr7l5rHS32wAO125qz1zdCMruV9r1RH/L/cOh3m7fy2bNdqT2yv+Rus6Kxmsntzp5CVh/w137ef//MWo/BbsShfq9lyxZfT5jg60MO8bVmeJWu/wtfqN3WkWZ6vL7kkux1Fxh/4QUAAEClccILAACASuOEFwAAAJXGpYXLKu+lhCNyXQZ50SJf68DCWKZ33Dhfa75w4UJf33VX7fbttw+8X2Zm73qXr3/84+z7t1NZLlNqNqQ9++sX/cN0+PQW7orOs9R8acTOXX5fc83p1QygBgybKZzJa2a2apWvNWevGV7NI2rP66WFv//92u1//me/7I03fH3OOb4O879DrSw928p+jR1b9FiU01/fWHuIr7nGL9ORsPPm+bru0t6aP12+3Nc6fzbMvspxae06/9TrV03GjvX1wQdH9k2/i6Ir0H0LvL4m+/tA48dFZgB//OPyA+N9PXdu7fYHPzjgfhQelxYGAABAJ+OEFwAAAJXGCS8AAAAqjTm8OmNOs2tDKcz4xa6tLTSTq3FBzRpGZwKHASa9lrbum+YBNf+nmS/NA27Y4Ot167L3LfSJT+z7fVFI0cyuznw96qjBb0zCcJs2+74Z25O9L3WZ3TA7p697JX2zeYvfds+YnLHMNWt8Hb5HaG5e3+e0h2NZZt2WvsGEuXx9j1UzZmQvx9BqMKNbZ/58V37m3HNrt7fO03tn+t59vmeOP/5IV8+Y5+u649zq1bXbkuefJN89mTTR/+iGjdnH2OHaQprZ1Z4LH2c5vmsL6RjsE+bItvS958tf9vUZZ9iAypzhjeAvvAAAAKg0TngBAABQaZzwAgAAoNLI8BYps6samMupWaVuWVWuubtmfpbuypV+WSyzG/s99DrgmnUKl+uww1de8fX99/u6wnmkjiWZ3dyv5QyxzG4dDe7FcrsZursH/aP99L0szBNr5j+W2dX7a85e53zq8vDnp0zxyzSQqLOzUW033jjgopdW+l7WcdEa9w7iv2a2D3OwdU5v+LqPnAtoxl5bYPhwX4/UDK8e53QGeNAzdXl+GW1/5KzI3N1Pf9rX2oP6ODQwx/+N9X5fJxxQ3Msu8BdeAAAAVBonvAAAAKg0TngBAABQaV2tvAT3b7RlIx1GZyPmzODs3OVzN9HsU5hV1BmcOuNTM71580F60fI776zdvucev+wnP/H1Mcf4Wq9fPpQi1/kulKr2rGbdGsjcmpn17vZP6fBhrXvYtGc1hpuZXdaeUppfjM3hjQlzun/4h36Z9qwKZ6Oa1c/9bqey9GyR+7WJc7M127pli19+0IGRh0FnuofH0dhs6si+aIZ39Kgcx1Qz/96kod2cx9C888RzWb7c17Nm+Voz2ldd1bxtx0T6lb/wAgAAoNI44QUAAEClccILAACASuv4Oby5s6zNpLMrNfuaYfsuHxjSyF1sFmn099SMcJg3migXFW8076c0sxfODNQZnprZ/drXmrsvGHL/vcL36NSpfnk0KxfKm9nNytmZ2XDNr2fY9qb/PXp7/fKeMTl7VvPI2rNhDrDdOdibbqrdfuklv2z27IHvaza0mV3k1jXMv643bfLLe/JkdnWO+h13+HVdfbWv58yRFfi/4f3XM37fNm6c5OrwvWS6tPJIPYbKUOCezZv9cn3djvKZYH0f27XLD94+clbGe8lDD/n62GN9LTN+NQL8T9/22/7YR3O8Z86f72vtV33fKTD+wgsAAIBK44QXAAAAlcYJLwAAACqNObxKr2/d7HxqFWmGR7NNOXKOUZ//vK+vv97X553n63vvbd62G1WWmZ5m5epZzcKHuVsNsxVYn/mXRyyHHxW+l+kcz8iM0aY64ghfv/66rzW3efrprd2fPMrSs2XqV6XHi1Ckf7fv8E/PkiV++bRpvtZRu25uth779fsimv+P7JvO6NbV1333IDyO6txszQdLP+t3kR5+2N/9rDMbeHm8//2+fvxxX8dmfLcTc3gBAADQyTjhBQAAQKURaSiQdl6mtJn0o1jV8EezWWKXXCzSyJSyfDxq1jk9q2PHWvhRv/a3vnRb2idF8uEP+zq8dLgZPTsYVelXfS3MnevrnCPrNPKgV60OIw6avKvrx40bfa3vHZqXkAZfuy77pTRpYsZTqDuu8YpGY4M//Wnt9i23+GUyGq7QiDQAAACgk3HCCwAAgErjhBcAAACVRoY3B700qF4JuKUZPB3dknMkyrZt8uORy5jW5ejCOmfOsenjlkKaq9IcVXhZYjOzmTObt+28ypIHNCt1z658ufYwH3ywX9byXHw4ykhfixEbNvqXRzRTqNqYR27Iqaf6+umnfa1j5oZSWXq2SP16442+1j646KJ9XpUec++6yy9/+9t9rWPI6kZ/6WsrvFywHtBjY8ikvzSjq8dcfRjqjsHhMX7NGr9Mr6cu+6pZ5VgU+rBpDbxc9MsHum9yCea2IsMLAACATsYJLwAAACqNE14AAABUGhnedmrjZYvLOtM3t698xdd33+3rp55q377ElCUPaFbdnh3KnKvm4mMzpIVePrR7REmforPP9rUGDPXy4UOpLD1b5n79+tdrty+/3C+LHCM19750qV+umd7Jk32d2UOa99Xv0eh7h2Z+I/uux+itWwf+Ua3bOrN74UJfa0D4+uvbty8xZHgBAADQyTjhBQAAQKVxwgsAAIBKI8PbgJbOl22yMu1rQ44+2tc33ODr9763ffuiypIHNCt1z4ZZV43s1s3lbKUGM/s6W7OhHF8bvz+Q2333+fqKK3xd4LmehdHOftWc7bXX+nr69JZt+r9X+KdD+1tHwo7tiTws4bxbzdhr4Fcy95of1n2ZONHXdf2qmeBw/ZoHFvreoO0d/b1bSb+boI9rK5HhBQAAQCfjhBcAAACVxgkvAAAAKq09GV4AAABgiPAXXgAAAFRayy8zNHy49Y0Y0f/Fvbf+C+uBbnO/5t6va3dv/7cld+/u/zrpW7e1Hug292vO/czM+voK+83v4cOtr0iv2069X5f1Fet126n327270P3a1eWPr0P9uu3U+3VZX7Fet518v4x+HdbO5gQAAADajRNeAAAAVBonvAAAAKg0TngBAABQaZzwAgAAoNI44QUAAEClccILAACASuOEFwAAAJXGCS8AAAAqrauvr2+o9wEAAABoGf7CCwAAgErjhBcAAACVxgkvAAAAKo0TXgAAAFQaJ7wAAACoNE54AQAAUGkjhnoHsiRJ8vtm9oE0TS/Yy7KbzOw0M9u0559+L03TDS3a1sfN7BNmtsvMvpSm6f2D3MZoM/u2mR1o/fv9R2mavi73uc/MJpnZTjPblqbpOTm3MczM/tbMfsfMtpvZZWmaLmvB7xLbTlOfnz3rPMXM/neapnPl399nZl+w/t/ptjRN/66R7US2tcDMLjWzt563T6Rpmja6vappV++2um9b3bNV7dd29Sp9Wi9JkqPN7EkzOyhN0zebuN4xZnaHmU00sy1m9jHthQbXP976e22cme1nZgvSNP3PZq0/2M6A7xmDWFdmXzXLQK/zJqy328xuM7MZZjbS+t9j7mvi+oeb2d+ZWWJmvWZ2cZqmv2rW+oPtHGhmPzezs9I0XTLQ/Qp7wpskydfM7N1mtmiAu5xoZu9O03RNK7eVJMlUM7vKzE4ys1Fm9miSJP+epun2QWzqj83s2TRNv5gkyYfN7Foz+59yn1lmdlyapoMdkPx+MxuVpunvJknydjP7KzP7vRb8LgNuZ4+mPT9mZkmSfNbMPmb9b7Thv3eb2V+b2f/Ys+yxJEn+LU3T1c3e1h4nmtmFaZr+fLDrr7p29W6b+rbVPVu5fm1Xr9Kn9ZIkGWf9z+1gXiMxHzezn6dpel2SJBfZ3nuhEQvM7Mdpmt6YJEliZt+x/uexafbhvSmvWF81LPI6b9RHzWxtmqYfS5Jkkpn9wsyadsJrZu8zM0vT9LQkSeaa2Vet+Y9Pt5n9HzPbFrtvkSMNj1v/wabOnv+rOtLMbk2S5LEkSS5p1bbM7GQzeyxN0+17/uKxzMyOH+R23mFmP9xz+wdmdma4MEmSg8zsADP7tyRJHk2S5L2NbCNN0yes/2D5lpb8LrqdFjw/Zma/MrM/2Mu/H2Nmy9I0fSNN0x1m9qiZvbNF2zIze5uZ/eme5+dPG9xOVbWrd9vRt63u2Sr2a7t6lT4NJEnSZWa3mtk1Zra12etP0/RGM/vynnK6mb3a5E38tfWfuJj1/zGuaX+dDmS9ZwxGVv82S9brvFH/amZ/HtS7mrnyNE3vNbPL95SHW/NfM2ZmN5jZLWa2KnbHIf8Lb5Ikl5rZZ+SfL07T9F/2/B/B3owxs7+x/v9bGG5mP0mSZGGaps+0YFvjzCz8aG+TmY3P2k7Gtl4N1rW39exn/f+H+DXr/9josSRJnkrT9LXY9jL2tzdJkhFpmu7ay7J9+l0GsZ1BPT9Z0jT9v0mSzNiH/Wjkd4pty8zsu2Z2s5ltNLN7kiR572A/Zi67dvVuu/p2iHq2cv3arl7t5D4d4LX6azP7bpqm/9X/B9Kmr//iNE1/liTJf5jZb5vZWS1a/1TrjzbMb8H6s94zBiOrr5oi8jpvdN2bzcySJBlrZndZ/1/tm72NXUmS/KOZ/b6Znd/Mde/5pOH1NE1/tC//YzvkJ7xpmv6Dmf1Dzh/bamZfS9N0q5nZngb8HTPLfIMe5LY2mtnYoB5rZutjP7S3bSVJcnewrr2tZ7WZ3bKnWV5LkuQX1p99yXPCq/s7LGi+Qf0ug9jOoJ6fJu1HI79Tpj1/QbnxrWxjkiQPmNkJZlaZA2ke7erddvXtEPVsJ/VrW3q1E/p0gNfqMjO7dM/J3lQze9DMTm/W+oNlZ+zJCT9gZkc0c/1Jkvy29f/PytVpmv6/waw7a/0tkNVXpZAkyWFmdo+Z/W2apne0Yhtpmv5RkiSfM7MnkyQ5Nk3TZsUzLjGzviRJzjSzOWZ2e5Ik5w0UkxryE95BOsrMvpskyYnWH8t4h5n9Y4u29ZSZfTlJklHWH+o+xswWD3Jdj5nZuXvWeY6ZPSLLzzSzT5nZe5Ik6TGz2Wb2wiC28T4zu3NPpujZYFmzf5eBttPO5+cFMzsySZKJZrbZ+t/gb2jRtsaZ2eIkSY6x/jzVGdYf+Me+a9dro1mv9Vb3bCf1a7t6tSP7NE3TWW/dTpJkhZnNa+b69/wFbWWapv9k/Y9rb5PXf6z1f8T+oTRN/6uZ626hrL4qvD2RrAfN7FNpmv64Bev/mJlNS9P0L63/f6x3WxNfN2ma/uZ/6JIkedjMrsj6TkCpTniT/m/eLkvT9L4kSf7ZzJ6w/m9G356m6XMt3NZN1n+gG2Zmf9bAN1+/YWb/mCTJo2a2w8wu2LOt683srjRNf5AkybuTJHnC+l8Y1wziSyT3mNlZSZI8bmZdZnZxi36X2HZa/fxcYGY9aZreume7P7L+3+m2NE1fbuG2rjGzn1j/l0J+nKbp95u5rapq12ujBa/1Vvds5fu1Xb1Kn7bcbdbfC5daf/Tl4iav/y+t/8uZX9sTydiQpmlTv+DUAnV9NcT7k9c1ZjbBzP48SZK3srznpGka/QLYPrrbzL6ZJMlPzazbzOY38B7WsK6+vsEOAwAAAACKr8hTGgAAAICGccILAACASuOEFwAAAJXGCS8AAAAqjRNeAAAAVBonvAAAAKg0TngBAABQaZzwAgAAoNL+P8mtILjCMMh1AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "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", "Y = a X e^{-X^2} + b \\sin X^2 + \\delta Y\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": {}, "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", "Z_1 = X e^{-X^2} \\quad, \\quad Z_2 = \\sin X^2 \\; ,\n", "$$\n", "the transformed model is now linear:\n", "$$\n", "Y = X W\n", "$$\n", "with\n", "$$\n", "W = \\begin{bmatrix}\n", "a \\\\ b\n", "\\end{bmatrix} \\; .\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", "y = A x_1^a x_2^b \\; ,\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.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }