KATS简介
时间序列分析建模是数据科学和机器学习的一个重要的领域,在电子商务、金融、供应链管理、医学、气象、能源、天文等诸多领域有着广泛的应用。目前时间序列分析以及建模的技术非常多,但相对散乱。
Facebook开源的Kats 是第一个开发标准并连接时间序列分析各个领域的综合 Python 库,用户可以在这里探索其时间序列数据的基本特征,预测未来值,监视异常,并将其合并到ML模型和pipeline中。
Kats (Kits to Analyze Time Series) 是一个轻量级、易于使用、可扩展和通用的框架,用于在 Python 中执行时间序列分析。具有以下功能:
- 预测(Forecasting)
- 异常和变化点检测(Anomaly and Change Point Detection)
- 特征提取(Feature Extraction)
github地址:https://github.com/facebookrese
KATS安装
pip install kats
安装遇到的问题:
安装过程中涉及fbprophet的安装,问题主要集中在这个包上
问题一:
Microsoft Visual C++ 14.0 is required
解决方法:安装visual studio2017,选择“使用C++的桌面开发”选项
问题二:
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
ERROR: Failed building wheel for fbprophet
解决方法:执行以下语句:
python -m pip install -U pip
conda install -c conda-forge pystan
pip install fbprophet
完成fbprophet
安装后再次进行pip install kats
参考:
(12条消息) Fbprophet安装过程遇到的问题及解决方法实录_bkdly9的博客-CSDN博客
KATS功能介绍
数据类型:TimeSeriesData,此类数据类型可由dataframe转换,dataframe应包含时间列(time)以及需要处理的时序数据(value,可包含一列或多列)
tsd = TimeSeriesData(df)
tsd = TimeSeriesData(time=df.time, value=df[['value1', 'value2']])
注:多列的数据能否进行预测需要根据实际模型功能判断
以下内容介绍中参数为基本参数,即可以保证使用的参数说明,其他进阶参数请参考源代码说明。
预测(Forecasting)
KATS包含13种模型
- ARIMA
- BayesianVAR
- HarmonicRegression
- HoltWinters
- Linear
- LSTM
- Prophet(prophet是facebook开源的python预测库,较为常用)
- Quadratic
- SARIMA
- STLF
- Theta
- VAR
- Nowcasting
以下内容模型名称以model_name
代替
1. 实例化参数
params = model_nameParams(**kwargs)
参数:
- 具体参数详见各模型包代码
返回:
- 实例化参数
2. 实例化模型
model = model_nameModel(data, params)
参数:
- data:(TimeSeriesData)输入数据
- params:(实例化参数,与模型对应)模型参数
返回:
- 实例化模型
注:
- BayesianVAR模型的实例化模型代码为
model = BayesianVAR()
3. 模型训练
model.fit()
返回:
- 训练后的模型,训练集为实例化模型过程输入的data数据
4. 预测
model.predict(step, include_history, **kwargs)
参数:
- step:(int)预测范围,表示预测n个单位时间长度的value
- include_history:(bool,default=False)是否包含历史数据
返回:(dataframe)