모형 선택과 최종 예측 :: 예측 분석 - mindscale
Skip to content

모형 선택과 최종 예측

모형 내 선택

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

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

  • 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: 정보가 전혀 없을 때 찍어서 맞춘 비율