{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Auditing the COMPAS Score: Predictive Modeling and Algorithmic Fairness" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will be using the dataset at [https://github.com/propublica/compas-analysis/raw/master/compas-scores-two-years.csv](https://github.com/propublica/compas-analysis/raw/master/compas-scores-two-years.csv). Reading it in:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "from sklearn import linear_model\n", "from sklearn import preprocessing\n", "import learningmachine as lm\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "np.random.seed(0)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# read in data as Pandas dataframe\n", "df_in = pd.read_csv(\"https://github.com/propublica/compas-analysis/raw/master/compas-scores-two-years.csv\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idnamefirstlastcompas_screening_datesexdobageage_catrace...v_decile_scorev_score_textv_screening_datein_custodyout_custodypriors_count.1startendeventtwo_year_recid
01miguel hernandezmiguelhernandez2013-08-14Male1947-04-1869Greater than 45Other...1Low2013-08-142014-07-072014-07-140032700
13kevon dixonkevondixon2013-01-27Male1982-01-223425 - 45African-American...1Low2013-01-272013-01-262013-02-050915911
24ed philoedphilo2013-04-14Male1991-05-1424Less than 25African-American...3Low2013-04-142013-06-162013-06-16406301
35marcu brownmarcubrown2013-01-13Male1993-01-2123Less than 25African-American...6Medium2013-01-13NaNNaN10117400
46bouthy pierrelouisbouthypierrelouis2013-03-26Male1973-01-224325 - 45Other...1Low2013-03-26NaNNaN20110200
\n", "

5 rows × 53 columns

\n", "
" ], "text/plain": [ " id name first last compas_screening_date sex \\\n", "0 1 miguel hernandez miguel hernandez 2013-08-14 Male \n", "1 3 kevon dixon kevon dixon 2013-01-27 Male \n", "2 4 ed philo ed philo 2013-04-14 Male \n", "3 5 marcu brown marcu brown 2013-01-13 Male \n", "4 6 bouthy pierrelouis bouthy pierrelouis 2013-03-26 Male \n", "\n", " dob age age_cat race ... v_decile_score \\\n", "0 1947-04-18 69 Greater than 45 Other ... 1 \n", "1 1982-01-22 34 25 - 45 African-American ... 1 \n", "2 1991-05-14 24 Less than 25 African-American ... 3 \n", "3 1993-01-21 23 Less than 25 African-American ... 6 \n", "4 1973-01-22 43 25 - 45 Other ... 1 \n", "\n", " v_score_text v_screening_date in_custody out_custody priors_count.1 \\\n", "0 Low 2013-08-14 2014-07-07 2014-07-14 0 \n", "1 Low 2013-01-27 2013-01-26 2013-02-05 0 \n", "2 Low 2013-04-14 2013-06-16 2013-06-16 4 \n", "3 Medium 2013-01-13 NaN NaN 1 \n", "4 Low 2013-03-26 NaN NaN 2 \n", "\n", " start end event two_year_recid \n", "0 0 327 0 0 \n", "1 9 159 1 1 \n", "2 0 63 0 1 \n", "3 0 1174 0 0 \n", "4 0 1102 0 0 \n", "\n", "[5 rows x 53 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_in.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In preparation for upcoming analysis, we'll also change categorical variables (`sex` and `c_charge_degree`) to numerical labels. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "lm.label_encode(df_in, 'sex')\n", "lm.label_encode(df_in, 'c_charge_degree')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Convert Pandas dataframe to list of lists." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "compas = lm.df_to_list(df_in)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "7214" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# inspect amount of data (number of defendants)\n", "len(compas)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we'll split our data into train, validation, and test sets using a 70:15:15 split ratio." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "idx = list(range(len(compas)))\n", "np.random.shuffle(idx)\n", "\n", "train_size = int(.7*len(compas))\n", "valid_size = int(.15*len(compas)) \n", "test_size = int(.15*len(compas))\n", "\n", "compas_train = [compas[i] for i in idx[:train_size]]\n", "compas_valid = [compas[i] for i in idx[train_size+1:train_size+valid_size]]\n", "compas_test = [compas[i] for i in idx[train_size+valid_size+1:train_size+valid_size+test_size+1]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**PART 1: COMPARING THE SCORES OF BLACK AND WHITE DEFENDANTS**\n", "\n", "We first explore if white and black defendants get the same COMPAS scores." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# data for black defendants\n", "compas_train_b = [row for row in compas_train if 'African-American' in row]\n", "compas_valid_b = [row for row in compas_valid if 'African-American' in row]\n", "\n", "# data for white defendants\n", "compas_train_w = [row for row in compas_train if 'Caucasian' in row]\n", "compas_valid_w = [row for row in compas_valid if 'Caucasian' in row]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since our lists no longer contain column names, use a function in the `learningmachine` module that will allow us to index into our list using the original column names." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "index_feature_list = lm.columnname_to_index(df_in)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def feature_ind(feat_name):\n", " \"\"\"\n", " Take feature name and return relevant index within list.\n", " \"\"\"\n", " for row in index_feature_list:\n", " if feat_name == row[1]:\n", " return row[0]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "# list of decile scores for black defendants in training data\n", "decile_scores_b = [x[feature_ind('decile_score')] for x in compas_train_b]\n", "\n", "# list of decile scores for white defendants in training data\n", "decile_scores_w = [x[feature_ind('decile_score')] for x in compas_train_w]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# overlapping histograms of decile scores of black and white defendants\n", "plt.hist(decile_scores_b, density=True, alpha=0.5, label='black')\n", "plt.hist(decile_scores_w, density=True, alpha=0.5, label='white')\n", "plt.title(\"Score Distributions of Black and White Defendants\")\n", "plt.xlabel('Decile score')\n", "plt.ylabel('Density')\n", "plt.legend(loc=\"upper right\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For African-American defendants, the distribution of the scores is approximately uniform. For Caucasian defendants, many more get low scores than high scores." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**PART 2: INITIAL EVALUATION OF THE COMPAS SCORES**\n", "\n", "Here, we are computing the false positive rate (FPR), false negative rate (FNR), and correct classification rate (CCR) for different populations. First, we'll define functions to compute the quantities needed. " ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "def getFPR(data, thr):\n", " \"\"\"\n", " Return false positive rate for COMPAS data data, using\n", " thr as the threshold on the decile score\n", " \n", " Keyword arguments:\n", " data -- dataset containing data with features and outcome\n", " thr -- threshold \n", " \"\"\"\n", " false_positives = 0\n", " total_negatives = 0\n", " \n", " for row in data:\n", " if row[feature_ind('decile_score')] >= thr and row[feature_ind('is_recid')] == 0:\n", " false_positives += 1\n", " if row[feature_ind('is_recid')] == 0:\n", " total_negatives += 1\n", " \n", " return false_positives/total_negatives\n", "\n", "\n", "def getFNR(data, thr):\n", " \"\"\"\n", " Return false negative rate for COMPAS data data, using\n", " thr as the threshold on the decile score\n", " \n", " Keyword arguments:\n", " data -- dataset containing data with features and outcome\n", " thr -- threshold \n", " \"\"\"\n", " false_negatives = 0\n", " total_positives = 0\n", " \n", " for row in data:\n", " if row[feature_ind('decile_score')] < thr and row[feature_ind('is_recid')] == 1:\n", " false_negatives += 1\n", " if row[feature_ind('is_recid')] == 1:\n", " total_positives += 1 \n", " \n", " return false_negatives/total_positives\n", "\n", "\n", "def getCCR(data, thr):\n", " \"\"\"\n", " Return correct classification rate for COMPAS data data, using\n", " thr as the threshold on the decile score\n", " \n", " Keyword arguments:\n", " data -- dataset containing data with features and outcome\n", " thr -- threshold \n", " \"\"\"\n", " correctly_classified = 0\n", " \n", " for row in data:\n", " if row[feature_ind('decile_score')] >= thr and row[feature_ind('is_recid')] == 1:\n", " correctly_classified += 1\n", " if row[feature_ind('decile_score')] < thr and row[feature_ind('is_recid')] == 0:\n", " correctly_classified += 1\n", " \n", " return correctly_classified/len(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given a threshold of 5, we can compute the scores." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "FPR for black, white, and all defendants: [0.38846153846153847, 0.2706422018348624, 0.3120689655172414]\n", "\n", "FNR for black, white, and all defendants: [0.29372937293729373, 0.47058823529411764, 0.37924151696606784]\n", "\n", "CCR for black, white, and all defendants: [0.6625222024866785, 0.652542372881356, 0.6567992599444958]\n" ] } ], "source": [ "thr = 5\n", "\n", "fps = [getFPR(compas_valid_b, thr), getFPR(compas_valid_w, thr), getFPR(compas_valid, thr)]\n", "fns = [getFNR(compas_valid_b, thr), getFNR(compas_valid_w, thr), getFNR(compas_valid, thr)]\n", "ccr = [getCCR(compas_valid_b, thr), getCCR(compas_valid_w, thr), getCCR(compas_valid, thr)]\n", "\n", "print('FPR for black, white, and all defendants:', fps)\n", "print()\n", "print('FNR for black, white, and all defendants:', fns)\n", "print()\n", "print('CCR for black, white, and all defendants:', ccr)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that the scores do not satisfy false positive parity and do not satisfy false negative parity. The scores do satisfy classification parity. Demographic parity is also not satisfied." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**PART 3: ALTERING THE THRESHOLD**\n", "\n", "We will now see how changing the threshold influences the false positive, false negative, and correct classification rates." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def getRates(data, thr):\n", " \"\"\"\n", " Return list containing FPR, FNR, and CCR. \n", " \n", " Keyword arguments:\n", " data -- dataset containing data with features and outcome\n", " thr -- threshold \n", " \"\"\"\n", " return [getFPR(data, thr), getFNR(data, thr), getCCR(data, thr)]" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "# list of thresholds\n", "thrs = list(range(0,10,1))\n", "\n", "# make lists of rates for white defendants, black defendants, and all defendants\n", "rates_w = [getRates(compas_valid_w, thr) for thr in thrs] \n", "rates_b = [getRates(compas_valid_b, thr) for thr in thrs] \n", "rates_all = [getRates(compas_valid, thr) for thr in thrs]" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "def PlotRates(rates_data, thrs, title):\n", " \"\"\"\n", " Plot rate (FPR, FNR, CCR) on y axis and threshold on x axis.\n", " \n", " Keyword arguments:\n", " rates_data -- list of previously calculated rates (FPR, FNR, CCR)\n", " thrs -- list of thresholds\n", " title -- title of figure ('white defendants', 'black defendents', or 'all defendents')\n", " \"\"\"\n", " plt.plot(thrs, [x[0] for x in rates_data], label='FPR')\n", " plt.plot(thrs, [x[1] for x in rates_data], label='FNR')\n", " plt.plot(thrs, [x[2] for x in rates_data], label='CCR')\n", " plt.xlim(1, 9)\n", " plt.title(title)\n", " plt.xlabel('threshold')\n", " plt.ylabel('rate')\n", " plt.legend(loc=\"upper right\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeVyVZf7/8deHHVFAQERENhVEVNyXXLLFUltt2vd9WqambRqbmt9UU03rVDPNt2kza9qmZSqzsqw0zX3FBQVFUHFFQBCR9Vy/P+7DEQkE9RzPOfB5Ph48PMt97vPB7LzPdd3XIsYYlFJKKQAfdxeglFLKc2goKKWUctBQUEop5aChoJRSykFDQSmllIOGglJKKQcNBeVWIpIvImc289x4ESlw5Xu04rVzReTmVh47WkQ2iUi5iFx4PO93lHM/KiLvOfOcSjVFQ0Ep53kceMUY09EY84W7i2mOiBgR6eXuOpRn0lBQynkSgPXuLkKpE6GhoDzBMBHJEpESEXlbRIKaOkhEpopIrogcsB8/pdHzt4jIhgbPD27iHH1EJE9ELm/mPSaIyEYRKRWRVwBp9PyN9vcoEZHvRCTB/ngukAx8Ze8+ChSRMBF5S0R2icgOEXlCRHztx18vIr+IyPP2c+WJyKQG75MkIj/bf5fZQFSjOj4Rkd32OueJSHqD56aLyL9E5Gv765eISE/7c/Psh2Xa67xMRKJEZKaI7BeRYhGZLyL62dBO6X945QmuAs4GegIpwCPNHJcLjAXCgMeA90SkG4CIXAI8ClwLhALnA0UNX2wPie+Bu4wxHzU+uYhEAZ/Z3z/K/n6jGzx/IfAn4CKgCzAf+BDAGNMT2AacZ+8+qgLeAWqBXsAg4Cyg4fWJEUC2/b2eBd4SkfoQ+gBYYX/ur8B1jcr9FugNRAMrgfcbPX+F/e+oM7AZeNJe5zj78xn2Ov8L3A8U2H+nrvbfUde/aa+MMfqjP277AfKB2xrcnwzk2m+PBwqO8trVwAX2298Bvz/KezyG9cF32lHOdy2wuMF9sb/mZvv9b4GbGjzvA1QACQ3e50z77a5AFRDc4PgrgDn229cDmxs81wHrgzgGiMcKk5AGz38AvNdM3eH214bZ708H3mz0d7qxwX0D9Gpw/3Hgy4aP6U/7/dGWgvIE2xvc3grENnWQiFwrIqvt3Rz7gX4c7lbpgfXNvjm3AQuNMXOOckxsw1qMMaZRbQnAyw3evxgrOLo3ca4EwB/Y1eD417C+2dfb3eC9Kuw3O9rrKDHGHGxw7Nb6GyLiKyJP27vSyrDCCI7sYtrd4HaF/bzNeQ6rNfG9iGwRkalHOVa1cRoKyhP0aHA7HtjZ+AB73/0bwO+ASGNMOLCOw33+27G6n5pzGxAvIi8e5ZhdDWuxd+U0rG078FtjTHiDn2BjzMImzrUdq6UQ1eDYUGNMehPHNlVHZxEJafBYfIPbVwIXAGdidaUl1pfcinP/ijHmgDHmfmNMMnAecJ+InHE851LeT0NBeYI7RSRORCKw+rP/28QxIVjdHoUAInIDVkuh3pvAAyIyRCy96i8C2x0AJgLjROTpZur4GkgXkYtExA+4G6s7p96/gYfqL+raLyRf0tSJjDG7sK5fvCAioSLiIyI9ReTUo/5NWK/dCiwHHhORABEZg/VhXa8TVuAUYXU7PdXSORvZg3VRHPvvca7970uAMqDO/qPaIQ0F5Qk+wPoA3WL/eaLxAcaYLOAFYBHWh1p/YEGD5z/Bupj6AVYAfAFENDrHfmACMElE/trEe+wDLgGexvrA7d3oPT4HngE+snfbrAMmNT5PA9cCAUAWUAJ8CnQ7yvENXYl1IboY+AvwboPn3sXqTtphP/fiVp6z3qPAO/ZurUuxfs8fgHKsv9//M8bMPcZzqjZCrG5TpZRSSlsKSimlGtBQUEop5aChoJRSykFDQSmllIOfuws4VlFRUSYxMdHdZSillFdZsWLFPmNMl5aO87pQSExMZPny5e4uQymlvIqIbG35KO0+Ukop1YCGglJKKQcNBaWUUg5ed01BKaVORE1NDQUFBVRWVrq7FJcICgoiLi4Of3//43q9hoJSql0pKCigU6dOJCYmcnhPo7bBGENRUREFBQUkJSUd1zlc1n0kItNEZK+IrGvmeRGRf4jIZhFZ09TWiUop5WyVlZVERka2uUAAEBEiIyNPqBXkymsK07GWKm7OJKzVGXsDtwKvurAWpZRyaIuBUO9EfzeXhYIxZh7Wsr/NuQB411gWA+H1++0eTemhGnRlV6WUcg13jj7qzpFbHRbQ9LaGiMitIrJcRJZvK67g1v+sYF951UkpUimlnM3X15eBAwc6fvLz85k7dy5hYWEMGjSItLQ0HnvsMYAjHu/Tpw8PPPCAS2tzZyg01cZpsglgjHndGDPUGDO0W1gQP+cUMvGleczO2uPiEpVSyvmCg4NZvXq146d+6Z6xY8eyatUqli9fznvvvceKFSuOeHzVqlXMnDmTBQsWHOXsJ8adoVDAkfvfxtHE3ryNRXUM5KvfjSG6UxC3vLucBz/N5EBljcuKVEqpky0kJIQhQ4aQm5t7xOPBwcEMHDiQHTt2uOy93TkkdQbwOxH5CGvbwVL7vrYtSo3pxBd3jublH3N4dW4uC3OLeOGSDEYkR7q0YKVU2/LYV+vJ2lnm1HP2jQ3lL+elH/WYQ4cOMXDgQACSkpL4/PPPj3i+qKiIxYsX8+c//5nCwkLH4yUlJWzatIlx48Y5teaGXBYKIvIhMB6IEpECrH1m/QGMMf8GvgEmA5uBCuCGYzl/gJ8Pfzi7D6f3iea+jzO5/I3F3DwmifvPSiXI39eZv4pSSjlVffdRY/Pnz2fQoEH4+PgwdepU0tPTmTt3LvPnz2fAgAFkZ2czdepUYmJiXFaby0LBGHNFC88b4M4TfZ8hCRF8c/dYnvpmA2/Mz2Nezj7+flkG6bFhJ3pqpVQb19I3+pNt7NixzJw5s9nHc3JyGDNmDFOmTHG0NJytTax9FBLox5NT+vP2DcMoqajmwn8t4F9zNlNn06GrSqm2IyUlhYceeohnnnnGZe/RJkKh3mmp0Xx3zzjO6hvDc99lc+lri8jfd9DdZSmllNPcdtttzJs3j7y8PJecX7xtItjQoUNNS5vsGGOYkbmTP3+xjlqb4eFz0rhyeHybnsWolGqdDRs2kJaW5u4yXKqp31FEVhhjhrb02jbVUqgnIlwwsDvf3TuOwfGdefjzddwwfRl7y9rmqohKKeUsbTIU6nULC+bdG4fz2PnpLN5SxFkvzePrNa0a9aqUUu1Smw4FAB8f4bpTEvn67rEkRHTgzg9Wcs9Hqyit0AlvSinVWJsPhXo9u3Tk09tP4Z4ze/PVml2c/dI8ftm0z91lKaWUR2k3oQDg7+vDPWem8PkdpxAS6MvVby3h0RnrOVRd5+7SlFLKI7SrUKg3IC6cr+8ey/WnJDJ9YT7n/HM+mdv3u7sspZRyu3YZCgBB/r48en467988gkPVdVz06kJenJ1DTZ3N3aUppdq45pbOFhG++uorx3Hnnnsuc+fOBWD8+PGkpqaSkZHBsGHDmlwmwxnabSjUG90riln3jOP8jFhe/nETv3l1IZv3lru7LKVUG9bc0tlxcXE8+eSTzb7u/fffJzMzkzvuuIM//OEPLqmt3YcCQFiwPy9eNpD/u2ow24orOOcf83l7QR42XSZDKXUSZWRkEBYWxuzZs4963KhRo1y2fLY7l872OJP7d2NoQmf++NkaHvsqix827OG5izOIDQ92d2lKKVf4dirsXuvcc8b0h0lPH/WQoy2d/cgjj/DII48wYcKEZl8/a9YsLrzwQufU24iGQiPRoUFMu34YHy7dzhNfZ3H2S/N4/IJ0LhzYXZfJUEo5RXNLZ4O1IipYy2g3dtVVV3Hw4EHq6upYuXKlS2rTUGiCiHDliHhG94rkvo8zufe/mczO2sOTF/anc0iAu8tTSjlLC9/o3eXhhx/mySefxM/vyI/o999/n4yMDKZOncqdd97J//73P6e/t15TOIqEyBA+/u0oHpyYyuysPZz10jzmbNzr7rKUUm3cWWedRUlJCZmZmb96zt/fnyeeeILFixezYcMGp7+3hkILfH2EO8b34os7RxPRIYAbpi/jof+t5WBVrbtLU0q1YQ8//DAFBQVNPhccHMz999/P888/7/T3bZNLZ7tKZU0df5+dwxvztxAf0YG/X5rBkIQIt9SilDo+unT20WlL4RgE+fvyp8lpfHTLSOpshkv+vYhnZm2kulYnvCml2gYNheMwIjmSb38/lkuG9ODVublc8K8FbNxd5u6ylFLqhGkoHKdOQf48c/EA3rh2KHvLKjn/nwt4fV6u7gutlPJqGgonaELfrnx37zjGp3bhqW82csUbi9leXOHuspRS6rhoKDhBVMdAXrtmCM9dPICsnWVMfGkeMzJ3ursspZQ6ZhoKTiIiXDK0B7PuGUtat1B+/9EqPliyzd1lKaXUMdFQcLK4zh147+YRnJrShT99vpa3F+S5uySllAfavXs3l19+OT179qRv375MnjyZnJwccnJymDx5Mr169SItLY1LL72UPXv2MHfuXMLCwhg0aBB9+vThgQcecEldGgouEOTvy2vXDOHs9K489lUWr87NdXdJSikPYoxhypQpjB8/ntzcXLKysnjqqafYs2cP55xzDrfffjubN29mw4YN3H777RQWFgLWukirVq1i1apVzJw5kwULFji9Ng0FFwn08+WVKwdzfkYsz8zayN9n5+BtEwWVUq4xZ84c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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "PlotRates(rates_w, thrs, \"white defendants\")\n", "PlotRates(rates_b, thrs, \"black defendants\")\n", "PlotRates(rates_all, thrs, \"all defendants\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**PART 4: TRYING TO REPRODUCE THE SCORE**\n", "\n", "Before we fit the model, let's split our datasets into predictors (x) and outcome (y). We'll build a function called `get_x_y_split` to split the data into x and y components." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "def get_x_y_split(data, predictors):\n", " \"\"\"\n", " Split data into x and y components. x will contain data corresponding to predictors of interest.\n", " \n", " Keyword arguments:\n", " data -- list of lists containing data \n", " predictors -- list containing predictors of interest\n", " \"\"\" \n", " feats_inds = []\n", " x = []\n", " y = []\n", "\n", " for feat in predictors:\n", " feats_inds.append(feature_ind(feat))\n", "\n", " for defendant_data in data:\n", " x.append([defendant_data[i] for i in feats_inds]) \n", " y.append(defendant_data[feature_ind('is_recid')])\n", " \n", " return x, y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll create our datasets to include two predictors: `age` and `priors_count`." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "predictors = ['age', 'priors_count']\n", "compas_train_x, compas_train_y = get_x_y_split(compas_train, predictors)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll now use the `learning_machine` function to make our model." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "my_model = lm.learning_machine(compas_train_x, compas_train_y, predictors)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll check out the coefficients of our model." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('age', -0.048346079830393386), ('priors_count', 0.16380407311845432)]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "my_model.coefs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* An increase of 1 in the number of priors is associated with an increase of 0.17 in the log-odds of recidivism, all other things being equal\n", "\n", "* An increase in age by one year corresponds to a decrease of 0.05 in the log-odds of recidivism\n", "\n", "* (If we are being a bit silly and extrapolate) according to the model, a newborn with no priors would have a probability of $\\sigma(1.04) = 0.74$ of being re-arrested.\n", "\n", "Let's now obtain the FPR, FNR, and CCR for our model, using the threshold 0.5." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll use the `predict` function to generate the model's predictions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's build our scoring functions. This time, we have the model as another parameter. " ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "def get_binary_preds(prob_preds, thr):\n", " \"\"\"\n", " Return the binary versions of the predictions by \n", " thresholding prob_preds with threshold thr\n", " \"\"\"\n", " binary_preds = []\n", " for prob_pred in prob_preds:\n", " binary_preds.append(prob_pred > thr)\n", " \n", " return binary_preds\n", "\n", "\n", "def getFPR_fit(model, x_data, y_data, thr):\n", " \"\"\"\n", " Return the false positive rate for predictions\n", " by the model on x_data using threshold thr, \n", " with ground truth data y_data\n", " \n", " Keyword arguments:\n", " model -- model generated from the learning machine\n", " x_data -- list of lists containing predictors \n", " y_data -- list of lists containing outcome \n", " thr -- threshold\n", " \"\"\"\n", " prob_pred = lm.predict(model, x_data) \n", " pred = get_binary_preds(prob_pred, thr)\n", " false_positives = 0\n", " total_negatives = 0\n", " \n", " for i, outcome in enumerate(y_data):\n", " if pred[i] == 1 and outcome == 0:\n", " false_positives += 1\n", " if outcome == 0:\n", " total_negatives +=1 \n", "\n", " return false_positives/total_negatives\n", "\n", "\n", "def getFNR_fit(model, x_data, y_data, thr):\n", " \"\"\"\n", " Return the false negative rate for predictions\n", " by the model on x_data using threshold thr, \n", " with ground truth data y_data\n", " \n", " Keyword arguments:\n", " model -- model generated from the learning machine \n", " x_data -- list of lists containing predictors \n", " y_data -- list of lists containing outcome \n", " thr -- threshold\n", " \"\"\"\n", " prob_pred = lm.predict(model, x_data) \n", " pred = get_binary_preds(prob_pred, thr)\n", " \n", " false_negatives = 0\n", " total_positives = 0\n", " \n", " for i, outcome in enumerate(y_data):\n", " if pred[i] == 0 and outcome == 1:\n", " false_negatives += 1\n", " if outcome == 1:\n", " total_positives +=1 \n", "\n", " return false_negatives/total_positives\n", "\n", "\n", "def getCCR_fit(model, x_data, y_data, thr):\n", " \"\"\"\n", " Return the correct classification rate rate for predictions\n", " by the model on x_data using threshold thr, \n", " with ground truth data y_data\n", " \n", " Keyword arguments:\n", " model -- model generated from the learning machine \n", " x_data -- list of lists containing predictors \n", " y_data -- list of lists containing outcome \n", " thr -- threshold\n", " \"\"\"\n", "\n", " prob_pred = lm.predict(model, x_data) \n", " pred = get_binary_preds(prob_pred, thr)\n", " \n", " correctly_classified = 0\n", "\n", " for i, outcome in enumerate(y_data):\n", " if pred[i] == outcome:\n", " correctly_classified += 1\n", " \n", " return correctly_classified/len(y_data)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "# build relevant datasets\n", "compas_valid_b_x, compas_valid_b_y = get_x_y_split(compas_valid_b, predictors)\n", "compas_valid_w_x, compas_valid_w_y = get_x_y_split(compas_valid_w, predictors)\n", "compas_valid_x, compas_valid_y = get_x_y_split(compas_valid, predictors)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "FPR for black, white, and all defendants: [0.36538461538461536, 0.23853211009174313, 0.3017241379310345]\n", "\n", "FNR for black, white, and all defendants: [0.2706270627062706, 0.4852941176470588, 0.35728542914171657]\n", "\n", "CCR for black, white, and all defendants: [0.6856127886323268, 0.6666666666666666, 0.6725254394079556]\n" ] } ], "source": [ "thr = 0.5\n", "\n", "fps_fit = [getFPR_fit(my_model, compas_valid_b_x, compas_valid_b_y, thr), getFPR_fit(my_model, compas_valid_w_x, compas_valid_w_y, thr), getFPR_fit(my_model, compas_valid_x, compas_valid_y, thr)]\n", "fns_fit = [getFNR_fit(my_model, compas_valid_b_x, compas_valid_b_y, thr), getFNR_fit(my_model, compas_valid_w_x, compas_valid_w_y, thr), getFNR_fit(my_model, compas_valid_x, compas_valid_y, thr)]\n", "ccr_fit = [getCCR_fit(my_model, compas_valid_b_x, compas_valid_b_y, thr), getCCR_fit(my_model, compas_valid_w_x, compas_valid_w_y, thr), getCCR_fit(my_model, compas_valid_x, compas_valid_y, thr)]\n", "\n", "print('FPR for black, white, and all defendants:', fps_fit)\n", "print()\n", "print('FNR for black, white, and all defendants:', fns_fit)\n", "print()\n", "print('CCR for black, white, and all defendants:', ccr_fit)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It appears that there is basically no overfitting. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**PART 5: ADJUSTING THRESHOLDS**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We basically want to find the thresholds for which the false positive rates are at parity. Let's see what the rates are for different thresholds." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "FPR for black defendants: [0.8432203389830508, 0.6754237288135593, 0.36610169491525424, 0.1788135593220339, 0.14491525423728813, 0.07203389830508475, 0.03898305084745763]\n", "\n", "FPR for white defendants: [0.6464646464646465, 0.47575757575757577, 0.2101010101010101, 0.07878787878787878, 0.06161616161616162, 0.024242424242424242, 0.010101010101010102]\n" ] } ], "source": [ "compas_train_b_x, compas_train_b_y = get_x_y_split(compas_train_b, predictors)\n", "compas_train_w_x, compas_train_w_y = get_x_y_split(compas_train_w, predictors)\n", "\n", "# list of thresholds\n", "thrs = [0.3, 0.4, 0.5, 0.57, 0.6, 0.7, 0.8]\n", "\n", "FP_b = [getFPR_fit(my_model, compas_train_b_x, compas_train_b_y, thr) for thr in thrs]\n", "FP_w = [getFPR_fit(my_model, compas_train_w_x, compas_train_w_y, thr) for thr in thrs]\n", "\n", "print('FPR for black defendants:', FP_b)\n", "print()\n", "print('FPR for white defendants:', FP_w)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "def PlotFPR(rates_b, rates_w, thrs):\n", " \"\"\"\n", " Plot rate (FPR, FNR, CCR) on y axis and threshold on x axis.\n", " \n", " Keyword arguments:\n", " thrs -- list of thresholds\n", " rates_b -- FPR list for black defendants\n", " rates_w -- FPR list for white defendants\n", " \"\"\"\n", " plt.plot(thrs, rates_b, label=\"black\")\n", " plt.plot(thrs, rates_w, label=\"white\")\n", " plt.title('FPR across thresholds')\n", " plt.xlabel('threshold')\n", " plt.ylabel('FPR')\n", " plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We need to tweak the threshold for black defendants just a little:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "FPR for black defendants for tweaked thresholds: [(0.51, 0.3254237288135593), (0.52, 0.29745762711864404), (0.53, 0.2584745762711864), (0.54, 0.24067796610169492), (0.55, 0.21525423728813559), (0.56, 0.20254237288135593), (0.57, 0.1788135593220339), (0.58, 0.16779661016949152), (0.59, 0.15508474576271186)]\n" ] } ], "source": [ "thrs_detail = [0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59]\n", "FP_b_new = [getFPR_fit(my_model, compas_train_b_x, compas_train_b_y, thr) for thr in thrs_detail]\n", "\n", "print('FPR for black defendants for tweaked thresholds:', list(zip(thrs_detail, FP_b_new)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's try to visualize the threshold at which the white and black demographic would be at parity." ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEWCAYAAABrDZDcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd3xUVfrH8c+TnkAIkISaQAi9t9CrCooKiCgIgojY0FXX8lt1V1ddd9117WtFEAQVFVSUIqKCAtKLgBIwEQhCqCG0QEhIOb8/7hAmIaSQzNxJ5nm/XvNiZu69M9+bkHnm3HPvOWKMQSmllPfysTuAUkope2khUEopL6eFQCmlvJwWAqWU8nJaCJRSystpIVBKKS+nhUApNxGR/iKS7Kb32i0iAy5xWyMiTS6ybLyIrChbOuVptBCocuH44DkjIqecbvVEJMbxwXLuud0i8rjTdkZETjuW7RORV0TE1859KS9FfaAq5Um0EKjyNMQYU9Xptt9pWXVjTFVgNPCUiAxyWtbesawfcBMwwZUhRcTPla9fXipLQVSeTwuBcitjzGogHmhTyLIdwEqgw8W2F5HHRWSniKSJyDYRub7A8jtFZLvT8k6O53eLyGMi8gtwWkT8RKSliCwVkeMiEi8iQ51e5xrH9mmOlsr/OZ6PEJEFjm2OishPInLB35GILHfc3eJo7dzktOwRETksIgdE5Dan56eLyDsislBETgOXiUigiLwkIntE5JCITBKR4BJm6SAiv4jICRGZJSJBBX5OOxzbzRORehf5eYc7lp8UkXVAY6dlIiKvOvblhOO9Lvi9qgrAGKM3vZX5BuwGBhTyfAxgAD9AgF5AOnCFY7kBmjjutwAOAA8V8T4jgHpYX2JuAk4DdZ2W7QO6ON6rCdDQKd9mIBoIBvyBHcDfgADgciANaO5Y/wDQx3G/BtDJcf8/wCTH9v5AH0AukjVv3xyP+wPZwLOOba9x/CxqOJZPB044fkY+QBDwGjAPqAmEAvOB/xSXxbG/6xw/q5rAdmCiY9nlwBGgExAIvAEsLyw38CkwG6iCVbz3ASscy64CNgLVHT/vlud+F3qrWDfbA+itctwcHzyngOOO21eO588VguPAMccH0gNO2xngpOMD3QCfAIGleN/NwHWO+98Cfy4i3wSnx32Ag4CP03OfAM847u8B7gaqFXidZ4G5zh/wRWQrrBCcAfycnjsMdHfcnw584LRMHD+Xxk7P9QCSisvi2N+xTo9fACY57k8FXnBaVhXIAmKccwO+judbOK37b6dCcDmQCHR3/jnqreLd9NCQKk/DjDHVHbdhBZZFGGNqGGNaGmNeL7CsE9aH0U1AN6xvn4USkXEistlxOOQ41rfUCMfiaGBnEfn2Ot2vB+w1xuQ6PfcHUN9x/wasb+x/iMgyEenheP5FrJbEdyKyy7nju4RSjTHZTo/Tsfa9sIyRQAiw0Wl/FzmeL0mWgxd5n3qOfQXAGHMKSOX8vju/v1+BTM7b/QC8CbwFHBKRySJSrdC9Vh5NC4HyCMYyG1gNPFXYOiLSEJgC3AeEG2OqA1uxvjmD9YHVuLBtz72N0/39QHSBY+oNsA59YIxZb4y5DqgFfIV1eARjTJox5hFjTCwwBHhYRK4o1c4WzTnjEawWRGunAhtmrI71smTZDzQ890BEqgDhOPbdSQrWoaxop+ca5AtrzOvGmM5Aa6AZ8JeS7KTyLFoIlKd5HrhLROoUsqwK1gdlCoCjo9W5c/I94P9EpLOjI7OJo3gUZi3WYZdHRcRfRPpjfZh+KiIBIjJGRMKMMVlYh65yHO852PG64vR8zkXe4xAQW/Jdz8/RWpkCvCoitRzvX19ErrqELM4+Bm4TkQ4iEoh1uGetMWZ3gffPAeYAz4hIiIi0Am49t1xEuohINxHxx/pZZpTw/ZWH0UKgPIox5ldgGYV8szTGbANexmo1HALaYp1ldG75Z8BzWB90aVjf5Gte5H3OAkOBq7G+eb8NjDPG/OZY5RZgt4icBCYCYx3PNwUWY/WHrAbeNsYsvcjuPAPMcBzWGVn83hfqMazDP2scWRYDzS8hSx5jzBLg78AXWJ3ijYFRF1n9PqxDSgex+jDed1pWDatQHcM6ZJQKvFTiPVMe49wZBkoppbyUtgiUUsrLaSFQSikvp4VAKaW8nBYCpZTychVi8C1nERERJiYmxu4YykOlpqYCEB4ebnMSz8qi1MaNG48YYyILW1bhCkFMTAwbNmywO4byUNOnTwdg/PjxtuYAz8qilIj8cbFlemhIKaW8XIVrEShVlL59+9odIY8nZVGqKFoIVKUSG3vJIzqUO0/KolRRtBCoSuXgQWvAzTp1ChuqyL08KYs3ysrKIjk5mYyMDLujuFVQUBBRUVH4+/uXeBstBKpSWbRoEeAZHbSelMUbJScnExoaSkxMDNa4fJWfMYbU1FSSk5Np1KhRibfTzmKlVKWUkZFBeHi41xQBABEhPDy81K0gLQRKqUrLm4rAOZeyz15TCHamnOLl7xLIzNbh0pVSypnXFILF2w7xxg87uPb1Ffy855jdcZRSldzu3btp06bNBc/379//ki6KnT59Ovfdd195RLuA13QW392vMS3qVuOvX/zCDe+sYkKvRvzflc0JDvC1O5oqR1dcUZ6zRpaNJ2VRqihe0yIA6Ncskm8f6suYbg2YuiKJq15bzqqdR+yOpcpRdHQ00dHRxa/oBp6URdkjOzubW2+9lXbt2nHjjTeSnp6eb/k999xDXFwcrVu35umnn857fv369fTs2ZP27dvTtWtX0tLS8m339ddf06NHD44cKZ/PL69pEZwTGuTPv4a1ZXC7ejz+xS/cPGUtN3drwF+vbkFoUMnPu1Weae/evQAe8QHsSVm83T/mx7Nt/8lyfc1W9arx9JDWRa6TkJDA1KlT6dWrFxMmTODtt9/Ot/y5556jZs2a5OTkcMUVV/DLL7/QokULbrrpJmbNmkWXLl04efIkwcHBedt8+eWXvPLKKyxcuJAaNWqUy754VYvAWffYcL75c1/u7NOIT9ft4cpXl/NjwmG7Y6kyWrJkCUuWLLE7BuBZWZQ9oqOj6dWrFwBjx45lxYoV+ZbPnj2bTp060bFjR+Lj49m2bRsJCQnUrVuXLl26AFCtWjX8/Kzv7D/++CP//e9/+frrr8utCIAXtgicBQf48sS1rbimbV0e/fwXbnt/PcM71uepIa2oHhJgdzylVDkp7pu7qxQ8ldP5cVJSEi+99BLr16+nRo0ajB8/noyMDIwxFz0FNDY2ll27dpGYmEhcXFy55fTaFoGzjg1qsOCB3jxweRPmbdnPgFeW882vB+yOpZSq4Pbs2cPq1asB+OSTT+jdu3fespMnT1KlShXCwsI4dOgQ33zzDQAtWrRg//79rF+/HoC0tDSys7MBaNiwIXPmzGHcuHHEx8eXW06XFgIRGSQiCSKyQ0QeL2R5AxH5UUQ2icgvInKNK/MUJdDPl4evbM68+3pTJyyQe2b+zL0zN5KSlmlXJKVUBdeyZUtmzJhBu3btOHr0KPfcc0/esvbt29OxY0dat27NhAkT8g4hBQQEMGvWLO6//37at2/PwIED810p3Lx5c2bOnMmIESPYuXNnueQUY0y5vNAFLyziCyQCA4FkYD0w2hizzWmdycAmY8w7ItIKWGiMiSnqdePi4oyrJ6bJzsll8k+7eG3x74QE+PL0kFYM61DfK69SrGg8aTIYT8rijbZv307Lli3tjmGLwvZdRDYaYwo9nuTKPoKuwA5jzC5HiE+B64BtTusYoJrjfhiw34V5SszP14d7+zfhylZ1ePTzLTw0awvzNu/n38PbUjcsuPgXULYZNGiQ3RHyeFIWpYriykND9YG9To+THc85ewYYKyLJwELg/sJeSETuEpENIrIhJSXFFVkL1aRWVT6b2JOnBrdiza6jXPnKcj5euwdXtaJU2dWpU8djhn32pCxKFcWVhaCw4ygFP0FHA9ONMVHANcCHInJBJmPMZGNMnDEmLjKy0LmXXcbXR5jQuxHfPtiXtlFh/O3LX7l5ylr2pKYXv7Fyu127drFr1y67YwCelUWporiyECQDzlfSRHHhoZ/bgdkAxpjVQBAQ4cJMl6xBeAgz7+jGf4a3Zeu+E1z12nKmrkgiJ1dbB55k+fLlLF++3O4YgGdlUaooriwE64GmItJIRAKAUcC8AuvsAa4AEJGWWIXAfcd+SklEGN21Ad893JcejcP554JtjJi0ih2H04rfWCmlPJTLCoExJhu4D/gW2A7MNsbEi8izIjLUsdojwJ0isgX4BBhvKsAB+LphwUy9NY7XburAriOnueZ/K3jrxx1k5eTaHU0ppUrNpdcRGGMWGmOaGWMaG2Oeczz3lDFmnuP+NmNML2NMe2NMB2PMd67MU55EhGEd6/P9Q/0Y2Ko2L36bwLC3VhK//4Td0ZRSFUDVqlULfX7SpEl88MEHgHUK8v79rj+ZUq8sLqPI0EDeGtOJSWM7cehkJte9uVInwFFKXbKJEycybtw4wH2FwKvHGipPg9rUpXtsOM8u2MYbP+xg0daDvHBjOzo2KL+BoVTxBg8ebHeEPJ6URbnfCy+8QFBQEA888AAPPfQQW7Zs4YcffmDJkiW8//77ADzxxBMsWLCA4OBg5s6dS+3atXnmmWeoWrUqMTExbNiwgTFjxhAcHMzq1avZtm0bDz/8MKdOnSIiIoLp06dTt27dMmfVQlCOqocE8MrIDgxpX48n5vyaNwHOIzoBjttERHjOSWeelMXrffM4HPy1fF+zTlu4+vmLLu7bty8vv/wyDzzwABs2bCAzM5OsrCxWrFhBnz59mDlzJt27d+e5557j0UcfZcqUKTz55JN529944428+eabvPTSS8TFxZGVlcX999/P3LlziYyMZNasWTzxxBNMmzatzLuihcAFLmtei28f6svz3/zGeyuS+H77If57Qzu6x4bbHa3SS0hIAKzxWOzmSVmU+3Xu3JmNGzeSlpZGYGAgnTp1YsOGDfz000+8/vrrBAQE5LUaO3fuzPfff1/k6yUkJLB161YGDhwIQE5OTrm0BkALgcuEBvnz3PWOCXDm/MKoyWsY060Bj+sEOC51bqRHT/jw9aQsXq+Ib+6u4u/vT0xMDO+//z49e/akXbt2/Pjjj+zcuZOWLVvi7++fN36Zr69v3gijF2OMoXXr1nn/r8qTdha7WI/G4Sz6c1/u6N2IT9bt4apXl7NUJ8BRyiv07duXl156ib59+9KnTx8mTZpEhw4dSjyAZWhoaN40lc2bNyclJSWvEGRlZZXbUNRaCNwgOMCXJwe34vN7ehIS6Mf499fzyOwtHE8/a3c0pZQL9enThwMHDtCjRw9q165NUFAQffr0KfH248ePZ+LEiXTo0IGcnBw+//xzHnvsMdq3b0+HDh1YtWpVueR02TDUruKOYahdKTM7hzd/2MHbS3dSIySAfw1rzaA25XOcT3nW0M+elMUb6TDUJR+GWlsEbhbo58sjVzZn3n29qF0tkIkf/cyfZv6sE+AopWyjncU2aV0vjK/+1IvJy3fxv8W/s3LnEZ0Apxxcf/31dkfI40lZlCqKtghs5O/rw58ua8LCP/cmNqIKD83awu0zNnDgxBm7o1VYYWFhhIWF2R0D8Kws3qqiHfouD5eyz1oIPECTWqF8NrEnfx/cilU7j3DlK8v5ZJ1OgHMptm7dytatW+2OAXhWFm8UFBREamqqV/0dGWNITU0lKCioVNvpoSEP4esj3N67EQNa1uLxL37lr3N+Zf6W/Tw/vB0NwkPsjldhnDuRoE2bNjYn8aws3igqKork5GTcOauhJwgKCiIqKqpU22gh8DANw6vw8Z3d+GTdXv69cDtXvbacv1zVnFt7xuDro30HSpWUv78/jRo1sjtGhaCHhjyQiHBztwZ891BfusfW5NkF2xj57mp2HD5ldzSlVCWkhcCD1asezLTxXXhlZHt2ppzimtd/4q0fd5CtE+AopcqRFgIPJyIM7xTF9w/1Y0DLWtYEOG+vZNv+k3ZHU0pVEnplcQXzza8H+PvceI6nn+Xe/o350+VNCPTTIa7PSU9PByAkxP4Odk/KopReWVyJXN22Losf7svQDvV4/YcdDH59BZv2HLM7lscICQnxmA9eT8qiVFG0EFRA5ybAeX98F05lZnPDO6t47uttnDmr02Nu3ryZzZs32x0D8KwsShVFC0EFdlmLWnz3UF9GdW3AlJ+SuPp/y1mzK9XuWLbypA9fT8qiVFG0EFRwoUH+/Pv6tnx8ZzdyDYyavIYnv/qVU5lFT3KhlFLnaCGoJHo2jmDRg324vXcjZq61JsBZluhdV1QqpS6NFoJKJCTAj78PbsXnE3sSHODLrdPW8cSXv5KbW7HODFNKuZcWgkqoc8MaLLi/N3c4WgevLfnd7khKKQ+mYw1VUkH+vjxxbUtOZmTx+pLfaVqrKkPa17M7lsuNGTPG7gh5PCmLUkXRQlCJiQj/HNaGpCOn+b/PttAwPIR2UdXtjuVS/v7+dkfI40lZlCqKHhqq5AL9fJk0tjMRVQO584MNHDqZYXckl1q/fj3r16+3OwbgWVmUKooWAi8QXjWQqePjOJWRzV0fbCAjq/JeeBYfH098fLzdMQDPyqJUUbyrEOR477n1LepU47VRHfll3wn+8vkvXjVrk1KqaN5TCOK/gsn94MAWu5PYZmCr2jx6VQvmb9nPWz/usDuOUspDeE8hCKgKp1Ng8mXww3OQfdbuRLaY2C+W6zvW56XvElm09YDdcZRSHsB7CkHTAXDvGmg7Apa/AJP7w37vGwdGRPjP8LZ0bFCdh2ZtIX7/CbsjKaVs5p3zESR8A/MftFoIfR6Gvn8Bv8DyCVhBHE7L4Lo3VyLA3Pt6ExnqXfuvlLfR+QgKan41/GkNtBsJy190tA422Z3KrWqFBjFlXBzH0rO4+8PKfSaRUqpo3lkIAIJrwPWTYPQsOHMMplwBS/4J2Zl2J3ObNvXDeGVke37ec5y/fflrpTiTaNWqVaxatcruGIBnZVGqKN5bCM5pPgjuXQ3tboKfXrJaB/t+tjuV21zdti4PD2zGnJ/3MXn5LrvjlFliYiKJiYl2xwA8K4tSRdFCAI7WwTtw82yrdfDeAFjyrNe0Du6/vAmD29Xl+UW/sXjbIbvjKKXcTAuBs2ZXWWcWtR8FP70M7/bzitaBiPDije1pWz+MP3+6iYSDaXZHUkq5kUsLgYgMEpEEEdkhIo9fZJ2RIrJNROJF5GNX5imR4Oow7G24+TPIOGG1Dhb/o9K3DoIDfJl8SxxVAv24fcZ6Uk9V7v1VSp3nskIgIr7AW8DVQCtgtIi0KrBOU+CvQC9jTGvgQVflKbVmV1p9B+1Hw4pX4N2+sG+j3alcqk5YEJPHxZGSlsk9M3/mbHau3ZFKzd/f32NG/fSkLEoVxWXXEYhID+AZY8xVjsd/BTDG/MdpnReARGPMeyV93XK5jqC0fv8e5j0Apw5Crz9Dv8fBP8i9Gdxo7uZ9/PnTzdwUF83zN7RFROyOpJQqI7uuI6gP7HV6nOx4zlkzoJmIrBSRNSIyqLAXEpG7RGSDiGxISbFhHt6mA63rDjrcDCtetcYsSq68rYPrOtTn/subMGvDXt5fudvuOEopF3NlISjsa2TB5ocf0BToD4wG3hORC2ZOMcZMNsbEGWPiIiMjyz1oiQSFwXVvwZgvIDMNpg6A75+GrMo5vv9DA5pxVeva/OvrbSxNOGx3nBJbtmwZy5YtszsG4FlZlCqKKwtBMhDt9DgK2F/IOnONMVnGmCQgAasweK6mA6y+gw5jYOVrVt9BspsPVbmBj4/wysgONK9Tjfs/3sSOw6fsjlQiSUlJJCUl2R0D8KwsShXFlYVgPdBURBqJSAAwCphXYJ2vgMsARCQC61CR51/VFBQG170JY7+As6dg6kD4/qlK1zqoEujHe7fGEejvwx0z1nM83TtHbFWqsnNZITDGZAP3Ad8C24HZxph4EXlWRIY6VvsWSBWRbcCPwF+MMamuylTumjhaBx3Hwsr/wbt9YG/lmpqwfvVg3r2lM/uPZ3DvzJ/Jyql4ZxIppYrm0usIjDELjTHNjDGNjTHPOZ57yhgzz3HfGGMeNsa0Msa0NcZ86so8LhEUBkPfgLFz4Gw6TLsSvvs7ZJ2xO1m56dywJv8Z3pZVO1N5dv42u+MopcqZXllcXppcAfeugo63wKrXYVLlah3c0DmKu/vF8uGaP/hw9W6741xUSEgIISEhdscAPCuLUkXxzvkIXG3HEuu6g7T90ONPcNkT4B9sd6oyy8k13PXBBpYmpvDBhK70ahJhdySlVAnpfATu1uQKq++g0zhY9YajdbDO7lRl5usjvDaqA40jq3DvzJ9JOnLa7khKqXKghcBVgqrBkP/BLV9BdgZMvRK+faLC9x2EBvkz9dYu+AjcPmM9J85k2R0pn8WLF7N48WK7YwCelUWpomghcLXGl8E9q6DzeFj9JkzqDXvW2p2qTKJrhjBpbGf2pKZz/yebyPagM4mSk5NJTk62OwbgWVmUKooWAncIqgZDXnO0Ds7CtKus1sHZdLuTXbJuseH8a1gbliem8O+Fv9kdRylVBloI3KnxZdaZRXG3ObUO1tid6pKN6tqACb0aMW1lEp+u22N3HKXUJdJC4G6BoTD4VRg3F3KyYNogWPS3Cts6+Ns1LejbLJK/z93K2l0V51pApdR5WgjsEtvf0TqYAGvesloHf6y2O1Wp+fn68MbojkTXDGHiRxvZe9TeglatWjWqVatma4ZzPCmLUkXR6wg8wa5lMO8+OL4Xut8Dl/8dAirWhUhJR04z7K2V1K4WyBf39CQ0SCdkUcqT6HUEni62H9yzGrrcDmvehkm94I9VdqcqlUYRVXh7TCd2ppzmwU83k5Nbsb5gKOXNtBB4isCqcO3LcOt8yM2G96+Bbx6vUH0HvZpE8MyQViz57TAvfGvPmUSLFi1i0aJFtrx3QZ6URami+NkdQBXQqK/VOlj8DKx9BxIXwbC3oWFPu5OVyC09Ykg8dIp3l+2iWa1Qbugc5db3P3jwoFvfryielEWpomiLwBMFVoVrX4JbF4DJdbQOHoOzFWNIh6eGtKJn43D+OudXNv5x1O44SqliaCHwZI36WFcld70T1k6Cd3rB7pV2pyqWv68Pb4/pRL3qQdz94Ub2Ha/Yw2ooVdlpIfB0gVXhmhet1gEGpl8DCx/1+NZB9ZAA3ru1C5nZudwxYwOnM7PtjqSUuggtBBVFXuvgblj3LrzTE3avsDtVkZrUqsobozuScPAkD8/eTK4bziQKDw8nPDzc5e9TEp6URami6HUEFdHuFTD3T3BsN3S9C6542mo5eKipK5L454Jt3H95Ex65srndcZTySnodQWUT09tqHXSbCOsmW62DpJ/sTnVRE3rFMKpLNG/8sIO5m/fZHUcpVYAWgooqoApc/V8YvxDEB2YMhq//DzJP2Z3sAiLCs9e1oWtMTR79/Bc27z3usveaP38+8+fPd9nrl4YnZVGqKFoIKrqYXnDPSuh2D6x/z9E6WG53qgsE+PnwzthORIYGctcHGzh4IsMl75OamkpqqmcMfudJWZQqihaCyiCgClz9PNy2EHx8YcYQ+PoRj2sdhFcNZOqtXTidmc1dH27gzNkcuyMppdBCULk07AkTV0L3e2H9VHinh8f1HTSvE8r/RnXk130n+MvnW6hoJysoVRlpIahsAkJg0H/gtm/Axw8+HAYJ39idKp8BrWrz2KAWLPjlAG/8sMPuOEp5PS0ElVXDHnDXUqjTDmaPgx1L7E6Uz919YxneqT6vfJ/IN78eKLfXrVOnDnXq1Cm31ysLT8qiVFH0OoLKLv0ozBgKqTtg7OfWqaceIiMrh5unrGH7gTQ+m9iDNvXD7I6kVKWl1xF4s5CaMO4rqN4AZo6EPWvtTpQnyN+Xd2+Jo0aIP3d+sIHDaa45k0gpVTQtBN6gSgTcOg9Ca8PMG2Hfz3YnyhMZGsiUW+M4np7F3R9uJCOrbGcSzZkzhzlz5pRTurLxpCxKFeWSC4GINCzPIMrFQutYk94EV4cPr4eDW+1OlKd1vTBevak9m/Yc569zfi3TmUQnT57k5MmT5Zju0nlSFqWKUmwhEJEeInKjiNRyPG4nIh8Dnj3imbpQWJRVDPxD4IPrICXB7kR5BrWpyyMDm/Hlpn1MWrbL7jhKeZUiC4GIvAhMA24AvhaRp4HvgbVAU9fHU+WuRoxVDMTH0Ym80+5Eee67vAlD2tfjhW9/4/tth+yOo5TXKK5FcC3Q0RgzGrgSeBzobYz5nzFGe/YqqogmMG4u5Jy1isGxP+xOBFhjEr14Yzva1g/jwU838dtBPayilDsUVwjOnPvAN8YcAxKMMb+7PpZyudqtrLOJzqbBB0Ph5H67EwHWmURTxsVRNciP26dvIPVUZqm2j4qKIirKvfMkX4wnZVGqKEVeRyAix4FzI5gJ0MfpMcaYoS5NVwi9jqCcJW+0+gtC61hjFVWtZXciAH5JPs6ISatpFxXGzDu6E+CnJ7gpVRZFXUdQXCHoV9QLG2OWlTFbqWkhcIE/VsNHwx39BwugimfMqjV/y37u/2QTI+Oi+O8N7RARuyMpVWFd8gVljg/6k0AkcNgYs8z55oKsyg4Ne8DoT6yO4w+HwZljdicCYEj7ejxweRNmb0hm6oqkEm0ze/ZsZs+e7eJkJeNJWZQqSnFnDT0FzOL8WUN3uiWVcr/Y/jBqJhzeDh/dCJlpdicC4MEBzbi6TR3+vXA7PyYcLnb99PR00tPT3ZCseJ6URamiFHfg9Sagg+OsoS7AXa6PpGzTdCCMmA77N1nDUZw9bXcifHyEl0e2p0Wdajzw8SZ2HPaMAqVUZVJcIcgwxqQDGGNSS7B+PiIySEQSRGSHiDxexHo3iogRkUKPXyk3ajkYbpgCe9fApzdDlv1nCYcE+PHerXEE+vty+4wNHDt91u5ISlUqxX2wNxaReY7b/AKP5xW1oYj4Am8BVwOtgNEi0qqQ9UKBB7AuUlOeoM0NcN1bsGspzL4Fsu3/4K1XPZjJ4zpz4EQG9878maycXLsjKVVp+BWz/LoCj18qxWt3BXYYY3YBiECY5FAAACAASURBVMinjtfbVmC9fwIvAP9XitdWrtbhZsjOhAUPwue3WYeMfP1tjdSpQQ2eH96Wh2dv4Zl58fxrWJsLziRq1KiRTeku5ElZlCpKcYUgyRiz5xJfuz6w1+lxMtDNeQUR6QhEG2MWiMhFC4GI3IWjf6JBgwaXGEeVWtxtVjFY9Bh8eTcMn2LNiWyj4Z2iSDx0iknLdtK8TijjesTkW96vX5FnPLuVJ2VRqijFHRr66twdEfmilK9d2EnfeRctiIgP8CrwSHEvZIyZbIyJM8bERUZGljKGKpPuE2HAM7D1C5h3P+Taf0jm0auaM6BlLf4xfxsrfj9idxylKrziCoHzh3lsKV87GYh2ehwFOI9jEAq0AZaKyG6gOzBPO4w9UO+HoN/jsHkmLHwEbJ7VzsdHeG1UR5pEVuXemRvZlXIqb9nMmTOZOXOmjenO86QsShWluEJgLnK/JNYDTUWkkYgEAKOAvA5mY8wJY0yEMSbGGBMDrAGGGmP0smFP1P9x6PUgbJgG3/7N9mJQNdA6k8jP14c7ZmzgRHoWAFlZWWRlZdma7RxPyqJUUYorBO1F5KSIpAHtHPdPikiaiBQ5NKQxJhu4D/gW2A7MNsbEi8izIuL2MYpUGYlYh4i6TYQ1b8OSZ20vBtE1Q5g0tjN7j6Vz3yc/k61nEil1SYrsLDbGlKln0BizEFhY4LmnLrJu/7K8l3IDERj0PGRnwIpXwD8Y+j1qa6SujWryr2FteOyLX/nX19uJsTWNUhVTcWcNKZWfCFz7qnU20Y/PgV8g9PqzrZFu6tKAxEOnmLoiiXvrZVKrWqCteZSqaLQQqNLz8YGhb1otg++fAr8g6Ha3rZH+dk1Ldhw+xYqkg4xuVN/WLOc0a9bM7ghKlYgWAnVpfP2s6wqyz8I3j1otg87j7YvjI7xxc0eGv32Gf2/MoG2nE7SpH2ZbHoCePXva+v5KlZTO9qEuna8/jHgfmgyA+Q/Cllm2xqkW5M+MCV2pFuTPuGnrSDykA9QpVRJaCFTZ+AXCTR9Boz7w1USI/9LWON9/NYtbwpPw8xHGvLeWpCP2jaA6ffp0pk+fbtv7K1VSWghU2fkHw+hPIaorfHEH/Pa1rXGC/H2ZeUc3cnINY6asIfmYzgmgVFG0EKjyEVAFxnwGddvDZ+Nhx2Jb4zStHcqHt3flVGY2N09Zy6GT9g+nrZSn0kKgyk9QNRj7BUQ2h0/HQNJyW+O0rhfGjAldST2Vyc1T1nDkVKateZTyVFoIVPkKrgG3fAU1YuDjUbBnja1xOjaowbTxXdh3/Ay3TF3H8XT751ZQytNoIVDlr0oEjJsHoXVg5gjYt9Ftb926dWtat26d77luseFMGRfHzsOnuPX99aRluGf8n8KyKOWJxNg8XkxpxcXFmQ0bdFy6CuHEPnj/asg4AeMXQJ22tsZZvO0QEz/aSKcGNZg+oQshAXoZjfIeIrLRGFPo6M7aIlCuE1Yfbp1vdSR/cB0c/s3lb1nUiJ8DWtXmtVEd2PDHUe7+cCMZWTm2ZVHKk2ghUK5Vo6FVDHz84IOhkLrTpW9X3BwAg9vV44Ub2/PT70e472PXzn2s8xGoikILgXK98MZWn0FuNswYAsd22xrnxs5R/HNYGxZvP8yDn27W4auV19NCoNyjVgsYNxfOnoYZQ63+Axvd0r0hT17bkq9/PcCjX/xCbm7F6itTqjxpIVDuU6ct3DIHzhyzDhOlHbI1zh19Ynl4YDPm/LyPv8/dSkU7cUKp8qKFQLlX/c7WFcgnD1gdyKdTbY1z/+VNuKd/Y2au3cNzX2/XYqC8kp4/p9yvQXe4+VPrGoMPr7M6k4NrlMtLd+jQoVTriwiPXtWcM2dzeG9FEiEBvjx8ZXNbsihlFy0Eyh6N+sJNM+HT0fDRDdbVyEHVyvyyl/LhKyI8NbgVGVk5vP7DDoICfLm3fxNbsihlBz00pOzTdACMmA4HtsDHI62O5DJKT08nPb30o436+AjPXd+W6zrU44VFCby/Msm2LEq5mxYCZa8W18IN78HetfDJKMg6U6aXmz17NrNnz76kbX19hJdHtOeq1rX5x/xtfLpuj21ZlHInLQTKfq2vh2HvQNJPMOsWyLZvlFA/Xx9eH92R/s0j+euXv/LVJntPc1XKHbQQKM/QfhQMeQ12fA+f3QY59g3NEOjny6SxneneKJxHPtvCoq0HbMuilDtoIVCeo/N4uPoFSPga5twFua4dC6goQf6+vHdrHO2jwrj/k038+Nth27Io5WpaCJRn6XY3DHwW4ufA3D9Brn3DP1QJ9GP6hK40rxPK3R9tZNWOI7ZlUcqVtBAoz9Prz9D/b7DlE/j6ISjFRV5xcXHExRU60u4lqRbkz4cTutEovAp3fLCBDbuP2pZFKVfR+QiUZzIGlvwDVrwK3SbCoOdBxLY4h9MyGPXuGlLSMpl5ZzfaRVW3LYtSl0LnI1AVjwhc8TR0vxfWToLFz5SoZXDixAlOnDhR7nFqhQbx0R3dCAvxZ9y0dfx28KRtWZQqb1oIlOcSgav+DXETYOVrsOy/xW7y5Zdf8uWXX7okTr3qwXx8R3eC/HwZ+95adqacsi2LUuVJC4HybCJwzcvQYQws/Q+seM3WOA3CQ/jojm4AjJmylr1H9cphVfFpIVCez8cHhr4BbW6AxU/Dmkm2xmlSqyof3t6NM1k5jJ6yhgMnynY1tFJ200KgKgYfX7j+XWgxGBY9BhvetzVOy7rV+PD2rpxIz2LMlLWkpNl3NbRSZaWFQFUcvv5w4zRoeiUseAg2f2JrnHZR1Xn/ti4cOJHBLVPXcuz0WVvzKHWptBCoisUvEEZ+aA1jPfde2PpFvsU9evSgR48ebosTF1OT926NY9eR04ybto6TGeeHxnB3FqUulV5HoCqms6fhoxutUUtHfgAtB9sa54ffDnH3hxtpF1WdDyZ0pUqgTvWhPIteR6Aqn4AqcPMsqNcRPhsPv38PwJEjRzhyxP1DQVzeojavj+rIpj3HuPODDWRk5diWRanS0kKgKq6gajD2c6jVEmaNhV3LWLBgAQsWLLAlztVt6/LyyPas3pXKPR9tZP58+7IoVRpaCFTFFlzDmuayZqw1sU1G8Vf8utL1HaN4blhbfkxIYcfhtNIMk6SUbSrcgczU1FSmT5+e77nWrVvTpUsXsrKymDlz5gXbdOjQgQ4dOpCenl7ojFFxcXG0adOGEydOFHolaI8ePWjevDlHjhwp9Bte3759iY2N5eDBgyxatOiC5VdccQXR0dHs3buXJUuWXLB80KBB1KlTh127drF8+fILlg8ePJiIiAgSEhJYvXr1Bcuvv/56wsLC2Lp1K4X1n4wcOZKQkBA2b97M5s2bL1g+ZswY/P39Wb9+PfHx8RcsHz9+PACrVq0iMTEx3zJ/f3/GjBkDwLJly0hKyj/FY0hICCNHjgRg8eLFJCcn51terVo1hg8fDsCiRYs4ePBgvuXh4eEMGTIEgPnz55OamppveZ06dRg0aBCMm8ucN57g4KGD4J+W938kKiqKAQMGANaMYQWnjmzUqBH9+vUDYObMmWRl5Z8HoVmzZvTs2RPggv93cPH/exPrZnDy2HGSDmSSk2vIzDij//cq6/89YM6cOZw8mf9LiF3/984p7nPPmUtbBCIySEQSRGSHiDxeyPKHRWSbiPwiIktEpKEr86hKrGotiO0PCGSdhrSDxWzgWnXCggj08yUtM5snv/qVinZShvIuLjtrSER8gURgIJAMrAdGG2O2Oa1zGbDWGJMuIvcA/Y0xNxX1unrWkCrK9KlT4Egi489MhpZDYejr1uEjO7JMn87eo+lMPdyQ8T1jeHpIK8TGEVSVdyvqrCFXHhrqCuwwxuxyhPgUuA7IKwTGmB+d1l8DjHVhHuUF+l52BeReBgfrww//hEmb4Iap0KCb+7P07YsxBrMtk2krkwgJ8OXRQS3cnkOp4riyENQH9jo9TgaK+mu8HfimsAUichdwF0CDBg3KK5+qhGJjY607TR6EmN7w+QR4/2q47G/Q+yFrqAo3Z/l7rCEjO4e3l+4kJMCX+y5v6rYMSpWEK/sICmsDF3ocSkTGAnHAi4UtN8ZMNsbEGWPiIiMjyzGiqmwOHjx4vtMvKg4m/gSth1mtgw+HwUn3TUR/LouI8K/r2jC8Y31e+i6R937a5bYMSpWEKwtBMhDt9DgK2F9wJREZADwBDDXG6MhdqkwWLVqU/+yZoDDr0NDQNyF5A0zqBYnfuT2Lj4/wwo3tuKZtHf719XY+WvOHWzIoVRKuLATrgaYi0khEAoBRwDznFUSkI/AuVhE47MIsypuJQKdb4K6lEFoXPh4B3z4B2e4dJM7P14fXburI5S1q8eRXW/liY3LxGynlBi4rBMaYbOA+4FtgOzDbGBMvIs+KyFDHai8CVYHPRGSziMy7yMspVXaRzeGOJdDlTlj9JkwdCKk73RohwM+Ht8d0oneTCP7y+Rb+MT+ePak6uY2yl0svKDPGLAQWFnjuKaf7A1z5/kpdwD8Irn3JuuZg7p/g3b5w7SvQvsizlstVkL8vk8d15u9fxfPh6j+YsWo3A1vV5vbesXSJqaGnmCq30yEmlHdqORjuWQl12sGXd8GX90Bm0XMQl6eQAD9eHtmeFY9dzsR+jVmbdJSR765m6Jsr+XJTMmezc92WRSkdhlpVKnv3WmcsR0dHF7OmQ042LH8Blr9ojVd04zSo297tWc6czWHOpmSmrUhiZ8ppalcLZFyPGEZ3bUDNKgHlkkd5t6IuKNNCoBTA7hXwxZ2QfgQGPgvdJlqdzG6Wm2tY9nsK01Yk8dPvRwj082F4pyhu7x1Dk1qhbs+jKg8tBMprlLpF4Ox0qtVvkPgNNLsarnsLqoTbkwVIPJTGtBVJzNm0j7PZufRrFsmE3o3o2zRC+xFUqWkhUF7j3CiN50atLDVjYN1k+O5JCAmH4VOgUR97sjiknspk5to9fLD6D46cyqRprapM6N2I6zvWJ8jffVdKq4pNZyhTqqREoNvd1mmmAVVhxhD44TmrL8Em4VUDeeCKpqx8/DJeHtEef18f/jrnV3r8ZwkvfZvA4ZMZtmVTlUOFm49AKbeo2866AO2bR63O5N0/Wa2D6pd2mKc8BPr5ckPnKIZ3qs/apKNMXZHEW0t38O7ynfRvXov+zSPp37wW9asH25ZRVUxaCJS6mMCqMOxtiL0MFjwEk3rDdW9CyyG2xhIRuseG0z02nN1HTjNj9W6+iz/E99sOAdC0VlX6NbOKQpdGNQj008NHqmhaCJQqTrsRENXZGsl01ljocgdc+S/wt/+bd0xEFZ4e0pqnBrdiZ8opliaksDQhhQ9W/8F7K6yhr3s2Ds8rDNE1Q+yOrDyQdharSuXcyKN16tQp/xfPPgtL/mENT1GrNYx43xq2wo4sxTidmc2aXalWYUg8zN6jZwCIjaySVxS6Naqpnc1eRM8aUqo8/f49fDkRzp6Gq/8LncbZcs1BSRljSDpy2lEUUlizK5Wz2bkE+fvQPTac/o7CEBNRxe6oyoW0ECivsWuXNdZ/3gQ1rpJ2EObcBUnLoPVwGPKaNeS1HVlK6czZHNYkpbIsIYWlCYfZ7Rj0LiY8JK+10D02nOAAbS1UJnZNVamU2y1fvhxww4dvaB245StY+ap1eum+jdbwFFHn/87clqWUggN8uax5LS5rXgtoze4jp1mWaBWFWRv2MmP1HwT4Wa0FqzBEEhtRRS9iq8S0ECh1qXx8oM8jENMHPr8dpl0Flz8JPf9sLasgYiKqEBNRhVt7xpCRlcO6pKN5fQv/XLCNfy6A6JrB9G9Wi37NIunZJJyQAP3oqEz0t6lUWUV3tabEnP9nWPwM7FoG179rd6pLEuTvS99mkfRtFslTtGLv0XSWJqawLOEwX/yczIdr/iDA14eujWrmtRaa1KqqrYUKTguBUuUhuDqMmA4/z4BvHremxKz6JwiuYXeyMomuGcIt3RtyS/eGZGbnsGH3MZYmHGZpQgrPLdzOcwu3U796MH0dRaFXkwiqBurHSkWjvzGlyosIdB4P0d3h89vgUDyERVmnnfpV/KGkA/186dUkgl5NInjiWth3/Exeh/O8zfv4ZN0e/H2FuIY16dfcKgzNa4dqa6EC0LOGVKVy5MgRACIiIuwNknWGI3OfhK1fEFE/Fm6YCjUb2ZvJhc5m57Lxj2MsTTzMsoQUfjuYBkDdsCD6NYukX7NIejWNoFqQv81JvZeePqqUXbbNhXn3Q26udYpp2xvtTuQWB09ksCzROoS04vcjpGVm4+cjdGpYg/7NrcLQqm41bS24kRYC5TUSEhIAaN784lf8ukteltrB8MUdsHctdBwLV78AAd5z8VZWTi6b9hxnacJhliWmEL//JAC1QgOt1kLzSPo0iSQsRFsLrqTXESivsXr1asAzCkFelvHjYfxCWPof+Oll2LvOuuagTlt7A7qJv+Mso66NavLooBYcPplhXbeQmMK38Qf5bGMyvj5Cx+jqjtZCLVrXq4aPj7YW3EULgVLu4OsHV/wdGvW1rkiecoU1cF2X28HHu67grVUtiBFx0YyIiyY7J5ctycfzBst76btEXvoukYiqAfR19C30bRpJDZ232aW0ECjlTrH94J6V8NW98M1frEHs6neCqK7W9QhRXSCkpt0p3cbP14fODWvSuWFNHrmyOUdOZbI80SoKP/52mDk/78NHoH10deuCtuaRtKsfpq2FcqaFQCl3qxIBN8+C7fMg6SdIXgcrXgWTYy0PbwLR3ayiEN0VIlt4TashomogwztFMbxTFDm5hl8crYVliSm8tiSRVxcnUrNKAH2bRtCmfhhRNUKIrhlMdM0QPSOpDLQQKGUHEWh1nXUDayTT/Zus/oPk9ZC4CDbPtJYFhFrzIeS1GuIq/IVqJeHrI3RsUIOODWrw0MBmHD19lp9+T2FZQgrLf0/hq837860fFuxvFYUaIUTXDCG6RjBR5/6tEaJDbhdBzxpSlcqJEycACAsLK2ZN1ytTFmPg6C6rKOxdZ7UaDsWDybWWRzRzFAVHcYho5jWtBrCG1j5xJou9R8+w91g6e4+mO/61HicfO8PZ7Nx820SGBhJdI9hRJELyFY26YUH4+Vac8aEuhZ4+qlRlkHkK9v98vtWwdx2cOWot8w2AGo2sw0rhsVCzseN+Ywit69HzJbhCbq4h5VRm/gLhdP/AiTPkOn30+foIdcOCLigQ5+5HhgZW+GsetBAor7F161YA2rRpY3MSN2Q512rYuw5StkPqTutx6k7IyTy/nn8I1Iy1ikLNxk7/NrH6Kyr4B9ylyMrJ5eCJjAtaEtbjM6SkZeZbP9DPh6iLtCaia4RUiGsg9DoC5TXOfUnwhELg8iwi1od6eOP8z+fmwsl9cHQnpO6A1F3W/UPx8NvXkJt9ft3Aao4i0SR/oQhvXKn7Ifx9fRzf+Aufw/nM2Rz2HS9QIBz3f/7jGCczsvOtHxrkd9HWRFSNEI+f5EcLgVKVjY8PVI+2brH98y/LyYYTe6xWQ+pOR7HYaR1qip9zvg8CILimoyg0cRSI2POFIjDUnXvkdsEBvjSpFUqTWoXvp9U/kU5ygdbEzhRrkp+MrPz9ExFVA52KRP7WRN3qQfjb3D+hhUApb+LrZ7UAasZC04H5l2VnwrE/rFbEuQKRugOSlsOWT/KvW7X2+eKQVygaW6/rH+y+/bFJWLA/YfXDaFP/whMBjDnXP3HGUSjOF4tNe4/x9a8HyHHqoPARqBsWfOGhJ8f9WqGBLr9uQguBUsriFwiRzaxbQWfTrf6HvALhaE0kfgenP8q/brWoCzusazaGGjGVYjju4ogItUKDqBUaROeGFx5ey87J5cCJDOvspgJ9E8sTUzhcoH8iwM+HqOrWqbC39YpxTDFavrQQKKWKFxACddpYt4IyTp4vEEd3OfoldkL8l5Bx/Px64gPVGzj1QzgdcgprYLVWvICfc/9E4wuXZ2TlkHzMcRqso0CcOwSVmZXjkkx61pCqVNLT0wEICSm8E9CdPCmLbdKPOvVF7HC6vwvOpp1fz8ffajEU7LCu2Riq1a9Qc0B7Kj1rSHkNT/rQ9aQstgmpad2iu+R/3hg4dTh/X8S5ArFrKWRnnF/XL+h8v4ZzoahSC4KqWR3X/iFeeRpsedFCoCqVzZs3A9ChQwebk3hWFo8jAqG1rVvDnvmX5eZC2v78ZzWl7oQjiZD4LeRmFfJ6PlZBCHQUhrxbtYvcL/BcXkGp4pWtDy0EqlLxpA9fT8pSofj4WHM9h0VZo7U6y8mGE3utvogzxyDzpNVHkZnmdHM8Tj9qnQV17rms9BK8uRRSLJyLRgmKSWAoBFStUEN+aCFQSlUcvn7W3M+XMv9zTrbVL5FZ8FZYMXEqKBkn4cS+84/PnirZ+wVUvUhBCSui0ITmLyoBoW7pRHfpO4jIIOB/gC/wnjHm+QLLA4EPgM5AKnCTMWa3KzMppbyUr591tXRZr5jOzbGKQWmKyblb2sH8jynByTr+IecLRP+/umTea5cVAhHxBd4CBgLJwHoRmWeM2ea02u3AMWNMExEZBfwXuMlVmZRSqsx8fCEozLqVRW4uZJ3OXxgyThRdTELCy2cfCnBli6ArsMMYswtARD4FrgOcC8F1wDOO+58Db4qImIp2TqtSSpWWj8/5b/o2c2UhqA/sdXqcDHS72DrGmGwROQGEA0ecVxKRu4C7ABo0aOCqvKoSGDNmjN0R8nhSFqWK4srzpAo7qbfgN/2SrIMxZrIxJs4YExcZGVku4VTl5O/vj7+/ZwwJ7ElZlCqKKwtBMhDt9DgK2H+xdUTEDwgDjrowk6rk1q9fz/r16+2OAXhWFqWK4spCsB5oKiKNRCQAGAXMK7DOPOBWx/0bgR+0f0CVRXx8PPHx8XbHADwri1JFcVkfgeOY/33At1inj04zxsSLyLPABmPMPGAq8KGI7MBqCYxyVR6llFKFc+l1BMaYhcDCAs895XQ/AxjhygxKKaWK5n2DaiillMpHC4FSSnm5CjcfgYikAH9c4uYRFLhGwQvoPnsH3WfvUJZ9bmiMKfT8+wpXCMpCRDZcbGKGykr32TvoPnsHV+2zHhpSSikvp4VAKaW8nLcVgsl2B7CB7rN30H32Di7ZZ6/qI1BKKXUhb2sRKKWUKkALgVJKeblKWQhEZJCIJIjIDhF5vJDlE0XkVxHZLCIrRKSVHTnLU3H77LTejSJiRKTCn3ZXgt/zeBFJcfyeN4vIHXbkLE8l+T2LyEgR2SYi8SLysbszlqcS/I5fdfr9JorIcTtylqcS7HMDEflRRDaJyC8ick2Z39QYU6luWAPc7QRigQBgC9CqwDrVnO4PBRbZndvV++xYLxRYDqwB4uzO7Ybf83jgTbuzunmfmwKbgBqOx7Xszu3K/S2w/v1Yg1vant3Fv+PJwD2O+62A3WV938rYIsibItMYcxY4N0VmHmPMSaeHVSjRDNIerdh9dvgn8AKQ4c5wLlLSfa5MSrLPdwJvGWOOARhjDrs5Y3kq7e94NPCJW5K5Tkn22QDVHPfDuHCel1KrjIWgsCky6xdcSUT+JCI7sT4YH3BTNlcpdp9FpCMQbYxZ4M5gLlSi3zNwg6P5/LmIRBeyvCIpyT43A5qJyEoRWSMig9yWrvyV9HeMiDQEGgE/uCGXK5Vkn58BxopIMtbozveX9U0rYyEo6fSXbxljGgOPAU+6PJVrFbnPIuIDvAo84rZErleS3/N8IMYY0w5YDMxweSrXKsk++2EdHuqP9Q35PRGp7uJcrlKiv2WHUcDnxpgcF+Zxh5Ls82hgujEmCrgGa06XMn2WV8ZCUJIpMp19CgxzaSLXK26fQ4E2wFIR2Q10B+ZV8A7jYn/PxphUY0ym4+EUoLObsrlKSad/nWuMyTLGJAEJWIWhIirN3/IoKv5hISjZPt8OzAYwxqwGgrAGo7tklbEQFDtFpog4/2FcC/zuxnyuUOQ+G2NOGGMijDExxpgYrM7iocaYDfbELRcl+T3XdXo4FNjuxnyuUJLpX78CLgMQkQisQ0W73Jqy/JRkfxGR5kANYLWb87lCSfZ5D3AFgIi0xCoEKWV5U5fOUGYHU7IpMu8TkQFAFnCM8/MmV0gl3OdKpYT7/ICIDAWysaZCHW9b4HJQwn3+FrhSRLYBOcBfjDGp9qW+dKX4fz0a+NQ4TqOpyEq4z48AU0TkIazDRuPLuu86xIRSSnm5ynhoSCmlVCloIVBKKS+nhUAppbycFgKllPJyWgiUUsrLaSFQXkVEqovIvY77/UWk3IfccIx6+mYpt9ntOO+/4PPPiMj/lV86pS6khUB5m+rAvaXZQER8XZRFKY+ghUB5m+eBxiKyGXgRqOoYkO43EZkpIgJ539CfEpEVwAgRaSwii0Rko4j8JCItHOuNEJGtIrJFRJY7vU89x/q/i8gL554UkdFizYWxVUT+W1hAEXnCMR79YqC5q34QSp1T6a4sVqoYjwNtjDEdRKQ/MBdojTWey0qgF7DCsW6GMaY3gIgsASYaY34XkW7A28DlwFPAVcaYfQUGd+sAdAQygQQReQPrSt//Yo15dAz4TkSGGWO+OreRiHTGGlagI9bf58/AxvL/MSh1nhYC5e3WGWOSARythBjOF4JZjuerAj2BzxwNBoBAx78rgekiMhuY4/S6S4wxJxzbbwMaAuHAUmNMiuP5mUBfrPGBzukDfGmMSXesU+mGB1GeRwuB8naZTvdzyP83cdrxrw9w3BjToeDGxpiJjhbCtcBmETm3TmGvW9gQw4XRcV+UW2kfgfI2aVjDcpeYY0a7JBEZASCW9o77jY0xa40xTwFHyD+EcEFrgX4iEuHogB4NLCuwznLgehEJFpFQYEhpsip1KbRFoLyKMSbVMXvXVuAMcKiEm44B3hGRJwF/rHkstgAvOoY1F2CJ47kLWg6O9z4gIn8FfnSsv9AYM7fAOj+LyCxgym8UfwAAAENJREFUM/AH8FNp91Gp0tLRR5VSysvpoSGllPJyWgiUUsrLaSFQSikvp4VAKaW8nBYCpZTycloIlFLKy2khUEopL/f/owvAxyw9EqIAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "PlotFPR(FP_b, FP_w, thrs)\n", "plt.axvline(x=0.5, color=\"grey\", ls=\"dashed\")\n", "plt.axhline(y=0.21, color=\"grey\", ls=\"dashed\")\n", "plt.axvline(x=0.557, color=\"grey\", ls=\"dashed\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`thr = 0.557` seems about right. \n", "\n", "Now the white and black demographic would be at parity. We'll compute the correct classification rate on the validation set." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.669750231267345" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "compas_valid_x, compas_valid_y = get_x_y_split(compas_valid, predictors)\n", "getCCR_fit(my_model, compas_valid_x, compas_valid_y, 0.557)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(Note that we ignored everyone who wasn't white or black. That's OK to do, but including other demographics (in any way you like) is OK too)." ] } ], "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }