对于决策树如何在每个特性中选择特征和阈值来进行拆分,我感到非常困惑。我完全理解所使用的不同的分裂度量(基尼指数等)以及它们是如何工作的。但我的问题是sklearn如何选择特性和阈值来计算这些指标。我仍然不明白如果设置splitter="best"会发生什么:这是否意味着该算法将考虑所有的特性及其所有值,以获得最佳阈值?在这种情况下,max_features属性不会产生任何影响?如果我设置了splitter="random",算法会从特征中随机选择一定数量的特征= m
我正在做一个随机森林实现(用于分类),我还有一些关于文献中提到的树生长算法的问题。当没有更多的功能来分割节点时,停止。当分割树的一个节点时,我随机选择m of M的总特征,然后从这些m特性中发现一个信息增益最大的特征。在我找到这个特性之后,比如f,在继续到节点的子节点之前,我应该从功能列表中删除这个特性吗?如果我在不删除节点上选择的特征的情况下实现该算法,那么停止生长树的唯一方法就是当树的叶子变得“纯净”时。2.在节点拆分时,在选择了要拆分的最佳特征(通过