R中xgboost,gamma回归存在的问题

3

我正在尝试使用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

我的回答有点晚,但可能对其他人有所帮助。我在使用reg:logistic目标函数时遇到了相同的问题,解决方法是在xgb.cv中设置stratified=FALSE

根据xgboost文档,stratified是一个布尔值,表示是否按照结果标签的值进行分层抽样。


0

我不知道我是否晚了,但我遇到了类似的问题。问题实际上是XGBoost有两个不同的版本。一个是与R 3.3.2兼容的版本,另一个是与R 3.4.3兼容的版本。因此,与R 3.4.3兼容的XGBoost软件包具有“reg:gamma”功能。我安装了R 3.4.3版本,现在它可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接