{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 5: Compressing Data via Dimensionality Reduction\n", "\n", "## PCA\n", "\n", "Loading the data:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Class labelAlcoholMalic acidAshAlcalinity of ashMagnesiumTotal phenolsFlavanoidsNonflavanoid phenolsProanthocyaninsColor intensityHueOD280/OD315 of diluted winesProline
0114.231.712.4315.61272.803.060.282.295.641.043.921065
1113.201.782.1411.21002.652.760.261.284.381.053.401050
2113.162.362.6718.61012.803.240.302.815.681.033.171185
3114.371.952.5016.81133.853.490.242.187.800.863.451480
4113.242.592.8721.01182.802.690.391.824.321.042.93735
\n", "
" ], "text/plain": [ " Class label Alcohol Malic acid Ash Alcalinity of ash Magnesium \\\n", "0 1 14.23 1.71 2.43 15.6 127 \n", "1 1 13.20 1.78 2.14 11.2 100 \n", "2 1 13.16 2.36 2.67 18.6 101 \n", "3 1 14.37 1.95 2.50 16.8 113 \n", "4 1 13.24 2.59 2.87 21.0 118 \n", "\n", " Total phenols Flavanoids Nonflavanoid phenols Proanthocyanins \\\n", "0 2.80 3.06 0.28 2.29 \n", "1 2.65 2.76 0.26 1.28 \n", "2 2.80 3.24 0.30 2.81 \n", "3 3.85 3.49 0.24 2.18 \n", "4 2.80 2.69 0.39 1.82 \n", "\n", " Color intensity Hue OD280/OD315 of diluted wines Proline \n", "0 5.64 1.04 3.92 1065 \n", "1 4.38 1.05 3.40 1050 \n", "2 5.68 1.03 3.17 1185 \n", "3 7.80 0.86 3.45 1480 \n", "4 4.32 1.04 2.93 735 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "df_wine = pd.read_csv('wine.data', header=None)\n", "\n", "df_wine.columns = ['Class label', 'Alcohol', 'Malic acid', 'Ash',\n", " 'Alcalinity of ash', 'Magnesium', 'Total phenols',\n", " 'Flavanoids', 'Nonflavanoid phenols', 'Proanthocyanins',\n", " 'Color intensity', 'Hue', 'OD280/OD315 of diluted wines',\n", " 'Proline']\n", "df_wine.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Splitting, scaling features:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.cross_validation import train_test_split\n", "\n", "X, y = df_wine.iloc[:, 1:].values, df_wine.iloc[:, 0].values\n", "\n", "X_train, X_test, y_train, y_test = \\\n", " train_test_split(X, y, test_size=0.3, random_state=0)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.preprocessing import StandardScaler\n", "\n", "sc = StandardScaler()\n", "X_train_std = sc.fit_transform(X_train)\n", "X_test_std = sc.transform(X_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Covariance Matrix and its Eigenvectors" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Eigenvalues \n", "[4.8923083032737456, 2.4663503157592297, 1.4280997275048439, 1.0123346209044943, 0.84906459334502593, 0.60181514342299025, 0.52251546206399657, 0.33051429173094082, 0.29595018365934717, 0.23995530477949106, 0.21432211869872331, 0.168312535040962, 0.084148456726794607]\n" ] } ], "source": [ "import numpy as np\n", "cov_mat = np.cov(X_train_std.T)\n", "eigen_vals, eigen_vecs = np.linalg.eig(cov_mat)\n", "\n", "print('\\nEigenvalues \\n%s' % sorted(eigen_vals, reverse=True))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's use SVD too as Andrew NG recommends and verify we can compute the same thing:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Eigenvalues \n", "[4.8923083032737367, 2.4663503157592248, 1.428099727504847, 1.0123346209044952, 0.84906459334502482, 0.60181514342298958, 0.52251546206399735, 0.3305142917309401, 0.29595018365934683, 0.23995530477949095, 0.21432211869872303, 0.16831253504096197, 0.084148456726794427]\n" ] } ], "source": [ "import numpy.linalg\n", "\n", "U, S, V = numpy.linalg.svd(cov_mat)\n", "\n", "print('\\nEigenvalues \\n%s' % sorted(S, reverse=True))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Total and explained variance" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "tot = sum(eigen_vals)\n", "var_exp = [(i / tot) for i in sorted(eigen_vals, reverse=True)]\n", "cum_var_exp = np.cumsum(var_exp)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nvoiu27Rpkz/66KN+9dVX59umpIGUmcUNpDIyMrxhw4b+2GOP+d69e93d/Y033vCWLVtGTzTatGnj\nZ5xxhq9cudLd3bdt2+aXXXZZNPjasGFDvrzLK5BasWKFX3zxxf7SSy/lO+lbt26d33LLLZ6amuqh\nUMjfeeedQnmef/75MU+484oXSH355ZfR5atWrYq57YwZM9zMvFOnTvmW79mzx3v06OFm5qeccoq/\n/fbbvm/fPnd3z87O9vHjx7uZeb169fybb76JW7dY/va3v7mZecuWLf3BBx+MnmDv2rXLn3jiiWgb\nFgxCdu3a5Ycddlj0vZZ3eZcuXdzMfNiwYYXKi7Rr5ET0uuuui5aZnZ3tf/jDH6LHafHixYW2L492\nLS6QigT/w4cPj5a7Y8cOnzp1ajRQmzdvXmDHds+ePdFjePDBB/sbb7zh7u45OTn+/PPPe/PmzT0j\nIyPhQConJ8fbtGlT5Od9+fLlbmaekpLia9asybdu9OjRPnPmTP/uu++iy37++Wd//vnnvVOnTm5m\nPnr06EJ5Rto8EtjefPPNvnXrVnd33759u69bty5fulj7NH36dJ86daovX77c9+/fH92fDz74wAcO\nHOhm5r/61a8KbVfWNrztttui77kxY8bk2/fs7Gy/7777/NZbb823zbvvvuu1atXy2rVr+5///GfP\nysqK1vett96KfpYHDBgQowViq3GBVE15cMJTegRSQGx8r5TOnj17vHXr1m5m/vvf/77E2wURSJmZ\nP/zww4W2e+SRR6LrO3fuHD0BisjJyfFDDjkkZvnlFUgV5+abb46bZ7wT7rziBVLuv/yiH69n5Pjj\nj3cz80mTJuVb/sADD7iZeZ8+faIBVEGXXnqpm5mPGTOmqN3LZ/PmzV6/fn1PT0+P+Wu+u/tbb73l\noVDIGzdu7Hv27Mm37sMPP/TatWu7mfkjjzzi7u5XXHGFm5m3atWqUE+V+y/tamY+atSomGWedNJJ\nbmbev3//Qusqsl3znoTHO+n9zW9+42bmF154Yb7lZTm2Dz/8cPQHhhUrVhTa7o033ojWK5FAyv2X\nnp14+zNx4sRo71EiVq5c6bVq1fL69ev7zp07863L2+YTJ06Mm0dJPvOx/Pzzz3744YfH/I4qSxuu\nX7/e09PTi613QZHP8f333x9z/aZNm7xVq1ZuZoV6nuOpqoEUs+UBQDVT2RNTV9ZE1a+88oqysrKU\nmpqq22+/veIKlnTggQfqvPPOK7S8f//+0b+vvvrqQvcNmVn0fohPP/20fCtZQqeffrokacmSJYHn\nfe6550oj9cevAAAgAElEQVSSHn+88LSS3333nZYsWSIzi6aLiNy/dsUVVyglJaXQtnnzfvnll0tc\nn6efflo7duxQ//791bVr15hpevbsqXbt2mnLli364IMP8q07+uijo/cVjRkzRjNnztT06dNlZpo5\nc6YyMzPjlm1muv7662Ouu+666yRJCxcu1ObNm0u8P0UpS7uama699tqY6yKjzBV8/5bl2D711FOS\npKFDh+qQQw4ptF3v3r114oknJrwf0i/vk1dffVXr168vtD5y31bB92Bx2rVrpy5dumjHjh1aunRp\nzDSpqam68sorE6xx8WrXrh39ronXvqVpw6eeekq7du1S48aN9ec//7lEdfnmm2+0ZMkSZWZm6sIL\nL4yZJjMzUwMHDpSkuPcYJotSDX9uZpEB7rPcfV+e18Vy94qdYh0AUCO8/fbbkqQjjzxSLVu2LCZ1\nsLp06RJzebNmzSSFT2J+9atfxUzTvHlzSdKWLVvKp3Ix7Nq1S//4xz80d+5cffbZZ9q8ebP279+f\nL01WVlbg5Q4fPlx/+tOftHz5cn322Wf5jlskuOrWrVu+k+d9+/bp3XfflRQeLOCyyy6LmXek/nkH\ndihO5KTzlVdeUYsWLeKm27x5s9xd33//vXr27Jlv3YQJEzRv3jwtXrxYF198sSTpsssu04ABA4os\n+6CDDlLbtm1jruvdu7dCoZDcPToBckmUZ7v26NEj5vJWrVpJUqGAryzHNjIgTFGTPvfp00eLFi0q\n+Q7k6tatmzp16qQvv/xSc+bM0ejRo6Pr3nnnHX377beqXbt23AEpXnrpJc2cOVPvvvuusrOzYw4w\nEW/gh4MPPliNGzdOuM4RX3zxhWbMmKFFixZp1apV+umnnwqlKap9E23DyHdqv379VKdOnRLVMdLu\n27dvV+vWreOmi9Q972A8yai080itUrjL7DBJK/K8Lu63R1eeiXoBAMHzGjoy9Y8//ihJlTKZZbzA\nLW/vSXFpihs1KyjZ2dnq27evvvrqK0nhIK9evXpKT09XKBTS/v37tX79eu3YsSPwslu1aqU+ffro\ntdde02OPPaZbbrklui4SSBXsCdi0aVP02JSkdybeyGmxRE54d+7cqV27dhWZ1sxipjEzPfjgg+rc\n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\nWOGXnAYuiMmoJD0oaZmkUHlPfFXVHmLizFJjQl4gNr5XymbatGmekpISnYSyfv36npGRUeQEnlde\neWV0vZlF09eqVctnzZpV7IS8sSY5jYjkGW8C1aLyeOedd6ITYkb2JTIB7GmnneY33HBDkRPyxiq3\nYJ716tXzunXrupl506ZNfe7cuXEn1N2wYYM3adIkur5Fixbetm1bb9euXTRNURPy5nXeeeflO+Zz\n5swpMv26deu8d+/e0fSRiVzz7ksoFPLJkycXmU8st9xyi4dCoXzHJDMzM1/9OnToEE2fnZ0dPQ7X\nX399ofx++ukn79ixo5uZn3/++fnW5Z10dfz48W5mnpqamq+8UCjkd955Z8y6lke7Fjchb1FtuXDh\nQjczb9++fcz1iR7biM8++8ybN2+e770f2Z9DDz3Up02bVqrJa/P65z//ma8e//M//xM37Z49e7xX\nr17RtCkpKdHviVAo5Lfcckvcyb1LOtFuUelifUdFjmtR3wVBtGHkfRp5NGrUyBs2bBh9Hev7Z/78\n+fm+d+vUqeNNmjTx1NTUfO/z7777rshjEpHo/0Ul2YS8EyU1kDTTzJoGlCcAAAkbP368PvroI11w\nwQVq37699u/fr5SUFB155JEaN26c7rrrrkLb3Hnnnbr33nt15JFHqm7dukpJSdFpp52mV199VSNG\njJCZxRxsIt7yWOmKWhdv/bHHHqvFixfrN7/5jTIzM5WTk6POnTvrjjvu0P/93/8pNTW12Lxj5fnW\nW29pyJAhaty4sfbv368WLVro0ksv1dKlS3XkkUfGza9JkyZauHChhg4dqgMOOEAbN27U999/n9Dc\nTRGRS6jMTA0aNNAZZ5xRZPpmzZrp9ddf16OPPqpBgwbpgAMO0I4dO5SSkqLDDjtMI0eO1Jw5czRh\nwoSE6zJx4kR9/PHHGjVqlA499FBJ4TmZ2rRpo4EDB+r222/Pd5nehRdeqM2bN+ebkDevevXq6eGH\nH1YoFNLDDz+sZ599Nma506ZN07/+9S91795dOTk5atiwoU466STNnz+/yIlbg27Xkr6PS1qXvBI9\nthGHHXaYli5dqosvvlitWrXS/v371apVK1155ZV67733yjQfU8Rvf/tb1alTJ7r/RU3CW6tWLb38\n8su69tpr1aFDB6Wmpqp27do69dRT9fzzz2vixIlFfk+URFHp7rzzTt1///06+uijlZaWJndX9+7d\n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\ne+65+eaeGTBggMaMGSN31wUXXKDNmzfny++jjz7SjTfeKDPT9OnT497zMn78eF1wwQX64IMPVKtW\nLe3YsUOvvvqqTjvtNN15550J7cNnn32mwYMH64EHHtDSpUu1Z88epaWl6ccff9Szzz6rk08+WVOn\nTi0yj6Le8y+++KKOPfZYPfnkk9qzZ4/279+vL7/8Un/5y1/0u9/9Lm6eiR7biM8//1xHHXWUHnzw\nQa1du1a1a9fWunXrdNddd6lHjx6FjnlJRD4z8+bN0/bt2+Omi3xmIukjzj33XE2aNEmvv/661q1b\npwYNGuinn37SO++8o6uvvlonnniifvrppyLrcPnll+u8887TkiVLZGZKSUkpdNxjtcPUqVM1ZswY\nPf/881q5cqXS0tK0d+9effHFF7rrrrt01FFH6ZNPPolbblnb8LjjjtO///1vff/996pbt6727dun\npUuXaurUqZoyZUqhbZ555hkddthhuueee/T1118rJSVFe/fu1UcffaRrr71WvXr10rp164o8VjVF\nYIGUmaWY2WAzmyMpW+GeqB6SXpb0B0kt3f2SoMoDACBR69at06WXXqrRo0crOztbmzZt0qZNmzR2\n7FhJ0vTp0/XZZ58V2m7kyJH65ptv1KxZMz333HPasWOHtm7dqkWLFqlhw4a66qqrEqpHu3bt1LNn\nT7l79MSvoM2bN2vBggUyM5177rmF1sc6gd28ebPOOuss7dq1S927d9fSpUu1efNmbd++XbNmzdLH\nH3+se++9N6G6llSXLl3097//XV999ZV27dql9evXa/fu3XrttdfUo0cPffPNN/rjH/8YaJl33323\nbr/9drVo0UIPPPCAtmzZos2bN+unn37S7Nmz1aJFC82ePVt//etf82132223qXPnzsrKytKll14a\nXb5792794Q9/0L59+zR06FCNGDEiZrkfffSR7r77bl177bXatGmTNm7cqB9++CF68n7NNdfozTff\nLPF+1KlTRxdddJFefPFFbd26VZs3b9a2bdu0du1a3XzzzUpJSdHEiRP17rvvJnyM3F3Dhw/XmWee\nqZUrV2rTpk3aunWrpkyZIjPT3LlzNX/+/ELblfbY7t27V8OGDdOGDRvUsWNHvf7669q2bZu2b9+u\n5557Tlu3btXkyZMT3o8+ffqodevW2rVrl/7zn//ETPPpp59q+fLlCoVCOuecc/Kt69mzp/75z39q\n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\nNMDZvn27duzYUWT7JtqGP/74oyQlNEFwpN337dsXs8cvr3ifqZqmXIc/BwAA8Q0dOlR16tTRmjVr\n8ouGXFgAACAASURBVN0fETkpTPQSpcry6aefasKECTIzjR07Vp9++ql+/vlnbdiwQVlZWcrKytJv\nf/tbSbEHySiNyHDw48aN0/79+4t9xLs5fubMmdG/s7Ky9PXXXwdSv0SMG/f/t3fv8ZaOdePHP1+n\nMDOGcS6FEUMnRCXCiGHSo5FD1E/IqacweCo9JWYP9Wue+g1ySCLlUImMTlJyGIdBqQfpIKYZSqhh\nMMIo5vv7477XtmbNWnv22nvtvfaa/Xm/Xut1z7qve13Xte57rdn3d12n43nwwQfZZJNNmDFjBvPn\nz++ebOLRRx/ljjsGt7NPq87tQKh8J+68887u8XaLFi3qbqGq95259tprOeecc1hhhRWYOnUqs2fP\nZuHChcybN6/78/n2t78daPz5XH755ftU33nz5nHkkUfy0ksvceCBB/Kb3/yGhQsX8uSTT3aXXZkt\ntFXfjb6qXPetttqqV9e9+rszXBlISZLUg8ov0T1N3d3XLlcjR45kr732Wmz2vj//+c/cdddddWce\n68mYMWO6B7L3pa4rrFB0Uulp4oxGkwRcddVVZCZ77LEHX/nKV9h8882XmAa68gt5q6y77roA/Zq8\n4tZbb+1uCXzzm9/Miy++yEEHHbTUKeJ7ut4LFy7kqaeeIiJ61Yrxr3/9ix/+8IdEBN/+9rfZe++9\nGT169GLHPP744714N63Tn3M7kN8XKLrYbbvttixatKh7TNTMmTN5/PHHGTlyZPdYx2pXXnklAEcc\ncQQnn3xy3bXSWv35rLj22mt57rnneOMb38h3vvMdtt566yWCsoG4vpVr+NBDD/X6Neuttx5gl71m\nGEhJktSDbbbZBqDHGbUaLYzbG5Vf0K+66ipeeuml7pvDd77znU11y1lppZV405veRGY2rGtPaZXJ\nFf7xj380DCTuuuuuuvsfeaSYW2rrrbeum/7cc891j9lole233x4ozn1fZk1csGABBx98MJnJ4Ycf\nzg033MA666zDb3/7Wz73uc/1+NqHH364YZBx2223dXex3GqrrZZajyeeeKJ7oeRG5+/6669faj6t\n1J9zO9DfF1hyxsvKdtKkSd1d3aot7fP58MMPD1hLZKXst7zlLXXTM5Mbb7yx5eVWZvps5hpWXjN/\n/vw+TbU/HBlISZLUg8rA9TvuuINbb711ifQ5c+Z0D77uiz333JPRo0fz5JNPct111/WrW1+lrhdc\ncEHdGeMuv/zyhgHAZpttxkorrcSiRYv48Y9/vET67Nmzl5gavqIyJqUyYL/WF77whaUudtqs/fff\nnxEjRjB//vylrktU71xMnjyZhx9+mLFjx3LmmWey1lprccEFFwAwffr0ute6IjPrLmSamd0L5+66\n6651x+rUqh63V+/8PfbYY5x99tlLzaeV+nNuK5/BGTNm1A1Obr/99h6DrN448MADiQjuu+8+7rnn\nnu7PZaPvTKWFr9Hns9EMjK1Q+Qw0WnD3ggsu6NWC3s3ab7/9WGWVVXp1DSvGjRvXvb7diSee2D2m\nq57nn3+++weA4cxASpKkHuywww5MmDABKG5Orrnmmu6xDLNmzWLixIl1fwXvrZVWWol9992XzOSU\nU07hD3/4AyuuuCIf+MAHenxdbdc5gKOPPpp11lmHJ554gj322KP75u3f//43l112GUceeeQS3cYq\nVlxxxe6plE844QRmzZpFZrJo0SKuu+46JkyYwKqrrlr3tZXzc8011zBt2rTuQejz5s3jU5/6FNOm\nTWPNNdfs3QnppTFjxnQHM9OmTeOoo47qnqwBihu9m266iaOOOooddthhsdfOmDGDSy65hOWXX55L\nL720eyD/XnvtxeGHH86iRYs45JBDePbZZ+uWvdpqq/H1r3+dk046iQULFgBF96xDDjmEG2+8keWW\nW44pU6b06n2MGjWqe2r4ww47jHvvvRcoxqvccMMNfZ7hrj/6c24POOAA3vCGN/Diiy+y5557di9M\nvGjRIq655hr22Wefhp/B3lpvvfW61+s64ogjePrpp1lrrbXYfffd6x5f2X/++efzzW9+s7vF9S9/\n+QuHHHIIl19+eY/T3ffHbrvtRkTwu9/9jsmTJ3d3j12wYAFf/vKXOeaYY1r+3QBYc801uz+D06ZN\n49hjj12sy95jjz3G6aefzmmnnbbY68466yxe9apXccstt7Drrrsya9as7rFTL7/8Mvfccw9Tpkxh\nk002GfQup0ORgZQkSUtx8cUX8/rXv5558+ax1157MWLECEaNGsWOO+7IggULmD59er/yr/ySXpk6\nerfddlvqzVW9gemrr746V1xxBaussgq//vWv2XLLLVl99dUZNWoUBx98MFtttRUf+9jHGub5xS9+\nkTXXXJO//vWv7LjjjowcOZIRI0YwceJExowZ03CR2QkTJrDPPvsAxa/7I0aMYMyYMay77rpMnz6d\nI444YrGFjFvlmGOO4bTTTuuefW/cuHGMHDmSMWPGMHLkSHbddVcuvPBCXnzxxe7XPP744xx11FEA\nnHjiiUssdnzmmWcyduxYHnroISZPnly33Le+9a0cf/zx3edrzJgxvPrVr+ayyy4jIvjSl77U3T2u\nVr3rdsYZZ7DKKqtw3333sfXWWzNy5EhGjhzJhAkTeOqpp/jGN77R11PUZ305t1CMtbvyyitZe+21\nmT17NjvuuCOjRo3qHg84evRoTjnllH7Xr/Y7s//++zecEOLQQw9lu+2246WXXuLwww9nlVVWYY01\n1mCjjTbisssu49RTT224XlZ/bbbZZhx//PFAsSjwGmus0f349Kc/zW677cZ//ud/DkjZJ554YnfZ\n5557LhtuuCGrr746o0eP5jWveQ2f/OQnmTt37mKv2Xbbbbn66qsZPXo0t956KzvuuCOrrroqa621\nFiuvvDJvfetbOe200/jHP/5R98ec4aYl059Lktpj5syudldhSImIun/ce/MHv6dj1ltvPe666y5O\nO+00ZsyYwWOPPcYaa6zRPRVz9a/1va1TtV122YX111+/+xfepXXr6ynPnXbaibvvvpspU6Zw0003\n8eyzzzJ27Fg++MEPcuKJJzJt2rSGr91444355S9/ycknn8wNN9zAggULeN3rXscBBxzAZz/72R67\nMH7ve99j+vTpXHzxxcyZM4eIYMcdd+TII4/koIMO4iMf+ciA3HiddNJJTJo0iXPOOYeZM2fyyCOP\n8MILL7DBBhvwpje9iV133XWxSTsOO+wwnnrqqcUW5K02YsQILrnkEnbaaScuueQSJk2a1N1SV+30\n009nyy235LzzzuP+++9ntdVWY9ttt+XEE09s2DIC9T9nb3/727njjjvo6urilltu4bnnnmP99ddn\n4sSJnHTSST12serN56uZulRr9txWbLHFFt0tFz/96U+ZP38+r371q9l777055ZRTuPrqq/tU32r7\n7rsvRx99dHf3sp6+MyuuuCLXX389n//857niiit45JFHWGmlldh9992ZPHkye+65J9dff32f/+9Y\n2nHTp09niy224LzzzuOPf/wjmck222zDhz/8YY4++ujugLUvlva6008/nX322Ydzzz2XWbNmMW/e\nPEaPHs1mm23GxIkTOfTQQ5d4zcSJE3nggQc4++yzufbaa5k9ezYLFixgjTXWYNy4cey0007sv//+\nvPa1r+1TnZcl0ZepFiPim0Cf5mjMzPpLJXeoiEho/5SVnajy3ffUSYur/GHs6f+VRi0DnWZZeR8a\nHr71rW9x2GGHMX78+AGZIEBSfb35u9jg+AFtNutri9Qh/ShzmQqkJKkdDEAkSWqvvgZSY2ueLwec\nAbwLOAu4GXgcWA8YD0wGbgFO6GN5kiRJkjRk9CmQysyHqp9HxAnAjsBba9LuB2ZGxMXAb4C9KQIu\nSZIkSepYrZq17yjgitoAqyIz5wJXAke2qDxJkqRB5Sxlkqr1abKJJTKJeAE4MzM/08Mx/wNMzsxV\n+l3gEOJkE33nZBNSfc0OqpUkaVk2VCebaFWL1JPAHo0So3g3u5fHSZIkSVJHa1UgdQWwVURcGREb\nVydExNgyfUug8QIUkiRJktQhWtW1bxRwA7At8DLwN+DvwLrABhQB213Abpn5bL8LHELs2td3du2T\n6rNrnyRJrxiqXftaEkgBRMSrgE8AHwE2qUqaDXwTmJ6Z/2pJYUOIgVTfGUhJ9RlISZL0imU+kFos\n06KFajTwzLLWAlXLQKrvDKSk+gykJEl6xVANpPq6IG+PyuBpmQ6gJEmSJA1fLQ2kImIdYF9gC2BE\nZh5e7l8b2Bj4XWY+38oyJUmSJGmwtXKM1BHAWcDK5a7MzOXLtDcD9wJHZeaFLShrA+BUYCIwBngM\n+AEwNTOf7mOeBwGXlE+PzMxv9PJ1du3rI7v2SfW56KckSUsaal37WjL9eURMAM4H/gS8HzgP6K54\nZt4H/B6Y1IKyNgF+AxwK3AmcDswBjgPuiIgxfcjztcA5wD8rVe5vPSVJkiQtu1rVte/TwOPA+Mx8\nJiK2rnPMb4HtWlDWV4G1gWMz89zKzoiYDpwAfAH4WG8zKxcL/iYwD7ga+GQL6ihJfWYLtyRJQ1+r\nFuTdFvhJZj7TwzGPAOv3p5CyNWoCMLc6iCpNAZ4HDoqIVZvIdjKwC8W07Y7fkiRJkrRUrQqkVuKV\nbnGNrE6xWG9/7FJur6tNyMx/ArOAEfSy5SsitgCmAWdm5m39rJskSZKkYaJVgdTDwDZLOebtFGOo\n+mNcuX2gQfqD5XbTpWUUESsAlwIPAZ/tZ70kSZIkDSOtCqR+AOwUER+olxgRHwG2BK7qZzmjy22j\nLoSV/av3Iq9TgK2AQzPzxX7WS5IkSdIw0qrJJr4MHAh8JyL2pQxkIuIYYCdgH4rWorNbVF6/RMQ7\ngM8AX87MX7a7PpIkSZI6S0sCqcycHxHjgYuB/auSziq3twIfKscx9UelxWl0g/TK/oZrSZVd+i6h\n6GY4pdFhfaqdJEmSpGGhVV37yMyHM3M8sDXwceBkihnx3paZO2fm31pQzP3ldlyD9MrYqEZjqABG\nlse9AVgYEYsqD4rufgAXlPvO6G3FIqLho6urq7fZSJIkSVqKrq6uhvfegyU6ab2SiBgLzAbmAq/P\nqspHxCjgMYrFdNfJzBca5LEyRRfDem98G4pA8FaKFqtfZOaVS6lTguu+9EXlc+6pkyRJUqtUgqnM\nHNCoqlVjpAZFZs6JiOuA3YGjgXOqkqcCqwJfqwRRZTe+1wP/ysw5ZR4LgSPr5R8RXRSB1MWZedFA\nvQ9JkiRJna1lgVRErARMAt4GrAEsX++4zDysn0V9HLgdOCsidqXo7vcOYDxFK9JJVcduAPyBYnr2\njftZriRJkiQBLQqkIuLVwPXA5r04vF+BVNkqtS1wKjAR2BN4FDgTmJqZ9aZG723nsWziWEmSJEnD\nVEvGSEXEd4EDgO8CFwCPAC/VOzYzH+p3gUOIY6T6zjFSkiRJarXBGiPVqkDqSeB3mblz/6vUWQyk\n+s5ASpIkSa02WIFUq6Y/Xxm4s0V5SZIkSdKQ1qpA6vfAhi3KS5IkSZKGtFYFUl8CJkXEG1uUnyRJ\nkiQNWa2a/nwe8CNgVkScBfwaeLregZl5S4vKlCRJkqS2aNVkE4t6eWhmZt31pTpVOyeb6OrqGpB8\np04dmHwbcbIJSZIktcpgTTbRqhapU3t5nLfMLTZzZrtr0D977tnuGkiSJEnNa0kglZldrchHfTN+\nfFeL82tpdgDMnNnF+PED14omSZIkDaZWTTYhSZIkScOGgZQkSZIkNalPXfsi4iaK8U4HZ+YjVc+X\nKjPf3ZcyJUmSJGmo6OsYqZ3L7ao1zyVJkiRpmdenQCozl+vpuSRJkiQtywyAJEmSJKlJBlKSJEmS\n1KRWLcjbLSI2AF4DvKpeembe0uoyJUmSJGkwtSyQiog9gDOAzeskJxDldvlWlSlJkiRJ7dCSrn0R\nsR3wY2A0cE65+2bgAuCPFEHUj4FTW1GeJEmSJLVTq8ZIfQZ4EXh7Zk4u992UmR8F3gx8HtgN+H6L\nypMkSZKktmlVIPVO4EeZ+bfavDNzETCFomXKFilJkiRJHa9VgdRo4OGq5/8CRlSeZGYCs4AdW1Se\nJEmSJLVNqwKpecAaNc83qTlmRWDVFpUnSZIkSW3TqkDqARYPnO4AJkTEOICIWB/YB3iwReVJkiRJ\nUtu0KpC6Ftg5IsaUz79C0fr0vxFxF3A/sA5wZovKkyRJkqS2aVUgdT6wM/ASQGbOAvYD5lLM2vco\n8J+ZeXGLypMkSZKktmnJgryZuQC4s2bf1cDVrchfkiRJkoaSVrVISZIkSdKwYSAlSZIkSU3qU9e+\niJgLZF9em5lj+/I6SZIkSRoq+jpGKspHs/oUfEmSJEnSUNKnQCozN2pxPSRJkiSpYzhGSpIkSZKa\n1JLpz2tFxGrAaOCZcmp0SZIkSVpmtKxFKiJeFRGfi4g5wFPAQ8BTEfHncv9KrSpLkiRJktqpJS1S\nETEKuBHYBlgE/BV4HFgP2Ag4FXhfRLw7M//ZijIlSZIkqV1a1SI1lSKImgFsmpkbZeZ25aQUmwJX\nA9tSBFSSJEmS1NFaFUjtD9wL7J+Zc6sTMnNOmf7bcitJkiRJHa1VgdRawM8ys+46UZm5CPh5eZwk\nSZIkdbRWBVIPA6sv5ZjVKCagkCRJkqSO1qpA6uvAARHx2nqJEfE64ADgghaVJ0mSJElt06p1pK4G\ndgZ+ExFfAW4G/g6sC4wHjiv3zSiDqm6Z+ZcW1UGSJEmSBkWrAqk/V/37tAbHTCof1RJYvkV1kCRJ\nkqRB0apA6pI+vq7u5BSSJEmSNJS1JJDKzENbkY8kSZIkdYJWTTYhSZIkScNGSwKpiNipl8cd14ry\nJEmSJKmdWtUidWNEnNwoMSLWiIgfAqe3qDxJkiRJaptWBVIPAlMj4vqIWLc6ISJ2AO4B9gJ+0KLy\nJEmSJKltWhVIbQtcCrwbuDcido/CZ4GZwDrAMZm5b4vKkyRJkqS2adWsfc8Bh0TEjcC5wE+BPwBv\nAv4EHJCZv21FWZIkSZLUbq1aRwqAzLw4IkYBZ1EEUfOAnTJzXivLkSRJkqR2atn05xGxfET8X+Ar\nwD+BO4C1gZsj4i2tKkeSJEmS2q1V05+/DrgZ+G/gtxRjpt4FnARsCtwZEUe3oixJkiRJardWtUjd\nDWwPnAdsl5kPZOGLwM4UXfzOjoirW1SeJEmSJLVNq8ZILQ/sn5lX1SZk5u0RsRVwETCpReVJkiRJ\nUtu0KpDaOjPnNkrMzKeA90fEsS0qT5IkSZLapiVd+3oKomqOO7sV5UmSJElSO/U5kIqInSJiwyaO\n3zIiDu5reZIkSZI0VPSnRWomcEj1joj4dETMb3D8+4Fv9qM8SZIkSRoSWraOVGkVYPUe0qPF5UmS\nJEnSoGt1ICVJkiRJyzwDKUmSJElqkoGUJEmSJDXJQEqSJEmSmtTqQCr7mCZJkiRJHWOFfr5+SkRM\nqXoeABHxcp1jA4MpSZIkScuA/gZSjaYzb3a/JEmSJHWMPgdSmen4KkmSJEnDksGQJEmSJDXJQEqS\nJEmSmmQgJUmSJElNMpCSJEmSpCYZSEmSJElSkwykJEmSJKlJBlKSJEmS1CQDKUmSJElqkoGUJEmS\nJDXJQEqSJEmSmmQgJUmSJElN6thAKiI2iIiLIuLRiFgYEXMj4oyIWL2Xrx8TEUdExNURMTsino+I\npyPi1og4LCJioN+DJEmSpM60Qrsr0BcRsQlwO7A28APgfuAdwHHAxIjYITPnLyWbDwBfBR4FbgL+\nAqwH7ANcCLwH2H9A3oAkSZKkjtaRgRRFALQ2cGxmnlvZGRHTgROALwAfW0oefwL2ysxrqndGxGeB\nXwH7RsQ+mTmjpTWXJEmS1PE6rmtf2Ro1AZhbHUSVpgDPAwdFxKo95ZOZN9UGUeX+vwNfK5/u3IIq\nS5IkSVrGdFwgBexSbq+rTcjMfwKzgBHAdv0o46WarSRJkiR168RAaly5faBB+oPldtO+ZB4RKwAH\nl09/1pc8JEmSJC3bOjGQGl1un2mQXtnfq9n76pgGvBG4JjN/0cc8JEmSJC3DOjGQGjARMRn4L+CP\nwIfbXB1JkiRJQ1QnBlKVFqfRDdIr+59uJtOIOAY4E/g9sEtmNvV6SZIkScNHJwZS95fbcQ3SK2Oj\nGo2hWkJEHA+cBdxHEUT9o9lKRUTDR1dXV7PZSZIkSWqgq6ur4b33YOnEdaRuKrcTIiIyMysJETEK\n2AF4DrizN5lFxKeBLwJ3AxN6sZBvXVXVkCRJkjSAurq6GjZWDFYw1XEtUpk5h2Lq842Bo2uSpwKr\nApdm5gtQzMIXEZtHxNjavCLiZIog6tfArn0NoiRJkiQNL53YIgXwceB24KyI2JWiu987gPHAn4CT\nqo7dAPgD8DBF8AVARBxCEXi9DNwGHF8nep2bmRcPzFuQJEmS1Kk6MpDKzDkRsS1wKjAR2BN4lGKy\niKmZWW9q9Nq+dxuV2+WA4xsUNRMwkBpknTamrNPqK0mSpP7ryEAKIDMfAQ7rxXEPUacLY2ZOpWiR\n0hA0c2a7a9A748e3uwaSJElqh44NpLTsGz++q91V6NHMmV3troIkSZLapOMmm5AkSZKkdjOQkiRJ\nkqQmGUhJkiRJUpMMpCRJkiSpSQZSkiRJktQkAylJkiRJapKBlCRJkiQ1yUBKkiRJkppkICVJkiRJ\nTTKQkiRJkqQmGUhJkiRJUpMMpCRJkiSpSQZSkiRJktQkAylJkiRJapKBlCRJkiQ1yUBKkiRJkppk\nICVJkiRJTTKQkiRJkqQmGUhJkiRJUpMMpCRJkiSpSQZSkiRJktQkAylJkiRJapKBlCRJkiQ1yUBK\nkiRJkppkICVJkiRJTTKQkiRJkqQmGUhJkiRJUpMMpCRJkiSpSQZSkiRJktQkAylJkiRJapKBlCRJ\nkiQ1yUBKkiRJkppkICVJkiRJTTKQkiRJkqQmrdDuCkjDQVdXV7ur0JROq68kSdJgM5CSBsnMme2u\nQe+MH9/uGkiSJA19BlLSIBo/vqvdVejRzJld7a6CJElSR3CMlCRJkiQ1yUBKkiRJkppkICVJkiRJ\nTTKQkiRJkqQmGUhJkiRJUpMMpCRJkiSpSQZSkiRJktQkAylJkiRJapKBlCRJkiQ1yUBKkiRJkppk\nICVJkiRJTTKQkiRJkqQmrdDuCkjqTF1dXe2uQlM6rb6SJGloM5CS1GczZ7a7Br0zfny7ayBJkpY1\nBlKS+mX8+K52V6FHM2d2tbsKkiRpGeQYKUmSJElqkoGUJEmSJDXJQEqSJEmSmuQYKUkqdeLMfp1Y\nZ0mSlgUGUpJUpVNmIgRnI5QkqZ0MpCSpxlCfiRCcjVCSpHZzjJQkSZIkNclASpIkSZKaZCAlSZIk\nSU0ykJIkSZKkJhlISZIkSVKTDKQkSZIkqUlOfy5Jy7BOXLC3E+ssSRp+DKQkaRnnIsOSJLWegZQk\nDQMuMixJUmsZSEmSOkondv3rxDpLknpmICVJ6jh2V5QktZuBlCSpI9ldUZLUTk5/LkmSJElNMpCS\nJEmSpCYZSEmSJElSkwykJEmSJKlJTjYhSVKbdeL06J1YZ0lqJQMpSZKGgGVxSvdOC7Y6rb6S2stA\nSpKkIWJZnNK9UwJE1/uS1CwDKUmSNKCGeoDYTHDYaa1WnVZfqZN0ZCAVERsApwITgTHAY8APgKmZ\n+fRg5yNJkoaPZa2VrdOCrU6rr5ZdHRdIRcQmwO3A2hRBz/3AO4DjgIkRsUNmzh+sfNQ5Zs7sGvK/\nisrr1Cm8Tp3DazUwWn1OW32d7II5MLq6ugzk1K3jAingqxTBz7GZeW5lZ0RMB04AvgB8bBDzUYe4\n+eap3kx0AK9TZ/A6dQ6vVWcYCtep3eUvzVDogjl16tQByRdsaetEHRVIla1IE4C51cFPaQrwUeCg\niPhEZj4/0PlIkiRpaBqoVraByLfdLW3qm44KpIBdyu11tQmZ+c+ImEURIG0H3DgI+UiSJGmIanUr\n20C0HDbbDVNDR6cFUuPK7QMN0h+kCIA2pecAqFX5SJIkSQOuE7v+dWKdm9FpgdTocvtMg/TK/tUH\nKR9JkiRpUHTKpCAwPLordlogJUmSJA1bQ31SEBg+3RUjM9tdh16LiC8DnwA+kZln1Ek/B/g48LHM\nPH+g8ymP7ZwTKEmSJA0TmRkDmf9yA5n5ALi/3I5rkL5puW009qnV+UiSJEkahjqtRWosMBuYC7w+\nqyofEaOAx4AE1snMFwY6H0mSJEnDU0e1SGXmHIopyzcGjq5JngqsClxaCX4iYoWI2LwMnPqcjyRJ\nkiRV66gWKehuTbodWAf4IUU3vXcA44E/Adtn5lPlsRsBc4CHM3PjvuYjSZIkSdU6LpACiIgNgFOB\nicCawKPA1cDUzHym6riNKAKphzJzbF/zkSRJkqRqHRlISZIkSVI7ddQYKUmSJEkaCgykJEmSJKlJ\nBlKSJEmS1CQDqT6KiA0i4qKIeDQiFkbE3Ig4IyJWb3fdBBExJiKOiIirI2J2RDwfEU9HxK0RcVhE\nDOhK1+qfiDgoIhaVj8PbXR+9IiJ2Lb9Xj5f/9/0tIn4WEe9pd91UiMIBEXFTeX2ej4g/R8QVEbFd\nu+s3nETEfhFxdvm3Z0H5f9qlS3nN9hHx04iYX167eyPiuIjwnm0ANXOtImLTiPh0RNwYEX+NiBfL\n/xN/EBHjB7nqw0pfvlM1r7+w6v5iiYnomrVCfzMYjiJiE4qp09cGfsArU6cfB0yMiB0yc34bqyj4\nAPBVipkYbwL+AqwH7ANcCLwH2L9ttVNDEfFa4Bzgn8BIisWxNQRExJeATwJ/pfi/7wmKJSTeCuwM\nXNu+2qnKBcBhFNencp02BSYB+0bEwZn57TbWbzj5HPAW4FngEWBzevg/LSImAVcBzwPfA+YD7wPO\nAHag+NumgdHMtTqN4lr8HvgJxXXanOJavS8ijsvMswe8xsNTU9+pahGxF8X/jf8ERrSiMs7a9Gnc\ncAAAEgVJREFU1wcR8XNgAnBsZp5btX86cAJwfmZ+rF31E0TELsCqmXlNzf51gV8BrwX2y8wZ7aif\n6itbCn8BbEixFMEngSMy86K2VkxExJHA+cC3gKMy86Wa9BVq92nwRcSGwFzgceAtmflEVdp44EZg\nbmZu0p4aDi/lOf9rZv45Inam+GHvssw8uM6xqwGzgVHADpn5v+X+V1Fct3cCH8zM7w1W/YeTJq/V\nIcA9mXlvzf6dKP6GJbBRZj4+8DUfXpq5TjWvWxu4j+K7tD7Fj3+vz8w5/amPzcRNKlujJlD8ITq3\nJnkKxa9IB0XEqoNeOXXLzJtqg6hy/9+Br5VPdx7cWqkXJgO7AB+h+C5pCChv5L4APEydIArAIGrI\nWLvc/rI6iALIzJkUv8SuNdiVGq4yc2Zm/rl8urQu5ftRXJvLK0FUmceLFL/CA/gj7QBp5lpl5sW1\nQVS5/xbgZmAlYPvW11JNfqeqfR1YBBzd5Ot6ZCDVvF3K7XW1CZn5T2AWRXOh/dCHrpdqthoCImIL\nYBpwZmbe1u76aDETKG7wZgAZEe8txwcc55ibIed3FK1R74iINasTyl/LRwLXt6NiWqp3l9uf1Um7\nBXgBeGdErDh4VVIf/LtmqzaLiEMpujZ/NDOfamXejpFq3rhy+0CD9Acpbjo2pWg+1BASESsAlebf\nen+s1AbldbkUeAj4bHtrozreVm5fBO4B3lidGBG3UHSVfaL2hRpcmbkwIvYGLgP+EBE/BJ4ENgH2\novgR8KNtrKIaa3h/kZkvR8RcYAtgLPCnwayYeqfsWrsr8BxF8Ks2K6/JV4BLM/PHrc7fFqnmjS63\nzzRIr+x39r6haRrFTeA1mfmLdldG3U4BtgIOLbuxaGhZp9x+CngZeBdFy8ZbKG7MdwKubE/VVMdv\nKcayrQwcAXyaotvYX4GLDXiHrNEUY2t6ur8IvL8Yksou0N+m6NbXlZmNrqMGSTnT5cXAAoqhAy1n\nIKVhIyImA/8F/BH4cJuro1JEvAP4DPDlzPxlu+ujuip/K/4NvC8zb8/M5zPzd8D7KWZO2tlufu1X\ntu7eAHyeYva+scCqwDbAHODbEfE/7auhtOyJiOUpelVsTzHGbXqbq6TCCRQ/9B05UIGtgVTzKhdi\ndIP0yv6nB6Eu6qWIOAY4k2Kq0l0y0+szBJQ3fZdQdFOZ0uiwwauRGqh8X+7OzL9UJ2TmC8DPy6dv\nQ+12EMXsbjMy85OZ+VBmLszMuymC3r8Bn4iIjdtaS9VTaXHy/qKDlEHUZRStvt+j+A6qzSJiM4pJ\nki7KzEZDOfp9f2Eg1bz7y+24BumblttGY6g0yCLieOAsimkvd8nMf7S5SnrFSIrvzBuAhVWL5C2i\n6O4HcEG574y21VKV//ca3cBV9q8yCHVRz7YttzfVJpRB710Uf/u3GsxKqVcq456WuL8of3TamKJV\nuF/TNat1yok/vgscQNGt70OZuai9tVLpDRTdLA+rvrco7y92Ko95sNw3qa+FONlE8yp/nCZERGTV\nQlwRMYpiwbzngDvbUTktLiI+DXwRuBuY4ELJQ85C4BvUX0xvG2Br4FaKG4zbB7FeWtwNFNfoDbX/\n75XeVG7nDm61VMe/yu06DdLXrjlOQ8cNwIeAicDlNWk7UfxQcXNmOhvcEBARKwFXUCzCe3FmfqTN\nVdLi5tL4/uI/gPUort8C+vG3y0CqSZk5JyKuA3anmIv+nKrkqRR90b9W/vKnNoqIkymuya+B3e3O\nN/Rk5kLgyHppEdFFEUhd7IK87ZWZf4mIH1PcMBxH0U0WgIjYHdgDeApnwhwKrgeOB46KiPMz89FK\nQkS8h+LHvhfwh4mh6PvA/wAHRsTZmfkbgIhYmWLMG8B57aqcXlFOLDEDeA9wIc6EOeSU63w1ur+Y\nSRFIfba/C/IaSPXNxyn+CJ0VEbtSdHt5BzCe4pfzk9pXNUH3quNTKWYYuw04PmKJrrBzM/Piwa6b\n1KGOpghsT4+I91JMg74xsDdFd6MjMvPZNtZPQGb+NCJ+QHFd/hgRVwN/p5g2+z8ofp3971avpaL6\nyqno9y6frldut4+Ib5X/npeZnwLIzGcj4kiKgGpmRFxO8QPF+4DNgCsz84pBq/ww08y1Ar5GEUQ9\nATwKTKlzj3FTZt48cDUenpq8TgPOQKoPylapbYFTKZrg96T4Ip0JTHXKyyFho3K7HMWvs/XMpJgW\nU0NTUr9JXm2QmX+LiG0oxq69j6Kr0TPAD4EvZuav21k/LWY/4CiK2UnfT9FT4kngJ8BZmemCvINn\nS4q1Cyv/lyXFDxBjy+cPUSwrUCRm/jAidqb4QXZfiinsH6SYfeyswanysNXMtdqoTF+TV8bzVktg\nEWAg1XpNfacaaNn9RSzZ1V2SJEmS1BNn7ZMkSZKkJhlISZIkSVKTDKQkSZIkqUkGUpIkSZLUJAMp\nSZIkSWqSgZQkSZIkNclASpIkSZKaZCAlSZIkSU0ykJIkSZKkJhlISZIkSVKTDKQkSZIkqUkGUpIk\nSZLUJAMpSZIkSWqSgZQkdZiI2CgiFkXENwe53IciYu5gllmWO758v1MGu2xJkhoxkJKkQVAGAtWP\nlyJiXkTcEBEf7GO22dJK9q68wS6ztnwtIyLiW+V34XXtrosk9cUK7a6AJA0jCUwt/70isAUwCdgl\nIrbNzE/0Mp9HgM2BZ1pfxR69e5DL07LP4FhSxzKQkqRBlJmnVj+PiHcDvwCOj4izMvPhXuTxEvDA\nAFWxp3IHvVuflnlRPiSp49i1T5LaKDNvBP5EcTO5LUBEdJVdnnaOiA9FxC8j4p+V8UmNxkhVdZXa\nMCI+GhH3RcQLEfF4RJwfEavVq0NEbBARZ0XEgxHxfEQ8WZb5uZrjlhgjFRGHlmUeEhHvjYjby7rO\nj4grI+L1dcrbLCKmRcSvy+6NC8u8z4+I1/TrhC5ezgFl18n55XmYGxHfiYhtao57VUT8d3m+nouI\nZyLilojYv06e3ec+IjaJiO+X52tBRFwXEW8qj1s7Ii6MiMfKsu+KiPF18qu+1odExN3lNfh7RHwj\nItZt8N42jYhLIuJvEfFiub24wfmuLmO/iPhV+T6fjIjvRsSrG5QxJiK+GBF/LOv0dERcHxET6hxb\n/TnYJSJmlufkmYj4SURsXnP8IuDg8unceKXL69yqY8ZGxNcjYnbV5/K3EXFeRIypV2dJGky2SElS\n+1V+ka/t5vQJYALwI+AGYHRNeqNuUV8Gdi9f9zOKLnlHAq8Hdl2s4IhtgZ8DawA3A98HVgXeCEwB\nPt/LMvcB3gPMAG4Etgb2pei2uH1mPlBz7EfL424D/gW8CTgC2CuKbo6PNihnqSIigG9S3KjPK9/T\nPOC1wHjgfuA35bErUbz/nYA/AucAI4D9gO9FxFaZeVKdYjYC7gT+AFwEbAy8H5gZEe8Cfgo8BXwX\nWBM4ELg2IjbLzL/Wye8Eimt2efnaHYGPAOMj4h2Z+UTV+3sbcD0wEvhhWYctgIOASRGxW2b+uk4Z\nHwfeV77mJmA74ABgy/J9/quqjA2BmcCGwC1lnUYC/wH8LCI+mpkX1injPyi6q/4UOI/ic7Qn8LaI\neENmPlkeNxXYG9gSOBN4utz/dFn++sBdwCjgGuBKYGVgbPk+zwbm1ylfkgZPZvrw4cOHjwF+AIuA\nl+vs361Mewl4bbmvq9z3LLBlnddsVKZfVLP/W+X+h4ANqvYvTxEkLQLeVrV/JWAu8DJwYJ1yXl3z\n/CFgTs2+Q8t8FwF71qRNLvdfX5svsGKd8iaU5+GrNfvHl/mc0stzfVR5/J3AqJq05YD1qp5/pjz2\nJ8ByVfvXLs/NIuCddc79IuAzNXl/rtz/dJ33cFCZdnrN/sq1Xlh7rYHTy7QLq/YFRcD3MvDBmuM/\nUB7/RyDqlPE08Maa13y7TNu/Zv/M8lp8oGb/aOBu4HlgnTqfg38Bu9S85v+WaZ9q8Hl9XZ1reGyZ\ndmydtFWAlQfz++vDhw8f9R527ZOkwRMRMaXsavWFiPg+RYtRAmfmki0VX8/Me/tQzqmZ+UjlSWa+\nTNFCA/C2quP2omhx+FFmXl6bSTbXKnRDZv60Zt85wBzg3VE1M1tmPpqZ/65T3i8oWlf2aKLceo6l\nOKcfzcxna8pYlJmPV+06jOKG/b8yc1HVcfOA08qnR9QpYy4wrWbfxeV2eeBTNWnfoQhMtmxQ50vr\nXOsuYAHwwYhYsdy3PTAOuCMzv1t9cGZeQdHCNw54V50yzsrM39fsu6Dcdn8uImJLiha6q8o8q8t4\npqzXyhQtjrUuz8ybavZ9vbaMXqi0fC5cIiHzhcxcYr8kDTa79knS4KqshZQUXb9uBr6Rmd+pc+yv\n+lhGvW5dlcBqjap925Xba/tYTrWba3dk5qKIuI2iO9ZWwF8qaRFxEEUrxpbA6hTBR8WLfa1ERIyg\n6E72+NKC0IgYBWwCPJKLdz2suLHcblUn7Z7MrO3m+Fi5fSAzn6tOKM/FP4ANGlSn3vlbEBH3UAQ1\nWwC/Bd5aU7daN1EEUVsBt9ak9fZz8c5yu3pEdNV5zdrldos6ab0tY2l+RNGSdW5E7AFcB9yWmX9o\nIg9JGlAGUpI0eDIzl1/6Yd0eX/ohdT1dZ99L5ba6/NXL7d/6WE61vzfYX3kP3eO7IuIM4DjgUYog\n7m/AC2XyR4D+rCvUzHuq1OmxBumVuq9eJ22Jqecz86VieFbDaelfopj2vp7enr+l1bmyv16de/u5\nWLPcTigf9STFWLKlllF1Xnr92c/Mv0TE2ylavyZSjKsjIv4K/L/MPLu3eUnSQDGQkqSha6DX2Knc\n9DZqJWlG3dnlgPXK7TMAEbEOxdip+4Dta1tuIuL/9LMelffUm9n/KgHPeg3S1685biD16vwxOHWu\nvHZyZp7Tj3z6JTPvBw6MiOUpWi53o+i2+ZWIeC4zL2pX3SQJnP5ckoazO8rte1qQ1/jaHeUN8Lso\nAsK7y91jKSZMuK5OELVBmd5nZZ6/A9aLiHpd8qqPfRb4M7BBvWnDgV3K7f/2p069NL52R0SMpuii\n9wLFBBLVddml9via/f2pc+VzsVM/8uiNl8ttjy1VmflyZv5vZn4J+GC5e9KA1kySesFASpKGrx9T\nzMT3vog4sDaxDGx6690R8d6afcdQBEY3VU2kUVknaMeI6P4bFBEjKSY+aKbrYyNnldsl1s6KiOUi\noro15yKKwO7LNfVZCziZIggcjJaPD9cJ/LqA1YDvVibnyMxZFOuOvSsiFpvsISL2owhc/5SZt/W1\nIpn5G4rxVftExEfqHRMRb46IteulNaEyFfqGdfJ/axlI1qpcu+f7WbYk9Ztd+yRpmMrMf0ex6Ox1\nwHci4qPALylmZNuCYv2pRmN6av0YuDoirqZo5dmKYmzLkxTrF1XK/HtEXE6xrtI9EfELinE/Eyhu\nju+h/uQOzbyvCyNiR+DDwIMR8SOKdaReTdFi8w3g1PLw/0fRIjcJuDcirqVYR2t/YC3gS5l5e3/q\n00s/BWZFxBUU46LeBexAEXj+d82xhwC/oFjn6ocUgdU4inWZFvDKQrf98SGKCS2+ERGTKSY+eZqi\nG+hbKCb02I7ivPbV9cAngQsiYgbFdP9PZea5FO/hqHKykjkUE7NsQjHT5EKKtackqa0MpCRp6En6\nNj6q6ddl5m/KlpD/pggotqe4GZ9N0SJTm38jV1FMc30S8F6K9YSuolhraXbNsYdT3BwfQBFk/YNi\nlrYp5Wv6PTYsMw+JiJ9TrCm1P/AqisktbinLqhz374iYAPwXRfBwDPBv4F6KMULf629dqqvVQ9oZ\nwA+A4ymComcppqz/bFYtxlvW+Vfloryfoxg3tBdFQPNt4LTMfLBOuc1+Lv4WEdtQjEnal+LcLE8x\nmcUfgK9QdKHsTxnXRcQnKBaLPo5iXbOHgHMppotfieLzuA3F2lGPlPunO3ufpKEglpy9VZKk3omI\nQym6vh2amZe0uTodp5xe/BRgfGbe0ubqSJKa4BgpSZIkSWqSgZQkSZIkNclASpLUH30dz6WC50+S\nOpRjpCRJkiSpSbZISZIkSVKTDKQkSZIkqUkGUpIkSZLUJAMpSZIkSWqSgZQkSZIkNclASpIkSZKa\nZCAlSZIkSU0ykJIkSZKkJhlISZIkSVKTDKQkSZIkqUkGUpIkSZLUJAMpSZIkSWqSgZQkSZIkNen/\nA5fEUoDBDmyKAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 282, "width": 425 } }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "%config InlineBackend.figure_format = 'retina'\n", "\n", "plt.bar(range(1, 14), var_exp, alpha=0.5, align='center',\n", " label='individual explained variance')\n", "plt.step(range(1, 14), cum_var_exp, where='mid',\n", " label='cumulative explained variance')\n", "plt.ylabel('Explained variance ratio')\n", "plt.xlabel('Principal components')\n", "plt.legend(loc='best')\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "cross referencing with Andrew NG's course, we could use this information to choose K by seeing how many features it will take to preserve 90% of the variance:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "with 1 dimensions we preserve 0.37 of variance\n", "with 2 dimensions we preserve 0.56 of variance\n", "with 3 dimensions we preserve 0.67 of variance\n", "with 4 dimensions we preserve 0.75 of variance\n", "with 5 dimensions we preserve 0.81 of variance\n", "with 6 dimensions we preserve 0.86 of variance\n", "with 7 dimensions we preserve 0.90 of variance\n", "with 8 dimensions we preserve 0.92 of variance\n", "with 9 dimensions we preserve 0.95 of variance\n", "with 10 dimensions we preserve 0.96 of variance\n", "with 11 dimensions we preserve 0.98 of variance\n", "with 12 dimensions we preserve 0.99 of variance\n", "with 13 dimensions we preserve 1.00 of variance\n" ] } ], "source": [ "for i, cum_var in enumerate(cum_var_exp):\n", " print(\"with {} dimensions we preserve {:.2f} of variance\".format(i + 1, cum_var))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Going with 7 or 8 dimensions would be a sensible choice.\n", "\n", "## Feature transformation" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 282, "width": 425 } }, "output_type": "display_data" } ], "source": [ "# Make a list of (eigenvalue, eigenvector) tuples\n", "eigen_pairs = [(np.abs(eigen_vals[i]), eigen_vecs[:, i])\n", " for i in range(len(eigen_vals))]\n", "\n", "# Sort the (eigenvalue, eigenvector) tuples from high to low\n", "eigen_pairs.sort(reverse=True)\n", "\n", "w = np.hstack((eigen_pairs[0][1][:, np.newaxis],\n", " eigen_pairs[1][1][:, np.newaxis]))\n", "\n", "X_train_pca = X_train_std.dot(w)\n", "colors = ['r', 'b', 'g']\n", "markers = ['s', 'x', 'o']\n", "\n", "for l, c, m in zip(np.unique(y_train), colors, markers):\n", " plt.scatter(X_train_pca[y_train == l, 0], \n", " X_train_pca[y_train == l, 1], \n", " c=c, label=l, marker=m)\n", "\n", "plt.xlabel('PC 1')\n", "plt.ylabel('PC 2')\n", "plt.legend(loc='lower left')\n", "plt.tight_layout()\n", "# plt.savefig('./figures/pca2.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Scikit-learn's PCA" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0.37329648, 0.18818926, 0.10896791, 0.07724389, 0.06478595,\n", " 0.04592014, 0.03986936, 0.02521914, 0.02258181, 0.01830924,\n", " 0.01635336, 0.01284271, 0.00642076])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.decomposition import PCA\n", "\n", "pca = PCA()\n", "X_train_pca = pca.fit_transform(X_train_std)\n", "pca.explained_variance_ratio_" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwcAAAIcCAYAAACjPtKjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAWJQAAFiUBSVIk8AAAIABJREFUeJzs3Xmcr3Vd///HU1AKpIMLqEXKIoK7JgZKwUED8ZBrmH3N\nxPyiftUUzfq5ZDGHMpcyEJc0DUUytxLMwB0OKGiZkqbGohxcIExlEwFRzuv3x3WNDMN8zjkz8/5s\nM4/77Ta363yu65r3+811DjOf5+e9paqQJEmSpNuMuwGSJEmSJoPhQJIkSRJgOJAkSZLUMxxIkiRJ\nAgwHkiRJknqGA0mSJEmA4UCSJElSz3AgSZIkCTAcSJIkSeoZDiRJkiQBhgNJkiRJPcOBJEmSJMBw\nIEmSJKlnOJAkSZIETGE4SHJEkjck+XSSa5JsSnLyEsvaNcmJSS5LckOSjUmOS7JT63ZLkiRJk27b\ncTdgCV4BPAD4IfAdYB+gFltIkj2Bc4GdgVOB84H9gKOBw5IcUFVXtGq0JEmSNOmmrucAeCGwV1Wt\nAZ6zjHLeTBcMnl9VT6yql1fVI4HjgL2BVy6/qZIkSdL0SNWiP3SfGEnWAmcA/1BVT1vE9+0JXARs\nrKo95127PXA5XW/EXarqunYtliRJkibXNPYctHBwf/z4/AtVdS1wDrADsP8oGyVJkiSN02oNB3v3\nxwsHXL+oP+41grZIkiRJE2G1hoM1/fHqAddnz7tqkSRJklaNaVytaKIkmd5JG5IkSZoqVZVhlr9a\new5mewbWDLg+e/6qEbRFkiRJmgirtefg/P6494Drs3MNBs1JuJVpXvVpmiXx2Y+Rz3+8fP7j47Mf\nL5//eA3r+af/PNy/2oUlQ+0w+JnV2nNwZn88JPOedJIdgQOAHwGfG3XDJEmSlurww7s32cP8guGV\nq/Fb0eEgybZJ9kmyx9zzVXUx3TKmuwPPm/dt64HtgZOr6vrRtFSSJGn5Tj993C1YnnXrxt0CTd0m\naEkeDzy+f3lX4FDgYuAz/bnvVdUf9/fu1l/7ZlXtPq+cPYBzgV2AD9ENNdoPWAtcADy8qq7civYU\nOKxoXOxaHi+f/3j5/MfHZz9ePv/BRjE0x+c/HrODXYY9IXka5xw8EHga3Q7G9MfdgdnegUuAP573\nPbf6F1xVFyfZFzgWOAxYB1wGHA+sr6pBy5xKkiRJK9LU9RxMGnsOxstPL8bL5z9ePv/x8dmPl89/\nMHsOVq5R9Rys6DkHkiRJkrae4UBT7Zhjjhl3E1Y1n/94+fzHx2c/XsN8/qNY7WfYKwkNm//+VzaH\nFS2Tw4okSVo5VsKSmuvWwWmnjbsVas0JyZIkSWPiZ35arRxWJEmSJAkwHEiSJEnqGQ4kSZIkAYYD\nSZIkST3DgSRJasalQKXpZjiQJEnNnH76uFuwfOvWjbsF0vi4lKkkSWrOpUCl6WTPgSRJkiTAcCBJ\nkiSpZziQJEmSBBgOJEmSJPUMB5IkSZIAw4EkSRPFfQIkjZPhQJKkCeI+AZLGyX0OJEmaQO4TIGkc\n7DmQJEmSBBgOJEmSJPUMB5IkSZIAw4EkSZKknuFAkiRJEmA4kCRJktQzHEiSJEkCDAeSpBXGHYYl\naekMB5KkFcUdhiVp6dwhWZK0IrnDsCQtnj0HkiRJkgDDgSRJkqSe4UCSJEkSYDiQJEmS1DMcSJIk\nSQIMB5IkSZJ6hgNJkiRJgOFAkiRJUs9wIEmSJAkwHEiS5jn8cEim90uStHSGA0nSLZx++rhbsHzr\n1o27BZI0nbYddwMkSZOpatwtkCSNmj0HkiRJkgDDgSRJkqSe4UCSJEkSYDiQJEmS1DMcSJIkSQIM\nB5IkSZJ6hgNJkiRJgOFAkiRJUs9wIEmSJAkwHEiSJEnqGQ4kSZIkAYYDSZIkST3DgSRJkiTAcCBJ\nkiSpZziQpCE4/HBIpvNLkrR6GQ4kaQhOP33cLViedevG3QJJ0jhsO+4GSNJKVjXuFkiStPXsOZAk\nSZIEGA4kSZIk9QwHkiRJkgDDgSRJkqSe4UCSJEkSYDiQJEmS1DMcSJIkSQIMB5IkSZJ6hgNJkiRJ\ngOFAkiRJUs9wIEmSJAkwHEiSJEnqGQ4kSZIkAYYDSZIkST3DgSRJkiTAcCBJkiSpZziQJEmSBExx\nOEiya5ITk1yW5IYkG5Mcl2SnRZSRJE9OcmaSS5Ncl+QbSd6fZP9htl+SJEmaNKmqcbdh0ZLsCZwL\n7AycCpwP7AccDFwAHFBVV2xFOW8HngF8vy/n+8BewGOBbYGnVdW7t1BGAUzjc5Qm2eGHw+mnj7sV\ny+ePBklSC0kAqKoMtZ5pfFOb5GPAIcDzq+pNc86/DngR8Naqes4WyrgHsBG4HHhAVX1/zrW1wBnA\nxqracwvlGA6kIchQf/SNxrp1cNpp426FJGklMBwM0PcaXMQCb9yT3J7uzX4Bd6mq6zZTzr7AvwMf\nqqonLHD9GqCqas0W2mM4kIZgNhz4v5YkSaMLB9M45+Dg/vjx+Req6lrgHGAHYEtzBr5CFyT2S3Kn\nuReSHAjcHvjkslsrSZIkTYlpDAd798cLB1y/qD/utblCquoG4PHAtcDXkvxdklcleT/wMbrw8ewG\n7ZUkSZKmwrbjbsASzA7zuXrA9dnzW7Nq0ZeBdwIvAY6ac/7rwElz5yFIkiRJK9009hw0kWRb4FPA\nXwBvA/YAtgceAlwMvDvJaxZR3sCvmZmZIfwXSJIkaSWZmZkZ+H5yVKZxQvJfAS8GXlxVxy1w/Y3A\nc4HnVNVbN1PO04ETgQ9W1RHzrv083bCluwF7VdXGzZTjhGRpCJyQLEnSzZyQPNj5/XHvAddn5xoM\nmpMwa9/+eOb8C1V1PfB5uufzoMU2UJIkSZpG0xgOZt/MH5J5fSxJdgQOAH4EfG4L5dzYH3cZcH3n\nefdJkiRJK9rUhYOquphuJaHdgefNu7yebt7Ayf2n/yTZNsk+SfaYd+/sMqXPSvKLcy8keTRdyLie\nbidmSZIkacWbujkHAP0b/XPpPvX/EN1Qo/2AtcAFwMOr6sr+3t3oJhh/s6p2n1fOB+mWM/0hcArw\nXeDewG/SbaT2wqp6wxba4pwDaQiccyBJ0s3cIXkLkuwKHAscBtwJuIzuDf76qrp6zn270YWDS6pq\nj3ll3AZ4FvB7wP3oeh1+QLdz8glVtcVN0AwH0nAYDiRJupnhYEoYDqThMBxIknQzVyuSJEmSNFKG\nA0mSJEmA4UCSJElSz3AgSZIkCTAcSJIkSeoZDiRJkiQBsO0wCk2yI7ATcHVVXTOMOiRJkiS11azn\nIMltk7wsyTeAq4BLgCuTfL0/P5QgIkmSJKmNJpugJbkd8DHgIGATcCnwP8DdgF2BAJ8GDqmqG5dd\n4QRxEzRpONwETZKkm03bJmh/SBcM/hW4d1Xdo6r2r6p7AHsD/wL8OvDiRvVJkiRJaqxVz8GX6XoH\nHlRVNy1wfRvgPwGq6v7LrnCC2HMgDYc9B5Ik3Wzaeg7uCZy+UDAA6M9/pL9PkiRJ0gRqFQ5+Atx+\nC/ds398nSZIkaQK1CgdfAo5IsstCF5PcGTiiv0+SJEnSBGoVDt4I7Az8e5KjkuyR5Of74zOAfwd2\n6e+TJEmSNIGaTEgGSPKXwEv7l3MLnZ008dqqeikrjBOSNakOPxxOP33crVg+/9eSJGl0E5KbhQOA\nJA8DngH8CrAGuBr4InBiVX22WUUTxHCgSZWh/ugYjXXr4LTTxt0KSZLGbyrDwWpkONCkcilQSZJW\njmlbylSSJEnSlNt2Kd+U5O79Hy+rqp/Oeb1FVfWtpdQpSZIkabiWNKwoySa6Scf3rqoL57zeUjdH\nVdU2i2/m5HJYkSaVw4okSVo5RjWsaEk9B8C76MLANXNebw3fpkiSJEkTygnJy2TPgSaVPQeSJK0c\nTkiWJEmSNFJNwkGSTUn+bAv3vCLJTS3qkyRJktTeqHsOVsC2TJIkSdLKNMpwcAfghhHWJ0mSJGkR\nlrpaEUkOnP1jf9xtzrm5tgHuATwFuGCp9UmSJEkariWvVtTvbbAYm4Ajq+rdS6pwQrlakSaVqxVJ\nkrRyTPo+BwDHzvnznwFn9V/z3QT8ADijqs5fRn2SJEmShqjJPgdJLgGOq6rXL7uwKWPPgSaVPQeS\nJK0co+o5cBO0ZTIcaFIZDiRJWjncBE2SJEnSSC1nzsEtJLkNcARwKPBLwHYL3VdVj2hVpyRJkqR2\nmoSDJNsBHwHWtihPkiRJ0ui1Glb0Erpg8BfAnftz6+l6EJ4CfBt4L3DbRvVJkiRJaqxVOHgScF5V\n/VlVXdGfq6r6n6p6L3Aw8JvAixrVJ0mSJKmxVuFgT+Azc14Xc3oJqupi4DTgyEb1SZIkSWqsVTj4\nCXDDnNfXAjvPu+dbdCFCkiRJ0gRqFQ4upZtfMOtC4GHz7nkQcAWSJEmSJlKrcPAZ4OFzXp8C3D/J\n3yc5PMlfA4cAGxrVJ0mSJKmxJjskJzkY+P+A51bVxiQ7AGcAD51z29eBR1TVd5Zd4QRxh2RNKndI\nliRp5RjVDslNwsGCBSe3BR4H3BPYCHy4qq4bSmVjZDjQpDIcSJK0ckxVOEhyd+DGqrp8+U2aLoYD\nTSrDgSRJK8eowkGrOQeXAH/ZqCxJkiRJY9AqHFwFfL9RWZIkSZLGoFU4+Czw4EZlSZIkSRqDVuFg\nPfDrSZ7ZqDxJkiRJI9ZqQvIxdJueHQqcB/w7cDlwq8Kr6thlVzhBnJCsSeWEZEmSVo5pW61o09be\nW1WteismguFg5Tr8cDj99HG3Yvn8pylJ0vQbVTjYtlE5j2hUjjQxVkIwWLdu3C2QJEnTZGiboK0W\n9hysXA7LkSRJk2La9jmQJEmSNOUMB5IkSZIAw4EkSZKknuFAkiRJEmA4kCRJktQzHEiSJEkCDAeS\nJEmSeq02QfuZJPcG7g3sUFUnty5fkiRJ0nA06zlI8uAkXwC+CvwT8M4519YmuS7JY1vVJ0mSJKmt\nJuEgyb2AM4F7Aa8HPgLM3b3tbOBK4Lda1CdJkiSpvVY9B8cA2wH7V9WLgM/PvVhVm4DPAg9tVJ8k\nSZKkxlqFg0cCH6yqr27mnm8Dv9ioPkmSJEmNtQoHd6B78785oetdkCRJkjSBWoWD/wXuuYV77sOW\nA4QkSZKkMWkVDj4FPCbJPgtdTPJQuqFHH2tUnyRJkqTGWoWDVwM3AWcneQ5wN4Ak90vyXOBfgWuB\nv25UnyRJkqTGUlVtCkoOA94DrFng8lXAEVV1RpPKJkiSAmj1HDU50i/G61+tJEkat/RvTKoqW7h1\nefW0fFOb5A7A04CHAXcCrqZbwvQdVXVFs4omiOFg5TIcSJKkSTGV4WA1MhysXIYDSZI0KUYVDlrN\nOZAkSZI05ZqEgyT/L8k3kiy4yVmSXZNcnOSoFvVJkiRJaq/JsKIkZwPbVNUBW7jnpqo6eNkVThCH\nFa1cDiuSJEmTYtqGFe0N/OcW7vkysOA+CIvV90ScmOSyJDck2ZjkuCQ7LaGsRyY5JcnlfVmXJvlo\nkke3aKskSZI0LbZtVM4auuVKN+ca4I7LrSjJnsC5wM7AqcD5wH7A0cBhSQ7Y2pWRkrwW+CO6nZtP\nBb4P7AL8CnAQ8JHltleSJEmaFq3CweXAA7Zwz/2B7zWo6810weD5VfWm2ZNJXge8CHgl8JwtFZLk\nmXTB4J3As6rqp/Out3o2kiRJ0lRoNefgRLr9DQ6uqk8vcP3XgTOBd1fVkcuoZ0/gImBjVe0579rt\n6UJKAXepqus2U852dL0FPwL2mh8MFtkm5xysUM45kCRJk2La5hy8FrgR+EQ/9v/QJPdN8qgkxwOf\n7K+/Zpn1zE5m/vj8C1V1LXAOsAOw/xbKOQS4M/BBoJIcnuQlSY5OsqXvlSRJklakJkNnqur8JE8C\n/pFu7P/R8265BnhKVX1tmVXt3R8vHHD9Iro3/nsBZ2ymnIf2xx/TTaS+79yL/cpKR1TV95feVEmS\nJGm6NBtXX1Wn9cN+jqT75H4nuknKnwVOqqofNKhmTX+8esD12fNbWrVol/74x8BXgV+jCwl7AH8N\nHAp8gJt7KiRJkqQVr+mk2/6T9te1LHNIZodT/QR4bFV9q3/9lSRPAC4ADkqyf1V9biwtlCRJkkas\n1ZyDUZntGVgz4Prs+S0tqzp7/bw5wQCAqroe+Fj/8qFspSQDv2ZmZra2GEmSJK1SMzMzA99PjkrT\nnoMkdwEeAtwB2Gahe6rqXcuo4vz+uPeA63v1x0FzEuaXMyhEzJ7/+a1sl6sVSZIkaVlmZmYGfqg8\nqoDQJBwkuS3wVrrlTDfXG1HAcsLBmf3xkCSpOe/Ik+wIHEC3POmWhgJ9qm/LfeaX07tff9y4jLZK\nkiRJU6VVz8GfA08HvgG8G/gOsNDeAcv6eL2qLk7ycboJw88D3jjn8npge+At/dCg2Y3M7gncWFUX\nzynnW0k+DDyWbmWl42evJTkUeBRwJfDR5bRXkiRJmiatNkH7FnA98ODNbT7WQpI9gHPpVhz6EN0Q\nof2AtXQTiR9eVVf29+4GXAx8s6p2n1fOL/Xl/DJdT8J/ArsDjwduAn6nqk7Ziva4CdoK5SZokiRp\nUkzbJmi7AKcNOxhA13sA7Au8ky4U/CHdm/rjgf1ng8H8b1ugnEvp5ke8kW6uwguAA+kCxwFbEwwk\nSZKklaRVz8FFwFlVddTymzRd7DlYuew5kCRJk2Laeg7eAaxLsqXNxyRJkiRNqFbh4DXAZ4BPJHlE\nkl9oVK4kSZKkEWk1rGjTvFMLFRqgqmrB/Q+mlcOKVi6HFUmSpEkxqmFFrZYyPXsr7/NtliRJkjSh\nmvQcrGb2HKxc9hxIkqRJMW0TkiVJkiRNOcOBJEmSJKDdnAMAkvwi8EjgF4HtFrqnqo5tWackSZKk\nNprNOUhyLPBSthA4qmpF9VY452Dlcs6BJEmaFFM15yDJ7wKvoFu16Ij+9EnA7wJ/B2wC3gcc3KI+\nTYfDD+/eYE/rlyRJ0mrTaljRc4BLgUdX1U/6ZLOxqt4DvCfJKcDpwHsa1acpcPrp427B8q1bN+4W\nSJIkjU6rcHB/4L1V9ZM553622VlVfSzJx4A/Av6lUZ2aEg7LkSRJmg6txv/fFvj+nNfXA2vm3fMV\n4EGN6pMkSZLUWKtwcDlwtzmvvw08YN49dwN+2qg+SZIkSY21CgfnAfeb8/pTwIFJnpZkhyS/STdR\n+bxG9UmSJElqrMlSpkmeDrwZuG9VbUxyd+CLwB2BAgLcCBxcVZ9ddoUTxKVMB3MpUEmSpDZGtZRp\ns30OblVwsgfwh8A9gY3Am6vqv4ZS2RgZDgYzHEiSJLUx9eFgtTAcDGY4kCRJamOqNkGTJEmSNP2W\ntM9BP6cA4LKq+umc11tUVd9aSp2SJEmShmtJw4qSbKKbaHzvqrpwzustdXNUVW2zhXumisOKBnNY\nkSRJUhujGla01B2S30UXBq6Z83pr+DZRkiRJmlBOSF4mew4Gs+dAkiSpjamakNxvdvaoFmVJkiRJ\nGo9WqxWdCBzWqCxJkiRJY9AqHHy3YVmSJEmSxqDVG/qPAAcnMSBIkiRJU6rVm/k/AXYETkxy50Zl\nSpIkSRqhJqsVJTkTuCNwf+DHwCXA5SywdGlVPWLZFU4QVysazNWKJEmS2hjVakWtwsGmrb23qlbU\n0CPDwWCGA0mSpDYmfRO0W1hpb/glSZKk1cg39ZIkSZIAw4EkSZKkXpNhRXMl2RX4JWC7ha5X1dmt\n65QkSZK0fM3CQZJHAccB+yxwuYD0x21a1SlJkiSpnSbDipLsD3wYWAO8sT99FvA24L/pgsGHgWNb\n1CdJkiSpvVZzDl5Gt7/Br1bVC/pzZ1bVs+n2PvgL4DeAf2pUnyRJkqTGWoWDhwH/UlWXzi+7qjYB\nx9D1INhzIEmSJE2oVuFgDfDNOa9vBHaYfVHdDmHnAL/eqD5JkiRJjbUKB98D7jDv9Z7z7rktsH2j\n+iRJkiQ11iocXMgtw8BngUOS7A2Q5G7AE4GLGtUnSZIkqbFW4eAjwEFJ7ti/fj1dL8EXk3weOB/Y\nBTi+UX2SJEmSGmsVDt4KHAT8FKCqzgGOADbSrVZ0GfD/quqkRvVJkiRJaizdXGEtVZIC8DneWtId\nfTSSJEnLk/6NVVVlmPW02gStVQ+EJEmSpDFp9ab+O0lem+S+jcqTJEmSNGJNhhUluZJurwOALwLv\nBP6xqq5YduETzmFFgzmsSJIkqY1RDStqFQ62Ax4HHAk8iq5H4kbgdOAk4F+r6qZlVzSBDAeDGQ4k\nSZLamKpwcIsCk7sCv0sXFO7Xn/4e8B7gpKo6r2mFY2Y4GMxwIEmS1MbUhoNbFJ48mC4k/B9gZ6Cq\napuhVTgGhoPBDAeSJEltjCocbDvMwqvqvCQ/An4MvBC47TDrkyRJkrR0QwkHSXYCfoeu12C//vQ1\nwLuGUZ8kSZKk5WsWDpJsAxxGFwgeA2wHbAI+Sbd60SlVdX2r+iRJkiS11SQcJPkbunkFd+lPXUi3\nStHJVfWdFnVIkiRJGq5WS5luAq4G3ke3ItFnl13olHBC8mBOSJYkSWpj2iYkP4Vu2NCPG5UnSZIk\nacSGupTpamDPwWD2HEiSJLUxqp6D2wyzcEmSJEnTw3AgSZIkCTAcSJIkSeoZDiRJkiQBhgNJkiRJ\nPcOBJEmSJMBwIEmSJKm3pE3QkrwDWNLq9VX1jKV8nyRJkqThWtImaEk2LbXCqlpRvRVugjaYm6BJ\nkiS1MapN0JbUcwDsMe/1bYDjgF8DTgDOAi4H7gqsBV4AnA28aIn1SZIkSRqyJfUc3KqQ5EXAnwK/\nUlWXLHB9d+ALwJ9X1XHLrnCC2HMwmD0HkiRJbYyq56DVEJ9nAe9fKBgAVNVG4APAMxvVJ0mSJKmx\nVuFgN+DKLdxzFbB7o/okSZIkNdYqHPwAeNSgi+n6QQ7t75MkSZI0gVqFg/cDD0rygX5+wc8k2aO/\n/kDgfY3qkyRJktRYqwnJOwKfAvYFbgIuBb4L3AXYlS6EfB74jar64bIrnCBOSB7MCcmSJEltjGpC\ncpNwAJBkO+DFwO8De8659HXgHcDrqurGJpVNEMPBYIYDSZKkNqZttSKq6sdV9ZdVtRewBrg7sKaq\n7lVVr2oZDJLsmuTEJJcluSHJxiTHJdlpGWU+Ncmm/uv/tmqrJEmSNC2WugnaZvVDh4YyfCjJnsC5\nwM7AqcD5wH7A0cBhSQ6oqisWWeYvA28ErgVuD/hZtyRJkladZj0HAEl2SfKcJCck+fs553dO8qtJ\ntm9QzZvpgsHzq+qJVfXyqnok3Q7NewOvXGSbQzfs6XvAWxq0T5IkSZpKzcJBkqOAS4A3AX8APH3O\n5bsCnwOessw69gQOATZW1ZvmXT4GuA546iJDyAuAg+nmSly3nPZJkiRJ06xJOEhyCPBW4ALgCcDf\nAj+bLFFV/wV8FXjcMqs6uD9+fP6FqroWOAfYAdh/awpLcm/g1cDxVfWZZbZNkiRJmmqteg5eAlwO\nrK2qD9EN0Znvy8B9llnP3v3xwgHXL+qPe22poCTbAifT9Xa8fJntkiRJkqZeqwnJ+wLvq6qrN3PP\nd4C7LbOeNf1xUD2z57dm1aI/Ax4EHFBVP15muyRJkqSp16rn4HZ0K/1szk50G6SNXZL9gJcBf1VV\n/zbu9kiSJEmToFU4+CbwkC3c86t0cxKWY7ZnYM2A67PnrxpUQD+c6F19W44ZdNtiG5Zk4NfMzMxi\ni5MkSdIqMzMzM/D95Ki0CgenAgcm+e2FLib5feCBwD8vs57z++PeA67PzjUYNCcBun0M9qKb/3DD\nnI3PNtENNQJ4W3/uuK1tWFUN/DIcSJIkaUtmZmYGvp8clbSoLMkdgS8Av0wXAHaiW3L0BcCBwBOB\nbwAP6VcVWmo9ewBfBzYC96w5jU+yI/A/dBuY7VJV1w8o4+eAN7DwRmcPAR4MfJquZ+ETVfWBLbSp\ngJH+pU2L2ZDro5EkSVqe2d6DqhpqN0KTcACQ5B7ASXRhYL5PA0+pqksb1PNR4FDgBVX1xjnn/wZ4\nIfCWqnpuf25b4J7AjVV18VaUPUPXe3BUVZ24le0xHAxgOJAkSWpjVOGg1WpFVNU3gbVJHgg8DLgT\n3RyBz1bVF1rVAzwXOBc4Ickj6YYa7Qespfu0/0/m3Lsr8DW6ORG7N2yDJEmStOI0CwezqupLwJda\nlzun/IuT7AscCxwGrAMuA44H1g9YTnVrP7uuRdwrSZIkrSjNhhWtVg4rGsxhRZIkSW1M3bCiJLcD\nHgc8FLgDsM1C91XVM1rVKUmSJKmdVqsV/SLwSWCfLd1bVa2WT50I9hwMZs+BJElSG9PWc/A6umDw\nHuBtwHeAnzYqW5IkSdIItOo5+AHwlao6aPlNmi72HAxmz4EkSVIb09Zz8HPA5xqVpc1oudvy+vXt\nypIkSdL0axUOvgrco1FZ2oING8bdgq23bt24WyBJkqSt1SocvBY4Ocl9q+qrjcrUZqxdO9OgjGUX\ncQsbNsywdm3b3g1JkiSNTqtw8D3gX4BzkpwA/Adw1UI3VtXZjeqUJEmS1FCrcHDmnD+/YjP3FQP2\nP5AkSZI0Xq3CwbFbeZ/r1kiSJEkTqkk4qKqZFuVIkiRJGp8VtVuxJEmSpKUzHEiSJEkCljisKMmZ\ndPMHnlZV35nzeouq6hFLqVOSJEnScC11zsFB/XH7ea8lSZIkTaklhYOqus3mXkuSJEmaPr6plyRJ\nkgQYDiRJkiT1Wm2C9jNJdgV+CdhuoetVdXbrOiVJkiQtX7NwkORRwHHAPgtcLiD9cZtWdUqSJElq\np8mwoiT7Ax8G1gBv7E+fBbwN+G+6YPBh4NgW9UmSJElqr9Wcg5cBPwZ+tape0J87s6qeDdwf+Avg\nN4B/alSfJEmSpMZahYOHAf9SVZfOL7uqNgHH0PUg2HMgSZIkTahW4WAN8M05r28Edph9UVUFnAP8\neqP6JEmSJDXWKhx8D7jDvNd7zrvntty8o7IkSZKkCdMqHFzILcPAZ4FDkuwNkORuwBOBixrVJ0mS\nJKmxVuHgI8BBSe7Yv349XS/BF5N8Hjgf2AU4vlF9kiRJkhprFQ7eChwE/BSgqs4BjgA20q1WdBnw\n/6rqpEb6e8jxAAAe0UlEQVT1SZIkSWqsySZoVXUN8Ll5504BTmlRviRJkqTha9VzIEmSJGnKGQ4k\nSZIkAUscVpRkI1BL+d6q2mMp3ydJkiRpuJY65yD912ItKVBIkiRJGr4lhYOq2q1xOyRJkiSNmXMO\nJEmSJAGNljKdL8kvAGuAq/tlTiVJkiRNuGY9B0m2S/KKJBcDVwKXAFcm+UZ//nat6pIkSZLUXpOe\ngyQ7AmcADwE2Ad8GLgfuCuwGHAs8NskjquraFnVKkiRJaqtVz8F6umDwQWCvqtqtqvbvJy7vRbdT\n8r50IUGSJEnSBGoVDp4EfAl4UlVtnHuhqi7ur3+5P0qSJEmaQK3CwZ2Bj1bVgvsYVNUm4GP9fZIk\nSZImUKtw8E1gpy3c8wt0k5QlSZIkTaBW4eDvgCcn+eWFLia5O/Bk4G2N6pMkSZLUWKt9Dk4BDgK+\nkOT1wFnAd4G7AGuBo/tzH+yDws9U1bcatUGSJEnSMrQKB9+Y8+c/H3DP4/qvuQrYplEbJEmSJC1D\nq3DwriV+34ITmCVJkiSNXpNwUFVPb1GOJEmSpPFpNSFZkiRJ0pRrEg6SHLiV9x3doj5JkiRJ7bXq\nOTgjyZ8OupjkDkk+BPxNo/okSZIkNdYqHFwErE/yySR3mXshyQHAfwKPAU5tVJ8kSZKkxlqFg32B\nk4FHAF9Kcmg6Lwc2ALsAf1BVv9WoPkmSJEmNtVqt6EfAkUnOAN4EnA58DbgfcAHw5Kr6cou6JEmS\nJA1Hq30OAKiqk5LsCJxAFwy+BxxYVd9rWY8kSZKk9potZZpkmyR/CbweuBb4LLAzcFaSB7SqR5Ik\nSdJwtFrK9O7AWcBLgS/TzUH4NeBPgL2AzyV5Xou6JEmSJA1Hq56D84CHA38L7F9VF1bnVcBBdMOL\n3pDklEb1SZIkSWqs1ZyDbYAnVdU/z79QVecmeRBwIvC4RvVJkiRJaqxVOHhwVW0cdLGqrgSekOT5\njeqTJEmS1FiTYUWbCwbz7ntDi/okSZIktbfkcJDkwCT3WMT9D0zytKXWJ0mSJGm4ltNzsAE4cu6J\nJC9JcsWA+58AvGMZ9UmSJEkaomb7HPR+HthpM9fTuD5JkiRJjbQOB5IkSZKmlOFAkiRJEmA4kCRJ\nktQzHEiSJEkC2oeDWuI1SZIkSWO23B2Sj0lyzJzXAUhy0wL3BgOCJEmSNLGWGw4GLU262POSJEmS\nxmzJ4aCqnK8gSZIkrSC+wZckSZIEGA4kSZIk9QwHkiRJkgDDgSRJkqTe1IaDJLsmOTHJZUluSLIx\nyXFJdtrK779jkqOSnJLk60muS3JVkk8neUYSV1aSJEnSqrLcpUzHIsmewLnAzsCpwPnAfsDRwGFJ\nDqiqK7ZQzG8DbwYuA84EvgXcFXgi8Hbg0cCThvIfIEmSJE2gqQwHdG/qdwaeX1Vvmj2Z5HXAi4BX\nAs/ZQhkXAI+pqtPmnkzycuDfgd9K8sSq+mDTlkuSJEkTauqGFfW9BocAG+cGg94xwHXAU5Nsv7ly\nqurM+cGgP/9d4C39y4MaNFmSJEmaClMXDoCD++PH51+oqmuBc4AdgP2XUcdP5x0lSZKkFW8aw8He\n/fHCAdcv6o97LaXwJNsCT+tffnQpZUiSJEnTaBrDwZr+ePWA67Pnt2rVogW8GrgvcFpVfWKJZUiS\nJElTZxrDwdAkeQHwh8B/A7+3yO8d+DUzMzOM5kqSJGkFmZmZGfh+clSmcbWi2Z6BNQOuz56/ajGF\nJvkD4Hjgq8Ajq2pR319Vi7ldkiRJuoWZmZmBHyqPKiBMY8/B+f1x7wHXZ+caDJqTcCtJXgicAPwX\ncHBV/e/SmydJkiRNp2kMB2f2x0Pm72KcZEfgAOBHwOe2prAkLwH+BjiPLhh8v2FbJUmSpKkxdeGg\nqi6mW8Z0d+B58y6vB7YHTq6q66FbfSjJPkn2mF9Wkj8FXgX8B91Qoi3tqixJkiStWNM45wDgucC5\nwAlJHkk31Gg/YC3dzsd/MufeXYGvAd+kCxQAJDmSLkzcBHwGeOECY7k2VtVJw/lPWJ0mfXL2pLdP\nkiRpmKYyHFTVxUn2BY4FDgPWAZfRTSheX1ULLXM6f8bwbv3xNsALB1S1ATAcNLZhw7hbsLC1a8fd\nAkmSpPGaynAAUFXfAZ6xFfddwgLDp6pqPV3PgcZg7dqZcTfhFjZsmBl3EyRJksZu6uYcSJIkSRoO\nw4EkSZIkwHAgSZIkqWc4kCRJkgQYDiRJkiT1DAeSJEmSAMOBJEmSpJ7hQJIkSRJgOJAkSZLUMxxI\nkiRJAgwHkiRJknqGA0mSJEmA4UCSJElSz3AgSZIkCTAcSJIkSeoZDiRJkiQBhgNJkiRJPcOBJEmS\nJMBwIEmSJKlnOJAkSZIEGA4kSZIk9QwHkiRJkgDDgSRJkqSe4UCSJEkSYDiQJEmS1DMcSJIkSQIM\nB5IkSZJ6hgNJkiRJgOFAkiRJUs9wIEmSJAkwHEiSJEnqGQ4kSZIkAbDtuBsgTZOZmZlxN2GzJr19\nkiRpshkOpEXasGHcLVjY2rXjboEkSZp2hgNpCdaunRl3E25hw4aZcTdBkiStAM45kCRJkgQYDiRJ\nkiT1DAeSJEmSAMOBJEmSpJ7hQJIkSRJgOJAkSZLUMxxIkiRJAgwHkiRJknqGA0mSJEmA4UCSJElS\nz3AgSZIkCYBtx90ASaMzMzMz7iZs1qS3T5Kklc5wIK0yGzaMuwULW7t23C2QJEmGA2kVWrt2ZtxN\nuIUNG2bG3QRJkoRzDiRJkiT1DAeSJEmSAMOBJEmSpJ5zDiRNjUlfzWjS2ydJ0pYYDiRNFVdbkiRp\neAwHkqaOqy1JkjQczjmQJEmSBBgOJEmSJPUMB5IkSZIAw4EkSZKknuFAkiRJEuBqRZI0EtOwB8I0\ntFGSNFyGA0kakUndowHcp0GS1DEcSNIITdoeDeA+DZKkmxkOJElbNA1DjqahjZI06QwHkqSt4rAo\nSVr5DAeSpK3msChJWtlcylSSJEkSYDiQJEmS1DMcSJIkSQKccyBJWgUmfSWjSW+fpNXDcCBJWhUm\ndbUlV1qSNEkMB5KkVWPSVlva2pWWJr1nYdLbJ2nrGQ4kSZoC09zzMenhYdLbJ42S4UCSpCkxrT0f\n3b1Da8ayGG6kW5rKcJBkV+BY4DDgjsD/AKcC66vqqlGXo/HZsGFm4n5ZriY+//Hy+Y+Pz35pWj2z\nVs9/tYSb1mZmZgwkK9jUhYMkewLnAjvTvZE/H9gPOBo4LMkBVXXFqMrReJ111np/QY+Rz3+8fP7j\n47Mfr3E9/0n7O9+acDOMN/Hr169vWp5BY7JMXTgA3kz3hv75VfWm2ZNJXge8CHgl8JwRliNJkjSx\nhtHr0apMV+uaPFMVDvpP+w8BNs59Q987Bng28NQkL66q64ZdjiRJ0jRo2evRqudmMcO6NDpTFQ6A\ng/vjx+dfqKprk5xD96Z/f+CMEZQjSZKkIZn0IUeT3r6lmLZwsHd/vHDA9Yvo3tTvxebf1LcqR5Ik\nSUPkZPDRmrZwsKY/Xj3g+uz5nUZUjiRJkoZsGieDT6tU1bjbsNWS/B1wFHBUVZ24wPVXAi8DXlZV\nrxl2Of290/MAJUmSNNWqKsMs/zbDLHwIZj/RXzPg+uz5Le1R0KocSZIkacWYtmFF5/fHvQdc36s/\nDppL0Lqcoac3SZIkaVSmbVjRHsDXgY3APWtO45PsSLfDcQG7VNX1wy5HkiRJWkmmalhRVV1Mt/zo\n7sDz5l1eD2wPnDz7hj7Jtkn26cPAksuRJEmSVoOp6jmAn33qfy6wC/AhuiFC+wFrgQuAh1fVlf29\nuwEXA9+sqt2XWo4kSZK0GkxdOABIsitwLHAYcCfgMuAUYH1VXT3nvt3owsElVbXHUsuRJEmSVoOp\nDAeSJEmS2puqOQeSJEmShsdwIEmSJAkwHCxZkl2TnJjksiQ3JNmY5LgkO427bStZkjsmOSrJKUm+\nnuS6JFcl+XSSZyRx34kRS/LUJJv6r/877vasdEke2f/7v7z/2XNpko8mefS427aSpfPkJGf2z/y6\nJN9I8v4k+4+7fStBkiOSvKH/eX5N/zPl5C18z8OTnJ7kiv7v5EtJjk7i+5tFWszzT7JXkpckOSPJ\nt5P8uP+ZdGqStSNu+tRbyr/9ed//9jm/h281x3axpm0TtImQZE+6lY52Bk7l5pWOjgYOS3JAVV0x\nxiauZL8NvJlu8viZwLeAuwJPBN4OPBp40that8ok+WXgjcC1wO3p9gfRkCR5LfBHwLfpfvZ8n27F\ntV8BDgI+Mr7WrXhvA55B98xnn/1ewOOA30rytKp69xjbtxK8AngA8EPgO8A+bOZnSpLHAf8MXAe8\nD7gCeCxwHHAA3e8Lbb3FPP8/p3u+XwX+le7Z70P3/B+b5OiqesPQW7xyLOrf/lxJHkP3s+laYIcm\nrakqvxb5BXwM2AQ8b9751/Xn/3bcbVypX8DBwOELnL8L8M3++T9x3O1cDV9AgE8CFwGv7Z/9M8bd\nrpX6BTyzf8YnAtsucP1W5/xq9uzv0T/7y4A7z7u2tr/2jXG3c9q/+me5Z//ng/rn+q4B9/4C8L/A\n9cCvzDm/HXBO/71PHvd/0zR9LfL5Hwk8cIHzBwI/Bm4A7jru/6Zp+VrMs5/3fTsDlwP/SPeB6SZg\nj+W2x263Rep7DQ4BNlbVm+ZdPobuE4ynJtl+5I1bBarqzKo6bYHz3wXe0r88aLStWrVeQBfWfp/u\n372GJMl2wCvpAvCzquqn8+9Z6Jya2bk//ltVfX/uharaQPeJ3Z1H3aiVpqo2VNU3+pdbGiJ6BN0z\n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\nreYcJHl6X+eRSQ5Pcm7f1iuSfCDJPReo715JXp3kP/qhVTf0Zb81yS8t64Hesp4n98O2ruifw8Yk\n/5jkIfPu2y7JS/vn9aMkVyc5O8mTFijzZ88+yZ5J/ql/Xtck+XiS+/X37Zzk7Un+p6/780nWLlDe\n3L/rI///9u49WK/pDuP495GhWlRcGyZKaauptkm1aUnDJCpV91ZdQilalZmO0FIzlJJWWx3UXc0g\naemQUJcKDSIkNEq1CG1RVAziWnXIuCY5v/7xW2+8dvbrvOecOpGT5zOzZ89Za+291t7vTmatvddF\n0j3lN3hW0kRJH2pxbR+TdJGkeZLeKPsLW9zv5jx2l3Rnuc4XJE2WtH6LPNaUdKKkB0qZOiTNkDSm\nJm3zczBa0qxyT16SdK2kT1TSdwLfKn/O1Vvd7eY2pdlY0nmSHml6Lu+TdK6kNevKbGb9k78cmNny\npvHmtNrF4ghgDDAVuAlYvRLfqkvGycBXynHXk92Bvgt8FPjy2zKWPg/cAKwB3AJcDnwA2Aw4HvhZ\nm3nuBmwPXAncDHwW+AbZZWpERDxUSTuupJsNvAl8CjgI2FnZxeqpFvl0SZKA35CVz+fLNT0PbACM\nAh4E7ippVyKvf2vgAeBsYBVgd+BSScMi4piabDYC7gDuByYBHwG+DsySNBKYBrwITAbWAsYC10n6\neEQ8UXO+H5C/2ZRy7FbAgcAoSV+MiP80Xd9wYAawKnB1KcMQYF9gV0nbRsTfavL4HrBLOWYmsAWw\nFzC0XOebTXlsCMwCNgRuLWVaFdgJuF7SuIi4oCaPnciuctOAc8nnaAdguKRPRsQLJd1PgK8BQ4HT\ngY4S3lHyXw/4K7Aa8Efg98DKwMblOs8C/luTv5n1RxHhzZs3b/1qAzqBRTXh25a4hcAGJWxCCZsP\nDK05ZqMSP6kS/tsS/hgwuCl8AFnx7wSGN4WvBMwFFgFja/JZv/L3Y8CjlbADynk7gR0qcYeW8BnV\n8wIr1uQ3ptyHX1fCR5XzHNfmvT64pL8DWK0StwIwqOnvo0vaa4EVmsLXKfemE9iy5t53AkdXzn1s\nCe+ouYZ9S9yplfDGb/169bcGTi1xFzSFiWzELAL2rqTfs6R/AFBNHh3AZpVjLi5xe1TCZ5XfYs9K\n+OrAPcCrwLo1z8GbwOjKMb8ocUe2eF4/XPMbji9x42vi3g+s3Jf/fr1587Z0N3crMrP+SpKOL908\n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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 270, "width": 387 } }, "output_type": "display_data" } ], "source": [ "plt.bar(range(1, 14), pca.explained_variance_ratio_, alpha=0.5, align='center')\n", "plt.step(range(1, 14), np.cumsum(pca.explained_variance_ratio_), where='mid')\n", "plt.ylabel('Explained variance ratio')\n", "plt.xlabel('Principal components')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 270, "width": 383 } }, "output_type": "display_data" } ], "source": [ "pca = PCA(n_components=2)\n", "X_train_pca = pca.fit_transform(X_train_std)\n", "X_test_pca = pca.transform(X_test_std)\n", "\n", "plt.scatter(X_train_pca[:, 0], X_train_pca[:, 1])\n", "plt.xlabel('PC 1')\n", "plt.ylabel('PC 2')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Training Logistic Regression on reduced matrix" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from matplotlib.colors import ListedColormap\n", "\n", "def plot_decision_regions(X, y, classifier, resolution=0.02):\n", "\n", " # setup marker generator and color map\n", " markers = ('s', 'x', 'o', '^', 'v')\n", " colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')\n", " cmap = ListedColormap(colors[:len(np.unique(y))])\n", "\n", " # plot the decision surface\n", " x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n", " x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n", " xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),\n", " np.arange(x2_min, x2_max, resolution))\n", " Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)\n", " Z = Z.reshape(xx1.shape)\n", " plt.contourf(xx1, xx2, Z, alpha=0.4, cmap=cmap)\n", " plt.xlim(xx1.min(), xx1.max())\n", " plt.ylim(xx2.min(), xx2.max())\n", "\n", " # plot class samples\n", " for idx, cl in enumerate(np.unique(y)):\n", " plt.scatter(x=X[y == cl, 0], y=X[y == cl, 1],\n", " alpha=0.8, c=cmap(idx),\n", " marker=markers[idx], label=cl)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.linear_model import LogisticRegression\n", "\n", "lr = LogisticRegression()\n", "lr = lr.fit(X_train_pca, y_train)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nN97IpEmTGDlyJL1792bAgAH80z/9E5dccgnvvfde1iVKkiSpQvXKugApn7feeosdd9zxw+9DCAwc\nOJDa2lpeeuklXnrpJW677TbuvfdeDj/88MzqlCRJUmVyREpFadOmTYQQmDhxIvfccw8rVqxg5cqV\nrF27llmzZvGxj32MlStXMnnyZJYuXZp1uZIkSaowBqkytWkTPPlky/tfeQUWLy5cPWkNHjyYP/7x\njzz00EOceOKJDBo0CIBevXpxzDHHMGvWLPr06cPq1auZOnVqxtVKkiSp0hikytRVV8G3vgW33dZ8\n38KF8K//Cl/9KhTrMqOBAwfyiU98osX9u+66K+PHjwfg97//faHKkiRJkgCDVNF68UWor8+/r7YW\nXnut9ecfdBD06JEEqcZhauFC+NrXYM0a2GMPGDKk62outMGDBwPJNEBJkiSpkAxSRejRR+HMM+H7\n328epmpr4bzz4Oyzk1DUkgkT4Lvf3TJMNQ5RRxwB3/seVFW1fI66OnjjjZb3//WvsHFjuvfWVTZu\n3MjcuXMB2HPPPbMpQpIkSRXLIFWEhg6F6mq4774tw1QuRL30EvTvDw3LhlrUNEydemq6EHXxxXD6\n6fCnPzXf/+KLMGUKfPvb2YSpW265haVLl9KzZ09OO+20whcgSZKkimaQKkL77Qc//CH07r05TK1Z\nszlEbbstTJ0KI0a0fa4JE+CLX9xyW1shCpLwVVUFNTXJ6zYOUy++COefD2vXJseEkP49dsaCBQu4\n5JJLADjvvPPYbbfdCluAJEmSKp5Bqkg1DVNHHJE+REEyne+BB7bc9tOftv28nj3h6qvhqKO2DFON\nQ9Qxx8CVVybHFsqSJUuYPHky69atY5999uHaa68t3ItLkiRJDQxSRWy//eA739ly2623pgtRjddE\nXXVV/gYULWkapr7yFTjjjOxC1IoVK5gwYQKLFi1il1124dFHH6W6urpwBUiSJEkNDFJFrLYWZszY\nctsdd7Tcza+xfI0ljjuueQOKtuTC1LBhm7ftsEPhQ9SqVav49Kc/zZ///GdGjRrF7NmzGTp0aOEK\nkCRJkhoxSBWpxo0ltt0W/u//3XLNVFth6uab8zeWaNyA4o474O23267lT3+CVas2f798eesdA7ta\nbW0txx13HC+88ALbbrsts2fPZvvtty9cAZIkSVITvbIuQM01DVG5NVEjRsCFFyZhCpKuej1aiMLX\n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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 281, "width": 425 } }, "output_type": "display_data" } ], "source": [ "plot_decision_regions(X_train_pca, y_train, classifier=lr)\n", "plt.xlabel('PC 1')\n", "plt.ylabel('PC 2')\n", "plt.legend(loc='lower left')\n", "plt.tight_layout()\n", "# plt.savefig('./figures/pca3.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Comparing performance of LR with all features\n", "\n", "Let's see how LR trained on the 3 principal components fairs vs one trained on all of them" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "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.4.4" } }, "nbformat": 4, "nbformat_minor": 0 }