모형 선택과 최종 예측
모형 내 선택
- 같은 모형 내에서도 어떤 튜닝 파라미터를 사용하는지에 따라 결과가 달라짐
가장 큰 메트릭을 가진 함수 찾기
-
best 함수
whichOnePct <- best(rfModel$results, metric = 'Kappa', maximize = T) rfModel$results[whichOnePct,]
-
tolerance 함수
whichTwoPct <- tolerance(rfModel$results, metric = 'Kappa', tol = 2, maximize = T) rfModel$results[whichTwoPct,]
모형 간 선택
모형 간 비교를 위해 결과값 한 데 모으기
- resamples 함수
allResamples <- resamples(list('Elastic Net' = Elst_Model, 'K-NN' = Knn_Model, 'lda' = lda_Model, 'svm' = svmModel, 'Neural network' = nnetModel, 'tree' = rpartModel, 'Random Forest' = rfModel, 'naive bayes' = nbModel))
- 만일 각각의 모형마다 서로 다른 controlObject를 사용하였다면 이 함수 사용 불가능
모형 결과 확인
summary(allResamples)
모형 결과 시각화
parallelplot(allResamples, metric = 'Kappa') # 각각의 모델에 대한 성능 비교
trellis.par.set(caretTheme())
# caret 양식으로 그릴 수 있게 해줌
bwplot(allResamples, layout = c(2,1))
# 변동이 심하지 않고 1에 가까운 모형을 선택
dotplot(allResamples, layout = c(2,1))
# 평균이 크고 표준편차가 작은 것을 선택
예측율
- 최종 모형을 선정하였으니 최종 예측율을 계산
- test set에 모형을 적용하여 값을 예측해보고 실제 값과 비교해 얼마나 정확한 예측을 할 수 있을지 확인
predicted <- predict(lda_Model, Test_dat)
confusionMatrix(predicted, Test_dat[,1])