从时间序列数据计算各种特征。
项目描述
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 |