Skope-Rules流程解析

前段时间研究XAI时接触了skope-rules这个库,这是个建立在sklearn基础上的可自动产生规则的库,这里总结一下其生成规则的流程

Skope-Rules流程

项目地址

GitHub
参考文献
首先看GitHub上提供的流程图:
流程图
可以看到实际上这个算法有三个阶段,本文也就按阶段划分叙述这个算法。

阶段一:规则生成

skope-rules实际上是一个建立在集成树模型基础上的规则抽取器,因为树模型的决策过程天生具备可解释性。
在skope-rules的实现中,使用的基础模型是sklearn中实现的DecisionTreeClassifier, DecisionTreeRegressor。集成方式为Bagging。

第一阶段,首先从集成的树模型中产生大量规则:
Stage1
我们知道,决策树每一个节点意味着要选择一个属性进行节点的分裂。因此,从根节点到某一个子节点可以看成是一个决策流程,也就是一条规则,形如:

if 
#每一个节点的划分规则
feature1 > val_1 and feature2 <= val_2 and feature and feature3 > val_3 
then
#当前样本所在节点的标签(分类任务)/值(回归任务)
class_node /class_val

在阶段一中,每一个基学习器的每一个节点都会视作一条规则,并将其保存下来,待后续处理。

阶段二:规则初步筛选

Stage2
阶段一中产生了许多规则,但很明显其中有许多规则是需要筛选的,因为此时每一个结点的规则都被保存了下来,那些划分效果不佳的规则会在这一步被过滤,阶段二中,使用OOB产生Precision以及Recall对规则进行筛选,OOB即包外估计,在进入模型的数据中会有一部分不参与训练,用作该步的评估集,根据我们传递的参数,Precison/Recall会有一个最低的阈值,只有那些在OOB中达到了阈值的规则才会在这一步中得到保留,两个阈值是“且”的关系,即Precision/Recall需要同时满足。

阶段三:规则的语义去重

最后一个阶段是对规则的语义进行去重,这一步骤的作用是保持规则的多样性。在库的设计思想简介中是这么说的:

A similarity filtering is applied to maintain enough diversity among the rules. The similarity measure of two rules is based on the number of their common terms. A term is a variable name combined with a comparison operator (< or >).

也就是说两条规则的相似程度是通过比较两者相同的项数来得到的,一项包括一个属性以及一个比较运算符,例如:

#Rule1
if
feature_1 > a and feature_2 <= b and feature_3 > c
then
class_1

#Rule2
if
feature_1 < a and feature_2 <= b and feature_3 > c and feature_4 <= d
then
class_2

#两条规则相同项数量为2,即 "feature_2 <= b" ,"feature_3 > c"

在算法中,去重时每一次选择的属性是当前规则集合中出现频数最高的属性,以下图为例:
stage3
此处展示的为去重深度(模型参数),为2的时候的去重树,Var0为当前规则中频数最高的规则,节点分裂时将规则分为三个分支,分别为,包含"Var0 <= ",包含"Var0 >"以及不包含该属性三个节点,对应分支中的节点中为包括这些项的规则,而在子节点中,又在各自对应的规则集合中选择出现频数最高的属性进行节点分裂。最后到达去重深度后,每一个叶子节点都将是一种特定类别的规则集合,我们最后选择每一个叶子节点规则集合中F1-Score最高的规则作为保留的规则并返回。

这样,经过三个阶段我们就得到了有一定说服力且具备多样性的规则集合。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值