【可解释性机器学习】详解Python的可解释机器学习库:SHAP
import shap
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.inspection import DecisionBoundaryDisplay
from matplotlib import pyplot as plt
# 创建一个随机森林分类器
model = RandomForestClassifier(n_estimators=10, max_depth=3)
# 加载数据
X_train, y_train = shap.datasets.adult()
# 训练模型
model.fit(X_train, y_train)
# 使用SHAP值进行可视化
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_train)
# 绘制单个样本的SHAP值图
shap.summary_plot(shap_values, X_train, plot_type="bar")
# 绘制决策边界
display = DecisionBoundaryDisplay.from_estimator(
model, X_train, response_method="predict_proba",
axis_order=2, cmap=plt.cm.Blues, ax=plt.gca()
)
# 显示图形
plt.show()
这段代码使用了SHAP库来解释一个随机森林模型的预测,并且展示了如何可视化SHAP值以及绘制模型的决策边界。通过使用shap.TreeExplainer
来计算每个样本的SHAP值,并使用shap.summary_plot
来展示SHAP值的总结图。最后,使用DecisionBoundaryDisplay
来绘制模型的决策边界,并通过plt.show()
显示图形。这个例子展示了如何在实践中使用SHAP库来理解和评估机器学习模型的预测。
评论已关闭