Skip to content
유영서_T4135 edited this page Jan 11, 2023 · 1 revision

Voting Strategy

Intro

A모델과 B모델을 앙상블할 때, Top10 정보만 사용할 경우 사실상 가중치가 높은 모델의 Top10만이 재선별되는 문제점이 있습니다.
이러한 문제점을 해결하기 위해 Top11-15 정보를 추가적으로 사용하여 Top10 중에서도 유력한 후보를 효율적으로 선별하고자 했습니다.

Inputs

source 폴더에 voting하고자 하는 csv 파일을 2개 이상 넣어주어야 합니다. 단, voting.py를 이용하여 voting을 진행하기 위해서는,
반드시 Top15 csv 파일을 넣어주어야 합니다.

How to vote

사용 방법은 간단합니다.

  1. python voting.py 명령어를 입력합니다.
  2. voting에 사용하고자 하는 파일 번호를 입력합니다. ex) 0 1
  3. voting에 사용하고자 하는 Top1-10과 Top11-15의 가중치를 입력합니다. ex) 0.75 0.25
  4. voting에 사용하고자 하는 모델들의 가중치를 입력합니다. ex) 모델이 2개일 경우, 0.4 0.6 / 3개일 경우, 0.3 0.3 0.4
  5. voting 결과는 ensemble/result에 저장됩니다.

How it calculates

Top1-10과 Top11-15의 가중치가 0.75:0.25이며, 모델 A와 모델 B의 가중치가 0.6:0.4인 상황을 예시로 합니다.

  1. item이 두 모델 모두에서 Top10에 선정된 경우, 0.45+0.3=0.75의 가중치를 가지게 됩니다.
  2. item이 A 모델에서 Top10, B 모델에서 Top15에 선정된 경우, 0.45+0.1=0.55의 가중치를 가지게 됩니다.
  3. item이 A 모델에서 Top15, B 모델에서 Top10에 선정된 경우, 0.15+0.3=0.45의 가중치를 가지게 됩니다.
  4. item이 두 모델 모두에서 Top15에 선정된 경우, 0.15+0.1=0.25의 가중치를 가지게 됩니다.
  5. item이 A 모델에서만 Top10에 선정된 경우, 0.45의 가중치를 가지게 됩니다.
  6. item이 B 모델에서만 Top10에 선정된 경우, 0.3의 가중치를 가지게 됩니다.
  7. item이 A 모델에서만 Top15에 선정된 경우, 0.15의 가중치를 가지게 됩니다.
  8. item이 B 모델에서만 Top15에 선정된 경우, 0.1의 가중치를 가지게 됩니다.

이 경우에서는, Top15에 위치한 item은 Top10에 선정된 아이템 중에서 변별력을 부여하는 용도로만 사용이 됩니다.
Top15에만 위치한 아이템으로는 새로운 Top10에 선정되는 shake up이 발생할 수 없습니다.
모델의 갯수, Top10과 Top15의 가중치, 모델 별 가중치에 따라 Top15에만 존재하는 아이탬으로 새로운 Top10에 선별되는 shake up이 발생할 수 있습니다.

결과적으로, 계산된 가중치가 높은 순서부터 새로운 10개의 item을 선별하여 submission 파일을 만들게 됩니다.

가중치가 겹치는 경우, 어느 부분에 우선순위를 주어야 할지 결정하는 전략에 따라 성능 차이가 발생합니다.
원하는 전략에 맞춰서 가중치를 직접 계산하여 적용하면, 가중치의 우선순위를 나눌 수 있습니다.

Clone this wiki locally