本文中,作者硬核總結(jié)了十多種時(shí)間序列數(shù)據(jù)分析和預(yù)測工具和python庫 ,在我們處理時(shí)間序列項(xiàng)目時(shí),可以翻開本文,根據(jù)需要選擇合適的工具,將會事半功倍! 在處理時(shí)間序列項(xiàng)目時(shí),數(shù)據(jù)科學(xué)家或 ML 工程師通常會使用特定的工具和庫。 或者他們使用一些眾所周知的工具,而這些工具已被證明可以很好地適用與對應(yīng)的時(shí)間序列項(xiàng)目。 如果能將這些工具匯總,在以后的項(xiàng)目中將會很受用。這篇文章是一個時(shí)間序列工具和包的備忘錄。其中一些是非常有名的,也有些可能是第一次聽說。不過沒關(guān)系,先點(diǎn)贊加收藏 ,希望你以后會發(fā)現(xiàn)這篇文章很有用!
時(shí)間序列 時(shí)間序列是按時(shí)間順序索引的數(shù)據(jù)點(diǎn)序列。這是在連續(xù)時(shí)間點(diǎn)對同一變量的觀察。換句話說,它是在一段時(shí)間內(nèi)觀察到的一組數(shù)據(jù)。
數(shù)據(jù)通常繪制為圖表上的一條線,x 軸為時(shí)間,y 軸為每個點(diǎn)的值。此外,時(shí)間序列有四個主要組成部分:
一般來說,時(shí)間序列經(jīng)常被用于經(jīng)濟(jì)學(xué)、數(shù)學(xué)、生物學(xué)、物理學(xué)、氣象學(xué)等許多領(lǐng)域。
時(shí)間序列項(xiàng)目示例 股票預(yù)測 股票市場預(yù)測是一個具有挑戰(zhàn)性和吸引力的話題,其主要目標(biāo)是開發(fā)多種方法和策略來預(yù)測未來的股票價(jià)格。有很多不同的技術(shù),從經(jīng)典的算法和統(tǒng)計(jì)方法到復(fù)雜的神經(jīng)網(wǎng)絡(luò)架構(gòu)。共同點(diǎn)是它們都利用不同的時(shí)間序列來實(shí)現(xiàn)準(zhǔn)確的預(yù)測。股市預(yù)測方法被業(yè)余投資者、金融科技初創(chuàng)公司和大型對沖基金廣泛使用。
基本面分析 著眼于公司的財(cái)務(wù)報(bào)表、管理和行業(yè)趨勢等因素。此外,它還考慮了一些宏觀經(jīng)濟(jì)指標(biāo),例如通貨膨脹率、GDP、經(jīng)濟(jì)狀況等。所有這些指標(biāo)都是時(shí)間相關(guān)的,因此可以表示為時(shí)間序列。
與基本面分析相比,技術(shù)分析 使用交易量、價(jià)格變化和來自市場本身的其他信息的模式來預(yù)測股票未來的表現(xiàn)。投資者在做出投資決定之前了解這兩種方法很重要。
心電異常檢測 心電圖異常檢測是一種檢測心電圖異常的技術(shù)。心電圖是一項(xiàng)監(jiān)測心臟電活動的測試?;旧?,它是由心臟產(chǎn)生并表示為時(shí)間序列的電信號。
心電圖異常檢測是通過將心電圖的正常模式與異常模式進(jìn)行比較來完成的。心電圖異常有多種類型,可分為以下幾類:
心率異常: 這是指心率在正常范圍內(nèi)的任何變化。這可能是由于心臟問題或如何刺激它。心律異常: 這是指節(jié)律與其正常模式的任何變化。這可能是由于脈沖通過心臟傳導(dǎo)的方式存在問題,或者它們通過心臟傳導(dǎo)的速度存在問題。從學(xué)術(shù)研究到商用心電圖機(jī),在這個主題上已經(jīng)做了很多工作,并且有一些有希望的結(jié)果。最大的問題是系統(tǒng)應(yīng)該具有很高的準(zhǔn)確性,并且不應(yīng)該有任何誤報(bào)或誤報(bào)。這是由于問題的性質(zhì)和錯誤預(yù)測的后果。
時(shí)間序列項(xiàng)目的工具 時(shí)間序列在各個行業(yè)中的重要性,已經(jīng)不用多說。接下來 看看用于時(shí)間序列項(xiàng)目的Python工具都有哪些。
數(shù)據(jù)準(zhǔn)備和特征工程工具 數(shù)據(jù)準(zhǔn)備和特征工程 數(shù)據(jù)準(zhǔn)備和特征工程是數(shù)據(jù)科學(xué)管道中的兩個非常重要的步驟。數(shù)據(jù)準(zhǔn)備通常是任何數(shù)據(jù)科學(xué)項(xiàng)目的第一步。這是將數(shù)據(jù)轉(zhuǎn)換為可用于分析和進(jìn)一步處理的形式的過程。
特征工程是從原始數(shù)據(jù)中提取特征以使其對建模和預(yù)測更有用的過程。下面,我們將提到一些用于這些任務(wù)的最流行的工具。
Pandas 的時(shí)間序列處理
Pandas 是一個用于數(shù)據(jù)操作和分析的 Python 庫。它包括用于操作數(shù)值表和時(shí)間序列的數(shù)據(jù)結(jié)構(gòu)和方法。此外,它還包含廣泛的功能和特性,可用于處理所有領(lǐng)域的時(shí)間序列數(shù)據(jù)。
它支持來自各種文件類型的數(shù)據(jù)輸入,包括 CSV、JSON、Parquet、SQL 數(shù)據(jù)庫表和查詢以及 Microsoft Excel。此外,Pandas 允許各種數(shù)據(jù)操作功能,例如合并、重塑、選擇以及數(shù)據(jù)清理和整理。
一些常用的時(shí)間序列特征是:
日期范圍生成和頻率轉(zhuǎn)換
移動窗口統(tǒng)計(jì)
移動窗口線性回歸
日期轉(zhuǎn)換
滯后等等
NumPy 的時(shí)間序列處理 NumPy 是一個 Python 庫,它增加了對巨大的多維數(shù)組和矩陣的支持,以及可以在這些數(shù)組上使用大量高級數(shù)學(xué)運(yùn)算的函數(shù)。它的語法與 MATLAB 非常相似,包括一個高性能的多維數(shù)組對象以及處理這些數(shù)組的能力。
NumPy 的 datetime64 數(shù)據(jù)類型和數(shù)組可以非常方便地表示時(shí)間序列中的日期。使用 NumPy 還可以輕松地使用線性代數(shù)運(yùn)算進(jìn)行各種時(shí)間序列運(yùn)算。
Datetime 的時(shí)間序列處理
Datetime 是一個 Python 模塊,它允許我們處理日期和時(shí)間。該模塊包含處理場景所需的方法和功能,例如: 日期和時(shí)間的表示
日期和時(shí)間的算術(shù)
日期和時(shí)間的比較
使用此工具處理時(shí)間序列很簡單。它允許用戶將日期和時(shí)間轉(zhuǎn)換為對象并對其進(jìn)行操作。例如,只需要幾行代碼,就可以從一種 DateTime 格式轉(zhuǎn)換為另一種格式,添加到日期的天數(shù)、月數(shù)或年數(shù),或者計(jì)算兩個時(shí)間對象之間的秒數(shù)差異。
Tsfresh 的時(shí)間序列處理 Tsfresh 是一個 Python 包。它會自動計(jì)算大量的時(shí)間序列特征,稱為特征。該軟件包將來自統(tǒng)計(jì)、時(shí)間序列分析、信號處理和非線性動力學(xué)的既定算法與強(qiáng)大的特征選擇算法相結(jié)合,以提供系統(tǒng)的時(shí)間序列特征提取。
Tsfresh 包包括一個過濾程序,以防止提取不相關(guān)的特征。此過濾程序評估每個特征對回歸或分類任務(wù)的解釋能力和重要性。
高級時(shí)間序列功能的一些示例是:
數(shù)據(jù)分析和可視化包 數(shù)據(jù)分析和可視化包是幫助數(shù)據(jù)分析師從他們的數(shù)據(jù)中創(chuàng)建圖形和圖表的工具。數(shù)據(jù)分析被定義為清理、轉(zhuǎn)換和建模數(shù)據(jù)的過程,以便發(fā)現(xiàn)對業(yè)務(wù)決策有用的信息。數(shù)據(jù)分析的目標(biāo)是從數(shù)據(jù)中提取有用的信息并根據(jù)該信息做出決策。
數(shù)據(jù)的圖形表示稱為數(shù)據(jù)可視化。使用圖表和圖形等可視化元素的數(shù)據(jù)可視化工具提供了一種查看和理解數(shù)據(jù)趨勢和模式的簡便方法。
時(shí)間序列有大量的數(shù)據(jù)分析和可視化包,這里總結(jié)了其中的一些常用的工具。
Matplotlib 的時(shí)間序列可視化 用于數(shù)據(jù)可視化的最流行的 Python 包可能是 Matplotlib。它用于創(chuàng)建靜態(tài)、動畫和交互式可視化。使用 Matplotlib 可以做一些事情,例如:
創(chuàng)建可以放大、平移和更新的交互式圖形 Plotly 時(shí)間序列可視化 Plotly 是一個交互式、開源和基于瀏覽器的 Python 和 R 圖形庫。它是一個高級的聲明性圖表庫,具有 30 多種圖表類型,包括科學(xué)圖表、3D 圖表、統(tǒng)計(jì)圖表、SVG 地圖、金融圖表等等。
除此之外,使用 Plotly 還可以繪制基于時(shí)間序列的交互式圖表,例如折線圖、甘特圖、散點(diǎn)圖等。
Statsmodels 時(shí)間序列可視化
Statsmodels 是一個 Python 包,它提供了用于估計(jì)各種統(tǒng)計(jì)模型以及運(yùn)行統(tǒng)計(jì)測試和統(tǒng)計(jì)數(shù)據(jù)分析的類和函數(shù)。
它為時(shí)間序列分解及其可視化提供了一種非常方便的方法。使用這個包,可以輕松分解任何時(shí)間序列并分析其組成部分,例如趨勢、季節(jié)性組成部分以及殘差或噪聲。
statsmodels 庫在名為seasonal_decompose()的函數(shù)中提供了簡單或經(jīng)典分解方法的實(shí)現(xiàn)。它要求你指定模型是加法還是乘法。seasonal_decompose() 函數(shù)返回一個結(jié)果對象。結(jié)果對象以數(shù)組形式提供對趨勢和季節(jié)性系列的訪問。它還提供了對殘差的訪問,殘差是趨勢之后的時(shí)間序列,并且去除了季節(jié)性成分。
時(shí)間序列預(yù)測包 時(shí)間序列項(xiàng)目中最重要的部分可能是預(yù)測。預(yù)測是根據(jù)當(dāng)前和過去的數(shù)據(jù)預(yù)測未來事件的過程。它基于這樣一種假設(shè),即未來可以從過去實(shí)現(xiàn)。此外,它假設(shè)數(shù)據(jù)中有一些模式可用于預(yù)測接下來會發(fā)生什么。
時(shí)間序列預(yù)測的方法有很多種,從簡單的線性回歸和基于 ARIMA 的方法開始,到復(fù)雜的多層神經(jīng)網(wǎng)絡(luò)或集成模型。在這里,我們將展示一些支持不同類型模型的包。
使用 Statsmodels 進(jìn)行時(shí)間序列預(yù)測
Statsmodels 是我們在數(shù)據(jù)可視化工具一節(jié)中已經(jīng)提到的一個包。但是,這是一個更相關(guān)的預(yù)測包?;旧?,這個包提供了一系列統(tǒng)計(jì)模型和假設(shè)檢驗(yàn)。
Statsmodels 包還包括用于時(shí)間序列分析的模型類和函數(shù)。自回歸移動平均模型 (ARMA) 和向量自回歸模型 (VAR) 是基本模型的示例。馬爾可夫切換動態(tài)回歸和自回歸是非線性模型的示例。它還包括時(shí)間序列描述性統(tǒng)計(jì),例如自相關(guān)、偏自相關(guān)函數(shù)和周期圖,以及 ARMA 或相關(guān)過程的理論性質(zhì)。
Statsmodels [8] 描述了如何使用 Statsmodels 包開始使用時(shí)間序列。
使用 Pmdarima 進(jìn)行時(shí)間序列預(yù)測
Pmdarima 是一個統(tǒng)計(jì)庫,有助于使用基于 ARIMA 的方法對時(shí)間序列進(jìn)行建模。除此之外,它還具有其他功能,例如:
一組平穩(wěn)性和季節(jié)性的統(tǒng)計(jì)檢驗(yàn)
各種內(nèi)生和外生變壓器,包括 Box-Cox 和傅里葉變換
季節(jié)性時(shí)間序列、交叉驗(yàn)證實(shí)用程序和其他工具的分解
也許這個庫最有用的工具是 Auto-Arima 模塊,它在提供的約束內(nèi)搜索所有可能的 ARIMA 模型,并根據(jù) AIC 或 BIC 值返回最佳模型。
這個包不是很常見,這里給出一個簡單的例子:
import pmdarima as pmfrom pmdarima import model_selectionimport matplotlib.pyplot as pltimport numpy as np# 加載數(shù)據(jù)并將其拆分為單獨(dú)的部分 data = pm.datasets.load_lynx() train, test = model_selection.train_test_split(data, train_size=100 )# fit一些驗(yàn)證(cv)樣本 arima = pm.auto_arima(train, start_p=1 , start_q=1 , d=0 , max_p=5 , max_q=5 , out_of_sample_size=10 , suppress_warnings=True , stepwise=True , error_action='ignore' )# 現(xiàn)在繪制測試集的結(jié)果和預(yù)測 preds, conf_int = arima.predict(n_periods=test.shape[0 ], return_conf_int=True ) fig, axes = plt.subplots(2 , 1 , figsize=(12 , 8 )) x_axis = np.arange(train.shape[0 ] + preds.shape[0 ]) axes[0 ].plot(x_axis[:train.shape[0 ]], train, alpha=0.75 ) axes[0 ].scatter(x_axis[train.shape[0 ]:], preds, alpha=0.4 , marker='o' ) axes[0 ].scatter(x_axis[train.shape[0 ]:], test, alpha=0.4 , marker='x' ) axes[0 ].fill_between(x_axis[-preds.shape[0 ]:], conf_int[:, 0 ], conf_int[:, 1 ], alpha=0.1 , color='b' )# 填寫在模型中'held out'樣本的部分 axes[0 ].set_title('Train samples & forecasted test samples' )# 現(xiàn)在將實(shí)際樣本添加到模型中并創(chuàng)建NEW預(yù)測 arima.update(test) new_preds, new_conf_int = arima.predict(n_periods=10 , return_conf_int=True ) new_x_axis = np.arange(data.shape[0 ] + 10 ) axes[1 ].plot(new_x_axis[:data.shape[0 ]], data, alpha=0.75 ) axes[1 ].scatter(new_x_axis[data.shape[0 ]:], new_preds, alpha=0.4 , marker='o' ) axes[1 ].fill_between(new_x_axis[-new_preds.shape[0 ]:], new_conf_int[:, 0 ], new_conf_int[:, 1 ], alpha=0.1 , color='g' ) axes[1 ].set_title('Added new observed values with new forecasts' ) plt.show()
使用 Sklearn 進(jìn)行時(shí)間序列預(yù)測 Sklearn 或 Scikit-Learn 無疑是 Python 中最常用的機(jī)器學(xué)習(xí)包之一。它提供了各種分類、回歸和聚類方法,包括隨機(jī)森林、支持向量機(jī)、k-means 等。除此之外,它還提供了一些與降維、模型選擇、數(shù)據(jù)預(yù)處理等相關(guān)的實(shí)用程序。
除了各種模型之外,對于時(shí)間序列,還有一些有用的功能,例如管道、時(shí)間序列交叉驗(yàn)證函數(shù)、用于測量結(jié)果的各種指標(biāo)等。
使用 PyTorch 進(jìn)行時(shí)間序列預(yù)測 PyTorch 是一個基于 Python 的深度學(xué)習(xí)庫,用于快速靈活的實(shí)驗(yàn)。它最初由 Facebook 人工智能研究團(tuán)隊(duì)的研究人員和工程師開發(fā),然后開源。Tesla Autopilot、Uber 的 Pyro 和 Hugging Face 的 Transformers 等深度學(xué)習(xí)軟件都建立在 PyTorch 之上。
使用 PyTorch,可以構(gòu)建強(qiáng)大的循環(huán)神經(jīng)網(wǎng)絡(luò)模型,例如 LSTM 和 GRU 以及預(yù)測時(shí)間序列。此外,還有一個具有最先進(jìn)網(wǎng)絡(luò)架構(gòu)的 PyTorch 預(yù)測包(PyTorch Forecasting )。它還包括一個時(shí)間序列數(shù)據(jù)集類,用于抽象處理變量轉(zhuǎn)換、缺失值、隨機(jī)子采樣、多個歷史長度和其他類似問題。
PyTorch Forecasting 旨在通過神經(jīng)網(wǎng)絡(luò)簡化最先進(jìn)的時(shí)間序列預(yù)測,以用于現(xiàn)實(shí)世界的案例和研究等。目標(biāo)是為專業(yè)人士提供具有最大靈活性并為初學(xué)者提供合理默認(rèn)值的高級 API。具體來說,該軟件包提供
一個時(shí)間序列數(shù)據(jù)集類,它抽象處理變量轉(zhuǎn)換、缺失值、隨機(jī)子采樣、多個歷史長度等。 一個基本模型類,它提供時(shí)間序列模型的基本訓(xùn)練以及登錄張量板和通用可視化,例如實(shí)際與預(yù)測和依賴圖 用于時(shí)間序列預(yù)測的多個神經(jīng)網(wǎng)絡(luò)架構(gòu),已針對實(shí)際部署進(jìn)行了增強(qiáng),并具有內(nèi)置的解釋功能 Ranger 優(yōu)化器用于更快的模型訓(xùn)練 使用optuna進(jìn)行超參數(shù)調(diào)整 使用 Tensorflow (Keras) 進(jìn)行時(shí)間序列預(yù)測 TensorFlow 是一個基于數(shù)據(jù)流圖的機(jī)器學(xué)習(xí)開源軟件庫。它最初由 Google Brain 團(tuán)隊(duì)開發(fā)供內(nèi)部使用,但后來作為開源項(xiàng)目發(fā)布。該軟件庫提供了一組高級數(shù)據(jù)流算子,可以組合起來以自然的方式表達(dá)涉及多維數(shù)據(jù)數(shù)組、矩陣和高階張量的復(fù)雜計(jì)算。它還提供了一些較低級別的原語,例如用于構(gòu)造自定義運(yùn)算符或加速執(zhí)行常見操作的內(nèi)核。
Keras 是構(gòu)建在 TensorFlow 之上的高級 API。使用 Keras 和 TensorFlow,可以構(gòu)建用于時(shí)間序列預(yù)測的神經(jīng)網(wǎng)絡(luò)模型。下面的教程解釋了使用天氣時(shí)間序列數(shù)據(jù)集的時(shí)間序列項(xiàng)目的一個示例:
使用 Sktime 進(jìn)行時(shí)間序列預(yù)測
Sktime 是一個用于時(shí)間序列和機(jī)器學(xué)習(xí)的開源 Python 庫。它包括有效解決時(shí)間序列回歸、預(yù)測和分類任務(wù)所需的算法和轉(zhuǎn)換工具。創(chuàng)建 Sktime 是為了與 scikit-learn 一起工作,并且可以輕松地為相互關(guān)聯(lián)的時(shí)間序列任務(wù)調(diào)整算法以及構(gòu)建復(fù)合模型。
總體而言,此包提供:
最先進(jìn)的時(shí)間序列預(yù)測算法 時(shí)間序列的轉(zhuǎn)換,例如去趨勢或去季節(jié)化等 模型和轉(zhuǎn)換、模型調(diào)整實(shí)用程序和其他有用功能的管道 使用 Prophet 進(jìn)行時(shí)間序列預(yù)測
Prophet 是 Facebook 核心數(shù)據(jù)科學(xué)團(tuán)隊(duì)發(fā)布的開源庫。簡而言之,它包含一個預(yù)測時(shí)間序列數(shù)據(jù)的程序,該程序基于一個加性模型,該模型將一些非線性趨勢與年度、每周和每日季節(jié)性以及假日效應(yīng)相結(jié)合。它最適用于具有強(qiáng)烈季節(jié)性影響的時(shí)間序列和來自多個季節(jié)的歷史數(shù)據(jù)。它通常能夠處理缺失數(shù)據(jù)、趨勢變化和異常值。
使用 Pycaret 進(jìn)行時(shí)間序列預(yù)測 PyCaret 是 Python 中的一個開源機(jī)器學(xué)習(xí)庫,可自動執(zhí)行機(jī)器學(xué)習(xí)工作流。使用 PyCaret,可以用最少的工作和幾行代碼來構(gòu)建和測試多個機(jī)器學(xué)習(xí)模型。一般用最少的代碼,不需要深入細(xì)節(jié),就可以構(gòu)建一個從 EDA 到部署的端到端機(jī)器學(xué)習(xí)項(xiàng)目。
這個庫有一些有用的時(shí)間序列模型,其中包括:
Lasso Net 具有去季節(jié)化和去趨勢選項(xiàng)以及許多其他選項(xiàng) 使用 AutoTS 進(jìn)行時(shí)間序列預(yù)測 AutoTS 是 Python 的時(shí)間序列包,旨在自動化時(shí)間序列預(yù)測。它可用于為單變量和多變量時(shí)間序列找到最佳時(shí)間序列預(yù)測模型。此外,AutoTS 本身會從數(shù)據(jù)中清除任何缺失值或異常值。 近 20 個預(yù)定義模型(如 ARIMA、ETS、VECM)可用,并且使用遺傳算法,它可以為給定數(shù)據(jù)集進(jìn)行預(yù)處理、找到最佳模型和模型集成。
使用 Darts 進(jìn)行時(shí)間序列預(yù)測 Darts 是一個 Python 庫,允許對時(shí)間序列進(jìn)行簡單的操作和預(yù)測。它包括范圍廣泛的模型,從經(jīng)典的 ES 和 ARIMA 到 RNN 和transformers。所有模型都可以以與 scikit-learn 包中相同的方式使用。
該庫還允許輕松地對模型進(jìn)行回測、組合來自多個模型的預(yù)測以及合并外部數(shù)據(jù)。它支持單變量和多變量模型??梢栽诖颂幷业剿锌捎媚P偷谋硪约皫讉€示例:
# TimeSeries從 Pandas DataFrame創(chuàng)建一個對象,并將其拆分為訓(xùn)練/驗(yàn)證系列: import pandas as pdimport matplotlib.pyplot as pltfrom darts import TimeSeriesfrom darts.models import ExponentialSmoothing df = pd.read_csv('AirPassengers.csv' , delimiter=',' ) series = TimeSeries.from_dataframe(df, 'Month' , '#Passengers' ) train, val = series[:-36 ], series[-36 :]# 擬合指數(shù)平滑模型,并對驗(yàn)證系列的持續(xù)時(shí)間進(jìn)行(概率)預(yù)測: model = ExponentialSmoothing() model.fit(train) prediction = model.predict(len(val), num_samples=1000 )# 繪制中位數(shù)、第 5 和第 95 個百分位數(shù): series.plot() prediction.plot(label='forecast' , low_quantile=0.05 , high_quantile=0.95 ) plt.legend()
使用 Kats 進(jìn)行時(shí)間序列預(yù)測 Kats 是 Facebook 基礎(chǔ)設(shè)施數(shù)據(jù)科學(xué)團(tuán)隊(duì)發(fā)布的一個包,旨在執(zhí)行時(shí)間序列分析。這個包的目標(biāo)是提供時(shí)間序列分析所需的一切,包括檢測、預(yù)測、特征提取/嵌入、多變量分析等。
Kats 提供了一套全面的預(yù)測工具,例如集成、元學(xué)習(xí)模型、回測、超參數(shù)調(diào)整和經(jīng)驗(yàn)預(yù)測區(qū)間。此外,它還包括用于檢測時(shí)間序列數(shù)據(jù)中的季節(jié)性、異常值、變化點(diǎn)和緩慢趨勢變化的功能。使用 TSFeature 選項(xiàng),可以生成 65 個具有清晰統(tǒng)計(jì)定義的特征,這些特征可用于大多數(shù)機(jī)器學(xué)習(xí)模型。
from kats.models.sarima import SARIMAModel, SARIMAParams# create SARIMA param class params = SARIMAParams(p = 2 , d=1 , q=1 , trend = 'ct' , seasonal_order=(1 ,0 ,1 ,12 ))# initiate SARIMA model m = SARIMAModel(data=air_passengers_ts, params=params)# fit SARIMA model m.fit()# generate forecast values fcst = m.predict(steps=30 , freq='MS' ) m.plot()
預(yù)測庫比較 這里提供了一個包含一些常見功能的表格來比較預(yù)測包。表中顯示了一些指標(biāo),例如 GitHub 星數(shù)、發(fā)布年份、支持功能等。
發(fā)行年份 GitHub 星星 統(tǒng)計(jì)與計(jì)量經(jīng)濟(jì)學(xué) 機(jī)器學(xué)習(xí) 深度學(xué)習(xí) Statsmodels 2010 7200 ? ? ? Pmdarima 2018 1100 ? ? Sklearn 2007 50000 ? ?? ? PyTorch 2016 55000 ? ?? TensorFlow 2015 164000 ? ?? Sktime 2019 5000 ? Prophet 2017 14000 ? ? PyCaret 2020 5500 ? ? ? AutoTS 2020 450 ? ? Darts 2021 3800 ? ? ? Kats 2021 3600 ? ?
結(jié)論 在這篇文章中,我們描述了時(shí)間序列項(xiàng)目最常用的工具、包和庫。使用此工具列表,可以涵蓋幾乎所有與時(shí)間序列相關(guān)的項(xiàng)目。最重要的是,我們提供了用于預(yù)測的庫的比較,其中顯示了一些有趣的統(tǒng)計(jì)數(shù)據(jù),例如發(fā)布年份、受歡迎程度以及它支持的模型類型。
[1] Pandas: https://pandas./pandas-docs/stable/user_guide/timeseries.html
[2] NumPy: https:///
[3] Datetime: https://docs./3/library/datetime.html#module-datetime
[4] Tsfresh: https://tsfresh./en/latest/index.html
[5] Matplotlib: https:///
[6] Plotly: https:///python/time-series/
[7] Statsmodels: https://www./dev/generated/statsmodels.tsa.seasonal.seasonal_decompose.html
[8] Statsmodels: https://www./stable/tsa.html
[9] pmdarima: https:///pmdarima/
[10] Sklearn: https:///stable/index.html
[11] PyTorch: https://github.com/jdb78/pytorch-forecasting
[12] TensorFlow: https://www./tutorials/structured_data/time_series
[13] Sktime: https://www./en/stable/
[14] Prophet: https://github.com/facebook/prophet
[15] PyCaret: https://pycaret./en/time_series/api/time_series.html
[16] autots_1280: https://github.com/winedarksea/AutoTS
[17] Darts: https://unit8co./darts/
[18] smaimr1: https://facebookresearch./Kats/
[19] smaimr2: https://github.com/facebookresearch/Kats