从 C5.0 模型导出最后一次试验

Export last trial from C5.0 model

我正在尝试导出由 R 中的 c50 包构建的模型。

我正在使用 partykit 包来提取最后一个试用版,但它 return 不具有相同的拟合值。

我不明白为什么 as.party.c5.0 函数与 C5.0 函数的拟合方式不完全相同。它适用于第一次试用,但不适用于其他试用。

例如:

poc_db<-iris
fullTree_prun_iris_Winow <- C5.0(Species ~ ., data =poc_db, trials = 10,control = C5.0Control(CF = 0.90,noGlobalPruning = FALSE,winnow = T))

cat(fullTree_prun_iris_Winow$output)
-----  Trial 9:  -----
Decision tree:
Petal.Width <= 0.6: setosa (10.5) 
Petal.Width > 0.6:
:...Petal.Width <= 1.7: versicolor (116.3/49.4)
    Petal.Width > 1.7: virginica (22.2)

modParty <- C50:::as.party.C5.0(fullTree_prun_iris_Winow,trial=10)
Fitted party:
[1] root
|   [2] Petal.Width <= 0.6: setosa (n = 50, err = 0.0%)
|   [3] Petal.Width > 0.6
|   |   [4] Petal.Width <= 1.7: versicolor (n = 54, err = 9.3%)
|   |   [5] Petal.Width > 1.7: virginica (n = 46, err = 2.2%)

我们应该为第 4 个节点:... versicolor(116/49)

感谢帮助

第四个节点有 54 个观测值,其中 49 个是杂色的。参见

table(subset(poc_db, Petal.Width > 0.6 & Petal.Width <= 1.7)$Species)
##     setosa versicolor  virginica 
##          0         49          5 

因此,partykit 报告 n = 54err = 9.3% 对应于 5/54C5.0 报告的值是不同的,因为它来自于在多次试验中提升树,而不是仅仅使用一棵树本身。