제 5회 ETRI 휴먼이해 인공지능 논문경진대회

알고리즘 | 정형 | 라이프로그 | 논문 | 분류 | Log Loss

  • moneyIcon 상금 530만 원
  • 758명 종료까지 D-24

 

[Public 0.5917] LGBM+XGB 앵커·Subject-hole CV·안정성 피처선별·블렌드

2026.05.03 13:00 1,254 조회 language

멀티 타깃(Q1~S4) 이진 분류를 LGBM / XGB / CatBoost로 돌리는 예시 코드입니다. 베이스 OOF를 특성으로 넣는 앵커 구조와, Subject-hole CV로 검증하는 흐름을 담았고, 최종은 LGBM+XGB 7:3 블렌드 기준으로 Public 0.5917 전략을 정리했습니다.
캘린더·윈도우 정의·블렌드 탐색은 포함되어 있고, 윈도우 쌍 피처 일부는 실제 parquet 연동 전 골격입니다. 데이터는 data/만 두면 되고, 베이스 OOF·대용량 피처가 없으면 전부 재현은 어려울 수 있습니다.

코드
로그인이 필요합니다
0 / 1000
dswook
2026.05.04 18:05

안녕하세요 좋은 코드 작성해주셔서 감사합니다.
앵커가 oof_prediction을 의미하는걸까요?

비비드백
2026.05.04 23:40

안녕하세요. base_oof_path에 넣는 값은, 강한 베이스 모델(V152)이 낸 확률인데, 학습 표에 붙일 때는 누수를 피하려고 OOF 방식으로 행마다 만든 확률입니다. 여기서 앵커는 그 베이스 모델(블렌드) 자체(V152) 를 가리키는 말이고, OOF는 그 확률을 어떻게 만든 건지(교차검증에서 해당 행을 학습에 쓰지 않은 폴드의 모델로 예측해 이어 붙임)를 뜻합니다. 그래서 “앵커 = OOF”라기보다는, “앵커 모델의 학습용 OOF 확률을 CSV로 넣는다” 가 정확합니다.

파일이 없거나 경로를 비우면 베이스 특성은 생략되고, LGBM·XGB·Cat만으로 학습·앙상블하시면 됩니다.

제가 쓰던 OOF CSV는 제공은 드릴 수는 있지만 큰 도움은 안될 것 같습니다. 대신 subject_id, sleep_date, lifelog_date로 행을 1:1 맞춘 뒤 Q1~S4 확률 컬럼을 두고 base_oof_path에 넣으시면 동일한 흐름을 재현하실 수 있습니다. 테스트 행은 보통 베이스를 전체 학습 데이터로 다시 학습한 뒤 확률을 붙이는 식으로 맞추는 편입니다. 지금까지 만드신 모델 중 가장 안정적으로 잘 나온 베이스를 잡고, 그 베이스의 학습용 OOF 확률을 같은 형식으로 두셔도 좋습니다.

V152 구성은 단일 모델이 아니라, 서로 다른 두 실험 파이프라인의 7타겟 확률을 타겟 공통 약 0.3 : 0.7로 블렌드한 산출물입니다. 하위 실험은 라이프로그 다모달리티를 시간 윈도우별로 집계한 대용량 피처와 윈도우 간 상호작용, subject를 고려한 CV(블록/홀 등), 부스팅 타겟별 이진분류 후 예측을 합친 흐름이었습니다. 세부 스크립트·피처 parquet는 공유에 포함하지 못했습니다.

 피처·베이스 구성에 따라 0.59대에 근접할 수도 있으나, 더 좋거나 나빠질 수 있어 동일 숫자는 보장하지 않습니다. 다만 data/ 루트 탐색·타겟·CV·블렌드 뼈대는 참고하실 수 있고, 베이스 없이도 실험·베이스라인에는 충분히 활용 가능하실 거라 생각합니다. 

이전 글
이전 글이 존재하지 않습니다.
현재 글
[Public 0.5917] LGBM+XGB 앵커·Subject-hole CV·안정성 피처선별·블렌드
대회 - 제 5회 ETRI 휴먼이해 인공지능 논문경진대회
좋아요 9
조회 1,254
댓글 2
한 달 전
다음 글
[public 0.6081829394] LSTM 코드 공유
대회 - 제 5회 ETRI 휴먼이해 인공지능 논문경진대회
좋아요 6
조회 1,069
댓글 0
한 달 전