ice rabbit programming

[AI] 분류 - KNN, 평가 지표 본문

Development/Machine Learning

[AI] 분류 - KNN, 평가 지표

판교토끼 2021. 1. 18. 01:01

이전 글에서 SVM과 나이브 베이즈 분류에 대해서 다루었다. 이번 글에서는 KNN 기법을 정리하고 회귀 때와 마찬가지로 평가 기법에 대해서 작성하려고 한다.

KNN

KNN(K-Nearest Neighbor)는 기존 데이터 중에 가장 가까운 K개 이웃의 정보로 새로운 데이터를 예측하는 분류 기법이다. KNN은 한 가지 가정을 두고 분류하는데, 유사 특성 데이터는 유사 범주에 속하는 경향이 있다는 것을 전제로 한다.

예를 들자면 기존 데이터의 분류를 마치고, 새 데이터를 이전에 분류했던 기준에 따라 분류하는 경우라고 볼 수 있겠다. KNN을 아래와 같은 특징을 가진다.

  • 직관적이고 복잡하지 않다. 해석도 꽤 쉬운 편에 속한다.
  • K 값에 따라 성능이 크게 좌우된다.
  • 딱히 학습이랄 것이 없는 Lazy Model이다.

 

평가 지표

혼동 행렬을 많이 사용한다. True Positive, False Negative 등 실제 값과 예측 값의 정확성 비율로 판단한다. 다음 4가지가 있다.

  • True Positive : 실제로 긍정인데 긍정으로 예측했다(정답).
  • True Negative : 실제로 부정인데 부정으로 예측했다(정답).
  • False Positive : 실제로 부정인데 긍정으로 예측했다(오답).
  • False Negative : 실제로 긍정인데 부정으로 예측했다(오답).
  예측 긍정 예측 부정
실제 긍정 TP FN
실제 부정 FP TN

이를 수치로 환산하는 방법도 4가지 정도를 들 수 있다.

  • 정확도 : (TP+TN)/(P+N). 제대로 분류된 데이터의 비율을 측정한다.
    -> 다만 클래스가 불균형하면 정확도의 신뢰도가 떨어진다는 단점이 있다. 예를 들어 원래 데이터 자체가 9:1일 경우 예측 모델이 실패하여 10:0으로 예측하여도 정확도가 90%이다.

  • 정밀도(Precision) : TP / (TP+FP). Potisive(긍정)로 분류한 데이터 중 실제로 Positive인 비율이다. Negative가 중요한 경우에 필요한 지표이다.

  • 재현율(Recall) : TP / P. 실제로 Positive인 데이터 중 모델이 Positive로 분류한 경우이다. Positive가 중요한 경우에 필요한 지표이다.

  • FPR(False Positive Rate) : FP / N. 실제로 Negative인데 모델이 Positive로 분류한 비율이다. 비정상 사용자를 검출할 때 주로 사용하는 지표이다.

이 중에 정밀도, 재현율, FPR이 자주 쓰이며 각자 모델에서 필요한 기준에 따라 사용한다. 회귀에서도 언급했듯이 만능 평가 지표는 없으며, 필요에 따라 다양한 측면에서 보는 것이 필요하다.