Я выполнил модель XGBoost, используя набор данных с 21 классом, поэтому применяется приведенный ниже код

#machine-learning #decision-tree #xgboost

Вопрос:

Я выполнил модель XGBoost, используя набор данных с 21 классом, поэтому применяется приведенный ниже код

 model= xgb.XGBClassifier(objective='multi:softmax',num_class=21,use_label_encoder=False,n_estimators=100,learning_rate=0.1, max_depth=5, eval_metric='merror')
model.fit(X_train, y_train)
ypred = model.predict(X_test)
dump_list = model.get_booster().get_dump()
num_trees = len(dump_list)
print(num_trees)
fig, ax = plt.subplots(figsize=(10, 10))
xgb.plot_tree(model, num_trees=1, ax=ax,fmap='')
plt.show()
 

Результат num_trees составил 2100, а plot_tree визуализирует только определенные деревья (0-2099) без указания поддерева индексов, как в модели GBM, как показано ниже

 sub_tree = gbm.estimators_[1, 0]
 

Так как же я могу узнать эти деревья? Другими словами, могу ли я рассматривать первые 21 дерево как поддеревья для первой оценки, следующие 21 поддеревья для второй оценки и так далее? Спасибо