2307 lines
281 KiB
Plaintext
2307 lines
281 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"# Lecture 4: Performance analysis\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "skip"
|
|
}
|
|
},
|
|
"source": [
|
|
"\n",
|
|
"[Run in colab](https://colab.research.google.com/drive/1qRS7NIEctu9MaqafI5IpK9RWG3yyMYO1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:13:45.881490Z",
|
|
"iopub.status.busy": "2024-01-10T00:13:45.881060Z",
|
|
"iopub.status.idle": "2024-01-10T00:13:45.891554Z",
|
|
"shell.execute_reply": "2024-01-10T00:13:45.891079Z"
|
|
},
|
|
"slideshow": {
|
|
"slide_type": "skip"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Last executed: 2024-01-10 00:13:45\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import datetime\n",
|
|
"now = datetime.datetime.now()\n",
|
|
"print(\"Last executed: \" + now.strftime(\"%Y-%m-%d %H:%M:%S\"))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"## Examining datasets\n",
|
|
"\n",
|
|
"Use the MNIST digit dataset as a worked example in this lecture."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Fetch MNIST data"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:13:45.930175Z",
|
|
"iopub.status.busy": "2024-01-10T00:13:45.929703Z",
|
|
"iopub.status.idle": "2024-01-10T00:13:45.985455Z",
|
|
"shell.execute_reply": "2024-01-10T00:13:45.984920Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Common imports\n",
|
|
"import os\n",
|
|
"import numpy as np\n",
|
|
"np.random.seed(42) # To make this notebook's output stable across runs"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:13:45.990862Z",
|
|
"iopub.status.busy": "2024-01-10T00:13:45.989504Z",
|
|
"iopub.status.idle": "2024-01-10T00:13:58.720117Z",
|
|
"shell.execute_reply": "2024-01-10T00:13:58.719391Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Fetch MNIST dataset\n",
|
|
"from sklearn.datasets import fetch_openml\n",
|
|
"#mnist = fetch_openml('mnist_784')\n",
|
|
"mnist = fetch_openml('mnist_784', parser=\"pandas\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Extract features and targets"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"MNIST dataset is already split into standard training set (first 60,000 images) and test set (last 10,000 images)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:13:58.723827Z",
|
|
"iopub.status.busy": "2024-01-10T00:13:58.723238Z",
|
|
"iopub.status.idle": "2024-01-10T00:13:58.739013Z",
|
|
"shell.execute_reply": "2024-01-10T00:13:58.738377Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"((60000,), (10000,))"
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"y_train = mnist.target[:60000].to_numpy(dtype=int)\n",
|
|
"y_test = mnist.target[-10000:].to_numpy(dtype=int)\n",
|
|
"y_train.shape, y_test.shape"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:13:58.742189Z",
|
|
"iopub.status.busy": "2024-01-10T00:13:58.741593Z",
|
|
"iopub.status.idle": "2024-01-10T00:13:58.747855Z",
|
|
"shell.execute_reply": "2024-01-10T00:13:58.747206Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"((60000, 784), (10000, 784))"
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"X_train = mnist.data[:60000].to_numpy()\n",
|
|
"X_test = mnist.data[-10000:].to_numpy()\n",
|
|
"X_train.shape, X_test.shape"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"Each datum corresponds to a 28 x 28 image."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:13:58.750740Z",
|
|
"iopub.status.busy": "2024-01-10T00:13:58.750288Z",
|
|
"iopub.status.idle": "2024-01-10T00:13:58.754000Z",
|
|
"shell.execute_reply": "2024-01-10T00:13:58.753467Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"28.0 28\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import math\n",
|
|
"n_float = np.sqrt(X_train.shape[1])\n",
|
|
"n = math.floor(n_float)\n",
|
|
"print(n_float, n)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Plot image of digit"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:13:58.757013Z",
|
|
"iopub.status.busy": "2024-01-10T00:13:58.756399Z",
|
|
"iopub.status.idle": "2024-01-10T00:13:59.203839Z",
|
|
"shell.execute_reply": "2024-01-10T00:13:59.203168Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAGFCAYAAAASI+9IAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8WgzjOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAIO0lEQVR4nO3cr2+XVwOH4acLVFDExJio2choCA0K/gBmtmQhmVmCWVKzZRmuyRxhbmoKhwCzMDGxP2BBAQJB0KzZNBMDSSsqeF53m3fmPKE/AtflPzlPkyb395izMs/zPAHANE3vHfUHAHB8iAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgA5cdQfwLvj4cOHi3ZPnz4d3vzwww+LzmKZ/f394c3e3t6is168eDG8WVtbG96sr68Pb94GbgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACAexGORJY+Sff311wfwJf9tc3PzUM45c+bM8ObevXuLznr06NHwZnd3d3izsrIyvDnMB/H+/fff4c3p06eHN5988snw5quvvhreTNM0/fjjj4t2B8FNAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoAxIN4LHrc7tq1a8Obf/75Z3gzTdM0z/Pw5urVq4dyzpLH45acc5hnLTlnY2NjeLO6ujq8maZpWl9fH95cuXJleLPk4b3DeojxILkpABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAeBDvLfPs2bPhzeeffz68WfK43Ycffji8maZpunTp0vDmvffGf++8fv16eLPkobVTp04Nbw77rFHnzp07lHM4eG4KAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBAVuZ5no/6I3hzNjc3hzd//vnn8Oazzz4b3ty6dWt4M03L/iZgGTcFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKACQE0f9Afy327dvL9otedzu008/Hd7cv39/eLPU7u7u8ObRo0fDm1OnTg1vrly5MryB48xNAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoAxIN4x9TOzs6hnfXgwYPhzcrKypv/EN64ra2t4c2dO3eGN6urq8Mbjic3BQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAkJV5nuej/gj+37Nnzxbtfv755+HNy5cvF5016oMPPli0u3z58hv+kqO1t7e3aPfTTz8Nb169ejW8+fvvv4c3586dG95wPLkpABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAeBAPDtnz588X7c6fPz+8OXny5PDmr7/+Gt6cOXNmeMPx5KYAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgDkxFF/ALxrbty4sWi3t7c3vPnmm2+GN148fbe5KQAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgKzM8zwf9UfAcfD8+fPhzfb29vDm999/H95M0zR9/PHHw5snT54MbzyI925zUwAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCADlx1B8AB+Hhw4fDm+vXrw9vdnZ2hjenT58e3kzTNN29e3d443E7RrkpABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAeBDvEDx+/Hh4s7m5ueis999/f9Fu1P7+/vDm6dOni8769ddfhze3b99edNaoL774Ynjzyy+/LDrL43YcBjcFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKACQlXme56P+iLfd2bNnhzc3b95cdNb6+vrw5sWLF8Ob3377bXjzxx9/DG+maZqW/ItevHhxeLO9vT282draGt6cPHlyeAOHxU0BgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFADIiaP+gHfBhQsXhjfffvvtAXzJm7O6ujq82djYWHTWd999N7z5/vvvhzdra2vDG3jbuCkAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCszPM8H/VHvO329/eHN/fu3Vt01t7e3qLdqC+//HJ489FHHx3AlwBvkpsCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIB/EAiJsCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAg/wMoh+Lly7Gm9AAAAABJRU5ErkJggg==",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"%matplotlib inline\n",
|
|
"import matplotlib\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"plt.rcParams['axes.labelsize'] = 14\n",
|
|
"plt.rcParams['xtick.labelsize'] = 12\n",
|
|
"plt.rcParams['ytick.labelsize'] = 12\n",
|
|
"\n",
|
|
"some_digit = X_train[41000]\n",
|
|
"some_digit_image = some_digit.reshape(n, n)\n",
|
|
"plt.imshow(some_digit_image, cmap = matplotlib.cm.binary,\n",
|
|
" interpolation=\"nearest\")\n",
|
|
"plt.axis(\"off\");"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
},
|
|
"tags": [
|
|
"exercise_pointer"
|
|
]
|
|
},
|
|
"source": [
|
|
"**Exercises:** *You can now complete Exercise 1 in the exercises associated with this lecture.*"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Plot selection of digits"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:13:59.207815Z",
|
|
"iopub.status.busy": "2024-01-10T00:13:59.207477Z",
|
|
"iopub.status.idle": "2024-01-10T00:13:59.659642Z",
|
|
"shell.execute_reply": "2024-01-10T00:13:59.658941Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Extract digits\n",
|
|
"n_digits = 10\n",
|
|
"n_images = 10\n",
|
|
"example_images = np.zeros([n_images * n_digits, n*n])\n",
|
|
"for i in range(n_digits):\n",
|
|
" example_images[i*n_images:(i+1)*n_images,:] = X_train[np.where(y_train == i)][0:n_images,:]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:13:59.663112Z",
|
|
"iopub.status.busy": "2024-01-10T00:13:59.662527Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:02.060635Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:02.059958Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<Figure size 1000x1000 with 0 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAn8AAAJ8CAYAAACP2sdVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8WgzjOAAAACXBIWXMAAA9hAAAPYQGoP6dpAADTXElEQVR4nOydZ7gTVReFX2yggKgoCKJgBTsq6GfvBRWx995774q9V1QUFRW72BV77x3Fgih2LGBvFCvc74fPuieZm9ybnklmvX9ybzJJzs5MJnPWWXvvVg0NDQ0YY4wxxphEMF21B2CMMcYYYyqHL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxKEL/6MMcYYYxLEDNUeQC68+eabAAwePBiAG264AYBddtkFgIMOOgiAZZddtgqjqyzPPvssAGuttRYADQ0Nafevvvrq1RiWKSGPPPIIABtttBEA88wzDwBXX301AH369AFgrrnmqsLojDG58tVXXwFwxBFHAHDnnXc22eawww4D4KKLLqrcwEzisfJnjDHGGJMgWjVIOooZb7/9duPfa665JgC///57xm07dOgAwM8//1z2cVWL66+/HoBLL70UgPfeew+AqVOnAtC7d28gqKEHHHAAADPMUBPiLgBvvPFG49/LL788AK1atcq47WmnnQbAiSeeWP6BVRgpf5tssknGx/v37w/APffcU7ExlZp3330XgJdeeqnxvv333z+n584222wAvPzyywAsuuiipR1ciXn11VcBGDVqFAAXXHABAJ999lnjNklS7n/44YfGv/faay8ARowYkbZNrX6/pfRtvfXWQNj3mZh33nnTnnP77benPbfW6du3LwAjR44EYLrpsmtNiyyyCAA333wzAN27dwdgzjnnLOcQK8Lzzz/f+PeXX34JwFlnnQXABx98AITVnXPOOQeATTfdFIB27dqVbVxW/owxxhhjEkTslL/XX38dgC222KLxvm+++QYIKtCss84KwEwzzQTAjz/+CMCLL74IwHLLLZf2eC0jxe/GG28E4IUXXkh7XMrf9NNPn3b/J598AoQZVC2w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bkhm7EVd/G2zxDb8MOUHTnr2JL6d9C295+7Nozs8Sud2nVt+cg2T1LghubEnNW5w7EmMPalxQ3JjT2rckMzYy9bb1xhjjDHGxA9n+xpjjDHGJAhf/BljjDHGJAhf/BljjDHGJAhf/BljjDHGJAhf/BljjDHGJAhf/BljjDHGJAhf/BljjDHGJAhf/BljjDHGJAhf/BljjDHGJAhf/BljjDHGJAhf/BljjDHGJAhf/BljjDHGJAhf/BljjDHGJIgZqj0AY4xJOttttx0Ar776KgDDhw8HYIUVVqjamIwxhfPss88CcOqppzbed9xxxwGw3nrrVWNIaVj5M8YYY4xJEK0aGhoaqj2IpHPIIYcAcOmllwKwxBJLND724IMPAtC9e/fKD8wYUxFWXHFFICh/Cy20EABjxowBYMYZZ6zOwEzF+OuvvwDYZpttALj//vuBcO7/4osvqjIukx9PPvkkAJttthkAkydPbnxM3+PHH38cgNVXX73CowtY+TPGGGOMSRA17fk744wzADjppJMAkIiptfZqXlXngmZyN910EwCtWrUCwmwf4MMPPwTqU/n7559/AHj55ZeB4IdIva/e0DEqj9fDDz8MpO/zbt26VX5gMebss88G4PjjjwfgmGOOAeCcc86p2phKwVdffdX495tvvpn22CeffALAv//+C9SX8rfJJps0/v3AAw8AcMUVVwCw3377VWVMcWD06NEAjBgxAgi/B7qNO1K8OnfuDMAdd9yRddv55psPgPnnnx+Ab7/9FoDevXsD6atftcKXX34JwF577QWkK35iuun+09s6depUuYFlwcqfMcYYY0yCqEnl7/rrrwfCzH/66acHYOrUqUDtzJTmmmsuICiU8ngkhd9++w2ANdZYA4C555678THNBFPvqwf++OMPAF588UUAJk6cCMCjjz7auM2ee+5Z+YHFEH028sLqez1o0CAAFl54YQD22GOPyg+uBPz666+Nf0sFF5tuuikArVu3ruCIysvff/8NpCsi2qeXXHIJADvssAMAs846a4VHVz2k7p577rkZH2/Tpk0lh1Mw66yzTtr/Sy65ZN6v8dNPPwGw9dZbA82rh3HhkUceAWD77bcHwu9aJqTgL7roouUfWAtY+TPGGGOMSRA1qfyNGzcOCNlRtUrbtm2B+vTzFYLUvtS/6035m2WWWQBYZJFFAPjmm28A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rLMOEH7f6pkff/wx4/25qNmTJk0Cyut1Kzc333xz1sdOOeUUAI477jggFMKO/p5/9tlnZRlbKlb+jDHGGGMSRNWUP80Oolm+ygKq5Sv/QlGds6Shum69evVqvO/DDz8EwozoiiuuqPi4qkU9qJ3af1HFT0gRrAfkT1Wm3tChQwG48sorgeDrETPNNBMAbdu2bbwvqg5K2VOLO72HaoepHVytK3+pGaC1zKOPPgo09fStscYaAFx22WWVHlLViPrUpHRL1W6OGWecEajN33/5mz/44IOs25x++ukA3HPPPQCMHj0643aVyHOw8meMMcYYkyAqrvzttttuQPB0KftPrLTSSpUeUmw46KCDgPRZorxT4pJLLknbtp4yQ9dff/3Gv8ePHw/ARRddVK3hVI2HH34YCPu4FokqWUJKyOKLL17B0ZSH7777DoBDDjkEgNtvv73Z7aXWKZtfXQ4All566bzee5dddslr+2ry/fffZ31s7733ruBIyof82tFY55lnHgBmn332io8pLmj1JjXbNxv6Paul3zVlKEuF13khE6oDGVX85P9Vtu+qq65a8nFGsfJnjDHGGJMgKqb8qa7fE088AYTZb+vWrQHYf//9AffvhXRVRD6ipKHjQ/6oekPHufb1+++/X83hlJyBAwdmvF/f83pQQpSpl03x22ijjQA48sgjgdDHVr6mpHD99ddXewhlQwpOtJOHUJcLZW3Lw1mPvPbaa0BT5WvZZZetxnAqhvqVv/POO3k/d+uttwbg8ssvB9IrAJSbgpW/58c9T//b+tP1wq60OrUV9314XwmHFW8ce/JiT2rckNzYkxo3JDf2pMYNjj1psRes/E3+ezJLd16a3XvvzuZ3bN7i9r/++ivQdFagqv4XXnhhoUOpOPnGni+pPpgRI0aU/PWLodyxC2U13nfffQBsvnn53isXSh23FE1lwqUidTwunr98Ys+mhKi+1RZbbFGWMZaDluLebLPNABg2bBgQzmWqzi9/cy1Sqe953Mg37tlmmw3IXKsUQka3VrjiTLH7XH50/dYvueSSAMw777wlG2O5KCb2bH7dvn37AulZ/cppWHfdddP+r8ZqQMEXf/0W7ke/hfuVciw1g2NPXuxJjRuSG3tS44bkxp7UuMGxJy32qtX5M9lJ7durv9XTt55J9U61adMGqK8expno3bs3ACNHjmy8T1XuaxH5fqJ9PaV8ZOpbXav06NEDyN7VwWSmT58+Gf+uRbp16wZk9yYfeOCBQP3UM2yOV155BYDppvvPTZYUH7/q1CqTt1Zwtq8xxhhjTIKomPKn7g1a437hhRcq9dY1R/fu3Rv/fu+996o4ksqy+uqrN/6tKumZPHH1xAknnACk131SBlgtssceewBw2mmnAaEnrXp5m+QR7Web+j2Xwl/rjBs3rtpDiA1bbrklEGofmnhi5c8YY4wxJkFUTPlTdfvnnnuuUm9paozhw4dXewgVR74x+WXqBSshRij7WbemPvn888+rPQSTBwVf/E36exKf/Bxaj33+y+e8/e3bzDHzHMzXYb6SDC6uOPbkxZ7UuCG5sSc1bkhu7EmNGxx70mJv1aAmu3ny7BfPsuYNaza5f5eld+H6Ta8vdlyxxrEnL/akxg3JjT2pcUNyY09q3ODYkxZ7wRd/xhhjjDGm9nDChzHGGGNMgvDFnzHGGGNMgvDFnzHGGGNMgvDFnzHGGGNMgvDFnzHGGGNMgvDFnzHGGGNMgvDFnzHGGGNMgvDFnzHGGGNMgvDFnzHGGGNMgvDFnzHGGGNMgvDFnzHGGGNMgpih2gMwxhhjjKllxo4dC8Caa64JwIQJEwCYb775Grd5+umnAVhwwQUrPLqmWPkzxhhjjEkQrRoaGhqqPQhjjKk3/vzzTwAef/xxAO6//34ARo4cCcDiiy/euO3xxx8PwPzzzw9A27ZtKzZOY0zxLLPMMgC8/fbbWbfp0aMHACeddBIAu+22W7mHlRUrf8YYY4wxCcLKn6kad999NwB//PEHAG+++WbjY4MGDQKCf2L33XcHYLHFFgNg2WWXrdQwTQn57LPPAHj33XezbtOpUycAVlpppYqMqdRccMEFAIwZMwaAG264ocXn6DTcu3dvAIYOHQrAcsstV4YRGmNKjX6/XnvtNQBWWWUVAIYNG9a4zX333QfAl19+CcARRxwBwHnnnVepYTZi5c8YY4wxJkHUhPI3ceJEACZNmgTAQw89BMD3338PhKvn1q1bV2F0hXPTTTcB8NhjjwHwzjvvACFrKJX//e9/ADzwwAMAdOjQoRJDLAlS9j788EMABg4cCMBTTz0FwF9//ZXza8kTtfbaawNw7rnnAjDrrLMCMP3005dgxLmjmdyll14KwDPPPJPT8zbbbDMA+vXrB8B6663X+NhPP/0EwCKLLAJAu3btSjLWSnLUUUcB8MMPP6Tdr2NAs+NMdOnSBYCbb74ZgLXWWqscQywbSy65JADvv/8+AK1atWrxOToNa9tu3boB8NFHHwG1d25LKuPHjweaHvfFIP/nQgstVLLXLAU6r0833X8a0t9//w3AlVdeCYTf6SOPPBKAddddt/G5Os5nmmmmygw2JnzwwQcAbLjhhgB8/fXXANx2220AbLnllhUbi5U/Y4wxxpgEETvl7/PPPwfS18BfeeUVAN57772MzznggAOAoL7ElR9//BGAPffcE4ARI0YAMNtsswGZPU7PPfccEFTPXr16AWEGEUfk53r++eeBkO344IMPlu09TznlFCAoalJfyoUUv5133hkI+6dQpPIBTJkyBYCOHTsCTVWfiy66CIiHJ04q9XfffQfAtddeCwRVu6XTy1xzzdXkPqkmbdq0AcJxI7U37hSi/HXt2hUIypFYccUVARg+fDgQFME4onOS/LpRtP8UE8C8885b9nGVk8MOOwyAqVOnAvDiiy8CzWd85ss888wDwD333ANA3759S/bazTFt2jQA7r33XgB++eUXIJzf9fulVSkpf9o+SqpPe/311wfCeVPnbZ3T6l3p1nGy6qqrAuE40rm9Elj5M8YYY4xJEFVX/uQB0mxRPh/5CSCoB6qU3b59eyBk00k9ePbZZ4GgjsUNZe598cUXAOy9995A8EfNMcccTZ6jz2f55ZcHYPLkyQCcfPLJQKgXFCcGDx4MwMEHH9zsdt27dweCZ6Q5VC1dtdNaeu/999+/xdcsBmVj7rPPPmV9n0xUSwlIRSr8NttsA2RXotdZZx0geBujpH5XpTQMGDAg7X/F9/rrrxc77IrQkvKn/Xfrrbc23qfvvvxR8gGLE088EYBTTz21DCMuDJ1vNSat0LTk4U1Vex955BGgdrKar776agAOOeQQID+/crHod++3336ryPtdccUVQFhZqwTyPl922WVA+opIPSH1dOmllwaCl13VECqBlT9jjDHGmARR8d6+mrUcc8wxANx+++0A/P7771mfo6t/zYblLZBqII+QPHVx44knngBg1KhRQFBLzj777BafqxgPPfRQAE4//XQg1A6Ko/InNt10UyD44+aee24A9tprLyAonrlks8rPqc+h2pRbWWyOb775Bgh1pOSluuWWWwCYffbZyz4Gvae+ezPP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bL/99gB06tQJgHfffRcI56J8GD58OAC77LILAAMGDADgjjvuKG6wNYR+v84880wA1l13XQBuv/32qo0pF/T7cNVVVwHw448/AumK8Ouvv57Ta/35558AbLXVVgA8+OCDANxwww1AeVa24sTcc88NwPfff592/7Bhw4Dw/SgEK3/GGGOMMQmiZEYpzUg//vhjoLLK37Rp0wD4/PPPgaCUlEjUrAleffVVAP7++28AVlllFaC0il82Tj31VAAWWGABIMzSS8l3331X8tesJMpWbtOmDRA8K7mgDOfWrVsD0L59+xKPLl6MGTMGgLPOOguA2267DQgZ61LBqs0vv/wCwIgRIwAYMmQIANdeey0AX3/9NZCf8hVV/OLMo48+CsBOO+0EwM8//5x2W8z5V8f6dNP9p0888cQTQFB6brzxxoJfO67od0wx6riXknrCCSdUZ2B5cvPNNwNB8Zt99tkBuPrqq/N+LX0m+k2PM1OnTgXg7rvvBqBXr14ALLXUUnm/lj7D3377DYBWrVoBwfO6yCKLFDdYrPwZY4wxxiSKkil/WoNfaaWVSvWSOTNhwgQgzCw0E9WVd9yRX1LeDs34oOVsJm373nvvAcH7Jh9eJVAm1q677gqEWXqfPn2Kfm1lFMv/EkUeIPmt4sa9994LBG+GVNJc/JHK2FYWu3yd3bt3L/k4K42U3FSlS8rx8ssvn/bYxRdfDLSs+N15551A8AeVG/lNddxHqdeVB+0XZSRL4ZFKt99++wHFZeBr5Uh1PLWqoxUOnXPqSQV/6623gFDDVJxyyilAYQpSHNBx0rt377yfq5Wsb7/9FgjHVBzPgfLX77///kCotXvPPfc0btPS8Spvn34nFL9YccUV026LwcqfMcYYY0yCKJnyp7X5arDnnnum/b/wwgtXaSSFsffeewPBFybPEwTvXjakFspno9lHPpmG+TL//PNnvP/3338HwkxPM1h5PgpBHtJcs8Pihrwbm266KZBfRvT9998PwD///APAFltsUdrBVYF///0XCPXqVLcLYNy4cUBQltZbbz0A9thjj5xee8qUKSUbp8nOgQceCIS6fkLq9uDBg8v23jofyFeVTXWNC1qNkop//vnnNz4255xzAmF1QytWQrEpezzujBo1CoBff/0VgB49egCw4447Fvya+vykiKnaQyV8vzqftFS/VhnJOl8LVR2R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A6gvxU8zwJtuugmAbbbZBkhWducll1wCBB9fJtZZZx0ABg4cCMAMM1T961ow+p6/8847WbeRN2a//faryJgqjfyOBx98MNBU7QPo3bs3ENRBKUXyD9UyUoCa837VoxIEwd88evToxvvk3ZXfq1497JlW6qTw6rYeuOaaawA477zzgKD4LbTQQo3b7LPPPkDY59Wkfq4ojDHGGGNMi1RdSpD68+WXXwKw0UYbAcEPBjDPPPNUfmAVRMqOPCDy/gHMOuusVRlTOZGK8e+//wLV8TtUC1V2V7ea5pD6U8uobme/fv2AoH5lQln89cpOO+0EhLpuqahe5+WXXw7AzDPPDMCwYcOA9J6wtYaUvua82vWq+Ol433zzzYHgB4Ow2iVPb70R3d+pKl897e/ddtsNCEqfVvJEauZ6nPa1lT9jjDHGmARRNeVPlazffvttAHr06AHARRddBNS/2gehz59qnWlmVO9KmGrbdenSBYDdd9+9msOpKDref/jhh7T7p59++sa/1cu6HpCnMZvip64lAIssskhFxlRp1KVGHR1Eaneeu+++GwjnRTH77LOXeXTlJ7VzTxQpQPXk/Url6quvBmD8+PFA8PECDBo0qBpDKjvK1K732o1ScVWXVP/rd10VOqTwxg0rf8YYY4wxCaLiyt/9998PBH+b6t6otp28LklAWUGq8abuHfWKPBFvvfUWEBS/Xr16VW1MlUJZfu+//37Gx1XvCYL6XQ/cc889Ge+X4nfXXXc13lcPfapTGTFiBBBqev39999pjyvLHUJdv3oiW/eOVL9XvSp+L774IgDXX3992v1HH31049/q0x5FXV3U7UX9nRdccMFSD7OkaD9Hld5c1N1smeBxzArWqs0mm2wCpHv0ISh+hxxyCBDfSh3xHJUxxhhjjCkLFVP+fv31VwCef/75jI/L25KL30010pQhLHTFXSs8/vjjQFBBUnvb1iPnn38+EDJA55133moOp6IMHToUSM/2S2XppZeu5HAqxgcffJD2v9SLO++8E2he7dM545hjjgGCR1TZdeqLGVd+//13oKnit8oqqwD1q/TXkopTalS7Uf42nes22GADIP0cr5WQd999F4Brr70WCLUwVRVB/vcHHngACLUg40ZU8ctlf8sfmM0XGr0/Ux3gSqNKDW+88Uba/VrB2mWXXYB0H3ccsfJnjDHGGJMgKqb8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/vtvAD744AMAbr755rTtevXqBcCYMWMqODrz559/AvDDDz+k3f/SSy8B0NDQAMDHH3+c82vOOOOMAOy4444AdO3aFYDpp5++uMHGDH02EyZMaLzvzjvvBOCuu+4C4JNPPgHgtddeA2C++ear5BBzQnEMHjw4p+1atWoFwI8//tj42Omnnw7AoEGD0rbZZJNNAOjevXvpBmxiyRdffAHAsGHDgHBMrLbaagDcf//9AHTo0KGs49C5TO87duxYAPbee++iXveqq65q/FvHt74Tm2++OQBzzTUXAJttthkA66+/flHvaarDX3/9BcCLL77YeN9DDz0EwLPPPgvAqFGj0p6j4yv1OCkXVv6MMcYYYxJEqwZNO6rMc889B8B7770HwPPPP9/42L333gvAtGnTmn0NqUILLrggEBTCemDq1KkAfPbZZxkflxrUunXrio1JbLvttgDcfvvtZXuPAQMGAHDttdcC0LFjx7K9Vzn5+uuvAbjvvvuA8Jmlzg6jtG3bFgiqyJxzzlm+AeaIlJFHHnkEgDPPPBMIKmU2ospfLttI9d1pp52AoAYvtthiBY292mgFY+LEiY33aXVDfPvtt0BQwIRWN8444wwAtthii7KNs9REjxkIx432+R9//AHA+PHj056rx3fZZReg6edSal544QUA9tlnHyAof9FjM9//e/bs2fgeub6mVgKkDNYqZ599dpP7zj33XAB+//13ABZaaCEAdtttt7Tt+vfvD8ASSyxRziEWhK5ZJk2aBARV78knnwTgmWeeafKcls6DLV3rlAIrf8YYY4wxCaJiyp88Tdtttx3QVMH67bffgHD1nDqsPn36APDmm2/m9F7dunUDYNy4cUWMuCkjRowAggepVGjW8/jjjwNw3XXXNT4m38C///4LpCuiqcgbc+KJJ5Z0bLkgb8qXX34JlEZ91MxHPjfxwAMPALDxxhsX/R6V4N133wXCrFcqtvZrjx49gDCzhbCvhwwZAoTP95577in/gHNk0003BcL+yJVClL8oUrm33HJLAE455RQgKKRxY8qUKUD4jkoZePXVVwt+TSkjqeeKuCBlU+ffQw45BICffvoJgJEjRzZ5Tkv7XI/rHFzp779WkaQIZkOqfDEqnT6f5ZdfHoArr7wSKN5vWG5++eUXAG655RYAHnzwQSAc5/qdg+a//5lYYIEFgPx84+XikksuAWD48OFAyDGQkt/csSzlVwqnPIBCq2i33nprqYfdBCt/xhhjjDEJouzZvlr33muvvYCgDrVEql9PsyllBsoPotnvV199lfbccnmB1l133aKe//333wNB4fvoo4+A4HfMpOotu+yyQFBalFn7+uuvp20n70w1lD/N9JShq9tikPq19tprA+Gz0WcVV+VP/o7dd98dCN4t7TfN3uVbW2655QCYZZZZGl/j7bffBoLyt+SSS5Z51PnTkp924MCBQHH+RPnaolnkUpQuuugiANZZZx0gPlmR8nW+9dZbAJx//vlA877OGWb471Q8//zzp90vD5xeM85I8dB+OeGEE9Luz1ftycSiiy5a9GsU876VeH/5gUvxeZUTKXta3bjsssuA8DtXSvTbLxXxf//7X8nfI1d0btMqZZQ11lgDgI022ggIah5Au3btgPA7FlX+TjrppJKOtTms/BljjDHGJIiyK3/nnXcekF3xkz9M262wwgpAelaUUIan1tyjip/8UzfddFORo87MzDPPXNTzV199dQA+/PDDZreTxwuC36NTp04AzDPPPEBT5U9ZcNUgVbUqFZMnTwaaqqFbb711yd+rlGiG2rt3byD40ORPk190uulyn3cVe9yVA3kXpWrdeOONaY/LnyhPYCE1+g488EAg+HyU6Ro35Ok77bTTgJCRnlrDMBNt2rRp/FsZnVK09ZryFe2xxx5pz5177rmLHXbRSL2Q8qPVh6hSG0WZ+xCOi1133RUI6m30NQ4++GAgVHKoZ/Q5xkX503dYXkQdq/pNlzpdDMriHT16dMbHZ511VqC6ip+Q71TKvtDqZvv27Vt8DX13pIrr90K/75XAyp8xxhhjTIIom/InX1u2jDZl7EmlW2WVVXJ+7Wz+F80o41AHLROayUnJWXrppYHgjZG3a9555218jhQiKSwnn3xy2mvKIxS931SHrbbaKu22EI4//vi0//fdd9+ixlQO5Ku9+uqrgaDKyf/5/vvvA+H7rRp9pezSITW8Wt93KR4HHXQQkD3zVuc61SuUJ2ittdZq3CbqJ5ZXOqr4qeNENby9QnX6dthhByBUaoiy+OKLAyF+HTPKzoawatC5c2egqVqq16hmvJVCPlr9Tui22vX99N1NrUuZC1q90++ZPLyZUH1QeaGj7Lfffnm9dznR91e3+aB8BXn9tI/1WrmohqXCyp8xxhhj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",
|
|
"text/plain": [
|
|
"<Figure size 800x800 with 100 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Plot digits\n",
|
|
"plt.figure(figsize=(10,10))\n",
|
|
"fig, axes = plt.subplots(n_digits, n_images, figsize=(8, 8),\n",
|
|
" subplot_kw={'xticks':[], 'yticks':[]},\n",
|
|
" gridspec_kw=dict(hspace=0.1, wspace=0.1))\n",
|
|
"\n",
|
|
"for i, ax in enumerate(axes.flat):\n",
|
|
" ax.imshow(example_images[i].reshape(n,n), cmap='binary', interpolation='nearest')\n",
|
|
" ax.axis(\"off\")\n",
|
|
" ax.text(0.05, 0.05, str(i // n_images),\n",
|
|
" transform=ax.transAxes, color='green')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:02.064046Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:02.063359Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:02.067767Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:02.067210Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def plot_digit(data):\n",
|
|
" image = data.reshape(n, n)\n",
|
|
" plt.imshow(image, cmap = matplotlib.cm.binary,\n",
|
|
" interpolation=\"nearest\")\n",
|
|
" plt.axis(\"off\");"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"Shuffle training data so not ordered by type."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:02.070642Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:02.070400Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:02.736323Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:02.735619Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Shuffle training data\n",
|
|
"import numpy as np\n",
|
|
"shuffle_index = np.random.permutation(60000)\n",
|
|
"X_train, y_train = X_train[shuffle_index], y_train[shuffle_index]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"## Binary classifier\n",
|
|
"\n",
|
|
"Construct a classify to distinguish between 5s and all other digits."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:02.739912Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:02.739322Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:02.742873Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:02.742160Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"y_train_5 = (y_train == 5)\n",
|
|
"y_test_5 = (y_test == 5)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:02.745912Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:02.745363Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:02.751897Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:02.751306Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([False, False, False, ..., False, True, False])"
|
|
]
|
|
},
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"y_test_5"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Train\n",
|
|
"\n",
|
|
"Train a linear model using Stochastic Gradient Descent (good for large data-sets, as we will see later...)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:02.754951Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:02.754519Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:02.758982Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:02.758368Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# disable convergence warning from early stopping\n",
|
|
"from warnings import simplefilter\n",
|
|
"from sklearn.exceptions import ConvergenceWarning\n",
|
|
"simplefilter(\"ignore\", category=ConvergenceWarning)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:02.761746Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:02.761309Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:04.112020Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:04.111257Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<style>#sk-container-id-1 {color: black;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SGDClassifier(max_iter=10, random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SGDClassifier</label><div class=\"sk-toggleable__content\"><pre>SGDClassifier(max_iter=10, random_state=42)</pre></div></div></div></div></div>"
|
|
],
|
|
"text/plain": [
|
|
"SGDClassifier(max_iter=10, random_state=42)"
|
|
]
|
|
},
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"from sklearn.linear_model import SGDClassifier\n",
|
|
"sgd_clf = SGDClassifier(random_state=42, max_iter=10);\n",
|
|
"sgd_clf.fit(X_train, y_train_5)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"Recall extracted `some_digit` previously, which was a 5."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:04.115229Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:04.114730Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:04.162849Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:04.162180Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAGFCAYAAAASI+9IAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8WgzjOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAIO0lEQVR4nO3cr2+XVwOH4acLVFDExJio2choCA0K/gBmtmQhmVmCWVKzZRmuyRxhbmoKhwCzMDGxP2BBAQJB0KzZNBMDSSsqeF53m3fmPKE/AtflPzlPkyb395izMs/zPAHANE3vHfUHAHB8iAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgA5cdQfwLvj4cOHi3ZPnz4d3vzwww+LzmKZ/f394c3e3t6is168eDG8WVtbG96sr68Pb94GbgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACAexGORJY+Sff311wfwJf9tc3PzUM45c+bM8ObevXuLznr06NHwZnd3d3izsrIyvDnMB/H+/fff4c3p06eHN5988snw5quvvhreTNM0/fjjj4t2B8FNAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoAxIN4LHrc7tq1a8Obf/75Z3gzTdM0z/Pw5urVq4dyzpLH45acc5hnLTlnY2NjeLO6ujq8maZpWl9fH95cuXJleLPk4b3DeojxILkpABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAeBDvLfPs2bPhzeeffz68WfK43Ycffji8maZpunTp0vDmvffGf++8fv16eLPkobVTp04Nbw77rFHnzp07lHM4eG4KAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBAVuZ5no/6I3hzNjc3hzd//vnn8Oazzz4b3ty6dWt4M03L/iZgGTcFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKACQE0f9Afy327dvL9otedzu008/Hd7cv39/eLPU7u7u8ObRo0fDm1OnTg1vrly5MryB48xNAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoAxIN4x9TOzs6hnfXgwYPhzcrKypv/EN64ra2t4c2dO3eGN6urq8Mbjic3BQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAkJV5nuej/gj+37Nnzxbtfv755+HNy5cvF5016oMPPli0u3z58hv+kqO1t7e3aPfTTz8Nb169ejW8+fvvv4c3586dG95wPLkpABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAeBAPDtnz588X7c6fPz+8OXny5PDmr7/+Gt6cOXNmeMPx5KYAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgDkxFF/ALxrbty4sWi3t7c3vPnmm2+GN148fbe5KQAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgKzM8zwf9UfAcfD8+fPhzfb29vDm999/H95M0zR9/PHHw5snT54MbzyI925zUwAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCADlx1B8AB+Hhw4fDm+vXrw9vdnZ2hjenT58e3kzTNN29e3d443E7RrkpABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAeBDvEDx+/Hh4s7m5ueis999/f9Fu1P7+/vDm6dOni8769ddfhze3b99edNaoL774Ynjzyy+/LDrL43YcBjcFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKACQlXme56P+iLfd2bNnhzc3b95cdNb6+vrw5sWLF8Ob3377bXjzxx9/DG+maZqW/ItevHhxeLO9vT282draGt6cPHlyeAOHxU0BgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFADIiaP+gHfBhQsXhjfffvvtAXzJm7O6ujq82djYWHTWd999N7z5/vvvhzdra2vDG3jbuCkAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCszPM8H/VHvO329/eHN/fu3Vt01t7e3qLdqC+//HJ489FHHx3AlwBvkpsCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIB/EAiJsCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAgogBARAGAiAIAEQUAIgoARBQAiCgAEFEAIKIAQEQBgIgCABEFACIKAEQUAIgoABBRACCiAEBEAYCIAgARBQAiCgBEFACIKAAQUQAg/wMoh+Lly7Gm9AAAAABJRU5ErkJggg==",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plot_digit(some_digit)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"Predict class:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:04.166557Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:04.166129Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:04.173666Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:04.173133Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([ True])"
|
|
]
|
|
},
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"some_digit.shape\n",
|
|
"\n",
|
|
"sgd_clf.predict([some_digit])\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Test accuracy"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:04.178073Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:04.176751Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:04.213684Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:04.213035Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"y_test = sgd_clf.predict(X_test)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:04.218677Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:04.217226Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:04.225740Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:04.225190Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"0.9601"
|
|
]
|
|
},
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"from sklearn.metrics import accuracy_score\n",
|
|
"accuracy_score(y_test, y_test_5)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Cross-validation"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"#### n-fold cross-validation\n",
|
|
"\n",
|
|
"<img src=\"https://raw.githubusercontent.com/astro-informatics/course_mlbd_images/master/Lecture04_Images/5-fold-CV.png\" width=\"700\" style=\"display:block; margin:auto\"/>\n",
|
|
"\n",
|
|
"[Image credit: [VanderPlas](https://github.com/jakevdp/PythonDataScienceHandbook)]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
},
|
|
"tags": [
|
|
"exercise_pointer"
|
|
]
|
|
},
|
|
"source": [
|
|
"**Exercises:** *You can now complete Exercises 2-3 in the exercises associated with this lecture.*"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Consider naive classifier \n",
|
|
"\n",
|
|
"Classify everying as not 5."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:04.229463Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:04.229066Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:04.234410Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:04.233859Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"from sklearn.base import BaseEstimator\n",
|
|
"class Never5Classifier(BaseEstimator):\n",
|
|
" def fit(self, X, y=None):\n",
|
|
" pass\n",
|
|
" def predict(self, X):\n",
|
|
" return np.zeros((len(X), 1), dtype=bool)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"What accuracy expect?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:04.237953Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:04.237493Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:04.867261Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:04.866601Z"
|
|
},
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([0.909 , 0.90745, 0.9125 ])"
|
|
]
|
|
},
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"from sklearn.model_selection import cross_val_score\n",
|
|
"\n",
|
|
"never_5_clf = Never5Classifier()\n",
|
|
"cross_val_score(never_5_clf, X_train, y_train_5, cv=3, scoring=\"accuracy\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"Need to go beyond classification accuracy, especially for skewed datasets."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"## Confusion matrix\n",
|
|
"\n",
|
|
"Can gain further insight into performance by examining confusion matrix."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Confusion matrix shows true/false-positive/negative classifications\n",
|
|
"\n",
|
|
"- True-positive $\\text{TP}$: number of true positives (i.e. *correctly classified* as *positive*)\n",
|
|
"- False-positive $\\text{FP}$: number of false positives (i.e. *incorrectly classified* as *positive*)\n",
|
|
"- True-negative $\\text{TN}$: number of true negatives (i.e. *correctly classified* as *negative*)\n",
|
|
"- False-negative $\\text{FN}$: number of false negatives (i.e. *incorrectly classified* as *negative*)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"<table>\n",
|
|
" <tr>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" <td>Predicted</td>\n",
|
|
" <td></td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" <td>Negative</td>\n",
|
|
" <td>Positive</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <td>Actual</td>\n",
|
|
" <td>Negative</td>\n",
|
|
" <td>TN</td>\n",
|
|
" <td>FP</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <td></td>\n",
|
|
" <td>Positive</td>\n",
|
|
" <td>FN</td>\n",
|
|
" <td>TP</td>\n",
|
|
" </tr>\n",
|
|
"</table>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Cross-validation prediction\n",
|
|
"\n",
|
|
"`cross_val_predict` performs K-fold cross-validation, returing predictions made on each test fold. Get clean prediction on each test fold, i.e. clean prediction for each instance in the training set."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:04.871959Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:04.870596Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:07.774513Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:07.773793Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"from sklearn.model_selection import cross_val_predict\n",
|
|
"y_train_pred = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Compute confusion matrix"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:07.778441Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:07.778158Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:07.793206Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:07.792567Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[52953, 1626],\n",
|
|
" [ 807, 4614]])"
|
|
]
|
|
},
|
|
"execution_count": 23,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"from sklearn.metrics import confusion_matrix\n",
|
|
"conf_matrix = confusion_matrix(y_train_5, y_train_pred)\n",
|
|
"conf_matrix"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Each row represents actual class, while each colum represents predicted class."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Perfect confusion matrix"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 24,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:07.796975Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:07.796729Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:07.810580Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:07.809959Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[54579, 0],\n",
|
|
" [ 0, 5421]])"
|
|
]
|
|
},
|
|
"execution_count": 24,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"y_train_perfect_predictions = y_train_5\n",
|
|
"confusion_matrix(y_train_5, y_train_perfect_predictions)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
},
|
|
"tags": [
|
|
"exercise_pointer"
|
|
]
|
|
},
|
|
"source": [
|
|
"**Exercises:** *You can now complete Exercise 4 in the exercises associated with this lecture.*"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"## Precision and recall"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- **Precision**: of predicted positives, proportion that are correctly classified (also called *positive predictive value*).\n",
|
|
"\n",
|
|
"$$\\text{precision} = \\frac{\\text{TP}}{\\text{TP} + \\text{FP}}$$\n",
|
|
"\n",
|
|
"\n",
|
|
"- **Recall**: of actual positives, proportion that are correctly classified (also called *true positive rate* or *sensitivity*).\n",
|
|
"\n",
|
|
"$$\\text{recall} = \\frac{\\text{TP}}{\\text{TP} + \\text{FN}}$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "-"
|
|
}
|
|
},
|
|
"source": [
|
|
"Remember:\n",
|
|
"<table>\n",
|
|
" <tr>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" <td>Predicted</td>\n",
|
|
" <td></td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" <td>Negative</td>\n",
|
|
" <td>Positive</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <td>Actual</td>\n",
|
|
" <td>Negative</td>\n",
|
|
" <td>TN</td>\n",
|
|
" <td>FP</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <td></td>\n",
|
|
" <td>Positive</td>\n",
|
|
" <td>FN</td>\n",
|
|
" <td>TP</td>\n",
|
|
" </tr>\n",
|
|
"</table>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
},
|
|
"tags": [
|
|
"exercise_pointer"
|
|
]
|
|
},
|
|
"source": [
|
|
"**Exercises:** *You can now complete Exercise 5 in the exercises associated with this lecture.*"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### $F_1$ score"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"$F_1$ score is the *harmonic mean* of the precision and recall."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"$$F_1 = \\frac{2}{1/\\text{precision} + 1/\\text{recall}} = 2 \\frac{\\text{precision} \\times \\text{recall}}{\\text{precision} + \\text{recall}} = \\frac{\\text{TP}}{\\text{TP} + \\frac{\\text{FN}+\\text{FP}}{2}}$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"$F_1$ favours classifiers that have similar (and high) precision and recall.\n",
|
|
"\n",
|
|
"Sometimes may wish to favour precision or recall."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
},
|
|
"tags": [
|
|
"exercise_pointer"
|
|
]
|
|
},
|
|
"source": [
|
|
"**Exercises:** *You can now complete Exercise 6 in the exercises associated with this lecture.*"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Precision-recall tradeoff"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Under the hood the classifier computes a *score*. Binary decision is then made depending on whether score exceeds some *threshold*.\n",
|
|
"\n",
|
|
"By changing the threshold, one can change the tradeoff between\n",
|
|
"precision and recall."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"Scikit-Learn does not let you set the threshold directly but can access scores (confidence score for a sample is, e.g., the signed distance of that sample to classifying hyperplane)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 25,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:07.814908Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:07.814670Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:07.821596Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:07.820991Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([24299.40524152])"
|
|
]
|
|
},
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"y_scores = sgd_clf.decision_function([some_digit])\n",
|
|
"y_scores"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"Can then make prediction for given threshold."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 26,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:07.825101Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:07.824869Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:07.831310Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:07.830702Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([ True])"
|
|
]
|
|
},
|
|
"execution_count": 26,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"threshold = 0\n",
|
|
"y_some_digit_pred = (y_scores > threshold)\n",
|
|
"y_some_digit_pred"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 27,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:07.834535Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:07.834282Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:07.840676Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:07.840078Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([False])"
|
|
]
|
|
},
|
|
"execution_count": 27,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"threshold = 200000\n",
|
|
"y_some_digit_pred = (y_scores > threshold)\n",
|
|
"y_some_digit_pred"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"#### Compute precision and recall for range of thresholds"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 28,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:07.844026Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:07.843796Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:10.475531Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:10.474826Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"y_scores = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3,\n",
|
|
" method=\"decision_function\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:10.479280Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:10.479036Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:10.494777Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:10.494077Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"from sklearn.metrics import precision_recall_curve\n",
|
|
"precisions, recalls, thresholds = precision_recall_curve(y_train_5, y_scores)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 30,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:10.499634Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:10.497954Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:10.701765Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:10.701097Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(-700000.0, 700000.0)"
|
|
]
|
|
},
|
|
"execution_count": 30,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 1000x500 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def plot_precision_recall_vs_threshold(precisions, recalls, thresholds):\n",
|
|
" plt.plot(thresholds, precisions[:-1], \"b--\", label=\"Precision\", linewidth=2)\n",
|
|
" plt.plot(thresholds, recalls[:-1], \"g-\", label=\"Recall\", linewidth=2)\n",
|
|
" plt.xlabel(\"Threshold\", fontsize=16)\n",
|
|
" plt.legend(loc=\"upper left\", fontsize=16)\n",
|
|
" plt.ylim([0, 1])\n",
|
|
"\n",
|
|
"plt.figure(figsize=(10, 5))\n",
|
|
"plot_precision_recall_vs_threshold(precisions, recalls, thresholds)\n",
|
|
"plt.xlim([-700000, 700000])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"*Raising* the threshold *increases precision* and *reduces recall*.\n",
|
|
"\n",
|
|
"Can select threshold of appropriate trade-off for problem at hand."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"Note recall curve smoother than precision since recall related to actual positives and precision related to predicted positives."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"## ROC curve"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"*Receiver operating characteristic* (ROC) curve plots *true positive rate* (i.e. recall) against the *false positive rate* for different *thresholds*."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
},
|
|
"tags": [
|
|
"exercise_pointer"
|
|
]
|
|
},
|
|
"source": [
|
|
"**Exercises:** *You can now complete Exercise 7 in the exercises associated with this lecture.*"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Plot ROC curve"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 31,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:10.705549Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:10.705078Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:10.719896Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:10.719259Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"from sklearn.metrics import roc_curve\n",
|
|
"fpr, tpr, thresholds = roc_curve(y_train_5, y_scores)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 32,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:10.723141Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:10.722682Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:10.871990Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:10.871269Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 700x500 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def plot_roc_curve(fpr, tpr, label=None):\n",
|
|
" plt.plot(fpr, tpr, linewidth=2, label=label)\n",
|
|
" plt.plot([0, 1], [0, 1], 'k--')\n",
|
|
" plt.axis([0, 1, 0, 1])\n",
|
|
" plt.xlabel('False Positive Rate (FPR)', fontsize=16)\n",
|
|
" plt.ylabel('True Positive Rate (TPR)', fontsize=16)\n",
|
|
"\n",
|
|
"plt.figure(figsize=(7, 5))\n",
|
|
"plot_roc_curve(fpr, tpr)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"Dashed line corresponds to random classifier.\n",
|
|
"\n",
|
|
"Again, there is a trade-off. As the threshold is reduced to increase the true positive rate, we get a larger false positive rate."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
},
|
|
"tags": [
|
|
"exercise_pointer"
|
|
]
|
|
},
|
|
"source": [
|
|
"**Exercises:** *You can now complete Exercise 8 in the exercises associated with this lecture.*"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Area under the ROC curve\n",
|
|
"\n",
|
|
"Area under the ROC curve (AUC) is a common performance metric."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 33,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:10.875409Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:10.874976Z",
|
|
"iopub.status.idle": "2024-01-10T00:14:10.898598Z",
|
|
"shell.execute_reply": "2024-01-10T00:14:10.898029Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"0.9668396102663849"
|
|
]
|
|
},
|
|
"execution_count": 33,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"from sklearn.metrics import roc_auc_score\n",
|
|
"roc_auc_score(y_train_5, y_scores)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
},
|
|
"tags": [
|
|
"exercise_pointer"
|
|
]
|
|
},
|
|
"source": [
|
|
"**Exercises:** *You can now complete Exercise 9 in the exercises associated with this lecture.*"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Comparing classifier ROC curves"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 34,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:14:10.901977Z",
|
|
"iopub.status.busy": "2024-01-10T00:14:10.901330Z",
|
|
"iopub.status.idle": "2024-01-10T00:15:13.117633Z",
|
|
"shell.execute_reply": "2024-01-10T00:15:13.116928Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"from sklearn.ensemble import RandomForestClassifier\n",
|
|
"forest_clf = RandomForestClassifier(random_state=42)\n",
|
|
"y_probas_forest = cross_val_predict(forest_clf, X_train, y_train_5, cv=3,\n",
|
|
" method=\"predict_proba\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 35,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:15:13.121181Z",
|
|
"iopub.status.busy": "2024-01-10T00:15:13.120525Z",
|
|
"iopub.status.idle": "2024-01-10T00:15:13.130757Z",
|
|
"shell.execute_reply": "2024-01-10T00:15:13.130130Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"y_scores_forest = y_probas_forest[:, 1] # score = proba of positive class\n",
|
|
"fpr_forest, tpr_forest, thresholds_forest = roc_curve(y_train_5,y_scores_forest)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 36,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:15:13.133917Z",
|
|
"iopub.status.busy": "2024-01-10T00:15:13.133466Z",
|
|
"iopub.status.idle": "2024-01-10T00:15:13.315999Z",
|
|
"shell.execute_reply": "2024-01-10T00:15:13.315269Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.legend.Legend at 0x7f34fd8df7f0>"
|
|
]
|
|
},
|
|
"execution_count": 36,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAIeCAYAAACiOSl5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8WgzjOAAAACXBIWXMAAA9hAAAPYQGoP6dpAACtnklEQVR4nOzdd1xT5x4G8CcJWxRUQAEBcaDiQhy46h4468StKFatrVWr1WrrrOM6arVqba0LxYqjtlq11r0VrYC27oGbIcOwZ87945SwNUTgBHi+n09uk/PmnDxBL/7y5h0yQRAEEBERERFRFnKpAxARERER6SIWykREREREuWChTERERESUCxbKRERERES5YKFMRERERJQLFspERERERLlgoUxERERElAsWykREREREuWChTERERESUCxbKRERERES50MlCOTY2FvPmzYO7uzsqVKgAmUyGbdu2aXz+mzdvMG7cOFhaWqJMmTJo3749/P39Cy8wEREREZU4Olkoh4eHY+HChbhz5w4aNmyYr3NVKhV69OiBX375BZ9++imWL1+OsLAwtGvXDg8ePCikxERERERU0uhJHSA31tbWCA4ORuXKlfH333+jadOmGp+7b98+XLp0CXv37sWAAQMAAB4eHnBycsK8efPwyy+/FFZsIiIiIipBdLJH2dDQEJUrV9bq3H379qFSpUro16+f+pilpSU8PDxw4MABJCUlFVRMIiIiIirBdLJQfh8BAQFwdXWFXJ71rTVr1gzx8fG4f/++RMmIiIiIqDjRyaEX7yM4OBht2rTJcdza2hoA8OrVK9SvXz/Xc5OSkrL0OKtUKkRGRqJixYqQyWSFE5iIiIiItCYIAmJiYmBjY5Ojo/R9lbhCOSEhAYaGhjmOGxkZqdvzsnTpUixYsKDQshERERFR4Xj+/DmqVKlSoNcscYWysbFxruOQExMT1e15mTVrFj7//HP1Y6VSCXt7ezx//hzlypUr+LCZ86WkITQ6ESFvEvFKmYAQZRLCYhPxOiYJ4bHJCI9JRERcMlLShELNoS2FXAa5XAY9OSCXySCTAQqZDHKZDHJZ+rH/7sszHf/vvuK/c2TZ7qefK5cBMojH068vl8kAGf67/99xZD1PJgPkyLieLNvz1Dnl6a/z32vJZP9ly8iuyP4+/jtPlilj5mukvzeZTAY50p+fNZtC/ZyM9y5eM1NGiK8B/PczQPp98X/Sj/z340D6E9SP1efLMl0H6m9JZOrnyjI9N/M1Mp2X/XGm10u/fsZryrK8fubs6mPZMhARqVTA/QeAIAAmxoCDQ9b2x4+BN28AQQU0aAjo62e0PXkCBN4Q2xo3BuztM9pSUoCvvwIqWwO1agHdu2e97rx5QFgoYGIKfLsya9vn04DLl4AyZYAfNwA1ama0Xf8bGD5SvD/tc2Ds2Iy2V8FAx47iffeuwHffZb1uHWfxv2VNAT+/rL8HP/oIuHBRvO+7C8i8CNi//wIDPcT7kz4FRo4ATMtm/Pzq1hPvN2oI/LIr62uOGQNcviLe//tvoIxJRtvWLcDy/977mtVAly4ZbffuA336iPc9BgLZ+xU/7APcvw8YGQIBAVnbFiwE/jwC6OkDPjuAqlUz2i5fAf46Krb17QPUrZvRFhsDHD8OJKcAzZuLfxfS0tLw0/rvYWhoiFbtJiItFTAzi0HHljVRtmxZFLQSVyinr5iRXfoxGxubPM81NDTMtTe6XLly710oC4KAy48j4Pc4EndDonE/NBYRsUlISROQnKZCmupdBbAC0DOGXIs/MSN9OazKGqG8iT7KGunD1FAPpkZ6KGukh7Lq+xnHTQ31YKgnh55cDj2FDHpyGfQVcijkMugpZNBXH89o59AUIiLdIAg5P3gmJYmFoiAAJiaAQpHRFhUlFp9paYCdHfDfSEUAQHIy8Ouv4nnW1kD79lmve/w48PSp2D58OJC5L+rSJeDAASA1FRg2DHB1zWh7/lwsuvz9gVWrgKlTM9ri4oA6VcX7HToAJ09mfc2ZnwG//y7ef/Uqa95Th4GZk8T727YBnVpltN25A/zuK94fNAiYMj7rdf8+Dzx8CFSoADjZZW2zMAEiXwKRAKzKZW0Pug2oYsX7Ua+ytpnIMtqMkfO6bZoAZ84AyljAzkL8s0nXvT1w7i/xvm22THHhWV/zyV0gfQ0DQQBcawNyOdCgTs7X7NNVPKanB9Syy/qa/XsAlmXFvx9d2wA1M51b2Qw4sEv8u2Vvn/O6238E4uPFc7O37fwZeXKyA0YNzLvd1TnjfmhoKIYNG4mTJ09CoVBg7KjhqFmzJqKjxb94hVGLlLhC2cXFBefPn4dKpcoyTsXPzw8mJiZwcnIq0jyvY5Jw+l4YtlwIwt2QGK2uIZMBFcsYwLKsEcyN9WGgJ4e+Qg4DPRkMFOJ9fT05yhnpw6qsISz/u6XfNzXUYyFLRFSEEhPFAlGpBGxts7Y9ewaEh//X81c3a3H57Blw+bJYtLq6ArVrZ7QdPSoWf4IAtGsHfPxx1uuamAAJCYCLS84evU8+ATZvFu//8w9Qr15G27FjwODB4v3sRWtCAjB0qHi/S5echfLatcAff4j3P/ww63vx9weWLxfvN2qUtVBOTBTb09/zmzeAubn4OPMQUyGXPqS3tWduS0vL2pa5F/Pff3NeN/3Dg0qVs61GjdxfAxD/fGvVAu7dy/pzBQAzM2DRIvGcWrVyXnfy5IwCN3PBCgBDhgBNmgBVqmTtGQfE1wkJETMbG4s93elkMuDatZyvlW769LzbmjQRb7kpVw7o2TPvc/Oxkq9WTp48iWHDhiE0NBQmJib44YcfULNmzXef+J6KdaEcHBwMpVKJ6tWrQ/+/714GDBiAffv2Yf/+/ep1lMPDw7F371706tUr1x7jgpaYkob9/i/hc+UpbgdH5/ocI305rM2MYaCQw0BPDiN9OSqVM4KtuTFszI1hbWYEazNjWJUzRIUyBtBXlLgFSoiI8i29MMr82T8+Hnj5UiyMKlYELC0z2uLigO+/F9tq1hR7EjObMwcIChILDm/vrG0HDgA//igWqNmLyzNngM6dxaLqyy+BxYuznmtvD7x+LRaI2TeGnTdPLHgB4PZtoE6djLZLl8QCCQBWr84olNPSxNvu3eJjY+OchXL6zya/xaVepkoge3GZn6I1e4H5tutmbtu2Dfjf/7K2jRuXd3HZuzfg6Cj+HchcIAJA69bA+vXiuS1bZm0zMAB27hR71nMr6i7+N8whc297utmzxVtu88Tq1QPu3s15HADKlgW++ir3NiBjKENu7O1zFsjp9PWBSpXyPrckSUtLw8KFC/HNN99AEATUq1cPu3fvhrOz87tPLgA6WyivW7cOb968watXrwAAf/zxB168eAEAmDRpEszMzDBr1ix4e3sjKCgIVf/7qDhgwAA0b94co0ePxu3bt2FhYYEffvgBaWlphT5RLyYxBTuuPMWm80GIjEvO0e5iZ45RLR3gYlce9hVMoJCzl5eIpBUVJf6ja2qacUwQgFOnxK/ry5YFPvgg6zm7dolf1atUwMyZYgGS7sgRsV2lAqZMyVqQPHggfj2vUgF9+4qFR2YGBmIRU6+eWJhmNmMGsHKlmO38ebEgSnfhAtC1q3h/zhxg4cKMtri4jNfp1StnoXz4sNj7qq+fs1B+/FgskgGxB1ipFHsI06Wmiv/NrQcyvS0lBbh1K+u4y7cVl3n1iCoU4jCE7NfPrEkTcahEbp1sdeqIY2Xl8pzFZfXqwMSJ4ms0apS1zdBQHFeb/nV7dhMnAj16iO3ZRyj27g04O4vXzZ7JwQGIjhbbsvek6usDP/2U87XSjRqVd5uzs3jLjUKR0Tuem4oV824r4IUUSEOCIKB79+44duwYAGDs2LFYs2YNTLL/pSlEOlsor1y5Ek+fPlU/3r9/P/bv3w8AGD58OMwy/7bKRKFQ4MiRI/jiiy/w/fffIyEhAU2bNsW2bdtQK7ePpgXgeWQ8Nl8Iwr7rLxCblPW3V31bM7SuaYFOdazgal+eQyCISrH4eCA2FihfPusEpIsXxcIwNVX8Sj1zz2V0NDBrllggNmwIjM82rvLbb8VeSUEANmwQC5t0586JBYcgiBN4OnXKaAsKAqpVE+8vWADMnZvRtmuXOKYUEIvkc+eyvuaWLcCJE+L9qVOzFsq3bwM+PuL9vn2zFsqJicDVq+L97AUZIBZaERHiWNLc5NVjmrkHMHvPZea23IrL9AIot97SzL+ud+wQe3fT/+kpV06cLCaX5xxaAYi9zeHh4p9f9p6/9u3FPyeFQvy7kJmLi1iYyuU5P6AYGYl/V2xtxQ8w2Z0/n/NYuqlTsw6pyP6a69fn3mZgIH7gyUvmyV7Z2diIt9zI5bm/B6LMZDIZevTogUuXLuGnn37C0Ld90imsDIKQ268HAoDo6GiYmZlBqVTmOpkvTSXg+5MPsP70Q6RmmownlwE9G9jgow+qoX6V3At6ItJNaWnieMmUFLFIqFAha/vWrWLBZ2aWs3fqu+8yvoJduTJrIeDqmjFu9Nq1jHGAT5+KRcqKFeLjDRuACRMyzgsJyZis9OGHGZOY0nXqlDHZKSYma8+wtzfg6Sne/+GHrF/VBwZmFKvt2gGnT2e0JSeL4yJfvxZzZh/v2LWrOK4VEH9WmfstVq0Cpk0T7+/eDXh4ZLTdugXUry8WSWPGABs3Zr1umzZi77Ag5Cxc164Vi1W5XPwZZS60b98Gli4VC8+ePYH/Rt2p38uff4ptlSrl/Mr92TPxz1omy/jgkC4uTrzJZOLfg9y+kieigpWamopXr17B/r+vMARBwIsXL2BnZ5fnOe+q196HzvYoFwdf7LuB/f4v1Y+N9RXo08gWH33giGqWpm85k4gKiiCIBZ2VVdbje/eKRVdamtgjm97rJwiAl5dYXKalicXtwEwzrp88yZi4M3SoOKYxs6lTxa/ga9XKWiirVGIB9+CB+HjOnKyFcteuGYVy5hUs7e3FYje9UM7e65m5V/NdvZ7Z29/WZmcn9lAmJubsETUwEIvN169zLqEFAPPnA59+mvvX5p6e4hAHuTxnT2rdurkPU0iXvec6s0mTxFtunJ3FIjo3BgbiB4y85DUGFBCHKGQfpkBEhef58+cYMmQIQkJC4O/vj3LlykEmk721SC5sLJS1tPvaM3WRLJcBE9pWx0cfVEP5MgbvOJOo9FGpxK/UX70Si6fKlTPaIiLEQvb8ebEnMvMapFFRYk+emZnYg5i51xMQxypu3y7eT0zMOuzg1ClxIhYgFsbpxWBUlNiDunWr+Dgm22I0mYdEpKTkfC95zYyXy4Fu3TIK5bi4rO316omz7iMisvbAymTiV/pTp4q9ztl7PCtUENc6lckyVgXI7OefM3o9sxetffsCrVqJbRYWWdsqVhRXNMjLDz/k3daiRd5tFSrk7IUnInqXw4cPY+TIkYiMjES5cuXwzz//oFWrVu8+sZCxUNbCufuvMfPXjJkmqzxc0KdRLoPUiEqYhASxlzY6WpwYlLlwu30b8PUVv+ru1g1o2zajzdc3Y8zr//4nTgBLFx8vFnuA2OOakJCxxFRqqjgJ6c4d4L+5vFlknmDj5yd+dZ8urxn3FSpkXRXhv0071UxNxV5Uff3cl0lau1YsoHObJuHlJRamTk45N0kYNizjZ5Cdvb04ZCE3+vriWNi8ZF7yKruyZTkOlIh0W0pKCmbPno2VK8WdTho3bozdu3ejevXqEicTsVDOJ0EQ8O2xe+rHI5o7sEimYic4WCx209LEoi69qEzfXODHH8Ve39WrM8bHpm9UkM7fP+s40Xv3gG++Ee+XL5+1UM78rdmtW1mzZO7B3bAh6zJRlpYZ2bKPHwXEmfQtWojFtlKZte3zz8UVFvT0sq5FCwDu7rkPYwDEQvrw4dzbgLfPmm/QQLwREdG7PX36FIMGDYKfnx8A4LPPPsPy5cuLZClfTXHBk3zyf/YGN16I/yLXrlwWCz+s+44ziApfeHjOYx9/LPaWNmuWe1vt2uKY0YiIjOMXLohDFs6dA/bsEXfPSpeSAqxbl/E4++oCmX+vJWdbHTF9HG6VKjnXDa1YUdxg4do1sYDP3gP699/iMIe//sr5PmbPFtedDQwUx8Vm5ugIuLmJvbHZx5ly8RkiIunNmDEDfn5+MDc3x2+//YY1a9boVJEMsEc53/b+nVE5eLV25HJv9N6SksSVEpKSxJ7YzOuNxsSIQxxSU8We0+xLOLVoAVy5Io6bzT4JbPNmsbh9/VpcmcDEJGMZr7zWam3fXlwFYNMm8bG/f0ahbWAgFtbNm4vDDrJPAGvWTFwJwcBALFIzc3AQt7rNjb6+eM28GHDYPxFRibR27VokJSVh9erV6v0wdA0L5XyIS0rFHzfEDVDKGCjQo4H1O84gEimV4rCE8HBxcf7Mqyy8fCmuYwrkvspC+tJc2SdjZVazptgr27x5Rm9pmzbiyg5PnojDKby8Mp7fvr3Yc6tQZB2jK5OJGzls2SJmyr5wf7t24uvkxsJCXDuWiIgoN48fP8bevXsx87+JKlZWVvg9+5qXOoaFcj4c+ScYccli91uvhjYwMeCPjzKoVOK2q+fOiWvHLlqU0RYTI24MAYg9qJkL5czfMiUmZr2mnp7Y+6unl/sarunLbZmbi0MoMn/BsW6dOATCySnnhLW8ltkCxKXR0pdHIyIiKgj79u2Dl5cXoqOjYWdnJ8nmIdpgpZcPv/pnTLsf2ES6Nf1IWgEB4jCCtDTgyy8zitMHD8ThDoA41jc+PmPyW+Zxt5s2ZazyAIg7fH30kVgwZ9+tzNg451jgzNKHSOQm+wQ2IiKiopaYmIhp06bhh//WnGzVqhU+yL7tpA7jznxvkXmnl5uhyRi+WZyV6VDRBGemt+P45BLszRtxnd2AALFnNn2jn9u3xV7cdPHxGUuZAeJQhfTtd//5J2Mr4rQ0cZcyfX1xrVwdWfWGiIio0Dx48AAeHh4IDAwEAHz55ZdYuHAh9DMvd1QAuDOfDkgfmwwAkzrUZJFcAjx8CNy8KQ53cHXN2gPboEHGig8LFog9w3p64ljgWbPE7XIBcbhDlSoZ5333nTipztU1Y1k1QBw2UUy+ZSIiInpvv/76Kzw9PREbGwsLCwvs2LED7u7uUsfKNy4PpwFBEHDuwWsAgIFCjp6cxFdsqFRiQXzwYMb2wQAQFCSu2du/v7gJxNGjWc+bPz/j/qhRGcMf9PXF9YF79BA3nsi+A1nXrmKbNf+KEBFRKWZiYoLY2Fi0adMGgYGBxbJIBlgoa+Tfl0oEK8VZVq1qVISRfi6zqkhy9+6Ja+qmS00FfvpJ7AX+8EOxsE1nbw+MHJnxOPtWvvXrixPyRo4Edu3KOuGua1fg0CHg009zbhlMRERUWiUlJanvd+vWDX/99RdOnjwJ2+zriRYjLJQ1cP5Bxm4OXepWljAJ5ebePXFCXe3awJIlGceTk4Hx4zPGEB84kNGmUIjPd3cXh0tkX9asaVNxTLG3d871gomIiCir7du3o0aNGnjy5In6WJcuXaCnV7xH+bJQ1oD/syj1/Q9qvmUxWyp0iYnA6dPi9svpXr0CBg0S7584AZw5I943MRGXVmvYUNy0Y8aMrNcyNAT+/BOYMgVo0qQo0hMREZUscXFxGD16NEaNGoUXL17g+++/lzpSgSreZX4ReRAaA0AfFqaGqFKe37UXBUEQe4QzD3m4di1jl7g9ezLWIm7fHti3T7xvayvuVpdZXhtkEBERkfZu3boFDw8P3L59G3K5HPPnz8fs2bOljlWg2KOsgYi4FABANYsyEicp+VJTxWEUcnnWXmMg63jgtWuBW7cyHi9aJE7ce/Qoa3FNREREBUsQBGzevBlNmzbF7du3YW1tjVOnTmHOnDlQ5LY7VjHGQjkfqlQwfveTSCPNmwNlyoi3N28yjkdHi73CpqbiGGIbGyBF/JwCGxugVSugalXxv5nXIi5fPuuudERERFQ4duzYgbFjxyIhIQFdunRBYGAg2rZtK3WsQsFCOR+szYze/SRSS0oS1xy2tBR3qsvMykrcrCM+HoiNzTheoQLg6Cgeq1AB+PprcUk2QCyGL1wQl3ZbujTntsxERERU+Dw8PNCkSRMsXboUf/75J6ysrKSOVGg4RjkfrMqyMstNXBzw5AkQGQmk70oZEpJ1LeHg4Kzn1K0L/PGHeD81NWvbuXPsHSYiItIVgiDg999/R+/evaFQKGBkZITLly8X+xUtNMEe5XyozB7lHC5eFNcprlcPGD0643hamrj+8I4d4uMNG4BnzzLaFy8WJ+wJgjiUIjMWyURERLohOjoagwcPRr9+/fDNN9+oj5eGIhlgoZwvtuald4zy4cNAu3ZiEZt5FYl69YA2bcT7r15lbPhhawsMHiyOQV66VFyGzd4+4zw5/+YRERHptOvXr8PV1RV79uyBnp4ezMzMpI5U5ErHx4ECUsPKVOoIRUIQgJs3xfWH0x+HhgJnz4qP798HnJ0BMzPx5uQkHu/WDahVK+u1+vYtutxERET0/gRBwLp16zB9+nQkJyfDwcEBvr6+aN68udTRihz79TRU3kS/VGxd/fKl2NvbqVPGMZkMGDo04/HixVmXalu4UCymf/0VqFix6LISERFRwXrz5g0GDBiAzz77DMnJyejTpw8CAgJKZZEMsFDWWIUyBlJHKBIbNoj/DQ8Xt28WBPGxkRHw22/iOsV372asREFEREQlx8uXL/Hnn39CX18fa9aswf79+1G+fHmpY0mGhbKGzIxLXmV44wbQs6e4jFu6zBvq/PFH1ol1ffoA1apxfDEREVFJVbduXXh7e+PSpUv47LPPICvlM+xZ8miopBXK330HuLiIk/QCAsTtogFxSMX8+cCJExnbQhMREVHJFBkZif79++Nyppn6AwcORJMmTSRMpTtYKGvIsmzJ2Rc5NhYYODBjw46JE4HnzzPa580DOnaUJhsREREVjUuXLsHFxQX79++Hp6cn0tLSpI6kc1goa6iqRRmpI2gtIQGYORN4+lR8bGoKVKmSMeRi3bqs20ETERFRyaVSqbBs2TK0adMGz58/R82aNbF7924oFCV/0YL84vJwGrIxK55rKN+4IQ6xAIC2bcXH7u6AgYE43KKUrBdOREREAF6/fo1Ro0bhzz//BAAMHToUP/74I8qWLStxMt3EMklDpobF80dVoQIwbRrw7bdAjx7iMZVK/C+LZCIiotLjxYsXcHNzw6tXr2BkZIR169ZhzJgxpX7C3ttw6IWGyhSTQvngQWDKlIzHdnYZayIPGQKkpnKLaCIiotLI1tYWTZs2Re3atXHt2jV4eXmxSH6H4lH96YCyRrr/o+rZU1zFQi4H/vc/scdYTw/o2jVjPWQiIiIqPUJDQ2FiYoKyZctCJpNh27Zt0NPTg6lp6dht+H2xR1lDJga6P8D9q6/E/6pUQKNGGT3H/LBIRERU+pw6dQouLi4YP348hP96zMzNzVkk5wMLZQ2ZGOhej3JwMHDtWsZjN7eMovjcOYCTV4mIiEqftLQ0zJs3D506dUJISAhu3ryJN2/eSB2rWGKhrCEjfd35UQkCMHQoYGMDbN6cMaxCLgfCwsTHlpbSZiQiIqKi9+rVK3Tq1AkLFy6EIAgYO3Ysrl69Wqq3oX4fulP96Tgjfd3png0PB3btEu/fvg38+GNGm4WFNJmIiIhIWseOHYOLiwvOnDkDU1NT7Ny5Ez///DNMTEykjlZssVDWgEIug6Ge7vyoLC2B48fF++fPA+3aSRqHiIiIJJaQkIDRo0fj9evXaNiwIa5fv46hQ4dKHavY053qT4cZG8glXz5lzRogJSXjcadO4rCL1FSgTh3pchEREZH0jI2N4ePjg4kTJ+LKlStwcnKSOlKJoHsz1HSQoUK6zxOxsUDZsoCtrTj2uHx5YNQosW3MGMliERERkcSOHDmChIQE9O/fHwDQvn17tG/fXuJUJQt7lDWgJ2GhvHev+N+XL4GpU4GtWyWLQkRERDogJSUFM2bMQI8ePeDp6YlHjx5JHanEYqGsAYW86IddpK9kMXo0EBkprpHcujVw5kyRRyEiIiId8fTpU7Rp0wYrVqwAAIwZMwZVqlSROFXJxaEXGtArwkL5xQugbl1xNQtbW/FY+fLAokVFFoGIiIh00IEDB+Dp6Yk3b97A3NwcW7ZsQd++faWOVaKxR1kD8iIqlAUBsLMTNwoZMwawtwdiYorkpYmIiEhHCYKAzz//HH369MGbN2/QrFkzBAQEsEguAiyUNaAvL5ofU1AQULs28OYNcOwYUKOGOJGPiIiISi+ZTAbFf9vtTps2DefPn0fVqlWlDVVKcOiFBopqDeVq1YA7d4CQEGDbNuDLL4vkZYmIiEgHJSYmwsjICACwZMkSdO/enataFDH2KGvAUK9od+WrXJlFMhERUWmVmJiITz/9FO3bt0fKf5so6Ovrs0iWAAtlDRjoF96PKTkZ+PRTICmp0F6CiIiIiokHDx6gZcuWWL9+Pa5cuYLj6VvxkiRYKGtAX1F4k/kGDwbWrwcqVgQ6dy60lyEiIiId5+vri8aNGyMgIAAWFhb4888/0b17d6ljlWoslDVQWIXy06fAb78BhoZAXJy4ygURERGVLgkJCRg/fjyGDBmCmJgYtGnTBoGBgXB3d5c6WqnHQlkDeoW06oWDg7gk3LNnwMcfA5s3F8rLEBERkQ776KOPsHHjRshkMsyZMwcnT56EbfpmCiQprnqhgYLecCQqCjAxEXuSAUClAtatK9CXICIiomJi7ty58PPzw4YNG9CpUyep41Am7FHWgKIAe5STkwEXF2D37oxjlSsDRbRUMxEREUksLi4Of/zxh/qxk5MT7ty5wyJZB7E804CBXsH1KK9dKw61+OEHcWMRIiIiKj1u3bqFZs2a4cMPP8Tp06fVx/X0+CW/LmKhrAFFAQ69aNkSqFAB8PMTb0RERFTyCYKALVu2oGnTprh9+zYqV66s3m2PdBc/vmigICfztWghFsuPHgFduhTYZYmIiEhHxcbG4uOPP4aPjw8AoEuXLtixYwesrKwkTkbvwkJZAzJZwU7mmz1b3K66gC9LREREOubmzZsYOHAg7t+/D4VCgW+++QYzZ86EnJOTigUWyhp433WUnz0Djh4Fxo0TH7doUQChiIiISOf5+fnh/v37sLW1ha+vL1q3bi11JMoHFsoaULxn1++0acCpU8DIkYCBAVe4ICIiKi3Gjh2L2NhYjBgxAhYWFlLHoXxiyaYBPYX2PyalEti/H4iMBMaMARISCjAYERER6RR/f3906tQJUVFRAMThm1OnTmWRXEyxUNbA+2w48s8/gKOjeD8tDShTpoBCERERkc4QBAHr1q1DixYtcPLkScyePVvqSFQAOPRCA++zjnLr1sDDh8CrV0BqagGGIiIiIp3w5s0beHl5Yf/+/QCAPn36YMmSJRKnooLAQlkDBnrv3/FuY1MAQYiIiEinXL16FYMGDcKTJ0+gr6+PlStXYtKkSQW+YhZJg4WyBvTfY4yySsXJe0RERCXRH3/8gf79+yMlJQXVqlXD7t270aRJE6ljUQFiCacBbQrl6GigXj3g+nXgv/H8REREVIK0atUK1tbWGDBgAPz9/Vkkl0AslDWgzTrK06cDt24BzZoB48cXQigiIiIqcvfv34cgCACAChUqwM/PD3v27IGZmZnEyagwsFDWgEKLsRO//55xv127AotCREREElCpVFi+fDmcnZ2xZcsW9fHKlStzPHIJxkJZA9qsDhcSAgQGirvwffxxgUciIiKiIhIeHo6ePXti5syZSEtLw6VLl6SOREWEhbIG5Fp8UpTLgSpVgEOHAH7QJCIiKp7Onz8PFxcX/PnnnzAyMsLGjRuxadMmqWNREeGqFxrQttCtWLFgcxAREVHRUKlUWLp0KebOnQuVSoXatWtjz549qF+/vtTRqAixR1kD+RmjnJoK3LlTiGGIiIio0Pn7+2POnDlQqVQYOXIkrl27xiK5FGKPsgbyszrc1KnicItatYBvvgGaNi28XERERFQ4mjRpgsWLF8Pa2hqenp5SxyGJsEdZA/mZzfrvv8CTJ8Bff4lrKRMREZHuS0tLw+LFi/HgwQP1sVmzZrFILuVYKGsgP0OU69YFHBzE+1x3nIiISPcFBwejc+fO+Prrr+Hh4YGUlBSpI5GOYKFcwNatE3uUHzwAuPY4ERGRbjt+/DhcXFxw+vRplClTBtOnT4e+vr7UsUhHsFAuJDVqSJ2AiIiI8pKamoqvv/4aXbt2RVhYGBo2bAh/f38MGzZM6mikQziZTwPccYeIiKjkCA8PR79+/XD+/HkAwIQJE7Bq1SoYGxtLnIx0DQtlDWhaJqekAIIAGBgUahwiIiJ6D+XKlUNycjLKli2LTZs2wcPDQ+pIpKN0duhFUlISZs6cCRsbGxgbG8PNzQ3Hjx/X6NwTJ06gffv2sLCwgLm5OZo1a4YdO3ZonUWTDuX0ArlmTaBPH61fioiIiApBSkqKepKegYEBdu/eDX9/fxbJ9FY6Wyh7enpi1apVGDZsGNasWQOFQoHu3bvjwoULbz3v4MGD6NKlC5KTkzF//nwsXrwYxsbGGDlyJL777jutssg06FNOX03m2TPxRkRERLrh6dOnaNOmDb7++mv1MQcHB9TghCJ6B5kgCILUIbK7evUq3NzcsGLFCkyfPh0AkJiYiHr16sHKygqXLl3K89wuXbrg1q1bePz4MQwNDQGIA/Zr166NMmXK4MaNGxrniI6OhpmZGY75P0bnRo5vfW5iIrB+PTB9OjBxonifiIiIpHXgwAGMHj0aUVFRMDc3x4MHD2BhYSF1LCpA6fWaUqlEuXLlCvTaOtmjvG/fPigUCowbN059zMjICF5eXrh8+TKeP3+e57nR0dEoX768ukgGAD09PVhYWGg/SF+DoRdGRsC0acDx42KxTERERNJJTk7G1KlT0adPH0RFRaFp06bw9/dnkUz5opOFckBAAJycnHJ8KmjWrBkAIDAwMM9z27Vrh1u3bmHOnDl4+PAhHj16hG+++QZ///03ZsyYoVUeeT5WvejUCXB8e+czERERFaKgoCC0bt0aq1evBgB8/vnnuHDhAhz5DzTlk06uehEcHAxra+scx9OPvXr1Ks9z58yZg6CgICxevBiLFi0CAJiYmODXX3/Fhx9++NbXTUpKQlJSkvpx9H97UHNxOCIiouIhKSkJbdq0wYsXL1C+fHl4e3ujV69eUseiYkone5QTEhKyDJ1IZ2RkpG7Pi6GhIZycnDBgwADs2rULPj4+aNKkCYYPH44rV6689XWXLl0KMzMz9c3Ozg4AIHvHTyk0FLh+/R1vioiIiAqdoaEh/ve//6Fly5YIDAxkkUzvRScLZWNj4yw9u+kSExPV7Xn59NNP8ccff8DX1xeDBw/GsGHDcOLECVhbW2Py5Mlvfd1Zs2ZBqVSqb+ljod/VozxzJtCkCVCnDnDixDueTERERAXqwYMHWTrDhg0bhnPnzsHe3l7CVFQS6GShbG1tjeDg4BzH04/Z2Njkel5ycjI2b96MHj16QC7PeGv6+vro1q0b/v77byQnJ+f5uoaGhihXrlyWG/DudZT/G6GBu3cBE5O3P5eIiIgKjq+vL1xdXdGvXz+EhYWpjysUCglTUUmhk4Wyi4sL7t+/rx4jnM7Pz0/dnpuIiAikpqYiLS0tR1tKSgpUKlWube/yrsl8LVoAvXoBxsaAs3O+L09ERET5lJCQgPHjx2PIkCGIjY1FjRo1tPo3nuhtdLJQHjBgANLS0rBx40b1saSkJGzduhVubm7qscPPnj3D3bt31c+xsrKCubk5fvvttyw9x7Gxsfjjjz9Qu3ZtrZaIe1eh/MUXwMGD4lhlc/N8X56IiIjy4d69e2jevDk2btwImUyGr7/+GqdOncp1IQCi96GTq164ublh4MCBmDVrFsLCwlCjRg14e3vjyZMn2Lx5s/p5I0eOxNmzZ5G+Z4pCocD06dPx9ddfo3nz5hg5ciTS0tKwefNmvHjxAj4+Plrl0XR5uLJltbo8ERERacjHxwcTJkxAXFwcrKys4OPjg86dO0sdi0oonSyUAWD79u2YM2cOduzYgaioKDRo0ACHDh1CmzZt3nreV199BUdHR6xZswYLFixAUlISGjRogH379qF///5aZcnHMspERERUSARBwOHDhxEXF4f27dtj586d7EWmQqWTW1jrivQtEa/cfQa3Wna5PufiRXGDkTzmFxIREVEBio6OxpYtWzBp0iRO2CMApXALa13ztqEXn30G2NoCs2YBb1nemYiIiPJJEARs3boVw4cPVw+zLFeuHKZMmcIimYrEe/Uov3r1Cv7+/ggNDUVUVBTKly+PSpUqoXHjxiXiq5D0Tyh/33+BxjVtc7QLApC+Cp1MBqSkAPz/LRER0fuLjY3Fxx9/rJ5f9Ouvv6Jfv34SpyJdVJg9yvkeo/zs2TNs2LABv//+O+7fv5/n85ycnNC3b19MmDCh2C/4nVeHckwMMHIk8PQpcOMGi2QiIqKCcPPmTXh4eODevXtQKBT45ptv0KdPH6ljUSmkcY/yo0ePMHPmTBw4cEC9TqG5uTnq1KmDihUroly5clAqlYiIiMCdO3egVCoBiCtR9OnTB8uWLUO1atUK750UgvRPKNcfvIBrjZw9yunevAFUKqBChaLLRkREVNIIgoCff/4Zn332GZKSkmBrawtfX1+0bt1a6mikwyTvUf7yyy+xZs0aJCUloWHDhvD09ETnzp3hnMfuGoIg4NatWzh+/Di8vb3x66+/4tChQ5gyZQqWLl1aoG9AF3DtZCIiovc3bdo0fPfddwCA7t27w9vbGxYWFhKnotJMox5luVyOHj16YMGCBXB1dc33i1y/fh1z587F0aNHi9WuOZr2KBMREdH7u3TpEjp27IhvvvkGn3/+OeRyrjlA7yZ5j/L58+fRqlUrrV+kcePGOHz4MC5evKj1NXRNWhrg6wt4eAD6+lKnISIiKn4EQcDdu3dRp04dAEDLli3x5MkTVKpUSeJkRCKNPqq9T5FcGNfRBffvA8OHA5UrA15eUqchIiIqXt68eYMBAwagcePGuHXrlvo4i2TSJYX+nUZqamphv4QkoqLE/0ZGAq9eSZuFiIioOLl27RpcXV2xf/9+pKamIiAgQOpIRLkqtEJZpVJh06ZNcHJyKqyXkJSBAdClC+DsDLi7S52GiIhI9wmCgNWrV6NVq1YICgqCo6MjLl68iOHDh0sdjShX+V5H+V1UKhV27NiBRYsW4fHjxwV9eZ3RpAnw119SpyAiIioeIiMjMWbMGBw4cAAA0L9/f2zatAnmXDqKdJjGPcoRERGYNGkSqlatCmNjY1StWhWTJ09GVPoYBABHjx5FvXr1MGbMGDx69AhmZmZYsmRJoQQnIiKi4mPz5s04cOAADAwMsG7dOuzdu5dFMuk8jZaHi4uLQ5MmTXD//n1kfrpMJkOjRo1w5coVfP3111ixYgUEQYCxsTEmTZqEL7/8slj/n4DLwxERERWMtLQ0fPTRR/j000+1WmqWKC+SLw/3/fff4969ezAwMMCoUaPQoEEDREdH49ChQ7h8+TIGDBiAgwcPAgCGDx+OZcuWwdraukCDSim3HawfPwaK2UaDRERERSY8PBxLlizB0qVLYWhoCIVCgS1btkgdiyhfNCqUDx48CLlcjhMnTmTZRnLWrFkYPXo0vL29IZPJ8P333+OTTz4ptLCSyVYpp6QA1asDH3wATJkC9OsnSSoiIiKddP78eQwZMgQvX76EIAjq3faIihuNxijfu3cPbm5uue61/uWXXwIAnJycSmaRnIvISPG/588DmzZJm4WIiEhXqFQqLF68GO3atcPLly9Rq1YtjB49WupYRFrTqEc5Ojoa1fIYZ1C9enUAQMOGDQsulc7J2qWsVAKWlkBEhLjhCBERUWkXGhqKESNG4Pjx4wCAESNG4IcffoCpqanEyYi0p1GhrFKpoJ/HPs16euIlTExMCi6VjpFnG3rh5ASEhQEqFZCUJE0mIiIiXXHlyhX07dsXISEhMDY2xvr16+Hp6QmZLLdZPkTFR4Gvo1wSyfP4P7pcDhgbF3EYIiIiHVOpUiUkJCTA2dkZe/fuhbOzs9SRiAqExoXy0aNH0aFDh3y3y2QynDx5Urt0OiKvQpmIiKi0iouLQ5kyZQAAjo6OOH78OJydndXHiEoCjQvlkJAQhISE5Lu9JHztUvzfARERUcE5fvw4RowYga1bt6Jbt24AgKZNm0qciqjgaVQoz5s3r7Bz6LTstf7UqUBUFGBhAaxcKU0mIiKiopaamor58+djyZIlEAQBK1euhLu7e4noFCPKjUY785VW6Tu93H4SjDoOGctb2NoCr14BVlZAaKiEAYmIiIrIixcvMHToUJw/fx4AMH78eHz33Xcw5mQdkpjkO/NRBkEQl4UDgEqVpM1CRERUFI4cOYKRI0ciIiICZcuWxcaNGzF48GCpYxEVunwVyg8fPsT+/fvx5MkTGBoawsXFBR4eHqXu02RYGBAcDCQmSp2EiIiocAUGBqJHjx4AAFdXV+zevRs1atSQOBVR0dB46MXq1asxY8YMpKWlZTlua2uLI0eOoF69eoUSUEp5Db0gIiIqTby8vGBiYoKVK1fC0NBQ6jhEWRTm0AuNCuULFy6gbdu2EAQBZcqUQa1atRAdHY3Hjx9DpVKhZs2auHPnDuRyjXbELjZYKBMRUWl0+PBhNGvWDJaWlgDEjcdK2r/xVHIUZqGs0d/6devWQRAEjBo1CiEhIfj7779x//59+Pv7o3r16nj48CGOHj1aoMF0SebZvCoV8Py5hGGIiIgKSXJyMqZOnYqePXti5MiRUKlUAMAimUotjf7mX758GVWqVMFPP/2UZSHxBg0aYM2aNRAEAVeuXCm0kFLLvOjNqlXA7t3Ab78BSqVkkYiIiApUUFAQWrdujdWrVwMA6tSpk2O4JVFpo9FkvtDQUHTv3h0GBgY52lq3bg0ACAsLK9hkOmrbNuDWLfH+v/8CZmaSxiEiInpv+/fvx5gxY6BUKlG+fHls27YNvXv3ljoWkeQ06lFOTk6Gubl5rm3pY0GSk5MLLJSuybyOelJSxn1b26LPQkREVFASExMxadIk9O/fH0qlEi1atEBAQACLZKL/cNBRPvn4iL3KXbsCeXx2ICIiKhaSk5Px559/AgBmzJiBs2fPwsHBQeJURLpD43WUHz58iO3bt2vVPnLkyPwn01FubkCzZsCoUVInISIiej/lypXDnj17EBISgu7du0sdh0jnaLQ8nFwu13ofd5lMhtTUVK3OlVr6ciP3noXAyY7b8BERUfGWkJCAqVOnol69evj000+ljkNUICTfwtre3l7rQrmkSUkRt7HOZV4jERGRzrp37x48PDxw8+ZNGBkZYcCAAahcmXsEEL2NRoXykydPCjlG8ZCUBKxYAYweLY5PzrRSHhERkc7y8fHBhAkTEBcXB0tLS/j4+LBIJtIAJ/Plw7NnwJw5QJUqQPPmUqchIiJ6u/j4eHh5eWHEiBGIi4tD+/btcePGDXTp0kXqaETFgkaFskKhgJeXV2Fn0Vmy/7YcSUjIOObsLFEYIiIiDaSkpKBly5bYsmULZDIZ5s2bh+PHj8Pa2lrqaETFhkZDLwRBgAZz/kqs9OHZZcuKq13ExwMdO0qbiYiI6G309fUxZMgQhIaGYufOnejQoYPUkYiKHY2XhyvN0qcxOjqKaygTERHpotjYWISHh6Nq1aoAgC+++AJeXl6wsLCQNhhRMcUxyhrgih9ERKTrbt68iSZNmqBnz56Ij48HIC7vyiKZSHsslDXAOpmIiHSVIAjYuHEj3NzccO/ePURFRXG1KqICovHQi5CQEJw7d06rF2nTpo1W5xEREVHeoqOjMX78ePj6+gIAunXrBm9vb1haWkqcjKhk0LhQ/uuvv/DXX3/l+wWK88582Tk6AmFhQN26wNWrUqchIqLSLCAgAB4eHnj48CEUCgWWLFmC6dOnQy7nl8VEBUXjQlnbVS9K0moZ6d9kvXolaQwiIiJ8+eWXePjwIezs7ODr64uWLVtKHYmoxNH4Y6enpydUKpVWt5JApRI3GrG3B16/ljoNERGVdlu2bMGoUaMQGBjIIpmokHB5OA3J5cDz58A//7BHmYiIit61a9dw/PhxzJ49GwBga2uLbVyzlKhQsVDOJ2dnoH59qVMQEVFpIQgC1qxZgxkzZiAlJQX169dHr169pI5FVCqwUM4nhULqBEREVFpERkZi9OjROHjwIACgX79++OCDDyRORVR6cGosERGRDrp8+TIaNWqEgwcPwsDAAOvWrcO+fftgbm4udTSiUkOjHuW2bduidu3ahZ1Fp128CGzdCpiYAB4eQOvWUiciIqKSav369ZgyZQpSU1NRvXp17NmzB66urlLHIip1NCqUT58+Xdg5dF5gILB5s3i/YUMWykREVHgqV66M1NRUDBo0CBs3bkS5cuWkjkRUKmk09MLf379AXqygriOFhISM+/zWi4iIClpsbKz6fv/+/XH+/Hns2rWLRTKRhDQqlJs2bYrBgwfj7t27Wr3IrVu34OHhgaZNm2p1vi7w8gJu3QL+/hto317qNEREVFKoVCosWbIETk5OeJVp/dHWrVtDJpNJmIyINCqUP/vsM+zfvx9169ZF69atsWnTJgQFBb31nMePH+Onn35CixYt0KBBA/z++++YPHlygYSWQvny4tJwjRsDFSpInYaIiEqCsLAwdOvWDV999RWCg4OxY8cOqSMRUSYyQcM9pu/cuYMvvvgCf/75p/qYpaUl6tSpg4oVK6JcuXKIjo5GREQE7ty5g9eZtq/r3r07li9fjjp16hT8OyhE0dHRMDMzQ9DLMFS1sZQ6DhERlSBnzpzB0KFDERwcDGNjY6xbtw6jR49mLzJRPqXXa0qlssCHKmm8jnKdOnVw6NAhPHjwAOvWrcOBAwfw7NkzhIWF5fp8e3t79OnTB5988glq1qxZYIGJiIiKs7S0NCxatAgLFy6ESqWCs7Mz9uzZg7p160odjYiy0bhHOTePHz9GQEAAQkNDoVQqYW5uDisrK7i6usLR0bEgc0pC3aP86jXCX1ogKgowNARatAD09aVOR0RExdHKlSvxxRdfAABGjx6NtWvXokyZMhKnIiq+CrNH+b0K5ZIuc6HcuJ4FIiPF45GR4phlIiKi/IqLi0P79u0xadIkjBgxQuo4RMVeYRbK3JlPAzIAlStnPDY2liwKEREVM6mpqfD29oZKpQIAlClTBleuXGGRTFQMaDxGubSbOVNcHu7IEcDISOo0RERUHLx8+RJDhw7FuXPnEBoaihkzZgAA5HL2UxEVByyUNSCTASNHiveXLZM2CxERFQ9Hjx7FiBEjEB4eDlNTU9jb20sdiYjyiR9piYiIClBKSgq+/PJLdOvWDeHh4WjUqBH8/f0xePBgqaMRUT6xR1kDMnBNSyIierdnz55hyJAhuHTpEgDgk08+wcqVK2HEMXtExRILZQ0IAJKSxCXhOKyMiIjyEhYWhmvXrqFcuXLYvHkzBgwYIHUkInoPLPs0EBcrTuBTKIDu3aVOQ0REuiTzKqtNmjSBj48PAgICWCQTlQAslDWQmJBxX6GQLgcREemWoKAgtG3bFv7+/upjHh4eqFatmoSpiKigvPfQC6VSiWvXruH169dwcHBAy5YtCyKXTpHJxZ7kFy+AmBip0xARkS7Yv38/xowZA6VSiQkTJsDPzw8yGee0EJUkWvcox8TEYOzYsbCyskLXrl0xfPhwbNq0Sd2+adMm2NjYwM/Pr0CCSqmiBXD4MPDnn8Dx41KnISIiKSUlJWHSpEno378/lEolmjdvjr1797JIJiqBtCqUExIS0K5dO2zZsgXly5dHt27dkH0n7J49eyI0NBS///57QeTUCTY24oQ+IiIqnR4+fIiWLVti3bp1AIAvvvgC586dg4ODg8TJiKgwaDX0YtWqVQgICMCQIUOwceNGlClTJscuQ5UrV0adOnVw+vTpAglKREQkpdu3b6N58+aIiYlBxYoV4e3tjR49ekgdi4gKkVY9yrt370blypWxefNmlClTJs/nOTk54cWLF1qH0xVpqcAffwDZOs2JiKgUqV27Nlq0aIHWrVsjMDCQRTJRKaBVofzo0SM0a9bsnQuom5iYIDw8XKtguuTMWWDDBmDQIMDXV+o0RERUVB48eID4+HgAgFwux+7du3H69GlUqVJF4mREVBS0KpQVCgVSUlLe+bwXL168tce5uIiJESfy7d0L/Puv1GmIiKgo7Ny5E40aNcLkyZPVx8zNzaGnx726iEoLrQrl6tWr48aNG0hNTc3zObGxsbh58ybq1KmjdThdkZyUcd/eXrocRERU+OLj4zF27FgMHz4ccXFxePjwIRITE6WORUQS0KpQ7t27N4KDg7Fo0aI8n7No0SIolUr07dtX63C6om8fICwMeP4cGDJE6jRERFRYbt++jWbNmmHz5s2QyWSYO3cuTpw48c6hhkRUMmn1/dHUqVOxdetWfPPNNwgMDISHhwcAIDQ0FPv378eePXuwd+9eVK1aFRMmTCjQwFLQNwQsLaVOQUREhWnbtm345JNPEB8fj0qVKuGXX35Bhw4dpI5FRBKSCdkXQNbQ7du30bt3bzx+/DjHIuuCIMDBwQGHDx+Gs7NzgQSVQnR0NMzMzPAsJBx2lSpKHYeIiApJZGQknJycEBERgU6dOsHHxweVKlWSOhYRaSC9XlMqlShXrlyBXlvrGQnOzs74999/sW3bNhw5cgSPHz+GSqWCnZ0dunXrhnHjxsHExKQgsxIRERWKChUqYMeOHbh+/TpmzZoFhUIhdSQi0gFa9ygXtqSkJMydOxc7duxAVFQUGjRogEWLFqFz584anb97926sXr0aN2/ehL6+PpydnbFo0aJ8fY2W/gll/6FwRIdXhJER0LUrYG6u5ZsiIiKdIAgCNm/eDEtLS3z44YdSxyGi91CYPcpaTebbvn07Ll269M7nXblyBdu3b9fmJeDp6YlVq1Zh2LBhWLNmDRQKBbp3744LFy6889z58+djyJAhsLOzw6pVq7Bo0SI0aNAAL1++1CrL7t2ApycweDBQAvZPISIq1WJiYjBs2DB89NFH8PT0xKtXr6SOREQ6SqseZblcDk9PT2zZsuWtz/voo4+wZcsWpKWl5ev6V69ehZubG1asWIHp06cDABITE1GvXj1YWVm9tUi/cuUKWrZsiW+//RZTp07N1+tml/4JpZ9HOPbvEccoP3gA1KjxXpclIiKJBAQEwMPDAw8fPoRCocCSJUswffp0yOVa9RsRkQ7QyTHKmtB2VMe+ffugUCgwbtw49TEjIyN4eXlh9uzZeP78Oezs7HI9d/Xq1ahcuTImT54MQRAQFxcHU1NTrXKkGzQI6NQOSEzk6hdERMWRIAjYsGEDpk6diuTkZNjZ2cHX1xctW7aUOhoR6bBC/QgdFham1YS+gIAAODk55fhU0KxZMwBAYGBgnueePHkSTZs2xffffw9LS0uULVsW1tbWWLduXb5zpGvRCvj4Y2DqVMDMTOvLEBGRBFJTUzFo0CB88sknSE5ORq9evRAQEMAimYjeSeMe5XPnzmV5HBISkuNYutTUVNy6dQvHjh1D/fr18x0qODgY1tbWOY6nH8trPFlUVBTCw8Nx8eJFnDp1CvPmzYO9vT22bt2KSZMmQV9fH+PHj8/zdZOSkpCUlLENX3R0dL6zExGRbtHT04OlpSX09PSwfPlyTJkyJceypkREudG4UG7Xrl2WXyx//fUX/vrrr7eeIwgCPv7443yHSkhIgKGhYY7j6TsjJSQk5HpebGwsACAiIgK+vr4YNGgQAGDAgAGoX78+Fi1a9NZCeenSpViwYEGubWlpAFcLIiIqHgRBQGxsLMqWLQsA+Pbbb+Hl5QVXV1eJkxFRcaJxodymTRt1oXz27FlYWVmhdu3auT7XwMAAVapUQf/+/dG9e/d8hzI2Ns7Ss5suMTFR3Z7XeQCgr6+PAQMGqI/L5XIMGjQI8+bNw7Nnz2Bvb5/r+bNmzcLnn3+ufhwdHQ07Ozv8eRjo2Bawtwf09fP9doiIqAhFRUVhzJgxUCqVOH78OBQKBYyMjFgkE1G+aVwonzlzRn1fLpejW7du71z1QlvW1ta5LuUWHBwMALCxscn1vAoVKsDIyAjm5uY5Fou3srICIP4CzatQNjQ0zLUne9lyYLyXeF83V50mIiJAXPlo8ODBePr0KQwMDPD333/Dzc1N6lhEVExpNZnv9OnTmDlzZkFnUXNxccH9+/dzjBH28/NTt+dGLpfDxcUFr1+/RnJycpa29HHNllosW6FS5fsUIiIqQiqVCitXrsQHH3yAp0+folq1arh06RKLZCJ6L1oVym3btkWtWrUKOovagAEDkJaWho0bN6qPJSUlYevWrXBzc1MvDffs2TPcvXs3y7mDBg1CWloavL291ccSExOxc+dOODs759kb/TZuzcUd+fr31/INERFRoYmIiEDv3r3xxRdfIDU1FR4eHvD390fjxo2ljkZExVyBbGGtVCoRHR2d57rJeQ11eBsPDw/89ttvmDp1KmrUqAFvb29cvXoVJ0+eRJs2bQCIEwzPnj2b5XUTEhLQtGlT3L9/H5MnT4a9vT127NgBf39//PHHH+jWrZvGGdIXsH4WEg67ShXz/R6IiKjwde3aFceOHYOhoSFWr16N8ePHc1ULolJEJzcciYqKwty5c7F37168fv06z+fJZDKkpqbm+/rbt2/HnDlzsGPHDkRFRaFBgwY4dOiQukjOi7GxMU6dOoUZM2Zgy5YtiIuLg4uLCw4fPoyuXbvmOwcREem2b7/9FsOHD8e2bdvyHJpHRKQNrXqUlUolmjVrpt4C1MDAAPHx8bC2tkZISAgEQYBMJlP3JAcFBRV48KLAHmUiIt0TFhaG8+fPo3+m8XDp/+4QUelTmD3KWo1RXrFiBR48eICRI0dCqVRiwIABkMlkePnyJWJiYrBhwwaYm5ujbdu2xbZIJiIi3XP27Fm4uLhg8ODBuHz5svo4i2QiKgxaFcoHDx6EhYUFNmzYAGNj4yy/oExMTDB+/HgcPnwYPj4+WSbkFVcDBwCdOgHLlkmdhIiodEpLS8PChQvRoUMHBAcHo2bNmgXec0RElJ1WhfLjx4/RuHFj9U556YVyWlqa+jnNmzdHixYtsHnz5gKIKS2/q8DJk8DNm1InISIqfUJCQtC1a1fMmzcPKpUKnp6euHbtGurWrSt1NCIq4bQqlAGgfPny6vsmJiYAxAl+mdnb2+dYvq04e/FC6gRERKXLyZMn4eLigpMnT8LExATe3t7YunUrypQpI3U0IioFtFr1wsbGJsvOeemT9m7evIkOHTqojz9+/Bh6elovrKEzgh4DIc8BW1upkxARlS7//PMPQkNDUa9ePezduxe1a9eWOhIRlSJaVbH169fHxYsX1Y8/+OADCIKAefPmoWnTpihbtix8fHzg5+eHVq1aFVhYqSj0gObNpU5BRFQ6ZF7BYvLkyTAwMMDo0aNhbGwscTIiKm20Gnrh7u6OsLAwnD59GgDQokULtGrVChcvXkSFChVQsWJFjBo1CjKZDDNmzCjQwEREVHIdPXoUrVu3RkxMDABxDszEiRNZJBORJLQqlIcMGYLz58/DyclJfWz//v3o2bMnAHGssrm5OVatWoVevXoVTFIJPXsqdQIiopItJSUFs2bNQrdu3XDp0iX873//kzoSEVHBbGGdWXx8PJRKJSpVqgS5XOu5gjohfQFrr/HhaN28Ij74AKheXepUREQly/PnzzF48GBcunQJADBx4kR8++236pWViIjeRuc2HHkbExMTWFtbq4vke/fuFfRLFLnNW4HRo4G9e6VOQkRUshw6dAguLi64dOkSypUrhz179mD9+vUskolIJxRal+/Dhw8xfPhw1K9fv7BeosjVqCF1AiKikmPz5s3o1asXIiMj0aRJEwQEBGDgwIFSxyIiUsv3qhdPnjxBaGgoKlWqhKpVq+bavmDBAuzcuROpqaklYlvR79cARgqgcWOpkxARlRw9e/aEtbU1PDw8sGzZMhgaGkodiYgoC40LZT8/P4wdOxa3b99WH2vQoAE2b94MV1dXpKam4uuvv8aaNWuQnJwMQRDQpk2bEjEho28/oIqV1CmIiIq/gIAANGrUCABQqVIl/Pvvv6hQoYLEqYiIcqfR0IunT5+ic+fOuH37NgRBUN9u3LiBrl274tWrV+jYsSNWrFiBpKQkNGzYEEeOHMGZM2fQnAsQExGVeklJSfjss8/g6uqKXbt2qY+zSCYiXaZRj/KqVasQGxuLmjVrYv78+WjQoAGio6Nx6NAhfPvtt2jXrh0ePnyIsmXL4rvvvsOYMWMKOzcRERUTjx49wqBBg3D9+nUAwN27dyVORESkGY0K5ZMnT6JMmTI4deoUbDPt49yiRQuUL18eM2bMgEwmw9GjR9GiRYtCCyuVN28AcxOgTBmgBAy5JiIqMnv37sXYsWMRHR2NChUqwNvbW73mPhGRrtN46EXz5s2zFMnpBg8eDABwc3MrkUUyANSvB5QtC7x6JXUSIqLiITExERMnToSHhweio6PRqlUrBAYGskgmomJFo0I5Li4OVapUybUt/Xj1UrATh4GB1AmIiIqHS5cuYcOGDQCAWbNm4fTp07Czs5M4FRFR/mi86sW7lnnT19d/7zC6qkN7QJYGGBtLnYSIqHjo0KEDFi1ahCZNmqBr165SxyEi0krx3mO6iGzfAZw4AZiaSp2EiEg3xcfHY8qUKXj69Kn62FdffcUimYiKNZkgCMK7niSXy7XeOEQmkyE1NVWrc6WWvnf4i9Bw2FpVlDoOEZFOunPnDjw8PPDvv/+iVatWOH/+fInYbIqIiof0ek2pVKJcuXIFem2Ne5Qzr5+c3xsREZVM3t7eaNKkCf79919UqlQJCxYsYJFMRCWGRmOUT58+Xdg5dJpKJXUCIiLdEhcXh4kTJ2L79u0AgI4dO8LHxweVK1eWOBkRUcHRqFBu27ZtYefQaT26A3VqArt3S52EiEh6T58+hbu7O+7evQu5XI4FCxZg1qxZUCgUUkcjIipQGq96UZr98y/wTwALZSIiAKhUqRIMDQ1hY2ODX375pdR3phBRycVCmYiI3ik2NhbGxsZQKBQwMjLCb7/9BlNTU1haWkodjYio0HB5OA08fAAolVKnICKSRmBgIFxdXbF48WL1MUdHRxbJRFTisVDWgJExUMCrjRAR6TxBELBhwwY0b94cDx48wJYtWxAXFyd1LCKiIsNCmYiIclAqlRg0aBAmTpyIpKQk9OzZE9evX0eZMmWkjkZEVGRYKBMRURZ///03XF1dsXfvXujp6WHlypU4ePAgKlbkxktEVLpwMp8GdvoAdWsBPXpInYSIqHAplUp06tQJSqUSDg4O8PX1RfPmzaWORUQkCfYoa2Dml8CqVVKnICIqfGZmZlixYgX69OmDgIAAFslEVKrJhPfcY1qpVOLatWt4/fo1HBwc0LJly4LKJrn0vcOhH44u7Svir7+kTkREVPD8/Pwgl8vRtGlTAOIkPgDcipqIioX0ek2pVKJcAa++oHWPckxMDMaOHQsrKyt07doVw4cPx6ZNm9TtmzZtgo2NDfz8/AokqJRWfQt8/rnUKYiICpYgCPj222/RunVrDBw4EFFRUQDEAplFMhGRloVyQkIC2rVrhy1btqB8+fLo1q0bsndM9+zZE6Ghofj9998LIqekPAYBXbtKnYKIqOBERESgd+/emD59OlJTU9GsWTPI5RyNR0SUmVa/FVetWoWAgAAMGTIEjx49wqFDh3I8p3LlyqhTpw5Onz793iGJiKjgXLx4EY0aNcKhQ4dgaGiIDRs2YPfu3eJQMyIiUtOqUN69ezcqV66MzZs3v3VNTScnJ7x48ULrcEREVHBUKhX+97//oW3btnj+/Dlq1qyJK1euYMKECRxqQUSUC60K5UePHqFZs2YwMjJ66/NMTEwQHh6uVTBd8uYNkJgodQoiovcjk8lw+fJlpKWlYejQobh+/TpcXFykjkVEpLO0KpQVCgVSUlLe+bwXL16UiF2c6tUDFiyQOgURkXYyr2KxdetWbN++HT4+PihbtqzEyYiIdJtWhXL16tVx48YNpKam5vmc2NhY3Lx5E3Xq1NE6nC7R49YsRFTMpKWl4ZtvvoGnp6e6WK5QoQJGjBjBoRZERBrQqlDu3bs3goODsWjRojyfs2jRIiiVSvTt21frcLqiQ3vAyUnqFEREmgsJCUHXrl0xd+5cbN++HWfPnpU6EhFRsaPVhiNv3rxBgwYN8PLlS/Tq1QseHh4YPnw4unXrBi8vL+zZswd79+5F1apVcfPmzWI7/CJ9AesXoeGwtaoodRwiIo2cPHkSw4YNQ2hoKExMTPDDDz9g1KhRUsciIioUhbnhiNY7892+fRu9e/fG48ePc3yFJwgCHBwccPjwYTg7OxdIUCmwUCai4iQtLQ0LFy7EN998A0EQUK9ePezevbtY/x4mInqXwiyUtR556+zsjH///Rfbtm3DkSNH8PjxY6hUKtjZ2aFbt24YN24cTExMCjIrERG9xfDhw+Hr6wsAGDt2LNasWcPfw0RE70HrHuXSIP0TysuwCNhYVpA6DhHRW508eRL9+vXDhg0bMHToUKnjEBEVicLsUdZqMl9ERESBhtB1w4YCuWw+SEQkqdTUVAQGBqofd+zYEU+fPmWRTERUQLQqlG1tbeHh4YE///wTKpWqoDPpnDNngZcvpU5BRJTh+fPnaNeuHdq0aYOHDx+qj5ubm0sXioiohNGqUBYEAfv27UPPnj1hZ2eH2bNn4/79+wWdTXcIgEIhdQgiItHhw4fh4uKCixcvAhB3SyUiooKnVaEcHByMNWvWoGHDhggODsayZctQp04dtG7dGlu2bEFsbGxB55TU3bvAiBFSpyCi0i4lJQXTp09Hz549ERkZicaNGyMgIABdu3aVOhoRUYn03pP5bt68iS1btuCXX35BeHg4ZDIZjI2NMWDAAIwePRpt27YtqKxFLn1w+KuwCFhzMh8RSejJkycYPHgw/Pz8AACfffYZli9fDkNDQ4mTERFJSyfXUc4uNTUVBw8exLZt23D06FGkpqZCJpPB0dExy/i54oSFMhHpiq+++gpLliyBubk5tmzZUiJ2PSUiKgjFolDOLCwsDIsXL8batWshk8mQlpZW0C9RJNJ/8MGvI1DZgoUyEUknOTkZn332Gb788ktUrVpV6jhERDpD55aHy0tSUhJ27dqFESNG4IcffijIS0tq507g+XOpUxBRafL48WNMmDABKSkpAAADAwP8+OOPLJKJiIqQ1jvzZebn54etW7diz549UCqVEAQB5ubmGDx4MMaMGVMQLyGp6dOBurUAOzupkxBRabBv3z54eXkhOjoaVlZWWLhwodSRiIhKJa0L5eDgYOzYsQPbtm3DvXv3IAgCZDIZOnTogDFjxqBfv34lapKJvED73omIckpMTMS0adPU38i1atUKH330kcSpiIhKL60K5e7du+P48eNQqVQQBAFVq1aFp6cnPD09YW9vX9AZJfftt0DdulKnIKKS7MGDB/Dw8FDvtPfll19i4cKF0NfXlzYYEVEpptVkPrlcDmNjY/Tr1w9jxoxB+/btCyOb5DiZj4iKwpEjRzBo0CDExsbCwsICO3bsgLu7u9SxiIiKhcKczKdVj/KPP/6IwYMHF3gYIqLSqHr16hAEAW3atMEvv/wCW1tbqSMREREKaXm4koI9ykRUWN68eQNzc3P148DAQNSrVw96egUyx5qIqNQoNsvDlVSJiYBKJXUKIioptm/fDgcHB5w9e1Z9zMXFhUUyEZGO0ei38pgxYyCTybBkyRJUqlQpX0u+yWQybN68WeuAusDREbh8HmjeXOokRFScxcXF4dNPP8W2bdsAAJs2bULbtm2lDUVERHnSaOiFXC6HTCbDnTt34OTkBHk+1korCTvzQS8C509XQOvWUiciouLq33//hYeHB+7cuQO5XI758+dj9uzZUCgUUkcjIirWJJ/Mt3XrVgCAtbV1lseliYWF1AmIqDgSBAFbtmzBpEmTkJCQAGtra+zatYs9yURExQAn871F+ieUV2ERsLbkZD4iyr+TJ0+iU6dOAIAuXbpgx44dsLKykjgVEVHJIXmPcmknk0mdgIiKqw4dOmDYsGGoW7cuZs6cma+ha0REJC2tfmMrFAp4eXm983kfffQRZ3ETUakiCAK8vb0RFRUFQJynsWPHDsyaNYtFMhFRMaPVb21BEKDpiA2O7CCi0iI6OhqDBw+Gp6cnvLy81L//ZPxaioioWCrU7o34+Hjo6+sX5ksUidGjgZAQqVMQkS67fv06XF1dsWfPHujp6aE1l8khIir2Cm1cxJs3b3DhwgX1ShnF2dGjQEKC1CmISBcJgoB169Zh+vTpSE5OhoODA3bv3g03NzepoxER0XvSuFCuVq1alsf79u3DmTNncn1uamoqQkJCkJaWhvHjx79XQF3BpU6JKLs3b97Ay8sL+/fvBwD06dMHW7ZsQfny5SVORkREBUHjQvnJkyfq+zKZDLGxsYiNjc3z+QYGBujTpw+WLFnyXgF1QWAgYGsrdQoi0jVpaWm4du0a9PX1sXLlSkyaNInjkYmIShCNC+WgoCAA4teM1apVw4ABA7BixYpcn2tgYABLS8sSs+JFpUrsUSYiUeYJehUrVsTevXshl8vRtGlTiZMREVFB07iSdXBwUN8fNWoUPvjggyzHiIhKusjISHh6eqJv374YPXo0AHAsMhFRCcad+d4ifaeX4NcRqGzBnfmISrNLly5h8ODBeP78OcqXL4+nT5+ibNmyUsciIir1CnNnPq5+r4EDvwFpaVKnICIpqFQqLFu2DG3atMHz589Rs2ZNnDp1ikUyEVEpoFGP8pgxYyCTybBkyRJUqlQJY8aM0fwFZDJs3rz5vUJKJf0TCvQikBhbAYaGUicioqL0+vVrjBo1Cn/++ScAYMiQIfjpp59YJBMR6ZDC7FHWqFCWy+WQyWS4c+cOnJyc8rUNq0wmQ1ox7Y7NXCinJFRACZmbSEQaiI2NhbOzM54/fw4jIyOsXbsWXl5eXNWCiEjHFGahrFHpt3XrVgBQbx6S/ri0WLiAq14QlTampqYYNWoU9u3bhz179qB+/fpSRyIioiKms5P5kpKSMHfuXOzYsQNRUVFo0KABFi1ahM6dO+frOp07d8aJEyfwySefYN26dfk6l5P5iEqX0NBQJCQkoGrVqgDEzZOSkpJQpkwZaYMREVGeSuVkPk9PT6xatQrDhg3DmjVroFAo0L17d1y4cEHja+zfvx+XL18uxJREVFKcOnUKLi4u6N+/P5KSkgAAenp6LJKJiEqxAi+Ug4KCcODAAQQGBmp9jatXr8LX1xdLly7FihUrMG7cOJw6dQoODg6YMWOGRtdITEzEtGnTMHPmTK1zEFHJl5aWhnnz5qFTp04ICQlBcnIywsLCpI5FREQ6QKtC+eDBg+jXrx+uXr2a5fiKFSvg5OSEfv36oXHjxvlaHSOzffv2QaFQYNy4cepjRkZG8PLywuXLl/H8+fN3XmP58uVQqVSYPn26VhmIqOR79eoVOnXqhIULF0IQBIwdOxZ+fn6ws7OTOhoREekArQrl7du34+jRo6hTp4762N27d/Hll19CEAQ0bNgQJiYm8Pb2xh9//JHv6wcEBMDJySnHOJNmzZoBwDt7q589e4b//e9/WLZsGYyNjfP9+tnVq/felyAiHXPs2DG4uLjgzJkzMDU1xc6dO/Hzzz/DxMRE6mhERKQjtCqUAwIC0LBhwyxrie7cuRMA8MMPP8Df3x/Xrl2DQqHAxo0b83394OBg9QobmaUfe/Xq1VvPnzZtGho1aoTBgwfn63WTkpIQHR2d5QYAXA2KqGRRqVSYN28eXr9+jYYNG+L69esYOnSo1LGIiEjHaFUoh4eHw9bWNsuxM2fOwNjYGJ6engCA2rVro3Xr1rh161a+r5+QkADDXHb3MDIyUrfn5fTp0/j111+xevXqfL/u0qVLYWZmpr6lf/3akKtCEZUocrkcv/zyC6ZOnYorV67AyclJ6khERKSDtCqUExMToci0sHBaWhr8/f3h5uYGAwMD9XEbGxuEhITk+/rGxsbqWefZXze9PTepqan47LPPMGLECDRt2jTfrztr1iwolUr1LX0stM8v+b4UEemYI0eOYOnSperHjo6OWLVqlfoDOBERUXZa7TVnZWWFBw8eqB9fuXIFCQkJaNWqVZbnJSQkaLW0krW1NV6+fJnjeHBwMACxAM/N9u3bce/ePfz000948uRJlraYmBg8efIEVlZWeY5BNDQ0zLUnm4iKr5SUFHz11VdYsWIFAKBly5Zo27atxKmIiKg40KpHuWXLlrhx4wZ8fX2hVCqxZMkSyGQydOrUKcvz7ty5k2dR+zYuLi64f/++eoxwOj8/P3V7bp49e4aUlBS0atUKjo6O6hsgFtGOjo44duxYvvMQUfH09OlTtGnTRl0kT5o0Cc2bN5c4FRERFRda7czn7++PFi1aIDU1FQAgCAIaN26Ma9euqZ/z/PlzODg4YMyYMdi0aVO+ru/n54fmzZtjxYoV6uXdkpKSUK9ePVSsWBFXrlwBIBbG8fHxqF27NgBx5Y27d+/muF7fvn3RvXt3fPTRR3Bzc8t1omBuuDMfUfF14MABjB49GlFRUTA3N8eWLVvQt29fqWMREVEBK8yd+bQaeuHq6oojR45g8eLFCAsLQ7NmzbKM/QOAPXv2wMzMDB07dsz39d3c3DBw4EDMmjULYWFhqFGjBry9vfHkyRNs3rxZ/byRI0fi7NmzSK/1a9eurS6as3N0dESfPn3ynQUAliwGvv9Oq1OJSAJfffUVlixZAkBcVnL37t3qbamJiIg0pVWhDAAdO3Z8axE8bdo0TJs2TdvLY/v27ZgzZw527NiBqKgoNGjQAIcOHUKbNm20vqa2Tpws8pckoveQ/oF52rRpWLJkSZZJxkRERJrSauhFaZHele/cIAK3bnDoBZEui4yMRIUKGf8/DQwMzHM+AxERlRw6N/QisytXruD06dPqVSpsbW3Rvn37EjVhZru31AmIKC+JiYmYNm0aDhw4gICAAFhaWgLIe9IvERGRprQulJ89e4Zhw4bh0qVLAKAeJyz7bxu7Vq1awcfHB/b29gUQU1q2VaROQES5efDgAQYNGoSAgAAAwJ9//omRI0dKnIqIiEoKrQrlN2/eoH379ggKCoKRkRG6du2K6tWrAwAeP36Mo0eP4sKFC+jYsSP+/vtvmJmZFWhoIiJfX1989NFHiI2NhYWFBXbs2AF3d3epYxERUQmiVaH87bffIigoCN27d8fGjRtzrJUcEhKCjz76CEeOHMG3336LhQsXFkhYIqKEhARMmTIFGzduBAC0adMGv/zyC2xtbSVORkREJY1Wk/nq1auH169fIygoKM9d7uLj4+Ho6AhLS0v8+++/7x1UCumDww8djUCPrpzMR6QLvvzySyxbtgwymQxfffUV5s2bBz29955uQURExVRhTubTame+oKAgtG3bNs8iGQBMTEzQtm1bBAUFaR1OV8z5SuoERJRu9uzZaNWqFY4dO4ZvvvmGRTIRERUarQplhUKBlJSUdz4vNTUVcrlWL6FTZMX/LRAVW3Fxcfjhhx/UE4bLlSuH8+fPo1OnThInIyKikk6rrpiaNWvizJkzePPmDczNzXN9TmRkJE6fPg0nJ6f3yacThg6TOgFR6XTr1i14eHjg9u3bEAQBn3zyCYCM1XWIiIgKk1Z9pQMHDoRSqUSPHj1w69atHO3//PMPevbsiejoaAwaNOi9Q0ptGAtloiIlCAK2bNmCpk2b4vbt27C2tkbdunWljkVERKWMVpP5EhIS0LJlS9y4cQNyuRyNGjWCo6MjAHF5uMDAQKhUKri4uODSpUswMjIq8OBFIX1wePDrCFS24GQ+oqIQGxuLCRMmYOfOnQCALl26YMeOHbCyspI4GRER6aLCnMyn9RbWUVFR+Pjjj7Fv3z6oVKosbXK5HAMHDsT69euzbClb3LBQJipaN2/exMCBA3H//n0oFAosWrQIM2bMKBFzHYiIqHDo5BbW5cuXh6+vL54/f45z585l2cK6TZs2sLOzK7CQRFQ6REdH49GjR6hSpQp27dqF1q1bSx2JiIhKsXz3KIeGhuLp06cwNDRE7dq1YWhoWFjZJJf+CaVLtwj8dYQ9ykSFQRCELJPzfv31V7Rt2xYWFhYSpiIiouJCJ9ZRvn//Ptq1awcbGxu0aNECrq6uqFChAj7//HONloorzmJipU5AVDL5+/vDxcUFt2/fVh/r378/i2QiItIJGhXKr1+/Rtu2bXH+/HkIgqC+JSQkYM2aNfDy8irsnJKytpY6AVHJIggC1q1bhxYtWuDmzZv44osvpI5ERESUg0aF8qpVqxAaGgpbW1ts3boVN2/exIULFzBt2jQoFArs3LkzS49QSbN+vdQJiEqON2/eYMCAAZg0aRKSk5Px4YcfwsfHR+pYREREOWg0me/PP/+EkZERTp06hRo1aqiPt2zZEubm5pgzZw6OHj0KZ2fnQgtKRMXf1atXMWjQIDx58gT6+vpYsWIFPvvsM24gQkREOkmjHuXHjx+jefPmWYrkdCNHjgQABAUFFWwyIipRLl26hNatW+PJkydwdHTExYsXMXnyZBbJRESkszTqUY6NjYWDg0OubenLwMXHxxdcKiIqcZo1a4bmzZujUqVK2LRpE8zMzKSORERE9FYar3rxrl4fLfctKRb+2yCMiPLp+vXrSEpKAgDo6enh8OHD2LNnD4tkIiIqFrjdlQaOH5c6AVHxolKpsHz5cri5uWHGjBnq42XLluVQCyIiKjY0LpS9vb2hUChyvclksjzb9fS03vxPZygUUicgKj7Cw8PRs2dPzJw5E2lpaQgPD0daWprUsYiIiPJN4yq2JA+teJfZs6VOQFQ8nD9/HkOGDMHLly9hZGSE77//HmPHjmUvMhERFUsaFcqnT58u7Bw6rXp1qRMQ6TaVSoWlS5di7ty5UKlUqF27Nvbs2YP69etLHY2IiEhrGhXKbdu2LewcRFSMvXr1CsuXL4dKpcLIkSOxfv16mJqaSh2LiIjovRT/AcREJLkqVapg27ZtUCqV8PT0lDoOERFRgWChrIEnT4DKFlKnINIdaWlpWLRoEZo3b46uXbsCAPr27StxKiIiooLFQlkDP/wANN8idQoi3RAcHIxhw4bh9OnTsLS0xP3792Fubi51LCIiogLHdZQ1IOdPiQgAcPz4cbi4uOD06dMoU6YMvvvuOxbJRERUYrEE1EDr1lInIJJWamoqvv76a3Tt2hVhYWFo0KABrl+/jmHDhkkdjYiIqNBw6IUGevaUOgGRdOLj4+Hu7o7z588DACZMmIBVq1bB2NhY4mRERESFiz3KRPRWJiYmqF69OsqWLYvdu3djw4YNLJKJiKhUkAmlecu9d4iOjoaZmRmCX0egskUFqeMQFZmUlBTEx8fDzMwMABAXF4eQkBBU5+47RESkY9LrNaVSiXLlyhXotd976IVSqcS1a9fw+vVrODg4oGXLlgWRi4gk8uzZMwwePBjly5fHH3/8AblcjjJlyrBIJiKiUkfroRcxMTEYO3YsrKys0LVrVwwfPhybNm1St2/atAk2Njbw8/MrkKBSWrNG6gRERePgwYNwcXHB5cuXcfHiRTx48EDqSERERJLRqlBOSEhAu3btsGXLFpQvXx7dunVD9hEcPXv2RGhoKH7//feCyCkppVLqBESFKzk5GVOnTsWHH36IqKgoNG3aFAEBAahVq5bU0YiIiCSjVaG8atUqBAQEYMiQIXj06BEOHTqU4zmVK1dGnTp1cPr06fcOKTXTMlInICo8QUFBaN26NVavXg0A+Pzzz3HhwgU4OjpKG4yIiEhiWo1R3r17NypXrozNmzfDyMgoz+c5OTnh6tWrWofTFZ9PkzoBUeEQBAEDBgyAv78/ypcvD29vb/Tq1UvqWERERDpBqx7lR48eoVmzZm8tkgFxWanw8HCtghFR4ZPJZPjpp5/Qrl07BAYGskgmIiLKRKtCWaFQICUl5Z3Pe/HiBcqU4bgFIl3y8OFD7Nu3T/24SZMmOHXqFOzt7SVMRUREpHu0KpSrV6+OGzduIDU1Nc/nxMbG4ubNm6hTp47W4YioYO3evRuurq4YNmwYAgIC1MdlMpmEqYiIiHSTVoVy7969ERwcjEWLFuX5nEWLFkGpVKJv375ah9MVF89LnYDo/SQkJGDChAkYPHgwYmJi4ObmBktLS6ljERER6TStCuWpU6fC1tYW33zzDfr06YNffvkFABAaGor9+/dj8ODBWLFiBapWrYoJEyYUaGApXC7+S0FTKXbv3j00b94cP/30E2QyGb7++mucOnUKVapUkToaERGRTtN6C+vbt2+jd+/eePz4cY6vbQVBgIODAw4fPgxnZ+cCCSqF9C0RBw2NgO9ObmFNxc8vv/yCcePGIS4uDlZWVvDx8UHnzp2ljkVERFRgdHILa2dnZ/z777/Ytm0bjhw5gsePH0OlUsHOzg7dunXDuHHjYGJiUpBZJTNxotQJiLTz5MkTxMXFoX379ti5cyesra2ljkRERFRsaN2jXBqkf0IJfh2ByhbsUabiQaVSQS6Xq+/7+Phg2LBhUCgUEicjIiIqeIXZo6zVGGUi0j2CIGDLli1o0aIF4uPjAQByuRwjR45kkUxERKQFFspEJUBsbCxGjhwJLy8vXL16FRs3bpQ6EhERUbGn1RjlatWqafxcmUyGR48eafMyOuNNFFDZQuoURLm7efMmPDw8cO/ePcjlcnzzzTf47LPPpI5FRERU7GlVKD958uSdz5HJZBAEoURsZLB7DzDvK6lTEGUlCAJ+/vlnfPbZZ0hKSoKtrS127dqFDz74QOpoREREJYJWhXJQUFCux1UqFZ4+fYpDhw5h7dq1mDVrFkaPHv1eAXVBCaj1qQRaunQpvvpK/ATXvXt3eHt7w8KCX30QEREVFK0KZQcHhzzbHB0d0a5dO7i5uWHIkCFo27btW59fHNSqJXUCopxGjhyJtWvX4vPPP8e0adPUK10QERFRwSjU5eHq168Pa2trHDt2rLBeolBxeTjSJYIg4MKFC1mGVsTFxaFMmTISpiIiIpJWsV0erk6dOrh27VphvgRRqfDmzRsMHDgQbdq0we+//64+ziKZiIio8Gi9M58mXr58ieTk5MJ8CaIS79q1axg0aBCCgoKgr6+PsLAwqSMRERGVCoXWo+zj44PLly/D2dm5sF6CqEQTBAGrV69Gq1atEBQUBEdHR1y8eBHjxo2TOhoREVGpoFWP8pgxY/Jsi4mJwd27d3H79m3IZDJMnjxZ63C64vBhwGuU1CmoNImMjMTo0aNx8OBBAED//v2xadMmmJubSxuMiIioFNGqUN62bds7n1OuXDksWLAAw4cP1+YldEpkpNQJqLQ5d+4cDh48CAMDA6xatQoTJ04sEWuSExERFSdaFcpbt27Ns83AwAC2trZo1qwZjIyMtA6mS7jqFhW1Pn36YNGiRejWrRtcXV2ljkNERFQqFerycMUdl4ejohIeHo6pU6di+fLlsLa2ljoOERFRsVGYy8NpPUbZwsICy5cvL9AwRKXR+fPnMWTIELx8+RIRERE4cuSI1JGIiIgIWq564ePjk+c21kSkGZVKhSVLlqB9+/Z4+fIlatWqhf/9739SxyIiIqL/aNWjXLlyZU4sInoPYWFhGD58OI4fPw4AGDFiBH744QeYmppKnIyIiIjSadWj3LlzZ1y8eBEpKSkFnUcnPbgvdQIqSf755x+4uLjg+PHjMDY2xpYtW+Dt7c0imYiISMdoVSjPnz8fSUlJ+OijjxATE1PQmXTOP/9KnYBKEkdHR5iZmaFu3br4+++/MXr0aH5DQ0REpIO0Xh7O3d0d27dvx+HDh9GpUydUrVoVxsbGOZ4rk8kwZ86c9w4qJdYw9L5ev36NihUrQi6Xw9TUFEeOHEGlSpVgYmIidTQiIiLKg0bLw3Xo0AHu7u6YMWMGAEAul0Mmk+Ftp6a3y2QypKWlFVziIpS+3MjfARFo7MLl4Ug7x44dw/DhwzFjxgxMnz5d6jhEREQliuTLw505cwZVq1ZVP547d26p+qrYtorUCag4Sk1Nxbx587B06VIIggBfX19MmTIFenpafZFDRERERUyrf7Hnz59fwDGISpYXL15g6NChOH/+PABg/Pjx+O6771gkExERFSP8V5uogB05cgQjR45EREQEypYti40bN2Lw4MFSxyIiIqJ8YqGsgcREqRNQcfHq1Sv07dsXycnJaNSoEfbs2YMaNWpIHYuIiIi0oNXycKXNiRNSJ6DiwsbGBsuXL8cnn3yCS5cusUgmIiIqxjRa9SJ9lQutXkAmQ2pqqlbnSi19FuWmbRHwGsVVLyh3Bw8ehL29PVxcXKSOQkREVOoU5qoXGvcoC4Kg9a24q1RJ6gSki5KTk/H555/jww8/hIeHR6nYfIeIiKg00XiMsru7O2bOnFmYWXRWkyZSJyBdExQUhEGDBuHatWsAgB49esDQ0FDiVERERFSQNC6UK1eujLZt2xZmFqJiYf/+/RgzZgyUSiXKly+Pbdu2oXfv3lLHIiIiogLGyXxEGkpOTsakSZPQv39/KJVKtGjRAgEBASySiYiISigWykQa0tPTw7179wAAM2bMwNmzZ+Hg4CBxKiIiIiosXEdZA/7+QPcuUqcgqahUKsjlcsjlcuzYsQMBAQFwd3eXOhYREREVMp3tUU5KSsLMmTNhY2MDY2NjuLm54fjx4+88b//+/Rg0aBCqVasGExMT1KpVC9OmTcObN2+0zhIZqfWpVIwlJCRg/PjxmDBhgvpYpUqVWCQTERGVEhqtoyyFIUOGYN++fZgyZQpq1qyJbdu24dq1azh9+jRat26d53kWFhawsbFBnz59YG9vj3/++Qc//vgjqlWrBn9/fxgbG2ucIX1dPh/fCAwbxHWUS5N79+7Bw8MDN2/ehEwmw40bN1C/fn2pYxEREVE2hbmOsk4WylevXoWbmxtWrFiB6dOnAwASExNRr149WFlZ4dKlS3mee+bMGbRr1y7Lse3bt2PUqFH4+eefMXbsWI1zpP/gnwdHoEplFsqlhY+PDyZMmIC4uDhYWlpi586d6Ny5s9SxiIiIKBc6seFIUdq3bx8UCgXGjRunPmZkZAQvLy9cvnwZz58/z/Pc7EUyAPTt2xcAcOfOHa3y6HEkd6kQHx+PMWPGYMSIEYiLi0P79u1x48YNFslERESllE6WgAEBAXBycsrxqaBZs2YAgMDAQNjZ2Wl8vZCQEADisIy3SUpKQlJSkvpxdHS0xq9BxZsgCOjevTvOnj0LmUyGuXPnYs6cOVAoFFJHIyIiIonoZI9ycHAwrK2tcxxPP/bq1at8XW/ZsmVQKBQYMGDAW5+3dOlSmJmZqW/5KcapeJPJZPjiiy9gbW2NEydOYP78+SySiYiISjmdLJQTEhJy3Q7YyMhI3a6pX375BZs3b8a0adNQs2bNtz531qxZUCqV6lv6EI/Q0HyEp2IjNjZWvQU1IG5D/fDhQ3To0EHCVERERKQrdLJQNjY2zjIEIl1iYqK6XRPnz5+Hl5cXunbtisWLF7/z+YaGhihXrlyWGwA8fJCP8FQs3Lx5E02bNkXXrl3x9OlT9XETExMJUxEREZEu0clC2draGsHBwTmOpx+zsbF55zVu3LiB3r17o169eti3bx/0OCOPII5F3rhxI9zc3HD37l2YmJjg9evXUsciIiIiHaSThbKLiwvu37+fYzKdn5+fuv1tHj16BHd3d1hZWeHIkSMwNTV9rzzVa7zX6aQjoqOjMXToUIwfPx6JiYno1q0bAgMD0aRJE6mjERERkQ7SyUJ5wIABSEtLw8aNG9XHkpKSsHXrVri5uakn2T179gx3797Ncm5ISAi6dOkCuVyOv/76C5aWlu+dp3Ll974ESSwgIACNGzeGr68vFAoFli9fjkOHDr1zJRQiIiIqvXRyPIKbmxsGDhyIWbNmISwsDDVq1IC3tzeePHmCzZs3q583cuRInD17Fpn3THF3d8fjx48xY8YMXLhwARcuXFC3VapUiWvillJbtmzBw4cPYWdnh927d6NFixZSRyIiIiIdp5OFMiDupjdnzhzs2LEDUVFRaNCgAQ4dOoQ2bdq89bwbN24AAJYvX56jrW3btiyUS6kVK1bAwMAAX331FSpU4C6LRERE9G46uYW1rkjfEvFVWASsLVlcFSfXrl3Dhg0b8PPPP3M9ZCIiohKs1G1hrWuuXpU6AWlKEASsXr0arVq1wtatW7FmzRqpIxEREVExpbNDL4jyKzIyEmPGjMGBAwcAAP369cOYMWMkTkVERETFFXuUNVC2rNQJ6F2uXLmCRo0a4cCBAzAwMMDatWuxb98+mJubSx2NiIiIiin2KGvA2VnqBPQ227Ztw0cffYTU1FRUr14de/bsgaurq9SxiKiIpaSkIC0tTeoYRKQluVwOfX19yGQyqaOosVCmYs/V1RV6enro378/Nm7cWOAD+YlIt0VHRyM8PBxJSUlSRyGi96RQKGBiYgIrKysYGBhIHYeFMhVPoaGhqFSpEgCgQYMGCAgIQK1atXTqUygRFb7o6Gi8fPkSpqamsLCw0LneKCLSjCAISEtLQ0JCApRKJZ48eYIqVarAxMRE0lwslKlYUalUWLZsGRYuXIgzZ87Azc0NAFC7dm2JkxGRFMLDw2FqaooqVaqwQCYqAUxNTVGhQgU8ffoU4eHhsLe3lzQPJ/Np4PFjqRMQAISFhaFbt26YPXs2EhMTsX//fqkjEZGEUlJSkJSUBDMzMxbJRCWIQqFAhQoVEBcXh9TUVEmzsEdZA1FRUiegM2fOYOjQoQgODoaxsTHWrVuH0aNHSx2LiCSUPnFPX19f4iREVNAMDQ0BAKmpqdDTk65cZY8y6bS0tDQsWLAAHTt2RHBwMJydnXHt2jWMGTOGPUhEBAD8XUBUAunK/69ZKGugXj2pE5Re+/btw/z586FSqTB69GhcvXoVdevWlToWERERlQIceqGB/3r/SQIeHh44ePAg3N3dMWLECKnjEBERUSnCHmXSKampqVi1ahViYmIAiF+97Ny5k0UyERERFTkWyqQzXr58iY4dO2LatGn4+OOPpY5DRFSiPHjwAJ9++imcnZ1RpkwZGBkZoUqVKmjatCk+/fRT/Prrr3me6+/vj0mTJsHFxQUVK1aEvr4+ypcvDxcXF4wdOxYHDhzIdXWC+fPnQyaTZbkZGRnBysoKDRs2hKenJ3bu3InExMTCfOtEWuPQCw1EK4HKFlKnKNmOHj2KESNGqNdE7dmzp9SRiIhKjP3792Po0KFISkpCxYoV0apVK1haWiIqKgqBgYFYv349fH190b9//yznxcfHY/z48fDx8QEAWFhYoGnTpqhYsSJiYmJw//59bN68GZs3b0bVqlURGBgIMzOzHK9fqVIluLu7AxAnaSuVSty9exfe3t7w9vbGlClTsHbtWgwePLjwfxhE+cBCWQNBTwCn6lKnKJlSUlIwZ84cLFu2DADg4uKCPXv2oGbNmhInIyIqGUJDQzFq1CgkJSVh2rRpWLRoEYyMjLI85/r169i3b1+WYykpKXB3d8f58+dhbW2N9evXo0+fPjlWI3jy5AnWrl2L9evXIyEhIddCuXbt2ti2bVuO448ePcL8+fPh4+ODIUOGIDIyEhMnTnz/N01UQDj0giTz8uVLtGvXTl0kf/LJJ7h8+TKLZCKiAnTo0CHExsbCxsYGK1euzFEkA0Djxo2xdOnSLMcWLlyI8+fPo0KFCrh06RL69u2b65JdVatWxbfffgt/f3+YmprmK1v16tWxY8cOfPHFFwCAyZMn4zF3+SIdwkJZA5UrS52gZNLT08OjR49Qrlw57N27F+vWrcv1FzgREWkvNDQUAGBpaanxOdHR0VizZg0AYN68eahateo7z3F2ds53oZxu8eLFsLGxQWpqKr777jutrkFUGFgoa6BSJakTlBzpO2kB4pi13377DQEBARgwYICEqYiISi57e3sAwL///ouTJ09qdM7p06cRExMDmUyG4cOHF2Y8AOLuioMGDQIAHD9+vNBfj0hTLJSpyAQFBaFly5bYvXu3+liLFi1QrVo1CVMREZVsffr0ga2tLdLS0tC5c2e0b98eixYtwpEjR/D69etcz7l+/ToAoFq1aqhQoUKR5GzcuDEA4N69e7muoEEkBRbKVCT279+PRo0a4erVq5g5cyaSk5OljkREpcSqVUCVKuLtzJmsbUFBGW2TJuU8t3fvjPbstm3LaNu/P2tbTExG27BhOc8dPTqjPSJC23emGVNTU5w8eRJubm4QBAFnzpzBnDlz0KNHD1hZWaFRo0b48ccfs3zjFx4eDiDv4RovX76Ep6dnjtvvv/+udU4Li4zlpSIjI7W+DlFB4qoXVKiSkpIwffp0rFu3DgDQvHlz+Pr6wsDAQOJkRFRaREcDL1+K95OSsralpWW0RUXlPPf164z27OLiMtri47O2CUJG2381ZxYRERntKtW738P7qlWrFq5cuYKrV6/i8OHD8PPzg7+/P16/fo3AwEB8/PHH+PXXX3H48GGNfj9HRUXB29s7x/GqVauiT58+WmVUZfpB5DZpkEgK7FHWwO3bUiconh4+fIiWLVuqi+QvvvgC586dg4ODg8TJiKg0KVcOsLUVb4aGWdsUioy28uVznmtpmdGeXZkyGW0mJlnbZLKMNotc1uGvWDGjXV6E/xI3a9YMCxYswNGjRxEaGorr16+r1y4+ceKEegJfeu9uXkMz6tWrB0EQ1DcvL6/3zpbeiy2TyVA+tz8MIgmwR1kDQhF82i9pwsLC0LhxY0RHR6NixYrw9vZGjx49pI5FRKXQ55+Lt9w4OgIvXuR97sGDebd5eoq33JQt+/brbt2ad1tRkclkcHV1xa5duxAfH4+DBw/i999/xxdffAFXV1cAwOPHjxEVFVUkhau/vz8Acc1lPT2WJ6Qb2KOsgew9EPRuVlZWGDt2LFq3bo3AwEAWyUREOqxLly4AMnp1O3ToAFNTUwiCgJ07dxb666ekpGDPnj1ZshDpAhbKGqjB/S80cv/+fTx79kz9+H//+x9Onz6NKrnNgiEioiIhCMI7n5P+uzv993W5cuUw6b/ZjfPnz8fz588LLyCAr776Cq9evYK+vj6mTp1aqK9FlB8slKlA7Ny5E66urhgyZAhSUlIAiOti8uszIiJp/fDDDxg1ahQuXbqUo00QBOzfv189lyR9vDIgFsgtW7ZEREQEWrRogQMHDuRadIeFheH+/ftaZXv8+DFGjhyJFStWAADWrVvHeSykU1jF0HuJj4/HZ599hs2bNwMADAwMEBMTU2TrbhIR0dulpKRg+/bt2L59OywtLdGoUSNYWFjgzZs3uH37Np48eQIAGD58eJZJeQYGBvjrr7/w0UcfwdfXF3369IGlpSUaN26MihUrIiUlBUFBQfD390daWhocHR3Rvn37XDPcvXsXnv8N6FapVFAqlbh79y4ePHgAQRBgaWmJdevWwcPDo7B/HET5wkKZtHb79m14eHjg1q1bkMlkmDt3LubMmQOFQiF1NCIi+o+XlxccHR1x8uRJ+Pn54fbt2wgNDYWenh5sbGwwZMgQjBw5Eu7u7jnONTU1xa5duzBt2jRs27YN586dw5UrVxATEwNTU1PY2dlh+PDh6NOnD3r06AF9ff1cM4SGhqqXkzMwMEC5cuVgY2ODESNGoGvXrujXrx+MjIwK9edApA2ZoMngpVIqOjoaZmZmCPw3Ag3rsoc0s23btmHixIlISEhA5cqVsXPnTnTo0EHqWERUiiQmJiIoKAiOjo4ssohKmPz8/zu9XlMqlShXrlyB5uAYZQ28yWUR+tIsOTkZ3333HRISEtCpUycEBgaySCYiIqISh0MvKN8MDAywZ88e7N+/HzNmzOBQCyIiIiqR2KOsgdI+AVcQBPz8889Yvny5+litWrUwa9YsFslERERUYrFHWQNGxlInkE5MTAzGjx+PXbt2QS6Xo3PnzmjUqJHUsYiIiIgKHQtlylNAQAA8PDzw8OFDKBQKLF68GA0bNpQ6FhEREVGRYKFMOQiCgA0bNuDzzz9HUlIS7Ozs4Ovri5YtW0odjYiIiKjIsFDWQGKC1AmKlqenJ7Zv3w4A6NWrF7Zu3YqKFStKnIqIiIioaHEynwaePpU6QdFq2bIl9PT08O233+LAgQMskomIiKhUYo+yBgwMpU5QuARBQEhICKytrQEA48aNQ/v27eHk5CRxMiIiIiLpsEdZAwW8yYtOiYqKQr9+/dCyZUu8efMGACCTyVgkExERUanHQlkDJXXkwZUrV9CoUSP8/vvvePXqFS5fvix1JCIiIiKdwUK5FFKpVFi5ciU++OADPH36FNWrV8elS5fQrVs3qaMRERER6QyOUS5lIiIiMGrUKBw+fBgA4OHhgY0bN8LMzEziZERERES6hT3KpczMmTNx+PBhGBoaYsOGDfD19WWRTERERJQLFsoaCH4ldYKCs2zZMnTs2BFXrlzBhAkTIJPJpI5ERESFqGrVqpDJZFluhoaGqFKlCj788EMcOnRI6ogaOXPmDGQyGdq1ayd1FK21a9cux59F9tuUKVOkjkmZcOiFBlLTpE6gvbCwMOzcuRNTpkyBTCZDxYoVceLECaljERFREWvVqhVq1KgBAFAqlQgICMDBgwdx8OBBTJ06FatWrZI4YenRsGFDuLi45NrWrFmzog1TSJ48eQJHR0c4ODjgyZMnUsfRGgtlDSiKab/72bNnMWTIEAQHB8Pc3ByjR4+WOhIREUlk7Nix8PT0VD9OTU3F1KlTsW7dOnz33XcYMmQImjZtKl3AUqRPnz6YP3++1DFIA8W0BCxaNrZSJ8iftLQ0LFy4EB06dEBwcDDq1KnDX35ERJSFnp4eVqxYgXL/bRbwxx9/SJyISPewUC5hQkJC0LVrV8ybNw8qlQqenp64du0a6tWrJ3U0IiLSMUZGRqhZsyYAIDQ0NEf7iRMnMGnSJLi4uMDCwkI9tnnQoEG4du1artecP38+ZDIZ5s+fj9evX+OTTz6BnZ0dDAwMYGdnh0mTJqk3uMrN9u3b0bRpU5iYmKBChQpwd3fH+fPn3/lerl69Cg8PD9jY2MDAwABWVlbo1asXjh8/nuvzPT09IZPJsG3bNty7dw+DBg2ClZUVypQpg6ZNm+LAgQPq5/r5+aF3796wtLSEsbExWrRogZMnT74zU0GIjIzE7NmzUbduXZiYmKBs2bJo3Lgxli9fjoSEhBzPzzyWOz4+HnPnzkWdOnVgYmKCqlWrZnnu9evXMWzYMNjb28PQ0BAVKlRA165dceTIkVyzBAcHY/LkyXBycoKRkRFMTExgZ2eHjh07YuXKlerneXp6wtHREQDw9OnTHOOwixMOvShBTp8+jSFDhiA0NBQmJibYsGEDRo4cKXUsIiLSYdHR0QCASpUq5WibMGECnj9/jrp166JVq1bQ09PD3bt3sWfPHuzfvx++vr7o379/rtd9/vw5XF1dkZKSglatWiExMREXL17EunXr4Ofnh4sXL0JfXz/LOZMnT8b3338PuVyO1q1bw8bGBjdv3kS7du0wadKkPN/Dzz//jAkTJkClUqFRo0Zo164dnj59ikOHDuHQoUOYP38+5s2bl+u5/v7++PTTT1GlShV07NgRT58+xeXLl9G3b1/s2bMHenp68PDwQL169dCxY0fcvXsXV65cgbu7O06fPo3WrVtr+qPOt8ePH6NDhw54+vQpLC0t0b17d6SkpOD06dOYOXMmdu/ejRMnTqB8+fI5zk1MTES7du1w+/ZttGnTBg0bNkRERIS6fc2aNfj888+hUqng4uICNzc3hISE4MyZMzh27BgWLFiAuXPnqp8fEhKCJk2a4NWrV7C3t4e7uzuMjIzw6tUrBAYG4vr165g+fToAoHXr1oiNjcWvv/6KMmXKYMCAAYX2Myp0AuVJqVQKAITg1xFSR9HI8ePHBZlMJtSrV0+4c+eO1HGIiApVQkKCcPv2bSEhIUHqKDrNwcFBACBs3bo1R9vt27cFhUIhABCuXbuWo/23334TIiMjcz2up6cnVKxYUYiPj8/SNm/ePAGAAEDw9PQUEhMT1W3Pnj0TbG1tBQDCL7/8kuW8Q4cOCQCEMmXKCOfOncvStmTJEvU127Ztm6Xt5s2bgp6eniCTyYTt27dnaTty5IhgYGAgABCOHTuWpW3UqFHqay5atEhQqVTqtu+//14AIFSpUkUoX758jutOmTJFACB06tQpx8/mbdq2bSsAEObNm6fR893c3AQAQu/evYXY2Fj18bCwMMHV1VUAIAwdOjTLOadPn1a/rwYNGgjBwcE5rnv06FFBJpMJFhYWwtmzZ7O03bx5U6hSpYoAQDhz5oz6+IIFCwQAwrhx47L8rARBEJKTk4UTJ05kORYUFCQAEBwcHDR6r9nl5//f6fWaUqnU6rXehj3KGoiOBipbSJ0id6mpqdDTE/8YO3XqhN9//x2dO3eGsbGxxMmIiKTXa+0FvI5JkjpGvlmWNcQfkwqvp1KpVMLPzw+TJ09GWloavv76azRp0iTH8/r06ZPr+X369MHAgQOxa9cunD59Gt27d8/xnCpVqmD9+vUwNDRUH0sfevHll1/ixIkTGDJkiLpt9erVAIBPP/0UH3zwQZZrzZo1C3v27EFgYGCO11mzZg1SU1PRr18/jBgxIktbt27dMG7cOKxbtw4rVqxA586dc5zfrFkzzJ49O8uQgI8//hjz58/HixcvMHDgwBzX/frrr7F69WqcO3cOKSkpOXrG32XBggVYsGBBjuOZV4i4cOEC/Pz8YGJigo0bN6JMmTLq51laWmLjxo1o0qQJfH19sWzZMlSpUiXH9datW4fKlSvnOD5v3jwIgoAff/wRbdq0ydJWv359rFq1Ch4eHli7di3atm0LIGNojru7e47hE/r6+ujYsWO+fgbFBQtlDcTFSp0gd0ePHsWnn36Kv/76C9WrVwcA9O7dW+JURES643VMEkKiE6WOoRNGjx6dY/UjhUIBHx8fDBs2LM/zXr16hcOHD+Pu3btQKpVITU0FANy6dQsAcO/evVwL5Y4dO8LExCTH8Tp16gAAXr58qT6WmpqKCxcuAACGDx+ea46RI0fmWiifOXMGALKs6JGZl5cX1q1bh/PnzyMtLQ0KhSJLe7du3XIUfnp6enB0dERkZGSu761ixYqoUKECIiMjERERkWsx+jZ5LQ9nYZHRK5f+vtzd3XMdFtO4cWM0bNgQN27cwNmzZ3P8GVpZWeX4wAEA4eHhuHr1KoyNjdGrV69c86WvVX3p0iX1sWbNmuGHH37Al19+CUEQ0KVLF5iamr7rrRZ7LJQ1oWPjzlNSUjBnzhwsW7YMAPDNN99g27Zt0oYiItJBlmUN3/0kHVQYuTOvo/z69WucP38eMTEx+Pjjj1GzZs1c1+9dsGABFi9ejJSUlDyvmz7GOTt7e/tcj6evspGYmPEBJiIiQv04fRJYdnkdTy+482pP70hKTExEREQErKysNMqZXgTm1V62bFlERkZmeR+a0mR5uHe9L0B8bzdu3MjyoSNd9ol76YKCgiAIAhISErL09ufm9evX6vsjRozA8ePHsXPnTvTv3x8KhQLOzs5o3bo1BgwYgA4dOrz1WsUVC2UN5DJGXjLPnz/H4MGD1Z/yJk6ciG+//VbiVEREuqkwhy8UN9nXUVYqlejbty9Onz4NDw8P3L59O0sP8P79+zF//nyYmppi3bp16NChA2xsbGBsbAyZTIbZs2dj6dKlEAQh19eTy4vHwlrvyllc3kd2eQ3BVKlUAMQPAnlNxMyNXC6Hj48PZs+ejcOHD+PixYu4ePEiNmzYgA0bNqBXr1747bffcvTYF3cslDVgZCR1AtEff/wBT09PREZGoly5cti0aRMGDhwodSwiIiqGzMzMsHv3btSuXRtPnz7FqlWr8PXXX6vb9+zZAwBYvHgxxo0bl+P8Bw8eFFiWihUrwtDQEElJSXjy5Anq1q2b4zl57e5ma2uLR48e4fHjx7kuhfr48WMA4lJ4FSpUKLDMhc3WVtzEIT1/btLb0p+rCTs7OwCATCbDli1b8v1BwNnZGc7Ozvjiiy8gCAJOnTqFoUOH4o8//sD27dtL3OZmxfNjUil08OBB9O7dG5GRkWjcuDH8/f1ZJBMR0XuxtLRUF8crV67Msr5xZGQkAHGCWXZhYWF5rk+sDT09PbRq1QoAsHPnzlyfs2PHjlyPp4+nzWsI4pYtWwAAH3zwgXrye3GQ/r6OHj2a6xrXAQEBCAwMhFwuzzEh721sbGzQoEEDxMTE4OjRo++VUSaToWPHjhg6dCgAZBlDbmBgAADqMe3FFQvlYsLd3R3NmjXD5MmTcfHiRfWYKyIiovcxceJE2NvbQ6lUZhnKlz7pbuPGjUhOTlYfVyqVGDVqFJRKZYHmmDJlCgBg7dq1WSaRAcDy5cvh7++f63mTJ0+Gnp4efv/9d/j4+GRpO3bsGH766ScAUK/xW1y0bt0abm5uSEhIwPjx4xEfH69uCw8Px/jx4wEAgwcPVvcSa2rRokUAxAmeue3IKAgC/Pz8cOzYMfWx7du34/r16zmeGxMTo554mPlDlaWlJQwMDBASEqL+0FUcsVDWgFQfhk6dOqWeQGFgYICzZ89i9erV7xx8T0REpClDQ0P1xLI1a9aoi5opU6bA3NwcR44cQbVq1TBgwAB8+OGHcHBwwI0bNzBmzJgCzdGrVy988skniI2NxQcffID27dtj6NChqFevHmbNmoXJkyfnel79+vWxfv16yGQyjBgxAo0bN8awYcPQunVruLu7IykpCfPnz0eXLl0KNG9R+OWXX+Dg4IAD/2/vzqOauta/gX9DAiHMMgmoOKIUxaIVUKAVS61WEYsyWLWg4nwdrkP16tIfWrWtQ1Gr9hYcENtaFdTWeaggdRaWUK2KVhGlilpQBmWQ4Xn/8E2uaYKGDIDm+ayVtXSfs8959tkJeXKys/cvv6B169YIDQ3Fxx9/jLZt2yItLQ1du3bF2rVr63zcAQMGyPo6KCgILi4uCAwMxLBhw/Dhhx/CwcEB3bt3R3JysqzOrl270K1bNzRr1gz9+/fH8OHD0b9/f7Ro0QKZmZno1KkTxowZI9vf0NAQQUFBqK6uhoeHB4YOHYrRo0dj9OjRWrk29YUTZRXU9wehiooKTJ06FQEBAXKr4hg3lsHSjDHG3igRERFwc3NDSUkJli9fDuD5bAsZGRkYNmwYhEIh9u3bh99//x2ffPIJMjIy6nwXUxVr167Fpk2b0KVLF5w9exYHDhyAo6Mjjh07VuuczgAwduxYnD59GiEhIbh37x527NiBrKws9OvXD0eOHKl1Vb7Grk2bNrhw4QLmzJkDGxsb7Nu3D0ePHkXbtm3x1Vdf4eTJk0pX5VPFlClTkJGRgbFjx0IgEODYsWP4+eefcfPmTXTp0gXffPMNpkyZItt/xowZ+Pe//43mzZvjwoULSExMxIULF+Dm5oY1a9bg7NmzMDc3lztHbGwsxo0bB4FAgKSkJGzcuBEbN27U6JrUNwHV9nNVhuLiYlhaWuL3ywXo7FY/PwC4efMmwsPDZV9vfPbZZ1i6dOlrtzY6Y4zpWnl5OW7duoXWrVvzjQTG3jB1eX1L87WioiLZ9IPa8vqMam9A9fX3NzExEaNHj0ZxcTGsra2RkJCAwMDA+jk5Y4wxxhiTw0MvVKDlDycKysvLMXHiRISFhaG4uBi+vr7IzMzkJJkxxhhjrAFxotwI5ObmYsuWLQCer2d//PhxnYz9YowxxhhjquOhF42Ai4sLNm3aBEtLS/Tp06ehw2GMMcYYY+A7yg2itLQU48aNw2+//SYrCwsL4ySZMcYYY6wR4URZBcVanFP96tWr8Pb2RlxcHIYPH47y8nLtHZwxxhhjjGkNJ8oq0NaCIwkJCejWrRv++OMPNG3aFPHx8TylEWOMMcZYI8WJsgo0ncL46dOnGDFiBEaMGIHS0lIEBAQgMzMTAQEB2gmQMcb0GC8HwNibp7G8rvnHfCqwUm/RGwBAQUEB/Pz8kJWVBQMDAyxYsABz586FUCjUXoCMMaaHDAye3+uprq5u4EgYY9omfV1LX+cNhRNlFWhyR9na2hru7u4oLi7G1q1b0bNnT+0FxhhjeszQ0BBCoRBlZWUwMzNr6HAYY1pUUlICQ0NDGBoaNmgcnCjrQElJCWpqamBpaQmBQID169ejoqIC9vb2DR0aY4y9MQQCAUxMTFBUVARra2v+po6xN0RZWRmKi4thZWUFgabjXzXEibKWZWZmIjw8HO7u7khMTIRAIIClpWVDh8UYY28ke3t75OTk4Pbt27C2toZYLG7wN1bGWN0REaqrq1FSUoLi4mKIxWLY2to2dFicKKuiouLV+xARvvvuO0ybNg0VFRUoLS3F/fv34ejoqPsAGWNMTxkZGaF58+bIz89HXl5eQ4fDGNOQoaEhrKysYGtr2yi+JeJEWQWvSpSLioowZswYJCYmAgACAwOxefNm2NjY1EN0jDGm30xMTODs7IyqqipUaWs+T8ZYvTMwMIChoWGj+laIE2UNpaenIzw8HNnZ2RCJRFi6dCmmTZvWqDqZMcb0gUgkgkjEb2uMMe3hvygqqG1NkKqqKlmS3LJlS2zfvh3e3t71GxxjjDHGGNMJXnBEBUZGystFIhESEhIQEhKCjIwMTpIZY4wxxt4gjTZRrqiowOzZs+Hk5ASJRAJvb28cPXpUpbp3795FWFgYrKysYGFhgYEDByI7O1srcZ07dw5JSUmy//v5+SExMRFNmmiwKgljjDHGGGt0Gm2iPGLECMTExGDYsGFYvXo1hEIh+vXrh5MnT7603pMnT9CrVy+kpqZi7ty5WLhwITIyMtCzZ08UFBSoHQ8R4euvv4afnx8iIyNx9epVtY/FGGOMMcYav0Y5Rvn8+fPYtm0bli9fjpkzZwIAIiIi0KlTJ8yaNQunT5+ute63336LP//8E+fPn4enpycA4KOPPkKnTp3w9ddf44svvqhzPAUFjzBmZCT27dsHAAgODoaTk5MaLWOMMcYYY6+LRnlHOSkpCUKhEGPHjpWVGRsbIyoqCmfOnEFubu5L63p6esqSZABwdXVFQEAAduzYoVY8H/j3xL59+yAWi/Htt99i+/btvIgIY4wxxtgbrlEmyhkZGWjfvj0sLCzkyr28vAA8X/1OmZqaGly8eBHdunVT2Obl5YWbN2+ipKSkzvHcv38PLi4uOHv2LCZMmMBTvzHGGGOM6YFGOfQiLy9P6Yp20rJ79+4prffo0SNUVFS8sm6HDh2U1q+oqEDFC6uLFBUVAQD69Q9CXOy3MDc3R3Fxcd0awxhjjDHGdEaamxGR1o/dKBPlsrIyiMVihXLj/z+hcVlZWa31AKhVFwC+/PJLLFy4UKH8wP49aN58z6sDZ4wxxhhjDaKgoEDrQ2MbZaIskUjk7uxKlZeXy7bXVg+AWnUBYM6cOZg+fbrs/4WFhWjZsiXu3LnDY5L1QHFxMVq0aIHc3FyFYT/szcP9rV+4v/UL97d+KSoqgrOzM6ytrbV+7EaZKDs6OuLu3bsK5Xl5eQBQ64wT1tbWEIvFsv3qUhd4fida2d1oS0tLfqHpEQsLC+5vPcL9rV+4v/UL97d+MTDQ/k/vGuWP+Tw8PHD9+nWF8cDnzp2TbVfGwMAA7u7uSE9PV9h27tw5tGnTBubm5lqPlzHGGGOMvXkaZaIcEhKC6upqxMXFycoqKioQHx8Pb29vtGjRAgBw584dZGVlKdRNS0uTS5avXbuG5ORkhIaG1k8DGGOMMcbYa69RDr3w9vZGaGgo5syZg4cPH6Jdu3ZISEhATk4ONm7cKNsvIiICqampcr9ynDhxItavX4/+/ftj5syZMDQ0RExMDJo2bYoZM2bUKQ6xWIzo6GilwzHYm4f7W79wf+sX7m/9wv2tX3TZ3wLSxVwaWlBeXo758+fjhx9+wOPHj9G5c2csWrQIffr0ke3j7++vkCgDwF9//YVp06bhyJEjqKmpgb+/P1auXIl27drVdzMYY4wxxthrqtEmyowxxhhjjDWkRjlGmTHGGGOMsYbGiTJjjDHGGGNKcKLMGGOMMcaYEnqZKFdUVGD27NlwcnKCRCKBt7c3jh49qlLdu3fvIiwsDFZWVrCwsMDAgQORnZ2t44iZJtTt7127diE8PBxt2rSBiYkJOnTogBkzZqCwsFD3QTO1afL6flHv3r0hEAgwadIkHUTJtEXT/t6+fTt69OgBU1NTWFlZwcfHB8nJyTqMmGlCk/7+9ddf0atXL9ja2sLKygpeXl74/vvvdRwxU9eTJ08QHR2Nvn37wtraGgKBAJs3b1a5fmFhIcaOHQs7OzuYmpqiV69euHDhQt0DIT00ZMgQEolENHPmTIqNjaUePXqQSCSiEydOvLReSUkJubi4kL29PS1dupRiYmKoRYsW1Lx5c8rPz6+n6FldqdvfNjY25O7uTvPnz6f169fTlClTyMjIiFxdXam0tLSeomd1pW5/v2jnzp1kampKAOhf//qXDqNlmtKkv6Ojo0kgEFBoaCh99913tGbNGho3bhxt2bKlHiJn6lC3v3/55RcSCATk4+NDa9asobVr19J7771HACgmJqaeomd1cevWLQJAzs7O5O/vTwAoPj5epbrV1dXk4+NDpqamtGDBAlq7di25ubmRubk5Xb9+vU5x6F2ifO7cOQJAy5cvl5WVlZVR27ZtqUePHi+tu3TpUgJA58+fl5VdvXqVhEIhzZkzR2cxM/Vp0t8pKSkKZQkJCQSA1q9fr+1QmRZo0t8v7t+qVSv6/PPPOVFu5DTp7zNnzpBAIOAk6TWiSX/37t2bnJycqLy8XFZWWVlJbdu2pc6dO+ssZqa+8vJyysvLIyKitLS0OiXK27dvJwCUmJgoK3v48CFZWVnRJ598Uqc49G7oRVJSEoRCIcaOHSsrMzY2RlRUFM6cOYPc3NyX1vX09ISnp6eszNXVFQEBAdixY4dO42bq0aS//f39FcqCg4MBAFevXtV6rExzmvS31LJly1BTU4OZM2fqMlSmBZr096pVq+Dg4ICpU6eCiPDkyZP6CJlpQJP+Li4uRpMmTeQWpBCJRLC1tYVEItFp3Ew9YrEYDg4OatVNSkpC06ZNMWjQIFmZnZ0dwsLC8Msvv6CiokLlY+ldopyRkYH27dvDwsJCrtzLywsAkJmZqbReTU0NLl68iG7duils8/Lyws2bN1FSUqL1eJlm1O3v2ty/fx8AYGtrq5X4mHZp2t937tzBV199haVLl/Kb52tAk/4+duwYPD098c0338DOzg7m5uZwdHTE2rVrdRky04Am/e3v74/Lly9j/vz5uHHjBm7evIlFixYhPT0ds2bN0mXYrAFkZGSga9euMDCQT3O9vLxQWlqK69evq3ysRrmEtS7l5eXB0dFRoVxadu/ePaX1Hj16hIqKilfW7dChgxajZZpSt79rs3TpUgiFQoSEhGglPqZdmvb3jBkz0KVLFwwZMkQn8THtUre/Hz9+jPz8fJw6dQrJycmIjo6Gs7Mz4uPjMXnyZBgaGmLcuHE6jZ3VnSav7/nz5+PWrVtYsmQJFi9eDAAwMTHBzp07MXDgQN0EzBpMXl4e3nvvPYXyF58r7u7uKh1L7xLlsrIypWuBGxsby7bXVg+AWnVZw1G3v5XZunUrNm7ciFmzZsHFxUVrMTLt0aS/U1JSsHPnTpw7d05n8THtUre/pcMsCgoKsG3bNoSHhwMAQkJC4O7ujsWLF3Oi3Ahp8voWi8Vo3749QkJCMGjQIFRXVyMuLg7Dhw/H0aNH0b17d53FzeqfNt/79S5RlkgkSsemlJeXy7bXVg+AWnVZw1G3v//pxIkTiIqKQp8+fbBkyRKtxsi0R93+rqqqwpQpU/Dpp5/K/QaBNW6a/j03NDSU+3bIwMAA4eHhiI6Oxp07d+Ds7KyDqJm6NPl7PmnSJJw9exYXLlyQfR0fFhaGjh07YurUqfwB+Q2jrfd+QA/HKDs6OiIvL0+hXFrm5OSktJ61tTXEYrFadVnDUbe/X/T7778jKCgInTp1QlJSEkQivft8+dpQt7+3bNmCa9euYdy4ccjJyZE9AKCkpAQ5OTkoLS3VWdxMPZr8PTc2NoaNjQ2EQqHcNnt7ewDPh2ewxkXd/n727Bk2btyI/v37y41ZNTQ0xEcffYT09HQ8e/ZMN0GzBqGN934pvUuUPTw8cP36dRQXF8uVSz9Nenh4KK1nYGAAd3d3pKenK2w7d+4c2rRpA3Nzc63HyzSjbn9L3bx5E3379oW9vT0OHDgAMzMzXYXKtEDd/r5z5w4qKyvh6+uL1q1byx7A8yS6devWOHLkiE5jZ3Wnyd9zDw8P/P333woJknScq52dnfYDZhpRt78LCgpQVVWF6upqhW2VlZWoqalRuo29vjw8PHDhwgXU1NTIlZ87dw4mJiZo3769ysfSu0Q5JCRENjZJqqKiAvHx8fD29kaLFi0APH/jzMrKUqiblpYmlyxfu3YNycnJCA0NrZ8GsDrRpL/v37+PDz/8EAYGBjh8+DC/cb4G1O3vIUOGYPfu3QoPAOjXrx92794Nb2/v+m0MeyVNXt/h4eGorq5GQkKCrKy8vBw//vgj3Nzc+BvCRkjd/ra3t4eVlRV2794t98HoyZMn2Lt3L1xdXXno5GssLy8PWVlZqKyslJWFhITgwYMH2LVrl6wsPz8fiYmJGDBggNLxy7Wq06zLb4jQ0FASiUT02WefUWxsLPn4+JBIJKLU1FTZPj179qR/Xp7i4mJq27Yt2dvb07Jly2jlypXUokULcnJyoocPH9Z3M5iK1O3vt99+mwDQrFmz6Pvvv5d7HDlypL6bwVSkbn8rA15wpNFTt79LS0upY8eOZGhoSDNnzqRvvvmGPD09SSgU0oEDB+q7GUxF6vb34sWLCQB16dKFVq5cSStWrKC33nqLANAPP/xQ381gKlqzZg0tWrSIJkyYQABo0KBBtGjRIlq0aBEVFhYSEVFkZCQBoFu3bsnqVVVVUffu3cnMzIwWLlxI69ato44dO5K5uTllZWXVKQa9TJTLyspo5syZ5ODgQGKxmDw9PenQoUNy+9T2Rpqbm0shISFkYWFBZmZmFBgYSH/++Wd9hc7UoG5/A6j10bNnz3psAasLTV7f/8SJcuOnSX8/ePCAIiMjydramsRiMXl7eyvUZY2LJv39448/kpeXF1lZWZFEIiFvb29KSkqqr9CZGlq2bFnr+7A0MVaWKBMRPXr0iKKiosjGxoZMTEyoZ8+elJaWVucYBEREdbrHzRhjjDHGmB7QuzHKjDHGGGOMqYITZcYYY4wxxpTgRJkxxhhjjDElOFFmjDHGGGNMCU6UGWOMMcYYU4ITZcYYY4wxxpTgRJkxxhhjjDElOFFmjDHGGGNMCU6UGXtDtWrVCgKB4KWPVatWqX38BQsWQCAQYMGCBVqLWVuUtV0sFsPZ2Rnh4eE4ceJEg8QljaW+69aH2q558+bNMXDgQOzbt6+hQ9SqjIwMCIVCTJ48Wa78+PHjr3zdCQQCFBYWyupIX0svPoRCIaytrfHuu+9izZo1qKyslDtPTk6O0uOamJjAxcUFUVFRuHTpktLYq6ur4erqipYtW6KsrEzr14axN4mooQNgjOmWr68v2rVrp3Sbm5tbPUdTv15se2FhIdLT07Fjxw4kJiZixYoVmD59egNH+Jy/vz9SU1ORkpICf3//hg5HIy9e86KiImRkZGDPnj3Ys2cPpk2bhpiYGK2cZ/PmzRg5ciQiIyOxefNmrRyzLiZPngyJRIL58+fXuk9kZGSt24yMjBTKmjZtir59+wIAKisrce3aNZw8eRInT57Etm3bcOTIEZiamirUGzx4MMzMzAAAeXl5OH/+PDZt2oQtW7Zg+/btGDRokNz+QqEQixcvRmhoKJYtW4bo6GiV2syYXtJ4IW7GWKPUsmVLAkDx8fE6OX50dDQBoOjoaJ0cXxO1tb2srIwiIiIIAAmFQrp27Vq9xnX16lW6evWqQnnPnj0JAKWkpNS5bmNR2zWvrKykSZMmEQACQOfPn9fK+eLj4wkARUZGauV4dZGYmEgA6LPPPlPYlpKSImurqqSvpZ49eyps27NnDwmFQgJA8+fPl5XfunVLdp5bt27J1cnPzycfHx8CQLa2tlRaWqr0vO7u7iSRSCgvL0/lWBnTNzz0gjGmN4yNjbFu3TqYmpqiuroau3btqtfzu7q6wtXVtd7rNiSRSITly5fDwsICALB3794GjkhzK1euBABERUXp/FwDBgzA8OHDAQA7duxQqY6NjQ2WL18OAMjPz8eZM2eU7jdq1CiUlZUhLi5OO8Ey9gbiRJkxhl27dmH06NHo1KkTmjRpAmNjY7Ru3RqjRo3CtWvX6ny8xMREfPDBB7CxsYGhoSFsbGzg5uaGMWPG4OLFi0rrJCUloW/fvrCzs4ORkRGaNWuG4cOH48qVK5o2T46ZmRk6dOgA4Pk4zxcdPnwYgYGBsLe3h5GREZycnBAeHo709HSlxyoqKsK8efPg7u4OU1NTiMViODk5wdfXF//3f/+nMK70n+OMpeNZU1NTAQC9evWSG2/64pCCf9YtLCyERCKBUCjE3bt3a21vSEgIBAIBVq9erbCtvq65sbExXFxcAAAPHjxQ2P7rr79i8uTJ8PDwgK2trWxsc3h4ONLS0hT2b9WqFUaOHAkASEhIkLtmyoauaLOdGRkZOH36NLp37y57HunaO++8A0Dx+foynTt3lv1b2TUHgGHDhkEkEiE2NhZVVVUaxcjYm4oTZcYYwsLC8NNPP0EikeD9999Hnz59YGBggPj4eLzzzjs4ffq0ysf6/PPPERYWhtTUVHTq1AmhoaHo3r07hEIhNm7ciOTkZLn9q6qqEB4ejtDQUBw/fhzt27fHxx9/DDs7O/z444/o1q0bDh06pNX2FhcXAwDEYrGsbP78+ejbty8OHDiA9u3bIyQkBE2bNsWOHTvQvXt3bNq0Se4YpaWl8PPzw5IlS/DgwQMEBARg0KBB6NChA7Kzs7Fo0SI8ffr0pXE4ODggMjISTZs2BQD06dMHkZGRskdtY8sBwMrKCsHBwaipqcH333+vdJ+CggLs3bsXRkZGsruSQMNec2lbXzR+/HjExcXBwMAAvr6+CAwMhKWlJXbs2AEfHx/s3LlTbv+QkBD4+voCANq2bSt3zaRjfHXVzp9//hkA8MEHH9SpniaUPV9VrQMov+YAYGdnBw8PD9y7d0/pBxLGGHiMMmNvqrqMUd62bRs9efJErqympobWrVtHAKhjx45UU1Mjt13ZGOXy8nKSSCRkZmZGWVlZCufJyclRGGc7d+5cAkDe3t6UnZ0tty0xMZGEQiE1adKEHj9+/Mp2SL2s7b///jsZGBgQANq0aRMRER08eJAAkLGxMR05ckRu/w0bNhAAMjQ0pD/++ENWnpCQQADoo48+omfPnsnVqa6upuPHj1NFRYVcOWoZu6rKGGVldY8ePUoAyNXVVWmd1atXEwAaPHiwXHl9X/MrV67IxtmmpaUpbN+9ezc9evRIablIJCIbGxuFcbaqjFHWRTv9/PwIAO3fv1/pdm2PUa6pqSEvLy8CQO+9956s/GVjlImI4uLiCADZ2dnVOkaZiGjKlCkEgBYtWqRyvIzpE06UGXtDSROX2h7K3pSV6dGjBwGgy5cvy5UrS5QfPnxIAKhz584qHbugoIAkEgkZGxvTX3/9pXSfiRMnEgBas2aNSsckUp60FRYW0v79+6lt27YEgJycnGQfDgICAggATZ8+XenxAgMDCQCNGTNGVrZs2TICQDExMSrHpe1EuaamRtbW06dPK9Tx8PAgALRv3z5ZWX1f88OHD5OrqysBoHnz5ql8PKlPPvlEaWL6qkRZV+00NTUlAAqJt9SLiXJtj39+mFCWKD979owuX75MQ4YMkdXbtWuXbHttiXJeXh5t2LCBLC0tydjYWK7vlYmNjSUAFBwcrPI1YEyf8PRwjL3hapse7p8/DLtx4wYOHTqEGzduoKSkBNXV1QD+N77x2rVrr5xOzs7ODq1atcLFixcxY8YMREVFvbROSkoKysrKEBAQgGbNmindx9/fH99++y1Onz6NSZMmvfT8/zRy5EjZWNYXtW3bFjt37oSpqSmqqqpw6tQpAMCIESOUHicqKgr79u1DSkqKrMzT0xMAsGzZMtjY2CAwMBDW1tZ1ik9TAoEAkZGR+Pzzz7F582b06NFDti0zMxOZmZlwdHSUG47QENdcKBTihx9+wLBhw2qtd+/ePezfvx9ZWVkoKiqSjZm9fPkygOfPv379+qkchy7a+fTpU9lwGhsbm1fuX9v0cLUNqUlNTVU6V7aRkRG+/PJLBAcHK63XunVrhTJbW1ucOHEC7u7uL41R2o7axjEzpu84UWbsDTd69OhaE0Dg+eIDkyZNQmxsLIio1v1eHPP4Mlu2bEFISAhiYmIQExMDa2treHt7o3fv3vj0009ha2sr2zc7OxsAcOzYsVcupvH333+rdP4XvfghwcjICPb29ujevTv69u0Lkej5n7+CggKUl5cDUJ5wAM8TawByP5rz9/fH7NmzsXz5ckRGRkIgEMDFxQW+vr4YOHAgBgwYAAMD3f8MZOTIkVi0aBG2b9+OVatWQSKRAADi4+MBABERERAKhbL96/Oa//333zhx4gRKSkowYcIEuLi4wMvLS6HOwoULsWTJEoUfP75I1eeflC7aWVRUJPu3ubn5K/ev6/zOL86jbGBgAAsLC7i5uSEoKAgODg611pPOo1xdXY3c3FycPHkS+fn5CAsLw6lTp176AU46G8njx4/rFCtj+oITZcb03OrVq/Hdd9/BwcEBMTEx8PHxQdOmTWFsbAwAGDp0KH766aeXJtEvevfdd5GTk4P9+/cjNTUVp0+fxuHDh3Hw4EFER0dj9+7dCAgIAADU1NQAeH6HTfrjrNqoMzXaqz4kaOqrr77C+PHjsXfvXpw8eRKnTp1CfHw84uPj4enpiZSUFKULRGhTq1at0KtXLyQnJ2P37t0YOnQoKisrsXXrVgBQuLtb39e8qKgIwcHBSElJQVhYGK5cuQITExPZ9l27dmHBggUwMzPD2rVr8f7778PJyQkSiQQCgQBz587Fl19+qfLzT0oX7bSyspL9u6SkRJZkaourq6tai6esWLECrVq1kv0/KysLAQEByMrKwvjx4186rZw0+W/SpEmdz8uYPuBEmTE9J30TjY2NRVBQkML2P//8s87HlEgkCAkJQUhICIDnd+zmzZuHuLg4jBo1Crdv3wYAtGjRAgDQoUOHBlldDXj+1bNYLEZFRQWys7PlptWSkt6dVPYVfqtWrTB58mTZUsZpaWkYPnw40tLSsGzZMixcuFC3DcDzZDg5ORnx8fEYOnQo9u7di/z8fPj4+ChMYVbf19zS0hLbt2+Hq6srbt++jZiYGMybN0+2Xfr8W7JkCcaOHatQX53nH6CbdpqYmMDU1BRPnz5FQUGB1hNlbXF1dcWWLVvwwQcfIDExESdOnMC7776rdN+CggIAtc+MwZi+4+nhGNNzjx49AgC0bNlSYdvly5eRmZmp8Tns7OywbNkyAMCdO3dkX/MGBATAyMgIx48fx8OHDzU+jzpEIhH8/PwA1P5VuXRquF69er3yeJ6enpg4cSIAqHztpMsZqzuX7eDBg2FpaYnk5GTk5ubKhl0oG5/dENfczs5OlhyvWLEChYWFsm0ve/49fPgQR48eVXrMV10zXbWza9euAKD1uaa1LSAgQPbB92XLbP/xxx8A/jdXM2NMHifKjOm5t956CwCwbt062dfVAJCXl4eIiIg6JW+3b9/Ghg0blI4nla7I1qRJE9mduKZNm2Ly5Ml4+vQpBgwYgEuXLinUq6iowJ49e5CVlVWndtXFjBkzAAD//e9/cezYMbltmzdvxp49e2BoaIipU6fKynfv3o3ffvtN7poBQGVlpWxuXmXJnzLNmzcH8L8frtWVRCLBkCFDUFNTg6VLl+LQoUMwMTFBeHi4wr4Ndc0nTpwIZ2dnFBUV4euvv5aVS59/cXFxePbsmay8qKgIkZGRcuOCXyS9ZrUlrLpqp/TDUm2r3TUmX3zxBQwMDJCamqrwvJaSzpH+/vvv12dojL0+GnjWDcaYjqg6j/LZs2fJyMiIAFC7du0oLCyM+vbtSxKJhDp27EjBwcEvndLqxenhMjIyZHMOe3p6UlhYGIWFhVGXLl0IAAkEAtqwYYPccSorK2no0KEEgAwMDKhLly40ePBgCg8PJ19fX9l0XAcPHtR62180b948WYx+fn40dOhQ6tq1KwEgoVBIGzdulNt/6tSpBIBsbW2pd+/eNGzYMAoKCiJ7e3sCQM2aNaPc3Fy5Oqhlerh9+/YRADIyMqLAwEAaNWoURUVF0alTp15ZV+rs2bNyU5BFRETUum9DXfNNmzYRADI3N6eCggIiIsrOziYrKyvZNRs8eDAFBQWRpaUlOTo60qhRoxSeZ0REFRUV5OTkRACoS5cuFBERQVFRUbRs2TKdtvPChQsEgLy8vJRu1/Y8yrV51TzKUhEREQSAfH19FbY9fPiQRCIROTk5UWVlpcrnZkyfcKLM2BuqLsnixYsXKSgoiBwdHcnY2JhcXFxo1qxZVFxcTJGRkSonysXFxbRq1SoKDg4mFxcXMjMzI1NTU2rfvj1FRERQenp6rTEcOHCABg0aRM2aNSNDQ0OysrKit956i4YMGUJbt26lp0+f6qTtLzp48CD169ePbGxsSCQSkYODA4WGhtK5c+cU9s3IyKD//Oc/5OfnR82aNSMjIyOys7Ojd955h7744gvKz89XqPOyBGr9+vXUtWtXMjExUTrfrirJV8eOHWX7vWxOZqn6vuZVVVXk5uZGAOg///mPrPzWrVs0bNgwcnZ2JrFYTC1btqTx48fT/fv3lT7PpC5dukRBQUFkZ2cnW0RGWbKpzXYSEfn4+BAAunLlisK2xpYo5+TkkFgsJgB06NAhuW0xMTEEgBYuXKjyeRnTNwKiOv6UmDHGGNNjSUlJCA0NxfTp0+WGkbxOiAhvv/02bty4gezs7JdOP8eYPuMxyowxxlgdhISEwNfXF7Gxsa/tQh1JSUm4dOkSZs+ezUkyYy/Bd5QZY4yxOsrIyEC3bt0wYcIErF27tqHDqZPq6mp07NgRZWVlyMrKki1SwxhTxIkyY4wxxhhjSvDQC8YYY4wxxpTgRJkxxhhjjDElOFFmjDHGGGNMCU6UGWOMMcYYU4ITZcYYY4wxxpTgRJkxxhhjjDElOFFmjDHGGGNMCU6UGWOMMcYYU4ITZcYYY4wxxpTgRJkxxhhjjDEl/h+Cf4b7O01gXgAAAABJRU5ErkJggg==",
|
|
"text/plain": [
|
|
"<Figure size 800x600 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.figure(figsize=(8, 6))\n",
|
|
"plt.plot(fpr, tpr, \"b:\", linewidth=2, label=\"SGD\")\n",
|
|
"plot_roc_curve(fpr_forest, tpr_forest, \"Random Forest\")\n",
|
|
"plt.legend(loc=\"lower right\", fontsize=16)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
},
|
|
"tags": [
|
|
"inclass_exercise"
|
|
]
|
|
},
|
|
"source": [
|
|
"### Exercise: from the ROC curve, which method appears to work better?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
},
|
|
"tags": [
|
|
"solution",
|
|
"inclass_exercise"
|
|
]
|
|
},
|
|
"source": [
|
|
"Random Forests since get closer to the ideal point (i.e. top left of plot)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Comparing metrics"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 37,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:15:13.319443Z",
|
|
"iopub.status.busy": "2024-01-10T00:15:13.318949Z",
|
|
"iopub.status.idle": "2024-01-10T00:15:13.354041Z",
|
|
"shell.execute_reply": "2024-01-10T00:15:13.353400Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(0.9983631764491033, 0.9668396102663849)"
|
|
]
|
|
},
|
|
"execution_count": 37,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# AUC\n",
|
|
"roc_auc_score(y_train_5, y_scores_forest), roc_auc_score(y_train_5, y_scores)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 38,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:15:13.357195Z",
|
|
"iopub.status.busy": "2024-01-10T00:15:13.356728Z",
|
|
"iopub.status.idle": "2024-01-10T00:16:15.780979Z",
|
|
"shell.execute_reply": "2024-01-10T00:16:15.780322Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(0.9890893831305078, 0.739423076923077)"
|
|
]
|
|
},
|
|
"execution_count": 38,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Precision\n",
|
|
"from sklearn.metrics import precision_score, recall_score, f1_score\n",
|
|
"\n",
|
|
"y_train_pred_forest = cross_val_predict(forest_clf, X_train, y_train_5, cv=3)\n",
|
|
"precision_score(y_train_5, y_train_pred_forest), precision_score(y_train_5, y_train_pred)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 39,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:16:15.784167Z",
|
|
"iopub.status.busy": "2024-01-10T00:16:15.783687Z",
|
|
"iopub.status.idle": "2024-01-10T00:16:15.822234Z",
|
|
"shell.execute_reply": "2024-01-10T00:16:15.821584Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(0.8695812580704667, 0.8511344770337577)"
|
|
]
|
|
},
|
|
"execution_count": 39,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Recall\n",
|
|
"recall_score(y_train_5, y_train_pred_forest), recall_score(y_train_5, y_train_pred)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 40,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:16:15.825376Z",
|
|
"iopub.status.busy": "2024-01-10T00:16:15.824899Z",
|
|
"iopub.status.idle": "2024-01-10T00:16:15.865268Z",
|
|
"shell.execute_reply": "2024-01-10T00:16:15.864611Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(0.9254932757435947, 0.7913558013892462)"
|
|
]
|
|
},
|
|
"execution_count": 40,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# F_1\n",
|
|
"f1_score(y_train_5, y_train_pred_forest), f1_score(y_train_5, y_train_pred)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Progress so far"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"So far we have considered binary classification only (e.g. five and not five).\n",
|
|
"\n",
|
|
"Clearly in many scenarios we want to classify multiple classes."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"## Multiclass classification"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Binary classifiers distinguish between two classes.\n",
|
|
"Multiclass classifiers can distinguish between more than two classes.\n",
|
|
"\n",
|
|
"Some algorithms can handle multiple classes directly (e.g. Random Forests, naive Bayes).\n",
|
|
"Others are strictly binary classifiers (e.g. Support Vector Machines, Linear classifiers)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Multiclass classification strategies\n",
|
|
"\n",
|
|
"\n",
|
|
"However, there are various strategies that can be used to perform multiclass classification with binary classifiers."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"- **One-versus-rest (OvR) / one-versus-all (OvA)**: train a binary classifier for each class, then select classification with greatest score across classifiers \n",
|
|
"<br>(e.g. train a binary classifier for each digit)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"- **One-versus-one (OvO)**: train a binary classifier for each pair of classes, then select classification that wins most duels \n",
|
|
"<br>(e.g. train a binary classifier for each pairs of digits: 0 vs 1, 0 vs 2, ..., 1 vs 2, 1 vs 3, ...)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Comparison of multiclass classification strategies"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"**One-versus-rest (OvR)**:\n",
|
|
"- $N$ classifiers for $N$ classes\n",
|
|
"- each classifier uses all of the training data\n",
|
|
"\n",
|
|
"$\\Rightarrow$ requires training relatively *few classifiers* but training each classifier can be *slow*."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"**One-versus-one (OvO)**:\n",
|
|
"- $N(N-1)/2$ classifiers for $N$ classes\n",
|
|
"- each classifier uses a subset of the training data (typically much smaller than overall training dataset)\n",
|
|
"\n",
|
|
"$\\Rightarrow$ requires training *many* classifiers but training each classifier can be *fast*."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Preferred approach\n",
|
|
"\n",
|
|
"OvR usually preferred, unless training binary classifier is very slow with large data-sets."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"In Scikit-Learn, if try to use binary classifier for a multiclass classification problem, OvR is automatically run."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 41,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:16:15.869360Z",
|
|
"iopub.status.busy": "2024-01-10T00:16:15.868886Z",
|
|
"iopub.status.idle": "2024-01-10T00:16:24.929227Z",
|
|
"shell.execute_reply": "2024-01-10T00:16:24.928575Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([5])"
|
|
]
|
|
},
|
|
"execution_count": 41,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"sgd_clf.fit(X_train, y_train)\n",
|
|
"sgd_clf.predict([some_digit])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"Can see OvR\n",
|
|
"performed by inspecting scores, where we have a score per classifier. \n",
|
|
"\n",
|
|
"The 5th score (starting from 0) is clearly largest."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 42,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:16:24.933068Z",
|
|
"iopub.status.busy": "2024-01-10T00:16:24.932355Z",
|
|
"iopub.status.idle": "2024-01-10T00:16:24.939500Z",
|
|
"shell.execute_reply": "2024-01-10T00:16:24.938897Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[ -81742.80600673, -226403.87485225, -310042.19433877,\n",
|
|
" -173577.43026798, -82855.74343468, 39922.35938292,\n",
|
|
" -183200.20815396, 10437.2327332 , -240036.68142135,\n",
|
|
" -160691.66786235]])"
|
|
]
|
|
},
|
|
"execution_count": 42,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"some_digit_scores = sgd_clf.decision_function([some_digit])\n",
|
|
"some_digit_scores"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 43,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:16:24.942384Z",
|
|
"iopub.status.busy": "2024-01-10T00:16:24.941943Z",
|
|
"iopub.status.idle": "2024-01-10T00:16:24.948594Z",
|
|
"shell.execute_reply": "2024-01-10T00:16:24.947920Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])"
|
|
]
|
|
},
|
|
"execution_count": 43,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"sgd_clf.classes_"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 44,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:16:24.951594Z",
|
|
"iopub.status.busy": "2024-01-10T00:16:24.951202Z",
|
|
"iopub.status.idle": "2024-01-10T00:16:24.958059Z",
|
|
"shell.execute_reply": "2024-01-10T00:16:24.957454Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"5"
|
|
]
|
|
},
|
|
"execution_count": 44,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"sgd_clf.classes_[np.argmax(some_digit_scores)]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### OvO with Scikit-Learn"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Can also perform OvO multiclass classification."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 45,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:16:24.961009Z",
|
|
"iopub.status.busy": "2024-01-10T00:16:24.960645Z",
|
|
"iopub.status.idle": "2024-01-10T00:16:35.489682Z",
|
|
"shell.execute_reply": "2024-01-10T00:16:35.489026Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(array([5]), 45)"
|
|
]
|
|
},
|
|
"execution_count": 45,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"from sklearn.multiclass import OneVsOneClassifier\n",
|
|
"ovo_clf = OneVsOneClassifier(SGDClassifier(random_state=42, max_iter=10))\n",
|
|
"ovo_clf.fit(X_train, y_train)\n",
|
|
"ovo_clf.predict([some_digit]), len(ovo_clf.estimators_)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Many classifiers can inherently classify multiple classes\n",
|
|
"\n",
|
|
"Random Forest can directly classify multiple classes so OvR or OvO classification not required."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 46,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:16:35.493180Z",
|
|
"iopub.status.busy": "2024-01-10T00:16:35.492766Z",
|
|
"iopub.status.idle": "2024-01-10T00:17:18.031732Z",
|
|
"shell.execute_reply": "2024-01-10T00:17:18.031034Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([5])"
|
|
]
|
|
},
|
|
"execution_count": 46,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"forest_clf.fit(X_train, y_train)\n",
|
|
"forest_clf.predict([some_digit])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 47,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:17:18.035061Z",
|
|
"iopub.status.busy": "2024-01-10T00:17:18.034601Z",
|
|
"iopub.status.idle": "2024-01-10T00:17:18.046924Z",
|
|
"shell.execute_reply": "2024-01-10T00:17:18.046315Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[0.03, 0.01, 0. , 0.02, 0.02, 0.85, 0.02, 0.03, 0.01, 0.01]])"
|
|
]
|
|
},
|
|
"execution_count": 47,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"forest_clf.predict_proba([some_digit])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 48,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:17:18.050000Z",
|
|
"iopub.status.busy": "2024-01-10T00:17:18.049472Z",
|
|
"iopub.status.idle": "2024-01-10T00:17:37.039538Z",
|
|
"shell.execute_reply": "2024-01-10T00:17:37.038826Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([0.8687 , 0.86975, 0.8449 ])"
|
|
]
|
|
},
|
|
"execution_count": 48,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"cross_val_score(sgd_clf, X_train, y_train, cv=3, scoring=\"accuracy\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Error analysis"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Compute confusion matrix for multiclass classification."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 49,
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2024-01-10T00:17:37.044920Z",
|
|
"iopub.status.busy": "2024-01-10T00:17:37.043335Z",
|
|
"iopub.status.idle": "2024-01-10T00:17:55.983368Z",
|
|
"shell.execute_reply": "2024-01-10T00:17:55.982681Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[5765, 2, 16, 16, 7, 21, 33, 9, 48, 6],\n",
|
|
" [ 1, 6470, 41, 17, 9, 35, 13, 16, 138, 2],\n",
|
|
" [ 79, 52, 5155, 153, 39, 31, 171, 85, 181, 12],\n",
|
|
" [ 80, 40, 224, 5087, 19, 286, 62, 78, 217, 38],\n",
|
|
" [ 37, 30, 46, 15, 5101, 22, 64, 75, 315, 137],\n",
|
|
" [ 127, 27, 35, 208, 48, 4451, 175, 35, 259, 56],\n",
|
|
" [ 45, 10, 57, 3, 19, 112, 5611, 11, 45, 5],\n",
|
|
" [ 25, 32, 91, 49, 50, 15, 8, 5824, 81, 90],\n",
|
|
" [ 70, 175, 127, 278, 43, 394, 86, 51, 4571, 56],\n",
|
|
" [ 48, 33, 54, 117, 326, 99, 5, 801, 834, 3632]])"
|
|
]
|
|
},
|
|
"execution_count": 49,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"y_train_pred = cross_val_predict(sgd_clf, X_train, y_train, cv=3)\n",
|
|
"conf_mx = confusion_matrix(y_train, y_train_pred)\n",
|
|
"conf_mx"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
},
|
|
"tags": [
|
|
"exercise_pointer"
|
|
]
|
|
},
|
|
"source": [
|
|
"**Exercises:** *You can now complete Exercise 10 in the exercises associated with this lecture.*"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"Performance analysis can provide insight into how to make improvements.\n",
|
|
"\n",
|
|
"For example, for the previous dataset, one might want to consider trying to improve the performane of classifying 9 by collecting more training data for 7s and 9s."
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"celltoolbar": "Slideshow",
|
|
"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.8.18"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 4
|
|
}
|