시작하기무료로 시작하기

거래량으로 하는 Feature 엔지니어링

더 정확한 예측을 위해 비선형 모델을 사용해 보겠습니다. 선형 모델은 특징들이 타깃과 선형적으로 상관되어야 합니다. 다른 Machine Learning 모델은 특징들을 비선형 방식으로 조합할 수 있습니다. 예를 들어, 가격의 이동 평균이 상승하고 있을 때 가격이 오르지만, 거래량의 이동 평균은 하락하고 있다면 어떨까요? 이런 상호작용을 포착하는 방법은 특징들을 곱해 주거나, 비선형성을 처리할 수 있는 Machine Learning 알고리즘(예: random forests)을 사용하는 것입니다.

다른 특징들과 상호작용할 수 있는 정보를 더 반영하기 위해 약한 상관의 특징을 추가할 수 있습니다. 먼저 lng_dfAdj_Volume 열에 있는 거래량 데이터를 추가하겠습니다.

시작하기 전에, TA-Lib 함수(예: SMA())에는 pandas 객체가 아니라 Numpy 배열을 제공해야 한다는 점을 기억하세요. pandas Series나 DataFrame의 .values 속성을 사용하면 Numpy 배열로 변환할 수 있습니다.

이 연습은 강의의 일부입니다

Python으로 배우는 금융 분야 Machine Learning

강의 보기

연습 안내

  • 거래량의 1일 등락률을(pandaspct_change() 사용) 생성하고, lng_dfAdj_Volume_1d_change 열에 할당하세요.
  • 위에서 만든 거래량 1일 등락률의 5일 이동 평균을 생성하고, lng_dfAdj_Volume_1d_change_SMA 열에 할당하세요.
  • new_features 목록을 사용해 새로 만든 두 특징의 히스토그램을 그리세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Create 2 new volume features, 1-day % change and 5-day SMA of the % change
new_features = ['Adj_Volume_1d_change', 'Adj_Volume_1d_change_SMA']
feature_names.extend(new_features)
lng_df[____] = lng_df['Adj_Volume'].____
lng_df[____] = talib.SMA(____[____].____,
                        timeperiod=____)

# Plot histogram of volume % change data
lng_df[____].plot(kind='hist', sharex=False, bins=50)
plt.show()
코드 편집 및 실행