시작하기무료로 시작하기

샘플 외(out-of-sample) 모형 적합도 평가

이제 샘플 내(in-sample) 적합도보다 샘플 외(out-of-sample) 모형 적합도를 살펴보는 것이 더 타당하다는 점을 아셨어요. 이번 연습에서는 따라서 샘플 외 정확도 지표를 만들어 보려고 합니다.

그 전에 몇 가지 준비 단계를 거쳐야 해요. defaultData를 다시 사용하세요. logitModelNew는 이미 환경에 로드되어 있습니다.

완전한 분석을 위해서는 항상, 그리고 특히 샘플 외 데이터를 사용해 서로 다른 모형 후보들을 비교해야 한다는 점을 유의하세요.

최적 임계값 0.3을 사용할 때 샘플 내 정확도는 0.7922901입니다. 과적합 여부를 꼭 이해하고 넘어가세요.

이 연습은 강의의 일부입니다

R로 배우는 Machine Learning 기반 마케팅 분석

강의 보기

연습 안내

  • 먼저, 데이터셋을 무작위로 학습용과 테스트용으로 분할하세요. 학습용 데이터는 전체의 2/3를 포함해야 합니다.

  • 그런 다음 모델을 빠르게 학습하고 이름을 logitTrainNew로 지정하세요. 제공된 공식을 사용하세요.

  • 테스트 세트에 대해 예측을 수행한 뒤, 혼동 행렬을 이용해 샘플 외 정확도를 계산하세요. 참고로 SDMTools는 더 이상 CRAN에서 다운로드할 수 없습니다. 개인용 컴퓨터에서는 remotes::install_version("SDMTools", "1.1-221.2")로 설치하세요.

  • 위에 제시된 샘플 내 값과 샘플 외 정확도를 비교해 보세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Split data in train and test set
set.seed(534381) 
defaultData$isTrain <- rbinom(nrow(defaultData), 1, 0.66)
train <- subset(defaultData, ___ == 1)
test <- subset(defaultData, ___  == 0)

logitTrainNew <- glm(formulaLogit, family = binomial, data = ___) # Modeling
test$predNew <- predict(logitTrainNew, type = "response", newdata = ___) # Predictions

# Out-of-sample confusion matrix and accuracy
confMatrixModelNew <- confusion.matrix(___, ___, threshold = 0.3) 
sum(diag(confMatrixModelNew)) / sum(confMatrixModelNew) # Compare this value to the in-sample accuracy
코드 편집 및 실행