【问题标题】:C5.0 number of boosting iterations stops earlyC5.0 提升迭代次数提前停止
【发布时间】:2016-03-17 11:05:35
【问题描述】:

我认为这个问题与我不理解的后端操作有关,因为这种行为似乎很奇怪,至少对我来说是这样。

当我运行 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 次,它会迭代 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)

【问题讨论】:

  • 您没有提供任何可运行的代码,因此任何人都无法重现您的结果来测试可能发生的情况。一直不清楚您使用的是什么 R 包和函数。请编辑您的问题以包含reproducible example
  • 当您向问题添加标签时,请检查工具提示以确保它适合您的问题上下文。这样它就可以接触到合适的人。 :)
  • 我添加了尽可能多的代码。另外,我搜索了更具体的标签,但没有找到。
  • 没关系 - 刚刚提到它是因为 boost 指的是 c++ 库。
  • 谢谢@jbaums,我的错。

标签: r


【解决方案1】:

如果您更深入地阅读库文档,有一个名为 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 提到

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 2017-08-17
    • 2018-03-24
    相关资源
    最近更新 更多