我在spark(scala api)中使用xgboost。我使用以下参数训练我的模型:
val params = List("eta" -> "0.1", "max_depth" -> "2",
"silent" -> "1", "objective" -> "binary:logistic").toMap
XGBoost.train(trainRDD, params, 10, 10)
然后它提供两个predict
评分功能。一个采用DMatrix
并在驱动程序(本地)中运行,另一个采用RDD[Vector]
并以分布式模式运行。
对于相同的测试数据集,这两个函数返回不同的值:在本地操作的函数返回的值如-1.23或1.34,但另一个返回0.21或0.71。看起来第二个返回介于0和1之间的概率,但第一个返回其他东西。
有人可以详细说明这个吗?
答案 0 :(得分:1)
我发现了这个问题。 predict
函数在本地运行输出边距值。这意味着,我们需要对这些值应用逻辑变换以获得概率。