首页
/ TimeSeers 开源项目使用教程

TimeSeers 开源项目使用教程

2025-04-17 08:13:31作者:郜逊炳

1. 项目介绍

TimeSeers 是一个基于 PyMC3 的层次贝叶斯时间序列模型,它受到 Facebook Prophet 的启发。TimeSeers 的目标是提供一个易于扩展的替代品,用于处理预期多个时间序列会共享部分参数的时间序列建模。这个项目提供了一个构建时间序列模型的语言,用户可以通过不同的组件组合来最佳适配问题需求。TimeSeers 强调使用不确定性估计,并且默认使用 MCMC 来获取完整的后验估计。

2. 项目快速启动

首先,确保已经安装了 Python 和必要的库。以下是一个快速启动的示例代码:

from timeseers import LinearTrend, FourierSeasonality
import pandas as pd

# 创建一个时间序列模型
model = LinearTrend() + FourierSeasonality(period=pd.Timedelta(days=365))

# 准备你的数据,其中 't' 是时间列,'value' 是值列
data = pd.DataFrame({
    't': pd.date_range(start='2020-01-01', periods=365, freq='D'),
    'value': pd.Series(np.random.randn(365).cumsum())
})

# 拟合模型
model.fit(data[['t']], data['value'])

# 预测
predictions = model.predict(data[['t']])

3. 应用案例和最佳实践

以下是一个使用 TimeSeers 对航空乘客数据进行分析的案例:

# 加载航空乘客数据
passengers = pd.read_csv('AirPassengers.csv').reset_index()
passengers['t'] = pd.to_datetime(passengers['Month'])
passengers['value'] = passengers['#Passengers']

# 创建一个时间序列模型
model = LinearTrend(n_changepoints=10) * FourierSeasonality(n=5, period=pd.Timedelta(days=365))

# 拟合模型
model.fit(passengers[['t']], passengers['value'], tune=2000)

# 绘制模型组件
model.plot_components(X_true=passengers, y_true=passengers['value'])

在这个案例中,我们首先加载了数据,然后创建了一个包含线性趋势和傅里叶季节性的模型,接着拟合数据并绘制了模型组件。

4. 典型生态项目

TimeSeers 可以与其他开源项目结合使用,例如:

  • Pandas:用于数据处理。
  • Matplotlib/Seaborn:用于数据可视化。
  • Scikit-learn:用于模型评估和选择。

这些项目共同构成了一个强大的数据科学工具集,可以帮助用户更好地分析和预测时间序列数据。

登录后查看全文
热门项目推荐