最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

拓端tecdat|Python中用Prophet模型對天氣時間序列進(jìn)行預(yù)測與異常檢測

2021-07-29 21:46 作者:拓端tecdat  | 我要投稿

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

原文出處:拓端數(shù)據(jù)部落公眾號

方法

Prophet異常檢測使用了Prophet時間序列預(yù)測?;镜腜rophet模型是一個可分解的單變量時間序列模型,結(jié)合了趨勢、季節(jié)性和節(jié)假日效應(yīng)。該模型預(yù)測還包括一個圍繞估計的趨勢部分的不確定性區(qū)間。另外,完全的貝葉斯推斷也可以以增加計算量為代價。然后,不確定性區(qū)間的上限和下限值可以作為每個時間點的離群點閾值。首先,計算從觀測值到最近的不確定度邊界(上限或下限)的距離。如果觀察值在邊界內(nèi),離群點得分等于負(fù)距離。因此,當(dāng)觀測值與模型預(yù)測值相等時,離群點得分最低。如果觀察值在邊界之外,得分等于距離測量,觀察值被標(biāo)記為離群點。然而,該方法的一個主要缺點是,當(dāng)新的數(shù)據(jù)進(jìn)來時,你需要重新調(diào)整模型。這對于具有實時檢測的應(yīng)用來說是不可取的。

數(shù)據(jù)集

這個例子使用了地球化學(xué)研究所記錄的天氣時間序列數(shù)據(jù)集。該數(shù)據(jù)集包含14個不同的特征,如空氣溫度、大氣壓力和濕度。這些都是在2003年開始,每10分鐘收集一次。我們只使用2009年至2016年期間收集的數(shù)據(jù)。

  1. import matplotlib.pyplot as plt

  2. import numpy as np

  3. import os

  4. import pandas as pd

  5. import tensorflow as tf

加載數(shù)據(jù)集


  1. df = pd.read_csv(csv_path)

  2. df['Date Time'] = pd.to_datetime(df['Date Time'], format='%d.%m.%Y %H:%M:%S')

  3. df.head()

?選擇子集來測試Prophet模型。

?n_prophet = 10000

Prophet模型需要得到一個有兩列的DataFrame:一列名為ds,包含時間戳,一列名為y,包含要評估的時間序列。我們只看溫度數(shù)據(jù)。

  1. print(df_T.shape)

  2. df_T.head()

plt.plot(df_T['ds'], df_T['y'])

加載或定義離群檢測

你可以將預(yù)訓(xùn)練的模型保存在本地目錄的文件路徑中,并加載檢測模型。或者,你也可以從頭開始訓(xùn)練一個檢測模型。

  1. filepath = 'my_path' ?# 改為下載模型的目錄

  2. if outlier_detector: ?# 加載預(yù)訓(xùn)練的離群檢測器

  3. filepath = os.path.join(filepath, detector_name)

  4. else: ?# 初始化、擬合并保存離群檢測

  5. od.fit(df_T)

請查看文檔以及原始的Prophet文檔,了解如何定制基于Prophet的異常值檢測器,并添加季節(jié)性因素、假期、選擇飽和邏輯增長模型或應(yīng)用參數(shù)正則化。

預(yù)測測試數(shù)據(jù)中的異常值

定義測試數(shù)據(jù)。重要的是,測試數(shù)據(jù)的時間與訓(xùn)練數(shù)據(jù)一致。下面我們通過比較測試數(shù)據(jù)框的前幾行和訓(xùn)練數(shù)據(jù)框的最后幾行來檢查這一點。


  1. df_T_test = pd.DataFrame(data=d)

?

df_T.tail()

?

預(yù)測測試數(shù)據(jù)的異常值。

  1. predict(

  2. df_T_test

  3. )

結(jié)果可視化

我們可以用Prophet將我們的預(yù)測結(jié)果可視化。包括歷史預(yù)測。


  1. model.predict(future)

  2. model.plot(forecast)

我們還可以繪制預(yù)測中不同成分的細(xì)分。預(yù)測的不確定性區(qū)間是由外推趨勢的MAP估計值決定的。

plot_component(forecast)

很明顯,我們對未來的預(yù)測越遠(yuǎn),決定離群值閾值的不確定性區(qū)間就越大。

讓我們把實際數(shù)據(jù)與離群點閾值的上限和下限預(yù)測值疊加起來,檢查我們預(yù)測的離群點在哪里。?

plot(x='ds', y=['y', 'yhat', 'yhat_upper', 'yhat_lower'])?

異常點的得分和預(yù)測。

  1. np.zeros(n_periods)

  2. plot(x='ds', y=['score', 'threshold'])

當(dāng)我們進(jìn)一步預(yù)測未來時,隨著不確定性的增加,離群點的分?jǐn)?shù)自然呈下降趨勢。

讓我們來看看一些個別的離群值。

  1. outlier = fcst.loc[fcst['score'] > 0]

  2. print((outlier.shape[0]))

?

最受歡迎的見解

1.在python中使用lstm和pytorch進(jìn)行時間序列預(yù)測

2.python中利用長短期記憶模型lstm進(jìn)行時間序列預(yù)測分析

3.使用r語言進(jìn)行時間序列(arima,指數(shù)平滑)分析

4.r語言多元copula-garch-模型時間序列預(yù)測

5.r語言copulas和金融時間序列案例

6.使用r語言隨機(jī)波動模型sv處理時間序列中的隨機(jī)波動

7.r語言時間序列tar閾值自回歸模型

8.r語言k-shape時間序列聚類方法對股票價格時間序列聚類

9.python3用arima模型進(jìn)行時間序列預(yù)測


拓端tecdat|Python中用Prophet模型對天氣時間序列進(jìn)行預(yù)測與異常檢測的評論 (共 條)

分享到微博請遵守國家法律
溧阳市| 寻乌县| 普洱| 长子县| 建昌县| 兰溪市| 济源市| 广德县| 儋州市| 仁布县| 满洲里市| 宁化县| 定远县| 布尔津县| 丹巴县| 东乡县| 邹平县| 建阳市| 上栗县| 大余县| 新建县| 新沂市| 图们市| 奉化市| 伊川县| 建德市| 家居| 上栗县| 临朐县| 闸北区| 化德县| 五峰| 桃源县| 庆元县| 安龙县| 固原市| 平远县| 兴化市| 祁东县| 达日县| 都兰县|