日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

TimesNet:時間序列預測的最新模型

來源: 責編: 時間:2023-10-16 17:10:32 344觀看
導讀2020年發布的N-BEATS、2022年發布的N-HiTS和2023年3月發布的PatchTST開始。N-BEATS和N-HiTS依賴于多層感知器架構,而PatchTST利用了Transformer架構。2023年4月發表了一個新的模型,它在時間序列分析的多個任務中實現了

2020年發布的N-BEATS、2022年發布的N-HiTS和2023年3月發布的PatchTST開始。N-BEATS和N-HiTS依賴于多層感知器架構,而PatchTST利用了Transformer架構。XWO28資訊網——每日最新資訊28at.com

2023年4月發表了一個新的模型,它在時間序列分析的多個任務中實現了最先進的結果,如預測、imputation、分類和異常檢測:TimesNet。XWO28資訊網——每日最新資訊28at.com

TimesNet由Wu、Hu、Liu等人在他們的論文《TimesNet: Temporal 2D-Variation Modeling For General Time Series Analysis》中提出。XWO28資訊網——每日最新資訊28at.com

與以前的模型不同,它使用基于cnn的架構來跨不同的任務獲得最先進的結果,使其成為時間序列分析的基礎模型的絕佳候選。XWO28資訊網——每日最新資訊28at.com

在本文中,我們將探討TimesNet的架構和內部工作原理。然后將該模型應用于預測任務,與N-BEATS和N-HiTS進行對比。XWO28資訊網——每日最新資訊28at.com

TimesNet

TimesNet背后的動機來自于許多現實生活中的時間序列表現出多周期性的認識。這意味著變化發生在不同的時期。XWO28資訊網——每日最新資訊28at.com

例如,室外溫度有日周期和年周期。通常,白天比晚上熱,夏天比冬天熱。這些多個時期相互重疊和相互作用,使得很難單獨分離和建模。XWO28資訊網——每日最新資訊28at.com

周期內變化是指溫度在一天內的變化,周期間變化是指溫度每天或每年的變化。所以TimesNet的作者提出在二維空間中重塑序列,以模擬周期內和周期間的變化。XWO28資訊網——每日最新資訊28at.com

TimesNet的架構

XWO28資訊網——每日最新資訊28at.com

從上圖中,我們可以看到TimesNet是多個帶有跳過連接的TimesBlock的堆棧。XWO28資訊網——每日最新資訊28at.com

在每個TimesBlock中,首先通過快速傅立葉變換(FTT)來找到數據中的不同周期。然后被重塑為一個2D向量,并發送到一個Inception塊中,在那里它學習并預測該系列的2D表示。然后使用自適應聚合將該深度表示重塑回一維向量。XWO28資訊網——每日最新資訊28at.com

捕捉多周期性

為了捕獲時間序列中多個時期的變化,作者建議將一維序列轉換為二維空間,同時模擬周期內和周期間的變化。XWO28資訊網——每日最新資訊28at.com

XWO28資訊網——每日最新資訊28at.com

在上圖中,我們可以看到模型是如何表示二維空間中的變化的。在紅色矩形內可以看到周期內的變化,也就是數據在一個周期內的變化。然后藍色矩形包含周期間變化,這是數據如何從一個時期到另一個時期的變化。XWO28資訊網——每日最新資訊28at.com

為了更好地理解這一點,假設我們有以周為周期的每日數據。周期間變化是指數據在周一、周二、周三等期間的變化情況。XWO28資訊網——每日最新資訊28at.com

那么,周期間變化就是數據從第1周的星期一到第2周的星期一,從第1周的星期二到第2周的星期二的變化。換句話說,它是同一階段的數據在不同時期的變化。XWO28資訊網——每日最新資訊28at.com

然后,這些變化在二維空間中表示,其中周期間變化是垂直的,周期內變化是水平的。這使得模型能夠更好地學習數據變化的表示。XWO28資訊網——每日最新資訊28at.com

一維矢量表示的是相鄰點之間的變化,而二維矢量表示的是相鄰點和相鄰周期之間的變化,給出了一個更完整的圖像。XWO28資訊網——每日最新資訊28at.com

