Как использовать равные возможности, равные шансы и несоизмеримое влияние для анализа и смягчения предвзятости в ваших моделях машинного обучения
Введение:
Поскольку машинное обучение продолжает революционизировать отрасли и нашу повседневную жизнь, очень важно, чтобы мы создавали эти системы с учетом принципа справедливости и равноправия. К сожалению, без тщательного рассмотрения алгоритмы машинного обучения могут увековечить и даже усилить существующие социальные предубеждения, что приведет к дискриминационным результатам. Поэтому крайне важно, чтобы мы измеряли и анализировали справедливость наших моделей машинного обучения, чтобы убедиться, что они не усиливают и не создают дискриминационные практики.
Чтобы добиться справедливости, нам нужно использовать соответствующие показатели для оценки наших моделей. Три общие метрики для оценки справедливости в машинном обучении: равные возможности, равные шансы и несопоставимое влияние. Эти показатели позволяют нам измерить степень справедливости прогнозов модели, изучив, как ее результаты различаются для разных групп людей. В этой статье мы предоставим подробный обзор этих трех показателей и покажем, как использовать их для анализа справедливости в ваших моделях машинного обучения с использованием Python. Итак, приступим!
II. Понимание предвзятости в машинном обучении
Модели машинного обучения хороши ровно настолько, насколько хороши данные, на которых они обучаются. К сожалению, реальные данные часто содержат искажения, которые могут повлиять на точность и справедливость прогнозов машинного обучения. В этом разделе мы определим, что мы подразумеваем под предвзятостью в машинном обучении, и обсудим, как она может возникнуть в процессе выбора данных и моделей.
Предвзятость в машинном обучении относится к систематическим ошибкам в данных или алгоритме, которые могут привести к несправедливым или дискриминационным результатам. Эти предубеждения могут быть связаны с различными источниками, такими как методы сбора данных, конвейеры обработки данных или выбор архитектуры модели.
Например, представьте себе алгоритм найма, который использует исторические данные о приеме на работу, чтобы предсказать, кого следует нанять на новую должность. Если исторические данные были предвзятыми в отношении определенных групп, таких как женщины или цветные люди, алгоритм мог бы изучить и воспроизвести эту предвзятость, что привело бы к несправедливым методам найма в будущем.
Предвзятость также может возникнуть в процессе выбора модели, когда мы выбираем, какой алгоритм машинного обучения использовать. Некоторые алгоритмы могут быть более склонны к предвзятости, чем другие, в зависимости от того, как они работают и какие данные им требуются. Поэтому важно тщательно рассмотреть сильные стороны и ограничения различных алгоритмов и оценить их справедливость, прежде чем развертывать их в реальных приложениях.
В следующем разделе мы рассмотрим три общих показателя справедливости, которые могут помочь нам оценить предвзятость в моделях машинного обучения.
III. Измерение справедливости с помощью равных возможностей
Чтобы наши модели машинного обучения были справедливыми, нам необходимо использовать соответствующие показатели, которые могут измерять предвзятость и дискриминацию. Одним из таких показателей является «Равные возможности», который оценивает, обеспечивает ли модель равные шансы на положительный результат для всех групп. В этом разделе мы объясним, что мы подразумеваем под равными возможностями, покажем, как его рассчитать с помощью Python, и предоставим реальные примеры использования равных возможностей для измерения справедливости в моделях машинного обучения.
Набор данных COMPAS — это широко используемый набор данных для изучения справедливости в машинном обучении. Он содержит информацию о подсудимых и их криминальном прошлом, а также баллы COMPAS, которые используются для прогнозирования вероятности повторного совершения ими преступления. Набор данных подвергался критике за предвзятость в отношении определенных групп, таких как афроамериканцы, и был предметом нескольких исследований справедливости в машинном обучении.
Равные возможности определяются как доля истинно положительных результатов среди всех положительных результатов для данной группы. В контексте набора данных COMPAS мы можем использовать равные возможности, чтобы оценить, с одинаковой ли вероятностью алгоритм предсказывает, что обвиняемый совершит повторное преступление для всех групп, независимо от расы.
Чтобы рассчитать равные возможности, нам нужно сначала разделить данные по группам (в данном случае по расам) и вычислить истинный положительный показатель для каждой группы. Затем мы можем сравнить эти показатели, чтобы определить, является ли алгоритм одинаково точным для всех групп.
Вот пример того, как рассчитать равные возможности с помощью Python:
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.metrics import confusion_matrix # Load COMPAS dataset url = 'https://raw.githubusercontent.com/propublica/compas-analysis/master/compas-scores-two-years.csv' compas_df = pd.read_csv(url) # Convert 'score_text' column to integer type score_map = {'Low': 0, 'Medium': 1, 'High': 2} compas_df['score_num'] = compas_df['score_text'].map(score_map) # Separate data by race african_american = compas_df[compas_df['race'] == 'African-American'] caucasian = compas_df[compas_df['race'] == 'Caucasian'] # Calculate confusion matrices for each group african_american_matrix = confusion_matrix(african_american['is_recid'], african_american['score_num']) caucasian_matrix = confusion_matrix(caucasian['is_recid'], caucasian['score_num']) # Calculate true positive rates for each group african_american_tpr = african_american_matrix[1,1] / (african_american_matrix[1,0] + african_american_matrix[1,1]) caucasian_tpr = caucasian_matrix[1,1] / (caucasian_matrix[1,0] + caucasian_matrix[1,1]) # Compare true positive rates to assess fairness if african_american_tpr == caucasian_tpr: print("The algorithm has Equal Opportunity for both groups.") else: print("The algorithm does not have Equal Opportunity for both groups.") # Create subplots fig, (ax1, ax2, ax3) = plt.subplots(ncols=3, figsize=(15,5)) # Plot confusion matrices sns.set(font_scale=1.4) sns.heatmap(african_american_matrix, annot=True, annot_kws={"size": 16}, cmap='Blues', fmt='g', ax=ax1) ax1.set_xlabel('Predicted Labels') ax1.set_ylabel('True Labels') ax1.set_title('Confusion Matrix for African American') sns.set(font_scale=1.4) sns.heatmap(caucasian_matrix, annot=True, annot_kws={"size": 16}, cmap='Blues', fmt='g', ax=ax2) ax2.set_xlabel('Predicted Labels') ax2.set_ylabel('True Labels') ax2.set_title('Confusion Matrix for Caucasian') # Create bar chart fnr = [african_american_matrix[0,1] / (african_american_matrix[0,0] + african_american_matrix[0,1]), caucasian_matrix[0,1] / (caucasian_matrix[0,0] + caucasian_matrix[0,1])] race = ['African American', 'Caucasian'] sns.barplot(x=race, y=fnr, ax=ax3) ax3.set_xlabel('Race') ax3.set_ylabel('False Negative Rate') ax3.set_title('False Negative Rates by Race') # Output true positive rates print("True Positive Rates:") print("African American: {:.3f}".format(african_american_tpr)) print("Caucasian: {:.3f}".format(caucasian_tpr)) plt.tight_layout() plt.show()
Запустив этот код, мы можем оценить, имеет ли алгоритм COMPAS равные возможности для афроамериканцев и кавказцев. Если истинные положительные показатели для обеих групп равны, то алгоритм имеет равные возможности. Если они не равны, то алгоритм необъективен и нуждается в модификации для обеспечения справедливости.
В следующем разделе мы рассмотрим еще одну метрику справедливости, равные шансы, и покажем, как использовать ее для измерения предвзятости в моделях машинного обучения.
IV. Измерение справедливости с использованием равных шансов
Equalized Odds — еще одна метрика, которая может помочь нам оценить справедливость в моделях машинного обучения. Подобно равным возможностям, равные шансы исследуют, обеспечивает ли модель одинаковое отношение ко всем группам. Однако вместо того, чтобы просто рассматривать истинно положительные показатели для каждой группы, Equalized Odds исследует как истинно положительные, так и ложноположительные показатели. В этом разделе мы объясним, что мы подразумеваем под равными шансами, покажем, как его рассчитать с помощью Python, и предоставим реальные примеры использования равных шансов для измерения справедливости в моделях машинного обучения.
Чтобы проиллюстрировать, как использовать равные шансы, мы продолжим использовать набор данных COMPAS. В этом случае мы рассмотрим, имеет ли алгоритм COMPAS равные шансы для афроамериканцев и кавказцев при прогнозировании рецидивизма.
Уравненные шансы определяются как отношение ложных срабатываний для одной группы к ложным срабатываниям для другой группы. В контексте набора данных COMPAS мы можем использовать равные шансы, чтобы оценить, с одинаковой ли вероятностью алгоритм неверно предскажет, что ответчик совершит повторное преступление для всех групп, независимо от расы.
Чтобы рассчитать равные шансы, нам нужно сначала рассчитать уровень ложных срабатываний для каждой группы. Затем мы можем сравнить количество ложных срабатываний, чтобы определить, является ли алгоритм одинаково точным для всех групп.
Вот пример того, как рассчитать равные шансы с помощью Python:
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.metrics import confusion_matrix # Load COMPAS dataset url = 'https://raw.githubusercontent.com/propublica/compas-analysis/master/compas-scores-two-years.csv' compas_df = pd.read_csv(url) # Convert 'score_text' column to integer type score_map = {'Low': 0, 'Medium': 1, 'High': 2} compas_df['score_num'] = compas_df['score_text'].map(score_map) # Separate data by race african_american = compas_df[compas_df['race'] == 'African-American'] caucasian = compas_df[compas_df['race'] == 'Caucasian'] # Calculate confusion matrices for each group african_american_matrix = confusion_matrix(african_american['is_recid'], african_american['score_num']) caucasian_matrix = confusion_matrix(caucasian['is_recid'], caucasian['score_num']) # Calculate false negative rates for each group african_american_fnr = african_american_matrix[0,1] / (african_american_matrix[0,0] + african_american_matrix[0,1]) caucasian_fnr = caucasian_matrix[0,1] / (caucasian_matrix[0,0] + caucasian_matrix[0,1]) # Create bar chart sns.barplot(x=['African American', 'Caucasian'], y=[african_american_fnr, caucasian_fnr]) plt.xlabel('Race') plt.ylabel('False Negative Rate') plt.title('False Negative Rates by Race') plt.show()
Запустив этот код, мы можем оценить, имеет ли алгоритм COMPAS равные шансы для афроамериканцев и кавказцев. Если процент ложноположительных результатов для обеих групп одинаков, то алгоритм имеет равные шансы. Если они не равны, то алгоритм необъективен и нуждается в модификации для обеспечения справедливости.
В следующем разделе мы рассмотрим последнюю метрику справедливости, Disparate Impact, и покажем, как использовать ее для измерения предвзятости в моделях машинного обучения.
V. Измерение справедливости с помощью разрозненных воздействий
Различное влияние — это показатель справедливости, который проверяет, отличаются ли результаты модели для разных групп, даже если результаты не являются преднамеренно предвзятыми. Он измеряет отношение благоприятных исходов для одной группы к благоприятным исходам для другой группы. В этом разделе мы объясним, что мы подразумеваем под Disparate Impact, покажем, как его рассчитать с помощью Python, и предоставим реальные примеры использования Disparate Impact для измерения справедливости в моделях машинного обучения.
Чтобы проиллюстрировать, как использовать Disparate Impact, мы продолжим использовать набор данных COMPAS. В этом случае мы рассмотрим, оказывает ли алгоритм COMPAS несоизмеримое влияние на афроамериканцев и представителей европеоидной расы при прогнозировании рецидивизма.
Несоизмеримое влияние определяется как отношение благоприятных результатов для одной группы к благоприятным результатам для другой группы. В контексте набора данных COMPAS мы можем использовать Disparate Impact, чтобы оценить, с одинаковой ли вероятностью алгоритм предсказывает, что ответчик совершит повторное преступление для всех групп, независимо от расы.
Чтобы рассчитать несоизмеримое воздействие, нам нужно сначала рассчитать долю благоприятных исходов (в данном случае рецидивизма) для каждой группы. Затем мы можем сравнить пропорции, чтобы определить, является ли алгоритм одинаково точным для всех групп.
Вот пример того, как рассчитать Disparate Impact с помощью Python:
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # Load COMPAS dataset url = 'https://raw.githubusercontent.com/propublica/compas-analysis/master/compas-scores-two-years.csv' compas_df = pd.read_csv(url) # Separate data by race african_american = compas_df[compas_df['race'] == 'African-American'] caucasian = compas_df[compas_df['race'] == 'Caucasian'] # Calculate proportion of favorable outcomes for each group african_american_favorable = african_american[african_american['is_recid'] == 1].shape[0] / african_american.shape[0] caucasian_favorable = caucasian[caucasian['is_recid'] == 1].shape[0] / caucasian.shape[0] # Compare proportions to assess fairness if african_american_favorable / caucasian_favorable >= 0.8 and african_american_favorable / caucasian_favorable <= 1.25: print("The algorithm has no Disparate Impact for both groups.") else: print("The algorithm has Disparate Impact for both groups.") # Create subplots fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(10,5)) # Create heatmap sns.set(font_scale=1.4) sns.heatmap(compas_df.pivot_table(index='race', columns='score_text', values='id', aggfunc='count'), annot=True, annot_kws={"size": 16}, cmap='Blues', fmt='g', cbar=False, ax=ax1) ax1.set_xlabel('Score') ax1.set_ylabel('Race') ax1.set_title('Counts by Race and Score') # Create bar chart fnr = [1-african_american_favorable, 1-caucasian_favorable] race = ['African American', 'Caucasian'] sns.barplot(x=race, y=fnr, ax=ax2) ax2.set_xlabel('Race') ax2.set_ylabel('False Negative Rate') ax2.set_title('False Negative Rates by Race') plt.tight_layout() plt.show()
Запустив этот код, мы можем оценить, оказывает ли алгоритм COMPAS несоизмеримое влияние на афроамериканцев и кавказцев. Если соотношение благоприятных исходов для обеих групп находится в пределах от 0,8 до 1,25, то алгоритм не оказывает разрозненного воздействия. Если соотношение выходит за пределы этого диапазона, то алгоритм необъективен и требует модификации для обеспечения справедливости.
В последнем разделе мы обсудим, как интерпретировать результаты справедливости и использовать показатели справедливости для принятия обоснованных решений о моделях машинного обучения.
VI. Заключение
Влияние машинного обучения на нашу повседневную жизнь неоспоримо: от рекомендаций, которые мы получаем на потоковых платформах, до персонализированной рекламы, которую мы видим в социальных сетях. Но по мере того, как машинное обучение становится все более распространенным, крайне важно обеспечить его честное и справедливое использование.
Справедливость в машинном обучении — это не просто вопрос точности или эффективности, это моральный императив. Предвзятые алгоритмы могут иметь последствия в реальном мире, увековечивая системную несправедливость и усиливая неравенство. Ответственность за обеспечение справедливости в машинном обучении лежит на всех нас, от разработчиков до политиков и конечных пользователей.
В этой статье мы рассмотрели три показателя справедливости — «Равные возможности», «Уравненные шансы» и «Разное влияние» — и продемонстрировали, как их измерять с помощью Python. Мы также обсудили, как интерпретировать результаты справедливости и использовать их для принятия обоснованных решений в отношении наших моделей машинного обучения.
Важно помнить, что достижение справедливости в машинном обучении — это непрерывный процесс, который требует постоянной оценки и уточнения. Сосредоточенно подходя к справедливости и работая вместе над выявлением и устранением предвзятости, мы можем создать будущее, в котором машинное обучение одинаково служит всем членам общества.
Давайте вместе продолжим работать над будущим, в котором справедливость является фундаментальным аспектом машинного обучения, а технологии служат созданию более справедливого и равноправного мира для всех.