Введение. Поскольку модели машинного обучения продолжают развиваться и становиться все более сложными, понимание и интерпретация их результатов имеют решающее значение для укрепления доверия, извлечения информации и соблюдения нормативных или этических требований. В этой всеобъемлющей статье мы углубимся в искусство интерпретации результатов моделей машинного обучения. Мы рассмотрим передовые методы, которые выходят за рамки базового анализа важности функций и обеспечивают более тонкое понимание процессов принятия решений в модели.

Аудитория. Эта статья предназначена для специалистов по данным, специалистов по машинному обучению, исследователей и всех, кто хочет получить более глубокое представление о своих моделях машинного обучения и эффективно интерпретировать их результаты. Это также полезно для заинтересованных сторон бизнеса и лиц, принимающих решения, которым необходимо понимать последствия и ограничения результатов модели машинного обучения.

Проблема интерпретируемости модели. Интерпретация результатов модели машинного обучения – сложная задача из-за присущей им сложности и нелинейного характера. Хотя традиционный анализ важности признаков, такой как использование коэффициентов в линейных моделях или важности признаков в древовидных моделях, может дать первоначальную информацию, они часто не могут уловить тонкости процесса принятия решений в модели. Чтобы преодолеть эти проблемы, нам необходимо изучить передовые методы, которые обеспечивают более детальное понимание поведения модели.

  1. Модельно-независимые методы:

Методы, не зависящие от модели, предлагают мощный способ интерпретации моделей машинного обучения, не полагаясь на конкретные архитектуры моделей. Эти методы включают графики SHAP (аддитивные объяснения Шепли), LIME (локальные интерпретируемые объяснения, не зависящие от модели) и графики PD (частичная зависимость). Значения SHAP обеспечивают глобальное понимание важности функции путем количественной оценки вклада каждой функции в прогнозы. LIME предоставляет локальные объяснения, аппроксимируя поведение модели в конкретном случае. Графики PD визуализируют взаимосвязь между функцией и прогнозами модели при контроле других переменных.

  • Ценности Шепли. Основанные на теории кооперативных игр, ценности Шепли определяют важность каждой функции путем количественной оценки ее вклада в прогнозы. Изучая, как меняются прогнозы при включении или исключении различных функций, значения Шепли раскрывают сложное взаимодействие между функциями в процессе принятия решений. Эти значения обеспечивают всестороннее понимание взаимодействия функций и позволяют нам справедливо приписывать вклады между несколькими функциями.
  • Объяснения на уровне экземпляра.Объяснения на уровне экземпляра предназначены для интерпретации решений модели на уровне отдельного экземпляра. Такие методы, как графики индивидуальных условных ожиданий (ICE) и контрфактические объяснения, дают ценную информацию о том, как изменение значений конкретных признаков повлияет на прогнозы модели. Графики ICE показывают, как меняется предсказание конкретного экземпляра по мере изменения функции, что позволяет проводить детальный анализ поведения модели. Противоречивые объяснения показывают, какие изменения во входных данных потребуются, чтобы изменить предсказание модели для данного случая.
  • Визуализация модели. Визуализация внутренней работы моделей машинного обучения может улучшить интерпретируемость. Деревья решений, пути принятия решений и карты активации — мощные методы визуализации. Деревья решений явно показывают правила принятия решений, используемые моделью, что упрощает понимание логики прогнозов. Пути принятия решений выделяют последовательность функций, которые вносят наибольший вклад в прогноз, обеспечивая понимание процесса принятия решений в модели. Карты активации визуализируют области ввода, которые активируют определенные нейроны, проливая свет на то, какие части ввода необходимы для конкретного прогноза.
  • Прозрачность модели и извлечение правил. Для достижения прозрачности и интерпретируемости можно использовать передовые методы, такие как алгоритмы извлечения правил и генерация символических правил. Эти методы направлены на извлечение интерпретируемых человеком правил из моделей черного ящика, обеспечивая четкое объяснение того, как принимаются решения, не жертвуя прогностической эффективностью. Преобразуя сложные модели в представления на основе правил, мы получаем представление о конкретных условиях, при которых делаются прогнозы, что позволяет лучше понять результаты модели и доверять им.
  • Пример кода:
import shap
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
import matplotlib.pyplot as plt
from sklearn.tree import plot_tree

# Load and preprocess the dataset
data = pd.read_csv('customer_churn.csv')
X = data.drop('Churn', axis=1)
y = data['Churn']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Train a random forest classifier
model = RandomForestClassifier()
model.fit(X_train, y_train)

# Initialize the SHAP explainer
explainer = shap.Explainer(model, X_train)

# Calculate SHAP values for the test set
shap_values = explainer(X_test)

# Summarize the SHAP values
shap.summary_plot(shap_values, X_test)

# Calculate Shapley values for a specific instance
instance_index = 0
shap_values_instance = shap_values[instance_index]

# Plot the Shapley values for the instance
shap.waterfall_plot(shap.Explanation(values=shap_values_instance,
                                     base_values=model.predict_proba(X_test)[instance_index],
                                     data=X_test.iloc[instance_index]))

# Select a feature for ICE plot
feature_name = 'TotalCharges'

# Get the ICE values for the selected feature
ice_values = shap_values[:, feature_name]

# Plot the ICE plot for the instance
plt.plot(X_test.iloc[instance_index][feature_name], ice_values[instance_index], marker='o')
plt.xlabel(feature_name)
plt.ylabel('ICE values')
plt.title('Individual Conditional Expectation (ICE) Plot')
plt.show()

# Extract a decision tree from the random forest
tree = model.estimators_[0]

# Visualize the decision tree
plt.figure(figsize=(15, 10))
plot_tree(tree, feature_names=X.columns, filled=True, rounded=True)
plt.show()

Использованная литература:

  1. Лундберг, С.М., и Ли, С.И. (2017). Унифицированный подход к интерпретации модельных прогнозов. Материалы 31-й конференции по нейронным системам обработки информации.
  2. Рибейро, М.Т., Сингх, С., и Гестрин, К. (2016). «Почему я должен тебе доверять?» Объяснение предсказаний любого классификатора. Материалы 22-й Международной конференции ACM SIGKDD по обнаружению знаний и интеллектуальному анализу данных.
  3. Каруана Р., Лу Ю., Герке Дж., Кох П., Штурм М. и Эльхадад Н. (2015). Разумные модели для здравоохранения: прогнозирование риска пневмонии и повторная госпитализация в течение 30 дней. Материалы 21-й Международной конференции ACM SIGKDD по обнаружению знаний и интеллектуальному анализу данных.

Ключевые слова: машинное обучение, интерпретируемость модели, результаты моделирования, расширенные методы, важность функций, значения Шепли, пояснения на уровне экземпляра, визуализация модели, прозрачность модели, извлечение правил, прогнозное моделирование, объяснимый ИИ.