首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机林木生长算法

随机林木生长算法
EN

Stack Overflow用户
提问于 2016-03-18 10:00:46
回答 1查看 613关注 0票数 2

我正在做一个随机森林实现(用于分类),我还有一些关于文献中提到的树生长算法的问题。

在训练决策树时,有两个条件可以停止生长一棵树:

当没有更多的功能来分割节点时,停止。

当节点中包含属于同一类的所有样本时,停止。

基于此,

1.考虑在森林里种一棵树。当分割树的一个节点时,我随机选择m of M的总特征,然后从这些m特性中发现一个信息增益最大的特征。在我找到这个特性之后,比如f,在继续到节点的子节点之前,我应该从功能列表中删除这个特性吗?如果我不删除这个特性,那么这个特性可能会在树下再次被选中。

如果我在不删除节点上选择的特征的情况下实现该算法,那么停止生长树的唯一方法就是当树的叶子变得“纯净”时。当我这样做时,我得到了Python中的“最大递归深度”达到了错误,因为树之前无法达到“纯”条件。

射频文献,甚至是Breiman写的文献都说,这棵树应该最大限度地生长。这是什么意思?

2.在节点拆分时,在选择了要拆分的最佳特征(通过信息增益)之后,应该以什么为阈值进行拆分?一种方法是没有阈值,为每个特性的唯一值创建一个子节点;但是我也有连续值的特性,所以这意味着每个示例创建一个子节点!

EN

回答 1

Stack Overflow用户

发布于 2016-03-18 10:21:55

Q1

  • 您不应该从M中删除这些特性,否则它将无法检测到某些类型的关系(例如:线性关系)。
  • 也许你可以早点停下来,在你的情况下,它可能上升到只有一个样本的叶子,这将没有统计学意义。所以最好停下来,当叶子上的样本数是<= 3时

Q2

  • 对于连续的特性,您可以将它们放入组中,并使用它们来计算出一个分裂点。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36081370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档