부분 의존도 플롯 및 개별 조건부 기댓값

Beginner

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

소개

부분 의존도 플롯 (PDP) 과 개별 조건부 기대값 (ICE) 플롯은 대상 응답과 입력 특징 집합 간의 상호 작용을 시각화하고 분석하는 데 유용한 도구입니다. PDP 는 대상 응답과 입력 특징 간의 의존성을 보여주고, ICE 플롯은 각 개별 샘플에 대한 특징에 따른 예측의 의존성을 시각화합니다. 이러한 플롯은 대상 응답과 입력 특징 간의 관계를 이해하는 데 도움이 됩니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 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()

요약

부분 의존도 플롯 (PDP) 과 개별 조건부 기댓값 플롯 (ICE) 은 대상 응답과 입력 특징 간의 관계를 시각화하고 이해하는 강력한 도구입니다. PDP 는 전체적인 의존도를 보여주는 반면, ICE 플롯은 개별적인 변화를 보여줍니다. 이러한 플롯을 사용하여 입력 특징의 다양한 값에 따라 대상 응답이 어떻게 변하는지에 대한 통찰력을 얻을 수 있습니다.