函数xgb.plot.tree()不起作用

时间:2017-07-21 09:52:34

标签: r plot xgboost

我正在尝试使用(xgboost)包评估极端渐变提升模型。 在写这个问题之前,我在stackoverflow和其他地方寻找信息,但是我发现的信息并没有解决我的问题。 这些是与我发现的相似的帖子,但它们没有以明确的方式解决:

human readable rules from xgboost in R

xbg.plot.tree() crashes

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)

但是尽管如此,我没有得到图表,这就是结果

enter image description here

在github上,您可以找到可重现的示例:

CreditRiskPrediction

有什么建议吗?

0 个答案:

没有答案