Skip to content

Instantly share code, notes, and snippets.

@georgehc
Last active March 19, 2025 17:49
Show Gist options
  • Save georgehc/af73c94f49378b22ec233c26021e24ef to your computer and use it in GitHub Desktop.
Save georgehc/af73c94f49378b22ec233c26021e24ef to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# UDA PCA Demo\n",
"Author: George Chen (georgechen [at symbol] cmu.edu)\n",
"\n",
"This demo is heavily based on Mark Richardson's 2009 \"Principle Component Analysis\" notes and uses data he pulled from DEFRA on 1997 UK food consumption (grams/person/week). This dataset is also used as a nice illustrated example of PCA here:\n",
"http://setosa.io/ev/principal-component-analysis/"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.style.use('seaborn-v0_8') # prettier plots\n",
"import numpy as np\n",
"\n",
"# grams per person per week\n",
"food_data = np.array([[105, 103, 103, 66],\n",
" [245, 227, 242, 267],\n",
" [685, 803, 750, 586],\n",
" [147, 160, 122, 93],\n",
" [193, 235, 184, 209], \n",
" [156, 175, 147, 139],\n",
" [720, 874, 566, 1033],\n",
" [253, 265, 171, 143],\n",
" [488, 570, 418, 355],\n",
" [198, 203, 220, 187],\n",
" [360, 365, 337, 334],\n",
" [1102, 1137, 957, 674],\n",
" [1472, 1582, 1462, 1494],\n",
" [57, 73, 53, 47],\n",
" [1374, 1256, 1572, 1506],\n",
" [375, 475, 458, 135],\n",
" [54, 64, 62, 41]])\n",
"row_labels = ['Cheese',\n",
" 'Carcass meat',\n",
" 'Other meat',\n",
" 'Fish',\n",
" 'Fats and oils',\n",
" 'Sugars',\n",
" 'Fresh potatoes',\n",
" 'Fresh Veg',\n",
" 'Other Veg',\n",
" 'Processed potatoes',\n",
" 'Processed Veg',\n",
" 'Fresh fruit',\n",
" 'Cereals',\n",
" 'Beverages',\n",
" 'Soft drinks',\n",
" 'Alcoholic drinks',\n",
" 'Confectionary']\n",
"column_labels = ['England', 'Wales', 'Scotland', 'N Ireland']"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" England Wales Scotland N Ireland\n",
"Cheese 105 103 103 66\n",
"Carcass meat 245 227 242 267\n",
"Other meat 685 803 750 586\n",
"Fish 147 160 122 93\n",
"Fats and oils 193 235 184 209\n",
"Sugars 156 175 147 139\n",
"Fresh potatoes 720 874 566 1033\n",
"Fresh Veg 253 265 171 143\n",
"Other Veg 488 570 418 355\n",
"Processed potatoes 198 203 220 187\n",
"Processed Veg 360 365 337 334\n",
"Fresh fruit 1102 1137 957 674\n",
"Cereals 1472 1582 1462 1494\n",
"Beverages 57 73 53 47\n",
"Soft drinks 1374 1256 1572 1506\n",
"Alcoholic drinks 375 475 458 135\n",
"Confectionary 54 64 62 41\n"
]
}
],
"source": [
"# printing out the table using some basic Python\n",
"\n",
"first_column_width = 20\n",
"other_columns_width = 15\n",
"\n",
"# print header\n",
"print(\"\".ljust(first_column_width), end='')\n",
"for column_label in column_labels:\n",
" print(column_label.rjust(other_columns_width), end='')\n",
"print()\n",
"\n",
"# print each row in the numpy array with a column label\n",
"for row_label, row in zip(row_labels, food_data):\n",
" print(row_label.ljust(first_column_width), end='')\n",
" print(\"\".join([(\"%d\" % x).rjust(other_columns_width) for x in row]))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>England</th>\n",
" <th>Wales</th>\n",
" <th>Scotland</th>\n",
" <th>N Ireland</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Cheese</th>\n",
" <td>105</td>\n",
" <td>103</td>\n",
" <td>103</td>\n",
" <td>66</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Carcass meat</th>\n",
" <td>245</td>\n",
" <td>227</td>\n",
" <td>242</td>\n",
" <td>267</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Other meat</th>\n",
" <td>685</td>\n",
" <td>803</td>\n",
" <td>750</td>\n",
" <td>586</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fish</th>\n",
" <td>147</td>\n",
" <td>160</td>\n",
" <td>122</td>\n",
" <td>93</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fats and oils</th>\n",
" <td>193</td>\n",
" <td>235</td>\n",
" <td>184</td>\n",
" <td>209</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sugars</th>\n",
" <td>156</td>\n",
" <td>175</td>\n",
" <td>147</td>\n",
" <td>139</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fresh potatoes</th>\n",
" <td>720</td>\n",
" <td>874</td>\n",
" <td>566</td>\n",
" <td>1033</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fresh Veg</th>\n",
" <td>253</td>\n",
" <td>265</td>\n",
" <td>171</td>\n",
" <td>143</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Other Veg</th>\n",
" <td>488</td>\n",
" <td>570</td>\n",
" <td>418</td>\n",
" <td>355</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Processed potatoes</th>\n",
" <td>198</td>\n",
" <td>203</td>\n",
" <td>220</td>\n",
" <td>187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Processed Veg</th>\n",
" <td>360</td>\n",
" <td>365</td>\n",
" <td>337</td>\n",
" <td>334</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fresh fruit</th>\n",
" <td>1102</td>\n",
" <td>1137</td>\n",
" <td>957</td>\n",
" <td>674</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cereals</th>\n",
" <td>1472</td>\n",
" <td>1582</td>\n",
" <td>1462</td>\n",
" <td>1494</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Beverages</th>\n",
" <td>57</td>\n",
" <td>73</td>\n",
" <td>53</td>\n",
" <td>47</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Soft drinks</th>\n",
" <td>1374</td>\n",
" <td>1256</td>\n",
" <td>1572</td>\n",
" <td>1506</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Alcoholic drinks</th>\n",
" <td>375</td>\n",
" <td>475</td>\n",
" <td>458</td>\n",
" <td>135</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Confectionary</th>\n",
" <td>54</td>\n",
" <td>64</td>\n",
" <td>62</td>\n",
" <td>41</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" England Wales Scotland N Ireland\n",
"Cheese 105 103 103 66\n",
"Carcass meat 245 227 242 267\n",
"Other meat 685 803 750 586\n",
"Fish 147 160 122 93\n",
"Fats and oils 193 235 184 209\n",
"Sugars 156 175 147 139\n",
"Fresh potatoes 720 874 566 1033\n",
"Fresh Veg 253 265 171 143\n",
"Other Veg 488 570 418 355\n",
"Processed potatoes 198 203 220 187\n",
"Processed Veg 360 365 337 334\n",
"Fresh fruit 1102 1137 957 674\n",
"Cereals 1472 1582 1462 1494\n",
"Beverages 57 73 53 47\n",
"Soft drinks 1374 1256 1572 1506\n",
"Alcoholic drinks 375 475 458 135\n",
"Confectionary 54 64 62 41"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# printing out the table using Pandas\n",
"\n",
"import pandas\n",
"df = pandas.DataFrame(food_data, columns=column_labels, index=row_labels)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 105, 245, 685, 147, 193, 156, 720, 253, 488, 198, 360,\n",
" 1102, 1472, 57, 1374, 375, 54],\n",
" [ 103, 227, 803, 160, 235, 175, 874, 265, 570, 203, 365,\n",
" 1137, 1582, 73, 1256, 475, 64],\n",
" [ 103, 242, 750, 122, 184, 147, 566, 171, 418, 220, 337,\n",
" 957, 1462, 53, 1572, 458, 62],\n",
" [ 66, 267, 586, 93, 209, 139, 1033, 143, 355, 187, 334,\n",
" 674, 1494, 47, 1506, 135, 41]])"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"food_data.T"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(17, 4)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"food_data.shape"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(4, 17)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"food_data.T.shape"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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W1qPj46ORvPmzVG6dGmUL18e0dHRmtv8SUlJePTokdZt/3+jVitQq5XC+WV0KD9fjbw8/R88MuSQIQNzyJdBlhwyZJAlhwwZZMkhQ4a3oYvMfC60yfB8yJChMBRaR4ULFy5gwIABGD16NEaOHKlVnAJA586dER4ejoiICOTm5mLVqlVITk6Gm5sbAKBTp05YvHgxYmNjkZGRgalTp6Jhw4b46KOPCisiEREREb0DCu0K6pIlS5CXlwd/f3/4+/trtjs4OGD58uVo0qQJxo8fjwkTJiAhIQF2dnYICgqChYUFAGDAgAHIy8tD165doVKp0KhRI8yZM6ew4hERERHRO+I/Fag3btzQ/P+SJUv+9fEdOnRAhw4dXrrP2NgYw4YNw7Bhw/5LJCIiIiJ6x70fcxEQERER0XuDBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJxUjfAYiIiPShZ+BBYW0Fj3IV1hbR+4BXUImIiIhIKixQiYiIiEgqLFCJiIiISCosUImIiIhIKixQiYiIiEgqLFCJiIiISCosUImIiIhIKixQiYiIiEgqLFCJiIiISCosUImIiIhIKixQiYiIiEgqLFCJiIiISCosUImIiIhIKixQiYiIiEgqLFCJiIiISCosUImIiIhIKixQiYiIiEgqLFCJiIiISCosUImIiIhIKixQiYiIiEgqLFCJiIiISCosUImIiIhIKixQiYiIiEgqb12gpqSkwM3NDZGRkZptFy9ehJeXF+rWrQtXV1eEhoZq/Z0tW7bAzc0N9vb26NSpE86fP6/Zl5+fj2nTpsHR0RF169aFj48PEhMT3zYeEREREb2j3qpAPXv2LL755hvExMRotqWlpaFPnz7w8PBAVFQU/P39ERAQgEuXLgEAIiMjMXnyZAQGBiIqKgrt27eHj48PsrKyAACLFy/GiRMnsGnTJhw7dgympqYYO3ZsIfyKRERERPQueeMCdcuWLRg2bBj8/Py0tu/duxcWFhbo2rUrjIyM0KRJE7i7u2PdunUAgNDQULRt2xYODg4wNjaGt7c3LC0tsXPnTs3+3r17o0KFCihZsiTGjBmDo0ePIjY2thB+TSIiIiJ6Vxi96V9wcnKCu7s7jIyMtIrUW7duoUaNGlqPtbOzQ1hYGAAgOjoanp6eL+y/fv060tPT8eDBA62/X6ZMGZQuXRo3btyAra3ta2UzNDSAoaHBm/5KwhQrZqj136KcQ4YMzCFfBllyyJBBlhwyZJApx9syMtJ/7sLMwNdDmwzPhwwZCtMbF6hly5Z96XaVSgUzMzOtbaampsjMzPzX/SqVCgBQokSJF/YX7HsdVlbmMDCQt0AtUKqU2b8/SAAZcsiQAWAO2TIAcuSQIQMgRw4ZMgDy5HhTlpbm+o6gkwx8PbTJ8HzIkKEwvHGB+ipmZmZIT0/X2padnQ1zc3PN/uzs7Bf2W1paagrXgv6oL/v7ryMlRSX9FdRSpczw+HEW8vPVRTqHDBmYQ74MsuSQIYMsOWTIIFOOt5Wa+voXW96FDHw9tMnwfMiQ4XW9zglCoRWoNWrUwIkTJ7S2RUdHo3r16gCA6tWr49atWy/sb968OUqXLo3y5csjOjpac5s/KSkJjx49eqHbwD9RqxWo1cp//E10Lz9fjbw8/R88MuSQIQNzyJdBlhwyZJAlhwwZZMrxpmTIrIsMfD20yfB8yJChMBRaRwU3Nzc8fPgQq1atQm5uLiIiIhAeHq7pd9q5c2eEh4cjIiICubm5WLVqFZKTk+Hm5gYA6NSpExYvXozY2FhkZGRg6tSpaNiwIT766KPCikhERERE74BCu4JqaWmJ4OBg+Pv7Y968ebCyssLYsWPRuHFjAECTJk0wfvx4TJgwAQkJCbCzs0NQUBAsLCwAAAMGDEBeXh66du0KlUqFRo0aYc6cOYUVj4iIiIjeEf+pQL1x44bWz7Vr18aGDRte+fgOHTqgQ4cOL91nbGyMYcOGYdiwYf8lEhERERG9496PuQiIiIiI6L3BApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikUqgF6p9//omuXbuifv36cHJywpQpU5CTkwMAuHjxIry8vFC3bl24uroiNDRU6+9u2bIFbm5usLe3R6dOnXD+/PnCjEZERERE74hCK1DVajX69u2L1q1b4/Tp0wgLC8Px48cRFBSEtLQ09OnTBx4eHoiKioK/vz8CAgJw6dIlAEBkZCQmT56MwMBAREVFoX379vDx8UFWVlZhxSMiIiKid4RRYf1DaWlpSEpKglqthqIoAABDQ0OYmZlh7969sLCwQNeuXQEATZo0gbu7O9atW4c6deogNDQUbdu2hYODAwDA29sbGzduxM6dO+Hp6fnaGQwNDWBoaFBYv1KhK1bMUOu/RTmHDBmYQ74MsuSQIYMsOWTIIFOOt2VkpP/chZmBr4c2GZ4PGTIUpkIrUC0tLeHt7Y1p06Zh+vTpyM/PR8uWLeHt7Y3AwEDUqFFD6/F2dnYICwsDAERHR79QiNrZ2eH69etvlMHKyhwGBvIWqAVKlTLTdwQAcuSQIQPAHLJlAOTIIUMGQI4cMmQA5MnxpiwtzfUdQScZ+Hpok+H5kCFDYSi0AlWtVsPU1BTjxo1D586dcffuXQwcOBDz5s2DSqWCmZn2E2ZqaorMzEwA+Nf9ryslRSX9FdRSpczw+HEW8vPVRTqHDBmYQ74MsuSQIYMsOWTIIFOOt5WaqtJ3hELNwNdDmwzPhwwZXtfrnCAUWoG6b98+7NmzB7t37wYAVK9eHQMGDIC/vz/c3d2Rnp6u9fjs7GyYmz8NaGZmhuzs7Bf2W1pavlEGtVqBWq38h99CjPx8NfLy9H/wyJBDhgzMIV8GWXLIkEGWHDJkkCnHm5Ihsy4y8PXQJsPzIUOGwlBoHRXu37+vGbFfwMjICMbGxqhRowZu3bqltS86OhrVq1cH8LSY/af9RERERFR0FFqB6uTkhKSkJCxZsgT5+fmIjY3F4sWL4e7uDjc3Nzx8+BCrVq1Cbm4uIiIiEB4erul32rlzZ4SHhyMiIgK5ublYtWoVkpOT4ebmVljxiIiIiOgdUWi3+O3s7LB06VLMmTMHy5cvxwcffID27dtjwIABKF68OIKDg+Hv74958+bBysoKY8eORePGjQE8HdU/fvx4TJgwAQkJCbCzs0NQUBAsLCwKKx4RERERvSMKrUAFAEdHRzg6Or50X+3atbFhw4ZX/t0OHTqgQ4cOhRmHiIiIiN5B78dkWURERET03mCBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFIx0ncAInp/9Qw8KKyt4FGuwtoiIiLd4hVUIiIiIpIKC1QiIiIikgoLVCIiIiKSCgtUIiIiIpIKC1QiIiIikgoLVCIiIiKSCgtUIiIiIpIKC1QiIiIikgoLVCIiIiKSCleSokLBFYOIiIiosPAKKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJpVAL1EePHmHEiBFo1KgRGjRogP79+yMxMREAcPHiRXh5eaFu3bpwdXVFaGio1t/dsmUL3NzcYG9vj06dOuH8+fOFGY2IiIiI3hGFWqAOGjQImZmZ2LdvHw4dOoRixYph3LhxSEtLQ58+feDh4YGoqCj4+/sjICAAly5dAgBERkZi8uTJCAwMRFRUFNq3bw8fHx9kZWUVZjwiIiIiegcYFdY/dOXKFVy8eBEnT55EyZIlAQCTJ09GUlIS9u7dCwsLC3Tt2hUA0KRJE7i7u2PdunWoU6cOQkND0bZtWzg4OAAAvL29sXHjRuzcuROenp6vncHQ0ACGhgaF9SsVumLFDLX+W9RzvC0jo8LLLctzIUMOGTL8Fzwu3t8MMuV4W4V5fMqQga+HNhmeDxkyFKZCK1AvXboEOzs7/P777wgJCUFWVhaaNWuGkSNH4tatW6hRo4bW4+3s7BAWFgYAiI6OfqEQtbOzw/Xr198og5WVOQwM5C1QC5QqZabvCADkyfGmLC3NC/3flOW5kCGHDBneBo+L9z8DIE+ON6WL41OGDHw9tMnwfMiQoTAUWoGalpaGGzduoFatWtiyZQuys7MxYsQIjBw5EmXKlIGZmfYTZmpqiszMTACASqX6x/2vKyVFJf0V1FKlzPD4cRby89VFPsfbSk1VFdq/JctzIUMOGTL8Fzwu3t8MMuV4W4V5fMqQga+HNhmeDxkyvK7XOUEotAK1ePHiAIAxY8bAxMQEJUuWhK+vL7p06YJOnTohOztb6/HZ2dkwN38a0MzM7KX7LS0t3yiDWq1ArVb+w28hRn6+Gnl5+j94ZMnxpnSRWZbnQoYcMmR4Gzwu3v8MMuV4UzJkfp/fI29KV5lleD5kyFAYCq2jgp2dHdRqNXJzczXb1OqnT9Cnn36KW7duaT0+Ojoa1atXBwBUr179H/cTERERUdFRaAWqo6MjbG1t8csvv0ClUiElJQWzZ8/Gl19+iXbt2uHhw4dYtWoVcnNzERERgfDwcE2/086dOyM8PBwRERHIzc3FqlWrkJycDDc3t8KKR0RERETviEIrUI2NjbFmzRoUK1YMrVu3RuvWrWFjY4OpU6fC0tISwcHB2L17Nxo1aoSxY8di7NixaNy4MYCno/rHjx+PCRMmoGHDhtixYweCgoJgYWFRWPGIiIiI6B1RaH1QAaB8+fKYPXv2S/fVrl0bGzZseOXf7dChAzp06FCYcYiIiIjoHfR+TJZFRERERO8NFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFSN9ByAiKgp6Bh4U1lbwKFdhbRER6QKvoBIRERGRVFigEhEREZFUWKASERERkVRYoBIRERGRVFigEhEREZFUWKASERERkVRYoBIRERGRVFigEhEREZFUWKASERERkVRYoBIRERGRVFigEhEREZFU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du1afPLJJzAzM0N6errW47Kzs2Fu/vSFMTMzQ3Z29gv7LS0t36jtlBSV9FdQS5Uyw+PHWcjPV+s7zhtLTVXpOwKAws0hy2siQw4ZMvwX7+Px+S5nAOTIIUMGQI4c7+Nn59uS4fUAiu5r8jqFeaEWqDExMejduzcqVqyIsLAwWFlZAQBq1KiBEydOaD02Ojoa1atXBwBUr14dt27demF/8+bN36h9tVqBWq38h99AjPx8NfLy5D54XkaWzLrIUZivSc/Ag4Xy77yO4FGuhf5v8vj8b2TIIUMGQI4cMmQA5Mgh+2enSLJk5mvyaoXWUSEtLQ3du3dHvXr1sGLFCk1xCgBubm54+PAhVq1ahdzcXERERCA8PFzT77Rz584IDw9HREQEcnNzsWrVKiQnJ8PNza2w4hERERHRO6LQrqBu3rwZ8fHx2LVrF3bv3q217/z58wgODoa/vz/mzZsHKysrjB07Fo0bNwYANGnSBOPHj8eECROQkJAAOzs7BAUFwcLCorDiEREREdE7otAK1B49eqBHjx6v3F+7dm1s2LDhlfs7dOiADh3036GeiIiIiPTr/ZiLgIiIiIjeGyxQiYiIiEgqLFCJiIiISCosUImIiIhIKixQiYiIiEgqLFCJiIiISCqFvtQpEclB1IpWuljNioiIijZeQSUiIiIiqfAKKr1XeNWQiIjo3ccrqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVI30HeJeJWvcd4NrvREREVHTwCioRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUnFSN8BiIiISL96Bh4U1lbwKFdhbdG7iwUqERERkWSK+kkDb/ETERERkVRYoBIRERGRVFigEhEREZFUWKASERERkVRYoBIRERGRVFigEhEREZFUWKASERERkVRYoBIRERGRVFigEhEREZFUWKASERERkVSkKlCTk5PRv39/1K9fH40aNYK/vz/y8vL0HYuIiIiIBJKqQPX19UWJEiVw7NgxhIWF4dSpU1i1apW+YxERERGR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XXDq1CmsXbsWx44dQ35+Pvz9/eHu7o5ixYrpO9p7gwUqERFpuX37NsqXL4+SJUvi/PnzKFWqFKpVq6bvWETSiYuLw/r167Fp0yYYGhqiffv2GDVqlL5jvRc4zRQREWns2rULHh4e+PvvvwEAFy5cgJeXF44cOaLfYEQSqlSpEoYPH46jR49iyJAhXGykEPEKKhERabRt2xajRo3SmjLn2LFjmDFjBichJyJheAWViIg07t+//8J8jk5OToiPj9dTIiIqiligEhGRRqVKlXDs2DGtbadOnULFihX1lIiIiiJOM0VERBp9+vTBgAED0KpVK1SqVAnx8fHYt28fpk2bpu9oRFSEsA8qERFpiYyMxNatW5GUlIQKFSqgY8eOqFevnr5jEVERwgKViIhekJycjLi4OJQtW1bYKlJERAV4i5+IiDQyMjIwYsQIHDp0SLOtSZMmmDNnDkqVKqXHZERUlHCQFBERacycOROZmZnYvn07Lly4gD/++ANqtRozZszQdzQiKkJ4i5+IiDRatGiBTZs2wdraWrMtKSkJ7du3x6lTp/SYjIiKEl5BJSIijaysLHzwwQda20qVKgW1Wq2nRERUFLFAJSIijS+++AJz585Fwc01RVEwd+5c1K5dW8/JiKgo4S1+IiLSuHHjBn788UcUL14clSpVQlxcHAwMDLBy5UpUq1ZN3/GIqIhggUpERBqZmZnIycnBgQMHkJycjEqVKsHZ2RklS5bUdzQiKkJYoBIRkYarqyu2bdvGgpSI9Ip9UImISEtWVpa+IxBREceJ+omISKNRo0bw8vJC8+bNUa5cOa19AwcO1FMqIipqWKASEZHGvXv3YGtrizt37uDOnTua7QYGBnpMRURFDfugEhEREZFUeAWViIgAAAsWLMCff/4JJycndO3aVd9xiKgI4yApIiLC9OnTsX79ehgbG2PevHlYtmyZviMRURHGW/xERITmzZtjxYoVqF69OiIjIzFlyhSEh4frOxYRFVG8gkpEREhPT0f16tUBAA4ODkhISNBzIiIqyligEhERDA3/7+vAyIjDE4hIv1igEhER2NuLiGTC02QiIkJeXh62bt2q+Tk3N1frZwDw8PAQmomIii4OkiIiIri6uv7jfgMDAxw4cEBQGiIq6ligEhEREZFU2AeViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpPL/AJqzsP0gyssTAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 800x550 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.bar(range(len(row_labels)), food_data[:, 0])\n",
"plt.xticks(range(len(row_labels)), row_labels, rotation=90)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqgAAAI/CAYAAAC72yunAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACB4UlEQVR4nO3deVxN+f8H8FcplQyVfWn42sYsTESUSJmYQbbKLMYIY8kyimyDsabwte8ixhZThpF935XszAgZoxSVSupWWu75/eHX/bqWGUz3cz/0ej4eHjP3nFufV/eee+/7nvNZDBRFUUBEREREJAlDfQcgIiIiInoaC1QiIiIikgoLVCIiIiKSCgtUIiIiIpIKC1QiIiIikgoLVCIiIiKSCgtUIiIiIpIKC1QiIiIikoqRvgMUpeTkDH1H+FuGhgawsjJHaqoKarX+1keQIYcMGZhDvgyy5JAhgyw5ZMggSw4ZMsiSQ4YMzCFfhldVocJ7/3gfnkEVyNDQAAYGBjA0NCj2OWTIwBzyZZAlhwwZZMkhQwZZcsiQQZYcMmRgDvkyFCUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQklTcuUFNTU+Hq6orIyEjNtujoaPTq1QuNGjWCg4MDAgICkJ+fr9m/detWuLq6wsbGBt26dcOFCxc0+woKCjBjxgw4ODigUaNG8Pb2RlJS0pvGIyIiIqK31BsVqOfOncOXX36J2NhYzbbU1FR4eXnBwcEBZ86cwS+//IIjR47g559/BgBERkZi6tSpCAwMRFRUFDp16gRvb29kZ2cDAJYuXYqTJ09iy5YtOH78OExNTTF+/Pgi+BOJiIiI6G3y2gXq1q1b4efnB19fX63t27ZtQ82aNTFgwAAYGxujevXqCA4OxhdffAEACA0NRYcOHWBrawtjY2N4eXnB0tISu3bt0uzv168fqlSpgtKlS2PcuHE4duwY4uLiiuDPJCIiIqK3hdHr/oCjoyPc3NxgZGSkVaRevnwZ9erVw08//YSDBw/CzMwM7u7uGDBgAAAgJiYG7u7uWr+rTp06iI6ORkZGBu7fv4969epp9pUvXx5ly5bF9evXYW1t/UrZDA0NYGho8Lp/kjAlShhq/bc455AhA3PIl0GWHDJkkCWHDBlkySFDBllyyJCBOeTLUJReu0CtUKHCC7enp6fjwIEDmDRpEiZMmIBbt25h4MCBKFmyJPr27QuVSgUzMzOtnzE1NUVWVhZUKhUAoFSpUs/tL9z3KqyszGFgIG+BWqhMGbN/vpMAMuSQIQPAHLJlAOTIIUMGQI4cMmQA5MghQwZAjhwyZACYQ7YMReG1C9SXKVmyJBo0aAAPDw8AQP369fHtt99i9+7d6Nu3L8zMzJCTk6P1Mzk5ObC0tNQUroX9UZ/eb25u/soZUlNV0p9BLVPGDI8eZaOgQF2sc8iQgTnkyyBLDhkyyJJDhgyy5JAhgyw5ZMjAHPJleFWWlv9c2xVZgVq7dm2tEf0AoFaroSgKAKBu3bq4efOm1v6YmBi0atUKZcuWRaVKlRATE6O5zJ+cnIyHDx9qXfb/J2q1ArVa+Zd/ie4VFKiRn6//g0eGHDJkYA75MsiSQ4YMsuSQIYMsOWTIIEsOGTIwh3wZikKRdVRwd3fHjRs3EBQUhIKCAly/fh3r169H586dAQAeHh4IDw9HREQE8vLysGbNGqSkpMDV1RUA0K1bNyxduhRxcXHIzMzE9OnTYWdnh/fff7+oIhIRERHRW6BIz6CuX78eM2fOxIoVK2Bqaoqvv/4aPXv2BADY29tj4sSJmDRpEhITE1GnTh0EBQXBwsICADB48GDk5+ejR48eUKlUaNasGebNm1dU8YiIiKTUJ/CQkHaCx7gIaYeoKPyrAvX69etatz/99FNs2LDhpffv3Lmz5ozqs4yNjeHn5wc/P79/E4mIiIiI3nLvxlwERERERPTOYIFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGBSkRERERSYYFKRERERFJhgUpEREREUmGB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iIjoncEClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikwgKViIiIiKTCApWIiIiIpMIClYiIiIikYqTvAET07uoTeEhYW8FjXIS1RUREusUzqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCQVFqhEREREJBUWqEREREQkFRaoRERERCSVIi1Qf//9d/To0QNNmjSBo6Mjpk2bhtzcXADApUuX4OnpiUaNGsHFxQWhoaFaP7t161a4urrCxsYG3bp1w4ULF4oyGhERERG9JYqsQFWr1RgwYADatWuHM2fOICwsDCdOnEBQUBDS09PRv39/dOnSBVFRUfD390dAQAAuX74MAIiMjMTUqVMRGBiIqKgodOrUCd7e3sjOzi6qeERERET0liiyAjU9PR3JyclQq9VQFOXJLzc0hJmZGfbt2wcLCwv06NEDRkZGsLe3h5ubGzZs2AAACA0NRYcOHWBrawtjY2N4eXnB0tISu3btKqp4RERERPSWMCqqX2RpaQkvLy/MmDEDM2fOREFBAdq0aQMvLy8EBgaiXr16WvevU6cOwsLCAAAxMTFwd3d/bn90dPRrZTA0NIChocG/+0N0qEQJQ63/vks5vpt2oMh+1z9ZO/6zIvtd7/Jz8jZm+DeMjIoutyyPhQw5ZMggU443VZTHpwwZ+Hxok+HxkCFDUSqyAlWtVsPU1BQTJkyAh4cH7ty5gyFDhmDBggVQqVQwMzPTur+pqSmysrIA4B/3vyorK3MYGMhboBYqU8bsn+8kgCw5XpelpXmR/05ZHgsZcsiQ4U3wuHj3MwDy5Hhdujg+ZcjA50ObDI+HDBmKQpEVqPv378fevXuxZ88eAEDdunUxePBg+Pv7w83NDRkZGVr3z8nJgbn5kwPEzMwMOTk5z+23tLR8rQypqSrpz6CWKWOGR4+yUVCgLvY53lRamqrIfpcsj4UMOWTI8G/wuHh3M8iU400V5fEpQwY+H9pkeDxkyPCqXuULQpEVqPfu3dOM2Nf8ciMjGBsbo169ejh58qTWvpiYGNStWxfAk2L25s2bz+1v1arVa2VQqxWo1cobpBeroECN/Hz9Hzyy5Hhdusgsy2MhQw4ZMrwJHhfvfgaZcrwuGTK/y6+R16WrzDI8HjJkKApF1lHB0dERycnJWLZsGQoKChAXF4elS5fCzc0Nrq6uePDgAdasWYO8vDxEREQgPDxc0+/Uw8MD4eHhiIiIQF5eHtasWYOUlBS4uroWVTwiIiIieksU2RnUOnXqYPny5Zg3bx5WrlyJ9957D506dcLgwYNRsmRJBAcHw9/fHwsWLICVlRXGjx+P5s2bAwDs7e0xceJETJo0CYmJiahTpw6CgoJgYWFRVPGIiIiI6C1RZAUqADg4OMDBweGF+xo0aIBNmza99Gc7d+6Mzp07F2UcIiIiInoLvRtzERARERHRO4MFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJhQUqEREREUmFBSoRERERSYUFKhERERFJpUgL1IcPH2LUqFFo1qwZmjZtikGDBiEpKQkAcOnSJXh6eqJRo0ZwcXFBaGio1s9u3boVrq6usLGxQbdu3XDhwoWijEZEREREb4kiLVCHDh2KrKws7N+/H4cPH0aJEiUwYcIEpKeno3///ujSpQuioqLg7++PgIAAXL58GQAQGRmJqVOnIjAwEFFRUejUqRO8vb2RnZ1dlPGIiIiI6C1QZAXq1atXcenSJQQGBqJMmTIoXbo0pk6dCj8/P+zbtw8WFhbo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",
"text/plain": [
"<Figure size 800x550 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.bar(range(len(row_labels)), food_data[:, 1])\n",
"plt.xticks(range(len(row_labels)), row_labels, rotation=90)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.decomposition import PCA\n",
"\n",
"single_dimension_pca = PCA(n_components=1) # project data down to a single dimension\n",
"\n",
"# single_dimension_pca.fit(food_data.T)\n",
"single_dimension_food_data = single_dimension_pca.fit_transform(food_data.T)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 144.99315218],\n",
" [ 240.52914764],\n",
" [ 91.869339 ],\n",
" [-477.39163882]])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"single_dimension_food_data"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqwAAAHRCAYAAACvluuyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA3ZUlEQVR4nO3deVyU9f7+8WtwQAYUATXJpYMLZKUnSRS3luNWpliWtll6OqUVpVKpWdlmR+2cLHMtW9QWW9S0tCzpnNZvxzL1pGXqAdM2XBAQdGZQlvv3hz/nOIoC95mYD/J6Ph48bO77A725nJqL4TP3OCzLsgQAAAAYKiTYAwAAAACnQmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIzmDPYAv6ecnAMVrgkJcSg2NlJ5eW6VlfGmX1VBdvaQm31kZw+52Ud29pCbfbUxu8aN61e4ptY/wxoS4pDD4VBIiCPYo9Q4ZGcPudlHdvaQm31kZw+52Ud25av1hRUAAABmo7ACAADAaBRWAAAAGI3CCgAAAKNRWAEAAGA0CisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNEorAAAADAahRUAAABGo7ACAADAaBRWAAAAGI3CCgAAAKNRWAEAAGA0CisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNEorAAAADAahRUAAABGo7ACAADAaBRWAAAAGC3ghTU3N1dpaWlKTk5WSkqKJk+erJKSknLXfvbZZ0pNTVWHDh3Ur18/ffLJJ+WuW7Jkic4+++xAjwoAAIAaIOCFNT09XREREfriiy+0dOlSrVmzRgsXLjxh3c6dOzVq1CiNGTNG69at06hRo5Senq49e/b4rcvMzNSUKVMCPSYAAABqiIAW1p9++klr167VuHHj5HK51KJFC6WlpWnRokUnrF2+fLmSk5PVu3dvOZ1OXX755erUqZPeeust3xqv16t77rlHw4YNC+SYAAAAqEECWlgzMzMVHR2tJk2a+I61bt1a2dnZKiws9FublZWlxMREv2Nt2rTR1q1bfbcnTZqkSy65RN26dQvkmAAAAKhBnIH8Ym63Wy6Xy+/Y0dsej0dRUVGnXBseHi6PxyNJevfdd7V9+3Y9/vjjWr9+va15QkIcCglxnHJNnTohfn+i8sjOHnKzj+zsITf7yM4ecrOP7MoX0MIaEREhr9frd+zo7cjISL/jLpdLRUVFfseKiooUGRmpH3/8UU899ZQWLVokp9P+iLGxkXI4Tl1Yj4qKclW8COUiO3vIzT6ys4fc7CM7e8jNPrLzF9DCmpCQoP3792vfvn1q1KiRJGn79u2Ki4tT/fr1/dYmJiZq8+bNfseysrLUrl07rV69WoWFhRo0aJAkqbS0VJKUnJysRx55RKmpqZWaJy/PXalnWKOiXCos9Kq0tKxSXxdHkJ095GYf2dlDbvaRnT3kZl9tzC4mJrLCNQEtrPHx8erYsaOmTJmiSZMmKT8/X3PnztXgwYNPWDtw4EAtWLBAq1atUt++fZWRkaG1a9fqwQcfVMuWLXXHHXf41n799dcaNmyY1q1bV6V5ysoslZVZlVpbWlqmkpLacccINLKzh9zsIzt7yM0+srOH3OwjO38B3yAxc+ZMlZSUqFevXrrmmmt04YUXKi0tTZKUlJSkFStWSDryYqw5c+Zo3rx56tSpk+bOnatZs2apZcuWgR4JAAAANZjDsqzKPQVZA+XkHKhwjdMZopiYSOXnu/lJporIzh5ys4/s7CE3+8jOHnKzrzZm17hx/QrX8BI0AAAAGI3CCgAAAKNRWAEAAGA0CisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNEorAAAADAahRUAAABGo7ACAADAaBRWAAAAGI3CCgAAAKNRWAEAAGA0CisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNEorAAAADAahRUAAABGo7ACAADAaBRWAAAAGI3CCgAAAKNRWAEAAGA0CisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgtIAX1tzcXKWlpSk5OVkpKSmaPHmySkpKyl372WefKTU1VR06dFC/fv30ySef+M4dOnRIkydP1kUXXaSOHTtqyJAh+uqrrwI9LgAAAAwX8MKanp6uiIgIffHFF1q6dKnWrFmjhQsXnrBu586dGjVqlMaMGaN169Zp1KhRSk9P1549eyRJ06ZN04YNG/TWW29p7dq1GjJkiG6//XZlZ2cHemQAAAAYLKCF9aefftLatWs1btw4uVwutWjRQmlpaVq0aNEJa5cvX67k5GT17t1bTqdTl19+uTp16qS33npL0pFnWEePHq0zzzxTderU0TXXXKOwsDBt3rw5kCMDAADAcM5AfrHMzExFR0erSZMmvmOtW7dWdna2CgsLFRUV5TuelZWlxMREv89v06aNtm7dKkmaNGmS37k1a9bowIEDatu2bSBHBgAAgOECWljdbrdcLpffsaO3PR6PX2Etb214eLg8Hs8JX/fbb79Venq67rrrLrVo0aLS84SEOBQS4jjlmjp1Qvz+ROWRnT3kZh/Z2UNu9pGdPeRmH9mVL6CFNSIiQl6v1+/Y0duRkZF+x10ul4qKivyOFRUVnbBuyZIlmjJlikaPHq2bb765SvPExkbK4Th1YT0qKspV8SKUi+zsITf7yM4ecrOP7OwhN/vIzl9AC2tCQoL279+vffv2qVGjRpKk7du3Ky4uTvXr1/dbm5iYeMJ+1KysLLVr106SVFpaqscee0wZGRmaM2eOunXrVuV58vLclXqGNSrKpcJCr0pLy6r876jNyM4ecrOP7OwhN/vIzh5ys682ZhcTE1nhmoAW1vj4eHXs2FFTpkzRpEmTlJ+fr7lz52rw4MEnrB04cKAWLFigVatWqW/fvsrIyNDatWv14IMPSpKmTp2qzz//XG+//baaNWtma56yMktlZVal1paWlqmkpHbcMQKN7OwhN/vIzh5ys4/s7CE3+8jOX8A3SMycOVMlJSXq1auXrrnmGl144YVKS0uTJCUlJWnFihWSjrwYa86cOZo3b546deqkuXPnatasWWrZsqXy8vK0aNEi7du3TwMGDFBSUpLv4+jnAwAAoHZwWJZVuacga6CcnAMVrnE6QxQTE6n8fDc/yVQR2dlDbvaRnT3kZh/Z2UNu9tXG7Bo3rl/hGl6CBgAAAKNRWAEAAGA0CisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNGcwR7gdPHBB+9VuKZfvwHVMAkAAMDphcIaIPPnPy9JKi0t1b59OYqKaqC4uDO1b1+O8vJy1bp1GworAACADRTWAFmyZIUkac6cGXI6nRox4g6FhBzZcbFw4YvatSs7mOMBAADUWBTWAHvvvXe1cmWGr6xK0o03/ln9+/fS/fc/HMTJAAAIvN27d59wzOl0yOuNUEGBRyUlluLi4oIwGU4nFNYAq1u3rnbs+FEJCYm+Y1u3blG9evWDOBUAAL+PIUNS5XA4/I5ZluV37PPP11b3WDjNUFgD7Kqrhujee0cpNfVKNWkSp+zs37RixXLdcsttwR4NAICAO7ol7sMP39emTd8qLW2M/vCHs+T1Fmjq1L/p3HPbBXlCnA4orAE2bNhfFBvbUBkZH+jjjz/SGWfE6Z57xqt370uDPRoAAAEXF3emJGnFiuVauPANRUVFyekMUdOmjfTII5N0zTVX6aabbg7ylKjpKKy/gwEDrtCAAVcEewwAAKqNx+OWZZUdd8yr4uLiIE3kr7y9tsdjr625KKwB5vF4tHz5Ev3yy88qK/P/D/eBBx4J0lQAAPy+evS4WBMm3Ktbb71dZ555pr7/fp+efnq6+vQx4zeM7LWt2SisATZlyqP6/vvvdMEFyXI6iRcAUDvcc899euqpJzRuXLqKiw+rbt266tevv+666+5gjyap/L22zZo11969e/TsszN13nntgzwhTsVhWZYV7CF+Lzk5Bypc43SGKCYmUvn5bpWUlFW4viL9+/fS88+/rGbNmv/PX8t0gc6utiA3+8jOHnKzj+yqrri4WG53oeLjm+ngwcPG5XbVVf19e22POnjwoG644WqtWLE6iJMdURvvc40bV3wlJZ4CDLCwsLo644wmwR4DAIBq98MP3+uXX36WwyFt3lxXbvchlZaWGfVOj+XttfV6PcbstUX5KKwBNmjQYM2a9bRuvnmkYmJigj0OAADVYt68OVq06GU1bNhITqdTISEOlZVZkhxGFdZj99qecUYTZWf/phdffNaYvbYoH4U1wFaufEe7d+/SO++8fcI5NnMDAE5Xq1ev0t/+Nl1du3Y3+tfax++1DQsL02WXmbPXFuWjsAYYVwIAANRGHo9HXbp0C/YYFYqIiNBDD03ShAkPqaCgQNHR0bxIugbgbyjAkpI6lns8Pz+/micBAKD6dO/eQx999KH69u0X7FEqdHSv7fGXnzRp6wL8UVgD7IcfvtfcuTOVk7P3/+/dkUpKipWfn6dPP/0qyNMBAPD7OHTosCZPflSvvDJfDRs2lNNZRyUlpbIsaebM54I9ns/xe23/y6y9tvBHYQ2w6dP/rqZNm6lly9bKzv5NnTp11pIlb+r22+8K9mgAAPxuWrVqrVatWkuSQkIccrnC5PUe9j15Y4pj99qi5qCwBtiPP27X7NnPKzs7WzNmTNN1192odu3O1/Tpf9d1190Y7PEAAPhd/OUvI33/bPKLrmrKXlv4o7AGWP36UapbN1xNmzbTjh0/SpLatWuvXbuygzwZAAC/n4KC/Vq69C3l5OyVZCkszCm326usrCy9/PIbwR7PpybttQ22rVu3qG3bc3TgwAG9+uoCRUfH6Jprrg/Ki9QorAH2hz/E6513lurKKwfL5XIpM3ObQkPDFBLiqPiTAQCooSZPfky//vqzoqNj5PG41aJFc33xxRe6+uprgj2an2P32sbGNvQ7Z9Je22B7+eWX9Prrr2j16s/0zDNPatu2LXI4HMrJ2asxY+6t9nkorAF26623a8KEe9SpUxddf/1Nuu22mxUSEqJBg4YEezQAAH43Gzdu0KJFS7V37x4tWvSynnvuOb3++mKtXv1BsEfzc+xeW5zcRx+t1uzZL+jw4cP69NN/at68hWrYsKGGD7+ewno6aN/+fC1btkqhoaG64oqrlJCQKLf7oDp16hLs0QAA+N04nU41atRYdeuGa/v2TElSnz6XatasZ4I72HGO3WuLk9u3L0cJCYlav/4b1atXT23aJEiSioqKgjIPhTVAdu/eXe7x2NhGio1tpN27dysuLq6apwIAoHrExTX17Xl0uz3Ky8uT13tYhw4Fp+CczLF7bY9eh7WkpETbt5u11zbYGjdurG+/3aAPPnhPycmdJUkfffShmjZtFpR5KKwBMmRIqhyOI/tULeu/l/BwOByyLEsOh4O3ZgUAnLYGDRqsUaNu06uvLtall16m4cOHSwpRhw4XBHs0P8futXW73YqLi9PXX68xbq9tsN1yy226995RCg8P17PPvqT167/R1KmT9Ne//j0o81BYA2TJkhXBHgEAgKAZMOAKtW7dRrGxsbrrrjFavnyx9u3L17XXmnVJx2P32r722suaMuVJrV69Sh999GGwRzPKJZf0UteuPSRJdevWVaNGjbV48Qo1atQoKPNQWAMkLu5Mv9v/+c9W7dqVrW7dLtTBgwcUExMbpMkAAKge55xznqQj12EdOXKkkddhLW+vba9efTVnzowgT2Yej8ejjIxV2r17t2699TZt27ZFjRpdGJRZKKwBlp+fpwceGKstW35QaGioXnjhFY0YMVzTp89Wu3Z/DPZ4AAAE1JAhAyX5X7rR4TjybldlZZYsS1qy5N3gDFeOY/faejwe7d+/X3Xq1DFur22wbdu2VenpaYqPj1dWVpYGD75WDz00Qffee5/69x9Y7fNQWANsxoyn1KpVG02fPldXXtlP8fEtdeONwzVnzgw9++xLwR4PAICAKu9V9yEhDkVG1pXbfci4t2Y9dq9tnz6XavTo2+R0Oo3baxtss2Y9rVGj7tbll6fqssv+pGbNmmvq1GmaNetpCuvpYMOGdVq8+F2Fh4f7XoQ1dOhwvfHGa0GeDACAwOvXb4Ak6fXXX9UNN9wkyf+tWZ99dk4wxzvBsXtt09LG6M03X5Pb7db1198U7NGMsn17li699HJJ8vWZlJSuevjhvUGZh8IaYE6nU4cOFSk8PNx3tQCPx62IiIggTwYAQGDt379fO3ceeRvy+fPn6bzz2smyLNWp41D9+i7t2pWjxYtf14gRdwR5Un9H99pK0o03/jl4gxgsJiZGP/200+9NFn7+eecJ7w5WXSisAdajx0WaNOlhpaePlcPhUH5+np555kl169Yj2KMBABBQoaFOTZx4nwoK9kuS7rrLf3tAWFiYBg68KgiTnai8vbbHM2mvbbANGjRE9913t2666WaVlpbqn//8SK+88lLQ/j4prAF2++2jNGXKY7rhhqslSVdccZm6du2uceMeDPJkAAAEVmRkPb333keSpBtuuFqvv/62JP8tAaZcJYB3uKqaIUOuU0hIiBYvfkNlZaV68cVnNXDgVbr22huCMo/DOvYq96eZnJwDFa4J9H9UGzd+q3bt2quwsFC7d2erceMmQbtm2e/NxP8h1QTkZh/Z2UNu9pFd1ZSVlWnr1h+0d+9utWzZQi1bnq0yYquS2nifa9y4foVreIY1wB544F69/fb7iomJUUxMTLDHAQCgWuTl5Wr8+LuVmblNDRpEq6Bgv5o3b6Hp0+fojDOaBHs8n5NtDQgNdSo6Okbdu1+o66+/SSEhIdU/nAEWLHihwjU33zyiGibxR2ENsKZNm2nLls1KSuoY7FEAAKg2s2c/oxYtztLMmc8pKqqenM4yPfDARM2aNV2PP/5EsMfzSU29UitWLNfQocPVtGkz7dqVrTfffE3JyZ31hz/Ea/nypSoqKtItt9wW7FGDYsOGdac873A4KKyng/r1o5SenqamTZupUaPGvktBSNLMmc8FcTIAAH4/69d/o9dfX+q7Kk79+vU1fvz9GjQoNciT+fv003/q739/xu/V7xdc0FGPPjpR99xzn7p1u1B33TWy1hbWWbPmBXuEclFYA6xduz/yjlYAgFqnrKxMDof/r9EdDodCQ0ODNFH5fv31V5111h/8jjVt2ly//PKzJOnMM5vq4MGKXwNTG2zYsE45OXtV9v83IpeUlGj79iylp4+t9lkorAHGqxABALXRBRd01FNPTdXYsQ+ofv1Iud1u/f3vU5WUZNY7SLVpk6BXXpnv93j9xhuvKj6+pSTpq6/+pbi4psEazxjPPPOk3nnnbUVEREqSyspK5fF4lJLSNSjzUFgD5IMP3qtwzdF3AwEA4HRzxx1jlJ6epn79/qTo6GgVFBQoPr6l/v73Z4I9mp/09LEaO3aM3nvvXTVp0kR79uxRWVmZnnjiaX333UY98MBYTZpkzp7bYPn4439o9uwXdOhQkVavXqX7739Ys2c/I6/XE5R5KKwBMn/+8xWscFBYAQCnrbi4OL322mJt2vStCgrylZjYSs2bt5Jlnfpi/dUtMbGt3nxzmf7v/z7X3r17FBd3pnr0uFjh4eEqLCzQ22+/p5iY2GCPGXRFRUVq1669cnP3adu2rXI4HLrllpEaOnRIUOahsAbIkiUrgj0CAABBc+DAAT399N80fPgt6ty5s1555UX9+OPLuueeCca9PXlERKT69u13wvGoqAZBmMZMZ5xxhvLz89SwYSPt3btHJSUlCgurK7fbHZR5audFxgAAQEBNmzZVhYWFatDgSOkbMGCADhw4oJkznwryZP42bFinG28coosvTtFFF3X2+8B/de3aQ+npacrPz1eHDhdo6tTH9NRTT6hFi7OCMg/PsAIAgP/Z+vVrtXjxCt+zqa1bt9akSZN19dVXBHkyf7NnT9e557bTmDFj5XRSg443YsQwde9+kXr16qOYmFiFhobqnnvG64kn/iqP56DGjw/OW83zNwUAAP5npaVlKi0t9TtmWZbq1DHrl7m//PKLnn12vurWrRvsUYzUuXNXffXVv7RgwQtq2LCRdu3KVvfuF+qJJ54K6iXKKKwAAOB/1rVrd02e/IhGjbpHzZqdqZ9//ll//esUde4cnMsgnUyLFi2Um7tPTZs2C/YoRhox4g6NGHGH3O6D2rBhndatW6uZM5/Svn371Llzirp3vygoLyJ3WJZlVfu/tZrk5FR84V+nM0QxMZHKz3erpKSsGqY6fZCdPeRmH9nZQ272kV3l7d+/XxMnjtfGjf/2vctj584peuihx9WgQXRwhzvGq68u1KpVKzRgwBWKjW3od86Eq/mYeJ8rLCzQhx+u0uLFr2vv3j36/PO1Af36jRvXr3BNwJ9hzc3N1UMPPaS1a9eqTp06GjhwoO67775y94l89tlnmjZtmn755RedeeaZGj9+vP70pz/5zr/wwgt69dVXVVhYqPbt2+uxxx5Tq1atAj3y/yy3wKsbh14lS1KIQ3KFORUScvy7fUiLF78bnAEBAAiw3AKvPlr3i9xFJYoIC1GXttGaPft57d69W//4xwcKC6uj7t0vCXpZPXbOyHCnlr/ztuqEOPTOO28ft5LLTx6b1eGDOXIezNSGdf/Sli0/qFWr1urXb4B69Lg4KLMFvLCmp6erSZMm+uKLL7Rv3z7dcccdWrhwoW699Va/dTt37tSoUaP09NNP65JLLlFGRobS09OVkZGhJk2aaPny5Xr11Vf10ksv6ayzztL06dM1evRorVy50veTW7CVlpVp4aqt+u7HXEX84b9F21W3jpo3rqcL/3imtmzZrHffXaaEhLODOCkAAIFx7GNfoadYxd4C/fb1i3qz0R808Lq71Cx0p1544Tm1bdtW8+fP1zPPzFXbtucGfU5v3k65YuN11sXj1b5VQ/358raqc8yTS6+//kq1z2iKY7P6ccNKHdz9vYo9earfuJXO+WOKXn/4r2p6ZnDf/SugO6F/+uknrV27VuPGjZPL5VKLFi2UlpamRYsWnbB2+fLlSk5OVu/eveV0OnX55ZerU6dOeuuttyRJixcv1g033KCEhATVrVtX9957r7Kzs/X1118HcuT/ycJVW/Xl97tV6ClWgxbJvo+wM5K015Ggf3ydqfffX6Errxys556bH+xxAQD4nx372CdJuds+VN2oODVIuExffr9bM2bP0Y03DteyZcs0duwEvfTSPCPm/G3tS5KkQk+xvvx+twYNHuy/fuFL1T6jKY7NKi/rE9UJi1CLbncortOtyq/bXh9sKAj2iIEtrJmZmYqOjlaTJk18x1q3bq3s7GwVFhb6rc3KylJiYqLfsTZt2mjr1q3lng8NDVV8fLzvfLDlFnj13Y+55Z4rLfbqt28WasMX7+juex/Svffep7CwsGqeEACAwCrvsc+dk6nG510hZ916Kvbm60D+XnXt0VuSdNFFl+j7778zYs7jX7JTkJ+j3ALvSc/XFsdnFdfhWtWpW1+/fvW8dn46TTlbVmnN2nV+WQVDQLcEuN1uuVwuv2NHb3s8HkVFRZ1ybXh4uDweT6XOV0ZIiEMhIafePnD0chtVvezGP9b/5vup7Vje/J+0a8Mi1QmLVIseo1UUmSin06xLegSK3exqO3Kzj+zsITf7yM5feY99ZSVFctatJ0kqyv9FIaHh2rKnjv4kyeUKV0lJcbU/DpY35/HbCS1J/9zwm27ok+g7b8LjdXXf547PKqr5BYpqfoGsshK5c/6jg7t/UOb/vaTrv16o3j176qKLLlaPHhdVy2zHCmhhjYiIkNfr38CP3o6MjPQ77nK5VFRU5HesqKjIt66i85URGxtZ6f2uUVGuihcdo6Scn8Tytn+q3G0ZanBWihqf21+OEKdKyqSYmMrPXBNVNTscQW72kZ095GYf2R1R3mNfndAIlRw6KGfdevLkbpcrNl7FpUfW7du3S7GxsdX+OFjenOWuO+Yx2uEw6/G6uu5zJ8vKEeJUvSbnql6Tc2VZZWoeulPfblil9957V1u2bKmW2Y4V0MKakJCg/fv3a9++fWrUqJEkafv27YqLi1P9+v6XLEhMTNTmzZv9jmVlZaldu3a+r5WZmem7akBxcbF27tx5wjaCU8nLc1fqGdaoKJcKC70qLa385SOcxxXh39YukHvvVkW37K56ce3kzf9ZkrTnZ7c+/vjI5bWSkjpW+uvXBHazq+3IzT6ys4fc7CM7f8c/9klSZJNzlLP5XdWLO08Hfvu3zmg/SKF1HCosLNRTTz2tzp27Kj+/et9/vrw5y10XIt9slqVqn7M81X2fO1lWhw/myJObJc++7fLmbtdvYU5dctFFuu22OwOeU2V+UAhoYY2Pj1fHjh01ZcoUTZo0Sfn5+Zo7d64GH7exWZIGDhyoBQsWaNWqVerbt68yMjK0du1aPfjgkbf8uvrqqzVr1ixddNFFatmypaZPn65GjRopOTm50vOUlVkqK6vcT1mlpWVVut5Z747NtOb7Xb6n0d17j+yt3b/jS+3f8aVv3W9fScvmH/lVQ6CvW2aKqmaHI8jNPrKzh9zsI7sjjn/sk6RGbS/TrvWvaffGJarftIOaJ3ZW307NdfHFFys2tqHmzp1Q7dmVN6dVVqrCX9f/d5FVqpD932nlyiOP36WlJUb9HVfXfe74rHb9+015c7er5NAB1Y06U5FnnKPm5/XUE+lXqVH0kbfdDUZOAb+s1cyZMzVp0iT16tVLISEhuvLKK5WWliZJSkpK0mOPPaaBAweqdevWmjNnjqZNm6YHH3xQzZo106xZs9SyZUtJ0uDBg3XgwAHdeeedysvLU/v27TVv3rygvi3YsRo2cKl9q4b68vvdkqTEAX87YU33dnG6ZUD1X8oDAIDfw/GPfZJUJ9Sl5l1G+G63b9lQDRu4NGvWLLVpc67q1Kn+x+1y56xbX/u2ZfhuR0RG6a3XF/huH/8mArXF8VlZpYfVMLGvIs9oK2f4kd+Od20X5yurwcI7Xf0P7yhRWlamhR9s03c/7lOh+5gNy5Ghat/yxGu8nW5MfDeOmoDc7CM7e8jNPrI7UWUe++qGOYOeW019jA7GfS7YWQXlna5qkzohIbql/zm+d4bwFJUoMjxUfTq1UGxUeLDHAwAg4GrKY19NmdMENSErCmsANGzg0nW9Kv9iMAAAarqa8thXU+Y0gclZmfdcOAAAAHAMCisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNEorAAAADAahRUAAABGo7ACAADAaBRWAAAAGI3CCgAAAKNRWAEAAGA0CisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNEorAAAADAahRUAAABGo7ACAADAaBRWAAAAGI3CCgAAAKNRWAEAAGA0CisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgtIAWVo/Ho/vvv18pKSnq2LGjxo8fL7fbfdL1Gzdu1JAhQ5SUlKSePXtqyZIlvnOWZWnOnDnq2bOnLrjgAqWmpurDDz8M5LgAAACoAQJaWB9//HHt2rVLq1evVkZGhnbt2qVp06aVu7agoEAjR47UlVdeqW+++UaTJ0/W1KlTtWnTJknSyy+/rGXLlumFF17Q+vXrdffdd2v8+PG+8wAAAKgdAlZYvV6vVq5cqdGjRys6OloNGzbU2LFjtWzZMnm93hPWZ2RkKDo6WkOHDpXT6VTXrl2VmpqqRYsWSZIKCwt15513qnXr1nI4HOrZs6dat26tDRs2BGpkAAAA1ADOqiwuKirSnj17yj3n9XpVXFysxMRE37HWrVurqKhIO3fu1DnnnOO3PjMz02+tJLVp00ZLly6VJI0ePdrv3Pbt25WZmanzzjuvKiMDAACghqtSYd24caOGDRtW7rkxY8ZIkiIiInzHXC6XJJW7j9XtdvvOHxUeHi6Px3PC2h07dmjEiBEaOHCgOnXqVOl5Q0IcCglxnHJNnTohfn+i8sjOHnKzj+zsITf7yM4ecrOP7MpXpcKakpKibdu2lXvuhx9+0IwZM+T1ehUZGSlJvq0A9erVO2G9y+XSgQMH/I4VFRX5Pveojz/+WBMmTNBVV12l++67ryrjKjY2Ug7HqQvrUVFRrooXoVxkZw+52Ud29pCbfWRnD7nZR3b+qlRYT6Vly5YKDQ1VVlaWzj//fElHfo0fGhqq+Pj4E9YnJibqyy+/9DuWlZWlhIQE3+05c+boxRdf1KRJk5SamlrlmfLy3JV6hjUqyqXCQq9KS8uq/O+ozcjOHnKzj+zsITf7yM4ecrOvNmYXExNZ4ZqAFVaXy6V+/fpp2rRpmjFjhiRp2rRpGjBggMLDw09Y36dPHz355JNauHChhg4dqvXr12vlypWaO3euJGnBggVasGCBFi1apHPPPdfWTGVllsrKrEqtLS0tU0lJ7bhjBBrZ2UNu9pGdPeRmH9nZQ272kZ2/gG6QeOSRRxQfH6/U1FRddtllat68uR5++GHf+f79++u5556TJMXExGj+/Pn68MMPlZKSookTJ2rixInq0qWL7xqsXq9XQ4cOVVJSku/j6OcDAACgdnBYllW5pyBroJycAxWucTpDFBMTqfx8Nz/JVBHZ2UNu9pGdPeRmH9nZQ2721cbsGjeuX+EaXoIGAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNEorAAAADAahRUAAABGo7ACAADAaBRWAAAAGI3CCgAAAKNRWAEAAGA0CisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNEorAAAADAahRUAAABGo7ACAADAaBRWAAAAGI3CCgAAAKNRWAEAAGA0CisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNEorAAAADAahRUAAABGo7ACAADAaBRWAAAAGI3CCgAAAKNRWAEAAGA0CisAAACMFtDC6vF4dP/99yslJUUdO3bU+PHj5Xa7T7p+48aNGjJkiJKSktSzZ08tWbKk3HVffvmlzjnnHP3666+BHBcAAAA1QEAL6+OPP65du3Zp9erVysjI0K5duzRt2rRy1xYUFGjkyJG68sor9c0332jy5MmaOnWqNm3a5LcuJydH9913n8rKygI5KgAAAGqIgBVWr9erlStXavTo0YqOjlbDhg01duxYLVu2TF6v94T1GRkZio6O1tChQ+V0OtW1a1elpqZq0aJFvjVlZWUaO3ashgwZEqgxAQAAUMNUqbAWFRXpp59+OulHcXGxEhMTfetbt26toqIi7dy584SvlZmZ6bdWktq0aaOtW7f6bs+dO1cNGzbU1VdfXcVvCwAAAKcLZ1UWb9y4UcOGDSv33JgxYyRJERERvmMul0uSyt3H6na7feePCg8Pl8fjkSStXbtWK1as0LJly7R///6qjOkTEuJQSIjjlGvq1Anx+xOVR3b2kJt9ZGcPudlHdvaQm31kV74qFdaUlBRt27at3HM//PCDZsyYIa/Xq8jISEnybQWoV6/eCetdLpcOHDjgd6yoqEiRkZHKy8vThAkTNH36dNWrV892YY2NjZTDcerCelRUlKviRSgX2dlDbvaRnT3kZh/Z2UNu9pGdvyoV1lNp2bKlQkNDlZWVpfPPP1+StH37doWGhio+Pv6E9YmJifryyy/9jmVlZSkhIUFffPGFcnNzdcstt0iS7wVXAwcO1O23366RI0dWaqa8PHelnmGNinKpsNCr0lJe2FUVZGcPudlHdvaQm31kZw+52Vcbs4uJiaxwTcAKq8vlUr9+/TRt2jTNmDFDkjRt2jQNGDBA4eHhJ6zv06ePnnzySS1cuFBDhw7V+vXrtXLlSs2dO1ddunTRFVdc4Vv766+/qlevXlqxYoWaN29e6ZnKyiyVlVmVWltaWqaSktpxxwg0srOH3OwjO3vIzT6ys4fc7CM7fwHdIPHII48oPj5eqampuuyyy9S8eXM9/PDDvvP9+/fXc889J0mKiYnR/Pnz9eGHHyolJUUTJ07UxIkT1aVLl0COBAAAgBrOYVlW5Z6CrIFycg5UuMbpDFFMTKTy8938JFNFZGcPudlHdvaQm31kZw+52Vcbs2vcuH6Fa3gJGgAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNEorAAAADAahRUAAABGo7ACAADAaBRWAAAAGI3CCgAAAKNRWAEAAGA0CisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqOwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNEorAAAADAahRUAAABGo7ACAADAaBRWAAAAGI3CCgAAAKNRWAEAAGA0CisAAACMRmEFAACA0SisAAAAMBqFFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARnNYlmUFewgAAADgZHiGFQAAAEajsAIAAMBoFFYAAAAYjcIKAAAAo1FYAQAAYDQKKwAAAIxGYQUAAIDRKKwAAAAwGoUVAAAARqs1hXXjxo1q27atkpKSfB9Dhw71nd+xY4eGDx+upKQk9ejRQ88995zf53/22WdKTU1Vhw4d1K9fP33yySfV/S0YYdy4cbrpppv8jpFd+bZs2aJhw4apY8eOSklJ0bhx45Sfn+87T24n9+uvv+quu+5Sly5dlJKSorS0NP3yyy++82RXMa/Xq2uvvVbLli3zO052lZebm6u0tDQlJycrJSVFkydPVklJSbDHMkZeXp769Omjr7/+2nds48aNGjJkiJKSktSzZ08tWbLE73OWL1+uPn36qEOHDrrqqqv073//u7rHDqqtW7fq5ptvVufOndW9e3eNHz9eeXl5ksiuQlYt8eqrr1o33nhjuecOHz5s9e3b13ryySetQ4cOWZs3b7Z69OhhrVq1yrIsy9qxY4fVvn1766OPPrKKi4ut999/3/rjH/9o7d69uzq/haBbsmSJ1bZtW78cya58hw4dsrp3727Nnj3bKi4utgoKCqzhw4db48ePtyyL3CoycOBA64EHHrDcbrd18OBB6/7777cGDBhgWRbZVcZ//vMfa9CgQVZiYqL19ttv+46TXdXceOON1r333mt5PB7r559/tvr372+98MILwR7LCOvWrbN69+5tJSYmWl999ZVlWZa1f/9+q3PnztZrr71mFRcXW//617+spKQka+PGjZZlWdZXX31lJSUlWevWrbMOHz5sLViwwEpJSbE8Hk8wv5Vq4/V6re7du1szZsywDh06ZOXl5VkjRoywbrvtNrKrhFrzDOt3332ndu3alXvum2++0d69ezV69GiFhYXp3HPP1U033aRFixZJOvJTTXJysnr37i2n06nLL79cnTp10ltvvVWd30JQZWVlae7cuRoyZIjfcbIrX1hYmDIyMnTHHXfI6XSqoKBAXq9XsbGxksjtVAoKCtSoUSONGTNGERERioyM1LBhw/Sf//xHBQUFZFeBNWvWaPjw4Ro0aJCaNm3qd47sKu+nn37S2rVrNW7cOLlcLrVo0UJpaWm+rGqz5cuXa+zYsbr77rv9jmdkZCg6OlpDhw6V0+lU165dlZqa6stsyZIl6t+/vzp27KjQ0FD9+c9/VkxMjFatWhWMb6PaZWdnq23btrrzzjsVFhammJgYXXvttfrmm2/IrhKcwR4gUIqKirRnz55yzzVu3FjfffedGjVqpL59++rgwYPq3LmzJkyYoLi4OGVmZqply5YKCwvzfU6bNm30/PPPSzpS1hITE/2+Zps2bbR169bf7xuqRhVlFxISorvvvluPPPKINm3apB07dvjO1+bsKsotIiJCknTdddfp3//+t9q0aaNbbrlFUu3OTao4u5deesnv2OrVq9WsWTM1aNCA7CrIrm3btvrkk09Ut25dLViwwO98bc+uKjIzMxUdHa0mTZr4jrVu3VrZ2dkqLCxUVFRUEKcLrh49eig1NVVOp9OvtGZmZpZ7/1m6dKmkI/evq6+++oTzteX+1apVK7344ot+x1avXq3zzjuP7CrhtCmsGzdu1LBhw8o9N3PmTJ1xxhnq1q2brr/+ehUXF+vxxx/XyJEjtXz5crndbrlcLr/Pcblc8ng8klTu+fDwcN/5mu5U2c2ZM0cff/yxunfvrosvvlibNm3yO1+bs6sot969e0uSFi5cqEOHDunRRx/VzTffrHfeeadW5yZVPjtJeuONNzR//nw9++yzkmr3fU6qWnbHq+3ZVcXJspIkj8dTqwtr48aNyz1e0f2H+9d/WZalZ555Rp988olee+01vfLKK2RXgdOmsKakpGjbtm0nPX/ppZf63X7ooYfUtWtXbd++XREREfJ6vX7nvV6vIiMjJR35n1RRUZHf+aKiIt/5mu5U2a1YsUJbt27Vm2++We752pxdRfe5o8LDwxUeHq6JEyeqW7du2rZtW63OTapcdocPH9bUqVO1atUqzZs3T126dJFUu+9zUuXvd+Wp7dlVxcmyklQr86gMl8ulAwcO+B079v5zsvtXTExMtc1ogoMHD+r+++/X5s2b9dprr+nss88mu0qoFXtYd+3apalTp8rtdvuOHT58WNKRMpGQkKCdO3f6vfozKytLCQkJkqTExERlZmb6fc1jz5/O3n33Xe3YsUPdunVTcnKynn/+ea1fv17JycnKzs4mu5P49ddf1bNnT+3du9d37Oh9rkGDBuRWgby8PN1000369ttvtXTpUl9ZlUR2/wOyq7yEhATt379f+/bt8x3bvn274uLiVL9+/SBOZq6K7j8JCQm1/v71888/6+qrr9bBgwe1dOlSnX322ZLIrlKC/aqv6nD0lXmPP/64VVRUZOXm5lq33367NXz4cMuyLKu4uNjq2bOn9cQTT1hFRUXWli1brB49evheXZuVlWW1b9/eev/9932vnG3fvr31448/BvG7Co6ZM2f6XSWA7MpXVlZmDRo0yEpPT7cOHjxo5ebmWrfddpt16623WpZFbqdy+PBha9CgQdZf/vIXy+v1nnCe7CrvT3/6k99VAsiuaq6//nrr7rvvtg4cOOC7SsDMmTODPZZRjr1KQF5enpWcnGwtWLDAOnz4sLVmzRorKSnJWrNmjWVZlu+V72vWrPG90r1Tp05Wfn5+EL+D6rN//37rkksusSZMmGCVlpb6nSO7itWKwmpZlrVlyxbrz3/+s5WcnGwlJydbY8eO9fuL3rlzp/WXv/zF6tixo3XhhRda8+bN8/v8zz//3Bo4cKDVoUMHq3///tann35azd+BGY4vrJZFdieza9cu66677rI6d+5s9ejRw3r00UetwsJC33lyK9/q1autxMREq3379laHDh38Pn777TfLssiuso4vrJZFdlWRk5NjjRo1yurcubPVpUsX64knnrBKSkqCPZZRji2slmVZmzZtsq699lorKSnJ6tWr1wn3v3feece69NJLrQ4dOliDBw+2vv322+oeOWjmz59vJSYmWueff/4J/2+zLLKriMOyLCvYz/ICAAAAJ1Mr9rACAACg5qKwAgAAwGgUVgAAABiNwgoAAACjUVgBAABgNAorAAAAjEZhBQAAgNEorAAAADAahRUAAABGo7ACAADAaBRWAAAAGI3CCgAAAKP9P8nacTpo9+BpAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 800x550 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# matplotlib doesn't have a built-in 1D scatter plot but we can\n",
"# just use a 2D scatter plot with y-axis values all set to 0\n",
"y_axis_all_zeros = np.zeros(len(single_dimension_food_data))\n",
"\n",
"plt.scatter(single_dimension_food_data, y_axis_all_zeros)\n",
"for idx in range(len(single_dimension_food_data)):\n",
" plt.annotate(column_labels[idx],\n",
" (single_dimension_food_data[idx],\n",
" y_axis_all_zeros[idx]), rotation=90)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.67444346])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"single_dimension_pca.explained_variance_ratio_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For any data point in the original 17-dimensional space, we can see what the PCA single-dimensional representation is using the `transform` function. For example, in the next cell, we compute the 1D projections for both England and Wales. However, we could actually plug in data that we didn't fit the PCA model with (for example, if we collected the 17 measurements for Pennsylvania, we could use it with transform as well, etc)."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[array([ 105, 245, 685, 147, 193, 156, 720, 253, 488, 198, 360,\n",
" 1102, 1472, 57, 1374, 375, 54]),\n",
" array([ 103, 227, 803, 160, 235, 175, 874, 265, 570, 203, 365,\n",
" 1137, 1582, 73, 1256, 475, 64])]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[food_data[:, 0], food_data[:, 1]]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[144.99315218],\n",
" [240.52914764]])"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"single_dimension_pca.transform([food_data[:, 0],\n",
" food_data[:, 1]])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here, we use transform to find the 1D PCA representation for a completely made-up feature vector of food/drink consumption values:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[-543.79528741]])"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"single_dimension_pca.transform([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Interpretation\n",
"\n",
"How do we interpret the low-dimensional representation? Why is North Ireland so far away from the other points? One way to try to answer this question is to first look at what features (i.e., what specific food/drink items) are being assigned high weight by PCA:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 94.25, 245.25, 706. , 130.5 , 205.25, 154.25, 798.25,\n",
" 208. , 457.75, 202. , 349. , 967.5 , 1502.5 , 57.5 ,\n",
" 1427. , 360.75, 55.25])"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"single_dimension_pca.mean_"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0.05695538, -0.04792763, 0.25891666, 0.08441498, 0.00519362,\n",
" 0.03762098, -0.40140206, 0.15184994, 0.24359373, 0.02688623,\n",
" 0.03648827, 0.6326409 , 0.04770286, 0.02618776, -0.23224414,\n",
" 0.46396817, 0.0296502 ]])"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"single_dimension_pca.components_"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1, 17)"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"single_dimension_pca.components_.shape"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.05695538 -0.04792763 0.25891666 0.08441498 0.00519362 0.03762098\n",
" -0.40140206 0.15184994 0.24359373 0.02688623 0.03648827 0.6326409\n",
" 0.04770286 0.02618776 -0.23224414 0.46396817 0.0296502 ]\n"
]
}
],
"source": [
"print(single_dimension_pca.components_[0]) # index 0 is for the 1st principal component (since Python starts counting at 0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Importantly, how PCA (that has already been fitted) actually projects a data point to 1D is to take a weighted combination using the above weights (although it first subtracts off the feature means). Specifically, here are the calculations for England and Wales:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 105, 245, 685, 147, 193, 156, 720, 253, 488, 198, 360,\n",
" 1102, 1472, 57, 1374, 375, 54])"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"food_data[:, 0]"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"144.99315218207673"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.inner(single_dimension_pca.components_[0],\n",
" food_data[:, 0] - single_dimension_pca.mean_)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"240.52914763517677"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.inner(single_dimension_pca.components_[0],\n",
" food_data[:, 1] - single_dimension_pca.mean_)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Weights with larger absolute value correspond to features that lead to the largest spread along the projected 1D axis."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's some code to rank the weights by largest absolute value to smallest absolute value:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(0.6326408978722377, 'Fresh fruit'),\n",
" (0.4639681679767065, 'Alcoholic drinks'),\n",
" (0.4014020602962482, 'Fresh potatoes'),\n",
" (0.25891665833612126, 'Other meat'),\n",
" (0.24359372899027434, 'Other Veg'),\n",
" (0.2322441404728946, 'Soft drinks'),\n",
" (0.15184994156230222, 'Fresh Veg'),\n",
" (0.08441498252508357, 'Fish'),\n",
" (0.056955379785685135, 'Cheese'),\n",
" (0.047927628134685325, 'Carcass meat'),\n",
" (0.047702858373648946, 'Cereals'),\n",
" (0.03762098283940197, 'Sugars'),\n",
" (0.03648826911159385, 'Processed Veg'),\n",
" (0.02965020108799388, 'Confectionary'),\n",
" (0.02688623253674694, 'Processed potatoes'),\n",
" (0.02618775590853346, 'Beverages'),\n",
" (0.005193622660047744, 'Fats and oils')]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sorted(zip(np.abs(single_dimension_pca.components_[0]),\n",
" row_labels),\n",
" reverse=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's another way to write code for sorting that's often more efficient (since we don't bother constructing a list of pairs that we then sort afterward), and is actually quite commonly done in practice in code by machine learning developers. The idea is to use `argsort`."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fresh fruit : 0.6326408978722377\n",
"Alcoholic drinks : 0.4639681679767065\n",
"Fresh potatoes : -0.4014020602962482\n",
"Other meat : 0.25891665833612126\n",
"Other Veg : 0.24359372899027434\n",
"Soft drinks : -0.2322441404728946\n",
"Fresh Veg : 0.15184994156230222\n",
"Fish : 0.08441498252508357\n",
"Cheese : 0.056955379785685135\n",
"Carcass meat : -0.047927628134685325\n",
"Cereals : 0.047702858373648946\n",
"Sugars : 0.03762098283940197\n",
"Processed Veg : 0.03648826911159385\n",
"Confectionary : 0.02965020108799388\n",
"Processed potatoes : 0.02688623253674694\n",
"Beverages : 0.02618775590853346\n",
"Fats and oils : 0.005193622660047744\n"
]
}
],
"source": [
"# now we introduce numpy's `argsort`, which does *not* return the sorted list\n",
"# but instead returns the rearranged indices that would sort the list\n",
"# (put another way, it returns rankings)\n",
"ranking_of_largest_to_smallest = np.argsort(-np.abs(single_dimension_pca.components_[0])) # use negative to get largest to smallest\n",
"\n",
"# now print out the food items having highest to lowest absolute value weight\n",
"for rank in ranking_of_largest_to_smallest:\n",
" print(row_labels[rank], ':', single_dimension_pca.components_[0][rank])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"At this point, we leave the following as an exercise to you: for a few of the food/drink items with the highest absolute value weight, compare the values between the different regions of the UK. Can you see why North Ireland is considered very different from the other regions?"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.12.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment