Pith. sign in

REVIEW 5 major objections 5 minor 41 references

FROC: Building Fair ROC from a Trained Classifier

T0 review · 5 major / 5 minor · reviewed 2026-08-11 · deepseek-v4-flash

Pith's one-line read A post-processing algorithm called FROC transforms any trained scoring function into a randomized classifier whose per-group ROC curves lie within ε of each other at every threshold, and proves this is done with minimal AUC loss when the…

desk verdict A clever and practical post-processing idea, but the optimality proof misses the key feasibility step, and the shipped code does not match the algorithm. read the letter →

arxiv 2412.14724 v1 pith:OSTCB4ES submitted 2024-12-19 cs.LG

classification cs.LG MSC 68T0562H30
keywords fairnessROCcurvepost-processingAUCoptimizationequalizedoddsthreshold-invariantrandomizedclassifiertransport
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

The paper attacks a practical mismatch: fairness definitions like equalized odds are checked at one threshold, but practitioners read classifiers off the whole ROC and change thresholds freely. It proposes ε1-Equalized ROC, requiring the FPR/TPR curves of the two protected groups to stay within L1 distance ε for every threshold. It then gives FROC, a post-processing algorithm that transports the higher ROC down toward the lower one by randomizing between existing classifiers, and proves that under a piecewise-linearity and regularity assumption this transport is AUC-optimal. If the proofs hold, practitioners get a plug-in fix that guarantees threshold-independent fairness without retraining.

What carries the argument

The key mechanism is ROC-space randomization: any point inside the convex hull of three classifiers in (FPR, TPR) coordinates is realized by a randomized classifier that mixes the three with weights given by barycentric coordinates. FROC's operation is transport of the upper ROC onto the norm-boundary rhombus B_i = {x : ||x − Q^down_i||_1 = ε} around each lower-curve query point, choosing between UpShift (to the top vertex U_i), LeftShift (to the left vertex L_i), or CutShift (to an intersection point of ROC_up with B_i) by comparing quadrilateral areas via Heron's formula. The optimality argument runs through three lemmas: optimal fair points lie on the norm boundary; boundary cuts must be CutShift; otherwise the area comparison picks UpShift or LeftShift.

What would settle it

Construct or find a piecewise-linear classifier whose upper ROC intersects some norm boundary B_i in more than two points (or violates the FPR ordering), run FROC, and compare its AUC against a brute-force optimum among ε1-Equalized ROC classifiers in the same ROC-space; any gap would falsify Theorem 4.2's optimality claim for that case, although the paper's own statement is that the guarantee would not hold there.

Watch

Extended reading notes

Core claim

The central claim is that FROC solves Problem 2: among all transformations h of a given scoring function s that can be realized in the ROC-space of s and satisfy ε1-Equalized ROC, FROC returns one with maximum AUC. The algorithm queries each group's ROC at k equally spaced thresholds, forms piecewise-linear approximations, and moves every query point of the 'up' curve to the boundary of the ε-diamond around the corresponding 'down' point, choosing the vertex or intersection point that minimizes the local AUC loss. Theorem 4.2 states this is optimal provided s is piecewise linear and Assumption 4.2 holds.

Load-bearing premise

The optimality guarantee holds only when the upper ROC is well-separated and regular: Assumption 4.2 requires the FPR of the upper curve at each query point to lie between the FPRs of neighboring lower-curve points, and the upper curve to meet every ε-diamond boundary at most twice; the paper concedes that without it FROC remains fair but is not proven optimal.

Editorial extensions

If this is right

  • A practitioner can post-process an already-trained classifier once and then choose any threshold later, because fairness holds at all thresholds.
  • For piecewise-linear scoring functions satisfying Assumption 4.2, no other fair ROC-transport can achieve the same AUC; FROC's AUC loss is the minimum possible (up to the piecewise-linear approximation loss, which shrinks as k grows).
  • The approximation loss is bounded by L_PLA ≤ (1/2) u_T u_F / k, so increasing the number of ROC queries k reduces the loss to zero in the limit.
  • Empirically, on Adult, COMPAS, and CelebA with neural, logistic, and random-forest classifiers, FROC improves fairness (e.g., disparate impact and mean equalized odds) with at most about a 2% accuracy drop, and for small ε it can beat in-processing baselines that over-achieve the target fairness.

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • The optimality guarantee depends on the non-intersection assumption on ROCs and on Assumption 4.2, so the guarantee should not be expected to carry over to arbitrary classifiers; the paper itself leaves intersecting ROCs as future work.
  • Violations of Assumption 4.2 are plausible for wiggly ROC curves; FROC would still produce a fair classifier, but the practical cost is bounded only by how far the optimal fair point can deviate from the norm boundary in those cases.
  • Because FROC only needs ROC query access, it is model-agnostic and could be applied to any score-producing system, including ensembles or commercial APIs, as long as per-group ROC curves can be estimated.
  • A direct empirical test of the optimality claim would be a brute-force search over randomized mixtures in the ROC-space on a small dataset, comparing FROC's AUC loss against the true minimum among ε1-Equalized ROC classifiers.
Share X Bluesky LinkedIn Reddit HN

Signed reviews

No signed human review yet.

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

5 major / 5 minor

Summary. The paper proposes εp-Equalized ROC, a threshold-invariant group fairness notion for binary classifiers, and a post-processing algorithm FROC that transports the ROC of the disadvantaged group toward the other group's ROC so that the L1 distance between the two ROCs is at most ε at all thresholds. The central claim (Theorem 4.2) is that, under piecewise-linearity and Assumption 4.2, FROC returns the classifier that maximizes AUC among all transformations of the given scoring function satisfying ε1-Equalized ROC. The paper also reports experiments on Adult, COMPAS, and CelebA showing fairness improvements with small accuracy loss.

