首页 > 其他分享 >prophet中文翻译(四)

prophet中文翻译(四)

时间:2023-05-17 09:34:51浏览次数:56  
标签:plot 中文翻译 验证 prophet 拟合 forecast 变点 Prophet

趋势变化点

你可能已经在文档的前面示例中注意到,实时时间序列经常会在其轨迹中出现突然的变化。默认情况下,Prophet将自动检测这些变化点,并使趋势适应相应的变化。然而,如果你希望对这个过程有更精细的控制(例如,Prophet错过了一个速率变化,或者在历史数据中过度拟合了速率变化),那么你可以使用几个输入参数来实现这一点。

Prophet中的自动变点检测


Prophet通过首先指定大量的"潜在变点"来检测变点,这些潜在变点表示速率允许改变的位置。然后,Prophet在速率变化的幅度上施加了稀疏先验(相当于L1正则化),这意味着Prophet有很多可能的速率变化位置,但会尽可能少地使用它们。以快速开始章节中的Peyton Manning预测为例,默认情况下,Prophet在时间序列的前80%均匀放置了25个潜在变点。以下图中的垂直线表示潜在变点的位置:

image

尽管我们有很多可能发生速率变化的位置,但由于稀疏先验的存在,大部分这些变点是没有被使用的。我们可以通过绘制每个变点处速率变化的幅度来看到这一点:

image

潜在变点的数量可以使用参数n_changepoints进行设置,但更好的调整方法是通过调整正则化参数来实现。重要变点的位置可以通过以下方式进行可视化:

# Python
from prophet.plot import add_changepoints_to_plot
fig = m.plot(forecast)
a = add_changepoints_to_plot(fig.gca(), m, forecast)

image

默认情况下,变点仅针对时间序列的前80%进行推断,这样可以为趋势向前预测提供足够的时间,并避免过度拟合时间序列末尾的波动。这个默认设置在许多情况下都适用,但并不是适用于所有情况,可以使用changepoint_range参数进行更改。例如,在Python中使用m = Prophet(changepoint_range=0.9)或在R中使用m <- prophet(changepoint.range = 0.9)将会在时间序列的前90%放置潜在的变点。

调整趋势的灵活性


如果趋势变化被过度拟合(灵活性过大)或拟合不足(灵活性不足),您可以通过调整稀疏先验的强度来调整它,使用的输入参数是changepoint_prior_scale。默认情况下,该参数设置为0.05。增加该值将使趋势更加灵活:

# Python
m = Prophet(changepoint_prior_scale=0.5)
forecast = m.fit(df).predict(future)
fig = m.plot(forecast)

image

Decreasing it will make the trend less flexible:
减小该值将使趋势有更低的灵活性:

# Python
m = Prophet(changepoint_prior_scale=0.001)
forecast = m.fit(df).predict(future)
fig = m.plot(forecast)

image

在可视化预测结果时,如果趋势看起来过拟合或欠拟合,可以根据需要调整该参数。在完全自动化的设置中,可以参考交叉验证的文档,了解如何调整该参数的建议。

(译者注:交叉验证(Cross Validation)是一种用于评估机器学习模型性能的统计技术。它通过将数据集划分为训练集和验证集,并多次重复此过程,以获得对模型性能的更准确评估。
常见的交叉验证方法包括K折交叉验证(K-Fold Cross Validation)和留一交叉验证(Leave-One-Out Cross Validation)。在K折交叉验证中,数据集被划分为K个相等的子集(折),其中K-1个子集用于训练模型,剩下的1个子集用于验证模型性能。这个过程重复K次,每个子集都会作为验证集一次,最终将K次验证结果的平均值作为模型的性能指标。
通过交叉验证,我们可以更准确地评估模型在未见过的数据上的性能,而不仅仅是依赖于单次的训练和验证过程。它能够帮助我们判断模型是否过拟合(高方差)或欠拟合(高偏差),并优化模型的参数或选择更合适的模型。
在机器学习和数据科学中,交叉验证是一种常用的评估模型性能的技术,可以帮助我们更好地理解和比较不同模型的效果,并选择最佳的模型配置。)

指定变点的位置

