偏依赖图#
API 参考链接:PartialDependence
摘要
偏依赖图可视化响应变量与一组目标特征(通常是一个或两个)之间的依赖关系,同时将所有其他特征的影响边缘化。作为一种基于扰动的可解释性方法,它的速度相对较快。PDP 假设特征之间相互独立,当这一假设不成立时(例如,当模型有许多高阶交互项时),它在解释性方面可能会产生误导。
工作原理
scikit-learn
的 PDP 模块 [1] 在此处提供了该算法的简洁描述。
Christoph Molnar 的电子书《可解释机器学习》[2] 对偏依赖图进行了精彩的概述,可以在此处找到。
最初提出该方法的论文《贪婪函数逼近:梯度提升机》[3] 提供了很好的动机和定义。
代码示例
以下代码将针对乳腺癌数据集训练一个黑盒管道。之后,它将使用偏依赖图解释该管道及其决策。提供的可视化将用于全局解释。
from interpret import set_visualize_provider
from interpret.provider import InlineProvider
set_visualize_provider(InlineProvider())
import numpy as np
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.decomposition import PCA
from sklearn.pipeline import Pipeline
from interpret import show
from interpret.blackbox import PartialDependence
seed = 42
np.random.seed(seed)
X, y = load_breast_cancer(return_X_y=True, as_frame=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=seed)
pca = PCA()
rf = RandomForestClassifier(random_state=seed)
blackbox_model = Pipeline([('pca', pca), ('rf', rf)])
blackbox_model.fit(X_train, y_train)
pdp = PartialDependence(blackbox_model, X_train)
show(pdp.explain_global(), 0)
更多资源
参考文献
[1] Fabian Pedregosa, Gaël Varoquaux, Alexandre Gramfort, Vincent Michel, Bertrand Thirion, Olivier Grisel, Mathieu Blondel, Peter Prettenhofer, Ron Weiss, Vincent Dubourg 等人。Scikit-learn:Python 中的机器学习。《机器学习研究杂志》,12:2825–2830,2011 年。
[2] Christoph Molnar。《可解释机器学习》。Lulu. com,2020 年。
[3] Jerome H Friedman。《贪婪函数逼近:梯度提升机》。《统计学年鉴》,第 1189–1232 页,2001 年。