[python] 딥러닝을 이용한 주식 가격 예측 방법

주식 시장은 매우 변동성이 있어서 예측이 어렵습니다. 그러나 딥러닝을 활용하면 과거 데이터를 기반으로 주식 가격을 예측하는 데 도움이 될 수 있습니다. 이번 글에서는 딥러닝을 활용한 주식 가격 예측 방법에 대해 알아보겠습니다.

1. 데이터 수집

먼저, 주식 데이터를 수집해야 합니다. Yahoo Finance나 Investing.com과 같은 웹사이트에서 주식 시장 데이터를 가져올 수 있습니다. 이 데이터는 주식 가격, 거래량, 기업 실적 등 다양한 정보를 포함하고 있습니다.

import pandas as pd
import yfinance as yf

ticker = 'AAPL'  # 예시로 애플 주식 데이터를 가져오겠습니다
start_date = '2010-01-01'
end_date = '2020-01-01'

data = yf.download(ticker, start=start_date, end=end_date)

2. 데이터 전처리

다운로드한 데이터를 전처리하여 딥러닝 모델에 활용할 수 있도록 가공해야 합니다. 주식 데이터의 경우, 주식 가격의 변화 및 거래량 등을 고려하여 데이터를 정리해야 합니다.

# 주식 가격의 변화율 계산
data['Return'] = data['Close'].pct_change()

# 이동평균 등 기술적 지표 추가
data['MA10'] = data['Close'].rolling(window=10).mean()
data['MA50'] = data['Close'].rolling(window=50).mean()

# 결측치 처리
data = data.dropna()

3. 딥러닝 모델 생성

데이터를 전처리하고 나면, 딥러닝 모델을 생성하여 학습시킬 수 있습니다. 시계열 데이터에 대해 LSTM(Long Short-Term Memory) 모델을 사용하는 것이 일반적입니다.

from keras.models import Sequential
from keras.layers import LSTM, Dense

model = Sequential()
model.add(LSTM(units=50, return_sequences=True, input_shape=(X_train.shape[1], 1)))
model.add(LSTM(units=50, return_sequences=False))
model.add(Dense(units=1))

model.compile(optimizer='adam', loss='mean_squared_error')

model.fit(X_train, y_train, batch_size=64, epochs=100)

4. 예측 및 평가

모델을 학습시킨 후에는 테스트 데이터를 사용하여 주식 가격을 예측하고 모델을 평가할 수 있습니다.

predictions = model.predict(X_test)

# 예측 결과 시각화
plt.plot(y_test, color='red', label='Real Stock Price')
plt.plot(predictions, color='blue', label='Predicted Stock Price')
plt.title('Stock Price Prediction')
plt.show()

이를 통해 딥러닝을 활용하여 주식 가격을 예측하는 방법에 대해 알아보았습니다. 주식 시장의 복잡성을 완전히 모델링하는 것은 어렵지만, 딥러닝을 활용하여 시장 동향을 예측하는 데 있어서 기본적인 틀을 제공할 수 있습니다.

참고 자료: Getting Stock Data