machine-learning - 给定特征数量找到随机森林的最大深度

标签 machine-learning random-forest depth regularized

如果我们知道特征的数量,我们如何找到随机森林的最大深度?

这是正则化随机森林分类器所必需的。

最佳答案

我以前没有考虑过这个问题。一般来说,树是不确定的。而不是问最大深度是多少?您可能想知道平均深度是多少,或者树的深度为 20 的可能性是多少……无论如何,可以计算最大深度的某些界限。因此,节点要么用完(a)袋内样本,要么用完(b)可能的 split 。

(a) 如果袋内样本 (N) 是限制部分,则可以想象一棵分类树,其中除一个样本外的所有样本在每次分割时都向左转发。那么最大深度就是N-1。这种结果的可能性极小,但却是可能的。最小深度树,其中所有子节点都同样大,那么最小深度将是 ~log2(N),例如16,8,4,2,1。实际上,树深度将介于最大和最小之间。控制最小节点大小的设置会减少深度。

(b) 要检查特征是否限制树深度,并且您事先知道训练集,然后计算有多少训练样本是唯一的。唯一样本 (U) 无法拆分。对于每棵树,只会选择大约 0.63 个样本进行 boostrapping。 N~U*0.63。使用 (a) 节中的规则。可以在引导过程中选择所有独特的样本,但这也不太可能。

如果您不知道您的训练集,请尝试估计在 d 个特征中的每个特征 (i) 中可以找到多少个级别 (L[i])。对于分类特征,可以给出答案。对于从真实分布中提取的数字特征,有多少个样本就有多少个级别。可能的唯一样本为 U = L[1] * L[2] * L[3] ... * L[d]。

关于machine-learning - 给定特征数量找到随机森林的最大深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32979660/

相关文章:

kinect - Kinect 如何计算深度?

python - cross_val_score 与 .score 的回归评分结果显着不同

python-3.x - 我们可以对数据集中的 "independent variable"应用特征缩放吗?

machine-learning - 是否有关于解析/解决数学应用题的 ML/NLP 著作/论文?

algorithm - 与神经网络中的几个输出节点相比,具有多个输出节点的优点或缺点是什么

machine-learning - 如何使用整个训练示例来估计 sklearn RandomForest 中的类概率

machine-learning - 用于检测周期性时间序列模式中的异常的随机森林砍伐

opengl - 显示 2 个半透明对象的公共(public)部分?

c++ - 从 C++ 文件写入数据(点云库)

google-app-engine - 谷歌云平台和谷歌机器学习