예측 분석

데이터를 이용해 예측 분석을 하는 방법을 알아봅니다


수강중

22. 모형 선택과 최종 예측

모형 내 선택

  • 같은 모형 내에서도 어떤 튜닝 파라미터를 사용하는지에 따라 결과가 달라짐

가장 큰 메트릭을 가진 함수 찾기

  • 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])
  • 1개 제외하고 전부 맞춤
  • No Information Rate: 정보가 전혀 없을 때 찍어서 맞춘 비율