2017-12-27 22 views
0

4 개의 변수 (ER은 종속 변수)와 400 개의 관측치 (N/A 제거 후)가있는 값이라는 데이터 세트가 있습니다. 필자는 데이터 세트를 교육 및 테스트 세트로 나누고 캐럿 패키지에서 선형 회귀를 사용하여 모델을 학습하려고했습니다. 그러나 나는 항상 오류를 얻을 :캐럿 패키지에서 train 함수를 사용하는 동안 선형 회귀 오류가 발생했습니다.

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