欢迎关注 Python学习与数据挖掘,专注Python、数据分析、数据挖掘、好玩工具!
时间序列分析建模是数据科学和机器学习的一个重要的领域,在电子商务、金融、供应链管理、医学、气象、能源、天文等诸多领域有着广泛的应用。目前时间序列分析以及建模的技术非常多,但相对散乱,本次 FaceBook 开源了 Kats,它是一款轻量级的、易于使用的、通用的时间序列分析框架,包括:预测、异常检测、多元分析和特征提取嵌入。
Kats 是第一个开发标准并连接时间序列分析各个领域的综合 Python 库,用户可以在这里探索其时间序列数据的基本特征,预测未来值,监视异常,并将其合并到ML模型和pipeline中。它在时间序列的表现非常优秀,欢迎大家收藏学习,喜欢点赞支持。
简介
1.Kats的优势
Kats是一个分析时间序列数据的工具箱,特点是:
可以用来执行时间序列分析。
2. Kats的功能
Kats的核心四大功能包括:
- 模型预测:Kats提供了一套完整的预测工具,包括10+个单独的预测模型、ensembling、自监督学习(meta-learning)模型、backtesting、超参数调整和经验预测区间。
- 检测:Kats支持检测时间序列数据的各种模式的功能,包括季节性、异常值、变化点和缓慢的趋势变化检测。
- 特征提取与嵌入:Kats中的时间序列特征(TSFeature)提取模块可以产生65个具有明确统计定义的特征,这些特征可以应用于大多数机器学习(ML)模型,如分类和回归。
- 使用的功能:Kats还提供了一组有用的实用程序,例如时间序列模拟器。
1、预测案例
import pandas as pd
from kats.consts import TimeSeriesData
from kats.models.prophet import ProphetModel, ProphetParams
air_passengers_df = pd.read_csv(
"./data/air_passengers.csv",
header=0,
names=["time", "passengers"],
)
air_passengers_df.head()
air_passengers_ts = TimeSeriesData(air_passengers_df)
params = ProphetParams(seasonality_mode='multiplicative')
m = ProphetModel(air_passengers_ts, params)
m.fit()
fcst = m.predict(steps=30, freq="MS")
INFO:fbprophet:Disabling weekly seasonality. Run prophet with weekly_seasonality=True to override this. INFO:fbprophet:Disabling daily seasonality. Run prophet with daily_seasonality=True to override this.
fcst.tail()
2、时间序列检测案例
异常改变点的检测
import numpy as np
from kats.consts import TimeSeriesData
from kats.detectors.cusum_detection import CUSUMDetector
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)]),
}
)
timeseries = TimeSeriesData(df_increase)
change_points = CUSUMDetector(timeseries).detector()
df_increase.groupby('time')['increase'].first().plot()
change_points
[(TimeSeriesChangePoint(start_time: 2019-01-30 00:00:00, end_time: 2019-01-30 00:00:00, confidence: 1.0), <kats.detectors.cusum_detection.CUSUMMetadata at 0x7fa9449fe910>)]
3、时间序列特征
from kats.tsfeatures.tsfeatures import TsFeatures
air_passengers_df = pd.read_csv(
"./data/air_passengers.csv",
header=0,
names=["time", "passengers"],
)
air_passengers_ts = TimeSeriesData(air_passengers_df)
features = TsFeatures().transform(air_passengers_ts)
参考文献
- https://engineering.fb.com/2021/06/21/open-source/kats/
- https://github.com/facebookresearch/Kats
- Kats - Time Series Forecasting By Facebook
技术交流
欢迎转载、收藏、有所收获点赞支持一下!
目前开通了技术交流群,群友超过2000人,添加方式如下:
如下方式均可,添加时最好方式为:来源+兴趣方向,方便找到志同道合的朋友
- 方式一、发送如下图片至微信,进行长按识别,回复加群;
- 方式二、直接添加小助手微信号:pythoner666,备注:来自CSDN
- 方式三、微信搜索公众号:Python学习与数据挖掘,后台回复:加群
|