0

在 scikit-learn 中,可以在多类问题上训练一棵树,并使用 apply() 来输出叶子。它执行标准的普通多类分类(不是 OvR),并将返回一个 Nx1 向量,显示每个输入一个叶子。

但是当我尝试在 XGBoost 中使用 来执行此操作时n_estimators=1,XGBoost 似乎正在为每个类训练一个单独的树。

iris = datasets.load_iris()
X = iris.data
y = iris.target

my_tree = XGBClassifier(objective="multi:softmax", n_estimators=1)
my_tree.fit(X, y)

leaves = my_tree.apply(X)
print(leaves.shape)

返回(150, 3)

有什么方法可以让 XGBoost 使用一棵树进行普通多类分类?

4

0 回答 0