R xgboost,伽玛回归问题

时间:2016-10-26 14:02:59

标签: r xgboost

我正在玩xgboost,有一些财务数据,并想尝试以伽玛回归为目标。

cvs <- xgb.cv(data = sparse_matrix, label = target, nfold = 10, nthread = 4, nround = 16, objective = "reg:gamma", metrics = list("mae"))

但这似乎比使用线性回归作为目标需要更长的时间。

并且还会发出以下警告:

In foldVector[which(y == dimnames(numInClass)$y[i])] <- sample(seqVector) :
  number of items to replace is not a multiple of replacement length

此警告重复约50次。

发生了什么事?我不应该使用reg:gamma作为目标,因为reg:linear工作得很好,我只是在玩,只是想尝试各种目标

任何人都可以指出为什么会发生这些警告吗?

2 个答案:

答案 0 :(得分:0)

我的回答有点晚,但可能有助于其他人。我对reg:logistic目标有同样的问题,我解决它的方法是在stratified=FALSE中设置xgb.cv

根据xgboost文档,分层是一个布尔值,表示折叠的采样是否应按结果标签的值进行分层。

答案 1 :(得分:0)

我不知道我是否迟到了,但我遇到了类似的问题。问题确实存在两个不同版本的XGBoost。一个用R 3.3.2运行,另一个用R 3.4.3运行 因此,与R 3.4.3兼容的XGBoost软件包中包含“reg:gamma”功能。 我安装了R 3.4.3版本,现在工作正常。