정확도 평가
반환 값이 여러 폴드Fold에 대한 결과를 저장한 리스트고, 각 폴드의 결과는 actual과 predicted에 저장된 리스트임을 감안해 정확도Accuracy 계산 함수를 재작성해보자. 여기서 만드는 함수를 뒤에서 만들 다른 모델에서도 계속 사용할 것이다.
> evaluation <- function(lst) { + accuracy <- sapply(lst, function(one_result) { + return(sum(one_result$predicted == one_result$actual) / NROW(one_result$actual)) + }) + print(sprintf("MEAN +/- SD: %.3f +/- %.3f", + mean(accuracy), sd(accuracy))) + return(accuracy) + } > (rpart_accuracy <- evaluation(rpart_result)) [1] "MEAN +/- SD: 0.808 +/- 0.019" [1] 0.7948718 0.8034188 0.8050847 0.8305085 0.7966102 0.8050847 0.8220339 0.8135593 0.8389831 0.7711864
evaluation( ) 함수는 rpart_result를 입력으로 받아 sapply( )를 수행한다. sapply는 각 폴드에 대한 결과에 대해 정확도를 계산하며 이를 벡터로 묶는다. 마지막으로 정확도의 평균과 표준 편차를 출력한 뒤 정확도 벡터를 결과로 반환했다.
정확도 계산 결과 rpart 모델의 성능은 80.8%로 나타났다.