{ "cells": [ { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "# Replicating Propublica's COMPAS Audit" ] }, { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "## Why COMPAS?\n", "\n", "Propublica started the COMPAS Debate with the article [Machine Bias](https://www.propublica.org/article/machine-bias-risk-assessments-in-criminal-sentencin). With their article, they also released details of their methodology and their [data and code](https://github.com/propublica/compas-analysis). This presents a real data set that can be used for research on how data is used in a criminal justice setting without researchers having to perform their own requests for information, so it has been used and reused a lot of times.\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import scipy\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import itertools\n", "from sklearn.metrics import roc_curve\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "tags": [] }, "outputs": [], "source": [ "propublica_data_url = 'https://github.com/propublica/compas-analysis/raw/master/compas-scores-two-years.csv'\n", "df_pp = pd.read_csv(propublica_data_url,\n", " header=0).set_index('id')" ] }, { "cell_type": "code", "execution_count": null, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
namefirstlastcompas_screening_datesexdobageage_catracejuv_fel_count...v_decile_scorev_score_textv_screening_datein_custodyout_custodypriors_count.1startendeventtwo_year_recid
id
1miguel hernandezmiguelhernandez2013-08-14Male1947-04-1869Greater than 45Other0...1Low2013-08-142014-07-072014-07-140032700
3kevon dixonkevondixon2013-01-27Male1982-01-223425 - 45African-American0...1Low2013-01-272013-01-262013-02-050915911
4ed philoedphilo2013-04-14Male1991-05-1424Less than 25African-American0...3Low2013-04-142013-06-162013-06-16406301
5marcu brownmarcubrown2013-01-13Male1993-01-2123Less than 25African-American0...6Medium2013-01-13NaNNaN10117400
6bouthy pierrelouisbouthypierrelouis2013-03-26Male1973-01-224325 - 45Other0...1Low2013-03-26NaNNaN20110200
\n", "

5 rows × 52 columns

\n", "
" ], "text/plain": [ " name first last compas_screening_date sex \\\n", "id \n", "1 miguel hernandez miguel hernandez 2013-08-14 Male \n", "3 kevon dixon kevon dixon 2013-01-27 Male \n", "4 ed philo ed philo 2013-04-14 Male \n", "5 marcu brown marcu brown 2013-01-13 Male \n", "6 bouthy pierrelouis bouthy pierrelouis 2013-03-26 Male \n", "\n", " dob age age_cat race juv_fel_count ... \\\n", "id ... \n", "1 1947-04-18 69 Greater than 45 Other 0 ... \n", "3 1982-01-22 34 25 - 45 African-American 0 ... \n", "4 1991-05-14 24 Less than 25 African-American 0 ... \n", "5 1993-01-21 23 Less than 25 African-American 0 ... \n", "6 1973-01-22 43 25 - 45 Other 0 ... \n", "\n", " v_decile_score v_score_text v_screening_date in_custody out_custody \\\n", "id \n", "1 1 Low 2013-08-14 2014-07-07 2014-07-14 \n", "3 1 Low 2013-01-27 2013-01-26 2013-02-05 \n", "4 3 Low 2013-04-14 2013-06-16 2013-06-16 \n", "5 6 Medium 2013-01-13 NaN NaN \n", "6 1 Low 2013-03-26 NaN NaN \n", "\n", " priors_count.1 start end event two_year_recid \n", "id \n", "1 0 0 327 0 0 \n", "3 0 9 159 1 1 \n", "4 4 0 63 0 1 \n", "5 1 0 1174 0 0 \n", "6 2 0 1102 0 0 \n", "\n", "[5 rows x 52 columns]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_pp.head() # fist 5 rows \n", "# THIS is a comment, english in the code" ] }, { "cell_type": "code", "execution_count": 36, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
namefirstlastcompas_screening_datesexdobageage_catracejuv_fel_count...v_decile_scorev_score_textv_screening_datein_custodyout_custodypriors_count.1startendeventtwo_year_recid
id
10996steven butlerstevenbutler2013-11-23Male1992-07-1723Less than 25African-American0...5Medium2013-11-232013-11-222013-11-240186000
10997malcolm simmonsmalcolmsimmons2014-02-01Male1993-03-2523Less than 25African-American0...5Medium2014-02-012014-01-312014-02-020179000
10999winston gregorywinstongregory2014-01-14Male1958-10-0157Greater than 45Other0...1Low2014-01-142014-01-132014-01-140080800
11000farrah jeanfarrahjean2014-03-09Female1982-11-173325 - 45African-American0...2Low2014-03-092014-03-082014-03-093075400
11001florencia sanmartinflorenciasanmartin2014-06-30Female1992-12-1823Less than 25Hispanic0...4Low2014-06-302015-03-152015-03-152025801
\n", "

5 rows × 52 columns

\n", "
" ], "text/plain": [ " name first last compas_screening_date \\\n", "id \n", "10996 steven butler steven butler 2013-11-23 \n", "10997 malcolm simmons malcolm simmons 2014-02-01 \n", "10999 winston gregory winston gregory 2014-01-14 \n", "11000 farrah jean farrah jean 2014-03-09 \n", "11001 florencia sanmartin florencia sanmartin 2014-06-30 \n", "\n", " sex dob age age_cat race \\\n", "id \n", "10996 Male 1992-07-17 23 Less than 25 African-American \n", "10997 Male 1993-03-25 23 Less than 25 African-American \n", "10999 Male 1958-10-01 57 Greater than 45 Other \n", "11000 Female 1982-11-17 33 25 - 45 African-American \n", "11001 Female 1992-12-18 23 Less than 25 Hispanic \n", "\n", " juv_fel_count ... v_decile_score v_score_text v_screening_date \\\n", "id ... \n", "10996 0 ... 5 Medium 2013-11-23 \n", "10997 0 ... 5 Medium 2014-02-01 \n", "10999 0 ... 1 Low 2014-01-14 \n", "11000 0 ... 2 Low 2014-03-09 \n", "11001 0 ... 4 Low 2014-06-30 \n", "\n", " in_custody out_custody priors_count.1 start end event two_year_recid \n", "id \n", "10996 2013-11-22 2013-11-24 0 1 860 0 0 \n", "10997 2014-01-31 2014-02-02 0 1 790 0 0 \n", "10999 2014-01-13 2014-01-14 0 0 808 0 0 \n", "11000 2014-03-08 2014-03-09 3 0 754 0 0 \n", "11001 2015-03-15 2015-03-15 2 0 258 0 1 \n", "\n", "[5 rows x 52 columns]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_pp.tail() # bottom 5 rows \n", "# put anything here bro" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## WE can GET HELP from holding SHIFT + Tab inside perenthesis (in code)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(7214, 52)" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_pp.shape\n" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_pp.head" ] }, { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "## Data Cleaning" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "clean_data_url = 'https://raw.githubusercontent.com/ml4sts/outreach-compas/main/data/compas_c.csv'" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "df= pd.read_csv(clean_data_url,\n", " header= 0).set_index('id')\n", "# *changed the \"Propublicia to \"clean\", that changed the URL...to what I need" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(7214, 52)" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_pp.shape\n", "# first graph" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(5278, 14)" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.shape\n", "#second graph shape\n", "\n", "# ^ look :0 the second graph is smaller = less people in second graph" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [], "source": [ "race_counts = df['race'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* `age`: defendant's age\n", "* `c_charge_degree`: degree charged (Misdemeanor of Felony)\n", "* `race`: defendant's race\n", "* `age_cat`: defendant's age quantized in \"less than 25\", \"25-45\", or \"over 45\"\n", "* `score_text`: COMPAS score: 'low'(1 to 5), 'medium' (5 to 7), and 'high' (8 to 10).\n", "* `sex`: defendant's gender\n", "* `priors_count`: number of prior charges\n", "* `days_b_screening_arrest`: number of days between charge date and arrest where defendant was screened for compas score\n", "* `decile_score`: COMPAS score from 1 to 10 (low risk to high risk)\n", "* `is_recid`: if the defendant recidivized\n", "* `two_year_recid`: if the defendant within two years\n", "* `c_jail_in`: date defendant was imprisoned\n", "* `c_jail_out`: date defendant was released from jail\n", "* `length_of_stay`: length of jail stay" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "African-American 3175\n", "Caucasian 2103\n", "Name: race, dtype: int64" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "race_counts\n", "# press tab when typing variable to auto-complete" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "race_counts.plot(kind= 'pie')\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.8" } }, "nbformat": 4, "nbformat_minor": 4 }