关于算法:PYTHON中用PROPHET模型对天气时间序列进行预测与异常检测

6次阅读

共计 2023 个字符,预计需要花费 6 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=22673 

办法

Prophet 异样检测应用了 Prophet 工夫序列预测。根本的 Prophet 模型是一个可分解的单变量工夫序列模型,联合了趋势、季节性和节假日效应。该模型预测还包含一个围绕预计的趋势局部的不确定性区间。另外,齐全的贝叶斯推断也能够以减少计算量为代价。而后,不确定性区间的下限和下限值能够作为每个工夫点的离群点阈值。首先,计算从观测值到最近的不确定度边界(下限或上限)的间隔。如果察看值在边界内,离群点得分等于负间隔。因而,当观测值与模型预测值相等时,离群点得分最低。如果察看值在边界之外,得分等于间隔测量,察看值被标记为离群点。然而,该办法的一个次要毛病是,当新的数据进来时,你须要从新调整模型。这对于具备实时检测的利用来说是不可取的。

数据集

这个例子应用了地球化学研究所记录的天气工夫序列数据集。该数据集蕴含 14 个不同的特色,如空气温度、大气压力和湿度。这些都是在 2003 年开始,每 10 分钟收集一次。咱们只应用 2009 年至 2016 年期间收集的数据。

import matplotlib.pyplot as plt
import numpy as np
import os
import pandas as pd
import tensorflow as tf

加载数据集

df = pd.read\_csv(csv\_path)
df\['Date Time'\] = pd.to_datetime(df\['Date Time'\], format='%d.%m.%Y %H:%M:%S')
df.head()

 抉择子集来测试 Prophet 模型。

   

``````
n_prophet = 10000

Prophet 模型须要失去一个有两列的 DataFrame:一列名为 ds,蕴含工夫戳,一列名为 y,蕴含要评估的工夫序列。咱们只看温度数据。

print(df_T.shape)
df_T.head()

plt.plot(df\_T\['ds'\], df\_T\['y'\])

加载或定义离群检测

你能够将预训练的模型保留在本地目录的文件门路中,并加载检测模型。或者,你也能够从头开始训练一个检测模型。

filepath = 'my_path'  # 改为下载模型的目录
if outlier_detector:  # 加载预训练的离群检测器
    filepath = os.path.join(filepath, detector_name)
else:  # 初始化、拟合并保留离群检测
    od.fit(df_T)

请查看文档以及原始的 Prophet 文档,理解如何定制基于 Prophet 的异样值检测器,并增加季节性因素、假期、抉择饱和逻辑增长模型或利用参数正则化。

预测测试数据中的异样值

定义测试数据。重要的是,测试数据的工夫与训练数据统一。上面咱们通过比拟测试数据框的前几行和训练数据框的最初几行来查看这一点。

df\_T\_test = pd.DataFrame(data=d)

 

df_T.tail()

 

预测测试数据的异样值。

predict(df\_T\_test)

后果可视化

咱们能够用 Prophet 将咱们的预测后果可视化。包含历史预测。

model.predict(future)
model.plot(forecast)

咱们还能够绘制预测中不同成分的细分。预测的不确定性区间是由外推趋势的 MAP 估计值决定的。

plot_component(forecast)

很显著,咱们对将来的预测越远,决定离群值阈值的不确定性区间就越大。

让咱们把理论数据与离群点阈值的下限和上限预测值叠加起来,查看咱们预测的离群点在哪里。

plot(x='ds', y=\['y', 'yhat', 'yhat\_upper', 'yhat\_lower'\])
  
 

异样点的得分和预测。

np.zeros(n_periods)
plot(x='ds', y=\['score', 'threshold'\])

当咱们进一步预测将来时,随着不确定性的减少,离群点的分数天然呈降落趋势。

让咱们来看看一些个别的离群值。

outlier = fcst.loc\[fcst\['score'\] > 0\]
print((outlier.shape\[0\]))

 


最受欢迎的见解

1. 在 python 中应用 lstm 和 pytorch 进行工夫序列预测

2.python 中利用长短期记忆模型 lstm 进行工夫序列预测剖析

3. 应用 r 语言进行工夫序列(arima,指数平滑)剖析

4.r 语言多元 copula-garch- 模型工夫序列预测

5.r 语言 copulas 和金融工夫序列案例

6. 应用 r 语言随机稳定模型 sv 解决工夫序列中的随机稳定

7.r 语言工夫序列 tar 阈值自回归模型

8.r 语言 k -shape 工夫序列聚类办法对股票价格工夫序列聚类

9.python3 用 arima 模型进行工夫序列预测

正文完
 0