{ "cells": [ { "cell_type": "code", "execution_count": 2, "id": "clean-convention", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from matplotlib import gridspec\n", "from sklearn.decomposition import PCA\n", "m = ['o', 's', '^', 'x']\n", "countries = ['Argentina', 'Australia', 'Chile', 'South Africa']" ] }, { "cell_type": "markdown", "id": "catholic-watson", "metadata": {}, "source": [ "# PCA in action\n", "\n", "We saw previously a simple conceptual introduction to PCA, in that it is a method to find the vectors describing the features over which the largest spread is. \n", "However, it is not yet clear how it can be used for dimensionality reduction. \n", "For this, we will use a [real dataset](./example), which is information about 44 different wines (the data file is available [here](https://github.com/arm61/trad_ml_methods/raw/main/wine_data.csv)). \n", "The features we are investigating are the column in the data below, while the rows are the different wines. " ] }, { "cell_type": "code", "execution_count": 3, "id": "warming-transparency", "metadata": {}, "outputs": [], "source": [ "data = pd.read_csv('wine_data.csv')" ] }, { "cell_type": "code", "execution_count": 4, "id": "departmental-abraham", "metadata": {}, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
EthanolTotalAcidVolatileAMalicAcidpHLacticAcidReSugarCitricAcidCO2DensityFolinCGlycerolMethanolTartaricACountry
013.623.540.290.893.710.781.460.3185.6100010.9960.9199989.720.161.74Argentina
114.063.740.590.243.731.252.420.18175.1999971.0070.63999910.050.201.58Argentina
213.743.270.47-0.073.871.131.520.39513.7399900.9963.59000010.920.181.24Argentina
313.953.660.470.093.791.004.170.41379.3999941.0073.3000039.690.232.26Argentina
414.473.660.380.613.700.811.250.14154.8800050.9971.69000210.810.201.22Argentina
\n", "
" ], "text/plain": [ " Ethanol TotalAcid VolatileA MalicAcid pH LacticAcid ReSugar \\\n", "0 13.62 3.54 0.29 0.89 3.71 0.78 1.46 \n", "1 14.06 3.74 0.59 0.24 3.73 1.25 2.42 \n", "2 13.74 3.27 0.47 -0.07 3.87 1.13 1.52 \n", "3 13.95 3.66 0.47 0.09 3.79 1.00 4.17 \n", "4 14.47 3.66 0.38 0.61 3.70 0.81 1.25 \n", "\n", " CitricAcid CO2 Density FolinC Glycerol Methanol TartaricA \\\n", "0 0.31 85.610001 0.99 60.919998 9.72 0.16 1.74 \n", "1 0.18 175.199997 1.00 70.639999 10.05 0.20 1.58 \n", "2 0.39 513.739990 0.99 63.590000 10.92 0.18 1.24 \n", "3 0.41 379.399994 1.00 73.300003 9.69 0.23 2.26 \n", "4 0.14 154.880005 0.99 71.690002 10.81 0.20 1.22 \n", "\n", " Country \n", "0 Argentina \n", "1 Argentina \n", "2 Argentina \n", "3 Argentina \n", "4 Argentina " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ] }, { "cell_type": "markdown", "id": "hourly-analysis", "metadata": {}, "source": [ "We are only printing the first 5 rows of the table, but rest assured there are 44 wines in the dataset. " ] }, { "cell_type": "code", "execution_count": 5, "id": "worldwide-alloy", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(44, 15)\n" ] } ], "source": [ "print(data.shape)" ] }, { "cell_type": "markdown", "id": "afraid-state", "metadata": {}, "source": [ "In traditional analysis, we would investigate how individual parameters vary. \n", "Below, we show how the ethanol, glycerol, and methanol content varies as a function of the country that the wine is sourced from. \n", "However, there is no real trends present in the data." ] }, { "cell_type": "code", "execution_count": 6, "id": "electoral-judgment", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1gAAAFgCAYAAACmKdhBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABZwUlEQVR4nO3de3zU1Z3/8dfHiBKjLchlK0EL7SKKRKFGQqtt8VaodRFRK/QmrdRV10vTLlWqVWrr6pbu0lovlI2W2voLblECa6209VKrFTRAIIhSqcVCpBJuViBoSD6/P+Y76SSZJJNkZr5zeT8fj3kwc+b7/c5nKJ7O53vO+Rxzd0RERERERKT3Dgk7ABERERERkVyhBEtERERERCRJlGCJiIiIiIgkiRIsERERERGRJFGCJSIiIiIikiSHhh1AsgwcONCHDRsWdhgieW/VqlU73H1Q2HGki/oekfDlW78D6ntEMkFHfU/OJFjDhg2juro67DBE8p6ZvRF2DOmkvkckfPnW74D6HpFM0FHfoymCIiIiIiIiSaIES0REREREJEmUYImIiIiIiCRJzqzBEhERERHJRY2NjWzdupUDBw6EHUpe6tu3L0OHDqVPnz4JHa8ES0REREQkg23dupWjjjqKYcOGYWZhh5NX3J2dO3eydetWhg8fntA5miIoIiIiIpLBDhw4wIABA5RchcDMGDBgQLdGD5VgiYiIiIhkOCVX4enu370SLBERERERkSRRgiUiIiIiIl2qqqrCzHj11VdT/lk1NTU8/vjjLa+XLVvGnXfemfLPTQYVucgWc0fAvu3t24sGw6zX0h+PiIjkvJ0VFfQdXULR+LKWtn0rVnJgfS0DZs4MMbLwmNkk4EdAAVDh7ne2ef9K4N+AJmAvcIW7bwjemw1cHrx3nbsvT+Sa0gt5+vupak0dc5dv5M09DQzpV8isiSOZMra419etrKzkjDPOoLKyku985zut3jt48CCHHpq81KKmpobq6mrOO+88ACZPnszkyZOTdv1U0ghWtojXOXTWLiIi0kt9R5dQV17OvhUrgUhyVVdeTt/RJSFHFg4zKwDuAT4NjAKmm9moNof9P3cvcfcxwPeB/w7OHQVMA04CJgH3mllBgteUnsrD309Va+qY/WgtdXsacKBuTwOzH62lak1dr667d+9ennvuOe6//34WLVoEwDPPPMPHP/5xJk+ezKhRo2hububqq6/mhBNO4Nxzz+W8885j8eLFAKxatYpPfvKTnHrqqUycOJFt27YBMGHCBG644QbGjRvH8ccfzx/+8Afee+89brnlFh5++GHGjBnDww8/zMKFC7nmmmsAmDFjBtdddx0f+9jH+NCHPtTyGXv37uXss8/mIx/5CCUlJSxdurRX37mnlGCJiIhIXEXjyyieN4+68nLq77qLuvJyiufNazWilWfGAZvc/XV3fw9YBFwQe4C7/z3mZRHgwfMLgEXu/q67/wXYFFyvy2uKdMfc5RtpaGxq1dbQ2MTc5Rt7dd2lS5cyadIkjj/+eAYMGMCqVasAWL16NT/60Y/405/+xKOPPsrmzZvZsGEDP//5z3nhhReAyD5e1157LYsXL2bVqlV85Stf4aabbmq59sGDB3nxxRf54Q9/yHe+8x0OO+wwbrvtNi699FJqamq49NJL28Wzbds2nnvuOR577DFuvPFGILJf1ZIlS1i9ejVPP/003/jGN3D3duemmqYIioiISIeKxpfRf/o0dtx7HwOvviqfkyuAYmBLzOutQLu/EDP7N+DrwGHAWTHnrmhzbnTOVpfXDK57BXAFwHHHHdf96CUvvLmnoVvtiaqsrOT6668HYNq0aVRWVnL++eczbty4lv2hnnvuOS655BIOOeQQPvCBD3DmmWcCsHHjRtavX8+5554LQFNTE8ccc0zLtadOnQrAqaeeyubNmxOKZ8qUKRxyyCGMGjWKt956C4jsWfWtb32LZ599lkMOOYS6ujreeustPvCBD/Tqu3eXEiwRERHp0L4VK9lduYiBV1/F7spFHDGuLN+TrC65+z3APWb2OeBm4LIkXXcBsACgtLQ0/bflJSsM6VdIXZxkaki/wh5fc9euXTz11FPU1tZiZjQ1NWFmfOYzn6GoqKjL892dk046qWVEq63DDz8cgIKCAg4ePJhQTNFzotcHeOihh6ivr2fVqlX06dOHYcOGdWv/qmTRFEERERGJK7rmqnjePAZdd13LdMHomqw8VAccG/N6aNDWkUXAlC7O7e41RTo1a+JICvsUtGor7FPArIkje3zNxYsX88UvfpE33niDzZs3s2XLFoYPH84f/vCHVsedfvrpPPLIIzQ3N/PWW2/xzDPPADBy5Ejq6+tbTRl8+eWXO/3Mo446infeeadbcb799tsMHjyYPn368PTTT/PGG2906/xkUYKVLYoGd69dRESklw6sr2215iq6JuvA+tqQIwvNS8AIMxtuZocRKVqxLPYAMxsR8/IzQLRU3TJgmpkdbmbDgRHAi4lcU3ohD38/TRlbzB1TSyjuV4gBxf0KuWNqSa+qCFZWVnLhhRe2arvooouorKxs1zZ06FBGjRrFF77wBT7ykY/w/ve/n8MOO4zFixdzww03cMoppzBmzBj++Mc/dvqZZ555Jhs2bGgpcpGIz3/+81RXV1NSUsKDDz7ICSec0L0vmiQWxsKvVCgtLfXq6uqwwxDJe2a2yt1Lw44jXdT3iIQvnf2OmZ0H/JBISfUH3P12M7sNqHb3ZWb2I+AcoBHYDVzj7i8H594EfAU4CHzN3X/d0TW7ikN9T3555ZVXOPHEE8MOIyF79+7lyCOPZOfOnYwbN47nn38+7WugUiHe/wYd9T1agyUiIiKSIHd/HHi8TdstMc+v7+Tc24F2yVO8a4pkq/PPP589e/bw3nvv8e1vfzsnkqvuUoIlIiIiIiJJEV13lc+0BktERERERCRJUpZgmdkDZrbdzNbHtM0xszozqwke53Vw7iQz22hmm8zsxlTFKCIiIiIikkypHMFaCEyK0z7P3ccEj3bzjc2sALgH+DQwCphuZqNSGKeIiIiIiEhSpCzBcvdngV09OHUcsMndX3f394jsIXFBUoMTERERERFJgTDWYF1jZuuCKYT947xfDGyJeb01aGvHzK4ws2ozq66vr09FrCIiIiIiAlRVVWFmvPrqqz0+f8OGDd0+b+HChVxzzTUAzJ8/nwcffLBHn58u6U6w7gM+DIwBtgH/1ZuLufsCdy9199JBgwYlITwRERERkSw2dwTMeX/7x9wRXZ/bhcrKSs4444x2GwwnqrME6+DBgwld48orr+RLX/pSjz4/XdKaYLn7W+7e5O7NwP8QmQ7YVh1wbMzroUGbiIiIiIh0Zt/27rUnaO/evTz33HPcf//9LFq0CIiUZD///PNbjrnmmmtYuHAhADfeeCOjRo3i5JNP5t///d/54x//yLJly5g1axZjxozhz3/+MxMmTOBrX/sapaWl/OhHP+L//u//KCsrY+zYsZxzzjm89dZb7eKYM2cOP/jBDwD4n//5H0477TROOeUULrroIvbv39+r75gsad0Hy8yOcfdtwcsLgfVxDnsJGGFmw4kkVtOAz6UpRBERERERaWPp0qVMmjSJ448/ngEDBrBq1aoOj925cydLlizh1VdfxczYs2cP/fr1Y/LkyZx//vlcfPHFLce+9957VFdXA7B7925WrFiBmVFRUcH3v/99/uu/Op7wNnXqVL761a8CcPPNN3P//fdz7bXXJukb91zKEiwzqwQmAAPNbCtwKzDBzMYADmwG/jU4dghQ4e7nuftBM7sGWA4UAA+4+8upilNERERERDpXWVnJ9ddfD8C0adOorKxsNXoV6/3vfz99+/bl8ssv5/zzz+/wOIBLL7205fnWrVu59NJL2bZtG++99x7Dhw/vNKb169dz8803s2fPHvbu3cvEiRN78M2SL2UJlrtPj9N8fwfHvgmcF/P6caBdCXcREREREUmvXbt28dRTT1FbW4uZ0dTUhJlxwQUX0Nzc3HLcgQMHADj00EN58cUXefLJJ1m8eDF33303Tz31VNxrFxUVtTy/9tpr+frXv87kyZN55plnmDNnTqdxzZgxg6qqKk455RQWLlzIM8880+vvmgxhVBEUEREREZEssXjxYr74xS/yxhtvsHnzZrZs2cLw4cNpbm5mw4YNvPvuu+zZs4cnn3wSiKzXevvttznvvPOYN28ea9euBeCoo47inXfe6fBz3n77bYqLI8XDf/azn3UZ1zvvvMMxxxxDY2MjDz30UBK+aXIowRIRERERyRVFg7vXnoDKykouvPDCVm0XXXQRixYt4rOf/SyjR4/ms5/9LGPHjgUiic/555/PySefzBlnnMF///d/A5GphXPnzmXs2LH8+c9/bvc5c+bM4ZJLLuHUU09l4MCBXcb13e9+l7KyMk4//XROOOGEHn+/ZDN3DzuGpCgtLfXoAjkRCY+ZrXL30rDjSBf1PSLhy7d+B9T35JtXXnmFE088Meww8lq8/w066ns0giUiIiIiIpIkSrBERERERESSRAmWiIiIiIhIkijBEhERERERSRIlWCIiIiIiIkmiBEtERERERCRJlGCJiIiIiEin/va3vzFt2jQ+/OEPc+qpp3LeeeexYMECzj///LjHz5w5kw0bNgAwbNgwduzYkc5wQ6UES0REREQkx9Tvr2fGEzPY0dD7xMbdufDCC5kwYQJ//vOfWbVqFXfccQdvvfVWh+dUVFQwatSoXn92NlKCJSIiIiKSY+avm8/qt1Yzf+38Xl/r6aefpk+fPlx55ZUtbaeccgof//jH2bt3LxdffDEnnHACn//853F3ACZMmEC8zbB/8YtfMG7cOMaMGcO//uu/0tTU1Ov4Mo0SLBERERGRHFK/v56lm5biOFWbqno9irV+/XpOPfXUuO+tWbOGH/7wh2zYsIHXX3+d559/vsPrvPLKKzz88MM8//zz1NTUUFBQwEMPPdSr2DLRoWEHICKSbmb2AHA+sN3dRwdtc4F/Ad4D/gx82d33hBakiIhEzB0B+7a3by8aDLNeS388WWD+uvk0ezMAzd7M/LXzuXn8zSn5rHHjxjF06FAAxowZw+bNmznjjDPiHvvkk0+yatUqTjvtNAAaGhoYPHhwSuIKk0awRCQfLQQmtWn7LTDa3U8G/gTMTndQIiISR7zkqrP2PBcdvWpsbgSgsbmx16NYJ510EqtWrYr73uGHH97yvKCggIMHD3Z4HXfnsssuo6amhpqaGjZu3MicOXN6HFemUoIlInnH3Z8FdrVp+427R/9fYQUwNO2BiYiI9FLs6FVUdBSrp8466yzeffddFixY0NK2bt06/vCHP3TrOmeffTaLFy9m+/ZIcrxr1y7eeOONHseVqZRgiYi09xXg1x29aWZXmFm1mVXX19enMSwREZHOrd2+tmX0KqqxuZGa7TU9vqaZsWTJEn73u9/x4Q9/mJNOOonZs2fzgQ98oFvXGTVqFN/73vf41Kc+xcknn8y5557Ltm3behxXprJopY9sV1pa6vEqlYhIepnZKncvDTuOrpjZMOCx6BqsmPabgFJgqifQQarvEQlftvQ7yZRXfc+c93fy3tvpiyNEr7zyCieeeGLYYeS1eP8bdNT3qMiFiEjAzGYQKX5xdiLJlYiIiEhbmiIoIgKY2STgm8Bkd98fdjwiIhIo6qDKXEftIiHTCJaI5B0zqwQmAAPNbCtwK5GqgYcDvzUzgBXufmWHFxERkfRQKXbJMkqwRCTvuPv0OM33pz0QEckqwUj3j4ACoMLd72zz/teBmcBBoB74iru/YWZnAvNiDj0BmObuVWa2EPgkEF1MNMPda1L6RUQkpZRgiYiIiHTBzAqAe4Bzga3AS2a2zN03xBy2Bih19/1mdhXwfeBSd38aGBNc52hgE/CbmPNmufviNHwNEUkDrcESERER6do4YJO7v+7u7wGLgAtiD3D3p2PWcHa0n97FwK+11lMkdynBEhEREelaMbAl5vXWoK0jlxN/P71pQGWbttvNbJ2ZzTOzwzu6oPbgkzDdfvvtnHTSSZx88smMGTOGlStX9ug6zzzzDH/84x9bXs+YMYPFixMbwK2qqsLMePXVV1va6uvrKSsrY+zYsXE3Pp45cyYbNmxo155KSrBEREREksjMvkBkP725bdqPAUqA5THNs4msyToNOBq4oaPruvsCdy9199JBgwYlPW7JDTsrKti3onXys2/FSnZWVPT4mi+88AKPPfYYq1evZt26dfzud7/j2GOP7dG12iZY3VFZWckZZ5xBZeU/7lE8+eSTlJSUsGbNGj7+8Y+3Or6pqYmKigpGjRrVo8/rKSVYIiIiIl2rA2J/UQ4N2loxs3OAm4hs+fBum7c/Cyxx98Zog7tv84h3gZ8SmYoo0mN9R5dQV17ekmTtW7GSuvJy+o4u6fE1t23bxsCBAzn88MgA68CBAxkyZAgQSXDGjh1LSUkJX/nKV3j33cg/+2HDhrFjxw4AqqurmTBhAps3b2b+/PnMmzePMWPGtIw4Pfvss3zsYx/jQx/6UIejWXv37uW5557j/vvvZ9GiRQDU1NTwzW9+k6VLlzJmzBgaGho48sgj+cY3vsEpp5zCCy+8wIQJE4huyv3EE0/wkY98hFNOOYWzzz4bgBdffJGPfvSjjB07lo997GNs3Lixx39PUUqwRERERLr2EjDCzIab2WFEpvotiz3AzMYCPyGSXG2Pc43ptJkeGIxqYZH9IaYA65MfuuSTovFlFM+bR115OfV33UVdeTnF8+ZRNL6sx9f81Kc+xZYtWzj++OO5+uqr+f3vfw/AgQMHmDFjBg8//DC1tbUcPHiQ++67r8PrDBs2jCuvvJLy8nJqampaRpy2bdvGc889x2OPPcaNN94Y99ylS5cyadIkjj/+eAYMGMCqVasYM2YMt912G5deeik1NTUUFhayb98+ysrKWLt2LWeccUbL+fX19Xz1q1/lkUceYe3atfzyl78E4IQTTuAPf/gDa9as4bbbbuNb3/pWj/+eopRgiYiIiHTB3Q8C1xCZ3vcK8L/u/rKZ3WZmk4PD5gJHAr80sxoza0nAzGwYkRGw37e59ENmVgvUAgOB76X2m0g+KBpfRv/p09hx7330nz6tV8kVwJFHHsmqVatYsGABgwYN4tJLL2XhwoVs3LiR4cOHc/zxxwNw2WWX8eyzz3b7+lOmTOGQQw5h1KhRvPXWW3GPqaysZNq0aQBMmzat1TTBWAUFBVx00UXt2lesWMEnPvEJhg8fDsDRRx8NwNtvv80ll1zC6NGjKS8v5+WXX+52/G2pTLuIiIhIAtz9ceDxNm23xDw/p5NzNxOnKIa7n5XEEEWAyLTA3ZWLGHj1VeyuXMQR48p6nWQVFBQwYcIEJkyYQElJCT/72c8YO3Zsh8cfeuihNDc3A5GRrs5Epx4CuHu793ft2sVTTz1FbW0tZkZTUxNmxty5c9sd27dvXwoKChL9Wnz729/mzDPPZMmSJWzevJkJEyYkfG5HNIIlIiIiIpIjomuuiufNY9B117VMF2xb+KI7Nm7cyGuvvdbyuqamhg9+8IOMHDmSzZs3s2nTJgB+/vOf88lPfhKITAdctWoVAI888kjLuUcddRTvvPNOtz5/8eLFfPGLX+SNN95g8+bNbNmyheHDh8etGtiR8ePH8+yzz/KXv/yFg/X11P/1r0BkBKu4uJimvXt54J57uhVXR5RgiYiISMJSUaFMRJLnwPraVmuuomuyDqyv7fE19+7dy2WXXcaoUaM4+eST2bBhA3PmzKFv37789Kc/5ZJLLqGkpIRDDjmEK6+8EoBbb72V66+/ntLS0lYjSv/yL//CkiVLWhW56EplZSUXXnhhq7aLLrqow2mC8QwaNIgFCxYwdepUTj3rLKZNm0bT3r1885vfZPYNN3Dqaadx0Czh63XG4g3DZaPS0lKPVggRkfCY2Sp3Lw07jnRR3yP5JvbueNH4snavw5Bv/Q6o78k3r7zyCieeeGLYYeSUpr17adyyhYKjj6Zp1y76HHssBUce2eHx8f436Kjv0RosERERSVhshbL+06exu3JRqMmViEhPFBx5JM1HH83B+noOHTSo0+SquzRFUERERLol2RXKRETSrWnvXpp27eLQQYNo2rWLpr17k3ZtJVgiIiLSLW0rlPVm8byIJCZXlvVkguj0wD7HHkuff/on+hx7LI1btnSYZHX3715TBLPV3BGwL84ehkWDYdZr7dslber31zPr2Vn84JM/YGDhwLDDEUku9T15r+2aqyPGlYW+Bksk1/Xt25edO3cyYMAALEmFGPKZNzS0WnNVcOSRcOyxeEMDtJkq6O7s3LmTvn37Jnx9JVjZKt4PnM7aJW3mr5vP6rdWM3/tfG4ef3PY4Ygkl/qevNdZhTIlWCKpMXToULZu3Up9fX3YoeS+HTvaNfXt25ehQ4cmfAklWCJJVL+/nqWbluI4VZuquPKUKzWKJSI5ZcDMme3aisb3fhNTEelYnz59GD58eNhhSIK0BiuJqtbUcfqdTzH8xl9x+p1PUbWmLuyQJM3mr5tPs0d2LW/2ZuavnR9yRCIiIiKSTkqwkqRqTR2zH62lbk8DDtTtaWD2o7VKsvJIdPSqsbkRgMbmRqo2VbGjof1Qs4iIiIjkJiVYSTJ3+UYaGptatTU0NjF3+caQIpJ0ix29itIoloiIiEh+UYKVJG/uaehWe68VDe5eu6Tc2u1rW0avohqbG6nZXhNOQCKpoL5HRESkUypykSRD+hVSFyeZGtKvMDUfqHLIGWfx5MVhhyCSeup7REREOqURrCSZNXEkhX0KWrUV9ilg1sSRIUUkIiIiIiLpphGsJJkythiIrMV6c08DQ/oVMmviyJZ2ERERERHJfUqwkmjK2GIlVCIiIiKJmjsi/kblRYM1JVmylqYIioiIiEg44iVXnbWLZAElWCIiIiIiIkmiBEtERERERCRJtAZLRETi09oIERGRbtMIloiIxKe1ESIiIt2WsgTLzB4ws+1mtj7Oe98wMzezgR2c22RmNcFjWapiFMkmOysq2LdiZau2fStWsrOiIqSIREREeqlocPfaRbJAKqcILgTuBh6MbTSzY4FPAX/t5NwGdx+TsshEslDf0SXUlZdTPG8eRePL2LdiZctrERGRrKTpxpKDUpZgufuzZjYszlvzgG8CS1P12SK5qGh8GcXz5lFXXk7/6dPYXbmoJdkSERERkcyQ1jVYZnYBUOfua7s4tK+ZVZvZCjOb0sn1rgiOq66vr09qrCKZqGh8Gf2nT2PHvffRf/o0JVciIiIiGSZtVQTN7AjgW0SmB3blg+5eZ2YfAp4ys1p3/3Pbg9x9AbAAoLS01JMacBeq1tQxd/lG3tzTwJB+hcyaOJIpY4vTGYLkoX0rVrK7chEDr76K3ZWLOGJcmZIsSZ2iwR1XERQREZG40lmm/cPAcGCtmQEMBVab2Th3/1vsge5eF/z5upk9A4wF2iVYYalaU8fsR2tpaGwCoG5PA7MfrQVQkiUpE7vmqmh8GUeMK2v1WiTptDZCRESk29I2RdDda919sLsPc/dhwFbgI22TKzPrb2aHB88HAqcDG9IVZyLmLt/YklxFNTQ2MXf5xpAiknxwYH1tq2QquibrwPrabl9LFQlFREREUiNlI1hmVglMAAaa2VbgVne/v4NjS4Er3X0mcCLwEzNrJpIA3unuGZVgvbmnoVvtIskwYObMdm1F43s2RVAVCSWltEGxiIjksVRWEZzexfvDYp5XAzOD538ESlIVVzIM6VdIXZxkaki/whCiEek+VSSUlNIGxSIiksfSuQYrZ8yaOLLVGiyAwj4FzJo4MsSoukF3l4XWFQkHXn2VkisRERGRJEhrmfZcMWVsMXdMLaG4XyEGFPcr5I6pJdlT4EJ3l4X2FQnbrskSEZH2zGySmW00s01mdmOc979uZhvMbJ2ZPWlmH4x5r8nMaoLHspj24Wa2Mrjmw2Z2WLq+j4gkn0awemjK2OLsSahE2lBFQhGR7jOzAuAe4FwixbpeMrNlbdaKrwFK3X2/mV0FfB+4NHivwd3HxLn0fwLz3H2Rmc0HLgfuS9X3SLqOZsbEk6zZMpqNk/F2VlTQd3RJq98V+1as5MD62rjrynOJRrBE8lAyKxKKiOSRccAmd3/d3d8DFgEXxB7g7k+7+/7g5Qoi29J0yCJ715wFLA6afgZMSWbQKdedGTDJmi2j2TgZL1pQKzpDJnpzt+/ojC61kBQawRLJQ8msSCjSjjYoljhy5G52MbAl5vVWoLOO83Lg1zGv+5pZNXCQSJXkKmAAsMfdD8ZcU1NkJOvlc0EtJVgiIpJcmp4jceTb9hBm9gWgFPhkTPMH3b3OzD4EPGVmtcDb3bjmFcAVAMcdd1wywxVJiXwtqKUpgvmoo7vIurssIiIpEns3u/6uu7J13WcdcGzM66FBWytmdg5wEzDZ3d+Ntrt7XfDn68AzwFhgJ9DPzKI3veNeMzhvgbuXunvpoEGDev9tRFIsXwtqaQQrH+nusoiIhCAH7ma/BIwws+FEkqBpwOdiDzCzscBPgEnuvj2mvT+w393fNbOBwOnA993dzexp4GIia7ouA5am5duIpFA+F9TSCJaIsLOiot1dpX0rVrKzoiKkiEQkF2X73exgndQ1wHLgFeB/3f1lM7vNzCYHh80FjgR+2aYc+4lAtZmtBZ4msgYrWn3wBuDrZraJyJqs+9P0lZKjOzNgkjVbRrNxMl4+F9TSCJaI5N3aCBFJv1y5m+3ujwOPt2m7Jeb5OR2c90cgbvm0YMrguCSGmV5hzIzRbJyMl88FtZRgiUheV/qRDKO9bXJWZ3ez1deISC5RgiUiQE6sjZCOZFPSor1tclY+380WkfyiNVgiAmT/2gjphJIWERGRtFGCJSKt1kYMuu66lumCSrJEREREukcJlojkdaUfERERkWTSGiwR0doIERERkSTRCJaI5B0ze8DMtpvZ+pi2S8zsZTNrNrPSMOPLa9rbRkREspxGsEQkHy0E7gYejGlbD0wFfhJGQClVNLjjKoKZJtOqGoqIiHSTEiwRyTvu/qyZDWvT9gqAmYUSU0opaRER6Z5s2t5CWuysqKDv6JJWSxz2rVjJgfW1cZdDpIqmCEpWqN9fz4wnZrCjYUfYoYhgZleYWbWZVdfX14cdjoiIJJu2t8hKfUeXtKqCHK2S3Hd0SVrj0AiWZIX56+az+q3VzF87n5vH3xx2OJLn3H0BsACgtLTUQw4nO+husIiIpFi0CnJdeTn9p09jd+WiVlWS00UjWJLx6vfXs3TTUhynalOVRrHSZGdFRbt9sPatWMnOioqQIsptVWvqOP3Opxh+4684/c6nqFpTF3ZIyaW7wSIikgZF48voP30aO+69j/7Tp4VSEVkJlmS8+evm0+zNADR7M/PXzg85ovyQKcPs+aBqTR2zH62lbk8DDtTtaWD2o7W5l2SJiIik2L4VK9lduYiBV1/F7spF7W4Wp4MSLMlo0dGrxuZGABqbGzWKlSaxw+z1d91FXXl5KMPsqWBmlcALwEgz22pml5vZhWa2Ffgo8CszW56ueOYu30hDY1OrtobGJuYu35iuEERERLJe9GZw8bx5DLruupbfMelOspRgSUaLHb2K0ihW+mTCMHsquPt0dz/G3fu4+1B3v9/dlwTPD3f3f3L3iemK5809Dd1qFxGRFNOefFnpwPraVjeDozeLD6yvTWscKnIhGW3t9rUto1dRjc2N1GyvCSegDJfs8qRth9mPGFeWM0lWJhnSr5C6OMnUkH6FIUQjIiIqvpOd4v3WKRqf/t8uSrAkoy2evDjsELJKdN1U9O5N7FB5d8WeWzS+jCPGleXUNMFMMmviSGY/WttqmmBhnwJmTRwZYlRJlk2bHYuIiPSCEiyRHJLM8qSdDbMrwUquKWOLgcharDf3NDCkXyGzJo5sac8JuhssIiJ5QgmWSI6JXTc18OqrepwMZcowe76YMra4y4Sqak1dbidhIiIiOUBFLiRt6vfXM+OJGaoAmGKZUJ5Ukk+l3EVERLKDEixJm/nr5rP6rdWqAJhCmVKeVJJPpdxFRESygxIsSYvoflaOax+rFMqU8qSSfCrlLiIikh2UYElaxO5npX2sUmfAzJnt1kgVjS/rUYl2ySwdlWxXKXcREZHMogRLUi46ehXdz6qxuVGjWCLdNGviSAr7FLRqy7lS7iIiIjlAVQQl5WJHr6Kio1g3j785pKhEsktelHIXkdCltFrp3BEd74enrRwkhyjBkpRbu31ty+hVVGNzIzXba8IJSCRLJVLKXUS6x8wGAdcDhcB8d8/bX/rRaqXRgjrRaqVAcvqeeMlVZ+0iWUoJlqTc4smLO3yvfn89s56dxQ8++QMGFg5MY1QiIiIA/BfwP4AD/w84LdxwwtNZtVLd3BFJnBKsdNLQeDuxpds1XVBERFLNzJYDt7v7s0HTYcBmIgnW4WHFlQlUrVQkOZRgpZOGxltpW7r9ylOu1CiW9IqZ9QUOc/e/hx1LaHQjR6QrnwVuNrOrgJuBbwN3EJkieHWYgYVtSL9C6uIkU6pWKtI93a4iaGZ9zex9qQhG8otKt0symdlMoAp4xMz+I+RwwqMbOSKdcve33X0WcBPwPeBK4Bp3v8jdnws3unCpWqlIcnQrwdIPGEkWlW6X3jKzyW2aznH3Se5+LvCZMGISyWY7KyrYt2Jlq7Z9K1ays6IipIhSw8w+bGY/AGYC3yDyu+ZhM7vOzAo6PTnHTRlbzB1TSyjuV4gBxf0KuWNqSfLWXxUN7l67SJbqdIqgmU1292UxTee4+6TgvbXAt1IZnOQulW6XJCgxs8uBW929BlhnZhVE1lG8HGpkIllgZ0UFfUeXtGxO3nd0CVuvvZb3fXoSx9x2G/tWrKSuvJziefNCjjTpKoGvAUXAz939bGCimX0J+A1wdoixhS6l1Uo1TVnyRFdrsPQDRlJCpdult9z9djP7AHCbmRmRdRRHAYXuvi7c6EQyX9/RJS0JVDTJwp2///oJDh04kN2Vi1q/lzsOB/4CHAkcEW109wfN7JednWhmk4AfAQVAhbvf2eb9rxMZGTsI1ANfcfc3zGwMcB/wPqCJSJGNh4NzFgKfBN4OLjMj+M0lIlmq0wRLP2CSrGhwx4vP80xnpdtFumEfkTvRI4AFQDXw/TADkvTRNg+9UzS+jOJ586grL6f/9GnsrlzE0LvvZv+LK9lx730MvPqqlCdXbUfRIDIt8cD6WgbMnJmqj70KuBt4j8j6qxbu3mG5vGD64D3AucBW4CUzW+buG2IOWwOUuvv+oIjG94FLgf3Al9z9NTMbAqwys+Xuvic4b5a76/8YRXJEImuwoj9g7ibyA2Y68KcUxpS7Zr0Gc95u/9CQuUi3mdn3gEeAx4Az3X0yUAM8Hkz1yU95tMYhdpsH6Zmi8WX0nz6NHffeR//p0wDYXbmIgVdfxe7KRe3WZCVbdBQt+jnRaYl9R5ek8mNnAL8ArnD3td04bxywyd1fd/f3gEXABbEHuPvT7r4/eLkCGBq0/ym6gbG7vwlsBwb16luISMbqag3W94h0KIcCy9x9crCw/HEzW+juD6YjyFSqWlPH3OUbeXNPA0P6FTJr4khtpieSHc539zHB6Poq4IfuvszMHgf+LeTYwpMnN2y0zUNy7FuxsiWh2vXgz9n1818w9Mc/pmh8GUeMK2s/hTDJ4o2ipWFa4v3Ap4Gvm9l7RNZdPZFAslUMbIl5vRXoLNDLgV+3bTSzcUT23vpzTPPtZnYL8CRwo7u/2+W3EJGM1dUI1vnu/ikiCz6/BBAUvfgU0D/FsaVc1Zo6Zj9aS92eBhyo29PA7EdrqVpTF3ZokqPypUpXmqw3swXAg8Dvo43uftDdfxReWJIO2uah92KLWAy67jred9554N7yfjT5ObC+NqVxtB1FS/W0RHdf6e5z3P3jRPbE+ivwDTOrMbMHzOyzvf0MM/sCUArMbdN+DPBz4MvuLZWeZgMnAKcBRwM3dHLdK8ys2syq6+vrexumiKRIVwlWTv+Ambt8Iw2NTa3aGhqbmLt8Y0gRSa4LaTpMrvomcBeRxeLlYQcj6aNtHpLjwPraVqNFx9z2HYbefXerhKpofFkq10IBrUfR0jEtMZa773T3Snf/kruPIbLGakQHh9cBx8a8Hhq0tWJm5xDZY2ty7EhUsIfor4Cb3H1FTAzbPOJd4KdEZg51FO8Cdy9199JBgzTDUCRTdVVF8JtE7qYcdPdX0xBPWr0ZZ7fyztpFeiuk6TC5qoJI//SMmT0BPOfuB0OOSdJA2zwkR7zEqWh8WVr7o9hRtHRNSwwq/XXI3W/v4K2XgBFmNpxIYjUN+Fyba48FfgJMcvftMe2HAUuAB9sWszCzY9x9WzDdeQqwvnvfSEQyTVcjWBXBY4aZTTCzrhKyrDKkX2G32kWSoe10mAPrazVtsAfc/TxgAvAMcCGwwsweDabQHBdmbJJa2uYhd7QdRUvTtMSjunjEFdzAuQZYDrwC/K+7v2xmt8VsfD6XSPn3XwZTDqN7iX4W+ASR31M1wWNM8N5DZlYL1AIDge8l76uKSBjMY+Zbxz3ArC+RHzGfBk4nMlf5CSILQv+a6gATVVpa6tXV1d06J7oGK3aaYGGfguTuWi7SRvSObXQEa8AVV7BzwYKWHxlt7+hmGzNb5e6lIX32cCJ91STgA+7e4VSbZOlJ3yOS69Jdfj3Mfics6ntEwtdR39PliJS7HyBIqIILRX/A3G1mafkBkyrRJEpVBCVdOpoOM+CKKzRtMAnc/S/AvcC9wZQcyQVzR3S8h2CeVE3MNm03MY7t+zKFmQ0Ffkzk5jHAH4Dr3X1reFFJKNLUx2jvvvji3ZDZdsutgHPMbbe1tLW9SRPSPnoJSWQfrFbc/S/ufm+w58wZHR0XVOLZbmbt5hKb2TfMzM0s7r8uM7vMzF4LHpd1N8bumDK2mOdvPIu/3PkZnr/xLCVXklIdTYeh6WBaq2jlAjN7x8z+HjzeiXn9jpn9PdinRnJBvB8+nbVL6GLXm9bfdVemjsr/FFgGDAke/xe0Sb5JUx+jvfvii1cA7O+PP87ff/1Ep0XBMrlwWFf7YL0DROcQWvCnB8/d3d/XyekLiWxO3GqvLDM7lkiZ97jTC83saOBWIuVNnchu58vcfXen30QkC3S0qBygrry8pYrWEePSu9A8G7l7h2slRCR8setNB159VSb2aYPcPTahWmhmXwsrGMlt2ruvY/EKgA29+26ATmf3ZHLhsE5HsNz9KHd/X/A4Kub1UV0kV7j7s8CuOG/NI1KdsKPFXxOB37r7riCp+i2R9RQiOantXjTF8+ax5aqr2PnThe2OU+GL+MzsFDO7JnicHHY8IhJu+fUE7TSzL5hZQfD4ArAz7KAkN2nvvs7F2w8vkT3y0r2PXqISniKYjB8wZnYBUNfFbunxdkqPO29PG+5ljvr99cx4Yob2oemBeNMGB113HfV33ZWRw96ZxsyuBx4CBgePh8zs2nCjEslv8W4cxU7lyRBfIVLd72/ANuBi4MuhRiQ5SXv3dS3eDZlEbtJk6o2chMquBz9gvgo8GjQ9ZGYL3P3HiX6QmR0BfIvI9MCkcPcFwAKIVNNJ1nWl+2LnFWsfmu6JN21wwJdn0PfEEzNy2DsDXQ6Uufs+ADP7T+AFIovXRSQEnZVfz5R+zN3fACZ3eaBIL2nvvs7FKwC29ZprwIyhP/5xh3vkhbGPXqIS3dcqGT9gPgwMB9ZG9tJjKLDazMa5+99ijqsjUhY+aiiRfW4kQ2lecXy9rW6TBesXMoUBTTGvm/jHmlFJVCZX6isa3HFskpEyYRPjrpjZICI3j4cR83vI3b8SVkwSkhT3Mdq7r3Pxbsi877zzAO/0Jk0m38hJNMHq9Q8Yd68lMn0nckGzzUCpu7cdH10O/IeZ9Q9efwqY3Z3PSraqNXUq5d6JePOKdUem92WK2w57q/BFh34KrDSzJcHrKcD94YWTpTK5Ul/YCV6KqGRz6JYSKc3+O1r/xpF8k+I+ZvHkxSm9fraLd0PmmNu+066t7U2aTL6Rk+garOgPmDlmNgdYQRc/YMysksgo10gz22pml3dybKmZVQC4+y7gu8BLweO2oC0U0c2I6/Y04EDdngZmP1pL1Zq6sELKKJpX3LHelCnOkvULoTOzQ4j0R18mUlRnF/Bld/9hmHGJJEIlm0N3hLvf4O7/6+6PRB9hByUi2S+hBMvd/5vIYtCEf8C4+3R3P8bd+7j7UHe/v837w6KjV+5e7e4zY957wN3/OXiEuifF3OUbaWhsfWOrobGJucs3hhRRZulsXrH0vLpNZ8Pe8g/u3gzc4+6r3f2u4LEm7LhEutJ2arVuSoXiMTM7L+wgRCT3dGej4RpgMVBFpLTpcakIKNO8uaehW+35RvOKO9fT6jYDZs5sl4wVjS8LfWfyDPWkmV1kweJOkWygks0Z4XoiSVZD7CblYQclItkv0SqC1xLZ/Pct/rH+yoGc329mSL9C6uIkU0P6FYYQTebRvOKOZXJ1mxzzr8DXgSYzayCxjdBFQtPR1GoVCEovbVYuIqmS6AjW9cBIdz/J3U929xJ3z/nkCmDWxJEU9ilo1VbYp4BZE0eGFJFkC03zS49g4/NDgunICW2ELnF0VC1LlfqSTlOrM4eZ9TezcWb2iegj7JhEJPslWkVwC/B2KgPJVNFqgaoiKN2V6uo2vS0DnyuCqYGfB4a7+3fN7FjgGHd/MeTQskuOVurLRLk4tTob+yMzm0nkBvJQIssgxhMpznVWiGGJSA5INMF6HXjGzH4FvBttDIpf5LwpY4uVUEnG6W0Z+BxyL9BM5EfRd4G9wD3AaWEGJdKRXJxanaX90fVE+okV7n6mmZ0A/EfIMYlIDkg0wfpr8DgseIhIyGLLwPefPo3dlYvydX1Xmbt/xMzWALj7bjNTPyWSRlnaHx1w9wNmhpkd7u6vmpnm/4tIryWUYLl7+92+RCR0sWXgB159Vab/mEmVRjMrIFJ4BzMbRGREKy9oI3TJFFnYH201s35EqiP/1sx2A2+EGpEI2oQ82cKYwpxQkQszG2Rmc83scTN7KvpISUQikrCeloHPMXcBS4DBZnY78Bx5Ms1HG6FLJsm2/sjdL3T3Pe4+B/g2cD8wJdSgRNAm5MkWncIc7ZOiU5j7ji5J2WcmWkXwIeBVYDjwHWAz8FKKYhKRBMSucRh03XUt03My/UdNsrn7Q8A3gTuAbcAUd/9luFGlhzZCl0yRrf2RmRWY2RDgL0QKXXwg3Igk32kT8uSLncJcf9ddadkyJ9E1WAPc/X4zu97dfw/83syUYOWbuSNg3/b27UWDVYEsBJ2Vgc+CqTlJY2bjgZfd/Z7g9fvMrMzdM/uXXRJoI3TJFNnYH7XZ4zM6rTgv9viUzBVvE/Kbx98cclTZL91TmBMdwYrWk91mZp8xs7HA0SmKSTJVvOSqs/YUqt9fz4wnZuT1nZ0BM2e26yCKxpdlbEnkFLqPSOXAqL1BW87raMNzbYQu6Zal/VHsHp8l+bTHp2SmjjYhz+ffOsmS7inMiSZY3zOz9wPfAP4dqADKUxaVhG/uCJjz/taPDKL5yRLD3N2jL9y9mcRH57OaNkJPjG7ISAfydo9PyUzahDw1wpjCnFCC5e6Pufvb7r7e3c9091PdfVnKopLwhTAqlSjNT5Y2Xjez68ysT/C4nsjefTlvythi7phaQnG/Qgwo7lfIHVNLVEWwDd2QiVTRavtjYt+KleysqAgpovCY2dfN7Ov8Y4/P2dG2oF0kFLm4CXkm6GwKc6okdJc3KHv8VWBY7Dnu/pXUhCXSMc1PljauJFJJ8GYi6yeeBK4INaI00kbonWt7Q+bKU67My7LHWboRcKocFfwZb49Pj3uGSBrk4ibkmSDeVOWi8WUZUeRiKfAH4HdAUxfHiqRMR/OT8/VHkwDQ5O7Twg5CMpNuyERk6UbAKRHd29PMLmlbcdTMLgknKhHJJYmuwTrC3W9w9/9190eij5RGJtmjaHDaPkrzk7svD6YGrTCzX5rZp83Mwg4mEVVr6jj9zqcYfuOvOP3Op7RvVYrk04LxRNaZxVbR6j99Wl4mV23MTrBNRKRbEk2wHjOz81IaiWSPOW+3fqSxRLvmJ3dfGBvspdnxwALgS8BrZvYfZnZ8yDF1SJsDp08+3ZBJZJ1Ztm0EnCrBzZgfA8VmdlfMYyFwMOTwRCQHdDpF0MzeITIf2YBvmdm7REq2G+Du/r7UhyihKBrc8Z5XIdL85O7L9alBQQXB3wK/NbMzgV8AV5vZWuBGd38h1ADb6GxzYK2lSq58uSGTyDqz2DVXRePLOGJcWVo228xQbwLVwGRgVUz7O6hCsogkQacJlrsf1dn7ksO0cXBOSfcGe+lkZgOALwBfJLJh6LXAMmAM8EtgeJxzHgDOB7a7++ig7WjgYSLFfDYDn3X33cmOV5sDp0++3JBJZJ1ZNm4EnCruvhZYa2b/j8jvoOPcfWPIYYlIDkloiqCZPZlIm0i2yvV9cnJ8atALwPuAKe7+GXd/1N0Puns10NF8qYXApDZtNwJPuvsIIpUIb0xFsNocWJIp0XVmWboRcKpNAmqAJwDMbIyZaQsaEem1ThMsM+sb3B0eaGb9zezo4DEM0FwWyRm5vE9OGBvspdlId/+uu29t+4a7/2e8E9z9WWBXm+YLgJ8Fz38GTElmkFHaHFiSKZ/WmaXAHGAcsAfA3WuIM+ItItJdXZVp/1fga8AQYHVM+9+Bu1MUk0ha5fo+Obk6NcjM/o9gz5o2xQOja0Qnd/OS/+Tu24LnfwP+qZPPvoJgr63jjjuuWx8SXWc1d/lG3tzTwJB+hcyaOFLrr6RH8mWdWYo0uvvbbfoP7YMlIr3W1RqsHwE/MrNr3f3HaYopVFVr6vTDJ8/k+j45YWywlyY/iNMW/XHUq3Lt7u5m1uEPLXdfQKRyIaWlpd3+QabNgSVZcnGd2c6KCvqOLmnVR+1bsZID62uTPaXxZTP7HFBgZiOA64A/JvMDRCQ/dTVF8JsA7v7jtpvvmdl/pDKwMKh8cv7Jp31yclA/YLS7/97dfw/MJTK1byHQk3KXb5nZMQDBn3HKaEo+yfW1mZkqjVtLXAucBLwLVBKZnfO1rk4ys0lmttHMNplZu7WaZvZ1M9tgZuvM7Ekz+2DMe5eZ2WvB47KY9lPNrDa45l2p2tOvp3vwae8+SZZM3Zsz2XF1VeRiWszztpvvtV0gnvU6K58suUnrF7LaN4lUC4w6DCgFJgBX9uB6y4DoD57LgKW9CU6yXy6vzcxksVtL1N91V8rKybv7fne/yd1Pc/fS4PmBzs4xswLgHuDTwChgupmNanPYGqDU3U8GFgPfD849GrgVKCOy9utWM+sfnHMf8FVgRPBI+m+snt5E1s1nSaZM3Zsz2XF1lWBZB8/jvc56Kp+cf7R+Iasd5u5bYl4/5+473f2vQFFnJ5pZJZHqgyPNbKuZXQ7cCZxrZq8B5wSvJU+1XZupUaz0it1aov/0aUlNrsxsWWePLk4fB2xy99fd/T1gEZECOS3c/Wl33x+8XAEMDZ5PBH7r7ruCLSB+C0wKRszf5+4rgn39HiQFRXZ6ehNZN58lmdJ1AyXsuLoqcuEdPI/3OusN6VdIXZxkSuWTc1curl/II/1jX7j7NTEvB3V2ortP7+Cts3sblOSGXF+bmenabi1xxLikrhv9KLCFyLTAlXTvhnFxcG7UViIjUh25HPh1J+cWB4+tcdrb6U2BnZ7eRNbNZ0m2TN2bM5lxdTWCdYqZ/d3M3gFODp5HX4c7lpcCKp8sklVWmtlX2zaa2b8CL4YQj+SIMNdmat1XWraW+ADwLWA08CPgXGBHzHrOpDCzLxCZtjw3Wdd09wXBdMbSQYM6vY/UTk/34NPefZJsmbo3ZzLj6jTBcvcCd3+fux/l7ocGz6Ov+/T4UzPUlLHF3DG1hOJ+hRhQ3K+QO6aWqNqXSGYqB75sZk+b2X8Fj2eAGSSwUF3yW2eJTJhrM7Xuq/OtJZLB3Zvc/Ql3vwwYD2wCnjGza7o4FaAOODbm9dCgrRUzOwe4CZjs7u92cW4d/5hG2OE1e6unN5F181mSKVP35kx2XF1NEcw7Kp8skh3cfTvwMTM7i0glMIBfuftTIYYlWSI2kWk79S+stZm5vidfotKxtYSZHQ58BpgODAPuApYkcOpLwAgzG04kCZoGfK7NtccCPwEmBf1U1HLgP2IKW3wKmO3uu4LZQeOJTFn8EpD0rXF6ugef9u6TZMrUvTmTHZdF1lNmv9LSUq+urg47DJG8Z2ar3L007DjSRX1P9qnfX8+nH/007za9y+EFh/PERU9kRCLz3RXfZclrS2hsbqTPIX2YOmKq1n0lqDv9jpk9SGR64OPAIndf383POg/4IVAAPODut5vZbUC1uy8zs98RWUYR3bj8r9GNz83sK0SmJwLc7u4/DdpLiWwxUUhkzda13sUPNPU9IuHrqO/RCFaumzsC9sXZzqdoMMx6Lf3xiIiELBMLWHS07itfR7FS7AvAPuB64LqYLaeMyD7j7+vsZHd/nEhyFtt2S8zzczo59wHggTjt1USSPhHJAV0VuZBsFy+56qw9A2iRt4ikSqZuLq49+dLH3Q8J1pIfFbO2PLq+vNPkSkQkERrBShWNHPVYZ2sjRER6o7NEJsz+RnvyiYjkDiVYqZKFI0eZQIu8RSSVMjWR6WxPvvr99cx6dhY/+OQP1B+KiGQBJViSUTJxbYSI5I5s3Fxco/oiItlFCVYu6WhaYpbQIm/JRVVr6lTeWHpMo/oiItknr4pcVK2p4/Q7n2L4jb/i9DufompN0vfxC1d3kquiwamLo4cyaZG3Cm1IMlStqWP2o7XU7WnAgbo9Dcx+tDb3+h5JmXij+iIiktnyJsHK+x86c95u/cjAQhvpWhuRSPIUOyVHpKfmLt9IQ2NTq7aGxibmLt+Y0Pk5f1NIOpWpFQ9FRKRzeTNFsLMfOimZrlM0uOMqghJXutZGdLWeQVNyJFne3NPQrfZY0ZtC0X4relMI0BTDPJGpFQ9FIMXTn1WJuZ1UFrtRIZ3ky5sRrN780OmRWa+1HzXK0JGjfNI2eYp3J1hTciRZhvQr7FZ7rN6Ofkn2y9SKhyIpnxWkSsztpHJmjWbtJF/eJFi9+aEjuaOr5ElTciSZZk0cSWGfglZthX0KmDVxZJfnpv2mkGScxZMXU3tZbbtHNlZClNyiG0DplcjN4Uy8dj7LmwSrNz90skZH0w/zZFpiV2urEkmeMqnQhmS/KWOLuWNqCcX9CjGguF8hd0wtSWgajW4KiUim0g2g9ErlzBrN2kmNvFmDFf1Bk9PlkvN8+mFXa6sSWc+gKTmSbFPGFveon5k1cWSrNViQgzeFRCQrDelXSF2cZEo3gJIvlVvYaHuc1MmbBAt6/kNHMl8ihSkSSZ409UYyRVbdFNKCdJG8ohtA6ZPKYjcqpJM6eZVgSe6KN8TdtnNQ8iTZJmtuCmlBukheSfkNIFVibpHKmTWatZM6SrAk62mIW0REJL1SegNII98tUnlzWDeeUydvilxI7lJhChERERHJFEqwJOtpiFtEequrKqQiIiKJ0hRByXoa4haR3uqqCqmIiEiiNIIlkiDd4RbpQJbvwaeNNkVEJJlSlmCZ2QNmtt3M1se0fdfM1plZjZn9xsyGdHBuU3BMjZktS1WMIt0Re4dbRGLMeg3mvN3+kSUL1buz0aZutIiISFdSOYK1EJjUpm2uu5/s7mOAx4BbOji3wd3HBI/JKYxRJCG6wy2SmzqqQtrRf+O60SIiIl1J2Rosd3/WzIa1aft7zMsiwFP1+VlNm3ZmnET22RKRbsqAvq47G20msqG5iIhI2tdgmdntZrYF+Dwdj2D1NbNqM1thZlPSF12G0KadGaW7d7hFJEEZ0Nd1pwppd6YSiohI/kp7FUF3vwm4ycxmA9cAt8Y57IPuXmdmHwKeMrNad/9z24PM7ArgCoDjjjsulWFLHuvOHW4RyS6JViHVhuYiIpKoMKsIPgRcFO8Nd68L/nwdeAYY28FxC9y91N1LBw0alKo4Jc9pny0R0Ybmkouq1tRx+p1PMfzGX3H6nU9RtaYu7JBSb+4ImPP+9o+5IxK+RCLFbhItiJOphXMyLa6dFRXsW7GyVdu+FSvZWVERUkSdS2uCZWax/3ovAF6Nc0x/Mzs8eD4QOB3YkJ4IRdpbPHkxtZfVtnto/y2R/KEbLZJrqtbUMfvRWur2NOBA3Z4GZj9am/tJVhKmJidS7CbRgjiZWjgn0+LqO7qEuvLyliRr34qV1JWX03d0SciRxZeyKYJmVglMAAaa2VYiUwHPM7ORQDPwBnBlcGwpcKW7zwROBH5iZs1EEsA73V0JViplwEJzEZFM1tsbKvX765n17Cx+8MkfaEqhZIS5yzfS0NjUqq2hsYm5yzcyZWxxSFFlvkSK3SRaECdTC+dkYlxF48sonjePuvJy+k+fxu7KRRTPm0fR+LJQ4+pIykaw3H26ux/j7n3cfai73+/uF7n76KBU+7/ETAWsDpIr3P2P7l7i7qcEf96fqhgzVro37cyAheYikoeyfIPi7si0u8Eib+5p6Fa7RCRS7CbRgjiZWjgnU+MqGl9G/+nT2HHvffSfPi1jkysIociFJECjRiKSD/Kkr8vEu8EiQ/oVUhcnmRrSrzCEaLJDIsVuEi2Ik6mFczI1LohMC9xduYiBV1/F7spFHDGuLGOTrDCLXIiIiGS9rhaDZ+rdYMlvsyaOpLBPQau2wj4FzJo4MqSIMl8ixW4SLYiTqYVzMjWu6Jqr4nnzGHTddS3TBdsWvsgUSrBERER6obPpf9pHTzLVlLHF3DG1hOJ+hRhQ3K+QO6aW5P76q15MTU6k2E2iBXEytXBOpsZ1YH1tqzVX0TVZB9bXhhpXR8zdw44hKUpLS726ujrsMLLTnPd38t7b6YtDcoKZrXL30rDjSBf1Pfmtfn89n37007zb9C6HFxzOExc90WoazXdXfJclry1p9YOlzyF9mDpiqvbRS6J863dAfY9IJuio79EIluTVQnMRkWTqavpfpt4Nlp4xs0lmttHMNpnZjXHe/4SZrTazg2Z2cUz7mWZWE/M4YGZTgvcWmtlfYt4bk75vJCKpoCIXkjcLzUVEkimRxeDaLy93mFkBcA9wLrAVeMnMlrXZSuavwAzg32PPdfengTHBdY4GNgG/iTlklrvrH4tIjtAIloiISA9k6mJwSZlxwCZ3f93d3wMWARfEHuDum919HZH9PjtyMfBrd9+fulBFJExKsERERHpA0//yTjGwJeb11qCtu6YBlW3abjezdWY2z8wO7+hEM7vCzKrNrLq+vr4HHy0i6aApgiIiIj2g6X/SXWZ2DFACLI9png38DTgMWADcANwW73x3XxAcQ2lpaW5UKRPJQRrBEhEREelaHXBszOuhQVt3fBZY4u4tQ5/uvs0j3gV+SmQqoohkMSVYIiIiIl17CRhhZsPN7DAiU/2WdfMa02kzPTAY1cLMDJgCrO99qCISJiVYIiIiIl1w94PANUSm970C/K+7v2xmt5nZZAAzO83MtgKXAD8xs5ej55vZMCIjYL9vc+mHzKwWqAUGAt9L+ZcRkZRSgiUiIiKSAHd/3N2Pd/cPu/vtQdst7r4seP6Suw919yJ3H+DuJ8Wcu9ndi91bl55097PcvcTdR7v7F9x9b3q/lSRD/f56Zjwxgx0NO8IOpZV4caUq1p0VFexbsbJV274VK9lZUZHUz8kGSrBERERERHph/rr5rH5rdcZt0xAvrlTF2nd0CXXl5S1J1r4VK6krL6fv6JKkfk42UIIlIiIiItJD0U3HHadqU1XGjGLFiyuVsRaNL6N43jzqysupv+su6srLKZ43j6LxZUn7jGyhBEtEREREpIdiNx3PpM3G48WV6liLxpfRf/o0dtx7H/2nT8vL5AqUYImIiIiI9Eh0RCi66Xhjc2NGjGLFi2vJa0uoeq0qpbHuW7GS3ZWLGHj1VeyuXNRuTVa+UIIlIiIiItIDsSNCUZkwihUvrsbmRg42H2zVlsxYo2uuiufNY9B117VMF8zHJEsJloiIiIhID6zdvrZlRCiqsbmRmu014QQUiBeX4zTTPulKVqwH1te2WnMVXZN1YH1tUq6fTQ4NOwARERERkWy0ePLisEOIK4y4Bsyc2a6taHxZXq7D0giWiIiIiIhIkijBEhERSbJM3XRURERSTwmWiEgMM7vezNab2ctm9rWw45HslKmbjoqISOopwRIRCZjZaOCrwDjgFOB8M/vncKOSbJOpm46KiEh6KMGSnKZpOtJNJwIr3X2/ux8Efg9MDTkmyTKZuumoiIikhxIsyWmapiPdtB74uJkNMLMjgPOAY9seZGZXmFm1mVXX19enPUjJXJm66aiIiKSPEizJWZqmI93l7q8A/wn8BngCqAGa4hy3wN1L3b100KBB6Q1SMlqmbjoqIiLpowRLcpam6UhPuPv97n6qu38C2A38KeyYJHtk6qajIiKSPtpoWHJSR9N0rjzlSgYWDgw5OslkZjbY3beb2XFE1l+NDzsmyR6ZuumoiIikjxIsyUmdTdO5efzNIUUlWeIRMxsANAL/5u57Qo4n+eaOgH3b27cXDYZZr6U/HhFJuqo1dcxdvpE39zQwpF8hsyaOZMrY4rDDEskLSrAkJ2majvSUu3887BhSLl5y1Vm7iGSVqjV1zH60lobGyBLSuj0NzH60FkBJlkgaKMGSnKRpOiIikq/mLt/YklxFNTQ2MXf5RiVYImmgIhciIiIiOeTNPQ3daheR5FKCJSIiIpJDhvQr7Fa7iCSXEiwRERGRHDJr4kgK+xS0aivsU8CsiSNDikgkvyjBEhHJN0WDu9eeRer31zPjiRnaWFzy2pSxxdwxtYTifoUYUNyvkDumlmj9lUiaqMiFiEi+yeFS7PPXzWf1W6u1JYPkvSlji5VQiYRECVbYtB+NiEhSRDcYd1wbi4uISGg0RTBs2o9GRCQpYjcYj24sLiIikm5KsEREJOtFR6+iG4w3NjdStalKa7FERCTtlGCJiEjWix29itIoloiIhEEJloiIZL2129e2jF5FNTY3UrO9JpyAREQkb6nIhYiIZL3FkxeHHYKIiAigEazw5fB+NCIiIiIi+UYjWGFTKXYRERERkZyhESwRERGRBJnZJDPbaGabzOzGOO9/wsxWm9lBM7u4zXtNZlYTPJbFtA83s5XBNR82s8PS8V0ke9Xvr2fGEzNaVUqN1xZGHKIES0RERCQhZlYA3AN8GhgFTDezUW0O+yswA/h/cS7R4O5jgsfkmPb/BOa5+z8Du4HLkx685JT56+az+q3VrSqlxmsLIw5RgiUiIiKSqHHAJnd/3d3fAxYBF8Qe4O6b3X0d0BzvAm2ZmQFnAdFKLT8DpiQtYsk50X3/HG/Z7y9eWxhxSIQSLBEREZHEFANbYl5vDdoS1dfMqs1shZlNCdoGAHvc/WBX1zSzK4Lzq+vr67sZuuSK2H3/ovv9xWsLIw6JUIIlIiIikh4fdPdS4HPAD83sw9052d0XuHupu5cOGjQoNRFKRouOGkX3/WtsbmTJa0uoeq2qVVuqR5TixaFRrH9QgiUiIiKSmDrg2JjXQ4O2hLh7XfDn68AzwFhgJ9DPzKKVnbt1TckvsaNGUY3NjRxsPtiqLdUjSvHi0CjWPyjBEhEREUnMS8CIoOrfYcA0YFkX5wBgZv3N7PDg+UDgdGCDuzvwNBCtOHgZsDTpkUtOWLt9bcuoUZTjNNM+6arZXpPWOFL9mdkkZftgmdkDwPnAdncfHbR9l8hi0GZgOzDD3d+Mc+5lwM3By++5+89SFaeIiIhIItz9oJldAywHCoAH3P1lM7sNqHb3ZWZ2GrAE6A/8i5l9x91PAk4EfmJmzURucN/p7huCS98ALDKz7wFrgPvT/NUkSyyevLjrg9IgU+LIVKncaHghcDfwYEzbXHf/NoCZXQfcAlwZe5KZHQ3cCpQCDqwys2XuvjuFsYqIiIh0yd0fBx5v03ZLzPOXiEzza3veH4GSDq75OpEKhSKSA1I2RdDdnwV2tWn7e8zLIiIJVFsTgd+6+64gqfotMClVcYqIiIiIiCRLKkew4jKz24EvAW8DZ8Y5JOESqGZ2BXAFwHHHHZfcQEVERERERLop7UUu3P0mdz8WeAi4ppfXUrlSERERERHJGGFWEXwIuChOe69KoIqIiIiIiIQlrQmWmY2IeXkB8Gqcw5YDnwrKmfYHPhW0iYiIiIiIZLRUlmmvBCYAA81sK5HKgOeZ2UgiZdrfIKggaGalwJXuPtPddwXl3F8KLnWbu+9q9wEiIiIiIiIZJmUJlrtPj9Mcd18Hd68GZsa8fgB4IEWhiYiIiIiIpETaqwiKiIiIiCTd3BGwb3v79qLBMOu19McjeSvMIhciIiIiIskRL7nqrF0kRZRgiYiIiIiIJIkSLBERERERkSRRgiUiIiIiIpIkSrBERERERESSRAmWiIiIiGS/osHdaxdJEZVpFxEREZHsp1LskiE0giUiIiIiIpIkSrBERERERESSRAmWiIhIDtlZUcG+FStbte1bsZKdFRUhRSQikl+UYEnK1O+vZ8YTM9jRsCPsUERE8kbf0SXUlZe3JFn7VqykrrycvqNLQo5MRCQ/KMGSlJm/bj6r31rN/LXzww5FRCRvFI0vo3jePOrKy6m/6y7qysspnjePovFlYYcmIpIXlGBJStTvr2fppqU4TtWmKo1iiYikUdH4MvpPn8aOe++j//RpSq5ERNJICZakxPx182n2ZgCavVmjWCIiabRvxUp2Vy5i4NVXsbtyUbs1WSIikjpKsCTpoqNXjc2NADQ2N2oUS0QkTaJrrornzWPQdde1TBdUkiUikh5KsCTpYkevojSKJSKSHgfW17ZacxVdk3VgfW3IkYmI5AclWJJ0a7evbRm9impsbqRme004AaWQKiWKSLp11e8MmDmz3ZqrovFlDJg5Mx3hiUiO0m+exB0adgCSexZPXhx2CGkTWynx5vE3hx2OiOQB9TsiEgb1PYnTCJZID6lSooikm/odEQmD+p7uUYIl0kOqlCgi6aZ+R0TCoL6ne5RgifSAKiWKSLqp3xGRMKjv6T4lWCI9oEqJIpJu6ndEJAzqe7pPCZZID+RTpUQRyQzqd0QkDOp7uk9VBEV6IJ8qJeYbMysHZgIO1AJfdvcD4UYlon5HRMKhvqf7NIIlIhIws2LgOqDU3UcDBcC0cKMSkUxhZpPMbKOZbTKzG+O8/wkzW21mB83s4pj2MWb2gpm9bGbrzOzSmPcWmtlfzKwmeIxJ09cRkRTRCJaISGuHAoVm1ggcAbwZcjwikgHMrAC4BzgX2Aq8ZGbL3H1DzGF/BWYA/97m9P3Al9z9NTMbAqwys+Xuvid4f5a7a5hAJEdoBEtEJODudcAPiPxI2ga87e6/aXucmV1hZtVmVl1fX5/uMEUkHOOATe7+uru/BywCLog9wN03u/s6oLlN+5/c/bXg+ZvAdmBQesIWkXRTgiUiEjCz/kR+MA0HhgBFZvaFtse5+wJ3L3X30kGD9BtJJE8UA1tiXm8N2rrFzMYBhwF/jmm+PZg6OM/MDu/kXN3cEckCSrBERP7hHOAv7l7v7o3Ao8DHQo5JRHKEmR0D/JxI8ZzoKNds4ATgNOBo4IaOztfNHZHsoARLROQf/gqMN7MjzMyAs4FXQo5JRDJDHXBszOuhQVtCzOx9wK+Am9x9RbTd3bd5xLvAT4lMRRSRLKYES0Qk4O4rgcXAaiIl2g8BFoQalIhkipeAEWY23MwOI1JhdFkiJwbHLwEebFvMIhjVIripMwVYn8ygRST9lGCJiMRw91vd/QR3H+3uXwzuKotInnP3g8A1wHIiI9v/6+4vm9ltZjYZwMxOM7OtwCXAT8zs5eD0zwKfAGbEKcf+kJnVErmpMxD4Xvq+lYikgsq0i4iIiCTA3R8HHm/TdkvM85eITB1se94vgF90cM2zkhymiITM3D3sGJLCzOqBNxI8fCCwI4XhpFo2x5/NsYPiT8QH3T1vVl93o+/Rv51wKf7wqN9JAfU9WSGbYwfFn4i4fU/OJFjdYWbV7l4adhw9lc3xZ3PsoPil57L9717xhyub48/m2HNBtv/9Z3P82Rw7KP7e0BosERERERGRJFGCJSIiIiIikiT5mmBle9nlbI4/m2MHxS89l+1/94o/XNkcfzbHnguy/e8/m+PP5thB8fdYXq7BEhERERERSYV8HcESERERERFJOiVYIiIiIiIiSZJXCZaZTTKzjWa2ycxuDDuerpjZA2a23czWx7QdbWa/NbPXgj/7hxljZ8zsWDN72sw2mNnLZnZ90J4V38HM+prZi2a2Noj/O0H7cDNbGfw7etjMDgs71o6YWYGZrTGzx4LXWRN7LlHfkz7qdzKD+p7wqd9JL/U94cukfidvEiwzKwDuAT4NjAKmm9mocKPq0kJgUpu2G4En3X0E8GTwOlMdBL7h7qOA8cC/BX/n2fId3gXOcvdTgDHAJDMbD/wnMM/d/xnYDVweXohduh54JeZ1NsWeE9T3pJ36ncygvidE6ndCob4nfBnT7+RNggWMAza5++vu/h6wCLgg5Jg65e7PArvaNF8A/Cx4/jNgSjpj6g533+buq4Pn7xD5R19MlnwHj9gbvOwTPBw4C1gctGds/GY2FPgMUBG8NrIk9hyjvieN1O+ET31PRlC/k2bqe8KVaf1OPiVYxcCWmNdbg7Zs80/uvi14/jfgn8IMJlFmNgwYC6wki75DMNxcA2wHfgv8Gdjj7geDQzL539EPgW8CzcHrAWRP7LlEfU9I1O+E5oeo7wmb+p0Qqe8JxQ/JoH4nnxKsnOORGvsZX2ffzI4EHgG+5u5/j30v07+Duze5+xhgKJE7gieEG1FizOx8YLu7rwo7Fsk9mf7fLajfCYv6HkmVTP/vNkp9T/plYr9zaNgBpFEdcGzM66FBW7Z5y8yOcfdtZnYMkbsMGcvM+hDpaB5y90eD5qz6DgDuvsfMngY+CvQzs0ODuyKZ+u/odGCymZ0H9AXeB/yI7Ig916jvSTP1O6FS35MZ1O+EQH1PaDKu38mnEayXgBFBRZHDgGnAspBj6ollwGXB88uApSHG0qlg/uv9wCvu/t8xb2XFdzCzQWbWL3heCJxLZE7108DFwWEZGb+7z3b3oe4+jMi/9afc/fNkQew5SH1PGqnfCZf6noyhfifN1PeEJyP7HXfPmwdwHvAnInNKbwo7ngTirQS2AY1E5o5eTmRO6ZPAa8DvgKPDjrOT+M8gMhS+DqgJHudly3cATgbWBPGvB24J2j8EvAhsAn4JHB52rF18jwnAY9kYe6481PekNXb1OxnyUN8T+t+/+p30xq++JwMemdLvWBCAiIiIiIiI9FI+TREUERERERFJKSVYIiIiIiIiSaIES0REREREJEmUYImIiIiIiCSJEiwREREREZEkUYKVh8zsJjN72czWmVmNmZWl+POeMbPSVH5GgnHMMLO7w45DJB+p3xGRMKjvkTAcGnYAkl5m9lHgfOAj7v6umQ0EDgs5rKxgZgXu3hR2HCLZRv1Oz6nfEek59T09p76ndzSClX+OAXa4+7sA7r7D3d8EMLNbzOwlM1tvZguCXcmjd2PmmVm1mb1iZqeZ2aNm9pqZfS84ZpiZvWpmDwXHLDazI9p+uJl9ysxeMLPVZvZLMzsyzjHPmNl/mtmLZvYnM/t40N7qboyZPWZmE4Lne81sbnCX6ndmNi64zutmNjnm8scG7a+Z2a0x1/pC8Hk1ZvYTMyuIue5/mdla4KO9/LsXyVfqd9TviIRBfY/6nlAowco/vyHyH9yfzOxeM/tkzHt3u/tp7j4aKCRy1yfqPXcvBeYDS4F/A0YDM8xsQHDMSOBedz8R+DtwdewHW+TO0c3AOe7+EaAa+HoHcR7q7uOArwG3dnBMrCLgKXc/CXgH+B5wLnAhcFvMceOAi4jsWH6JmZWa2YnApcDp7j4GaAI+H3Pdle5+irs/l0AcItKe+h31OyJhUN+jvicUSrDyjLvvBU4FrgDqgYfNbEbw9plmttLMaoGzgJNiTl0W/FkLvOzu24I7Qq8DxwbvbXH354PnvwDOaPPx44FRwPNmVgNcBnywg1AfDf5cBQxL4Ku9BzwRE+Pv3b0xeB57/m/dfae7NwSfcQZwNpG/k5eCuM4GPhQc3wQ8ksDni0gH1O+o3xEJg/oe9T1h0RqsPBTMqX0GeCboWC4zs0XAvUCpu28xszlA35jT3g3+bI55Hn0d/XfkbT+qzWsj8h/79ATCjH5GU8z1D9L6pkBsfI3uHv28lhjdvdnMYv+dx4vRgJ+5++w4cRzQHGSR3lO/0y5G9TsiaaC+p12M6nvSQCNYecbMRprZiJimMcAb/OM/3B3BHOGLe3D54yyyoBTgc0Db4eUVwOlm9s9BLEVmdnw3rr8ZGGNmh5jZsUSGvrvrXDM72swKgSnA88CTwMVmNjiI62gz6+guk4h0k/od9TsiYVDfo74nLBrByj9HAj82s35E7o5sAq5w9z1m9j/AeuBvwEs9uPZG4N/M7AFgA3Bf7JvuXh8MzVea2eFB883AnxK8/vPAX4JrvwKs7kGMLxIZ/h4K/MLdqwHM7GbgN2Z2CNBIZL71Gz24voi0p35H/Y5IGNT3qO8Jhf1jhFGk58xsGPBYsFhURCTl1O+ISBjU90hXNEVQREREREQkSTSCJSIiIiIikiQawRIREREREUkSJVgiIiIiIiJJogRLREREREQkSZRgiYiIiIiIJIkSLBERERERkST5/3mJ3b2O/rOhAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 3, figsize=(12, 5))\n", "for i in range(4):\n", " ax[0].plot(data.where(data['Country'] == countries[i])['Ethanol'], m[i])\n", "ax[0].set_xlabel('Sample number')\n", "ax[0].set_ylabel('Ethanol/%')\n", "for i in range(4):\n", " ax[1].plot(data.where(data['Country'] == countries[i])['Glycerol'], m[i])\n", "ax[1].set_xlabel('Sample number')\n", "ax[1].set_ylabel('Glycerol/%')\n", "for i in range(4):\n", " ax[2].plot(data.where(data['Country'] == countries[i])['Methanol'], m[i])\n", "ax[2].set_xlabel('Sample number')\n", "ax[2].set_ylabel('Methanol/%')\n", "plt.legend(labels=countries)\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "trying-hurricane", "metadata": {}, "source": [ "However, this univariate analysis process removes all covariation in the features. \n", "For example, if we plot the ethanol contant against the glycerol content, we can see a potentially interesting covariance. " ] }, { "cell_type": "code", "execution_count": 7, "id": "cross-disability", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for i in range(4):\n", " plt.plot(data.where(data['Country'] == countries[i])['Ethanol'], \n", " data.where(data['Country'] == countries[i])['Glycerol'], \n", " m[i])\n", "plt.xlabel('Ethanol/%')\n", "plt.ylabel('Glycerol/%')\n", "plt.legend(labels=countries)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "focused-aspect", "metadata": {}, "source": [ "If these two features were completely correlated, it would be possible to describe the dataset completely with a combined feature. \n", "Let's investigate performing a single component PCA on these two covariant features. \n", "First it is necessary to normalise the features such that those with large values do no overwhelm the analysis. \n", "This is achieved with the `sklearn.preprocessing.scale` function, we have also defined an `inverse_scale` helper function that will unnormalise the values." ] }, { "cell_type": "code", "execution_count": 8, "id": "laughing-tiffany", "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import scale" ] }, { "cell_type": "code", "execution_count": 9, "id": "final-kitchen", "metadata": {}, "outputs": [], "source": [ "def inverse_scale(s, x):\n", " sigma = np.array(x.std(ddof=0, axis=0))\n", " mu = np.array(x.mean(axis=0))\n", " return (s * sigma.T) + mu.T" ] }, { "cell_type": "markdown", "id": "ranking-double", "metadata": {}, "source": [ "We can then reduce the relationship between ethanol and glycerol content to a single dimension. \n", "We then inverse transform this to visualise the effect. " ] }, { "cell_type": "code", "execution_count": 10, "id": "super-lending", "metadata": {}, "outputs": [], "source": [ "pca = PCA(n_components=1)\n", "pca.fit(scale(data[['Ethanol', 'Glycerol']]))\n", "X_pca = pca.transform(scale(data[['Ethanol', 'Glycerol']]))" ] }, { "cell_type": "code", "execution_count": 11, "id": "spare-belgium", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "X_new = inverse_scale(pca.inverse_transform(X_pca), data[['Ethanol', 'Glycerol']])\n", "for i in range(4):\n", " plt.plot(data.where(data['Country'] == countries[i])['Ethanol'], \n", " data.where(data['Country'] == countries[i])['Glycerol'], \n", " m[i], \n", " alpha=0.5)\n", "plt.plot(X_new[:, 0], X_new[:, 1], 'k.')\n", "plt.xlabel('Ethanol/%')\n", "plt.ylabel('Glycerol/%')\n", "plt.legend(labels=countries)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "breathing-wesley", "metadata": {}, "source": [ "Above, we have used PCA with a single component to reduce the description of the covariation of ethanol and glycerol in our wine data. \n", "Although, the new dataset does not completely capture the dataset that it describes, we have encoded most of the information regarding the relationship between our two features. \n", "\n", "In total, there are 14 features in the data (we are not considering the country that the wine is produced in as a feature as this is essentially our independent variable). \n", "So, how many principal components should we use to describe the measured data?" ] }, { "cell_type": "code", "execution_count": 12, "id": "logical-necklace", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pca = PCA().fit(scale(data.drop('Country', axis=1)))\n", "plt.plot(np.cumsum(pca.explained_variance_ratio_), 'o')\n", "plt.axhline(1, color='k')\n", "plt.xlabel('Number of components')\n", "plt.ylabel('Cumulative explained variance')\n", "plt.ylim(0, 1.1)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "interim-storage", "metadata": {}, "source": [ "The plot above is a quantification of how much of the total data variance is contained within the first *N* components. \n", "We can see that using three components is capable of describing more than 50 % of the observed variance, while seven components are required to take this to more than 90 %. " ] }, { "cell_type": "code", "execution_count": 13, "id": "comparative-rally", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.24443085 0.45713481 0.63175889 0.73170985 0.80571813 0.86427209\n", " 0.91194903 0.93701181 0.96043195 0.97227143 0.98246275 0.99139934\n", " 0.9992006 1. ]\n" ] } ], "source": [ "print(np.cumsum(pca.explained_variance_ratio_))" ] }, { "cell_type": "markdown", "id": "gothic-genealogy", "metadata": {}, "source": [ "We can use a plot such as that above to determine how many components we should pay attention to. \n", "For simplicity going forward (so that we can use standard 2-dimensional plotting), we will only consider the first two principle components. " ] }, { "cell_type": "code", "execution_count": 14, "id": "acknowledged-alcohol", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PCA(n_components=2)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pca = PCA(n_components=2)\n", "pca.fit(scale(data.drop('Country', axis=1)))" ] }, { "cell_type": "markdown", "id": "senior-military", "metadata": {}, "source": [ "We can visualise the components as a function of the sample and country of origin or even the two components together." ] }, { "cell_type": "code", "execution_count": 15, "id": "headed-venture", "metadata": {}, "outputs": [], "source": [ "X_new = pca.fit_transform(scale(data.drop('Country', axis=1)))\n", "data['PC1'] = X_new[:, 0]\n", "data['PC2'] = X_new[:, 1]" ] }, { "cell_type": "code", "execution_count": 16, "id": "pediatric-mention", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAs8AAAJOCAYAAABInurKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABh9klEQVR4nO3de3xV5ZX/8e8S0YRoDeXSarCFWkQpEdCUxFtFrcVahiJqhV/rSFvqqK3atBMrrTPazszPdmJLazuaYeJUZ+ovOEUM1rZS66Ve2qCEi0EQRQer0UKg4AWCBrJ+f5x9YhJykp3knLPP5fN+vc7LnCcne68dZJ/FOut5HnN3AQAAAOjbQVEHAAAAAGQLkmcAAAAgJJJnAAAAICSSZwAAACAkkmcAAAAgJJJnAAAAIKRIk2czqzSzZ81svZnVmVlBlPEAAAAAvbGo1nk2sxJJT0ia6O6tZvY/kn7j7nck+pmRI0f62LFj0xQhACRPY2PjdncfFXUc6cQ9G0A2S3TfPjiKYLqdv9DM2iQNk/Raby8eO3asVq1alZbAACCZzOzlqGNIN+7ZALJZovt2ZG0b7t4s6WZJf5b0uqQ33P13UcUDAAAA9CWy5NnMhkv6rKRxko6SVGRmX+jhdZeZ2SozW9XS0pLuMAEAAIAOUU4Y/KSk/3X3Fndvk7RM0indX+Tui929zN3LRo3Kq3ZBAAAAZJgoe57/LKnCzIZJapV0tiSa4wAgh7W1tenVV1/V3r17ow4lLxUUFGjMmDEaOnRo1KEAWSuy5NndV5rZUkmrJe2TtEbS4qjiAQCk3quvvqrDDz9cY8eOlZlFHU5ecXft2LFDr776qsaNGxd1OEDWinSdZ3e/wd2Pc/dJ7n6Ju78TZTwAgNTau3evRowYQeIcATPTiBEjqPoDg8QOgwD6tKO2VrsbVnYZ292wUjtqayOKCNmMxDk6/O6BwSN5BtCngkmlaq6s7EigdzesVHNlpQomlUYcGTAw9fX1MjM999xzKT/X2rVr9Zvf/Kbj+X333afvf//7KT8vgNQgeQbQp6KKcpUsWqTmykq13HKLmisrVbJokYoqyqMODRiQuro6nXbaaaqrqzvge/v27Uvqubonz7NmzdJ1112X1HMASB+SZwChFFWUa/i8udp+620aPm8uiTPSon5Ns079/sMad92vder3H1b9muZBH/Ptt9/WE088odtvv11LliyRJD366KM6/fTTNWvWLE2cOFHt7e268sorddxxx+mcc87Reeedp6VLl0qSGhsbdcYZZ+ikk07SjBkz9Prrr0uSpk+frm9961uaNm2ajj32WD3++ON699139Y//+I+6++67NWXKFN19992644479LWvfU2SNH/+fF199dU65ZRT9JGPfKTjHG+//bbOPvtsnXjiiSotLdXy5csHfd0AkoPkGUAouxtWamfdEo288grtrFtyQA80kGz1a5q1cFmTmne1yiU172rVwmVNg06gly9frnPPPVfHHnusRowYocbGRknS6tWr9ZOf/ETPP/+8li1bpi1btmjDhg367//+b/3pT3+SFFtq76qrrtLSpUvV2NioL33pS/rOd77Tcex9+/bpqaee0o9//GN997vf1SGHHKLvfe97uvjii7V27VpdfPHFB8Tz+uuv64knntD999/fUZEuKCjQvffeq9WrV+uRRx7RN7/5Tbn7oK4bQHJEuc4zgCwR73GOt2oMm1ZO6wZSrnrFJrW27e8y1tq2X9UrNmn21JIBH7eurk7XXHONJGnu3Lmqq6vTzJkzNW3atI4l3J544glddNFFOuigg/TBD35QZ555piRp06ZNWr9+vc455xxJ0v79+3XkkUd2HHvOnDmSpJNOOklbtmwJFc/s2bN10EEHaeLEidq6dauk2LJy3/72t/XYY4/poIMOUnNzs7Zu3aoPfvCDA75uAMlB8gygT3vXN3VJlOM90HvXN5E8I2Ve29Xar/Ew/vrXv+rhhx9WU1OTzEz79++Xmekzn/mMioqK+vx5d9fHPvaxjkp0d4ceeqgkaciQIaF7p+M/Ez++JN11111qaWlRY2Ojhg4dqrFjx7LEHJAhaNsA0KcRCxYckCQXVZRrxIIFEUWEfHBUcWG/xsNYunSpLrnkEr388svasmWLXnnlFY0bN06PP/54l9edeuqpuueee9Te3q6tW7fq0UcflSRNmDBBLS0tXdo4nn322V7Pefjhh+utt97qV5xvvPGGRo8eraFDh+qRRx7Ryy+/3K+fB5A6JM8AgIxUNWOCCocO6TJWOHSIqmZMGPAx6+rqdP7553cZu+CCCw5YdeOCCy7QmDFjNHHiRH3hC1/QiSeeqCOOOEKHHHKIli5dqm9961uaPHmypkyZoj/+8Y+9nvPMM8/Uhg0bOiYMhvH5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2SXSdZ7dfW3QknGCu892951RxgMAyBzxqnNbe5skqa29LSnV57POOkvvvPOOFi9e3DH2zDPP6PHHH+/Xcc4++2wtXbpU27ZtkyT99a9/1csvvzyo2ABkPnYYBABkpM5V57h49XkwzEz33nuvfv/73+uYY47Rxz72MS1cuFAf/OAH+3WciRMn6p//+Z/1qU99SieccILOOeccvf7664OKDUDms/hM4mxQVlbmPc12BoBMZ2aN7l4WdRzp1NM9e+PGjTr++OND/fyF912oTTs3HTA+YfgELZ3Vc9sF+tafPwMgnyW6b0fd8wwAQI9IkAFkIto2AAAAgJBIngEAAICQSJ4BAACAkEieAQAAgJBIngEAAICQSJ4BAHnlX/7lX/Sxj31MJ5xwgqZMmaKVK1cO6DiPPvqo/vjHP3Y8nz9/fsKdC7urr6+Xmem5557rGGtpaVF5ebmmTp3a44YtCxYs0IYNGwYUK4DkYak6AEDe+NOf/qT7779fq1ev1qGHHqrt27fr3XffHdCxHn30UR122GE65ZRT+v2zdXV1Ou2001RXV6fvfve7kqSHHnpIpaWlqq2tPeD1+/fv73EcQPpReQYAZKQdtbXa3dC1Kry7YaV2DCKJfP311zVy5EgdeuihkqSRI0fqqKOOkhRLXqdOnarS0lJ96Utf0jvvvCNJGjt2rLZvj20JvmrVKk2fPl1btmxRTU2NFi1apClTpnRUih977DGdcsop+shHPpKwCv3222/riSee0O23364lS5ZIktauXatrr71Wy5cv15QpU9Ta2qrDDjtM3/zmNzV58mT96U9/0vTp0xXfdOaBBx7QiSeeqMmTJ+vss8+WJD311FM6+eSTNXXqVJ1yyinatOnADWYADB7JMwAgIxVMKlVzZWVHAr27YaWaKytVMKl0wMf81Kc+pVdeeUXHHnusrrzySv3hD3+QJO3du1fz58/X3XffraamJu3bt0+33XZbwuOMHTtWl19+uSorK7V27VqdfvrpkmLJ+RNPPKH7779f1113XY8/u3z5cp177rk69thjNWLECDU2NmrKlCn63ve+p4svvlhr165VYWGhdu/erfLycq1bt06nnXZax8+3tLToK1/5iu655x6tW7dOv/zlLyVJxx13nB5//HGtWbNG3/ve9/Ttb397wL8nAImRPAMAMlJRRblKFi1Sc2WlWm65Rc2V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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(12, 10))\n", "gs = gridspec.GridSpec(2, 2) \n", "ax0 = plt.subplot(gs[0, 0])\n", "for i in range(4):\n", " ax0.plot(data.where(data['Country'] == countries[i])['PC1'], m[i])\n", "ax0.set_xlabel('Sample number')\n", "ax0.set_ylabel('Component 1')\n", "ax1 = plt.subplot(gs[1, 0])\n", "for i in range(4):\n", " ax1.plot(data.where(data['Country'] == countries[i])['PC2'], m[i])\n", "ax1.set_xlabel('Sample number')\n", "ax1.set_ylabel('Component 2')\n", "ax2 = plt.subplot(gs[:, 1])\n", "for i in range(4):\n", " plt.plot(data.where(data['Country'] == countries[i])['PC1'], \n", " data.where(data['Country'] == countries[i])['PC2'], \n", " m[i])\n", "ax2.set_xlabel('Component 1')\n", "ax2.set_ylabel('Component 2')\n", "plt.legend(labels=countries)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "conventional-numbers", "metadata": {}, "source": [ "From plotting the component scores, we can see that, for example, the Chilean wines typically have negative scores for component 2. \n", "This means that the these wines have less of the features that component 2 represents. \n", "Additionally, we can start to see clustering of different countries' wine in the cross component plot.\n", "Clustering methods could potentially be applied here to classify the country of origin for new wines to our data automatically. \n", "\n", "Above, we mentioned that the Chilean wines appear to have less of the features that contribute to component 2. \n", "To understand this, it is necessary to investigate which features contribute to a given component. \n", "This can be achieved for our system by plotting the loadings of each feature to the component." ] }, { "cell_type": "code", "execution_count": 17, "id": "promotional-paste", "metadata": {}, "outputs": [], "source": [ "loading_matrix = pd.DataFrame(pca.components_.T * np.sqrt(pca.explained_variance_), columns=['PC1', 'PC2'], index=data.columns[:-3])" ] }, { "cell_type": "code", "execution_count": 18, "id": "modular-lebanon", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEvCAYAAABbr4ZNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAA3RklEQVR4nO3dd5xU1f3/8deHJhawohIRQUXFgCAuJPZKomJvX0si+hUJscQSC34TGxqDRhPU2AjG/rMl9mDDFjUqoFIUiAIhuIqKREGj9M/vj3NnmR1m787OvVNg38/HYx/MvXP3M4fdnfnce865n2PujoiISENaVLoBIiJS3ZQoREQklhKFiIjEUqIQEZFYShQiIhKrVaUbkLaNNtrIu3TpUulmiIisUt5+++0v3L1DvudWu0TRpUsXxo8fX+lmiIisUszs3w09p64nERGJpUQhIiKxlChERCTWajdGIbI6WrJkCbW1tSxcuLDSTZFVXNu2benUqROtW7cu+HsqmijMbH/geqAlMMrdh+c83xm4C1gvOmaou48udztFKq22tpZ27drRpUsXzKzSzZFVlLszb948amtr6dq1a8HfV7GuJzNrCdwEHABsDxxnZtvnHPZr4CF33xE4Fri5vK0UqQ4LFy5kww03VJKQRMyMDTfcsMlXppUco+gHTHf3me6+GHgAODTnGAfaR4/XBT4pY/tEqoqShKShmL+jSiaKzYCPsrZro33ZLgN+Yma1wGjgzHyBzGywmY03s/Fz584tRVtFRJqtah/MPg64092vM7OdgXvMrIe7L88+yN1HAiMBampqVs0FNi5bN+a5+eVrh6wSugz9W6rxZg0f0Ogxn376KWeffTbjxo1jvfXWY5NNNmHEiBFss802qbalnF5++WXatGnDLrvsstJz06ZN4+STT+add97hN7/5Deedd17eGO7Ovvvuy2OPPcb8+fM58cQT+eyzzzAzBg8ezFlnnVXv+Ouuu47zzjuPuXPnstFGG+WNuWDBArbffnsOO+ww/vjHP670/AknnMDkyZM56KCDuOqqqwC48sor6dGjB4cddhgATz31FGPHjmXYsGFN+ZHkVckrio+BzbO2O0X7sp0CPATg7m8AbYH8P1kRKRl35/DDD2evvfZixowZvP322/z2t7/ls88+q3TTEnn55Zf5xz/+kfe5DTbYgBtuuKHBBJExevRoevXqRfv27WnVqhXXXXcdU6ZM4c033+Smm25iypQpdcd+9NFHPPfcc3Tu3Dk25sUXX8wee+yR97lJkyax5pprMmnSJMaNG8f8+fOZM2cOb731Vl2SABgwYABPPvkk3377bexrFaKSiWIc0M3MuppZG8Jg9RM5x8wG9gUws+6ERKG+JZEye+mll2jdujVDhgyp29erVy9233133J3zzz+fHj160LNnTx588EEgfAjvueeeHHrooWy55ZYMHTqU++67j379+tGzZ09mzJgBwEknncSQIUOoqalhm2224amnngLCAP7JJ59Mz5492XHHHXnppZcAuPPOOzniiCPYf//96datGxdccEFdm5577jl23nln+vTpw9FHH80333wDhNI+l156KX369KFnz55MmzaNWbNmceutt/KHP/yB3r178+qrr9b7P2+88cb07du30Wmk9913H4ceGoZXO3bsSJ8+fQBo164d3bt35+OPV5z/nnPOOVxzzTWx4wRvv/02n332GT/60Y/yPt+6dWu+++47li9fzpIlS2jZsiWXXHIJl19+eb3jzIy99tqr7ueZRMW6ntx9qZmdATxLmPr6Z3d/38yGAePd/Qngl8CfzOwcwsD2Sa61W5smrksL1K0lBXnvvffYaaed8j73yCOPMGHCBCZOnMgXX3xB3759686GJ06cyNSpU9lggw3YcsstGTRoEGPHjuX666/nxhtvZMSIEQDMmjWLsWPHMmPGDPbee2+mT5/OTTfdhJkxefJkpk2bxo9+9CM++OADACZMmMC7777LGmuswbbbbsuZZ57JmmuuyZVXXsmYMWNYe+21ufrqq/n973/PJZdcAsBGG23EO++8w80338y1117LqFGjGDJkCOuss06jVw1xXn/9dW677baV9s+aNYt3332XH/zgBwA8/vjjbLbZZvTq1avBWMuXL+eXv/wl9957L2PGjMl7TPfu3enQoQN9+vThpz/9KdOnT2f58uV1CSpbTU0Nr776Ksccc0yR/7ugomMU0T0Ro3P2XZL1eAqwa7nbJSKFe+211zjuuONo2bIlm2yyCXvuuSfjxo2jffv29O3bl44dOwKw1VZb1Z0l9+zZs+4KAeCYY46hRYsWdOvWjS233JJp06bx2muvceaZYf7KdtttxxZbbFGXKPbdd1/WXTecBG2//fb8+9//5quvvmLKlCnsumv4yFi8eDE777xz3WscccQRAOy000488sgjqf3///Of/9CuXbt6+7755huOPPJIRowYQfv27fn222+56qqreO6552Jj3XzzzRx44IF06tQp9rhMggU4+OCDue222/jNb37DxIkT6d+/P6eeeioQroo++ST5ZNFqH8wWkSrw/e9/n7/85S9N/r411lij7nGLFi3qtlu0aMHSpUvrnsvtimlsCmd23JYtW7J06VLcnf79+3P//ffHfk/m+LS0atWK5cuX06JF6MlfsmQJRx55JCeccEJdcpoxYwb/+te/6q4mamtr6dOnD2PHjmXTTTeti/XGG2/w6quvcvPNN/PNN9+wePFi1llnHYYPH77yCxOuUnbaaSe++eYbZsyYwUMPPcSPf/xjTjjhBNZaay0WLlzImmuumfj/qFpPItKoffbZh0WLFjFy5Mi6fZMmTeLVV19l991358EHH2TZsmXMnTuXv//97/Tr169J8R9++GGWL1/OjBkzmDlzJttuuy2777479913HwAffPABs2fPZtttt20wxg9/+ENef/11pk+fDsB///vfuiuQhrRr146vv/66SW3Nte222zJz5kwgDPqfcsopdO/enXPPPbfumJ49e/L5558za9YsZs2aRadOnXjnnXfqJQkI4x2zZ89m1qxZXHvttZx44okNJoklS5YwYsQILrjgAr777ru65Lps2TIWL14MhJ9bjx49Ev3/QFcUIqukQqazpsnMePTRRzn77LO5+uqradu2LV26dGHEiBHstttuvPHGG/Tq1Qsz45prrmHTTTdl2rRpBcfv3Lkz/fr1Y8GCBdx66620bduW0047jZ///Of07NmTVq1aceedd9a7ksjVoUMH7rzzTo477jgWLVoEhCmjcdN3Dz74YI466igef/xxbrzxRnbfffe65z799FNqampYsGABLVq0YMSIEUyZMoX27dvXizFgwABefvlltt56a15//XXuueceevbsSe/evQG46qqrOPDAAxtsw/jx47n11lsZNWpUIT+qOjfddBMDBw5krbXWYocdduDbb7+lZ8+eHHjggay33npAmITw29/+tklx87HVbWy4pqbGV8mFi0p1H4UGs1cLU6dOpXv37pVuRkmcdNJJHHTQQRx11FGVbkpR5syZw4knnsjzzz9f6abU89lnn3H88cfzwgsvrPRcvr8nM3vb3WvyxVLXk4hIAh07duTUU09lwYIFlW5KPbNnz+a6665LJZa6nkSkou68885KNyGxpNNPS6Fv376pxdIVhYiIxFKiEBGRWEoUIiISS4lCRERiaTBbZFXU2LTnJsdrfJp0cyszft9993H11Vfj7rRr145bbrklb52mQsuMP/zww1x22WVMnTqVsWPHUlOz8kzUhQsXsscee7Bo0SKWLl3KUUcdtVKxP4ALL7yQp59+mt69e3P33XcDcO+99/LFF19w9tlnAzB58mSuu+66VCYL6IpCRBrVHMuMd+3alVdeeYXJkydz8cUXM3jw4LzHFVpmvEePHjzyyCMNlg+HUGbkxRdfZOLEiUyYMIFnnnmGN998s94x8+fP55133mHSpEm0adOGyZMn891333HHHXdw+umn1x3Xs2dPamtrmT17dlN/LCtRohCRRjXHMuO77LIL66+/PhDKg9TW1ub92RRaZrx79+6xJUgg3AG/zjrrAKFEx5IlS1aqe9WiRQuWLFmCu/Ptt9/SunVrrr32Ws4888yVSqIffPDBPPDAA7GvWQglChFpVKFlxseMGcP555/PnDlzgFBm/NZbb2Xq1Kncc889fPDBB4wdO5ZBgwZx44031sXIlBn/29/+xpAhQ1i4cGG9MuP3338/AwcOZOHChUAoM/7ggw8yefJkHnzwQT766CO++OKLujLj77zzDjU1Nfz+97+ve41MmfGf//znXHvttXTp0oUhQ4ZwzjnnMGHChHrlO3LdfvvtHHDAAXmfe/311/P+bHLLjBdq2bJl9O7dm4033pj+/fuv9P3t2rXjwAMPZMcdd6Rjx46su+66Ky1alJEpM56Uxiik+dBysyWxupcZf+mll7j99tt57bXX8j5fSJnxpmjZsiUTJkzgq6++4vDDD+e9995bqbDfBRdcUHclNWjQIIYNG8aoUaN47rnn2GGHHfj1r38NqMy4yEoaW0d6VtsyNWQ11FzLjE+aNIlBgwbx9NNPs+GGG+Y9ppAy48VYb7312HvvvXnmmWcarAD77rvv4u5su+22XHTRRTz77LOcfPLJfPjhh3Tr1k1lxkWkfJpjmfHZs2dzxBFHcM8998TO7CqkzHih5s6dy1dffQXAd999x/PPP892223X4PEXX3wxV1xxBUuWLGHZsmVASMKZdbJVZlykOStzV1lzLDM+bNgw5s2bx2mnnQaEK4d8lakL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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ind = np.arange(len(loading_matrix.index))\n", "width = 0.35\n", "\n", "fig, ax = plt.subplots()\n", "ax.bar(ind, loading_matrix['PC1'], width, label='Component 1 ({:.1f} %)'.format(pca.explained_variance_ratio_[0] * 100))\n", "ax.bar(ind + width, loading_matrix['PC2'], width, label='Component 2 ({:.1f} %)'.format(pca.explained_variance_ratio_[1] * 100))\n", "ax.set_xlabel('Features')\n", "ax.set_ylabel('Loading')\n", "ax.set_xticks(ind + width / 2)\n", "ax.set_xticklabels(loading_matrix.index)\n", "ax.tick_params(axis='x', rotation=90)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "municipal-closure", "metadata": {}, "source": [ "Since the Chilean wines had negative scores for component 2, it is implies that they have a lot of the opposite of the feature represented by component 2. \n", "These can be interpreted that Chilean wines have variation where ehtanol, total acid, volatile A, and lactic acid are all low, but malic acid is high. \n", "\n", "We will now move on to explore the application of PCA in improving edge detection. \n", "However, for the interested reader, we recommend the mathematical discuss of all aspects of PCA from Bro and Smilde {cite}`bro_analytical_2014` as well as the detailed introduction to PCA in Python from VanderPlas {cite}`vanderplas_python_2016`." ] }, { "cell_type": "code", "execution_count": null, "id": "provincial-movie", "metadata": {}, "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.7.9" } }, "nbformat": 4, "nbformat_minor": 5 }