繁体   English   中英

使用 Python 预测时间序列?

[英]Forecast of a time series with Python?

如果我会说废话,我提前道歉,我在这个领域的经验为零。 不幸的是,我的老师有一个绝妙的主意,可以在 3 小时内解释时间序列预测(我是计算机工程专业的学生,而不是数据科学专业的学生,所以对我来说这是一个全新的话题。)而且我不太了解关于它。

上下文:在我的项目中,我在 Spring Boot with Micrometer 中生成了一个指标(一个计数器,用于计算购买次数),我使用 Prometheus 提取该指标并使用 Grafana 生成一个.csv 文件。 然后我用 Python 打开这个文件 e 我使用 Panda 的 dataframe 创建时间序列。

这是我的时间序列: time_series

我的老师解释说,首先要做的是应用seasonal_decompose过滤器并提取系列的趋势:

result = seasonal_decompose(ts, model='...', period=...)
trend = result.trend

这是我的第一个问题:在 model 中,我必须插入“加法”还是“乘法”? 然后,我必须插入什么时期? 我的系列是非周期性的,在 class 中,它只向我们解释了具有特定功能的“美丽”系列的情况。 但我的系列与那个示例系列非常不同。

然后老师说我们要申请一个model。 特别是,他建议以这种方式申请 Arima(或 Holt Winter):

auto_arima(trend) #example output: (3,2,5)
train_data = trend.iloc[:600] #90% of samples
test_data = trend.iloc[600:] #10% of samples
model = ARIMA(train_data, order=(3,2,5)) #training
results = model.fit()
start = len(train_data)
end = len(train_data)+len(test)-1
predictions = results.predict(start=start, end=end, dynamic=False, typ='levels')

model = ARIMA(trend, order=(3,2,5)) 
results = model.fit()
fcast = results.predict(len(trend), len(trend)+72, typ='levels') #prediction of 72 samples

但我想知道:我可以将 Arima 用于我的特定系列吗? 或者我应该使用另一个 model 吗? 他还向我们解释了其他概念(平稳性、微分、自相关等),但所有这些都在很短的时间内被快速解释了,我脑子里有很多困惑。 没学过机器学习(下学期再学),网上的文档看不懂。

对不起,我对这个问题的无知,我有点绝望。

不用担心,时间序列分析不是很容易和很难,但我建议你先回顾一下你的课程材料。 ARIMA model 是基本的 model 做时间序列分析。 您应该按照说明如何根据您的系列数据确定其关键 arguments,如 p 值、q 值或 d 值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM