我正在玩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工作得很好,我只是在玩,只是想尝试各种目标
任何人都可以指出为什么会发生这些警告吗?
答案 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版本,现在工作正常。