Введение
Графики частичной зависимости (PDP) и графики индивидуального условного математического ожидания (ICE) - полезные инструменты для визуализации и анализа взаимодействия между целевым откликом и набором входных признаков. PDP показывают зависимость между целевым откликом и входными признаками, в то время как ICE - графики визуализируют зависимость прогноза от признака для каждого отдельного образца. Эти графики помогают нам понять связь между целевым откликом и входными признаками.
Советы по работе с ВМ
После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Ноутбук и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook загрузится. Валидация операций не может быть автоматизирована из-за ограничений в Jupyter Notebook.
Если вы сталкиваетесь с проблемами при обучении, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортируем необходимые библиотеки
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
from sklearn.ensemble import RandomForestRegressor
from sklearn.inspection import plot_partial_dependence, partial_dependence
Загружаем и готовим данные
data = load_boston()
X = data.data
y = data.target
feature_names = data.feature_names
## Создаем DataFrame для более удобной манипуляции данными
df = pd.DataFrame(X, columns=feature_names)
Обучаем модель случайного леса
model = RandomForestRegressor()
model.fit(X, y)
Создаем и визуализируем графики частичной зависимости
fig, ax = plot_partial_dependence(model, X, features=[(0, 1), (2, 3)], feature_names=feature_names, grid_resolution=20)
## Задаем размеры рисунка и заголовок
fig.set_size_inches(10, 8)
fig.suptitle('Графики частичной зависимости')
plt.show()
Создаем и визуализируем графики индивидуального условного ожидания
fig, ax = plot_partial_dependence(model, X, features=[(0, 1), (2, 3)], feature_names=feature_names, kind='individual')
## Задаем размеры рисунка и заголовок
fig.set_size_inches(10, 8)
fig.suptitle('Графики индивидуального условного ожидания')
plt.show()
Вычисляем значения частичной зависимости для определенной характеристики
x_index = 0
pdp, axes = partial_dependence(model, X, features=[x_index], grid_resolution=20)
## Строим график значений частичной зависимости
plt.plot(axes[x_index], pdp[0])
plt.xlabel(feature_names[x_index])
plt.ylabel("Частичная зависимость")
plt.title("График частичной зависимости")
plt.show()
Вычисляем значения индивидуального условного ожидания для определенной характеристики
x_index = 0
ice, axes = partial_dependence(model, X, features=[x_index], kind='individual')
## Строим график значений индивидуального условного ожидания
for i in range(len(ice)):
plt.plot(axes[x_index], ice[i], color='lightgray')
plt.plot(axes[x_index], np.mean(ice, axis=0), color='blue')
plt.xlabel(feature_names[x_index])
plt.ylabel("Индивидуальное условное ожидание")
plt.title("График индивидуального условного ожидания")
plt.show()
Резюме
Графики частичной зависимости и графики индивидуального условного ожидания - мощные инструменты для визуализации и понимания взаимосвязи между целевым откликом и входными характеристиками. ГРАФИКИ ПАРЦИАЛЬНОЙ ЗАВИСИМОСТИ дают общее представление о зависимости, в то время как графики ICE показывают индивидуальные вариации. Используя эти графики, мы можем получить представление о том, как целевой отклик меняется в зависимости от различных значений входных характеристик.