Significance. If the optimality theorem were valid, the paper would contribute a useful post-processing method with a provable AUC-optimality guarantee for a threshold-invariant fairness notion, backed by released code and empirical validation. The notion of εp-Equalized ROC is a reasonable generalization of equalized odds to all thresholds, and the geometric transport perspective is appealing. However, the central theoretical result is not established: the appendix proof of CutShift optimality is a copy of the Norm Boundary proof, and the paper never proves that the transported points are jointly realizable as the ROC of a single classifier in the ROC-space of s. These gaps block the main claim and also leave the fairness guarantee for all thresholds unverified.

major comments (5)
  1. [Appendix D.3 / Theorem 4.4] The proof of Theorem D.3 (CutShift optimality) is verbatim identical to the proof of Theorem D.2 (Norm Boundary optimality) except for cosmetic figure references; it does not contain any argument specific to CutShift, such as why the closer of the two intersection points plef t and pright is AUC-optimal. Consequently Theorem 4.4 is unproved, and Theorem 4.2, which depends on it, is unsupported.
  2. [Section 3.3-3.4 and Theorem C.1] The paper proves only that a single point in the triangle with vertices (0,0), (1,1), and Q^up_i can be realized by randomizing three classifiers (Theorem C.1). It never proves that the sequence of points eQ^up_i produced by Algorithm 1 lies in the feasible ROC-space S|_s and is monotone in FPR and TPR. In fact, Algorithm 1 chooses UpShift or LeftShift purely by area comparison, so an UpShift at index i (FPR = FPR(Q^down_i)) followed by a LeftShift at index i+1 (FPR = FPR(Q^down_{i+1}) - ε) can decrease FPR when ε is large relative to the query spacing. Without monotonicity and feasibility, the polyline through eQ^up_i is not the ROC of any classifier h ∈ S|_s, and the AUC-loss analysis in Section 4 compares curves that need not correspond to valid classifiers.
  3. [Theorem 4.3 and Algorithm 1] Theorem 4.3 states that all optimal fair points must lie on some norm boundary, but Algorithm 1 itself outputs points Q^up_i that are already in the hypograph of ROCdown (line 12-14) and are not on any norm boundary. Moreover, if ||Q^up_i - Q^down_i||_1 < ε, moving to the norm boundary would strictly reduce AUC without improving fairness, contradicting the claimed necessity. The proof of Theorem D.2 also considers only a local quadrilateral area and does not account for global interactions among the transported points, so the contradiction argument is not rigorous.
  4. [Sections 2.3 and 3.3, fairness over all thresholds] Problem 2 requires ε1-Equalized ROC for all α ∈ (0,1), but FROC enforces the constraint only at the k query thresholds. Because the FPR coordinates of the transported points eQ^up_i generally differ from those of the corresponding Q^down_i, the piecewise-linear curves between query points are not guaranteed to stay within L1 distance ε; the manuscript provides no argument or bound for the intermediate thresholds, so the output may not satisfy the stated fairness constraint.
  5. [Section 4.1 and Theorem 4.2] Even accepting the PLA bound, Theorem 4.2 is stated for the original piecewise-linear classifier, but the analysis mixes L_PLA (approximation loss) and L_AUC (transport loss). No bound on L_AUC is given, and the optimality claim is not tied to a quantitative total loss bound. This makes it difficult to interpret the sense in which FROC is provably optimal with respect to the original Problem 2.
minor comments (5)
  1. [Section 3.3] The paper says randomization can represent any point in the hypograph of ROC, but the feasible set is actually the ROC convex hull; the distinction matters for points that are below the ROC curve but outside the convex hull of (0,0), (1,1), and the ROC.
  2. [Section 5.3] The empirical results are reported only through figures and informal statements (e.g., '7-8% improvement in fairness'); the paper should include a table with the actual ε1 fairness violation before/after, AUC before/after, and standard deviations for each classifier and dataset.
  3. [Section 5.2] The claim that FROC 'beats' FNNC because FNNC overachieves fairness is not a controlled comparison; the fairness targets of the two methods are different, so the comparison does not support the stated superiority.
  4. [Appendix F] The implementation uses a hard-coded FPR range [init, fin] = [0.2, 1] that is not described in Algorithm 1 or in the theoretical analysis; this restricts the transported region and should be disclosed as a free parameter.
  5. [Throughout] There are several typos and incomplete references: the placeholder '[? ]' in Section 1.1, the undefined variable 'label' in the Appendix F code, and inconsistent notation between ε1 and εp in Definition 2.2 and the theorems.

Circularity Check

0 steps flagged · score 2.0 of 10

No circular derivation: FROC's AUC-loss optimality is a geometric argument over user-supplied queries and epsilon; the only self-citation is the non-load-bearing FNNC baseline.

full rationale

