Newer
Older
"test = test.assign(B_prob_0_logreg=label_probs_logreg[:, 0])\n",
"# instantiate the model (using the default parameters)\n",
"forest = RandomForestClassifier(n_estimators=300, max_depth=5, random_state=0)\n",
"# fit, reshape X to be of shape (n_samples, n_features)\n",
"forest = forest.fit(train_labeled.X.values.reshape(-1, 1), train_labeled.result_Y)\n",
"\n",
"# predict probabilities and attach to data\n",
"label_probs_forest = forest.predict_proba(test.X.values.reshape(-1, 1))\n",
"test = test.assign(B_prob_0_forest=label_probs_forest[:, 0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's plot the failure rates against the acceptance rates using the difference."
]
},
{
"cell_type": "code",
"metadata": {
"scrolled": false
},
"failure_rates = np.zeros((8, 6))\n",
" ## Contraction, logistic regression\n",
" failure_rates[r - 1, 0] = contraction(\n",
" test[test.decision_T == 1], 'judgeID_J', 'decision_T', 'result_Y',\n",
" 'B_prob_0_logreg', 'acceptanceRate_R', r / 10, False)\n",
" \n",
" ## Contraction, random forest\n",
" failure_rates[r - 1, 1] = contraction(\n",
" test[test.decision_T == 1], 'judgeID_J', 'decision_T', 'result_Y',\n",
" 'B_prob_0_forest', 'acceptanceRate_R', r / 10, False)\n",
" ## Human error rate - Correct?\n",
" # Get judges with correct leniency as list\n",
" correct_leniency_list = test_labeled.judgeID_J[test_labeled['acceptanceRate_R'].round(1) ==\n",
" r / 10]\n",
"\n",
" # Released are the people they judged and released, T = 1\n",
" released = test_labeled[test_labeled.judgeID_J.isin(correct_leniency_list)\n",
" & (test_labeled.decision_T == 1)]\n",
"\n",
" # Get their failure rate, aka ratio of reoffenders to number of people judged in total\n",
" failure_rates[r - 1, 2] = np.sum(\n",
" released.result_Y == 0) / correct_leniency_list.shape[0]\n",
"\n",
" ## True evaluation -- didn't mention using contraction here???\n",
" failure_rates[r - 1, 3] = contraction(test, 'judgeID_J', 'decision_T',\n",
" 'result_Y', 'B_prob_0_logreg',\n",
" 'acceptanceRate_R', r / 10, False)\n",
"\n",
" ## Causal model with logistic regression\n",
" failure_rates[r - 1, 4] = ep([r / 10], test_labeled, 'result_Y', 'X', logreg)\n",
" ## Causal model with random forest classifier\n",
" failure_rates[r - 1, 5] = ep([r / 10], test_labeled, 'result_Y', 'X', forest)\n",
"\n",
"# klassifikaatioille scipy.stats semin kautta error barit xerr ja yerr argumenttien kautta\n",
"\n",
"plt.figure(figsize=(14, 8))\n",
"plt.plot(np.arange(0.1, 0.9, .1), failure_rates[:, 0], label='Contraction, logistic')\n",
"#plt.plot(np.arange(0.1, 0.9, .1), failure_rates[:, 1], label='Contraction, forest')\n",
"plt.plot(np.arange(0.1, 0.9, .1), failure_rates[:, 2], label='\"Human judges\"')\n",
"plt.plot(np.arange(0.1, 0.9, .1), failure_rates[:, 3], label='True Evaluation')\n",
"\n",
"plt.plot(np.arange(0.1, 0.9, .1), failure_rates[:, 4], label='Causal model, log.')\n",
"#plt.plot(np.arange(0.1, 0.9, .1), failure_rates[:, 5], label='Causal model, r.f.')\n",
"plt.title('Failure rate vs. Acceptance rate')\n",
"plt.xlabel('Acceptance rate')\n",
"plt.ylabel('Failure rate')\n",
"plt.legend()\n",
"plt.show()\n",
"\n",
"with np.printoptions(precision=4, suppress=True):\n",
" print(failure_rates)"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Failure rates still too high. Order of curves now correct."
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
},
{
"data": {
"text/plain": [
"array([0. , 0. , 0.00058348, 0.00125031, 0.00250063,\n",
" 0.00475119, 0.00675169, 0.00916896, 0.012003 , 0.01508711,\n",
" 0.01850463, 0.02242227, 0.02583979, 0.02925731, 0.03367509,\n",
" 0.03700925, 0.04101025, 0.04467784, 0.04867884, 0.05326332,\n",
" 0.05776444, 0.06234892, 0.06726682, 0.07151788, 0.07551888,\n",
" 0.07951988, 0.08360423, 0.08877219, 0.09218971, 0.09569059,\n",
" 0.09960824, 0.10394265, 0.1089439 , 0.11327832, 0.11736267,\n",
" 0.11961324, 0.12244728, 0.12511461, 0.12836542, 0.13119947,\n",
" 0.13453363, 0.13770109, 0.14011836, 0.14486955, 0.14695341,\n",
" 0.1498708 , 0.15312161, 0.15553888, 0.15837293, 0.16104026,\n",
" 0.16395766, 0.16662499, 0.16937568, 0.17262649, 0.17512712,\n",
" 0.17671084, 0.17821122, 0.18046178, 0.18321247, 0.18471284,\n",
" 0.18621322, 0.18846378, 0.18938068, 0.19104776, 0.19238143,\n",
" 0.19404851, 0.19554889, 0.1967992 , 0.1978828 , 0.19913312,\n",
" 0.1998833 , 0.20130033, 0.20246728, 0.20305076, 0.20446778,\n",
" 0.20555139, 0.20705176, 0.20805201, 0.20913562, 0.20996916,\n",
" 0.2108027 , 0.2117196 , 0.21221972, 0.21255314, 0.21288655,\n",
" 0.21330333, 0.21347003, 0.21380345, 0.21447028, 0.2148037 ,\n",
" 0.21513712, 0.21563724, 0.21613737, 0.21638743, 0.21647078,\n",
" 0.21647078, 0.21647078, 0.21647078, 0.21647078, 0.21647078])"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
"x_vals = np.linspace(0, 1, 100)\n",
"y_vals = ep(x_vals, test_labeled, 'result_Y', 'X', logreg)\n",
"plt.figure(figsize=(14, 8))\n",
"plt.plot(x_vals, y_vals)\n",
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### On COMPAS data\n",
"\n",
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
"#### Predictive models\n",
"\n",
"Let's build the predictive models (first here random forest and logistic regression). Some of our variables are string so they will first have to be transformed to be dummy / indicator variables."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"# convert string values to dummies, drop first so full rank\n",
"compas_dummy = pd.get_dummies(compas, columns=['c_charge_degree', 'race', 'age_cat', 'score_text', 'sex'], drop_first=True)\n",
"\n",
"########\n",
"\n",
"predict_columns = ['priors_count', 'days_b_screening_arrest', 'length_of_stay',\n",
" 'c_charge_degree_M', 'race_Asian', 'race_Caucasian', 'race_Hispanic',\n",
" 'race_Native American', 'race_Other', 'age_cat_Greater than 45',\n",
" 'age_cat_Less than 25', 'score_text_Low', 'score_text_Medium', 'sex_Male']\n",
"\n",
"response_column = 'two_year_recid'\n",
"\n",
"# instantiate the model (using the default parameters)\n",
"logreg_c = LogisticRegression(solver='lbfgs', max_iter=1000)\n",
"\n",
"# fit, reshape X to be of shape (n_samples, n_features)\n",
"logreg_c.fit(compas_dummy[predict_columns], compas_dummy[response_column])\n",
"\n",
"# predict probabilities and attach to data\n",
"#label_probs_logreg = logreg_c.predict_proba(test.X.values.reshape(-1, 1))\n",
"#test = test.assign(B_prob_0_machine=label_probs_logreg[:, 0])\n",
"\n",
"########\n",
"\n",
"# instantiate the model\n",
"forest_c = RandomForestClassifier(n_estimators=300, max_depth=5, random_state=0)\n",
"\n",
"# fit, reshape X to be of shape (n_samples, n_features)\n",
"forest_c = forest.fit(compas_dummy[predict_columns], compas_dummy[response_column])\n",
"\n",
"# predict probabilities and attach to data\n",
"#label_probs_forest = forest.predict_proba(test.X.values.reshape(-1, 1))\n",
"#test = test.assign(B_prob_0_forest=label_probs_forest[:, 0])"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"failures_compas = np.zeros((11, 2))\n",
"\n",
"for r in np.arange(0, 11):\n",
" ## Causal model with logistic regression\n",
" failures_compas[r, 0] = ep([r / 10], compas_dummy, response_column, predict_columns, logreg_c)\n",
" \n",
" ## Causal model with random forest classifier\n",
" failures_compas[r, 1] = ep([r / 10], compas_dummy, response_column, predict_columns, forest_c)\n",
"\n",
"# klassifikaatioille scipy.stats semin kautta error barit xerr ja yerr argumenttien kautta\n",
"\n",
"plt.figure(figsize=(14, 8))\n",
"plt.plot(np.arange(0, 11) / 10, failures_compas[:, 0], label='Causal model, log.')\n",
"plt.plot(np.arange(0, 11) / 10, failures_compas[:, 1], label='Causal model, for.')\n",
"\n",
"plt.title('Failure rate vs. Acceptance rate - COMPAS')\n",
"plt.xlabel('Leniency')\n",
"plt.ylabel('Empirical performance')\n",
"plt.legend()\n",
"plt.show()\n"
}
],
"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.7"
"number_sections": true,
"sideBar": true,
"skip_h1_title": true,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": true,
"toc_position": {
"height": "calc(100% - 180px)",
"left": "10px",
"top": "150px",
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"position": {
"height": "465.65px",
"left": "843.6px",
"right": "16.2px",
"top": "159px",
"width": "676.2px"
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}