Boost up AI 2025 : 신약 개발 경진대회

알고리즘 | 분자구조 | 정형 | 회귀 | 바이오 | NRMSE | PCC

  • moneyIcon 상금 : 1,300만원
  • 1,282명 마감

 

[public 0.84289] 코드 공유합니다.

2025.07.31 11:30 625 조회 language

어느정도 예상은 했는데 이렇게 뒤로 밀릴 줄은 몰랐네요 ㅋㅋㅋ 다들 고생하셨습니다 !

다중 구성으로 앙상블 효과를 주기 위해 3개의 서로 다른 MPNN 구성을 사용했고 
MPNN에서 나온 예측값들을 feature로 사용하여 LightGBM 모델로 학습
후처리로 상/하위 25퍼의 값들에게 추가로 5% 점수를 더 부여해서 강제로 값을 보정했었습니다.
그리고 마지막엔 TTA를 추가했습니다.

이전 baseline 공유했던  Descriptors 관련 모듈은 public score가 잘 안나와서 다른 모델로 변경했었는데,,헣헣 

코드
로그인이 필요합니다
0 / 1000
굼바
2025.07.31 11:37

공유 감사합니다!

ggh5454
2025.07.31 12:01

공유 감사합니다!!

곱슬곱슬
2025.07.31 13:24

공유 감사합니다.
저도 비슷하게 접근했었어요.
descriptor 부분을 함께 이용했을 땐 생각했던 것보다 public score가 더 떨어지길래..
descriptor 제외해버렸는데...ㅜㅜ

Foria
2025.07.31 15:29

공유 감사합니다!

NAJUNGHWAN
2025.07.31 22:59

augmented_smiles 부분은 저희도 시도해 봤는데 CV 테스트에서는 점수가 떨어졌습니다.
그래프 기반 모델에서는 오히려 노이즈라는 해석으로 이해됐습니다.

Depth도 D-MPNN의 모델 아키텍처 특성상 6이상으로 올릴 경우 과적합 문제가 심각했다고 생각합니다.
저희 팀의 경우 chemprop 공식 아키텍처에서 추천하는 ray tune으로 파라미터 탐색을 시도했는데,
이때 depth가 큰 값들이 종종 예측값이 튀곤 했습니다. 
또한 chemprop 공식 논문에서는 random split(0.8:0.1:0.1)과 num replicate 5 이상의 랜덤 시드 데이터 분할 방식을 추천하는데,
이 방식도 영향을 미친 것 같습니다. 
결과적으로 과적합된 모델은 RMSE가 상당히 잘 나오고 예측값이 평균으로 몰리는 경향이 있었습니다.
(test 예측 값이 10~75 정도로 제한됨)
특히 low와 high 구간 예측은 상관관계가 거의 틀어져 있어서 강제로 보정하는 접근이 불리하게 작용한 것으로 보입니다.

하지만 test 값이 이렇게 나올 때 Public score가 잘 나왔고, 그래서 최종 제출 파일 선정에서 혼동이 많았습니다.
결론적으로 public 데이터는 middle 값에 치중된 데이터가 우연히 많았다고 해석됩니다. 
가뜩이나 test 데이터가 100개 화합물 밖에 없어 개별 화합물 값에 의존을 많이 하는데, 여기에서 public/private을 나누고
랜덤 샘플링까지 해버리니 결과가 이렇게 나온 것으로 보이네요. 
결론적으로 public score 자체를 전혀 믿을 수 없는 대회였다고 생각됩니다.
 

인간은대체왜그럴까
2025.07.31 23:01

무슨 의도로 이번에 이렇게 출제가 됐는진 모르겠지만
가뜩이나 test 데이터가 100개 화합물 밖에 없어 개별 화합물 값에 의존을 많이 하는데, 여기에서 public/private을 나누고
랜덤 샘플링까지 해버리니 결과가 이렇게 나온 것으로 보이네요. 
이 부분은 굉장히 공감가네요 ㅋㅋㅋㅋㅋ  

NAJUNGHWAN
2025.07.31 23:04

이렇게 테스트 데이터가 적을거면 public/private을 나눌 때 최소한 inhibition 구간별 stratified sampling을 했어야 한다고 생각합니다.