跳转到主要内容

从时间序列数据计算各种特征。

项目描述

Build PyPI version fury.io Downloads Python 3.6+ License: MIT

tsfeatures

从时间序列数据计算各种特征。R包tsfeatures的Python实现。

安装

您可以使用以下方式从Python包索引安装已发布版本的tsfeatures

pip install tsfeatures

用法

默认情况下,tsfeatures主函数计算Montero-Manso、Talagala、Hyndman和Athanasopoulos在他们对FFORMA模型的实现中使用的特征。

from tsfeatures import tsfeatures

此函数接收一个包含列unique_iddsy和可选数据频率的面板pandas df。

tsfeatures(panel, freq=7)

默认情况下(freq=None),函数将尝试推断每个时间序列的频率(使用infer_freqds列上)并根据内置字典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,以及forecasttsfeatures软件包;还需要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

作者

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源代码分布

tsfeatures-0.4.5.tar.gz (25.3 kB 查看哈希值)

上传时间 源代码

构建分布

tsfeatures-0.4.5-py3-none-any.whl (28.6 kB 查看哈希值)

上传时间 Python 3