我正在做一个随机森林实现(用于分类),我还有一些关于文献中提到的树生长算法的问题。
在训练决策树时,有两个条件可以停止生长一棵树:
当没有更多的功能来分割节点时,停止。
当节点中包含属于同一类的所有样本时,停止。
基于此,
1.考虑在森林里种一棵树。当分割树的一个节点时,我随机选择m of M的总特征,然后从这些m特性中发现一个信息增益最大的特征。在我找到这个特性之后,比如f,在继续到节点的子节点之前,我应该从功能列表中删除这个特性吗?如果我不删除这个特性,那么这个特性可能会在树下再次被选中。
如果我在不删除节点上选择的特征的情况下实现该算法,那么停止生长树的唯一方法就是当树的叶子变得“纯净”时。当我这样做时,我得到了Python中的“最大递归深度”达到了错误,因为树之前无法达到“纯”条件。
射频文献,甚至是Breiman写的文献都说,这棵树应该最大限度地生长。这是什么意思?
2.在节点拆分时,在选择了要拆分的最佳特征(通过信息增益)之后,应该以什么为阈值进行拆分?一种方法是没有阈值,为每个特性的唯一值创建一个子节点;但是我也有连续值的特性,所以这意味着每个示例创建一个子节点!
发布于 2016-03-18 10:21:55
Q1
Q2
https://stackoverflow.com/questions/36081370
复制相似问题