最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python機器學(xué)習(xí)darts時間序列預(yù)測和分析

 更新時間:2024年01月26日 11:04:26   作者:程序員小寒  
這篇文章主要介紹了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)文章

最新評論

延寿县| 石林| 漳浦县| 佛坪县| 湟中县| 保德县| 阳原县| 环江| 高平市| 杭锦旗| 收藏| 枣强县| 贵州省| 辰溪县| 垣曲县| 峨眉山市| 焦作市| 高青县| 清水县| 贵定县| 项城市| 南康市| 乃东县| 杨浦区| 绵竹市| 岢岚县| 濮阳县| 定日县| 凤城市| 哈巴河县| 寿宁县| 富民县| 杭锦后旗| 吉隆县| 库尔勒市| 隆德县| 靖西县| 桐庐县| 渝中区| 汽车| 汝城县|