The central derivation is not circular. Algorithm 1 operates on queried ROC points Q^up_i and Q^down_i and a user-supplied epsilon; UpShift, LeftShift, and CutShift are geometric constructions of points on norm boundaries, and the AUC-loss analysis compares areas of quadrilaterals formed by neighboring query points. No fitted parameter is later relabeled as a prediction, and no input quantity is defined in terms of the output classifier. The realizability of shifted points by randomization is taken from an external textbook chapter ([38], Chapter 3), not from the authors' own work. Assumption 4.2 is an explicit condition, and the paper concedes in Section 4.2 that if it fails, "FROC remains operational and continues to produce outputs that are epsilon1-Equalized ROC fair. However, under these conditions, the optimality with respect to AUC is not guaranteed, as Theorem 4.4 no longer applies"; this is a stated limitation, not a circular reliance. The main self-citation is the FNNC baseline [10] in the experiments; the statement that FROC may beat FNNC because FNNC "may overachieve the target fairness" is an internal comparison and does not feed into Theorem 4.2, so it is minor and non-load-bearing. Two real correctness gaps should be weighed separately from circularity: Theorem D.3's proof is a verbatim copy of Theorem D.2's proof (same "Proof by Contradiction" with figure references to Figures 15/16 instead of 17/18), and the paper never proves that the transported points eQ^up_i remain monotone in FPR/TPR or lie in the feasible hypograph of ROCup, which is needed for the classifier construction in Theorem C.1. These gaps undermine the proof of Theorem 4.2 as stated, but they are unsupported steps, not reductions of the conclusion to the assumptions by construction. Accordingly, the circularity score is 2 for the minor non-load-bearing self-citation; the core derivation is self-contained and geometric.

Assumptions & free parameters 3 free parameters · 5 assumptions · 0 invented entities

The central claims rest on two technical assumptions (4.1, 4.2), a non-intersection restriction on possible inputs, and an unproven feasibility condition on the transported points. No free parameters are fitted to data by the method itself, but the query count k, the code's hard-coded FPR range, and the assumed derivative bounds are user or ad hoc choices that affect the guarantees.

free parameters (3)
  • k (number of ROC query thresholds) = not fitted, chosen (e.g., 1000 in buildClassifier thresholds)
    Controls the fineness of the piecewise-linear ROC approximation and the granularity of the fairness constraint; fairness between query points is not bounded, so the all-thresholds claim depends on this choice.
  • FPR range [init, fin] in shipped code = init=0.2, fin=1.0
    Hard-coded in FROC_original (Appendix F.4): points outside this FPR range are not transported and are replaced with the other group's ROC values, a post-hoc selection that affects the reported fairness and accuracy.
  • derivative bounds u_T, u_F (Assumption 4.1) = unknown
    Assumed finite upper bounds on dTPR/dt and dFPR/dt; used in the PLA loss bound, but no values are estimated or reported.
assumptions (5)
  • domain assumption Assumption 4.1: dTPR/dt <= u_T and dFPR/dt <= u_F for the scoring functions.
    Used in Theorem 4.1 to bound the PLA loss; stated in Section 4.1 without empirical verification.
  • ad hoc to paper Assumption 4.2: FPR(Q^down_{i-1}) <= FPR(Q^up_i) <= FPR(Q^down_{i+1}) for all i, and ROC_up intersects any norm boundary B_i at most twice.
    Section 4.2; the optimality theorem 4.2 holds only under these conditions, and the paper concedes optimality is lost otherwise.
  • domain assumption The two group ROC curves are non-intersecting (or intersect only where FPR <= 0.2 or TPR >= 0.5), so one ROC can be labeled ROCup and the other ROCdown.
    Section 3.3; the paper explicitly leaves intersecting ROCs for future work, restricting the settings where FROC applies.
  • ad hoc to paper Transported points eQ^up_i lie in the hypograph of ROC_up and preserve ROC ordering, so they are realizable by the randomization of Theorem C.1.
    Implicit in Section 3.3-3.4 and Theorem C.1; the paper never proves feasibility or monotonicity of the shifted points, yet the classifier construction and AUC-loss claims depend on it.
  • standard math ROC curves are one-to-one and monotonically increasing (used in the PLA loss upper bound).
    Appendix D.1, Figure 14 note; standard property of ROC curves for continuous score distributions.

how reviews work

0 comments
Cite this review

Pith. "Pith review of FROC: Building Fair ROC from a Trained Classifier." pith.science (2026). https://pith.science/paper/OSTCB4ES

@misc{pith2026241214724,
  author       = {Pith},
  title        = {Pith review of: FROC: Building Fair ROC from a Trained Classifier},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/OSTCB4ES}},
  note         = {Machine review of arXiv:2412.14724}
}
abstract

This paper considers the problem of fair probabilistic binary classification with binary protected groups. The classifier assigns scores, and a practitioner predicts labels using a certain cut-off threshold based on the desired trade-off between false positives vs. false negatives. It derives these thresholds from the ROC of the classifier. The resultant classifier may be unfair to one of the two protected groups in the dataset. It is desirable that no matter what threshold the practitioner uses, the classifier should be fair to both the protected groups; that is, the $\mathcal{L}_p$ norm between FPRs and TPRs of both the protected groups should be at most $\varepsilon$. We call such fairness on ROCs of both the protected attributes $\varepsilon_p$-Equalized ROC. Given a classifier not satisfying $\varepsilon_1$-Equalized ROC, we aim to design a post-processing method to transform the given (potentially unfair) classifier's output (score) to a suitable randomized yet fair classifier. That is, the resultant classifier must satisfy $\varepsilon_1$-Equalized ROC. First, we introduce a threshold query model on the ROC curves for each protected group. The resulting classifier is bound to face a reduction in AUC. With the proposed query model, we provide a rigorous theoretical analysis of the minimal AUC loss to achieve $\varepsilon_1$-Equalized ROC. To achieve this, we design a linear time algorithm, namely \texttt{FROC}, to transform a given classifier's output to a probabilistic classifier that satisfies $\varepsilon_1$-Equalized ROC. We prove that under certain theoretical conditions, \texttt{FROC}\ achieves the theoretical optimal guarantees. We also study the performance of our \texttt{FROC}\ on multiple real-world datasets with many trained classifiers.

