lightgbm中的pred_leaf参数

3

在阅读LightGBM文档时,我发现predict支持一个pred_leaf参数。文档中提到:

pred_leaf (bool, optional (default=False)) – Whether to predict
leaf index.

然而,当进行

data := (1, 28)
gbm := num_boost_round = X

embedding = gbm.predict(data, pred_leaf=True)
embedding.shape  # [1, X]
print(embedding[0, :])  # [29,  2,  8, 26,  2,  2, 16, 18, 25, 30, 16, 25,  0, 17, 15]

我不明白为什么它输出一个填充的数组,而不是一个one-hot向量或标量值?它说它预测叶子索引?这可以用作嵌入到另一个模型中吗?
附:我想在stats-stackexchange上发布此内容,但似乎这是1)特定于lightgbm和2)他们没有lightgbm标签。
1个回答

2
使用 pred_leaf 参数调用 LightGBM 的 predict 函数的输出结果是一个形如 (nsample, ntrees) 的 int32 类型数组。
矩阵中的每个整数条目表示每个树中每个样本的预测叶子索引。
由于每棵树的叶子索引是唯一的,您可能会在许多不同的列中找到相同的叶子编号。
就其行为而言,此 LightGBM 预测函数模仿了 XGBoost 中存在的类似函数(https://xgboost.readthedocs.io/en/latest/python/python_api.html)。

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