其他分享
首页 > 其他分享> > Facebook时序工具库 Kats 中文教程(个人首发)

Facebook时序工具库 Kats 中文教程(个人首发)

作者:互联网

Facebook时序工具库 Kats 中文教程

1. Kats是什么?

Kats是Facebook在June 18th刚刚发布的一个专门为了时间序列服务的工具库。它作为一个Toolkit包,提供了四种简易且轻量化的API。

项目路径:https://github.com/facebookresearch/Kats

2. 我将如何使用Kats

2.1 在Python中安装Kats

Kats 已经上架 PyPI, 你可以使用 pip 进行安装操作.

pip install --upgrade pip
pip install kats

如果你只需要Kats中的小部分功能,你可以安装mini版本的Kats通过:

MINIMAL=1 pip install kats

这将省略许多依赖组建(也就是test_requirements.txt中的所有)

然而它也将失去许多功能,并且在import kats的时候会引发warnings. 可以通过setup.py 查看更多详细说明及操作.

2.2 实例

这里我们将提供少数的实例来说明Kats能够提供的部分功能.

2.2.1 预测

使用Prophet模型来预测air_passengers数据集.

import pandas as pd

from kats.consts import TimeSeriesData
from kats.models.prophet import ProphetModel, ProphetParams

# take `air_passengers` data as an example
air_passengers_df = pd.read_csv(
    "../kats/data/air_passengers.csv",
    header=0,
    names=["time", "passengers"],
)

# convert to TimeSeriesData object
air_passengers_ts = TimeSeriesData(air_passengers_df)

# create a model param instance
params = ProphetParams(seasonality_mode='multiplicative') # additive mode gives worse results

# create a prophet model instance
m = ProphetModel(air_passengers_ts, params)

# fit model simply by calling m.fit()
m.fit()

# make prediction for next 30 month
fcst = m.predict(steps=30, freq="MS")

2.2.2 推理预测

使用 CUSUM检测算法模拟数据集.

# import packages
import numpy as np

from kats.consts import TimeSeriesData
from kats.detectors.cusum_detection import CUSUMDetector

# simulate time series with increase
np.random.seed(10)
df_increase = pd.DataFrame(
    {
        'time': pd.date_range('2019-01-01', '2019-03-01'),
        'increase':np.concatenate([np.random.normal(1,0.2,30), np.random.normal(2,0.2,30)]),
    }
)

# convert to TimeSeriesData object
timeseries = TimeSeriesData(df_increase)

# run detector and find change points
change_points = CUSUMDetector(timeseries).detector()

2.3 TSFeatures

通过给予的时间序列数据,提取有价值的特征

# Initiate feature extraction class
from kats.tsfeatures.tsfeatures import TsFeatures

# take `air_passengers` data as an example
air_passengers_df = pd.read_csv(
    "../kats/data/air_passengers.csv",
    header=0,
    names=["time", "passengers"],
)

# convert to TimeSeriesData object
air_passengers_ts = TimeSeriesData(air_passengers_df)

# calculate the TsFeatures
features = TsFeatures().transform(air_passengers_ts)

3. 中文教程

项目路径:https://github.com/Fate-Tesstarosa/Kats_CN
跟官方教程文档保持一致,使用的是ipynb格式
在这里插入图片描述

4. 更新进度

因为是笔者一个人在做这个工作,随着Kats的功能更新,在后续的更新中难免会出现版本跟不上的问题,笔者这边会尽全力跟上官方的速度,也欢迎各位读者对翻译中出现的问题进行指正(手动respect)。

Version 0.1.0

标签:passengers,Kats,kats,air,Facebook,import,TimeSeriesData,时序
来源: https://blog.csdn.net/weixin_45839604/article/details/120543960