2017-12-27 1 views
0

Ich habe einen Datensatz namens Wert, der vier Variablen (ER ist die abhängige Variable) und 400 Beobachtungen (nach dem Entfernen von N/A). Ich habe versucht, den Datensatz in Trainings- und Test-Sets aufzuteilen und das Modell mittels linearer Regression im Caret-Paket zu trainieren. Aber ich bekomme immer die Fehler:Fehler in der linearen Regression bei Verwendung der Zugfunktion im Caret-Paket

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

Unten ist mein Code:

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) 

Antwort

2

Das Recht sintax ist trControl, nicht trcontrol. Versuchen Sie dies:

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

Das ist großartig. Vielen Dank. – Roger

Verwandte Themen