96SEO 2026-08-02 12:56 1
SHAP是一种模型解释方法用于量化每个特征对模型预测结果的贡献。它的主要来自博弈论中的Shapley 值最早由 Lloyd Shapley 提出,后由 Lundberg & Lee 将其引入机器学习领域。

假设模型为某使用者预测风险分数,所有使用者的平均风险为 b当前使用者的预测为 P。SHAP 要回答:
把模型预测看成 N 个特征合作完成的“游戏”,每个特征是一个玩家。特征 i 的 Shapley 值为:
ϕ_i = Σ_{S⊆F\\{i}}!/ |F|,) ·
说到其中,
F: 所有特征集合;S: 不包含 i 的子集;f: 只使用子集 S 时模型的预测值;f - f: 加入特征 i 后产生的边际贡献。计算特征 A 的 SHAP 值时需要考虑四个子集:
# 子集 {} → 加入 A → diff_1 权重 = 0!·2,/ 3!= 1/3
# 子集 {B} → 加入 A → diff_2 权重 = 1!·1,/ 3!
= 1/6
# 子集 {C} → 加入 A → diff_3 权重 = 1!·1,/ 3!说起来,= 1/6
# 子集 {B。C} → 加入 A → diff_4 权重 = 2!·0,/ 3!= 1/3
SHAP_A = *diff_1 + *diff_2 + *diff_3 + *diff_4
| 性质 | 含义 |
|---|---|
| 效率性 | 所有特征 SHAP 值之和 = 模型预测值 - 基准值。 |
| 对称性 | If two features contribute equally in every coalition。y receive identical SHAP values. |
| 虚拟性 | A feature that never changes prediction gets SHAP value = 0. |
P 为特征数,朴素方法需要遍历 个子集——在实际项目中根本不可行。
Lundberg 等人提出 TreeSHAP。将复杂度从 降至 ,其中:
The core idea is to propagate “subset weights” along each tree path instead of enumerating subsets.
说到gain,├─视角: 树结构
至于├─度量,特征分裂时的信息增益
├─问题这方面,高相关特征会互相抢占关键性
从└─结果来看,全局关键性,无法解释单样本
说到SHAP,├─视角: 单个预测结果
从├─度量来看,特征对该预测值的边际贡献
再看├─优点,合理分摊相关特征贡献
再看└─结果,同时提供全局与单样本解释
pip install xgboost shap matplotlib pandas scikit-learn
import xgboost as xgb
import shap
import numpy as np,pandas as pd,matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
# 示例数据
X,y = make_classification(
n_samples=5000,n_features=15,n_informative=8,random_state=42)
feature_names =
X = pd.DataFrame
X_train,X_test,y_train,y_test = train_test_split(
X,y,test_size=0.2,random_state=42)
model = xgb.XG娱乐lassifier(
n_estimators=200,learning_rate=0.05。max_depth=5,subsample=0.9,colsample_bytree=0.9,eval_metric='auc',early_stopping_rounds=20,random_state=42)
model.fit(
X_train,y_train,eval_set=,verbose=False)
print
explainer = shap.TreeExplainer
shapvalues = explainer.shapvalues
print print的观点是,{explainer.expected_value:.4f}")
sampleidx = 0 predlogit = model.getbooster.predict( xgb.DMatrix,outputmargin=True) shapsum = shapvalues.sum print print
plt.figure) shap.summaryplot( shapvalues,Xtest,plottype='bar',# 条形图展示平均 |SHAP| maxdisplay=15,show=False) plt.title plt.tightlayout plt.savefig plt.show
python
shap.plots.waterfall( shap.Explanation( values = shapvalues,basevalues = explainer.expectedvalue,data = Xtest.iloc,featurenames = featurenames))
shap.forceplot( explainer.expectedvalue。shapvalues,Xtest.iloc,matplotlib=True)
python
shap.dependence_plot(
'feature_0',# 主轴特徵
shap_values,X_test,interaction_index='feature_1',# 自動選擇最強交互或手動指定
show=False)
plt.title
plt.show
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback