部分依存性と個別条件期待値

Machine LearningMachine LearningBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

部分依存性プロット (PDP) と個別条件期待値 (ICE) プロットは、目的変数と一連の入力特徴量の間の相互作用を視覚化し分析するための便利なツールです。PDP は目的変数と入力特徴量の間の依存性を示し、ICE プロットは各サンプルに対する予測の特徴量に対する依存性を視覚化します。これらのプロットは、目的変数と入力特徴量の関係を理解するのに役立ちます。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/ensemble("Ensemble Methods") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/inspection("Inspection") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/ensemble -.-> lab-71126{{"部分依存性と個別条件期待値"}} sklearn/inspection -.-> lab-71126{{"部分依存性と個別条件期待値"}} sklearn/datasets -.-> lab-71126{{"部分依存性と個別条件期待値"}} ml/sklearn -.-> lab-71126{{"部分依存性と個別条件期待値"}} end

必要なライブラリをインポートする

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('Partial Dependence Plots')

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('Individual Conditional Expectation Plots')

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("Partial Dependence")
plt.title("Partial Dependence Plot")

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("Individual Conditional Expectation")
plt.title("Individual Conditional Expectation Plot")

plt.show()

まとめ

部分依存性プロットと個別条件期待値プロットは、目的変数と入力特徴量の関係を可視化し理解するための強力なツールです。PDPは依存性の全体的なビューを提供し、ICEプロットは個々の変動を示します。これらのプロットを使用することで、入力特徴量の異なる値に対して目的変数がどのように変化するかを洞察することができます。