LightGBM-shap集成模型,回归任务,Python代码 方法本身没有啥可以解释 自带数据集可以直接运行 回归任务,所有图所见即所得,
在数据科学的领域中,回归任务是我们常常需要面对的挑战之一。今天,咱们就来捣鼓捣鼓LightGBM - shap集成模型,看看它在回归任务里能玩出什么花样,并且附上Python代码,让一切所见即所得。
准备工作
首先,我们得把需要的库都装上。这里主要用到lightgbm来搭建模型,shap用于解释模型,还有pandas和matplotlib来处理数据和画图。
import lightgbm as lgb import shap import pandas as pd import matplotlib.pyplot as plt数据集
咱直接用lightgbm自带的数据集,方便又快捷。
# 加载自带数据集 data = lgb.Dataset(lgb.datasets.regression()[0]) X = data.data y = data.label这里我们直接从lgb.datasets.regression()获取数据,然后把特征数据存到X,标签数据存到y。
构建LightGBM模型
# 划分训练集和测试集 from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 定义LightGBM参数 params = { 'objective':'regression', 'learning_rate': 0.1, 'num_leaves': 31 } # 训练模型 gbm = lgb.train( params, lgb.Dataset(X_train, label=y_train), num_boost_round=100, valid_sets=[lgb.Dataset(X_test, label=y_test)], early_stopping_rounds=10 )在这部分代码里,先用traintestsplit把数据集分成训练集和测试集。接着定义了一些LightGBM的参数,像objective指定为回归任务,learningrate是学习率,numleaves是叶子节点数。然后用这些参数和训练数据来训练模型,同时指定了验证集,设置了提前停止的轮数。
使用SHAP解释模型
# 计算SHAP值 explainer = shap.TreeExplainer(gbm) shap_values = explainer.shap_values(X_test) # 绘制SHAP摘要图 shap.summary_plot(shap_values, X_test, plot_type="bar") plt.show()shap.TreeExplainer是专门为树模型计算SHAP值的,这里就用它来解释我们训练好的LightGBM模型。算好SHAP值后,用shap.summary_plot画个摘要图,能直观看到每个特征对模型输出的影响。这个图能让我们快速了解哪些特征在模型里更重要。
模型预测与评估
# 模型预测 y_pred = gbm.predict(X_test) # 评估模型 from sklearn.metrics import mean_squared_error mse = mean_squared_error(y_test, y_pred) print(f"Mean Squared Error: {mse}")最后,用训练好的模型对测试集进行预测,再用均方误差(MSE)来评估模型的性能。通过这些步骤,咱们就完成了一个基于LightGBM - shap集成模型的回归任务,从数据准备到模型评估,所见即所得。希望大家能从这个小例子里对LightGBM - shap在回归任务中的应用有更清晰的认识。