繁体   English   中英

XGBoost决策树选择

[英]XGBoost decision tree selection

我有一个问题,我应该从XGBoost选择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设置为等于树的索引来绘制其中的任何一棵。

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

我的问题是我如何知道哪棵树最能说明数据集?

XGBoost是梯度增强决策树(GBDT)的实现。 粗略地说,GBDT是一棵树序列,每棵树都使用残差增强来改善对前一棵树的预测。 因此,最能解释数据的树是n - 1

您可以在此处阅读有关GBDT的更多信息

还是应该确定要包含在树中的要素,然后选择包含要素的树?

所有树都以相同的基本特征进行训练,它们只会在每次增强迭代时添加residuals 因此,您无法以这种方式确定最佳树。 在此视频中,直观地介绍了残差。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM