Skip to content

Instantly share code, notes, and snippets.

@austinbrian
Last active October 15, 2019 19:49
Show Gist options
  • Save austinbrian/14e310986d162879938a2d8830a972c2 to your computer and use it in GitHub Desktop.
Save austinbrian/14e310986d162879938a2d8830a972c2 to your computer and use it in GitHub Desktop.
Example Code for Data Science metrics and descriptive statistics
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"from sklearn import datasets, model_selection\n",
"import seaborn as sns\n",
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data\n",
"The iris dataset is embedded inside sklearn"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [],
"source": [
"from sklearn import datasets\n",
"iris = datasets.load_iris()\n",
"X = iris.data \n",
"y = iris.target\n",
"\n",
"# add in some noisy features for later\n",
"n_samples, n_features = X.shape\n",
"X = np.c_[X, np.random.RandomState(0).randn(n_samples, 200*n_features)]"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = model_selection.train_test_split(\n",
" X, \n",
" y, \n",
" test_size = 0.33\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"ir = pd.DataFrame(iris.data)\n",
"ir.columns = iris.feature_names\n",
"ir['CLASS'] = iris.target"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sepal length (cm)</th>\n",
" <th>sepal width (cm)</th>\n",
" <th>petal length (cm)</th>\n",
" <th>petal width (cm)</th>\n",
" <th>CLASS</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5.1</td>\n",
" <td>3.5</td>\n",
" <td>1.4</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4.9</td>\n",
" <td>3.0</td>\n",
" <td>1.4</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4.7</td>\n",
" <td>3.2</td>\n",
" <td>1.3</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4.6</td>\n",
" <td>3.1</td>\n",
" <td>1.5</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5.0</td>\n",
" <td>3.6</td>\n",
" <td>1.4</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) \\\n",
"0 5.1 3.5 1.4 0.2 \n",
"1 4.9 3.0 1.4 0.2 \n",
"2 4.7 3.2 1.3 0.2 \n",
"3 4.6 3.1 1.5 0.2 \n",
"4 5.0 3.6 1.4 0.2 \n",
"\n",
" CLASS \n",
"0 0 \n",
"1 0 \n",
"2 0 \n",
"3 0 \n",
"4 0 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ir.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Basic Descriptors"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6c1efde2b0>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"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": [
"sns.distplot(ir['sepal length (cm)'], \n",
" kde=True, rug=True, hist=True)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.JointGrid at 0x7f6c1edc6ef0>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 3 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.jointplot(x='sepal length (cm)', y='petal length (cm)',data=ir)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6c23beed30>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.heatmap(ir[ir.columns[:-1]])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Models"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.46"
]
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Neighbors\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"clf = KNeighborsClassifier(n_neighbors=7)\n",
"clf.fit(X_train, y_train)\n",
"clf.score(X_test, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Metric Graphing"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [],
"source": [
"import sklearn.metrics as metrics\n",
"# calculate the fpr and tpr for all thresholds of the classification\n",
"def make_roc_auc(X_test, y_test, model):\n",
" try:\n",
" probs = model.predict_proba(X_test)\n",
" preds = probs[:,1]\n",
" except AttributeError:\n",
" preds = model.predict(X_test)\n",
" fpr, tpr, threshold = metrics.roc_curve(y_test, preds, pos_label=0)\n",
" roc_auc = metrics.auc(fpr, tpr)\n",
" plt.title('Receiver Operating Characteristic')\n",
" plt.plot(fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc)\n",
" plt.legend(loc = 'lower right')\n",
" plt.plot([0, 1], [0, 1],'r--')\n",
" plt.xlim([0, 1])\n",
" plt.ylim([0, 1])\n",
" plt.ylabel('True Positive Rate')\n",
" plt.xlabel('False Positive Rate')\n",
" plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEWCAYAAAB42tAoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deZyN9R7A8c/XnqWUtMpFRCqkIVq1KG20SmlfXC2KUmkRbfdq36iUSlFUQhvRleVeQkrZyRaTJURZGszM9/7xfYZjzHJm5jxnzsx836/XeTnLc57ndx5nnu/5bd+fqCrOOedcdkoVdgGcc84lNg8UzjnncuSBwjnnXI48UDjnnMuRBwrnnHM58kDhnHMuRx4oXNREpKOIjC3sciQSEdkiInUK4bi1RERFpEy8jx0GEZkrIq3y8T7/TsaBB4oiSkSWi8jfwYVqjYgMFJHKYR5TVT9Q1XPCPEYkETlJRL4Vkc0i8qeIfCEiDeN1/CzKM0FEbol8TlUrq+rSkI53lIh8IiLrg88/S0TuEZHSYRwvv4KAVbcg+1DVY1R1Qi7H2Ss4xvs7WVJ5oCjaLlLVykAT4HjgwUIuT75k9atYRFoCY4HPgMOA2sDPwOQwfsEn2i9zETkSmAasBI5T1f2AK4AkoEqMj1Vonz3RzrvLhqr6rQjegOXA2RGPnwG+inhcHngOWAGsBd4A9ol4vR3wE/AXsARoEzy/H/A2sBr4DXgSKB28dgPwv+D+G8Bzmcr0GXBPcP8w4FNgHbAMuCtiu97AMGBwcPxbsvh8/wVey+L50cD7wf1WQDLwELA+OCcdozkHEe99AFgDDAL2B74MyrwxuF8j2P4pIA1IAbYAfYPnFagb3B8I9AO+AjZjF/ojI8pzDrAQ+BN4DZiY1WcPth0c+f+Zxeu1gmNfH3y+9cDDEa83B74DNgX/l32BchGvK3AH8AuwLHjuZSww/QX8AJwasX3p4DwvCT7bD8ARwKRgX1uD83JlsP2F2PdrEzAFaJTpu/sAMAvYDpQh4vsclH1GUI61wAvB8yuCY20Jbi2J+E4G2xwDfAP8Ebz3ocL+Wy0Ot0IvgN/y+R+35x9WDWA28HLE6y8BnwMHYL9AvwD+HbzWPLhYtcZqlYcDDYLXRgL9gUrAQcB04J/Ba7v+KIHTgouKBI/3B/7GAkSp4ELyKFAOqAMsBc4Ntu0N7AQuDrbdJ9Nnq4hdlM/I4nPfCKwO7rcCUoEXsKBwenDBqh/FOch479PBe/cBqgGXBcevAnwCjIw49gQyXdjZO1D8EZzfMsAHwNDgtQODC9+lwWt3B+cgu0CxBrgxh///WsGx3wrK3hi76B4dvH4C0CI4Vi1gPtA1U7m/Cc5NRvC8JjgHZYB7gzJUCF67D/uO1QckOF61zOcgeNwU+B04EQsw12Pf1/IR392fsECzT8RzGd/n74Brg/uVgRaZPnOZiGPdwO7vZBUsKN4LVAgen1jYf6vF4VboBfBbPv/j7A9rC/brToFxQNXgNcEumJG/Zluy+5djf+DFLPZ5cHCxiax5XAWMD+5H/lEK9gvvtODxrcC3wf0TgRWZ9v0g8G5wvzcwKYfPViP4TA2yeK0NsDO43wq72FeKeP1joGcU56AVsCPjQphNOZoAGyMeTyD3QDEg4rXzgQXB/euA7yJeEyzQZhcodhLU8rJ5PeOiWSPiuelAh2y27wqMyFTuM3P5jm0EGgf3FwLtstkuc6B4HXgi0zYLgdMjvrs3ZfF9zggUk4DHgAOz+czZBYqrgJlh/t2V1Ju3DxZtF6vqf0TkdOBD7FfrJqA69qv4BxHJ2FawX3dgv+RGZbG/fwBlgdUR7yuFXdD2oKoqIkOxP85JwNVYc0nGfg4TkU0RbymNNSdl2GufETYC6cChwIJMrx2KNbPs2lZVt0Y8/hWr1eR2DgDWqWrKrhdFKgIvYsFo/+DpKiJSWlXTcihvpDUR97dhv4gJyrTrMwfnLzmH/WzAPmu+jiciR2E1rSTsPJTBanmR9vg/EJF7gVuCsiqwL/adAvvOLImiPGD//9eLSJeI58oF+83y2JncDDwOLBCRZcBjqvplFMfNSxldHnhndjGgqhOxX7PPBU+tx5qBjlHVqsFtP7WOb7A/0iOz2NVKrEZxYMT79lXVY7I59BDgchH5B1aL+DRiP8si9lFVVauo6vmRxc7h82zFmh+uyOLl9ljtKcP+IlIp4nFNYFUU5yCrMtyLNa2cqKr7Ys1rYAEmxzJHYTVWU7IdWvSqkf3m/AdrBsuv17EgWy/4LA+x+3Nk2PV5RORUrN+gPbC/qlbFmicz3pPddyYrK4GnMv3/V1TVIVkdOzNV/UVVr8KaPp8GhgX/x7md/7yU0eWBB4ri4yWgtYg0UdV0rO36RRE5CEBEDheRc4Nt3wZuFJGzRKRU8FoDVV2NjTR6XkT2DV47Mqix7EVVZ2IdvwOAMaqaUYOYDvwlIg+IyD4iUlpEjhWRZnn4PD2wX6V3iUgVEdlfRJ7Emo8ey7TtYyJSLrjYXQh8EsU5yEoVLLhsEpEDgF6ZXl+L9bfkx1fAcSJycTDS5w7gkBy27wWcJCLPisghQfnrishgEakaxfGqYH0iW0SkAXBbFNunYv+fZUTkUaxGkWEA8ISI1BPTSESqBa9lPi9vAZ1F5MRg20oicoGIRDVaS0SuEZHqwf9hxncqLShbOtn/H3wJHCIiXUWkfPC9OTGaY7qceaAoJlR1HfA+1j4P9utwMTBVRP7CfqHWD7adjnUKv4j9apyINReAtaWXA+ZhTUDDyLkJZAhwNtb0lVGWNOAirI1/GfbrfgA2oiraz/M/4Fys83c11qR0PHCKqv4SsemaoJyrsM7jzqqa0VyV7TnIxktYx/B6YCrwdabXX8ZqUBtF5JVoP0vwedZjNaRnsGalhtjInu3ZbL8EC4q1gLki8idWY5uB9UvlpjvWHLgZu3B/lMv2Y7ARZYuwc53Cns1DL2D9P2OxAPQ2dq7A+pzeE5FNItJeVWdgfVZ9sf+bxVhfQrTaYJ95C3bOO6hqiqpuw0afTQ6O1SLyTaq6GRugcRH2vfgFOCMPx3XZyBix4lyRE8zkHayqOTXhJCQRKYUNz+2oquMLuzzO5cRrFM7FiYicKyJVRaQ8u/sMphZysZzLVWiBQkTeEZHfRWRONq+LiLwiIouD1ARNwyqLcwmiJTYqZz3WPHKxqv5duEVyLnehNT2JyGnYOP/3VfXYLF4/H+iCjTU/EZss5h1PzjmXYEKrUajqJGyWanbaYUFEVXUqUFVEohk37pxzLo4Kc8Ld4ew5qiI5eG515g1FpBPQCaBSpUonNGjQIC4FdM65Im/1atJXrWEm6etVtXp+dlGYgSLz5B/IZkKNqr4JvAmQlJSkM2bMCLNczjlX9KmCCAuf/Zxv7h9LF/r9mt9dFeaop2Rsyn2GGthYeOecc/m1cSPcfDP8618AvPprW7qX71ugXRZmoPgcuC4Y/dQC+DOYGeyccy4/RoyAhg3hvfdg50527IChQ6Fdu4LtNszhsUOwfD31RSRZRG4Wkc4i0jnYZBSWenoxNnP09rDK4pxzxdratdC+PVx6KRxyCEyfDr17M2YMbNgA115bsN2H1kcRJPXK6fWMhVOcc84VxMqV8NVX8NRTcN99ULYsAIMGwYEHwrk5ZTiLgqcZd865oujXX+GLL+DOOyEpCVasgGrVdr28aRN8/jnceuuuuJFvnsLDOeeKkvR06NcPjj0WHnwQVgdduxFBAmDYMNi+veDNTuCBwjnnio6FC+H0060WcfLJMGcOHJr1POXBg+Goo6BZXpL7Z8ObnpxzrijYtg1OOQXS0mDgQLjuOpCspqNZq9TEifD449lukiceKJxzLpEtWgT16kHFitY73aSJjWzKwQcf2L/XXBObInjTk3POJaKUFHj4YZsXkXHlb9Mm1yChavHklFOgdu3YFMVrFM45l2gmT7bZ1QsXwo03wgUXRP3WH3+EBQugf//YFcdrFM45l0ieeAJOPdVqFGPGwDvvwP77R/32QYOgXDm44orYFckDhXPOJYKMtYGaNIEuXWxE0znn5GkXqakwZAhceGGeYkuuPFA451xh+uMPuP56ePJJe3zRRfDyy1C5cp53NXYs/P57bOZORPJA4ZxzhWXYMDj6aPjww901igIYPBgOOADOPz8GZYvgndnOORdvq1fbpLnhw+GEE6wq0LhxgXa5eTOMHGmVk3LlYlTOgNconHMu3latso7qp5+GqVMLHCQAPv0U/v479s1O4DUK55yLj+XLLYlfly5Wi1i5MqY9zoMGQZ060LJlzHa5i9conHMuTGlp8MorlsTv4YdhzRp7PoZBIjkZxo+3mdixSNmRmQcK55wLy/z5cNppcPfdNjdizpxcZ1bnR0ZfeKxSdmTmTU/OOReGbdssSKSnw/vvh/ZzPyNlR4sWlhIqDB4onHMulhYsgPr1LYnfBx9YR/XBB4d2uJ9/topKv36hHcKbnpxzLib+/hseeACOOWZ3Er9zzgk1SIDNnShTxpbMDovXKJxzrqAmTYJbboFffrF/L7wwLodNS7P+ifPPt7Wxw+I1CuecK4jHHrNV51JT4T//gbfegqpVQz9sejp89pnN3Qtj7kQkr1E451x+qFrndFISdOtmWV8rVYr5YTZvtmzjkbcFC6zy8vfftlR22BUYDxTOOZcX69dbYKhXDx591NaKyMN6EVlJS4MVK/YMBBn3V63avV2pUrYYUYMGcPbZ1mfeujVUqFDAz5QLDxTOORcNVfjkE8vRtHEj9OqV51389dfegWDhQlvtdPv23dtVrWrBoHVrCwYNGti/Rx4J5cvH8DNFyQOFc87lZtUquP126xRISrK+iEaNstw0Lc2ydWRuKlq4cPekbIDSpS3lRv36NjgqIxjUrw/Vq4czwzq/PFA451xu1qyBb7+FZ5+Frl2hTBk2bcq6qWjx4j1rBwccYBf/887bHQgyagexzvIaFg8UzjmXlaVLSRvxOcvadWXBqqYsv38FsxZVZeFZFhh+/333pmXK2IW/fn0bqhrZXBTmsNV48UDhnCvx/vgjor9gfhp1R73CVXMfZoeW5ZTuHVjLIUBVDjzQLv4XXrhnMKhTB8qWLexPER4PFM65EmHnTli2bO+O5IULYd0626Yhc3lHbuZEncb3B1/AN5e+wb+bHbKruahatcL9DIXFA4VzrlhZvz7rjuQlS2xOXIbq1a1G0K6dBYGGtbZx7q2nU6qMwCsf0qxDB5olUo9yIfJA4ZwrcnbutAt/VkNNN2zYvV25clC3LjRsCJdcsufIol3LQcybZ+tWS0WoOtSS+FWvXiifK1F5oHDOJSRVqx1k1VS0ZIkNQ81w8MF28b/00j2DQa1a1tGcpW3bbC7ECy/AwIGWB+Pss+PwyYoeDxTOuUK1Y4cNKc1qqOnGjbu3K1fOJkMfdxxcfvmeQ03znFppwgS49VY78D//CW3bxvIjFTseKJxzoVO14aRZNRUtXWoJ7jIceqhd/Nu333Nk0T/+YZPUCqxXL3j8cRvP+u23cMYZMdhp8eaBwjkXipUr7Xo8a5YFhD//3P1ahQpWO2jSBDp02F0zOOoo2G+/kAqUkcSveXO4914rXMWKIR2seAk1UIhIG+BloDQwQFX7ZHp9P2AwUDMoy3Oq+m6YZXLOhW/sWOjY0boBTjwRrr56z6aimjVjVDuIxrp1tmZ1/fpWm4hBEr+SJrRAISKlgX5AayAZ+F5EPlfVeRGb3QHMU9WLRKQ6sFBEPlDVHWGVyzkXnvR0y7b92GO20NuwYXZ9LhSqMGQI3HWXZeN77LFCKkjRF+bCRc2Bxaq6NLjwDwXaZdpGgSoiIkBl4A8gFedckbN+vaWv6N0brrkGpk4txCCRnGwd1B072vjYmTPhwQcLqTBFX5iB4nBgZcTj5OC5SH2Bo4FVwGzgblVNz7QNItJJRGaIyIx1GVMonXMJY+pUOP54GD8e+veH994LZQ2f6K1bZ8uTvvACTJ5s1RuXb2EGiqymNGqmx+cCPwGHAU2AviKy715vUn1TVZNUNam6T4RxLmGowquvwmmnWa6jKVOgU6dCSpG9eDG8+KLdP/54603v1i2OnSHFV5iBIhk4IuJxDazmEOlGYLiaxcAyoEGIZXLOxcjmzTZi6a67oE0b+OEHOOGEQihIaio895xNsHjsMVi71p7fd6/fnC6fwgwU3wP1RKS2iJQDOgCfZ9pmBXAWgIgcDNQHloZYJudcDMyZA82aWWf100/DyJERKTHiafZsOOkkuO8+W/1n7lybpu1iKrRRT6qaKiJ3AmOw4bHvqOpcEekcvP4G8AQwUERmY01VD6jq+rDK5JwruEGDbDLzvvvafLXTTy+kgmzbZpPlSpWCoUNthp4n8QtFqPMoVHUUMCrTc29E3F8FnBNmGZxzsZGSYou79e9vwWHIEJtFHXdz5ljndMWK8NFHlsSvOKwOlMDCbHpyzhUTy5bBySdbkOjRw5aMjnuQ2LoV7rnH1qoePNieO+ssDxJx4Ck8nHM5+uILuO46u//553DRRYVQiHHjLInfsmVw++22iISLG69ROOeylJpqc9TatrWlPn/4oZCCRM+elv67TBmYOBH69fMRTXHmgcI5t5c1a6B1a+jTx+ZFTJ5swSKuMlLKnnQS3H8//PyzTdhwcedNT865PUyaBFdeadle33tvd7NT3Pz+u03OqF/f5kWcd57dXKHxGoVzDrBZ1s88A2eeaS0706bFOUioWif10UfDiBGeAjyBeI3COcemTXD99dZZfcUVMGBAnLsBVq6Ezp1h1Cho2dIK0LBhHAvgcuI1CudKuB9/hKZN7Rr98ss2NSHufcUbNlhHyMsvw3//60EiwXiNwrkSStV+uHfpAtWrW99Ey5ZxLMCiRVaF6d7dlrpbuRKqVIljAVy0vEbhXAm0bRvccIONaDr9dFuuIW5BIjXVEkQ1agRPPbU7iZ8HiYTlgcK5EmbRIluedNAgWxl01Kg4Tm7++Wc7eI8etsrRvHmexK8I8KYn50qQYcPgppugXDkYPRrOPTeOB9+2zVJulCljBbnssjge3BWE1yicKwF27LA1fK64wvLpzZwZxyAxa5Z1iFSsCJ98YrUIDxJFigcK54q55GRo1QpeegnuvtuyYBxxRK5vK7gtW+yATZpYOxdYWvADDojDwV0sedOTc8XYN9/A1VdbivCPPrIlG+J24E6dYPlyuPNOuOSSOB3YhSGqGoWIlBORumEXxjkXG+np8Pjj1rx08MEwY0Ycg8TDD9tqc+XL25yIV1/1EU1FXK6BQkQuAGYD3wSPm4jIiLAL5pzLn/XrbUBRr15wzTWWiqN+/TgcOCOJ3ymnWNrZn36y+67Ii6ZG8ThwIrAJQFV/Arx24VwCmjoVjj8exo+3RYbeew8qVQr5oGvWwOWXQ+/e9vi88+Bf/4IKFUI+sIuXaALFTlXdlOk5DaMwzrn8UbUWntNOg7JlYcoU6yIIdQlpVRg40NJtfPmlrxFRjEXTmT1fRNoDpUSkNnA3MDXcYjnnorV5M9xyC3z8sS0s9N57sP/+IR/0118tEo0da81LAwbEqX3LFYZoahR3AicA6cBwIAULFs65QjZnDjRrZvPX+vSBkSPjECTA0s1+/z307WvjbT1IFGvR1CjOVdUHgAcynhCRS7Gg4ZwrJIMHwz//aQOKxo2zuRKhWrjQkvjddx80bgwrVkDlyiEf1CWCaGoUj2Tx3MOxLohzLjopKbZ0w7XXQlKSzbIONUjs3An//rcFhz59bAU68CBRgmRboxCRc4E2wOEi8kLES/tizVDOuThbtszScPzwAzzwADz5pKVOCs3MmXDzzfbv5ZdbU9NBB4V4QJeIcvqK/Q7Mwfok5kY8vxnoEWahnHN7++ILW5pUFT77DNq2DfmA27ZB69Y2jOrTT+HSS0M+oEtU2QYKVZ0JzBSRD1Q1JY5lcs5FSE2Fnj2t1adpU8urV6dOiAecOdPyM1WsaL3kjRvHqYfcJapo+igOF5GhIjJLRBZl3EIvmXOONWvsR32fPjYadfLkEIPE5s2Wl6lp091J/Fq18iDhohr1NBB4EngOOA+4Ee+jcC50kybBlVfCn3/a3IjrrgvxYF9/bUOoVq60jK/ezOQiRFOjqKiqYwBUdYmqPgKcEW6xnCu5VOGZZ+DMM23o67RpIQeJBx+0tBuVKlmV5aWXfEST20M0NYrtIiLAEhHpDPwG+LAH50KwaRNcf71NV7j8cnj77RAzY6SlQenS1rxUpgw88ohlfHUuk2gCRTegMnAX8BSwH3BTmIVyriSaOdMWflu50n7U33VXSLmaVq+GO+6wpe6eeMJykcd1TVRX1OTa9KSq01R1s6quUNVrVbUt8GscyuZciaBqqZJatrS5bZMmWTdBzIOEKrz7riXxGz3aO6ld1HIMFCLSTEQuFpEDg8fHiMj7eFJA52Ji2za48Ua49VbL/PrjjxYwYm75cltM6Kab4Ljj4Oef4Z57QjiQK46yDRQi8m/gA6Aj8LWIPAyMB34GjopP8ZwrvhYtghYt4P33bZGh0aOhevWQDvbnnxaFXnsNJkyAo/xP2EUvpz6KdkBjVf1bRA4AVgWPF0a7cxFpA7wMlAYGqGqfLLZpBbwElAXWq+rpeSi/c0XSsGH2475cOQsQoXQRzJtnveI9euxO4hf6KkauOMqp6SlFVf8GUNU/gAV5DBKlgX7Y3IuGwFUi0jDTNlWB14C2qnoMcEUey+9ckbJjB3TrZvmajjnGOrBjHiR27LAkUMcfD889tzuJnwcJl0851SjqiEhGKnEBakU8RlVzm5HTHFisqksBRGQoVkuZF7HN1cBwVV0R7PP3PJbfuSIjORnat4fvvrMRTc8+azWKmJoxw5L4zZoFHTrAyy97Ej9XYDkFissyPe6bx30fDqyMeJyMrb0d6SigrIhMAKoAL6vq+5l3JCKdgE4ANWvWzGMxnCt833wDV19tKcI/+sgCRsxt3WrVkwoV4pQ10JUUOSUFHFfAfWc1uC/zWttlsNXzzgL2Ab4TkamqukcuKVV9E3gTICkpydfrdkVGerq1AvXubaNShw2DBg1ifJAff7QkfpUqwYgR0KgRVK0a44O4kiyaFB75lQwcEfG4BtYhnnmbr1V1q6quByYBjUMsk3Nxs349nH++jWjq2NFSccQ0SPz1F9x+O5xwgi13BzbG1oOEi7EwA8X3QD0RqS0i5YAOwOeZtvkMOFVEyohIRaxpan6IZXIuLqZNsySs48dD//42BDamfcmjRllveP/+Nh/isswtxc7FTtSBQkTylARGVVOBO4Ex2MX/Y1WdKyKdg5xRqOp84GtgFjAdG0I7Jy/HcS6RqMKrr8Kpp1oapSlTLD14TGdZP/AAXHCBJYGaMgWef95HNLlQ5ZrrSUSaA29jOZ5qikhj4BZV7ZLbe1V1FDAq03NvZHr8LPBsXgrtXCLavNlmWH/0EVx4odUiYpYlQ9U6PEqXhrPOsg7rhx7yJH4uLqKpUbwCXAhsAFDVn/E0487tYe5caNbMVp/r08cGHcUsSPz2G1x8sXV2gKXieOwxDxIubqIJFKVUNXMSwLQwCuNcUTR4MDRvbinCx42zlqFSsej9U4W33rLhUmPHwoEHxmCnzuVdNF/nlUHzk4pIaRHpCvhSqK7ES0mBzp3h2mshKclmWbdqFaOdL1tmTUydOlmv+OzZ0LVrjHbuXN5EEyhuA+4BagJrgRbBc86VWMuWwSmn2KCj+++3msShh8bwAFu22Ozq/v1t53XrxnDnzuVNNAsXpapqh9BL4lwR8cUXtjSpKowcCe3axWjHc+ZYEr+HHrJU4CtWQMWKMdq5c/kXTY3iexEZJSLXi0iV0EvkXIJKTbXlpdu2hdq1bUJ0TILEjh3WOd20Kbz44u4kfh4kXIKIZoW7I4EnsVQbs0VkpIh4DcOVKGvWQOvWNqLp1ltt+kKdOjHY8fff28zq3r0tpey8eZ7EzyWcqMZmqOoUVb0LaAr8hS1o5FyJMGmS/difNg0GDoQ337RpDAW2dSu0aQMbN1qT0wcfhLhykXP5l2ugEJHKItJRRL7AZk+vA04KvWTOFTJVSwV+5plQubIFiuuvj8GOZ8ywyXOVKtmEi7lz4aKLYrBj58IRTY1iDjbS6RlVrauq96rqtJDL5Vyh2rQJLrnERjRdcold2487roA7/fNP+Oc/bWZeRhK/U06B/fYrcHmdC1M0o57qqGp66CVxLkHMnAmXX26Djl56yRYZKnCupi++sEkXa9ZA9+52AOeKiGwDhYg8r6r3Ap+KyF5rQESxwp1zRYoqvP023HmnTYKeOBFOikUj63332ZKkxx1n42mbNYvBTp2Ln5xqFB8F/+Z1ZTvnipxt22xph/fes9FNBe5XVoW0NChTxnIz7buv5faI+dqnzoUv2z4KVZ0e3D1aVcdF3oCj41M858K3aBG0aGHZXnv1gtGjCxgkkpNtskVGEr/WraFnTw8SrsiKpjP7piyeuznWBXGuMAwbZnmaVq2ytYB697ZM3vmSnm4pNxo2hG+/hUMOiWVRnSs0OfVRXImtSldbRIZHvFQF2BR2wZwL0+bNlimjb1848UT4+GOoWbMAO1y6FG66yTo2zjrLJlvEZEaec4Uvpz6K6dgaFDWAfhHPbwZmhlko58KiCp9+aolYV62Cu++GZ56JQavQ1q02q3rAAAsYMV3SzrnClW2gUNVlwDLgP/ErjnPhWbLERjR9/TU0aWIB48QTC7DD2bNtwtwjj9iIpl9/hX32iVl5nUsU2fZRiMjE4N+NIvJHxG2jiPwRvyI6VzDbt8MTT8Cxx8LkyTY34vvvCxAktm+HRx+1vB6vvLI7iZ8HCVdM5dT0lLHcqS+r5YqsceNs2OuiRdC+vSVnPeywAuxw6lS4+WZrZrr2WtthtWoxK69ziSin4bEZs7GPAEqrahrQEvgnUCkOZXMu39asgauvhrPPtukMY8bARx8VMEhs3QoXXGA94aNG2XhaDxKuBIhmeOxIbBnUI4H3sTkUH4ZaKufyKS3NRjLVr299EL162XpA55xTgJ1Om7Y7id8XX1gSv/POi1mZnUt00QSKdFXdCVwKvKSqXYDDwy2Wc3k3Y7wvR4sAAB6XSURBVIb1O3TpYv/OmWPzIvKdEnzTJrjlFpuNl5HE76SToIqv3+VKlmgCRaqIXAFcC3wZPFc2vCI5lzebNsEdd0Dz5jbkdehQa2qqV68AOx050ibODRxoqTeuuCJWxXWuyIl2ZvYZWJrxpSJSGxgSbrGcy52q5WRq0ADeeMNqEvPnw5VXFnAawz33WG7xgw6yZqc+fXxEkyvRck0zrqpzROQuoK6INAAWq+pT4RfNuewtWGC1iG+/tZrEqFE2WjXfIpP4nX++dVLffz+U9cqzc9GscHcqsBh4G3gHWCQiJ4ddMOey8vffNr+tUSP48Ud4/XVbv7pAQWLFChvNlJHE7+yz4eGHPUg4F4hm4aIXgfNVdR6AiBwNDAKSwiyYc5mNGmUzq5ctsykMzz4LBx9cgB2mp1ub1QMP2P0LLohZWZ0rTqLpoyiXESQAVHU+4PmSXdwkJ8Nll9l1vHx5GD/epjAUKEgsXgytWln7VcuWNuT1jjtiVWTnipVoahQ/ikh/rBYB0BFPCujiIDXVMmQ8+qh1H/zrX3DvvTFa1iElxaZrv/suXH+9J/FzLgfRBIrOwF3A/YAAk4BXwyyUc1OmwG23waxZVpN49VWoXbuAO/3pJ0vi16uXJX5avrwAkyycKzlybHoSkeOANsAIVW2rqhep6rOqmhKf4rmSZsMGm+N28snwxx8wYoRNhi5QkEhJsc7ppCTr/c5I4udBwrmo5JQ99iEsfUdH4BsRyWqlO+diIj0d3nnHUm8MHAjdu9uciIsvLmCr0JQpcPzx1m51zTWWzO+gg2JVbOdKhJyanjoCjVR1q4hUB0Zhw2Odi6nZs62ZafJkq0m8/rot71BgW7fCRRdB5cq2CMW558Zgp86VPDk1PW1X1a0Aqroul22dy7MtW2xO2/HH2wS6t9+GSZNiECS++253Er8vv7SkTx4knMu3nC7+dURkeHAbARwZ8Xh4Du/bRUTaiMhCEVksIj1y2K6ZiKSJyOV5/QCu6FG1voeGDW0uxA03wMKFtoJoqYL8HNm40XZy0kkwKBik17KlJ/FzroByanq6LNPjvnnZsYiUxtbabg0kA9+LyOeRczIitnsaGJOX/buiadkyy8n01VdWcxgyxJqbCmz4cJsHsW4dPPigJXxyzsVETmtmjyvgvptjeaGWAojIUKAdMC/Tdl2AT4FmBTyeS2A7dsDzz9uSpKVKwXPPwV13xShLRrdutr5pkyY2ffv442OwU+dchmjmUeTX4cDKiMfJwB6rFIvI4cAlwJnkEChEpBPQCaBmzZoxL6gL14QJthzp/Plw6aV2TT/iiALuNDKJ34UX2kim7t09P5NzIQizgzqrQY2a6fFLwAPBMqvZUtU3VTVJVZOqV68eswK6cP3+O1x3HZxxhk1l+OorW3WuwEFi+XJo0wZ69rTHZ51lzU0eJJwLRdSBQkTK53Hfydh62xlqAKsybZMEDBWR5cDlwGsicnEej+MSTEauvfr1bRGhhx+2gUfnnx+DHb/6qs2qnjIF/vGPmJTXOZezaNKMNxeR2cAvwePGIhJNCo/vgXoiUltEygEdgM8jN1DV2qpaS1VrAcOA21V1ZF4/hEscM2faQKPbbrOuglmz4MknoWLFAu74l1/gtNOsY+PUUy3ydO4ckzI753IWTY3iFeBCYAOAqv6MrXiXI1VNBe7ERjPNBz5W1bki0llE/C+8mPnrL7j7bsuSsXy5LTE9bpytPhcTO3bAkiWWNnbUKK9NOBdH0XRml1LVX2XPPAo59ilkUNVR2IzuyOfeyGbbG6LZp0ssqvDxxzbwaM0aq0k89RRUrRqDnc+caUn8eveGY46xCFQ+ry2gzrmCiqZGsVJEmgMqIqVFpCuwKORyuSLgl1+sT7lDBzjsMFteul+/GASJlBTrnG7WDPr3t7kR4EHCuUISTaC4DbgHqAmsBVoEz7kSKiXFfuQfdxxMnWr9y9Om2XW9wP73P2jcGPr0sSFT8+aBj3RzrlDl2vSkqr9jHdHOMXasTYBevBiuusom0R16aIx2vmULtGsH++5rB2rdOkY7ds4VRK6BQkTeYu/5D6hqp1BK5BLSqlXWD/Hxx3DUUfDNN3D22THa+f/+Z/mZKle2yRbHHmv3nXMJIZqmp/8A44LbZOAgYHuYhXKJIzUVXn7ZRi999hk8/rgNeY1JkNiwwZqXTj11dxK/Fi08SDiXYKJpevoo8rGIDAK+Ca1ELmFMm2ajmGbOtE7rvn3hyCNjsGNVGDYM7rzTlrHr2dN6xJ1zCSk/KTxqAz6IvRjbuNHmsrVsCWvXwief2NSFmAQJsDas9u0tl8eMGVZN8RFNziWsaPooNrK7j6IU8AeQ7doSruhStRag7t2tVahrV3jssRgt56Bq7Vhly0Lbtjae9p57LKmfcy6h5fhXKjbLrjHwW/BUuqru1bHtir558yzD68SJ1k0wdqxl7Y6JZcugUyc44QQb9nrmmXZzzhUJOTY9BUFhhKqmBTcPEsXMtm02t61xY+uk7t/f1q6OSZBIS7Oe8GOPtQ6POnVisFPnXLxFU++fLiJNVfXH0Evj4urLL60/+ddf4frrbVnSmM1tW7TI1jj97js47zyLQAXOL+6cKwzZBgoRKRMk9jsFuFVElgBbsXUmVFWbxqmMLsZWrLAEfiNH2rrVEydaYtaYSk21CDR4MFx9NUhWy5M454qCnGoU04GmgK8PUUzs3Akvvmgd1GDdBd26QblyMTrAjBk22eKJJywCLV3qo5mcKwZyChQCoKpL4lQWF6L//c/mRMyZY4OOXnklhpm6//4bevWyfB6HHGJrRlSv7kHCuWIip0BRXUTuye5FVX0hhPK4GFu3Dh54AN59F2rWtB/8bdvG8AATJ8Itt1jyp1tvhWeeiVGOcedcosgpUJQGKpP12tcuwaWnwzvvWJD46y/7t2dPqFQphgfZsgUuvdQCw7hxPuTVuWIqp0CxWlUfj1tJXMzMmmUzq7/7zjqpX3vN1v2Jmf/+F04+2XIyjR5tO49pBHLOJZKc5lF4TaKI2bwZ7r0Xmja1RYUGDoQJE2IYJNavh2uuseiTkcSveXMPEs4VcznVKM6KWylcgajC8OE25PW332wS9L//DQccEMMDfPwxdOliiaB69fIkfs6VINkGClX9I54FcfmzdKlNmhs92mZXDxtmKThi6u67bRm7Zs2sL+K442J8AOdcIvOMbEXU9u02k/qppyyv3osvWsCIWY49VZt4Ua4cXHKJjaXt2hVKl47RAZxzRYUHiiLo228tgd/ChXDFFRYkDj88hgdYssSGuiYl2XDXM86wm3OuRMrPehSukKxZAx07wllnWYaM0aOt6yBmQSItDV54wZqWfvgB6teP0Y6dc0WZ1yiKgLQ0eOMNePhhmwT96KPQowfss08MD7JggWUGnD4dLroIXn89xtUU51xR5YEiwc2YYak3ZsywmsRrr8FRR4VwoPR0WLUKhgyBK6/0JH7OuV286SlBbd5sndPNm0Nysl2/v/kmxkFi+nSrpoAl8VuyxIa9epBwzkXwQJGANm+Gc86x1p877rBWoZhev7dts/VOW7aE996zhFAQwzSyzrnixANFgtm2DS68EL7/Hj75xKYv7LdfDA8wfrx1Vj//vI1smjs3hqsVOeeKI++jSCApKXDxxZZK6YMPLN9eTG3ZYuNpq1a1gNGqVYwP4JwrjrxGkSB27IDLL7d+iHfegauuiuHOJ0ywzuqMJH6zZnmQcM5FzQNFAkhNtdVCv/rK+iVuuCFGO163ziLOGWfYkqRgaTgqVozRAZxzJYE3PRWytDSbvvDppzbDunPnGOxU1YZJ3XWX9Yw/8YQn8XPO5ZsHikKUnm79yR9+aNleu3aN0Y67dIF+/Sw74Ntv29BX55zLJw8UhUTV5km8++7umdYFkp5ubVjlyllnR926FjA8iZ9zroBC7aMQkTYislBEFovIXpdCEekoIrOC2xQRaRxmeRKFqi0w9PrrcN990Lt3AXf4yy+2DGnG5LlWrTzTq3MuZkILFCJSGugHnAc0BK4SkcxtIMuA01W1EfAE8GZY5Ukkjzxi/RFdusDTTxdgIl1qKjz3HDRqBD/9BEcfHdNyOucchNv01BxYrKpLAURkKNAOmJexgapOidh+KlAjxPIkhCefhH/9y/omXn65AEFi/ny47jpLAtWunSWBOuywmJbVOecg3Kanw4GVEY+Tg+eyczMwOqsXRKSTiMwQkRnrMtJNFEHPPw89e8K111o22AKn5Fi7Fj76CEaM8CDhnAtNmIEiq8ugZrmhyBlYoHggq9dV9U1VTVLVpOpFNN1Ev36WXql9e5tQVyo/Z37qVHjwQbt/9NGWxK99e0/i55wLVZiBIhk4IuJxDWBV5o1EpBEwAGinqhtCLE+hGTDARji1a2fz3vK8XOnWrdCtG5x0kuX2yKhVlS0b87I651xmYQaK74F6IlJbRMoBHYDPIzcQkZrAcOBaVV0UYlkKzeDB0KkTtGljrUR5vrb/5z9w7LHw0ku2/qkn8XPOxVlondmqmioidwJjgNLAO6o6V0Q6B6+/ATwKVANeE2s+SVXVpLDKFG+ffGKzrlu1guHDoXz5PO5gyxabUX3AATBpEpx6ahjFdM65HIlqlt0GCSspKUlnzJhR2MXI1eefw2WXwYknwpgxUKlSHt787bdw+uk2D+KHH2xmdUzXPXXOlTQi8kN+f4h7UsAQjBlj2byPPx5GjcpDkFi71jqnzzprdxK/E07wIOGcK1QeKGJswgRbU6JhQwsY++4bxZtUYdAge9Nnn8FTT1k6WeecSwCe6ymGJk+21enq1IGxY2H//aN84x13WD6Pli0tiZ/PsHbOJRAPFDEyYwacf77Nexs3LoqBSenpsHOn9XBfeaUFh9tv9/xMzrmE401PMfDzz3DOOVCtmvVDH3JILm9YuNA6qzOS+J1+umd6dc4lLA8UBTRvHpx9tnVYf/st1MgpW9XOndCnDzRuDHPmwHHHxa2czjmXX970VAC//GIDlMqUsSBRq1YOG8+da0meZs6ESy+1nB65Vj2cc67weaDIp+XLLUikpsLEiVCvXi5vKF0a/vgDhg2zCRbOOVdEeKDIh+RkWydoyxYYPz6HlUanTLHhrk8/DQ0awOLF+Uj05Jxzhcv7KPJozRqrSWzYYPMkGme1Jt+WLXDXXXDKKZbgaf16e96DhHOuCPJAkQfr11vH9W+/2YzrZs2y2GjsWEvi17evpYydMwcOPDDuZXXOuVjxn7hR2rgRWre2JSBGj4aTT85ioy1boGNHGyf73/9ms5FzzhUtXqOIwl9/WZrwefNg5EjLBruHb76BtDSoXNlqFD/95EHCOVdseKDIxdatcMEF8OOPljb83HMjXly92kYwnXOOLSgElgmwQoVCKatzzoXBA0UO/v4b2ra1wUsffmj3AUviN3CgDXf66iubROdJ/JxzxZT3UWRj+3abFzd+PLz/vqUN3+W226B/fxvVNGAA1K9faOV0LpHt3LmT5ORkUlJSCrsoJUaFChWoUaMGZWO4VLIHiizs3Gl5+r7+Gt56C665hj2T+F19NTRqBJ07QymvlDmXneTkZKpUqUKtWrUIVrF0IVJVNmzYQHJyMrVr147Zfv0ql0lqqgWGzz6zEa633ALMn2/LkD70kG102mmW6dWDhHM5SklJoVq1ah4k4kREqFatWsxrcH6li5CeDjfdBB9/DM8+C3d02gn/+hc0aQILFlhHtXMuTzxIxFcY59ubngKq1vUwaBA88QR0P28uNL/GhrpecQW8+iocfHBhF9M55+LOaxRYkOjaFd5801qXHnkES7fx558wfLhVMTxIOFdkjRgxAhFhwYIFu56bMGECF1544R7b3XDDDQwbNgywjvgePXpQr149jj32WJo3b87o0aMLXJZ///vf1K1bl/r16zNmzJgst+nduzeHH344TZo0oUmTJowaNWqP11esWEHlypV57rnnClyeaJT4GoUq9OgBr7wCr1zxX+5M+Qx4zkYyLVrk+ZmcKwaGDBnCKaecwtChQ+ndu3dU7+nZsyerV69mzpw5lC9fnrVr1zJx4sQClWPevHkMHTqUuXPnsmrVKs4++2wWLVpE6SwWLevWrRvdu3fPcj/dunXjvPPOK1BZ8qLEXwUfewxee2YzE47pwemfvAa1a8ODPSw/kwcJ52Kma1dryY2lJk3gpZdy3mbLli1MnjyZ8ePH07Zt26gCxbZt23jrrbdYtmwZ5cuXB+Dggw+mffv2BSrvZ599RocOHShfvjy1a9embt26TJ8+nZYtW0a9j5EjR1KnTh0qVapUoLLkRYltekpPh8cfh2mPjWZ5pWM4bd7r9k2ePduT+DlXjIwcOZI2bdpw1FFHccABB/Djjz/m+p7FixdTs2ZN9t1331y37dat264moshbnz599tr2t99+44gjjtj1uEaNGvz2229Z7rdv3740atSIm266iY0bNwKwdetWnn76aXr16pVruWKpRP5kXrkSbrwRpo3bzG/lr6PKPw5C3p4CLVoUdtGcK7Zy++UfliFDhtC1a1cAOnTowJAhQ2jatGm2o4PyOmroxRdfjHpbVY3qeLfddhs9e/ZEROjZsyf33nsv77zzDr169aJbt25Urlw5T2UsqBIVKFRh8CBl5G1jmE5rXnizClWa/Qc5uoFNpHPOFSsbNmzg22+/Zc6cOYgIaWlpiAjPPPMM1apV2/VLPcMff/zBgQceSN26dVmxYgWbN2+mSpUqOR6jW7dujB8/fq/nO3ToQI8ePfZ4rkaNGqxcuXLX4+TkZA477LC93ntwxOCZW2+9dVen+7Rp0xg2bBj3338/mzZtolSpUlSoUIE777wz95NREKpapG4nnHCC5se6dao3n79Kh3OxKuja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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"make_roc_auc(X_test, y_test, clf)"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-40529.00915167198\n"
]
},
{
"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": [
"from sklearn.cluster import KMeans\n",
"clf = KMeans(n_clusters=3)\n",
"clf.fit(X_train, y_train)\n",
"print(clf.score(X_test, y_test))\n",
"make_roc_auc(X_test, y_test, clf)"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {
"scrolled": false
},
"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": [
"## Stratify with KFolds\n",
"\n",
"from sklearn import svm\n",
"from sklearn.metrics import roc_curve, auc\n",
"from scipy import interp\n",
"\n",
"\n",
"cv = model_selection.StratifiedKFold(n_splits=6)\n",
"clf = svm.SVC(kernel='linear', probability=True, random_state=np.random.RandomState(0))\n",
"\n",
"\n",
"\n",
"tprs = []\n",
"aucs = []\n",
"mean_fpr = np.linspace(0, 1, 100)\n",
"\n",
"i = 0\n",
"for train, test in cv.split(X, y):\n",
" probas_ = clf.fit(X[train], y[train]).predict_proba(X[test])\n",
" # Compute ROC curve and area the curve\n",
" fpr, tpr, thresholds = roc_curve(y[test], probas_[:, 1], pos_label=0)\n",
" tprs.append(interp(mean_fpr, fpr, tpr))\n",
" tprs[-1][0] = 0.0\n",
" roc_auc = auc(fpr, tpr)\n",
" aucs.append(roc_auc)\n",
" plt.plot(fpr, tpr, lw=1, alpha=0.3,\n",
" label='ROC fold %d (AUC = %0.2f)' % (i, roc_auc))\n",
"\n",
" i += 1\n",
"plt.plot([0, 1], [0, 1], linestyle='--', lw=2, color='r',\n",
" label='Chance', alpha=.8)\n",
"\n",
"mean_tpr = np.mean(tprs, axis=0)\n",
"mean_tpr[-1] = 1.0\n",
"mean_auc = auc(mean_fpr, mean_tpr)\n",
"std_auc = np.std(aucs)\n",
"plt.plot(mean_fpr, mean_tpr, color='b',\n",
" label=r'Mean ROC (AUC = %0.2f $\\pm$ %0.2f)' % (mean_auc, std_auc),\n",
" lw=2, alpha=.8)\n",
"\n",
"std_tpr = np.std(tprs, axis=0)\n",
"tprs_upper = np.minimum(mean_tpr + std_tpr, 1)\n",
"tprs_lower = np.maximum(mean_tpr - std_tpr, 0)\n",
"plt.fill_between(mean_fpr, tprs_lower, tprs_upper, color='grey', alpha=.2,\n",
" label=r'$\\pm$ 1 std. dev.')\n",
"\n",
"plt.xlim([-0.05, 1.05])\n",
"plt.ylim([-0.05, 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\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Model Performance over Multiple Models"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"No handles with labels found to put in legend.\n"
]
},
{
"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 plot_model_performance(m:dict):\n",
" models = list(m.keys())\n",
" metrics = list(m.values())\n",
" plt.title('Metric Performance')\n",
" plt.plot(models, metrics, 'b')\n",
" plt.legend(loc = 'lower right')\n",
" plt.ylim([0, 1])\n",
" plt.ylabel('Metric')\n",
" plt.xlabel('Models')\n",
" plt.show()\n",
"\n",
" \n",
"plot_model_performance({'model1':0.7,'model2':0.8,'model3':0.77})"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Metrics')"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"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": [
"sns.barplot([.7,.8,.77],['a','b','c']).set_title('Metrics')"
]
}
],
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}