Auto_TS

Auto_TS

自动构建和选择多种时间序列模型的高效工具

Auto_TS是一个时间序列自动建模工具,支持ARIMA、SARIMAX、VAR、分解模型和机器学习模型等多种技术。它能自动构建和选择最佳模型,适用于不同频率的数据,并提供灵活的参数设置。Auto_TS支持交叉验证和预测功能,简化了建模过程,提高了效率。该工具适合数据分析人员使用,可通过简单的代码实现复杂的时间序列建模任务。

Auto_TS时间序列模型自动化机器学习预测ProphetGithub开源项目
<h1 id="auto-ts">Auto_TS:自动时间序列</h1> <p style="font-family:verdana">使用单行代码自动构建多个时间序列模型。现已更新支持Dask。

auto-ts

auto_timeseries是一个复杂的时间序列数据模型构建工具。由于它自动化了许多复杂任务,因此它假设了许多智能默认值。但你可以更改它们。 Auto_Timeseries将快速构建基于Statsmodels ARIMA、季节性ARIMA、Prophet和Scikit-Learn机器学习的预测模型。它将自动选择给出最佳指定分数的最佳模型。

目录

<ul> <li><a href="#Latest">最新更新</a></li> <li><a href="#Citation">引用</a></li> <li><a href="#introduction">什么是auto_ts</a></li> <li><a href="#install">如何安装auto_ts</a></li> <li><a href="#usage">使用方法</a></li> <li><a href="#requirements">要求</a></li> <li><a href="#tips">提示</a></li> <li><a href="#license">许可证</a></li> <li><a href="#copyright">版权</a></li> <li><a href="#disclaimer">免责声明</a></li> </ul>

最新

如果你正在寻找我们库的最新和最重要的更新,请查看我们的更新页面<br>

引用

如果你在研究项目或论文中使用Auto_TS,请使用以下格式进行引用:

"Seshadri, Ram (2020). GitHub - AutoViML/Auto_TS: 使用机器学习和统计技术通过单行代码构建和部署多个时间序列模型。源代码:https://github.com/AutoViML/Auto_TS"

<h2 id="introduction">简介</h2>

Auto_TS(Auto_TimeSeries)使你能够使用ARIMA、SARIMAX、VAR、可分解(趋势+季节性+节假日)模型和集成机器学习模型等技术构建和选择多个时间序列模型。

Auto_TimeSeries是一个用于时间序列数据的自动化机器学习库。Auto_TimeSeries最初由Ram Seshadri构思和开发,后来由Nikhil Gupta在功能和范围上进行了大幅扩展和升级,达到了现在的状态。

auto-ts.Auto_TimeSeries是你将使用训练数据调用的主要函数。你可以选择想要的模型类型:统计、机器学习或基于Prophet的模型。你还可以告诉它根据你想要的评分参数自动选择最佳模型。它将返回最佳模型和包含你指定的预测期数(默认为2)的预测字典。

安装

pip install auto-ts

如果上面的方法不起作用,请使用pip3 install auto-ts

pip install git+https://github.com/AutoViML/Auto_TS.git

在Colab上安装

如果你正在使用Colab或Kaggle内核并想安装auto_ts,请使用以下步骤(否则你会收到错误!):

!pip install auto-ts --no-deps --ignore-installed
!pip install 'fsspec>=0.3.3'
!pip install statsmodels --upgrade
!pip install pmdarima

auto_ts_colab

在Windows上安装

Windows用户在安装Prophet和pystan依赖项时可能会遇到困难。因此,我们建议在安装auto-ts之前按照Prophet文档页面的说明安装Prophet。对于Anaconda用户,可以通过以下方式完成:

conda install -c conda-forge prophet pip install auto-ts
<h2 id="usage">使用方法</h2>

首先,你需要从auto_ts库中导入auto_timeseries:<br>

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, )

