часть 2: визуализация
TL;DR
Пакет R fairmodels упрощает обнаружение смещения посредством визуализации модели. Он реализует несколько стратегий смягчения, которые могут уменьшить смещение. Это позволяет легко использовать проверки показателей справедливости и сравнения между различными моделями машинного обучения (ML).
Длинная версия
Как я писал в предыдущем сообщении в блоге, справедливость в машинном обучении (ML) — это развивающаяся область без множества инструментов, которые визуализируют предвзятость. Конечно, гистограммы — самый простой способ сделать это, и их легче всего интерпретировать. Однако есть и другие способы решения этой проблемы и более глубокого понимания дискриминации. В этой главе я буду использовать пакет fairmodels R для более подробного визуального анализа смещения модели.
Используемые метрики и что такое потеря четности?
Прежде чем мы начнем визуализировать справедливость или предвзятость, нам нужно сделать несколько оговорок.
- Во-первых, в отличие от функции fairness_check (), мы не будем смотреть на разницу между подгруппами в показателях справедливости. Мы рассмотрим показатели, созданные с помощью матрицы путаницы, такие как истинно положительный рейтинг, оценка F1, отрицательная прогностическая ценность и т. Д.. Таким образом, будет охвачено большинство показателей справедливости.
- Нам нужен способ сравнения различных показателей с более чем двумя подгруппами (значения в защищенной переменной), например, для многих этнических групп. Отличное и легкое для понимания решение этой проблемы — это суммирование всех евклидовых расстояний между значениями метрик привилегированных и непривилегированных подгрупп. Это будет называться потерей четности. Его можно рассчитать для всех показателей матрицы неточностей. Вот пример для TPR.
С такой совокупной мерой мы сможем быстро сравнить, насколько значительна систематическая ошибка даже среди разных показателей.
О чем эта суета?
Благодаря этому визуализировать различные показатели стало проще, чем когда-либо. Как и раньше, мы будем использовать fairness_object, созданный с помощью fairness_check (), и применять разные функции, чтобы показать предвзятость с разных точек зрения. Мы будем использовать набор данных КОМПАС и предсказывать, не станет ли конкретный человек рецидивистом через 2 года. Таким образом, выходом модели будет вероятность того, что этот человек получит благоприятный исход (не будучи рецидивистом). Наша защищенная (чувствительная) переменная будет фактором с 6 уровнями, обозначающими разные этнические группы. Вы можете найти код для этого примера здесь. Ниже приведен код, показывающий, как создать fairness_object.
Подготовить данные
library(fairmodels)
library(DALEX)
library(ranger)
library(gbm)
data("compas")
# positive outcome - not being recidivist
two_yr_recidivism <- factor(compas$Two_yr_Recidivism, levels = c(1,0))
y_numeric <- as.numeric(two_yr_recidivism) -1
compas$Two_yr_Recidivism <- two_yr_recidivism
df <- compas
df$Two_yr_Recidivism <- as.numeric(two_yr_recidivism) -1
Обучайте моделей и объяснителей
gbm_model <- gbm(Two_yr_Recidivism ~., data = df)
lm_model <- glm(Two_yr_Recidivism~.,
data=compas,
family=binomial(link="logit"))
rf_model <- ranger(Two_yr_Recidivism ~.,
data = compas,
probability = TRUE)
explainer_lm <- explain(lm_model, data = compas[,-1], y = y_numeric)
explainer_rf <- explain(rf_model, data = compas[,-1], y = y_numeric)
explainer_gbm <- explain(gbm_model, data = compas[,-1], y = y_numeric)
Подготовьте объект справедливости
fobject <- fairness_check(explainer_lm, explainer_rf, explainer_gbm,
protected = compas$Ethnicity,
privileged = "Caucasian")
Как только у нас будет fairness_object, мы можем начать визуализацию.
Тепловая карта справедливости — отличный способ визуализировать сходство между обеими моделями и показателями. Он настраивается, метрики могут быть стандартизированы, текст может быть увеличен или даже отключен, средняя точка градиента может быть изменена, а модели могут переключать ось с метриками. Поскольку этот сюжет состоит из 3 отдельных сюжетов, мы можем изменить заголовок и подзаголовок сюжета.
Как для сравнения моделей, так и для сравнения показателей лучше использовать радар справедливости . Понятно, что, если модель охватывает меньшее поле, у нее меньше смещения. Для определенной метрики, скажем, TNR, легко сказать, что наибольшая потеря четности приходится на lm, а наименьшая — на ranger. . Если мы добавим больше моделей, они могут стать нечитаемыми.
На графике составной метрики столбцы накладываются друг на друга. Разные цвета обозначают разные показатели матрицы путаницы.
Этот график отлично подходит для сравнения общей потери четности моделей. Визуально приятно, когда есть и большое, и малое количество объяснителей. Как правило, чем меньше суммарная потеря четности, тем лучше. Тем не менее, он не позволяет сравнивать метрики друг с другом.
Fairness PCA помогает увидеть сходство между моделями и показателями. Это похоже на стандартный график. Чем ближе модели друг к другу, тем они больше похожи. На нижней и левой оси отображается информация о том, насколько вариативность может быть объяснена с помощью каждого компонента.
Сюжет выбранной метрики — самый простой из всех. Мы просто выбираем метрику, и она показывает потерю четности этой метрики для всех моделей. Конечно, чем меньше потери четности, тем лучше.
График групповой метрики отличается. Во-первых, он показывает показатель среди подгрупп, а не его потерю четности. Чем ближе бары к привилегированной подгруппе, тем лучше. Справа находится график производительности модели, на котором можно сравнить популярные показатели, такие как AUC, точность, оценка F1. Кроме того, для облегчения визуального сравнения между подгруппами был добавлен параметр parity_loss, и когда он установлен на TRUE, вычисляется и отображается евклидово расстояние между непривилегированными подгруппами и привилегированной подгруппой вместо исходной оценки показателей.
График Эффективность и справедливость показывает потерю четности и точность показателя на левой и нижней оси соответственно. Левая ось перевернута, поэтому в правом верхнем углу указана лучшая модель (в этих показателях). Для многих моделей это отличный инструмент для визуализации того, как производительность влияет на показатели справедливости.
График Все отсечки показывает, как с изменением показателя отсечки изменится потеря четности. Обрезки здесь меняются равномерно для всех подгрупп. На этом графике мы можем видеть, для какой метрики отсечки существует (не является NA), и мы можем сказать, что установка определенных отсечений на определенное значение приведет к меньшей потере четности.
Сюжет Ceteris paribus более интересен, чем его предшественник. Отсечка здесь изменяется только для выбранной подгруппы (здесь афроамериканец), отсечка для других подгрупп не изменяется. Кроме того, показаны пороговые значения, для которых совокупная потеря четности будет минимальной. Таким образом, изменяя значение отсечки для конкретной подгруппы, мы можем изменить потерю четности на минимально возможную. Это, конечно, сказывается на характеристиках модели. Более того, есть параметр cumulated, который, если ему задано значение TRUE, вызовет сворачивание фасетов, и все выбранные метрики будут накапливаться.
Зачем нужен пакет fairmodels?
Представленные графики гибкие (можно изменять метрики, можно устанавливать параметры и т. Д.) И дают информацию о предвзятости со многих точек зрения. Имея это в виду, можно лучше понять дискриминационные решения, принимаемые моделью. При создании множества моделей лучше всего сравнивать их друг с другом, рассматривая различные аспекты предвзятости. В конце этого процесса должно быть ясно, какая модель является наиболее многообещающей с точки зрения справедливости и производительности.
Что читать дальше?
- Сообщение в блоге о справедливости, проблемах и решениях
- Сообщение в блоге о методах снижения предвзятости
Учить больше
- Посетите сайт пакета GitHub для получения более подробной информации.
- Учебник по полным возможностям пакета fairmodels
- Учебник по методам снижения предвзятости