C5.0增强迭代次数提前停止

时间:2014-06-03 14:11:21

标签: r

我认为这个问题更多地与我不理解的后端操作有关,因为这种行为似乎奇怪,至少对我而言。

当我使用(尽管极端)错误矩阵:

运行C5.0模型时

error_cost <- matrix(c(0, 1, 15, 0), nrow = 2)

和10次试验我得到10次迭代。

如果我在11到100之间的任何地方做同样的事情和试验,它会在7次迭代中提前停止,而输出,而#34;工作&#34;则是垃圾。

如果我将错误矩阵更改为:

error_cost <- matrix(c(0, 1, 4, 0), nrow = 2)

将迭代次数增加到100次,迭代100次(结果非常好)。

显然我的问题在于错误成本,但我只是想了解为什么它会导致它以这种方式运行。虽然这是我正在研究的一个真正的问题,但错误成本和迭代更多的是试图理解幕后发生的事情。

思考?

提前致谢。

完整代码:

library(C50)

model_data_train$Donated <- as.factor(model_data_train$Donated)
model_data_test$Donated <- as.factor(model_data_test$Donated)

error_cost <- matrix(c(0, 4, 1, 0), nrow = 2)

dt_model10 <- C5.0(model_data_train[-113], model_data_train$Donated, 
                   trials = 100, 
                   rules = TRUE, costs = error_cost)

1 个答案:

答案 0 :(得分:0)

如果您在图书馆文档中深入阅读,则可以使用名为earlyStopping的控件功能进行切换:

dt_model10 <- C5.0(model_data_train[-113], model_data_train$Donated, 
               trials = 100, 
               rules = TRUE, 
               costs = error_cost,
               control=C5.0Control(earlyStopping=FALSE))

由@Kenston Choi提及