简短版:我正在寻找可以构建决策树的R包,而决策树中的每个叶子都是完整的线性回归模型。AFAIK,该库rpart
创建决策树,其中因变量在每个叶子中都是恒定的。是否存在rpart
可以构建此类树的另一个库(或我不知道的设置)?
加长版:我正在寻找一种基于训练数据集构建决策树的算法。树中的每个决策根据自变量之一的条件将训练数据集分为两部分。树的根包含完整的数据集,并且数据集中的每一项仅包含在一个叶节点中。
该算法如下所示:
- 从完整的数据集开始,该数据集是树的根节点。选择这个节点,并调用它。
- 在的数据上创建线性回归模型。
- 如果的的线性模型比某个阈值更高,那么我们已处理完毕的,所以标记作为叶并跳转到步骤5。
- 尝试随机决策,然后选择在子节点中产生最佳决策:
- 选择一个随机独立变量,以及一个随机阈值θ 我。
- 决定拆分所述数据集的Ñ成两个新节点,Ñ和〜Ñ。
- 创建两个线性回归模型Ñ和〜Ñ,并计算它们的- [R 2(它们调用ř和〜- [R )。
- 从所有这些元组(v 我,θ 我,- [R , 〜 - [R )中,选择一个具有最大米我Ñ ([R , 〜 - [R )。 这就产生了树一个新的决定,并ñ有两个新的子节点ñ和〜ñ。
- 我们已经完成了处理。选择一个尚未处理的新节点N,然后返回步骤2。如果所有节点均已处理,则算法结束。
这将以递归方式建立决策树,将数据分成较小的部分,并在每个部分上计算线性模型。
步骤3是退出条件,可以防止算法过度拟合。当然,还有其他可能的退出条件:
- 出口如果的树中的深度为上述θ d Ë p 吨ħ
- 出口如果在数据集中小于θ d 一吨一个小号ë 吨
R包中有这样的算法吗?