【AI】可解释机器学习6 - RuleFit 算法

1,110 阅读3分钟

「这是我参与2022首次更文挑战的第27天,活动详情查看:2022首次更文挑战」。

在神经网络中有 ReLU 激活函数大名鼎鼎,今天我们来了解 RuleFit 算法,虽然他俩都包含 relu,但是却毫无关系...

RuleFit 简介

RuleFit 算法学习稀疏线性模型,其中包括以决策规则的形式自动检测到的特征间的交互。

RuleFit 学习具有原始特征的稀疏线性模型以及作为决策规则的许多新特征。这些新特征捕获原始特征之间的交互。RuleFit 自动从决策树生成这些特征,将树的每条路径转换为决策规则。节点预测被丢弃,决策规则中仅使用拆分。

任何生成大量树的算法都可以用于 RuleFit,例如随机森林。每棵树都被分解为决策规则,这些规则用作稀疏线性回归模型中的附加特征。

RuleFit 算法

RuleFit 由两个部分组成:

  1. 从决策树创建“规则”
  2. 使用原始特征和新规则作为输入拟合线性模型

步骤1:规则生成

算法生成的规则具有简单的形式。 例如:IF x2 < 3 AND x5 < 7 THEN 1 ELSE 0 。规则是通过分解决策树构建的:树中任何节点的路径都可以转换为决策规则。

步骤2:稀疏线性模型

在步骤1中,我们得到了许多规则。由于步骤1可以被视为只是一个特征转换,我们仍然没有完成模型的拟合。此外,我们还想减少规则的数量。除了规则之外,原始数据集中的所有“原始”特征也将用于稀疏线性模型。

每个规则和每个原始特征都成为线性模型中的一个特征,并获得权重估计。添加原始原始特征是因为树无法表示 yyxx 之间的简单线性关系。 在我们训练稀疏线性模型之前,我们对原始特征进行 Winsorize 化,以便它们对异常值更加稳健:

lj(xj)=min(δj+,max(δj,xj))l_j^*(x_j)=min(\delta_j^+,max(\delta_j^-,x_j))

其中 δj\delta_j^-δj+\delta_j^+ 是特征 xjx_j 的数据分布的 δ\delta 分位数。δ\delta 选择 0.050.05 意味着在最低值的 5%5\% 或最高值的 5%5\% 中的任何特征 xjx_j 值将分别设置为 5%5\%95%95\% 的分位数。根据经验,可以选择 δ=0.025\delta = 0.025

此外,线性项必须归一化,以便它们具有与典型决策规则相同的先验重要性:

lj(xj)=0.4lj(xj)/std(lj(xj))l_j(x_j)=0.4\cdot{}l^*_j(x_j)/std(l^*_j(x_j))

0.40.4 是具有 skU(0,1)s_k\sim U(0,1) 的规则的平均标准偏差。我们将两种类型的特征结合起来生成一个新的特征矩阵,并用 Lasso 训练一个稀疏线性模型,其结构如下:

f^(x)=β^0+k=1Kα^krk(x)+j=1pβ^jlj(xj)\hat{f}(x)= \hat \beta_0 + \sum_{k=1}^K \hat{\alpha}_k r_k(x) + \sum_{j=1}^p \hat{\beta}_j l_j(x_j)

其中 α^\hat{\alpha} 是规则特征的估计权重向量,β^\hat{\beta} 是原始特征的权重向量。

结果是一个线性模型,所有原始特征和规则都具有线性影响。

解释

解释类似于线性模型:对于原始特征,如果所有其他特征保持不变,如果特征 xjx_j 改变一个单位,则预测结果会改变 βj\beta_j。对于决策规制,如果决策规则 rkr_k 的所有条件都适用,则预测结果会改变 αk\alpha_k

对于分类(使用逻辑回归而不是线性回归):如果决策规则 rkr_k 的所有条件都适用,则事件与无事件的几率会以 αk\alpha_k 的系数变化。

优点

RuleFit 可以处理分类和回归任务。

创建的规则易于解释,因为它们是二元决策规则。

RuleFit 自动将特征交互添加到线性模型。 因此,它解决了线性模型需要手动添加交互项的问题,并且对建模非线性关系的问题有所帮助。

缺点

有时 RuleFit 会创建许多在 Lasso 模型中获得非零权重的规则。可解释性随着模型中特征数量的增加而降低。

RuleFit 过程的最终结果是一个具有额外奇特特征(决策规则)的线性模型。 但由于它是一个线性模型,权重解释仍然不直观。