首页 > 解决方案 > 使用 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 倍的树吗?

标签: xgboost

解决方案


推荐阅读