{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "3d345254", "metadata": {}, "outputs": [], "source": [ "import os, sys\n", "\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "from IPython.display import display\n", "%matplotlib inline\n", "\n", "import pandas as pd\n", "import numpy as np\n", "\n", "# import Image from PIL\n", "from PIL import Image\n", "\n", "from skimage.feature import hog\n", "from skimage.color import rgb2gray\n", "\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.decomposition import PCA\n", "\n", "# import train_test_split from sklearn's model selection module\n", "from sklearn.model_selection import train_test_split\n", "\n", "# import SVC from sklearn's svm module\n", "from sklearn.svm import SVC\n", "\n", "# import accuracy_score from sklearn's metrics module\n", "from sklearn.metrics import roc_curve, auc, accuracy_score\n", "\n", "#\n", "HIGHLIGHT_ON = '\\x1b[1;33;40m'\n", "HIGHLIGHT_OFF = '\\x1b[m!'" ] }, { "cell_type": "markdown", "id": "dbe153f6", "metadata": {}, "source": [ "## BeeImage Dataset\n", "https://www.kaggle.com/datasets/jenny18/honey-bee-annotated-images\n", "\n", "Based on DataCamp's Naive Bees project: https://app.datacamp.com/learn/projects/412\n", "\n", "### Data Preprocessing" ] }, { "cell_type": "code", "execution_count": 2, "id": "b17ee3f9", "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", "
datetimelocationzip codesubspecieshealthpollen_carryingcaste
file
017_029.png8/6/1813:21Saratoga, CA, USA95070Italian honey beehealthyFalseworker
017_015.png8/6/1813:21Saratoga, CA, USA95070Italian honey beehealthyFalseworker
017_001.png8/6/1813:21Saratoga, CA, USA95070Italian honey beehealthyFalseworker
017_000.png8/6/1813:21Saratoga, CA, USA95070Italian honey beehealthyFalseworker
017_014.png8/6/1813:21Saratoga, CA, USA95070Italian honey beehealthyFalseworker
\n", "
" ], "text/plain": [ " date time location zip code subspecies \\\n", "file \n", "017_029.png 8/6/18 13:21 Saratoga, CA, USA 95070 Italian honey bee \n", "017_015.png 8/6/18 13:21 Saratoga, CA, USA 95070 Italian honey bee \n", "017_001.png 8/6/18 13:21 Saratoga, CA, USA 95070 Italian honey bee \n", "017_000.png 8/6/18 13:21 Saratoga, CA, USA 95070 Italian honey bee \n", "017_014.png 8/6/18 13:21 Saratoga, CA, USA 95070 Italian honey bee \n", "\n", " health pollen_carrying caste \n", "file \n", "017_029.png healthy False worker \n", "017_015.png healthy False worker \n", "017_001.png healthy False worker \n", "017_000.png healthy False worker \n", "017_014.png healthy False worker " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = pd.read_csv('bee_data.csv', index_col=0)\n", "\n", "# droping subspecies = -1\n", "data.drop(data[data.subspecies == '-1'].index, inplace=True)\n", "\n", "data.head()" ] }, { "cell_type": "code", "execution_count": 3, "id": "80646c9c", "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", "
subspecies
file
017_029.pngItalian honey bee
017_015.pngItalian honey bee
017_001.pngItalian honey bee
017_000.pngItalian honey bee
017_014.pngItalian honey bee
\n", "
" ], "text/plain": [ " subspecies\n", "file \n", "017_029.png Italian honey bee\n", "017_015.png Italian honey bee\n", "017_001.png Italian honey bee\n", "017_000.png Italian honey bee\n", "017_014.png Italian honey bee" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# removing all other collumns\n", "data = data[['subspecies']]\n", "data.head()" ] }, { "cell_type": "code", "execution_count": 4, "id": "c963ea5b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Italian honey bee 3008\n", "Russian honey bee 527\n", "Carniolan honey bee 501\n", "1 Mixed local stock 2 472\n", "VSH Italian honey bee 199\n", "Western honey bee 37\n", "Name: subspecies, dtype: int64" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.Series(data['subspecies']).value_counts()" ] }, { "cell_type": "code", "execution_count": 5, "id": "194f58f7", "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", "
subspecies
file
011_027.pngCarniolan honey bee
011_018.pngCarniolan honey bee
011_030.pngCarniolan honey bee
011_024.pngCarniolan honey bee
011_025.pngCarniolan honey bee
\n", "
" ], "text/plain": [ " subspecies\n", "file \n", "011_027.png Carniolan honey bee\n", "011_018.png Carniolan honey bee\n", "011_030.png Carniolan honey bee\n", "011_024.png Carniolan honey bee\n", "011_025.png Carniolan honey bee" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# considering only two species\n", "data2 = data.query('subspecies == \"Russian honey bee\" or subspecies == \"Carniolan honey bee\"')\n", "data2.head()" ] }, { "cell_type": "code", "execution_count": 6, "id": "14613ebf", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Russian honey bee 527\n", "Carniolan honey bee 501\n", "Name: subspecies, dtype: int64" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.Series(data2['subspecies']).value_counts()" ] }, { "cell_type": "code", "execution_count": 7, "id": "eafe9234", "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", "
subspecies
file
011_027.png1
011_018.png1
011_030.png1
011_024.png1
011_025.png1
\n", "
" ], "text/plain": [ " subspecies\n", "file \n", "011_027.png 1\n", "011_018.png 1\n", "011_030.png 1\n", "011_024.png 1\n", "011_025.png 1" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "col_encoding = {'subspecies': \n", " {'Russian honey bee': 0, 'Carniolan honey bee': 1}\n", " }\n", "\n", "data2 = data2.replace(col_encoding)\n", "data2.head()" ] }, { "cell_type": "code", "execution_count": 8, "id": "d6341315", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "002_022.png\n", "011_019.png\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "labels = data2['subspecies']\n", "\n", "def get_image(img_name, root=\"bee_imgs/\"):\n", " \"\"\"\n", " Converts an image number into the file path where the image is located, \n", " opens the image, and returns the image as a numpy array.\n", " \"\"\"\n", " file_path = os.path.join(root, img_name)\n", " img = Image.open(file_path)\n", " img = img.resize((100,100))\n", " \n", " # two images has 4 layers!\n", " return np.array(img)[:,:,:3]\n", "\n", "# subset the dataframe to just Apis (genus is 0.0) get the value of the sixth item in the index\n", "img_name = data2[data2.subspecies == 0].index[5]\n", "print(img_name)\n", "\n", "plt.subplot(1,2,1)\n", "plt.imshow(get_image(img_name))\n", "plt.title(img_name)\n", "\n", "# subset the dataframe to just Bombus (genus is 1.0) get the value of the sixth item in the index\n", "img_name = data2[data2.subspecies == 1].index[5]\n", "print(img_name)\n", "\n", "# show the corresponding image of a Bombus\n", "plt.subplot(1,2,2)\n", "plt.imshow(get_image(img_name))\n", "plt.title(img_name)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 9, "id": "a666b202", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--> Color image shape: \u001b[1;33;40m(100, 100, 3)\u001b[m!\n", "--> Grayscale image shape: \u001b[1;33;40m(100, 100)\u001b[m!\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# load a bombus image using our get_image function and bombus_row from the previous cell\n", "img = get_image(img_name)\n", "\n", "# print the shape of the bombus image\n", "print(f'--> Color image shape: {HIGHLIGHT_ON}{img.shape}{HIGHLIGHT_OFF}')\n", "\n", "# convert the bombus image to grayscale\n", "gray_img = rgb2gray(img)\n", "\n", "# show the grayscale image\n", "plt.imshow(gray_img, cmap=mpl.cm.gray)\n", "\n", "# grayscale bombus image only has one channel\n", "print(f'--> Grayscale image shape: {HIGHLIGHT_ON}{gray_img.shape}{HIGHLIGHT_OFF}')" ] }, { "cell_type": "markdown", "id": "27b8d471", "metadata": {}, "source": [ "## Feature Extraction\n", "\n", "### Histogram of Oriented Gradients (HOG)" ] }, { "cell_type": "code", "execution_count": 10, "id": "5aa64453", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD7CAYAAACscuKmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABkRUlEQVR4nO29a6ys2Vke+Ky6V+2q2vdz6XO6291t000rNjYgcMLIQBxGgUEhQgISRORkGPkPkyGZGQUz8yOaHyNZmigK0oxGajkTQYImIILGCKEkCJsf+WO5wTGh3bgvtPt6bvte9+uaH3s/67zfu9d3q/pqV50+9Uhbe++q71vf+6213vVe17uMtRZrrLHGhx+5ZROwxhprXA3WzL7GGo8J1sy+xhqPCdbMvsYajwnWzL7GGo8J1sy+xhqPCeZidmPM3zTGfNsY84Yx5gtZEbXGGmtkDzNrnN0YkwfwGoAfA/AegK8D+LvW2m9lR94aa6yRFQpz3PsDAN6w1v4lABhj/i2AnwIQyuzGmHUGzxprLBjWWuP7fB41/haAd8X/7118FoAx5vPGmJeNMS/P8aw1VhjGGBhzeX7lcjnk8/nAd2HXrrF4zCPZfSN2SXJba18C8BKQvWTnpFl2yi8nsLV26bQUCgXkcjlMJhNMJpPM28/n86796XSKQqGAarWKyWSCXq/n3t8Yg62tLVQqFZydnaHdbqNYLKJUKmEymaDf72dOWxzdxhhMJpOlj1E+nwcATKfTK6VlHsn+HoAnxf+3AXwwHzlIvOqvmoS4anrCnmWMuSRNs35uLpdz7edyORSLRRQKhUsSvFQqoVaroVAouM8KhUKm9CVtJ5fLBei+CkSNUS539YGweZ74dQAfM8Y8Y4wpAfg7AH5vXoKWvep+WLCoST2ZTDAajQDAMW4cisUiqtUqcrkcer0eBoNBZuP8KM+XqxZWM6vx1tqxMea/B/AfAOQB/D/W2lcyo+wRBdX5DytoquTzeafSx6FQKKBcLmMwGGA4HC6ErlXq91XSOCXmsdlhrf0DAH+QES1rrCDIzNPpdOntr4qP5lHFUjPoaOeuwkq4aDrS2Gmr1Cf5fP6SPZ4l0tjSi+6XNDb9KoxPWswl2eeFtXauTstyhZ8juSigQka1k/QZSa7T18iJSk/5vLDWYjqdBhZltmutxWQygTEG4/EY1loUi0UADyMCAJzqPhwOA9GBNP2m39mnsofdTzqSRErSzIEk46znto7aXLWGMnMG3UwPiwi9RalocnCvIsyV1P4jg0UN3ryqZxwtbL9YLCKXy2E8HmM8Hs/0rCiQgcfjcWAhoTc+n8+jXC4jn89jY2MDxhj0ej0Mh0P0er1AqI0aA4CZQmFRqr+eK9RKNN26vUXMJx2dyOfzbpEEFmeOhCXVLFWyr5EtslQtfSozNTE9iX33cWL7pJxv8SaSaCSSjjiGSdIny/ABLOOZS2F23yQKU31WiZZZJtasbWV1fxhkez6TgCo5MRqNMJ1Okc/nL32X5FkyREfplsvlUCqVArRodV/TyvvJ8NIPkqRPosZImkI0YdJg1e349RbXBWHZi9ainiElsWYuKdV5jWQYmZCTBb0+rcL3edi9URrKPEhidi0DS5HsUbatvkYO4CJUn1lo8amgYY6mrMJFYe366NXwSfEoeqbTaSAeTgamFKWjbjweB/LfC4UCSqUSqtUq8vk8Tk9PMRgMXOouPfv8ba3FaDQK0OKTplHvzu/jTAyf2i99LmHPTgPZtnY+JzU7FolHymZfpZCU/JsD+yjEf5PSqSeuDr/5nJJMtJGZddPpNJADLhdv/V1axC1cPuaPcwAvAqswZ4EVYvY4yRVla10lLZIexoilfZeVJE9Ko1SLw9TsLGjRHn7a2/yb3vhKpYJarRbImaezbjqdYjAYBN5hFtqSjA/HRi86MhQnJfmitEbfuCwLK8PsPkSpQcuSonLgNKMRVxzODJ1MWUosreJKRgLgmL1UKrkwoIy3A+dOvkXsxAMuMzyZXZoe8vdVxbnT+BEWjaUwe6VSid1A4Rs8zVB6AiYdvMlk4jZjFIvFyIHwqYLSAWWtvTTxgeT2H21f37PiIBnKp13ov+NABqBUjrq3WCwGvPIbGxvY399HsVjEdDrFaDRCLpdDuVx21yTNpQfg8gXoC4iCnhs6mmCtvfTsNOYDk5R0VCEJOEakgybRrAvNPFt0r5zZjTnf+kgVMCkkg1FiaTUsaSeMRiPngEqyc0tPUDKCtDm1jZuUFpkEE8cIvoWHtDA0xs9nBZm9XC5HtkMJTmxsbGBnZwf5fB5HR0cYj8fI5/OBcU67xZQOwCTMLvuOz7XWumSaQqFwKRkoTfiTJkASZvctPDKZxtd+Uszj41iKZPfFUsPAjvNJ9iQqve87uTpGZVbJ58u/OfAyLVU/J43UICg9whDm5OJvvte8Di964yUteg8602C5ABUKBbRaLeTzebRaLQwGA7edVS6ImrawecAFkAwroRc9vcjJMeH4yrkS1j9hn+sU4TRgv8l7w+ZMEsxjelw5s1trU1UpkRObnSYnvfxfS8YkE597s+XzwhYVti/TNcOYPCx8FwUfvVG+AC44xhi38GTh05hOp5fSW5kKy7ZHo5FT1emAOz4+Ri6Xw9HREYbDIVqtFobDIcbjMSaTCQqFQsCrz0UlLgzo8xdoZpfOMKb1ktllGCwsTJdkrvhoiYNc5HSa7FX7nVbaQQdc3vwgBytOmma9csrnhi08WUNO1Ljrsnx+HEMBD73elF6j0cgtPFLL4HW6LZoMSUygsMXT93naflgk02UxJ7PCyjM7oSe9/D/pRJDfEVGTxWdDxy00aSalRtg1acyUNO8eBm2zW2ud6SUdXYypU+pTG6A0l4yutSE636QjkJ/r3XE6JVar7Vrr8/3I9sIk+izaWBKEmTCLel4YHhlmzwKrtOKHPS+rEI1vcUx7f9jkDFuoouxiLb3D6PK1nWaxi7pOamVXgST+l6vEI8/sURIyqZ3suzfuu7TtpZmUWWFWWnTyC/Awrk5HoPw8Dnp/PR160qYOozntohMHn6Rf1BbXVcMjzezLGpyrlA5hWHQST1ibPpWYDC+9zVLVDvNnaL9HFkg7LtIPsQrMvkg6VqZ4RcQ97u+0tKaRAHHXSltv1gma1UDK2DMdYVpyZjWu0gMv37tYLLqMuXq9jvF4jNPT00C9+nK5jEKhgOFw6PIA+J1voYijOW6MZGTAl/8Q13aWi48vlVovlIviPfuoFq/QsdOwaxa5aGlH4Cy7o7LWBOREuopFUD+HCw4z6aj6y2xAOu7kxCeiHImzQjJs2vmSpYRnO3GLR9SzFjGnV57Z50Gazlq0hrMKKiKRhpZFllCyNl2JpkX34aIq6M6CRbzrh5rZ15gfjxODfdjxoWD2q5DKy3bIrQqYBQcA/X4/kTdebvaRNvWysCpa3FVrex+6slRZ24DEKqnhy0SxWESlUgFwzuxJTniRjrmkR0ZdBR63BXzlJfsyE2F0W3EbVa4KtHWThMeyxmQyCWxkGo/HaLVagV13pIHSXIbkFnmKKsdnFSRr3GaXZQiPlQ+9rbH6mCfJZY3s8ciG3tZYfayZ/NHAh85mX2ONNfx4pCX7Wn30Y5FJRrL88nQ6RaVSwebmJkajEU5OTgJ2e6lUQj6fx2g0CiTbPO7jtax5u3KSPakDjAUO40oWXQXkeWfAw3JRcXXckoJppTKTT4bAJHhii/R4622d82BjYwO7u7uoVqsAgOeffx6/9Eu/hJ/7uZ9Do9EI0PHUU0/h4x//OPb39wE87KdljJk+jVb36byQ+/qj2mdmoazDqO9dFJbPKR4kWf11bvUyIdMj5f9ZPwN4KA2Yfqr7StOSNTgxOTkbjQaeeeYZtwBJOmq1GprNpqtDJ3eYXTV0CutVPRO4nBPPvpNjdBW0rRyzy5zpNJsYVkE1lMUFZQ21eSGTUNKeIZ71rrJut4vBYIBisYjt7W3U6/XYe1gAMkkZqkVDMlmWiT36aOskY5R2I9C8WL5YjMAqxLTTgsw4S72yKMhFME2/ZN2Ho9HIVaSpVquJDnnkRhj2yyIm9TL7hEi7ueeq99KvnGT/sCLNZKetH1f5dlYkdRDlcjlUKhUYY9Dv9xdywMMqOVmTMt6itAPZvj7LPQvESnZjzJPGmK8aY141xrxijPnli893jDF/aIx5/eL3dmZULQmL1CSSOmFo+/JUlUUgjZpZqVTcQY2LQhpJuKgxSusDSnPgRVpw+7A+X29exGbQGWNuArhprf1TY0wDwJ8A+NsA/j6AI2vtF40xXwCwba39lZi25l6+pUpISanril8V5ATRBRW5IodVaY0CJTuvk2Wd9KSkJNLOQV0+it9JJJXsuVzO0c1UWXqUn3nmGXz605/GeDzGvXv30Ov18O6776LX66FSqaBQKODg4ABHR0eXTJur2Hug7WhfUQvZd0klu+x/AJfGR2osHB8u9rxX1rTnNXJuS99PGoRl0KVOlzXGfBnA/3nx8yPW2jsXC8IfW2ufj7l35ko1skJKoVDAZDK5dNxvVkjq8OPRS6RxMpkEBodSelaVnMwyGAwu1beXYRs5uWQZZw25IKVBLpdDs9lEsVhEq9UK1JSv1WrY2dnBs88+i5//+Z9HLpfDV77yFdy9exdvvPEGDg8PA3F22eastmpS1V8yGJlKv7u0m9P2C9sHLjvY9CIvT6mRVXvkPZTmnNuzIpN0WWPMRwB8CsDXAFy31t65aPyOMeZayD2fB/D5VNTG04GL52bSlpYws7brUwPZno4ty/JNvNd3LDJLLoep0WFqni8kJ8N2Phqj2uXCKk9vBeCOVZLHI2nJ5kMYLUkYbp4tx777whxrvj4JuyYNPTp8KsH31+fBZWG7J2Z2Y0wdwL8D8I+stWdJX85a+xKAly7aWL4XRkHbXrLaadTE8MF3RBUlWq1WC3iue70eut1ugI6NjY1AzbdOp4N+v49SqeS2lQJwBydG0RK2iHFRkWpoXK120gucJ9XUarUA3Un8ELr2u1ZtiaQaUBTDx42RvpZhM9/Co6W1XLQppbmYpxUa+p7xeIzhcOhq8cu2+v3+3M7ARMxujCninNF/01r7uxcf3zPG3BRq/P25KFkifEkp/Ft/LxHFUPSmyu+izgP3fU/G5ILEa/idplO357PjKeGjJo7vfaVtqrdvcoFi5p5cQNknmmZJ9yI98bNI3Kj/9Zhqn4C8Rj87bF5p348cKyA7j38ss5vzJ/5LAK9aa/+5+Or3AHwOwBcvfn85E4oUdMdl7Y3VNrZv9dZHKkuGLhaLTiWnHVYoFFzIim10u92AJNcDOJlM0G63A7RUq1VUq1X33MFg4KrDUJUOm3xk6LD30fdpaLWRk5CVYtl+uVx2k3RzcxOFQsHF3/ksuUBJc8TngErD+L5r9RjJ/4GH0lr6OpJWz6FGJZ+lpTPnglzw+Aw+h/X32TelUslpW7TZeaT4LP0ShiSS/YcA/D0A/8UY858vPvtfcM7kv22M+UUA7wD4mbmpicGiGJ6IkuA+6c98a8lYYQUufN5x3zWaHu3V5fPDvPzy+WGq7jx+CSnV+U58L+4H0OfXE7Oo3bNCazV6DGe1+9PSynGSZa59troWaouI38cyu7X2PwEI65XPZktOPBbF6ITv9BJtV3LwGo0GNjY20Ov1nE1r7XnYrdPpuAHkZ2mhyz4VCgU0Go3A5KnVajDGoNvtuoMVtSST0mhWRteLGPtlOp2i0+lgOBxic3PT+Re4SUk6mjQtpCdLSInO9GU+GwhGAeZ1etFml/0itS5Kfp5lX6vVAos+aRmPx4EIx6LMmkcmg87nCc2q3bjv9QYPqq3lchnlcvlSyI2xaF+YRyNK8um4NM0GXpfP5525wOdrp5L2+ke9c9wk82k3UlVn3zAGTxXXp51kDb0QSe0nzHbOghafxiVNFY4ZQ8aU7FEO0kVhacyehnGNMS6jTE+uWSAdS7Qzw1AsFlGtVgNns3Mij0Yjl2AiPbmTyQSVSiWRKjYYDHB2doZcLod6vR6ZqcZTWKSKSrV5Y2MDxhi02+2ANjAcDtHr9RJN7H6/7/wKcRlztEGJs7Mz/OEf/iH29vbwfd/3ffjUpz6FO3fu4P3333fXaEaIgrbzo8ZaMzQZjO3QxNJIyuxcuJnZGEWL3nZdqVTQaDQcHZPJBKVSKUCP1ECiYK0N1P9Li6UwexJpqv/n5CKD+WyupINHiZTL5VCr1QJhDt1mqVRyqjNwPpEajYbLDGu325cqpk6n00uDF0ZbLpdDq9VCPp9HtVqNXHjkJOa9ZKBGo+EcPVIl7Pf7l+zVMEynU3S7XSehoqAZt9fr4Vvf+hZu3bqFH/zBH8TW1hZ2dna85k8SRIXnfLTI7xm6YsiK7cyS3iodd0yMCYMxxqnsRLVadcdjtdtt56Dz3ZuElnm0gKUwu554SZiWq7MM5SSZwFHXTCYTnJ2deYtOEP1+H2dnZwG1sFarOSaVtnoUDWFpsvRs0xuvV/ywCUp6KCXOzs7cuWqcEL5JYa3FYDDwah3UCLQ9G+YQ5PX00vf7ffR6Pddf1lqUSiXnwQ/rm6hQHye4XjQk9Plx0kfALbWyvTSQzK5ta3rPpVlA/w3HjuMwmUzQ6/WcyUdJH/buYd/No+6vhM2elGnZQXFlepNiOp3i7Ows8Fm9XndVWIBzNbvVagF4mLPO3740VkoRLdnjkkV06I3Pk1JAplGS+UiL9j4Ph0MMh0OUy2XU63X3PZ8Tl3OtadXMLiVMLpfDcDh0oUHN7EyX9YXe4iav75qwSAQXJZmKmiTMmBR6AZWedqLf72M8HjuVn4sgz8KTgoq06apD86bLhmElmH1WJFVPo+7Xu8um06lTfY0xmEwmoSmdcvXVtPgY25dFpr+Xk1hOdLYfpgX5tCVKHbZBBtBmh0819GWaTSaTS8+nBMvlchiPxxiNRuh2u+6wR5oedCQaYwIZgEm0ujDHpg7Fakeg/PG1kXb+aE2LfSt9AjJlmH4lKaTkeOmwoPzRi2IWobhHjtm193MehqdKLlfVTqfjbGh+LtV8AAHPt26P0AcWyhRVfq9VZen84cpPieib0PI3/+aEot1KT71cxOr1euCdu92uM0cAv3oqnaL8nJNfLirD4dBpQuPx2PkipK1LLcBnv2r11Wdr6x2F2uPP31p9D/PMJ50/tNmllsT3oDnFH2oXZHYuCnLuaj8Pr9MOO4b45tVkHzlmzxpazYtKU4xyosRJKb06h/kltGSPuj7sWb7nSUaVi4xPTfb5RJLS4ttCqtVSOjCT9IlPAwrro1mQ5v6wPuXfvj4Kaz/sXaX2k2WIEHjMmZ0JIXLycFXVEzQsZisRpYImsU21nUapFjfhfaBKLemnVJKbKnxtR9Hiy/KLQ7/fR6fTcf8Xi0XU63VMp1O0Wq3UmYUyf1xrAWnHh/cleRffhiFKYH38VZRzlfBti+UuQi2EssDKM7tU1ReRQqjNgiSMlVYaJAmrpIU2YaI82vJvbRumQZhfgLnwZOp79+6h0+mgXC5jf3/feaK17WqtdQyR1MuctC9neb+k7Uo6onwmWuonoWcRNDuaFtn4pYel3OIqHWhcVaOk5zzvwo0L2pEiHV0EV920z0tqH2qnje87ZmPpPvG9B7/XHvwkCRphfUufxvb2Np5++mn0+328++67mEwmaDQaqNVq+LEf+zE899xz+OpXv4qvfe1r6Ha7aLfbTkugPW+MSRQh0DvpdJ9owTDL+Pje1UcHfR56LrCPZSEKhiiTbKXlO1CjmyXUZh/Fs9740mETP+tn+Z4jB2ceqTgLotRO7XnW9/icVtIOnFfbYPvM+eZ+gMFggNPTU9RqNVQqFdy6dQubm5uBMKKcxEnMI/lMvkfUNVcxPtqDrr+TcXbtl4jS9vTcyxIrzexXCQ7KIkwFIukEXORktfY85ZI2b5LrF4XpdOpyC5LUWlvk2ADJ31Vu6FmUqbCIXPk1s1/gqqT1KmDRTCOhpZ/2M6RJHlml8VmVhScNVprZ00jCrCHjoJQ6iyynnBRpHD2ckFmGcGTVHO5TiEO/38fp6SlyufPClePxGN1ud256sgzBzQtpirB4RRykSn8V5sdKnwiTFkltvySQmVA6IWIZSBsR8DmNsoDcAOPbxuvDcDhEp9PBdDrFxsZGoIrPvMg6Fj0raKOnYVifY26RWHnJzgyyq7YvZdYT284qJ38WaCecztDT3/nozgL0/rPNTqeDd999F4PBICDlR6MRXn75Zdy7dw9vvvmm+4xe9yz6UIe9FmXrJgGdn6SF2mDYZqSwsOgisdKhtzUebVyVerpGEI9k6G2NRxtrJl8tfKhs9jXWWCMcj7RkT7NjKS10njKr2gBwRQgIZpOxMAHz6+mx/jBJN1b2YaEKls2eTqeXyl/Rc6/PqgOys0/TZiWSjqyOWiKkM5cedlnrX9LBPQrD4dBtCsrn826X46KwcpI9qeeYzKiL+2UVHqtWq9jd3UWz2YQx5zXcn3/+ebzwwgvY2NgIXNtoNHDjxg1sbm66wbx27Rr29/cT1RZ7VJDL5fDss8/i05/+NJ588kkAwObmJl544QV85CMfCbyrMedbaXd2dtxpNlwEsxojMqysz+6bP8YYVwSTz240GnjiiSewtbU1txecgqDRaLg+KJVKqNfrgZJnwPkmoOvXr+PGjRuuX7a3t3H79m1sbW3NRUccHnnJnlX6Z1T7ugCDnqycxKwgqs87+7CB71ur1VCtVlGpVC6VjgIeLr6SGRcB2W6Y5sCFgPsckhxbNQsNMu8/THCxig1/kuyQywIrx+xp1T0O3KybH8LQ7/cxGo1QLBaxs7ODWq3m6qSHoVKp4MaNGxiNRjg4OFhYeaFlYTqd4jvf+Q7u3LmD/f19/MAP/ACA+DFi0Qdf3fh5IPPraTZF0WKMwdbWFsrlMjqdDj744INMwoDcKs0y2rKsWRQte3t7mEwmaLVaeO+99xY+V1ZOjSfSSEa93TMLcLfSdPrweJ44erjdk8cs6yN8HkVoqdNut3F4eAgA2NvbC1TeDUPUxp000HNCp+EmmS+lUskxY6/Xu3Sc06zSngs7d7zFmSpcGHhwBA/5yIKWMCxVsi86DitLBMUllvicSVmCtmqSFFM6cHRBhKygnUlRdDzxxBPI5/O4c+dO4Ky6rMCFJO49eRoOcF6jPuvkmVKphM3NTVhrcXJyEukok6Wqk9bkT4NqtYrt7W2MRiMcHR1l9q5Ll+yLtGvDHDY+0L70XZtmMH2TVu5vjrPNpI9gUXYcF8EkmsrOzg729va89dKzmORJaeFRV9VqdSF7FHjQBsuER4FSOe7ACB+0xPbNl2KxiGaziY2NjUznwNIz6MJyvqM+l3ugpa0elguexJbX6iq1AarmlUoF169fRz6fd+WCu90uhsOh+5454MPh0G3d9BW+SCLFoopTzoq44o4axWIRu7u7gUl9dHSEdruN3d1d7O/vo16vY39/H71eD++9954rOCmr8g4GA1e/ne8eVrE3inbNiJ1OxzkG9ZxgsUcu4vSUU1tikc1yueyiK7yv0+lE9rc8hovPYy1+mnx0wvHMdR7VRUY2xqDVamEwGKDdbqPf76NWq6Fer7u5PB6PcXZ2llq7W9kMOh2T1HnCuvwyPZ281qeiy9LGSTuK7VDdpjo/Ho/doJDxb968iUqlgsPDQ8fUuVwOg8EAR0dHAdopoXVsPgpUIXnM1DxH/hCyCEdSp9RoNMLdu3dRLBbx/PPPo9lsusl5eHiIw8NDPPnkk7h9+7YzPQaDAe7evYter+eKWfhqt0lakoCOrEKhgP39/cCBGGRSWUGGc4DMt7GxgVKphLt37wbOCiiVStje3ka/38fdu3cT9TMXX2lacBFhvf5arRY4irlcLmNra8stSuPxGKenp4GzAqrVKvb29nB2doYPPvggcxNuZY5/0l74NG2F1Tj3tacnuU91py0rJWESVVN6hWVbXERkHFonUHBCaO2CTht5ry6d5YPPwcPNGlr9jCqkCJz30cnJCfr9vosTE8wtSEMLk1tkJIXQ/ht95JUxxp244jtEI45Ztac8n8+j1Wq5HXlS2FCDIyix5buw5JR2ykUd48X30CW9c7kcTk5OYK3F/v5+4L1OT0/n9tYvhdl9arYsdaw9rlHQdjnVHzKr1gz0pNaH7PGoIj3Jknjj8/m8c9zwvXhcUKPRCCRYsB6bbF8eMmmtxfHxMQaDAUqlUuDeyWQSOIbIB7kVle2NRiOXAKLrxuuMQNaG47337t3DdDrFM888g6efftpdy0Mvo6RQ1IETeuHRGYeFQgH1et39P51OnWq7u7sbYN5ut4tWqxU6Z4wxaDQagfZarRYODg5ccUz2y2QywYMHDwLMzkQZSevZ2RmstajX65cWpSjk83ns7OwE+u34+Bh37tzB7u4unn32Wddvw+EQr7322qPJ7L7B0MkxYdfoMA5/0xyIasPXpk9CSmedNBVoezHBhmmiPPaInnY65KSk5/2ElkD8Xm5dlY4gWd6aC5lvS6deRKXZw+9pnvA5vvLQMklGmlqj0cjtTec2YJobe3t7zpQZDAaB9tgG2wwrHukbH32+vMyUJA3UoEqlkusneVgm+2A0Grn8CSZBMbNOnknHdiUYjuU7UJXnnKF6Pp1OAwlF9N7zpF2W8u73+5hMJqhWqy4+z3p98gxCvX14ViyF2cNsbDm5pCNHThJ2Ir/nxJVZUbI8cZTEoWNFMggZmeDEobZAdW9vbw/FYtE5pk5OTjAajdDr9VwbZFbWWtOTVmI8HuPk5MT9b4zB5uamc+YADyWXPE1U1oBnf9HnMB6PUSqVAu9D55SUWJqWyWQSCLMZYxzTtFotdLtd9Pt99Pt97O3tOTv6E5/4BEajEe7fv+80D1kXQDIpxzDOf0DpSeTz+cDR1nSK9no91Ot1bG5uOgdpuVzG9evXXd7DaDTCyckJ2u02tra2sLW1hUqlgmvXrqHf7+Pw8DCyDoA+249ahzQFufCz4GapVHKOtyeeeALT6RTvv/8+er0eDg8P0e128dRTTzla9vb2cHJygrfeeitAyyPL7Bpc9aWk1mqQTkeUE8QnydNEGaJsRimR+HmhUAgwkVSJ5TlfhKyXHgW9YcJXmZQaA5/JxYQaivZBSPuYbSSJTvi0Ikp8HkDBhZDOx52dHYxGI5RKpQAdPm0s7DlxtPBdmRPB95HPkhEUHq9NmmXuhda0kuRY+MZVv5sUUNQc6vU69vb2MB6PcXBwgOFwGNDYpFlGWpfmoDPG5AG8DOB9a+1PGmN2APwWgI8A+A6An7XWHs9ChM+W1vnUVIno4aQnlt9llS6rnVWUzhw8hoA2NzdRLpdd4gPP5WaeOM/i5vvNED5Bu90OSNhyuezOPJc14OntJ+1SIozHY3Q6nblp4TlxBE91mUwmeP/997G9vY0XX3wR1lp89atfxeHhoVuY2G9ZpMsyNZUw5nyTS7PZdKo4IyaNRgPPP/88AOAb3/gG+v2+i1/zMAvZbtp+YaRG9ku1WnUhQjrhbt++jVu3buEzn/kMOp0Ojo6OAJxHW+gbeO211wLtLiKZKo1k/2UArwJoXvz/BQB/ZK39ojHmCxf//0pWhGlHHZld/mSRkBOXRMPVWS46tPXK5bKLp3JxkguPHrAweqk9xG3OoMQiaJMCcKFG7eWnHao93D5ESTb9ufSEyzg6i0pubW3h+Pg4sFjpsGoS+Jy2EtR2pKnCMFez2XTHTHEMKU19oVBfv1CjkWHfKFqr1WpgjJrNJvb397G3t4fNzU3kcjkXb6dD7/Dw8NIiGLZbcp5c/kTMboy5DeC/AfC/A/gfLz7+KQA/cvH3rwP4YyRk9rjsME58+T9tRqnG6ZMuk9o1lDBsN2oA6YHlZGMWF3OsjTHY2Ni45ImVYZwojEYj9Pt9VCoVPPnkk95MNYJqKUFNh31hjAk4mYBzO1/6AqJwdHSEO3fuXFrgfNChpbt37+I3fuM3sLe3hx//8R9HuVzGl770Jbz88svuGp5VngTUUiqViotPh2F7exvNZtP9f/36dXzP93wPALgFhwsAwSSXOFhrcXp6ik6ng93dXdy6dSv02lwuh6eeegrb29vusxdffBE//MM/jF6vh3feeQcnJyduAZL37e3txdIynU5dG7MgqWT/FwD+CYCG+Oy6tfYOAFhr7xhjrvluNMZ8HsDn5WdxW/p0OI2Tr1QqBTzWOkZ7QUuiF5I2VVRMlGEv0iuP5qV04+Klk2mS2qNc3JrNZuQElB5dvgM9zbVazZ23Jg8wSBIaI+SxzXFahv6u3W7jz//8z/Hkk0/ip3/6p3Hjxg1cu3bNhSL5k1SNp2OvUCigVquF0pLL5VCv190iaIzBzs4Obt68ieFwiAcPHmAwGAScmtPp1KnQSUCzoVKpBBiZzyfy+Txu3LjhGNcYg+eeew6f+MQncOfOHbz++uvodrsBTcRai2azeSmPwofJZIK7d+8motmHWGY3xvwkgPvW2j8xxvxI2gdYa18C8NJFWxaAc5SIZ1waTGmPM5GCUkt6xoHwhJywsI78XNui9KASnDBUAavVKj744AP0+30n0ZlCSieP733CHC70MwwGA7z99tuBhYdmgqSbmWJ6sZT76Nl/PB9dnwPONFMNadvLEBNwmfnp4JILc7vdxtHREV555RXcv3/fOe0ODw9xenrqFifZRtjOQPZVv993/U86ms2ma2c6neLu3bt4//33ndebXvPBYIC33nrLhbistS6rT/fheDxGv9/30sJF8Pj4OGBbM4WatIxGI3zjG99w593V63UcHR3h/v37OD4+xp/92Z85XwG99hwj2bdhtFhr0Wq1LtGXFEkk+w8B+FvGmJ8AUAHQNMb8GwD3jDE3L6T6TQD3kz5U27O646VKTicPJaB2oEmm150Wt6vLWhvwyALwZpednZ05lZ/e1PF47CRxq9VyDjLGd6U2wOdESZLRaIQHDx4EPtOVTnhKKhcemUAEPEwSKhaLLm2zWq1iZ2cnkJ56eHh46b11v/ji95o5ZP45F+RWq4W3337bLX7NZhOHh4fuVFedrBPnAWdcnGDRDHlu3PHxMU5PT7G5uYn9/X10Oh2cnZ2h3+/j/fffx3g8dl75o6MjdDod1Gq1QMUhhviiaGm324FEqHq9Hqh0M5lM8Oabb+Lg4MBVKjo6OsK9e/fQbrfxzjvvYDAYoNVqOefeaDRyB2ES/X7fJetkiVhmt9b+KoBfBYALyf4/W2t/wRjzfwD4HIAvXvz+ctKH+iQfQxjS0SVocN/rUAvbk9fKyR/2Hb/XKarWWnS7XRfestY6dZ351ZSAMsWyWq06RxifSVWUzh2dCuvL5tOLVa/Xc/3CWDW/09BMSpODCS5cGCqVSmARoYNN0uLbqCLDkFKi8zfj82+//bZzOjEnQZpMTLxhEowcE72Yk7llv3ATCzUrer/pGBuPxzg+PnYL3nR6Xh+PJlez2QwsipSi0oSitiWZn3F82U8HBwduow3nCADHvP1+HwcHB26vAMeAc48aGXMOOIekk89HyyyYJ87+RQC/bYz5RQDvAPiZpDeGpctygunsKsngMrzGNjSzyoQczWByYvlSRymlZXINB6VeryOXy7mQGAdoMpmgXq876S7DgGQirZJrSU/PuqS33W67rD1fMooPVN9LpZIzR5iBxZzy3d3dgKlyenp6idmllkQNgscayXGSCyrVz9dffx3VahWNRsPZ0tKxSEegtRYbGxsBKa1Td8vlMra3t90zmbTDeH6pVMLGxoZjMu5KPD4+djvOOB6MFHBcjTnfuNPpdFAoFNBsNt1zuBjLfmk2m3jyySfdNe12G6+99homkwlu3brl6JAaAwtzMtGHCz+ZnaBJQ2eipIUJUlfK7NbaP8a51x3W2kMAn53loT71JGn6ZJL29EISdp1Wr2XSjDHmUuUQhnCkGSLbpGTVCwrpkAyqB05GCGR78v6w9/BBP8/ah3sF9EKjnWZae5KLa1ycXobX+Hen08HBwYG7ZjgcYmdnxzGjpEW3za3EUlsql8solUruhBmiXC6HRlZIj5aQTFdlJEO+s6al1+vh6OjIXTMYDFCtVl27sr+pPUWFG30MLLUx+c5ZxN1XJl02TGLFeYV9i0OavOt2ux1on5lxDImlARlWMgd9AHEZUXScaaeYLFGdBjreTj8CALfLi/Atgr5xoCmhk46iQpfWWhwcHOD11193n21tbeGZZ57BcDjE66+/HogCaPT7/UCefbFYxLVr11AoFHBwcBBIsNne3o6MZtiLRCX57hsbG9jZ2cFwOAyky/J6iZOTk0DqLmsOGmNw586dwHvs7+9fqiyradFlsZhpJ7WAMFpmwdLTZakG+l7GZ2+nCWclhVStgOBKyjCaDNtQNeS5ZQzlUH2WzKn9B3H0S9rTvHOSd6S05k9SaaHpkZ9zQeImGQDO8UQpxZJP/X7f1VpjUgvzHKL2+3N8mMzEPqfJRJ8K1XKm8tKU8klX/s2U38lk4lJXwxJXqLkxjMcyY1wc6YNgn/B60sR25eYZ6dfRPh6fo3QeLLVSTZi04HfSHgzz2kom8qnzYd9p0KaWBRGAc0fL/v6+o5Xe+H6/72i8ffs2bt++jZOTEzx48MDZjDIkSIbQDigfaEZkXQ+P/cH03yS7qcLq1dGPwKKJsqoKHXEf/ehHsbOz45jx7bffxquvvhoIYz711FMwxuAv//IvI8NK3IIKnNv8VP+ttdjd3fUuJnLcpTMReDif+JmsQXd0dBSZD1Cv13H9+nUXQZF1Ba9fv+72qedyOZyenuLBgwcBvxTLTXFudrtdp7bLvmHVnBnSm1ezUg0QraIkldBJpOYs9JBRtZdcqsmc4Mzb12rtVS6oUZASLq3m4wMnp6zsw1wDuZmDk1dqR4x1ywhDUlp8Jgo963p/QBTdbG/WRVXTwrmiaxrodGWp7endnnE+kXmwVGaXqtYikEYFZjx3UbRotT4K2mGYJWSEIMmkYix9EbQw6YUx+ijIPIRF1FcfDoeupFicf6TX67myUYs4rklupMqS8Zcu2ZPY6mmk0KyIMxGS0EBVTdpcUd7YMCxaE5hl19s8kD4MRjO40EsHWxSoDUgkMfOSQi6CcWAYU9Oi7eyolHD5XN4v58oiFpGlM7uGDDVRRYwCGUqrZvOiVquh2Wy6LYgsGxWF4XCI4+PzXb6bm5uYTCau0uqHBfRdWHue505HVBRY3KNer+N7v/d7cXJygjfffHOuCW2Mcd73wWAQ2K4aBVmbUIdRZwVLTJVKJfT7fbRaLWxubgZyCzTojWf+P73wekHLEkuvGy8hbZi0Koxm+HnB3W7FYhGdTgfdbjdWSjMmPBqNXGpoktX9UYJ0ciVhFGvPD13g8UZPPPEE9vb25u4Xpi9zB1mr1UoUKpXzKm5DVhpaNjY20Gg0XNqtriDko4PMLbPpFomVkuy+UAP/T8L4Waq/LBskQyvHx8cwxlySSDy1g3YWPdNZh05WATRTOB4yp1yO0XQ6xb1799BqtXB6egrgfN/2K6+8EroRJw2sPd962uv1nErNMJdvrugwpt5ENQ+m0ymOj49RKBTcgkMvut7QYu3DQiB8NqMiizyuGViBQyLWWGONbBEWevtw6ZhrrLFGKNbMvsYajwlWymYH0p3LTq+wdLgA2dhhlUoFtVrNbbagQwiAK4ZAMGOMqZcyirBoO0xDhy35WVbmGhOHmJfgGwdJS5q03LSgg42ZdNJBq5/JakJM9NFjNi+YeCW3sDJpSPe9rHkfd22WWCnJznCIrj/n85gyVZPlfJhmmNXpp7u7u3jxxRfx1FNPuVzomzdv4tatW5c2OFSrVezu7rrTQlgmKssTR3WUISzywBxyWZ03brNKGho2Nzdx48YNF1ZiLTem4EowR5zP1hlj84IRD5lr7vNq53I5NBoNbG1tuSw+pkFHhceSglul5akwzKTThSNZcFJGarid+rHyxgPBuDkQnS7LCS93uWUFefoK97xzMDRNsuKtjENntYklDcL6LcvNNMyq40aXqJDnIhOi5OYeSYfvmbyGm12oEWShdZAOPQfCIOetjg4sEivF7AxbSTU4rhO4iUHugspiYh8cHODs7Aybm5v4ru/6LrcPPCqWy1rq4/EYvV4vs33IQFAlTwL2Ydbhv5OTE7RaLdTrdVfUMW6zRpSqPw8Yo2a1mrixN8a4ghqdTsdtUJkX3MxCU4/FLKP6nYsl523a7dSzYKWYXUJKqCT2e9LdbWGgZKDdxA0OslZZXDolGUxuVdTfZyXpk/bLvM/TfhA5iYvF4pVIJCBYXpx9K7XApDavlLraVk+Tgamv1TsckyyychG8Cg1wqczOjs96KyfBbYZJVtmtrS2Uy2WcnZ0lztdOA6q8cjtkFD2LdGyFbVvVKBQKrqCiLl2VJS2A/4BNiWq1itu3b2M6neK9997LXBLSz0IpHdX31CSY25/1ONHc4I65zNrNrKUZMI/DJsk9SduXe4h9hyNIptC2ofZ++1Zp6SRL4jxM4q+YRxJE2bb6OlbuCdu2O89GJe1ziUKhUHDlmZMcn+17DuHrOxYYTdI2TUfftXL85+kX2v9Z+jyWmkGnmUZXiJG/ufKzaIJU3Wiry/LTUq1Pot5Vq1VXCYWVU9rttjsYoFwu49q1a8jlcq5ABQsocGCGw6Gz1RmWYlkqmWaaRBLETU6fk1AuEvI5vF8WdmSfRoGeY1mNpt1uYzAYoFwuO28zq/Rw04/ub10xxudUjaOlWCxia2vLebkB4MGDB+h0Om4RJZ2cE2RKFvPM5/PodDqu6uxwOAy0R9rjtjqzXT5TbmphoQ4uHKyzJ+c5x4FanqxOQxOAP7P4W1Yyg046bLTUk5NVd5SsJc+B9dVFY2clWdB6vR7Ozs4uVSDt9/u4c+eOO6iwWq1ia2sL29vb2NzcdNVRGXf2HesrJ2BSlU8yRhIJLCWBnCyawdI4yqbT8+OdO51OYGMQcO4cOzs7c7XpWZyCk12r53oMpI8kCS3cz358fIzNzU1cv349wKSMn0ump7otNbbBYOCq9gIPQ4c8FJIlx+L6hYt9uVx2x3OTTm6C4dhTiLB/gGDhC6k1ynh91vsqlmKz6yqgchOAVheTTHQdn+QE0t/piaVPF+E1x8fHsNYGzgZjKaEocMWXDCb3ccvnhA1mWMgsrTonJQihF0/9uX4XqSl0u10nCeVW3yTnpfkWLJlQIqEZjeeb87pcLofDw0NX3kkerhAXLZEecPkZN9LI8trcwiuvlbUIeS+fJ0t3A5fPwvNBF1M1xjitwnduwry4cmZneEJ2jDySR9tBcZ5Kn13DgwG4ohJasubzeezu7gYm7J07d3B0dITNzU3s7u66tuWppVG0yPeSu55k8gf7wXfqio8JfcwSJ310v8iqKr6KvZoB9GTlwRg7OzuXDpeMg6aFUi2MTvlu5XI5MA6j0Qh3797FZDJxNe6Iw8ND3L17N7JvtKDp9/tot9soFAqBBd1ncpVKpcC7j0YjnJycwFqLzc3NSweNxo2R7mNqh+QD3da8JvdSJDuZUYInszB0RVVYJyBQRZThLZ+dz8kRVZOc+6BlwYBcLofNzU2XSMM96sViEe12O3AWOGuhcxGhhkKpKm0w7VmNqqQaBZ+kl30k7XR9bViyj++ZYdKeOQRsg45N4Fz74VZf+iykWSHDVb4wl29Cy3Rl0iUPRRwMBu5Em/F4jM3NTVdwkh52+lNoP/OILo4RT+KRdft90lTHw6fTqbuXCyjtcLZPk1O+o9xeS9NDjpGOxGQVmrtyZpcJCES1Wg0cuUu7x1rrOosTh7aPLBcsnWEMW1ANi7J7xuMx7t+/H6Dl+vXruHbtmvtsMBjg4ODAOe7q9To+9alPYXNzE6+99porl0RG7/f7Aa9upVJxDpy4PHmfFz9My5EqtvT2Aw8nkTyLDXjI7HEOSyl5CY4D67jTDOERTMVi0VXn0Qc/6EquaWgJqxtfLpcxmUxwenrqDo68ceMGnnrqKfR6PVddiJL/3r17rvrsYDBApVJxtjqr48aF3PQxWTRpKIU5zjz0kwKD81EW45QlrOUcl/6drLG0OLv21urTUigR2RH84cTyOe/kqpl0NdTX0aNOjMdjNykoqbe2trC/v+9Ufln2WsawpZSYdWWO8sRrx6VOLPFJz7A2k9Ah30N60XlEVbVadWMntYywZyelQ88VX7yf3vHxeIxCoYD9/X1X7omeeWoUdN7KOZfUkavplw42ti9P1JXZffLEYDlGSTStLLASGXS+FVPW1qadr1Uinl2m02WJWTpNn/qxsbGBGzduuAHc2NjAd3/3d+Ppp5/G8fEx2u22OxaIPoLJZOKtUJIWYYwupb1URWnecNJxgmfh1dWJSSzfPJlMcHJyglwu5+q68yw2LdGzcDTxFFrZB1tbW7hx4wby+TxarRb29/fx8Y9/HMC5r6HT6ThbnkdH8Yw3YpYFmRWJCGMM6vU66vW6G6dms4nbt29jMBjgwYMHLupDk5RJX4uomKuxFGaPO9KJE0nu3JLeTtpG2hmWRprLCqBRzirgodQgOImbzSauX7+OVqsVOG6ZjpYkE1szQJzXXdIhJbpcBHS8Paknf9YFSaqnANzxWTwFRdKS9hlxO/YoPeVORO5RkBoh1XaJpIugXLSiQqHanCL9VM35fKr1wEOvfxJa5nXUXTmz0wEmGVWDsU/ptNDneNXr9YBnVCZ1xGE4HOLk5AQA3LndYaBtSIbsdDr45je/ibt37+KFF17AZz7zGXzlK18J3NPtdnHnzp1EdhfP9QLiwzWcuIR0QJGxdMgtTe417XzeF7VI6O+73S6+/e1vo1KpuG3B3/rWt3D//n13TVzasqbF2vMdh9Ib70O9Xg+E4BqNBjY2NlCpVHDr1i13OqpckI+Pj90ciMPh4SFarZbbUhsGCiXZ/9Pp+XHRpVIJzz33nDN56Oiz1jrtMA70d82atrw0ya73+crB5ESSzhyZHQU83C8MBM8CS3Iai5R2bDeKFskAUo385Cc/iRs3bmB7e9vZZWQYGeKJWpHlghAlNfi9ZHaZgktNwhe71u8UBmlHpr2eKi3fvVaruT6Q3vhZQoi+cZXt0Bmqow6U+gDcfnM6L32S3kcL1W0+M2pBlr4j/k8HMtOOqWVIja5YLF4SDGG0JNXSfLhyZp9Op5c2m8iMKyC4T5l2Os9MZ9aRTDOkA4apqWxDn5JJSEndbrcDDEQHINHv93F6ehowJd5//320Wi18/etfx927d/HKK6+41M1Wq+Uy7TiZptMpDg8Pvau3dAzpAffFpxmHpQOMkQ159lmcuhf3uc+21owq66/TV8Atp/fu3XMSsNFouPPsfcweptrzs263i7t37wYYWcfKefpqqVRCuVx2UtMY4zzsDI/eu3cPp6enznYnWPPfZ3qxveFweMlG9wkXOpZ5LNZ4PEaxWHRbarmpiPNT54MMh8NA6XLZ9jxe+qVIdl0In+EJQnpctZeV6ajSG8zDCmQ2HGOwcbujfCqRtHkZs2UYbTwe4+TkBOPxGO+++65L8uh0Ojg7O8ODBw9cDXHSwgUqjpaw2Lb8nj9sm4uZ9BFoZtdx3rReZ9knuh2dtkyzhP1aLpfR7XYDsWdNYxQ9PApJ9od8fwCBcFq9XneOOIZWrbW4du0aSqUSjo6O8ODBA+zs7GB7e9u1MRqNYktcazOEwkj2DRcVLTRyuRxarVbARme6cbPZDNjxXDiz9sovZSOMzoOXao/cs8xrpYRncgSvlyoiSyNJdVYOBHPXBT2XylixPb2pQtpjm5ubKJfLuH79OjY3N9Fut9FqtdBut11MvtlsYjqdumOdtVOSWoBEWDaa9GZrBpa17nQihrxffyYRFd7TkPn38lrSyHdnv+bzeXS7XfT7/cCGIWbkaWhJz5JgPnop4anplUolF7WpVqsYj8c4PT3FdDp1u+XYR1Tj2+02Dg8PA+9GOuSixfcMGyMyPennwiZNVilEJNNzQ5E8NEJrdFFHWmvYVTrFVavtdC7JzzVz6FNC2fFyACjx+bvRaAQcKjpBQztUGAsdDoeBM79pHsjJOp1Ocf/+fZycnKBWq2Fzc9NNPHqoR6ORO0Di9u3bl+qdaWb3qcqcOPI7yfRSmsvfPmaNssl9klw+T0cM9Hf8jEde0RFbKBSc/U5IKReXHs26crxmMnl4jDGlJxcD/m+tdc5abkph1twTTzwRkOjtdhsnJyeoVCq4fv260xgoXSWza08755o0MWQEie1wPrKfqK3K97LWukWwUqlgc3PTtTUejxMdrx2HpTC7L4FBJqP4Pg+Dz76UnSTtZG2/c7C06kbmltfHhYDYPk9HYft03Gn/Qbfb9b6LT2ICl8NEcY6aOGktvw+zmeXn2pxIg36/HxgHay3q9bo3207TwlNeJFNQUvoOWIyK8lh7foqMNKfG4zFu3LgBa23Aj6TTm/mZhlwcZKJXXO0CmplaG2MhSvleOkd/ViRidmPMFoAvAfgrACyA/xbAtwH8FoCPAPgOgJ+11h4naU/bPrTZdXKBlN5h8DktyKw6G853r/Yf0HGjVX6fOqnR7/dxeHjo3q1UKuHatWsoFArOgRcFPaBhlXZ8jiHfu2lw8iWN/0vIxThscQ1Dt9t1B14CcOG0yeT80MwoiaUZminL+Xz+kprNpKeod3rw4EFgju3v7+PZZ59Fq9XC66+/HhnWosZG0CkMXN7voXMzfG31er3A82q1GhqNhts+nLWJnXQ/+68B+PfW2hcAfA+AVwF8AcAfWWs/BuCPLv5PBamCa1uNKpFUh3RhhLCQjrwmbrGQz5NplHKVlnuSGeZicYuzszP0ej23a29nZwfNZtMxBqUaY+JJtj5KG133i3xX2oi+hKIwNT5t+EaGk3zONH7Pa+h9prOOceWNjQ23WNJZORwOAyGpODpkhqJ0SMoqQ/SxcIMM7Xn2ExdK0jsYDHBycoJ+v49Go+E2OcVBbljR800mOnE+6SjSdDq9lDxGTYeRBR2enhexDjpjTBPANwE8a8XFxphvA/gRa+0dY8xNAH9srX0+pq3Aw2gXsyMIrpiSUaVj7qKtgGPIJ+GT1qADEChgIFd+5jYz99tai6OjI1d9BHi4eYb26cnJCf7iL/4Cw+HQLVq7u7uoVqsuQSMKtGO1FJUSXb6zbzGIUtPTSHh9+IF+Dt9P02KMcdV/NjY2UK1WcXp66nYKcoyZMHNwcBB5XDHz3IFzO1uagltbW2g0Gm5xJANLRy13VXJO0R5nnzYaDTz99NOYTqd44403vGYWQSalnS37hXXr2Tfc1MVxkKFDzk9u8Wa/lctll9MvzcKkCHPQJZHszwJ4AOBfGWO+YYz5kjFmA8B1a+2di8bvALjmu9kY83ljzMvGmJc9RIWGXqT04rVpERfWSUOLXHg4qbiIkCk5gX0FMyjxktATRQvpmQdp+zKBQLh0HfuIE9VXiUjuAEtCU5gWo7VAn0aknZPy2vF47NJ7k1SqSTI+2pmqHahSI9W+FKnFZokkNnsBwPcC+IfW2q8ZY34NKVR2a+1LAF4CLkv2NAM9C3z10MJA22kRtEyn59VvZDZeFLIuR6SRZhFc5PFV4/EYR0dHAOLfWcbbs2YC4Nyv8OabbzppHQWZB7KI+UJHr8/5PA+SSPb3ALxnrf3axf+/g3Pmv3ehvuPi9/2Q+yMR1llxq6cPUeGmJHSE2aNJO50qJAsPyow+bWfOirR9sgqQOxL1zkVdhy2uHdl/0s+SVBLK/tN+HoZm02hfEtK/lLQN6RuS2sBSJLu19q4x5l1jzPPW2m8D+CyAb138fA7AFy9+f3leYpiUYe3D+CUrgUTQ55Jewpx9s4A7qZiSWigUYuutHR8f4/j4GJVKBR/96EcxGo3w1ltvJdrkEAXtsJPvGgU5qbNaIDSDAJfrBmq0Wi2cnp66WHa/3w9NTU1DR7PZRLlcRq/Xw8HBgTtDLQoM9cnEm3nr4dN5SM1tPB4n8sYzJbZUKqHZbCbK+JwHSePs/xDAbxpjSgD+EsA/wLlW8NvGmF8E8A6An5mXGE5iaZeFeY/5uVxhpYd0XnDhkXF4uYFG00LJcHx8jK2tLedgSeLZjYP2iMchzO+QJcNHOQA1LXR6MsMti/EhgzEdlxl63GQSRgt9LLLqbxagliG9/2EgfaRFnoy7SCy1brzn+4AEA5KfXsL7gWzsKLkPmRttmPHErCyCEoVbKUulEra3t52tnoXdq98tjUd90QijhWNH9ZthNlnHbh7oCIrM19DSWgoCesVlLcN5oedpVPuyfBhNG7lpZl6EeeNXitnXWGON+TFP6G2NNdb4EGDN7Gus8ZhgJQpOSiS1u332fZag/SeLMjB9UZ8FJmvZy8MPgGxsat+7hpWbkoUt4q6dlZakzkJmSHIrZ1pH46z0hTkos3Le+tqmN57vyt14TNSR0FmJWfqaorBSkp2pi9KDrTOMCG591AUCkoSkkqBcLmN7exsbGxuO2XhWu/aw8xw0buNkPn3cjr2k4CYcWR6J/aTbZ544+4WOxiyiAmxPZ8P5+p3pso1GI1AoNEta9NyQ6bsa8lCIsPvnoaNer7t9/MD5ppadnZ1LG3MYMeBBk7w/bpdcFlg5ye5LeIjDIqQFs6ToRZY54FF0cMCypEdLdJ1KrGng77RJHklpSTpGMn9+EVI9LCybBFlLU6nRcWEOW0x8Y3QVjvKVYnbGQbnSAfETdVHqPLOpyuWyO+AxbkONDtdlNYAy954HR8YxDfP0pWmRBWgeyASouH6XtGQdS9Y573FYBIOxqg0lPKvixCHr8F8cVorZlwkdh5U/aZJ1pATLihbgssazCimzSd8zK3U5K8w7PlKDI5PKaj1JtlUvo0+WarNzZVvUS6fp+Hq9fqk2fZbQe5fDkMvlLtl/WSONb4NbMRc1RkkqAAEPnWByv0GW8PmLwlAqlVzdgqz8D5qWLH0bxNIddKuy6sv9xZIeSne5YUHaoPraMKR5T10AQSLuGUmuS0NP3L4E3zXaPo8yOaL8D7PSHIcwepK2zYUhar7IvtHzRV8TtqEma75Yegad7gS9C0iGTKx9WLVTdphOpU0z6QmGiSg9eOKn3KPO8+f6/X7AxiJt3NkmB1KmjPLaJLTwuTw9RFYdlfayrMIrnYOyrr5OsQ2bZD6wL32bjLTmRFWWnmba99xfMC8tvEeq0HrcfQuPhK/yjw5NxtEinXDlchnWnhe4ZLlzViXiPgCOBXfUkQZWRNL9STqT9ovGymbQhUkHdooeQE50Y0xgQmuktctYUcQY46qNAMEqoxwMxlBZOkhWw/ENXtqYO2OzsqqJ7BPpmecPN3bwObpcEulJ6xHntT6TSH4nFyL2DSe0r19moUXntfvmjH6GjKKEOXvT0sJNT9zcwyo4wMNKsGRkVjiqVCpuw4ssTuFbePS7ZIWlOOh8K7AsD522LR98YRmfuiTjncDDE2uMMYEz45PEQWUUQbbn+04PdKFQQKPRCDyDBy7QpyDfI27hkBJL06IZRe8T5/36GkLnQcTBN66yXyR8Y6Tvlcdxye/i+iXMDPBt1fW1Va1WA3Hz6XTq6t9Xq9XA9tok/hb9XtTIuMjLz3Ui1yxYCWbXaq++Nkl7Er6CAPJZRC6Xc4UKiVarhW63i42NDZdQI58TF+7S7xVWtAEIVmdhHTRZJvng4MDRIg8uZMXVJD4C6b0PY/YkDCbNKF8CTZLwqG4LuNxnPmmnmZB9qh2evkUrCS063CufJWmRYVjgPDzLo6B3dnYCDBpHi29ukhZqj9I8yiKUuxRmj1Kl+L227SilpLNDt+dzbMhn6edOp1NX+VXSUavVHNNRLWPmExcIYx6eryb3u+viEtIe1Ha+BA9XkCp7oVBwp8+USqVAaWwWPGT7ZEJOCjKNlPBy8kSNhzSh9BjJ67X2RPVaerVJh2wvbKzDaNEx6LCFCAgXFlLLIUNJVV/3i0+NZiFLeQ3PYqe51e123flt/OER1kzS0v4pjh1/jAmeWZCVSr80Zg+zVQgtnSXzRE0W+V3cKm+tvVRFtNFoOCnKLLqzszOXK0/nS6lUcmd1aYaWUlWWp44asPF4HKitnsvlsLe359R3Y84rorbbbRSLRVeumuqdzNiS9rpP1U2iEup+lRJYLibSfubfMmzEPpELD9tLYo5oZjcmeL4av6d9TMdlmACQPh7SLccoCr1eL1B1SJ4iw35niXG5SDebTXS7XbTb7cCiJ/ezS7VfVqTNEiuTVKM9oT6pIle/uHZmBSU5wUoiMo+5Xq+7IgzMJiN8DpYZPapOoyCm06mrPU8VljYktQwypZTmWmLNgjBtjN+RaaSUogRLqmklpUNrHdp56Esp9s2reftlMpm4kmVsg1EbpljzQIxKpeJKiHNx4cIEBAt7LqogyUowexJJT2mhGX4Wr24Uer1eYFUtlUrOcUa6bty4ga2tLScNeL2c4POmqFprcXZ2FqgxX6/Xsb+/755VKpVw/fp15HI53Lt3D+12G4PBIKDK6lN25qEnynNszMNDHHTNf61xzAtf5RfJcPJ8ONJNe5h9k+QsgTiMRiN3KCRw/p57e3vY2dlx7767u4sXXngBR0dHODo6cpV15KLDAy0WjZVgdh/0yq1X7zDPahYMr6WP/GHJo8FggGKxiEajgX6/H3DyRYUEw0DJGOWQ9CXa8L5arRbwaxBcjJLQkiZHW/c/1WuZL6+lepwjL+w5cVmQOvONC45kdppXBMOlSSBLTUXlvMs+IJhnkMvlsL+/j263GyhyyT5K4oiWJsssWAqzxw2e9iSzE+mU8nW8nGBxkLZiXDjNWhuQ9MPhEO+88w7q9Tpu3ryJW7duueN25TVpGIf25tbWVmSKpA7nkLZyuYwnn3wSlUoFBwcHOD09ddd0u10cHh4mmiDdbjegakZBa1/Sj9Dv952PQl6TdFIDD+1ZnigTRYeOELASsFThS6VSYDzS1Hvj+e+1Ws29Yxgt9OcQvV4Pb7/9Nra3t/GjP/qjGAwG+NM//VPXz9baRKcEAed9cnJyMnO14pWV7IBfSksp60NUSCkMcROQk8SYh+e3MUOMKzntMO2NJ8KYTdqSPmmpr9ULiO9IYVk1VWbbsY2o5JKkCPOpAA8ZSUr2eTSusKhA3HX6O+1j8MW54+ALO2o/gFxERqMR2u22qzFAW13OF+2g842z79lpsbR02bgBJF3UApjVJg/po3rli6tHLQpR76ylhGRgqov0tG5vb6Ner7t68fSWM0wnael0OpH1ybWX2SexpDpKxuZ2Sqqt7BseKFkqlS4lgvCsOo2w7bC+hYh9S1rK5TJ2dnYAnOcqsGKLzBbzSfY4bYz9IuFLCpKRB/aNpJPPoImlHb1Rmpj29ks6ZH14+mrotGW/1Go11Ot1PP3005hMJnjvvffQ7/fRarUwHA5Rq9UCG7B6vV5oXf0kB43YkHTZpUl27ezR32lPtnSyyJxvyexygHU7aaHDTNLDTadXt9t16bTAw1M45YmvQHi9ef3O2pGmdz5RYkpm54LAPuE93W4XnU7HJQdpqavjuHG0RY0R/yez6BRZXyjM10bSftH0yP3+0pEKXA7hklm0nR+20Elop54Md9I/QBNG5j1w3jIBh47U09NTDIdDd2CFXJD0EdBZCOWlSPYwx5qWzLzWGONWUB4X5PPC816fc4ht6vf12aZSSsh7+BlPdSVTy40N9LSWSiWXTklVTUoSffoHJbmPXk5enShDyWGMCeRi++zX6XTqcgr0aSXtdvtSvoFvLHyfk255yio3hfjeg/+Hpcv60nbD1G0Z/fBFCnzaHZ/He6VE92l08l6Oub5Gtqe1GB5kwagOALeRigsPv2ccnxoDaZ1MJjg9PU0cVVk5ye6zreWECGNUqqm+TDp9re97zex6Msmz2fUz5GJijHEhE9rtWhIzKWc8HjvVnwizySS9nAzajpc08XspSbnY8HmU5DQxGo2GUxutPT+xJYrZ+Rz9uY8WSniGuXzjqRdQ/Vwf48p7ozz9Po1QPlMvumn8LJrZKYHZrlxI5DOpNUgN0FrrFmp+NhgM0Gq1UK/XsbOz49rh2M0bQl2pdFnfd0nU36hNHHH2TVQuts7ciosijEajS55SMpVWnX2qqW8B8L1HEkeNPLaKYJpvp9MJMLcvW0tLRG3fSvqSRDT0OPhSVHmt/l/3i0+rSwpfrN833j5adH9SA4ybgz5Ya10YTt5Db//x8XFgIciitNjK2OxhgzcLs1OiJIl1++7N5/OX7LMkk5orMJ9ZKBSwvb2NfD7vHHhR8OWAS/Vd0hwXGuN54wRDYwBwdnYWKyV0v0k1NWwRCINmMDrdaPrE0aFpoZPMN75x9Pj6OGl9PGpq8j3C5lqcYCCzyznRaDTQbDadgy5rE3tlQm9h0l7aVjLnW9tLWoXTNmIcfOooQaajqkZG0rZrLne+SUY6WHjgINVHn8T10RJGt/Q401YHHjqpeA0nojR9WACD5oZ2AsXR4lugZSRAF2eQtqseo7Cxi6OFc8HXPz6NzmevhzkWZX/FQarq8jefIT33TGWmJsA9FtwHz++l07dWqwUKXmSBpVaqiZLonLB0VPDcc9/97HjNRFIyxg0gmVHa7GyDzEEbuNPpBKRArVZzGWyFQgGDwSAQOsnlctja2nKbZ7R9rCEXOL3okE5Kxl6vF6CXmgn7RR9ymM/nXe20VqsVq22EVfnlZGad+tFohFardUkb0gu2/l6q0FFzMepaaStzvH0SXM4133wjc8ZtFIrSTNj3LGwyHA5dBiPv29vbQ7FYdD6Zs7MzZ/4ZY1CpVLC1tYXxeIyjo6PUab0r56AjZrG7NLRTZ5b2k6zoUXaiXNl9TkFqAkmkhpYWUbSkBSdo0jz1JLQkoSfKkZoEPudbXPtpELYIhCGq78KcwmGaiHZe0lxIm3Idh6Uy+6K1ijQ5xIus222tdRVnki48i+qb6fRhjfMk/TNrHnZSpOn3RY9RitDWQmkZDAaOliz7f+k16LKAttGzQpi9GkUHpaYOw0lbNgta0iwaYdJjVqTtF14r780aV2mORiHN2Egvu86PSKp5pcHS1XgNGcqgJIzzauqkiHmYStKhC0/EtTkYDNDr9VAoFNBsNmGtxenp6dxhE9LCeK2O9/og00JZ/DEqXTcpOCnpvU7ijZd7C9inWUhG7XBLqzXNagr5oIt1JEhpRafTwWAwQKVSwfb2Nrrdbqw/Zx48EpI9akCkpIuLbaaFT5qG2escZOaEJylQmYaOpLToa+R7ZNE3PlqSSKFFS/YkWLT01w7AsLnC/pK5FzpXfyH0JQx5/GMA/x0AC+C/APgHAGoAfgvARwB8B8DPWmuPY9pJ3dthnumQ9gFkN6gyLCRjqrrElJS8smAg7cAsHJAEaZG57r5rNX1AdsdHy0ktIwNJbN6sx+iq20/63LBIkIwwMfRJk497CuZFmDc+ltmNMbcA/CcAL1pre8aY3wbwBwBeBHBkrf2iMeYLALattb8S09ZqGFZrrPEhRhizJ9UbCgCqxpgCziX6BwB+CsCvX3z/6wD+9pw0rrHGGgtELLNba98H8M8AvAPgDoBTa+1/BHDdWnvn4po7AK757jfGfN4Y87Ix5uXsyF5jjTXSIpbZjTHbOJfizwB4AsCGMeYXkj7AWvuStfb7rbXfn+R67WSLcrrF5R9fFWSWmPwsK9p0+zJDSz+jVqthe3vbnU5SLBaxubmJer2eiQNI+i7iUCgUAttpmUGWlSOKvhLZL2GOUW41lbRk6UT10eKbnxw7SQvvXbSDLknrfwPAW9baB9baEYDfBfDXANwzxtwEgIvf9+clJoxpfJ0mc8T1tVkhKcP6Jk6W3lU9GbiPXW6RJFiBltVpyuUydnd3sbW1lQk9TJPV/e7rJzIY01DpuIwq2jgPLWEMbMx5pSN5+o9MPc6SFpm662uf6bA8cITXJjnOe14kaf0dAJ82xtTM+Zt8FsCrAH4PwOcurvkcgC/PS4wOF8Uxmi+klLUXNm172ludFQ2yX6ImBZ9fKpVcyaputxt7XFRS6GIPSSao1AbmqY7qo0XuP0hKS5b5GJqWMOEURoeMqiw6ghC7xFprv2aM+R0AfwpgDOAbAF4CUAfw28aYX8T5gvAzWRCkd27FQcd9s4SODScJ/YXtb54HsmAHwzRxCSGsa9bpdPDgwYPMJjZpkaevxCUNyVN3s0jsIZg4JEtYx4HJL7q+wDJoYb+w+tKikUifstb+UwD/VH08wLmU/1AgTTx/FnBRSrIIZLF4SdVWvxNtfb3Dz4ewXW9sOymNYQt3VPsacfkCSeiJEiBp+j2LMYrSXrPM7iOWmkGnnRpZI6lKBcBVAc3KntTgme5xRSeAy46tLJHP57G9vY39/f1Amaywa+v1OhqNRiK6Z6FlY2MD9Xo9tv1c7rxir3RsZQljjDuIMW6+MAU5ybWz0qILYmaBlciNn3UVy9IuJuTikFXbs6arhl3vSxGWBS2Ah9VSdTVUOo3SRAtk+7riKWmQfaXb9qWPzurAZNvymbpt/XxZaCJszug2k9Dhe3c+R14nfyelZRFYavGKi88CHa1TC/Ug+Jxxvvpf+po4kAHoLR4Oh5fsS70I6AnrS43k6q9LK0eB7yydWnIziayaQ+2IhwmSmdvtNk5OTly+frFYxPb2NowxaLfbzmZNUtSDHuRcLoder+f6RS4C3BtA56DsF+4X4LvL0sny9Jwkarx8d+75Ji2UhnIRkvX0mdIrnyXTfSWNcZDVgPiOfCaAAC30ceja/poWtif5YEYhuLrFK8JWVdl58re0fcM6I622IKu4pvHsxnneOSmS2Me+RconTaXDjpOKKq6s3c4qNJxEPJZIn1QbhfF47N7BV5lV0i0XKVbJYd/4qv+QyWXl2qgx0553n/Yg6ZHVZ3RJM4ILVtKFWNIi50nYPJALoqydJ+mR12YdyQnQsgzJHrV3V6swvv+10ylskfAdsiA9sFJiyWu4mcVXFloOBN9DShK9SPC9tG9Ce2BpH8v7e72eq3DjU+1oO/KcOMnsui69rH6iJbqv/JWO4fMazfA0F8i4sk9l3TXdlk8LsNYGNAfgof9CalXyHDndL3JO8D2Ay9qFvN4X7pWSXo6R75imMFpkW7KsGbUZvaHKp/4TaTbIrJRk15IzilnSeEZ1e75935rZWfyP6Ha7GI1GzgFDkEmi6JGrN4DAgOpkEh2yogNKHj3MwwR8hTCiJgaAS87A4XDo9tbLxdZnd+okj+l06soeM1GGkId2hEGPw3A4dIchMBeAtGjTiQua9EWwHqFMkgFwydzx9Y+eXywgoceOz9L9op9Hen1aTxKzRF4jF0E93ll455ci2aNWQWn/yc/lqivtHrkqy2N6gcsLBZlPPlNOJPk8eUAiJTq/o2QMG2DSAiDUDtSlqnO588q0OjON3+VyOVeXXqqG5XIZxWIRN2/eRK1WQ7vddieLdLtd12+TycSdTqPhc57pRZK00C8gmZzbe3kaDt+D7061tVgsolKpBA5X0HQMBoNLGk8YLbpirxYiUrJz4ZSSmOp7mEkYx+ySHhm/lyq+NG3K5TKsPS8hrWnx+aw0LUmxUpJdE+4LM2j1V9pG8jcQVNvlYPf7/cjECU4uCX3IHu3bXO782CcyjvQ18IdOL3l8DxcvngEW1SedTsf9b4wJ5LjzGjmppbOu2Wyi0Wi42vX9fh8nJycBRx+vj3OGUXpKWmq1mmM6MjaPi65UKoGJSk2E785r5SJVLBYxHo9xfHwcqaL6FkUdqpNn7JFG2Tf8n7RTW5KMqAVBWL/oU3O1Gch2KHikvS5P12V/6Xkk6yJkjaU76AB/AT8OpvR6ypWS6g7vB3BJnZwli007r6bTaYBxOfElbVQFpcdVn3WWlhYuRNq23tjYcP3B89UqlQo2NzfRbDZx7949Z4roMI/+Ow0tPgcjTQVKJzLhxsYG8vk82u02hsOhs//pzSdmSRHl4qE1IGocXPQZjyfz8HrZJ3LOzej1vjTnpK9I01IsFi8tXD4H5qK07ZVg9qiQFf/nxJKnY8pVdjI5Pzd93jRVHXIrFouOwYDzAdrY2Ais0izszxV8PB67WuHzQEp6ANjY2MDm5qajpVgsYnd3F9VqFdeuXUOz2cSrr76K4+NjR6tvIZ0FWgPixhIAzqTZ2dlBuVx2STh37txxtnW1WkW328XZ2dlc/UItSaJarQaOpeZx2nIh5kk9lLRZpKj6fAzS7wLA7VHgIiMXYf7W2suicOXMbsz5eVYMA/mgnTLGGLc6ylCWnICcBEmYfTQa4ezszE3SKOeSzqoibTL/WW/u4PFRSSa19kzH0SK9+qVSye1w4wkv5XLZHfMEwC2KSWghA1AKRdFCBuY15XIZW1tb7tRY0qsPs0xapksyYxQdhC/kRckKBE9o4fVJBYPPW++DVMcJmRfAtpLmzvswjzC7cmYvFov42Mc+hr29vdBr8vl8YCJJyS6L9WlmTzqpj46O8M1vfhOj0Sg2RZYJIFqy0zYkY8hJPRqNApI/CsPhEJ1OxyW9RNGiJ2yz2cQnP/lJNJtNvPPOOzg5OUGz2cRzzz3nrul2uzg9PU3UL0zEKZVK2NnZiUzXZJorUavVcOvWLae+j0ajS2m2tO+T4PT0FGdnZwHzKQpSSut4PG1rrW4nZRwu3HFVfWleyXemU5KgmSN9SbJOfBxkIlFaXDmz086RjOqLw+pVkllIktmpQtHu0dI0bDCl6qVXeN/E0ufBS+lELUOaIpTU+p18DCdtaW3O+CCdkXzWeDxGt9t1nnhOfD5Th3jCtA5NC+FjOGaASacfvfH0GTC2zcmpJynHLYoW3/+6b0mvdsKxr+T7yuf5Iilxi2JcyJPzUNPC95djrOddWlrS4spDbwzNSAnFTSKEDHexE+hpJ70y9CZjk3IAwrLWxuOx29+tJ7GOr8uQknTUAQ8Hj57W0WjkPPdSklhrXYKMhpyomn79P68tl8vY2dlBvV7HRz/6URSLRbzxxhs4OTlxSSlcBEqlUsDnMJlMcHp66qVFmhRyfHK58zPd5Rj1+330+30Ui0XUajVvaIn093o99Pt9lyAjn6fPqiPC9r1rf468lpoP7WQAbh5xLjBGr+cc50SaLEffmHFe0rdUrVbRaDTcs7lIyt+cP5KWMC01Cb+uTOiNk0F2kO54OttkWEKGctiOlOi+SZCkNK+UCPxfZvPRztSahpxAPIRhNBphOBwGbDJJY5THle35aOOCRGaUMfyzszN3SGO73XYqIW1ea60LD5EO7RDSUkR7mflcqeEw5s9sw1wu5zLDyDTlchn5fB6DwcCdRqrTV/WCPKtXnA5S/s13lyfV8jv2oZxP0mSMoiVK45DvJRdXMjVp4Y9cpHR7ejyywFKSavQ2RQ6OVJVlDBLw70bTtMuML5/U1vFLSmtfuqwsQsB75CIAPNQcuBBJZwxDUlzNddkhagES2kYmEzYaDedtpu3Ick/0iD948ADdbhfD4fBSZh5r2LOPdWyYlWwIHYEg00wmE1QqFZRKpYADjeNEM4uOUhlv56LF+ug8+UQv0DqphvdIcDyktqcFA7WMsCOPZf4+Q3nakcZEHIJty/HRC7JcPKQ/ZzK5fPyyNCdk5IDvLBfbJJuWRLurIdnZCVJtkccx+zLIJHy2jBwguVDojKqwQZcDSG1ADiwZVyfTEFyptbdcSi5muhFa4/B5ekmvzKsmmP1FKcrJwD6QC51UGxkPpyZFhtC0yEVwOp06O1zGkBk3ppnD9qTkstaiXC4HNDdteskx8lWyCbNnfV5yOQfkD7+XiVekg+8lF0FqCprZfWMkzU2fcJJ0SAGm6ZZmlC5emUVVnaVIdh3ukqpzmCNGrpx6dQxjfv23djz5aOE9vnb15KIaJmnUUkiq4BJcxfVzJS3ctqrVbobXZMrn6elpQIUP6xfa45rB5GRimqmvH305EVKiUiJKjUfez795rd4MotV66SPRz9TvyP5gBqNUnfViENbnhDTToq7V2iZBIcIz7KVkj+tLHy1pEpBWRrIDCJ3kUcwVBZ86L5kxDS0y91uvpnGVQ7SZwBTbXC7nNpLEvYd852q1ilqthpOTE7RarQDNcaWhpfnB9ihd4xJ+qDHIexuNBgqFgjuMkJBZg2HQvpNSqYRareZU/ii/Sth7GGMC9jgR1SekRd5Df5H0E0XRohcKbTompQO47ISk6Sg32GSJlSheQfgkkU8Nl6q0HACfWsfP495T5o8DQcbl5zr9VDOnj37tCIpzGhpjXJIMF61ut4t+v++YpFQquVNiO52O8yTLkJ900EmbWvZJWDhQ0kJ1nv1Cn4CMYdMnQOmjt6DyGXyeNEtIn49xNS3aB6M3kkivNp/FBVYKAG3q+XYjxs0Xzcyknc/hLkdpUsjjmSWNkhZqPKRllpj6Skl2IkwdA3BJ/fOpMVKF1Ewvbfa4SQ083LyhHVySybXzUEJrIXISU0oXi0XHlGGQYa6Dg4NAymylUsHu7q5j3MFggOPj44CkrVQqzjcg7UBOYrkAxSUhMXRkjHGJMvI7udnDt5ONDECVlqbLZDJBt9tFoVBAo9FIpIWRmQFceg6ZhCrzaDS6JKXZJ3J3Gp85HA5dIlcSlVmbIRJ8VzI7j/GW93JB8NFC84dmSJK5mxRLZXYtkRfRftLOCtuKSsSZEnF0aI9+1LXcIZckd9tHr3Ts+K6Xjry4trlYJfUEp4HMYUjSL1lOfF/7Yb4OHxZNC5k/y2csfSPMIs2IpAMHXLbds0bSMlDT6RQnJycAFtc3Sd+VXvhFYTo939brM4E0rE12JPQ8tOgNNlG0LHLjChfBrLF0Zg+D9FomuRbw281Z0XKV0M+jLZrL5VwmWhIHkM4LyOI9tF8jCR1SKvtomZWutH4Zfd0i+iWNBhLn88kaS60b74PutDhIB4gvTDMPHXTa6RBJHD3SgZgF6vU6bty4gWKxiPv37+Po6CiWHplF5isOMitkyqv2b0TRQqmsy4DNA9rGNDeSSFvG1bOmhf4CaiBxtNBskH6UrGgJw8oxu0ZcKOQq6bhqCa9BpmFY0Oc11pLlKsykOEl2FbSw/TB/hI6eLJKGqH7xOZKval4tPfSW8L6lMxrpAK5eracar/ebA5c909Ru5ERblLqqNZgk2k/WtMi2+O4+rdD33EXSIsOOcbRkPa/CQm+PBLOvscYayRHG7Cuvxq+xxhrZYM3sa6zxmGDN7Gus8ZhgzexrrPGYYM3sa6zxmGDN7Gus8ZhgzexrrPGYYM3sa6zxmGDN7Gus8Zjgqne9HQDoXPx+VLCHR4feR4lW4NGi91Gh9emwL640XRYAjDEvW2u//0ofOgceJXofJVqBR4veR4nWMKzV+DXWeEywZvY11nhMsAxmf2kJz5wHjxK9jxKtwKNF76NEqxdXbrOvscYay8FajV9jjccEa2ZfY43HBFfG7MaYv2mM+bYx5g1jzBeu6rlJYYx50hjzVWPMq8aYV4wxv3zx+Y4x5g+NMa9f/N5eNq2EMSZvjPmGMeb3L/5fZVq3jDG/Y4z5i4s+/qurSq8x5h9fzIE/N8b8v8aYyqrSmgZXwuzGmDyA/wvAjwN4EcDfNca8eBXPToExgP/JWvvdAD4N4JcuaPwCgD+y1n4MwB9d/L8q+GUAr4r/V5nWXwPw7621LwD4HpzTvXL0GmNuAfgfAHy/tfavAMgD+DtYQVpTQ1a4XNQPgL8K4D+I/38VwK9exbPnoPnLAH4MwLcB3Lz47CaAby+btgtabuN80v11AL9/8dmq0toE8BYuHMLi85WjF8AtAO8C2MF5hunvA/ivV5HWtD9XpcazA4n3Lj5bSRhjPgLgUwC+BuC6tfYOAFz8vrZE0iT+BYB/AkCWLl1VWp8F8ADAv7owO75kjNnACtJrrX0fwD8D8A6AOwBOrbX/EStIa1pcFbP7ql2uZMzPGFMH8O8A/CNr7dmy6fHBGPOTAO5ba/9k2bQkRAHA9wL4v621n8L5/oiVVIMvbPGfAvAMgCcAbBhjfmG5VGWDq2L29wA8Kf6/DeCDK3p2Yhhjijhn9N+01v7uxcf3jDE3L76/CeD+sugT+CEAf8sY8x0A/xbAXzfG/BusJq3A+fi/Z6392sX/v4Nz5l9Fev8GgLestQ+stSMAvwvgr2E1aU2Fq2L2rwP4mDHmGWNMCecOj9+7omcngjmv1P8vAbxqrf3n4qvfA/C5i78/h3Nbfqmw1v6qtfa2tfYjOO/Lr1hrfwErSCsAWGvvAnjXGPP8xUefBfAtrCa97wD4tDGmdjEnPotzZ+Iq0poOV+j4+AkArwF4E8D/umxnhYe+/wrnpsWfAfjPFz8/AWAX546w1y9+7yybVkX3j+Chg25laQXwSQAvX/Tv/wdge1XpBfC/AfgLAH8O4F8DKK8qrWl+1umya6zxmGCdQbfGGo8J1sy+xhqPCdbMvsYajwnWzL7GGo8J1sy+xhqPCdbMvsYajwnWzL7GGo8J/n/RLcUQNUuBlAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# run HOG using our grayscale bombus image\n", "hog_features, hog_image = hog(img,\n", " visualize=True,\n", " block_norm='L2-Hys',\n", " pixels_per_cell=(16, 16))\n", "\n", "# show our hog_image with a gray colormap\n", "plt.imshow(hog_image, cmap=mpl.cm.gray);" ] }, { "cell_type": "markdown", "id": "254bf8a8", "metadata": {}, "source": [ "### Two features: HOG + Pixel intensities" ] }, { "cell_type": "code", "execution_count": 11, "id": "98e73cf0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(31296,) [2.25000000e+02 2.26000000e+02 2.29000000e+02 ... 5.19654416e-02\n", " 4.27715697e-02 6.05196450e-02]\n" ] } ], "source": [ "def create_features(img):\n", " # flatten three channel color image\n", " color_features = img.flatten()\n", " # convert image to grayscale\n", " gray_image = rgb2gray(img)\n", " # get HOG features from grayscale image\n", " hog_features = hog(gray_image, block_norm='L2-Hys', pixels_per_cell=(16, 16))\n", " # combine color and hog features into a single array\n", " flat_features = np.hstack((color_features, hog_features))\n", " return flat_features\n", "\n", "bombus_features = create_features(img)\n", "\n", "# print shape of bombus_features\n", "print(bombus_features.shape, type(bombus_features), bombus_features)" ] }, { "cell_type": "code", "execution_count": 12, "id": "ce7e95da", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--> Size of the features matrix: \u001b[1;33;40m(1028, 31296)\u001b[m!\n" ] } ], "source": [ "def create_feature_matrix(label_dataframe):\n", " features_list = []\n", " \n", " for img_id in label_dataframe.index:\n", " # load image\n", " imgi = get_image(img_id)\n", " # get features for image\n", " image_features = create_features(imgi)\n", " features_list.append(image_features)\n", " \n", " # convert list of arrays into a matrix\n", " feature_matrix = np.array(features_list)\n", " return feature_matrix\n", "\n", "# run create_feature_matrix on our dataframe of images\n", "feature_matrix = create_feature_matrix(data2)\n", "print(f'--> Size of the features matrix: {HIGHLIGHT_ON}{feature_matrix.shape}{HIGHLIGHT_OFF}')" ] }, { "cell_type": "code", "execution_count": 13, "id": "5c95b51f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(100, 100, 3)\n" ] } ], "source": [ "img = get_image('032_499.png')\n", "print(img.shape)" ] }, { "cell_type": "markdown", "id": "3b11439c", "metadata": {}, "source": [ "### Splitting data: 70% training, 30% testing" ] }, { "cell_type": "code", "execution_count": 14, "id": "e8489873", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 369\n", "1 350\n", "Name: subspecies, dtype: int64\n", "0 158\n", "1 151\n", "Name: subspecies, dtype: int64\n" ] } ], "source": [ "# split the data into training and test sets\n", "X_train, X_test, y_train, y_test = train_test_split(feature_matrix,\n", " data2.subspecies,\n", " test_size=.3,\n", " stratify=data2.subspecies,\n", " random_state=1234123)\n", "\n", "# look at the distribution of labels in the train set\n", "print(pd.Series(y_train).value_counts())\n", "print(pd.Series(y_test).value_counts())" ] }, { "cell_type": "markdown", "id": "c9a9ada4", "metadata": {}, "source": [ "### Normalization" ] }, { "cell_type": "code", "execution_count": 15, "id": "98d7c5f3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training features matrix shape is: (719, 31296)\n", "Standardized training features matrix shape is: (719, 31296)\n", "Standardized test features matrix shape is: (309, 31296)\n" ] } ], "source": [ "# get shape of our training features\n", "print('Training features matrix shape is: ', X_train.shape)\n", "\n", "# define standard scaler\n", "ss = StandardScaler()\n", "\n", "# fit the scaler and transform the training features\n", "train_stand = ss.fit_transform(X_train)\n", "\n", "# transform the test features\n", "test_stand = ss.transform(X_test)\n", "\n", "# look at the new shape of the standardized feature matrices\n", "print('Standardized training features matrix shape is: ', train_stand.shape)\n", "print('Standardized test features matrix shape is: ', test_stand.shape)" ] }, { "cell_type": "markdown", "id": "c4b667d4", "metadata": {}, "source": [ "## Principal Component Analysis" ] }, { "cell_type": "code", "execution_count": 16, "id": "47b1ce29", "metadata": {}, "outputs": [], "source": [ "# PCA\n", "n_components = 300\n", "pca = PCA(n_components=n_components)" ] }, { "cell_type": "markdown", "id": "4b6afdf3", "metadata": {}, "source": [ "### Analysis of the number of components" ] }, { "cell_type": "code", "execution_count": 17, "id": "53f5826a", "metadata": {}, "outputs": [ { "data": { "image/png": "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Is1LnDWoAcBad3/H3T8DpgPnJm7g7n9294/D2cVA5xjjERGRZiTOBNUJeC9hvjpclsq3gedijEdERJqRKONBHahkHcom7cPPzIYRJKjBKdaPBcYCdO3ataniExGRHBZnDaoa6JIw3xnYWH8jMysD7gfOdfdtyQ7k7lPcvdzdyzt06BBLsCIiklviTFBLgO5m1s3MDiUYX2qfkXjNrCvwJPBP7v5WjLGIiEgzE9slPnevMbMJwAtAETDV3VeZ2XXh+grgVqAd8GszA6hx9/K4YhIRkeYjzntQuPtsYHa9ZRUJ09cA18QZg4iINE/qSUJERHKSEpSIiOQkJSgREclJsd6DEpH9ff7551RXV/Ppp59mOxSRjCouLqZz5860bNky0vZKUCIZVl1dTevWrSkpKSFsvSqS99ydbdu2UV1dTbdu3SLto0t8Ihn26aef0q5dOyUnKShmRrt27Rp15UAJSiQLlJykEDX2514JSkREcpISlEgB+uCDDxgzZgzHHXccpaWlnHXWWbz1Vry9jQ0dOpTKysq029x7773s3r27bv6ss87ir3/9a6xxNUaUMlxzzTVUVVU1yeeVlJSwdevWJjlWoqaMMU5qJCFSYNyd8847jyuuuILp06cDsHz5cj788EOOP/74rMZ27733ctlll3HEEUcAMHv27Ab2yD33339/tkNI64svvsj5GGupBiWSRbc9s4rR/72oSV+3PbMq7WfOmzePli1bct1119Ut69OnD6eccgrz58/nnHPOqVs+YcIEpk2bBgT/zf/4xz9m0KBBlJeXs2zZMs444wyOO+44KiqCHszS7Z/o+uuvp7y8nJ49ezJx4kQAJk+ezMaNGxk2bBjDhg2r+8ytW7dy00038etf/7pu/0mTJnHPPfcAcNddd9G/f3/KysrqjlXfnDlzGDRoEP369ePCCy9k165dvPvuu3Tv3p2tW7eyd+9eTjnlFObMmcP69evp0aMHV1xxBWVlZYwaNWqfWl26MsC+taxWrVrxk5/8hN69ezNw4EA+/PBDALZs2cIFF1xA//796d+/PwsXLgRg27ZtnH766fTt25dx48bhvv8IRffddx8/+tGP6uanTZvGDTfcAMC3vvUtTjrpJHr27MmUKX8foLxVq1bceuutnHzyySxatGifGFOVo6SkhIkTJ9KvXz969erF6tWrAdi1axdXXXUVvXr1oqysjJkzZ6b8jg+WEpRIgVm5ciUnnXTSAe3bpUsXFi1axCmnnMKVV17JE088weLFi7n11lsbdZyf//znVFZWsmLFChYsWMCKFSv4zne+Q8eOHZk3bx7z5s3bZ/sxY8bw2GOP1c3PmDGDCy+8kDlz5vD222/z6quvsnz5cpYuXcrLL7+8z75bt27lzjvvZO7cuSxbtozy8nJ+8YtfcMwxx3DTTTdx3XXXcc8991BaWsrpp58OwJo1axg7diwrVqygTZs2+yTHdGWo75NPPmHgwIG8/vrrDBkyhN/85jcA3HjjjXzve99jyZIlzJw5k2uuCbokve222xg8eDCvvfYaI0eOZMOGDfsdc9SoUTz55JN184899hijR48GYOrUqSxdupTKykomT57Mtm3b6uI48cQTeeWVVxg8eN9h99KVo3379ixbtozrr7+eu+++G4A77riDI488kjfeeIMVK1YwfPjwlN/xwdIlPpEsmvjNntkOoVFGjhwJQK9evdi1axetW7emdevWFBcXN+pe0YwZM5gyZQo1NTVs2rSJqqoqysrKUm7ft29fNm/ezMaNG9myZQtt27ala9euTJ48mTlz5tC3b18g+O/+7bffZsiQIXX7Ll68mKqqKr72ta8B8NlnnzFo0CAguBfz+OOPU1FRwfLly+v26dKlS932l112GZMnT+YHP/hBo8tw6KGH1tUoTzrpJF588UUA5s6du889oB07drBz505efvnluuRz9tln07Zt2/2+iw4dOnDssceyePFiunfvzpo1a+pinTx5Mk899RQA7733Hm+//Tbt2rWjqKiICy64oNHn4vzzz6+LvTauuXPn1l0aBmjbti3PPvtsyu/4YChBiRSYnj178sQTTyRdd8ghh7B37966+frPrBx22GEAtGjRom66dr6mpqbB/QHWrVvH3XffzZIlS2jbti1XXnllpGdjRo0axRNPPFHXwAOC+2m33HIL48aNS7mfu3Paaafx6KOP7rdu9+7dVFdXA9QlXNi/OXT9+ahlaNmyZd2+RUVF1NTUALB3714WLVrE4Ycfvt8+UZpijx49mhkzZtCjRw/OO+88zIz58+czd+5cFi1axBFHHMHQoUPrYiouLqaoqGi/4zRUjtpznBi7u+8XY7rv+GDoEp9IgRk+fDh79uypu9wEsGTJEhYsWMAxxxxDVVUVe/bsYfv27bz00kuNOnaU/Xfs2MGXvvQljjzySD788EOee+65unWtW7dm586dSY89ZswYpk+fzhNPPMGoUaMAOOOMM5g6dWrd/Y7333+fzZs377PfwIEDWbhwIWvXrgWCpFTbYvGmm27i0ksv5fbbb+faa6+t22fDhg0sWrQIgEcffXS/y2LpyhDF6aefzi9/+cu6+dra25AhQ3j44YcBeO655/j444+T7n/++efz+9//nkcffbTu8t727dtp27YtRxxxBKtXr2bx4sUNxnEg5agf+8cff5z2Oz4YSlAiBcbMeOqpp3jxxRc57rjj6NmzJ5MmTaJjx4506dKFiy66iLKyMi699NK6S2dRRdm/d+/e9O3bl549e3L11VfXXRYCGDt2LGeeeWZdI4lEPXv2ZOfOnXTq1Imjjz4aCP5YXnLJJQwaNIhevXoxatSo/RJchw4dmDZtGhdffDFlZWUMHDiQ1atXs2DBApYsWVKXpA499FAeeOABAE444QQefPBBysrK+Oijj7j++usjlyGKyZMnU1lZSVlZGaWlpXWNTCZOnMjLL79Mv379mDNnDl27dk26f9u2bSktLeXdd99lwIABAIwYMYKamhrKysr42c9+xsCBAxuM40DK8dOf/pSPP/6YE088kd69ezNv3ryU3/HBsmStRHJZeXm5N/QcQkP+48W3+N5p2W1OK4XrzTff5IQTTsh2GJLC+vXrOeecc1i5cmW2Q8lLyX7+zWxpstHUVYMSEZGcpAQlIpKgpKREtaccoQQlIiI5SQlKRERykhKUiIjkJCUoERHJSQXbk4Samkuu+I8Xm3aYiyg/161atWpUZ57z58/n7rvv5tlnn2XWrFlUVVVx8803p9z+1ltvZciQIXzjG99IeZwDUVJSQmVlJe3btz+g/RsydOhQ7r77bsrL92vxXOeaa67h+9//PqWlpQf9eXGVpyljzKaCTVAicmBGjhxZ1ydfKrfffnuGosm8XB+qojkNp9EQXeITKWDz589n6NChjBo1ih49enDppZfWDfHw/PPP06NHDwYPHrxP79nTpk1jwoQJbN++nZKSkrq+93bv3k2XLl34/PPP63o6T3ecSZMm1fWQDXDiiSeyfv16IPWwEaloOI3mOZxGQ5SgRArca6+9xr333ktVVRXvvPMOCxcu5NNPP+Xaa6/lmWee4Y9//CMffPDBfvsdeeSR9O7dmwUL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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "--> Explained variance with [300 components]: \u001b[1;33;40m0.9721\u001b[m!\n" ] } ], "source": [ "data_std = ss.fit_transform(feature_matrix)\n", "\n", "X_train_pca = pca.fit_transform(data_std)\n", "#\n", "# Determine explained variance using explained_variance_ration_ attribute\n", "#\n", "exp_var_pca = pca.explained_variance_ratio_\n", "#\n", "# Cumulative sum of eigenvalues; This will be used to create step plot\n", "# for visualizing the variance explained by each principal component.\n", "#\n", "cum_sum_eigenvalues = np.cumsum(exp_var_pca)\n", "#\n", "# Create the visualization plot\n", "#\n", "plt.bar(range(0,len(exp_var_pca)), exp_var_pca, alpha=0.5, align='center', label='Individual explained variance')\n", "plt.step(range(0,len(cum_sum_eigenvalues)), cum_sum_eigenvalues, where='mid',label='Cumulative explained variance')\n", "plt.ylabel('Explained variance ratio')\n", "plt.xlabel('Principal component index')\n", "plt.legend(loc='best')\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "print(f'--> Explained variance with [{n_components} components]: {HIGHLIGHT_ON}{np.max(cum_sum_eigenvalues):.4f}{HIGHLIGHT_OFF}')" ] }, { "cell_type": "code", "execution_count": 18, "id": "61d5b661", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training features matrix is: (719, 300)\n", "Test features matrix is: (309, 300)\n" ] } ], "source": [ "pca = PCA(n_components=n_components)\n", "\n", "# use fit_transform on our standardized training features\n", "X_train = pca.fit_transform(train_stand)\n", "\n", "# use transform on our standardized test features\n", "X_test = pca.transform(test_stand)\n", "\n", "# look at new shape\n", "print('Training features matrix is: ', X_train.shape)\n", "print('Test features matrix is: ', X_test.shape)" ] }, { "cell_type": "markdown", "id": "c8ee1bf7", "metadata": {}, "source": [ "## Classifier: Support Vector Machine (SVM)" ] }, { "cell_type": "code", "execution_count": 19, "id": "add49249", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--> Model accuracy \u001b[1;33;40m0.9871\u001b[m!\n" ] } ], "source": [ "# define support vector classifier\n", "svm = SVC(kernel='linear', probability=True, random_state=42)\n", "\n", "# fit model\n", "svm.fit(X_train, y_train)\n", "\n", "# generate predictions\n", "y_pred = svm.predict(X_test)\n", "\n", "# calculate accuracy\n", "accuracy = accuracy_score(y_test, y_pred)\n", "print(f'--> Model accuracy {HIGHLIGHT_ON}{accuracy:.4f}{HIGHLIGHT_OFF}')" ] }, { "cell_type": "markdown", "id": "bede0210", "metadata": {}, "source": [ "### Prediction on Test set" ] }, { "cell_type": "code", "execution_count": 20, "id": "2ea5c191", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# predict probabilities for X_test using predict_proba\n", "probabilities = svm.predict_proba(X_test)\n", "\n", "# select the probabilities for label 1.0\n", "y_proba = probabilities[:,1]\n", "\n", "# calculate false positive rate and true positive rate at different thresholds\n", "false_positive_rate, true_positive_rate, thresholds = roc_curve(y_test, y_proba, pos_label=1)\n", "\n", "# calculate AUC\n", "roc_auc = auc(false_positive_rate, true_positive_rate)\n", "\n", "plt.title('Receiver Operating Characteristic')\n", "# plot the false positive rate on the x axis and the true positive rate on the y axis\n", "roc_plot = plt.plot(false_positive_rate,\n", " true_positive_rate,\n", " label='AUC = {:0.2f}'.format(roc_auc))\n", "\n", "plt.legend(loc=0)\n", "plt.plot([0,1], [0,1], ls='--')\n", "plt.ylabel('True Positive Rate')\n", "plt.xlabel('False Positive Rate');" ] }, { "cell_type": "code", "execution_count": null, "id": "f4981b32", "metadata": {}, "outputs": [], "source": [] } ], "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.9.12" } }, "nbformat": 4, "nbformat_minor": 5 }