作业:参考pdpbox官方文档中的其他类,绘制相应的图,任选即可
1. 安装并导入库
确保安装与文档版本一致的 pdpbox
(此处以 0.3.0
为例):
bash
复制
下载
pip install pdpbox==0.3.0
导入所需库:
python
复制
下载
import pandas as pd from sklearn.ensemble import RandomForestClassifier from pdpbox import pdp, get_dataset, info_plots import matplotlib.pyplot as plt
2. 加载数据并训练模型
使用 pdpbox
内置的 Titanic 数据集:
python
复制
下载
# 获取内置数据集 test_titanic = get_dataset.titanic() titanic_data = test_titanic['data'] titanic_features = test_titanic['features'] titanic_model = test_titanic['rf_model'] # 预训练的随机森林模型
3. 计算交互式部分依赖
选择两个特征(如 Fare
和 Age
)分析其交互作用:
python
复制
下载
# 生成交互式 PDP 数据 interact = pdp.pdp_interact(model=titanic_model,dataset=titanic_data,model_features=titanic_features,features=['Fare', 'Age'] )
绘制热力图
# 绘制交互式热力图
pdp.pdp_interact_plot(pdp_interact_out=interact,feature_names=['Fare', 'Age'],plot_type='contour', # 可选 'grid' 或 'contour'x_quantile=True, # 将 x 轴分位数显示为刻度plot_pdp=True # 叠加显示单变量 PDP
)plt.title('PDP Interaction between Fare and Age')
plt.show()
@浙大疏锦行