tsfresh四分位_时间序列挖掘分析:tsfresh特征中文(一)

tsfresh是一个Python的时序数据特征挖掘的模块(官网https://tsfresh.readthedocs.io/en/latest/index.html,安装可用pip install tsfresh),提取的特征可以用来描述或聚类基于提取特征的时间序列。此外,它们还可以用于构建在时间序列上执行分类/回归任务的模型。通常,这些特性为时间序列及其动态特性提供了新的见解。该项目总共涉及64个特征,前32个特征由我翻译和调试,后32个特征由我的同事托马斯所翻译。我们在GitHub存放了项目资料和介绍https://github.com/SimaShanhe/tsfresh-feature-translation/

abs_energy(x)

译:绝对能量值

返回时序数据的绝对能量(平方和)

参数:

(pandas.Series)计算时序特征的数据对象

返回值:绝对能量值(浮点数)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae = tsf.feature_extraction.feature_calculators.abs_energy(ts)

注释:描述时序数据的离原点的平方波动情况(能量)

absolute_sum_of_changes(x)

译:一阶差分绝对和

返回时序数据的一阶差分结果的绝对值之和

参数:

(pandas.Series)计算时序特征的数据对象

返回值:一阶差分绝对和(非负浮点数)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae = tsf.feature_extraction.feature_calculators.absolute_sum_of_changes(ts)

注释:描述时序数据相邻观测值之间的绝对波动情况

agg_autocorrelation(x, param)

译:各阶自相关系数的聚合统计特征

返回时序数据的各阶差分值之间的聚合(方差、均值)统计特征

参数:

(pandas.Series)计算时序特征的数据对象

parma(list) 包含一个字典{“f_agg”: x, “maxlag”, n} 其中x为聚合函数名,n为最大差分阶数

返回值:各阶自相关系数的聚合统计特征(浮点数)

函数类型:组合

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

param = [{'f_agg': 'mean', 'maxlag':2}]

ae = tsf.feature_extraction.feature_calculators.agg_autocorrelation(ts, param)

注释:统计时序数据各界差分间的聚合特征,依据不同的聚合函数,刻画时序数据的不同特征

agg_linear_trend(x, param)

译:基于分块时序聚合值的线性回归

返回时序数据的分块聚合后的线性回归(基于OLS)

参数:

(pandas.Series)计算时序特征的数据对象

parma(list) 包含一个字典{“attr”: x, “chunk_len”: l, “f_agg”: f}其中“f_agg”为聚合函数名,“chunk_len”指定每块数据量,“attr”为线性回归结果参数属性: “pvalue”, “rvalue”, “intercept”, “slope”, “stderr”。

返回值:指定的线性回归属性值(zip,可用list读取)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

param = [{'f_agg': 'mean','attr': 'pvalue', 'chunk_len': 2}]

ae=tsf.feature_extraction.feature_calculators.agg_linear_trend(ts,param)

print(ae,list(ae))

注释:略

approximate_entropy(x, m, r)

译:近似熵

衡量时序数据的的周期性、不可预测性和波动性

参数:

(pandas.Series)计算时序特征的数据对象

m (int)对照运行数据长度

r (float) 过滤阈值(非负数)

返回值:近似熵(浮点数)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.approximate_entropy(ts, 10, 0.1)

注释:相邻熵值间的比值,是一个相对量

ar_coefficient(x, param)

译:自回归系数

衡量时序数据的的周期性、不可预测性和波动性

参数:

(pandas.Series)计算时序特征的数据对象

paramm (lsit) {“coeff”: x, “k”: y}其中“coeff”自回归中第X项系数,“k”为自回归阶数

返回值:自回归系数(pandas.Series)

函数类型:组合

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

param = [{'coeff': 0, 'k': 10}]

ae=tsf.feature_extraction.feature_calculators.ar_coefficient(ts, param)

注释:自回归方程的各阶系数

augmented_dickey_fuller(x, param)

译:扩展迪基-福勒检验(ADF检验)

测试一个自回归模型是否存在单位根,衡量时序数据的平稳性

参数:

(pandas.Series)计算时序特征的数据对象

paramm (lsit) {“attr”: x} 其中x是字符串,包含“teststat”, “pvalue” 和“usedlag”

返回值:ADF检验统计值(浮点数)

函数类型:组合

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

param = [{'attr': 'pvalue'}]

ae=tsf.feature_extraction.feature_calculators.augmented_dickey_fuller(ts, param)

注释:返回ADF检验统计值

autocorrelation(x, lag)

译:lag阶自相关性

计算lag阶滞后时序数据的自相关性(浮点数)

参数:

(pandas.Series)计算时序特征的数据对象

lag(int)时序数据滞后阶数

返回值:自相关性值(浮点数)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.autocorrelation(ts, 2)

注释:lag阶自相关性值

binned_entropy(x, max_bins)

译:分组熵

把整个序列按值均分成max_bins个桶,然后把每个值放进相应的桶中,然后求熵(浮点数)

参数:

(pandas.Series)计算时序特征的数据对象

max_bins(int)分组数

返回值:分组熵(浮点数)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.binned_entropy(ts, 10)

注释:时序数据等距分组求熵

c3(x, lag)

译:时序数据非线性度量

基于物理学的时序数据非线性度量(浮点数)

等同于计算

其中L为时滞算子。

参数:

(pandas.Series)计算时序特征的数据对象

lag(int)时滞阶数

返回值:非线性度(浮点数)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.c3(ts, 2)

注释:时序数据非线性度

change_quantiles(x, ql, qh, isabs, f_agg)

译:给定区间的时序数据描述统计

先用ql和qh两个分位数在x中确定出一个区间,然后在这个区间里计算时序数据的均值、绝对值、连续变化值。(浮点数)

参数:

(pandas.Series)计算时序特征的数据对象

ql(float)区间下界

qh(float)区间上界

isabs(bool)是否采用绝对差值

f_agg(str)numpy聚合函数,如mean,std等

返回值:区间内描述统计量(浮点数)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

import numpy as np

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.change_quantiles(ts, 0.05, 0.95, False, 'mean')

注释:时序数据区间内描述统计量

cid_ce(x, normalize)

译:时序数据复杂度

用来评估时间序列的复杂度,越复杂的序列有越多的谷峰。 (浮点数)

参数:

(pandas.Series)计算时序特征的数据对象

normalize (bool) 是否对数据进行z标准化

返回值:时序数据复杂度(浮点数)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.cid_ce(ts, True)

注释:时序数据复杂度

count_above_mean(x)

译:高于均值个数

统计高于时序数据均值的个数 (整数)

参数:

(pandas.Series)计算时序特征的数据对象

返回值:高于均值个数(整数)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.count_above_mean(ts)

注释:高于均值个数

count_below_mean(x)

译:低于均值个数

统计低于时序数据均值的个数 (整数)

参数:

(pandas.Series)计算时序特征的数据对象

返回值:低于均值个数(整数)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.count_below_mean(ts)

注释:低于均值个数

cwt_coefficients(x, param)

译:Ricker小波分析

连续的小波分析,ricker子波是地震勘探中常用的子波类型,ricker子波是基于波动方程严格推导得到的。(pandas.Series)

其中,a是小波变换函数中的宽度参数。

参数:

(pandas.Series)计算时序特征的数据对象

param (list) {“widths”:x, “coeff”: y, “w”: z} 中x为整数值构成的数组,y,z都是整数值。

返回值:小波分析(pandas.Series)

函数类型:组合

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

param = [ {'widths':tuple([2,2,2]), 'coeff': 2, 'w': 2}]

ae=tsf.feature_extraction.feature_calculators.cwt_coefficients(ts, param)

print(list(ae))

注释:width参数需要可hash对象,最后返回结果可用list查看

energy_ratio_by_chunks(x, param)

译:分块局部熵比率

将时序数据分块后,计算目标块数据的熵与全体的熵比率。当数据不够均分时,会将多余的数据在前面的块中散布。(浮点数)

参数:

(pandas.Series)计算时序特征的数据对象

param – {“num_segments”: N, “segment_focus”: i} with N, i 取值均为整数

返回值:分块局部熵比率(list)

函数类型:组合

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

param = [{'num_segments': 10, 'segment_focus': 5} ]

ae=tsf.feature_extraction.feature_calculators.energy_ratio_by_chunks(ts, param)

注释:segment_focus是从0开始计数的,返回值为一个列表包含元组

fft_aggregated(x, param)

译:绝对傅里叶变换的谱统计量

返回绝对傅里叶变换后的光谱质心、峰度、偏度等值(pandas.Series)

参数:

(pandas.Series)计算时序特征的数据对象

param (list) {“aggtype”: s} s为字符串取值于 [“centroid”, “variance”, “skew”, “kurtosis”]

返回值:绝对傅里叶变换的谱统计量(pandas.Series)

函数类型:组合

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

param = [{'aggtype': 'skew'}]

ae=tsf.feature_extraction.feature_calculators.fft_aggregated(ts, param)

print(list(ae))

注释:略

fft_coefficient(x, param)

译:傅里叶变换系数

基于快速傅里叶变换算法计算一维离散傅里叶序列的系数(pandas.Series)

参数:

(pandas.Series)计算时序特征的数据对象

param (list) {“coeff”: x, “attr”: s} x正整数, s为字符串取值于 [“real”, “imag”, “abs”, “angle”]

返回值:傅里叶变换系数(pandas.Series)

函数类型:组合

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

param = [{'coeff': 2, 'attr': 'angle'}]

ae=tsf.feature_extraction.feature_calculators.fft_coefficient(ts, param)

print(list(ae))

注释: [“real”, “imag”, “abs”, “angle”]分别对应系数的实值部、虚值部、绝对值、角度值。

first_location_of_maximum(x)

译:最大值位置

基于时序数据长度的相对最大值位置

参数:

(pandas.Series)计算时序特征的数据对象

返回值:相对最大值位置(float)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.first_location_of_maximum(ts)

注释:返回值为pandas.Series,每个值都是最大值位置(在整个序列中的位置)与序列长度的比值

first_location_of_minimum(x)

译:最小值位置

基于时序数据长度的相对最小值位置

参数:

(pandas.Series)计算时序特征的数据对象

返回值:相对最小值位置(float)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.first_location_of_minimum(ts)

注释:返回值为pandas.Series,每个值都是最小值位置(在整个序列中的位置)与序列长度的比值

friedrich_coefficients(x, param)

调用接口未成功

译:Langevin模型拟合的多项式系数

基于确定动力学模型Langevin拟合的多项式系数(pandas.Series)

参数:

(pandas.Series)计算时序特征的数据对象

param (list) {“m”: x, “r”: y, “coeff”: z} x为正整数,是多项式拟合的最高阶数,y是正实数,用于计算均值的分位数,z为正整数,多项式的第几项。

返回值:多项式拟合系数(pandas.Series)

函数类型:组合

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.friedrich_coefficients(ts, param)

注释:略

has_duplicate(x)

译:重复记录检验

检查时序数据是否有重复记录(bool)

参数:

(pandas.Series)计算时序特征的数据对象

返回值:重复值存在与否(bool)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.has_duplicate(ts)

注释:略

has_duplicate_max(x)

译:最大值记录重复检验

检查时序数据最大记录是否有重复记录(bool)

参数:

(pandas.Series)计算时序特征的数据对象

返回值:最大记录重复存在与否(bool)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.has_duplicate_max(ts)

注释:略

has_duplicate_min(x)

译:最小值记录重复检验

检查时序数据最小记录是否有重复记录(bool)

参数:

(pandas.Series)计算时序特征的数据对象

返回值:最小记录重复存在与否(bool)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.has_duplicate_min(ts)

注释:略

index_mass_quantile(x, param)

译:分位数索引

计算某分位数对应的索引值(pandas.Series)

参数:

(pandas.Series)计算时序特征的数据对象

param (list) {“q”: x} x为分位数值

返回值:分位数索引(pandas.Series)

函数类型:组合

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

param = [{'q':50}]

ae=tsf.feature_extraction.feature_calculators.index_mass_quantile(ts, param)

注释:略

kurtosis(x)

译:峰度

计算基于修正的Fisher-Pearson矩统计量的峰度(float)

参数:

(pandas.Series)计算时序特征的数据对象

返回值:修正的峰度(float)

函数类型:组合

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.kurtosis(ts)

注释:表征概率密度分布曲线在平均值处峰值高低的特征数。

large_standard_deviation(x, r)

译:标准差是否倍于极差

标准差是否为数据范围的r倍(bool)

参数:

(pandas.Series)计算时序特征的数据对象

r (float) – 比率值

返回值:标准差是否倍于极差(bool)

函数类型:组合

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.large_standard_deviation(ts, 0.2)

注释:根据经验法则,标准偏差应该是数值范围的四分之一。

last_location_of_maximum(x)

译:最大值最近位置

基于时序数据长度的相对最大值最近位置(float)

参数:

(pandas.Series)计算时序特征的数据对象

返回值:相对最大值最近位置(float)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.last_location_of_maximum(ts)

注释:返回值为一个相对位置和时序数据长度的比值

last_location_of_minimum(x)

译:最小值最近位置

基于时序数据长度的相对最小值最近位置(float)

参数:

(pandas.Series)计算时序特征的数据对象

返回值:相对最小值最近位置(float)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.last_location_of_minimum(ts)

注释:返回值为一个相对位置和时序数据长度的比值

length(x)

译:数据记录数

统计时序数据的总记录数(int)

参数:

(pandas.Series)计算时序特征的数据对象

返回值:数据总行数(int)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.length(ts)

注释:略

linear_trend(x, param)

调用接口未成功

译:线性回归分析

基于最小二乘,自变量为索引(0-len(x)-1)的线性回归,认为数据是简单采样所得(pandas.Series)

参数:

(pandas.Series)计算时序特征的数据对象

param (list) {“attr”: x} x为线性回归中的结果变量名,如'pvale'。

返回值:线性回归分析(pandas.Series)

函数类型:组合

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

param = [{'attr': 'pvalue'}]

ae=tsf.feature_extraction.feature_calculators.linear_trend(ts, param)

注释:略

longest_strike_above_mean(x)

译:均值上的最长连续自列长度

返回x中大于x平均值的最长连续子序列的长度(int)

参数:

(pandas.Series)计算时序特征的数据对象

返回值:最长连续子列长度(int)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.longest_strike_above_mean(ts)

注释:略

longest_strike_below_mean(x)

译:均值下的最长连续自列长度

返回x中小于x平均值的最长连续子序列的长度(int)

参数:

(pandas.Series)计算时序特征的数据对象

返回值:最长连续子列长度(int)

函数类型:简单

代码示例:

#!/usr/bin/python3

import tsfresh as tsf

import pandas as pd

ts = pd.Series(x) #数据x假设已经获取

ae=tsf.feature_extraction.feature_calculators.longest_strike_below_mean(ts)

注释:略

你可能感兴趣的:(tsfresh四分位)