R/ 软件包 C5.0/ 是否存在已知的不可恢复故障情况?



我正在测试预处理组合。该脚本生成并循环原始数据的3200个版本(n=48,p=30),并评估它们对分类的适用性,包括knnsvmRadialsvmPolynomialrandomForestgbmC5.0。培训是通过插入符号的train功能完成的。

最小的数据版本有 35 行和 3 列。分类目标变量 有三个类,分布约为40%/40%/20%。

由于某些原因,C5.0 导致 R 在版本 1900-2800 之间的某个位置崩溃。每次使 R 崩溃的训练/测试数据版本都不同。运行脚本 与所有其他分类器配合良好。

用于 C5.0 的代码是:

C50_model <- function(train_x, test_x, train_y, test_y){
tryCatch({
C50_fit <- train(train_x, train_y, tuneLength=tuning,    
method="C5.0",trControl=bootControl)
C50_pred <- as.character(predict(C50_fit, newdata=test_x))
C50_error <- round(ce(test_y, C50_pred),2)
return(list(C50_pred, C50_error))
}, error= function(e) return(list(NA, NA)) ) # close tryCatch
}

trControl:

bootControl <- trainControl(method = "boot", number = 1, p=0.67)

会话信息为:

R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-bit)

C5.0 是:

C50_0.1.0-15

是否有任何已知条件导致 R 与 C5.0 崩溃 或者我可以做些什么来帮助 R 恢复到错误消息而不会崩溃?

C5.0 相对较新,所以如果有某种内存分配错误导致 R 崩溃,我不会感到惊讶。 如果没有数据集,很难确定原因,但至少可以通过写入日志记录信息来缩小错误发生范围。

verboseIter = TRUE添加到trainControl选项,并关闭缓冲输出(在 R GUI 的"杂项"菜单中)。

最新更新