DEEP LEARNING/Deep Learning Project

DL(딥러닝) 실습 : Prophet을 활용한 테슬라 주가 분석

신강희 2024. 5. 2. 13:06
728x90

 

# 테슬라 주가 데이터를 다운받아서 Prophet을 활용하여 분석해 보자.

# 출처 : https://www.nasdaq.com/market-activity/stocks/tsla/historical

import pandas as pd
df = pd.read_csv('/content/HistoricalData_1713768604457.csv')
df.info()

 

# 분석을 좀더 용이하게 하기위해 컬럼명을 간결하게 변경

df.columns = ['Date','Close','Volume','Open','High','Low' ]
df.columns

 

Index(['Date', 'Close', 'Volume', 'Open', 'High', 'Low'], dtype='object')

 

# 테슬라 데이터라는 구분을 위해 ID 컬럼을 넣어주자

df['ID'] = 'TSLA'
df

 

# $ 와 , 표시로인해 데이터가 문자열로 인식하고 있기때문에 해당 기호를 빼고 숫자데이터로 바꿔주어야 한다.

df['Close'] = df['Close'].str.replace('$','').str.replace(',','').astype(float)
# prompt: Open 컬럼, High 컬럼, Low 컬럼에 값을 $ 사인 제거하고 숫자로 바꿔줘.

df['Open'] = df['Open'].str.replace(',','').str.replace('$','').astype(float)
df['High'] = df['High'].str.replace(',','').str.replace('$','').astype(float)
df['Low'] = df['Low'].str.replace(',','').str.replace('$','').astype(float)
df.info()

 

from prophet import Prophet
prophet = Prophet()

 

# Date와 최고가를 기준으로 하여 Prophet 학습을위해 데이터 가공

df_prophet = df[['Date','High']]
# 컬렴명 변경
 
df_prophet.columns = ['ds', 'y']

 

# Prophet 학습

prophet.fit(df_prophet)
INFO:prophet:Disabling daily seasonality. Run prophet with daily_seasonality=True to override this.
DEBUG:cmdstanpy:input tempfile: /tmp/tmpm42fpyk_/g258mhel.json
DEBUG:cmdstanpy:input tempfile: /tmp/tmpm42fpyk_/xfx_ctqk.json
DEBUG:cmdstanpy:idx 0
DEBUG:cmdstanpy:running CmdStan, num_threads: None
DEBUG:cmdstanpy:CmdStan args: ['/usr/local/lib/python3.10/dist-packages/prophet/stan_model/prophet_model.bin', 'random', 'seed=59387', 'data', 'file=/tmp/tmpm42fpyk_/g258mhel.json', 'init=/tmp/tmpm42fpyk_/xfx_ctqk.json', 'output', 'file=/tmp/tmpm42fpyk_/prophet_model83getu11/prophet_model-20240422075235.csv', 'method=optimize', 'algorithm=lbfgs', 'iter=10000']
07:52:35 - cmdstanpy - INFO - Chain [1] start processing
INFO:cmdstanpy:Chain [1] start processing
07:52:36 - cmdstanpy - INFO - Chain [1] done processing
INFO:cmdstanpy:Chain [1] done processing

 

# freq='B' 는 비즈니스 데이만 적용해서 계산해 달라는 명령어
 
future = prophet.make_future_dataframe(periods= 90, freq='B')

 

# 휴일 빠졌는지 확인
 
future.tail(15)

 

# 예측을 실행하고 예측값을 새로운 변수명으로 메모리에 업로드

forecast = prophet.predict(future)

 

# 예측 결과를 시각화 해보자

import matplotlib.pyplot as plt
prophet.plot(forecast)
plt.savefig('prophet1.png')

 

prophet.plot_components(forecast)
plt.savefig('prophet2.png')

 

Prophet 테슬라 주가 예측 실습 종료

반응형