Sobes.tech
Назад к вопросам
Senior
14

Что такое Aequitas / Fairlearn?

Компании, где спрашивали
нетология
VK CloudVK Cloud
Билайн

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

Aequitas и Fairlearn — это инструменты для оценки и снижения bias в ML-моделях, то есть для проверки fairness по разным группам пользователей. Обычно ожидают понимание, что fairness не сводится к одной метрике качества: модель может быть точной в среднем, но системно хуже работать на отдельных группах. Также важно уметь объяснить, что такие библиотеки помогают измерять различия в ошибках и, в случае Fairlearn, применять методы mitigation.

Определение:

Aequitas — это библиотека для аудита fairness моделей, которая помогает находить различия в метриках качества между группами и выявлять потенциальную дискриминацию.
Fairlearn — это библиотека для оценки и снижения unfairness в ML-моделях; она предоставляет метрики fairness, визуализацию различий по группам и алгоритмы для ограничения дисбаланса между группами.

Обе библиотеки используются, чтобы проверить, не ухудшается ли качество предсказаний для защищённых или чувствительных групп, например по полу, возрасту, расе, региону и т.д.

Пример использования:

Например, есть модель скоринга заявок на кредит. По общей accuracy она выглядит хорошо, но после проверки выясняется, что для одной группы клиентов доля false negatives заметно выше, чем для другой. Тогда используют Fairlearn или Aequitas, чтобы измерить разницу в метриках, понять масштаб проблемы и, при необходимости, скорректировать модель или пороги принятия решений.

from fairlearn.metrics import MetricFrame, selection_rate
from sklearn.metrics import accuracy_score

# y_true, y_pred — истинные и предсказанные значения
# sensitive_features — например, пол или возрастная группа

mf = MetricFrame(
    metrics={
        "accuracy": accuracy_score,
        "selection_rate": selection_rate,
    },
    y_true=y_true,
    y_pred=y_pred,
    sensitive_features=sensitive_features,
)

print(mf.by_group)
print("Overall accuracy:", mf.overall["accuracy"])

Пояснение кода:

В этом примере код показывает, как можно посмотреть качество модели отдельно по группам.
MetricFrame группирует расчёт метрик по значению sensitive_features, чтобы сравнить результаты между категориями, а не только в среднем по всей выборке.
accuracy_score показывает общую точность, а selection_rate — как часто модель выбирает положительный класс для каждой группы.
Если по by_group виден большой разрыв между группами, это сигнал о fairness-проблеме, которую дальше анализируют и, при необходимости, исправляют.

Ключевые моменты:

  • Aequitas и Fairlearn применяют для анализа fairness и выявления bias в ML-моделях.
  • Они помогают сравнивать качество не только в целом, но и по отдельным чувствительным группам.
  • Fairlearn дополнительно предлагает инструменты для mitigation, то есть снижения unfairness.
  • Важный практический смысл: высокая общая метрика модели не гарантирует справедливость для всех групп.
  • Такие инструменты полезны в доменах с высоким риском дискриминации: кредитование, найм, медицина, страхование.