10-겹 교차 검증
영상에서 보셨듯이, 모델을 검증할 때는 무작위로 한 번만 나누는 학습/테스트 분할보다, 여러 개의 체계적인 테스트 세트를 사용하는 방법이 더 좋습니다. 다행히 caret 패키지를 사용하면 매우 쉽게 할 수 있어요:
model <- train(y ~ ., my_data)
caret는 다양한 형태의 교차 검증을 지원하며, train()의 trControl 인수에 전달하는 trainControl() 함수로 교차 검증 방식과 폴드 수를 지정할 수 있습니다:
model <- train(
y ~ .,
my_data,
method = "lm",
trControl = trainControl(
method = "cv",
number = 10,
verboseIter = TRUE
)
)
주의할 점은, 모델링에 사용할 방법은 메인 train() 함수에 지정하고, 교차 검증 방식은 trainControl() 함수에 지정한다는 것입니다.
이 연습은 강의의 일부입니다
R의 caret로 배우는 Machine Learning
연습 안내
diamonds데이터셋에서price를 종속변수로, 나머지 모든 변수를 예측 변수로 사용하는 선형 회귀를 적합하세요.train()함수와 10-겹 교차 검증을 사용합니다. (연산 속도를 높이기 위해 전체diamonds의 일부만 사용하지만, 객체 이름은 여전히diamonds입니다.)- 모델을 콘솔에 출력하고 결과를 확인하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Fit lm model using 10-fold CV: model
model <- train(
___,
___,
method = "lm",
trControl = trainControl(
method = "cv",
number = ___,
verboseIter = TRUE
)
)
# Print model to console