如何对集成树进行解释?(下)

简介: 如何对集成树进行解释?(下)

5、个体条件期望图ICE Plot


个体条件期望图(ICE Plot)计算方法与PDP 类似,个体条件期望图显示的是每一个个体的预测值与单一特征之间的关系。


91.png


由于PDP呈现的是特征对于目标变数的平均变化量,容易使得异质效应(heterogeneous effects)相消,导致PD曲线看起来像是一条水平线,进而以为特征X_2对y毫无影响。因此,可以透过ICE Plot改善PDP的缺点:发现资料中的异质效应


5.1 计算原理


训练好一个模型f̂(假设x₁、x₂、x₃、x₄为特征、目标变数为y),假设我们想探讨的是x₁与y之间的关系,ICE的分析步骤如下:


对某一样本个体,保持其他特征不变,置换x₁的值并且输出模型的预测结果。

不断重复第一个步骤直到所有样本皆完成该步骤。

最后绘制所有个体的单一特征变量与预测值之间的关系图。


5.2 结果解释


92.png


灰黑色线代表的是每个个体对于目标变数的条件期望,红色线则是所有个体的平均水平(也就是PDP)。由于并不是每个个体都有相同的变化趋势,因此与部分相依图相比个体条件期望图能够更准确地反映特征与目标变数之间的关系。


93.png


而个体条件期望图是从不同的预测开始,很难判断个体之间的条件期望曲线(ICE Curve)是否有差异,为了解决上述问题延伸了一个新方法,称作「Centered ICE Plot」。Centered ICE Plot 是将曲线做平移中心化的处理,其目的是为了表示特征在该点时个体间的预测差异。


Centered ICE 曲线则被定义为:


94.png

xᵃ代表的是锚点( the anchor point),通常选择观察值的最小值或最大值做为锚点。


5.3 优缺点汇整

**👍🏻优点:
** 1.容易计算生成
2.解决了PDP资料异质性对结果产生的影响
3.更直观**👎🏻缺点:
** 1.只能展示一个特征与目标变数的关系图
2.具有很强的特征独立性假设
3.如果ICE plot的样本太多会导致折线图看起来非常拥挤凌乱


6 相关工具推荐


6.1 dtreeviz


链接:https://github.com/parrt/dtreeviz

使用demo:

导入所需要的包

from sklearn.datasets import *
from sklearn import tree
from dtreeviz.trees import *


构建回归树

regr = tree.DecisionTreeRegressor(max_depth=2)
boston = load_boston()
regr.fit(boston.data, boston.target)
viz = dtreeviz(regr,
               boston.data,
               boston.target,
               target_name='price',
               feature_names=boston.feature_names)
viz.view()


95.png


构建分类树

classifier = tree.DecisionTreeClassifier(max_depth=2)  # limit depth of tree
iris = load_iris()
classifier.fit(iris.data, iris.target)
viz = dtreeviz(classifier, 
               iris.data, 
               iris.target,
               target_name='variety',
               feature_names=iris.feature_names, 
               class_names=["setosa", "versicolor", "virginica"]  # need class_names for classifier
              )  
viz.view()


96.png


查看预测路径

regr = tree.DecisionTreeRegressor(max_depth=2)  # limit depth of tree
diabetes = load_diabetes()
regr.fit(diabetes.data, diabetes.target)
X = diabetes.data[np.random.randint(0, len(diabetes.data)),:]  # random sample from training
viz = dtreeviz(regr,
               diabetes.data, 
               diabetes.target, 
               target_name='value', 
               orientation ='LR',  # left-right orientation
               feature_names=diabetes.feature_names,
               X=X)  # need to give single observation for prediction
viz.view()


97.png


更多功能 可以参考官方教程


6.2 shap


https://github.com/slundberg/shap


98.png


使用demo

import xgboost
import shap
# load JS visualization code to notebook
shap.initjs()
# train XGBoost model
X,y = shap.datasets.boston()
model = xgboost.train({"learning_rate": 0.01}, xgboost.DMatrix(X, label=y), 100)
# explain the model's predictions using SHAP
# (same syntax works for LightGBM, CatBoost, scikit-learn and spark models)
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)
# visualize the first prediction's explanation (use matplotlib=True to avoid Javascript)
shap.force_plot(explainer.expected_value, shap_values[0,:], X.iloc[0,:])


99.png


红色代表特征越重要,贡献量越大,蓝色代表特征不重要,贡献量低


7 参考资料


相关文章
|
机器学习/深度学习 数据采集 人工智能
掌握随机森林:基于决策树的集成模型
掌握随机森林:基于决策树的集成模型
193 0
|
6月前
|
定位技术
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-3
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
|
6月前
|
机器学习/深度学习 缓存 算法
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-2
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
|
6月前
|
机器学习/深度学习 算法
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-1
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
|
6月前
|
机器学习/深度学习 存储 算法
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
|
6月前
|
数据可视化 Python
Python进行多输出(多因变量)回归:集成学习梯度提升决策树GRADIENT BOOSTING,GBR回归训练和预测可视化
Python进行多输出(多因变量)回归:集成学习梯度提升决策树GRADIENT BOOSTING,GBR回归训练和预测可视化
Python进行多输出(多因变量)回归:集成学习梯度提升决策树GRADIENT BOOSTING,GBR回归训练和预测可视化
基于混沌集成决策树的电能质量复合扰动识别(matlab代码)
基于混沌集成决策树的电能质量复合扰动识别(matlab代码)
|
6月前
|
机器学习/深度学习 算法 数据挖掘
R语言气象模型集成预报:神经网络、回归、svm、决策树用环流因子预测降雨降水数据
R语言气象模型集成预报:神经网络、回归、svm、决策树用环流因子预测降雨降水数据
|
6月前
|
机器学习/深度学习
R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据
R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据
|
机器学习/深度学习
大气臭氧浓度预测:基于集成学习 袋装决策树 额外决策树 随机梯度提升 随机森林的时间序列 大气臭氧浓度预测 完整代码+数据 可直接运行
大气臭氧浓度预测:基于集成学习 袋装决策树 额外决策树 随机梯度提升 随机森林的时间序列 大气臭氧浓度预测 完整代码+数据 可直接运行
60 0