ADTK 转换器(transformer)方法汇总

ADTK 转换器(transformer)方法汇总

一、RollingAggregate沿时间序列滚动滑动窗口并使用选定的操作进行聚合。常见的例子包括移动平均线、滚动标准差等。

在下面的示例中,我们沿时间序列跟踪有效值的滚动计数,这可能有助于在缺失值频繁发生时发出警报。
在这里插入图片描述

方法调用
adtk.transformer.RollingAggregate(window, agg='mean', agg_params=None, center=False, min_periods=None)
参数介绍
window(int or str) -- 滚动时间窗口的大小。
					  如果是int,则为该时间窗口内的时间点个数。
					  如果是str,则必须能够转换成 pandas Timedelta 对象。
agg(str or function) -- 应用于滚动窗口的聚合方法。如果 str,必须是支持的内置方法之一:
						'mean':滚动窗口中所有值的平均值。
						'median':滚动窗口中所有值的中值。
						'sum':滚动窗口中所有值的总和。
						'min':滚动窗口中所有值的最小值。
						'max':滚动窗口中所有值的最大值。
						'std':滚动窗口中所有值的样本标准偏差。
						'var':滚动窗口中所有值的样本方差。
						'skew':滚动窗口中所有值的偏度。
						'kurt':滚动窗口中所有值的峰度。
						'count':滚动窗口中非 nan 值的数量。
						'nnz':滚动窗口中非零值的数量。
						'nunique':滚动窗口中唯一值的数量。
						'quantile':滚动窗口中所有值的分位数。
								   在参数agg_params中需要百分位参数q,它是一个浮点数或介于 01 之间的浮点数列表。
						'iqr':四分位距,即 75%25% 分位数之间的差异。
						'idr':分位数范围,即 90%10% 分位数之间的差异。
						'hist':滚动窗口中所有值的直方图。
							   需要参数agg_params中的参数bin来定义 bin。
						       bins 是浮点数列表,b1, ..., bn,它定义了 n-1bin [b1, b2), [b2, b3), ..., 
						       [b{n-2}, b{n-1})[b{n-1}, bn] 或一个整数,用于定义输入系列范围内等宽 bin 的数量。
						如果是函数,它应该接受一个 pandas Series 的滚动窗口,并返回一个标量或一维 numpy 数组。
						要指定输出名称,请在参数 agg_params 中指定字符串列表作为参数名称。
						默认值:“mean”
agg_params(dict, optional) -- 聚合函数的参数。
				              默认值:None。
center(bool, optional) -- 计算是否在时间窗的中心。否,则为右边缘。
                          默认值:False。
min_periods(int, optional) -- 窗口中不为空值的最小观察数。
                              默认值:None,即所有观测值都必须有值。
二、DoubleRollingAggregate沿时间序列并排滚动两个滑动窗口,使用选定的操作进行聚合,并计算两个滑动窗口之间聚合指标的差异。这可能有助于跟踪时间序列中统计行为的变化。

在下面的例子中,我们跟踪序列值的统计分布的变化。

在这里插入图片描述
在以下示例中,我们跟踪价值水平的变化。

在这里插入图片描述
在下面的例子中,我们通过调整窗口参数来跟踪价格的异常变化。

在这里插入图片描述

方法调用
adtk.transformer.DoubleRollingAggregate(window, agg='mean', agg_params=None, center=True, min_periods=None, diff='l1')
参数介绍
window (int or str, or 2-tuple of int or str) -- 滚动时间窗口的大小。
												 如果是int,则为该时间窗口内的时间点个数。
												 如果是str,则必须能够转换成 pandas Timedelta 对象。
												 如果是元组,则分别定义左右窗口的大小。
