{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Chapter 9 - Support Vector Machines"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[9.3 Support Vector Machines](#9.3-Support-Vector-Machines)\n",
    "> [9.3.3 An Application to the Heart Disease Data](#9.3.3-An-Application-to-the-Heart-Disease-Data)\n",
    "\n",
    "[9.6 Lab: Support Vector Machines](#9.6-Lab:-Support-Vector-Machines)\n",
    "> [9.6.1 Support Vector Classifier](#9.6.1-Support-Vector-Classifier)<br>\n",
    "> [9.6.2 Support Vector Machine](#9.6.2-Support-Vector-Machine)<br>\n",
    "> [9.6.3 ROC Curves](#9.6.3-ROC-Curves)<br>\n",
    "> [9.6.4 SVM with Multiple Classes](#9.6.4-SVM-with-Multiple-Classes)<br>\n",
    "> [9.6.5 Application to Gene Expression Data](#9.6.5-Application-to-Gene-Expression-Data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "from sklearn.model_selection import train_test_split, cross_val_score\n",
    "from sklearn.model_selection import GridSearchCV, KFold\n",
    "from sklearn.metrics import mean_squared_error, confusion_matrix, classification_report, accuracy_score\n",
    "from sklearn.metrics import roc_curve, auc\n",
    "\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.pipeline import make_pipeline\n",
    "\n",
    "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n",
    "from sklearn.svm import LinearSVC, SVC\n",
    "\n",
    "import classification_helper\n",
    "\n",
    "%matplotlib inline\n",
    "plt.style.use('seaborn-white')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 9.3 Support Vector Machines"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 9.3.3 An Application to the Heart Disease Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ChestPain: ['asymptomatic' 'nonanginal' 'nontypical' 'typical']\n",
      "Thal: ['fixed' 'normal' 'reversable']\n",
      "AHD: ['No' 'Yes']\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Age</th>\n",
       "      <th>Sex</th>\n",
       "      <th>ChestPain</th>\n",
       "      <th>RestBP</th>\n",
       "      <th>Chol</th>\n",
       "      <th>Fbs</th>\n",
       "      <th>RestECG</th>\n",
       "      <th>MaxHR</th>\n",
       "      <th>ExAng</th>\n",
       "      <th>Oldpeak</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Ca</th>\n",
       "      <th>Thal</th>\n",
       "      <th>AHD</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>63</td>\n",
       "      <td>1</td>\n",
       "      <td>typical</td>\n",
       "      <td>145</td>\n",
       "      <td>233</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>150</td>\n",
       "      <td>0</td>\n",
       "      <td>2.3</td>\n",
       "      <td>3</td>\n",
       "      <td>0.0</td>\n",
       "      <td>fixed</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>67</td>\n",
       "      <td>1</td>\n",
       "      <td>asymptomatic</td>\n",
       "      <td>160</td>\n",
       "      <td>286</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>108</td>\n",
       "      <td>1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>2</td>\n",
       "      <td>3.0</td>\n",
       "      <td>normal</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>67</td>\n",
       "      <td>1</td>\n",
       "      <td>asymptomatic</td>\n",
       "      <td>120</td>\n",
       "      <td>229</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>129</td>\n",
       "      <td>1</td>\n",
       "      <td>2.6</td>\n",
       "      <td>2</td>\n",
       "      <td>2.0</td>\n",
       "      <td>reversable</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Age  Sex     ChestPain  RestBP  Chol  Fbs  RestECG  MaxHR  ExAng  Oldpeak  \\\n",
       "1   63    1       typical     145   233    1        2    150      0      2.3   \n",
       "2   67    1  asymptomatic     160   286    0        2    108      1      1.5   \n",
       "3   67    1  asymptomatic     120   229    0        2    129      1      2.6   \n",
       "\n",
       "   Slope   Ca        Thal  AHD  \n",
       "1      3  0.0       fixed   No  \n",
       "2      2  3.0      normal  Yes  \n",
       "3      2  2.0  reversable  Yes  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_heart = pd.read_csv('Data/Heart.csv', index_col=0).dropna()\n",
    "for cat_col in ['ChestPain', 'Thal', 'AHD']:\n",
    "    df_heart[cat_col] = df_heart[cat_col].astype('category')\n",
    "    print(f'{cat_col}: {df_heart[cat_col].cat.categories.values}')\n",
    "df_heart.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Age</th>\n",
       "      <th>Sex</th>\n",
       "      <th>RestBP</th>\n",
       "      <th>Chol</th>\n",
       "      <th>Fbs</th>\n",
       "      <th>RestECG</th>\n",
       "      <th>MaxHR</th>\n",
       "      <th>ExAng</th>\n",
       "      <th>Oldpeak</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Ca</th>\n",
       "      <th>ChestPain_nonanginal</th>\n",
       "      <th>ChestPain_nontypical</th>\n",
       "      <th>ChestPain_typical</th>\n",
       "      <th>Thal_normal</th>\n",
       "      <th>Thal_reversable</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>63</td>\n",
       "      <td>1</td>\n",
       "      <td>145</td>\n",
       "      <td>233</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>150</td>\n",
       "      <td>0</td>\n",
       "      <td>2.3</td>\n",
       "      <td>3</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>67</td>\n",
       "      <td>1</td>\n",
       "      <td>160</td>\n",
       "      <td>286</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>108</td>\n",
       "      <td>1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>2</td>\n",
       "      <td>3.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>67</td>\n",
       "      <td>1</td>\n",
       "      <td>120</td>\n",
       "      <td>229</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>129</td>\n",
       "      <td>1</td>\n",
       "      <td>2.6</td>\n",
       "      <td>2</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Age  Sex  RestBP  Chol  Fbs  RestECG  MaxHR  ExAng  Oldpeak  Slope   Ca  \\\n",
       "1   63    1     145   233    1        2    150      0      2.3      3  0.0   \n",
       "2   67    1     160   286    0        2    108      1      1.5      2  3.0   \n",
       "3   67    1     120   229    0        2    129      1      2.6      2  2.0   \n",
       "\n",
       "   ChestPain_nonanginal  ChestPain_nontypical  ChestPain_typical  Thal_normal  \\\n",
       "1                     0                     0                  1            0   \n",
       "2                     0                     0                  0            1   \n",
       "3                     0                     0                  0            0   \n",
       "\n",
       "   Thal_reversable  \n",
       "1                0  \n",
       "2                0  \n",
       "3                1  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = pd.get_dummies(df_heart.drop(['AHD'], axis=1), drop_first=True)\n",
    "y = df_heart.AHD.map({'Yes': 1, 'No': 0})\n",
    "X.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1    0\n",
       "2    1\n",
       "3    1\n",
       "4    0\n",
       "5    0\n",
       "Name: AHD, dtype: int64"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=90)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# LDA\n",
    "lda = LinearDiscriminantAnalysis()\n",
    "lda.fit(X_train, y_train)\n",
    "y_pred_LDA = lda.predict_proba(X_test)[:,1]\n",
    "*roc_LDA, _ = roc_curve(y_test, y_pred_LDA)\n",
    "roc_auc_LDA = auc(*roc_LDA)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# SVC\n",
    "svc = make_pipeline(StandardScaler(), LinearSVC())\n",
    "svc.fit(X_train, y_train)\n",
    "y_pred_SVC = svc.decision_function(X_test)\n",
    "*roc_SVC, _ = roc_curve(y_test, y_pred_SVC)\n",
    "roc_auc_SVC = auc(*roc_SVC)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# SVM\n",
    "gammas = [1e-3, 1e-2, 1e-1]\n",
    "roc_SVMs = []\n",
    "roc_auc_SVMs = []\n",
    "for gamma in gammas:\n",
    "    svm = make_pipeline(StandardScaler(), SVC(kernel='rbf', gamma=gamma))\n",
    "    svm.fit(X_train, y_train)\n",
    "    y_pred_SVM = svm.decision_function(X_test)\n",
    "    *roc_SVM, _ = roc_curve(y_test, y_pred_SVM)\n",
    "    roc_auc_SVM = auc(*roc_SVM)\n",
    "    \n",
    "    roc_SVMs.append(roc_SVM)\n",
    "    roc_auc_SVMs.append(roc_auc_SVM)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### FIGURE 9.11"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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yJXPBAUF0a9fPwYMGMDAgQM5c+YMV65coXnz5pl2qUhOTqZ58+bcvn0bRVH49NNPMx1nypQpNG/ePNfjmzp1aqYtwayxaNEiunXrRq9evSw/y+fOnaNPnz74+/szcODAh/5cSx7LhqZpdnerUqVKhSpVqmhXr17VrALWvS4HUlNTte+//167e/eulpKSkuvHF44jPDxcGzFiRJbH33zzTe3ChQuW+9u2bdOGDBliuX/8+HFt9OjRWps2bbTbt28/9NgTJkzQzp07l/tB59Dy5cu1BQsWaJqmacHBwdpnn32W6flz585p3bt311JTU7VLly5pXbp00TRN0xYsWKAFBQVZXrNlyxZN0zTtt99+08aNG2f1+a9evapVqVJFq1KlSgXNDnLQ09xymr9skL40TdO0U6dOaUePHtVSUlK01NRU25wkn/r111+1nj17Wr6vP//8s9ahQ9KVfdoAAB2BSURBVAdN0zStb9++Wnh4uOW1u3fvtvws1KtXT2vbtq2WnJysaZqmpaSkaD179tReffXVXIvt1q1b2sCBA7XXXntNW716tdXvO3PmjObv76+lpqZqUVFRWteuXTVN07Q33nhD+/nnnzVN07Q1a9ZoU6dOzfJeyWOPz2Fy6fAhUlJSGDp0KKGhoTRv3hwfHx+9QxIOoGPHjsybN4/ExEQKFSrEhg0baN26NT4+PmzdupU333wz0+udYdf7kJAQ2rZty8CBAylSpIjlr/UXXniBixcvYjKZZBRFB7t27aJfv34sXbqUl19+We9wnI7RaOTatWts3LiRJk2aUK1aNctl2R49erB161bq168PwKZNmywLXhYoUIB69eoRGhpK06ZNCQkJwdfX17LFzsNWhtc0jUmTJnHmzBmeeeYZoqKiCAwMZMOGDQ/d6/DOnTsMHTqUQ4cOZXpu5cqVBAcHYzAYaNeuHW+99Vam5yMiImjcuDEGg4HSpUtjNpuJjo5mzpw5PPvss0DaXL9ChQplep/ksexJofUAs9lMx44dSU1NJSQkRCa926EaNeDs2dw7XvXqkFt70np7exMXF4eHhwcRERFMmTKFF198kcGDB2cptB61672LiwsDBw7MtOt9YGAgMTEx9OnTh02bNuHh4cEHH3xAaGgoBoOB/v37U79+fU6cOMHChQszJShr9gjLya73t2/f5rPPPgPSLhnExcWxbNkytm7d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\n",
      "text/plain": [
       "<Figure size 720x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10,4))\n",
    "\n",
    "# LDA vs SVC\n",
    "ax1.plot(np.linspace(0, 1.0, 100), np.linspace(0, 1.0, 100), color='black', linestyle='--', lw=1, label='Random')\n",
    "ax1.plot(*roc_LDA, color='blue', lw=1, label=f'LDA (area = {roc_auc_LDA:0.2f})')\n",
    "ax1.plot(*roc_SVC, color='red', lw=1, label=f'SVC (area = {roc_auc_SVC:0.2f})')\n",
    "ax1.legend();\n",
    "\n",
    "# SVC vs SVM\n",
    "ax2.plot(np.linspace(0, 1.0, 100), np.linspace(0, 1.0, 100), color='black', linestyle='--', lw=1, label='Random')\n",
    "ax2.plot(*roc_SVC, color='red', lw=1, label=f'SVC (area = {roc_auc_SVC:0.2f})')\n",
    "for i, color in enumerate(['black', 'green', 'blue']):\n",
    "    ax2.plot(*roc_SVMs[i], color=color, lw=1, label=f'SVM: g={gammas[i]:1.0e} (area = {roc_auc_SVMs[i]:0.2f})')\n",
    "ax2.legend();\n",
    "\n",
    "for ax in [ax1, ax2]:\n",
    "    ax.set_ylabel('True positive rate')\n",
    "    ax.set_xlabel('False positive rate')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 9.6 Lab: Support Vector Machines"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 9.6.1 Support Vector Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# generate random data\n",
    "X = np.random.normal(size=(20,2))\n",
    "y = np.concatenate([-1*np.ones((10,)), 1*np.ones((10,))])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# non linearly separable case:\n",
    "X[y==1] += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SVC(C=100, cache_size=200, class_weight=None, coef0=0.0,\n",
       "  decision_function_shape='ovr', degree=3, gamma='auto', kernel='linear',\n",
       "  max_iter=-1, probability=False, random_state=None, shrinking=True,\n",
       "  tol=0.001, verbose=False)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc = SVC(kernel='linear', C=100)\n",
    "svc.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdsAAAHNCAYAAABW9dGyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XmcVXXh//HXnZ1hhn1k2FRkOaIgGuBaLmnmkhkkmQulpVa/THPHJfNr5fI12y2zRMPCJVSy/KKWGxZqGBoqcFhkX2fYZAaGWe79/YEh5AYz8+HMnXk9//IenDvvxyi8OOeeuZPKZDJIkqRwcpIeIElSa2dsJUkKzNhKkhSYsZUkKbC8EE8aRVEhMAJYATSE+BySJLUwuUAPYFocx1u2/4UgsWVraF8I9NySJLVknwD+vv2BULFdAfCHP/yB8vLyQJ9CkqSWY+XKlZx11lnwTgO3Fyq2DQDl5eX07t070KeQJKlFes/Lp94gJUlSYMZWkqTAjK0kSYEZW0mSAjO2kiQFZmwlSQrM2EqSFJixlaQs9YtfwKJF7z7OZOD222HlyqY971133cU555zDV77yFb761a/yxhtvNO0Jd9GDDz5IXV1dsz7nX//6V1atWtWsz7krjK0kZaGVK+E734Gjj94a3EwGrroKLr8cxo1r/PPOmzePZ555hnvuuYdx48Zx+eWXc8011zTb7p3x61//mnQ63azPOX78eKqqqpr1OXdFqHeQkiQFVF4Of/sbHHfc1uAefDA89BB885tw9dWNf94uXbqwfPlyJk6cyJFHHsmgQYOYOHEiAGPGjOGGG26gX79+3H///VRWVjJy5EguvvhiysrKWLVqFUceeSSXXHIJY8eOJZPJsGLFCjZt2sStt95Kv379GDduHI8//jh5eXkMHz6cK664gp///Oe8+uqrbNq0iVNOOYWKigouueQSfvnLX27bNWrUKH72s5/Ru3dvJk+ezL/+9S8uvvhirr32WtatWwfAddddRxRF/PGPf+T+++8nnU5z7LHHMmTIEGbNmsVVV13FhAkT+P3vf/+hG37wgx9w2223UVVVRU1NDVdccQWHHHJIU/5zeWYrSdlq2LCtwV24cGtoTzkFfv5zSKUa/5xdunThV7/6FdOnT+f000/nhBNO4Nlnn/3Qj1m2bBm33HILEydO5KWXXuLNN98EoE+fPowfP55vfetb3HbbbcRxzOTJk3nggQd44IEHWLRo0bbn3meffXjggQc466yzKCsr48c//vEOn+O0005j0qRJADz66KN84Qtf4M477+TQQw/lvvvu43vf+x433HADa9as4Te/+Q0TJkzgkUceYePGjYwYMYJBgwZx6623smDBgo/ckE6nqays5M477+T222+npqam8V/Qd3hmK0lZKpOBBx989/GMGbB4Mey1V+Ofc9GiRZSUlHDzzTcD8Prrr3PBBRe858wuk8ls++d9992XTp06AXDAAQewYMECAA499FAADjroIG666Sbeeusthg4dSn5+PgDDhw9n7ty5APTt2/dDd332s5/ljDPOYPTo0VRVVTFw4EDmzJnDSy+9xOTJkwF4++23WbJkCQMGDKCoqAjgPZfAd2bDgAEDOOuss7j00kupr69nzJgxO/31+yCe2UpSFvrPa7S33bb10vG0abBhw7uv4TZWHMfccMMNbNmy9cex9u3bl9LSUnJzcykoKKCiogKAmTNnbvuY+fPns3nzZhoaGpgxYwb9+/cH2HaGO336dAYMGMA+++zDjBkzqK+vJ5PJMG3atG2By8l5N0epVOo9r9mWlJQwePBgbr75ZkaNGgVsPRM955xzuO+++/jJT37CKaecwp577slbb71FbW0tABdddBGrVq0ilUqRyWR2akMcx1RXV3PXXXdxyy238L3vfa/xX9B3eGYrSVlo1Sr43e+2hvY/l47/8xruxIlw2WWNe97jjz+e+fPnM3r0aIqLi8lkMlx55ZWUlpbypS99iRtvvJEePXqwxx57bPuY/Px8Lr74YiorKznhhBPYd999AZgyZQpPP/006XSam2++mT59+nDiiSdyxhlnkE6nGTZsGMcddxyzZ8/eYcPw4cO54IILGD9+PKntromPHj2a8847j5tuugmAr3/961x77bU89NBDVFVVceGFF9KlSxfOP/98zj77bFKpFMcccwzdu3fnoIMO4sorr2TcuHEfuWHvvffmjjvuYNKkSeTn53PRRRc17ou5ndT2lwKaSxRFewMLnn76aX/EniQFsmwZ9Oy542u073cspKVLl3LppZfy0EMP7XB87NixnHTSSRx55JG7Z0gLsHTpUo499liAvnEcL9z+1zyzlaQs1avXzh1T8oytlKD162HLFuje/d1jq1dDfj50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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = classification_helper.plot_classification(svc, X, (y+1)/2)\n",
    "support_vecs = svc.support_vectors_\n",
    "ax.scatter(support_vecs[:, 0], support_vecs[:, 1], marker='x', c=['b' if val==-1 else 'r' for val in y[svc.support_]], label='Support vectors')\n",
    "handles, labels = ax.get_legend_handles_labels()\n",
    "ax.legend(handles[-1:], labels[-1:])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "15"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(support_vecs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'C': 0.01}"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Set up possible values of parameters to optimize over\n",
    "p_grid = {'C': np.logspace(-2, 1, 50)}\n",
    "\n",
    "clf = SVC(kernel='linear')\n",
    "\n",
    "# Parameter search and scoring\n",
    "grid_search = GridSearchCV(estimator=clf, param_grid=p_grid, cv=10, scoring='roc_auc', n_jobs=-1)\n",
    "grid_search.fit(X, y)\n",
    "grid_search.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid_search.best_score_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification Report:\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "       -1.0      0.667     0.800     0.727        10\n",
      "        1.0      0.750     0.600     0.667        10\n",
      "\n",
      "avg / total      0.708     0.700     0.697        20\n",
      "\n",
      "Confusion Matrix:\n",
      "       Predicted     \n",
      "               0    1\n",
      "Real 0       0.8  0.2\n",
      "     1       0.4  0.6\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = classification_helper.plot_classification(grid_search, X, (y+1)/2)\n",
    "support_vecs = grid_search.best_estimator_.support_vectors_\n",
    "ax.scatter(support_vecs[:, 0], support_vecs[:, 1], marker='x', c=['b' if val==-1 else 'r' for val in y[grid_search.best_estimator_.support_]])\n",
    "handles, labels = ax.get_legend_handles_labels()\n",
    "\n",
    "classification_helper.print_classification_statistics(grid_search, X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "# non linearly separable case:\n",
    "X[y==1] += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdsAAAHNCAYAAABW9dGyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl8VPW9//H3ZCfJTBa2IIvsB0FBEFBL5Uq1XrXVFgtYRVusLT/vrRW1dQFr662t6PXaqlXrUvHWXaAqVou1WrxuoBEQLMJBEGRLICSYMJlJZju/PyBpEBdI5uR7Zub1/Is5MXPej6h58z3fz5zjcxxHAADAPVmmAwAAkO4oWwAAXEbZAgDgMsoWAACX5bjxppZl5UsaJ6lKUtyNcwAA4DHZknpJqrRtu7ntF1wpW+0r2tddem8AALzsJElvtD3gVtlWSdJjjz2miooKl04BAIB3VFdXa/r06dL+DmzLrbKNS1JFRYX69Onj0ikAAPCkg7ZPGZACAMBllC0AAC6jbAEAcBllCwCAyyhbAABcRtkCAOAyyhYAAJdRtgCQou66S/r443+9dhzpttuk6uqOve/999+vGTNm6Ac/+IEuvvhi/fOf/+zYGx6mp556StFoNKnv+fe//107d+5M6nseDsoWAFJQdbV0/fXSySfvK1zHka65RvrZz6R589r/vhs2bNA//vEPPfTQQ5o3b55+9rOfac6cOUnLfSjuu+8+JRKJpL7nww8/rGAwmNT3PBxu3UEKAOCiigrp5ZelU0/dV7jjx0vz50s//rE0e3b737e8vFw7duzQwoULNXHiRB111FFauHChJOnCCy/UDTfcoEGDBumJJ57Q7t27NXnyZM2aNUvdu3fXzp07NXHiRF1xxRW69tpr5TiOqqqqFAqFdMstt2jQoEGaN2+eXnjhBeXk5Gjs2LG66qqr9Pvf/14rV65UKBTSWWedpZqaGl1xxRW65557WnOdc845uvPOO9WnTx8tXrxYy5cv16xZs3Tddddpz549kqSf//znsixLCxYs0BNPPKFEIqFTTjlFxxxzjNauXatrrrlGjz/+uB599NEvzPCb3/xGt956q4LBoJqamnTVVVfp+OOP78i/Lla2AJCqjjtuX+Fu3ryvaM86S/r97yWfr/3vWV5erj/84Q9asWKFzj33XJ1++ulasmTJF37P9u3bdfPNN2vhwoVatmyZ1qxZI0nq27evHn74Yf3kJz/RrbfeKtu2tXjxYj355JN68skn9fHHH7e+98CBA/Xkk09q+vTp6t69u373u98dcI4pU6bo2WeflSQ988wzmjZtmu69916dcMIJeuSRR3TjjTfqhhtuUG1trR544AE9/vjjevrpp7V3716NGzdORx11lG655RZt2rTpSzMkEgnt3r1b9957r2677TY1NTW1/we6HytbAEhRjiM99dS/Xq9eLW3ZIh15ZPvf8+OPP1ZxcbHmzp0rSXr//fc1c+bMg1Z2juO0/nnYsGEqLS2VJI0cOVKbNm2SJJ1wwgmSpNGjR+umm27SRx99pFGjRik3N1eSNHbsWH344YeSpAEDBnxhrrPPPlvnnXeepk6dqmAwqKFDh2r9+vVatmyZFi9eLElqaGjQ1q1bNWTIEBUUFEjSQZfADyXDkCFDNH36dF155ZWKxWK68MILD/nn93lY2QJACmrZo7311n2Xjisrpfr6f+3htpdt27rhhhvU3LzvcawDBgyQ3+9Xdna28vLyVFNTI0n64IMPWr9n48aNCofDisfjWr16tQYPHixJrSvcFStWaMiQIRo4cKBWr16tWCwmx3FUWVnZWnBZWf+qI5/Pd9CebXFxsY4++mjNnTtX55xzjqR9K9EZM2bokUce0e23366zzjpL/fr100cffaRIJCJJuuyyy7Rz5075fD45jnNIGWzbVmNjo+6//37dfPPNuvHGG9v/A92PlS0ApKCdO6U//Wlf0bZcOm7Zw124UPrpT9v3vqeddpo2btyoqVOnqrCwUI7j6Oqrr5bf79f3vvc9/epXv1KvXr3Uo0eP1u/Jzc3VrFmztHv3bp1++ukaNmyYJOm1117TK6+8okQioblz56pv374644wzdN555ymRSOi4447TqaeeqnXr1h2QYezYsZo5c6Yefvhh+dpcE586dap++MMf6qabbpIkXXLJJbruuus0f/58BYNBXXrppSovL9ePfvQjXXDBBfL5fJo0aZJ69uyp0aNH6+qrr9a8efO+NEP//v11991369lnn1Vubq4uu+yy9v0w2/C1vRSQLJZl9Ze06ZVXXuERewDgku3bpSOOOHCP9rOOuWnbtm268sorNX/+/AOOX3vttTrzzDM1ceLEzgniAdu2bdMpp5wiSQNs297c9mus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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification Report:\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "       -1.0      0.727     0.800     0.762        10\n",
      "        1.0      0.778     0.700     0.737        10\n",
      "\n",
      "avg / total      0.753     0.750     0.749        20\n",
      "\n",
      "Confusion Matrix:\n",
      "       Predicted     \n",
      "               0    1\n",
      "Real 0       0.8  0.2\n",
      "     1       0.3  0.7\n",
      "\n"
     ]
    }
   ],
   "source": [
    "svc = SVC(kernel='linear', C=0.1)\n",
    "svc.fit(X, y)\n",
    "\n",
    "ax = classification_helper.plot_classification(svc, X, (y+1)/2)\n",
    "support_vecs = svc.support_vectors_\n",
    "ax.scatter(support_vecs[:, 0], support_vecs[:, 1], marker='x', c=['b' if val==-1 else 'r' for val in y[svc.support_]], label='Support vectors')\n",
    "handles, labels = ax.get_legend_handles_labels()\n",
    "ax.legend(handles[-1:], labels[-1:])\n",
    "plt.show()\n",
    "\n",
    "classification_helper.print_classification_statistics(svc, X, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 9.6.2 Support Vector Machine"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWwAAAD0CAYAAAC/3RwjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJztnXeYU9XWxt8kk0zKMIj0JoiQg6BUUQHFAlgoYlfK9YKKXayoILaLon52RZCrgDTFioooFhQFUWkiRTyI9N7LTKZnf3+85iaT7JNJnSTD/j3PeWBS9t4nmVlnn7XetZZJCAGFQqFQpD/mVC9AoVAoFJGhDLZCoVBkCMpgKxQKRYagDLZCoVBkCMpgKxQKRYaQlYxBNU3LBtAJwE4AZcmYQ6FQKKogFgD1ASzRdb0o+MmkGGzQWC9I0tgKhUJR1TkbwMLgB5NlsHcCwIwZM1CvXr0kTaFQKBRVi127dmHgwIHAPzY0mGQZ7DIAqFevHho1apSkKRQKhaLKInUlq6CjQqFQZAjKYCsUCkWGoAy2QqFQZAjJ8mErFIp0Rwhg0SLgl1+ABg2ASy8FHI5Ur0oRBmWwFYpjkeJioG9f4Kef+H+7HbjzTuDHH4FWrVK9OoUByiWiUByLjB0LLFwI5OcDJSXA0aPAgQPAVVelemWKMCiDrVAci0ycCHg85R8TAtiwAdi8OTVrUlSIMtgKxbGI1yt/3GQCylQ1iXRFGWyF4ljkX/+SBxgbNABOPLHy16OICGWwFYpjkXvuAU49FcjJ4c9OJ5CbC8ycyV22Ii1RKhGF4ljE4aCk78sv+W+jRkD//kCNGqlemSIMymArFMcqFgvQpw8PRUagXCIKhUKRISiDrVAoFBmCMtgKhUKRISiDrVAoFBmCMtgKhUKRISiDrVAoFBmCMtgKhUKRISgdtkKhyDw2bQLefBPYsgXo0QO45hqWiK3iqB22QpFprF7NWta1awNt2wLvv5/qFVUu8+YBrVsDzz8PTJ8O3H470KEDcORIqleWdJTBVigyiT/+ADp3BubMAfbtA1auBIYMAV56KdUrqxy8XmDQIJaGLS7mY/n5wMaNx8RnoAy2QpFJPP44jZUQ/sc8HuCxx4CiopQtq9L48082WwimsJCFq6o4ymArFJnEL7/Ia1kLQX9uVcfpNK7l7XJV7lpSgDLYCkUmYVSrurQUqFu3cteSCpo2BTQNMAeZLpcLuO22lCypMlEGW6HIJEaN4i4zEIcDGDCA9ayPBT7+GGjYEKhWjfW87XbgyiuBwYNTvbKko2R9CkUm0bMnMGECcO+99OWaTMC//w288kqqV1Z5nHgig4zffQfs3MkgbIsWqV5VpaAMtkKRaQwaxGYDe/YAxx0nb/VV1bFYePE6xojLYGuaVgfAMgA9dV3/MzFLUigUFWKxAPXrp3YN+/cD770H7NoFnHMOcP75qr1YkonZYGuaZgUwAUBB4pajUCgqHSF4BAfywrFoEXDRRQx2FhRQA33GGcAXXwA2W/LWeowTT9DxeQBvANiRoLUoFOnHzJlAu3bczV5zDfDXX6leUeIoKQEefBCoXh3IymK24KJFFb/P62WQ7+hRGmsAyMsDfv4ZeOut5K75GCcmg61p2mAAe3Vd/yqxy1Eo0oinnwZuuAH4/Xfe9n/4IXDaaQx4VQVuuAF47TUaXiGA336jX/iPP8K/b/VqefKKxwNMnhz5/Hv2AHfeCTRuDLRqBbz+urHGWgEg9h329QB6apo2H0A7AFM1TauXsFUpFKkmPx948kkaIR9eL39+6qnUrStR7N7NGiQFQR7NoiLg2WfDv9dsLp9pGYjFEtn8R44AHTtS8bJtG7B2LfDAA7yIKAyJyWDrut5N1/VzdF0/F8AKANfpur4roStTKFLJX3/RTRBMaSmwcGHlryfRbNgAZGeHPl5Wxvok4WjdGqhZM/Rxlwu47rrIUuQnT2bQsqTE/5jHQxfUpk0Vv/8YRSXOKBQyGjQwNjxG2YaZRPPm/uJJgVgs9GWHw2Ri8kr16kxcycqitDA7Gxg2jAktvXtTI33wINPpdwXt5777LnR3DwBWK7B0aeznVcWJ22Drun6ukvQpUs7WrcBVV9GA1KgB3HNPeXdGtNSpA/TpE1pj2ekERo6Mb63pQO3a1HPLsiYffLDi93fsyM987FjgkUdoaA8c4A69pAT46ivg5JN54bvoIl7krr6aRZoAJrpYraHjCgGccEL851dFUTtsReZz5AjQqRMwaxZ9z4cOAW+8QUNh5GuNhKlTqYbIzqYhq10bmDgROPtsPr9iBY3QKacw21DXE3M+lcX48TTONWtyl9y1KzB/PuB2R/b+atV43nXr0lUUSFkZcPgwDbTv39mzgbvv5vO33hpqsLOyWCukU6d4z6zKogy2IvOZOpWqhbIy/2OFhcDy5fHdXjudwLRprDut67zFv/ZaPvf99zRwH30ErFkDzJhBBclvv8V3LpVJVhbw6KM8v5IS+uY7dox+nD//jOxuprAQmDKFc510EvD559xNOxzUbnfrBnz7rUq+CYMy2IrMZ+lSY4OxalX84+fkUHoWqIC4/XbO6ZOhlZVRi3zvvfHPl2l07MjPKBJ8iTYAcN55DDD++SewYwc7yRwLFQfjQBlsReZzyinyehomU+S399FQVGTs/vjll8TPl+5ceSVQq1Z5F4fRLrlJE7pSAl93wgly1YkiBGWwFZnPkCEMDgYaCZuNt91duyZ+PqvVuODS8ccnfr50x24HFi9mELN6dRrfQYP8ChKA2m2nk35zk4lumE2b4osxxEJJCbXfXbowFjFlSnlXWpqjDLYi86lZkynVZ51Fw2C1ApddRulYMvyhZjNw002hRtvpPDZdIgADspMmMeC7bx/jCr//Dlx/PdCmDXfhCxeyafD55wONGjG7sXFj4JtvKmeNXi/lhvfeyzT6hQvp2rrmmsqZPwGYRBKucJqmNQWwcd68eWjUqFHCx1coDCkpoUGNNOMuVoqLgaFDmS1os9Gf7XDw3yZNgDFj0scQLF9O3XRWFoOmLVtG9/6SEu6Ga9dmOddYEQJo356p74EJM04ng7XJcF8F8u23wKWXUkkUiNNJdUwaqFO2bduG7t27A8CJuq5vCn5e7bAVVQurNfnGGqCRnjKFfRTvv5/z+pQqGzZwZ/nee8lfR0UMH85b/6efZkp9hw7RNTt4800a6g4dgHr1aPBj1bcvWwasX1/eWAO8+I0dG9uY0TB/fqixBrieH35I/vwJQBlshSIefNrs4Kw9jwcYMSK5cy9dSgPaqRPrcOzcGfr8uHF+NYtPofHQQ6zfURFz51I3ffgwFTBFRcCnn/JiFAvbtskvpqWlwN9/xzZmNNSpI489ZGfze8wAlMFWVA1KS+kLnTkzMmOUKMJ1K9+8OXnzzprFpgHvv0/D/MorwKmnll/LRx/5MwsDMZupga6IMWNCd9OFhTTaBw5Ev+aOHeXp8A4H/drJpn9/+QXDYgGuuCL58ycAZbAVmc/atZSGXXEFg4EtWtAVUBkKBJOJATQZjRsnZ06vl5mCHo//HIuLGfB77DH/66xWeVMCk0le2CqYrVvljxcXM8AY7efbuDGLQwWmw1utVNbceGN0Y8VC7drAnDncafsa+DZsyAt9pDryFKMMtiKzEYI1P3btog/56FHuAsePj2wXmQhGjw6tyeF0ysuwCkFFy6efssRpLGzdKq9HXVZWXnFx7bXyeh1lZcAll1Q8z9lny3ekXi8vDLffzp/Xr+cF8ppraMhlRZ18jB8PvPwytfONGwM338ygaPXqFa8nEXTrxiSd774DfvyRdyRpEGyMGCFEwg+3293U7XaLrVu3CoUiqfz2mxA5Ob4mV+WPCy+svHW8/LIQ9esLYTIJ0bixEFOnhr5mwwYhmjXjenNzhbDbhXj44ejnOnhQCKtVfs5t25Z/7fPPcx6HQwink/9/552K5/B6hXj2WSHMZvk8AMeaNInj+tbjcglx8slCHDkS/XkpxNatW4Xb7RZut7upkNhW1TVdkdnk5xv3IpTtQhPNihXAwIEMmgnB3dq77wLNmoW+tm9fyuMCu6q8/DJ7IfbtG/mcmzfLkz2sVipWArnvPlYx/PxzukEuvZQugYoYPRr4v/8L3wEmKwu4667yfu78fHbkeeUVYNSoyM5HETHKJaLIbDp2lPtSnU5/oaZkcfAgcO651BUXFdG3u3QpE3iCg2tr19KQBRvA/Hzg1Vejm/exx4wNqSx4dsIJwG230b8fibHOzweeeUYugQvEpzwJprAwPSSNVRBlsBWZjd3Oxq9Opz+Q5nIxOSTZgazp00M1xV4vJXBz5pR//MgR40DfoUPRzbtsmfzx7OzEKGTWr5f7vgMxm8Mn0QTWC1EkDGWwFZnP1VdzZ3vHHQx8vfEGU4+N6n0kio0b5UkkxcWhCot27eR3AnY707ajoUUL+eOlpezuHowQwK+/Al98EZkcr2FDufwOYBDS4WCbsAULuJZgl5TL5Q9IKhKKMtiKqsHJJwMvvUQd9qBBzERMNl26yOVgWVn0ZXu9VCEcOcLd74QJNHY+5YXTyTT2226Lbt7HHpOrUm64IXQ9GzawHViPHtQhN2zIrMdw1KoFXH556AXP4eDdzMqVPJo1Az75hGoPn0zObqd0b8CA6M5JEREq6KhQxEq/fjS469f7+z86HAwibt3K5/PzGSDs148ZkT//zOzD7dtZiOjf/w41vj7efx94+GEGGU88kdmMu3YB69bxfbNn8+fsbBr9MWPKv18I4OKLQwOdTz7JC0qPHsbnNnEid8rTpnGcmjWZPn7ZZXze10G+SRNeFH74gWvp3JldYxTJQSYdifdQsj7FMcPhw0I8+CClfM2aCfHkk0LMn0+pW6AELjtbiD59Ih93xozQMQAhsrL88rkmTYTYuFGI0lL5GCtW8HUySV6HDkL07SvEwIFC/PCD8ToKCoTYs4cyPyH479ixQtSsybUcf7wQr73mf14RFxXJ+pTBVigSzSWXUI8t0y1v3x7ZGE2aGOuffYfVKsSttxqPMX8+9d6y9/r01SYTLwxPPhnZut58M/RC4nQKMWFCZO9XhKUig6182ApFotmwQR5gtNnoCqkIISKrQ1JSwpoiRpx2mlx2B/hdJELQtfHkk3RpVMTjj4cGWj0e4IknKn6vIm6UwVYoEk23bnJZXElJZLWoTSagQYPI5rLbjZ9zuajxdjr9Sg6j0rNWKxsLh2PPHqZ1y9i5MzG1WzZuZBKR3c509WHDIi/neuQI/fpffUV5o5HSJYNRBluhSDQPPURjGSh3czqBBx+MXJ8sq08SjMPBZJhw3HAD60APGsRAo5F6xmQCcnONx1m0iC3XjGjWLP7uPgcPAqefTvlhUREN8H//C/TqVfF7336b9bqvugq46CIqV6pXZ6A2g1qAVYQy2ApFtHi9TElfvlxuDBo3ZnLLtddSF922LRsBPPpo5HNcfz13xz5ddd26/ipzLheNeY8eoanoAF0yDz8MDB7MNPm2bZkmvmaNcWGmrCygZ0/ulO+4gwb49NOpVPF6eS55efJdtMMBPPdc5OdmxKRJ5TvRAzTcS5bwszbijz+okiko8Kt1AGZcvv56lUqRV7I+hSIaliyhtO3wYf7scgEffMDKdoE0awbMmGE8Tl4eb9nDNe294QYeZWV0ZXi93C1v3syU/DZtQt/zxRfcZZaU8PjoI+D559kxxshFUKMG8PXXPKd27bjTLSmhe+L66ynZM0q4yc6mUe/Tx/g8AhECmDcP+PBDfnbXXccLCsDkJ5n7w2zmxaZDB/mYkyaFZpz68HiA114D/vOfirM3MwFZJDLeQ6lEFFWSI0fkqoucHCH27o1sjF27hLjoIio8bDYhTj1ViGXL5K9dvlyIAQOEOP10IYYPF2LHjvBjl5QIUaNG6PocDkoOjSruzZnD9z/8MOWHwa/JzpY/7jv3SPF6eT4+qaHZzLW9+CKff/pp/hw8h8slxK+/Go97/fXh1TTZ2ULs2xf5OlOIUokojgn27aPQoVcvlmZOSrOXjz6SF10qK2OGZUV4vSwW9e233BEWFwOrVvGxYIXG558zk/Kdd4DFi5nF2bp1+BNbsUKuCiko4E4zOzv0ucJCvg/gzjfQpeDDbjdO8y8qYtZjJMybxzrgvqJSXi/XNnIkz//GG7nGQF+4zcbzDlezul+/8A0IcnN5F5EItm71JwmlAGWwFRnPpk0UXzz1FPDll3T9nnIK7VxC2btXbtAKCiJrRvDjj1QvBBvVvDwGJH14vSzZGtjeq7SUroqHHzYe3+EwruLXtKlxwHH0aKo/mjSRBw6Li9l+TIbVSpfL++/L25EF8vHH8gqAWVlUdtSqxUzQbt3oBrHZ6Dv/+uvwAc3evYGuXeWKGaeTZWKNSvBGSmEha7643bxANG1Kd1ElBzSVwVZkPMOH05b57EVxMW3g0KEJnuicc+RGLyeHu+SK2LRJHrQTgv5u3y79jz+okJARXAUwkFatKAcMNm4uF+tWG9X3KC3l3PfdF7qTttmYFn/4sFwS6PHwvTfeyGDrmjXG6wusoxKIyeQ3tkLwizSbefHZuZNfZjgsFt6RvP02v6O6dbmrbteOQdfBg8O/PxKGD2d8oLCQn0VREUvIPvNM/GNHg8xPEu+hfNiKysQomS8rS4i8vARO5PUKcdll5dO9nU4hevaMLDV7xQp5urnvqFuX40yfbvya3Nzwc6xdy3Fyc+lfttuFuPlmjvvww0JYLPJxa9Zkmv377/P/Lhd9v/XqhV9z4GEyCeF2G38WK1YY+6iPHhXi0CGmugdmiVosQjRtSv98qigrk6/b950lEOXDVlR5XC7542ZzgoUBJhMVIWPH8hb8zDPpW54zJzINctu23AEasXs3fda1ahnXzpYpQwJp2ZJ+1nffpTpi9WqWmzWZjHs8AnRVvPUWFSa7dlGW+MEH7NoTaeKKEJz777/lz7dtS7+V3c67Ep9E8eOP+fOMGdzBBt6FlJUB+/fTZZIqSkvlrjDArxaqJJTBVmQ8t9wSeiefnU2XY8KrrFosvMVeuJD+1ptuiu6q8MknrHxnxE03Uf9sVLY1kltwq5XR18GDyye7nHIK64XLKCxkAMA3j6YBP/0kN9bZ2UxSkWE2G0vsAOCeeygXHDuWF4hdu4ALLuBz69YZ1xf/++/w7cqSiS/wKaNaNaB9e56XURZoAlEGW5HxjBjBuJPdTtel08kyGuPGpXhhCxYA3buzBvVFF1HDbbOxj6NRinhWFg3l3Lns6JKTw6tRdjaDg127crc3bhz/3707A34y37iMO++UKz7MZrYSCyQ3V34xysqi7lw2To0aFaff16vH8rBXX13+wtSpk/xCVVZGH7LVyvZrq1aFHz9eDh0K9ZuPH89fLN/35gti7ttHlc24cQzMbtmS3LXJ/CQVHW632+p2u6e53e4Fbrd7sdvtviToeeXDVlQ669cLMWuWECtXpnolQogvvgj1ezqdQvz4I5/v0MHYRz1njhBFRULceSe12gB9w/Pn05fbpUt5v7LLJcTQoZGty+sVonXrUF+208kO9IFs3EgfePAanU5qws84w9+x3m7n/3/6KfbPrLCQVQoD12Y2h1Y+zM2NvOphNKxYIUSbNtTIW62MTQRq39eupeb7tNPkn4vFIsSQIXEtISnlVd1u9xC32/3yP/+v6Xa7twQ9rwy24timeXO5QT7tND7/1VfyWtXVqgnh8QgxaJDc4L/0kt9IBifATJ4sxLhxQixYED4Ium2bEJ06cfxq1YQ47jgh3nsv9HV5ebxQBM913XVCHDzIOtyffSbEffcx+WXPnvg+s4UL+ZkYBUYDE2Eefji+uYLZuzc0ep2Vxe+xrKz8a//+27jOeKNGcS0jWUHHDwA8EvCzQQ1HheLY4Pff/UX6ahwn8OD6G1EMiTvBl2TSsyd9zA4H3SROJw9foO+DD0LrfhQW8tZbJnMrKqIz/7776H4580xjOVzDhhSpr1lDbfiePXRPBDNqlPwWf8YM+rh37mRrtoYNeeLxVMcTgkFRX4eecBQVAb/9FvtcMt5+O9T3XlrKQPB335V/vEYN47K1kXSlj4OYaonoup4HAJqmVQPwIYCqU11FoYiSTZvo0j16lD8fOmzCa7gTG9EU7+Pa8i/2/UGbTAy83Xor/dXVqgFXXMGA5K+/0iEfrEzw6ZJlCFH+9b//zqqBY8caL/zEE8Of2NSp8mQYn3KjTx9A1zm32Uw/84QJrA8SLbpOMX0k2O0MUiSSP/+UF8YqK2OQNJAaNXhRnDu3/GfucvEzSCIxBx01TWsM4HsA03RdfydxS1IoMouXXw61awVwYjYuwRY09j/odNKIBtK6NXfFN93kV4+0aCGXkZnNkUvsioqA6dMjPwkZ4XbMZWW8KBQWcq6CAv7/5psjy/oMxmo1VoEESiZ9STa33hr9HOHo0kWuDzWZ5EWnpk6lRNMX6bbbaayNVDgJIiaDrWlaXQBfA3hQ1/VJiV2SQpFZLFsmV7Jl2wR008n+B4qLjcubBnL88Ux7Dq6H7cv+i5Rw8rpI6NMn+pRusxn47LPo52rWTJ4a73AA55/P2tY2GyWAv/xiLCuMlWuvpf49UBVjt7OpcMeOoa/PzaU2XNf57+7d7GYfb03wCoh1hz0SQA0Aj2iaNv+fw6A6jEJRtWnXTq5+Kyq1wG0JSCIpLWWLrc8/r3jQV18FHnmEadbZ2dzNnXGG/LVmc6ihsFgiL3lqxPPPc36ZBNFiMTZOseilTSYm0NSqRfeQ3c4L1sUX0yAeOsSd/Ny59J8nGqeTssshQ4DatemXf+CBir+rE05gvCBc84cEYhKR6jejQNO0pgA2zps3D40aNUr4+ApFOrFxIxMQA2N8DrvAxcWf4CPv5aFv6NaNFd8iZPVqFrnLWrEUV84ZgpMKVpd/gc1GA+cL2Nls3KUvXUrDEw95efRLP/00nfQ2G+c4/XQGLoPvGOx2JrlE2uIsmKIiGsmdO6kzb99e/rpVq5iEZLEwO7NFi9jmSzO2bduG7t27A8CJuq5vCnmBTDoS76FkfYpjjWXLhOjcmbLhnBwh7r1uryjMqSmXfrVoYTzQu+9SSma1CnHyyeLhq/4UDgcVZlarV9hNBWKcbZj4X+0Op5PaYIfDr1e22YTQNNbvFoKa5d27KVDv10+Ihg2FOOssIb7+OvIT9HqFWLxYiJkzqUcWQoiRI0XA4igtHD8+9g8xUkaN4rwWC+d1OIR49dXkz1sJJEWHXdGhDLbiWOV/8ueiInlVKqtViDvukL95ypRyCTG/oa1wIj9Ucm0qENtNDWmYr7xSPo/dzsSbli35f6s1NAnF6RTinXfiO+GVK4X4z3+EeOYZZi4lm99/lxdistuFqAL2RhV/UigqAyGA/fthKvpHLuJLQQ8MHFqtDJ6NGCEfY8SIciqQD3AlChFaDMUkyvCZ6MMg5mefyWtM+/oZ/vkn/19SQt9yoAvU42ENjHhqdJx6Kn3tDz4YvklvovjwQ7l6xWSKLdiZYSiDrVDEy9y51DQ3aMD6H4MH0xgOGcIayr160bDdeScTZ2T+3ZKSEI21GQImhMaYTIGPFxfHV0T/0CFqquPlyBHWh373XWM9dWkpA4u33w6MGQNs3x79PLIAK8DH4m1SkAnItt3xHsolcmyyZIkQ558vRPXqQpx8Mt2xVZ7ly0PrRdvt9BVHg9crRJ065cZZhdbCIXGJOJAvdiHgtSZTaL2NrCy5/zxkMAdreMTDxx/zM6hWjYfdLsTUqeVf4/GwN6UvrT47m++ZNy+6udasMXaJ7NwZ33mkAcoloqgUfvuNyrPvvmOJ4LVr2fD71VdTvbIk8+yz8hTyr76KbgdpMlHyF+BCOQVr8EjWM7BbS5GdDdizSmBHAcbjVtTFHv977Xagfn1WusvNpQywd2/jQuE+nE5/H8VY2buX7cw8HqpIjh7l+d90U/n+k+PHU9nhk9IUFfE9/ftHd4fQqhU/J7ud63Y4+P/x4xOvzU5DlMFWJIRRo0KT8Dwe4NFH48/fSGt8qdnBZGdHX2rzlluofa5Thwa8YUOMmNQCq9dm4emngedGF2J9bkf82zTN/x6bjUZsyxb6kV0uGsA1a5g5GWiMs7Iog3O5aOSuuw544QU+JwSbAw8bRp/0X39FtuaPP5a7KEpKmD5epw6N8qRJ8qQhj8e4XOqnnzLnX9OAu+/2N7594AG2UXv2WeC55ygjTEQbsExAtu2O91AukWOPunXld9xOpxBbtiR2rnXrKG746afIOnOF47vvhOjYkXfUJ50UeidfIbfdRgWG7Bb9wIHYF2bUEmvNGiHOPpuKD5tNiIEDWTlvxgy6GYLX0bOnECecwLKlZ51F7eHAgSwl6qOsTIjLL/dXoMvKotthypSK1/nSS/J5Aw+z2bgCn9MpxB9/hI47Zkx5V5PVSpdRvBUB0xwl61NUCmeeaewi9XgSM0dJiRDXXktbWK0a3aGtWgmxa1ds482fL69g+vrrUQyyaRNldcFyuXvvjW1RkVJSUr7sZ7168i/AYmGd69xcf23trCwa519+4XtnzZKXC3U42GcxHLourw0tW0ewX91kouY8+Kp7+LDcT52dTe13FUb5sKsQixezKmedOsyGnTs31Svy89hjoaUvnE66MmWNSWLhtdeo3CospKs0L49dpQYOjG28ESNC79I9HnoEInarNmnCL+bSS1nFrXlzujWefz62RUVKVpZfFTFunN9dEExZGd0FR4/65XClpZQC+goozZwplwZarcD334dfh9tNaWDwly9bR/Xq/GVwOJh+XqsWsxV37ABefJEddZYto5JG1tutqAj4+uvw81R1ZFY83kPtsBPPokWhYoRE5D0E4/XG3qB6+nS6Rmw2ru2++xLb7NqoJ4DNFpv3oXp1+XjZ2ULs25e4dSeVVauMO3oHuhOMnhs3Toirr5Y/5+t+EwkjR4ZXppjNQvzrX1zv+PFUlhQWCvHBB1x/djZf43TyNkp2TiYTu9ZXYZRLpIpw1lnyv4P69WP345aV8a543jxmMY8cSVeDycQEuW++iW3M/fuFKC6ObU3haNBA/hnY7bF1jGrXTj5etWqJvdAklfvvD9+hJTtbiBo1jJ+3240NbfWsIfH4AAAgAElEQVTqkUv++vQJf9Gw25mlGMjhw6G7EIDumdatQy80Tie70lRhlEukirBihfzxffuYsxAtq1bxbr5nT+Cyy1gr6LnneOcsBBPkLrmEBcyiwWzmWNE0Eo+Ufv3k4zZsSFVbtIweLXfjDB9Oj0PCeO89VoeqXZsV9BLZRPbIEWP/jcUC9OgB3HWXsV+qsFDePcVioUojUslfrVrhE1eOP57JQwDwzTcsHlW/vrxBQn4+X3vWWVSzVKtGd8r48SwIla5MncoEKquVjYhnz078HDIrHu+hdtiJR9ZaD2DgLdrdYHFxSI6G9DCZhOjbNznnEwu7dwvRuLF/U2azcTO2YEHF7/V62f92+nSqTHy8+y7b8FksbG04Zkz8ypNyvPhi+V2kycQvbc2a6McqLGR20t9/+x+bO1fe49FkEmL0aH7ZxcVUhgQn14Q7bLbo1vbrr/LdcuCuecUKIT7/PPzrfGv3NbPdvp1ulKKi6D+vyuTNN+U+y9mzoxpGuUSqCNOny38fYgmaf/GFvF6Q7DjppMSfSzwcOSLEa6+x5tFDDwmxeXPF79m+ncXrcnLo7nA4hBgwgD1khaCBLihIsKEWggZWZkzNZvqNo+Htt7n43FyewOmns6O311tekufzA48ZEzrGZZdFbrRzc6M/39df5/xG4/34I7+IiuZ2uai3zBS8XmNd6ymnRDWUMthViJdfplvR4eDf5PDhfqMTDTNmyO2IzK5ceWXiz6Oy6dYt1M3rdFZCRc5164w/6MaNIx/n559Dr9ZZWXTCC8HAwWefMah3881+uV4wv/1W8e7Wd1xxRWznPGaMXz4YfCvo8YS/YNhs/OW+664kXD2TSEGB8YXKbo9qKGWwqxjFxdwxFhTEPsbWrZFJZ81mbt6WL0/c+iubvXuN8zpatkzy5IcPG3/Q3bpFPs4118gNndNJd0E0zJnDeth2e2i51cAvXtejG9dHfr4Qbdr4d/wWC9fpy0gy0ovn5grxf/8nxOrVsc2bSrxeIWrVkp/XySdHNZQKOlYxrFYWe7PbYx+jUSNKZwNLTTidDELWrcuffe0DP/mEsZ/Jk+Nbd6ooKDDuZHXkCPDzz6x9khRyc4EBA0IDfk4nc/kjZft2/vkHY7VG3/C2Vy9g61ZGlefNY/2RQLKz2b3d7Y5uXB9OJ7u+v/IKo9Y33AAsWgT86198/uGHQyO9Dger9w0fzqbEmYakDgwA/vzkk4mdS2bF4z3UDjsz+PJLFpU77zwhJkygy/W11+R3zU4nN0+ZhtfLrOzg8zGZuPmrXp2bzVGjknQXXlQkxC23cBK7XYjatRmQiIannpLv1O12pqXL8HrlJ+T1CvHss9zR2u38Yps2pYvluOOEeOCB5Ab4vF7upAMzKy0WIYYOTY4WtLLweqlp991BNGkSU5KEcokoouK004zvWDMpDhTIjz/SPvhcqzLZssslxLRpSVyEx8Pyn4Hp5MF4vfRF9+kjRI8eQkyeTCN28CDrgQT6dlwuGvJgtmwRondvGmCbTYj+/ctnAb3+ujx6/cILCT9lQ1atkmu/zzij8taQTMJ9xxWgDLYiIsrKhBg0yDh2kpMjxNKlqV5l7GzeTFVJw4by8wOEOPXUFC9y2LDyO0+XiwXGS0uZjTRqFP3D3btTHhdMfj53eIFfotVKZ73PiBhlH9WqVXnn2auX8ZcQnFxzjKF82IqImD4dmDVL3i3KZGLOR4cOlb+uRHHCCaw2euCA8Wv27q289YSwfj3w3/8C+fnIhxPvoD/G5V8H/ZeDwJdfMvFk9Gjg999ZBrV379Ax3nuPmU+BX2JJCX3g33zDn4183vv2yf3kySBcNtb06ZWzhgxFGWwFAOCNN+T1fwAGIr/80jh4lymMGycvyQzw3Lp3r9z1lOP77wGzGT/jTDTADtyCN3Afnkd7z0Lc/lBOZLZ09Wr5l1hczI4SADPwZLRoUXlfsKxFmo86dSpnDRmKMtgKACyEJsNmAx56iOnfmY7RBQmgoGP06MpbSwjHH49Ssw2X4DMcQXUcRS4K4UQBnJiyrjPmzIlgjDZt5F1mrFY2OQBYFU+mWnnxxbhPIWKMPmiLJfbSi8cIymArAMjVZwDvqB95hLvsTL9b7dtXXiPkuONY3uPEEyt/Tf+jd28sQhcUS7qk55dk4623Ihjj6qtZc8Ni8T9ms1Gv2aMHf77gAjYG7tqVbpbOnVmztk+fxJxHJPTty9KugTv6rCzeAsVSFOYYQhlsBQDgttuAU04JleUKQbeox8Pa1rqemvUlgiefpC/ed2Gy2Xi+c+YAjRundm2w21Hy7IuGbgmjO6ByOByszd2vn7/fYf/+wIIF5QsznXsusHAhu6UvWpQaX9C4cdSCP/cc8NJLbPN1002Vv44MI5E1yRQZjMPBv91PP2Xsa/58f717HyUlwNtvA08/nYoVxk+9enTlTppEG+Z2c6PXpEnq1nT0KPD++8C2bUD79hq8LgHklX+NywUMGhThgA0bAh99FP41H3/M26bNm9kv8dln/TtwHwcPAm++ycyik0/mFb1Ro4jPKyLcbuD++xM7ZlVHJh2J91Cyvsxm0iR5xyhAiJtuSvXqImfOHNbesdmEaNYs+nyVZLNyJUtV+z7rnBwhWrRgPotPM56TI8TFFyewPve0aaE6bIdDiK+/9r9myxYm+PiaCNhsXMiSJeXHKitjJbGRI4UYO5bSQ0VcVCTrUztsRQjnny8vsexyMds4E5g7F7jySr8qZMMG3nEXFAA33sjHDhwAnnmGG85q1YA77gCGDAlf1jmRXHstN7I+8vKYNX7rrXQv798PXHwxN78JWZMQ7Kwe3N6+oICP9+zJnx94gB+O75eguJjHjTf6C7MXFtKVsnIlF+50sufat9+y1rUiOciseLyH2mFnPiNHhuZwXHhhXElcUeP1sqpo8+bcFHbpwlZpkdC2rfwOoU4djnv0qBAnnli+sJzTyQzpymDbNuO6UEkraevxGHenCawqZ9Q7LSuL9W2FYHq5rI1XkyaZVWkvzVCJM4qYeOopigeuvZa76rfeAj7/vPJ2nwBjUbfdxpwSj4c+9h49IuuCs26d/PH9+7mhnDKFOSSBfnqPB5g2Ddi0KSHLD0s4ybPJxKJbPXuy2fKLL4ZuimPCbqd+UUZg1NWooa7Z7G+OO3WqXNS+d6/xh6+IG2WwFYacfz4wYwZjWNdem+C2WRVQXMwCaMGGyuNhwbeKaNpU/rivcfe8eXIjaLNF3xYtFho0kOeqOByUUA4aRO/Cr7+ysF+XLhEqRcJhMgEjR8qryv3nP/6fb7klVONps/HK7WsZFigdDCbcc4q4UAZbIeXwYVbEdDj4N3rWWcAff1TO3Lt3c4cva/cHMDs7GCGACROo+LDbqWgJbkfodFIcYTL5W+8F4/WGT8RLJO+9R191Tg5tXE4OpZVLl5ZP8iko4F3GzJkJmPS++4DHHqP4PCuLOsdXXuEV2ceIEcCFF/LLz81l8KJtW8qHfNxwg3wn3rAhcNJJCVioQorMTxLvoXzYmY3Xyw5Ugf5dk4muzT17kjv3N9/Ql2zUdACgLzuYMWNCxQ82G33WJhNrG736qt+9+tdfoa+3WNg7szJdsPn5FG6MGcPu9e+8w05gsvOOtqtYWMrK6I8Od7J//inE+++z6lfw64qLKV9xuVhgKieHkpeVKxO4yGOPpKlENE0zAxgHoC2AIgA36rq+PlEXEkXqWLwYWLOmvH9XCN6Sv/UWN2DJoKSEyXrh/LVOJ10lgRQVsf598PuKi4F27eh7D95NN29OP/G//+1vPN6hAzXRsZTUKCmhj10Iui9soQmLhucTqLGeN0/+uqysBCcBms2UxoRD03jIsFqZcfTzzzzx+vWByy4z9n8rEkI8XslLAdh1Xe+sadqZAF4A0C8xy1KkknXr5EarsBD4fXkpkpVvtXixXE4IcD0NGzIQ6VOf+di507jQ3MqVctcHwHG2bWOSncsVuyvku+/YpMVXJM9kAj78MDQXJRLOPZdeiLy88udkswE33xzb+pKGycSrU5cuqV7JMUM8PuyzAMwFAF3XfwFwWkJWpEg5p5wiL7PqRD5O/3QU67AmAbPZ2PCeey6wZQu11cHUrStfL1BxpyuzmcG/WI31/v2MxR06xJ36kSP0//ftyw1ocLZoRVgsvAA0b86LSG4ujylTmHCoOLaJx2DnAgjshlemaZpKxKkCtG8PnHEGYM/2W08zSuFCPoaUTGBFta1bEz7v6afLe1W6XNxdGrkqHA4mvQTfjZtMjH8lRBJnwAcfyC8yhYW8uNSpA8yeHd2Ybjdrtvz8MxOA9u6VX6gUxx7xGOwjAAKdYGZd10vjXI8iTZgzB7jlnD9wHA7CAQ8uwWwsxumogUP0W8yYkfA5LRb6latVo2LCZqMRvvRS4Kqrwr/3mWeYoBcoPRQCePdd4OyzgdIk/WYePGi8iy4s5G77mmui13abTMCpp7KYXqT+cEXVJx6D/ROAXgDwjw97VUJWpEgLHA7gpd7zcNDeAB64MAuXoyk288niYvoAJGzZAtx7L9CtG3DnncDGjdHN26UL/cqvvcZA4sKFLOtaUcKO2QxcdFGocSsspE/+88+jW0ek9OhRsUEtK8vcrvOK9CIegz0LQKGmaYsAvATgnsQsSZE29Owp90O4XCxyEcTq1fR/jx3LangTJrCm/rJl0U2bmwsMHkzJcPv2kb/vl1/kQcu8POCnn6JbQ6R06sQ7AFnfAB/FxcaduRSKaIjZ56zruhfALQlciyLdOPlkJkhMnuzP5HC5uJXt1i3k5cOGsVyoj5ISHrfdxoy9ZNOgAXe7wRmBDkfiK4MGMm0aC0j5LlTBAdCcHH5kCkW8qExHRXhefZWRtSuvZGH8KVMMxcpGu9glS4xVHImkb18GLYOXlpUVRT3pGDCb+fHMn8/gaOBu2+nkXULfvsmbX3HsoFQdivCYTHR/SFwgwbhc8gCcw1E5/V3tduDHHxmg/Ptvzlm3LlO6a9ZM/vwA8Prr9GtPmMCU8oEDWbJVlddQJAJlsBUJ45ZbgJdfLl/EzW6nV6WyGnK3bMn+jFu2UBly4omV2+3dZAIuv5xH0iksZFeYd97hVv6WW7jVz/T29gpDlMFWJIzHH+fO9rPPWHipuJhxy//7v8pfywkn8N+1a4E33qDypFcv42bDGUdpKbOJVq3yC81//ZVZN+PHp3RpiuShDLYiYdhsrEC3ZQsNpdud2k7ks2bRd11cTPv21VesLf3rr6HNhjOOTz5hwZfArKD8fDbdvO8+pkoqqhwq6KiIiIIC2oLBg1k6efv28s/n51MRAnB3e+GFqTXWJSXA9dfTnvmSZvLzqQt//fXUrSthfPkl9YrBWCx05CuqJMpgKwwpLKRh3reP5ZDvuIMikTFjWMTtp594tG7N8srVqjHAFljLOVqWLGET77feMszNiYjff5drsgsKKHLJFEpK+Hk3asTP+Jpr2Owc9evLM3bMZta4TgcOHOAvkFGBGEX0yGquxnscs/Wwy8qEKChI2vAejxCLFwvx999Jm0IIwQ7dd9/Nln0OB2tTZ2WF1mdu2DC0prTdzt6P0VJWxnrPTifncrlYYnnBgtjOYe3a0LX5jnPPjW3MVHDNNeVbJ5rNrO29d+km+QnWri1EUVFqF71rlxDdu7Mgud3O5pk//JDaNWUIqqdjZVBaytZL1avTOXrSScAXXyR0ijffZCGhHj2YTdi5c/Ky5x58kM1FCgp4FBXJa3Hs2hWapFJYyDvyv/+Obs733mP9Ep8LIz+fd/yXXWZccjUcmsY2YcEp7S4X7xTSgaIi+voPHJA/v2ED8Omn5VU3Xi8/lwlzm/BWwXdrk5PDE/7++9QWHxGC3dR/+IHBg8JC+qF69aqcZplVHGWwE8Hdd7PNUl4ercuGDRQDJygf+scfOUVeHst3FhQAS5d40bdv4m81i4upqoikwp3XKzemNlv0BnvSJLkrpaiIdbIBGq9WrajyaNWKPxthMlGt0qgR7Vm1apQY3nRTJUnuKuCVV4BatVgVsUEDoH//0J62K1fKbW9hIXsGoHdvYM8e4JtvWHRlwwb6p1LJL7/QZxN8hS8p4S+WIi6UwY6Xo0eBiRPl3WIDG5vGwUsvAR5PeeNcWmbGmqWFWLdcEniKg0OHItvRWixAvXpyg1JUFL3dCJcJKQQbAffvzx1pYSH/HTCAjQKMOOkkbu4++4w+8b/+okok1TLlWbN4Q5aXx1+foiKKPgIbFBw9yoYNsjsbq5UXrP/9cMYZDDJEeWLFxcDw4bwxzMpitYGVK2M/LwCUCMnWUVzML0ARF8pgx8uOHcbtxHU9IVNQkRH6R2AVxdg9+r8hj2PTJlqqGII9tWoZd44ym+lSqFYNaNyYO1yns/zfp9PJwFjDhtHNO3iwvICS1co62Q88ELoD9XjovgmH2Uy58tVXJ7eeSDTI2pkVFrICwA8/0PYefzwbH9vtoR1zbDbg9tvjX8eAAVTM+FqkLVjAOTdvjmPQjh39cqFAnE5+EYq4UAY7Xho3lm8PTSY2FEwAF19YhmwUhDxeDCvaff+S/4FVq1iwqVUrbnFbtpS3GA+D2Qw8/3xoMwCnk7Wlx45loaP161mp7tdfWScjJ4dG+pFHeMMRLQMG0D/vcvGjczj4/w8/5PXQyP0ZbfnWdGDHDuPnevfmLre0lJvSo0f52Vqt/BxOOQX49lu6q+Nh0ybGDIIvgoWFzFaNmebN2S8t8BfIauUVaPDgOAZWAFAqkYTw6KOhEXunU4gVK6IbZ/VqIe66S4gBA4SYOZOdqYUQ+3cVi0bYKrJR4B8eeeIF3EMphRBCbNvG/werBqpXF+Lw4ahPafZsITp1Ytfxiy4SYtmyqIeIGq9XiB9/FOKJJ4QYO1aIvXv9zzVqJFd8NGyY/HUlmquvptoj+Fzsdnm3eJdLiIULY/oaDZk7l78ass+0W7c4By8tZYt6t5tf0B13CLF7d0LWXdWpSCWiDHYi8HqFGDdOiBNO4F9d165C/PJL+PesWydEjx5CWCzUbZ17Lv+1WPx/pV26/E+ita/rJWIknhJt8Zu4AHPFXFxA/dvAgUK88IIQVqv8r8/lEuKttyrhQ0guEyfKr4nJPLWdO4UYNkyIFi2EOOssIWbNSsy4ui5Ebq7/q/adS4cO8q+wWjVevxPJxo38VQ2ey2rlnkGRGpTBTjReb/xj7NsnxPHHC2Eyyf9CA43txIl8z/r1FOC6XHwuJ0eIxo2F+OgjY8ExwDmeeCL+NacBb7zBHb/ZzH/Hj0/eXLt3c47A66DLJcSYMYkZ/6+/hBg0SIimTYU4+WQhGjTgecl+JRwO6soTzaWXhhrtnBwac0VqUDrsRFBUxPoMOTmUR5xxBrB0aezjTZxI56GoICiYn8/aoAAlDxs2UOYwbBijRbrO3orhNHguF0XbVYCbb6b2Oz+f/96SxPYZL73EfoyB8bP8fGD0aAbp4qV5czY+GD2aQb4dOxgKCf6VcDiACy5gOCLRzJzJ5hI5OYxddOnCwGO8/nFF8lDFnyJh4EAmwvgiNIsXA+edB6xYQUMaLcuXh0Z7jAiUbFSrRiFxIHv3Gr/XZmOPru7do19jmmIyyTurJ5q5c0OTggB+pCtXUk2RCEaOlF9vzWbW8r75ZmDEiMTMFUx2NvDCCzyESL3cUVExaoddEVu2GIfTX3wxtjE7doysxqfLVfE28vLL5WOZTMDDDwPz5lXcwVZRjgMHgD//lD9XXMwyHonA6wW2bpU/ZzZz1/3YY5WTuKiMdWaQ/n/Jf/1lXMmnsubPzg59vLQU+O232Ma8/vrQNiw+3ZYvzdhuB+65hwWlwzF0KO9hfTIqk4n/f/114NFHK2c7WsV4+WXjRJ527WK7qZJhNjP5SIavnrdCEUj6Guy//qKWuF073n/Wq8f71MpG0+T3xlYrd8qRsG1befFtzZoUMPfoQSPtcrHM3Z49LKoxYQKFzqNHh44lBH3gbdvSUD/0EPD558DTTwPnn8+slW++AW69NabTVfCGStbqDKCHqSKKiljSY8ECeaZiII8/Lte8y756hSI9VSIlJQybB4fMnU4hNmyIbcx46N+/fMm0SMPpK1YI0bIlQ/F2uxBt2sQf7r/tNr9SxKfDatBAiIMH4xtX8T969TIW3dhsQhw4YPzeOXMo2fMdtWpRQx2ON94Qom5d/ro3aCDE228n9nwUmUNmqkTmzWOKV3DIvLSUZesqmylT6J447jh/0YWFC8OH0w8fBs45h87QwkIeq1YBZ5/t94fv30/FR6NGlA089xxft3AhW3AHb/O2bw+tklRSAhw8yPJ6ioRw773GTXPtdn49MrZvZ0vFI0f8x7597F989KjxfD71S3Exx/j3v+M/B0XVJD0N9u7dcslbcTHdC5WN1Qo89RQNY0mJv+BDOKZNC+0IIgQN8ief0Oh26kT3x/btLG/3yCOsxNOrF9CvHwvRf/ml//2//SaPQBUU8CKXBuzfz6qfs2fzVDOR7t2BDh3kzwkB5ObKn5sxQ+77FoIFnyrCqCSNQuEjPX9FunSRO/9croqDcPGwZw+N54ED9CG73dwlx6KymDBBHij1eHjRmTGD8wXuon2+8sDHrryS/vwGDVisQzamxZKYSJgQbHz45ptcy4AB9IkbbTeDGDeOcnWrlbFPk4nu9URJ4GJlzx6ubdEillkZNgxo1iz8e155hYY7WByUk2N8Pvv3y8MdvpsghSJuZH6SeI+EZDoOHVreV+twCHHqqUIUFsY+phH5+UJcfjkLOfiKPGRl0U/dujUzE6Ph4EHjVHGLRYj585lSHi7L0XdkZwvx3HMc1+sVol270LGdTiH++CP+z+Gee8p/5i6XEBdfzHYwFfD73B3CkVUUsvzcXHbKSRUbNwpRs6Y/o89q5Wn99FPF733lFb4vN5fp4Q0aCLFqlfHr580r//EF/uquXp2wU1JUYTLThw1wh/rGG8zSa9OGErWff5ZL7GQIwQaBX3zBrU84hg7l64qK/Pe0paV0aaxbJ1dc+P4eZezaZbxOnw+8efPQupkyioroCAW4Zf3qK74/O5tygvr1WSz65JMrHisc69cD48eX94/n51Pq8M034d+7YQMmXzILxaWhv05CpEbc4+PBB7m79blnSkp4WkOHVvzeYcOAnTuB6dN5p7BlC6vlGXHeeTwCy8S6XMy7SnVfAUUVQWbF4z1SXktk0yZWCsvJYUkyu12I0aPlrz1yRF4iLbgiTmkpX795sxC9e3MHbrOxsl7wDrygQF45z2RiqbYNG1hRKJIdtsslxHffha57zx6OE8HuNyLeeCNUCeM77rwz/HsHDhTX4y3pW3NyvGLq1MQsMRaOO874Kz10KPHzlZYKMWMG+1r26cOCUYkoP6M4NsjcHXZFlJWxOHPr1sCJJ7J1hs9R2Ls3d4x5eVRrFBYCzzxTPoDn4+DBin20Xi+P/HxW058711+w+P336V+2WPjvuHHc/d5+e2j6mN0OPPEE9deyHlo1a5bPWnS5uGWTFX6vXZvnnagsRp8CJhibjbWMwzF/Pi7Hx8hBqBSitEQkNexQETk58sdNpshv1qLBYqHrf+5cBl4vvVRlESoSR+Ya7EGDeL/7xx+sxv7qq1RdLFvGqvbB4fr8fL4mmIYNQzMXAjGZKMWzWlktx9e30YfPcHu9vH8ePpwXhylT5C6TtWtZ/yN4fWYzO87OmMELzgUX0C30ySeV8xffty9gNmM52uMqvI/WWI1/YzJ0U0vguuvCv7dOHVyML3Eevvuf0TajDE7k4/ERRYbZfJXB7beHfr3Z2fyoY0kC9Xp53X/qKX5VkZaEUSgSgmzbHe+RdJfI2rXy23eXS4iHHmKUSHYf3KmTfLx335WXKLXbWQZ13Tq+7q67InNjOByMUsmyLq691nh9vXol5/OKkG9fXS2cyBcmlDI+ihKRYy8Wy5dX8MaZM4VwOkUZTOITXCIGYpq42fxf8Wv3EUlb6+bNLK86eXL4RJaSEsZ3fcFDp1OIs8+OrRnA0aNCtG9Pb5fZzH/r1GHlW4UiEVTNethTp8p9xAANouw5u12IZ54xHvOHH9haxe1mA4JrrqFMIDCDcNIkuQwg+MjKMq5RPWCAvHK808kmCCnE7ZYv+bzzInjzU0/xQpWby5jAJZfQwsn46ishzj5beBs2Env6DBEFy9ZEtc4xY/gROp38OpxOdsgJx6ZNfE08ao3hw0PDHWazEJ07xz6mQhFI1TTY8+YZ72AfeYS5vU6nX6LndDLIF2+Ppfx8IerXL98qRHY4nfI7gJwc7uYfeyxUstiyJcdPER6P8Wk5HBEOcvSoEEuXCrFjh/Frpk8XwukUH+FS0QDbRDYKhB0ecdMV+0RBQcVTLFsmvxY6nYltoSWjfn3552O1qsoAisRQkcFOz8SZijj3XAbdPJ7y/mSrlXqtxo0ZjHztNfqV+/RhhTyjCFSkOJ2shT1sGCsEmUz0YQeuwekERo2ir/rjj/0yOYeDyS2XX85AXqdOXN/Bg0yOufXW8L70JGOz0bcrq81cUczxf+TkhC+I5fUC99yDhZ72+BemwwO//m3aLDPybqBfOBzTpskzKC0WfiX9+0e4VoUiE5FZ8YoOt9td3e12z3a73T+43e6f3W5356Dnky/r27qVPQ+zs7kFPOEEdnCtbGbP5u7dZKJD8+WXqeMqK6OD9fTTmfDz9NNC5OXFP9/y5bwHN5vpemnUiA1PI9meVsDdd4feGDidQrz4YvzLFkKwSaLdLi7CFwIok3qtKspRuu02eRutnJzkF026775Ql4jJJMSZZyZ3XsWxQ1JcIm63+wm32333P//X3G738qDnK0+HvWsX09lSLXatjPn//lvun7dYhDjttP817I2VoiIhrrvOH6Cz24W4997ESb2FxyOE3S6aY53UtVCtmhArV4YfYv58eRjBbk9+Y+4jR4Ro25brNJn4VdSu7Y9JKwtLyTkAABAOSURBVBTxkiyXyEsAfFUTsgCkrsxP3bopm7oclSG9e+EFuY6srIzyxg8/pAg4Rmw2qhGff55ZfSedRHl2wnA4gCFD0Pm/i7Gx7ESUBf36lZVVXOOjWze6Pd55hx+FxUJP2IsvAnXqJHCtEqpVo2p07lx2eWvaFLjiipR6shTHGBUabE3TbgBwT9DDQ3RdX6JpWj0A0wHcnYzFlWPpUuD++/kXU6cOC/ffeOOxlZWwfLlx5x2Ph/nTcRhsH7Vr80gKL7+MUXufwKwPC5APF3y5W04nZfWBad0yTCZWkh08mBXwHA6mfiejSa0Mi4Uy+d69K2c+hSKQCg22rusTAUwMflzTtFMBzARwv67rPyRhbX5WrmTVPF9ELC8PuPtulmEdNSqpU4fl8GFW92vSpGJLkwjCbSEtlvS52wiHzQb3B0/hl8X5eGhEAX76zYm6dU146KGK83N8mExA1648FIpjiZgyHTVNawXgAwADdF2X5HsnmMcfD3UFeDzMKExFqllpKZvj1qsHnHkmDemjj9Kdmizy84FvvzV+3mYL7aiexrQ+3YXZ81w4cMCEtWtZtP9YullSKGIh1tT0pwHYAbyiadp8TdM+TeCaQlm2TG4MTSbjttPJZMQIv77s6FFePF54gdUFk8XnnxvXPLFagcmT5RX7yspYbu7CC9kY4aOPoruwlJWxoW+rVpRLDhvG1PpoEYJVBzO1q4FCkQ7IIpHxHglXiXTvLs9YsNsZuq9MSkuNsx2bNJG/x+NhjnQ8TJxoPO/QofL3eL0sGRdc43rIkMjnve668pkqVqsQjRtH97nPnk35oc1GXdyQIaktkq1QpCmZVa1v507gzjtZK7prV39fpUcflbeWHjKEofvKpKjIeJcYvPNcuhRo355rdLmAf/0rfHO/cFxwgTzg6HIBV10lf8/337M3ZHCN65kz2V+yIjZsYDXCwGyakhLWF588ObJ1L1nCrjXbtrFIVlER8O67kTusFQrF/0gfg717N/skTpjA0qOLFrEi39NPU8v1zjsM7mVl0Ujddpu8+l6ycTjoGpDRqZP//1u2sDTqihU0tMXFwAcfxC4vaNQIePhhXqh8zl6Xi66OHj3k7/nmm9C+kgAzDsP5w30sXSpvsuDx8EIQCU8/HRpnKCyki2fXrsjGUCgUANLJYL/4IlUXJSX+xzweYPRotp/u149lUw8c4Oueey41XUtNJtbhDtzxm0ys1fn88/7HXn89tOt5URH98ZHsbmWMGkVDO3QoL2YzZ/IiYBStq1lTXvTZao0s37xxY7m/22rlXVAkrFsnH8NmS01DZYUig0kfgz1vXqiBA/iH7TNwJhPdCxE2hY2JHTt4kRg8mLf9MhVK794MMGZl+bvNAlSt+NwWq1bJzycri80VYqVzZ96FTJvGGinhGhgMGCD/rEwm1jSpiDPP9N/VBGKzydumGa1XdmEtLmaTY4VCETHpY7AbN5bvFIuL2bewMvj5Z0DTWJ1+yhT60089NbTltRCUGpaW8v9eL2/z584F3n6br+ncWV4hv7iYY1YGDRpQFVK9OpCby4tdrVqswB+J799k4o7+7LO5U3c4aMA//5zdbiJhxAi+L/C7dTqBe+7hmhQKRcSkj8G+//7y7bEA3np36lRxvnIiEIJBwbw8ui4ABui2bqUBD0TX5f7X/Hym4QHUaTud5XfADgeldZG6ExLBRRcBe/YAn31GQ71zZ3QZJ/XqAd99R/fFn3/SLSVrWWZEs2ascHjJJUCNGkCLFsArr4R+pgqFokLSx2B37cpb/eOOY5nO7GwaBp9SJNls384jGF+wMJCSEmO/sc8NUrs2FRL9+vF86tYFHniAfufKxmZjpmjXrrH7/WvVAk44IbbslpYt2erswAH6tI+1kgIKRYJIr3rYgwZRAvbXXwyKVWYzwOxs44SS4J1/69Z0KQTK5QDuqAPlas2asSZ2ZbFoEdU0QrBC0llnVd7cCoUi6aTPDtuH1cqsusru3Fq7NnDaaaFBOqcTuPnm8o+ZzdQnu1x+P3VODmWJkQbjEs3w4UDPnuzaPn48XSH3BNfsUigUmUz6GexU8u67DH76El0cDgYPlyzhrvqaa1iICmAgbsMG4MknaRjfeQdYsCC2Vtzx8scflBF6PP78R58/3bdehUKR8aSXSyTVNG5MyZ0vyGa3U/NcUEAlyJ9/UiHx5ZdM5qlTB7jvvtjnW7eORr52be6IbbbI3ufLPPRpwefMoWIlmOJirrdNm9jXqFAo0gZlsIOxWOhaALi7DvRTe700lnfcEd/OVQi6WaZPZ/DNYuHFYf58uoM2baKhtVqBSy/1l03dtIn68J9+4s9du1IrbrdzjMCkI9+5BPvfFQpFxqIMdjiWLZM/vmoVjXe4pJVwvPeev2WKj6NHKX0bOpQab4Dj33MPMHEicNllvIDs2cO5Ae7OO3emP12GyWRcZ0ShUGQcymCH47jj5KVEq1WL3VgDDAoGK0wAZlk+/nhocanrr2c6fl6e31gD/P/u3SwMJQQle74ddWkp8OabrEGiUCiqBCroGI677w6tEuhw0CUSD0ZNF0pLQ90aAF0bX30lN/IAE32Ki+lC6dOHafPbt7N3lkKhqDIogx2OBx9kCVe7nWnUdjvrc/znP/GNO3CgvHOrxSLXggsBNGxYcRuyggJW6BswgFmFwfz0E7vGnnkm8MQTTGRRKBQZgzLY4bBYWJlvxw6/cuStt+KvEnjzzZQJ5uTwZ5uNBvyZZ+SyQK+XF4+mTeXV9wLZv19u9CdPputk1izg119Z9rRNG3aBUSgUGYEy2JFQowbQsSPLlSYCu5273cmTmab90EPUUt91FxNvfDVIfD7p55+n5HDhQvZtrFXLuGJhq1ahad9FRRzbp9P2PbZvX/mSsAqFIq0xiSQ0jtU0rSmAjfPmzUMjFfSKnuXLuRO22ZisIytD+t13QN++5bvBOBws8hTc0GD5cjZTOHIkdJxTTom9PrdCoUgo27ZtQ/fu3QHgRF3XNwU/r1Qi6UiHDjzCcf75LH366KPcnbdqRb90ly6hr61ZU16bG2Dyj0KhyAiUwY6Uffuond61i1UEe/SIT9qXCDp3ZpCxIpo04QVg8eLyGZFOZ3yZmgqFolJRBjsSFixgHeuyMioxXnuNdbrnzo08nTzVfPwxXShr1lD+V1zM3XmvXqlemUKhiBBlsCvC62W2YGAz27w8Ki3eeovNgDOBoiLKES0WKk3atVMdXxSKDKNqqUS2bWOnb6MEk1hYuVI+nsfDNmLpTkkJdd+aBlx7LRsqPPNMahoYKxSKuKgaBvvwYeDCC9l+qnt3BtJefDExY4fzUyezGXCiGDOGipPCQn5OBQXA998zi1OhUGQUVcNg9+/PSneFhZSueTzAI48As2fHP/app7L7TTAuFws1pTvjxoWmwhcWAlOnlq9LolAo0p7MN9i7d1OTHCxb83iA556Lf3yTiTvU6tWZmWiz0VhfeGH5dmDpytGj8sdLSuQ1tBUKRdqS+Y7M/fupevB1Og9kx47EzNGhA4spffwxy5t260aVSKIoKgIOHQqfwRgr55zDwlHBCVJt2mSOwkWhUACoCjvs5s3lRi4ri7UzEoXLBfzrX9QtJ8pYl5WxF+Pxx7NOSJ06bOuVSF56iWoQn3G2Wnmn8MYbiZ1HoVAkncw22Pv2AVu2AC+8UL76ndVKF8bIkalbWySMHEkfs8dDv/KBA2xYkMhO6y1bUnt99928M7j5ZuD334EzzkjcHAqFolLITJfIgQOUqn3/vb9A0gMPUBu9dSuVIg88ADRokOqVGlNc7G+cG4jHwyYGl1+euLkaNgSefTZx4ykUipSQmQa7Xz8a55IS+n/z84H/+z/ghx+A005L9eoi4/Bh46Dftm2VuxaFQpERZJ5L5K+/2GsxuDNLYSH9tZlCzZpsNSajffvKXYtCocgIMs9gb98uVzd4vcCGDZW/nlgxm3lXENx5xulkcwGFQqEIIi6DrWlaS03TDmuaJmmTkiTatJFL+LKz6bvOJIYMYQXA9u254+7enX75009P9coUCkUaErMPW9O0XAAvAJBYzyRy/PGU1r38sr/GR1YWpWvDhlXqUhJCv348FAqFogJi2mFrmmYC8F8AIwF4Knh54hk9GnjzTbbtatqUbbZWrFDF+BUKRZWmwh22pmk3ALgn6OHNAGbquv67pmlJWVhYTCbWD+nfv/LnVigUihRRocHWdX0igImBj2math7ADf8Y83oAvgbQLSkrVPjxeild3LGDfu4WLVK9IoVCUYnE5MPWdb257/+apm0CkMAccIWUrVvZmmzvXtYFKSsDrrwSePvt1LcqUygUlYL6S88UrroK2LyZ1ffy8lgy9aOP6MtXKBTHBHEbbF3Xm+q6XpiIxSgM2LGDQdWysvKPezysRaJQKI4J1A47EygoMC67msh2aAqFIq1RBjsTaNZM3vUmOxu44orKX49CoUgJymBnAiYTW3q5XP60fJcLaNwYGDEitWtTKBSVRmZW6zsWOe881rX+73+BjRuZxt6/f2gtEoVCUWVRBjuTaNIEeOqpVK9CoVCkCOUSUSgUigxBGWyFQqHIEJTBVigUigxBGWyFQqHIEJIVdLQAwK5du5I0vEKhUFQ9AmymNFMuWQa7PgAMHDgwScMrFApFlaY+gL+DH0yWwV4C4GwAOwGUVfBahUKhUBALaKyXyJ40CSEqdzkKhUKhiAkVdFQoFIoMIe0zHTVNawngVwB1VRnX8miaVh3AdAC5AGwA7tV1/efUrio90DTNDGAcgLZgo+gbdV1fn9pVpReaplkBTALQFEA2gCd1Xf8spYtKUzRNqwNgGYCeuq7/map1pPUOO2Wd2TOHewHM03X9HACDAbye2uWkFZcCsOu63hnAQ+DvkaI8gwDs13X9bAAXAxib4vWkJf9c2CYAKEj1WtLWYKe8M3tm8BL4iwTwbkndgfg5C8BcANB1/RcAp6V2OWnJBwAeCfi5NFULSXOeB/AGgB2pXkhauETSsjN7mmHwGQ3RdX2Jpmn1QNfI3ZW/srQlF8DhgJ/LNE3L0nVdGaV/0HU9DwA0TasG4EMAo1K7ovRD07TBAPbquv6Vpmkpr2WctiqRfzqzb/vnxzMBLNZ1XXVmD0LTtFMBzARwv67rX6Z6PemCpmkvAvhF1/X3//l5m67rjVK8rLRD07TGAGYBGKfr+qRUryfd0DTtRwDin6MdgHUALtF1PSVZgWmxw5ahOrNXjKZprcDb2mt0Xf891etJM34C0BfA+5qmnQlgVYrXk3ZomlYXwNcA7tB1fV6q15OOBG4SNU2bD+CWVBlrII0NtiIingZgB/DKP26jw7qu90vtktKGWQB6apq2CIAJwJAUrycdGQmgBoBHNE3z+bIv1nU95cE1hZy0dYkoFAqFojxpqxJRKBQKRXmUwVYoFIoMQRlshUKhyBCUwVYoFIoMQRlshUKhyBCUwVYoFIoMQRlshUKhyBCUwVYoFIoM4f8B+60x5XTNSToAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# generate random data, non linearly separable\n",
    "X = np.random.normal(size=(200,2))\n",
    "X[:100] += 2\n",
    "X[100:150] -= 2\n",
    "y = np.concatenate([1*np.ones((150,)), np.zeros((50,))])\n",
    "plt.scatter(X[:, 0], X[:, 1], c=['r' if val==1 else 'b' for val in y]);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'svc__C': 0.3925342450813755, 'svc__gamma': 1.142105263157895}"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p_grid = {'svc__C': np.logspace(-3, 0.1, 50),\n",
    "          'svc__gamma': np.linspace(0.1, 10, 20)}\n",
    "\n",
    "svm = make_pipeline(StandardScaler(), SVC(kernel='rbf'))\n",
    "grid_search = GridSearchCV(estimator=svm, param_grid=p_grid, cv=10, scoring='roc_auc', n_jobs=-1)\n",
    "grid_search.fit(X_train, y_train)\n",
    "grid_search.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification Report:\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "        0.0      1.000     0.348     0.516        23\n",
      "        1.0      0.837     1.000     0.911        77\n",
      "\n",
      "avg / total      0.874     0.850     0.820       100\n",
      "\n",
      "Confusion Matrix:\n",
      "       Predicted          \n",
      "               0         1\n",
      "Real 0  0.347826  0.652174\n",
      "     1  0.000000  1.000000\n",
      "\n",
      "% of miscassified samples:  15.0 %\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "best_svm = grid_search.best_estimator_.named_steps['svc']\n",
    "\n",
    "classification_helper.plot_classification(best_svm, X_test, y_test)\n",
    "classification_helper.print_classification_statistics(best_svm, X_test, y_test)\n",
    "y_pred = best_svm.predict(X_test)\n",
    "print('% of miscassified samples: ', 100-accuracy_score(y_test, y_pred)*100, '%')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 9.6.3 ROC Curves"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_pred_SVM = best_svm.decision_function(X_test)\n",
    "*roc_SVM, _ = roc_curve(y_test, y_pred_SVM)\n",
    "roc_auc_SVM = auc(*roc_SVM)\n",
    "\n",
    "fig, ax = plt.subplots(1, 1, figsize=(5,4))\n",
    "\n",
    "# LDA vs SVC\n",
    "ax.plot(np.linspace(0, 1.0, 100), np.linspace(0, 1.0, 100), color='black', linestyle='--', lw=1, label='Random')\n",
    "ax.plot(*roc_SVM, color='red', lw=1, label=f'SVM (area = {roc_auc_SVM:0.2f})')\n",
    "ax.set_ylabel('True positive rate')\n",
    "ax.set_xlabel('False positive rate')\n",
    "ax.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 9.6.4 SVM with Multiple Classes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# add a third class\n",
    "X = np.concatenate([X, np.random.normal(loc=(0, 2), size=(50,2))])\n",
    "y = np.concatenate([y, 2*np.ones((50,))])\n",
    "plt.scatter(X[:, 0], X[:, 1], c=['grey' if val==1 else ('b' if val==0 else 'r') for val in y]);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification Report:\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "        0.0      0.796     0.780     0.788        50\n",
      "        1.0      0.899     0.953     0.926       150\n",
      "        2.0      0.738     0.620     0.674        50\n",
      "\n",
      "avg / total      0.846     0.852     0.848       250\n",
      "\n",
      "Confusion Matrix:\n",
      "       Predicted                    \n",
      "               0         1         2\n",
      "Real 0      0.78  0.080000  0.140000\n",
      "     1      0.02  0.953333  0.026667\n",
      "     2      0.14  0.240000  0.620000\n",
      "\n",
      "% of miscassified samples: 14.80%\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "svm = make_pipeline(StandardScaler(), SVC(kernel='rbf', decision_function_shape='ovo'))\n",
    "svm.fit(X, y)\n",
    "\n",
    "classification_helper.plot_classification(svm, X, y)\n",
    "classification_helper.print_classification_statistics(svm, X, y)\n",
    "y_pred = svm.predict(X)\n",
    "print(f'% of miscassified samples: {100-accuracy_score(y, y_pred)*100:.2f}%')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 9.6.5 Application to Gene Expression Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_khan_xtrain = pd.read_csv('Data/Khan_xtrain.csv', index_col=0).dropna()\n",
    "df_khan_xtest = pd.read_csv('Data/Khan_xtest.csv', index_col=0).dropna()\n",
    "\n",
    "df_khan_ytrain = pd.read_csv('Data/Khan_ytrain.csv', index_col=0).dropna()\n",
    "df_khan_ytest = pd.read_csv('Data/Khan_ytest.csv', index_col=0).dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SVC(C=0.1, cache_size=200, class_weight=None, coef0=0.0,\n",
       "  decision_function_shape='ovr', degree=3, gamma='auto', kernel='linear',\n",
       "  max_iter=-1, probability=False, random_state=None, shrinking=True,\n",
       "  tol=0.001, verbose=False)"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc = SVC(kernel='linear', C=0.1)\n",
    "svc.fit(df_khan_xtrain, np.ravel(df_khan_ytrain))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "54"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(svc.support_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification Report:\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          1      1.000     1.000     1.000         8\n",
      "          2      1.000     1.000     1.000        23\n",
      "          3      1.000     1.000     1.000        12\n",
      "          4      1.000     1.000     1.000        20\n",
      "\n",
      "avg / total      1.000     1.000     1.000        63\n",
      "\n",
      "Confusion Matrix:\n",
      "       Predicted               \n",
      "               0    1    2    3\n",
      "Real 0       1.0  0.0  0.0  0.0\n",
      "     1       0.0  1.0  0.0  0.0\n",
      "     2       0.0  0.0  1.0  0.0\n",
      "     3       0.0  0.0  0.0  1.0\n",
      "\n"
     ]
    }
   ],
   "source": [
    "classification_helper.print_classification_statistics(svc, df_khan_xtrain, df_khan_ytrain)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification Report:\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          1      1.000     1.000     1.000         3\n",
      "          2      0.750     1.000     0.857         6\n",
      "          3      1.000     0.667     0.800         6\n",
      "          4      1.000     1.000     1.000         5\n",
      "\n",
      "avg / total      0.925     0.900     0.897        20\n",
      "\n",
      "Confusion Matrix:\n",
      "       Predicted                         \n",
      "               0         1         2    3\n",
      "Real 0       1.0  0.000000  0.000000  0.0\n",
      "     1       0.0  1.000000  0.000000  0.0\n",
      "     2       0.0  0.333333  0.666667  0.0\n",
      "     3       0.0  0.000000  0.000000  1.0\n",
      "\n"
     ]
    }
   ],
   "source": [
    "classification_helper.print_classification_statistics(svc, df_khan_xtest, df_khan_ytest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}