我正在做一个项目。我有一个分类问题,我应该使用梯度提升决策树来解决。我想要做的是创建一个矩阵,为每个样本提供每个决策树的预测。例如,如果我有 100 个样本和 100 棵树,我应该有 100x100 矩阵。i, j th entry给出第i个样本的第j棵树的预测。
我正在使用 sklearn,问题是我无法通过每棵树进行预测。
到目前为止,我尝试过:
newgb=gb.estimators_[0][0].fit(X_train, y_train)
print(newgb.score(X_train, y_train))
其中 gb 已经是一个拟合模型。我从 sklearn 的文档中了解到的
.estimators_
应该返回 (number-of-trees x 1) 矩阵,每个条目都包含我们模型使用的树。通过 gb.estimators_[0][0] 我试图访问第一棵树,并用分数预测它。我得到的输出是:
[0.12048193 0.95 0.95 0.95 0.95 0.95
0.95 0.95 0.95 0.95 0.12048193 0.95
0.95 0.95 0.12048193 0.12048193 0.12048193 0.12048193
...]
它们都不是 1 或 0,应该是(它是二进制分类),并且值会像 0.95 和 0.12 一样重复。我也没有使用任何似然函数
。分数()
应该只给我1和0。
我不知道如何获得每棵树的预测。我也不知道我做错了什么。