모델링

    분류 알고리즘을 적용하기에 앞서 훈련 데이터와 테스트 데이터를 나눠보자. 여기서는 설명의 편의를 위해 단순히 80%의 데이터를 훈련 데이터, 20%의 데이터를 테스트 데이터로 나누었으며 교차 검증은 사용하지 않았다.

    > library(caret)
    > train_idx <- createDataPartition(crude_acq_df$LABEL, p=0.8)$Resample1
    > crude_acq.train <- crude_acq_df[train_idx, ]
    > crude_acq.test <- crude_acq_df[-train_idx, ]
    

    rpart를 사용한 의사 결정 나무를 만든다.

    > library(rpart)
    > m <- rpart(LABEL ~ ., data=crude_acq.train)
    

    결과는 confusionMatrix( )를 사용해 분석해보자.

    > confusionMatrix(
    + predict(m, newdata=crude_acq.test, type="class"),
    + crude_acq.test$LABEL)
    Confusion Matrix and Statistics
    
              Reference
    Prediction acq crude
        acq      9     0
      crude      1     4
    
                    Accuracy : 0.9286
                      95% CI : (0.6613, 0.9982)
         No Information Rate : 0.7143
      P-Value [Acc > NIR] : 0.0594
    
                       Kappa : 0.8372
      Mcnemar's Test P-Value : 1.0000
    
                 Sensitivity : 0.9000
                 Specificity : 1.0000
              Pos Pred Value : 1.0000
              Neg Pred Value : 0.8000
                  Prevalence : 0.7143
              Detection Rate : 0.6429
        Detection Prevalence : 0.6429
    
            'Positive' Class : acq
    

    분석 결과 정확도가 92.86%로 들인 노력에 비해 상당히 괜찮은 모델을 구할 수 있었다. 다만 데이터의 크기가 작아 정확도의 95% CI(Confidence Interval; 신뢰 구간)는 66.13%에서 99.82%로 크게 구해졌다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.