20240328-1-Prophet面试题

Prophet面试题

在这里插入图片描述

1. 简要介绍Prophet

常见的时间序列分解方法:

将时间序列分成季节项 S t S_t St,趋势项 T t T_t Tt,剩余项 R t R_t Rt,即对所有的 t ≥ 0 t≥0 t0
y t = S t + T t + R t y_{t}=S_{t}+T_{t}+R_{t} yt=St+Tt+Rt

y t = S t × T t × R t y_{t}=S_{t} \times T_{t} \times R_{t} yt=St×Tt×Rt

ln ⁡ y t = ln ⁡ S t + ln ⁡ T t + ln ⁡ R t \ln y_{t}=\ln S_{t}+\ln T_{t}+\ln R_{t} lnyt=lnSt+lnTt+lnRt

fbprophet 的在此基础上,添加了节日项。
y ( t ) = g ( t ) + s ( t ) + h ( t ) + ϵ t y(t)=g(t)+s(t)+h(t)+\epsilon_{t} y(t)=g(t)+s(t)+h(t)+ϵt

2. 趋势项模型

  • 基于逻辑回归

    sigmoid 函数为
    σ ( x ) = 1 / ( 1 + e − x ) \sigma(x)=1 /\left(1+e^{-x}\right) σ(x)=1/(1+ex)
    prophet在逻辑回归的基础上添加了随时间变化的参数,那么逻辑回归就可以改写成:
    f ( x ) = C ( t ) ( 1 + e − k ( t ) ( x − m ( t ) ) ) f(x)=\frac{C(t)}{\left(1+e^{-k(t)(x-m(t))}\right)} f(x)=(1+ek(t)(xm(t)))C(t)
    这里的 C C C 称为曲线的最大渐近值, k k k 表示曲线的增长率, m m m 表示曲线的中点。当 C = 1 , k = 1 , m = 0 C=1, k=1, m=0 C=1,k=1,m=0时,恰好就是大家常见的 sigmoid 函数的形式。

  • 基于分段线性函数
    g ( t ) = C ( t ) 1 + exp ⁡ ( − ( k + a ( t ) t δ ) ⋅ ( t − ( m + a ( t ) T γ ) g(t)=\frac{C(t)}{1+\exp \left(-\left(k+\boldsymbol{a}(t)^{t} \boldsymbol{\delta}\right) \cdot\left(t-\left(m+\boldsymbol{a}(t)^{T} \boldsymbol{\gamma}\right)\right.\right.} g(t)=1+exp((k+a(t)tδ)(t(m+a(t)Tγ)C(t)
    k k k表示变化量

    a j ( t ) a_{j}(t) aj(t)表示指示函数:
    a j ( t ) = { 1 , if  t ≥ s j 0 , otherwise  a_{j}(t)=\left\{\begin{array}{l}1, \text { if } t \geq s_{j} \\ 0, \text { otherwise }\end{array}\right. aj(t)={1, if tsj0, otherwise 
    δ j \delta_{j} δj表示在时间戳 s j s_{j} sj上的增长率的变化量

    γ j \gamma_{j} γj确定线段边界
    γ j = ( s j − m − ∑ ℓ < j γ ℓ ) ⋅ ( 1 − k + ∑ ℓ < j δ ℓ k + ∑ ℓ ≤ j δ ℓ ) \gamma_{j}=\left(s_{j}-m-\sum_{\ell<j} \gamma_{\ell}\right) \cdot\left(1-\frac{k+\sum_{\ell<j} \delta_{\ell}}{k+\sum_{\ell \leq j} \delta_{\ell}}\right) γj= sjm<jγ (1k+jδk+<jδ)
    其中:
    a ( t ) = ( a 1 ( t ) , ⋯ , a S ( t ) ) T , δ = ( δ 1 , ⋯ , δ S ) T , γ = ( γ 1 , ⋯ , γ S ) T \boldsymbol{a}(t)=\left(a_{1}(t), \cdots, a_{S}(t)\right)^{T}, \boldsymbol{\delta}=\left(\delta_{1}, \cdots, \delta_{S}\right)^{T}, \boldsymbol{\gamma}=\left({\gamma}_{1}, \cdots, \gamma_{S}\right)^{T} a(t)=(a1(t),,aS(t))T,δ=(δ1,,δS)T,γ=(γ1,,γS)T

3. 变点的选择

在 Prophet 算法中,需要给出变点的位置,个数,以及增长的变化率:

  • changepoint_range

    changepoint_range 指的是百分比,需要在前 changepoint_range 那么长的时间序列中设置变点

  • n_changepoint

    n_changepoint 表示变点的个数,在默认的函数中是 n_changepoint = 25

  • changepoint_prior_scale。

    changepoint_prior_scale 表示变点增长率的分布情况
    δ j ∼ Laplace ⁡ ( 0 , τ ) \delta_{j} \sim \operatorname{Laplace}(0, \tau) δjLaplace(0,τ)
    T \mathcal{T} T就是 change_point_scale

4. 对未来的预估

对于已知的时间序列,可以手动设置s个变点

对于预测的数据模型使用Poisson分布找到新增的变点,然后与已知的变点进行拼接

5. 季节性趋势

时间序列通常会随着天,周,月,年等季节性的变化而呈现季节性的变化,也称为周期性的变化

prophet算法使用傅立叶级数来模拟时间序列的周期性

P P P表示时间序列的周期, P = 365.25 P = 365.25 P=365.25表示以年为周期, P = 7 P = 7 P=7表示以周为周期。它的傅立叶级数的形式都是:
s ( t ) = ∑ n = 1 N ( a n cos ⁡ ( 2 π n t P ) + b n sin ⁡ ( 2 π n t P ) ) s(t)=\sum_{n=1}^{N}\left(a_{n} \cos \left(\frac{2 \pi n t}{P}\right)+b_{n} \sin \left(\frac{2 \pi n t}{P}\right)\right) s(t)=n=1N(ancos(P2πnt)+bnsin(P2πnt))

6. 节假日效应(holidays and events)

除了周末,同样有很多节假日,而且不同的国家有着不同的假期,不同的节假日可以看成相互独立的模型,并且可以为不同的节假日设置不同的前后窗口值,表示该节假日会影响前后一段时间的时间序列。
h ( t ) = Z ( t ) κ = ∑ i = 1 L κ i ⋅ 1 { t ∈ D i } h(t)=Z(t) \boldsymbol{\kappa}=\sum_{i=1}^{L} \kappa_{i} \cdot 1_{\left\{t \in D_{i}\right\}} h(t)=Z(t)κ=i=1Lκi1{tDi}
其中: Z ( t ) = ( 1 { t ∈ D 1 } , ⋯ , 1 { t ∈ D L } ) , κ = ( κ 1 , ⋯ , κ L ) T Z(t)=\left(1_{\left\{t \in D_{1}\right\}}, \cdots, 1_{\left\{t \in D_{L}\right\}}\right), \boldsymbol{\kappa}=\left(\kappa_{1}, \cdots, \kappa_{L}\right)^{T} Z(t)=(1{tD1},,1{tDL}),κ=(κ1,,κL)T κ ∼ Normal ⁡ ( 0 , v 2 ) \boldsymbol{\kappa} \sim \operatorname{Normal}\left(0, v^{2}\right) κNormal(0,v2)

并且该正态分布是受到 v v v = holidays_prior_scale 这个指标影响的。默认值是 10,当值越大时,表示节假日对模型的影响越大;当值越小时,表示节假日对模型的效果越小

7. 参数

在 Prophet 中,用户一般可以设置以下四种参数:

  1. Capacity:在增量函数是逻辑回归函数的时候,需要设置的容量值。

  2. Change Points:可以通过 n_changepoints 和 changepoint_range 来进行等距的变点设置,也可以通过人工设置的方式来指定时间序列的变点。

  3. 季节性和节假日:可以根据实际的业务需求来指定相应的节假日。

  4. 光滑参数:

    τ \tau τ = changepoint_prior_scale 可以用来控制趋势的灵活度

    σ \sigma σ = seasonality_prior_scale 用来控制季节项的灵活度,

    v v v = holidays prior scale 用来控制节假日的灵活度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/818156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人员聚集监测识别摄像机

随着科技的不断发展&#xff0c;人员聚集监测识别摄像机已经成为了现代社会安全管理的重要工具。这种摄像机能够对人员聚集的情况进行实时监测和识别&#xff0c;帮助相关部门及时发现和处理潜在的安全风险。 人员聚集监测识别摄像机可以通过高清晰度的摄像头和先进的人脸识别技…

windows的jar包开机自启动【搬代码】

感觉最方便的就是放到启动项目里操作步骤 winR 输入&#xff1a;shell:startup回车或点击确定 3.将自己jar包右键创建快捷方式 4.然后放进去 5.重启电脑&#xff0c;浏览器输入网址&#xff0c;就可以看到重启成功了 另外一个就是放入.exe文件的快捷方式 首先&#xff0c;…

OpenGL 多重采样抗锯齿(MSAA,Multisample Anti-Aliasing)

多重采样抗锯齿(MSAA,Multisample Anti-Aliasing)是一种用于减少图形渲染中锯齿(aliasing)效应的技术。 锯齿是怎样产生的? 锯齿效应是由于在屏幕上渲染的图形对象边缘处像素颜色变化突然而导致的,它使得图形看起来不够平滑,影响了视觉质量。 如图示,我们渲染一个三…

vue模版字符串解析成vue模版对象

模版字符串 this.code <template><div style"width:100% ; height: 100% ;">{{resultData[0].name}}</div> </template> <script> export default {data() {return {resultData: [{ name: 图幅, value: 20 },]}},mounted(){},method…

音乐文件逆向破解

背景 网易云等在线音乐文件的加密源码都按照一定的规则加密&#xff0c;通过对音乐文件的源码分析转化&#xff0c;有望实现对加密文件的解密 实现内容 实现对加密音乐文件的解密 实现对无版权的音乐文件的转化 实现环境 010editor 010 Editor是一个专业的文本编辑器和十六…

运费计算(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int distance, c;float weight, price, discount, fee;//提示用户&#xff1b;printf("请输入路程&#xff0c;单价…

1.JAVASE练习题(递归篇)

1.递归求解汉诺塔问题 public static void move(char pos1,char pos2) {System.out.print(pos1"->"pos2" "); }public static void hanoi(int n,char pos1,char pos2,char pos3) {if(n 1) {move(pos1,pos3);return;}hanoi(n-1,pos1,pos3,pos2);move(p…

gitlab(docker)安装及使用

GitLab GitLab 是一个用于仓库管理系统的开源项目&#xff0c;使用Git作为代码管理工具&#xff0c;并在此基础上搭建起来的Web服务。 下载(docker) 查询docker镜像gitlab-ce gitlab-ce是它的社区版 [rootlocalhost ~]# docker search gitlab-ce NAME …

Redis入门到通关之Set实现点赞功能

文章目录 set 数据类型介绍不排序实现排序实现 set 数据类型介绍 Redis中的set类型是一组无序的字符串值。 set通过其独特的数据结构和丰富的命令提供了在存储和处理集合元素方面的一些非常有用的功能。下面列出了主要的set类型命令&#xff1a; SADD key member1 [member2]&a…

树莓集团参加中国国际消费品博览会,聚焦数字文创产业发展与未来!

2024年4月13日上午&#xff0c;第四届中国国际消费品博览会&#xff08;以下简称“消博会”&#xff09;在海南海口隆重开幕。树莓科技&#xff08;成都&#xff09;集团有限公司董事长王凯、副总裁吴晓平受邀出席本次盛会。 消博会是亚太地区规模最大的消费精品展&#xff0c;…

每日汇评:中东局势升级,黄金重拾 2350 美元,还有可能上涨吗?

周六晚伊朗袭击以色列后&#xff0c;金价因避险而上涨&#xff1b; 美元未能从地缘政治动荡和美国国债收益率上升中受益&#xff1b; 在美国零售销售数据公布之前&#xff0c;金价与 4 小时 RSI指标一起上行&#xff1b; 周一早些时候&#xff0c;金价正在巩固其反弹至 2350 美…

缓存雪崩、缓存击穿、缓存穿透

缓存雪崩、缓存击穿、缓存穿透 文章目录 缓存雪崩、缓存击穿、缓存穿透缓存雪崩缓存击穿缓存穿透 缓存雪崩 当大量缓存数据在同一时间过期&#xff08;失效&#xff09;或者Redis宕机&#xff0c;如果此时有大量的用户请求&#xff0c;都无法在 Redis 中处理&#xff0c;于是全…

聚观早报 | 哪吒L上市定档;iPhone 16最新高清渲染图

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 4月10日消息 哪吒L上市定档 iPhone 16最新渲染图 华为太空表与问界M9联动 蔚来万里长城加电风景线正式贯通 Red…

transformer架构详细详解

一、transformer的贡献 transformer架构的贡献&#xff1a;该架构只使用自注意力机制&#xff0c;没有使用RNN或卷积网络。且可以实现并行计算&#xff0c;加快模型训练速度。 &#xff08;将所有的循环层全部换成&#xff1a;multi-headed self-attention&#xff09; 二、t…

【c语言】声明变量和初始化变量的区别

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&…

CRMEB 开源/标准版商城系统客服配置教程

管理后台/设置/系统设置/商城配置/客服端配置 有系统客服/拨打电话/跳转链接可选&#xff0c;系统客服为系统自带的客服系统&#xff0c;拨打电话为用户点击联系客服为拨打客服电话的方式&#xff0c;跳转链接为可以跳转自己开发的客服系统或者第三方的客服系统或者企业微信的…

Python学习笔记16 - 函数

函数的创建和调用 函数调用的参数传递 函数的返回值 函数的参数定义 变量的作用域 递归函数 斐波那契数列 总结

腾讯EdgeOne产品测评体验—更快更强更安全,安全我选EdgeOne

腾讯EdgeOne产品测评体验—更快更强更安全&#xff0c;安全我选EdgeOne 王婆的瓜可甜&#xff1f; 自 23 年 8 月份 EdgeOne 开放订阅套餐后&#xff0c;腾讯云用户使用 EdgeOne 来为自己网站进行加速和防护的站点数量&#xff0c;呈现爆发式增长趋势。 金融服务业受到的 Web…

基于51单片机的自行车测速里程码表设计( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机的自行车测速里程码表设计 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真设计4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单资料下载链接&#xff1a; 基于51单片机的自行车测速里程码表设计( proteus仿真程序设计报告原理图讲解视频&#xff09;…

传销?链动2+1模式 合法合规的商业模式!

大家好&#xff0c;我是吴军&#xff0c;来自一家深耕于软件开发领域的公司&#xff0c;担任产品经理的职务。 今天&#xff0c;我希望与大家共同探讨一个具有深刻意义的话题——链动21模式&#xff0c;并探究其如何有效应对用户留存与复购的挑战。 或许有人会说&#xff0c;链…