当前位置: 首页 > news >正文

安徽合肥制作网站公司wordpress开源协议

安徽合肥制作网站公司,wordpress开源协议,想做企业网站,Wordpress内存占用高时间序列预测领域正在经历一个非常激动人心的时期。在过去的三年里#xff0c;我们见证了许多重要的贡献#xff0c;如N-BEATS、N-HiTS、PatchTST和TimesNet等。同时#xff0c;大型语言模型#xff08;LLM#xff09;近来在流行度方面取得了很大的成功#xff0c;例如Ch… 时间序列预测领域正在经历一个非常激动人心的时期。在过去的三年里我们见证了许多重要的贡献如N-BEATS、N-HiTS、PatchTST和TimesNet等。同时大型语言模型LLM近来在流行度方面取得了很大的成功例如ChatGPT因为它们可以适应各种任务而无需进一步训练。 这引出了一个问题类似于自然语言处理中存在的基础模型是否可以存在用于时间序列的基础模型是否可能对大量时间序列数据进行预训练的大型模型然后能够在未见数据上产生准确的预测 通过Azul Garza和Max Mergenthaler-Canseco提出的TimeGPT-1作者将LLM背后的技术和架构调整到了预测领域成功地构建了第一个能够进行零次推理的时间序列基础模型。在本文中我们首先探讨TimeGPT背后的架构以及该模型的训练方式。然后我们将其应用于一个预测项目评估其性能与其他最先进的方法如N-BEATS、N-HiTS和PatchTST等进行对比。 探索TimeGPT 正如前面提到的TimeGPT是首次尝试创建用于时间序列预测的基础模型。 如何对TimeGPT进行训练以在未见数据上进行推理的示例 从上图中我们可以看到TimeGPT背后的一般思想是在大量不同领域的数据上训练模型然后在未见数据上进行零次推理。当然这种方法依赖于迁移学习即模型能够使用其在训练过程中获得的知识来解决新任务。现在这只有在模型足够大且在大量数据上进行训练时才能实现。 训练TimeGPT 为此作者在超过1000亿个数据点上训练了TimeGPT所有这些数据点都来自开源时间序列数据。该数据集涵盖了各种领域从金融、经济和天气到网络流量、能源和销售。 请注意作者并没有透露用于策划1000亿个数据点的公共数据的来源。 这种多样性对于基础模型的成功至关重要因为它可以学习不同的时间模式从而更好地进行泛化。 例如我们可以预期天气数据具有每天白天较热夜晚较冷和每年的季节性而车流量数据可能具有每天白天车辆更多和每周的季节性工作日车辆更多。 为确保模型的健壮性和泛化能力预处理被保持到最小。实际上只填充了缺失值其余保持在原始形式。虽然作者没有指定数据插补的方法但我怀疑使用了某种插值技术如线性插值、样条插值或移动平均插值。然后该模型在多天内进行训练期间优化了超参数和学习率。虽然作者没有透露训练需要多少天和多少个GPU但我们知道该模型是在PyTorch中实现的它使用Adam优化器和学习速率衰减策略。 TimeGPT的架构 TimeGPT利用基于Google和多伦多大学在2017年的开创性工作的自注意力机制的Transformer架构。 从上图中我们可以看到TimeGPT使用了完整的编码器-解码器Transformer架构 输入可以包含一窗历史数据以及外生数据比如一次性事件或另一个时间序列。 输入被馈送到模型的编码器部分。编码器内部的注意力机制然后从输入中学习不同的属性。然后将其馈送到解码器解码器使用学到的信息生成预测。当达到用户设置的预测时间范围的长度时预测序列就结束了。值得注意的是作者在TimeGPT中实现了符合性预测允许模型基于历史误差估计预测区间。 TimeGPT的功能 考虑到TimeGPT是构建时间序列基础模型的首次尝试它具有各种广泛的功能。首先由于TimeGPT是一个预训练模型这意味着我们可以在没有在特定数据上进行训练的情况下生成预测。当然仍然可以对模型进行微调以适应我们的数据。 其次该模型支持用于预测目标的外生变量并且可以处理多变量预测任务。最后通过使用符合性预测TimeGPT可以估计预测区间。这反过来使模型能够执行异常检测。基本上如果数据点落在99%置信区间之外那么模型将其标记为异常。 请记住所有这些任务都可以使用零次推理或进行一些微调来完成这对于时间序列预测领域来说是一种范式的彻底变革。现在我们对TimeGPT有了更加坚实的理解知道它是如何工作和如何训练的让我们看看该模型的实际表现。 使用TimeGPT进行预测 现在让我们将TimeGPT应用于一个预测任务并将其性能与其他模型进行比较。请注意在撰写本文时TimeGPT仅通过API可访问而且它处于封闭测试阶段。正如前面提到的该模型是在来自公开可用数据的1000亿个数据点上进行训练的。由于作者没有指定实际使用的数据集我认为测试该模型是否具有数据集可能在训练过程中看到的知名基准数据集如ETT或天气数据是不合理的。 导入库并读取数据 自然的第一步是导入用于这个实验的库。 import pandas as pd import numpy as np import datetime import matplotlib.pyplot as pltfrom neuralforecast.core import NeuralForecast from neuralforecast.models import NHITS, NBEATS, PatchTSTfrom neuralforecast.losses.numpy import mae, msefrom nixtlats import TimeGPT%matplotlib inline 然后为了访问TimeGPT模型我们从文件中读取API密钥。请注意我没有将API密钥分配给环境变量因为访问权限仅限于两周。 with open(data/timegpt_api_key.txt, r) as file:API_KEY file.read() 然后我们可以读取数据。 df pd.read_csv(data/medium_views_published_holidays.csv) df[ds] pd.to_datetime(df[ds])df.head() 我们数据集的前五行 从上图中我们可以看到数据集的格式与使用Nixtla等其他开源库时的格式相同。 我们有一个unique_id列用于标记不同的时间序列但在我们的情况下我们只有一个系列。列y表示我博客的日访问量published是一个简单的标志用于标记发布新文章的一天1或未发布文章的一天0。直观地说我们知道发布新内容时访问量通常会在一段时间内增加。最后列is_holiday指示美国是否有假期。直观地说在假期期间访问我的博客的人数会减少。现在让我们可视化我们的数据并寻找明显的模式。 published_dates df[df[published] 1] fig, ax plt.subplots(figsize(12,8)) ax.plot(df[ds], df[y]) ax.scatter(published_dates[ds], published_dates[y], markero, colorred, labelNew article) ax.set_xlabel(Day) ax.set_ylabel(Total views) ax.legend(locbest) fig.autofmt_xdate() plt.tight_layout() 博客的日访问量 从上图中我们已经可以看到一些有趣的行为。首先注意红色点表示新发布的文章它们几乎立即在访问量中出现峰值。我们还注意到2021年的活动较少这反映在我的博客的日访问量较少。最后在2023年我们注意到在发布文章后出现了一些异常的访问高峰。在放大数据后我们还发现了明显的每周季节性。 博客的日访问量。在这里我们看到了明显的每周季节性周末访问的人数较少 从上图中我们现在可以看到在周末博客的访问者较少而在工作日访问者较多。考虑到所有这些让我们看看如何使用TimeGPT进行预测。 使用TimeGPT进行预测 首先让我们将数据集拆分为训练集和测试集。在这里我将保留168个时间步长用于测试集这对应于24周的每日数据。 train df[:-168] test df[-168:] 然后我们将预测视野设置为七天因为我有兴趣预测整个星期的每日访问量。 现在该API不提供交叉验证的实现。因此我们创建自己的循环以一次生成七个预测直到我们对整个测试集进行了预测。 future_exog test[[unique_id, ds, published, is_holiday]]timegpt TimeGPT(tokenAPI_KEY)timegpt_preds []for i in range(0, 162, 7):timegpt_preds_df timegpt.forecast(dfdf.iloc[:1213i],X_df future_exog[i:i7],h7,finetune_steps10,id_colunique_id,time_colds,target_coly)preds timegpt_preds_df[TimeGPT]timegpt_preds.extend(preds) 在上面的代码块中请注意我们必须传递我们外生变量的未来值。这是可以的因为它们是静态变量。我们知道假期的未来日期博客作者个人也知道他计划在何时发布文章。还要注意我们使用finetune_steps参数对TimeGPT进行了微调。一旦循环完成我们就可以将预测添加到测试集中。同样TimeGPT每次生成七个预测直到获得168个预测以便我们可以评估其在预测下周每日访问量方面的能力。 test[TimeGPT] timegpt_preds test.head() TimeGPT的预测 使用N-BEATS、N-HiTS和PatchTST进行预测 现在让我们应用其他方法看看在我们的数据集上对这些模型进行专门训练是否能产生更好的预测。对于这个实验如前所述我们使用N-BEATS、N-HiTS和PatchTST。 horizon 7models [NHITS(hhorizon,input_size5*horizon,max_steps50),NBEATS(hhorizon,input_size5*horizon,max_steps50),PatchTST(hhorizon,input_size5*horizon,max_steps50)] 接下来我们初始化NeuralForecast对象并指定我们数据的频率在这种情况下是每日。 nf NeuralForecast(modelsmodels, freqD) 然后我们对24个窗口的7个时间步执行交叉验证以获得与用于TimeGPT的测试集对齐的预测。 preds_df nf.cross_validation(dfdf, static_dffuture_exog , step_size7, n_windows24 ) 然后我们可以简单地将来自TimeGPT的预测添加到这个新的preds_df DataFrame 中以获得一个包含所有模型预测的单个 DataFrame。 preds_df[TimeGPT] test[TimeGPT] 接下来我们准备评估每个模型的性能 评估 在测量性能指标之前让我们可视化每个模型在我们的测试集上的预测。 可视化每个模型的预测 首先我们看到每个模型之间有很多重叠。然而我们注意到N-HiTS预测了两个实际上没有实现的高峰。此外似乎PatchTST经常低估。然而TimeGPT似乎总体上与实际数据相当吻合。 当然评估每个模型的性能的唯一方法是测量性能指标。在这里我们使用了平均绝对误差MAE和均方误差MSE。此外我们将预测四舍五入为整数因为在博客的日常访问者背景下小数是没有意义的。 preds_df preds_df.round({NHITS: 0,NBEATS: 0,PatchTST: 0,TimeGPT: 0 }) data {N-HiTS: [mae(preds_df[NHITS], preds_df[y]), mse(preds_df[NHITS], preds_df[y])],N-BEATS: [mae(preds_df[NBEATS], preds_df[y]), mse(preds_df[NBEATS], preds_df[y])],PatchTST: [mae(preds_df[PatchTST], preds_df[y]), mse(preds_df[PatchTST], preds_df[y])],TimeGPT: [mae(preds_df[TimeGPT], preds_df[y]), mse(preds_df[TimeGPT], preds_df[y])]} metrics_df pd.DataFrame(datadata) metrics_df.index [mae, mse] metrics_df.style.highlight_min(colorlightgreen, axis1) 从上图可以看出TimeGPT是冠军模型因为它在MAE和MSE方面表现最佳其次是N-BEATS、PatchTST和N-HiTS。这是一个令人振奋的结果因为TimeGPT从未见过这个数据集而且只进行了少量微调。虽然这不是详尽无遗的实验但我认为它确实展示了基础模型在预测领域可能具有的潜力。 我对TimeGPT的个人看法 虽然我对TimeGPT的简短实验感到兴奋但我必须指出原始论文在许多重要领域仍然模糊不清。同样我们不知道用于训练和测试模型的数据集是什么因此我们无法真正验证TimeGPT的性能结果如下所示。 TimeGPT的性能结果 从上表中我们可以看到TimeGPT在月度和周度频率上表现最佳N-HiTS和Temporal Fusion TransformerTFT通常排名第二或第三。然而由于我们不知道使用了哪些数据我们无法验证这些指标。在模型是如何训练的以及如何适应处理时间序列数据方面缺乏透明度。 结论 TimeGPT是用于时间序列预测的第一个基础模型。它利用Transformer架构经过预训练使用来自1000亿数据点的零样本推理能力。结合了符合预测技术该模型可以生成预测区间并在没有对特定数据集进行训练的情况下执行异常检测。 ·  END  · HAPPY LIFE 本文仅供学习交流使用如有侵权请联系作者删除
http://www.zqtcl.cn/news/561182/

