Caret使用C5.0方法,如何绘制最终树

时间:2017-09-18 07:57:46

标签: r plot r-caret boosting

我正在使用train package方法= C5.0,并希望将finalModel绘制为树。 生成的树已定义:

The final values used for the model were trials = 15, model = tree and winnow = FALSE.

当我尝试使用情节或拨浪鼓的fancyRplotModel绘制树时,我得到以下错误:

使用情节:

plot(diabetes.c50$finalModel,trials=15)
Error in plot(diabetes.c50$finalModel, trials = 15) : 
  object 'diabetes.c50' not found

使用拨浪鼓:

fancyRpartPlot(diabetes.C50$finalModel,trials=15)
Error in if (model$method == "class") { : argument is of length zero

已定义finalModel:

> diabetes.C50$finalModel

Call:
C5.0.default(x = structure(c(6, 8, 0, 8, 4, 10, 10, 1, 5, 7, 1, 1, 3, 8, 7, 9, 11, 10, 7, 1, 13, 5, 5, 3, 6, 4, 11, 9, 4, 3, 9, 7, 0,
 "outcome", seed = 2187L), .Names = c("subset", "bands", "winnow", "noGlobalPruning", "CF", "minCases", "fuzzyThreshold",
 "sample", "earlyStopping", "label", "seed")), verbose = FALSE)

Classification Tree
Number of samples: 538 
Number of predictors: 8 

Number of boosting iterations: 15 
Average tree size: 12.9 

Non-standard options: attempt to group attributes

1 个答案:

答案 0 :(得分:1)

表示C5.0树的数据结构与表示rpart树的数据结构不同。 Rattle的fancyRpartPlot()假设一个rpart树,因此你得到一个错误(模型类的最近版本的拨浪鼓检查并解释这个错误,而不是用上面无法解释的消息失败)。

你的第一个错误虽然看起来像一个错字,错误信息是自我解释。你的意思是糖尿病。 C 50 $ finalModel而不是糖尿病.c50 $ finalModel(资本C50而不是c50)。