以下是输入参数的定义:

  • score_type (默认为'rmse'): 用于对模型进行评分的指标。类型为字符串。 目前仅支持以下两种类型:
    1. "rmse": 均方根误差(RMSE)
    2. "normalized_rmse": RMSE与实际值标准差的比率
  • time_interval (默认为None): 用于指示数据收集的频率。 它有两个用途:(1)构建Prophet模型,(2)在用户未提供(None)的情况下用于推断SARIMAX的季节性周期。类型为字符串。我们使用以下pandas日期范围频率别名,这些别名被Prophet用于创建预测数据框。<p>因此,请注意以下是允许使用的频率别名列表: ['B','C','D','W','M','SM','BM','CBM', 'MS','SMS','BMS','CBMS','Q','BQ','QS','BQS', 'A,Y','BA,BY','AS,YS','BAS,BYS','BH', 'H','T,min','S','L,ms','U,us','N'] 首先,您可以为您的数据测试以下代码并查看结果(或者您可以将其保留为None,auto_timeseries将尝试为您推断):
    • 'MS', 'M', 'SM', 'BM', 'CBM', 'SMS', 'BMS' 用于月度频率数据
    • 'D', 'B', 'C' 用于日频率数据
    • 'W' 用于周频率数据
    • 'Q', 'BQ', 'QS', 'BQS' 用于季度频率数据
    • 'A,Y', 'BA,BY', 'AS,YS', 'BAS,YAS' 用于年度频率数据
    • 'BH', 'H', 'h' 用于小时频率数据
    • 'T,min' 用于分钟频率数据
    • 'S', 'L,milliseconds', 'U,microseconds', 'N,nanoseconds' 用于秒频率数据
  • non_seasonal_pdq (默认为(3,1,3)): 指示在搜索统计ARIMA模型时要使用的(p, d, q)的最大值。 如果为None,则假定以下值:max_p = 3, max_d = 1, max_q = 3。类型为元组。
  • seasonality (默认为False): 目前仅用于构建SARIMAX模型。True或False。类型为布尔值。
  • seasonal_period (默认为None): 指示数据中的季节性周期。这取决于数据中定期出现的峰值(或谷值)周期。 目前仅用于构建SARIMAX模型。 如果seasonality设置为False,则此参数无影响。 如果为None,程序将尝试从数据的time_interval(频率)推断此值。 我们假设以下默认值,但您可以随意更改:
    1. 如果频率为月度,则seasonal_period假定为12
    2. 如果频率为日度,则seasonal_period假定为30(但也可能是7)
    3. 如果频率为周度,则seasonal_period假定为52
    4. 如果频率为季度,则seasonal_period假定为4
    5. 如果频率为年度,则seasonal_period假定为1
    6. 如果频率为小时,则seasonal_period假定为24
    7. 如果频率为分钟,则seasonal_period假定为60
    8. 如果频率为秒,则seasonal_period假定为60 类型为整数
  • conf_int (默认为0.95): 用于构建Prophet模型的置信区间。默认:0.95。类型为浮点数。
  • model_type (默认:'stats'): 要构建的模型类型。默认仅构建统计模型。如果提供列表,则仅构建这些模型。可以是字符串或模型列表。允许的值为: 'best', 'prophet', 'stats', 'ARIMA', 'SARIMAX', 'VAR', 'ML'
  • "prophet" 将使用 Prophet 构建模型 -> 这意味着你必须安装 Prophet
  • "stats" 将构建基于 statsmodels 的 ARIMA、SARIMAX 和 VAR 模型
  • "ML" 将使用随机森林构建机器学习模型,前提是提供了解释变量
  • "best" 将尝试构建所有模型并选择最佳模型
  • verbose (默认值=0): 表示打印的详细程度。类型为整数。

警告:"best" 对于大型数据集可能需要一些时间。我们建议在尝试运行整个数据之前,先从数据集中选择一个小样本。

定义模型对象后的下一步是用一些真实数据来拟合它:

