본문으로 건너뛰기

가이드

그룹 간 공정성

모델은 모든 그룹에서 정확도 기준을 통과하면서도 그중 한 그룹에 더 가혹할 수 있습니다. 위음성이 두 배이거나 선택이 절반인 식입니다. oloproof fairness는 판정된 케이스의 파일을 읽고 그룹들이 서로 얼마나 떨어져 있는지 묻습니다. 다른 모든 규칙과 같은 네 가지 상태로 답합니다. 패리티 방법은 2026년 11월 3일 독립 감사에서 이 페이지가 밝히는 조건으로 승인되었습니다. 케이스는 독립이고, 그룹은 먼저 선언하며, 각 규칙은 그 속성이 기록된 케이스에 대한 것이고, 패리티는 여러분의 레이블에 대해 측정됩니다.

파일과 선언

케이스당 한 행인 CSV 또는 JSONL 파일 하나: ID, 레이블(0 또는 1), 예측(0 또는 1, 시스템이 아무것도 내놓지 않았으면 비움), 선택적으로 확률, 그리고 보호 속성마다 한 열.

fairness:
  name: loan-screen
  cases: decided.csv
  label: label
  prediction: prediction
  probability: score
  attributes:
    sex: [female, male]
    age_band: [under_30, 30_to_60, over_60]
  intersections:
    - [sex, age_band]
  min_cell: 30
  rules:
    - {id: fnr-by-sex, rate: false_negative, attribute: sex, max_group_gap: 0.05}
    - {id: fnr-crossed, rate: false_negative, attribute: [sex, age_band], max_group_gap: 0.10}
oloproof fairness fairness.yaml --policy release.yaml --json

구간은 각 케이스가 서로 다른 사람이라고 가정합니다. unit: person_id로 사람을 식별하는 열을 지정하면 한 사람이 여러 케이스를 가진 파일은 거부됩니다. 지정하지 않으면 답변이 이 가정을 밝힙니다.

비율은 error, false_positive(레이블이 0인 케이스 기준), false_negative(레이블이 1인 케이스 기준), selection(예측 1, 모든 케이스 기준) 중 하나입니다. 파일을 읽기 전에 그룹을 지정하세요. 각 규칙은 자신의 속성이 선언된 값으로 기록된 케이스만 읽습니다. 속성이 빠진 케이스는 그 속성을 쓰는 규칙에서 제외되고 다른 규칙에는 남으며, 각 답은 무엇을 왜 제외했는지 집계합니다. 어떤 사람들에게서 속성이 더 자주 빠질 때, 답은 그 속성이 기록된 케이스에 대한 것이며 이는 다른 모집단입니다. 판정보다 건수를 먼저 읽으세요. 파일의 max_left_out(기본값 10%, 규칙에서 설정)보다 많이 제외하는 규칙은 INSUFFICIENT_EVIDENCE로 읽힙니다. 기록된 케이스가 더 이상 나머지를 대표하지 못할 수 있기 때문입니다. 종료 코드는 가장 나쁜 규칙의 것입니다: 0 PASS, 1 FAIL, 3 INSUFFICIENT_EVIDENCE, 4 MANUAL_REVIEW.

판정 방식

각 그룹의 비율에는 Oloproof가 하나의 비율에 쓰는 정확한 구간이, 오류 예산을 선언된 그룹 수로 나눈 수준에서 주어집니다. 두 그룹 사이의 모든 차이는 이 구간들로부터 한꺼번에 제한되므로 어떤 쌍도 따로 보정할 필요가 없습니다. max_group_gap 규칙은 모든 차이의 상단이 기준 이하일 때 통과하고, 어떤 차이가 구간 전체로 기준을 넘을 때 실패합니다. 누락된 예측은 자기 그룹에 남아 최악의 값으로 집계됩니다.

작은 그룹과 교차 그룹

두 속성을 교차하면 셀이 곱절로 늘고, 일부는 작아집니다. 예측이 있는 케이스가 min_cell보다 적은 셀은(예측이 빠진 케이스는 여기에 세지 않습니다) 자기 줄에서 INSUFFICIENT_EVIDENCE로 보고되고, 분할에서는 계속 집계되며, 규칙이 통과하지 못하게 합니다. 가장 큰 차이가 거기 있을 수 있기 때문입니다. 그 셀의 케이스를 더 모으거나, 실행 전에 더 거친 교차를 선언하세요.

하한과 차이

모든 그룹이 넘어야 하는 하한("모든 지역이 최소 80%를 해결한다")에는 worst_group을, 그룹 간 거리의 상한("위음성 차이는 최대 5%포인트")에는 max_group_gap을 쓰세요. 편향 없는 결과를 요구하는 거버넌스 요건은 선택한 비율에 대해 차이로 부분적으로 뒷받침되고, 모든 그룹이 잘 서비스받아야 한다는 요건은 하한으로 뒷받침됩니다. 어느 쪽도 혼자서는 시스템이 공정하다는 것을 보여 주지 못합니다. 대부분의 시스템에는 둘 다 필요합니다.

그룹별 보정

확률 열이 있으면 각 그룹의 기대 보정 오차가 모든 속성과 선언된 교차에 대해, 확률을 같은 폭으로 나눈 calibration_bins개 구간(기본값 10)으로 보고됩니다. 이것은 결코 게이트하지 않습니다. 이를 제한하는 승인된 방법이 없고, 작은 그룹에서는 잡음이 크기 때문입니다.

이것으로 알 수 없는 것

  • 어떤 비율을 같게 맞추는 것이 공정한지: 이는 여러분의 결정이며, 선택한 속성과 함께 기록해 둘 가치가 있습니다.
  • 선언하지 않은 그룹에 관한 것, 또는 두 번 집계된 사람(한 사람, 여러 케이스)에 관한 것.
  • 보정이 그룹 간에 우연 이상으로 다른지 여부.
  • 레이블 자체가 편향되어 있는지 여부: 패리티는 여러분이 가져온 레이블에 대해 측정됩니다.