在科学工具包-学习新版本,有一个新的功能称为apply()梯度增强。我真的很困惑。
它喜欢facebook使用的方法:GBDT + LR吗?如果剂量,我们如何使它像GBDT + LR一样工作
发布于 2016-01-07 11:14:21
来自Sci-Kit文档
应用(X)将集合中的树应用于X,返回叶指数
该函数将输入数据X,其中的每个数据点(x)将应用于每个非线性分类器树。应用程序之后,数据点x将与其关联--它在每个决策树的最终位置上的叶子。此叶将有其关联的类(如果是二进制的话,则为1 )。
apply(X)返回上述信息,这是[n_samples, n_estimators, n_classes]表单的信息。
因此,apply(X)函数与梯度增强决策树+逻辑回归(GBDT+LR)分类和特征变换方法没有多大关系。它是将数据应用于现有分类模型的函数。
如果我在任何方面误解了你,我很抱歉,尽管你问题中的一些语法/语法错误使你很难理解。
发布于 2017-02-13 13:09:15
应用(X)返回树叶的原始索引,我认为需要将离散索引转换为一种热编码方式,然后执行lr步骤。例如,(X)将返回
[
[[1], [2], [3], [4]],
[[2], [3], [4], [5]],
[[3], [4], [5], [6]]
]其中n_samples = 3、n_estimators=4和n_classes=1。您必须首先知道gbm分类器中使用的每个树的数目。据我们所知,gbm使用sklearn决策树回归器,根据sklearn决策树回归器的应用函数,我们得到:
X_leaves : array_like = n_samples,对于X中的每个数据点X,返回叶x的索引。叶子是在
[0; self.tree_.node_count)内编号的,可能在编号上有空白。
因此,您需要在其他索引中加入零。以上面的例子为例,如果第一棵树有tree_.node_count = 5,那么这三个样本的第一列应该转移到:
[
[0, 1, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 1, 0]
]相应地处理其他列,这样就可以得到所需的内容。希望它能帮到你!
https://stackoverflow.com/questions/34649751
复制相似问题