2017-12-27 9 views
0

4つの変数(ERは従属変数)と400の観測値(N/Aを削除した後)を持つvalueというデータセットがあります。データセットをトレーニングセットとテストセットに分割し、キャレットパッケージの線形回帰を使用してモデルをトレーニングしようとしました。しかし、私は常にエラーを取得:キャレットパッケージで列車関数を使用して線形回帰でエラーが発生しました

ctrl_lm <- trainControl(method = "cv", number = 5, verboseIter = FALSE) 
value_rm = na.omit(value) 
set.seed(1) 
datasplit <- createDataPartition(y = value_rm[[1]], p = 0.8, list = FALSE) 
train.value <- value_rm[datasplit,] 
test.value <- value_rm[-datasplit,] 
lmCVFit <- train(ER~., data = train.value, method = "lm", 
        trcontrol = ctrl_lm, metric = "Rsquared") 
predictedVal <- predict(lmCVFit, test.value) 
modelvalues <- data.frame(obs = test.value$ER, pred = predictedVal) 
lmcv.out = defaultSummary(modelvalues) 

答えて

2

右sintaxがtrControl、ないtrcontrol次のとおりです。

In lm.fit(x, y, offset = offset, singular.ok = singular.ok, ... : 
    extra argument ‘trcontrol’ is disregarded. 

以下は私のコードです。試してみてください:

library(caret) 
set.seed(1) 
n <- 100 
value <- data.frame(ER=rnorm(n), X=matrix(rnorm(3*n),ncol=3)) 

ctrl_lm <- trainControl(method = "cv", number = 5, verboseIter = FALSE) 
value_rm = na.omit(value) 
set.seed(1) 
datasplit <- createDataPartition(y = value_rm[[1]], p = 0.8, list = FALSE) 
train.value <- value_rm[datasplit,] 
test.value <- value_rm[-datasplit,] 
lmCVFit <- train(ER~., data = train.value, method = "lm", 
        trControl = ctrl_lm, metric = "Rsquared") 
predictedVal <- predict(lmCVFit, test.value) 
modelvalues <- data.frame(obs = test.value$ER, pred = predictedVal) 
(lmcv.out <- defaultSummary(modelvalues)) 

#  RMSE Rsquared  MAE 
# 1.2351006 0.1190862 1.0371477 
+0

これは素晴らしいです。ありがとうございました。 – Roger

関連する問題