xgboost 的哪些功能受种子(random_state)影响?

jor*_*mit 5 python numpy random-seed xgboost

Python API中没有给出比其他更多的信息seed=参数传递到numpy.random.seed

种子int)– 用于生成折叠的种子(传递给 numpy.random.seed)。

但是有什么xgboost使用特点numpy.random.seed呢?

  • xgboost即使在更改种子时,使用所有默认设置运行仍会产生相同的性能。
  • 我已经能够验证colsample_bytree这样做了;不同的种子产生不同的性能。
  • 有人告诉我它也被subsample和其他colsample_*功能使用,这似乎是合理的,因为任何形式的采样都需要随机性。

xgboost依赖的其他功能是什么numpy.random.seed

Ser*_*nov 6

提升树按顺序生长,一次迭代内的树生长分布在线程之间。为了避免过度拟合,通过以下参数引入随机性:

\n
    \n
  • colsample_bytree
  • \n
  • colsample_bylevel
  • \n
  • colsample_bynode
  • \n
  • subsample(注意*sample*图案)
  • \n
  • shuffle在 CV 文件夹创建中进行交叉验证
  • \n
\n

此外,你可能会在以下地方遇到非确定性,不受随机状态控制:

\n
\n

由于浮点求和的非关联性,[GPU] 直方图构建不是确定性的。

\n
\n
\n

将 GBLinear Booster 与 Shotgun 更新程序一起使用是不确定的,因为它使用 Hogwild 算法

\n
\n
\n

当使用 GPU 排名目标时,由于浮点求和的非关联性,结果是不确定的。

\n
\n

评论回复:你怎么知道这个?

\n

知道这一点很有帮助:

\n
    \n
  1. 了解树木的生长方式:Demystify Modern Gradient Boosting Trees(参考文献也可能有帮助)

    \n
  2. \n
  3. 扫描文档全文以获取感兴趣的术语:randomsampledeterministicdeterminism

    \n
  4. \n
  5. 最后(首先?),了解为什么需要从袋装树( Leo Breiman 的随机森林)和神经网络( Fran\xc3\xa7ois Chollet 的Python 深度学习,关于过度拟合的章节)等对应物中进行采样和类似案例也可能会有所帮助。

    \n
  6. \n
\n