model.fit( traindata=train_data, ts_column=ts_column, target=target, cv=5, sep="," )

以下是参数的定义方式:

  • traindata (必需): 可以是数据框或文件。如果是文件,必须给出文件名及其数据路径。如果你的笔记本中已经加载了数据框,它也接受 pandas 数据框。
  • ts_column (必需): 数据集中日期时间列的名称(可以是列名或列索引中的索引号)。
  • target (必需): 你试图预测的列名。目标也可以是数据集中唯一的列。
  • cv (默认值=5): 你可以输入任何整数作为交叉验证数据集中想要的折数。
  • sep (默认值=","): Sep 是训练数据文件中的分隔符。如果你的分隔符是 ","、"\t"、";",请确保在这里输入。如果不是,则忽略。

训练模型对象后的下一步是用测试数据进行一些预测:

predictions = model.predict( testdata = ..., # 可以是数据框或代表预测期的整数 model = 'best' # 或任何其他代表已训练模型的字符串 )

以下是参数的定义方式。你可以选择以数据框的形式发送测试数据,或发送一个整数来决定你想预测多少期。你只需要

  • testdata (必需): 可以是包含测试数据的数据框,或者你可以使用代表预测期(你想要的)的整数。
  • model (可选,默认值 = 'best'): 你想在多个已训练模型中使用的模型名称。记住默认是最佳模型。但你可以选择任何你想用来预测的模型。类型是字符串。
<h2 id="requirements">要求</h2> dask, scikit-learn, prophet, statsmodels, pmdarima, XGBoost <h2 id="license">许可证:</h2> Apache License 2.0 <h2 id="Tips">提示</h2>
  • 我们建议在尝试运行整个数据之前,先从数据集中选择一个小样本。以及评估指标,以便选择最佳模型。目前,"stats" 内的模型使用 AIC 和 BIC 进行比较。然而,不同类型的模型之间使用 RMSE 进行比较。模型的结果使用 RMSE 和标准化 RMSE(RMSE 与实际值标准差的比率)显示。
  • 你必须清理数据,不能有任何缺失值。确保目标变量是数值型,否则无法运行。如果你的数据集中有多个目标变量,现在只需指定一个,如果你知道数据中的时间间隔,可以指定它。否则,auto-ts 将尝试自行推断时间间隔。
  • 如果你给 Auto_Timeseries 一个与数据不同的时间间隔,它会自动将数据重新采样到给定的时间间隔,并使用重新采样期间的目标均值。
  • 注意,除了必需的 filename 和 ts_column 输入参数外,所有其他参数都是可选的。
  • 注意,你可以选择为文件中的数据指定分隔符。默认为逗号(",")。
  • "time_interval" 选项是你可以在下面这个页面找到的任何代码。 Pandas 日期范围频率别名
  • 可选地,你可以给出 seasonal_period 作为衡量数据中季节性的任何整数。如果未给出,seasonal_period 自动假定如下:
    • 月 = 12,
    • 日 = 30,
    • 周 = 52,
    • 季度 = 4,
    • 年 = 1,
    • 小时 = 24,
    • 分钟 = 60 和
  • 秒数 = 60。
  • 如果你想给出自己的非季节性阶数,请以non_seasonal_pdq的形式输入,对于季节性阶数,则使用seasonal_PDQ作为输入。使用元组格式。例如,seasonal_PDQ = (2,1,2)non_seasonal_pdq = (0,0,3)。它只接受元组格式。默认值为None,Auto_Timeseries将自动搜索最佳的p,d,q(非季节性)和P,D,Q(季节性)阶数,方法是对每个p,d,q值搜索0到12的所有参数,对每个P,Q搜索0到3,对D搜索0到1。
<h2 id="disclaimer">免责声明:</h2>

这不是Google官方支持的项目。

<h2 id="copyright">版权</h2>

© Google

编辑推荐精选

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

下拉加载更多