分解器#
移除时间序列趋势并返回分解成分的组件。
模块内容#
类摘要#
移除时间序列趋势和季节性并返回分解成分的组件。 |
内容#
- class evalml.pipelines.components.transformers.preprocessing.decomposer.Decomposer(component_obj=None, random_seed: int = 0, degree: int = 1, period: int = -1, seasonal_smoother: int = 7, time_index: str =None, **kwargs)[source]#
移除时间序列趋势和季节性并返回分解成分的组件。
- 参数
parameters (dict) – 要传递给组件对象的参数字典。
component_obj (class) – 去趋势/去季节性类的一个实例。
random_seed (int) – 随机数生成器的种子。默认为 0。
degree (int) – 当前是 PolynomialDecomposer 的次数,不用于 STLDecomposer。
period (int) – 季节性信号周期的最佳猜测,以单位表示。
seasonal_smoother (int) – STLDecomposer 的季节性平滑参数,不用于 PolynomialDecomposer。
time_index (str) – 应从中提取日期时间信息的特征矩阵 (X) 的列名。
属性
hyperparameter_ranges
无
invalid_frequencies
[]
modifies_features
False
modifies_target
True
name
Decomposer
needs_fitting
True
training_only
False
方法
构建一个具有相同参数和随机状态的新组件。
返回此组件的默认参数。
描述一个组件及其参数。
使用自相关方法确定季节性信号最可能显著周期的函数。
将组件拟合到数据。
从目标变量中移除拟合的趋势和季节性。
返回一个数据帧列表,每个数据帧包含 3 列:趋势、季节性和残差。
将趋势 + 季节性加回 y。
确定给定的字符串是否表示此分解器的有效频率。
从文件路径加载组件。
返回用于初始化组件的参数。
绘制目标信号的分解图。
将组件保存到文件路径。
根据目标的季节性设置组件季节性周期的函数。
转换数据 X。
更新组件的参数字典。
- clone(self)#
构建一个具有相同参数和随机状态的新组件。
- 返回值
此组件的一个新实例,具有相同的参数和随机状态。
- default_parameters(cls)#
返回此组件的默认参数。
我们的约定是 Component.default_parameters == Component().parameters。
- 返回值
此组件的默认参数。
- 返回类型
dict
- describe(self, print_name=False, return_dict=False)#
描述一个组件及其参数。
- 参数
print_name (bool, optional) – 是否打印组件名称
return_dict (bool, optional) – 是否以字典格式 {“name”: name, “parameters”: parameters} 返回描述
- 返回值
如果 return_dict 为 True,则返回字典;否则返回 None。
- 返回类型
None 或 dict
- classmethod determine_periodicity(cls, X: pandas.DataFrame, y: pandas.Series, acf_threshold: float = 0.01, rel_max_order: int = 5)[source]#
使用自相关方法确定季节性信号最可能显著周期的函数。
- 参数
X (pandas.DataFrame) – 时间序列问题的特征数据。
y (pandas.Series) – 时间序列问题的目标数据。
acf_threshold (float) – 用于确定周期的自相关函数阈值。低于此阈值的任何值都被视为 0,不会被考虑用于确定周期。默认为 0.01。
rel_max_order (int) – 用于确定周期的相对最大值的阶数。默认为 5。
- 返回值
- 时间序列数据中目标数据季节性部分重复的整数条目数。
如果时间序列数据以天为单位,则这是目标季节性信号重复的天数。注意:目标数据可以包含多个季节性信号。此函数仅返回更强的信号。例如,如果目标数据同时包含周和年的季节性,此函数可能会返回“7”或“365”,具体取决于哪种季节性自相关性更强。如果未检测到周期,则返回 None。
- 返回类型
int
- fit(self, X, y=None)#
将组件拟合到数据。
- 参数
X (pd.DataFrame) – 输入训练数据,形状为 [n_samples, n_features]
y (pd.Series, optional) – 目标训练数据,长度为 [n_samples]
- 返回值
self
- 引发
MethodPropertyNotFoundError – 如果组件没有 fit 方法或 component_obj 没有实现 fit 方法。
- fit_transform(self, X: pandas.DataFrame, y: pandas.Series = None) tuple[pandas.DataFrame, pandas.Series] [source]#
从目标变量中移除拟合的趋势和季节性。
- 参数
X (pd.DataFrame, optional) – 忽略。
y (pd.Series) – 要去除趋势和季节性的目标变量。
- 返回值
- 第一个元素是未修改返回的输入特征。
第二个元素是已移除拟合趋势的目标变量 y。
- 返回类型
tuple of pd.DataFrame, pd.Series
- classmethod is_freq_valid(cls, freq: str)[source]#
确定给定的字符串是否表示此分解器的有效频率。
- 参数
freq (str) – 要验证的频率。选项请参阅 pandas 文档:https://pandas.ac.cn/pandas-docs/stable/user_guide/timeseries.html#offset-aliases。
- 返回值
一个布尔值,表示频率是否有效。
- static load(file_path)#
从文件路径加载组件。
- 参数
file_path (str) – 文件加载位置。
- 返回值
ComponentBase 对象
- property parameters(self)#
返回用于初始化组件的参数。
- plot_decomposition(self, X: pandas.DataFrame, y: Union[pandas.Series, pandas.DataFrame], show: bool = False) Union[tuple[matplotlib.pyplot.Figure, list], dict[str, tuple[matplotlib.pyplot.Figure]]] [source]#
绘制目标信号的分解图。
- 参数
X (pd.DataFrame) – 输入数据,索引中包含时间序列数据。
y (pd.Series or pd.DataFrame) – 作为 Series 提供的用于单变量问题的目标变量数据,或作为 DataFrame 提供的用于多变量问题的数据。
show (bool) – 是否显示图表。默认为 False。
- 返回值
- 包含分解绘制在其上的图表和轴
绘制在其上
- (多序列) dict[str, (matplotlib.pyplot.Figure, list[matplotlib.pyplot.Axes])]: 将序列 ID 映射到
包含分解绘制在其上的图表和轴的字典
- 返回类型
(单序列) matplotlib.pyplot.Figure, list[matplotlib.pyplot.Axes]
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
将组件保存到文件路径。
- 参数
file_path (str) – 文件保存位置。
pickle_protocol (int) – pickle 数据流格式。
- set_period(self, X: pandas.DataFrame, y: pandas.Series, acf_threshold: float = 0.01, rel_max_order: int = 5)[source]#
根据目标的季节性设置组件季节性周期的函数。
- 参数
X (pandas.DataFrame) – 时间序列问题的特征数据。
y (pandas.Series) – 时间序列问题的目标数据。
acf_threshold (float) – 用于确定周期的自相关函数阈值。低于此阈值的任何值都被视为 0,不会被考虑用于确定周期。默认为 0.01。
rel_max_order (int) – 用于确定周期的相对最大值的阶数。默认为 5。
- abstract transform(self, X, y=None)#
转换数据 X。
- 参数
X (pd.DataFrame) – 要转换的数据。
y (pd.Series, optional) – 目标数据。
- 返回值
转换后的 X
- 返回类型
pd.DataFrame
- 引发
MethodPropertyNotFoundError – 如果转换器没有 transform 方法或 component_obj 没有实现 transform 方法。
- update_parameters(self, update_dict, reset_fit=True)#
更新组件的参数字典。
- 参数
update_dict (dict) – 要更新的参数字典。
reset_fit (bool, optional) – 如果为 True,将 _is_fitted 设置为 False。