Частичная зависимость и индивидуальное условное ожидание

Beginner

This tutorial is from open-source community. Access the source code

Введение

Графики частичной зависимости (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 показывают индивидуальные вариации. Используя эти графики, мы можем получить представление о том, как целевой отклик меняется в зависимости от различных значений входных характеристик.