我认为这个问题与后端操作有更多的关系,但我不明白,因为这种行为看起来很奇怪,至少对我来说是这样。
当我运行一个C5.0模型时,其错误矩阵(尽管是极端的)为:
error_cost <- matrix(c(0, 1, 15, 0), nrow = 2)
10次试验,我得到10次迭代。
如果我做同样的事情,并且在11到100之间的任何地方进行试验,它会在7次迭代时提前停止,而输出“工作”则是垃圾。
如果将错误矩阵更改为:
error_cost <- matrix(c(0, 1, 4, 0), nrow = 2)
将迭代次数增加到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)发布于 2016-03-17 02:56:01
如果在库文档中更深入地阅读,就可以关闭名为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所述
https://stackoverflow.com/questions/24017429
复制相似问题