모델링
분류 알고리즘을 적용하기에 앞서 훈련 데이터와 테스트 데이터를 나눠보자. 여기서는 설명의 편의를 위해 단순히 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%로 크게 구해졌다.