{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.metrics import roc_curve, auc\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "np.random.seed(seed=1)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def probability_hist(probs):\n", " \"\"\"Create histogram of probabilities\"\"\"\n", " fig = plt.Figure()\n", " weights = np.ones_like(probs)/float(len(probs))\n", " plt.hist(probs, weights=weights)\n", " plt.xlim(0, 1)\n", " plt.ylim(0, 1);\n", " \n", "def plot_roc_curve(fpr, tpr, roc_auc, lw=2):\n", " \"\"\"Plot roc curve\"\"\"\n", " lw = lw\n", " fig = plt.Figure()\n", " plt.plot(fpr, tpr, color='darkorange',\n", " lw=lw, label='ROC curve (area = %0.2f)' % roc_auc)\n", " plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')\n", " plt.xlim([0.0, 1.0])\n", " plt.ylim([0.0, 1.05])\n", " plt.xlabel('False Positive Rate')\n", " plt.ylabel('True Positive Rate')\n", " plt.title('Receiver operating characteristic example')\n", " plt.legend(loc=\"lower right\");" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn import datasets\n", "iris = datasets.load_iris()\n", "X = iris.data\n", "y = iris.target\n", "\n", "X = X[y>0,:2]\n", "y = y[y>0] - 1" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.5" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(y)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn import linear_model\n", "\n", "lg = linear_model.LogisticRegression()\n", "probability = lg.fit(X, y).predict_proba(X)[:, 1]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEWCAYAAAB42tAoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VNXWwOHfSk9IKEkAkd6kN4kIooB0ARXbFfXi1YsF\nEVRQRAREUSyooAgSrHxer2K7CEoTEERUqgJKr0IQ6SShJKSs748zhCGkDJDJpKz3eXiY09fZmZk1\nZ+9z9hZVxRhjjMmOn68DMMYYU7BZojDGGJMjSxTGGGNyZInCGGNMjixRGGOMyZElCmOMMTmyRFEE\niMhdIvKdr+PwNRGpIiLHRMQ/H49ZTURURALy65jeJCLrRKTdBWxXZN+DItJOROJ8HYcvWaLIYyKy\nU0ROur6w/haRKSIS7s1jqup/VbWzN49RELnKuuPpaVXdparhqprmy7h8xZWwal3MPlS1gaouyuU4\n5yTH4voeLC4sUXjH9aoaDjQFmgFDfRzPBfHlr+Si8gv9fFh5m4LKEoUXqerfwFychAGAiASLyGsi\nsktE9olIrIiEui2/UURWi0iCiGwTka6u+aVE5H0R2Ssie0TkhdNVLCJyj4gscb2OFZHX3OMQkeki\nMsj1+lIR+UpEDojIDhF5xG29Z0XkSxH5WEQSgHsyn5Mrjo9c2/8pIsNFxM8tjp9E5C0RiReRjSLS\nIdO2OZ3DTyIyTkQOA8+KSE0R+V5EDonIQRH5r4iUdq3/H6AK8I3r6u3JzL90RWSRiDzv2m+iiHwn\nItFu8dztOodDIjIi8xVKpvMOFZHXXevHi8gS978bcJfrb3pQRIa5bddCRH4RkaOu854gIkFuy1VE\nHhaRLcAW17w3RWS36z2wSkSucVvfX0Sedr03El3LK4vIYtcqa1zlcbtr/R6u99NREflZRBq77Wun\niAwRkbXAcREJcC8DV+wrXXHsE5Gxrk1PH+uo61it3N+Drm0biMg8ETns2vbpbMo128+DK7albn/P\nh8SpGgtxTX8hzlV7vIgsFpEGbvudIiJvi8hsV4w/icglIvKGiBxxvTebZSqLoSKy3rX8w9PHySLm\nbD9DRZaq2r88/AfsBDq6XlcCfgfedFv+BjADiAQigG+Al1zLWgDxQCecJF4RqOta9jUwGSgBlAOW\nAw+6lt0DLHG9bgPsBsQ1XQY4CVzq2ucq4BkgCKgBbAe6uNZ9FkgBerrWDc3i/D4CprtirwZsBvq4\nxZEKDAQCgdtd5xPp4TmkAgOAACAUqOUqi2CgLM4X1BtZlbVruhqgQIBrehGwDbjMtb9FwMuuZfWB\nY8DVrrJ4zXXuHbP5u050bV8R8AeucsV1+pjvuo7RBEgG6rm2aw60dJ1TNWAD8JjbfhWYh/N+CHXN\n+ycQ5drmceBvIMS1bDDOe6oOIK7jRbntq5bbvi8H9gNXumL+l6vMgt3KbzVQ2e3YGWUK/AL0dr0O\nB1pmVc5ZvAcjgL2u2ENc01dmU645fR78XH/zZ4HawBGgmdu2/3ZtE+zaz2q3ZVOAg67yDwG+B3YA\nd7vK4gVgYab30h+usogEfgJecC1rB8S5xZTtZ6io/vN5AEXtn+sNdwxIdH2YFgClXcsEOA7UdFu/\nFbDD9XoyMC6LfZbH+fIJdZt3x+k3eqYPqQC7gDau6fuB712vrwR2Zdr3UOBD1+tngcU5nJu/K476\nbvMeBBa5xfEXriTlmrcc6O3hOezK7tiudXoCv2Uq69wSxXC35f2AOa7XzwCfui0LA06RRaJwfTmc\nBJpksez0MStlOude2ZzDY8A0t2kF2udy3kdOHxvYBNyYzXqZE8Uk4PlM62wC2rqV37+zeP+eThSL\ngeeA6GzOObtEcYf73ymH88rx8+B2rMM4CXZoDvsq7YqplGt6CvCu2/IBwAa36UbA0Uzn3ddtuhuw\nzfW6HWcSRY6foaL6z+olvaOnqs4XkbbAJ0A0cBTnV3EYsEpETq8rOF/A4PyamZXF/qri/ELf67ad\nH86Vw1lUVUVkKs6HdTFwJ/Cx234uFZGjbpv4Az+6TZ+zTzfROL+i/nSb9yfOr+zT9qjr0+O2/FIP\nz+GsY4tIOWA8cA3OL0c/nC/N8/G32+sTOL+MccWUcTxVPSEih7LZRzTOr9Jt53scEbkMGAvE4Pzt\nA3B+kbrLfN6PA/e5YlSgpCsGcN4jOcXhrirwLxEZ4DYvyLXfLI+dSR9gFLBRRHYAz6nqtx4c19MY\nc/s8oKo7RWQhzhf3xIyVnCrL0cBtrv2kuxZF41zFAuxzO9bJLKYz32TiXhan37eZefIZKnKsjcKL\nVPUHnF82p9sMDuK8QRuoamnXv1LqNHyD80atmcWuduP8Go92266kqjbIYl2AT4FbRaQqzi+gr9z2\ns8NtH6VVNUJVu7mHncMpHcSpnqnqNq8KsMdtuqK4fepdy//y8BwyH/sl17zGqloSp0pGclj/fOzF\nqRoEnDYInOqerBwEksj6b5ObScBGoLbrHJ7m7HMAt/NwtUcMAf4BlFHV0jhffKe3ye49kpXdwOhM\nf+8wVf00q2NnpqpbVPUOnGrCV4AvRaRETtucZ4y5fR4QkW44VxkLgFfdtr0TuBHoCJTCufKAc8v2\nfFR2e336fZuZJ5+hIscShfe9AXQSkaaqmo5Tlz3O9WsZEakoIl1c674P3CsiHUTEz7WsrqruBb4D\nXheRkq5lNV1XLOdQ1d+AA8B7wFxVPf3rZzmQ4GokDHU1jDYUkSs8ORF1bjv9HBgtIhGuRDSIM1cs\n4HypPCIigSJyG1APmHW+5+ASgVONd1REKuLUz7vbh1NHfCG+BK4XkavEaVx+jmy+ZFx/tw+Asa6G\nTH9XA26wB8eJABKAYyJSF3jIg/VTcf5+ASLyDM4VxWnvAc+LSG1xNBaR0wkuc3m8C/QVkStd65YQ\nke4iEuFB3IjIP0WkrOv8T7+H0lyxpZN92X8LXCIij7kaqyNE5MrMK+X2eRDnxoP3ca6u/oXz9zr9\nhRyB88PjEM5VyYuenFMuHhaRSiISiZPQP8tinYv6DBVWlii8TFUP4DQAj3DNGgJsBZaKc2fRfJyG\nSVR1OXAvMA7nV+QPnPn1fjdOtcF6nOqXL4EKORz6U5xfW5+4xZIGXI9zF9YOnF907+H8IvPUAJx6\n5e3AEtf+P3Bbvgyn4fEgTtXArap6ukrnfM/hOZwG2XhgJvC/TMtfAoaLc0fPE+dxDqjqOte5TMW5\nukjEafhNzmaTJ3AakVfg1Jm/gmefnydwfv0m4nwpZvXl424uMBvnJoE/ca5k3KtExuIk6+9wEtD7\nOI3o4LQx/Z+rPP6hqitx2qgm4JT3VrK4ky0HXYF1InIMeBOn3SVJVU/g/G1/ch2rpftGqpqIcxPC\n9ThVcluAa7M5RrafB+AdYLqqznK9h/oA77kS40eu8tmD835aeh7nlZ1PcMp1u+vfC5lXyKPPUKFz\n+s4YYy6aiNwD3KeqV/s6lvMlzkORR3GqiHb4Oh6Tv0RkJ857d76vYymI7IrCFFsicr2IhLnq3V/D\nuWLY6duojCl4LFGY4uxGnAbLv3Cqy3qpXWIbcw6rejLGGJMju6IwxhiTo0L3wF10dLRWq1bN12EY\nY0yhsmrVqoOqWvZCti10iaJatWqsXLnS12EYY0yhIiJ/5r5W1qzqyRhjTI4sURhjjMmRJQpjjDE5\nskRhjDEmR5YojDHG5MgShTHGmBx5LVGIyAcisl9E/shmuYjIeBHZKiJrReRyb8VijDHmwnnzimIK\nTjfF2bkOp3+d2sADOAO8GGOMyUspJzi1aeZF7cJriUJVF+P025+dG4GP1LEUKC0iOY1NYIwx5jwN\nfnwW3a7//KL24cs2ioqcPSBLHGePvZxBRB4QkZUisvLAgQP5EpwxxhQFDeuV5sftVS5qH75MFFkN\nO5llV7aq+o6qxqhqTNmyF9RViTHGFAvr1x/g44/XZkzffUdNNg2ZcFH79GVfT3GcPZh5JbIezNwY\nY7KmCvHbQdN9HYnPnTiRyguv/8Grb23A319oWS+VWjUikMQ4qkUezX0HOfBlopgB9BeRqcCVQLyq\n7vVhPMaYwua7++GP930dhc/N3lCLh6d1Z8fhMgD0iVlB1KwXISwpT/bvtUQhIp8C7YBoEYkDRgKB\nAKoaC8wCuuEMrH4CuNdbsRhjiqhDrrvvwytCQKhvY/GBPUdCeWxqDF+uqgpA40pHiO29jFY1D+JU\n0rjbesHH8VqiUNU7clmuwMPeOr4xphi5/ku4tKWvo8h3D/ecyvRVmwgLC2TUqHY8+mhLAgKyaXq+\nL6tmYc8UuvEojDHFUHZDNhfDoZxTU9MzksErr3QkMNCf11/vTJUqpbx2TEsUxpiCbfcPMK0HpBzz\ndSQ+FR+fxPDh37N582HmzLkLEaFOnWi++OI2rx/bEoUxpmD766eck0Sp6hBVL//iyWeqyhdfrOex\nx+awd+8x/P2F1av/plmz/Hs+2RKFMaZwaDEUrnnR11Hkq23bDtO//2zmzHEaolu1qkRsbA8aNy6f\nr3FYojDGmALotdd+ZsSIhSQlpVK6dAivvNKR++67HD+/C2+UvlCWKIwx52/nd/DzSDiZD13qJOXU\nZVzRdeJECklJqfTu3ZjXXutMuXIlfBaLJQpjjOeO7YVFA2HTZ/l/7OiG+X/MfHTgwHE2bTrE1Vc7\n/TINGdKadu2q0aZNVR9HZonCGOOJ9DRYEwtLnoZTCc7Dba2ehdo3kXW3bXkssASEF83OpdPTlQ8+\n+I0nn5xHQIAfGzf2JzIylODggAKRJMAShTEmN/t+hfl94e8VznSN7tB+ApSq5tOwioI//thP377f\n8tNPTkfanTrV4MSJFCIjC9ZT5pYojCnu/loKy16E9FPnLktPgd2LnE73witC+7egVk+Q/G9QLUqO\nHz/FqFE/MHbsUlJT0ylfvgRvvNGV229vgBTAsrVEYUxxt3oibP8m++XiB80HwlXPQVBE/sVVhN16\n6xfMmbMVEejXL4bRoztQunSIr8PKliUKY4q79FTn/yuGQOV25y4vUxtK18zXkIq6IUNas2/fMSZN\n6s6VV2buvK/gsURhjHGUbQLVcxrm3lyI1NR03nprGTt3HuXNN68DoF27aqxc+YBPnom4EJYojCkO\nUk7CylfhxP5zl+1bmf/xFBPLl+/hwQe/ZfXqvwF44IHmNGhQDqDQJAmwRGFM8bBzrvOAXE5CyuRP\nLMXA0aNJPP30AmJjV6IKVauWYsKEbhlJorCxRGFMcZB60vm/3OXQMIsxwsLKQdVO+RtTETV16h88\n9tgc9u07TkCAH48/3ooRI9pQokSQr0O7YJYojClOylwGzfr7Oooi7bvvtrFv33Fat67MpEndadQo\nfzvw8wZLFMYYcxGSk1PZsyeRGjWcqrsxYzpxzTVV+Ne/mhaqdoicZDNmnjHGmNx8//0OGjeOpXv3\nTzh1Kg2A6Ogw7r23WZFJEmCJwhhjztu+fcfo3XsaHTp8xObNhwCIi0vwcVTeY1VPxhjjofR05d13\nV/HUUws4ejSJkJAAhg+/hsGDWxMU5O/r8LzGEoUxxnjopps+Y8aMTQB06VKTiRO7UbNmpI+j8j6r\nejKmqDu0Hn57y3kt9pG/GDffXJdLLgnns89uZfbsu4pFkgC7ojCm6Eo5AUtfcJ7ITk91npVo/ICv\noypUZszYRFxcAv36XQHA3Xc34eab6xEREezjyPKXJQpjiqLts2DBw5Cw05lu/CBc85I9fe2hXbvi\neeSR2UyfvongYH+6dq1FjRplEJFilyTAEoUx3peWAvE7APX+sVJPwrLRsPlLZ7psY+gYC5e28v6x\ni4CUlDTGj1/GyJGLOH48hYiIIF54oT1Vq5bydWg+ZYnCGG/a9g0s6A+Ju/L3uIElnPEjLn8U/Oxj\n7omlS+N48MFvWbt2HwC33VafceO6ULFiSR9H5nv2DjLGGxJ2w8JHYes0Z7pEhfwb9Kd8c7jmZShZ\nJX+OV0SMGLGQtWv3Ub16aSZM6Ea3brV9HVKBYYnCmLyUnurcYfTTM5ByDALDofXzTv9K9su+QFFV\nEhNPUbKk0+YwYcJ1fPTRGoYNa0NYWKCPoytY7J1rTF7ZuwzmPQgH1jjTtW+Ba9+AiII/gllxs2nT\nQfr1m4UIzJvXGxGhTp1oRo/u4OvQCiRLFMZcrKSjsORpWBMLKJSsBh0mQI3uvo7MZJKUlMpLL/3I\nyy//xKlTaURFhbJz51GqV7e7wXJiicKYC6UKG6fCooFwYp9TtRTzBLQcAYFhvo7OZDJv3jb69ZvF\n1q2HAfj3v5syZkwnoqLsb5UbryYKEekKvAn4A++p6suZllcB/g8o7VrnKVWd5c2YjMkTR7Y4zyn8\nOc+Zrni1cxtqdAPfxmXOoar06TODDz9cDUD9+mWJje3ONddU9XFkhYfXEoWI+AMTgU5AHLBCRGao\n6nq31YYDn6vqJBGpD8wCqnkrJmMuWmoyrHgFlr0IackQEgltXoWG91j3GAWUiFCtWmlCQwN45pm2\nDBrUqkh34OcN3ryiaAFsVdXtACIyFbgRcE8UCpy+SbkU8JcX4zEmdwm7YPEQ+HtZ1suTEyDJ6Vaa\nBvc4SSIsOt/CM55Zvfpv9u5N5LrrnFtchwxpTe/eja0t4gJ5M1FUBHa7TccBV2Za51ngOxEZAJQA\nOma1IxF5AHgAoEoVuzfceEFaCvw2Hn4eCSnHc143sh50nASV2+ZPbMZjiYnJjBy5iDffXEZUVCgb\nN/YnMjKU4OAASxIXwZuJIqvhnTL3YXAHMEVVXxeRVsB/RKShqqaftZHqO8A7ADExMfnQD4IpVv5a\nCvMfhANrnenLboWWzzhPN2cmAiWrWjVTAaOqfP31Rh55ZA5xcQn4+Ql33tmIwED7O+UFbyaKOKCy\n23Qlzq1a6gN0BVDVX0QkBIgG9nsxLmMcSUfgx6Gw9h3O3NY6EWp083Vk5jz8+edR+vefzbffbgYg\nJuZSJk/uweWXV/BxZEWHNxPFCqC2iFQH9gC9gDszrbML6ABMEZF6QAhwwIsxmeLk1DHnzqTje7Ne\nvn81nDzguq11MLQcbre1FjKqyi23fM6qVXspWTKYF19sT9++Mfj725VEXvJaolDVVBHpD8zFufX1\nA1VdJyKjgJWqOgN4HHhXRAbiVEvdo6pWtWTyxu5FsP6jnNepeI3T3mC3tRYq6emKn58gIrz2Wmdi\nY1cyblwXKlTIp/60ihkpbN/LMTExunLlSl+HYQqDrdNhek+o0NLpSTWzoAiocKW1NxQihw6d4Kmn\n5gPw7rs3+DiawkVEVqlqzIVsa09mm6IvrBxU6+zrKMxFUFU++mgNTzwxj4MHTxAU5M/Ike2oVMm6\nAM8PlihM4fDnfOcKQdM83yZ+h/fiMflmw4YDPPTQTH744U8A2rWrxqRJ3S1J5CNLFKZgO7bX6Utp\n02cXvo+QyLyLx+QbVeWZZxbyyis/kZKSTnR0GK+/3pnevRsjktXd98ZbLFGYgik9DdZOdm5fPZUA\nAaHQfCCEVzy//fgFQq0bvROj8SoRYc+eRFJS0rn//st5+eWOREaG+jqsYskShSl49v0K8/vC3yuc\n6Rrdof0EKFXNp2EZ7/vrr0QOHjxB48blARgzphN9+jSjdWvrkcGXLFGY3G37Fo5szp9jHd3iPACn\n6c7VQ/u3oFZP54loU2SlpaUzadJKhg37nooVI1i9ui9BQf5ER4cRHW1JwtcsUZicJfwJX1+fv8cU\nP6ea6arn8m+caeMzv/66lwcf/JaVK52OG9q0qUpCQjLR0fbwY0HhUaIQkSCgiqpu9XI8pqBJjnf+\nD4mCBnd7/3h+gVCnF5Rv5v1jGZ9KSEhmxIjvmTBhBenpSqVKJRk/vis9e9a1xuoCJtdEISLdgbFA\nEFBdRJoCI1X1Jm8HZwqQ8Euh3VhfR2GKCFWlTZsPWbNmH/7+wqBBLXn22XZERAT7OjSTBU8eSR2F\n0z34UQBVXQ3U8mZQxpiiTUQYOLAlLVpUZOXKB3j99S6WJAowT6qeUlT1aKZLwcLV74cxxqdOnUpj\n7Nhf8PcXBg9uDcDddzfhn/9sbB34FQKeJIoNIvIPwM/VE+yjwFLvhmWMKSp+/PFP+vadyfr1BwgO\n9ufuu5tQvnw4IoK/v7VFFAaepPL+QHMgHfgfkISTLIwxJlsHD57g3/+eTps2U1i//gC1a0fy7bd3\nUr58uK9DM+fJkyuKLqo6BBhyeoaI3IyTNIwx5iyqypQpqxk8eB6HDp0kKMifoUOv5qmnriYkxO7I\nL4w8uaIYnsW8YXkdiDGm6Pj44985dOgk7dtXZ+3avjz7bDtLEoVYtn85EemCM0xpRRFxvy+yJE41\nlDHGAHDiRArx8UlUqBCBiPD2291YseIv7rqrkT0TUQTklOL3A3/gtEmsc5ufCDzlzaCMMYXH7Nlb\nePjhWdSoUYZ583ojItSpE02dOtG+Ds3kkWwThar+BvwmIv9V1aR8jMkYUwjs2ZPAY4/N5csv1wMQ\nERHMoUMnreuNIsiTSsOKIjIaqA+EnJ6pqpd5LSpjTIGVlpbOxIkrGD78exITT1GiRCCjRl3LI49c\nSUCAPRNRFHmSKKYALwCvAdcB92JtFMYUS+npStu2U/jpp90A9OxZlzff7EqVKqV8HJnxJk/Sf5iq\nzgVQ1W2qOhy41rthGWMKIj8/oXPnmlSuXJLp03sxbdrtliSKAU+uKJLFuW1hm4j0BfYA5bwbljGm\nIFBVPv98HQEBftxyS30AhgxpzaBBrQgPD/JxdCa/eJIoBgLhwCPAaKAU8G9vBmWM8b1t2w7Tr98s\nvvtuG2XLhtG+fXXKlAklODiAYOu/r1jJNVGo6jLXy0SgN4CIVPJmUMYY30lOTuXVV39m9OgfSUpK\npUyZEEaPbk+pUiG5b2yKpBwThYhcAVQElqjqQRFpgNOVR3vAkoUxRcyiRTt56KGZbNx4EIDevRvz\n2mudKVeuhI8jM76UbWO2iLwE/Be4C5gjIsOAhcAawG6NNaaISUtLp18/J0nUqRPF99/fzUcf3WRJ\nwuR4RXEj0ERVT4pIJPCXa3pT/oRmjPG29HQlKSmVsLBA/P39mDSpO4sX/8mTT7YmONj6ZjKOnN4J\nSap6EkBVD4vIRksSxhQdv/++j759Z1K3bhTvv38jAG3bVqNt22q+DcwUODklihoicrorcQGquU2j\nqjd7NTJjjFccP36KUaN+YOzYpaSmprNjxxGOHDlJmTKhvg7NFFA5JYpbMk1P8GYgxhjv++abTfTv\nP5tdu+IRgX79Yhg9ugOlS9sdTSZ7OXUKuCA/AzHGeE9qajq33/4l//vfBgCaNr2EyZN70KJFRR9H\nZgoDa60yphgICPCjVKlgwsODeP75a+nfv4V14Gc85tV3ioh0FZFNIrJVRLIcw0JE/iEi60VknYh8\n4s14jClOli2LY9myuIzpV1/txIYND/PYYy0tSZjz4vEVhYgEq2ryeazvD0wEOgFxwAoRmaGq693W\nqQ0MBVqr6hERsT6kjLlIR48mMXTofCZPXkXdutGsXt2XoCB/oqJsnAhzYXL9WSEiLUTkd2CLa7qJ\niLzlwb5bAFtVdbuqngKm4jyb4e5+YKKqHgFQ1f3nFb0xJoOq8sknv1O37gRiY1fh7+/HDTfUIS3N\nRgUwF8eTK4rxQA/gawBVXSMinnQzXhHY7TYdB1yZaZ3LAETkJ8AfeFZV53iwb2OMmy1bDtGv3yzm\nz98OQOvWlYmN7UHDhnaRbi6eJ4nCT1X/zDRAepoH22U1orpmcfzaQDucvqN+FJGGqnr0rB2JPAA8\nAFClShUPDm1M8ZGSkkb79h8RF5dAZGQoY8Z05N57m+Hnl9VH0Jjz50mi2C0iLQB1tTsMADZ7sF0c\nUNltuhJONyCZ11mqqinADhHZhJM4VrivpKrvAO8AxMTEZE42xhRLqoqIEBjoz+jR7Vm4cCdjxnSk\nbFnrm8nkLU8SxUM41U9VgH3AfNe83KwAaotIdZzBjnoBd2Za52vgDmCKiETjVEVt9yx0k6dOHIC/\nfj53fsLOfA/F5GzfvmM88cQ8LrsskhEj2gJw991NuPvuJj6OzBRVniSKVFXtdb47VtVUEekPzMVp\nf/hAVdeJyChgparOcC3rLCLrcaqzBqvqofM9lskDX18Pe5dlv9wvMP9iMVlKT1fefXcVTz21gKNH\nkyhdOoTHHmtJRISNImS8y5NEscJVJfQZ8D9VTfR056o6C5iVad4zbq8VGOT6Z3zp2F7n/yodITDz\nbZQCjfrke0jmjDVr/qZv35ksXeo8F9G1ay0mTuxmScLkC09GuKspIlfhVB09JyKrgamqOtXr0Zn8\n1+U9KFnV11EYl5SUNIYOXcAbbywlLU2pUCGcN9/syq231ifTDSbGeI1Hj2eq6s+q+ghwOZCAM6CR\nMcbLAgL8+O23v0lPVwYMaMGGDQ9z220NLEmYfJXrFYWIhOM8KNcLqAdMB67yclzGFFu7dsWTlpZO\n9eplEBFiY7sTH59MTMylvg7NFFOetFH8AXwDjFHVH70cjzHFVkpKGm++uYyRIxfRqlUl5s3rjYhQ\nu3aUr0MzxZwniaKGqlofAMZ40S+/7KZv35msXbsPgMjIUE6cSKFEiSAfR2ZMDolCRF5X1ceBr0Tk\nnIfcbIQ7Yy7ekSMneeqp+bzzzq8AVK9emokTu3HddbV9HJkxZ+R0RfGZ638b2c4YL0hOTqVp08ns\n2hVPYKAfgwdfxbBhbQgLs2dWTMGS0wh3y10v66nqWcnC9SCdjYBnzEUIDg6gT59mLFiwg0mTulO/\nfllfh2RMljy5PfbfWcyzp6+MOU9JSamMHLmQTz75PWPe009fw6JF/7IkYQq0nNoobse5Jba6iPzP\nbVEEcDTrrYwxWZk3bxv9+s1i69bDlCtXgptuqktoaKCNNGcKhZzaKJYDh3B6fZ3oNj8R+M2bQRlT\nVPz99zEGDZrLp5/+AUCDBmWJje1BaKi1Q5jCI6c2ih3ADpzeYo0x5yEtLZ3Jk1fx9NMLiI9PJjQ0\ngJEj2zJwYCuCgvx9HZ4x5yWnqqcfVLWtiBzh7AGHBKc/v0ivR2dMIZWWprz11nLi45Pp1q02EyZc\nR/XqZXxiehzcAAAgAElEQVQdljEXJKeqp9PDnUbnRyDGFHaJicmkpSmlS4cQFOTPu+9ez759x7j5\n5nrWN5Mp1LJtSXN7Grsy4K+qaUAr4EHAhtAyxkVV+d//NlCv3kQef3xuxvyrr67CLbdYL6+m8PPk\nlouvcYZBrQl8hNMx4CdejcqYQmLnzqPccMNUbrnlc/bsSeSPPw6QlJTq67CMyVOeJIp015jWNwNv\nqOoAoKJ3wzKmYEtJSeOVV5ZQv/5Evv12MyVLBjNhwnX8/PO/CQnxpAs1YwoPj4ZCFZHbgN5AT9c8\nu7fPFFsnTqTQsuV7/P77fgB69WrI2LGdqVAhwseRGeMdniSKfwP9cLoZ3y4i1YFPvRuWMQVXWFgg\nMTGXcuJECm+/3Z3OnWv6OiRjvMqToVD/EJFHgFoiUhfYqqqjvR+aMQWDqvLRR2uoWTOSq6+uAsC4\ncV0ICvK3B+dMseDJCHfXAP8B9uA8Q3GJiPRW1Z+8HZwxvrZhwwEeemgmP/zwJ/XqRbN6dV+Cgvwp\nVSrE16EZk288qXoaB3RT1fUAIlIPJ3HEeDMwY3zp5MkURo/+kTFjfiIlJZ2yZcMYOvRqAgOtbyZT\n/HiSKIJOJwkAVd0gIjbsVmGj6bB3Gfz1C6Rncfvmqfj8j6mAmjNnKw8/PIvt248AcP/9l/Pyyx2J\njAz1cWTG+IYnieJXEZmMcxUBcBfWKWDhkHISdi2AbdNh2zdwYl/u2wQU7y/DY8dO0bv3NA4ePEHD\nhuWIje1O69ZVfB2WMT7lSaLoCzwCPInTRrEYeMubQZmLcPIQbJ/pJIcdcyD1xJllJatBtS4QVDLr\nbcs2hrBy+RJmQZKWlk56uhIY6E94eBBvvtmVuLgEBg5sSWCgdeBnTI6JQkQaATWBaao6Jn9CMuft\n6HYnMWydDnuWgKadWVbucqjVE2rdCNGNwLqTOMuqVX/x4IPfcuONdRgxoi0Ad97ZyMdRGVOw5NR7\n7NM4I9n9ClwhIqNU9YN8i8zk7Og2WDfFSQ4Hz4yYhl8AVOkENW+EmjdAyco+C7EgS0hIZsSI75kw\nYQXp6UpCQjJPPXW1XUEYk4WcrijuAhqr6nERKQvMAixRFBSftYNjcc7roJJQ/TrnyqH6dRBcyqeh\nFWSqypdfrufRR+ewd+8x/P2FQYNa8txz11qSMCYbOSWKZFU9DqCqB0TE7gssSJIOOv/3/AaqdQZ/\nuxEtN4mJydx++5fMnr0VgCuvrEhsbA+aNr3Ex5EZU7DllChquI2VLUBN97GzVfVmr0ZmPFOlgyUJ\nD4WHB5GcnEapUsG8/HJHHnigOX5+1mZjTG5yShS3ZJqe4M1AjPGGxYv/pEKFcGrXjkJE+OCDGwgJ\nCaB8+XBfh2ZMoZHTmNkL8jMQY/LSwYMnePLJeXz44Wo6dKjOvHm9ERGqVi3t69CMKXSs43xTpKSn\nK1OmrGbw4HkcPnySoCB/rrmmCmlpSkCAVTMZcyG82kAtIl1FZJOIbBWRp3JY71YRURGx/qPMBVu3\nbj/t2k2hT58ZHD58kg4dqvP77w8xcmQ7AgLsXgxjLpTHVxQiEqyqyeexvj8wEegExAErRGSGe79R\nrvUicJ78Xubpvo3JLD4+iZYt3+fYsVOUK1eCsWM7c+edjWy8amPyQK4/s0SkhYj8DmxxTTcREU+6\n8GiBM3bFdlU9BUwFbsxiveeBMUCS52Eb41BVAEqVCmHIkNb07ducjRsf5q67GluSMCaPeHI9Ph7o\nARwCUNU1wLUebFcR2O02HUemsbZFpBlQWVW/zWlHIvKAiKwUkZUHDhzw4NCmqNuzJ4Fbb/2cjz9e\nmzFv2LBrmDSpB2XKFO+ODY3Ja54kCj9V/TPTvLQs1zxbVj/nNGOh8wDfOODx3Hakqu+oaoyqxpQt\nW9aDQ5uiKjU1nTffXErduhP56qsNjBy5iLS0dAC7gjDGSzxpo9gtIi0AdbU7DAA2e7BdHODe0VAl\n4C+36QigIbDI9QG/BJghIjeo6kpPgjfFy4oVe+jbdya//roXgJ496zJ+fFf8/a2h2hhv8iRRPIRT\n/VQF2AfMd83LzQqgtohUxxlGtRdw5+mFqhoPRJ+eFpFFwBPFKkmowoaPYfnLkHyeAwelFp8mnePH\nTzFkyHzefnsFqlClSineeus6brihjq9DM6ZYyDVRqOp+nC/586KqqSLSH5gL+AMfqOo6ERkFrFTV\nGecdbVFyaCMseAh2L7rwfUTVh4DgPAupoAoI8GP+/O34+QmDBrVi5Mi2lChh3ZYYk1/k9F0j2a4g\n8i5ubQunqeoD3goqJzExMbpyZSG+6Eg5CctfhOWvQHoKhEZDm1ehasfz31dYefAPzPsYC4Bt2w5T\nunQIUVFhgFPtFBISQKNG5X0cmTGFk4isUtULelbNk6qn+W6vQ4CbOPtuJuOpnd/Bgn7OWBIAje6D\na16G0CjfxlWAJCen8uqrPzN69I/cdVcj3nvvBgCuuKJiLlsaY7zFk6qnz9ynReQ/wDyvRVRUzb0P\n/njfeR3dEDrGQsXWvo2pgFm0aCcPPTSTjRudLtRTU9NJS0u3xmpjfOxC+nqqDlTN60CKtFOJriQh\nzhVE84FFtsroQuzff5zBg+fx0UdrAKhTJ4pJk7pz7bXVfRyZMQY8SBQicoQzbRR+wGEg236bTBZO\ntwMFhUOLJ30bSwFz8OAJ6tWbyOHDJwkO9mfYsGt48snWBAdbf5XGFBQ5fhrFecChCc7trQDpmlvr\ntzHnITo6jBtvrENcXAJvv92dWrUifR2SMSaTHBOFqqqITFPV5vkVUJGUdsrXERQYx4+fYtSoH+je\n/TLatHFqMN9+uzvBwf72ZLUxBZQnrYTLReRyr0dSVO2cC59c6bwOivBtLD72zTebqF//bcaM+Zl+\n/WaSnu5cnIaEBFiSMKYAy/aKQkQCVDUVuBq4X0S2Acdx+nBSVbXkkZNjf8HCgbD5c2c6uiF0ft+3\nMfnI7t3xPProHKZN2whAs2aXMHlyDxuv2phCIqeqp+XA5UDPfIqlaEhPgzWTYMkwOJUAAaHQ6tli\neadTamo648cv45lnFnL8eArh4UG88MK1PPxwCxtIyJhCJKdEIQCqui2fYin89v0K8x6Efa4nx2v0\ngPZvQalqPg3LVxISknnppSUcP57CLbfU4403ulKpUklfh2WMOU85JYqyIjIou4WqOtYL8RROyQnw\n0whYPQE0HcIrQfvxUKsnFLO696NHkwgNDSA4OIDIyFAmT+5BcLA/3btf5uvQjDEXKKdE4Q+Ek/W4\nEgac5yO2fAULH3XaJMQfmg+Cq54tdg3Xqsqnn/7BwIFz6d//CkaMaAvAzTfX83FkxpiLlVOi2Kuq\no/ItksImfgcseBh2zHamL2kBnSZDuaa+jcsHNm8+RL9+M1mwYAcAixfvQlXtTiZjiohc2yhMJulp\nsGIMLH0eUk9CcCmnW45G94Ofv6+jy1dJSam88soSXnxxCadOpREZGcqrr3binnuaWpIwpgjJKVF0\nyLcoCpP1/4ElTzuv694J7V6HEpf4NiYf+PvvY7Rp8yFbthwG4J57mvLqq52Ijg7zcWTGmLyWbaJQ\n1cP5GUihkeQqlsYPOFVNxVT58iWoXLkUAQF+TJrUnbZtq/k6JGOMl1jPaxcqsISvI8hX6enKu++u\n4tprq3PZZVGICJ98cjNlyoQSFFS8qtyMKW7sqSeTqzVr/qZ16w/o23cm/frN5HS/kOXLh1uSMKYY\nsCuK85Xwp+tF0W+sPXbsFM8+u4g33lhKWppy6aUR9O17QSMpGmMKMUsU52Pbt/DbW4A4T10XYV9/\nvZEBA2YTF5eAn58wYEALXnihPSVLBvs6NGNMPrNE4alDG2HWnYBC6xegyrW+jshr9uxJoFevL0lO\nTqN58wrExvYgJuZSX4dljPERSxSeSDoK0290hjS97Fa48mlfR5TnUlLSCAjwQ0SoWLEko0e3JyjI\nn379rrAxq40p5uwbIDfpaTDrLjiyGaIbQZcPi1z/TT//vJvmzd/h44/XZsx7/PGrGDDgSksSxhhL\nFLn6aQTsmAUhkdBzujPudRFx+PBJHnzwG1q3/oDff9/P22+vxEa6NcZkZlVPOdn0OSx/yensr8fn\nUKq6ryPKE6rKxx+v5fHHv+PAgRMEBvrx5JOtGTbsGut6wxhzDksU2dm/Bubc67xu+xpULRo9muzb\nd4w77viKhQt3AtC2bVUmTepOvXplfRuYMabAKhqJ4tQx+LITJOzMu30mxzud/jX4F1z+aN7t18dK\nlw5h795jREeH8dprnbj77iZ2FWGMyVHRSBQH1sDepXm/38rXQsfYQt94PW/eNi6/vAJRUWEEBwfw\nxRe3UaFCOFFR1oGfMSZ3RSNRnFY+BnrOyJt9iUBY+UKdJPbuTWTQoO+YOvUP+vRpxnvv3QBAw4bl\nfByZMaYwKVqJwj8Iwiv4OgqfS0tLZ/LkVQwduoCEhGRCQwOoUyfKBhMyxlyQwpcoDm+CqW3Onncq\n3jexFEC//rqXvn2/ZcWKvwDo3r02EyZ0o1q10j6OzBhTWBW+RJFyDPb8mPWyklXzN5YCZufOo7Ro\n8S5paUrFihGMH38dN91U164ijDEXxauJQkS6Am8C/sB7qvpypuWDgPuAVOAA8G9V/fOcHWXWc4Yz\nBOlZ/OCSK/Ik7sKqWrXS3HtvUyIignnuuXZERFgHfsaYiyfeehJXRPyBzUAnIA5YAdyhquvd1rkW\nWKaqJ0TkIaCdqt6e035jKouu3HwQQqO8EndhsnPnUQYMmM0TT7TKGGHO2iGMMVkRkVWqekHjBHjz\niqIFsFVVtwOIyFTgRiAjUajqQrf1lwL/9GI8RUZKShpjx/7Cc8/9wMmTqRw8eIJffukDYEnCGJPn\nvNnXU0Vgt9t0nGtedvoAs7NaICIPiMhKEVmZh/EVSkuW7KJZs8k89dQCTp5MpVevhvzvf//wdVjG\nmCLMm1cUWf20zbKeS0T+CcQAbbNarqrvAO+AU/WUVwEWJkeOnGTw4Hm8//5vANSsWYa33+5O5841\nfRyZMaao82aiiAMqu01XAv7KvJKIdASGAW1VNdmL8RRq6enK9OmbCAz046mnrmbo0KsJDQ30dVjG\nmGLAm4liBVBbRKoDe4BewJ3uK4hIM2Ay0FVV93sxlkJp48aDVK9emuDgAKKiwvjvf2+mSpVS1K0b\n7evQjDHFiNfaKFQ1FegPzAU2AJ+r6joRGSUiN7hWexUIB74QkdUikkf9bxRuJ06kMGzYAho3nsSY\nMT9lzO/cuaYlCWNMvvPqcxSqOguYlWneM26vO3rz+IXRnDlb6ddvJjt2HAXg4METPo7IGFPcFb4n\ns4uov/5K5LHH5vDFF87dw40alSM2tgdXXVU5ly2NMca7LFEUAJs3HyIm5h0SE08RFhbIs8+25bHH\nWhIY6O/r0IwxxhJFQVC7diRXXFGREiUCeeut66ha1TrwM8YUHJYofCAhIZlnnllIv35XcNllUYgI\nM2b0okSJIF+HZowx57BEkY9UlS+/XM+jj85h795jbNx4kDlznF5LLEkYYwoqSxT5ZPv2I/TvP4vZ\ns7cC0LJlJV55xW76MsYUfJYovOzUqTRee+1nnn9+MUlJqZQuHcLLL3fg/vub4+dnHfgZYwo+SxRe\ntnt3PKNG/UBychp33dWI11/vTPny4b4OyxhjPGaJwguOHDlJ6dIhiAg1a0by5ptdqVUrkg4davg6\nNGOMOW/e7Ga82ElPVz744Ddq1XqLjz9emzH/wQdjLEkYYwotSxR5ZN26/bRrN4U+fWZw+PDJjEZr\nY4wp7Kzq6SKdOJHC88//wGuv/UJqajrlypVg3Lgu3HFHQ1+HZowxecISxUXYvPkQXbp8zM6dRxGB\nvn2b8+KLHShTJtTXoRljTJ6xRHERqlYtRUhIAE2alCc2tgctW1bydUimAElJSSEuLo6kpCRfh2KK\nkZCQECpVqkRgYN4NbGaJ4jykpqYTG7uSO+5oSFRUGMHBAcyZcxcVK5YkIMCae8zZ4uLiiIiIoFq1\naojYMzPG+1SVQ4cOERcXR/Xq1fNsv/bt5qHly/fQosW7DBgwmyFD5mfMr1q1tCUJk6WkpCSioqIs\nSZh8IyJERUXl+VWsXVHkIj4+iWHDvuftt1egClWqlOLGG+v4OixTSFiSMPnNG+85SxTZUFU++2wd\nAwfO5e+/jxEQ4MegQS155pm21oGfMaZYsTqTbKxZs4877viKv/8+xlVXVebXXx/glVc6WZIwhYq/\nvz9NmzalYcOGXH/99Rw9ejRj2bp162jfvj2XXXYZtWvX5vnnn0dVM5bPnj2bmJgY6tWrR926dXni\niSd8cQo5+u2337jvvvt8HUaOXnrpJWrVqkWdOnWYO3dulutcc801NG3alKZNm3LppZfSs2dPAKZP\nn07jxo1p2rQpMTExLFmyBIADBw7QtWvXfDsHVLVQ/WteCdUTB9UbUlPTzpoeOHCOvvvuKk1LS/fK\n8UzRtn79el+HoCVKlMh4fffdd+sLL7ygqqonTpzQGjVq6Ny5c1VV9fjx49q1a1edMGGCqqr+/vvv\nWqNGDd2wYYOqqqakpOjEiRPzNLaUlJSL3sett96qq1evztdjno9169Zp48aNNSkpSbdv3641atTQ\n1NTUHLe5+eab9f/+7/9UVTUxMVHT053vnzVr1midOnUy1rvnnnt0yZIlWe4jq/cesFIv8HvXqp5c\nFi7cQb9+s5g8uQdt2lQFYOzYLj6OyhQZr3upreJxzX0dl1atWrF2rdO1zCeffELr1q3p3LkzAGFh\nYUyYMIF27drx8MMPM2bMGIYNG0bdunUBCAgIoF+/fufs89ixYwwYMICVK1ciIowcOZJbbrmF8PBw\njh07BsCXX37Jt99+y5QpU7jnnnuIjIzkt99+o2nTpkybNo3Vq1dTurQzqmOtWrX46aef8PPzo2/f\nvuzatQuAN954g9atW5917MTERNauXUuTJk0AWL58OY899hgnT54kNDSUDz/8kDp16jBlyhRmzpxJ\nUlISx48f5/vvv+fVV1/l888/Jzk5mZtuuonnnnsOgJ49e7J7926SkpJ49NFHeeCBBzwu36xMnz6d\nXr16ERwcTPXq1alVqxbLly+nVatWWa6fmJjI999/z4cffghAePiZDkSPHz9+VvtDz549+e9//3tO\nuXhDsU8U+/cfZ/DgeXz00RoAxo79JSNRGFNUpKWlsWDBAvr06QM41U7Nmzc/a52aNWty7NgxEhIS\n+OOPP3j88cdz3e/zzz9PqVKl+P333wE4cuRIrtts3ryZ+fPn4+/vT3p6OtOmTePee+9l2bJlVKtW\njfLly3PnnXcycOBArr76anbt2kWXLl3YsGHDWftZuXIlDRue6QGhbt26LF68mICAAObPn8/TTz/N\nV199BcAvv/zC2rVriYyM5LvvvmPLli0sX74cVeWGG25g8eLFtGnThg8++IDIyEhOnjzJFVdcwS23\n3EJUVNRZxx04cCALFy4857x69erFU089dda8PXv20LJly4zpSpUqsWfPnmzLZtq0aXTo0IGSJUue\nNW/o0KHs37+fmTNnZsyPiYlh+PDhORV1nim2iSI9XXn//V8ZMmQ+R44kERzsz/DhbRg8+Cpfh2aK\novP45Z+XTp48SdOmTdm5cyfNmzenU6dOgFPlnN3dMedz18z8+fOZOnVqxnSZMmVy3ea2227D398f\ngNtvv51Ro0Zx7733MnXqVG6//faM/a5fvz5jm4SEBBITE4mIiMiYt3fvXsqWLZsxHR8fz7/+9S+2\nbNmCiJCSkpKxrFOnTkRGRgLw3Xff8d1339GsWTPAuSrasmULbdq0Yfz48UybNg2A3bt3s2XLlnMS\nxbhx4zwrHDirzee0nMr3008/PafN5aabbuKmm25i8eLFjBgxgvnzndvzy5Urx19//eVxLBejWCaK\nHTuO8M9/TuPnn3cD0LlzTSZO7EatWpE+jsyYvBUaGsrq1auJj4+nR48eTJw4kUceeYQGDRqwePHi\ns9bdvn074eHhRERE0KBBA1atWpVRrZOd7BKO+7zM9/SXKFEi43WrVq3YunUrBw4c4Ouvv874hZye\nns4vv/xCaGj23eGEhoaete8RI0Zw7bXXMm3aNHbu3Em7du2yPKaqMnToUB588MGz9rdo0SLmz5/P\nL7/8QlhYGO3atcvyeYTzuaKoVKkSu3fvzpiOi4vj0ksvzfJ8Dh06xPLlyzMSVWZt2rRh27ZtHDx4\nkOjoaJKSknIsn7xULO96KlkymM2bD3HJJeFMnXoLc+bcZUnCFGmlSpVi/PjxvPbaa6SkpHDXXXex\nZMmSjF+nJ0+e5JFHHuHJJ58EYPDgwbz44ots3rwZcL64x44de85+O3fuzIQJEzKmT1c9lS9fng0b\nNmRULWVHRLjpppsYNGgQ9erVy/j1nnm/q1evPmfbevXqsXXrmV6a4+PjqVixIgBTpkzJ9phdunTh\ngw8+yGhD2bNnD/v37yc+Pp4yZcoQFhbGxo0bWbp0aZbbjxs3jtWrV5/zL3OSALjhhhuYOnUqycnJ\n7Nixgy1bttCiRYss9/vFF1/Qo0cPQkJCMuZt3bo146rk119/5dSpUxlltHnz5rOq3ryp2CSKuXO3\nkpycCkBUVBgzZvRi48aHuf32hvZQlCkWmjVrRpMmTZg6dSqhoaFMnz6dF154gTp16tCoUSOuuOIK\n+vfvD0Djxo154403uOOOO6hXrx4NGzZk79695+xz+PDhHDlyhIYNG9KkSZOMX9ovv/wyPXr0oH37\n9lSoUCHHuG6//XY+/vjjjGongPHjx7Ny5UoaN25M/fr1iY2NPWe7unXrEh8fT2JiIgBPPvkkQ4cO\npXXr1qSlpWV7vM6dO3PnnXfSqlUrGjVqxK233kpiYiJdu3YlNTWVxo0bM2LEiLPaFi5UgwYN+Mc/\n/kH9+vXp2rUrEydOzKh269at21lVR1OnTuWOO+44a/uvvvqKhg0b0rRpUx5++GE+++yzjO+rhQsX\n0r1794uO0ROSVR1aQRZTWXTl5oMQGpX7yjhDkT7yyBy+/nojzz9/LcOHt/FyhMY4NmzYQL169Xwd\nRpE2btw4IiIiCvyzFN7Qpk0bpk+fnmW7UFbvPRFZpaoxF3KsIntFkZqaztixv1Cv3kS+/noj4eFB\nREZa99/GFCUPPfQQwcHBvg4j3x04cIBBgwZ5dPNAXiiSjdlLl8bRt++3rFmzD4BbbqnHm292pWLF\nkrlsaYwpTEJCQujdu7evw8h3ZcuWzXh6Oz8UuUSxbFkcV131PqpQrVppJky4ju7dL/N1WKaYyuk2\nVGO8wRvNCUUuUbRoUZEuXWrRrNklDB/ehrCwvBu8w5jzERISwqFDh6yrcZNv1DUehfudU3mh0CeK\nLVsOMXDgXMaO7cJllzkfyJkz78TPzz6YxrcqVapEXFwcBw4c8HUophg5PcJdXip8iSKkDPgHkZyc\nyssvL+Gll5aQnJxGSEgAX375DwBLEqZACAwMzNNRxozxFa/e9SQiXUVkk4hsFZFznkYRkWAR+cy1\nfJmIVMt1p6VqsODHAzRuHMuzz/5AcnIa997blNjYHl44A2OMMV67ohARf2Ai0AmIA1aIyAxVXe+2\nWh/giKrWEpFewCvA7efu7YwdO47SseN/AKhXL5rY2B7WiZ8xxniRN68oWgBbVXW7qp4CpgI3Zlrn\nRuD/XK+/BDpILq1+R46cJCQkgBdfbM/q1X0tSRhjjJd57clsEbkV6Kqq97mmewNXqmp/t3X+cK0T\n55re5lrnYKZ9PQCc7hi+IfCHV4IufKKBg7muVTxYWZxhZXGGlcUZdVQ1IvfVzuXNxuysrgwyZyVP\n1kFV3wHeARCRlRf6GHpRY2VxhpXFGVYWZ1hZnCEiKy90W29WPcUBld2mKwGZO0/PWEdEAoBSwGEv\nxmSMMeY8eTNRrABqi0h1EQkCegEzMq0zA/iX6/WtwPda2HopNMaYIs5rVU+qmioi/YG5gD/wgaqu\nE5FROIN8zwDeB/4jIltxriR6ebDrd7wVcyFkZXGGlcUZVhZnWFmcccFlUei6GTfGGJO/imw348YY\nY/KGJQpjjDE5KrCJwivdfxRSHpTFIBFZLyJrRWSBiBTZpxBzKwu39W4VERWRIntrpCdlISL/cL03\n1onIJ/kdY37x4DNSRUQWishvrs9JN1/E6W0i8oGI7Hc9o5bVchGR8a5yWisil3u0Y1UtcP9wGr+3\nATWAIGANUD/TOv2AWNfrXsBnvo7bh2VxLRDmev1QcS4L13oRwGJgKRDj67h9+L6oDfwGlHFNl/N1\n3D4si3eAh1yv6wM7fR23l8qiDXA58Ec2y7sBs3GeYWsJLPNkvwX1isIr3X8UUrmWhaouVNUTrsml\nOM+sFEWevC8AngfGAEn5GVw+86Qs7gcmquoRAFXdn88x5hdPykKB00NcluLcZ7qKBFVdTM7Pot0I\nfKSOpUBpEamQ234LaqKoCOx2m45zzctyHVVNBeKBqHyJLn95Uhbu+uD8YiiKci0LEWkGVFbVb/Mz\nMB/w5H1xGXCZiPwkIktFpGu+RZe/PCmLZ4F/ikgcMAsYkD+hFTjn+30CFNzxKPKs+48iwOPzFJF/\nAjFAW69G5Ds5loWI+AHjgHvyKyAf8uR9EYBT/dQO5yrzRxFpqKpHvRxbfvOkLO4Apqjq6yLSCuf5\nrYaqmu798AqUC/reLKhXFNb9xxmelAUi0hEYBtygqsn5FFt+y60sInA6jVwkIjtx6mBnFNEGbU8/\nI9NVNUVVdwCbcBJHUeNJWfQBPgdQ1V+AEJwOA4sbj75PMiuoicK6/zgj17JwVbdMxkkSRbUeGnIp\nC1WNV9VoVa2mqtVw2mtuUNUL7gytAPPkM/I1zo0OiEg0TlXU9nyNMn94Uha7gA4AIlIPJ1EUxzFq\nZwB3u+5+agnEq+re3DYqkFVP6r3uPwodD8viVSAc+MLVnr9LVW/wWdBe4mFZFAselsVcoLOIrAfS\ngM8a6MUAAARQSURBVMGqesh3UXuHh2XxOPCuiAzEqWq5pyj+sBSRT3GqGqNd7TEjgUD4//buL7Tq\nMo7j+PtD9GcWCV4USdAKw0iawywkL8Ks6A9BibhiWQsklCIsdhN2UdCF9OciM1shMQOLoShEfyiJ\nZSFbOkI3G5JhXgRRXkiELYj17eJ5lr9OZ7+ds0acdT4vOLDz/P48z/nBft/zPL/D9wsR0UN6PnMX\n8C3wK/BITef9H14rMzObQY269GRmZg3CgcLMzEo5UJiZWSkHCjMzK+VAYWZmpRworOFIGpd0uPBq\nLdm3dbJMmXX2+VnOPnokp7xYOI1zrJf0UP67S9L8wrbtkq6d4XEektRewzEbJc35t31b83KgsEY0\nFhHthdfJ/6jfzohYTEo2+WK9B0dET0S8nd92AfML29ZFxOiMjPLsOLdR2zg3Ag4UNm0OFDYr5JnD\nF5K+yq+bquyzSNLBPAsZlnR1bn+w0P6GpHOm6O5zYEE+dmWuYTCSc/2fn9s362wNkJdy27OSuiWt\nJuXc2pn7bMkzgaWSNkh6oTDmLkmvTnOcAxQSukl6XdKQUu2J53LbE6SA1S+pP7fdLmkgX8ddki6a\noh9rcg4U1ohaCstOe3PbT8BtEbEE6AC2VDluPfBKRLSTbtTf53QNHcDy3D4OdE7R/z3AiKQLgF6g\nIyKuI2Uy2CBpHnAfsCgi2oDniwdHxG5giPTNvz0ixgqbdwOrCu87gL5pjvMOUpqOCZsiYinQBtws\nqS0itpBy+ayIiBU5lcczwK35Wg4BT03RjzW5hkzhYU1vLN8si84FtuY1+XFS3qJKA8AmSZcDeyLi\nuKSVwPXAoZzepIUUdKrZKWkMOElKQ70Q+C4ivsnbdwCPAVtJtS62S/oAqDmleUScknQi59k5nvs4\nkM9bzzgvJKWrKFYoWyPpUdL/9WWkAj3DFccuy+0Hcj/nka6b2aQcKGy2eBL4EVhMmgn/oyhRRLwj\n6UvgbuBjSetIaZV3RMTTNfTRWUwgKKlqfZOcW+hGUpK5+4HHgVvq+Cx9wBrgGLA3IkLprl3zOElV\n3DYDrwGrJF0JdAM3RMRpSb2kxHeVBOyLiAfqGK81OS892WwxF/gh1w9YS/o2/TeSrgJO5OWW90hL\nMJ8CqyVdkveZp9prih8DWiUtyO/XAvvzmv7ciPiQ9KC42i+PfiGlPa9mD3AvqUZCX26ra5wR8Ttp\nCWlZXra6GDgD/CzpUuDOScYyCCyf+EyS5kiqNjsz+4sDhc0W24CHJQ2Slp3OVNmnAzgq6TBwDank\n4yjphvqJpGFgH2lZZkoR8Rspu+YuSSPAH0AP6ab7fj7fftJsp1Iv0DPxMLvivKeBUeCKiDiY2+oe\nZ3728TLQHRFHSPWxvwbeIi1nTXgT+EhSf0ScIv0i693czyDpWplNytljzcyslGcUZmZWyoHCzMxK\nOVCYmVkpBwozMyvlQGFmZqUcKMzMrJQDhZmZlfoTlg0BMhpi7R4AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fpr, tpr, _ = roc_curve(y, probability)\n", "roc_auc = auc(fpr, tpr)\n", "\n", "plot_roc_curve(fpr, tpr, roc_auc)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def probability_histogram_class(probability, y):\n", " plt.subplot(221)\n", " counts, bins, _ = plt.hist([probability[y==0], probability[y==1]], stacked=True)\n", " plt.xlim(np.min(bins),np.max(bins))\n", " plt.xticks([])\n", " \n", " plt.subplot(222)\n", " plt.hist(probability[y==1], cumulative=-1, normed=True, color='tab:orange')\n", " plt.xlim(np.min(bins),np.max(bins))\n", " plt.xticks([])\n", " plt.ylim(0,1)\n", " \n", " plt.subplot(224)\n", " plt.hist(probability[y==0], cumulative=-1, normed=True, color='tab:blue')\n", " plt.xlim(np.min(bins),np.max(bins))\n", " plt.xticks()\n", " plt.ylim(0,1)\n", " \n", " plt.subplot(223)\n", " proportion = counts[0]/[max(0.0001, x) for x in counts[1]]\n", " plt.plot(bins[:-1], 1-proportion)\n", " plt.xlim(np.min(bins),np.max(bins))\n", " plt.ylim(0,1);" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n0hcRiZH/AbavwW3qcPlAAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "probability_histogram_class(probability, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's look at this data but this time with unbalanced classes." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "X = iris.data\n", "y = iris.target\n", "\n", "X = X[:, :2]\n", "y = np.array([min(1,i) for i in y])" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "150" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(y)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.66666666666666663" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(y)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "probability = lg.fit(X, y).predict_proba(X)[:, 1]" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nxOjRbenWrY6/QzPGmCxhieIibN16mLZtP2TXrmOIQI8eDXn11VYULx7q79CMMSbLWKK4CJUqFSUk\nJIh69cowaVJHmjQp7++QTA4SFxdHZGQkMTEx/g7F5CMhISGUL1+eAgWybmAzSxSZEB+fyKRJq+nW\nrQ4lSoQRHBzEggX3UK5cEYKCrLnHnCsyMpLw8HAqV66MiD0zY3xPVTl8+DCRkZFUqVIly/Zr325e\n+vXXvTRu/A59+sxnwIBFyfMrVSpmScKkKiYmhhIlSliSMNlGRChRokSWX8XaFUUGoqJiGDz4eyZM\nWIUqVKxYlM6da/g7LJNLWJIw2c0X7zlLFGlQVT799A/69v2Wf/89SVBQAP36NeH551tYB37GmHzF\n6kzSsH79frp1+4J//z3JtddW4LffHuP111tbkjC5SmBgIPXr16dOnTrccsstHDt2LHnZH3/8wY03\n3sjll19O9erVGTZsGKqavHz+/Pk0atSIWrVqUbNmTf773//64xTStXbtWh555BF/h5Gmw4cPc8MN\nN1C4cGF69+6d5npHjhyhdevWVK9endatW3P06FHA+cH65JNPUq1aNerWrctvv/0GwMGDB2nXrl22\nnANYojhHQkJi8uv69S+hb98mvPPOLfz444NceWUZP0ZmzIUJDQ1l3bp1bNy4kYiICMaPHw9AdHQ0\nnTp1YuDAgWzdupX169fz888/M2HCBAA2btxI7969+fDDD9m8eTMbN27kssuytneB+Pj4i97Hq6++\nSp8+fbL1mJkREhLCsGHDGDlyZLrrDR8+nFatWrFt2zZatWrF8OHDASdZb9u2jW3btjFlyhR69uwJ\nQKlSpShbtizLly/3+TmAVT0lW7JkJ716zWPy5I40b14JgFGj2vo5KpNnvOmjtopnNON1XE2bNmXD\nBqdrmY8//phmzZrRpk0bAMLCwhg3bhwtW7bkiSeeYMSIEQwePJiaNWsCEBQURK9evc7b58mTJ+nT\npw+rV69GRHjhhRe44447KFy4MCdPngRg5syZzJ07l2nTpvHAAw8QERHB2rVrqV+/PrNmzWLdunUU\nK+aM6litWjWWL19OQEAAPXr0YPfu3QC89dZbNGvW7Jxjnzhxgg0bNlCvXj0Afv31V55++mmio6MJ\nDQ3l/fffp0aNGkybNo1vvvmGmJgYTp06xffff88bb7zBZ599RmxsLLfddhsvvfQSALfeeit79uwh\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fpr, tpr, _ = roc_curve(y, probability)\n", "roc_auc = auc(fpr, tpr)\n", "\n", "plot_roc_curve(fpr, tpr, roc_auc)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\ngg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "counts, _, _ = plt.hist([probability[y==1], probability[y==0]], bins=20, stacked=True)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "probability_histogram_class(probability, y)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.utils import shuffle\n", "\n", "X = shuffle(X)\n", "probability = lg.fit(X, y).predict_proba(X)[:, 1]" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEWCAYAAAB42tAoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmcTfX/wPHXe/YZM5axJQyy79QkIpQ1hKgoqbRIolJJ\nQotSkoiIVPKrvqVVZCuKlIhRyL7HIMtgzDD7fH5/nDPjGjN37jB37izv5+Mxj7nnnM85533O3Dvv\nez6fcz4fMcaglFJKZcXL0wEopZTK3zRRKKWUckoThVJKKac0USillHJKE4VSSimnNFEopZRyShNF\nISAi/UTkJ0/H4WkiEiYisSLinYf7rCoiRkR88mqf7iQiW0Wk7WWsV2jfgyLSVkQiPR2HJ2miyGUi\nckBE4ux/WP+JyBwRCXbnPo0x/zPGdHTnPvIj+1y3T5s2xhw0xgQbY1I8GZen2AmrxpVswxhT3xiz\nMpv9XJIci+p7sKjQROEetxljgoEmQFNgpIfjuSye/JZcWL6h54Seb5VfaaJwI2PMf8CPWAkDABHx\nF5GJInJQRI6JyEwRCXRY3kNENorIWRHZKyKd7fklROQjETkqIodF5LW0KhYReUBEfrdfzxSRiY5x\niMh8EXnafn21iHwrIidEZL+IPOFQ7mUR+UZEPhORs8ADGY/JjuMTe/1/RWS0iHg5xLFaRN4VkWgR\n2SEi7TKs6+wYVovIZBE5BbwsItVF5BcRiRKRkyLyPxEpaZf/FAgDfrCv3p7L+E1XRFaKyKv2dmNE\n5CcRKeMQz332MUSJyJiMVygZjjtQRN62y0eLyO+Ofzegn/03PSkioxzWayYia0TkjH3c00TEz2G5\nEZHHRWQ3sNueN0VEDtnvgQ0icpNDeW8RecF+b8TYyyuLyCq7yCb7fPSxy3ez309nROQPEWnksK0D\nIjJCRDYD50TEx/Ec2LFH2HEcE5FJ9qpp+zpj76uF43vQXre+iCwTkVP2ui9kcV6z/DzYsa11+Hs+\nJlbVWIA9/bVYV+3RIrJKROo7bHeOiLwnIkvsGFeLyFUi8o6InLbfm00znIuRIrLNXv5x2n4yiTnL\nz1ChZYzRn1z8AQ4A7e3XlYB/gCkOy98BFgChQAjwA/CGvawZEA10wEriFYE69rLvgfeBYkA5YB3w\nqL3sAeB3+3Vr4BAg9nQpIA642t7mBuBFwA+4BtgHdLLLvgwkAT3tsoGZHN8nwHw79qrALuAhhziS\ngWGAL9DHPp5QF48hGRgK+ACBQA37XPgDZbH+Qb2T2bm2p6sCBvCxp1cCe4Fa9vZWAuPtZfWAWKCV\nfS4m2sfePou/63R7/YqAN3CjHVfaPj+w99EYSADq2utdBzS3j6kqsB14ymG7BliG9X4ItOfdC5S2\n13kG+A8IsJcNx3pP1QbE3l9ph23VcNj2tcBx4AY75vvtc+bvcP42ApUd9p1+ToE1QH/7dTDQPLPz\nnMl7MAQ4asceYE/fkMV5dfZ58LL/5i8DNYHTQFOHdR+01/G3t7PRYdkc4KR9/gOAX4D9wH32uXgN\nWJHhvbTFPhehwGrgNXtZWyDSIaYsP0OF9cfjARS2H/sNFwvE2B+mn4GS9jIBzgHVHcq3APbbr98H\nJmeyzfJY/3wCHebdnfZGz/AhFeAg0NqefgT4xX59A3Aww7ZHAh/br18GVjk5Nm87jnoO8x4FVjrE\ncQQ7Sdnz1gH9XTyGg1nt2y7TE/g7w7nOLlGMdlg+GFhqv34R+MJhWRCQSCaJwv7nEAc0zmRZ2j4r\nZTjmvlkcw1PAPIdpA9ySzXGfTts3sBPokUW5jIliBvBqhjI7gTYO5+/BTN6/aYliFfAKUCaLY84q\nUdzt+HdyclxOPw8O+zqFlWBHOtlWSTumEvb0HOADh+VDge0O0w2BMxmOe5DDdBdgr/26LRcShdPP\nUGH90XpJ9+hpjFkuIm2Az4EywBmsb8VBwAYRSSsrWP+Awfo2sziT7VXB+oZ+1GE9L6wrh4sYY4yI\nzMX6sK4C7gE+c9jO1SJyxmEVb+A3h+lLtumgDNa3qH8d5v2L9S07zWFjf3ocll/t4jFctG8RKQdM\nBW7C+ubohfVPMyf+c3h9HuubMXZM6fszxpwXkagstlEG61vp3pzuR0RqAZOAcKy/vQ/WN1JHGY/7\nGeBhO0YDFLdjAOs94iwOR1WA+0VkqMM8P3u7me47g4eAscAOEdkPvGKMWejCfl2NMbvPA8aYAyKy\nAusf9/T0QlaV5TjgTns7qfaiMlhXsQDHHPYVl8l0xptMHM9F2vs2I1c+Q4WOtlG4kTHmV6xvNmlt\nBiex3qD1jTEl7Z8Sxmr4BuuNWj2TTR3C+jZexmG94saY+pmUBfgCuENEqmB9A/rWYTv7HbZR0hgT\nYozp4hi2k0M6iVU9U8VhXhhw2GG6ojh86u3lR1w8hoz7fsOe18gYUxyrSkaclM+Jo1hVg4DVBoFV\n3ZOZk0A8mf9tsjMD2AHUtI/hBS4+BnA4Drs9YgRwF1DKGFMS6x9f2jpZvUcycwgYl+HvHWSM+SKz\nfWdkjNltjLkbq5rwTeAbESnmbJ0cxpjd5wER6YJ1lfEz8JbDuvcAPYD2QAmsKw+49NzmRGWH12nv\n24xc+QwVOpoo3O8doIOINDHGpGLVZU+2vy0jIhVFpJNd9iNggIi0ExEve1kdY8xR4CfgbREpbi+r\nbl+xXMIY8zdwAvgQ+NEYk/btZx1w1m4kDLQbRhuIyPWuHIixbjv9ChgnIiF2InqaC1csYP1TeUJE\nfEXkTqAusDinx2ALwarGOyMiFbHq5x0dw6ojvhzfALeJyI1iNS6/Qhb/ZOy/22xgkt2Q6W034Pq7\nsJ8Q4CwQKyJ1gMdcKJ+M9ffzEZEXsa4o0nwIvCoiNcXSSETSElzG8/EBMEhEbrDLFhORriIS4kLc\niMi9IlLWPv6091CKHVsqWZ/7hcBVIvKU3VgdIiI3ZCyU3edBrBsPPsK6urof6++V9g85BOuLRxTW\nVcnrrhxTNh4XkUoiEoqV0L/MpMwVfYYKKk0UbmaMOYHVADzGnjUC2AOsFevOouVYDZMYY9YBA4DJ\nWN8if+XCt/f7sKoNtmFVv3wDVHCy6y+wvm197hBLCnAb1l1Y+7G+0X2I9Y3MVUOx6pX3Ab/b25/t\nsPxPrIbHk1hVA3cYY9KqdHJ6DK9gNchGA4uA7zIsfwMYLdYdPc/m4Bgwxmy1j2Uu1tVFDFbDb0IW\nqzyL1Yi8HqvO/E1c+/w8i/XtNwbrn2Jm/3wc/QgswbpJ4F+sKxnHKpFJWMn6J6wE9BFWIzpYbUz/\nZ5+Pu4wxEVhtVNOwzvceMrmTzYnOwFYRiQWmYLW7xBtjzmP9bVfb+2ruuJIxJgbrJoTbsKrkdgM3\nZ7GPLD8PwCxgvjFmsf0eegj40E6Mn9jn5zDW+2ltDo4rK59jndd99s9rGQvk0meowEm7M0apKyYi\nDwAPG2NaeTqWnBLrocgzWFVE+z0dj8pbInIA67273NOx5Ed6RaGKLBG5TUSC7Hr3iVhXDAc8G5VS\n+Y8mClWU9cBqsDyCVV3W1+gltlKX0KonpZRSTukVhVJKKacK3AN3ZcqUMVWrVvV0GEopVaBs2LDh\npDGm7OWsW+ASRdWqVYmIiPB0GEopVaCIyL/Zl8qcVj0ppZRyShOFUkoppzRRKKWUckoThVJKKac0\nUSillHJKE4VSSimn3JYoRGS2iBwXkS1ZLBcRmSoie0Rks4hc665YlFJKXT53XlHMweqmOCu3YvWv\nUxMYiDXAi1JKqdyUdJ7EnYuuaBNuSxTGmFVY/fZnpQfwibGsBUqKiLOxCZRSSuXQ8GcW0+W2r65o\nG558MrsiFw/IEmnPO5qxoIgMxLrqICwsLE+CU0qpAiU5AU5sIuNItQ0qRjN135X93/Rkoshs2MlM\nu7I1xszCGu2K8PBw7e5WKaUyWtgH9s5n239l+etwBe69bjMA93lDmxElqXYFg8V6MlFEcvFg5pXI\nfDBzpZQqfOJPQ9zJXNvc+aO7eG1xO976tSXeXobm14VS46rzCFC1AljDfV8eTyaKBcAQEZkL3ABE\nG2MuqXZSSqkCKzUZog/AqR1weqf1+5T9O+5Eru1myfYaPD6vK/tPlQLgoYevo/SDI6FU4IVC92ZW\nieMatyUKEfkCaAuUEZFI4CXAF8AYMxNYDHTBGlj9PDDAXbEopZRbJcZA1HY7ETgkhTN7ICUx83V8\ngiC4ApnXwrvm8OlAnpobzjcbqgDQqMp5Zn42iBatql32NjPjtkRhjLk7m+UGeNxd+1dKqTxxeg98\n2hSSYjNfHlwJQutAaG37dx0oVRtCKoJc2Y2nj/ecy/wNOwkK8mXs2LY8+WRzfHxy/2bWAjcehVJK\n5SuntltJIqAUhHW4OCmUqgV+wbm6u+Tk1PRk8Oab7fH19ebttzsSFlYiV/fjSBOFUkrlhqtbwm1f\num3z0dHxjB79C7t2nWLp0n6ICLVrl+Hrr+902z7TaKJQSql8zBjD119v46mnlnL0aCze3sLGjf/R\ntGnePZ+siUIpVbSc2gnzukF8VO5sL6vG6lywd+8phgxZwtKlewBo0aISM2d2o1Gj8m7bZ2Y0USil\nipbI36y7kXLb1S1ydXMTJ/7BmDEriI9PpmTJAN58sz0PP3wtXl6Xf5fU5dJEoZQqmur2g5un5s62\nvLzBP3cbk8+fTyI+Ppn+/RsxcWJHypUrlqvbzwlNFEqposk7AAJDPR1FuhMnzrFzZxStWln9Mo0Y\n0ZK2bavSunUVD0emAxcppYoKY+D4Rji43NORXCQ11fDhh39Ru/Y0evX6klOn4gDw9/fJF0kC9IpC\nKVWYpSRB5CrYOx/2LoCz/15YVtzz/4S3bDnOoEELWb3a6ki7Q4drOH8+idDQwGzWzFuaKJRShUti\nDOxfaiWHfYsg4cyFZcWugurdoXoPqOZsXDX3OncukbFjf2XSpLUkJ6dSvnwx3nmnM3361Eck7xur\ns6OJQilV8MUeta4Y9nwPh365+JbV0LpQo4eVHCo0u+JuM3LDHXd8zdKlexCBwYPDGTeuHSVLBng6\nrCxpolBKFVwHfoLVY+A/xy60xXpKukZPK0GUqumx8LIyYkRLjh2LZcaMrtxwQyVPh5MtTRRKqYJr\n7atWkvAJgCodrauG6t0gqJynI0uXnJzKu+/+yYEDZ5gy5VYA2ratSkTEQI88E3E5NFEopQqu1CTr\nd+9lUKmVZ2PJxLp1h3n00YVs3PgfAAMHXkf9+lYSKyhJAvT2WKVUYeCVv77znjkTz+DBi2je/EM2\nbvyPKlVK8MMPd6cniYImf51dpZQq4ObO3cJTTy3l2LFz+Ph48cwzLRgzpjXFivl5OrTLpolCKaVy\n0U8/7eXYsXO0bFmZGTO60rBh3nbg5w6aKJRS6gokJCRz+HAM11xjjVc9YUIHbropjPvvb1Kg2iGc\n0TYKpZS6TL/8sp9GjWbStevnJCamAFCmTBADBjQtNEkCNFEopVSOHTsWS//+82jX7hN27bLGtYiM\nPOvhqNxHq56UUspFqamGDz7YwPPP/8yZM/EEBPgwevRNDB/eEj8/b0+H5zaaKJRSykW33/4lCxbs\nBKBTp+pMn96F6tXzT1fl7qJVT0op5aJevepw1VXBfPnlHSxZ0q9IJAnQKwqlVH5nDERtg8RM2gAS\nY9y66wULdhIZeZbBg68H4L77GtOrV11CQvzdut/8RhOFUip/2zEXFt/jvEwu9wh78GA0TzyxhPnz\nd+Lv703nzjW45ppSiEiRSxKgiUIplV8knIVzRy+dn9YzbPDVEBJ26fIS1aBc01wJISkphalT/+Sl\nl1Zy7lwSISF+vPbaLVSpkrvjYRc0miiUUp4XfwY+CHNelVT/AWg1zm0hrF0byaOPLmTz5mMA3Hln\nPSZP7kTFisXdts+CQhOFUsrzYiOtJOHla10hZOQbDDVud2sIY8asYPPmY1SrVpJp07rQpUv+G8fC\nUzRRKKXyj1K14IEtebIrYwwxMYkUL261OUybdiuffLKJUaNaExTkmycxFBR6e6xSqsjZufMk7dt/\nSq9eX2KMAaB27TKMG9dOk0Qm9IpCKeU5CWdh/xLY8UWe7C4+Ppk33viN8eNXk5iYQunSgRw4cIZq\n1Urlyf4LKk0USqm8FRMJexfAnvlwaMWFUeoAwtq5bbfLlu1l8ODF7NlzCoAHH2zChAkdKF06yG37\nLCzcmihEpDMwBfAGPjTGjM+wPAz4P6CkXeZ5Y8xid8aklMpjxsDJLbB3vpUcjkVcWCZeUKm1NdZ1\njR5Qsrobdm946KEFfPzxRgDq1SvLzJlduemmKrm+r8LKbYlCRLyB6UAHIBJYLyILjDHbHIqNBr4y\nxswQkXrAYqCqu2JSSuWR1GQ4/LuVGPbOh+j9F5b5BEHVjlCjJ1TrCkFl3BqKiFC1akkCA3148cU2\nPP10i0LdgZ87uPOKohmwxxizD0BE5gI9AMdEYYC0m5RLAEfcGI9SKi8c/AV+uAvioy7MCyoH19xm\nXTWEtQffQLeGsHHjfxw9GsOtt1q3uI4Y0ZL+/RtpW8RlcmeiqAgccpiOBG7IUOZl4CcRGQoUA9pn\ntiERGQgMBAgLy+TJTKVU/rFnvpUkileBWndZVw4VbgAv93+Lj4lJ4KWXVjJlyp+ULh3Ijh1DCA0N\nxN/fR5PEFXBnoshseCeTYfpuYI4x5m0RaQF8KiINjDGpF61kzCxgFkB4eHjGbSil8qPrhsG1T+bJ\nrowxfP/9Dp54YimRkWfx8hLuuachvr76BEBucGeiiAQqO0xX4tKqpYeAzgDGmDUiEgCUAY67MS6l\nVCHy779nGDJkCQsX7gIgPPxq3n+/G9deW8HDkRUe7kwU64GaIlINOAz0BTJ2AXkQaAfMEZG6QABw\nwo0xKaVyQ3IC/DwYYg5duuzUjjwLwxhD795fsWHDUYoX9+f1129h0KBwvL31SiI3uS1RGGOSRWQI\n8CPWra+zjTFbRWQsEGGMWQA8A3wgIsOwqqUeMGmPSSql8q+ja2DLbOdlgiu5bfepqQYvL0FEmDix\nIzNnRjB5cicqVAhx2z6LMilo/5fDw8NNRERE9gWVUu7z78/wTXso2xhaT7h0eUApKB8OkllT5eWL\nijrP888vB+CDD7rn6rYLOxHZYIwJv5x19clspdTlCyxtPRPhZsYYPvlkE88+u4yTJ8/j5+fNSy+1\npVIl7QI8L2iiUErla9u3n+Cxxxbx66//AtC2bVVmzOiqSSIPaaJQSuVLxhhefHEFb765mqSkVMqU\nCeLttzvSv38jJJertJRzmiiUUvmSiHD4cAxJSak88si1jB/fntBQ9z7RrTKniUIplW8cORLDyZPn\nadSoPAATJnTgoYea0rKl9sjgSXqzsVLK41JSUpk2bR11606nb99vSExMAaBMmSBNEvmAXlEopTzq\nr7+O8uijC4mIsDpuaN26CmfPJlCmjI4TkV+4lChExA8IM8bscXM8Sqki4uzZBMaM+YVp09aTmmqo\nVKk4U6d2pmfPOtpYnc9kmyhEpCswCfADqolIE+AlY8zt7g5OKVU4GWNo3fpjNm06hre38PTTzXn5\n5baEhPh7OjSVCVfaKMZidQ9+BsAYsxGo4c6glFKFm4gwbFhzmjWrSETEQN5+u5MmiXzMlaqnJGPM\nmQyXggWr3w+llEclJqYwadIavL2F4cNbAnDffY25995G2oFfAeBKotguIncBXnZPsE8Ca90bllKq\nsPjtt38ZNGgR27adwN/fm/vua0z58sGICN7e2hZRELiSyocA1wGpwHdAPFayUEqpLJ08eZ4HH5xP\n69Zz2LbtBDVrhrJw4T2ULx/s6dBUDrlyRdHJGDMCGJE2Q0R6YSUNpZS6iDGGOXM2Mnz4MqKi4vDz\n82bkyFY8/3wrAgL0jvyCyJUritGZzBuV24EopQqPzz77h6ioOG65pRqbNw/i5ZfbapIowLL8y4lI\nJ6xhSiuKyCSHRcWxqqGUUgqA8+eTiI6Op0KFEESE997rwvr1R+jXr6E+E1EIOEvxx4EtWG0SWx3m\nxwDPuzMopVQ+dXoP7J0PO+amz1qyZDePP76Ya64pxbJl/RERatcuQ+3aZTwYqMpNWSYKY8zfwN8i\n8j9jTHwexqSUyi9MKvwXYSWHPfMh6sJ3xsNnQ3lqVnu+Wf45ACEh/kRFxWnXG4WQK5WGFUVkHFAP\nCEibaYyp5baolFL5w3dd4MCPF6b9S5AS1oXpf97E6HfPEBOTSLFivowdezNPPHEDPj76TERh5Eqi\nmAO8BkwEbgUGoG0UShUNkb9ZvxsPghq9SK3YmjY3/4/Vqw8B0LNnHaZM6UxYWAkPBqnczZVEEWSM\n+VFEJhpj9gKjReQ3dwemlMpH2kwE32J4AR07VufgwWimTetC9+61PR2ZygOuXCcmiHXbwl4RGSQi\ntwHl3ByXUiofMAa+3Fifb7/blT5vxIiWbNv2uCaJIsSVK4phQDDwBDAOKAE86M6glFKet3fvKQbP\nvJOfdlaj7I/LuKVjHUqVCsTf3wd/7b+vSMk2URhj/rRfxgD9AUSkkjuDUkp5TkJCMm+99Qfjxv1G\nfHw1SgXGMW5sR0qUCMh+ZVUoOU0UInI9UBH43RhzUkTqY3XlcQugyUKpQmblygM89tgiduw4CUD/\n8C1M7LqEcg+NAS99cK6oyrKNQkTeAP4H9AOWisgoYAWwCdBbY5UqZFJSUhk82EoStWuX5pdf7uOT\nexdTLuScp0NTHubsiqIH0NgYEyciocARe3pn3oSmlHK31FRD/L7fCdr8Bt4piczoU4JV24rzXI/f\n8T/5PSTHeTpElQ84SxTxxpg4AGPMKRHZoUlCqcLjn3+OMWjQIuoU28JHnZYA0CYY2jQDjjoUDCwD\n3tp6XZQ5SxTXiEhaV+ICVHWYxhjTy62RKaXc4ty5RMaO/ZVJk9aSnJzK/tAgTt8UQKm2wyDslktX\nKF0fvLTn16LM2V+/d4bpae4MRCnlfj/8sJMhQ5Zw8GA0IjB4cDjjbvqckofjoUxDqNLe0yGqfMhZ\np4A/52UgSin3SU5OpU+fb/juu+0ANGlyFe+/341mDXzhh7c8HJ3K7/R6UqkiwMfHixIl/AkO9uPV\nkQ0YcvN2fPb2gd/+AIxVyL+4R2NU+ZdbE4WIdAamAN7Ah8aY8ZmUuQt4GevduskYc487Y1Kq0Dr7\nL+z9AWKPAPDnNuu5hxvqWYngre5xjK2/ikq8AH/Y63j7QeVboNadULWzJ6JWBYDLiUJE/I0xCTko\n7w1MBzoAkcB6EVlgjNnmUKYmMBJoaYw5LSLah5RSrjIGjv9tjROxdz6c2ATAmbgARi5ux/trw6lT\n9iQbn56Jn08KpdPW8y8J13SF6j2gaie9klDZyjZRiEgz4COsPp7CRKQx8LAxZmg2qzYD9hhj9tnb\nmYv1bMY2hzKPANONMacBjDHHc34IShUxZ/bBhslWcog5lD7b+ATzxaG+PP1xJY6dAh9v6N6pPCnN\nX4EAAbzgquuhUmvw9vVc/KrAceWKYirQDfgewBizSURudmG9isAhh+lI4IYMZWoBiMhqrOqpl40x\nS13YtlJF14qnYN8P1uvgq6F6d3Z7dWLw69Es//kAAC1bVmbmzG40aKAX6erKuZIovIwx/2YYID3F\nhfUy6xjGZLL/mkBbrL6jfhORBsaYMxdtSGQgMBAgLCzMhV0rVYglxVq/O34IDQaQlGy45ZqpREae\nJTQ0kAkT2jNgQFO8tG8mlUtcSRSH7OonY7c7DAV2ZbMOWFcQlR2mK2F1A5KxzFpjTBKwX0R2YiWO\n9Y6FjDGzgFkA4eHhGZONUkWSKV4VES98fWHcuFtYseIAEya0p2zZYp4OTRUyrgxc9BjwNBAGHAOa\n2/Oysx6oKSLVRMQP6AssyFDme+BmABEpg1UVtc+10JUqmo6d8aH/57fz2tQLNbv33deYjz/uoUlC\nuYUrVxTJxpi+Od2wMSZZRIYAP2K1P8w2xmwVkbFAhDFmgb2so4hsw6rOGm6MicrpvpQq1IyB43+R\nums+H8zezPNfXsuZuEBK7j3MUy8nEBKi/TAp9xJjnNfkiMheYCfwJfCdMSYmLwLLSnh4uImIiPBk\nCEq5nzFwaAXs+hb2LmDTriQGfduNtf9atbmdw88z/bOnuKZ2BQ8HqgoKEdlgjAm/nHVdGeGuuojc\niFV19IqIbATmGmPmXs4OlVIu2P0t/HAnSSlejFzcnnd+a05KqhcVyvkyZUpX7ujTiAw3mCjlNq60\nUWCM+cMY8wRwLXAWa0AjpZS7xEQC4BPWir9TbiPVeDF0aDO273qaO/s21iSh8pQrD9wFYz0o1xeo\nC8wHbnRzXEoVWQcPRpNyOJVqgJRvyszZdxMdnUB4+NWeDk0VUa40Zm8BfgAmGGN+c3M8ShVZSUkp\nTJnyJy+9tJIWDVJZdqf1MFLNmqWzXVcpd3IlUVxjjEl1eyRKFWFr1hxi0KBFbN58DIDQ4r6cT/RF\nb3ZV+UGWiUJE3jbGPAN8KyKX3BqlI9wpdeVOn47j+eeXM2vWXwBUq1aS6dO7cGu5RbAyycPRKWVx\ndkXxpf1bR7ZTyg0SEpJp0uR9Dh6MxtfXi+HDb2TUqNYEBfnCBk9Hp9QFzka4W2e/rGuMuShZ2A/S\n6Qh4Sl0Bf38fHnqoKT//vJ8ZM7pSr15ZT4ekVKZcuT32wUzmPZTbgShV2MXHJ/PSSyv4/PN/0ue9\n8MJNrFx5vyYJla85a6Pog3VLbDUR+c5hUQhwJvO1lFKZWbZsL4MHL2bPnlOUK1eM22+vQ2CgLz4+\nLj3KpJRHOWujWAdEYfX6Ot1hfgzwtzuDUqqw+O+/WJ5++ke++GILAPXrl2XmzG4EBurAQargcNZG\nsR/YDyzPu3CUKhxSUlJ5//0NvPDCz0RHJxAY6MNLL7Vh2LAW+Pl5ezo8pXLEWdXTr8aYNiJymosH\nHBLAGGNC3R6dUgVUSorh3XfXER2dQJcuNZk27VaqVSvl6bCUuizOqp7ShjstkxeBKFXQxcQkkJJi\nKFkyAD8/bz744DaOHYulV6+62jeTKtCybElzeBq7MuBtjEkBWgCPgj4wqlQaYwzffbedunWn88wz\nP6bPb9VkE3oYAAAgAElEQVQqjN6962mSUAWeK7dcfI81DGp14BOsjgE/d2tUShUQBw6coXv3ufTu\n/RWHD8ewZcsJ4uOTPR2WUrnKlUSRao9p3Qt4xxgzFKjo3rCUyt+SklJ4883fqVdvOgsX7qJ4cX+m\nTbuVP/54kIAAV7pQU6rgcGkoVBG5E+gP9LTn6b19qsg6fz6J5s0/5J9/jgPQt28DJk3qSIUKIR6O\nTCn3cCVRPAgMxupmfJ+IVAO+cG9YSuVfQUG+hIdfzfnzSbz3Xlc6dqyeuztIjIXTu3N3m0pdAVeG\nQt0iIk8ANUSkDrDHGDPO/aEplT8YY/jkk01Urx5Kq1ZhAEye3Ak/P+/ce3Du3H+wdwHsmQ8Hf4aU\nBGu+X4nc2b5SV8CVEe5uAj4FDmM9Q3GViPQ3xqx2d3BKedr27Sd47LFF/Prrv9StW4aNGwfh5+dN\niRIBFxc8fwI2zYSkcznbQWoyHFkNR9c6zBSo0AJq9IQmg6/4GJS6Uq5UPU0GuhhjtgGISF2sxBHu\nzsCU8qS4uCTGjfuNCRNWk5SUStmyQYwc2Qpf3yzu/9g8C/548fJ36O0PVdpD9R5Q/TYodtXlb0up\nXOZKovBLSxIAxpjtIuLnxpiU8qilS/fw+OOL2bfvNACPPHIt48e3JzQ0MOuV0q4kqnSEyjdnXS4z\nobWs9fyCLzNipdzLlUTxl4i8j3UVAdAP7RRQFVKxsYn07z+PkyfP06BBOWbO7ErLlmGub6ByG7jh\nefcFqJQHuJIoBgFPAM9htVGsAt51Z1BK5aWUlFRSUw2+vt4EB/sxZUpnIiPPMmxYc3x9tQM/pZwm\nChFpCFQH5hljJuRNSErlnQ0bjvDoowvp0aM2Y8a0AeCeexp6OCql8pcsn8wWkRewuu/oBywTkcxG\nulOqQDp7NoEnn1xCs2YfsmHDUT79dDNJSSmeDkupfMnZFUU/oJEx5pyIlAUWA7PzJiyl3MMYwzff\nbOPJJ5dy9Ggs3t7C008355VXbtZqJqWy4CxRJBhjzgEYY06IiI7ZqAq0mJgE+vT5hiVL9gBwww0V\nmTmzG02a6K2oSjnjLFFc4zBWtgDVHcfONsb0cmtkSuWy4GA/EhJSKFHCn/Hj2zNw4HV4eWkX4Epl\nx1mi6J1hepo7A1HKHVat+pcKFYKpWbM0IsLs2d0JCPChfPnLfGbh7CFIOHPp/PPHryxQpfIxZ2Nm\n/5yXgSiVm06ePM9zzy3j44830q5dNZYt64+IUKVKyZxtyKTCfxGw53vYOx+itmWzgl6hqMJHO85X\nhUpqqmHOnI0MH76MU6fi8PPz5qabwkhJMfj4uPhPPCURDv5iJ4cFcO7ohWV+xaF4Fg/g+RWHGj2u\n/CCUymfcmihEpDMwBfAGPjTGjM+i3B3A18D1xpgId8akCq+tW4/z2GOL+O23gwC0a1eN997rSq1a\npXO2oe9utRJFmpDKVh9MNXpApdbgrT3YqKLF5UQhIv7GmIQclPcGpgMdgEhgvYgscOw3yi4XgvXk\n95+ublupjKKj42ne/CNiYxMpV64YkyZ15J57Gjofrzo5wapayuj4Juv39c9B7b5QrgnouNeqCHOl\nm/FmwEdACSBMRBoDD9tDojrTDGvsin32duYCPYCMlbyvAhOAZ3MYu1IYYxARSpQIYMSIlhw+fJbX\nX29HqVJOOvCLPQIrhsGurwGTdbnwZyGobK7HrFRB48qzEVOBbkAUgDFmE+BK95gVgUMO05FkGGtb\nRJoClY0xC51tSEQGikiEiEScOHHChV2rwu7w4bPcccdXfPbZ5vR5o0bdxIwZ3bJOEqkp8Ne78HEd\n2PWVdZXgE5D5T+W2EJjDKiulCilXqp68jDH/ZriEd6Wvg8yu1dO/vtkP8E0GHshuQ8aYWcAsgPDw\ncCdfAVVhl5ycyvTp6xg9egWxsYn89ddR7rmnId7eXs6rmf6LgOWD4NgGa7p6D7hlatYN00qpdK4k\nikN29ZOx2x2GArtcWC8SqOwwXQk44jAdAjQAVtof8KuABSLSXRu0VWbWrz/MoEGL+Osv6y6knj3r\nMHVqZ7y9nVwYJ0TD6jGwcbrVHhFSGW55V+9OUioHXEkUj2FVP4UBx4Dl9rzsrAdqikg1rGFU+wL3\npC00xkQDZdKmRWQl8KwmCZXRuXOJjBixnPfeW48xEBZWgnffvZXu3WvDya3wbV84+U/mKydEQ1Is\niLfV5tDiJR0gSKkcyjZRGGOOY/2TzxFjTLKIDAF+xLo9drYxZquIjAUijDELchytKpJ8fLxYvnwf\nXl7C00+34KWX2lDMLxl+GwkRE61xp52p0Bzaz4RyjfMmYKUKGTHGeZW/iHxAJreGGGMGuisoZ8LD\nw01EhF50FHZ7956iZMkASpcOAqxqp4AAHxo2LA/7FsHPQ+DsAUCg8aMQPjzz5xvE2xp/Wm9vVUWc\niGwwxoRfzrquVD0td3gdANzOxXczKZVrEhKSeeutPxg37jf69WvIhx92B+D66ytCTCQs6A277b4p\nyza2rhSubu7BiJUq/FypevrScVpEPgWWuS0iVWStXHmAxx5bxI4dJwHrDqeUlFSrsXrPfFh8r9Xe\n4FsMWr4KTYeCl/ZCo5S7Xc6nrBpQJbcDUUXX8ePnGD58GZ98Yj0RXbt2aWbM6MrNN1e7UGjLbCtJ\nVO0MHWZB8cpZbE0pldtceTL7NBfaKLyAU8Dz7gxKFQIHfoTNH2TeRYaDk2e9qft4HU7F+ODvm8qo\nO47xXK/N+J/9BeY7FDxq9/DSZLAmCaXymNNEIdYDDo2xbm8FSDXZtX4rBbBmLBz5I9tiZYAedXoQ\nGV2c93otokaZU/CvkxWK6Wh0SuU1p4nCGGNEZJ4x5rq8CkgVAmf2wflj1uubxkOpmumLzp1PZez0\nY3RtW5zW1xcD4L1Oqfj7CSI9nW+32NVQ/rJu2lBKXQFX2ijWici1xpi/3B6NKpiMsbrG2DvfanR2\nfPitRk8IrQ3ADz/sZMiQJRw8GM2iP4TNm+/Fy0sI8FDYSinXZJkoRMTHGJMMtAIeEZG9wDmsPpyM\nMebaPIpR5VdxUfDHy7BnHsQevjDfLwSq3gr17oXQ2hw6FM2TTy5l3rwdADRtehXvv99Nx6tWqoBw\ndkWxDrgWyKY+QBVZWz6GjfZQ6sEVoXp3e3CftuDjT3JyKlMnreHFF1dw7lwSwcF+vPbazTz+eDN8\nfFzpuFgplR84SxQCYIzZm0exqPzo7CE4sATiTl267JA9ClyTx62O9jI8/Xz2bAJvvPE7584l0bt3\nXd55pzOVKhXPg6CVUrnJWaIoKyJPZ7XQGDPJDfEoTzMGTmy+0N5w3IWmqeCK6UnizJl4AgN98Pf3\nITQ0kPff74a/vzddu9Zyc+BKKXdxlii8gWAyH1dCFTandsKmGVZyOHvgwnzfYlC1E5Ssmfl6fsHQ\n8BGMMXzxxRaGDfuRIUOuZ8yYNgD06lXX/bErpdzKWaI4aowZm2eRKM/64c4LdysFlYfqt1l3LIW1\ns0Z8c2LXrigGD/6Un3/eD8CqVQfThyhVShV82bZRqCIiIdr63XMBXNMVJPvG5vj4ZN5883def/13\nEhNTCA0N5K23OvDAA000SShViDhLFO3yLAqVf5Rt5FKS+O+/WFq3/pjdu61G7gceaMJbb3WgTJkg\nd0eolMpjWSYKY0wmt7koZSlfvhiVK5fAx8eLGTO60qZNVU+HpJRyE+2jWbkkNdXwwQcbuPnmatSq\nVRoR4fPPe1GqVCB+ft6eDk8p5Ub61JPK1qZN/9Gy5WwGDVrE4MGLSOsXsnz5YE0SShUBekWhshQb\nm8jLL6/knXfWkpJiuPrqEAYN0k75lCpqNFEUNedPQHL8pfNN8kWT33+/g6FDlxAZeRYvL2Ho0Ga8\n9totFC/un0eBKqXyC00URck/H8FPD2db7PDhs/Tt+w0JCSlcd10FZs7sRnj41XkQoFIqP9JEUVAZ\nA8nnc7bOf+ut3/4lwDfkokVJKYLPVY2RkMpULO7FuHG34OfnzeDB11tjViuliixNFAXVd13gwNLL\nW/fGV+HaoemTf/xxiEGDFjJ8+I30t5+heOaZG3MjSqVUIaBfFQuqyJXWb59A8Aly/Se4IlRqDcCp\nU3E8+ugPtGw5m3/+Oc5770WgI90qpTLSK4qCbnAU+AbmaBVjDJ99uolnnvmJEyfO4+vrxXPPtWTU\nqJu06w2l1CU0URQxx47Fcvfd37JixQEA2rSpwowZXalbt6xnA1NK5VuaKIqYkiUDOHo0ljJlgpg4\nsQP33ddYryKUUk5poigCli3by7XXVqB06SD8/X34+us7qVAhmNKltQM/pVT2tDG7EDt6NIa77/6W\njh0/Y8SI5enzGzQop0lCKeUyvaIohFJSUnn//Q2MHPkzZ88mEBjoQ+3apXUwIaXUZdFEkR+lpsCR\n1dawpMc2gEm9tExyQqar/vXXUQYNWsj69UcA6Nq1JtOmdaFq1ZLujFgpVYhposgvks7BgWWw93vY\nuxDio7JfJ6g8ePulTx44cIZmzT4gJcVQsWIIU6feyu2319GrCKXUFXFrohCRzsAUwBv40BgzPsPy\np4GHgWTgBPCgMeZfd8aU78SdgmUDYf+iizvrK1kdqveEKu3BN4v2hNC64HWhm++qVUsyYEATQkL8\neeWVtoSEaAd+Sqkr57ZEISLewHSgAxAJrBeRBcaYbQ7F/gbCjTHnReQxYALQx10x5Uv/LoPd31qv\nr2oGNXpA9R5Quh5kcyVw4MAZhg79gmefbZE+wtysWbfpFYRSKle584qiGbDHGLMPQETmAj2A9ERh\njFnhUH4tcK8b48mf0rr3rt0Xun3h0ipJSSlMmrSGV175lbi4ZE6ePM+aNQ8BaJJQSuU6dyaKisAh\nh+lI4AYn5R8ClmS2QEQGAgMBwsLCciu+/EVcu1P5998PMmjQQrZuPQFA374NmDSpozsjU0oVce5M\nFJl9tc20xzkRuRcIB9pkttwYMwuYBRAeHp5/e6078Q9s/8y6a8lVp7ZlXwY4fTqO4cOX8dFHfwNQ\nvXop3nuvKx07Vr+cSJVSymXuTBSRQGWH6UrAkYyFRKQ9MApoY4zJ/J7PguK3EbA/04ui7Pk7v301\nNdUwf/5OfH29eP75Vowc2YrAQN/L25dSSuWAOxPFeqCmiFQDDgN9gXscC4hIU+B9oLMx5rgbY8kb\nSfZAQo0HQYkcfNP39oPal7bh79hxkmrVSuLv70Pp0kH873+9CAsrQZ06ZXIpYKWUyp7bEoUxJllE\nhgA/Yt0eO9sYs1VExgIRxpgFwFtAMPC13Qh70BjT3V0x5ZnafaBy28te/fz5JMaNW8Vbb/3BmDGt\nGTPGqpHTaiallCe49TkKY8xiYHGGeS86vG7vzv27RXIC7JkHCWcuXXbukpq1HFu6dA+DBy9i/35r\n+ydP5nC4U6WUymX6ZHZO7fgCfhzgvIx3QI43e+RIDE89tZSvv7Yatxs2LMfMmd248cbK2ayplFLu\npYkip+JPWb/LNISrMxlXungYVGiWo03u2hVFePgsYmISCQry5eWX2/DUU83x9fXOfmWllHIzTRSX\nq0p7aDspVzZVs2Yo119fkWLFfHn33VupUkU78FNK5R+aKDzg7NkEXnxxBYMHX0+tWqURERYs6Eux\nYn7Zr6yUUnlME0UeMsbwzTfbePLJpRw9GsuOHSdZutTqtUSThFIqv9JEkUf27TvNkCGLWbJkDwDN\nm1fizTcL3k1fSqmiRxOFmyUmpjBx4h+8+uoq4uOTKVkygPHj2/HII9fh5aUd+Cml8j9NFG526FA0\nY8f+SkJCCv36NeTttztSvnywp8NSSimXaaJwg9On4yhZMgARoXr1UKZM6UyNGqG0a3eNp0NTSqkc\nc61va+WS1FTD7Nl/U6PGu3z22eb0+Y8+Gq5JQilVYGmiyCVbtx6nbds5PPTQAk6diktvtFZKqYJO\nq56u0PnzSbz66q9MnLiG5ORUypUrxuTJnbj77gaeDk0ppXKFJoorsGtXFJ06fcaBA2cQgUGDruP1\n19tRqlSgp0NTSqlco4niClSpUoKAAB8aNy7PzJndaN68kqdDUvlIUlISkZGRxMfHezoUVYQEBARQ\nqVIlfH1zb2AzTRQ5kJycysyvErk7OJDSgL+/D0uX9qNixeL4+Ghzj7pYZGQkISEhVK1aFXu8FaXc\nyhhDVFQUkZGRVKtWLde2q//dXLRu3WGaNfuAoW8lMGJRh/T5VaqU1CShMhUfH0/p0qU1Sag8IyKU\nLl06169i9YoiG9HR8Ywa9QvvvbceYyDsKqFH/R2AjjansqdJQuU1d7zn9KtwFowxzJ27hTp1pjN9\n+nq8vb147rkb2fZVMW6rv8vT4SmlVJ4p2oli6ycw9yb4otUlP5vG38rdd3/Lf//FcmOtM/z12mre\nbPIKxXZM83TUSrnM29ubJk2a0KBBA2677TbOnLkwhO/WrVu55ZZbqFWrFjVr1uTVV1/FGJO+fMmS\nJYSHh1O3bl3q1KnDs88+64lDcOrvv//m4Ycf9nQYTr3xxhvUqFGD2rVr8+OPP2Za5oEHHqBatWo0\nadKEJk2asHHjRgD+97//0ahRIxo1asSNN97Ipk2bAEhMTKR169YkJyfnyTEU7aqn9RMgamv6ZEqq\n4O1lfVCa+MGw1lCv/AkevP5vvLwMOA6JXbxKHgerVM4FBgam/9O5//77mT59OqNGjSIuLo7u3bsz\nY8YMOnbsyPnz5+nduzfvvfcejz/+OFu2bGHIkCEsWrSIOnXqkJyczKxZs3I1tuTkZHx8ruxf0Ouv\nv87o0aPzdJ85sW3bNubOncvWrVs5cuQI7du3Z9euXXh7Xzp65VtvvcUdd9xx0bxq1arx66+/UqpU\nKZYsWcLAgQP5888/8fPzo127dnz55Zf069fP7cdRtBOFSbV+3/oJK7aUYPConbz/Rh1aNy8FwKQ+\nWaznGwTlmuZNjKpweNtNbRXPmOzL2Fq0aMHmzVbXMp9//jktW7akY8eOAAQFBTFt2jTatm3L448/\nzoQJExg1ahR16tQBwMfHh8GDB1+yzdjYWIYOHUpERAQiwksvvUTv3r0JDg4mNjYWgG+++YaFCxcy\nZ84cHnjgAUJDQ/n7779p0qQJ8+bNY+PGjZQsaY3qWKNGDVavXo2XlxeDBg3i4MGDALzzzju0bNny\non3HxMSwefNmGjduDMC6det46qmniIuLIzAwkI8//pjatWszZ84cFi1aRHx8POfOneOXX37hrbfe\n4quvviIhIYHbb7+dV155BYCePXty6NAh4uPjefLJJxk4cKDL5zcz8+fPp2/fvvj7+1OtWjVq1KjB\nunXraNGihUvr33jjheGWmzdvTmRkZPp0z549GTlypCaKvHA8phjDx6bwyZd/AzDps3O0vuM2D0el\nVO5KSUnh559/5qGHHgKsaqfrrrvuojLVq1cnNjaWs2fPsmXLFp555plst/vqq69SokQJ/vnnHwBO\nnz6d7Tq7du1i+fLleHt7k5qayrx58xgwYAB//vknVatWpXz58txzzz0MGzaMVq1acfDgQTp16sT2\n7dsv2k5ERAQNGlzoAaFOnTqsWrUKHx8fli9fzgsvvMC3334LwJo1a9i8eTOhoaH89NNP7N69m3Xr\n1mGMoXv37qxatYrWrVsze/ZsQkNDiYuL4/rrr6d3796ULl36ov0OGzaMFStWXHJcffv25fnnn79o\n3uHDh2nevHn6dKVKlTh8+HCm52XUqFGMHTuWdu3aMX78ePz9/S9a/tFHH3HrrbemTzdo0ID169c7\nO9W5psgmitRUw0e/XsOIr7pzOu5f/P29GT26NcOH35j9ykrlVA6++eemuLg4mjRpwoEDB7juuuvo\n0MG6tdsYk+XdMTm5a2b58uXMnTs3fbpUqVLZrnPnnXemV7306dOHsWPHMmDAAObOnUufPn3St7tt\n27b0dc6ePUtMTAwhISHp844ePUrZsmXTp6Ojo7n//vvZvXs3IkJSUlL6sg4dOhAaGgrATz/9xE8/\n/UTTplatQGxsLLt376Z169ZMnTqVefPmAXDo0CF27959SaKYPHmyaycHLmrzSZPZ+X3jjTe46qqr\nSExMZODAgbz55pu8+OKL6ctXrFjBRx99xO+//54+z9vbGz8/v0vOizsUyUSxf/9p7r13Hn/8cT0A\nHW8uz/RZd1GjRqiHI1Mqd6W1UURHR9OtWzemT5/OE088Qf369Vm1atVFZfft20dwcDAhISHUr1+f\nDRs2pFfrZCWrhOM4L+M9/cWKFUt/3aJFC/bs2cOJEyf4/vvv09sbUlNTWbNmDYGBWXeHExgYeNG2\nx4wZw80338y8efM4cOAAbdu2zXSfxhhGjhzJo48+etH2Vq5cyfLly1mzZg1BQUG0bds20+cRcnJF\nUalSJQ4dOpQ+HRkZydVXX33JuhUqVADA39+fAQMGMHHixPRlmzdv5uGHH2bJkiWXJK2EhAQCAgIu\n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\noaK/AZfc/9qXbCcKAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fpr, tpr, _ = roc_curve(y, probability)\n", "roc_auc = auc(fpr, tpr)\n", "\n", "plot_roc_curve(fpr, tpr, roc_auc)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "probability_histogram_class(probability, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Beautiful! Again, the positive class appears uniformly throughout the probabilities prevents the model from finding pockets of the positive class." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPython 3.6.3\n", "IPython 6.1.0\n", "\n", "numpy 1.13.3\n", "matplotlib 2.0.2\n", "sklearn 0.19.1\n", "\n", "compiler : GCC 7.2.0\n", "system : Linux\n", "release : 4.13.0-36-generic\n", "machine : x86_64\n", "processor : x86_64\n", "CPU cores : 4\n", "interpreter: 64bit\n" ] } ], "source": [ "%load_ext watermark\n", "%watermark -v -m -p numpy,matplotlib,sklearn" ] } ], "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.3" } }, "nbformat": 4, "nbformat_minor": 2 }