大家好!今天带来了一篇关于自动化时间序列预测的文章。在之前的文章中,介绍了不同的自动化库用于机器学习和自然语言处理任务。本文将探讨如何使用Auto-TS库来自动化时间序列预测模型的实现。
Auto-TS是AutoML的一部分,它自动化了机器学习流水线中的一些组件。这个自动化库帮助非专业人士在不深入了解该领域的情况下训练基本的机器学习模型。本文将讨论如何使用Auto-TS库自动化实现时间序列预测模型。
Auto-TS是一个开源的Python库,主要用于自动化时间序列预测。它可以通过单行代码自动训练多个时间序列模型,帮助选择最适合问题陈述的最佳模型。
Auto-TS库使用遗传编程优化来寻找最优的时间序列预测模型。它训练了朴素、统计、机器学习和深度学习模型,包括所有可能的超参数配置和交叉验证。此外,它还执行数据转换以处理混乱的数据,通过学习最优的NaN填充和异常值移除。
Auto-TS允许选择模型选择的度量组合。以下是安装Auto-TS库的方法:
pip install autots
OR
pip3 install auto-ts
OR
pip install git+git://github.com/AutoViML/Auto_TS
安装Auto-TS库需要以下依赖:
使用Auto-TS库,首先需要导入库:
from auto_ts import auto_timeseries
auto_timeseries函数提供了多种参数,可以调整以分析模型性能的变化。以下是一些可用的参数:
model = auto_timeseries(score_type='rmse', time_interval='Month', non_seasonal_pdq=None, seasonality=False, seasonal_period=12, model_type=['Prophet'], verbose=2)
本文使用的是亚马逊股票价格数据集,时间跨度从2006年1月到2018年1月,数据集从Kaggle下载。Auto-TS库仅提供训练时间序列预测模型。数据集应包含时间或日期格式的列。
首先,加载带有时间/日期列的时间序列数据集:
df = pd.read_csv("Amazon_Stock_Price.csv", usecols=['Date', 'Close'])
df['Date'] = pd.to_datetime(df['Date'])
df = df.sort_values('Date')
接下来,将整个数据集分为训练和测试数据:
train_df = df.iloc[:2800]
test_df = df.iloc[2800:]
现在,将可视化训练测试数据的分割:
train_df.Close.plot(figsize=(15,8), title= 'AMZN Stock Price', fontsize=14, label='Train')
test_df.Close.plot(figsize=(15,8), title= 'AMZN Stock Price', fontsize=14, label='Test')
plt.legend()
plt.grid()
plt.show()
接下来,初始化Auto-TS模型对象,并拟合训练数据:
model = auto_timeseries(forecast_period=219, score_type='rmse', time_interval='D', model_type='best')
model.fit(traindata= train_df, ts_column="Date", target="Close")
现在,可以比较不同模型的准确性:
model.get_leaderboard()
model.plot_cv_scores()
future_predictions = model.predict(testdata=219)