JPX Tokyo Stock Exchange Prediction

MSMoon·2025년 5월 3일

kaggle 학습

목록 보기
12/18
post-thumbnail

1. 대회 설명

  • 목표: 일본 도쿄 증권거래소에서 상장된 주식의 단기 수익률(returns) 을 예측
  • 문제 유형: 시계열 기반의 순위 예측(rank prediction)
  • 데이터 배경
    -> 주식별 일간 데이터(stock_price.csv)와 경제 지표(financials.csv) 등이 제공
    -> 다수의 파생 변수 및 금융 지표가 포함되어 있으며, 학습 시 시계열 데이터 처리와 결측치 처리가 중요

2. 성능 평가 방식 이해

  • RankIC(TOP200)
    -> 예측한 리턴값을 기준으로 상위 200개 종목을 선정한 후, 실제 리턴과의 순위 상관계수(rank correlation) 를 기반으로 한 누적 점수로 평가
    -> 단순 RMSE와 달리 예측값의 상대적 순서가 중요

3. 데이터 전처리

3-1) EDA

  • 데이터는 종목별 일별 시계열 구조이며, 특정 날짜 또는 종목에서 일부 결측이 발생함
  • Close, Open, Volume, AdjustmentFactor 등의 기본 지표가 존재하며, 보정 종가 생성이 필요함

3-2) Data Cleansing

  • AdjustmentFactor를 활용해 보정 종가(AdjustedClose) 생성
  • 예측 날짜 이전 데이터만 활용하여 정보 누수 방지
  • ExpectedDividend 컬럼은 Kaggle에서는 주어지지만, Colab에서는 별도로 수동 생성 진행

3-3) Feature Engineering

  • return_1day, close/open 비율, high/low 비율, 변동성(rolling std), 이동평균 등을 생성
  • ExpectedDividend > 0일 경우 1로 처리하여 리워드 항목으로 활용
  • 개별 종목에 대해 하루치 피처를 생성 후 예측 점수 계산

4. 모델링

4-1) 모델

  • 순수한 rule-based 방식으로 모델은 사용되지 않음

4-2) 데이터 분할

  • train_files 내 과거 데이터를 누적하여 특정 날짜 이전만 활용 (정보 누수 방지)
  • 예측 대상 날짜(test_date)는 수동으로 지정하여 진행

4-3) 하이퍼파라미터 튜닝

  • rule 기반 방식이므로 하이퍼파라미터 없음

4-4) 최종 성능

  • 필사 진행한 원본 내용은 4위 점수 획득

5. 정리(Lesson & Learned)

  • Kaggle API (iter_test, env.predict)는 Colab에서 작동하지 않으므로 로컬 방식으로 예측 및 제출 구조를 재구성해야 함
  • Rank 기반 평가에서 중요한 것은 절대값보다 순서라는 점을 체감
  • 시계열 데이터를 다룰 때는 정보 누수 방지와 시간 순서 기반 피처 설계가 중요

JPX Tokyo Stock Exchange Prediction

0개의 댓글