시간의 흐름에 대해 특정 패턴과 같은 정보를 가지고 있는 경우를 시계열 데이터라고 함.
일반적으로 머신러닝에서는 '시간'을 특성으로 잡지 않아서 머신러닝에서는 시계열 데이터를 다루지는 않음.
return으로 데이터를 저장하지 않으면 함수의 해당 값을 재사용 할 수 없다.

두개의 $$ 사이에서 수학 수식을 작성하면 바뀐다.
1. $$ y=asin(2\pi ft + t_0) + b $$
2. esc -> m -> shift + enter

함수 안에서 쌍따옴표를 사용하고 쌍따옴표 사이에 입력하면 된다.
def plotSineWave(amp, freq, endTime, sampleTime, startTime, bias): """ plot sine wave y = a sin(2 pi f t + t_0) + b """ pass
아래와 같은 함수를 만들었다고 해보자.

이 경우 함수를 사용할 때 매번 plotSineWave(2,1,10,0.01,0.5,0) 와 같이 매개변수 값을 다 입력해야 실행된다. (심지어 각 자리가 뭐를 뜻하는지 잘 모르겠다.)
이 경우 **kwargs 를 사용한다.
**kwargs를 사용해 기본 값을 미리 세팅해둔다.
단, 여기에서 중요한 것은 kwargs라는 알파벳이 아니다. 이것은 뭐로 사용하든 상관 없다. 별두개가 중요한 것이다.

이렇게 하면 함수를 사용할 때 plotSineWave() 처럼 괄호를 비워놔도 기본값으로 실행된다.
데이터 값을 변경하려면 각 값을 지정해주면 된다.

%%writefile ./set_matplotlib_hangul.py
import platform
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc
path = "c:/Windows/Fonts/malgun.ttf"
if platform.system() == "Darwin":
    print("hangul OK in your MAC!!!")
    rc('font', family='Arial Unicode MS')
elif platform.system() == 'Windows':
    font_name = font_manager.FontProperties(fname=path).get_name()
    print("hangul OK in your Windows!!!")
    rc('font', family=font_name)
else:
    print('Unknown system.. sorry~~~')
plt.rcParams['axes.unicode_minus'] = False
예시1


연간 및 일간 주기성을 모두 반영하여 예측을 수행하도록 한다.

점은 실제 데이터, 파란색 선이 예측 데이터

예시2

미래 예측

예시3

미래 예측

pandas_datareader는 금융 데이터와 경제 지표를 손쉽게 가져와서 분석할 수 있게 해주는 유용한 도구이다.
import pandas as pd import pandas_datareader.data as web import datetime # # 시작일과 종료일 설정 start = datetime.datetime(2020, 1, 1) end = datetime.datetime(2020, 12, 31) # # 야후 금융에서 애플 주식 데이터 가져오기 apple = web.DataReader('AAPL', 'yahoo', start, end) # print(apple.head())이런식으로 사용할 수 있지만 여기서 사용하지는 않았다.(왜 import 했는지 모르겠다)


time = np.arange(0, len(pinkwink_web))
traffic = pinkwink_web['hit'].values
fx = np.linspace(0, time[-1], 1000) # time[-1] 은 time의 가장 마지막 데이터




pd.to_datetime(df['ds'], format='%y. %m. %d.')를 통해 df['ds']를 표준 datetime 형식으로 변환하면, Prophet 모델이 이를 자동으로 인식하여 시계열 예측에 사용할 수 있다고 한다.
Prophet 모델은 기본적으로 ds라는 이름의 날짜 컬럼을 기대하며, 이 컬럼을 통해 시계열 데이터의 시간 간격을 예측하고 통계적인 분석을 수행한다고 한다.

예측 결과를 얻음


m.plot_components(forecast);



