栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

Facebook时序工具库 Kats 中文教程
  • 1. Kats是什么?
  • 2. 我将如何使用Kats
    • 2.1 在Python中安装Kats
    • 2.2 实例
      • 2.2.1 预测
      • 2.2.2 推理预测
      • 2.3 TSFeatures
  • 3. 中文教程
  • 4. 更新进度

1. Kats是什么?

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

  • 预测(封装了10+models,主要是传统的时间序列模型,这些模型有支持ensemble的API,结合时间序列特征的功能甚至可以做meta-learning)
  • 检测(官方叫做detection,大致是对时间序列做类似于异常检测,change point detection之类的检测)
  • 时间序列特征(API十分简单,可以得到65个时间序列相关的features)
  • 模拟(simulator,可以按照某些时序特征比如seasonality去创造时间序列来方便实验)

项目路径: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

  • Initial release
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275264.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号