기계 학습의 불균형 데이터 대책

기계 학습의 불균형 데이터 대책에 대하여



기계 학습의 불균형 데이터는 클래스 당 데이터 수가 균일하지 않은 경우의 데이터입니다.
예를 들어, A클래스가 99건, B클래스가 1건인 경우, 모두, A클래스로 예측하면, 100건 중 99건이 정답이 되어 Acurracy는 0.99로 일견 고성능이지만, B클래스를 예측하는 것 어렵다.
소수의 클래스를 제대로 예측할 수 있도록 불균형 데이터를 취급할 때는 대책을 실시해야 한다.



실제 A 클래스
실제 B 클래스


예측된 A 클래스
99
1

예측된 B 클래스
1
0


대책의 종류


  • 샘플링
  • 이상 감지 문제로 해결
  • 비용 고려 학습
  • 불균형 데이터에 해당하는 손실 함수 사용

  • 샘플링



    불균형 데이터 대책으로서, 간단하게 실시할 수 있는 것은 샘플링이다.
    샘플링에는 두 가지 종류가 있으며 다수의 클래스에 맞는 오버 샘플링과 소수의 클래스에 맞추는 언더 샘플링이 있습니다.
    그러나 단순히 샘플링을하면 오버 샘플링하면 소수의 클래스 중복이 발생하여 과학 학습으로 이어질 수 있습니다.
    또한 언더 샘플링은 많은 클래스의 중요한 특징을 끌어 올릴 수 있습니다.

    오버 샘플링에서 대표적인 것으로서 SMOTE가 있다.
    SMOTE는 그림과 같이 새로운 벡터를 같은 클러스터의 두 점 사이에서 보간을 취하여 작성하는 방법이다.
    r1 = X1 + d \times gap
    



    이상 감지 문제로 해결



    데이터 불균형이 극단적 인 경우 이상 감지를 고려하십시오.
    데이터의 분포를 분석하고, 그 분포를 통상으로 하고, 일탈한 값을 이상치로서, 클래스를 나눈다.

    1 클래스 SVM, Isolation Forests와 같은 알고리즘이 있습니다.

    단, 다음과 같이 분포가 겹치는 경우에는 사용할 수 없다.



    비용 고려형 학습



    기계 학습에서는 오분류를 동일하게 취급하는 경우가 많다.
    이것을 불균형 데이터에 적용하면,

    따라서 비용을 고려한 학습에서는 데이터 수가 적은 클래스의 오 분류의 페널티를 크게함으로써 재현률을 향상시키는 효과를 기대할 수있다.

    XGBoost와 같은 알고리즘이 있습니다.

    불균형 데이터에 해당하는 손실 함수 사용



    심층 학습에서는 손실 함수의 정의를 변경하여 불균형 데이터 대책을 수행 할 수 있습니다.

    예를 들어, Focal Loss 함수는
    정답에 가까운 예측치의 경우는 더 이상 학습하는 것을 억제하게 되어, 부정답한 데이터에 대한 학습을 ​​보다 진행하는 성질이 있다.

    Class-Balanced Loss와 Affinity loss와 같은 손실 함수가 있습니다.

    좋은 웹페이지 즐겨찾기