如果想不使用自动变点检测,可以通过changepoints参数手动指定潜在变化点的位置。在这种情况下,斜率变化只会在这些点上发生,并且仍然使用相同的稀疏正则化。可以创建一个网格点集合,类似于自动检测的方式,然后再添加一些已知可能发生变化的特定日期。或者,变化点可以完全限定在一组特定的日期上,就像下面的例子中所做的那样:

# Python
m = Prophet(changepoints=['2014-01-01'])
forecast = m.fit(df).predict(future)
fig = m.plot(forecast)

image

标签:plot,中文翻译,验证,prophet,拟合,forecast,变点,Prophet
From: https://www.cnblogs.com/wt11/p/17407553.html

相关文章

  • Prophet文档翻译(二)
    快速开始PythonAPIProphet遵循sklearn模型API。我们创建一个Prophet类的实例,然后调用它的fit和predict方法。Prophet的输入始终是一个包含两列的数据框:ds和y。ds(日期时间戳)列应符合Pandas所期望的格式,最好是YYYY-MM-DD表示日期,或者YYYY-MM-DDHH:MM:SS表示时间戳。y列必须是数......
  • Prophet文档翻译(一)
    一、安装在python环境安装python-mpipinstallprophet(译者注:当前最新版本是1.1.2,运行会报错,建议使用1.1.1)python-mpipinstallprophet==1.1.1从0.6版本开始,不再支持python2从版本1.0开始,PyPI上的软件包名称是"prophet";在1.0版本之前,它的名称是"fbprophet"从1.1版......
  • GPL协议原文及中文翻译
    GPL协议原文及中文翻译原文参考链接翻译参考链接原文GNUGENERALPUBLICLICENSEVersion2,June1991Copyright(C)1989,1991FreeSoftwareFoundation,Inc.59TemplePlace-Suite330,Boston,MA02111-1307,USAEveryoneispermittedtocopyanddistrib......
  • BSD协议原文及中文翻译
    BSD协议原文及翻译参考链接原文:ThefollowingisaBSDlicensetemplate.Togenerateyourownlicense,changethevaluesofOWNER,ORGANIZATIONandYEARfromtheiroriginalvaluesasgivenhere,andsubstituteyourown.Note:Theadvertisingclauseintheli......
  • MIT协议原文及中文翻译
    MIT协议原文及翻译参考链接原文:Copyright(C)Permissionisherebygranted,freeofcharge,toanypersonobtainingacopyofthissoftwareandassociateddocumentationfiles(the"Software"),todealintheSoftwarewithoutrestriction,includingwith......
  • LGPL协议原文及中文翻译
    LGPL协议原文及中文翻译参考链接原文:GNULESSERGENERALPUBLICLICENSEVersion3,29June2007Copyright(C)2007FreeSoftwareFoundation,Inc.https://fsf.org/Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,butchang......
  • Apache协议原文及中文翻译
    Apache协议原文及中文翻译参考链接原文ApacheLicenseVersion2.0,January2004http://www.apache.org/licenses/TERMSANDCONDITIONSFORUSE,REPRODUCTION,ANDDISTRIBUTION1.Definitions."License"shallmeanthetermsandcondition......
  • fbprophet 预测网络流量
    importpandasaspdimportmatplotlib.pyplotaspltfromfbprophetimportProphet#读取数据集data=pd.read_csv('network_traffic.csv')#将数据集的列名改为ds和ydata=data.rename(columns={'date':'ds','traffic_volume':'......
  • 谷歌浏览器 使用中文翻译
    一、找到host文件,并打开。例如以下:二、将 172.217.192.90translate.googleapis.com直接粘贴到host文件的底部即可。(PS:该信息是IP+谷歌域名组成。IP有有效期(即会失效))解决方法:关注月光博客公众号  发送谷歌翻译会给出新的ip  ......
  • hive引入partition和bucket的概念,中文翻译分别为分区和桶
    https://www.cnblogs.com/cxzdy/p/5524477.htmlhive引入partition和bucket的概念,中文翻译分别为分区和桶(我觉的不是很合适,但是网上基本都是这么翻译,暂时用这个吧),这两个概......