emphasis10 / dacon_tech_classification

0 stars 0 forks source link

MacroF1 지표 개선 방안 #1

Open emphasis10 opened 3 years ago

emphasis10 commented 3 years ago

문제점들

emphasis10 commented 3 years ago

Post-Processing

여러 모델에 공통적으로 발견되는 특히 성능이 낮은 label들이 존재한다.

MacroF1의 지표 계산 특성상 클래스의 (표본) 크기에 관계 없이 평균을 내기 때문에, 이렇게 특징적으로 낮은 label들이 포함되면 전체적인 점수가 끌어내려지는 효과를 가져온다. 첫번째로 생각나는 건, base 모델 prediction 후에 결과를 post-processing으로 처리하는 방식이다.

Binary Classification

해당 데이터에서는 test_set이 곧 내가 labeling을 해야할 대상이기 때문에 따로 검증을 위한 데이터가 없다. 따라서, 주어진 Training data를 분할하여 Validation set을 두는데, 이 과정은 이미 진행되었다고 가정한다.

이 상황에서, 문제의 label들을 binary classification으로 post-processing 해본다. 이미 나눠진 Training set에 들어있는 label의 갯수만큼 다른 label에서 동일 갯수를 추출하여 shuffling하고 binary로 labeling 하여 학습한다. Validation set에서도 동일하게 dataset을 준비한다. base model 학습을 통해 학습된 embedding layer는 그대로 사용한다.

해당 문제를 생각하면서 기존의 binary classification을 생각하면서 threshold를 조금 보수적으로 잡아야겠다는 생각은 들었다. 따라서 전통적인 방법대로 0.5를 기준으로 classification하지 않고, 실험적으로 더 높은 값을 찾아야겠다.

Keyword Filter

성능이 낮은 label의 공통점이라고 하면, 데이터의 수가 적은 label들이다. (여기서 질문, 그럼 저 label들이 데이터 수가 적은 순서대로 1~5등일까? 데이터 수가 적어도 잘 맞추는 label이 있을까?) 그렇다면 특정 키워드를 Rule로 쳐서 뒤에서 잡아내서 수정해 볼 수는 없을까?

emphasis10 commented 3 years ago

TCN_emb200_seqlen1000_BPE32000_HiTrain_post 0.7654781854 -> 0.6437405405 Training with Valid단에서 검증이 필요. Binary Classification을 위해서 Binary label을 달아놓은 dataset도 최종적으로 결과를 도출할 때는 데이터셋을 합쳐서 학습에 사용해야 함.