niffler92 / IAML2017_project3

Drum transcription
0 stars 0 forks source link

Ensemble #6

Open niffler92 opened 6 years ago

niffler92 commented 6 years ago

@wonheeML 새로운 커밋 내용입니다. 앙상블 가능하면서도 Train_batch의 결과를 보기 쉽게 정리할 수 있도록 코드를 바꾸어 보았습니다.

설명을 함께 첨부 하는 것이 좋을 것 같아서 train_batch.py 를 돌렸을때의 결과를 첨부합니다. 두 가지 키를 만들었습니다. unique_key: 한 hyperparam의 train결과로, 1:1대응으로 unique_key에 해당하는 ckpt파일(파일명에 unique_key포함)을 갖고 있습니다. 물론 save_ckpt를 안하면 key만 저장이 됩니다. cv_key: Cross-validation key로, 같은 cv_key를 가진 unique_key들은 같은 hyperparameter를 공유하면서 다른 val_set으로 트레이닝 한 결과들입니다. 다른 모델을 쓸 때, hyperparamㄷter key가 바뀌어도 results.txt에 새로 추가되면서 없는 부분은 NaN이 되기 때문에 flexible한 것 같습니다.

이런 방법으로 아래와 같이 result.txt를 뽑아서 hyperparameter를 튜닝할 수 도 있고, 아니면 마음에 드는 것들의 unique_key를 골라서 ensemble에 이용하면 될 것 같습니다. ensemble.py는 내일 만들어보겠습니다!

P.S. 아래 unique_key가 없는 row의 이유는 크게 중요하진 않은데, Cross validation F1 average를 그냥 따로 추가해줬기 때문입니다. ㅎㅎ 원래는 테이블 데이터 groupby로 f1 mean을 생성하면 되긴하는데, 이미 만들어져있어서 unique_key 없이 추가했습니다~!

image

niffler92 commented 6 years ago

어제부터 돌려 놓은 결과를 정리해 보았는데, 그 중 Hyperparam Cross validation Best 모델입니다.

image 개별 Best는 아래입니다. image

niffler92 commented 6 years ago

추가: Ensemble.py 를 완성하였는데, python train_batch.py 로 돌리고 나서 python ensemble.py 실행하면 자동으로 앙상블해주는 파일입니다.

다만 약간 이상한 것을 발견하였는데, 조교님의 F1_score과 sklearn의 F1_score가 다르게 나오네요.. 확인해보고 업데이트 하겠습니다~

niffler92 commented 6 years ago

image

niffler92 commented 6 years ago

TODO