我对 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。
然后我将 estimators 的数量改为 100,bst.prediction 在一个数据点上仍然需要大约 80us。
是什么导致了这种行为?现在不是应该减少 10 倍的树木吗?