相关文章:

  • 卖汽车的网站怎么做的建设服装网站的论文
  • 网络推广哪个网站好网站建设最低多少钱
  • 怎么在自己电脑做网站北京赛车网站开发
  • 门户网站内容wordpress上下页
  • 长安做英文网站营销型网站搭建
  • 网站开发交接清单seo排名优化方法
  • 各学院二级网站建设通报wordpress注册评论
  • 南通公司做网站无人在线完整免费高清观看
  • 廊坊网站推广局域网网站建设的步骤过程
  • 如何在工信部网站注册简易网页设计代码
  • 做石油系统的公司网站做艺术品展览的网站
  • 枣庄公司网站建设珠海蓝迪装饰设计工程有限公司
  • 广州企业网站营销电话成都网站建设制作设计
  • 求个网站带图片素材域名及密码登录域名管理网站
  • 文交所网站开发wordpress页面编辑插件
  • 丹徒网站建设价格做矿产公司的网站
  • 北京的制作网站的公司在哪里软件程序员
  • 企业网站怎么扣费的网站建设合同的性质
  • 聚美优品一个专注于做特价的网站如何制作个人网页兼职
  • 滨州做网站的公司最好wordpress主题
  • 福州网站设计软件公司dw网站开发流程
  • 合肥网站搭建公司哪家好深圳二维码网站建设
  • 东莞微信网站开发免费html模板素材网站
  • 海淀专业企业网站建设青岛平面设计公司
  • 北京正规网站建设比较wordpress cookies因预料之外的输出被阻止
  • 自助微信网站设计什么叫一级域名二级域名
  • 上海 顶尖 网站设计wordpress多站点不同主题
  • asp c 网站开发wordpress 动静分离
  • 服装网站建设规定wordpress禁止自动升级
  • 如何在网站上做社交的链接毕设给学校做网站