Figures

Figures reproduced from arXiv: 2412.14724 by the authors.

Figure 2
Figure 2. Shaded Area indicates [PITH_FULL_IMAGE:figures/full_fig_p005_2.png] view at source ↗
Figure 6
Figure 6. C2 Before and After FROC 5.2 Experiments We train C1 on both datasets, C2 and C3 on the Adult dataset, and generate their ROCs for all the protected groups. FNNC, we train by ignoring its fairness components in the loss function and then generate ROC. We then invoke FROC for different ε values and check the best possible threshold for accuracy. We refer to the new classifier as C1-C3-FROC. Baseline Post-Processing M… view at source ↗
Figure 7
Figure 7. The area inside the rhombus is the Norm set [PITH_FULL_IMAGE:figures/full_fig_p011_7.png] view at source ↗
Figures from the paper (46 more)
Figure 8
Figure 8. Figure 8: We have two points - Qdown a and Qdown b (in increasing order of FPR). We find that Qdown a is a Boundary Cut point, whereas Qdown b is not. We now define the three kinds of shifts that will be used in our Algorithm: For a given i ∈ [1, 2, . . . , k], Upshift is the tr…
Figure 9
Figure 9. Figure 9: UpShift [PITH_FULL_IMAGE:figures/full_fig_p012_9.png]
Figure 10
Figure 10. Figure 10: LeftShift represented as {plef t, pright} denoting the points at the intersection of ROCup at the left-side of the Norm Boundary and the right-side of the Norm Boundary respectively. This is illustrated in the following [PITH_FULL_IMAGE:figures/full_fig_p012_10.png]
Figure 11
Figure 11. Figure 11: CutShift Note that the two intersection points - plef t and pright will be to the right of Q up i when F P R(Q up i ) ≤ F P R(Qdown i ). Note that it is also possible for plef t to lie on the line segment LiDi instead of line segment UiLi when Q up i has sufficiently …
Figure 12
Figure 12. Figure 12: LP LA maximally deviates from its PLA ROCHda s ,Gca s . To find an upper bound to this area, we must stretch it till the dotted line The area cannot go beyond the dotted line ( [PITH_FULL_IMAGE:figures/full_fig_p013_12.png]
Figure 13
Figure 13. Figure 13: Maximally streching the ROC (Dotted line) [PITH_FULL_IMAGE:figures/full_fig_p014_13.png]
Figure 14
Figure 14. Figure 14: The area shaded by the darker shade of blue is the maximum possible loss of AUC due to Linear Interpolation. [PITH_FULL_IMAGE:figures/full_fig_p014_14.png]
Figure 15
Figure 15. Figure 15: The blue colored region indicates the AUC loss. [PITH_FULL_IMAGE:figures/full_fig_p015_15.png]
Figure 16
Figure 16. Figure 16: The dark blue colored region indicates the new AUC loss. The light blue region indicates the previous AUC [PITH_FULL_IMAGE:figures/full_fig_p015_16.png]
Figure 17
Figure 17. Figure 17: CutShift Operation is not followed. The light blue area indicates the AUC loss due to this operation. [PITH_FULL_IMAGE:figures/full_fig_p016_17.png]
Figure 18
Figure 18. Figure 18: CutShift Operation is followed. The dark blue area indicates the AUC loss due to this operation. It is lesser [PITH_FULL_IMAGE:figures/full_fig_p016_18.png]
Figure 19
Figure 19. Figure 19: The dotted arrow represents the UpShift transportation of the point from [PITH_FULL_IMAGE:figures/full_fig_p017_19.png]
Figure 20
Figure 20. Figure 20: The dotted arrow represents the LeftShift transportation of the point from [PITH_FULL_IMAGE:figures/full_fig_p017_20.png]
Figure 21
Figure 21. Figure 21: UpShift Operation is not followed. The light blue area indicates the AUC loss due to this operation. [PITH_FULL_IMAGE:figures/full_fig_p017_21.png]
Figure 22
Figure 22. Figure 22: UpShift Operation is followed. The dark blue area indicates the AUC loss due to this operation. It is lesser [PITH_FULL_IMAGE:figures/full_fig_p017_22.png]
Figure 23
Figure 23. Figure 23: Weighted Ensemble L2 Baseline ROCs for Adult Dataset [PITH_FULL_IMAGE:figures/full_fig_p019_23.png]
Figure 24
Figure 24. Figure 24: (Fair ε1 = 0.01) Weighted Ensemble L2-FROC ROCs for Adult Dataset • As seen in the plots, we observe that a 1% drop in Accuracy improves the Disparate Impact by 7%. • Finally, in [PITH_FULL_IMAGE:figures/full_fig_p020_24.png]
Figure 25
Figure 25. Figure 25: Weighted Ensemble L2-FROC Accuracy vs. ε1 (Adult) • Finally, in [PITH_FULL_IMAGE:figures/full_fig_p021_25.png]
Figure 26
Figure 26. Figure 26: Weighted Ensemble L2-FROC Disparate Impact vs. ε1 (Adult) COMPAS Dataset - Random Forest Gini • We have applied FROC with the our fairness parameter ε = 0.01 in [PITH_FULL_IMAGE:figures/full_fig_p022_26.png]
Figure 27
Figure 27. Figure 27: Weighted Ensemble L2-FROC AUC loss vs. ε1 (Adult) • We find that in the FNNC is slightly lower than FROC in terms of accuracy. We assign it to the fact that FNNC may overachieve the target fairness for smaller values of εF NNC , (Evident from [PITH_FULL_IMAGE:figures…
Figure 28
Figure 28. Figure 28: Random Forest (Gini) Baseline ROCs for Adult Dataset [PITH_FULL_IMAGE:figures/full_fig_p024_28.png]
Figure 29
Figure 29. Figure 29: (Fair ε1 = 0.01) Random Forest (Gini)-FROC ROCs for Adult Dataset 17 18 # column_names = [’age’, ’workclass’, ’fnlwgt’, ’education’, ’education-num’, 19 # ’marital-status’, ’occupation’, ’relationship’, ’race’, ’sex’, 20 # ’capital-gain’, ’capital-loss’, ’hours-per-we…
Figure 30
Figure 30. Figure 30: Random Forest (Gini)-FROC Accuracy vs. ε1 (Adult) 34 df[’class’].loc[df[’class’] == ’>50K’] = 1 35 36 ## Create the dataset 37 for i in list(df.columns): 38 df[i] = df[i].astype(’category’).cat.codes 39 40 41 ## Modify for binary protected attributes 42 df[’sex’].loc[…
Figure 31
Figure 31. Figure 31: Random Forest (Gini)-FROC Disparate Impact vs. ε1 (Adult) 53 test_data_nolab.head() F.2 Preprocessing Code (COMPAS) 1 from autogluon.tabular import TabularDataset, TabularPredictor 2 import numpy as np 3 import matplotlib.pyplot as plt 4 from sklearn import datasets 5…
Figure 32
Figure 32. Figure 32: Random Forest (Gini)-FROC AUC loss vs. ε1 (Adult) 20 label = ’Two_yr_Recidivism’ 21 print("Summary of Two_yr_Recidivism variable: \n", data[label].describe()) 22 #### Train test split ### 23 train_ix = np.random.randint(0, len(data), int(0.8*len(data))) 24 # train_ix …
Figure 33
Figure 33. Figure 33: FNNC Baseline ROCs for Adult Dataset 38 test_data = test.iloc[:, [1,2,3,4,5,6,7,8,9,10,11]] 39 print(test_data) 40 test_labels = test.iloc[:,0] 41 assert isinstance(test_labels, (np.ndarray, pd.Series)) 42 # test_labels = test_labels[:, 0] 43 44 45 # train_data = pd.D…
Figure 34
Figure 34. Figure 34: (Fair ε1 = 0.01) FNNC-FROC ROCs for Adult Dataset 53 54 # test_ix = np.random.randint(0, len(data), int(0.2*len(data))) 55 # test_data = data[test_ix, :-1] 56 # test_prot = tf.keras.utils.to_categorical(prot[test_ix, np.newaxis], num_classes =num_classes) 57 # test_la…
Figure 35
Figure 35. Figure 35: FNNC-FROC Accuracy vs. ε1 (Adult) 13 # define the dataset location 14 filename = ’adult.csv’ 15 # load the csv file as a data frame 16 df = read_csv(filename, header=None, na_values=’?’) 17 # drop rows with missing 18 df = df.dropna() 19 # summarize the shape of the d…
Figure 36
Figure 36. Figure 36: FNNC-FROC AUC loss vs. ε1 (Adult) 44 from sklearn.svm import SVC 45 from sklearn.model_selection import train_test_split 46 from imblearn.pipeline import Pipeline 47 48 # load the dataset 49 def load_dataset(full_path): 50 # load the dataset as a numpy array 51 datafr…
Figure 37
Figure 37. Figure 37: Weighted Ensemble L2 Baseline ROCs for COMPAS Dataset [PITH_FULL_IMAGE:figures/full_fig_p033_37.png]
Figure 38
Figure 38. Figure 38: (Fair ε1 = 0.01) Weighted Ensemble L2-FROC ROCs for COMPAS Dataset 2 j = 0 3 for i in range(len(curve_x)): 4 if ( i == len(curve_x)-1): 5 print("Case") 6 if( x <= curve_x[i] ): 7 if( y <= curve_y[i]): 8 return 1 9 else: 10 return 0 11 else: 12 return 0 13 continue 14 …
Figure 39
Figure 39. Figure 39: Weighted Ensemble L2-FROC Accuracy vs. ε1 (COMPAS) 22 Linearly interpolate between consecutive (X,Y) coordinates and fill in n points between them. 23 24 Parameters: 25 X (list): List of x-coordinates. 26 Y (list): List of y-coordinates. 27 n (int): Number of points t…
Figure 40
Figure 40. Figure 40: Weighted Ensemble L2-FROC Disparate Impact vs. ε1 (COMPAS) 44 x_j = x0 + (x1-x0)*j/n 45 y_j = y0 + (y1-y0)*j/n 46 x_interpolated.append(x_j) 47 y_interpolated.append(y_j) 48 49 return x_interpolated, y_interpolated 50 51 52 def FROC_original( iFPR0 , iTPR0 , iFPR1 , i…
Figure 41
Figure 41. Figure 41: Weighted Ensemble L2-FROC AUC loss vs. ε1 (COMPAS) 66 FTPR1 = TPR1.copy() 67 68 # plt.plot( FFPR0 , FTPR0 ) 69 70 71 # plt.plot( iFPR0 , iTPR0 , iFPR1 , iTPR1 ) 72 linFPR0 , linTPR0 = LinInterpolFill( FPR0 , TPR0 , granularity) 73 # plt.plot( iFPR0 , iTPR0 , iFPR1 , i…
Figure 42
Figure 42. Figure 42: Random Forest (Gini) Baseline ROCs for COMPAS Dataset [PITH_FULL_IMAGE:figures/full_fig_p038_42.png]
Figure 43
Figure 43. Figure 43: (Fair ε1 = 0.01) Random Forest (Gini)-FROC ROCs for COMPAS Dataset 106 # print("Group0: ",FPR0[notFair[i]] , TPR0[notFair[i]]) 107 # print("Group1: ",FPR1[notFair[i]] , TPR1[notFair[i]]) 108 if( Cover(FPR0 , TPR0 , FPR1[notFair[i]] , TPR1[notFair[i]]+epsilon) == 1): 1…
Figure 44
Figure 44. Figure 44: Random Forest (Gini)-FROC Accuracy vs. ε1 (COMPAS) 1 def findInterval( vector , value ): 2 # vector is a sorted vector. 3 # if the vector is not sorted in a decreasing order, then declare an error. 4 # Check if the vector is sorted in a decreasing order. 5 for i in ra…
Figure 45
Figure 45. Figure 45: Random Forest (Gini)-FROC Disparate Impact vs. ε1 (COMPAS) 24 value = 0.5 25 26 print(findInterval(vector, value)) 27 28 29 def returnCoeff( ul , ur , dn , p ): 30 # let ul = (a,b) 31 # let ur = (c,d) 32 # let p = (x,y) 33 # let dn = (x,x) 34 # Assert that dn[0] == dn…
Figure 46
Figure 46. Figure 46: Random Forest (Gini)-FROC AUC loss vs. ε1 (COMPAS) 45 return (1, 0, 0) 46 elif p[0] == ur[0] and p[1] == ur[1]: 47 return (0, 1, 0) 48 elif p[0] == dn[0] and p[1] == dn[1]: 49 return (0, 0, 1) 50 51 # Now, we find the coefficients of the line joining ul and ur. 52 # L…
Figure 47
Figure 47. Figure 47: FNNC Baseline ROCs for COMPAS Dataset 64 # Now, if any of the coefficients are negative, then throw an error. 65 if C_ul < 0 or C_ur < 0 or C_dn < 0: 66 print("Error: Negative coefficient.") 67 return -1 68 69 # Now, if any of the coefficients are greater than 1 or na…
Figure 48
Figure 48. Figure 48: (Fair ε1 = 0.01) FNNC-FROC ROCs for COMPAS Dataset 83 # If any of the nocoefficients are negative, then throw an error. 84 if C_ul < 0 or C_ur < 0 or C_dn < 0: 85 print("Error: Negative coefficient.") 86 return -1 87 88 # Assert that C_ul + C_ur + C_dn = 1 89 # print(…
Figure 49
Figure 49. Figure 49: FNNC-FROC Accuracy vs. ε1 (COMPAS) 105 106 107 108 # Test the returnCoeff function 109 ul = np.array([5, 5]) 110 ur = np.array([8, 20]) 111 dn = np.array([6, 6]) 112 113 p = np.array([6, 7]) 114 115 print(returnCoeff(ul, ur, dn, p)) 116 117 def buildClassifier( ROC_up…
Figure 50
Figure 50. Figure 50: FNNC-FROC AUC loss vs. ε1 (COMPAS) 136 # Assert that FPR == ROC_up[0][interval] and TPR == ROC_up[1][interval] 137 # print(FPR, TPR) 138 # print(ROC_up[0][interval], ROC_up[1][interval]) 139 assert FPR == ROC_up[0][interval] 140 assert TPR == ROC_up[1][interval] 141 1…
Figure 51
Figure 51. Figure 51: ResNet Baseline ROCs for CelebA Dataset 155 # Now, we create a random array with 1 with probability x and 0 with probability 1 - x 156 rand_array = np.random.choice(2, Probs_up.shape[0], p=[1-x, x]) 157 # print(rand_array) 158 159 # Check if the random array FPR and T…
Figure 52
Figure 52. Figure 52: (Fair ε1 = 0.01) ResNet-FROC ROCs for CelebA Dataset 174 # Create a random number that takes 0 with probability C_ul, 1 with probability C_ur and 2 with probability C_dn 175 rand_num = np.random.choice(3, 1, p=[C_ul, C_ur, C_dn]) 176 if rand_num == 0: 177 final_classi…
Figure 53
Figure 53. Figure 53: ResNEt-FROC Accuracy vs. ε1 (CelebA) 194 # print(FPR, TPR) 195 # print(x, y) 196 assert FPR - x < 0.1 197 assert TPR - y < 0.1 198 199 return final_classifier_output 200 201 202 203 # Let us now test the buildClassifier function 204 j = 60 205 print(Female_FROC[0][j] …

Discussion (0). Continue with ORCID to comment.

Reference graph

Works this paper leans on

41 extracted references · 31 canonical work pages

  1. [1]

    The use of machine learning algorithms in recommender systems: A systematic review

    Ivens Portugal, Paulo Alencar, and Donald Cowan. The use of machine learning algorithms in recommender systems: A systematic review. Expert Systems with Applications, 97:205–227, 2018

  2. [2]

    Credit scoring and the availability, price, and risk of small business credit

    Allen N Berger, W Scott Frame, and Nathan H Miller. Credit scoring and the availability, price, and risk of small business credit. Journal of money, credit and banking, pages 191–222, 2005

  3. [3]

    Machine bias

    Julia Angwin, Jeff Larson, Surya Mattu, and Lauren Kirchner. Machine bias. In Ethics of data and analytics, pages 254–264. Auerbach Publications, 2022

  4. [4]

    Amazon scraps secret ai recruiting tool that showed bias against women

    Jeffrey Dastin. Amazon scraps secret ai recruiting tool that showed bias against women. reuters (2018), 2018

  5. [5]

    Sex bias in graduate admissions: Data from berkeley

    Peter J Bickel, Eugene A Hammel, and J William O’Connell. Sex bias in graduate admissions: Data from berkeley. Statistics and public policy, pages 113–130, 1977

  6. [6]

    Gender bias in coreference resolution: Evaluation and debiasing methods

    Jieyu Zhao, Tianlu Wang, Mark Yatskar, Vicente Ordonez, and Kai-Wei Chang. Gender bias in coreference resolution: Evaluation and debiasing methods. arXiv preprint arXiv:1804.06876, 2018

  7. [7]

    Fairness through awareness

    Cynthia Dwork, Moritz Hardt, Toniann Pitassi, Omer Reingold, and Richard Zemel. Fairness through awareness. In Proceedings of the 3rd innovations in theoretical computer science conference, pages 214–226, 2012

  8. [8]

    Learning adversarially fair and transferable representations

    David Madras, Elliot Creager, Toniann Pitassi, and Richard Zemel. Learning adversarially fair and transferable representations. In International Conference on Machine Learning, pages 3384–3393. PMLR, 2018

Show all 41 references
  1. [9]

    Learning fair representations

    Rich Zemel, Yu Wu, Kevin Swersky, Toni Pitassi, and Cynthia Dwork. Learning fair representations. In International conference on machine learning, pages 325–333. PMLR, 2013

  2. [10]

    Fnnc: Achieving fairness through neural networks

    Manisha Padala and Sujit Gujar. Fnnc: Achieving fairness through neural networks. In Proceedings of the Twenty- Ninth International Joint Conference on Artificial Intelligence,{IJCAI-20}, International Joint Conferences on Artificial Intelligence Organization, 2020

  3. [11]

    Consultant-2: Pre-and post- processing of machine learning applications

    D Sleeman, Michalis Rissakis, Susan Craw, Nicolas Graner, and Sunil Sharma. Consultant-2: Pre-and post- processing of machine learning applications. International journal of human-computer studies , 43(1):43–63, 1995

  4. [12]

    Achieving fairness via post-processing in web-scale recommender systems

    Preetam Nandy, Cyrus Diciccio, Divya Venugopalan, Heloise Logan, Kinjal Basu, and Noureddine El Karoui. Achieving fairness via post-processing in web-scale recommender systems. In Proceedings of the 2022 ACM Conference on Fairness, Accountability, and Transparency, pages 715–725, 2022

  5. [13]

    Inherent trade-offs in the fair determination of risk scores

    Jon Kleinberg, Sendhil Mullainathan, and Manish Raghavan. Inherent trade-offs in the fair determination of risk scores. arXiv preprint arXiv:1609.05807, 2016

  6. [14]

    Fair prediction with disparate impact: A study of bias in recidivism prediction instruments

    Alexandra Chouldechova. Fair prediction with disparate impact: A study of bias in recidivism prediction instruments. Big data, 5(2):153–163, 2017

  7. [15]

    Using auc and accuracy in evaluating learning algorithms

    Jin Huang and Charles X Ling. Using auc and accuracy in evaluating learning algorithms. IEEE Transactions on knowledge and Data Engineering, 17(3):299–310, 2005

  8. [16]

    Ranking and empirical minimization of u-statistics

    Stéphan Clémençon, Gábor Lugosi, and Nicolas Vayatis. Ranking and empirical minimization of u-statistics. 2008

  9. [17]

    Fairness in ranking: A survey

    Meike Zehlike, Ke Yang, and Julia Stoyanovich. Fairness in ranking: A survey. arXiv preprint arXiv:2103.14000, 2021

  10. [18]

    Solon Barocas and Andrew D. Selbst. Big data’s disparate impact. California Law Review, 104(3):671–732, 2016

  11. [19]

    Equality of opportunity in supervised learning

    Moritz Hardt, Eric Price, and Nathan Srebro. Equality of opportunity in supervised learning. In Proceedings of the 30th International Conference on Neural Information Processing Systems, NIPS’16, page 3323–3331, Red Hook, NY , USA, 2016. Curran Associates Inc

  12. [20]

    Fairness definitions explained

    Sahil Verma and Julia Rubin. Fairness definitions explained. In Proceedings of the International Workshop on Software Fairness, FairWare ’18, page 1–7, New York, NY , USA, 2018. Association for Computing Machinery

  13. [21]

    On the problem of underranking in group-fair ranking

    Sruthi Gorantla, Amit Deshpande, and Anand Louis. On the problem of underranking in group-fair ranking. In Marina Meila and Tong Zhang, editors, Proceedings of the 38th International Conference on Machine Learning, volume 139 of Proceedings of Machine Learning Research, pages ...

  14. [22]

    Chi, and Cristos Goodrow

    Alex Beutel, Jilin Chen, Tulsee Doshi, Hai Qian, Li Wei, Yi Wu, Lukasz Heldt, Zhe Zhao, Lichan Hong, Ed H. Chi, and Cristos Goodrow. Fairness in recommendation ranking through pairwise comparisons.CoRR, abs/1903.00780, 2019

  15. [23]

    Nuanced metrics for measuring unintended bias with real data for text classification

    Daniel Borkan, Lucas Dixon, Jeffrey Sorensen, Nithum Thain, and Lucy Vasserman. Nuanced metrics for measuring unintended bias with real data for text classification. In Companion Proceedings of The 2019 World Wide Web Conference, WWW ’19, page 491–500, New York, NY , USA, 2019...

  16. [24]

    The Fairness of Risk Scores beyond Classification: Bipartite Ranking and the XAUC Metric

    Nathan Kallus and Angela Zhou. The Fairness of Risk Scores beyond Classification: Bipartite Ranking and the XAUC Metric. Curran Associates Inc., Red Hook, NY , USA, 2019

  17. [25]

    Minimax auc fairness: Efficient algorithm with provable convergence

    Zhenhuan Yang, Yan Lok Ko, Kush R Varshney, and Yiming Ying. Minimax auc fairness: Efficient algorithm with provable convergence. In Proceedings of the AAAI Conference on Artificial Intelligence, volume 37, pages 11909–11917, 2023

  18. [26]

    Learning fair scoring functions: Bipartite ranking under roc-based fairness constraints

    Robin V ogel, Aurélien Bellet, and St’ephan Cl’emenccon. Learning fair scoring functions: Bipartite ranking under roc-based fairness constraints. In AISTATS, 2021

  19. [27]

    Towards threshold invariant fair classification

    Mingliang Chen and Min Wu. Towards threshold invariant fair classification. In Conference on Uncertainty in Artificial Intelligence, pages 560–569. PMLR, 2020

  20. [28]

    Optimized score transformation for fair classification

    Dennis Wei, Karthikeyan Natesan Ramamurthy, and Flavio Calmon. Optimized score transformation for fair classification. In Silvia Chiappa and Roberto Calandra, editors, Proceedings of the Twenty Third International Conference on Artificial Intelligence and Statistics, volume 10...

  21. [29]

    Towards model-agnostic post-hoc adjustment for balancing ranking fairness and algorithm utility

    Sen Cui, Weishen Pan, Changshui Zhang, and Fei Wang. Towards model-agnostic post-hoc adjustment for balancing ranking fairness and algorithm utility. In Proceedings of the 27th ACM SIGKDD Conference on Knowledge Discovery & Data Mining, KDD ’21, page 207–217, New York, NY , US...

  22. [30]

    Fair and optimal prediction via post-processing

    Han Zhao. Fair and optimal prediction via post-processing. In Proceedings of the AAAI Conference on Artificial Intelligence, volume 38, pages 22686–22686, 2024

  23. [31]

    Frappé: A group fairness framework for post-processing everything

    Alexandru Tifrea, Preethi Lahoti, Ben Packer, Yoni Halpern, Ahmad Beirami, and Flavien Prost. Frappé: A group fairness framework for post-processing everything. In Forty-first International Conference on Machine Learning

  24. [32]

    Unprocessing seven years of algorithmic fairness

    André F Cruz and Moritz Hardt. Unprocessing seven years of algorithmic fairness. arXiv preprint arXiv:2306.07261, 2023

  25. [33]

    Group-aware threshold adaptation for fair classification

    Taeuk Jang, Pengyi Shi, and Xiaoqian Wang. Group-aware threshold adaptation for fair classification. In Proceedings of the AAAI Conference on Artificial Intelligence, volume 36, pages 6988–6995, 2022

  26. [34]

    Fairness in risk assessment instruments: Post- processing to achieve counterfactual equalized odds

    Alan Mishler, Edward H Kennedy, and Alexandra Chouldechova. Fairness in risk assessment instruments: Post- processing to achieve counterfactual equalized odds. In Proceedings of the 2021 ACM Conference on Fairness, Accountability, and Transparency, pages 386–400, 2021

  27. [35]

    Foster J. Provost. Machine learning from imbalanced data sets 101 extended. 2000

  28. [36]

    Training cost-sensitive neural networks with methods addressing the class imbalance problem

    Zhi-Hua Zhou and Xu-Ying Liu. Training cost-sensitive neural networks with methods addressing the class imbalance problem. IEEE Transactions on Knowledge and Data Engineering, 18(1):63–77, 2006

  29. [37]

    Auc optimization vs

    Corinna Cortes and Mehryar Mohri. Auc optimization vs. error rate minimization. In S. Thrun, L. Saul, and B. Schölkopf, editors, Advances in Neural Information Processing Systems, volume 16. MIT Press, 2003

  30. [38]

    Fairness and Machine Learning

    Solon Barocas, Moritz Hardt, and Arvind Narayanan. Fairness and Machine Learning. fairmlbook.org, 2019

  31. [39]

    Is a 2000-year-old formula still keeping some secrets? The American Mathematical Monthly , 107(5):402–415, 2000

    Keith Kendig. Is a 2000-year-old formula still keeping some secrets? The American Mathematical Monthly , 107(5):402–415, 2000

  32. [40]

    Barry Becker and Ronny Kohavi. Adult. UCI Machine Learning Repository, 1996. DOI: https://doi.org/10.24432/C5XW20

  33. [41]

    Beyond adult and compas: Fair multi-class prediction via information projection

    Wael Alghamdi, Hsiang Hsu, Haewon Jeong, Hao Wang, Peter Michalak, Shahab Asoodeh, and Flavio Calmon. Beyond adult and compas: Fair multi-class prediction via information projection. In S. Koyejo, S. Mohamed, A. Agarwal, D. Belgrave, K. Cho, and A. Oh, editors, Advances in Neu...

Pith tools

Reviewed August 11, 2026 · model on record in the stance chip above.