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

特點(diǎn)
darts 具有如下特點(diǎn)
預(yù)測(cè)模型:darts 支持多種時(shí)間序列模型,包括經(jīng)典統(tǒng)計(jì)學(xué)模型(如 ARIMA、指數(shù)平滑法)和最新的機(jī)器學(xué)習(xí)模型(如 Prophet、RNN)
異常檢測(cè):darts 提供廣泛的異常檢測(cè)功能。例如,在時(shí)間序列上應(yīng)用 PyOD 模型來(lái)獲取異常分?jǐn)?shù)。
多變量支持:TimeSeries 可以是多變量的,即包含多個(gè)隨時(shí)間變化的維度而不是單個(gè)標(biāo)量值。
分層協(xié)調(diào):darts 提供了轉(zhuǎn)換器來(lái)執(zhí)行協(xié)調(diào)。這些可以使預(yù)測(cè)以尊重底層層次結(jié)構(gòu)的方式進(jìn)行累加。
回歸模型:可以插入任何 scikit-learn 兼容模型,以獲得作為目標(biāo)序列和協(xié)變量的滯后值函數(shù)的預(yù)測(cè)。
可解釋性:darts 能夠使用 Shap 值解釋一些預(yù)測(cè)模型。
數(shù)據(jù)處理:輕松應(yīng)用時(shí)間序列數(shù)據(jù)常見(jiàn)轉(zhuǎn)換的工具。
Metrics:評(píng)估時(shí)間序列擬合的多種指標(biāo)。
回溯測(cè)試:使用移動(dòng)時(shí)間窗口模擬歷史預(yù)測(cè)的實(shí)用程序。
PyTorch Lightning 支持:所有深度學(xué)習(xí)模型均使用 PyTorch Lightning 實(shí)現(xiàn),支持自定義回調(diào)、GPU/TPU 訓(xùn)練和自定義訓(xùn)練器等。
過(guò)濾模型:darts 提供三種過(guò)濾模型,KalmanFilter、GaussianProcessFilter 和 MovingAverageFilter,它們?cè)试S過(guò)濾時(shí)間序列。
數(shù)據(jù)集:darts.datasets 子模塊包含一些流行的時(shí)間序列數(shù)據(jù)集,用于快速且可重復(fù)的實(shí)驗(yàn)。
庫(kù)的安裝
可以直接通過(guò) pip 進(jìn)行安裝。
注意,需要對(duì)應(yīng)的 python 版本大于等于 3.8
pip install darts
預(yù)測(cè)
首先我們通過(guò) pandas 來(lái)加載數(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:]接下來(lái)訓(xùn)練一個(gè)指數(shù)平滑模型,并對(duì)驗(yàn)證集進(jìn)行預(yù)測(cè)。
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()

異常檢測(cè)
首先,我們加載一個(gè)多元序列。
from darts.datasets import ETTh2Dataset series = ETTh2Dataset().load()[:10000][["MUFL", "LULL"]] train, val = series.split_before(0.6)
接下來(lái),構(gòu)建一個(gè) k-means 異常評(píng)分器,在訓(xùn)練集上對(duì)其進(jìn)行訓(xùn)練,并在驗(yàn)證集上使用它來(lái)獲取異常分?jǐn)?shù)。
from darts.ad import KMeansScorer scorer = KMeansScorer(k=2, window=5) scorer.fit(train) anom_score = scorer.score(val)
然后構(gòu)建一個(gè)二元異常檢測(cè)器并通過(guò)訓(xùn)練分?jǐn)?shù)對(duì)其進(jìn)行訓(xùn)練,然后使用它對(duì)驗(yàn)證分?jǐn)?shù)來(lái)獲得二元異常分類
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機(jī)器學(xué)習(xí)darts時(shí)間序列預(yù)測(cè)和分析的詳細(xì)內(nèi)容,更多關(guān)于python darts時(shí)間序列預(yù)測(cè)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python Selenium網(wǎng)頁(yè)自動(dòng)化利器使用詳解
這篇文章主要為大家介紹了使用Python Selenium實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-02-02
Python3中延時(shí)變量和 free_list鏈表的區(qū)別解析
這篇文章主要介紹了Python3中延時(shí)變量和 free_list鏈表的區(qū)別,在Python3中,"延時(shí)變量" 和 "free_list鏈表" 是兩個(gè)不同的概念,他們之間沒(méi)有直接聯(lián)系,本文給實(shí)例相結(jié)合給大家講解的非常詳細(xì),需要的朋友可以參考下2023-04-04
Python bytes string相互轉(zhuǎn)換過(guò)程解析
這篇文章主要介紹了Python bytes string相互轉(zhuǎn)換過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
python中使用enumerate函數(shù)遍歷元素實(shí)例
這篇文章主要介紹了python中使用enumerate函數(shù)遍歷元素實(shí)例,這是一個(gè)比較簡(jiǎn)單的例子,需要的朋友可以參考下2014-06-06
解決Python正則表達(dá)式匹配反斜杠''''\''''問(wèn)題
這篇文章主要介紹了Python正則表達(dá)式匹配反斜杠'\'問(wèn)題 ,很多朋友在使用python 正則式的過(guò)程中,經(jīng)常被這個(gè)問(wèn)題困擾,今天小編通過(guò)代碼給大家詳細(xì)介紹,需要的朋友可以參考下2019-07-07
Python使用psutil實(shí)現(xiàn)系統(tǒng)監(jiān)控與資源管理
這篇文章主要為大家詳細(xì)介紹了psutil?的各項(xiàng)功能,并結(jié)合實(shí)際代碼示例,展示如何用?Python?構(gòu)建自己的系統(tǒng)監(jiān)控工具,資源分析器和進(jìn)程管理腳本等2025-05-05