原理看著很簡單,但是還有一個最重要的問題:如何找到周期?XWO28資訊網——每日最新資訊28at.com

確定周期性

為了識別時間序列中的多個周期,該模型應用了快速傅里葉變換(FTT)。XWO28資訊網——每日最新資訊28at.com

這是一個數學運算,將信號轉換成頻率和幅度的函數。XWO28資訊網——每日最新資訊28at.com

XWO28資訊網——每日最新資訊28at.com

在上圖中,作者說明了金融交易稅是如何應用的。一旦我們有了每個周期的頻率和幅度,幅度最大的就被認為是最相關的。XWO28資訊網——每日最新資訊28at.com

例如,下面是對eth1數據集執行FTT的結果。XWO28資訊網——每日最新資訊28at.com

XWO28資訊網——每日最新資訊28at.com

在上圖中,快速傅里葉變換能夠快速識別數據中的日周期和年周期,因為我們在這些周期中看到更高的振幅峰值。XWO28資訊網——每日最新資訊28at.com

一旦應用了FTT,用戶可以設置一個參數k來選擇top-k最重要的周期,這些周期是振幅最大的周期。XWO28資訊網——每日最新資訊28at.com

然后,TimesNet為每個周期創建2D向量,并將這些向量發送到2D內核以捕獲時間變化。XWO28資訊網——每日最新資訊28at.com

TimesBlock

一旦序列進行了傅里葉變換,并為前k個周期創建了二維張量,數據就被發送到Inception 塊,如下圖所示。XWO28資訊網——每日最新資訊28at.com

XWO28資訊網——每日最新資訊28at.com

TimesBlock是最主要的模型組件:Inception模塊是2015年發布的計算機視覺模型GoogLeNet的構建塊。XWO28資訊網——每日最新資訊28at.com

Inception模塊的主要思想是通過保持數據稀疏來有效地表示數據。這樣就可以在技術上增加神經網絡的大小,同時保持其計算效率。XWO28資訊網——每日最新資訊28at.com

這是通過執行各種卷積和池化操作來實現的,然后將所有內容連接起來。在TimesNet的上下文中,這就是Inception模塊的樣子。XWO28資訊網——每日最新資訊28at.com

XWO28資訊網——每日最新資訊28at.com

什么作者選擇視覺模型來處理時間序列數據。XWO28資訊網——每日最新資訊28at.com

一個簡單的答案是,視覺模型特別擅長解析2D數據,比如圖像。另一個好處是可以在TimesNet可以更其他的視覺主干。XWO28資訊網——每日最新資訊28at.com

自適應聚合

要執行聚合,必須首先將2D表示重塑為1D向量。XWO28資訊網——每日最新資訊28at.com

使用自適應聚合的原因是不同的周期有不同的振幅,這表明了它們的重要性。XWO28資訊網——每日最新資訊28at.com

這就是為什么FTT的輸出也被發送到softmax層,這樣可以使用每個周期的相對重要性進行聚合。XWO28資訊網——每日最新資訊28at.com

聚合的數據是單個TimesBlock的輸出。然后將多個TimesBlock與殘差連接疊加創建TimesNet模型。XWO28資訊網——每日最新資訊28at.com

TimesNet預測

現在讓我們將TimesNet模型應用于預測任務,并將其性能與N-BEATS和N-HiTS進行比較。XWO28資訊網——每日最新資訊28at.com

我們使用了知識共享署名許可下發布的Etth1數據集。這是文獻中廣泛使用的時間序列預測基準。它跟蹤每小時的變壓器油溫,這反映了設備的狀況。XWO28資訊網——每日最新資訊28at.com

導入庫并讀取數據,這里我們使用Nixtla提供的NeuralForecast實現。XWO28資訊網——每日最新資訊28at.com

import numpy as np import pandas as pd import matplotlib.pyplot as plt  from neuralforecast.core import NeuralForecast from neuralforecast.models import NHITS, NBEATS, TimesNet  from neuralforecast.losses.numpy import mae, mse

讀取CSV文件。XWO28資訊網——每日最新資訊28at.com

