【SHAP解释运用】基于python的树模型特征选择+随机森林回归预测+SHAP解释预测
import numpy as np
import shap
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_boston
from sklearn.ensemble import RandomForestRegressor
# 加载波士顿房价数据集
data = load_boston()
X, y = data.data, data.target
# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=13)
# 初始化随机森林模型
rf = RandomForestRegressor(n_estimators=100, random_state=13)
# 训练模型
rf.fit(X_train, y_train)
# 进行预测
y_pred = rf.predict(X_test)
# 计算SHAP值
explainer = shap.TreeExplainer(rf)
shap_values = explainer.shap_values(X_test)
# 打印模型的重要特征
for i in range(len(X_test)):
print("样本", i, "的特征重要性:")
print(explainer.shap_values(X_test[i, :])[1])
# 打印模型的预测值和真实值
print("模型预测值:", y_pred)
print("真实值:", y_test)
这段代码使用了shap
库来解释一个基于随机森林的回归模型在波士顿房价数据集上的预测结果。首先加载数据集,划分为训练集和测试集,然后初始化并训练随机森林模型,接着使用shap.TreeExplainer
来计算SHAP值,并打印出每个样本的特征重要性。最后,打印出模型的预测值和真实值。这个过程有助于理解模型是如何预测的,并评估模型的可解释性。
评论已关闭