首页 > 解决方案 > 强制列成为 RandomForest 中的主要拆分列

问题描述

我有各种机构的数据,因此某些机构为我们提供的领域比其他机构更多。这些额外的数据字段似乎与我们试图预测的二元结果具有高度相关性,因此忽略它们不是一种选择。此外,我们不希望建立研究所特定的模型。

我们正在考虑的选项之一是将机构价值作为一个特征包含在内,即单个模型会将其视为主要用于拆分的特征。因此,如果我们想象一个基于树的模型,每个研究所都会在一个模型中拥有自己的树。

我们如何强制一个特征成为主要的分割特征?

标签: classificationh2o

解决方案


这不是你可以用 H2O 的基于树的算法做的事情,而且这些算法并不是为用户决定要分割哪个特征而设计的——这是算法为你计算出来的。

来自 H2O-3 用户指南:

DRF 如何决定拆分哪个功能? 它在导致该点子树中的残差平方和 (RSS) 减少最大的列和级​​别上进行拆分。它考虑算法中可用的所有字段。请注意,任何使用列采样和行采样都会导致每个决策不考虑所有数据点,这是为了生成更健壮的树。为了找到最佳水平,直方图分箱过程用于快速计算每个可能拆分的潜在 MSE。bins 的数量通过用于分类的 nbins_cats、nbins 对(用于构建直方图的 bin 数量,然后在最佳点处拆分)和 nbins_top_level(用于构建的根级别的最小 bin 数量)控制直方图)。然后这个数字将每级减少两倍。

对于 nbins_top_level,更高 = 更精确,但可能更容易过度拟合。更高还需要更多内存,运行时间可能更长。

(GBM 和随机树也是如此,您可以在这里查看:http: //docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/drf.html#extremely-randomized-trees


推荐阅读