跳转到主要内容

基于贝叶斯神经场的可扩展时空预测

项目描述

时空预测的贝叶斯神经网络场

Unittests PyPI version

这不是一个官方支持的谷歌产品。

空间时间序列数据(即时空)在科学、工程和商业智能应用中无处不在。此存储库包含贝叶斯神经网络场(BayesNF)的实现,这是一种新颖的时空建模方法,它将分层概率建模与用于高容量函数逼近的深度神经网络集成,以实现精确的不确定性估计。

贝叶斯神经网络场推断在时间和空间任意点的场值上的联合概率分布,这使得该模型适用于包括空间插值、时间预测和变差分析在内的许多数据分析任务。后验推断使用通过小批量随机梯度下降训练的变分学习代理进行。

安装

您可以使用以下命令从Python包索引(PyPI)安装bayesnf

python -m pip install bayesnf

典型的安装时间为1分钟。该软件在Python 3.11和标准Debian GNU/Linux设置上进行了测试。在scripts/中运行的较大规模实验使用了TPU v3-8加速器。要在本地运行BayesNF处理中到大规模数据,至少需要一个GPU。

文档和教程

请访问https://ggdocs.cn/bayesnf

快速开始

# Load a dataframe with "long" format spatiotemporal data.
df_train = pd.read_csv('chickenpox.5.train.csv',
  index_col=0, parse_dates=['datetime'])

# Build a BayesianNeuralFieldEstimator
model = BayesianNeuralFieldMAP(
  width=256,
  depth=2,
  freq='W',
  seasonality_periods=['M', 'Y'],
  num_seasonal_harmonics=[2, 10],
  feature_cols=['datetime', 'latitude', 'longitude'],
  target_col='chickenpox',
  observation_model='NORMAL',
  timetype='index',
  standardize=['latitude', 'longitude'],
  interactions=[(0, 1), (0, 2), (1, 2)])

# Fit the model.
model = model.fit(
  df_train,
  seed=jax.random.PRNGKey(0),
  ensemble_size=ensemble_size,
  num_epochs=num_epochs)

# Make predictions of means and quantiles on test data.
df_test = pd.read_csv('chickenpox.5.test.csv',
  index_col=0, parse_dates=['datetime'])

yhat, yhat_quantiles = model.predict(df_test, quantiles=(0.025, 0.5, 0.975))

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源代码分布

bayesnf-0.1.3.tar.gz (23.6 kB 查看哈希值)

上传时间 源代码

构建分布

bayesnf-0.1.3-py3-none-any.whl (25.2 kB 查看哈希值)

上传时间 Python 3

由以下支持