agg (str or function, or 2-tuple of str or function) -- 
					        应用于滚动窗口的聚合方法。如果 str,必须是支持的内置方法之一:
							'mean':滚动窗口中所有值的平均值。
							'median':滚动窗口中所有值的中值。
							'sum':滚动窗口中所有值的总和。
							'min':滚动窗口中所有值的最小值。
							'max':滚动窗口中所有值的最大值。
							'std':滚动窗口中所有值的样本标准偏差。
							'var':滚动窗口中所有值的样本方差。
							'skew':滚动窗口中所有值的偏度。
							'kurt':滚动窗口中所有值的峰度。
							'count':滚动窗口中非 nan 值的数量。
							'nnz':滚动窗口中非零值的数量。
							'nunique':滚动窗口中唯一值的数量。
							'quantile':滚动窗口中所有值的分位数。
									   在参数agg_params中需要百分位参数q,它是一个浮点数或介于 01 之间的浮点数列表。
							'iqr':四分位距,即 75%25% 分位数之间的差异。
							'idr':分位数范围,即 90%10% 分位数之间的差异。
							'hist':滚动窗口中所有值的直方图。
								   需要参数agg_params中的参数bin来定义 bin。
							       bins 是浮点数列表,b1, ..., bn,它定义了 n-1bin [b1, b2), [b2, b3), ..., 
							       [b{n-2}, b{n-1})[b{n-1}, bn] 或一个整数,用于定义输入系列范围内等宽 bin 的数量。
							如果是函数,它应该接受一个 pandas Series 的滚动窗口,并返回一个标量或一维 numpy 数组。
							要指定输出名称,请在参数 agg_params 中指定字符串列表作为参数名称。
							如果是元组,元素分别对应左右窗口。
							默认值:“mean”
agg_params(dict or 2-tuple of dict, optional) -- 聚合函数的参数。如果是元组,元素分别对应左右窗口。
                                                 默认值:None。
center(bool, optional) -- 如果为 True,则当前点是右窗口的右边缘;否则,它是左窗口的右边缘。
                          默认值:True。
min_periods(int or 2-tuple of int, optional) -- 窗口中需要有值的最小观察数。如果是元组,元素分别对应左右窗口。
												默认值:None,即所有观测值都必须有值。
diff(str or function, optional) -- 
					在来自两个滑动窗口的聚合指标之间应用的差异方法。如果是 str,请从支持的内置方法中选择:
					'diff':聚合度量值之间的差异(右减左)。仅当聚合指标为标量时才适用。
					'rel_diff':聚合度量值之间的相对差异(右减左除左)。仅当聚合指标为标量时才适用。
					'abs_rel_diff':聚合度量值之间的绝对相对差异(右减左除左)。仅当聚合指标为标量时才适用。
					'l1':如果聚合度量是标量,则绝对差;如果是向量,则为元素绝对差之和。
					'l2':元素平方差之和的平方根。
					如果是函数,它接受两个输入参数,即对两个窗口应用聚合方法的两个输出,并返回一个衡量差异的浮点数。
					默认值:'l1'
三、ClassicSeasonalDecomposition将系列分解为趋势部分(可选)、季节性部分和剩余部分。残差部分可能有助于识别季节性模式的异常偏差。经典的季节性分解假设时间序列是趋势、季节性模式和噪声(残差)的总和。该转换器使用移动平均值计算并去除趋势分量,通过对去趋势序列的季节性周期取平均值来提取季节性模式,并返回残差序列。fit方法将季节频率(如果未指定)和季节模式与训练系列相匹配。transform(或其别名predict )方法通过移动平均提取趋势,但不会重新计算季节性模式。相反,它使用经过训练的季节性模式并从去趋势序列中提取它以获得残差序列。这隐含地假设季节性属性不随时间变化。

在下面的示例中,我们计算了该系列中与通常流量模式的偏差,这可能有助于识别异常流量。

在这里插入图片描述
ClassicSeasonalDecomposition如果不提取趋势,则无法处理长期趋势与季节性模式以及噪声混合的情况。在这些情况下,trend应打开选项。
在以下示例中,无法从未打开选项ClassicSeasonalDecomposition的合成序列中分解残差序列和长期趋势。trend

在这里插入图片描述
我们打开trend模型的选项并重新应用与上面相同的示例,其中残差与趋势分离

在这里插入图片描述

方法调用
adtk.transformer.ClassicSeasonalDecomposition(freq=None, trend=False)
参数介绍
freq(int, optional) -- 季节性周期的长度,作为周期中时间点的数量。
					   如果没有,模型将根据训练序列的自相关来确定。
					   默认值:None。
trend(bool, optional) -- 是否提取和删除具有移动平均线的序列的趋势。
						 如果为 False,则时间序列将假定为季节性模式和残差之和。
						 默认值:False
四、Retrospect返回具有追溯值的数据帧,即时间 t 的行包括 (t-k)’s 处的值,其中 k’s 由用户指定。这种转换器对于应考虑滞后效应的情况可能很有用。例如,控制 u 的变化可能不会在 2 分钟内反映在结果 y 中,其影响可能会再持续 3 分钟。在这种情况下,需要每行包含 u_[t-3]、u_[t-4]、u_[t-5] 和一系列 y_t 的数据帧来学习控制和结果之间的关系。

在以下示例中,我们为合成系列创建了一个回顾性数据框。
在这里插入图片描述

方法调用
adtk.transformer.Retrospect(n_steps=1, step_size=1, till=0)
参数介绍
n_steps(int, optional) -- 要采取的追溯步骤数。默认值:1。
tep_size(int, optional) -- 追溯步骤的长度。默认值:1。
till(int, optional) -- 最近的追溯步骤。默认值:0,即当前时间步长。

数据转换例子

在这里插入图片描述

五、RegressionResidual是对多元序列执行回归并返回回归残差。这可能有助于识别系列之间通常关系的异常违反。

在下面的示例中,我们跟踪系列与发电机速度和功率之间通常相关性的偏差。

在这里插入图片描述

方法调用
adtk.transformer.RegressionResidual(regressor, target)
参数介绍
regressor(object) -- 要使用的回归器。与 scikit-learn 回归器相同,它应该至少具有拟合和预测方法。
target(str, optional) -- 被视为目标变量的列的名称。
六、PcaProjection是对多元时间序列执行主成分分析 (PCA) 的转换器(每个时间点都被视为高维空间中的一个点),并用它们在前 k 个主成分上的投影来表示这些点。

在下面的例子中,我们只保留它的第一个主系数,将前面例子中使用的二维序列转换为一维序列。

在这里插入图片描述

方法调用
adtk.transformer.PcaProjection(k=1)
参数介绍
k(int, optional) -- 要使用的主成分数。默认值:1
七、PcaReconstruction是对多变量时间序列执行主成分分析 (PCA) 的转换器(每个时间点都被视为高维空间中的一个点),并使用前 k 个主成分重建这些点。

在下面的示例中,我们将前面示例中使用的二维序列投影到其第一个主成分的线上。

在这里插入图片描述

方法调用
adtk.transformer.PcaReconstruction(k=1)
参数介绍
k(int, optional) -- 要使用的主成分数。默认值:1
八、PcaReconstructionError是对多元时间序列执行主成分分析 (PCA) 的转换器(每个时间点都被视为高维空间中的一个点),用前 k 个主成分重建这些点,并返回重建误差(即距离的平方重建点和原始点)。

在下面的示例中,我们将前面示例中使用的二维序列投影到其第一个主成分的线上。

在这里插入图片描述

方法调用
adtk.transformer.PcaReconstructionError(k=1)
参数介绍
k(int, optional) -- 要使用的主成分数。默认值:1
九、CustomizedTransformer1D(单变量转换器)与定制的检测器一样,用户可以使用或将函数转换为定制的转换器CustomizedTransformerHD(多变量转换器),以便对象可以使用它Pipe

在以下示例中,我们获得了一系列计算得出的发电功率(以 kW 为单位)除以发电机速度(以 kRPM 为单位)。

在这里插入图片描述
在这里插入图片描述

方法调用
adtk.transformer.CustomizedTransformer1D(transform_func, transform_func_params=None, 
										 fit_func=None, fit_func_params=None)
adtk.transformer.CustomizedTransformerHD(transform_func, transform_func_params=None, 
										 fit_func=None, fit_func_params=None)
参数介绍
transform_func(function) -- 转换单/多变量时间序列的函数。
						    第一个输入参数必须是 pandas Series/DataFrame,
						    可选输入参数可以通过参数transform_func_params和fit_func的输出接受,
						    输出必须是与输入具有相同索引的 pandas Series 或 DataFrame。
transform_func_params(dict, optional) -- transform_func的参数。
									  	 默认值:None。
fit_func(function, optional) -- 具有单/多变量时间序列的transform_func函数训练参数。
								第一个输入参数必须是 pandas DataFrame/Series,
								可选输入参数可以通过参数fit_func_params接受,
								输出必须是可以被transform_func用作参数的dict。
								默认值:无。
fit_func_params(dict, optional) -- fit_func的参数。
								   默认值:无。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏秃然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值