我正在尝试使用(xgboost)
包评估极端渐变提升模型。
在写这个问题之前,我在stackoverflow和其他地方寻找信息,但是我发现的信息并没有解决我的问题。
这些是与我发现的相似的帖子,但它们没有以明确的方式解决:
human readable rules from xgboost in R
Why is xgboost not plotting my trees?
我的问题是函数xgb.plot.tree
,我使用xgboost()
函数构建了我的极端渐变增强模型,我创建了一个矩阵,显示了xgb.importance()
模型中特征的重要性,但是当我尝试绘制一个增强树模型,函数崩溃。
在我的R代码下面:
model_xgb <- xgboost(data=dtrain$data,
label=dtrain$label,
booster="gbtree",
max_depth=6,
eta=0.3,
nthread=2,
nrounds = 150,
verbose=0,
eval_metrics=list("error"),
objective="binary:logistic")
# Calculate feature importance
imp <- xgb.importance(feature_names=dtrain$data@Dimnames[[2]],
model=model_xgb)
print(imp)
# Display tree number 1
xgb.plot.tree(feature_names=dtrain$data@Dimnames[[2]],
model=model_xgb,
n_first_tree=1)
根据@ArriveW的回答,我添加了函数xgb.dump()
,我修改了我的代码如下:
dump_xgb <- xgb.dump(model = model_xgb)
xgb.plot.tree(feature_names=dtrain$data@Dimnames[[2]],
model=model_xgb,
n_first_tree=5)
但是尽管如此,我没有得到图表,这就是结果
在github上,您可以找到可重现的示例:
有什么建议吗?