XGBoost决策树选择

问题描述 投票:1回答:1

我有一个问题,我应该从XGBoost中选择哪个决策树。

我将使用以下代码作为示例。

#import packages
import xgboost as xgb
import matplotlib.pyplot as plt

# create DMatrix
df_dmatrix = xgb.DMatrix(data = X, label = y)

# set up parameter dictionary
params = {"objective":"reg:linear", "max_depth":2}

#train the model
xg_reg = xgb.train(params = params, dtrain = df_dmatrix, num_boost_round = 10)

#plot the tree
xgb.plot_tree(xg_reg, num_trees = n) # my question related to here

我在xg_reg模型中创建了10个树,我可以通过在我的上一个代码中设置n等于树的索引来绘制其中任何一个。

我的问题是:我怎么知道哪棵树能最好地解释数据集?它总是最后一个吗?或者我应该确定要在树中包含哪些功能,然后选择包含这些功能的树?

python decision-tree xgboost
1个回答
0
投票

我的问题是如何才能知道哪棵树最能解释数据集?

XGBoost是Gradient Boosted Decision Trees(GBDT)的一种实现。粗略地说,GBDT是一系列树木,每个树木都使用残余增强来改进先前的预测。因此,最能解释数据的树是n - 1th。

您可以阅读更多关于GBDT here的信息

或者我应该确定要在树中包含哪些功能,然后选择包含这些功能的树?

所有树木都使用相同的基础特征进行训练,只需在每次增强迭代时添加residuals。所以你无法用这种方式确定最好的树。在这个video中,有一个残差的直观解释。

© www.soinside.com 2019 - 2024. All rights reserved.