df = pd.read_csv('data/etth1.csv') df['ds'] = pd.to_datetime(df['ds']) df.head()

XWO28資訊網——每日最新資訊28at.com

在上圖中,請注意數據集已經具有NeuralForecast所期望的格式。包需要三列:XWO28資訊網——每日最新資訊28at.com

  • ds:日期列
  • id列:unique_id
  • y值列

然后,我們先看看數據XWO28資訊網——每日最新資訊28at.com

fig, ax = plt.subplots()  ax.plot(df['y']) ax.set_xlabel('Time') ax.set_ylabel('Oil temperature')  fig.autofmt_xdate() plt.tight_layout()

XWO28資訊網——每日最新資訊28at.com

現在我們開始預測,使用96小時的預測長度,這是文獻中長期預測的常見長度。XWO28資訊網——每日最新資訊28at.com

我們還保留了兩個96個時間步長的窗口來評估我們的模型。XWO28資訊網——每日最新資訊28at.com

我們定義一個我們想要用來執行預測任務的模型列表。這里將使用N-BEATS, N-HiTS和TimesNet。XWO28資訊網——每日最新資訊28at.com

保留所有模型的默認參數,并將最大epoch數限制為50。請注意,默認情況下,TimesNet將選擇數據中最重要的前5個輪次。XWO28資訊網——每日最新資訊28at.com

horizon = 96  models = [NHITS(h=horizon,                input_size=2*horizon,                max_steps=50),          NBEATS(h=horizon,                input_size=2*horizon,                max_steps=50),          TimesNet(h=horizon,                  input_size=2*horizon,                  max_steps=50)]

下一步是用模型列表和數據頻率(每小時一次)實例化NeuralForecasts對象。XWO28資訊網——每日最新資訊28at.com

nf = NeuralForecast(models=models, freq='H')

然后運行交叉驗證,這樣就有了數據集的預測值和實際值。可以評估每個模型的性能。XWO28資訊網——每日最新資訊28at.com

preds_df = nf.cross_validation(df=df, step_size=horizon, n_windows=2)

XWO28資訊網——每日最新資訊28at.com

我們可以看到實際值,以及來自我們指定的每個模型的預測。這樣可以很容易地將預測與實際值相比較。XWO28資訊網——每日最新資訊28at.com

fig, ax = plt.subplots()  ax.plot(preds_df['y'], label='actual') ax.plot(preds_df['NHITS'], label='N-HITS', ls='--') ax.plot(preds_df['NBEATS'], label='N-BEATS', ls=':') ax.plot(preds_df['TimesNet'], label='TimesNet', ls='-.')  ax.legend(loc='best') ax.set_xlabel('Time steps') ax.set_ylabel('Oil temperature')  fig.autofmt_xdate() plt.tight_layout()

XWO28資訊網——每日最新資訊28at.com

在上圖中,似乎所有的模型都無法預測測試集中觀察到的油溫下降。但是可以看到N-BEATS和N-HiTS已經捕捉到了一些在TimesNet的預測中沒有觀察到的周期性模式。XWO28資訊網——每日最新資訊28at.com

但是最終還需要通過計算MSE和MAE來評估模型,以確定哪個模型是最好的。XWO28資訊網——每日最新資訊28at.com

data = {'N-HiTS': [mae(preds_df['NHITS'], preds_df['y']), mse(preds_df['NHITS'], preds_df['y'])],        'N-BEATS': [mae(preds_df['NBEATS'], preds_df['y']), mse(preds_df['NBEATS'], preds_df['y'])],        'TimesNet': [mae(preds_df['TimesNet'], preds_df['y']), mse(preds_df['TimesNet'], preds_df['y'])]}  metrics_df = pd.DataFrame(data=data) metrics_df.index = ['mae', 'mse']  metrics_df.style.highlight_min(color='lightgreen', axis=1)

XWO28資訊網——每日最新資訊28at.com

從上圖可以看出,N-HiTS獲得最低的MAE,而N-BEATS獲得最低的MSE。MAE的差異為0.002,MSE的差異為0.00025。由于MSE的差異非常小,特別是考慮到誤差是平方的,所以我認為N-HiTS是這項任務的首選模型。XWO28資訊網——每日最新資訊28at.com

總結

本文并不是要證明TimesNet有多好,因為不同的模型可能適應不同的任務,并且我們也沒有進行超參數優化,我們介紹TimesNet的主要目的是他的思路,它不僅將cnn的架構引入了時間序列預測,并且還提供了一種周期性判別的新的思路,這些都是值得我們學習的。XWO28資訊網——每日最新資訊28at.com

一如既往,每個預測問題都需要一個獨特的方法和一個特定的模型,所以你可以在你的模型列表中增加一個TimesNet了。XWO28資訊網——每日最新資訊28at.com

本文代碼:https://github.com/marcopeix/time-series-analysisXWO28資訊網——每日最新資訊28at.com

TimesNet,論文地址:https://browse.arxiv.org/pdf/2210.02186.pdfXWO28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-13626-0.htmlTimesNet:時間序列預測的最新模型

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 超簡單,在IntelliJ IDEA中使用JUnit和Mockito進行單元測試

下一篇: Java反射機制:動態加載類與方法的調用

標簽:
  • 熱門焦點
  • Mate60手機殼曝光 致敬自己的經典設計

    8月3日消息,今天下午博主數碼閑聊站帶來了華為Mate60的第三方手機殼圖,可以讓我們在真機發布之前看看這款華為全新旗艦的大致輪廓。從曝光的圖片看,Mate 60背后攝像頭面積依然
  • Redmi Pad評測:紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍牙耳機到筆記本電腦,紅米不知不覺之間也已經形成了自己頗有競爭力的產品體系,在中端和次旗艦市場上甚至要比小米新機的表現來得更好,正所謂“大丈夫生居
  • 6月安卓手機性價比榜:Note 12 Turbo斷層式碾壓

    6月份有一個618,雖然這是京東周年慶的日子,但別的電商也都不約而同的跟進了,反正促銷沒壞處,廠商和用戶都能滿意。618期間一些產品也出現了歷史低價,那么各個價位段的產品性價比
  • 微信語音大揭秘:為什么禁止轉發?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉發?這是一個我們經常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • 猿輔導與新東方的兩種“歸途”

    作者|卓心月 出品|零態LT(ID:LingTai_LT)如何成為一家偉大企業?答案一定是對“勢”的把握,這其中最關鍵的當屬對企業戰略的制定,且能夠站在未來看現在,即使這其中的
  • 花7萬退貨退款無門:誰在縱容淘寶珠寶商家造假?

    來源:極點商業作者:楊銘在淘寶購買珠寶玉石后,因為保證金不夠賠付,店鋪關閉,退貨退款難、維權無門的比比皆是。“提供相關產品鑒定證書,支持全國復檢,可以30天無理由退換貨。&
  • 小米汽車電池信息疑似曝光:容量101kWh,支持800V高壓快充

    7月14日消息,今日一名博主在社交媒體發布了一張疑似小米汽車電池信息的照片,顯示該電池包正是寧德時代麒麟電池,容量為101kWh,電壓為726.7V,可以預測小
  • 疑似小米14外觀設計圖曝光:后置相機模組變化不大

    下半年的大幕已經開啟,而誰將成為下半年手機圈的主角就成為了大家關注的焦點,其中被傳有望拿下新一代驍龍8 Gen3旗艦芯片的小米14系列更是備受大家矚
  • iQOO 11S評測:行業唯一的200W標準版旗艦

    【Techweb評測】去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,該機不僅全球首發2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競
Top 主站蜘蛛池模板: 娄烦县| 定远县| 德兴市| 屏南县| 新巴尔虎左旗| 凯里市| 依安县| 海伦市| 贡嘎县| 措美县| 庄浪县| 泰来县| 日照市| 德钦县| 扶风县| 邯郸县| 龙江县| 泰来县| 温州市| 抚松县| 双辽市| 徐水县| 鄂托克旗| 杭锦旗| 铜川市| 南川市| 民县| 广饶县| 嫩江县| 息烽县| 双峰县| 象山县| 同德县| 泗洪县| 汪清县| 古丈县| 资阳市| 崇文区| 桃源县| 冀州市| 大田县|