Auto_TS简介
Auto_TS(Auto_TimeSeries)是一个功能强大的自动化时间序列预测工具,它能够自动构建和选择多种时间序列模型,包括ARIMA、SARIMAX、VAR、分解(趋势+季节性+节假日)模型以及集成机器学习模型。
Auto_TS的主要特点包括:
- 只需一行代码即可完成复杂的时间序列建模任务
- 支持多种统计和机器学习模型,包括ARIMA、SARIMAX、Prophet、XGBoost等
- 自动选择最佳模型和参数
- 支持多变量时间序列预测
- 可处理大规模数据集
- 提供概率预测(上下界)
- 支持用户自定义外部回归变量
Auto_TS最初由Ram Seshadri构思和开发,后来由Nikhil Gupta大幅扩展了功能和范围,使之成为现在这样功能丰富的自动化时间序列库。
安装与使用
安装
可以使用pip安装Auto_TS:
pip install auto-ts
对于Windows用户,由于Prophet和pystan依赖项可能存在安装困难,建议先按照Prophet文档的说明安装Prophet,然后再安装auto-ts。
基本使用
使用Auto_TS的基本步骤如下:
- 导入auto_timeseries:
from auto_ts import auto_timeseries
- 初始化模型对象:
model = auto_timeseries(
score_type='rmse',
time_interval='Month',
model_type=['Prophet'],
verbose=2
)
- 拟合模型:
model.fit(
traindata=train_data,
ts_column=ts_column,
target=target,
cv=5
)
- 进行预测:
predictions = model.predict(
testdata=test_data,
model='best'
)
主要特性
多种模型支持
Auto_TS支持多种时间序列模型,包括:
- 统计模型:ARIMA、SARIMAX、VAR
- 机器学习模型:Prophet、XGBoost、随机森林等
- 集成模型
用户可以选择使用单一类型的模型,也可以让Auto_TS自动尝试所有模型并选择最佳模型。
自动参数优化
Auto_TS会自动搜索最佳的模型参数,例如ARIMA模型的p、d、q参数,无需用户手动调优。
多变量预测
支持多变量(多个时间序列)输出预测,能够同时对多个相关序列进行建模和预测。
概率预测
除了点预测外,还支持概率预测,可以给出预测值的上下界。
大规模数据处理
多数模型可以轻松扩展到处理成千上万的输入序列。
外部回归变量
支持传入用户自定义的外部回归变量,以提高预测精度。
高级功能
自动特征搜索
Auto_TS集成了AutoML特征搜索功能,可以通过遗传算法自动找到最佳的模型、预处理和集成方法。
横向和马赛克式集成
Auto_TS的旗舰集成方法包括横向集成和马赛克式集成,允许每个序列使用最准确的模型,同时保持可扩展性。
交叉验证
提供多种交叉验证选项,可以更好地评估模型性能。
子集和加权
支持对数据应用子集和加权,以处理不平衡或优先级不同的序列。
回归变量生成
提供回归变量生成工具,可以自动创建有助于预测的特征。
模拟预测模式
支持模拟预测模式,可以生成多种可能的未来场景。
事件风险预测
能够对特定事件的风险进行预测。
实时数据集
支持处理实时更新的数据集。
模板导入导出
允许导入和导出模型模板,方便在不同项目间复用最佳实践。
性能优化建议
为了在大规模数据集上获得更好的性能,Auto_TS提供了一些优化建议:
- 使用预定义的模型列表,如
fast
或fast_parallel
。 - 对于相似的多个序列,使用
subset
参数,如subset=100
。 - 设置
model_interrupt=True
以允许中断长时间运行的模型。 - 使用
.fit()
的result_file
方法保存进度。 - 降低
transformer_max_depth
值可以提高速度。 - 减少
num_validations
和models_to_validate
可以减少运行时间。 - 对于大型数据集,考虑上采样(如从每日预测改为每月预测)。
- 预先填充NaN值可以提高速度。
- 在
metric_weighting
中提高runtime_weighting
的值可以引导搜索更快的模型。
通过这些优化,Auto_TS可以更好地处理大规模时间序列数据集,在保证预测精度的同时提高运行效率。
总结
Auto_TS是一个功能强大、易于使用的自动化时间序列预测工具。它集成了多种先进的时间序列模型和技术,能够自动化处理从数据预处理到模型选择的整个过程。无论是对于初学者还是经验丰富的数据科学家,Auto_TS都能大大简化时间序列预测的工作流程,提高预测效率和精度。随着时间序列数据在各个领域的广泛应用,Auto_TS无疑将成为一个越来越重要的工具。