我刚开始学习机器。我试着用C5.0模型进行10倍的交叉验证。我要求代码返回kappa值。
folds = createFolds(mdd.cohort1$edmsemmancomprej, k=10)
str(folds)
mdd.cohort1_train = mdd.cohort1[-folds$Fold01,]
mdd.cohort1_test = mdd.cohort1[folds$Fold01,]
library(caret)
library(C5.0)
library(irr)
set.seed(123)
folds = createFolds(mdd.cohort1$edmsemmancomprej, k=10)
cv_results = lapply(folds, function(x)
{mdd.cohort1_train = mdd.cohort1[-x, ]
mdd.cohort1_test = mdd.cohort1[x, ]
mdd.cohort1_model = C5.0(edmsemmancomprej ~., data = mdd.cohort1_train)
mdd.cohort1_pred = predict(mdd.cohort1_model, mdd.cohort1_test)
mdd.cohort1_actual = mdd.cohort1_test$edmsemmancomprej
kappa = kappa2(data.frame(mdd.cohort1_actual, mdd.cohort1_pred))$value return(kappa)})给出以下错误修正:
Error: unexpected symbol in:
"mdd.cohort1_actual = mdd.cohort1_test$edmsemmancomprej
kappa = kappa2(data.frame(mdd.cohort1_actual, mdd.cohort1_pred))$value return"有人知道发生了什么吗?提前谢谢你!
发布于 2016-02-24 05:21:35
如果没有一个可重复的例子,这是有点困难的,但我认为分享最后一行的回报才是原因。为了提高可读性,我重新格式化了您的代码。
library(caret)
library(C5.0)
library(irr)
folds = createFolds(mdd.cohort1$edmsemmancomprej, k=10)
str(folds)
mdd.cohort1_train = mdd.cohort1[-folds$Fold01,]
mdd.cohort1_test = mdd.cohort1[folds$Fold01,]
set.seed(123)
folds = createFolds(mdd.cohort1$edmsemmancomprej, k=10)
cv_results = lapply(folds, function(x) {
mdd.cohort1_train = mdd.cohort1[-x, ]
mdd.cohort1_test = mdd.cohort1[x, ]
mdd.cohort1_model = C5.0(edmsemmancomprej ~., data = mdd.cohort1_train)
mdd.cohort1_pred = predict(mdd.cohort1_model, mdd.cohort1_test)
mdd.cohort1_actual = mdd.cohort1_test$edmsemmancomprej
kappa = kappa2(data.frame(mdd.cohort1_actual, mdd.cohort1_pred))$value
return(kappa)
})https://stackoverflow.com/questions/35593418
复制相似问题