python機器學(xué)習(xí)darts時間序列預(yù)測和分析
python庫darts
今天給大家分享一個神奇的 python 庫,darts
https://github.com/unit8co/darts
darts 是一個用于時間序列預(yù)測和分析的 Python 庫。它支持多種時間序列模型,包括經(jīng)典統(tǒng)計學(xué)模型和最新的機器學(xué)習(xí)模型,它還設(shè)計了簡單直觀的 API,使得即使是時間序列分析的初學(xué)者也能輕松上手。

特點
darts 具有如下特點
預(yù)測模型:darts 支持多種時間序列模型,包括經(jīng)典統(tǒng)計學(xué)模型(如 ARIMA、指數(shù)平滑法)和最新的機器學(xué)習(xí)模型(如 Prophet、RNN)
異常檢測:darts 提供廣泛的異常檢測功能。例如,在時間序列上應(yīng)用 PyOD 模型來獲取異常分數(shù)。
多變量支持:TimeSeries 可以是多變量的,即包含多個隨時間變化的維度而不是單個標量值。
分層協(xié)調(diào):darts 提供了轉(zhuǎn)換器來執(zhí)行協(xié)調(diào)。這些可以使預(yù)測以尊重底層層次結(jié)構(gòu)的方式進行累加。
回歸模型:可以插入任何 scikit-learn 兼容模型,以獲得作為目標序列和協(xié)變量的滯后值函數(shù)的預(yù)測。
可解釋性:darts 能夠使用 Shap 值解釋一些預(yù)測模型。
數(shù)據(jù)處理:輕松應(yīng)用時間序列數(shù)據(jù)常見轉(zhuǎn)換的工具。
Metrics:評估時間序列擬合的多種指標。
回溯測試:使用移動時間窗口模擬歷史預(yù)測的實用程序。
PyTorch Lightning 支持:所有深度學(xué)習(xí)模型均使用 PyTorch Lightning 實現(xiàn),支持自定義回調(diào)、GPU/TPU 訓(xùn)練和自定義訓(xùn)練器等。
過濾模型:darts 提供三種過濾模型,KalmanFilter、GaussianProcessFilter 和 MovingAverageFilter,它們允許過濾時間序列。
數(shù)據(jù)集:darts.datasets 子模塊包含一些流行的時間序列數(shù)據(jù)集,用于快速且可重復(fù)的實驗。
庫的安裝
可以直接通過 pip 進行安裝。
注意,需要對應(yīng)的 python 版本大于等于 3.8
pip install darts
預(yù)測
首先我們通過 pandas 來加載數(shù)據(jù)集。
import pandas as pd
from darts import TimeSeries
# Read a pandas DataFrame
df = pd.read_csv("AirPassengers.csv", delimiter=",")
# Create a TimeSeries, specifying the time and value columns
series = TimeSeries.from_dataframe(df, "Month", "#Passengers")
# Set aside the last 36 months as a validation series
train, val = series[:-36], series[-36:]接下來訓(xùn)練一個指數(shù)平滑模型,并對驗證集進行預(yù)測。
from darts.models import ExponentialSmoothing import matplotlib.pyplot as plt model = ExponentialSmoothing() model.fit(train) prediction = model.predict(len(val), num_samples=1000) series.plot() prediction.plot(label="forecast", low_quantile=0.05, high_quantile=0.95) plt.legend()

異常檢測
首先,我們加載一個多元序列。
from darts.datasets import ETTh2Dataset series = ETTh2Dataset().load()[:10000][["MUFL", "LULL"]] train, val = series.split_before(0.6)
接下來,構(gòu)建一個 k-means 異常評分器,在訓(xùn)練集上對其進行訓(xùn)練,并在驗證集上使用它來獲取異常分數(shù)。
from darts.ad import KMeansScorer scorer = KMeansScorer(k=2, window=5) scorer.fit(train) anom_score = scorer.score(val)
然后構(gòu)建一個二元異常檢測器并通過訓(xùn)練分數(shù)對其進行訓(xùn)練,然后使用它對驗證分數(shù)來獲得二元異常分類
from darts.ad import QuantileDetector detector = QuantileDetector(high_quantile=0.99) detector.fit(scorer.score(train)) binary_anom = detector.detect(anom_score)
繪圖展示
import matplotlib.pyplot as plt series.plot() (anom_score / 2. - 100).plot(label="computed anomaly score", c="orangered", lw=3) (binary_anom * 45 - 150).plot(label="detected binary anomaly", lw=4)

以上就是python機器學(xué)習(xí)darts時間序列預(yù)測和分析的詳細內(nèi)容,更多關(guān)于python darts時間序列預(yù)測的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
PyCharm導(dǎo)入python項目并配置虛擬環(huán)境的教程詳解
這篇文章主要介紹了Pycharm導(dǎo)入python項目并配置虛擬環(huán)境的教程,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10
Python圖像處理之目標物體輪廓提取的實現(xiàn)方法
目標物體的輪廓實質(zhì)是指一系列像素點構(gòu)成,這些點構(gòu)成了一個有序的點集,這篇文章主要給大家介紹了關(guān)于Python圖像處理之目標物體輪廓提取的實現(xiàn)方法,需要的朋友可以參考下2021-08-08
Python使用openpyxl實現(xiàn)Excel超鏈接批量化設(shè)置
在Excel中,超鏈接是一種非常有用的功能,本文我們將介紹如何使用Python來處理Excel中的超鏈接,以及如何將超鏈接與對應(yīng)的工作表鏈接起來,需要的可以參考一下2023-07-07
python中numpy.empty()函數(shù)實例講解
在本篇文章里小編給大家分享的是一篇關(guān)于python中numpy.empty()函數(shù)實例講解內(nèi)容,對此有興趣的朋友們可以學(xué)習(xí)下。2021-02-02
利用python設(shè)計圖像加密技術(shù)(Arnold算法)
這篇文章主要介紹了利用python設(shè)計圖像加密技術(shù)(Arnold算法),本文將借助Arnold置亂法,講解如何用python從頭至尾設(shè)計出一套圖像加密算法,需要的小伙伴可以才參考一下2022-03-03

