如何解决使用 Rstudio 使用 naiveFolds 的交叉验证错误问题
我正在尝试使用 naiveFolds 找出 crossvalidationError。
naiveBayes_fold = function(fold,features,target,laplace = 0) {
train = features[-fold,]
validation = features[fold,]
train_labels = target[-fold]
validation_labels = target[fold]
NaiveBayes_model = naiveBayes(train,train_labels,laplace = laplace)
validation_preds = predict(NaiveBayes_model,validation)
t= table(validation_labels,validation_preds)
FPR = t[1,2] / (t[1,2] + t[1,1])
FNR = t[2,1] / (t[2,1] + t[2,2])
return (c("FPR" = FPR,"FNR" = FNR))
}
crossValidationError = function(features,laplace = 0,n_folds) {
folds = createFolds(target,k = n_folds)
errors = sapply(folds,naiveBayes_fold,features = features,target = target,laplace = laplace)
return(rowMeans(errors))
}
当我运行以下代码时,
crossValidationError(AdultSet_n,dt_coded,5)
我收到一条错误消息 (Error in table(y) : attempt to make a table with >= 2^31 elements)
简单解释一下 AdultSet_n,它是一个包含 30162 个 obs 的 data.frame。 105 个变量,它具有所有数字特征。对于 dt_coded,它也是一个具有 30162 个 obs 的 data.frame。 105 个变量,但它具有所有 int 功能。我收到错误的原因是因为功能不同?我也有类似的问题,即 FPR(误报率)和 FNR(误报率)的运行错误。这是代码。
errors = crossValidationError(features = AdultSet_n,target = dt_coded,n_folds=5)
让我知道这有什么问题。提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。