深入探索Catboost模型可解释性(下)

2019年07月16日 由 sunlei 发表 954661 0
在昨天的内容中,我们看到catboost如何帮助我们分析模型,今天我们继续更新,希望能帮助你更好地使用这些工具去开发模型。

传送门:https://www.atyun.com/?p=42039&preview=true

交互


通过这个参数,您可以找到一对特性的强度(两个特性的重要性)。



在输出中,您将得到每对特性的列表。列表将有3个值,第一个值是该对中第一个特性的索引,第二个值是该对中第二个特性的索引,第三个值是该对的特性重要性得分。具体实施请查看嵌入式笔记本。



有趣的是,在单一功能重要性中,前两个功能不一定会成为最强的一对。

笔记本


笔记本中使用的数据集


对象重要性


你为什么要知道?

  • 从训练数据中删除最无用的训练对象

  • 将一批新对象按优先级排列,以便根据哪些对象最有帮助进行标记,类似于主动学习。


使用此功能,您可以计算每个对象对测试数据优化指标的影响。正值表示优化指标增加,负值表示优化指标减少。该方法是本文所描述方法的一个实现。这些算法的细节超出了本文的范围。

Catboost对象重要性教程


cb.get对象重要性中有三种更新方法:

  • SinglePoint:最快最不准确的方法

  • TopKLeaves:指定叶数。数值越大,计算越精确,速度越慢

  • AllPoints:最慢最准确的方法


例如,下面的值将方法设置为TopKLeaves,并将叶子的数量限制为3:
TopKLeaves:top=3

模型分析情节


CatBoost最近在其最新更新中启动了此功能。有了这个特性,我们将能够可视化算法是如何分割每个特性的数据的,并查看特性特定的统计信息。更具体地说,我们将能够看到:

  • 每个容器(容器用于连续特征)或类别的平均目标值(目前仅支持OHE特征)

  • 每个容器/类别的平均预测值

  • 每个容器中的对象数

  • 对不同特征值的预测:对于每个对象,特征值都是不同的,因此它会落入某个容器中。然后,该模型根据该特性的新值预测目标,并取一个容器中预测的平均值(由红点给出)。


这个图会给我们提供信息,比如我们的分割有多均匀(我们不希望所有的物体都放在一个容器里),我们的预测是否接近目标(蓝色和橙色的线),红线会告诉我们预测对某个特征有多敏感。

数值特性分析



一组热编码特征分析




感谢您阅读本文。希望下次您能够使用这些工具更好地开发您的模型。
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
写评论取消
回复取消