Class Imbalance 해결 방안

김민기·2023년 5월 7일
0
post-thumbnail

내가 찾아본 해결방안은
1. Hierarchical Classification
2. Focal loss
3. Statistical algorithm
인데, 이 포스팅에서는 1번을 알아보자.

1. Hierarchical Classification

Hierarchical Classification 알고리즘은, 크게 클래스를 나누고 각 클래스 내부에서 2~n차적으로 클래스를 또 나누는 방법이다.
위의 알고리즘 방법으로 3가지가 있는데 다음과 같다

1.Top-down(Flat Classification) approach

2.Local classifiers approach

3.Big-bang classifiers approach

1.Top-down approach

가장 간단한 방법으로, 클래스의 계층을 무시하고 Leaf node의 클래스만 예측하는 방식이다. 이 방식은 train/test시에 기존의 일반적인 classification algorithm처럼 작동한다. 하지만, 이방식은 계층 분류 문제에 대한 간접적인 치팅??힌트?를 제공한다고 볼 수 있다. Leaf class에 할당될경우, 부모 클래스에 자동으로 힌트를 준다고 볼 수 있기 때문이다.
이 방법의 단점으로는 클래스 계층에 존재하는 부모-자녀 클래스 관계에 대한 정보를 확인하지않고 많은 수의 클래스(모든 리프 클래스)를 구별하기 위해 classifier를 구축해야 하는 심각한 단점을 가지고 있습니다.

2.Local classifiers approach

노드당 각각의 Local classifier의 접근 방식은 클래스 계층의 각 노드에 대해 하나의 이진 분류기 학습하는 방식으로 구성된다.

2.1 Local Classifier Per Node Approach


클래스 계층의 각 상위 노드에 대해 Multi-class classifier가 자식 노드를 구별하도록 훈련되는 방식이다.

2.2 Local Classifier Per Level Approach


Per Level 방식은 클래스 계층의 각 Level에 대해 하나의 다중 클래스 분류기를 학습하는 방식으로 구성된다.

3.Big-bang classifiers approach


Hierarchical Classification방법으로 2번의 Local 방안을 사용하여 해결할 수 있지만, 모든 클래스에 대해 단일 글로벌 모델을 학습하는 것은 일반적으로 글로벌 분류 모델의 전체 크기가 상당히 작다는 이점이 있습니다, 모든 로컬 분류기 접근법에 의해 학습된 모든 로컬 모델의 총 크기와 비교하여.
글로벌 분류기 접근 방식에서는 분류 알고리듬을 단일 실행하는 동안 클래스 계층 전체를 고려하여 훈련 세트에서 단일(상대적으로 복잡한) 분류 모델이 구축됩니다. 테스트 단계에서 사용되는 경우 각 테스트 예제는 잠재적으로 모든 계층 수준의 클래스를 테스트 예제에 할당할 수 있는 프로세스인 유도 모형에 의해 분류됩니다.

나머지 Class Imbalance를 해결하는 방안은 다음 포스팅에 확인해보도록 하자 . . 임시 저장이 안된 나머지 . . .. . . 사라졌다 . . .. . .

profile
work0ut

0개의 댓글