如何修改函数中的现有函数?

时间:2016-09-21 13:12:59

标签: r methods decision-tree

我试图增加试验参数的限制,目前在C50包中设置为100。我尝试使用fix来做到这一点。

library(C50)
data(churn)
fix(C5.0.default)  # i change the maxtrials <- 200
treeModel <- C5.0(x = churnTrain[, -20], y = churnTrain$churn, trials = 150)

当试验少于200时,我得到以下错误。

could not find function "makeNamesFile"

我重新启动R,然后尝试使用fixInNamespace并将试验更改为200.

fixInNamespace("C5.0.default", pos="package:C50")    
treeModel <- C5.0(x = churnTrain[, -20], y = churnTrain$churn, trials = 150)

该模型适用于低于100的试验,但对于100以上的试验给出以下误差。这是当用户输入100以上的试验时C5.0给出的标准误差。

number of boosting iterations must be between 1 and 100

我想增加对C5模型的试验(增强)。我怎么做?这可能是一个实现约束,但由于xgboost可以处理超过100次的增强迭代,因此C5可能有办法处理这个问题。

我可以通过修复调用将迭代次数增加到100以上。但问题是我需要运行C50包源代码中的所有R脚本。我该怎么做才能避免这种情况。我尝试从源代码安装C50软件包并试一试,但它没有用完。

1 个答案:

答案 0 :(得分:0)

通过调整this链接的源代码,我可以获得超过100条路径。您需要获取R文件,然后您可以更改默认的路径数以获得超过100个试验。

# Allow for more than 100 Boosting
setwd('Path to R files')
files <- list.files(pattern = "\\.R$")
lapply(files, source)
fix(C5.0.default)