使用 h2o 实现决策树



我正在尝试使用 h2o 训练决策树模型。我知道 h2o 中不存在特定的决策树库。但是,h2o具有随机森林H2ORandomForest估算器的暗示。我们可以通过调整随机森林的某些输入参数在 h2o 中实现决策树吗?因为我们可以在scikit模块(一个流行的机器学习python库(中做到这一点。

参考链接:为什么具有单个树的随机森林比决策树分类器好得多?

在scikit中,代码看起来像这样

RandomForestClassifier(n_estimators=1, max_features=None, bootstrap=False)

我们在 h2o 中有此代码的等效项吗?

您可以使用H2O的随机森林(H2ORandomForestEstimator(,设置ntrees=1,使其仅构建一棵树,mtries设置为数据集中的特征(即列(数量并sample_rate =1。将mtries设置为数据集中的特征数量意味着算法将从决策树中每个级别的所有特征中随机采样。

以下是有关mtries

的更多信息:http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/mtries.html

补充劳伦的答案:基于 PUBDEV-4324 - 将决策树公开为 H2O 中的独立算法 DRF 和 GBM 都可以完成这项工作,而 GBM 稍微容易一些:

titanic_1tree = h2o.gbm(x = predictors, y = response, 
training_frame = titanicHex,
ntrees = 1, min_rows = 1, sample_rate = 1,            
col_sample_rate = 1,
max_depth = 5,
seed = 1)

在泰坦尼克号数据集上创建一个决策树,深度最多 5 次 (max_depth = 5((可在此处获得:https://s3.amazonaws.com/h2o-public-test-data/smalldata/gbm_test/titanic.csv(

从版本 3.22.0.1 (Xia( 开始,可以从 H2O 模型中提取树结构:

titanicH2oTree = h2o.getModelTree(model = titanic_1tree, tree_number = 1)

最新更新