在XGBoost 4J Spark中训练随机森林

问题描述

在使用XGBoost Spark 4J训练随机森林时如何传递num_parallel_tree参数?

参考Random Forests in XGBoost

之后,我做了以下操作
    val hyperParams = Map(
       "booster" -> "gbtree","objective" -> "binary:logistic","evalMetric" -> "logloss","num_parallel_tree" -> 100)

    val xGBoostClassifier = new XGBoostClassifier(hyperParams)
      .setFeaturesCol(vectorAssembler.getOutputCol)
      .setLabelCol(labelColumnName)
      .setNumRound(1)

但是最终模型只有一棵树。似乎根本没有使用num_parallel_tree参数。 即使是显示所有正在使用的超参数的XGBoost库的日志,也不会显示num_parallel_tree

我们正在将XGBoost版本1.0.0与spark 2.4.2一起使用。

解决方法

最终模型是1棵树。实际上这是很复杂的东西,但是您将不同的树合并为最终的树。重点是训练不同的树,并以某种方式得出更好的最终树。

请参见https://www.knime.com/blog/from-a-single-decision-tree-to-a-random-forest

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...