如何在scikit-learn中控制随机森林中的特征子集?

时间:2015-07-02 15:12:58

标签: python-3.x scikit-learn random-forest

我正在尝试更改随机森林算法在每个节点的子集化功能中使用的方式。以Scikit-learn方式实现的原始算法是随机分组。我想从几个子集的几个选项中为每个新节点定义哪个子集。 scikit有直接的方法 - 学会控制这种方法吗?如果没有,有没有办法更新相同的Scikit-learn代码?如果是,源代码中的哪个函数是您认为应该更新的?

1 个答案:

答案 0 :(得分:1)

短版:这就是你。

我假设通过“为每个节点分组特征”,您指的是样本子集的随机选择以及用于训练森林中的单个树的可能特征。如果这就是你的意思,那么你就不是在建造一个随机的森林;你想做一个特定树木的非随机森林。

这样做的一种方法是使用您精心指定的功能子集单独构建每个DecisionTreeClassifier,然后使用VotingClassifier将树组合到一个林中。 (该功能仅在0.17 / dev中可用,因此您可能必须构建自己的功能,但构建投票分类器估算器类非常简单。)