代码之家  ›  专栏  ›  技术社区  ›  liyuhui

如何在h2o中使用决策树算法?

  •  0
  • liyuhui  · 技术社区  · 6 年前

    我正在尝试使用h2o训练一个决策树模型。我知道h2o中没有特定的决策树库。

    这是我在h2o中使用GBM算法时的代码,但我可以像这样使用决策树。因为h2o中没有决策树代码。

    GBMParametersV3 gbmParams = new GBMParametersV3();
    gbmParams.trainingFrame = H2oApi.stringToFrameKey("train");
    gbmParams.validationFrame = H2oApi.stringToFrameKey("test");
    
    ColSpecifierV3 responseColumn = new ColSpecifierV3();
    responseColumn.columnName = ATT_LABLE_IRIS;
    gbmParams.responseColumn = responseColumn;
    
    GBMV3 gbmBody = h2o.train_gbm(gbmParams);
    ...
    

    那么,如何在h2o中使用决策树算法呢?

    1 回复  |  直到 6 年前
        1
  •  0
  •   topchef    6 年前

    基于 PUBDEV-4324 - Expose Decision Tree as a stand-alone algo in H2O 最直接的方法是使用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)