免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

第三讲特征工程补充(SHAP特征重要性分析)

第三讲特征工程补充(SHAP特征重要性分析) 🔍 SHAP特征重要性分析 — 供应链预测项目的深度实战解析定位:第三章特征工程的核心补充章节主题:不是教你"怎么跑SHAP"(文档都有),而是讲"SHAP在真实项目中怎么用、怎么踩坑、怎么跟业务方讲"项目背景:家电集团 · LightGBM模型 · 180个特征 · 3000+ SKU一、为什么SHAP在供应链项目中不可或缺1.1 我的心路历程:从"不想做"到"离不开"第一年(2019):老板说"做个特征重要性分析",我跑了一下LightGBM自带的feature_importance(type='gain'),画了个柱状图交差。被打脸的时刻:业务方看完问——“你说促销深度很重要,那具体是促销深度大的时候预测偏高还是偏低?偏多少?对所有品类都一样吗?”我答不上来。因为gain只告诉你"模型用了这个特征多少",不告诉你方向和幅度。第二年(2020):引入SHAP。从此我汇报PPT里的"特征分析"再也不是一张简单的柱状图,而是能回答:这个特征对预测的影响是正向还是负向?影响的幅度有多大?在什么条件下影响最大?对哪些SKU影响最大?现在:SHAP已经不仅仅是"分析工具",它成了我和业务方沟通的语言。当计划经理质疑"为什么这个SKU预测突然涨了30%"时,我可以用SHAP force plot精确告诉他每个因素贡献了多少。1.2 SHAP vs 其他重要性方法SHAP-理论最优SHAP Values方向性:正/负影响样本级:每条数据单独解释加性:各特征贡献之和=预测值一致性:数学证明唯一公平分配传统方法-有缺陷Gain重要性偏向高基数特征Split重要性偏向连续特征Permutation重要性相关特征互相干扰对比表:方法全局重要性方向信息样本级解释计算速度数学保证Gain (LightGBM自带)✅❌❌极快❌Split (分裂次数)✅❌❌极快❌Permutation✅❌❌慢❌SHAP (TreeExplainer)✅✅✅中等✅ (Shapley值)💡一句话总结:Gain/Split告诉你"模型看了什么",SHAP告诉你"模型看了什么、往哪个方向看、看了多远、对谁这么看"。二、SHAP在家电预测项目中的五种核心用法2.1 用法一:全局特征重要性排名最基础的用法—— 所有样本的SHAP绝对值取平均,得到全局重要性排名。importshapimportlightgbmaslgbimportnumpyasnpimportpandasaspd# 训练模型model=lgb.LGBMRegressor(n_estimators=800,learning_rate=0.05,max_depth=7,num_leaves=63,subsample=0.8,colsample_bytree=0.8)model.fit(X_train,y_train)# 计算SHAP值(TreeExplainer对树模型有精确解)explainer=shap.TreeExplainer(model)shap_values=explainer.shap_values(X_test)# shape: (n_samples, n_features)# 全局重要性global_importance=pd.DataFrame({'feature':X_test.columns,'mean_abs_shap':np.abs(shap_values).mean(axis=0)}).sort_values('mean_abs_shap',ascending=False)我们项目的真实Top20结果:SHAP全局特征重要性Top10lag1wlag52wrmean4seasonpromodepthtemptrendyoystd4w200180
返回列表