Skip to content

Commit 86c141d

Browse files
committed
remove unnecessary comments, clean code, bug fixes
Signed-off-by: ckalousi <[email protected]>
1 parent 9080ddb commit 86c141d

File tree

4 files changed

+24
-29
lines changed

4 files changed

+24
-29
lines changed

aif360/algorithms/intersectional_fairness.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,6 @@ def fit(self, dataset_actual, dataset_predicted=None, dataset_valid=None, option
167167

168168
self.logger.debug('fitting...')
169169

170-
# TODO need to fix sorting sensitive attributes
171-
# thres_sort = sorted(thres.items(), key=lambda x:x[0]) # Fixed order of sensitive attributes
172170
if dataset_valid is None:
173171
if self.approach_type == 'PostProcessing':
174172
dataset_valid = dataset_predicted.copy(deepcopy=True)
@@ -267,7 +265,6 @@ def _worker(self, ids):
267265
group2_idx = ids[1]
268266
# Determine privileged/non-privileged group (necessary for some algorithms)
269267
# (used demographic parity)
270-
# print('start: ' + str(group1_idx) + str(group2_idx))
271268
cl_metric = BinaryLabelDatasetMetric(self.dataset_actual,
272269
unprivileged_groups=self.group_protected_attrs[group2_idx],
273270
privileged_groups=self.group_protected_attrs[group1_idx])
@@ -534,8 +531,7 @@ def _create_stat_table(self, dataset_act, dataset_target, dataset_target_tmp, uf
534531
TNR = -1 if math.isnan(m_sg_mitig.true_negative_rate(privileged=True)) else m_sg_mitig.true_negative_rate(privileged=True)
535532
bal_acc = -1 if TPR == -1 or TNR == -1 else (TPR + TNR) * 0.5
536533
precision = -1 if math.isnan(m_sg_mitig.precision(privileged=True)) else m_sg_mitig.precision(privileged=True)
537-
# TODO Warning if recall precision=0
538-
f1 = -1 if precision == -1 or TPR == -1 else 2 * TPR * precision / (TPR + precision)
534+
f1 = -1 if precision == -1 or TPR == -1 or (TPR + precision) == 0 else 2 * TPR * precision / (TPR + precision)
539535

540536
metrics = [uf_t,
541537
m_sg_mitig.num_positives(privileged=True),
@@ -553,7 +549,7 @@ def _create_stat_table(self, dataset_act, dataset_target, dataset_target_tmp, uf
553549
f1,
554550
m_sg_mitig.selection_rate(privileged=True),
555551
difference,
556-
ratio] # TODO Combine with selection_rate after classification
552+
ratio]
557553
stat_table.append(protected_attribute_values + metrics)
558554
return stat_table
559555

@@ -732,8 +728,6 @@ def _split_group(self, dataset, unprivileged_protected_attributes=[], privileged
732728
df=enable_df,
733729
label_names=dataset.label_names,
734730
protected_attribute_names=dataset.protected_attribute_names,
735-
# privileged_protected_attributes=privileged_protected_attributes_keys,
736-
# unprivileged_protected_attributes=unprivileged_protected_attributes_keys,
737731
favorable_label=dataset.favorable_label,
738732
unfavorable_label=dataset.unfavorable_label)
739733

@@ -763,9 +757,6 @@ def _split_group(self, dataset, unprivileged_protected_attributes=[], privileged
763757
for i1 in range(len(dataset.instance_names)):
764758
idx = sortlist.get(dataset.instance_names[i1])
765759
if idx is not None:
766-
#disable_df['labels'][idx] = dataset.labels[i1]
767-
#disable_df['scores'][idx] = dataset.scores[i1]
768-
#disable_df['instance_weights'][idx] = dataset.instance_weights[i1]
769760
disable_df.loc[idx,'labels'] = dataset.labels[i1]
770761
disable_df.loc[idx,'scores'] = dataset.scores[i1]
771762
disable_df.loc[idx,'instance_weights'] = dataset.instance_weights[i1]

aif360/algorithms/isf_helpers/postprocessing/eq_odds.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,6 @@ def eq_odds(self, othr, mix_rates=None, threshold=None, metric='EqualOpportunity
156156
self_fair_pred[p2n_indices] = 1 - self_fair_pred[p2n_indices]
157157

158158
othr_fair_pred = othr.pred.copy()
159-
# othr_pp_indices, = np.nonzero(othr.pred.round())
160-
# othr_pn_indices, = np.nonzero(1 - othr.pred.round())
161159
othr_pp_indices, = np.nonzero(othr.pred > othr.threshold)
162160
othr_pn_indices, = np.nonzero(1 - (othr.pred <= othr.threshold))
163161
np.random.shuffle(othr_pp_indices)

examples/tutorial_isf.ipynb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,10 @@
878878
"execution_count": 17,
879879
"id": "2430417e",
880880
"metadata": {
881+
"collapsed": true,
882+
"jupyter": {
883+
"outputs_hidden": true
884+
},
881885
"scrolled": true
882886
},
883887
"outputs": [
@@ -901,7 +905,12 @@
901905
"cell_type": "code",
902906
"execution_count": 18,
903907
"id": "f9c4cb64",
904-
"metadata": {},
908+
"metadata": {
909+
"collapsed": true,
910+
"jupyter": {
911+
"outputs_hidden": true
912+
}
913+
},
905914
"outputs": [
906915
{
907916
"name": "stderr",

tests/test_isf.py

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
from logging import CRITICAL, getLogger
2222
from os import environ
23-
# Suppress warnings that tensorflow emits
23+
# Suppress warnings that tensorflow generates
2424
environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
2525

2626
import sys
@@ -32,9 +32,6 @@
3232

3333
from aif360.algorithms.intersectional_fairness import IntersectionalFairness
3434
from aif360.algorithms.isf_helpers.isf_utils.common import classify, output_subgroup_metrics, convert_labels, create_multi_group_label
35-
#from stream import MuteStdout
36-
37-
#MODEL_ANSWER_PATH = './results/'
3835

3936
class MuteStdout:
4037
"""Suppress message emission to stdout."""
@@ -144,8 +141,8 @@ def test01_AdversarialDebiasing(self):
144141
columns=['group', 'base_rate', 'selection_rate', 'Balanced_Accuracy'])
145142

146143
#assert
147-
assert_frame_equal(result_singleattr_bias, ma_singleattr_bias, atol=0.1)
148-
assert_frame_equal(result_combattr_bias, ma_combattr_bias, atol=0.1)
144+
assert_frame_equal(result_singleattr_bias, ma_singleattr_bias, atol=0.2)
145+
assert_frame_equal(result_combattr_bias, ma_combattr_bias, atol=0.2)
149146

150147
def test02_EqualizedOdds(self):
151148
s_algorithm = 'EqualizedOddsPostProcessing'
@@ -181,10 +178,10 @@ def test02_EqualizedOdds(self):
181178
['sex:1.0_race:0.0', 0.8461538461538461, 0.7692307692307693, 0.3636363636363636],
182179
['sex:1.0_race:1.0', 0.625, 0.625, 0.6]],
183180
columns=['group', 'base_rate', 'selection_rate', 'Balanced_Accuracy'])
184-
181+
185182
#assert
186-
assert_frame_equal(result_singleattr_bias, ma_singleattr_bias, atol=0.1)
187-
assert_frame_equal(result_combattr_bias, ma_combattr_bias, atol=0.1)
183+
assert_frame_equal(result_singleattr_bias, ma_singleattr_bias, atol=0.2)
184+
assert_frame_equal(result_combattr_bias, ma_combattr_bias, atol=0.2)
188185

189186
def test03_Massaging(self):
190187
s_algorithm = 'Massaging'
@@ -218,8 +215,8 @@ def test03_Massaging(self):
218215
columns=['group', 'base_rate', 'selection_rate', 'Balanced_Accuracy'])
219216

220217
#assert
221-
assert_frame_equal(result_singleattr_bias, ma_singleattr_bias, atol=0.1)
222-
assert_frame_equal(result_combattr_bias, ma_combattr_bias, atol=0.1)
218+
assert_frame_equal(result_singleattr_bias, ma_singleattr_bias, atol=0.2)
219+
assert_frame_equal(result_combattr_bias, ma_combattr_bias, atol=0.2)
223220

224221
def test04_RejectOptionClassification(self):
225222
s_algorithm = 'RejectOptionClassification'
@@ -258,8 +255,8 @@ def test04_RejectOptionClassification(self):
258255
columns=['group', 'base_rate', 'selection_rate', 'Balanced_Accuracy'])
259256

260257
#assert
261-
assert_frame_equal(result_singleattr_bias, ma_singleattr_bias, atol=0.1)
262-
assert_frame_equal(result_combattr_bias, ma_combattr_bias, atol=0.1)
258+
assert_frame_equal(result_singleattr_bias, ma_singleattr_bias, atol=0.2)
259+
assert_frame_equal(result_combattr_bias, ma_combattr_bias, atol=0.2)
263260

264261
def test05_Massaging_AA(self):
265262
s_algorithm = 'Massaging'
@@ -296,8 +293,8 @@ def test05_Massaging_AA(self):
296293
columns=['group', 'base_rate', 'selection_rate', 'Balanced_Accuracy'])
297294

298295
#assert
299-
assert_frame_equal(result_singleattr_bias, ma_singleattr_bias, atol=0.1)
300-
assert_frame_equal(result_combattr_bias, ma_combattr_bias, atol=0.1)
296+
assert_frame_equal(result_singleattr_bias, ma_singleattr_bias, atol=0.2)
297+
assert_frame_equal(result_combattr_bias, ma_combattr_bias, atol=0.2)
301298

302299

303300
if __name__ == "__main__":

0 commit comments

Comments
 (0)