scikitlearn中的apply()函数可以做什么?

2024-06-03 05:44:35 发布

您现在位置:Python中文网/ 问答频道 /正文

在scikit learn new version中,在梯度提升中有一个名为apply()的新函数。我真的很困惑。在

它喜欢facebook使用的方法:GBDT + LR? 如果剂量,我们如何使它像GBDT + LR一样工作?在


Tags: 方法函数newfacebookversionscikitlearn梯度
2条回答

apply(X)返回树叶的原始索引,我认为您需要将离散索引转换为一种热编码样式,然后才能执行lr步骤。 例如,apply(X)将返回

[
 [[1], [2], [3], [4]],
 [[2], [3], [4], [5]],
 [[3], [4], [5], [6]]
]

其中n_样本=3,n_估计量=4,n_类=1。 您必须首先知道gbm分类器中使用的每棵树的数目。众所周知,gbm使用sklearn决策树回归器,根据sklearn决策树回归器的应用函数,我们得到:

X_leaves : array_like, shape = [n_samples,] For each datapoint x in X, return the index of the leaf x ends up in. Leaves are numbered within [0; self.tree_.node_count), possibly with gaps in the numbering.

因此,您需要将零填充到其他索引中。以上例为例,如果第一棵树的tree_u.node_count=5,则三个样本的第一列应转移到:

^{pr2}$

相应地处理其他列,这样就可以得到您想要的。希望它能帮助你!在

来自Sci工具包文档

apply(X) Apply trees in the ensemble to X, return leaf indices

此函数将获取输入数据X,其中的每个数据点(X)将应用于每个非线性分类器树。在应用程序之后,数据点x将与每个决策树的最终叶子相关联。此叶将有其关联的类(如果是二进制,则为1)。在

apply(X)返回上述信息,格式为[n_samples, n_estimators, n_classes]。在

因此,apply(X)函数与梯度增强决策树+逻辑回归(GBDT+LR)分类和特征转换方法没有多大关系。它是将数据应用于现有分类模型的功能。在

很抱歉,如果我误解了你的意思,尽管你问题中的一些语法/语法错误使你更难破译。在

相关问题 更多 >