더북(TheBook)

정확도 평가

반환 값이 여러 폴드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%로 나타났다.

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