2017-12-27 164 views
0

我有一個數據集稱爲值有四個變量(ER是因變量)和400個觀察值(刪除N/A後)。我嘗試將數據集劃分爲訓練集和測試集,並使用插入符號包中的線性迴歸對模型進行訓練。但是,我總是得到錯誤:線性迴歸中的錯誤,同時在字符包中使用火車功能

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

下面是我的代碼:

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。試試這個:

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