306 lines
143 KiB
Plaintext
Executable File
306 lines
143 KiB
Plaintext
Executable File
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# 7. Sparse Kernel Machines"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"%matplotlib inline\n",
|
|
"\n",
|
|
"from prml.kernel import (\n",
|
|
" RBF,\n",
|
|
" PolynomialKernel,\n",
|
|
" SupportVectorClassifier,\n",
|
|
" RelevanceVectorRegressor,\n",
|
|
" RelevanceVectorClassifier\n",
|
|
")\n",
|
|
"\n",
|
|
"np.random.seed(1234)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 7.1 Maximum Margin Classifiers"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAD8CAYAAAB3lxGOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3XtYlGX6B/DvzQhYKHjCJBVR1kOmbiamlW1ggVZWV1aawappga1WkmCZv+Xgekq0a7NcD6krmaaWVh4LNWQtU1PTlDysioJSipqwQCAw9+8PmHHAgRlgmOedmftzXe8lgzNwi/DlfZ/nfp+HmBlCCNflproAIYRaEgJCuDgJASFcnISAEC5OQkAIFychIISLq3cIEFFjItpPREeIKJ2IEm1RmBDCPqi+fQJERAC8mDmfiNwBfAfgDWbea4sChRANq1F9PwCXp0h+xUP3ikM6kIRwEPUOAQAgIh2AgwD+BGABM+8z85xIAJEVb/fp2rUrvLy8bPHpnc7p06fRqFEjBAQEqC5FOKiDBw9eYWZfq57MzDY7ADQDkAqgR03P8/T0ZG9vb963bx+LWyUkJDAAHj16NJeWlqouRzggAAfYyp9bm5wJmATKdSLaBWAwgGPVPa9Lly4oLCxEaGgotm/fjvvuu8+WZTi8+Ph4AEBCQgIAYOnSpdDpdAorEs7MFrMDvkTUrOLt2wA8CuBETa/x8PBAamoqfH19ERoaiv3799e3DKcTHx+PxMRErFixAhMnTlRdjnBitjgT8AOQXDEu4AZgHTNvtvSi9u3bIzU1FSEhIQgNDUVKSgr69etng3KcR1xcHDw9PTFw4EDVpQgnVu8pwroICgriAwcOAACysrIQHByMK1euSBBYsHnzZjz22GNyaSAsIqKDzBxkzXOVdwy2b98eu3btQqtWrRAWFoZ9+26ZWBAAvvvuOzz55JMYO3YsysrKVJcjnIjyEAAkCKwxYMAAJCQkIDk5WYJA2JQmQgCQILBGfHy8BIGwOc2EAHAzCHx9fREWFiazBmaYBsHu3btVlyOcgPKBQXOysrIQEhKCnJwc6SOoxk8//YTevXurLkNolEMNDJpjmD6UPoLqGQJg586dePXVV+XSQNSZJkMAuBkErVq1kiCowf79+7Fo0SK8/PLLEgSiTjQbAkDlwcLQ0FAZLDRjypQpSEhIwIoVKyQIRJ1oOgQAmTWwhmGwcMWKFTJrIGpN8yEASBBYwxAEbm5uKF/nRQjraHJ2oDqmLcYya2AeM4OIcPnyZbRs2VJajF2Uw88OVKfqGIEMFt6KiJCbm4v+/fvLGIGwikOFAFC5oUiCwDwfHx+MGjVKBguFVRwuBADpI7CG6WChBIGoiUOGACB9BNYwXZhk5syZqssRGuWwIQBIH4E14uLisHjxYowfP151KUKjHDoEAJk+tEZkZCRatGiBoqIivP/++3JpICpx+BAAJAistWHDBkycOFEaikQlThECwK1BIGMEt3rxxReNtyHLYKEwcJoQAKSPwBoyayCqcqoQACQIrGEIgo0bNyIzM1N1OUIxh2obrg1ZmMSy3377DW3atAFws91YOAenbRuuDWkosswQAImJiRgzZoxcGrgopw0BQBqKrEVEMkbgwpw6BABpKLJGXFycrEfgwmy6IalWGYIgODgYYWFhstORGaaboOp0Onyw6AOsProa/z78b2TmZqKpR1M81fUpjAsah4BmAWqLFTblEiEASBBYIz4+Hm5ubvDy9ULvxb3RucWf8M6Ad9CjdQ9czr+MT9M/RdCSICx4fAGG9xiuulxhI7bYlbg9EaUS0XEiSieiN2xRWEOQhiLLJk+ZjI/KPkJUjz9hSZ8AeGXfhlburdC3XV/Me3gwdj79Z7z+9Wv4IesH1aUKG7HFmEApgEnMfBeA/gDGE1F3G3zcBiF9BDXbcHwD/Jr44a8BA4DibYh8+TlMmDABXJQCvj4RPVu1ROLDUzFnzxzVpQobqXcIMPOvzHyo4u3/ATgOoG19P25DkiCo3sc/f4yoPlHwDZiCIreR0FE+Huz1Lfj664B7D1DzZYj481h8m/EtcvJzVJcrbMCmswNEFACgNwDND8HLCkXmZf8vG11adgEAlHq8iOt5bvBtWQJAD2r+EcitKZp4NMEdXnfgWtE1tcUKm7BZCBBREwDrAUxk5jwzfx9JRAeI6EBOjjZ+g1RtKJLpQ8DH0we/5f8GANjx9QcoLS3FoGAvAADnzcTPPx/Gc889h3OLz8ETnipLFTZikxAgIneUB8AqZt5g7jnMvISZg5g5yNfX1xaf1iZMG4rkNmTgue7P4eOfP0ZpwTakH16FB/vfAfj+AGryGjZtXImIEWFI25OGTg91gl9TP9XlChuwxewAAVgG4Dgzv1f/kuxP1iO4aeSfR2LnmZ3Y8d8PkH6yETp1HQpya4rZH+Rj2CuX0bNHGZqMbozpr02Hp2f5mYA0Fzk2W5wJPAjgrwAGEtHhiuNxG3xcu5Lpw3LNGjfD+uHrEf7ZPuw9kofmfq3x9NNPY/m/l2PQXx/H/gd98OIjI3Ep9RIGDRqEs2fPGvc2kDBwUMxs96NPnz6sVZmZmdypUyf29vbmffv2qS5HmVUbV3Fjn8YMD7CutY49XvbgR5Mf5U0nNzEz8/nz5zk4OJjd3d15xowZxteVlpayXq9XVbaoAOAAW/nz6PT3DtSWK88aXLtWPtp/7tw5HN59GCX5JXhl9Cs49N0h/P6v37F95Hb09OyJzZs3w9/fH6mpqViwYAHmzZuHXr16IT09HTqdDkRU6ayATW5XLywstPu/S1hgbVrY8tDymYBBZmYmBwYGuswZwddff809e/bk6Oho7tKlC9955528bNkyLigoYGY2/nY/ceIE9+jRgwMDA/nIkSPMXP61Gjp0KBMRv/3228aPWfWMYN26dTxu3DhevHixnC00MNTiTEBCoAauFgSzZs3ivn378qRJkzgtLa3a52VkZHBERAQTEU+aNMn4/tWrV7Ofnx8HBgby3r17b3nd+++/z926deM2bdpws2bNeP/+/Q3y7xASAjZlOkZg7hvb2RQWFlZ6XN1v7NLSUl6/fj37+/tzQEAA7969m5mZc3JyODw8nCdMmGD2db/99huPGTOGiYjXrVsnZwQNRELAxlwtCGojOzubo6Ki2M3NjSMjI43vLykpYWbmsrIyZr4ZJpcvX2Y/Pz8eN24c5+Xl2b9gF1GbEJCBQStIH0H1/Pz8sHDhQmzduhVpaWlo164dLl26ZJw2dHMr/xYjIjAzoqOj4e7ujujoaDRt2lRl6cLA2rSw5eFoZwIGckZQs5ycHF67dm21f//5558zEfHHH38slwENDLU4E3Da1YYbSlZWFoKDg3HlyhVZxbgGer3eeBYAlK9s/MADD6Bv375YunSpnAU0MFltuAHJbcjWMQ0AZkZiYiIKCwvx97//XQJAYyQE6sCVG4qsdfr0aWPz0Y4dO7BkyRLEx8eje3fNrjfjsiQE6kj2NajepUuXMH78eLzyyitISUlBdHQ0nnjiCYSHh1c6QxDaIP8j9SD7Gph3xx13YNq0afjxxx8xePBgnDx5EuPHj8dtt90mNxlpkIRAPcm+BrdiZvTr1w+ZmZmYPn06ysrKMHv2bISGhuKll16SINAYCQEbkD6CyogIpaWlAIB33nkHhw8fRl5eHvLz87Fy5UrZ4ERjJARsRIKgskaNGoGZUVZWhl69euHgwYPYsGEDEhISkJycLEGgIRICNiQLk1RGRNDpdMYfdn9/f+O26MnJyYiOjlZcoQBcaAciezHd6Sg0NFQaigBjC7FBfHw8GjdujJCQEEUVCVNyJtAApKHIsrfeessYjlu2bJFLA4UkBBqINBRZ5/vvv8eQIUNkW3SFJAQakDQUWfbggw8at0WXIFBDQqCBSUORZfHx8UhMTJQgUERCwA6kociyuLg44xnBf/7zH9XluBS5ldiOTG9DTklJQb9+/VSXpDmHDh3Cvffeq7oMhye3EmuUNBRZZgiAnTt34tVXX5VLAzuQELAz01kDaSiq3r59+7Bo0SIZI7ADCQEFZNbAsnfeeUdmDexEQkARCQLLTGcN5F6DhiMhoJBMH1pmmDUQDccmswNEtBzAEACXmbmHpee76uxAdWTWwDJmBhHh8uXLaNmy5S33I4jKVMwOrAAw2EYfy+XIrIFlRIS8vDzcf//9MkZgYzYJAWb+D4Br1j7/0qVLxkUnRDkJAsu8vb0xcuRIGSOwNWs3KLB0AAgAcKyGv48EcKDi4OHDhxu3qhI3mW5w4gqboNZFQkICA+DRo0dzaWmp6nI0CSr2IrQUAqZHu3btWIKgehIElhmCYNq0aapL0STNh0CfPn04KSlJgqAGrrYtel0sXryYr169qroMTapNCCibIoyJiUFSUhK++eYbnDlzRlUZmiV9BJZFRkaiRYsWKC4uxvz582WMoK6sTYuaDgCfAvgVQAmACwDG1vR80w1JL126ZHzbsI21uEnOCCxbvXq1jBFUARWXA7U5zO1KPGvWLB42bJhcGpghuyFbZhgjGDVqlAQBO8jlQFU6nQ7r1q1DeHi4TB9WIdOHlpmuYizTh7VkbVrY8jB3JsDMPGfOHAYgZwTVkDMCyxISErh58+Z85swZ1aUoBUe8HDAwBMELL7zAer3eFl8PpyJBYNmvv/5qfNtVv4dqEwKa23cgNjYWRIRmzZqBiFSXozmm+xqEhYXJvgZmtGnTBgAwbdo0ZGRkYOnSpXKvQQ00MyZgKiYmBi+//DIA4PDhwzJGUIXsa2A9WY/AMk2GgEFmZibuv/9+GSw0Q/Y1sCwuLk5WMbaGtdcNtjxqGhOoytBZKIOF5kkfgWWJiYkMgMeMGaO6FLuBI48JVBUTEwOgfKwAAFatWoVGjTRftt0YOgtl78PqxcXFgYjg7++vuhRtsjYtbHnU5kzAwDBrsHjx4lq/1hXIrIH1fvrpJ6dvKIIjNgtZEhsbi61btxoHDEVl0lBknTNnzqB///7SUGTCYUIAAB577DG4ubkhMzMTb775pgwWViFBYFlgYCCmTJkinYWmrD1lsOVRl8sBU4sXL5bbkGsg6xFY5uwLk8CROwatJesR1KymIHDGb/q6MARBcnKy6lJsziVCgFmCwJKqg4W7du3i/Px81WVpyqZNm5zyFvbahIBDjQlUZViY5L///S8KCgpUl6M5hjGCbt26wcPDA6+88gpee+011WVpypAhQ+Dm5oZz587hrbfecskxAocOAaA8CPbs2QMfHx8UFxfLYGEV7du3x969e9GsWTPodDoMGDDA7PNc8Zvf1FdffYU5c+a4ZGehU3TdeHp6oqysDM888wy8vb3xySefSEORCSJCSUkJrl+/Dl9fX7PPcfUbbN544w3k5uYiPj4eAFzqpiOn+UnR6XQICQnB5MmTAUCCoAJz+c49O3fuRGlpKQYNGmT8u6NHj2LatGkoKyvD6tWr0bhxY4WVqhcXFwdmRkJCApgZy5Ytc4kgcKqfEkNrsQTBTUSEsrIypKenY8CAAeWjwQA2bdqEqVOnIjc3F3PnzpXbtisYzgS2bNmCwsJCNG3aVHFFdmDtCKItD1vNDlTH0GIcFRXVoJ/HERhGvh9++GF+8803uaioiGfOnMkeHh48ZswYPnr0aKXny/RhuT/++MP4pyN+TeBMNxDVRWxsLBo3boyHHnpIdSnKubm54cKFCzh8+DCeffZZPP300zh79iwmTZqEmTNngpmxYMECbNy4EQsXLkSnTp0AlA8UusKpcHUaN26M0tJSPPXUU2jbtq1zjxFYmxa2PBr6TKCqzz77zKX7CNLS0tjX15e9vLy4e/fuvHv37krLbp0/f56Dg4PZ3d2dZ8yYYXx/aWmpyy7PZeConYVwlWYha3z//fcu2VBk2JknIyODY2NjWafTcVRUFF+4cMH4nHPnzvGmTZuMj5csWcItWrTgnj178rFjx4zvd6Rv/oZgWI/AkYJAQqAKwxiBqwTB119/zT179uTo6Gju0qUL33nnnbxs2TIuKChg5puLb544cYJ79OjBgYGBfOTIEWYu7zIcOnQoExG//fbbxo9pGFsw/Jmbm8unTp3ib7/91iXOFgxBMHHiRNWlWEVCwAxXW8581qxZ3LdvX540aRKnpaVV+7yMjAyOiIhgIuJJkyYZ37969Wr28/PjwMDAW9YnSE9P54EDB7K3tzd36dKF/fz8eOvWrQ32b9GKuXPn8s8//1zpfWeuneHlh5bz4gOLeff53ZoJRAmBasyZM4fd3Nw4NTVVyee3t8LCwkqPq/sGLS0t5fXr17O/vz8HBATw7t27mZk5JyeHw8PDefz48cbnpqWlcbt27fjhhx/m5ORkTk9P5+joaO7cuTOfO3eu4f4xGqLX63lh8kJ+bOVj3PLdlhy+PpzHfjWWu33Yjbsv6M5bT6kPRAmBGqSnpyv73FqXnZ3NUVFR7ObmxpGRkcb337hxg5mZ9+7dy/379+e7776br1+/bvz706dPc8uWLXn16tV2r1mFTzd+ygD43kGdOK/w5tdBr9fztvTZ3GbuHfx5+ucKK6xdCNjk3gEiGkxEJ4noNBG9bYuP2VC6d+8OANi2bRtGjRol9xqY8PPzw8KFC7F161akpaWhXbt2+PXXX+Hu7o6rV69i1apV+OWXX7BmzRr4+Pjgxo0bAABfX18UFRXB3d1d8b/APtYXrUfwyHtw6JuzeO3lASgtLf86oGgLwlr8G189OQRRm6NQWFKotlBrWZsW1R0AdADOAOgEwAPAEQDda3qNyjMBg/fee8+lBgtrKycnh9euXWt8vGXLFm7evDknJiYyc+UZg5UrV3JgYCB/9dVXdq/T3i7mXeRms5txblEux7/zWPkmqC/24JL/beCyX7ty2ZUXWV9WwI+vepyXH1qurE7Y83IAwP0AvjF5PAXAlJpeo4UQYJb1CGpj1KhR3LFjR+NjQwhcunSJw8PDuXPnzi6xVsEXx7/gIauHGB8nTH2M3dzA321qx2VXXmB9WfkMzKIfF/GYL9UtcV6bELBFx2BbAFkmjy8A6Ff1SUQUCSASgGaWfq66nLnca2Befn4+1q1bh3nz5gEAbty4AQ8PD+j1eqSmpmLNmjVYsmQJvLy8oNfr4ebm8HeoV6tMX4ZGbje/R+Km/g3PPJqOHt08ATdfgDwBAO46d+ihV1Vmrdjif8vcnSd8yzuYlzBzEDMHVXc7qwqGhUmaNWvm1N+89XHy5Ek0b94cHTt2BAB4eHgAAH788UdMnz4dAwYMwJgxYwDA6b+Gve7ohT1Ze1BcWgz+YzM4NwY9eg4AvF7Bpk2fI/Kle1FaegPfZnyLXq17qS7XKrb4tXcBQHuTx+0AZNvg49pNTEwMmMtvuc3Ozkbr1q3ljMBEQEAAPD09kZGRYXzfkSNHMG/ePGRnZ+Prr78GcPO2ZWfWuWVn9GzdEx8fisdY/y8B9z6g5h+B3G7H0TNpWJq8Bb8X3IvtvbMw/7H5qsu1jrXXDdUdKA+SswA64ubA4N01vUYrYwJV5ebmsr+/v8s0FFlDr9dzUVERR0VFcadOnXj+/Pk8e/Zs7tChA99zzz382WefMTM75Tp91TmYfZBbzWnFGw6N5rLSyuMgr7/5CAPgoMeDlLYYw959AgAeB3AK5bMEUy09X6shwOx6nYW18dZbb3FgYCD36dOH7777bl65cqXqkpT5IesHDnw/kHsv6s3T06bz3O/n8jNrnuHms5vz4JcHG+81UBWOtQkBKn++fQUFBfGBAwfs/nmtlZSUhMmTJ2PYsGGy9yEq31Z89epVFBcX46GHHsKVK1eQkpKCfv1uGQd2CXrWI+VMClIzUlGiL8Fdre7CCz1eQFPPpkhMTMSVK1cwf/58JZdIRHSQmYOserK1aWHLQ8tnAgaG6cP4+HjVpWiCXq+v9FtNNjixzNCmffHiRbtfGsBVlhxvSDExMVi5ciWio6NVl6IJRFRp5N90y7PQ0FDs379fYXXaRES4du0a7rvvPk2vYiwhUIOIiAj4+PigsLAQs2fPlhbjKgxB4OvrK0FQjRYtWiAyMhIrVqzQbhBYe8pgy8MRLgdMrVmz5pbBQkdZXMIeMjMzOTAwUC4NamDvhUkglwO2NXz4cCQlJeH8+fPYvn07CgoKnHe9uTpo3749UlNT5dKgBnFxcUhMTMSKFSuQlJSkupzKrE0LWx6OdiZgUFxczJ07d+aXXnpJdSmaVHXvQ3GrZcuWcW5uboN/HsiZQMO4ePGibOVVA9PBwrCwMOzbt091SZozZswYeHt7o6CgAHPnztXE94yEQC3IVl6WSRBYZ/369YiNjcXYsWOVB4GEgBW4oqGquq28nn/+eQwdOhRFRUWqStQU01mDsLAwGSMwY+TIkUhISEBycrLyWQMJASvUtJVXeHg49u/fjxEjRjj9zTO1YRgslOnD6sXHxyMhIUH59KGEgBX0ej10Oh2OHTtm3KFn1qxZeO6559C3b19s2bIFzz//PDw9y+8lV316pxUSBJYZgmDbtm3IzlZ08621I4i2PBxxdiArK4t9fHx4/vz5PGjQIO7cuTNPmTKFmcvbQz/88EMOCwvjM2fOGF8jvQTlpMXYspycHGa+tT27riCzA7Z39uxZeHh4YMqUKcjKysLy5csxY8YMAOWXC08++SRu3LiBbt26YebMmQDKBwrLysqMlw+uqmqLsQwW3qpVq1ZgZkyePNnug4USAjW4du0aAODcuXPYvHkzrl27hoiICKSkpGDAgAEgIpw/fx6bN2+Gv78/UlNTsWDBAsybNw+9evVCeno6dDqdcUzBlcmsgWVEhCZNmth/jMDaUwZbHo5wOdAQW3lpZXcalaShyDLDJqijRo2q8yUlZPMR22jIrbxcmYwRWGYIgrFjx9bp9RICNmSrrbwmTJhg1ee7ceOGSyzVJUFg2T/+8Q/+/PO67WQkIaBQdVt5GU7rSkpKqg2Sq1ev8vvvv89vvPEG79y50y71qiR3H1pv3759tbo0kBBQTK/X87Zt27hr167ctm1bvnjxIjMzFxUVGZ9j7j80Ly+PR4wYwQEBAdyoUSMePny4cQzCWUkQWHb8+HFu1KhRrW5DlhDQiKpbeY0ePZonT55sfFzdaf/GjRu5e/fu3K5dOz5x4kSD16maBIFltV2PQEJAg0pKSnjz5s3s7+/PHTp0MLs9uuEyYfr06dylSxf+17/+Ven9zkzGCCwzDBZaEwQSAhqWnZ3NERER/MQTT/C1a9eM7zecFWzbto179+7Nw4YNM/7wu0IIMMv0oTUMQbBmzZoanychoHF6vZ6vXr1q/OE2BEBOTg4/++yzfM899/D+/fuZ2fVajyUILEtJSbH4i6E2ISAdgwoQEVq0aAEiKv9PqFjFd+nSpTh69ChGjBiBvn37AnC9NQqks9Cy0NBQEBFOnDiBSZMm1buzUEJAMcPtx7t27cKGDRvQsXNHhI4IRU5BDvR6x9jV1taqBoHcfWje1q1b8d5779W/xdjaUwZbHq5+OWBw9uxZZi5vSPrLkL/w7W1vZ+8ob+72YTf2menDj696nHdl7FJcpToyWGhZdYOFkDEB7Tt06BD7+Pjwu+++y8Gjg9m9tTsPHz+cS8rKm4kKbxTywj2L+I45bXjFTytUl6uMTB9aZm76sDYhUK/LASJ6nojSiUhPRNbteyYAAL1798arr76K//v7/2FX8i54XfdGwIW7QHoqHysoAk6+dQEPfTkIMdtjcOrqKdUlKyELk1gWFxeHhIQEZGRkoLi4uPYfwNq0MHcAuAtAVwC7AARZ+zpXPxMwHdkN+WcId+/XnXVuOu6Ibhzz5N/5f7/n88SH/o/DGg3jtM/28JQdU3jitokKK1ZPLg0sKy4uZmbm/Px8JVuTSwjUkl6v58LiQvb4hwcX3Cjg9957j93c3Lgn+nM7BPJADOW0z/YwM3P65XTu+M+OiitWT6YPLSsqKuIHHnhAm1OERBRJRAeI6EBOTo69Pq1mERFKuATu5I7b3W9HdHQ0fr3wG26gGBdwBun0I/oNuRcA0OK2Fsi/ka+4YvVk+tAyT09PDBkypFavsRgCRLSDiI6ZOZ6uzSdi5iXMHMTMQdWt2+9qmng0gae7J85eO4v/Xc/HrOHz0aFRZzzgH4JLnIWgLv1RXFSMY5ePoUOzDqrL1QQJAsumTJlSq+c3svQEZn60ztWIGrmRG0b/eTQW7F0A/ezb8csPpzD104n4y3P3469DRuOTLckI6tIfnWb5Y2zvsarL1QxDEAQHByMsLAzbt2/Hfffdp7oshyXNQoq93u91fJL+CX4LvGAMAABYuXkFIp4Yjd84G0ezjyKiV4TiSrWl6uKlMmtQd/WdInyGiC4AuB/AFiL6xjZluY4OzTpg84ubkdbjG/yzLAmbTm7CweyDWHtsLbKHZaJ5jA92vLwDVEIoLS1VXa6mSBDYBjHbfznsoKAgPnDggN0/r5bl38jHqp9XYW36Wlwvuo42Tdpg5J9HYuhdQ0F6wsCBA9G2bVt88sknaNTI4lWcS8nKykJISAhycnLk0qACER1kZut6d6ydRrDlIVOEtZeUlMQAeNiwYVxSUqK6HM0x7SyU6UM7dgwK+4mJiUFSUhLWrVuH8PBwuTSowtBZKLMGtSch4EBiYmIwZ84crFu3DtHR0arL0RyZPqwbubh0MLGxsfDy8sKjj8rMrTkyfVh7cibggP72t7+hS5cuYGZ8/PHHcmlQhcwa1I6EgANLTU3FqFGjEBERIUFQhSEI5O5DyyQEHNjAgQORlJSEtWvXShCYIbchW0dCwMEZZg0kCMyTILBMQsAJGIJgw4YNOHjwoOpyNMd0+lCC4FYSAk4iJiYGx48fR79+/VSXoklVBwtl+vAmCQEnEhgYCABYu3atNBSZIX0E5kkIOKELFy5g9erVEgRmSBDcSkLACU2aNMnYWSiDhbeSfQ0qkxBwUrGxsZgzZ45x1qC+u9Q4G2kouknahp1YbGwsiAhXr141bnUmbjIEQUhICEJDQ122xVjWE3AhGRkZaN++vaxHUIUzrkdQm/UE5NeDi7h27Rr69+8vg4VmuHpDkYSAi2jRogViYmJkPYJqVG0ocqVZAwkBF2IYLJRZA/NcdfpQQsDFmM4azJ1Up4X+AAAHs0lEQVQ7V3U5muOKQSAh4IJiY2OxZs0avP7666pL0SRXCwIJARc1fPhw3H777cjNzUVCQoJcGlThSg1FEgIubtOmTUhMTJQxAjNcpaFIQsDFRUREyHoENXCFFYokBIQsTGKBs/cRSAgIADeDYM+ePbh8+bLqcjTHmRcmkbZhUUleXh68vb2h1+uh1+ulxbiKrKwsBAcH48qVK0hJSdHsIi52axsmoiQiOkFEPxPRF0TUrD4fT6jn7e0NZsb48eOls9AMZ5w+rO/lwHYAPZi5F4BTAKbUvyShGhGhU6dO0mJcDWcLgnqFADOnMLPhO2QvgHb1L0loQWxsrOx9WAPTWQNH7yOw5cDgGADbbPjxhGKmm6COHTtWdTma4yyzBhZHfYhoB4A2Zv5qKjN/VfGcqQBKAayq4eNEAogEAH9//zoVK+wvJiYGOp0O3bp1U12KJhmCwJEXJqn37AARjQIwDsAjzFxozWtkdsBx7dq1CwMGDJBZgypMZw20EAT2nB0YDOAtAE9ZGwDCcf3yyy945JFHZIzADEfe16C+YwIfAmgKYDsRHSaiRTaoSWhU9+7dMXv2bBksrIajzhrU65yOmf9kq0KEY4iNjQUATJ48GQCwatUquTQwYQiC4OBghIWFabqhyEDahkWtma5Q9OWXX6ouR3Mc7TZkaRsWdbZnzx488MADqsvQLJWDhbLasLALQwAcPnwY48aNkzGCKhzlNmQJAVFv3333HRYvXiy3IZvhCA1FEgKi3iZMmCDrEdRA60EgISBsIiYmptLehxIElWl5PQIJAWEzhlmD3NxcCQEztNpQJLMDwubKysqg0+mQm5sLLy8v6SOowh4Lk8jsgFBKp9OhuLgYAwcOlM5CM7TWWSghIBqEp6cnRowYIVueVUNLDUUSAqLByCrGNdPKvgYSAqJBmQaB4X4DcZMWGopkxEY0uJiYGDRt2hSDBw9WXYomqV6YRM4EhF1ERUWhQ4cO0Ov1+Oijj+TSoAqVDUUSAsKuUlJSEBkZKWMEZlRtKLLXrIGEgLCrwYMHGzsLZfrwViqmDyUEhN2ZrkcgQXAreweBhIBQwhAEGzduxLFjx1SXozn2DAJpGxZKZWZmGpegZ2YQkeKKtKWuC5NI27BwGIYAWLZsmVwamGGPhiIJAaEJv//+Oz799FOZNTCjoRuKJASEJkiLcc2q9hHYcoxAQkBohmkQhIeHQ6/Xqy5JU0z7CGw5WChtw0JTYmJiAAAlJSVwc5PfUVU1xL4GMjsgNO3UqVPo1KmTLExShaWFSWR2QDiFy5cvo1+/fjJGYIYt+wgkBIRmtW7dGlOnTpXBwmqYzhrUZ2ESCQGhaTJrUDNb3H1Y363J/0FEP1fsSJxCRHfW5+MJYY5pEHzwwQeqy9Gc+gZBvQYGicibmfMq3n4dQHdmHmfpdTIwKOriiy++wBNPPAEPDw/VpWhSVlYWQkJCkJOTg7y8PPsMDBoCoIIXAPtPNQiX8cwzz8DDwwN//PEHCgoKVJejOaZnBLVR73kXIpoBYCSAXAAhNTwvEkBkxcNiItLSrWOtAFxRXYQJrdUDaK8mqadmXa19osXLASLaAaCNmb+aysxfmTxvCoDGzBxv8ZMSHbD2VMUepB7LtFaT1FOz2tRj8UyAmR+18vOuBrAFgMUQEEJoR31nBzqbPHwKwIn6lSOEsLf6jgnMJqKuAPQAzgOwODNQYUk9P6+tST2Waa0mqadmVtej5N4BIYR2SMegEC5OQkAIF6csBLTWckxESUR0oqKmL4iomeJ6nieidCLSE5GyqSciGkxEJ4noNBG9raoOk3qWE9FlrfSZEFF7IkolouMV/19vKK6nMRHtJ6IjFfUkWnwRMys5AHibvP06gEWqaqmoIQxAo4q33wXwruJ67kJ5w8cuAEGKatABOAOgEwAPAEdQ3hqu8uvyFwD3Ajimsg6TevwA3FvxdlMAp1R+jQAQgCYVb7sD2Aegf02vUXYmwBprOWbmFGY23KK2F0A7xfUcZ+aTKmsAcB+A08x8lplvAFgD4GmVBTHzfwBcU1mDKWb+lZkPVbz9PwDHAbRVWA8zc37FQ/eKo8afLaVjAkQ0g4iyAIQDiFNZSxVjAGxTXYQGtAWQZfL4AhR+g2sdEQUA6I3y374q69AR0WEAlwFsZ+Ya62nQECCiHUR0zMzxNAAw81Rmbg9gFYAJDVmLNfVUPGcqgNKKmpTXo5i5nUBkTtkMImoCYD2AiVXOcu2OmcuY+R6Un83eR0Q9anp+gy7cxhprObZUDxGNAjAEwCNccVGlsh4NuACgvcnjdgCyFdWiWUTkjvIAWMXMG1TXY8DM14loF4DBAKodSFU5O6CplmMiGgzgLQBPMXOhylo05EcAnYmoIxF5AHgBwEbFNWkKle+btgzAcWZ+TwP1+BpmtojoNgCPwsLPlrKOQSJaj/LRb2PLMTNfVFJMeT2nAXgCuFrxrr1sxQIpDVjPMwA+AOAL4DqAw8w8SEEdjwP4J8pnCpYz8wx711Clnk8BBKP81t1LAOKZeZnCegYA2A3gKMq/lwHgHWbeqqieXgCSUf7/5QZgHTNPq/E1qkJACKEN0jEohIuTEBDCxUkICOHiJASEcHESAkK4OAkBIVychIAQLu7/AbKc5MW8AuhVAAAAAElFTkSuQmCC\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"x_train = np.array([\n",
|
|
" [0., 2.],\n",
|
|
" [2., 0.],\n",
|
|
" [-1., -1.]])\n",
|
|
"y_train = np.array([1., 1., -1.])\n",
|
|
"\n",
|
|
"model = SupportVectorClassifier(PolynomialKernel(degree=1))\n",
|
|
"model.fit(x_train, y_train)\n",
|
|
"x0, x1 = np.meshgrid(np.linspace(-3, 3, 100), np.linspace(-3, 3, 100))\n",
|
|
"x = np.array([x0, x1]).reshape(2, -1).T\n",
|
|
"plt.scatter(x_train[:, 0], x_train[:, 1], s=40, c=y_train, marker=\"x\")\n",
|
|
"plt.scatter(model.X[:, 0], model.X[:, 1], s=100, facecolor=\"none\", edgecolor=\"g\")\n",
|
|
"cp = plt.contour(x0, x1, model.distance(x).reshape(100, 100), np.array([-1, 0, 1]), colors=\"k\", linestyles=(\"dashed\", \"solid\", \"dashed\"))\n",
|
|
"plt.clabel(cp, fmt='y=%.f', inline=True, fontsize=15)\n",
|
|
"plt.xlim(-3, 3)\n",
|
|
"plt.ylim(-3, 3)\n",
|
|
"plt.gca().set_aspect(\"equal\", adjustable=\"box\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def create_toy_data():\n",
|
|
" x = np.random.uniform(-1, 1, 100).reshape(-1, 2)\n",
|
|
" y = x < 0\n",
|
|
" y = (y[:, 0] * y[:, 1]).astype(np.float)\n",
|
|
" return x, 1 - 2 * y\n",
|
|
"\n",
|
|
"x_train, y_train = create_toy_data()\n",
|
|
"\n",
|
|
"model = SupportVectorClassifier(RBF(np.ones(3)))\n",
|
|
"model.fit(x_train, y_train)\n",
|
|
"\n",
|
|
"x0, x1 = np.meshgrid(np.linspace(-1, 1, 100), np.linspace(-1, 1, 100))\n",
|
|
"x = np.array([x0, x1]).reshape(2, -1).T\n",
|
|
"plt.scatter(x_train[:, 0], x_train[:, 1], s=40, c=y_train, marker=\"x\")\n",
|
|
"plt.scatter(model.X[:, 0], model.X[:, 1], s=100, facecolor=\"none\", edgecolor=\"g\")\n",
|
|
"plt.contour(\n",
|
|
" x0, x1, model.distance(x).reshape(100, 100),\n",
|
|
" np.arange(-1, 2), colors=\"k\", linestyles=(\"dashed\", \"solid\", \"dashed\"))\n",
|
|
"plt.xlim(-1, 1)\n",
|
|
"plt.ylim(-1, 1)\n",
|
|
"plt.gca().set_aspect(\"equal\", adjustable=\"box\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 7.1.1 Overlapping class distributions"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {
|
|
"scrolled": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def create_toy_data():\n",
|
|
" x0 = np.random.normal(size=100).reshape(-1, 2) - 1.\n",
|
|
" x1 = np.random.normal(size=100).reshape(-1, 2) + 1.\n",
|
|
" x = np.concatenate([x0, x1])\n",
|
|
" y = np.concatenate([-np.ones(50), np.ones(50)]).astype(np.int)\n",
|
|
" return x, y\n",
|
|
"\n",
|
|
"x_train, y_train = create_toy_data()\n",
|
|
"\n",
|
|
"model = SupportVectorClassifier(RBF(np.array([1., 0.5, 0.5])), C=1.)\n",
|
|
"model.fit(x_train, y_train)\n",
|
|
"\n",
|
|
"x0, x1 = np.meshgrid(np.linspace(-4, 4, 100), np.linspace(-4, 4, 100))\n",
|
|
"x = np.array([x0, x1]).reshape(2, -1).T\n",
|
|
"plt.scatter(x_train[:, 0], x_train[:, 1], s=40, c=y_train, marker=\"x\")\n",
|
|
"plt.scatter(model.X[:, 0], model.X[:, 1], s=100, facecolor=\"none\", edgecolor=\"g\")\n",
|
|
"plt.contour(x0, x1, model.distance(x).reshape(100, 100), np.arange(-1, 2), colors=\"k\", linestyles=(\"dashed\", \"solid\", \"dashed\"))\n",
|
|
"plt.xlim(-4, 4)\n",
|
|
"plt.ylim(-4, 4)\n",
|
|
"plt.gca().set_aspect(\"equal\", adjustable=\"box\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 7.2 Relevance Vector Machines"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"source": [
|
|
"### 7.2.1 RVM for regression"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def create_toy_data(n=10):\n",
|
|
" x = np.linspace(0, 1, n)\n",
|
|
" t = np.sin(2 * np.pi * x) + np.random.normal(scale=0.1, size=n)\n",
|
|
" return x, t\n",
|
|
"\n",
|
|
"x_train, y_train = create_toy_data(n=10)\n",
|
|
"x = np.linspace(0, 1, 100)\n",
|
|
"\n",
|
|
"model = RelevanceVectorRegressor(RBF(np.array([1., 20.])))\n",
|
|
"model.fit(x_train, y_train)\n",
|
|
"\n",
|
|
"y, y_std = model.predict(x)\n",
|
|
"\n",
|
|
"plt.scatter(x_train, y_train, facecolor=\"none\", edgecolor=\"g\", label=\"training\")\n",
|
|
"plt.scatter(model.X.ravel(), model.t, s=100, facecolor=\"none\", edgecolor=\"b\", label=\"relevance vector\")\n",
|
|
"plt.plot(x, y, color=\"r\", label=\"predict mean\")\n",
|
|
"plt.fill_between(x, y - y_std, y + y_std, color=\"pink\", alpha=0.2, label=\"predict std.\")\n",
|
|
"plt.legend(loc=\"best\")\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 7.2.3 RVM for classification"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {
|
|
"scrolled": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAATYAAAD8CAYAAAD9uIjPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzsnXd4U9Ubxz8nSdt0pS0UkCV7CIiIA7cILtz4EwQEEZkiy4ECKtMBKsreQxRkCKKoOFBRUFBBQGTIaNmzBdp0pW2S8/vjJDdJd2m64H6epw/Nyb33nBT49pzve877CiklOjo6OpcShtIegI6Ojo6/0YVNR0fnkkMXNh0dnUsOXdh0dHQuOXRh09HRueTQhU1HR+eSw2/CJoQwCiG2CyG+9tczdXR0Lg2EEAuEEGeFELtyeV8IIaYIIQ4KIXYKIVp6vdddCHHA9dW9IP35c8Y2GNjrx+fp6OhcOnwE3J/H++2ABq6vPsBMACFEBWAU0Aq4ERglhIjKrzO/CJsQogbwIDDPH8/T0dG5tJBSbgDO53HJo8DHUvEHECmEqArcB6yTUp6XUl4A1pG3QAJg8seggUnAK0B4bhcIIfqglJjgkJDr6jSs76eudXR0srJnx854KWWlojyj7b23yfPnEgp07Y5tu3cDNq+mOVLKOYXorjpwzOv1cVdbbu15UmRhE0I8BJyVUv4thGid23WuDzkHoOm118gVP39b1K51dHRyoVmF6keK+ozz5xL4edOKAl1bwdzUJqW8vgjdiRzaZB7teeKPpeitwCNCiMPAMqCNEGKxH56ro6Nz+XAcqOn1ugZwMo/2PCmysEkph0spa0gpawOdgJ+llF2L+lwdHZ3LijXA067o6E1AopTyFPA9cK8QIsoVNLjX1ZYn/vLYdHR0dHJFCLEUaA1ECyGOoyKdAQBSylnAWuAB4CCQCvRwvXdeCDEO2OJ61FgpZV5BCMDPwial/AX4xZ/P1NHRKf9IKTvn874Ens/lvQXAgsL0p5880NHRueTQhU1HR+eSQxc2HR2dSw49eKBT7rHZD1z0vWZTAz+ORKesoAubTrkiNxGra7m4Tfax1uzP08Wu/KMLm06ZJ6uYXayI5UTWZ8Va43z600WufKILm06ZpDjFLC+yC50ucuURXdh0yhTeglZSYpYX7jF4z+R0gSv76MKmUyYoa4KWFe8xuWdxusCVXXRh0ylVyrqg5YRnFqcLXFlFFzadUqE8ClpW6loq6UvUMooubDoljlsIyqugeZPVg9PFrWygnzzQKVEuJVHzxv15bPYDRdowrOMf9BmbTolwqQqaN/rsreygz9h0ip3LQdS88Z696ZQOurDpFCuXm6i50cWtdNGFTafYuFxFzY0ubqWHLmw6xcLlLmpudHErHYosbEIIsxDiLyHEP0KI3UKIMf4YmE75RRc1X3RxK3n8MWNLB9pIKa8BWgD3u6rM6FyG5CVq0nEBldreq82ZhnSmFbofKSUydSXSftC3PWM70vZDoZ9X3OjiVrL4o/yelFImu14GuL7yLWiqc+mRt6idh8QXIWWRJm7SmQbWN8H6djbByxeZAuk/QuIYTdxkxnawvgO2dUhpL9qHKQZ0cSs5/OKxCSGMQogdwFlgnZTyT388V6f8kO/y0xAFgbeCbY0SN7eo2fdBcDuEyKngd+4IQxhYxoEhVIlb6mdK1Ew1wTISIcrmFk1d3EoGvwiblNIhpWyBqtJ8oxCiWdZrhBB9hBBbhRBbL8Sf80e3OmWMvDw1IQSE9gTzA0rczj+lRC38RUTQLRfVnzBWUuImUyB1KWAHy2iEIfwiP0HJoHuPxY9fo6JSygRUXdH7c3hvjpTyeinl9VHRFf3ZrU4pU9DZhxACQp7yNBgqQuDNRevccdz3tfNM0Z5XQtS1VNJnbcWIP6KilYQQka7vg4G7gf+K+lyd8kFhIqDa8hOhlqbOOB/PrbBonpqpDkROBGNlH8+tPKCLW/HgjxlbVWC9EGInqgz9Oinl1354rk45oVCiZt8H4S9B1DzPsvQixE06UyDpfZenNhphquPx3JLeL5PBg6zoS9Lio8gOq5RyJ3CtH8aiU84o3GxDqi8vT02G9nS9l1novoUhFBk+HEy1NE9NGCshLeNAWsts8CArKqebfmDe35SPv32dMktBZx3CEIKMeMsn+imE0MStsFFRABGYLUalAgqUv5mQng3Ev+hHqnQuCpv9QKGXUjmJlxDiokTtUkJfkvqfUhG29Ew7MWfOl0bXlxUSRw5tMsd2ndJHDyT4j1IRtiCDWgHr4lZ8SJmGTHwDafvK04ZEpnyMTHofycWb6xczW9PJG/3n6V9KbSlaL1T9ReriVkyIADBEIVMWIm1faaKG7UswVACMpT1CnRzQZ23+oVSDB/VCKxGTEqeJW70qFUpzOJcUAhOEv4BMApmyEFI+BhxgbocI7YXg4nytS2G2JqVk/7n9HLceJ8gYxLVVryU0MLS0h6VVvdIpOqUeFdVmbi6B08XNf2jidm4zuHy1oojapcDvR39n5taZWNOtNI5uTHJ6MiPXj+T++vczsNVAggOCS3uIOn6g1IXNjffsTRc3/6CWn0t8G21fg/nhi3peeV8mfXvgW6b8OYkRt/bittpPaNHYuOTTzPjrHfp93Y9ZD80qVXHT97X5hzK13UP33fyHj6dmboeouBwCb9Y8t4ulvC5DE2wJvPf7e0y9swW3Wb4Ed6oj6SBaLuWN5kepERbJgu0LSnmkOv6gTAkbKHGrF1qJmDPndYErCjIVMv/y8tQCEOEvKHFL/61IUdHyyJr/vuKOWndQr9pQMISDdQwycx8kT4H0jYiQp+lzw4t8ue9LMu2FPwmhU7Yoc8LmRp+9FQ0hQhERE3w8NYEJEf4CwjJa+W+FoLwvQ7ee2kLbOm0Rxmh1plSEQuJwSN8IId0QIe2pFVmLCuYKHLxQuofo9cwfRafMChvo4lZUhAjLFigQmFBJWPJHOo4hM3dqr+taKqlU3rb1fh1nSZDpyCTQFKheGKLAEO15M8BzNCvIFITdcXnNZi9FyrSwgS5upYlMWYC0voXM/Ee9dmfoSJ6OtB8r5dEVjjqRdfnn9D9I6VDLT/telV3EWMW1LD1AUnoSRxOPUiOiRmkPV6eIlHlhA913Ky1E+AtgrIa0vo3M3OVJOxQ2BGGqWdrDKxSPX9We1f+tJi1ximf5GdbLlepIeW6r93zEzTVvISo4qrSHC5T/5X9pUi6EzY0+eytZhLAgIsaAsQIydZGa5YQNQZhvK+2hFZr6Fetzc42beeW3HaQGdkaEtAfQPLdfzl7JJ/+uoXfLXqU8UkV5jT6XFcrMPraCou93K2kCsEkH9YKt6mUO9QSktEPKR2B+CGG6wtOe9i0YKiGCri+hsebNiNtH8N6m93hk9SweaHBU26D7fcz3xKXGMfn+ydSJqlPaw9TxA+VqxuZGX5qWDFKmIa3jwBkPob3BVEuVysv4x/dCRxykbwDrKKT9tLo3bS2kzIWMX0p+4LlgMpoYfvtwFj++mLCAMP488ScHzh+g+zXd+aLTFzSp3KS0h6jjJ8rdjM0bffZWvMjkD8C+HxHcGRF8DzLoVrCOUuIW+b7mswlTVWTEGEgcpcQt8CawfQWBN0DY4FL+FNmpGl6Vvjf0Le1h6BQj5VrYQBe34kQEd4CguxAG5fcIgwVpGQO2n8DoGzkUpjpK3BJeUqJmqgXhLyNEQGkMnQtpF/gx9kfiU+OxBFloU6cNVcOrlspYdEoef1SpqimEWC+E2CuE2C2EKPFf0XpQoXgQpoaIQN+an8JgQYS0zznrbeZez/dOKzhKvn5spiOTd397j8eXP86/Z//FKEwcSTxK18+7MmzdMJLTk0t8TDoKIcT9Qoh9QoiDQohhObz/oRBih+trvxAiwes9h9d7a/Lryx8zNjvwkpRymxAiHPhbCLFOSrnHD88uMB5xU2lf9NlbyaI8tXlq+Rn8BFjHqWWpZYxPQKFYxyAlr//8OhmZZ/niiYlEhLXU3nvhhi5M/uN9+q99njkPz8ZsMpfImHQUQggjMB24BzgObBFCrPHWCSnlC17XD8S3SFSaqyh7gSjyjE1KeUpKuc31fRKwF6he1OdeLPrsreSR9mMeUQt/GRHQACLGgEyDlJklNo7NxzZzJOEw41uFYkmfiMzc7xrfacypb/NKs0SizRGs3ru6xMZUFEr7aFW6I5NYa1yBvgrAjcBBKWWslDIDWAY8msf1nYGlFzt2v3psQojaKJX9M4f3+gB9AKpWL96d3brvVrIIU02kZSQENNU8Nc1zE9m3hxQXK/espMvVTxEYeStYR6oTBaH9IHUxSBsicgzdWiQwbsM4OjXrdNkXkckPIcyFSZ8ULYTY6vV6jpRyjtfr6oD3cZXjQKuc+xW1gDrAz17NZtfz7cB4KeUXeQ3Gb8ImhAgDVgFDpJTWrO+7PuQcgKbNr7m40t+FQF+aliwiMPsqQZhKdk/Ynrg9DLttGMJYEWkZCxf6QvKH6s3IiQhTHVpcITmTfAab3aYnlfQv8VLKvDYs5vRbJDcd6ASslFJ6Vx26Ukp5UghRF/hZCPGvlDImt878so9NqF/Tq4AlUsrP/fFMf6EvTS8fhBBI9/8VmYnP/xvpSUUkc/3/pFOMHAe8z+HVAE7mcm0nsixDpZQnXX/GAr+QT5F2f0RFBTAf2Cul/KCozysOdHG7tJCOhBzbmlVuxu9Hf1ebhK2jQIRB+AgwVnUddN/P1pNbqWGpoQcPSp4tQAMhRB0hRCBKvLJFN4UQjYAoYLNXW5QQIsj1fTRwK5BncNIfM7ZbgW5AG69w7AN+eK5f0cXt0kCmb4GE55AZ2z1t9mOQOIQn6lfj012fYrswFqQNIkar41yWsWCIxJk4lkU75tOhSQfdXythpJR2YADwPSrAuEJKuVsIMVYI8YjXpZ2BZVJK72n1VcBWIcQ/wHqUx5ansBXZY5NS/kbO6+cyR3nx3RwOJwajyJZLzW53YDJd5mXzAhqDsRpY30Fahqu8atY3ACM3XtmRJkcSeOmPQ4y5YzCVXB6fMFYkyfwKEzeNJ91h57FGj5XuZyggsda4S6r2gZRyLbA2S9vILK9H53DfJuDqwvRV7k8eXAxlOWrqcDhZ8NqnWCqG03HoI5q4/bJ8E1u+386AqT0JDi0byygpnQhhyLfNnwhDONIyGqyj1V45UIkjLeMQpmqMvnMUM7fO5MnVQ2lZrSU1w2sSnxbPb0d/467adzGl3VACTKVzGkKn5CiXh+D9QVldmhqMgqgqkfy6YhMr3luDRPLL8k2seP9LLBXDCQgqG7+LpCMeEl9AZngy7EqZCUkTkKmfFWvfwhAOoT09DcGPI0zVADAYDDx/4/N81eUr7qp9F1HBUVxbtSWrOq5iZOuReiT0MqFs/C8pJcpiwWaB4H8vPAjAz59u5NcVmwC4pnVTer7TBZOpdP7KYq1xvjnCRCBgAOtbSMtrEHAVJL0PGVsgoMAbxC8KaT8GSe8CASCMkLIIaayGCPQEykIDQ3mw4YPFOg6dsstlO2Nz406BBGVn9uYWN6OXn1aaopaTzyMMFrCMAVM1sI6F892VqIX2RgS3K7axqEDB6+BMh8gJEDUbTDWV55b0oZY2Sefy5rIXNjdlTdx+Xb4Zh92zP3HVh9+Uuf1XwmCB8NcBp4pCBt5UrKKmSHfNFtMh5WMQQRA+CgwhKuV3xuZ8n6Bz6aMLmxdlRdzcnto1rZsyZfNbtOlyu4/nVhxIMnN8tiQj93tkJqR4nZrJ+NvHcysOhKm+mqWFPQ+ZO8D6DqQuUtlEgttDcMEjntK2Dmk/69uW+R8yfWsud+iUFy5rjy0nSntLiMPh5O8f//Hx1Nye278b9pBiTSPMEuLXPiV2pPUdMFSEsP5aJFamfYZM3wwRb2a/R2Z6PLXQ3qAloVSemwhs7tcxeiOEAcxtlRAnz1CN5gchpGuB96dJpxVSFoNYibSMQ5gqIzP/U5FWY2VkYMtije7mRwEPluvkgj5jy4XSmr0ZjQaen/Ksj6fm9txe+Xig30XN1SuYGkD6T8jkGUikErXUpWCqDa7D0D7/2RynIHOX5qn5eG62ddl6kI5Ev45YSgl2r6OC9kOAbwV3ac/txI5rGR0xWmUgsb6BtG1UomaIgvA3SlXU3FxKe9hKmtL/2yvDlJa4mYODsgUKBILQ8OLZqiAQiJBOENxBidu5/ylRC2qNCBuAyOGfiTBdCVEzfTw1YbCA+THI2ILM2KG1S/tRSBiETFmCTFmM96ZyKTORyQuRzqQCj1dKqZbAtu/V8tPUAOx7IHEMKiMOastJwhCkPfeq7sJUR6VXcsapw/IyEyxjEcbSj47rFA1d2PLBW9xK23vLC4lEZpmxqPbsbTmhiZt3W1j/HEVNe99gyd4Y2NIVKX0HmbFDiVriG+BOEZ72OaRMR0rpWs6+q1KJZy0Q4/0Z7Cd8G9J/VaJmbg8hXSGsHxCkygOmLFSilroUgm4DY928P7hMz9pZ3tfrlAt0YSsAZXFLSFZk8iyk9R0fIZPpvyITBiKdBfRr0lZmeeZsn4BCtuVoDghDuGtJWl1tA0kYokTNMg5CuqhZoe1nSJ4M1vGQ8TeE9c21VqlM36Rme7YNnkZDFSAAMCKEUDOvyLeBYCV4rtkmYQPyXFJ6PLVq6rC8MKtlaZaAQklzqR2lKg10YSsEZVnchKkhZO7QxE2m/4pMngKGypDTzCoLmqcW1BpRcaVnWery3Ao1lqwnA0L+hzBVVcZ+SCe1fEzfAJnbIaw3wnxf7g8z1gSMkDwJadugxCjJFcxwHtaWtcJUB7xzwgV3yFvUnFaPp2YZqw7Lu7P+Jr2JlM5CfWadsoUeFS0kZfWcqTC3BUCmTEeee1I1BjRDWF5DEJTnvRIHMnOXr6cW0knJWcZfIFNBhGrXZzuFkPV59qNg9ToZkPwR0lDVlYzSDo6jnovtMUgpc49mGqtCwLWQuQWSJ7kaA4BMCLxdu0+mfqb2sJlqqzqn1lFIy9hc6y0Ig0Vl1w1oqnlqWtZfZ3KZCB7oXDz6395FUFYLNgtzWwho5nkdPjRfUQMQGJUAegUK3J6biHgH4SVq+S2RfDy1yEmukwHVleeWvlV5aq7lp7YsdXluOY5NmMAyFExXebVmQtgLCPPtqk/NU2sNEe9DxFjlnVnfyPMkgjDfni1QIEx1EIGFSiThV/RlqH/Qha0IlLWlqUz/FTJ3e14nfVig4EG6LZNTsRd8AgUSyZG9JxDCN5OIRCLtB7N5bTJzN1I6lKAYI13ZNqp6eW61VFV4zVO7z7UsdYlb+o+5D9B+EByHs35az7eGCmC+S/PUVLRztJrtGYpje4xOWUcXtiJSVsRN89QCmiIqLkWEPu/jueXFsgmr+aD3TI7+p6KPEsnXM9fx7tNT2b8t1vdi23cEpcxFZmzy9G37Vc3S0r5wVaj6EGHyFCcWhnCIGA9hAyF8uOapaZ5b+FAIapPz58rcp7ywrNHK5Elq7xmumWqob6BAmOqAZUzOkdsyir4p13/owuYHysKWEJm5U4may1MT5rZK3BzHwHEhz3sf7HMP5lAzU56fy5H/jvP1zHV8u+Anbnn0Rupfm6Ugi/luCLwembaamPgvlaglTwZTXQh+CFAnA6SUyIxdamzSCamfgjMFEXSDZ8y2nyFzNyLoZlTZyZwIROUxVctPKq6AANcz7P9pV+Xk0ZXHLLn6MtQ/6MLmJ0p7S4gIex5hed3HUxPmtojIqQhj5Tzvja4axZDZfTGHmpnQbaomal1eexxDFnEQBCDCh2IOvBGZtlqJmqEC2I9CphIaKSWkLgPrSJXK23ECbN+q1w71s5G2HyF5GtjWZhuPD4YIFbl0eWqa5xZ4EyBz9ebKG/pszb/4q0rVAiHEWSHELn88rzxTauLmiENa3/TZsybJRCZPQWbuyONGRcWqkdS/trb2+rb/tcomam4EAYiAGwGISbOA+R5XgOBtZMY/StTSPgNzWwi8HmGqCZbXwXlBiVvqZ+qMZ8C1EP5Cjn1ofRkrQOQHWqAAXAGFsIHqOJfXGKUs2Gbksoo+W/Mf/pqxfQTc76dnlXtKRdxkEthjkdaRSGecEjXreMj4Axzxed/q8tT+Wrudxq0aEFUlgmkD5mmeW7br039FpszAbGoCpvqQuhwC73CdOBjjEbXQ/prwiICrlLg5TqoIpqkWWIZpBZbzIus1MmM7JAxUy2x3m/0MJAzUfLfyhD5b8z9+ETYp5QagbIQGywglvSVEmOojLKPAmYRMHIZMGAqZ2xGhzyHMd+d579q5P2nLzwFTe/LC3Oc0z+34wVM+18qMzcjkyWCsjYgYRXDEO8TYb4LUT1RONjeBt2b3uBxeQulMhUKcD/XBUAWQkPgG0n5UiZp1pHqmqfrFPbOU0Wdr/qXEPDYhRB8hxFYhxNYL5y8fDSzJ2ZswNUBYRqgln+Oo2n1vviff+2o1qcEdT9yseWpuz63BdfWIrBzhc6001lKbdR3HIfM/BAFgukktSR1nIOA6MF3p2re2zXOf7UfP8tMyGmSyj+dWuM9ZTR3REiZ1ZCvhOXViIGI0wpTP2dAyhr5vrXgoMWGTUs6RUl4vpbw+qkLZ2bFfEpSUuEkykamrPA0ZGwp0TrTZrY3p9OpjPp5adNUo+r7bLVuaJIOxGiJqOhirI61v40xdjDntIwBi7LeDZYRWx5OkN5G2TWrTriZqw1SuNrfnljz1oj6rMFVTPpub0B7lUtR0igc9KlpCFLe4aZ6ae/kZMUEtS12emz8RwgKWkUCmytYBmDGAMw2c59UmYWc8CAuY6qsUR+FDfTw15bm9AaF9c41suttl1gwcuGofJM/0NKR8pAS0nKHP1ooHXdhKkGL13TJ2eHlq97iWpS7Pzfadf/sCSPrQ97X5EcyOg8ScfAmS3gNTI5WvzaS2mqi9ar5BABHQGIwVwDoOmfatz3sydTkkvY+0rYcLA5F2j9cn0/9WS1BnEkS+D5HT1LLU5bn5i/wEtyjoS9DixV/bPZYCm4FGQojjQoie+d1zOVMcszcReAMicrKPpyZMDRAR7yJCnirUsyQOpHd2Wne7/YA6UpW507M51lgLjDXA9g2gZm4xaRY1OzN4EmNK6VQZNbLiSFTFWVLmauImU5erSKshGIy1vc59nkLaD0HyB+re8CEIU10vzy3AN6tuEZDSAcmTlbB6t9t+gJQZRRI3fQla/PgrKtpZSllVShkgpawhpZzvj+deyhSLuBlr5tBWLc9kkTkhU1cgE4cjM7d72mzfIRNfRdp+QiZPUjnMQgeqIILjOODweUbMmelaNlsAUuZC4nCk45zXM9dB4iBVgCXwRiVu53soUTO3gdDnEQGuLLcyExKeh4SXQIRAxPuIoBs9n9NUDSKnIsx3Feqz5o4DnAmQPFUTN2n7AZJnKW+Qi0tI6RY1fbZWvOhL0VKkzGYJCX4IjDXVOdPM7UrUUuaozbbmOxHhIxCWMRjMd0FAE8+NxhqICksIDh0E9n3EnJ7oEbegO5VQWEciHeeUqCXPBFMTMNWD8JfUdU5XbYTQ5z3bRZwX1JEtN2H9leBlHbfBf6nThQgEy3AIaK7ELWGEErXAlhD+aoH232VFF7WSQxe2MkBZOUjvRohwRMRol7iN84ha+FB16sBUH2GIQNrWQua/XncGqWVq0M1K3BwniU2MQdqPqy0iljeUuF3orUTNHSUVAVoQQiN5GuDajGt927ef5Ok+nlvx/RyClLiBZ+mti1q5QBe2MkKZFLegmz2vg+5We9ZcSNtaZMo8CLwBKixVB9QdhyBpAtI6Volb1BzASczpCapYiqmR64yni9DeCBGATFnuWX5GLQIRDunrkQmvKlFDqjOjkdMh8gO1LHV5bsVO+q9ZXv9W6Efoolby6MJWytgzPV6NW9z2nyh9c1navkOmfgqmxmrmlvS+r+fmOAuBNyDCX8YggjAE3Y4IHwoiCuwHkNY3wXGSoJT5mEUAsTyr6hGkr0clbjZB0jhk5nGwfa3ELLgHwhiuBAzAfgBwuNJ3v6nyu5lqK88N6XuSoVh+Bj94lp8VPvEsS7MEFPJCF7XSQRe2UuSX5Zt4t/s0khNStDYRk8qiLvP57Y+9pZcCybbOs/yMGIOIeNPLc1PVpERod0T4Kz6zOBHYClFhNiJsCNj3IhOHgrQhLGMwO9OIiV9GTHodwK6Woc4EsA4HmQKBN3uSQjoO+A4opItvfjdTbYiaoeoUFNfPwJkGqSs9npoh1OO5pa1QZQNzqIsgpVOLmOqiVnrowlaKXFE7mrNH4pj83BySE1KI3XmEaQPnEWAOpFkVFeEsFXEz1YGgOzyemttzC7xeRUNxpQ4new41gUnVHdAIAEM0kI454DoIe5kYZ3tVw0CmuUTtdpVVVwiXp/aOGkPUHJXqPHlatsPtQuSf8rwoCEMwRLzl46lpnpvlTXUuNXGoSsvkQkonJE+B1MXE6KJWqujCVoo0btWQfh90J+5oPK/eM5aJPWdgibYwZFYfIitFlJrvJkz1MYQN8Z2NiXAM4a8gDLkXcQGQjuNI60h1pCq4I8gUtSwNaouwvE5IwFUI8/1qr5ub8MFK1GQmpMwGU02wjEYYo1VZvICmkDIP6Uz17cuZfS9ZTm0XizBWyr6pWAQhjBXVhmCMkPQeMn2LR9TSNxCbGoBAF7XSRBe2UqZxq4bc+4xn71Wv8U8RWclz8LwsZOctKNJ5XokaqO0gIZ1cy9J9yKR31DVIgjL+0DbyxqRZIGW2q1JVAISPUqJmCFfPMZiVuEWMQ3jVL9j56x6Wvz2OlAuHtLa44+eY2n88p/d/X+yfVS1NR6nZadJ4OP80MQk7iJUdCQ7tp4taKaMLWykTu/MIPy72RN4WjVzu47lB6WfnLTCGKAi6G2EZo20WFkG3IcKGIILUiQiZuhjSVkPQfQRXXA1BbYm58CcxZ2YpcXMXgPFCGMzqvKkXAUFw3xO7yIwfQcqFQ8QdP8fCEVPpMnAH0VFLlEdWzChxewOQxKSawFiL4NB+xd6vTv7owlaKuD01S7SFt9aOYOC0nsQdjdc8t6wUh7hJJDLLqQHVnr0tf+wqJ5vIUkBFXgBjtHrffgCC7kOE9UEgCA5/7xjSAAAgAElEQVQbgDm4AzhOEGsteJTzqpuacCH1eYxGO+mnX2XZuDd59tW9RFY2YYx6w6+bdXNDSicxZxcSk2bBjAGz4xQyY0v+N+oUO7qwlSIHt8X6eGpuzy3hrJUzR3Le8uFvcZMpi5BJE5FeR4Rkxl/IhBeRzkL2YT8Gth9cGUXUCQKZthqZshBpW68CEZY3NFEDd/3SLgRHfUBwQDNirXEFPktZt+Wd7N/XjahKdga8dYSKVTIxRo1GlMAyMMZ6lpgz0yBzG8EhXREVPgFTbWTSe7q4lQF0YStF7n3mLoZ9MsjHU2vcqiHjvhpGvWtq53qfP49iCWNFyPgDmfQBErsStaT3QARBlpqi+T7LVBdheQ0cZ5DWkTiTJyJTP4Gg2xBhfdVFzgSwH/G9D4EgEPAY7gURuLjj5/hp6TafttQkU6HGXFi0cTnPY7YfVKIW/ARChKpsKqbayPSfkFwaRWbKK8X7r0AnX8wh2bct5NSWE/VCKxGTEkfMmfPUq3JxyTuF+WEANas61xlwqBxqltEIUfhiwyLgarC8hrSOUjUJRDCE9EZgVLUYrG8ABnVgPYftIuAbTYy1eva01bV4IrJuT+3ZV/fikMGcPfsA4cFf4HCMIIW3CY3Kfpa0KHiLrBpfA2TkVQiD55eSEKEqO7AI0GakOqWDPmMr5/hjaSrMD4OpKe4MHcLy+kWJmob9oOd7mQbW0Uj7ESVqzmRE2Au5ilpWzKYG2WZxsdY4dm3cSY9X/nN5aqOp1vQp4hIGYDTaMdrG+iV44N2fexzeoustalqbCPHZJqNTOugztnKP9Jm5AdSrUgGJLPCsQWb85VN8WCbPgvAX1Wbbwo4mbbVn+RnUFml9CxyHkImqzJ6ImHBRHpi3oNjsB6j1YDPOJnbGaqqJSI2krkV5bknxFQkKO3VRwYOsS199y0b5RRe2co0dmfQhIqAJ9UIfBFACd2wNdSL/K5A4aZ6aqQ7CMhrSf0KmLCTl5Fvs2t6Omx705DxLSUrj1+WbuO/ZuzAask/2pX2fl6c2WC0/wwZ5EkMikM5zCDyCIWUypG8C8z0FFmK34Jgrqj9t9gMeUQqsQlxGFci4uPO2uphdGujCVu5xIlPmKUkwP0g9418cTPuCWHsz6oXnb2DLjA2aqAkRAi7PzZC2hG/nJOJ0CG555AZSktKY2n8uJ2NOc/XtV1GzUbVszxKmRhD+qjpj6vLUSFsMBEHQPZD+NSS9izN8KIbAm5EyGZk4GhxHEQHNtONahUUXI52s6MJWrjHhMA/GCCqFkO0bcJyibmgrDpm6EnsmKd+ggggbDNKOEJ6lmzA/TED0bVSq9TlL3lxFqtXG1u+3czLmNH3eezpHUdPuDWwFgJRJHk8tYizC1ABnQF117CjpPZyhg8H2lRK18FcQFylqOjo54a+aB/cLIfYJIQ4KIYb545k6+XN830nG/G8Shw51UA0OlZ/sgxeCOfZVbIG2hKhD7tn9qGSrgadHd6RWkxp8Pvlrjv53gp7jn6LSldEFG5wIg8A7EZZRmqdmCGoNYYPUeymTwRGrRC1QZemQti+RGVt9HiPte3CmLtW3T1wC5KcTQohnhBBxQogdrq9eXu91F0IccH11z6+vIgubEMIITAfaAU2AzkKIJnnfpeMPwiqEYgwwsuPbiT7ttRv8R3QNNVO7mKip3e5gSv+5zBiyEFuKp/Td17PXMfHZGaQk5R9xFAgMIZ2zBQpE4PWe9EQAQkVHJZnI9N+RSe9q4ibte5DWcZCx2bfKvE65oxA6sVxK2cL1Nc91bwVgFNAKuBEYJYSIyqs/f8zYbgQOSiljpUpwvwx41A/P1cmHyEoRvDK7Lu17nWTH72G88Gh9/tkczv/6nKbZ9bHadYUVN5PJyP0923J07wnOHImj28gnCIsK5cT+U1x1U0NCwy/uuJLHUzuPCBsIxtpaXQV1KmEUGGshk97FmfqJEjVDJYRlbI6zSp1yRVF04j5gnZTyvJTyArAOuD+vG/whbNWBY16vj7vafBBC9BFCbBVCbL1wvgwf5C5XpBNs+glbZgsWvnMFmekGjh/vBIE3IW3fAJ7ZVmHFbcfP/2IwGpFS8snYlSRfSOGKOpXZ+v0ODu89XuiRSqSKvro9taC7EBFjwFhDiZvjpNq9HzEasKuD8jJdiZohstD96RSd9Ey7ZmXk9wVEu/9/u776ZHlcgXQC+J8QYqcQYqUQwl12raD3avgjeJBTjD6bISKlnAPMAWja/BrdMPELQaQZ3mD68BU47CpX2fqlf9Dklmeo26wC4HuCwSNuaitEXoGF/w15iFsfvYEZL3yktQ2Z1Yc9m/ZT66o8/03liEBASFeQVkTAdapNhKs03+kbwejKkOvwPW6F/aBKcKlT4gQZTNq/mQIQL6XM6y+qIDrxFbBUSpkuhOgHLALaFPBeH/wxYzsOeBe0rAGc9MNzdfIhNSmVKQM+4/i+Mzz34TO8tXYE4dHhTB/4EbG7EnO9ryCzt8gqFjau/hOAxq0aYDAamfXSx1zTuslFHxcSpgaaqGltIhxhfgCB8HhqxhqIyKlgrOfjuemUa/LVCSnlOSmle5kxF7iuoPdmxR/CtgVoIISoI4QIBDoBa/zwXJ18OH0ojvjj5+n9bjea3XYVkZUiGDKrD+HR4fz354E8781L3Ox2B3NfXcy/G/bS8ZXHGDStF73GP8XRvSeYOnABttT0bPcUFUkmMmmSx1MzVneVAKyFTJ6ClGlImZItnZJEImWS38cDIKUVZ8o8JJ7CzxKp/D9HCVTIurTIVyeEEFW9Xj4C7HV9/z1wrxAiyhU0uNfVlitFXopKKe1CiAGujozAAinl7qI+Vyd/6javxZtrXsUc5jHWIytFMGzRAMxhnswcp2LPcGBbLHc84SmnZ0tNZ+8n27m/Vxufo1gARpOByjUr0fGVRrTuoO5p0bopvcY/xY71/xIQ5P+zkIIACB8OhijNUxMiFCJGg+MkCJMqx2eqAe5TDUhk8nSw74eICf4PMGTuBdtapOM4WEYAAaq/9J9V6nPjw/7t7xImN50QQowFtkop1wCDhBCPAHbgPPCM697zQohxKHEEGCulzNMs9ssGXSnlWmCtP56lUzi8RS23tl+X/87Gz/8kw5bJ3V3vwJaazrSB8zm86xiNb2pA/auDiLEFaFlCBILHB7YE4xU+z2nRuiktWjctts8iTDlUdxeh4N4yEnQ7MvUTZa6EDUQmz1YiE9yh0CmWCjSewFaufqaqug2GSFVXNLijlhVFp+DkpBNSypFe3w8Hhudy7wJgQUH70k8eXAZ0GPooydY0Vk/+hvTUdPb+eYDDu47R8+3O1G98AJkwl7qhg4h1NCTmzHnqVjiGtL6tzH7zXQgRVtofAQAR3B5AiZu7cHFwB0RIp2JLEySC7gIJMmWqq7/2GEI6FUtfOv5DT1t0GWA0GekxrhNNbmnI2rk/cmjnEXq+3Zlr2zaHoFvAWBNSPqCuYwYycx8xh6arc5v23cjEN5Bk5tvHvq0x2NJ8vbezx+M5dfisfz9M8GM+L0VIR03UpP2A308oSCTS7uWs2GN8PDedsokubJcIu37by5/f+GaTPXfqPF9O/w4pnWRm2ElNTPN6L0F9I8IQEWPBUAEyd1LPMZF6IRZiL9Qk9tR+RNAd+eYXSzyXxIzBC5gxeKEmbmePxzO57xzmv7oYp/SP2Giemndb8mQkDmT6emTiq2Bb55e+fPpL/1ktP8MGQuZOpPVtXdzKOPpS9JJAsnHVH+z+fR/7thzk5oevp0K1SCb1nYMtxUa1elVYM/N7LpxOpMdbXdixfherJ38DwN1d71DiFtpTbaAFcBymnuEwsebOxFrvpF4+nnxExXC6je7IR68vY8bghXQc+igzhywkI93Oc5M7YxBFXyb6iIy5Pdj3qKBB+m9IxxlVJCagOZhbF7kvjfRfNFHzXn7K5KnI1FWIkM4FH7/zAsLgewpISiuIkIvKe6eTN/pP9JJA0POdp5j54kL+/OZvtn6/nRBLCA67gydefIRPxqzAYXfy9Jgnuf7ea7i2TTMAVk/+hpqNq9HomhRk0mQQ0SDjtafWq/AEMSnnCpR6/Lo2V2B8uz1zh63i7S6TCAg08cqivlTzW4ZuO0ir5qkhbUjrWLDvc4laM4RlhFY7wS8EtVanIQI9OelE0F0qiBBQ8CCKyh48HEK6IMwPqTZngqrBaqqnMqzo+BV9KVqOSUv2LC0DzYE890EPoqpG4bA7STqfzI3tWrLivS+IqBxBt5EdaPVAS8DjuXUb1YGGzVNUoMBYDQLquZ6m/llI61jqhVYE8i7YrPagjaJJ85UEBTsBCA4zUCV6HtL6GlIWPU23IAAR/qoWKBAiGBF0u+f9oHv8K2q4isx4iZrWHnBt4foyVYeAFsiUBUjb1x5Rc8YhzPf4ccQ6bnRh8zPbftzJiYO+mzdPHzrD1u+2+7WffzfuYeSjE4jd6TmCdGjXERLOJGivf1n+O7aUdF6c04+bHvY97WI0GbnpoetVcWJTQzBWgYw/ESFPIyosUq8z/0EmT6deaMU8N/QKArCmtscoDzLg7dM80u9mnn75ENh3YTd19tv+MoHREyhIX69y0JkaqMP0yVOQGX/4pR9/IzAhwl9UZ3hTFiAvPKtEzfIGwqQnwikOdGHzI/aMTFZPWcvkfnM0cTt96AyT+s1h9dS1pNv8ZzjXbFyd0MhQpg2cR+zOI+zbeoCpz88HCQ/0vtvn2vjjeexlNNVV1cxlOiLkaQhurzy3yJmuJV8S7iIvuYmb9XwS7/X+m08n16bOVSnc+9jHNG6ZypIPrmD6y7F+Cx64kekbkclTIaA5ImIcIuItMNVX9VHL6PErgQkR2tPTEHCtLmrFiC5sfsQUGMCgGb0IDApgcr85/L3uHyb1m4MQgkEzehNk9t9SyX18yhJtYWLPGUx5bh5IeKj/vfz86Uaiq1egdlN1vG764AUc+Ds212cJEYiwvKFEzdMKwU8iwoeBV1Q0J3ELrxDGDQ+0pG2PIT7PvebuHtz00HV+CR74YLxS1VVweWpCBCMsIyHwRjAW/oB+SaCWn2MAExgsqpar7evSHtYli5B+/m1aEJo2v0au+OaHEu+3pIg7Hs/o9u9pr0eufIkqtSoXS1/7th5kynNzAbine2u2fLuNgEATg2f1JTQihO0/72LdovVYzyUzds2wAtcsLQgxKZ4sIZIM5dVl7lTZODK2gamhWm5d5rnUfDw1yxtgaohM+gAy/kCEPqsFFPxJswrV/84n20a+FOb/abMrryhyf/5En7EVA45M34Pa9iyvC8KFMwn8udZ3X5rdbmf90t9wOpRBf/rwWWa+sEh7f8Nnm2jX625ad7qNv9ftJNAcSKsHWjJ4Vl96v9vNj6Im+W7Bz0QkqOy3MWfOqr1dGTs5fuJ/GMJHIMJfAvt+pHUcEv8fmi9fOIAAzVPz9tyQ+W9+1ik8urBlwZ5pz6FVYrfn1J4dt6dmqRjOc5N6EFU5wsdzKyg/LPqFj0ctZ+PKzWpcdjvzhy1h5Qdf8d+Wg5w5cpZJfWdjz7ATEGSi94SuWKItrHx/DSsnrmHXxr2aAIZHhdGgZd1C9Z8XF84k8tOSjUzqN9slbka2/RfB4g+vYOX0JFXTNPBmJW7GmuDnaGV5QxgqIiLf9/HUlLgN1Y6J6fgXXdi8sKXY+KDXTL5b+LNXq2TZ+C+Y8/LHOOx5z7zsGZlMGzAfIQRDZveh2a2NGTy7D4FBAUwbML9QwYP/vfgQV99xFcsmfMEvy35n/rAl7Px1Dx1feZQmNzXEGp9MoDmAQTN6U6FqBRaNXkHtZjXJzLBTpXZlnpvcA4OxeP56o6pEMnhGb9JTM5jUbzZHvtzHvFFJHEpoTrvhj2qRSxF4M4aw54rtHGd5Iqefgf5zKT50j80Lp9PJx6OWs+W7HTzc/z7u73EXy8Z/wcZVf3BPtzt5bFA7ck7m6eHfjXuofGW0j6cWdzyeEwdP06J1s0KNx263M/ulRezZtB+Ajq88yp0dbvF532QykRhvZUS7twAQAiZuGFfAQIXM4fPk1JYzx/ed5J2ukwEVQBi96mVOiGQg7+y8bv74+m+a3NoIS5TnkH3MziNIKal/Te0CjUEnZ3SPTUfDYDDw9JgnueH+Fnw143uev2FYoUQN4Orbm2QLFFSqEU2L1s1ynLHlP4vz9Jk1umgyqYMjB7bGaG1SwrEC1CTYsX6XduTKzdlj8YzvOoWTMafzvR/g3KkL2vf2DDvJiWkFrq2QEJfIsglfMKXfHKwXlBjG7DzC9IHzWTlxjV5uT6dI6MKWBYPBwNOjn/RpK6io5cVPSzbwzlOTSYi3am0HtsUy6pHxxOw4lO16t6e2Z9M+nnjxYW1Z6vbc3Gz9bjsfjVpOg5Z1GbP6FarUrsz0wQs5uD337R0ASMnBHYeZNmgBthQbZ4/FM6nvbC6cSVDqmA///LKbecMWU+fqKxkyuy/CYGBSv9nEnzhfsNTjlSJ47sNniD9xnin95vDPr3uYPnA+luhw+k3sri/TdIqELmzZkKx470uflu8Wrte+T0tO49t5P+F0On3u+eGj9SS5Zh45UefqWljjrUzqO5uEeCsHtsUyY/BCQiNDqZxDEeJVH3yteWp3db6NXhO6auK25w+1NE1JTGXp+NXUb1GH5yb3ILpGRQbP7E1UlUgWv7lKCx7kRIs2V9PrnS4c3nWM0e3fZULXKTgy7Qye2Ydq9avmeh+oiO2CEUuo1aQGA6Y8S4OWdTXPbd7wxYCkXmilfAs2N7q+Hs9N6sHJ2DPMfnkRwiAYMqsPkZUi8uxfRyc/9EPwPkgfT+2R5+/n49HL+WqGSq9+f4827Fi/m69n/8CZY3E8PaojBoNg+btfsuGzzRgDjLR96o4cn1y3eS0GTO3FtIHzeM3lh11Rp7KqUVAhPNv19z59J7Wa1OSmh1Q9C5PJRK8JXfl1+SYa31AfgNCIEAbN7MMVdSprnlpEtIXBM3uTnpqeb/CgRZureeS5e/ly+ncAvDS1f76iBip48OzbT9Ho+rpatt4ajaoxeEZvhFHgPbutF1qJmJS4XA/SmwI9/wSFQWAwGfPtX0cnP4o0YxNCdBBC7BZCOIUQZcY4vFjSkm0c3B6reWpJF5I1z23v5v047A6a3tKQh5+7jy1rt/Px6BUsG/8FGz7bzN1d7+CuzrchZe6zpLrNa3Ffjzba6x7jOucoagBRV0RpoubGZDLR9qk7OH3ojDZjrHVVDYLMgSTEJZKckAIocat8Zf5l084ei+eXFZu0159P/sbHc8uLa1o3xRwWTIo1lc/eW0OGLYMajapRvX5VpHTy5bRvOXtMZQrJbWnq9tQqXxnNM2M7YU+3+3huOjoXS1GXoruAx4ENfhhLqRMcFszLCwfw2KB27P3jAKMencDOX3bz9Jgn6T/lWeKOn+Odp6aQlmwjopKFLd9uZ+OqP2jT5TYeHdiOT9/6nCVvriK3kocHtsXy3XzPVpJ5I5b4eG4FIf7ked7tPo0lb67UxC0hLpFJfWczZ+jHufadFben5si089rSIfSe0JXDu47x7jPT2f7zvz7Xxh2PZ93Hv+b47Jjth/n1s03MemkRGbYMpHTy6Vur+WHRL+z8xZN51lvcYs6cJyEuUfPUhszqw43truW5ST2IP3GemUMW6sEDnSJRJGGTUu6VUu7z12CKm9SkVBaP/YwUa6rWJqWTzyd9wxFXJFHtzhfUufpKajSuxvwRn7Lzl91cOJ3A5H5zkFLS8p7meAcoky6k8Ombq9i8Zkuu/pDbU6tQNZLx37/OS/P7+3huBSW6WgXu7XEXf3z1N0veXMmFMwlM6jubpHPJtB/8IAUNcmz9boePp9aizdU8+3Znzh6JY8GIT9m9Sf21xrky4a77+BcS47OXuWt+ZxO6je7I/i0xzHxhIYtGrWDTl3/Rok0zWne+1eda574kKqaqJfM5p4PHBrbz8dTcntujA9vpwQOdIlFiHpur5H0fgKrVa5RUtz6cOHCaLd/v4Pj+kwyc0ZuQcDPLxn/Bb5//iTksiFpXecZlDjUzYEpPpg2az9xXFwNqr9bgmb3ZsPIPEs5aiboikgunE9jyrUpJdN+zbXio3z3kJC4nDpymYrVIBs9Unlp4hXAGTO3F3FcXc+HUBSKjLQX+HA/0Utk7vpm9jj+++pvA4EAGzehNnWZXFvwZvdtyy2M3+Ahxy7bNuWJpJT4etYI5Ly+i/ZCH+HHRL2SkZzJoZm8ichljqwdaIp2ST8asAOD6+65h6/f/sPC1pTz7VheMJiP/bTnIrCELaXJrI/q8+zQxKXFUv71Rtl8Eja6vl1MXOjqFIt8ZmxDiRyHErhy+Hi1MR1LKOVLK66WU10dVyH/zZnHQoGVd+r7/NKcOnWXyc3OYP2Ipv33+J/d2b80Dvdpmu94caqbDS49or1t3vJWD2w9rntrrK170uT4wOIDcZkytn7yFVz8e6OOp1W1ei7FfDKXO1bUK/VluefQG7fuoKpHUauL9yyKnZZxk85otJMS5K8QLIitFuFIeHdSuqlavKgNn9MYUaOKz977kwtlEBs3sTY0G1XIdi5ROYnYc1l4nXUih/aAH2PHzLha89il7Nu9j1pCFRNesSJcRjwMFq0avo3Ox5CtsUsq7pZTNcvj6Mr97yyJNbm5E73e7cWL/Kbb/uJPb2rfi0QH3k5MgnT58llkvLiIgKIDgMDPfzF1HcJiZrm88waMD27Hy/a98rg+LCM2z74Cg7KcBcmrLD7enZg4JoumtjThz+Kzmua1f9hsLXlvqs9UjducRxnedwmfvr1FLX5e4xe48wrSB81j14dc+QY9UaypOh0ccE+NyqLQurYBT89Q2ffkX7Xq1psebj7B/Swx7/tividv0QQuoUK0CQ2b1ISzSc8qgIFtCdHQuhstuH5uUTv7dsEd7fXj3MVKs2VNXnz58VvPUhn0ykDe/Hk6tpjVYNGo5QaFBfPrW52xes4V2Pdvy4cZxNLqxPsveWZ0tI4e/SXT5cknnkhkwvRf9Jz3Lg33v0Tw3e6aDv3/4h49GLsPpcBLrijzaUtPpPq4zSeeSmdR3Ntt+3Mm0gfOwRFvoP6kHQqh/Cm5PLSDIxJBZfanZqBpzXl6keW7qh5iKTByOTJ7BX99u00TtwS7/cl2rlTw95nH2b4nh6H8ntFvCo0IJzqG4M+izNx3/U9TtHu2FEMeBm4FvhBDf+2dYxYOUTs1Tu7d7a/pPfpbTh88ytf9cn4ACgNPhJDQyhCGz+nBFnSqa51a3eS2SLiSzZ/M+2vVsy0P97iHQHEi/id1peEM9/lq7jYJGJgtDQryVPZv3ERJupkbDagyY3osrG1fnz7XbeKBXWx7qey81G1bnnm530n7QA/z9wz+MfGwCU/rPJbxiGENm9+WaO5vw/NSexB07x/zhS5BOfMx7KZ3MGfqJ5qk1uK4uA2f0pmrdKsx95RMS3UEOEQKBt0P6T9x4x2b6vt+FB7v8CxmbEea7uLHdjTzc/152/rKbqvWqcP+zbTi4/RALXvs010QCurjp+JMiBQ+klKuB1X4aS7Hz78b/NFFzLz97v9uNWS8tYvXkb+j6Rgft2hMHTtF5xONcUaeK1mYONTNkdh+EMHD9PS0IjQjGvYR1ixuAw+7EaDKQdXnrsDswXuQG1C+mrOXvH/6h94Ru9BrfFYfdwcLXl7L9p3+pWDWSdl4e4d3d7iT23yP8s15ttxg0o3eBdvMLYaDryA4YTQbNUwu1hDBwRm8ObjvkEzwQIZ2UfKct5+pmP0MGiNAeYH6E4/tO8u3cn4iuWVFbfoZFhbJy4lcseWsVXUY8TtK5JKKu8C1HZ7kgsEbJAlXF0tHJi8tqKdr8jqsYOK2nj6dW4YpIDAa1JHVvcP1z7TYWjVzOz0s2ZnuGe8kWGhFCVuEKNAdiNBmZ++onrPzga7xnbj8u3sCHfWeTnnYxSRclze9owpVX1WDuq5+w/aedmqg9OuB+6l/rm2stducR9v3pCQh8MfVbbVk6beA8Kl0ZTa/xT2EwCB/PDdSG36yBglBLCNe0zl5uToQ84dvgygRbtV4VWj95q4+ndlen2+j4yqPc/ngrPn37cyb2nEnccU+pv3Uf/8q4DhMxHkrTfTedInNZCRsIGrdqiLcgVat3Bf0/7EH8sXNM6T+Xnz/dyCejV9Dohnp0H/Nk7o/KBaPJQHS1Cqxf+psmbj8u3sDqyd8QVSWCgMC8q6rnxPaf/mX+8CXUaV6L6g2rMm/YErb/9C/CILCe892l7/bUwiuG8dbaEdqydM4rn2ie2pBZfbi2bXOen9qTpHPJzBiyMM8TEzljRyZ9qL4VKmgik2cATowmI48NesAnUABwZ4dbqHN1Ldo+dTsZ6ZlM7jtH2/z7xdS1tGhzNVe6ttzoS1OdoqCfFQUat2pIvw+6M3XAfFZ9+DU1Glaj78TuBF5U8RXBEy89DMD6pb+xfulvALS8pzk9xnW+qOSPLdo047b2rVj/6UYqVPMs0SrVqMhDfXwrUm34bJPmqUVWiuDubncC8PXsddzzTGtufdSzdy26ehQ1GlXlzo63ajNRp8PJp2+votUD19Hgutyy7rpELWOTtvyUqcsgbbnK5hbWn7x+Z1avX5XBs/owud8crTbEdfdewzNjO/n8fPI7Z6qjkxuX2YwtdxK9Zj7ptgwybEXJRe8RNzdZ/9N68+tnm1g9+Ru8l66Hdx9l1osfYUtNRwgDHYY+TMVqFTh/Us1gAkMCiT9xnv1/+6Y86jqyAy/Ne87HU7u7252MWvUyD/a626f93KkEju07ydezfiAx3orT4eSjkcvYvGYrx/adIHecIFM1UQPluRH8JMgU9X4+VK9flSa3NtJeP9jn7hx/PvqWEJ2LQRc2lKf2yegVNL6xPn0ndifhdAJT+s/VPLeL4cfFvv7c6ilryS1aevZwPD8u3sDnk9Q1h3NELCQAABVxSURBVHcfZdqA+ZyKPYMtWR1KX/HuGs6d9PzHvu7ua7jyqhrMeeVjPhq5THu2KcBEalIa84Ytxpbq8fOiqkRm67dOsyt5fvKzJMQl8mGfWUzpP5e/f/iH9oMeoE2X27Nd78FVrs/8iE+rCOmECB9KQRYC6z7+lS1rt1O1bmWCw4OZ2n+ej+eWFX1pqlMYLvul6ImDpzRPzb387PdBd2a9uIiPRy+n/6RnC/1Mt6fW8p7mPDO2E6snf6MtSZ948SGyBh06DH0YieSnJRs4svcYx/edJCwyVG3FqKxmWFXqVEIYBLWuqkHF6hXYvGYLd3W5HemUbPl2O5YK4VSuFU31BlWZ8/LHSCmxxls5cjaRoOBAajfN+bhVvRZ1eO7DHkzqO5u4Y+do89Tt2vI1b3L7nZj/78ofP1Gemnv5eerQGSb3m8PkvnMYMrsv0TUq5jxWfWmqU0Aue2GrXr8q3UZ15Nq2zTRPrXGrhjw3uUeOs5z8cNgd7Fj/r4+n5l6W7tm8n7RkWw4bVQUdhz7CkT3HObhNLS1fX/aCth3ivz/388WUb6ndtCYDpjxLUGgQwaFm1n+6kYf63UvtZjX5ackGhEEghCAkPJgX5vTl/JlEZr3wEVdeVZ0X5/Yjp9MVToeTjav+0F7v/u0/7u56R67nQv1BWFQoN9zfgqdHP4nBaNA8txXvfuk6lpY7urjpFAS9mEsxYEtNJzAoIItnJHMRNcXh3UeZ+vw8bClq+dj2qTt4fMgDgCA1KZUvp35H+0HttMSOKufZd9zQ7lqq17+CqQPm89+fBwCoXCuah/vdx8ejVxBdI/tRJjduT829/Kxz9ZVMH7yAyEoRDJ7Vp1jFraiFZMC3YLOOL3oxFx2/Yw4JysEIF3mK2rQB8wmLDOXNr4ZxZ8db+GmJx3MLCQ+h84jHNVEDtZ/usYEPUL1+Vc4ciePkQU8BlrNH4pk/fAnB4cG5ihrAns37NFG7u9ud1GtRR/PcfvjolyL+FPIjJwErXKoi3XfTyQ1d2MoAX89aR2iEOr4VdUUUHYc+wp0db+HXzzZx+nBcnveqwsnqTOvry1+k+Z1NvN71zIDWL/uNzV9t9bk3xBLCtXc3p81TnkBBvRZ1eGl+f9oPfsBfH69Y0cVNJycue4+tLNDrnS7YUjO0QIHbc7vjiZu4onblPO/9Yuq3SCkZMqsPCfFJ7N28nxBLCGlJaaQkpjLl+bkMmNqT3b/v05aqNz98vWcjb3Q4qdY0wiI9mUmqF6DuQVnCI2760lRHoQtbGcAcFuyzzFQIn3OqudF9dEcSzyVhNJmY9cJHRNdUlarOn04kNTGV2S8tYv6wJTw/5VnmDP2EJeNWcmjnEf7+4R/CXWm5vUWtPKMHFnTc6MJWzvEWxf8NeZBr776asMgwwqNUQst+H3QnKCSIQHMgfd/vxrB73+T3L/4C4I1ZL11ype50cdMB3WO7pLj9iZuzBQoat2qoZeg9tu8UGemeExV7/zhQouMrKXTfTUcXtmLC6XBy6N8j2dpV1feS32Lj9tQqVq/AmNWvcNVNDVkybmW2gMKlgn4U6/JGF7Zi4ruFP/NB71nsWL9La9uwcjMf9J7F5jUlKyZOp5NP31qpeWrRNSrS9/1uNG7VgBXvfZlnBfvyjj57uzzRPbZiok3n29izeR/zhy+h5ztPYT2XxPIJX3D1HVdxwwPXFnPvki3f7eC6e67BYDRgMBjoN/EZDu06gnDVDQwIUp7bydizhEflvM/tUkH33S4/9BlbMeFOJV6raQ3mvvKJJmq9JnTFZCre3ycHth3iozeW8WanD//f3p1HR1XlCRz//sjGqoK4IGsIMIIBgqJgi6MsIiBiux1BUJCMyOACow4NMk3bemxx0FYRbQiC44koDT3SgtoDpNkUQQ1LEBAUWQQDxLAlLAlU8ps/6iVUQlaqKpV6+X3OyaHeUvfeJ/HHXd69lzM5ZwBI/+kQyX9cwNtPzeFYhndhyaiY6CJbDrpZ8Q2bjbv5u+fBVBHZLiKbRWShiFR+cqWLHdyTQcurmxced729C7knz7AhZXNQ8217bWuu79+FQ3syeP7eqaxPSePdCcnUvaguv/x4gNQlm4Kaf3VV0O8G1jQNBRHpJyI7RGSniEwo4frTIrLNiSf/FJGWPtfyRGST87OovLz8rTosAyaqqkdEXgEmAr/zM01XUM0naXwyxzOyaN6+KQDvT57HJVdcTPbhE8QltArqXMwRLwwm91Qum1dtY87ED6l3cV2yj5ygz0O30Oehfz2vrAULTdYE1jSteiISAbwN3AbsB74VkUWqus3nto1AV1U9JSL/Dvw3ULCM9WlVTahofn79NqvqUlX1OIfrgJrRrqmAtYtSOZ6RRVRMFJn7DzMgsQ8RUZEcST/K7SN6BnmCudeNd57bVPnk8VN06RXPjm9+5NivWYXnsw5n8crDb7H9250lJeFaVnOrcjcAO1V1l6qeAeYBRTZdV9UVqlqwXZxf8SSQnT0jgb+WdlFERgGjAJo0dX/8a3VNc268syt9R9zKKw+9xcxn3weg7XWt6T7w2qDnv3nVNt6dkEyDRvXJPuId9fxx4y7O5Hp4Y3QS42aM8m7mMnoWRw8dIzLqwnbPCmc2FatsZ8942Lc7o6K3NxYR3+H+JFVN8jluCuzzOd4PdCsjvUTgHz7HtZ30PcAUVf17WYUpN7CJSApwZQmXJhXsBi8ik5wM55aWjvOQSeBdDqW8fMPdVW2aMGzy/Zw8fgrxWenj3nEDz9t2LtB2bd5b2KeWfeQEtz18C4f2/srmVdu4qHEDsjKzefG+10AgP195fNpI2iTEBrVM1Zk1TUsWExlJXOMK//fILGfZopKWbikxDojIMKAr4LviaQtVTReR1sByEflOVX8qLbNym6Kq2kdV40v4KQhqw4GBwFANxeJu1djJ46eYNmYWZ3PPMuS5e2jUpCHTHp/Fvu1l7SfgvxYdmnJ1t7aFQe23T/bnsVeH06V3R7Iys7nmpqvJOZVLzslchv3+vhod1ApY0zTo9gPNfY6bAenFbxKRPsAkYJCqFq5tr6rpzp+7gJVAme9M+Tsq2g/vYMEgn7axwdsh/8649zi4J4PRrw2nx93dGDdzFLXr1Wba47PO7aoeBJGRkTz26nBGvDiY3z7Zn4J/LP9tyjAenHQv+302alk8Y2mRfUVrMgtuQfUt0FZEYkUkGhgMFBndFJEuwEy88STD53xDEYlxPjcGbgJ8Bx3O4+9Q2HSgAbDMGYad4Wd61drhA0eY/tTsIkHJc9bD7Ofm8uP6XUXuFalF/8RejH5tOO27twPg0iaNGDdzFP0Te3Nx4wZBLWtEZATX9+uCbwsg63AW/5z7Bcd+zeI/Zo3m2TljyM7M5o3RSRbcHDYVKzicQcYngCXA98B8Vd0qIi+ISMGuQFOB+sCCYq91tAdSRSQNWIG3jy14gU1V26hqc1VNcH5G+5NedZeVmc2utD288dhMjmdm4TnrYdb4ZDYs20zGvvN3WIrv0b4wqBW4tEkjZweoyq0WGwjb1v7IsYxjhX1qsR1b8sT0RLIzs9m6ZkfQ88/z5PFZ0jJyTuYUOb/m79+QvvNA0POvDKu9BZ6qfq6q7VQ1TlVfcs5NVtVFzuc+qnqFTzwZ5Jz/SlU7qmpn58/Z5eVlex5U0k+bdvP22DnUv6QedS+qw77t6QyZeA897ilrgKf6OJ6Zdd6rJiWdC4bd3+3lz4/OoGWHZjzxViK169Vm5fyvWDD1E24c1JVhv78/6GWorHDdVyEQex50jO+sH8//vEL3trumme15EM7iEmJ57LXhHE4/yr7t6Qx4tE/YBDWgxABWFUENILZjSxJfHsrebfuZ/uRs/u+95SyY+gmdbunA4Il3V0kZKsuapuHJAlslec56WD733GbIqUs2BXUgwG0SesaT+PJQdn/3M4vfWUK7rq1JnDI06PNn/WVN0/Biga0SCvrUtny5nSET7+HpWaM5nplV2OdmKsZ35sPpk7l4cj1l3F19WHALHxbYKmHLl9sLg1qPe7oVbld3PDOLFfO+DHXxwkJBn1qnWzow8k8P8ssPB5j+5OzzBhSqKwtu4aF61/+rmYSe8Uz6aBxX+eziFJcQy/j/eYLLW1wWwpKFh52bdhcGtYLmZ0RkBLMnzmXelIWMeHFIqItYITYVq/qzwFZJV5WwNV1FdpMy0CahFcMm38/1/RMK+9QSesbz2KsP07RteG35BzYVqzqzpqipQsKNd3Y9b6Agvkd7Gl4Rnkv5WdO0erIaW4D9ejKDtENp5OXnE9cojjaN2oS6SCbIfGtuYE3T6sACW4AcOnGI19a9SuovqVx3VVeiakUy7Zs3aVK/CWO7jaXjFZ1CXUQTRIU1N2uaVgsW2ALg4ImDJC5K5MaY37B4yKfUi/burJ6neby/JJmnlzzDy33+RNerri8npeolz5NHRGQtik//8ng81f69s1CxfrfqwfrYAuDVr6bSPfo3HJiSxdK/rKRgmalNKVvY8Icd3H50IJNXTMaTH9j3tXJOnGb+1E/IOZXrc1b5dMZSDu4+5FfaeZ48Zv0umQVTF+O7bFZK8ipef3RmsTyNL+t3Cz37Z9dPB08cZMOBDXz64Gcs3rWUlA9WA9CiQzPe+695xHVuyZhRj7A95TtW711Nr9heAct795Z9rP7bOvb/kM6YN0dSu240C6YuZuX8NdSKqMWARy98tDYishaXNW9cOMvi/v+8k5Tk1Syc9jnX9e1MdExUoB7DleyVkNCywOantINp3ND0BupG1eWB8d4l3AuCW5susYx58xFi6sTQs1VPNhxYH9DA1r57O0a+NIQ5kz7i7admc0WLy1i7OJVeQ29mwKO9/UxduHfcHQAsn/sFK+evAeC6vp0Z8cJgakVYZb8irGkaGvbb6SePeoiKiHaOhDZdzq1G2yT2cmLqeK9F14oKeFMU4No+nRj50hB2pe1l7eJUetzdzQlIgVgW6VxwKzD8jw9YUKska5pWPfsN9VNcw9akHdpEvuazflmat/mZ0Irud17HFx9/zcI3PweUjQc3EtcwLgglUH7auKfwKH3XQXJOnQlY6inJq4scf/z6Z5SyVL0pg23YXLWsKeqnqxu355Lal/DBkrl884dt3j61Nx8hpk400bWjSflgNTn1TrM2ah3P3TwpwLlrYZ9ar6E3ExvfgjmTPuKdsXOcPrcYv1JPSV5V2Kc24oXBLHzr8yJ9bqFYLDOc2SshVccCWwCM7TaOCSkT6D94EGNGe/vUAB4YfxdnLzrDgrofkhifSP3o+gHNd9PyLYVBzbf5OWfSR3z6lyXc98ygshMoQ54nj7RVW4v0qRU0S7eu2cHpEznUqV8nEI9R41i/W/D5tYKuiLyId9PTfCADGFGwm0xZwnkF3dKs3f8Vz698ntYN47i15a1ER0ax/sAG1vy8hsQuiQzrNJTA13CUtJXb6HxrhyJpb//6B1p1bOl3jS33dC5R0VHF+tSUnBM51Lag5rdgrs5b01fQ9TewXaSqWc7np4AOFdn3wI2BDcCTf5blu1ew4cB6PPl5tGnUhjvaDqBBTNWsUGvCUzACXE0PbH41RQuCmqMeNbxXObJWFH3j+tI3rm+oi2LCiDVNA8/vUVEReUlE9gFDgcn+F8mYmsdeCQmscgObiKSIyJYSfu4CUNVJqtocmIt338DS0hklIqkiknr0iP3lGVOcvRISOOU2RVW1TwXT+hD4DPhDKekkAUng7WOraAGNqUnslZDA8KspKiJtfQ4HAdv9K44xBqxp6i9/+9imOM3SzUBfYGwAymSMwYKbP/wdFb03UAUxxpzPVgm5MDZX1JgwYLW3yrHAZkyYsOBWcRbYjAkjFtwqxibBGxNmrN+tfFZjMyZMWe2tdBbYjAljFtxKZk1RY8KcNU3PZzU2Y1zCam/nWGAzxkUKgltNZ4HNGJex4GaBzRjjQhbYjDGuY4HNGOM6FtiMMa5jgc0Y4zoW2IwxrmOBzRjjOhbYjDGuY4HNGOM6AQlsIvKsiKiINA5EesYY9xGRfiKyQ0R2isiEEq7HiMhfnetfi0grn2sTnfM7ROT28vIKxE7wzYHbgJ/9TcsY404iEgG8DfQHOgBDRKRDsdsSgaOq2gZ4HXjF+W4HYDBwDdAPeMdJr1SBqLG9DowHbBNkY0xpbgB2quouVT0DzAPuKnbPXcD7zue/Ab1FRJzz81Q1V1V3Azud9Erl13psIjII+EVV07z5l3nvKGCUc5gb3+LKLf7kXU01BjJDXYggceuzufW5/sXfBLZs3byk3TXNKtq9VFtEUn2Ok1Q1yee4KbDP53g/0K1YGoX3qKpHRI4Dlzrn1xX7btOyClNuYBORFODKEi5NAp7Du1FyuZyHTHLSTFXVrhX5Xjhx63OBe5/Nzc/lbxqq2i8QZXGUVPMp3sor7Z6KfLeIcgObqvYp6byIdARigYLaWjNgg4jcoKoHy0vXGFOj7Aea+xw3A9JLuWe/iEQCFwNHKvjdIi64j01Vv1PVy1W1laq2cjK/1oKaMaYE3wJtRSRWRKLxDgYsKnbPImC48/k+YLmqqnN+sDNqGgu0Bb4pK7NQ7XmQVP4tYcmtzwXufTZ7rirg9Jk9ASwBIoA5qrpVRF4AUlV1ETAbSBaRnXhraoOd724VkfnANsADPK6qeWXlJ96AaIwx7mEzD4wxrmOBzRjjOiEPbG6bjiUiU0Vku4hsFpGFInJJqMvkj/KmwYQrEWkuIitE5HsR2SoiY0NdpkASkQgR2Sgin4a6LKEQ0sDm0ulYy4B4Ve0E/ABMDHF5LlgFp8GEKw/wjKq2B7oDj7vo2QDGAt+HuhChEuoam+umY6nqUlX1OIfr8L5zE64qMg0mLKnqAVXd4HzOxhsEynybPVyISDPgDuDdUJclVEIW2HynY4WqDFVgJPCPUBfCDyVNg3HF//y+nFUkugBfh7YkAfMG3gpDfqgLEipBfY8tUNOxqpuynktVP3HumYS3uTO3KssWYJWeyhJuRKQ+8L/AOFXNCnV5/CUiA4EMVV0vIreGujyhEtTA5tbpWKU9VwERGQ4MBHpreL8oWOmpLOFERKLwBrW5qvpxqMsTIDcBg0RkAFAbuEhEPlDVYSEuV5WqFi/oisgeoKuqhv0qCyLSD/gzcIuq/hrq8vjDma/3A9Ab+AXvtJgHVXVrSAsWAM5yOO8DR1R1XKjLEwxOje1ZVR0Y6rJUtVAPHrjRdKABsExENonIjFAX6EI5gyAF02C+B+a7Iag5bgIeAno5f0+bnFqOcYFqUWMzxphAshqbMcZ1LLAZY1zHApsxxnUssBljXMcCmzHGdSywGWNcxwKbMcZ1/h/bWecFfMByIAAAAABJRU5ErkJggg==\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 2 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def create_toy_data():\n",
|
|
" x0 = np.random.normal(size=100).reshape(-1, 2) - 1.\n",
|
|
" x1 = np.random.normal(size=100).reshape(-1, 2) + 1.\n",
|
|
" x = np.concatenate([x0, x1])\n",
|
|
" y = np.concatenate([np.zeros(50), np.ones(50)]).astype(np.int)\n",
|
|
" return x, y\n",
|
|
"\n",
|
|
"x_train, y_train = create_toy_data()\n",
|
|
"\n",
|
|
"model = RelevanceVectorClassifier(RBF(np.array([1., 0.5, 0.5])))\n",
|
|
"model.fit(x_train, y_train)\n",
|
|
"\n",
|
|
"x0, x1 = np.meshgrid(np.linspace(-4, 4, 100), np.linspace(-4, 4, 100))\n",
|
|
"x = np.array([x0, x1]).reshape(2, -1).T\n",
|
|
"plt.scatter(x_train[:, 0], x_train[:, 1], s=40, c=y_train, marker=\"x\")\n",
|
|
"plt.scatter(model.X[:, 0], model.X[:, 1], s=100, facecolor=\"none\", edgecolor=\"g\")\n",
|
|
"plt.contourf(x0, x1, model.predict_proba(x).reshape(100, 100), np.linspace(0, 1, 5), alpha=0.2)\n",
|
|
"plt.colorbar()\n",
|
|
"plt.xlim(-4, 4)\n",
|
|
"plt.ylim(-4, 4)\n",
|
|
"plt.gca().set_aspect(\"equal\", adjustable=\"box\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"anaconda-cloud": {},
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.7.0"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 1
|
|
}
|