Python编程学习第14天打卡记录
今日作业偏思考类型,有一定难度
1. 参考上述文档补全剩余的几个图
2. 尝试确定一下shap各个绘图函数对于每一个参数的尺寸要求,如shap.force_plot力图中的数据需要满足什么形状?
3. 确定分类问题和回归问题的数据如何才能满足尺寸,分类采取信贷数据集,回归采取单车数据集。
1.
决策图
import shap
shap.decision_plot(
base_value=explainer.expected_value, # 基线值
shap_values=shap_values[0, :], # 单个样本的SHAP值
features=X_test.iloc[0, :], # 对应的特征值
feature_names=X_test.columns, # 特征名称
title="预测路径示例"
)
瀑布图
shap.waterfall_plot(
explainer.expected_value, # 基线值
shap_values[0], # 单个样本的SHAP值(形状为(n_features,))
max_display=10 # 显示前10个特征
)
依赖图
shap.dependence_plot(
feature="年龄", # 分析的特征
shap_values=shap_values, # 所有样本的SHAP值
features=X_test, # 所有样本的特征数据
interaction_index="收入" # 可选,分析与另一个特征的交互
)
图像摘要图
# 假设处理图像分类问题,输入数据形状为 (100, 28, 28, 1)
shap.image_plot(
shap_values=shap_values[0], # 单个样本的SHAP值
-X_test[0], # 对应的原始图像数据(负号用于热力图显示)
feature_names=X_test.columns # 可选,特征名称
)
多输出决策图
shap.multioutput_decision_plot(
class_id=0, # 选择第0个输出目标
base_values=explainer.expected_value,
shap_values=shap_values,
features=X_test,
feature_order="importance" # 按特征重要性排序
)
2.
(1) shap.force_plot(力图)
参数形状要求:
shap_values
:形状为 (n_samples, n_features)
的二维数组。
每一行对应一个样本的 SHAP 值(每个特征对预测结果的影响)。
data
:形状为 (n_samples, n_features)
的二维数组。
每一行是原始数据的特征值(与 shap_values
对应)。
features
:特征名称列表(长度为 n_features
)。
(2) shap.summary_plot(摘要图)
参数形状要求:
shap_values
:形状为 (n_samples, n_features)
的二维数组。
features
:形状为 (n_samples, n_features)
的二维数据或 DataFrame。
(3) shap.decision_plot(决策图)
参数形状要求:
base_values
:标量或一维数组(长度为 n_samples
)。
shap_values
:形状为 (n_samples, n_features)
的二维数组。
features
:形状为 (n_samples, n_features)
的二维数据或 DataFrame。
(4) shap.waterfall_plot(瀑布图)
参数形状要求:
shap_values
:形状为 (n_features + 1,)
的一维数组(包含基线值和特征贡献)。
max_display
:可选参数,控制显示的特征数量。
(5) shap.dependence_plot(依赖图)
参数形状要求:
shap_values
:形状为 (n_samples, n_features)
的二维数组。
features
:形状为 (n_samples, n_features)
的二维数据或 DataFrame。
feature
:要分析的特征的索引或名称(单个特征)。
3.
分类问题(信贷数据集)
对于分类问题,数据集通常包含特征和标签。以信贷数据集为例:
特征矩阵:应为二维数组,形状为 (n_samples, n_features)
,其中 n_samples
是样本数量,n_features
是特征数量。
标签:应为一维数组,形状为 (n_samples,)
,表示每个样本的类别(例如,0 或 1)。
确保特征矩阵和标签的样本数量一致。
回归问题(单车数据集)
对于回归问题,数据集同样包含特征和目标值。以单车数据集为例:
特征矩阵:应为二维数组,形状为 (n_samples, n_features)
,其中 n_samples
是样本数量,n_features
是特征数量。
目标值:应为一维数组,形状为 (n_samples,)
,表示每个样本的目标值(例如,单车租赁数量)。
同样,确保特征矩阵和目标值的样本数量一致。
@浙大疏锦行
作者:冰轮a