从时间序列数据计算各种特征。
项目描述
tsfeatures
从时间序列数据计算各种特征。R包tsfeatures的Python实现。
安装
您可以使用以下方式从Python包索引安装已发布版本的tsfeatures:
pip install tsfeatures
用法
默认情况下,tsfeatures主函数计算Montero-Manso、Talagala、Hyndman和Athanasopoulos在他们对FFORMA模型的实现中使用的特征。
from tsfeatures import tsfeatures
此函数接收一个包含列unique_id、ds、y和可选数据频率的面板pandas df。
tsfeatures(panel, freq=7)
默认情况下(freq=None),函数将尝试推断每个时间序列的频率(使用infer_freq从ds列上)并根据内置字典FREQS分配季节性周期。
FREQS = {'H': 24, 'D': 1,
'M': 12, 'Q': 4,
'W':1, 'Y': 1}
您可以使用dict_freqs参数使用自己的字典。
tsfeatures(panel, dict_freqs={'D': 7, 'W': 52})
可用特征列表
| 特征 | ||
|---|---|---|
| acf_features | heterogeneity | series_length |
| arch_stat | holt_parameters | sparsity |
| count_entropy | hurst | stability |
| 交叉点 | 硬件参数 | STL特征 |
| 熵 | 区间 | 单位根KPSS |
| 平坦区域 | 凹凸不平 | 单位根PP |
| 频率 | 非线性 | |
| 瓜尔列罗 | 偏自相关特征 |
请参阅文档以了解功能的描述。要使用软件包中包含的特定功能,您需要导入它
from tsfeatures import acf_features
tsfeatures(panel, freq=7, features=[acf_features])
您还可以定义自己的函数,并将其与包含的功能一起使用
def number_zeros(x, freq):
number = (x == 0).sum()
return {'number_zeros': number}
tsfeatures(panel, freq=7, features=[acf_features, number_zeros])
tsfeatures可以处理接收一个numpy数组x和一个频率freq(即使您不使用此参数,也需要此参数)并返回一个字典的功能,其中以特征名称为键,其值为值的函数。
R语言实现
您可以使用此软件包在Python中调用R中的tsfeatures(您需要已安装R,以及forecast和tsfeatures软件包;还需要Python软件包rpy2)
from tsfeatures.tsfeatures_r import tsfeatures_r
tsfeatures_r(panel, freq=7, features=["acf_features"])
请注意,此函数接收字符串列表而不是函数列表。
与R语言实现的比较(绝对差值之和)
非季节性数据(100个日M4时间序列)
| 特征 | 差分 | 特征 | 差分 | 特征 | 差分 | 特征 | 差分 |
|---|---|---|---|---|---|---|---|
| e_acf10 | 0 | e_acf1 | 0 | diff2_acf1 | 0 | alpha | 3.2 |
| 季节性周期 | 0 | 峰值 | 0 | diff1_acf10 | 0 | arch_acf | 3.3 |
| nperiods | 0 | 曲率 | 0 | x_acf1 | 0 | beta | 4.04 |
| 线性度 | 0 | 交叉点 | 0 | 非线性 | 0 | garch_r2 | 4.74 |
| hw_gamma | 0 | 凹凸不平 | 0 | diff2x_pacf5 | 0 | hurst | 5.45 |
| hw_beta | 0 | diff1x_pacf5 | 0 | 单位根KPSS | 0 | garch_acf | 5.53 |
| hw_alpha | 0 | diff1_acf10 | 0 | x_pacf5 | 0 | 熵 | 11.65 |
| 趋势 | 0 | arch_lm | 0 | x_acf10 | 0 | ||
| 平坦区域 | 0 | diff1_acf1 | 0 | 单位根PP | 0 | ||
| series_length | 0 | stability | 0 | arch_r2 | 1.37 |
要复制此结果,请使用
python -m tsfeatures.compare_with_r --results_directory /some/path
--dataset_name Daily --num_obs 100
季节性数据(100个小时M4时间序列)
| 特征 | 差分 | 特征 | 差分 | 特征 | 差分 | 特征 | 差分 |
|---|---|---|---|---|---|---|---|
| series_length | 0 | seas_acf1 | 0 | 趋势 | 2.28 | hurst | 26.02 |
| 平坦区域 | 0 | x_acf1 | 0 | arch_r2 | 2.29 | hw_beta | 32.39 |
| nperiods | 0 | 单位根KPSS | 0 | alpha | 2.52 | 谷底 | 35 |
| 交叉点 | 0 | 非线性 | 0 | beta | 3.67 | 峰值 | 69 |
| 季节性周期 | 0 | diff1_acf10 | 0 | 线性度 | 3.97 | ||
| 凹凸不平 | 0 | x_acf10 | 0 | 曲率 | 4.8 | ||
| stability | 0 | seas_pacf | 0 | e_acf10 | 7.05 | ||
| arch_lm | 0 | 单位根PP | 0 | garch_r2 | 7.32 | ||
| diff2_acf1 | 0 | 峰值 | 0 | hw_gamma | 7.32 | ||
| diff2_acf10 | 0 | 季节性强度 | 0.79 | hw_alpha | 7.47 | ||
| diff1_acf1 | 0 | e_acf1 | 1.67 | garch_acf | 7.53 | ||
| diff2x_pacf5 | 0 | arch_acf | 2.18 | 熵 | 9.45 |
要复制此结果,请使用
python -m tsfeatures.compare_with_r --results_directory /some/path \
--dataset_name Hourly --num_obs 100
作者
- 费德里科·加尔萨 - FedericoGarza
- 金·古铁雷斯 - kdgutier
- 克里斯蒂安·查卢 - cristianchallu
- 何塞·莫拉莱斯 - jose-moralez
- 里卡多·奥利瓦雷斯 - rolivaresar
- 马克斯·梅尔根特勒 - mergenthaler
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源代码分布
tsfeatures-0.4.5.tar.gz (25.3 kB 查看哈希值)
构建分布
tsfeatures-0.4.5-py3-none-any.whl (28.6 kB 查看哈希值)
关闭
tsfeatures-0.4.5.tar.gz的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 28e529b7441c2d95fa28a90768980ca12f4795dff729387139e1923bd2dcc0ff |
|
| MD5 | cf4a5300e428bd22a9084ee58cde756f |
|
| BLAKE2b-256 | b29c780e67e91b6c64ff1456cdc93c6b416df180b5b279882575b72c11bc09ff |