python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python darts时间序列预测

python机器学习darts时间序列预测和分析

作者:程序员小寒

这篇文章主要介绍了python机器学习darts时间序列预测和分析使用实例探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

python库darts

今天给大家分享一个神奇的 python 库,darts

https://github.com/unit8co/darts 

darts 是一个用于时间序列预测和分析的 Python 库。它支持多种时间序列模型,包括经典统计学模型和最新的机器学习模型,它还设计了简单直观的 API,使得即使是时间序列分析的初学者也能轻松上手。 

特点

darts 具有如下特点

库的安装

可以直接通过 pip 进行安装。

注意,需要对应的 python 版本大于等于 3.8

pip install darts

预测

首先我们通过 pandas 来加载数据集。

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:]

接下来训练一个指数平滑模型,并对验证集进行预测。

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)

接下来,构建一个 k-means 异常评分器,在训练集上对其进行训练,并在验证集上使用它来获取异常分数。

from darts.ad import KMeansScorer

scorer = KMeansScorer(k=2, window=5)
scorer.fit(train)
anom_score = scorer.score(val)

然后构建一个二元异常检测器并通过训练分数对其进行训练,然后使用它对验证分数来获得二元异常分类

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机器学习darts时间序列预测和分析的详细内容,更多关于python darts时间序列预测的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文