xgboost - 使用 xgboost 预测 100 棵树与 1000 棵树所花费的时间相同
问题描述
我对 xgboost 包的性能感到困惑。
我首先用 1000 棵树训练:
num_classes = 2
X = np.random.rand(10000, 200)
y = np.random.randint(num_classes, size=10000)
dtrain = xgb.DMatrix(X, label=y)
dtest = xgb.DMatrix(X, label=y)
param = {
'max_depth' : 10,
'eta' : 0.1,
'silent': 1,
'objective':'reg:squarederror',
'nthread': 4
}
bst = xgb.train( param, dtrain, 1000,
[(dtest, 'eval'), (dtrain, 'train')] )
在一个数据点上使用 bst.predict 在 bst 上运行预测大约需要 80us。
然后我将估计器的数量更改为 100,并且 bst.prediction 在一个数据点上仍然需要大约 80us。
是什么导致了这种行为?它现在不应该需要少 10 倍的树吗?
解决方案
推荐阅读
- google-cloud-run - 启用 Google Cloud Run 分块编码
- .net - 数据在 URL 中合并的加密激活链接
- c++ - 移动构造函数被再次调用c ++
- postgresql - 由于货币格式不同,无法使用相同版本的 postgres 将备份从 postgres 导入到不同的服务器
- ruby-on-rails - fe_sendauth:使用带有 docker 的 rails 时没有提供密码
- sql-server - 从与关键字匹配的 XML 中检索标签名称
- php - 将多个时间戳组合到数组中的月份 - PHP
- python - 如何修复我的结果被 tensorflow 和 matplotlib 覆盖?
- macos - FileVault:在备份历史记录中查看是否已打开
- javascript - 模板继承:通过单击选项卡(Django,Bootstrap)更改导航选项卡活动选项卡和 URL