월간 데이콘 생체 광학 데이터 분석 AI 경진대회

Public 3등 솔루션

2020.06.26 19:59 6,252 조회

대회를 주최해주신 데이콘과 같이 경쟁에 참여한 분들 모두 고생하셨습니다.


성능이 오르지 않아 정말 힘든 대회였습니다, 그래서 쥐어짜내기 위해 모델을 복잡하게 구성하였습니다.


같이 팀으로 하면서 정말 많이 배우고 특히 딥러닝 관련해서 많은 도움이 되었습니다!


감사합니다.


Feature Engineering

  1. dst Column으로 itertools.combination을 활용하여 파장 간 차를 구함 ( 대략적으로 0.03~0.05 향상)
  2. 여기서 핵심은 dst_max 혹은 dst_std같은 값으로 차이를 나눠서 차이간의 scale을 맞춰주는 것입니다.
  3. dst간 ratio / src 간 ratio ( 대략적으로 0.05~0.07 향상)
  4. 소스와 타겟 간의 scale이 달라 직접 비교가 힘들었고 source에 따라 dst가 어떻게 변하는지 알고 싶었습니다.
  5. 그래서 서로 간의 비율을 통해서 비교하면 좋을 것 같다는 생각을 했고 dst combination(2)으로 비율을 계산하고 src combination(2)으로 비율을 계산하여 서로 나눠주었습니다.
  6. 기타 dst, src max, mean, sum 등 통계 값들
  7. zip(src, dst)로 src, dst 차이, 비율을 구함
  8. Interpolation은 polynomial 2차, akmia, cubic의 평균
  9. rho의 차이를 상쇄시키기 위해 rho 15, 20, 25에 각각 1e2, 1e4, 1e6을 곱함
  10. src가 0이면 dst도 0으로 변경, dst가 -값이면 0으로 변경
  11. Permutation Importance를 수행하여 Feature Selection 수행



Model

  1. LGBM Dart(0.8), gbdt(0.83)
  2. Catboost (0.85)
  3. Xgboost (0.85)
  4. DeepLearning 사용 (0.89)
  5. 확실히 다른 Target도 Model이 같이 넣으면 성능이 향상되지만 Test에는 Target값이 없기 때문에 직접 넣을 수 없어서 Model1을 수행하고 Model2에 그 예측 값을 넣었습니다. (0.005~0.01)



Deep Learning

  1. 1등 점수가 너무 높아서 왠지 LightGBM으로는 안될 것 같아 대회 막바지에 Deep Learning쪽을 해봤습니다.
  2. rho별로 dst에 일정 배수(1e9, 1e10등)을 곱하고 log, sqrt로 변환
  3. Activation을 Swish 혹은 Mish를 활용
  4. Deep Learning은 Multi Output으로 만들 수 있어서 통합 Target으로 하니 성능이 더 좋았습니다.
  5. 모델은 위에서 Feature Engineering한 결과를 일반 MLP를 수행한 것과 dst, src, rho만 넣은 1d convolution, 마찬가지로 dst, src, rho만 넣은 LSTM을 수행하였습니다.
  6. LSTM Attention, Convolution LSTM, GRU, Seq2Seq 등 이것저것 해봤는데 큰 성능 향상이 없었습니다. 아마 Attention을 잘 못 구현한 것일지도..ㅠ
  7. Deep Learning 최종은 약 0.89 정도 나왔습니다.



Ensemble

  1. LGBM Dart, Feature Set 1, Target 예측 값 사용하여 2번 예측
  2. LGBM gbdt Feature Set 1, Target 예측 값 사용하여 2번 예측
  3. xgboost feature set 1
  4. catboost feature set 1
  5. lgbm gbdt feature set 2, Target 예측 값 사용하여 2번 예측
  6. lgbm dart feature set 2, Target 예측 값 사용하여 2번 예측
  7. xgboost feature set 2
  8. catboost feature set 2
  9. 위에 8개를 Stacking 수행, Stacking Model은 Ridge 사용
  10. 그 후 Deep Learning Target 통합 모델과 Target 분리 모델 2가지와 target별로 최적 Weight를 구하여 Ensemble(0.791)




로그인이 필요합니다
0 / 1000
DACON.edu
2020.06.26 20:22

수고하셨습니다..정리 감사합니다.

처음해봐요
2020.06.26 20:25

감사합니다!

당쇠
2020.06.26 23:06

팀이 주요한 전략 인것 같네요.^^ 수고하셨습니다.

처음해봐요
2020.06.26 23:25

맞습니다! 팀으로 하면 항상 많이 배우고 힘이나네요