다중 분류

다중 분류

  • 둘 이상의 클래스를 분류하는 것
  • 다중 분류기를 구현하는 기법으로는 SGD 분류기, 랜덤 포레스트 분류기, 나이브 베이즈분류기 같은 알고리즘으로 여러 개의 클래스를 직접 처리하거나, 이진 분류기(로지스틱 회귀, 서포트 벡터 머신 분류기 등)을 여러 개 사용해 다중 클래스를 분류하는 방법이 있다
  • 이진 분류기를 여러개를 사용하여 다중 클래스를 분류할 수 있음

두가지 접근법

  • One-vs-Rest( One vs All)
  • One-vs-One

One vs Rest(One vs All)

  • 결정 점수 중에서 가장 높은 것을 클래스로 선택하여 이미지를 이진 분류기들로만 구성한 것
  • 0~9까지(10개) 분류기를 학습시켜 각 분류기의 결정 점수 중 가장 높은 값을 결정
  • N개 분류기 모델은 N개 분류에 대해 훈련된다. 가장 높은 예측 확률을 가진 분류가 최종 출력으로 예측된다
  • 대부분의 이진 분류 알고리즘에서 선호

One vs One

  • 0과 1 구별, 0과 2 구별 등 각 숫자의 조합마다 이진 분류기를 훈련시키는 것
  • N * (N-1)개 분류기 모델은 각 분류 쌍에 대해 훈련된다
  • 서포트 벡터 머신(SVM)과 같은 일부 알고리즘은 훈련 세트의 크기에 민감해서 큰 훈련 세트에서 몇 개의 분류기를 훈련시키는 것보다 작은 훈련 세트에서 많은 분류기를 훈련시키는 쪽이 빠르므로 ovo를 선호
  • 각 분류기의 훈련에 전체 훈련 세트 중 구별 할 두 클래스에 해당하는 샘플만 필요

불균형 데이터

  • 남/여, 구매여부 등 클래스 분포를 예측해야 하는 분류문제에서 예측 라벨 값의 분포가 100:1, 200:1 등으로 불균형하게 나타나는 상태

불균형 데이터로 인한 발생 문제

  • 과적합 문제 발생
  • 과적합은 변수가 많아서 생기는 모델 복잡성 증가, 데이터 불균형으로 생기는 문제 등의 다양한 발생 원인들이 존재
  • 정확도는 높아질 수 있지만 분포가 작은 값에 대한 정밀도는 낮을 수 있고, 분포가 작은 클래스의 재현율이 낮아지는 문제가 발생할 수 있다.

Ex) 분포가 100개의 데이터에서 1과 0값이 각각 97:3 비율을 가지고 있을 때 모든 값을 1로 예측한다 하더라도 정확도가 97% 나오게 된다.

Under Sampling

  • Down Sampling이라고도 불리며 데이터의 분포가 높은 값을 낮은 값으로 맞춰주는 작업을 거치는 것
  • 유의미한 데이터만을 남길 수 있음
  • 정보가 유실되는 문제가 생길 수 있음

Over Sampling

  • Up Sampling이라고도 불리며 분포가 작은 클래스의 값을 분포가 큰 클래스로 맞춰주는 샘플링 방법
  • 정보의 손실을 막을 수 있다
  • 여러 유형의 관측치를 다수 추가하기 때문에 오히려 오버피팅을 야기할 수 있다

Log loss

  • 로그 손실은 잘못된 분류에 패널티를 적용하여 모델의 정확도를 향상
  • 모델 성능 평가 시 사용 가능한 지표
  • 확률 값을 평가 지표로 사용
  • 일반적으로 로그 손실이 낮을수록 정확도가 높아짐
  • 잘못 예측할 수록, 페널티를 부여하기 위해 확률 값을 음의 log함수에 넣어 변환
  • 확률이 낮아질 수록 log loss 값이 기하급수적으로 증가
    확률이 낮을 때 패널티를 더 많이 부여하기 위해 음의 로그 함수를 사용
Share