콘텐츠로 건너뛰기
Reddit

LightGBM 가격 예측: 학습/검증 분할과 Optuna 피처 선택 조언 필요 🤖

r/Daytrading 조회 16
원문 보기 →
💡

핵심 결론: 시계열 특성을 반영한 시간순 분할과 단계적 피처 축소(사전 필터링 → Optuna)로 검증 신뢰도를 높이는 것이 좋습니다. 이유: 무작정 랜덤 분할이나 모든 피처를 Optuna에 맡기면 과적합과 비현실적 성능평가, 지나친 계산비용 위험이 큽니다. 집중할 점: 검증셋은 최신 구간으로 확보하고 상관관계/분산 기반으로 먼저 피처를 줄인 뒤 Optuna로 미세조정하세요.

안녕하세요, LightGBM으로 가격(프라이스) 예측 모델을 만들고 있습니다. 현재 데이터셋에는 약 108개의 피처가 있습니다.

학습/검증(또는 테스트) 분할을 어떻게 잡아야 가장 신뢰할 만한 결과를 얻을지 고민 중입니다. 지금은 학습을 8,000~12,000행, 테스트를 500~1,500행 정도로 실험하고 있는데, 이 범위에서 더 구체적인 기준이나 권장값이 있을까요?

피처 선택은 현재 Optuna로 상위 20~30개를 고르는 방식으로 하고 있습니다. 그런데 모든 선택을 Optuna에 맡기면 반복 실험 시간이 매우 길어지기 때문에, 일부 파라미터나 피처를 사전에 고정하는 게 더 효율적일지 궁금합니다.

학습/검증 분할 설정이나 피처 선택 과정을 어떻게 최적화하면 좋을지 경험이나 팁 있으면 공유 부탁드립니다!


🧐 배경 설명 및 요약

왜 이 글이 나왔나: 작성자는 LightGBM으로 가격 예측 모델을 만들면서 데이터 분할과 피처 선택 방법 때문에 실험이 비효율적이라고 느껴 조언을 구하려고 글을 올렸습니다. 주된 고민은 시간순(시계열) 데이터를 어떻게 나눌지, 그리고 많은 피처(108개) 가운데 어떻게 효율적으로 중요한 것들만 골라낼지입니다.

작성자가 실제로 묻고 있는 것: 1) 학습/검증(또는 테스트) 데이터의 적절한 크기와 분할 방식은 무엇인지, 2) Optuna 같은 자동 탐색 도구에 모든 것을 맡기지 않으려면 어떤 사전 필터링이나 단계적 접근이 좋은지입니다. 핵심 불안은 과적합, 평가 신뢰도 저하, 그리고 계산 비용입니다.

기본 개념(간단히): '학습/검증 분할'은 모델을 학습시킬 데이터와 성능을 평가할 데이터를 나누는 것입니다. 시계열 데이터는 시간 순서를 유지해야 하므로 랜덤 분할 대신 최근 구간을 검증용으로 남겨두는 것이 일반적입니다. 'Optuna'는 자동으로 하이퍼파라미터(또는 피처 조합)를 탐색하는 도구라서 많은 반복이 필요하면 시간이 많이 듭니다.

실무적 팁(간단 권장): 1) 분할 방식 — 시간 순서를 유지한 채 최신 구간을 holdout으로 확보하고, 가능한 경우 워크포워드(rolling / walk-forward) 교차검증을 사용하세요. 2) 검증 크기 — 데이터 빈도와 시장 변동성에 따라 다르지만, 테스트는 최근 몇백~몇천 샘플(예: 데이터의 5~20%)을 유지해 실제 환경 성능을 확인하세요. 3) 피처 선별 — 먼저 상관관계(또는 공선성) 제거, 저분산 피처 삭제, 단변량 점수나 LightGBM 기본 중요도로 1차 필터링을 하고, 그 결과물로 Optuna 탐색 대상 범위를 줄이세요. 4) Optuna 효율화 — trial 수 제한, 조기종료(early stopping), 병렬화, 또는 전진 선택(greedy forward selection) 방식과 결합해 계산비용을 낮추세요.

이 요약은 작성자가 더 신뢰성 있는 검증 방법과 계산 효율을 모두 챙기도록 돕기 위한 것입니다. 구체적인 비율과 방법은 데이터 빈도(초·분·일봉), 비정상성(급변성) 여부, 모델 업데이트 주기에 따라 달라집니다.

댓글 (0)

로그인하고 댓글을 작성하세요.

아직 댓글이 없습니다.