[Kaggle] Optiver - Trading At The Close | NN with no feature engineering (get 5.34x)

immanuelk1m·2024년 1월 2일
0

Kaggle

목록 보기
1/8

Code From

https://www.kaggle.com/competitions/optiver-trading-at-the-close/discussion/462639

NN with no feature engineering

선정 이유

no feature engineering & LSTM => MAE 5.34x
(1st 5.2123, 2nd 5.3034)

Concept

stock_id, date_id Group 후 , window size (3) 단위로 생성한 Sequence Data들을 LSTM 학습

Code Flow

Data Set

  • 'row_id', 'time_id' 제거
  • 481 days 중 480 days를 train, 1 day를 test
  • price data type => float32
  • Check NaN => Each Columns median
  • 'seconds_in_bucket' => categorical Feature로 분류
  • 'Numerical Feature' => Standard Scale

Feature Engineering

  • stock_id 의 1,2,3일 전 target value를 target_lag Feature로 생성

Batch

  • Data Set을 Window Size 3인 Sequence Data로 변환

Model Architecture

  • Input Layer : (3, 15) // numerical 14 + categorical 1

  • 모든 Numerical Feature의 시간 차이별 Layer 추가 후 Zero Padding
    : 길이가 3인 Sequence내에서 [0,1], [1,2] 의 변화와 [0,2] 의 변화 정도를 Feature로 추가 , Layer Size (3, 15)에 맞춰야하므로 Padding

  • seconds_in_bucket => 10 dimension으로 Embedding

LSTM LAYER

  • LSTM Units : 64 (hidden layer의 차원)
  • BatchNormalization
  • Dropout : 0.3
  • Optimizer : Adam
  • Learing Rate 0.001

Insight

No Feature Engineering Just LSTM

Feature Engineering이 아예 없는 것은 아니나, 단순히 LSTM만으로도 높은 성과를 보여주었음을 확인 가능

'seconds_in_bucket' => categorical Feature로 분류

Upbit의 Time_id 또한 categorical Feature로 분류하는 것이 유의미한 결과가 있을 것

profile
개발 새발

0개의 댓글

관련 채용 정보