In [2]:
import numpy as np
import pandas as pd
from prophet import Prophet
import warnings
warnings.filterwarnings("ignore")
df = pd.read_csv('BABA.csv')
df.head()
# 筛选特定列
new_df = df[['Date','Close']]
# 为Prophet Model 时间序列:ds, price:y重命名列
new_df.columns = ['ds','y']
new_df
Out[2]:
| ds | y | |
|---|---|---|
| 0 | 2020-01-02 | 219.770004 |
| 1 | 2020-01-03 | 217.000000 |
| 2 | 2020-01-06 | 216.639999 |
| 3 | 2020-01-07 | 217.630005 |
| 4 | 2020-01-08 | 218.000000 |
| ... | ... | ... |
| 1084 | 2024-04-24 | 74.629997 |
| 1085 | 2024-04-25 | 75.110001 |
| 1086 | 2024-04-26 | 75.550003 |
| 1087 | 2024-04-29 | 76.410004 |
| 1088 | 2024-04-30 | 74.849998 |
1089 rows × 2 columns
In [3]:
# 初始化模型
model = Prophet()
# 训练模型
model.fit(new_df)
future = model.make_future_dataframe(periods=360,freq='D') # 预测未来360天
# 模型预测
guess = model.predict(future)
guess
model.plot(guess)
12:13:31 - cmdstanpy - INFO - Chain [1] start processing 12:13:32 - cmdstanpy - INFO - Chain [1] done processing
Out[3]: