다중 분류
- 둘 이상의 클래스를 분류하는 것
- 다중 분류기를 구현하는 기법으로는 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 값이 기하급수적으로 증가
확률이 낮을 때 패널티를 더 많이 부여하기 위해 음의 로그 함수를 사용