「这是我参与2022首次更文挑战的第27天,活动详情查看:2022首次更文挑战」。
在神经网络中有 ReLU 激活函数大名鼎鼎,今天我们来了解 RuleFit 算法,虽然他俩都包含 relu,但是却毫无关系...
RuleFit 简介
RuleFit 算法学习稀疏线性模型,其中包括以决策规则的形式自动检测到的特征间的交互。
RuleFit 学习具有原始特征的稀疏线性模型以及作为决策规则的许多新特征。这些新特征捕获原始特征之间的交互。RuleFit 自动从决策树生成这些特征,将树的每条路径转换为决策规则。节点预测被丢弃,决策规则中仅使用拆分。
任何生成大量树的算法都可以用于 RuleFit,例如随机森林。每棵树都被分解为决策规则,这些规则用作稀疏线性回归模型中的附加特征。
RuleFit 算法
RuleFit 由两个部分组成:
- 从决策树创建“规则”
- 使用原始特征和新规则作为输入拟合线性模型
步骤1:规则生成
算法生成的规则具有简单的形式。 例如:IF x2 < 3 AND x5 < 7 THEN 1 ELSE 0
。规则是通过分解决策树构建的:树中任何节点的路径都可以转换为决策规则。
步骤2:稀疏线性模型
在步骤1中,我们得到了许多规则。由于步骤1可以被视为只是一个特征转换,我们仍然没有完成模型的拟合。此外,我们还想减少规则的数量。除了规则之外,原始数据集中的所有“原始”特征也将用于稀疏线性模型。
每个规则和每个原始特征都成为线性模型中的一个特征,并获得权重估计。添加原始原始特征是因为树无法表示 和 之间的简单线性关系。 在我们训练稀疏线性模型之前,我们对原始特征进行 Winsorize 化,以便它们对异常值更加稳健:
其中 和 是特征 的数据分布的 分位数。 选择 意味着在最低值的 或最高值的 中的任何特征 值将分别设置为 或 的分位数。根据经验,可以选择 。
此外,线性项必须归一化,以便它们具有与典型决策规则相同的先验重要性:
是具有 的规则的平均标准偏差。我们将两种类型的特征结合起来生成一个新的特征矩阵,并用 Lasso 训练一个稀疏线性模型,其结构如下:
其中 是规则特征的估计权重向量, 是原始特征的权重向量。
结果是一个线性模型,所有原始特征和规则都具有线性影响。
解释
解释类似于线性模型:对于原始特征,如果所有其他特征保持不变,如果特征 改变一个单位,则预测结果会改变 。对于决策规制,如果决策规则 的所有条件都适用,则预测结果会改变 。
对于分类(使用逻辑回归而不是线性回归):如果决策规则 的所有条件都适用,则事件与无事件的几率会以 的系数变化。
优点
RuleFit 可以处理分类和回归任务。
创建的规则易于解释,因为它们是二元决策规则。
RuleFit 自动将特征交互添加到线性模型。 因此,它解决了线性模型需要手动添加交互项的问题,并且对建模非线性关系的问题有所帮助。
缺点
有时 RuleFit 会创建许多在 Lasso 模型中获得非零权重的规则。可解释性随着模型中特征数量的增加而降低。
RuleFit 过程的最终结果是一个具有额外奇特特征(决策规则)的线性模型。 但由于它是一个线性模型,权重解释仍然不直观。