{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import scipy.linalg as la" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Understanding the SVD" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Useful reference\n", "\n", "- [A Singularly Valuable Decomposition](https://datajobs.com/data-science-repo/SVD-[Dan-Kalman].pdf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sketch of lecture" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Singular value decomposition\n", "\n", "Our goal is to understand the following forms of the SVD.\n", "\n", "$$\n", "A = U \\Sigma V^T\n", "$$\n", "\n", "$$\n", "A = \\begin{bmatrix}\n", "U_1 & U_2\n", "\\end{bmatrix}\\begin{bmatrix}\n", "\\Sigma_1 & 0 \\\\\n", "0 & 0 \n", "\\end{bmatrix}\\begin{bmatrix}\n", "V_1^T \\\\\n", "V_2^T\n", "\\end{bmatrix}\n", "$$\n", "\n", "$$\n", "A = \\sum_{i=1}^r \\sigma u_i v_i^T\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (1) The matrix A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### What does a matrix do?\n", "\n", "A linear function is one that satisfies the property that\n", "\n", "$$\n", "f(a_1x_1 + a_2x_2 + \\cdots + a_nx_n) = a_1 f(x_1) + a_2 f(x_2) + \\ldots + a_n f(x_n)\n", "$$\n", "\n", "Let $f(x) = Ax$, where $A$ is a matrix and $x$ is a vector. You can check that the matrix $A$ fulfills the property of being a linear function. If $A$ is $m \\times n$, then it is a linear map from $\\mathbb{R}^n \\mapsto \\mathbb{R}^m$.\n", "\n", "Let's consider: what does a matrix *do* to a vector? Matrix multiplication has a *geometric* interpretation. When we multiply a vector, we either rotate, reflect, dilate or some combination of those three. So multiplying by a matrix *transforms* one vector into another vector. This is known as a *linear transformation*.\n", "\n", "Important Facts: \n", "\n", "* Any matrix defines a linear transformation\n", "* The matrix form of a linear transformation is NOT unique\n", "* We need only define a transformation by saying what it does to a *basis*\n", "\n", "Suppose we have a matrix $A$ that defines some transformation. We can take any invertible matrix $B$ and\n", "\n", "$$BAB^{-1}$$\n", "\n", "defines the same transformation. This operation is called a *change of basis*, because we are simply expressing the transformation with respect to a different basis." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example**\n", "\n", "Let $f(x)$ be the linear transformation that takes $e_1=(1,0)$ to $f(e_1)=(2,3)$ and $e_2=(0,1)$ to $f(e_2) = (1,1)$. A matrix representation of $f$ would be given by:\n", "\n", "$$A = \\left(\\begin{matrix}2 & 1\\\\3&1\\end{matrix}\\right)$$\n", "\n", "This is the matrix we use if we consider the vectors of $\\mathbb{R}^2$ to be linear combinations of the form \n", "\n", "$$c_1 e_1 + c_2 e_2$$\n", "\n", "Now, consider a second pair of (linearly independent) vectors in $\\mathbb{R}^2$, say $v_1=(1,3)$ and $v_2=(4,1)$. We first find the transformation that takes $e_1$ to $v_1$ and $e_2$ to $v_2$. A matrix representation for this is:\n", "\n", "$$B = \\left(\\begin{matrix}1 & 4\\\\3&1\\end{matrix}\\right)$$\n", "\n", "Our original transformation $f$ can be expressed with respect to the basis $v_1, v_2$ via\n", "\n", "$$B^{-1}AB$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Fundamental subspaces of $A$\n", "\n", "- Span and basis\n", "- Inner and outer products of vectors\n", "- Rank of outer product is 1\n", "- $C(A)$, $N(A)$, $(C(A^T))$ and $N(A^T)$ mean\n", "- Dimensions of each space and its rank\n", "- How to find a basis for each subspace given a $m \\times n$ matrix $A$\n", "- Sketch the diagram relating the four fundamental subspaces" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (2) Orthogonal matrices $U$ and $V^T$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Orthogonal (perpendicular) vectors\n", "- Orthonormal vectors\n", "- Orthogonal matrix\n", "- $Q^TQ = QQ^T = I$\n", "- Orthogonal matrices are rotations (and reflections)\n", "- Orthogonal matrices preserve norms (lengths)\n", "- 2D orthogonal matrix is a rotation matrix\n", "$$ V = \n", "\\begin{bmatrix}\n", "\\cos\\theta & -\\sin \\theta \\\\\n", "\\sin \\theta & \\cos \\theta\n", "\\end{bmatrix}\n", "$$\n", "- $V^T$ rotates the perpendicular frame spanned by $V$ into the standard frame spanned by $e_i$\n", "- $V$ rotates the standard frame into the frame spanned by $V$\n", "- \n", "$$\\text{proj}_v x = \\frac{\\langle x, v \\rangle}{\\langle v, v \\rangle} v\n", "$$\n", "- Matrix form\n", "$$\n", "P = \\frac{vv^T}{v^Tv}\n", "$$\n", "- Gram-Schmidt for converting $A$ into an orthogonal matrix $Q$\n", "- QR decomposition" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (3) Diagonal matrix $S$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Recall that a matrix $A$ is a transform with respect to some basis\n", "- It is desirable to find the simplest similar matrix $B$ in some other basis\n", "- $A$ and $B$ represent the exact same linear transform, just in different coordinate systems\n", "- $Av = \\lambda v$ defines the eigenvectors and eigenvalues of $A$\n", "- When a square matrix $A$ is real, symmetric and has all non-negative eigenvalues, it has an eigen-space decomposition (ESD) \n", "$$ \n", "A = V \\Lambda V^T\n", "$$\n", "where $V$ is orthogonal and $\\Lambda$ is diagonal\n", "- The columns of $V$ are formed from the eigenvectors of $A$\n", "- The diagonals of $\\Lambda$ are the eigenvalues of $A$ (arrange from large to small in absolute value)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## (4) SVD $U\\Sigma V^T$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- The SVD is a generalization of ESD for general $m \\times n$ matrices $A$\n", "- If $A$ is $(m \\times n)$, we cannot perform an ESD\n", "- $A^TA$ is diagonalizable (note this is the dot product of all pairs of column vectors in $A$)\n", "- \n", "$$\n", "A^TA = V \\Lambda V^T\n", "$$\n", "- Let $\\Lambda = \\Sigma^2$\n", "- Let $U = AV\\Sigma^{-1}$\n", "- The $A = U\\Sigma V^T$\n", "- Show $U$ is orthogonal\n", "- Show $U$ is formed from eigenvectors of $AA^T$\n", "- Geometric interpretation of SVD\n", " - rotate orthogonal frame $V$ onto standard frame\n", " - scale by $\\Sigma$\n", " - rotate standard frame into orthogonal frame $U$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Geometry of SVD example" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "ori = np.zeros((2,1))\n", "A = np.array([[3,1], [1,3]])\n", "u, s, vt = la.svd(A)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[3., 1.],\n", " [1., 3.]])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u @ np.diag(s) @ vt" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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rVMWNyOp/EytS7TOPkT0ms2u6/03RCqKRURERKTk6UI7ERERESl5KopFREREpOQ1SWOnLVq08LZt26axa2lA3nrrrW/cvWV97lO5K7WlvJVipdyVYlXT3E2lKG7bti3l5Ss67aRIMLOJy14rv5S7UlvKWylWyl0pVjXNXQ2fEBEREZGSp6JYREREREqeimIRERERKXkqikVERESk5KkoFhEREZGSp6JYREREREperYtiM1vFzEaa2WgzG2dmV+UjMBERERGR+pKPeYp/AvZz91lmVgYMM7Mh7j4iD9sWEREREalztW4p9jAreVqWPLy225U8+vFHuOUWmDIl7UhERESkUM2dC3//O3zxRdqRpCIvY4rNrLGZvQN8DTzn7m9UsU5fMys3s/KKiop87FZq6oUX4Kyz4N13046kKCl3pRgpb6VYKXdT9OqrcPbZ8NZbaUeSirwUxe6+wN07AK2BXcxsuyrWucPdO7p7x5Yt6/XW6ZLJQNOmsPfeaUdSlJS7UoyUt1KslLspymRg5ZWhc+e0I0lFXmefcPfpwEtAt3xuV2rBPZL8gAMi0UVERERyucOgQbDffrD66mlHk4p8zD7R0syaJ/9fFdgfeL+225U8GT06xgYdfHDakYiIiEihmjABPv64pOuFfMw+sQFwr5k1Jorsge6eycN2JR8yGTCDgw5KOxIREREpVJmkdFNRvOLcfQywYx5ikbqQycAuu8B666UdiYiIiBSqTAbat4eNNko7ktTojnYN2dSpMHJkSZ/1iYiIyDJMmxYzT5R4vaCiuCEbPDgGzpd4kouIiMhSPPssLFhQ8vWCiuKGLJOBVq1ghx3SjkREREQKVSYDLVrEcMsSpqK4ofrpJxg6NM76zNKORkRERArR/PkwZEhckN+4cdrRpEpFcUP1yiswaxb06JF2JCIiIlKoRoyA775TvYCK4oYrk4FVV41JuEVERESqkslAkyZxk68Sp6K4Iaq8K03nzlEYi4iIiFRl0CDYZx9YY420I0mdiuKGaPx4+PTTkr+KVERERJbik0/gvfdULyRUFDdElXel6d493ThERESkcD39dPyrohhQUdwwZTLQoQO0bp12JCIiIlKoMhnYckvYfPO0IykIKoobmu++g9de01WkIiIiUr2ZM+Hll1UvZFFR3NA88wwsXKiuEBEREane88/D3LmqF7KoKG5oBg2C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vq19+zjG6WI8kdp7+un4t8CL4qqGU268cSybMiVqiX32qd/rBBvOJYkNXSYTd43acMO0I1nCwoVxM6vevWG99WIWialTY1D8xIkwdCj06hXDoaUIfPONihOpezvtBC++CE8+GQeRHj1i8ODo0WlHJlLcMhnYZpv6aVpdTgsXRuvviSfC+uvHv5MmRQPaZ59FLXH88dGxlAYVxcXgm2/iqu0CO+urHALRtm0MdR40KJL59dej5+YPf4A2bdKOUpbLxImw7bZw001pRyKlwAwOOQTGjoW//x1GjYIdd4wxyF9+mXZ0IsVnxoyYqarA6oXqhlO++mphDafUhXaF6NFHF38+ZEjB3JXm++9h4MDo/Rw+PLo1DjgghgcecgisumraEUqttGkTF2ecfz5ssAEcd1zN35ubtyI1VVYGZ50Fv/41XHttFMgPPxzzHJ93Hqy+etoRihSHoUNjjH4B1AszZ8bFcv37R/FrFg1o114b9yQoxN5jtRQXohYt4lEpk4l+hp12SiWcBQvg2WdjCMT660PfvjBtGvz5z9HtMWRITDiggrgBaNQo5rnp1AlOOgmef77m783NW5HltdZacOONMH48HHQQXHklbLFFfKsuXJh2dCKFL5OJz9Huu6ey++zhlOuvX3zDKVUUF6L+/eMBccb3zDOp3JWmcgjExhtDt24RRp8+MHJkTIZxwQUFOcRZamvllWPKrK22giOOgHfeqdn7svNWpDY22yyamIYNiwvzTjoprql48cW0IxMpXAsWwODBcau3JvU7EKCq4ZS9exffcEoVxYUou7gYNizGCPXoUS+7njYNbr8ddtstbkrVrx906BDfT199FbMn/eIXmj2iwWvePLoAmjePA+xnny37PSqKJd8q74L3wAPw3XfQuXOM0/rgg7QjEyk8b74JFRX1Vi98//2iGaW22AKuvz4uSXnooagXKmuJYqoXVBQXukwmWu46d66zXcyfHyeXRx8dw0hPOy1usHHjjTB5coTQs2eEISWkVavoHpgzJ7oKvv027YikFDVqFFfkvP9+fOu+/HJM5XbWWXERsoiETCZultO1a53tYsGCRUMgGuJwShXFhS6TiUs162B+ksohEG3axOiMF16IBH/rLRgzBs49N5JeStg220Q/2GefRevD7NlpRySlatVV4aKLYib/3/wGbrstJkO/8Ub46ae0oxNJXyYD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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, axs = plt.subplots(1,4, figsize=(12,3),\n", " sharex=True, sharey=True)\n", "\n", "x, y = np.c_[ori, np.eye(2)[:, 0]]\n", "axs[0].plot(x, y, c='blue', linestyle='--')\n", "x, y = np.c_[ori, np.eye(2)[:, 1]]\n", "axs[0].plot(x, y, c='red', linestyle='--')\n", "axs[0].set_title('A@I')\n", "\n", "x, y = np.c_[ori, A[:, 0]]\n", "axs[0].plot(x, y, c='blue', linestyle='-')\n", "x, y = np.c_[ori, A[:, 1]]\n", "axs[0].plot(x, y, c='red', linestyle='-')\n", "axs[0].set_title('A@I')\n", "\n", "x, y = np.c_[ori, np.eye(2)[:, 0]]\n", "axs[1].plot(x, y, c='blue', linestyle='--')\n", "x, y = np.c_[ori, np.eye(2)[:, 1]]\n", "axs[1].plot(x, y, c='red', linestyle='--')\n", "axs[1].set_title('A@I')\n", "\n", "x, y = np.c_[ori, vt[:, 0]]\n", "axs[1].plot(x, y, c='blue', linestyle='-')\n", "x, y = np.c_[ori, vt[:, 1]]\n", "axs[1].plot(x, y, c='red', linestyle='-')\n", "axs[1].set_title('V.T@I (Rotate)')\n", "\n", "w = np.diag(s) @ vt\n", "x, y = np.c_[ori, w[:, 0]]\n", "axs[2].plot(x, y, c='blue', linestyle='-')\n", "x, y = np.c_[ori, w[:, 1]]\n", "axs[2].plot(x, y, c='red', linestyle='-')\n", "axs[2].set_title('S@V.T@I (Scale)')\n", "\n", "u = u @ np.diag(s) @ vt\n", "x, y = np.c_[ori, u[:, 0]]\n", "axs[3].plot(x, y, c='blue', linestyle='-')\n", "x, y = np.c_[ori, u[:, 1]]\n", "axs[3].plot(x, y, c='red', linestyle='-')\n", "axs[3].set_title('U@S@V.T@I (Rotate)')\n", "\n", "for ax in axs:\n", " ax.axis([-3.5, 3.5, -3.5, 3.5])\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Covariance, PCA and SVD" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Remember the formula for covariance\n", "\n", "$$\n", "\\text{Cov}(X, Y) = \\frac{\\sum_{i=1}^n(X_i - \\bar{X})(Y_i - \\bar{Y})}{n-1}\n", "$$\n", "\n", "where $\\text{Cov}(X, X)$ is the sample variance of $X$." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "np.set_printoptions(precision=3)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def cov(x, y):\n", " \"\"\"Returns covariance of vectors x and y).\"\"\"\n", " xbar = x.mean()\n", " ybar = y.mean()\n", " return np.sum((x - xbar)*(y - ybar))/(len(x) - 1)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "X = np.random.random(10)\n", "Y = np.random.random(10)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.099, -0.024],\n", " [-0.024, 0.058]])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.array([[cov(X, X), cov(X, Y)], [cov(Y, X), cov(Y,Y)]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using `numpy` function" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.099, -0.024],\n", " [-0.024, 0.058]])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.cov(X, Y)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.099, -0.024, -0.028],\n", " [-0.024, 0.058, 0.025],\n", " [-0.028, 0.025, 0.068]])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Z = np.random.random(10)\n", "np.cov([X, Y, Z])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Eigendecomposition of the covariance matrix" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "mu = [0,0]\n", "sigma = [[0.6,0.2],[0.2,0.2]]\n", "n = 1000\n", "x = np.random.multivariate_normal(mu, sigma, n).T" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "A = np.cov(x)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1., -1.],\n", " [-1., 1.]])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m = np.array([[1,2,3],[6,5,4]])\n", "ms = m - m.mean(1).reshape(2,1)\n", "np.dot(ms, ms.T)/2" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "e, v = la.eigh(A)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(x[0,:], x[1,:], alpha=0.2)\n", "for e_, v_ in zip(e, v.T):\n", " plt.plot([0, 3*e_*v_[0]], [0, 3*e_*v_[1]], 'r-', lw=2)\n", "plt.axis([-3,3,-3,3])\n", "plt.title('Eigenvectors of covariance matrix scaled by eigenvalue.');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### PCA\n", "\n", "Principal Components Analysis (PCA) basically means to find and rank all the eigenvalues and eigenvectors of a covariance matrix. This is useful because high-dimensional data (with $p$ features) may have nearly all their variation in a small number of dimensions $k$, i.e. in the subspace spanned by the eigenvectors of the covariance matrix that have the $k$ largest eigenvalues. If we project the original data into this subspace, we can have a dimension reduction (from $p$ to $k$) with hopefully little loss of information.\n", "\n", "Numerically, PCA is typically done using SVD on the data matrix rather than eigendecomposition on the covariance matrix. The next section explains why this works. Numerically, the condition number for working with the covariance matrix directly is the square of the condition number using SVD, so SVD minimizes errors." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For zero-centered vectors,\n", "\n", "\\begin{align}\n", "\\text{Cov}(X, Y) &= \\frac{\\sum_{i=1}^n(X_i - \\bar{X})(Y_i - \\bar{Y})}{n-1} \\\\\n", " &= \\frac{\\sum_{i=1}^nX_iY_i}{n-1} \\\\\n", " &= \\frac{XY^T}{n-1}\n", "\\end{align}\n", "\n", "and so the covariance matrix for a data set X that has zero mean in each feature vector is just $XX^T/(n-1)$. \n", "\n", "In other words, we can also get the eigendecomposition of the covariance matrix from the positive semi-definite matrix $XX^T$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note: Here $x$ is a matrix of **row** vectors" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.946, 0.787, 0.056, 0.122],\n", " [0.51 , 0.757, 0.474, 0.383],\n", " [0.495, 0.838, 0.512, 0.573],\n", " [0.336, 0.621, 0.678, 0.22 ],\n", " [0.674, 0.43 , 0.878, 0.396]])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X = np.random.random((5,4))\n", "X" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "Y = X - X.mean(1)[:, None]" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-0., 0., 0., 0., -0.])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.around(Y.mean(1), 5)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.468, 0.309, -0.422, -0.355],\n", " [-0.021, 0.226, -0.057, -0.148],\n", " [-0.11 , 0.234, -0.093, -0.032],\n", " [-0.128, 0.158, 0.214, -0.244],\n", " [ 0.08 , -0.165, 0.284, -0.199]])" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Y" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.206, 0.046, 0.024, -0.005, -0.021],\n", " [ 0.046, 0.026, 0.022, 0.021, -0.009],\n", " [ 0.024, 0.022, 0.025, 0.013, -0.022],\n", " [-0.005, 0.021, 0.013, 0.049, 0.024],\n", " [-0.021, -0.009, -0.022, 0.024, 0.051]])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.cov(X)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.206, 0.046, 0.024, -0.005, -0.021],\n", " [ 0.046, 0.026, 0.022, 0.021, -0.009],\n", " [ 0.024, 0.022, 0.025, 0.013, -0.022],\n", " [-0.005, 0.021, 0.013, 0.049, 0.024],\n", " [-0.021, -0.009, -0.022, 0.024, 0.051]])" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.cov(Y)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "e1, v1 = np.linalg.eig(np.dot(x, x.T)/(n-1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Principal components\n", "\n", "Principal components are simply the eigenvectors of the covariance matrix used as basis vectors. Each of the original data points is expressed as a linear combination of the principal components, giving rise to a new set of coordinates. " ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAD8CAYAAABjAo9vAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzsvXmQXVd+3/c5d79vf72h0QAaaAAESJAECS7DZcYzsjSjLY5tpeTIdkWquFIZp1R2lCqVnUr+UaVSqVJVXIqVWH9YsVxxZEmJJUuyJFdqZiTNRnI4GmwEQRAb0Vga6O3129/d7z35475+7MZKEj0k2DyfKhSWfrj39H39vuec3/n+fj8hpUShUCgU2wftkx6AQqFQKLYWJewKhUKxzVDCrlAoFNsMJewKhUKxzVDCrlAoFNsMJewKhUKxzXhoYRdCOEKIvxJCvCWEeEcI8T9txcAUCoVC8dEQD+tjF0IIoCil7AshTOA14JeklG9uxQAVCoVC8eEwHvYCMp8Z+sO/msNfKutJoVAoPiEeWtgBhBA6cAI4CPyGlPL7d3nNV4GvAhSLxecff/zxrbi1QqFQfGY4ceJEQ0o5+aDXPXQoZtPFhKgBfwT8Yynl2Xu97oUXXpDHjx/fsvsqFArFZwEhxAkp5QsPet2WumKklG3gm8BPbuV1FQqFQvHB2QpXzORwpY4QwgW+Apx/2OsqFAqF4qOxFTH2ncC/GcbZNeDfSSn/bAuuq1AoFIqPwFa4Ys4Ax7ZgLAqFQqHYAlTmqUKhUGwzlLArFArFNkMJu0KhUGwzlLArFArFNkMJu0KhUGwzlLArFArFNkMJu0KhUGwzlLArFArFNkMJu0KhUGwzlLArFArFNkMJu0KhUGwzlLArFArFNkMJu0KhUGwzlLArFArFNkMJu0KhUGwzlLArFArFNkMJu0KhUGwzlLArFArFNkMJu0KhUGwzlLArFArFNkMJu0KhUGwzlLArFArFNkMJu0KhUGwzlLArFArFNkMJu0KhUGwzlLArFArFNkMJu0KhUGwzHlrYhRB7hBDfFEKcE0K8I4T4pa0YmEKhUCg+GsYWXCMBfllKeVIIUQZOCCG+IaU8twXXVigUCsWH5KFX7FLKRSnlyeGfe8C7wK6Hva5CoVAoPhpbGmMXQuwDjgHf38rrKhQKheKDs2XCLoQoAf8e+O+klN27fP2rQojjQojjq6urW3VbhUKhUNzGlgi7EMIkF/XfkVL+4d1eI6X8TSnlC1LKFyYnJ7fitgqFQqG4C1vhihHAbwHvSil/7eGHpFAoFIqHYStW7J8Hfh74USHE6eGvn96C6yoUCoXiI/DQdkcp5WuA2IKxKBQKhWILUJmnCoVCsc1Qwq5QKBTbDCXsCoVCsc1Qwq5QKBTbDCXsCoVCsc1Qwq5QKBTbDCXsCoVCsc1Qwq5QKBTbDCXsCoVCsc1Qwq5QKBTbDCXsCoVCsc1Qwq5QKBTbDCXsCoVCsc1Qwq5QKBTbjIcu26tQKH74tL2I+caArh9TcU3mJorUCtYnPSzFI4pasSsUjzhtL+LU9RZRklEvWERJxqnrLdpe9EkPTfGIooRdoXjEmW8MKFgGBctACDH683xj8EkPTfGIooRdoXjE6foxrqlv+jfX1On68Sc0IsWjjhJ2heIRp+Ka+HG66d/8OKXimp/QiBSPOkrYFYpHnLmJIl6U4EUJUsrRn+cmip/00BSPKMoVo1B8CtA1wdlbHQSSg1Nljs3WlStGcU+UsCsUjzDrjpgsg4pt0PQiLi73qResH4r98dNiq/y0jPOTQoViFIpHmPnGgCyD680BSSaZLDlEScrvvHmVZj/aUvvjw9gq1//vty+s/NCtmMr++WCUsCsUjzBdP6Y5CHFMHcfM7Y5hnGJogpYXban98aPaKj9uoVX2zwejQjEKxSOMEPD2zQ62oVG0DSbKDh0/Yaxo0w/fd8q4pk7rIYW068fUbwtn3O26t4dBekE8Eldg9Pt8Y8Cx2a0Pj3zQcX6WUcKuUPwQeZhYcNuL6PgxUgAI4iTj0lKXREocU6dkv+9t3wr747qtMs0kt9o+/TDB0ASz44VNYzp1vUXBMqgXLPw45fT1FoenK9xoevTDlJKts7PqENxm0dwq1se5PoGAsn/ejgrFKD7T/DBjwxtDFIYmeOdmh//7jat85+LKA+/T9iL+8OQNjl9tEkYp19cGNL2IgqUzVbaJ0zzssZX2x7mJIqu9gDMLLaIkxdI1emFCx4+5tjbg1PUWf3jyBjdbPmkmR2EQx9J57XKDOJVUHIM4lZy52UGIhxrOfcep7J/3R63YFZ9Z7rb6PHW99ZGshHdbma/HgtNMcnG5h2PqTJRsrjc90kze8z5tL+K1S6ucX+wxUbIp2SaaEOhCUHYsHEvwY09M0xxEtLyIimtyePr+Y944vnXBlZJNu4hawaLimpR8kyiFkq3xzO4afpTyjXPLPL2rioaGJuDCUpfD0xXKjomta4RxCsjh3SRi9Oetp1awODZbZ74x+MDf/93Yzs6aLRF2IcS/Bv4GsCKlfGorrqlQ/LDZeAgHHz02fK8JwotS9tQLI1F3TAMpJd0gGR32bbzPutCcut5kuRNRdAw0IbAMnYmSQyYllYLBkzNV9o4X2Tv+wVaoG8dnaIK3b7aRCI7uqo4OOo/N1gG4vNJDQ6PkGMzUXMqOyc2WR5plFCyD0nBF7piCW22fw9MmQSI5MlPB1DW6QUzJNnh6V40k+2GL+0cXciGg48dMlZ2HntQfRbYqFPN/AT+5RddSKD4WtqoGy71cGv0gwY9T+mGCbeT3CZOMkq3fcZ+NYRsNjSBJSdKMThATJSmGDl4U0+yHHzrksHF8i52AqmtRcy0WOwFpJrnZ8vm3b17jD04skGQSyxDEqeTCUo9eENP0YsaGYjdTcwniFCmhF8R4UYKuwZ56kcPTFZ7fO8bh6QqGrj1SMe/bnTvX1zwWbgspbSdnzZas2KWU3xFC7NuKaykUHxd3O4Rb7YU0+iHfvrDywO35+grw9Uur7Kg47KoXKDu5mLmmTskx8KL8ADKIE4TQCOKUvePlOw77NopvyTEoWjpJKhCawNAFbS/GNnSe/RAryruNrx8mVIZjXO4F9IIY29BoDyJ21128RNLycyG3DY0rjT66BmNFG4CyY3J4usyVRp8MsAyNrxyZ5spqHy9KcE0dP07xooTD0/UHju/MQptLK/1RRu3e8SLNQbTl4ZHbd2dJJqk65mjXAdvLWfOxxdiFEF8FvgowOzv7cd1WobgncxNFTl1vAfmHerUXcvZmm6d21R64Pd8Y3thRcRiECReWehyeLlN28gljpuYyN1FE1wSnr7cYK9kc2lFC18QdwrfRwjdTc1npBSx1AoSAvWNFbFNnd93l6O7aHd/H3WLFwF3G10XTBGGSAoJmP8QwNPwwozkI2TtRpG7qRGmGqWv0gpgM7hBuXRPsqrmbnkvVNT9UzLvtRXzt7BJnb3XQhEADzix0iJOMZ/bUeXKmsilM9LDifrtFsmQbREm6yTK6nZw1QsqtiYMNV+x/9kFi7C+88II8fvz4ltxXoXgYNoriUidgomQzVXFGX/eiBMvQRjHodda39QXLoBfEXFjqIoCibTA7nrs2NgrSgw7qNl4P8jDH2ZsdljoBu8ccDk6VObq7dtcJ5rVLq7S9mHgoyLWCScU1sQ19w/h6+YGmgCBO8eOMhabHWNFGAlkmSTPJYztKJJnk+b1jm773rTpoHO0iLjc4e7PNVNmhaBvcaPqs9gPqrsn+yRKTZYfD02V0Tdz1+X9Y7vZ8zyy0KDkmR3fVRruMRz3GLoQ4IaV84UGvU64YxWeajYdw376wcs/El9uF7VbbZ08993fn4YkKN1sey92AgzvKd6xYH3TYd/vuQdcEj+0o8Z+/uOe+QnNmoc1Cy6PqWhQsizBJWWh5JGuSLz42tWF85dH4ju6p8d5Kn7ZtYOqCmVr+fVxa6TG/NuDxHeWRhXB9V/FRDitvZ+Mupz2IkEA3SOiFCQVLx9Q0/CglyXKf/q22z6Ed5S0Jj9zt+e6uF6i45kM5ax5VlLArFEPulfgiBHe4XhY7Po6hj1b3ZcdkdrzIwR3lj7S6XLfwnVlob6riuM69VsyXVvpUHBPHzMecSmh7MVdW+9Rci/2TJcqOecf4pIRDO8pcXO6ha2AbOhNFkzMLbRxDJ5Pw8oHxDx3Pv9+KfqP9c6UXMggSgigjTiX7xgtYhsAbirxtaHSHh89bER65m0XyC49Nbhshv52tsjv+HvAjwIQQYgH4FSnlb23FtRWKj4vbV3Xr23NdE9xui5wbLzG/NqDkGKPXrvYCKq75gQ5e70WaSZ6aqY5i/n9w4gZV16Tjx8yNl5gs25ti/36U0uiGpNJHExIvSrENjaprcmGlx5mFFkdmquypF9E0RivwimsSJRmHpyvcavssdQNW+hEv7h/n5bkJ/Djlymqfqms+8Hv4oPkAXT/G0AQXl3uMlyyCOKXrx7SDiFrBAAGOZVB2TIJ43Qn0gENYKfmgmVBbsev4tLBVrpi/txXXUSg+LFuZZHKvxJe3brTvsEVOlm2CJMUyNG60PJa7Pqv9iF01l7nx4kc6+NtkS2z7fH9+jSBJCeKMA5NFrjc9XEsfOW/OLLSRErp+RK1os9QJGIQJrmVQtHX2jRVp9ALmV/PKkF85Mj0ay/okVrAMDu0oEyQpmnB4aqY2sv+tj+lBYnhmoc3Ntk+SQsnWmam5d/XpV1yTd252cEydA1NlkjRD1wSplHkIa6rMS3NjeFFKox/y7GztrucKXL4MX/ta/uvSJTh37gOL+2cFFYpRfGrZqszRB00O9wrRrLte2l6EpevsqbkIoXFxuc/h6fJdxe1+91+3JVYLFt+fb6ALjbJtcHG5xSCImam56Bocmx3DNXXO3upwZGcFXUA/TBhEuV/eCxOe2lVlrGhTL1gsdQMcU+fP313mudn66PvbOImFScbTu2qjSQMebP9btyv+8ckFdlRcZuruyP8+U3NYaPujZzpWtOgFMSevNUev3TdRwjJ8nt5VJQOO7q4iJczd/h70evCXf/m+mF+5snkgly7BoUMf+P3+LKCEXfGpZSsyRz/I5HCvEM3h6fpoDEkmqTgmYrhy3Hjwd7+JY+P9y47BhaUuN9o+WSrZVS/Q6ISUbAPH1Oj4ubvl4FTuFvGjlIXWgMVOQMePkBLqJZNBqI8OgVteyFo/pOaaaHDHTmJuglFSzvzagP0TYiTu94tvr4/7ZttnR8UlzTKurw3YO1Eik5LXLq1yeGcFQxP8YL7JucUOR3ZWeWxHmbV+yFsLbequyXjJpuIYzI4X+OKh/LCXLINTp94X8jfegCR5/+b1Onz5y/ATPwE//uOwZ88Heq8/SyhhV3xq2YryrR9kcrhfbZKu36ZesCjZBi0vohfEDMIECdQLFqYhNk0cq72QE9ea7Ky6zNTcUcnbjhdzaaXPUieg78fousb5pR4VO4/nN72QQZQwVXa40uhTc028KGWx5VEr2lQck6YX5s03inn8Woh8gpmpFRAiP+Dd+P3NTcB3L63S8WPCOOXqap+VbshLc2MYunbP+Pa6B73tx6z2AqZKNqv9CIFktRsQJilBIpkqOVxc7tP2IiaLFm0vys8kLIO2H9MYhMSpZLEtKbYbDL7zHyl+6y/g61+H1dX3b6hp8MoruZD/xE/Aiy+Crt8xLsX7KGFXbDkfV3Glj1K+9X62xXXuNjnc6+BNiDzGvNILeXexy86qM0p+OXuzzUzdJUwykhQ0IVntRXhxwmLbpzUocbPt8+yeGn81v4aGoOyaLPdCBoOQomUwUbKpuiZJlpFmUHYMwiSj4prUXJNBECMA08zDNpmUTJVtGv2QsaLFeMnGNdczXoubvr8zC20ur/SJk4w4zTB0jaWuz+kbLV49OHlX+9/6Sr3tR0wUbTpezM12wO66S6MfcGG5S5JkzE0WWer6OKZOkkHRySeiesFmsd0hHATsvXCaL82fZP+pNxi/dG7zg92z530h/7Efo20X33/fbna3VcGuHwZK2BVbylZWTHwQd8scnV/LnRwXl3qjQlbrInC3sd1uW1zs+Jy42qIfRCx1Al4+MH5Hsa31yeHySo9T11oMogxNg3rBpNEP8eKUo7uqVF2Lb11cYbrs5DXOOz7dIOKxqUperVET9MOENy43iNIMP0qxDJ39EwWWehFpkhLGKS0/wtQF/+nRGaoFE8vQ6Poxlq6xq+byXmNAN4ixDYGha0gJz87mGaqXV3pkklElxl6QWyGjNOW9lT6plEwUHUqOSZxkpJlEIu5p2Vzf4YwXbaI0Y6bmcmmlx2LHZxAlmJpOpkn8KOPMzQ7P7K5RsDS8IGZm7SZPfPsHPPmNr/H4+RNYgT+6bmLZLB17id1/92dyMX/88dGB6Mf5M/VB+DRUhVTCrvhI3OuH+2Hj3h/mQ7MxRHJ+qcu7t7o4Vp7YMlGyGUQJjqHT9qLR6+5nW2x7EX9+bglL13h8ZwU/Svjjkwv87ed2j8R9Y3Ppdxe7WLqG7mostQN0XbCz6jA3UeTY7Bgnr63R9SImizZF26DtRwRhvpK3DZ3VXoRrCi43BhRMgzDNKFo6jqFzZLrCtbUeUZZh6zrVgsFKLyBKU77w2CTzjQFRmjG/5uFFCR0/otmLcG2DgxPl/BA1SvixJ/JyALomuNX2eO1ygzDOmJsocGG5T5Zm9OsZtiHIJKRZRpJl93x/1sNfMzWX09db9MOELMs4t9hF1wQHJssYusHVNZ/+aoPZb3+dL7x3grmTrzO+cnPze73/EKuv/Agrr3yJhSefo29Y/Fdf2H/HPbeqCudW8KhNMvdCCbviQ3O/H+7b4969IB5lPAL3FeprawO+cW6JNIOxgkmSypEo30/c5ybgxLUmkxWbqw2Pbhiz1s+LWrUGESXHZKUbUnKMO8IuG22L37/SxDZ0irbJjVaAa+pkUvJv3rjK7rqDRCCQ7B0rsdD2WO6EWIaGJgQlR2ey5OBaOpkU9IKY7883ERos9wMmscky6IYxfpRybO8Ypi5Y6Yb0g9x7TiZJUok0coHdWXWxDJ3xsslKJ2S5m5c8eHp3jbmJIt84t8S15oBMSoIoJROCnh/z2nurFGydXbUCzUE0Snz65oUVSpbO7nqRW+2ANJVICVebfWqOyVjJJkoy/Dil7UV3LYew1AlIUolr6TB0GGqaQDd0ZoomOy6fZf+J1/m5k69zaP4sRvZ+LZagXOX6c6+y8OIXeO/Y5ykd2Idt6IRJSsePODJVuut7/Ci1wnuUJpn7oYRd8aG53w/3xrj3xholOyrOfb3dbS/iG+eWMYRgrGQRJhnXmx6zY4UHfmjmGwP6QUI/iPHilLpr0vUTjl9d48BUhX3jRRqDkF6YkKSSOM3ohwmagCDO0HXBTM1FiDyV3dQ1TF3QDRKurPYI4pSDkyVAcvpGi9YgZrHj45r6yD7d8hOKVowXxYwVTd5aaBPEKXPjRYQmuNn2aXohrUFE0TYwdQ0hBP04Y2fVpmgZFGydtX7ESten40cc3V2jXswnOMvQEGmeVfonp2/y86/syydW16Ltx4RpgmNolItWLtaNAVcbA1xL58tHpoF8Up0sOVxb8zB0jaKjM786QAJxkjGIU+bGijy+szx65ht3KAutAecWuyy1A8ZKNlXXoNRq8NzpN/jbx1/j4Jk3Kffao/clFRpv7z3C5WOfZ/WVL2G+9CI/8+I+pgBvWN+m40eYusbueuGuBc7gk2+Ft3Fiu7za5/Ed5U1ffxSrQiphV3xo7reCemZPbRT3vtnyEOTZkJomeHexh6GDron3rW1D5hsD0ixjrOQghMAZJgQ1ByGGfv/kk64fk2QSTWiUbZ00y4VKIkgzSZRmjBdtLEPjjcurPD5dQdcE5xe7RGnGl49MEyUZS92Qiq1TcfPvbRAmeGGCa+m4Q1EZLztcbXgYhmC8mMfUBYJ6wQSRx7h7YUrNNXl6ps6llR4ZGT0/xjF0yo5BwTS41fKYKDsImeFFGR0/wY8SKgWLqmsSphnv3OrwxHSZIM4oOyYlxyRKUm40B5xZaONaOhNli9nxAsevNgliSZhkCA1udQKmyzZCCKIk4/T1NlXXIExSlrs+t9o+QZjbNquuhSkEOnlYe6Jo88blVU5db7LQDLANjUY/oOknjOsZn5s/zfjr3+SlSyeYu/XepvdidWwHJw6/yKnHP8frc88iyxXKjsGXj0zTi3LLYq1gjcJJHyTkdj+76Q+b23entqHx9s02R3fXP5At9JNCCbviQ3O/FdTGuPdyN6Ds5Knipp7X/wjilNPX23dkFHaHNcDDJMUxDQZhwmovYKkb8NywuuC9PvgV18xrngMF26TRC2gH+eGiNqxmuHe8yM2Wx3TVpeSYnF/qUS3krpFekAw/pJITV1uMlQbsHFoRvTjFNnW+fXEZgOrQVjhbL4DMvet5rXSNJJP811+c42pjQBCnnF/qMohien6ErmmESR5eGS/ZhImk0Q9Y6UW5QJcsKrbBjZZP4OSe9oKh8+aVJi/sq2MNG3UINMZKNmcW2hQsnSuNPnEsySRoIsOPIMkyDARSZkySV20cK1p4UUo/irjW9NA1yIbPrmjnE1fBNHBMnT86fZOiZfDi3jpeFNM4cY5nz/0VL10+zmPvnsAKg9GzjyybS088z5sHX+Dru59meeccjpXH94XQqBsaIGgOImbq7mgn8GHS+7eqFd5H4fbd6f6JEm8ttLmy2ufo7trHOsl8GJSwKz406yuofpDQHIQ0vRhdy+t2w2Zr4Du3OtQLxmgFLgSMFa27ppsnqeR6c4AXJSx2QpIkpWjnfULvd0A1N1HkxDUTS8/F07N0LF1jrGgxUXJGjpCml6f8H56u0A9TKk7+43+tOeD0jRZL3YCCY6DrgqsND02TaMByN6ATxCDB1AWGoWMZGuNlBy9MmK66oySbqmtyZbXPdy83KNsGc5MlLi/nLpQ9dZeqa2HogiSNafYjDB0GYUzHj5FZxiBK6QU6u/eNUS2YnF/ucqvlU3Et4kTSDSKSNOP8rS7H9taJE8nNtkcQZ1QcCyGgG0TYpuBAuYypCf7i/DIauUiVHJMkSfGzjCiRPD5VphsmJFKiG9APIkS7zZdWz3P4d97gZ068xlhjcdPznt+5n9NPfI4zT73EubmjmMUCUqasdUPSJI/3g6A6bKNnGZLlXsjnD048sDvVvQ7PP6k6L7fvTsuOydFdVS4sdx/pqpBK2BUfmlohrxr4jXPLefikYDFWtO8oGjU3UeS7F1eYKNlIqeWJK3HKoR3lOz7g66n5s2NFTt1o4ccJjqnz0tw4rqVzZbXPfKPPsdmxO7bttYLFV47s4BvnltB1jefqdV7eP8HVRp+ndtWQUvLWjVa+kq6k+HHKQsvHD1NW+z7X1jxMXWAaOmGaYSaCWsHkRtNjtR/iDqsNGpqg48dUXCg6BoemysOJLSIYtlw7db1FnEoEIJCsdEMA0jQPQQkhaA5ilro+jX7EWMEiBTpehB9nOIYgA66u9ZmMHPZNFFnph+wYxNgGxGlGsx8yU3VYbAf0w4SZuktzELPWC3HtPOs0zgTvrfQo2AYS8KOU3TWXjh9SK5qAhqnluwxdZhTffou/dvUkn7twnEPz76BvOPTslaqcfOx5zj/zKqsvf5E3AwvX1LEtgzhKMYXA1nX2TZTo+PFwtS7QNQ1bF4wXbQqmNnTypKMSA7d3SoI7q2h+0o6Tu+1ODV3j2OzYQ9eI/2GyZY02Pgyq0cann9sbF0BeiS9MUsqOOfrALnUC1vohSSYp2caw3sndmyfcrZUbwIWlLrahESWSJ2Yq92yIcPtqb6xocW1tMOpeVDB1vnVxlSBK0TW4sNwjzSSGgLafV3Gcrbus9mP6YYwuQGgCx8gTf2xDYJsGriV4Zs8YO6sO/SDNQx+aoO3HHNtTp+XFzK/2OL/c42bLRxNgG1puvzQN9GF4SCKI04wkzfDDhCAFQwfX0HFsHQ3BnrqLqQsOTpVZ7gZYugYCdlYd1gYxjW6IbuSNMm62fFIJjqEhBYRxxlTZxrF0On7MUzNVdE0DJMXGCvtOvsaeH7zGE+/8FZVBZ/QcU03n5uPPsPC5v8b3Dj5P4+CTXG76SCR7x4q0vIjWIF+tFi2DomPgRxm7ai5tL+Tq2gDXMqg4BrWCRSozBmHK4ekKR3dVCeJs1KlqvVrlehXN9eYgG3+mbv9Z+Th95Btj7Bvj+5/UZKMabSh+qNztADVJM05fb/HS/olR+vzllbyl2q6ay86qc9e2cOts3G6vTxoXlrpkEhZaPlEqKTn5am5jKOf2D/q+ibxv5tXGgKVOwJMzNaYqDq9fXsUPE/phzHIvREPQChJ0cjeMJgRX1jxc0xiGSyCNJY4hSaVECB1DAz+UvLfc5+iuGlHiEQWS5rCOy+XlHmXbpOGFrPRCSpaOn6R0wgQviEEKBnGMzARRmiIzME2dFJBAkkKiZcQJFCydpW7ArlqBhZZHRi7o/TDjSmPAIMxtmh0/r1tedk3iLMMxDHaUba6sDeiFCbqucaBo8NS7P2D2+HfZd/x1pq9f2vTsG+M7ufTsq8w//3m+t/cZ/GIJQwjWBiHR8oBdYy4HJvMVeQbMTZRIsozVXkgcZ9SLJnvGCugamIZGvWBTsHW8MGWl77Oj4vDM7rzI2GKnS3XY4GKq4oyE/J1bbV7YO75pXLc7Tj5uH/knGd9/GJSwKz4S61vUNJPcavv0w5TFtsd42RpZHa83B5RtnYqTe55PXGvy7Gz9nh/CdYG+1fZZ7ATMjRc39P4UHJzKheXcYgd32FhirGhxZbW/qRbL188uUi9ZmJrG+eUehoCxosNfzTcoOyaWodP2Y2xdw9EFXizRM0mW5ZmemgBTEwgh0XVBL0iQSDIpMXSLgqWTyozjV9fQhIZpCLp+hKblE5BjhvTDhDSV9NMYXdPw4xTb1HAtnV4YDVfqeTnxJExJAQ2wdNCMYRjDMPDCBCnANQ36UULHj0EIBmGCoQviVKILQZpKhAEVx6LsGEgJR7u3ePzMm7x48TgH3z2BFb1/6Bk7Lu8deZ6rz3+B6Ee/THfvAa6tDbB0jUI/YrXp4UUxU2WHqSmmAahRAAAgAElEQVSbREqSLOPLR3aMbIlnFtq8eWWNnh+zd8zNn5uhYWqCsmNg6RplxyDJMr5wcGLkIumH+a5upR/CUpd+mFC0dLwofaCt8ZPwkX8a67grYVd8KDaK75XVPkkm2VF2sHRGK5peEHOrndcJsQ2dbpDwzO76aFt9t8QXIaDj50Kyp17AMXTm1/ostDwKps6+idw7vNQNyFKJMPNV/TfOLTM3XhzVMP+PZ25xpdGn4ppMlW3O3urihyklxyBOM240fTIhiVKJF0TomkDTBKam0/BTBBAmGYWCyUTBIk4lN9YG2KaOkJJ+kGLpAj+CN6+s8cVDkwzCBMswiNMAL0yHIRedIEkJ44SKayKQpJmg5UfoQgNdIrOMUIIpclEXGugCslhiWBqGBgVbwxCCsmsQZxnX2z4TRYvZsSKNfkjDD9lZcak4Omavw6sX3ub58z9gx5vfZqyxtOm9u7brAG898RKNL/wIa8++yFP7d7DWD9E1QdE02DtR4lbLoxvETFccnt69g7GiDeSho1RmI3GebwyQEl7eP84gTLnV8Wl5IZYuEJpgrR9RLRhUdJOCpdPoRyx2Avphylo/oNkXDOKEmmtScUy6w+qUq72AybJzT1vjo5Ss9CijhF3xgdm4Dd5TL3Cz5bPS8nBMncmSzZO7qsjRCj6h4piESUbJzh0xGz+At2+pzyy06YUJ48Xcez1VcSg5BkGcUjB1dI185S7BMDSKjjFss5bRHISkmeRbF5ZZ7gVUXYObnYDzS13MoQd+uZNPHs6gh+/mYYYwgwxJxdLpRSlSSsZLFkXLpBfGFG0TTcKK4eMaOnmivWSmWkAIyc3h5FawTAxd0OiFVAoGXT+m7ydEaYpjGyQytxYGYR56qRQNZJILucjyEIwQYBv5katlaDimTiolBctEaJI0g3rBBplPgLvrBY7sKFJ6+zTV/+8vmT3+GvuvnNt06OlV6jRf/SLff+x5/mTyKZZLY+yqu8yOFSg7JhJJrWCy0PKQUo6KkO2bKFK2DSxD42pjgB+nuKaGbeTlGtpetCkUkmaSLz+xgyurfW62feoFGzE8R9g/WaLRD0f5A2XHxAt13ryyxrN76sPM0zzn4MjOKqaRf//3Cnt80slKnxaUsCseWC98Yzr5RMkefagsQ+eJ6TKWoXN4ukIviDm/2GFtEDFWGK7CEIwXXS4sdVkbRNRcc3TNjVvqJJNUnbza4uHp/EPqmjoFS2ei5HBpuc/ZW20mSzaTldxmeOJai16Q0BpErPVD+mFKGGc0o4RBEBPGGTITVIs2XhTyt05+jX/6td/kn/yd/5Hjh16k5EAY582Tx1ybyNLIZL461g1BexDimPkkZhp5qCBMUt5d6uDoOlNFi44f0w9T0izLfeJhBBLCJM+4j9MEXQOEQACZgDhJh8lTYGl5n1Ip85h6zXXyMAu5Nz1KMzqDBNeImKm5WCuLvHL6Df7m0ll2nXwDs90avY+ZbrB49EXmn/s8zt/4Kca/+ArXWj5/+t0r1FyLJ+ouhtAI09zqudTx+c+e28OZhTaXVvoIJE/OVAA4v9jl8kqPsm1RtHQGYUrTj3AtjSMz1TtCIW++t8a+iSJJChVHH9Wlv7TSY7UbEiSStUGMn2RMVRyO7KqSIekGCSVbZ+94eVT6+H5uk08yWenThBL2zzj3O4yCzfaz80s9BmE8as9WsnWiJE/Ph9zju3c8X6EVbINOEDNZslloe2iAqTHypHtRuqluy3qp2374/orTj1Omqy6XlnqMF02enqmy2gs4u9DmxbkxKo5BcyA4d6tLJiW7ai6rfcFSO8Cx8rIAcZaLd8UxmfQ6lEOPX/mz/52f/6X/k4HpUrRMIpmh66BlAtvUiRKJa2iEqWTfRIFdNZdvX1xlqeNjmBpFUyMVIIVgqROgaRpBktLzYqIMDC0ffwKQgatpTJYsgjjBj/MiW0Lkr9M1gZZKDFMjzaAXRFSLJntqRcI4xev1efrSKV688AOePPsms4vzm96/taldXH72Vfy//mVWP/d5+laB2bECbsli72SZpp8wO16k7BjYhoEfpzT7EbdaHlPVvKLlFw9NbcoEbnsRZ260c7dOnLDUiWn7EeMlm7VBdEebwLyyZsATOyuU7HwF7pg6aSa5uNQFoTFbd9lZcwiGnaeklDS9mOf3vi/IK92ARj+8b8/YT+th5seNEvbPOPc7jFr/+/q/jRct+sP4+eHpPDb63curCKBo6YwVbTQNfuKp6VGZ3K+dXSIepvRXhk6ItUFIx082lcudqbmcWWhRckyklKOVmEDgWjoLbZ8gTml6eYu4OJGESR7PfnZPnbcXO3TClJJtUHJyUcmEIJMZaZqRaYJ/+/m/w5fPvcaRW5f45b/41/wv/8l/iyYkk46FH2ZkGewfL5Ih6fgx40WTTEJrEFF1TbwwIZV5fD6IExJDy8sIaLlnXZKv0rMs/10DNJEfiBbs3Gmji5R+lBDFeX11DIk9tAZ6UZ7wNbd6nZ/zLvP4me8xdfJNzCgcvV+h43Lr2Zc5+9RLfGfuGG87U8xNlpgdK7LHLeBoYlMZhq4fs3+yyNXGgDDJaPQjkPmz21l17uooqRUs5iZL6JrGqRstTE3jwGSRybLD5dU+q73c278ecjM0QcHWR+0CLyz1AFhoeQih0fEjslSiaXl3plttn7GiTSfIPe/rJZfXLZAPcrt8Gg8zP26UsH/GedBh1MavzdRczi/FrA1Cun7ElUaPesFivGjS9GI6QbypYXKtYDFddXhiZ4V+mHBhqYtj6kwUbfxo6GUm9zLrmmB3vTAS/4prMl0t8R9OLTBRspkoOYRJyolrLcq2ztogZM9YgYmSzVQpr9C4XgxsvGiz3A8QUlJ1DGxDozmI0HXBr/7sP+G3fuMX+anX/gNff/JL3Dj6ImEq6YYh0xWbbhhjGQaOpbOr5tILEg7tKGMaOh0vZq0fEmX5JKAL6Ad5LD5OJHGWf6BMHWLAkJBJ8KOMtX4EpPhRHk/WtVz0hRCUgy6fe+c0r753klfeO8HOzuqm92Nh32G+f/B5sq/8OPHLr5BZNievNTl3q4MQMIhi5tcGeHE+1m6QcnBYqEoIiBLJUifg0kqfME4xDZ3ddYd9Y6V79mWdqeWVMf/64SmcoQMpiFP2T5Q4t9jB1AUVJ8/27QQx9YI5Ovg8tCMvhXyj6VMrmBzeUaHtx3hhRi/w6IUW4yWLrxyZ5tragHdutVloBkxX8+qYH7aZtuJOlLB/xrg9ni4E9z2M2vi1smOyd+jGOL/co+SYHN1dGjklvCjh2tqAa2t5E4qNZW5bXoRj6jhmfiC6u+5SL1g0+vnqsuKafOGxydFKf74x4M/fXWYQpWiDmCQLaQ5iGr2QtUHAUzN1ZmouAMu9AC9KmCxbLLY9ml5MksjcXWPmFRPrBQvH1vEmn+DPfvq/5Gf+9F/xy7//v/JrL/6/pIUCmhQ0BwG9MKPqZGhCcKrXxtQFtqkRxnkxMUPPE43STCJl7m8Pk3wlL8nDL5rMw066oeGFGZoOaZYSRimxhJIuOXzzAl+cP8Ur753g6ZsX0OX7NdCbxSrHD73AlWc/T+Vv/jSnYwfbgLJj01zxubC4wlLXJxzuhLp+gh9m2LrGtUaf6Q1Ntrt+PNwhxYRJiqaBoUnaXsyfvX2L52drTJSdO+Laedbw6jBrOC8uFsQpT85UOH0j31lFKZRsjWd219A1QTgsf5y/rkqcZAigWrCpFRJWeyFr/QjbzEb3SzPJkzM1BB1sQ+fCUo/D02XKjqncLg+BEvbPEBvj6YYmeOdWh5ttn6Kp88TO6qYswPXDqNsPqtZDLW/dyHt9rh+SQZ6g9L33GlRci+qwqNZyL+S1Syu0/JgszQ8EXVvjwESFfpCQkfHMnulNh7XrY9TIY+8/uLrGdNWh6ycMooTlbjiM1Qv2jBW5NMwglRIsXafiSMqOQdXNQymWLkg0DcfQKdkmJ/7+P+TZE99k7tZ7/Ojv/gv++Od/mV4Y0Q0S0BIGQQRCkGUZe8YKGJpGM/BpeyGZzMMOUZrlq/REkslcVHUgBcIsX61raYap5+3sZvpNnjz7Jn9t/iSvzp+mGvRHzy3WdN7a+zTHD7/Imwdf4MLOAwihoeuClxKbkpOXEl7q+txYG7DU82n5EULCaiaxDZc0k9xoDSg6eRmG+caAU9ebJJnk0kqPpU5AKvN0eFPXqRZMen7MjaZHnMk7iqzVChbPzta43vQ2HXDqmsCxDI7uqm1676WUBHG6aYK41fZZ7vgEcULB0pmu2lRdnR1Vl9qw/MJ6qK/smMRpHptfD/Upt8tHRwn7NuFu6fS31+JYj6enmeSthTb9IMGLUrwgQdJhf1JipuZuOoy610HV3Wxn840BmYSaa42KflWcjGtrAxaaHromRod3Z2/22D9eYHaiyB+cWGBn1dnU3LlgGWiaYH7Vw9A0Li710BCUXJMj0zZ+JDlxvT1qGDGIE8Iko1Y02WE6XF3rs9DyMXSBbWhkad7EYn61j76jzD/7u/89v/7P/xt++pu/z2vPfok3CntJs9ydIiyNBEHJ1EZlf1t+TNEy8KOULIMgzEDIvB57JonIMHTQstzl4sQhL988y49cy0Ms+1eubXq/bo7t5M2Dz/O9A8/zF9NPEhTyCWSy5DLu5ofSgzBmfmVAyTWouCaLLZ81L2ZtECEzKLo6jq6z1IvYU3dxTMELe+t8+8IKCy2fS8s9gjRhrZ9QG6b3L3Z9klQyVcn7ld5o+ZQci6+dXRqdjaxzdHeNNJN3pNM/NlX6QJbDmZqLY+Sr7m4QU7INpsZLjJXye2wMA+ax+bx0RD+QeFHCSi+g6pr3PUxV3B0l7NuA250tq72Q71xY2VSLY6MT5fSNFsudkLJjUi9otP0YU8+zBW/fkt/roOputrPm8JAxyTKurfl4UUrbi2kNQoqOiUaeYGTpgkGUcHGlx5W1AU/tqo4cM6evt3l+b51eENMPE7pBNPJaGxqIWFCyDfw45sB4EYlgqevTD1KiRBIZGYMwI4mh7UfMVF0kYmhJTDA1wdmFNvbUAX73iz/HL3zr9/jF3/5VvvPVf0HfyFPyDV2nZOp5uzhgse2x2ovyRhzDhhiSvCBXEKYIPf/zocZ1fvT6aV597wTHrp7FSd4PI/iWy8kDz/Ltfc/yxsEXWahPE2f5DqZo62hRQpRk3OwMKIdGPkEWLBASmUKzF7LSDwmiJC/eRUYYpWCArufOn8lygTfeW2OlF5BluVVyEGTILKPpRdREHvqIkoSLy30cU+fxnWX21F0ag5BT11vsnyxtWhCs//1Gy6MfJJSGJYU3JhKt95rdWXVHPxt5Z6s8HLRnrLBpYlgv+LVxcVB2TA5PV7iy2icjI0zyZDHb0Ef/95MuCPZpQgn7NuB2Z0vLywV2oe3R8qKRcyFKUyZKNtebHqVhAkqUpKPsv0sr/TsaYNzOxp3Belw1GK7Wnp2tcX5xWC/FMSnaBtdbPsvdkMemSjS9mDCRRHGaC5ShM160eOdmh64XsbNayEv6rg1wDJ2xgsXBqRLX1/IkmZJjkiWSa00PIWC66iLIe3VGSUI3SCk7Bh0/IkzyCoOmLkglWIZGcxASC0GYSExd8Buf/3t86dwb7F25xj96/Xf51S/9A0rDlm95Od2UJMtXluMlCz/KiNJ8x6EJSc3r88rVU3zu4nFefu8kO3uNTc/q/M6DvDb3HCefeJErjx0l0U0GYZzbIwchMgXLyksHDMKEaBhm98KUoqMzCGOCOGWqLKm7JjKTeHGGOWyjpw2/d5nkE0vFNugFCaauITVIsjwxyh6umiURWZahCQijlNkxF13XcitjMW/d941zyzy9qzpyplxZ7TNRslns5JNn0soLnq1n7ErJsPxDadMiYl2A72dNvH1xoGuCXXV39H82FgRTh6kfDiXs24DbnS39MM07BC11eWpXjYpjEsQJjX6UN0ROMiw9F/UwSZmu5b0mBfev9Hk3z/vGSndtL+KtGx2SNEMCUZyhkce+L6/2We7ltcSzTGIYufd7pZ+HUvpRwm+/eZVje2rcaPlIATJL6XgpK72QsaLFWj+ikaQICbWixdmbHY7uqrFvvMg7QYJl5GGTnh8htFwsolQyXXWpOilemKBrGpqe4lgGmXT553//n/LPfv0f83Pf/n2+dvjzXJh9nDiRpGneQalkGSRS0vYj+v2IY0sXeOnSCV597wRPLFzcdOjZKNT43v5jvHbgOf7q4PP0qmMYmkbB1PHilJqZV4cM45SqaxGnKQXToBtEIEDP3wTCRJIFCRpgmAay47PcDUizfJVu6JBJgWHmlRyLpkGtYLJ7rMj5pS6tXjSq4mgAgZSUHZM0zfJs21RSsDTKtolr5O3xDk1ro45SR3ZWRs6UfpDw708uMFWy83aCCDpxjARutn0O7ygzN14c2VZvF+D7WRPvJ/xdv61KBzwEWyLsQoifBH6d/GfzX0kpf3Urrrud2crSo7fHu0u2zruLXSoFa2RVE0JjpuZSHd7r3cUuEyWb2fEiuhC0/WiUdXivcd6eebr++5mF9qhUryYkEyWH+WFlwSRL6YUxUZKvFDNyh4Uh8hrlaSox9Dy1/tJKDyklu+our19q5GJYsNCFoNGPyWSGaxqYhiCM02Hd8gEly2CtH6IJ8IfuDd3Q2FGx6A+rOWapxNJ1irbOnrEqSZqx0PI5MX2IP/rSz/Kz3/p3/Mof/Rq/8Iv/B26hiCag7JqMt5d4+uz3efHiD3j56ltUg8Ho2cS6wak9T/G9g8/znbnneHtiL5I8MUrXdRyh4Vg6hiYoajozdTcvEmZpuLrGtaZP04vJsowozb3vOhCRr8I1IE4SQg1sK++Rmk9IGRpAlnv8NSnQ0Li62udaY0A/jCkM+6oGaUYmYUfZYrUfMWbrmIZGmkourfQp2QbtIMbQNVa7AZMVe5MzpTkI8aM0Tzoy8jIHrU6EY+TPcr6R90xdT1qDDyfA9xJ+VTrg4XhoYRdC6MBvAF8BFoAfCCH+REp57mGvvV3Z6tKjt29p6wWLZj/kqV3VTVa1QztKtP2YA1MlVnoBqZT0gnxi2V1372gmfPs481ZvyehD3AtiLi53eetGh+f31pmbKGIaGvNrfQ7tKNMelrIdL9o0+xF+miJTiaVrBPH7K11dy8vnVhydWx2PpWGjaMvQ0BHDiSEPsxzcUSJOJWu9AD/OuLLSwzR02n5IEOfCXxx2RgqijD11l16Y0Bnk4ZR9k0W8MKXlRyRZhiY0fvun/gEvv/06+1eu8g+/9bu89/hzvHT5OM+e+z47b13d9Eyu1nfy+v7n+MHhF3jrwLNci0x0AdWCSVlAq5/3Xy3pknrJwtCg7cdUHZNBmDJTdfHThOV2SEZeM30919YkP3jVyEMomgDLECSZpBdkFEyYruWHrHGS0o9TXENn/2QpPxheG+T2TEMjiBI8oGBquKZOe5DH8C3DoOqY6LpgrRfxzmKXJ6YrFG2DFSEIkoxMypEzpelFTJbzZKK6a9HohLhWnsG6q+DkdlTYVApiKwRYlQ54OLZixf454LKU8gqAEOL/Af4WoIT9Hmx16dHbt7RjJYuvPDWdH4JtsKr5Ucpix2eiVOMLB/Nmws1BxOzY+x3iT11vjXYRGx0qAONFe5R5OlPLG2AstH2mK3md9bdutLnWHHBluceFxS77xot5mAFJpWBSzAw8My+N68cZhpbHsoUmiNOUKBVIqSGQ7Ky5SAEdLybL8kxJI9EYK9roQjAIYha7PnGaUXVtDE0jyzLCJMHSDXRNp+mHICSTZYfMAcOAd291qBcdLF0wUbJo9CO0Yol/+Qv/A//z//aP+C++9XuIb/3e6NkOLJcTB4/xvQPP89rcMS6Xd2DpGpIM1zIxstyh0vdjiraBa2sEUYauQc+PidIMKSVHdlSQIm+IsdII6Uf57mZjm25J/jyi96sqkEkwtVzqdU1Dk3nIbKxos9cxMDSNiZJNmGZcbXkYgG0ZRF6cW0B1gWVq+P08nGUbOkmaJxuVbJ3lXh4CMXXB49Nlzi/1OHm1yc5anmegaxqPTZU5s9BiEOaNVKTM0DVBxbUYLwmSNMudOhsyhh9WgFXpgIdjK4R9F3Bjw98XgJduf5EQ4qvAVwFmZ2e34LafXu6V7Xmj5Y2+fr/wzL3COBsnhTmveEfnl/m1AXPjpfcb804KEH0ureSe6vWyueu7iHWHCkAviHMny3IPU9fohzGCXHjHihbnF3vcbHus9UP21F0ur+Yld1v9iKmKTcXUSbM8vm7puZAPoty9gp6hizymXbbzMq9dPyFMU/wwG7aZE0SJ5J3FDjtLNsu9kDiFkmNRMHVaXoymQZTAQMvYWbHRI0HXj3NXhmFxebWPJgRLbY84leyuO4wXLCxT4+39z3Bl5xz7F+dZqU3xzRe+woVnXuVPC7OEQs9TrWSeVZqkKYae1zwfcyz8OCGIM4IkpexaZGk+NkgpWgYTZYuxsk3NNbm2NiAcHmCmmcjjL8OjDcvMRTkeJOgCbFNgaBpCQBzmWarVosl0xSVOM+oFEy/KGCtafO/KGgYwSFLsYchmumLRDVIsXaNiGURJXuugZJuUrLxI2+yYy5GZKqmUXGsMmKk63Op4RGnG/NqAl+bGaPRDju6u89aNFl6YkGSS6WreCvHwdJnxUl4DZqsFWJUO+Oh8bIenUsrfBH4T8tZ4H9d9H0XuFj9c7YUsDmPY9wvPfNAwzt1WPDurDv9/e28aK1ea3vf93rOfU3vV3blckt1sshd1T8+0ZzTWSIo0kiXEgmQbMuAsCAx/EPLBiIPAcGIPEGeBgAQCggDJh1iABTiAkMCILEixJVgzsqPFntFoZtTT08v0QrK5Xd61qm4tp87+5sN7qvqSzbXvbV6y+v0BBFhkLe+p5TnPed7/838Wa8pfexipMolrGRjAtb3wNtvcwLFmCpVzC2JmB/DMYpXtUcz3r++rMkcpSwzjjF6YsB9m+I7FYs1HIrEMg1GaUXEtOhXVSLM3TsoO1AQsygxYKrliXtA0bYZxVipnDCaJCvxN38K3TN7fHgMSxwCZS/YnGUVekJXVHaucLRpnGQWCcZTRrLh0AodJnjOKMiZZxt44JSsKokGOgeC/+hv/iFNhl7ee/wK5VCUNc5JipMpH3ii7dOME3Ip6nawo8B0Lx0bVyrOchbrP2U6llGFmBK5NbxyXJamYJM2RQjlaupagahoMo5wkhVMtB980GUQpQsiZBYBjqfLLzW7IiWaFl082KWTBJCn45pUuoyhDmAYiKzAsE8eAfphS822qno0hBFujmKKQFEWB46iJUZ8/3SJKc3aGauxemhesNgK++vwypqHKQNPvkWUKOtURb98a4DkWZ9oBeSH5cHfETz+/TFZIBpOUK7tjzi6gs+tj5CgC+03g1IHbJ8t/09yDu9UPr+yNbsumD5Znzi7wwA3Mu5VxlJb4o8eOItXWvVT3ZoMwQCkmRnE2s81da6qa6SBKud4dE8YZVdcCBIZh8JPPLfHmzT7fu95nue6xU2qswzjDtU1u9kIagUNc+ng7ZWPSzmhEzbVY71S4tDmiGdikuSTOlH1WxRPIQhLnBa5lkJXj4wxDsNIIqLomN/sTJokaAycMwSTLEYaaA5qjNh/jNOfWfohhCBYCdZIQQjCIs3JodE6WS4oioeqaDMKUQkK3vsrlzgnsiRonF8Y57cDGdyzyXJIWBbYh8RxoOhaea7I7TkizgoprEWUQpilZYSotuYSluotvKR39tz/cwzQFgWfTH8fKg710QQwcA9OEvICzixWu7Y0ZxBmeAyYCDEHd87AMwbW9EReWq2rI9+6YtBzm0RvH6upGSiapxBDw3FKNSZqTpjlVx2IwiYmygqCQrDVczixUWai63OyFZIUqsXzprJp2JKWkV3akvnpaJQp/ca3HxZXGTEZb9WzaVZc/u7LHjzyEgZfm8XAUgf3PgfNCiLOogP63gP/4CJ53brl7Nu3Psukp0/LMwcEGd25gTu93NxXCndl9lsuZ8dYoynAsQZwVrHcqbPQnJFnOzihmGKkJQE3fxlqscmVnzKlWhaW6y3pHqSVcy6A/jqnYai5nbxQzTnJcS7DarNDwLC4NIjYHBQtVh4Wqh2kYBLbBQtXhrTxnf5LiOxY1z1R2AIYglfDiWoON/QmmgQoerrIGQChBpmMLxnFKkufkOdiWKlO4phpIkeaoOrBVNkTZJluDiGGUqcqHVOZYYZLh2WI2a3Ra749ziSML8qLAsR1kKhknOVGckktJxbXJpCoPdSouu8MJe6OIAkG74nCuE7A1TNgdxvRCSXecstbw6PgOcV7wwqrHNy/vYgrVDZtkuepgFYJBnPKlTof1TsCbN5S3vWsZLNVcJSHNJAtVh81BRJrnpJmkWXHphQm+bVHIDM8x8S21iV5xbUzDYKOYsFxzaQYWFddmpe7x8skmrYpNzbNZa3k4ptqInX6v7rYJOpikLNbcmbwR4Ie39skLtOb8CeLQgV1KmQkh/i7wr1EJ029IKd869MrmnLvVDw+WZ4ZRyuWdEZd2RzyzWOXcQhUhxG0bmA9SIdy5SbtU93iJJrujmFGSMdzPaFZUll73bS7vRFzdDYmzgmGc4tsWP31xicC2QMCFlY/kkL1QZfj7k5SdYTzrxswKySBMMIVEGoKaayILyfdvdEEaeLbBm4UklyAkRJnaXLSEQWEqqaZE8sqpJte7IZO4oBcm9CcJW4OIOFPZemBbSARFkZXe5gJDGKprMZWYAmShlCVhlBGXZRpbKMWJkMqdMc0K6p5DL0wQQjX8CCCVauzRrf0Y2xTEaVYOxBDUXAvftbjWDRFAzbWwzI88yt/dGhOmKb5lYAmTQirFysmmT7Oi/FKqrsUwSgBBM7AJk5xCFoBknGQEtslXX1hmc191kW6V/Qe2Jan7dik9hDCe0PCVYZbvmMRpzpWdEafbFU40PZ/UCeUAACAASURBVG4NQiZxTlYUdMcpruPQChzWOwELVWdWapleRZqGuO8m6N3KiN0woa01508UxlE8iZTy96SUz0kpn5FS/upRPOdnjbMLFcIkI0wyBpOEN270GMYZixUXA8G7m0OGkfIiL6ScqRCmj5m2aR9kMEk/NhRhsabGlqlBBwmDMKUfxlzeGVJIuNodsx/GSAlhnPH7b95CIumOYsIkm73m9mBCPbC5tR/jWwZN38UvM0VhCDYH8Sxw9yYp4zhnkqV0xwlpkWOI0g0xKxhHOYMoZRKnGELw1saA1692udWfUCC51Q8ZlRm6W7oHDqKEOM1IciUZXKq7qpxhGNgGCMPAMlUdWZY7OqWtC6LM2JEwiHKyfLpBC3mWk+U5FBLTUnX6fpgQJgVSgmUKRknGzV5EnuUIQ3mtJ3lBlqvh15YBJgb7Uc4oyVmoeizVXNJcUvcsbvYj1tselM+nBlerDtQLSzUMIRgnOVe7IXlRUPctqo6FAJq+TbPi4jsWCxWHJFd1+JW6jykEaQ6LDZ/zy1XOLFRwTZOab1H3bFzbxrPUJKfN/Yhvf9jlgI8XpiF4a6PPn1/tEmf5XUspB7+n0++CaRiz2ahTtOb8eDmSwK45PNPyjGMZM0vcV042Wap7alZn6Xo3nVLULH3LHcu47Qc4Lb/80bvbbO5H7Azj215nZxjzzsaAmmvx8skGQsCV3QmGIdgdJTyzWCNwbDoVl+WGkgX+uw/2OL9cJ85yvnN1jz//cI/dUUJ3nBClGRLYGcWAYLXuslixSbKCKMlAShxLbWZmGRRSkqSqWcixDfJyHmguIZOSbhhjAHthSneccmVnhBTKAHiKbRgUqEBkijLzT3Nc20QWYFtKSVIvSwrTZNo0KMfUqWweVICPczWg2rUFCBVofccksExMw8AyBYahbAnyHHaHKcMoVS37OYRJjhDKuiBKCgZxju+YuKYgL3L6k5i8gP2y3T/LC9JccqpToeHb9CcJeQELNZdJqlwjFyoOgzAmTAre3xoRZRmBY3CyHWAIdYKeyhQdy2QQJeyOEyxD8As/sspLaw2eXarxS6+e4D/90bN87nQbzxJ4lkmaF2R5wUYvZBzns++Ma5m8tt7hpbUGeXF3fcPB7+n0+/ezLyxjGNwW7O+VbGgeD9pS4Aliutn5vWs90qyYlUhu9sLbXO8OTik6yJ019X6Y8vW3b7HS8GkFarC06hSUWKaa/uNYBrZpMJhk3OiG+I7B1iiinlk0AxfPtrjRC7m8o6xx21WXOC1I84JhlCJlQYGg4lp4lmCUFuyNYoSQGMIAA5JUDfXMJVhl9+koypgkqoPSskDmqjYukpzQyEmKgjQrcGyDqlOqOoY5SV4QGAIDiRACxxa4loljqvmoWS4ZRAlSGozjjLQocEwTU0iSosAUAltIkgwMS+BbSkYpJWSZcmv0LIO6ZzGKczzTJBaQFcomIS8nJSFBCjDMcphFmpdTkwyqdnniMU3yNGc4yRhO1ECOK3vKe2V3mLBSc4h9pZCxUMcRZep1NgcxnmXzl59ZYJSkJGnB5d0xSZpTcS0+2BliCjjRCrg1iGj4PqsNj7rvsDWM8RyTSztDtR7P4kZvzPpChXGcsx+lrDQ8luoel3aGDCbpzC9mrenPauz3qpHfrYzY8G2tOX+C0IH9CeKjzMnAQJDmBTd7ISdaAduDaOZ6N20GulPrfrCmPoxU2eN0p8LeKGajH+I6FotVjyTPefPmPo5lUPccmoHFjf6EbphQzQxOtwL6k4Rr3TEUapjEWzcHfH69hSkMvn21i5QFtqnG4e2OYnphTFGoUkGU5SRpQSHVZiqoEohrG5iGqmOrcc4qgy5ytaFZoIJ7P0pwTNWKn+bKdMowBLYhiDJJJFQDkGWaOCZUXBvbMkgLSVaoKwLLKCiEKP1XJFXfnmWURTljdL0d4JqCjf0IIdTla5QqHxvbsggKdRWRJTkmyvAsLYdU2+VGq2dapRRdUvXUBrVlGfTHEZRXWlmhPNtXPEtdbRSw2vDY2J8o3xjHZpxmJFlOw7fpRTE1x+JMp4JX+t28crLGcsPjOx/2GCUZncDBc0zeurmPZxrqsqVcSZRkXNoe0QocDAFpLtkZxpxsBSxUPVYaHuudKt1RxM1eiG2qqVZJXvDu5oALK/XZYOmHRWvOnyx0KeYJYhqYzy1UibMCUFrq7UHEiZbPV59fIS8kbql4SLKCv7jWo1/+AA/W1KdyxpW6jxCCV0+3eWGlgUR1Yg4iNcrOtgRhnBOnBa+eahEmBXEmafgOAhgmOeeXaggh2BwoG4I4LZCF6tyMsoJm4JKXl/fdcULgqOzZcwziQpIXUvmleCY11+JsJ8AzDFUaMQ0C18Qw1GamUZZNkly1X2bllUGaFlQ9k7pn4tgmFddmqeayXA/IpTpJjKIU1xQEnkXgWVimgTAEmVROiIFlUPNtWhWXxapDzbXYGSWkZT3Is00aFQuznBu6vuCz1vJwTQvfMWce844laAQOTc+m4hpMEuWeWXVNVps+zyxWqHuOmmkqwLUEa82AwDZVY1WWs1x3eXapxmozoF1Vg0k6VZe6Z5GkBYs1j5PtCnFWUHWVde0wSvkrL6zw6qkW7aqLIQSDKGMcZ4RxyvYgYqMf4dvKufPc4vR7JFlreNzYGzOMUjpVlyjN+bAbcnaxSqes1Xu2NSv56Rr5043O2J8gph2pozjDNODSzhBKJ8NfeGXtgVYEBxULozin7lnEmQqQrqWCku9YGELQ8JWFbG+cYBqCswsV1tsBAmXDer0XUrVNbMNQvu0Vh6KQXO+OyQvJzihmb5JglLuQFcdBGBLDKLtShcAW4LoWaaECr2eYLDU8wiRjreXTC1U361SJMY4L8gwsA3XCyXIcQ5UobNNgEGfUPZu6b9PwLOq+xXvbIyigmyiZZt23afkOnmNQdSw29idEWcGJptKA39wP1YxV0+Bmb0J3HGMbBpat9iwEBss1h5Cc7jgnSpUH+STJqVomFcfGswW2YSrdt6mC/Msnm5xqBVzaGXFrP0IKwZmFKrap5JQLVY/dQYRlCFZbAXEuWay6OIbANA2+dLbD5mDCmzf3CTyH9XaAKQRRmis7iFRd40ylhsMo5Q/f2aIdOGRSslQLiPOclbrHte6Yl9YaM4/zjf6ExbrHfpRxouWT5xIhCqquxYurDYQQswHUjmmwO47pVJ0j82U5SsM7zcOhA/sTRN232RnGXOuO8WyTF1YbDCYJWSnruN/g6X6YMIxSXr/Wo111ERQMJgkSONUOygAvWKqpOurmYIJjGrx0osFa0+f97SFv3xogBPylsy3e37IxDaUXX236uLbJu5sDbvVDWoFNFGdsl/NKkaosEaUFjgl5Jqm4JpNEZYuOabBQc3lxrcGXz3V4e3PA7jBiLZNsDSNu9cKZd7pjqbJNXkhkAdKASZqBsFmuu7x6usVgkrIzjLjeS5WJViHLkg0UeUEoM6JM0B8rQ65OxSVwTcZJTuCaRJlkPI4AqHqW8nQvJLZlKgMuoTYZ2xWbUSIwEbh2hpQgHTWubzBJsAyTqmNwZqHKmU5AVkh+6sIStwYT/t/Xb6kOU5S0cbHqqoEjtkWWF0xSVZc2ygEnKw2PRqBOoJZh8P7WAM8xeW65immIj00u2uhPZhuuu+N49j7vDiOSLJ+pVFRwtznVDnjpRGPmwln3bU63AyzTIHAsLqzU2OhP2B0nNH3nyJqLjtrwTvNw6MD+BHF2ocJ3r/awhMqw40xNtD/bUWPtphl5Xij3vVGsvLnblY/mR35hvc2V3TGbg5jAsXhhtY5nG/zgZh+J4OUTDUxD8NKJBgJYrHmzEsp+lHJxuYZlKA+TRqA27272J5hCKVB8x8K1Tep+TpSpjLUowLMNNvoT0kxt7uVSKimgrRpkXlqrs9LwGMY56+2AimMpn5nApjtMsEzJswsOm4OYKC+QhdrIzArVqm8KwalWQNW1WWv47A5jddtRapD9SYpvq/fHLHIlc0QpZ5IsZxSpJqBW4LHRHVMLHPYnCSdrPrujlDTNmcQpvmvTHyesNDw+3BvTDBxOtH3qvs17m0OldrENnl2qEmUFDc/mVNvnVKvCn76/Q5QOGUUZ622PnXFKnObsjmIQMAhT7KoaUvHsUhVDwDOLVSbJRz4rP14O9P7yM51Zlhu4BhdWWuxPUr7+9hZ5UbAzUME8LyQvrTUYx6okk2QFP/7c0kylctAZ8V72FKBOVqfaAZ3q0QV1OHrDO83DoQP7E0QzcFhteIRxdpsr43Qj65VTTf7k/R1u9CY0PBvHhEGU0h8nPL/amG2aerZJM1BSOLu0fX1hrQGoBqLANfjx84uA+oG9ubHPYs3lxdUGgyhlFOcsVFw+2B7x3taIKFFBMytyfuzZBc4v1/n9NzdoBtbMJ71T9Uizglv7EbatpiR5lkGaq3LGh92QZ5ZqPLdcLbPGhL+43qc7jmlVLEZRyri0jHUMwTDNsQxB4FrIQmWVEsneKCbLC7JCMklywlS5RdZ9myIvMAyBIVQGnhYFi4GLKQxuDSZYwiCXajPYzwsCx6YfpsotUir73KS0B1iouiQ57A5j0ryg6likRcGPnuwwSpTpV1FeKdzoTXhuuc5Xzi/yh+9sIZCc6lRBjNkbJ+RSMo5zlhs+FVcpd5R0smB7GPPLXzj5sUB652ZkP0y4vDPibKfCjd6Ym/0J4zhjue5hCDjdrsyu7l5ca3B1b8xbG+pkfn6petdg/TgcFO93lan59NCB/QljrenTHSUIkTCKczb6E1qBQ7uqptE0fJtb/QmXd5Uj4+l2QHec0h3H+I45M+taqLjsjhPyQn5sjuXBGuerp53Zj08IwSrK2Ovf/HCLyztDqq5ZdlUqc69m4JaWAhanOw7LjZxhlOFaJuNYbZyahsHmIEIYAgM1hKHqqLb+qerCMg3OLVYYRSkrNZ8tBDvDmFGSU3VM6r5NlhWkWV6WaASTuKBABcqaa7Ha9PEck3GUKQMrJG5h0Ahs0kw1FPXDFNcykBL204Q0z5WNbwHCKJgkOa2Kg2d7dMdKl22Zav2TJGMQpTQDh6W6y/W9Mf/8u9do+g4CwWrTZRilOKbJv/jeDRq+kiGeaAaYpmSt6avNywKiPOenLi4iELyzOeBP39/l/HKV0+3goQLpwUHkhRS8dqbN1b0xhZTc7E0YRsq35UtnO1zeGRE4Fq+td2bZ+r34tNUsemDG8aAD+xNGu+Lwx+9u0/Dt2TCLm72Qv/b5kwAMowzLNHhmsYZrGcRZwWCi3A6FEHi2WTon5nQqDkUBv/v6TVoVhyyTWJbgRi+cXfL3w4RLO0Ou7inZ2+m2TxgX/OC6Gk12ulMhK6Zt7gZ/cb3LSsPjVMvjvc0hVlmntwyDVsXGMgS7w5jPrze50ZuwN06oOBajOFPSzabH775+g81BxGZvguPYVBx1HK5t4qQZqZQ0HIvUEOQFFFJpu9tVh3GsxvmtNn029yPyvMAwIUozmr7DqaYNhmCjN8FzleJmNMnYDWNcy6DmediGQZwXdDw1x7SQYJuCtZZPzbXZHkbsjmI8y6Thq0z9nc0h+5OEvCgIE7WJe3UvxHMsTjQ9ohTCNCPLpTohTFLlCGkIaoFFOMj59oddOhWX1dJ2N7BN3r414F+9scFa07/vpuL05Pve1rD8jE1cy+DDvTGLNZem7/BzL608caUPPTDjeNCB/QmjO0546USTXpgwLN3zTrUrdMcJ650Ko3IW5lR659kmCzWX7WGM78QsVFy645iN/oRO1eWdW/vsjhJ+9NwCga8C6I3ehH9/aZeqa/Gty3vsjmKMcvPt0s6IdzeH7IxiVps+e6OEmm8R2CZJlrPk2DiWwULNYxCpFv+pyuLZpSovn2zyz/79ZXphxnbpJFl1LCxTsLkf8Z0rPa73Q5ZrHghBbxyxMwLPMjEEWIZBlBW0fYdhnBIlBXE5eCJMMjWkI5EkqfIW9xyDlu+wsa9Gzq22fHqjmPVOgG2q0XSXd0bYtskkSfFsA8+2ONvwmCQ5da/g/FKVF040eHNjHwOlUa97NqNYZfuTVJJkBZZhsFR12R4mLNdMhqUufhLntKqqDFbzLXWVYAsmk5zuJME3TZ5ZqCqPnklK1bWQUnKjF3KyHRCWtfH7bSpOM9+p2gnU/sHFlTrPLddmLoxP2qxQPTDjeNCB/Qnjbu55U/tUUCoONb0+KzdYVS37xbU6RQHXe+HMU6YVuHz/Wg/TFOTFRxm9HQv+5L0dzi5WuNWLmGQZpfUVe6OUG90JjinKblHJ7iim4dlEac7pdsCrp1u8ero1k7Ft9JXvuCEE3XHCa2c6fPPyHst1D8c0yArVhbrW9OmXE54Wah6jOGcQZ1hCIGWBY1vUA4dqIUtzMEiKgoZvs1BzcUyDat1iOMmoeQ5SSNW5ahi0qx4rdZdzS1V6pZb+9et9DCQrdXXiG0fKV8a1lNSv4Vust32qnk13rOZ4Xt8b059kPLdUJZMeO+OEs4sul7bHhElKnClrgayAhYrDKM7LjlalQOlUHD7cGxOlKmuvu6p8stxQHj/dMOFGL+R0O+CZpRqtwGFQTqqCe2fW7YrD19/e5NpeWA7vcDEErHcqt5U2nsTSh25eevzowP6EcS/ly+l2AKgavGepDGxrGBHGOaYpqLg2P/pMh6+/vUXTtzFNgw+2h+yMI5arHte7IRdXlTvj3kjN27y6OyYtChVcygEJizWftaZHmOZsDxOWasqo6mY/5FQ74IW1+m3j89oVVc5ZqLqzS+2ibEgKbIPLe2MMKagHajLS3jil6VtsDyIc2yDLJdIoAINRlJIWBRXHJklz1loeO6OU1bpL1bdJs5xcgmOr5qb1TnWWxZ9brGIZBs+v1fnBzT5nO1WeXarxZ1f2COMQ21Cllk7FxbUEvTBhre7xV19Z44/f2yHJC+quxbmlGte6Y1ZaavD3n76/AyhlzjBKKWTGQtVhnKRICTXP4uKKOqlKlDro/FKV7WFMkhalX4qg6qr+gdWGz/nlGoFjzfoMlNf93TPrfpjwxo0+37y0RxhnhKkqaXVDl5++uDyTQk5LG7r0oQEd2J84zi5UblO+ZHnOpZ2Qm70JoDK0fpiUwTjBr9gUwEJVjSqrexaTJOOHt/Zp+A4vrTXYGkRc2hlysu1jGYK9cULNs3BskzhTHuajNGOc5PS3hriWGsnmBSZ7YYqQEssyefV0kw/3xreNz/v625sfGxCyWPNYqDhcLRuKJmmOlErR4pjKHsA0BJYwqPs2/TAmKySrdZdOVVkUDKMUYQhavrK03RnF1H0bx1S2BKNIuWDuTzJeOdUkcCzs8sqkKOBf/mCDpZpLxbawLKH2JZaq1FyLOIfATTnRCXhnc0i76uBZJoVU3aN/6UybnVHMj5TDwL9/vc8gznAMg6WGTyELRpEyHat5NoVUfu1xVjCMJIGjVEw5sDdKeGaxwkrDU3siuSqluJYx6zNY7yizrDsz66kc8f2tEeM4w7MMbMvhTLvK1mDC+9tDfuzZxdtKG7r0oQEd2J84psqX/VC1/O+OYs50Kvi2ybVuOFO5fOvSHmkBnYo9M25SXiix0o2faOLZFuMkYxTnbA9i/vT9bc50qqqsYZksVBzGUcbWIGKzF2EI5a3d8GyaVWXB2xsnrLcDnlmqEKWqPn9wfN4oyvmL6z0Wqh6GUI1URQGXd8dkWcHZToXAtQjjjLdvDViqOQzjgq3BBAQIClzL5MxCwLmFGjXPwjQMtoaqgQop2R2lJEXBcJLi2Kp8YlSUpLHuqXZ7tVns8+7mEEMNHCLLJbvDkCQtWKp7VBybZsUhcExGUYplGKVqRxmkXVipziYHWabyhhknOd0woRXYLNc8JmnOJBVcXK1wbqHCMFaKnHGSM0lSNgcxi1WHs6Xh1jtbQxxTsNb0ubBSI0wzGr7NMMrYjzLOdipUXWvmiHgws55uhG4PI2qujVvuc2RFwfOrdSZZwaunP56J69KHRgf2I+SoWqelhJdPNnlva0jTt8kL2BpE7I3VZbppCKqehSHUhKHpOLuqa1H1LC5tKwdBKZVXtxBwfqlCkhecagfYpmB7qPTg55dr7I3j0hVRaeCDsv3zWqm4qHoWK41A6agXKrMhH8MoZWeguhUHYcreWGWIzyxWmMRqIIZhCMKkIHAtTrYCMlnQqAgub2d0Jwm2MKi4Fi+tNsmRJLlE5BmnWgE/uLnPmXbA2UWH/asp/Tjh2WaAb5sYpuDa7hhLGOzUYloVm29/2MUx1Ri+5ZpHq+Jwaz8iLB0Rs6LAs5Q9UsWxqJYuhmlezDxSLqyoK4yaZ3GrH6kGIdskKzXnqw2fn3iuxULV5c+u7OJYqjv0gqVKX3kxKH1qLFabDqfaAcM4I5NK1fOFhdstlu+XWX+kAS+HXqMsicex2hMR0ynYGs0d6MB+RHyS1ul7nQg+UkAoH5Vr3RAhBZ2KjYHgm5f2ZlaxhlB+4duDiAsr9TJ7V9N9BpEaEvHCaoPAUX4rF1bqhElGzVeTk+Ikp+XbnGz73OwJVpseBnBjf0KcSiqu0q63Ky57o5gbvZDNQcwozrnZU3M5TVMwLgdP98YxHxrQrrn4lolrWZwpfbnjtOBqd8QX1ju0fAfXMgnTjLdu9Pnmh3v8yGqDimfx3uaIqPS46UcZnmWy3HA43fFpBjZvbQxZqrusNVXQfHdzwEsnGwgkaVZwZWfMxbUaf/TeDnmuZqKGSca4m3Gi6XNld8yZhQprTR+AdzcHt9kih2UD0psb+/iWwWrDp+ra7AyVC+Q4znBMwd4o4cvnOjOFUlbOLrURPF/uZ0ipBjyfXax8LLt+UGY9/R6cbvtc2hmrUC6V2+V+lPLiWv2ej9V8ttHujkfEQf3wtEwROBZXdsd3vf/0RJBkxcecGqdTaixDsNFTQV0iWaz7alZnnLE7ihknBXvjhGvdkO9f7/Hdaz3OLqgJ9ieaPs+v1uhUXHxbTR2aBjLfNqk4Fr/8hVN88Wwb21bljIsrNRzLRBgGgW2x0nAJHOWZAsqS94OdERJJzTW51p0QRhkXl+vkUnmuV10bhOp2jDPl/S2lJEpzbMvAs012hzGOaTDJcjX4uuIgCskHOyOu7I4ZJylprnxmPFM5XLYqqv6eFGo03FojoO7bGAJ816Q3TpmkhdoTMODfvb9HnOUEroVvm6UiyGBzP8IyYb1doebZM6OsQkJBMRtcsrE/wRCCimfTqrrYlsFC1WUYZ2wOIjIJF1cb+M5HE6qmzVnZgSEVcVZgWeITqVKm34MTzYClmkuUpjNZ48mWz8snm4/8nJrPBjpjPyIetXX6/o0kSk5oGoLvXu2y3PA42QwwhZoUlEmJiTLNSnOwTANTCG7tqw3WgxtoBQWFNLmwUp81PF3eHRFnxewq4bX1Nt+lOyvHCCDPczXZKJezuvPWKGat6XO6LC+oIcsOhZSst6vKuIuCOCs4v1QrJyzlDCYpliU4v1zl4mqNb13aw7NMRlHCqVbA5iCiGTjkKJsA11aj3JIspx+mtCvKl73u27y7uc+ZThWAJC+oujZV12QQZbQCm944ZhSpTtxablPkksAziRPJatOj6ll8fr1FXsiZl4ppCE60/NuurgSSwDZJM4lvKTve7f0JcZ7z+dMtfu6lFd640eftjX01SNtSG6kCCFyDSZICKrM+2fI/0TShg5/jmYUKC1VVFntQM5NGowM7R1Mbf1T98PREMCwHU4/ijIpjErjWLMD8xHNLAFzbC8kKiWebrJeGYGGe0al6LFTVRVecZozibKaDnl7mHxxSPJgkvHFzH4HkR040Z1cJNc/ic6dafPvKHuM4J0qV+ZhpwE89v4xlCHZGEeM446sXl1lrKumlIeCD7RH9ScYzixU+2B7O6vamobL2um8jJbP3FZRXvCUEsi9xLBVYLVOwWvNL4zNYqCoJpkRQ9dWJ5cJKjXc29rnaDelUHZ5ZqhHGGeMoZXcUYQpYbfj0w5R64JCkOd1xRtWrcqJlM4pSbu1HrJcj6e6sbwMzKadAUCAJo7SUKqrJSp871Z5Nr3r5ZFNNHwpT9icJrmXwl59dpOZb3NqPEEheXKvz8snmJw7C08/xbpukGs29+MwH9qOyFX1U/fCdFr310hhrP0rpl5fboDZR80JJ6KbPu1hz2Z8kSFQATrOCUZxxbrHCYJLe9joHs763NvrUXItzi9XZ+DOAOFMbrJ2qi2UItgcxcZazvlChEdhUHItnl2s8v1qf+boDPLtUY2+cECVqyMaJpk+SqSERjmXwldK24M73e63p8423t9jYj6g6Bst1n8EkUc1MuSSVarj0hZU6DV9Zzu6NYzb6Ea2qy3CS4Fom24OIpu/Qn6RkubIKNoTqxD27WOXy9pAkL1htePSjDNex+LFnF2ZdvHeabB38HpxuV9geRLQr6uSb5AUrTZ9f/NzabdLCr5xf1F7jmicOIeXj31l/7bXX5He+853H/rp3Y1rnPphph0k2q7U+Co+S+ffDhP/nuzewBNR9hzgrZp2d7ertGdqdz9uuOPzu6zfphymGANtUcy1PNAOiNGel4d319f/o3e2Z2deUaVdrmOR889Iu17oh7YrDxZU6jqmmD/3yF07NfGWmwW96ktkeRpiGYHN/MnMSvFuGOm20ef1aH882Zhu7N/ZClhpKRrgfJkgBTV9JPgspOdOpkuY537/WJ5WSumeTS0lR/r3hOZxbrPDGjS62YeE5BpNUySl3hjGWCc+vNjENwZfOdlipe/TChJ+8sPTA78H2QHnG3Ov91GgeN0KI70opX3vQ/T7zGftR2oo+rH54JnMbJ2ozNC1Yqrm3WfQ+6Hl/8XMn+Prbm+QFtAMbxzL5cHfESyea97zyuFe5SAh4f2tA4Ji8uFZHYLAzjDndCYiT/I7yzu3NLy+fbHJ5Z8SLa81ZsL/zdacnhJv9CQtVlxu9kHGccXG1wUrd54dbAxq+w0rd+6ovNAAADrhJREFUpeo6vLs9wBBK+z1Jc/7kvW2KoqDmqQHduSxYb1XwHaWW+bmXVlhtenz3ao/+OKHqWljNgO5Ijco7u1Dh/FJtpvW/W3nsbt+DxZqLZYqPnQQ0miedz7wqZhrsDvJpemscVMOc6QQsVBx825w1GT3sa693KjNVy1LdI0pzzixU6YUJ37vW53o3pCjUZuz0NTf6E35wc5/tQYSUH0n7ANpVV01Askwcy8C1TG71J7QD+7byzjS4v3JKKTL+8J1NbvYmMy+au6mBphvFWT4d7qw097vDiDQvWKh6fOF0ixOtKidaPl9cb/PyySY/fn6JUZSp0XqGstO1TYM8h1GSsVh3efV0e1bvtgyj3FBWc2G/dK7Dq+ttTCFuawK620bm4/4eaDSfJp/5wD6VlE0n2N/vx38UHFTDnGgFqNnykpu98JFfexpkf/LCElXPYm8ck+aSumeR5pKr3THvbw1nJ5JTrUBNY9obcb0XzspNUsLZTkWNwovU+yCR7E8y2hX3Y8Ht4MnJwMAQSgs+jNQJwLfN204GG/0J1/bG3OiN+WB7pHpthCBMlByy4Vmzoc2jOKfm2YxidcK51h3T9pWjZF6WDX1bcL0XYhrG7L1qBqokc2Glzlor4NxihS8/0+GLZ9okuZpQND3eu5VTHvf34E6m7+kfvbt924ByjeaT8JkvxRyVt8bD1tcHkxTLELy7OWAUZxjlIOetQcSzy7VP7OtxNzvfOM34cC9kvVOZlV+W6kryd3APoe7bJFnBl852+LMru/QmCb5lsr7gYxh8LLgdPDkZBtzoTQjTgu445cvPdDCNj3Tb/TDh1n6EVToRvr0xYGcUkWYFdc+h7pu4tjsb2rzRn8x8Yt7dHLA/SZSpmKmmQoWlI6RpCH72heXb3qua9/EylmUavHq6/cD9kuP0WNFzQTVHzWc+sMPhvTUe5YcpBPzgZp+G71D3bNXEM0l4+VTzUJI2w4BrvZCiO6HhWdR9G4FEoDLog9y5hzBV9DQCm5++uMyV3THdccLFlbtL9Q5KNUeR8lOpOCaDKOGNGz1OtgK+cmD03tlOhWvdsfI0N8VsLFyrYmOZglGcYRkG720qFctGP6QRONiG4NxClTduDmjZqoXeMA0qrs1ffXl1Zp41/QwGk5RRlJYa+ILv3+hzsuXPxgA+iOPyWHnShmNonn4OFdiFEH8T+O+A54EvSimfDKnLY+ZRf5gq3E6VKdPw+8nph2qY80LVJU4L9qOUUZLxyskmFffB+vqD2WqU5rx4onFfBci0Hr3Rn9CqKAuEjX5YqnNs6r49e+zUX953TL55aU/p2xereI7FV55dZHsQ8fatfQLHVFOFSi1/xTVJcri4Wqfi2mwOJoyTnLOdGucWK/zMCyu3rUlZDnu0K+6sL6DmWjQOrOVJRc8F1Rw1h83Y3wT+BvBPjmAtTy2P8sOUEl4+0eDWfjQbWP3yicZtbeiPisqKq1zrhrQC1cQ0mCRsD2N+9oVlLu+MZmu6l77+UbLVaYa/N05YqDgkSBZrLhdW6h9T9UxPAjXPplO6HsZZgW2qk1l3HONYBq+c+mg94ySj5TtcXFUDuJ9dUuMBtwYRP3Z+8a4nnYNzWy+sqJPWwQElTzJP4nAMzdPNoQK7lPId4DZd9GeRR/lhTuvZF1Y+MnAKk4zA/eT72Aez4o3+hEGUUXEtAte6Z5flYbLYaYa/PYjZHcd0Ki7rncrH5IT9MGEYpbx+rU+74gCy9CAXrHdqAHTDlPYda2kHDt3wo83XmmdzulNhuaGmSn3/ev9j+xhPc3DUwzE0R81jU8UIIX5FCPEdIcR3dnZ2HtfLPhYeRVHxaagvDmbFF1bqfGG9xenOR+6FB9UzR7Uh1wyUfvy55Rqn2sHH5ITTfQfXMvnCegsEbA1jRnHG6QP3Nw1oV9zbnrtdcTENbnuPtofKQvdupmlw/KqWwzD9fBzLeKB6R6N5GB7YeSqE+Aawcpf/+pqU8nfK+/x/wN9/2Br7k9R5elQ8atfpUbShH5w5ems/4mynwmLNnWV8jyM43OtY7tXRG2fqBHSwi/byzui2btYwyTi3WKU7Tmb3G0YprmXet0P4qN7Xx8XTtl7N8XNknadSyp85miXNN49Soz4K9cVBJc6pVoBnmVzZUz7malrP48n47nUs99p3iNL8Y+qfe5WKDqpe/ujd7Qeqe56myUFa4qj5NNFyx6eUO5U4d9OnHycPU/O+M2N95dS9XRCf5hr63dASR82nyaFq7EKIvy6EuAF8GfhXQoh/fTTL0jyIwSS9awZ7p7vjcfGgmvf9Bo18kud72njSPz/N082hAruU8rellCellK6UcllK+XNHtbCnmcfRHv6ke5s8aEPwUSdOzdsG45P++WmebnQp5oh5XLXTp0EiN615T0suB2WKn6Qp52mqoT+Ip+Hz0zy9fOZNwI6aR81EPylPSwZ7r5KLEBx7xnqcxltPy+eneTrRGfsR8zjbw5+GDPZem4Rxls8sg48jY30SVClPw+eneTrRGfsRo2unt3OvTUIpOdaM9XFdWWk0x4HO2I8YXTtVTOvql3aGOKZ525zV6YnuODNWbbylmWd0xn7E6Nrp7XX1C8t1hnHGGzd6DCbJEyNT1FdWmnlGZ+xHyKM03DzsczyNbeZ31tVfOdnk8u6IH24N+fzp1mPrir0f+spKM8/ojP2IeNSGm0/rOZ4E7qyr1zybl080eXax+sRcvegrK808ozP2I+IoWsTnpc38aWn/16oUzbyiM/Yj4ihaxOelzXze2v81mqcNHdiPiKPYjJuXDT1d5tBojhddijkijmIzbp429HSZQ6M5PnTGfkQcRZaqM12NRnMU6Iz9CDmKLFVnuhqN5rDojF2j0WjmDB3YNRqNZs7QgV2j0WjmDB3YNRqNZs7QgV2j0WjmDB3YNRqNZs7QgV2j0WjmDB3YNRqNZs7QgV2j0WjmDB3YNRqNZs7QgV2j0WjmDB3YNRqNZs7QgV2j0WjmjEMFdiHErwkhfiiEeEMI8dtCiOZRLUyj0Wg0n4zDZuxfB16SUr4MvAf8w8MvSaPRaDSH4VCBXUr5B1LKrLz5LeDk4Zek0Wg0msNwlDX2vwP8/hE+n0aj0Wg+AQ+coCSE+Aawcpf/+pqU8nfK+3wNyIDfvM/z/ArwKwCnT5/+RIvVaDQazYN5YGCXUv7M/f5fCPG3gV8AviqllPd5nl8Hfh3gtddeu+f9NBqNRnM4DjXzVAjx88A/AH5SShkezZI0Go1GcxgOW2P/34Ea8HUhxOtCiP/jCNak0Wg0mkNwqIxdSvnsUS1Eo9FoNEeD7jzVaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzdGDXaDSaOUMHdo1Go5kzDhXYhRD/oxDiDSHE60KIPxBCrB3VwjQajUbzyThsxv5rUsqXpZSfA/4l8N8ewZo0Go1GcwgOFdillIMDNyuAPNxyNBqNRnNYrMM+gRDiV4H/DNgHfuo+9/sV4FfKm7EQ4s3DvvYTzAKwe9yL+BSZ5+Ob52MDfXxPOxce5k5Cyvsn2UKIbwArd/mvr0kpf+fA/f4h4Ekp//EDX1SI70gpX3uYBT6N6ON7epnnYwN9fE87D3t8D8zYpZQ/85Cv+ZvA7wEPDOwajUaj+fQ4rCrm/IGbvwT88HDL0Wg0Gs1hOWyN/X8SQlwACuAq8J8/5ON+/ZCv+6Sjj+/pZZ6PDfTxPe081PE9sMau0Wg0mqcL3Xmq0Wg0c4YO7BqNRjNnHFtgn2c7AiHErwkhflge328LIZrHvaajRAjxN4UQbwkhCiHE3EjLhBA/L4R4VwjxgRDivznu9RwlQojfEEJsz2v/iBDilBDi3woh3i6/m3/vuNd0VAghPCHEt4UQ3y+P7b9/4GOOq8YuhKhPO1eFEP8F8IKU8mE3X59ohBB/Bfg3UspMCPE/A0gp/+tjXtaRIYR4HrVh/k+Avy+l/M4xL+nQCCFM4D3gZ4EbwJ8D/5GU8u1jXdgRIYT4CWAE/J9SypeOez1HjRBiFViVUn5PCFEDvgv8tXn4/IQQAqhIKUdCCBv4U+DvSSm/da/HHFvGPs92BFLKP5BSZuXNbwEnj3M9R42U8h0p5bvHvY4j5ovAB1LKy1LKBPi/URLeuUBK+cdA97jX8Wkhpbwlpfxe+fch8A5w4nhXdTRIxai8aZd/7hsvj7XGLoT4VSHEdeA/YX4NxP4O8PvHvQjNAzkBXD9w+wZzEhg+awghzgCvAn92vCs5OoQQphDidWAb+LqU8r7H9qkGdiHEN4QQb97lzy8BSCm/JqU8hepa/buf5lqOmgcdW3mfrwEZ6vieKh7m+DSaJw0hRBX4LeC/vKMq8FQjpcxLF92TwBeFEPctpx3aBOwBi5lbO4IHHZsQ4m8DvwB8VT6FzQKP8NnNCzeBUwdunyz/TfOUUNaffwv4TSnlvzju9XwaSCn7Qoh/C/w8cM+N8ONUxcytHYEQ4ueBfwD8opQyPO71aB6KPwfOCyHOCiEc4G8Bv3vMa9I8JOUG4z8F3pFS/i/HvZ6jRAixOFXWCSF81Ab/fePlcapifgtlQTmzI5BSzkWGJIT4AHCBvfKfvjUvih8AIcRfB/43YBHoA69LKX/ueFd1eIQQ/yHwvwIm8BtSyl895iUdGUKI/wv4D1C2tlvAP5ZS/tNjXdQRIoT4CvAnwA9QMQXgH0kpf+/4VnU0CCFeBv4Z6ntpAP9cSvk/3PcxT2GVQKPRaDT3QXeeajQazZyhA7tGo9HMGTqwazQazZyhA7tGo9HMGTqwazQazZyhA7tGo9HMGTqwazQazZzx/wMDp5yrcZVbsAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(x[0,:], x[1,:], alpha=0.2)\n", "for e_, v_ in zip(e1, v1.T):\n", " plt.plot([0, 3*e_*v_[0]], [0, 3*e_*v_[1]], 'r-', lw=2)\n", "plt.axis([-3,3,-3,3]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Change of basis\n", "\n", "Suppose we have a vector $u$ in the standard basis $B$ , and a matrix $A$ that maps $u$ to $v$, also in $B$. We can use the eigenvalues of $A$ to form a new basis $B'$. As explained above, to bring a vector $u$ from $B$-space to a vector $u'$ in $B'$-space, we multiply it by $Q^{-1}$, the inverse of the matrix having the eigenvctors as column vectors. Now, in the eigenvector basis, the equivalent operation to $A$ is the diagonal matrix $\\Lambda$ - this takes $u'$ to $v'$. Finally, we convert $v'$ back to a vector $v$ in the standard basis by multiplying with $Q$.\n", "\n", "![Commuative diagram](figs/spectral.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### We get the principal components by a change of basis" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "ys = np.dot(v1.T, x)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(ys[0,:], ys[1,:], alpha=0.2)\n", "for e_, v_ in zip(e1, np.eye(2)):\n", " plt.plot([0, 3*e_*v_[0]], [0, 3*e_*v_[1]], 'r-', lw=2)\n", "plt.axis([-3,3,-3,3]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For example, if we only use the first column of `ys`, we will have the projection of the data onto the first principal component, capturing the majority of the variance in the data with a single feature that is a linear combination of the original features." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Transform back to original coordinates\n", "\n", "We may need to transform the (reduced) data set to the original feature coordinates for interpretation. This is simply another linear transform (matrix multiplication)." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "zs = np.dot(v1, ys)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(zs[0,:], zs[1,:], alpha=0.2)\n", "for e_, v_ in zip(e1, v1.T):\n", " plt.plot([0, 3*e_*v_[0]], [0, 3*e_*v_[1]], 'r-', lw=2)\n", "plt.axis([-3,3,-3,3]);" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1.000e+00, -5.551e-17],\n", " [-5.551e-17, 1.000e+00]])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u, s, v = np.linalg.svd(x)\n", "u.dot(u.T)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Dimension reduction via PCA\n", "\n", "We have the spectral decomposition of the covariance matrix\n", "\n", "$$\n", "A = Q^{-1}\\Lambda Q\n", "$$\n", "\n", "Suppose $\\Lambda$ is a rank $p$ matrix. To reduce the dimensionality to $k \\le p$, we simply set all but the first $k$ values of the diagonal of $\\Lambda$ to zero. This is equivalent to ignoring all except the first $k$ principal components.\n", "\n", "What does this achieve? Recall that $A$ is a covariance matrix, and the trace of the matrix is the overall variability, since it is the sum of the variances." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.608, 0.209],\n", " [0.209, 0.208]])" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.8163452436307924" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.trace()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.119, 0. ],\n", " [0. , 0.697]])" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "e, v = np.linalg.eigh(A)\n", "D = np.diag(e)\n", "D" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.8163452436307924" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D.trace()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.14619069955372632" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D[0,0]/D.trace()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since the trace is invariant under change of basis, the total variability is also unchanged by PCA. By keeping only the first $k$ principal components, we can still \"explain\" $\\sum_{i=1}^k e[i]/\\sum{e}$ of the total variability. Sometimes, the degree of dimension reduction is specified as keeping enough principal components so that (say) $90\\%$ of the total variability is explained." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Using SVD for PCA\n", "\n", "SVD is a decomposition of the data matrix $X = U S V^T$ where $U$ and $V$ are orthogonal matrices and $S$ is a diagonal matrix. \n", "\n", "Recall that the transpose of an orthogonal matrix is also its inverse, so if we multiply on the right by $X^T$, we get the following simplification\n", "\n", "\\begin{align}\n", "X &= U S V^T \\\\\n", "X X^T &= U S V^T (U S V^T)^T \\\\\n", " &= U S V^T V S U^T \\\\\n", " &= U S^2 U^T\n", "\\end{align}\n", "\n", "Compare with the eigendecomposition of a matrix $A = W \\Lambda W^{-1}$, we see that SVD gives us the eigendecomposition of the matrix $XX^T$, which as we have just seen, is basically a scaled version of the covariance for a data matrix with zero mean, with the eigenvectors given by $U$ and eigenvealuse by $S^2$ (scaled by $n-1$).." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "u, s, v = np.linalg.svd(x)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "e2 = s**2/(n-1)\n", "v2 = u\n", "plt.scatter(x[0,:], x[1,:], alpha=0.2)\n", "for e_, v_ in zip(e2, v2):\n", " plt.plot([0, 3*e_*v_[0]], [0, 3*e_*v_[1]], 'r-', lw=2)\n", "plt.axis([-3,3,-3,3]);" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.92 , -0.393],\n", " [ 0.393, 0.92 ]])" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v1 # from eigenvectors of covariance matrix" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[-0.92 , -0.393],\n", " [-0.393, 0.92 ]])" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v2 # from SVD" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.7 , 0.119])" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "e1 # from eigenvalues of covariance matrix" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.7 , 0.119])" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "e2 # from SVD" ] } ], "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.5" } }, "nbformat": 4, "nbformat_minor": 2 }