Mozilla simpleprophet预测框架。
simpleprophet的Python项目详细描述
simpleprophet KPI预测模型和工具
这个目录包含simpleprophet预测模型和附带的工具。simpleprophet模型优先考虑简单性和稳定性,只有在延迟期显著提高模型性能时才会增加复杂性和“弯曲性”。在
设置
您将需要一个带有fbprophet
和一些其他的python环境
已安装依赖项。我们提供了一个可以从GCR中提取的Docker图像
以交互方式运行,如:
GOOGLE_APPLICATION_CREDENTIALS=/path/to/creds.json docker run -it \ -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/key.json \ -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/key.json:ro \ --entrypoint python \ gcr.io/moz-fx-data-forecasting/simpleprophet
也可以进行代码更新并在本地生成映像:
^{pr2}$如果要在docker之外生成本地环境,可以创建
通过conda env create -f environment.yml
适当的Conda环境。
要在Conda外部创建环境,请参见
^{pip install -r requirements.txt
安装其余的依赖项。在
使用
运行预测管道的函数在pipeline.py
中。可以每天运行update_table
函数,根据需要向输出表添加行,以合并新可用的度量数据。replace_table
函数将清除输出表并从头开始重新生成它。在
对于模型构建,modeling.py
中的代码可能很有用。它包含了一个函数,用于在保持集上评估模型并提供一些有用的可视化效果。在
validations.py
文件包含生成绘图的代码,这些绘图用于评估模型性能并验证模型行为随时间的推移是否合理。它也可以用来比较多个模型。在
建模策略
models.py
文件包含生产模型规范。这些模型是Jesse McCrosky使用fbprophet框架开发的。指导建模的理念是以简单和直观的拟合为指导,同时使用传统类型的定量证据告知建模过程。在
预测的评估基本上是多维的。除了稳定性、准确性和无偏差等竞争性目标外,每个目标都可以在多个时间范围内进行评估。这种复杂性使得纯机器学习优化方法极其复杂。在
作为一种选择,我选择在某种程度上符合模型。对参数集进行迭代研究,并对每次迭代进行可视化评估,以查看模型组件(季节性和趋势)是否与观察到的实际情况相符。一旦确定了一个合理的参数空间,建模过程就开始对一组模型进行保留集度量和其他定量评估。更简单的模型是首选的,只有在有定量证据明确证明的情况下才增加复杂性。在
一些相关的车型特征:
- 由于MAU作为一个度量标准的“平滑”性质,每年的季节性足以捕捉除复活节以外的所有假日影响,复活节作为模型组成部分包含在内。在
- 通常情况下,在训练开始时,我们选择的是一个非常有帮助的指标,这对于训练的第一个阶段来说并不是很有帮助的。在
- 类似地,一些产品指标也有“异常”现象,即度量值非常不典型的时期,通常是由于数据问题。这些时期不包括在培训数据中。在
- 通过对公制图的手工检查,确定了合适的开始日期和异常周期。在
部署
为了部署到PyPI,repo上的管理员可以在semver之后发布一个新版本 (例如0.1.0),它将触发一个CircleCI构建来发布 以该标记名作为版本的PyPI的新包。在
有关详细信息,请联系jmccrosky@mozilla.com
- 项目
标签: