frequency_fixer 模块
用于检查的实用工具函数
函数
check_coverage_one_grain
获取给定频率涵盖的点数。
check_coverage_one_grain(one_grain: azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet, freqs: Union[pandas.core.frame.DataFrame, pandas.core.series.Series]) -> int
参数
- one_grain
表示一种粒度的数据帧。
- freq
粒度的建议频率。
check_types
如果 X 或 y 的类型不正确,则引发异常,同时将 y 转换为 np.ndarray。
check_types(X: pandas.core.frame.DataFrame, y: Optional[Union[numpy.ndarray, pandas.core.series.Series, pandas.core.arrays.categorical.Categorical, azureml.dataprep.api.dataflow.Dataflow]]) -> None
参数
- X
用于频率推理的数据帧。
- y
X 的标签。
返回
具有 X 和 y 的元组。
例外
fix_data_set_regularity_may_be
用于修复数据帧频率的帮助程序函数。
fix_data_set_regularity_may_be(X: pandas.core.frame.DataFrame, y: Optional[numpy.ndarray], automl_settings: azureml.automl.core.automl_base_settings.AutoMLBaseSettings, freq_ref_code: str) -> azureml.automl.runtime.fixed_dataset.FixedDataSet
参数
- X
用于频率推理的数据帧。
- y
X 的标签。
- automl_settings
AutoMLSettings 对象。
- freq_ref_code
无法将用户频率转换为 pd.Offset 时要设置的错误 ref 代码
返回
FixedDataSet 对象,包含更正后的数据帧、相应的 y、两个标志,用于显示频率推理是否失败以及数据集是否修改以及日期偏移量。 只有在检测到有效频率时,日期偏移量才不是 None。
fix_df_frequency
从数据帧中删除不符合给定频率的离群数据点。
fix_df_frequency(X: pandas.core.frame.DataFrame, time_column_name: str, grain_column_names: Optional[Union[Tuple[str], str, List[str]]], start_times: Union[pandas._libs.tslibs.timestamps.Timestamp, Dict[Union[Tuple[str], str, List[str]], pandas._libs.tslibs.timestamps.Timestamp]], freq: Optional[pandas._libs.tslibs.offsets.DateOffset]) -> pandas.core.frame.DataFrame
参数
- X
用于频率推理的数据帧。
- time_column_name
表示日期时间的列。
- grain_column_names
定义多个序列的列。
- start_times
时序的开始时间。 如果数据集包含多个粒度,则它必须是具有每个粒度的开始时间的字典。 如果数据集不包含粒度,则它是单个时间戳。
- freq
返回
pd.DateOffset 是可推断的频率,否则为无。
例外
fix_frequency_one_grain
从数据帧中删除不符合给定频率的离群数据点。
fix_frequency_one_grain(X: pandas.core.frame.DataFrame, freq: Optional[pandas._libs.tslibs.offsets.DateOffset], start: pandas._libs.tslibs.timestamps.Timestamp, time_column_name: str) -> pandas.core.frame.DataFrame
参数
- X
将在拟合期间使用的时序数据帧。
- freq
将用于修复 X 的频率。
- start
用于倾斜装置数据帧的网格的起点。
- time_column_name
表示日期时间的列。
返回
具有校正频率的数据帧。
get_dominant_timedeltas
获取给定频率的主导时间增量。
get_dominant_timedeltas(frequency: pandas._libs.tslibs.offsets.DateOffset, default: pandas._libs.tslibs.timedeltas.Timedelta) -> Set[pandas._libs.tslibs.timedeltas.Timedelta]
参数
- frequency
需要估计时间增量的频率。
- default
所有返回集上存在的时间增量中值。
返回
给定时间增量的主导时间增量。
get_frequencies_choices
返回给定 timeselta 的可能频率。
如果频率是特殊的,我们需要此函数,例如,它可能是缺少某些日期的每月频率。 :param delta:数据点之间的主导时间增量。 :param df_time:从数据帧时间索引获取的序列。 :returns:要尝试的频率列表。
get_frequencies_choices(delta: pandas._libs.tslibs.timedeltas.Timedelta, df_time: pandas.core.series.Series) -> List[pandas._libs.tslibs.offsets.DateOffset]
参数
- delta
- df_time
get_tsdf_frequency_and_start
检测 Pandas 数据帧的频率。
get_tsdf_frequency_and_start(X: pandas.core.frame.DataFrame, y: Optional[Union[numpy.ndarray, pandas.core.series.Series, pandas.core.arrays.categorical.Categorical, azureml.dataprep.api.dataflow.Dataflow]], time_column_Name: str, grain_column_names: Optional[Union[str, List[str]]], user_frequency: Optional[pandas._libs.tslibs.offsets.DateOffset] = None) -> Optional[Tuple[pandas._libs.tslibs.offsets.DateOffset, Union[pandas._libs.tslibs.timestamps.Timestamp, Dict[Union[Tuple[str], str, List[str]], pandas._libs.tslibs.timestamps.Timestamp]]]]
参数
- X
用于频率推理的数据帧。
- y
X 的标签。
- time_column_Name
表示日期时间的列。
- grain_column_names
定义多个序列的列。
- user_frequency
用户设置的频率。
返回
元组,包含频率和字典以及每个粒度的起始时间,如果不同的粒度具有不同的频率或更少,则 FREQUENCY_REJECT_TOLERANCE 点的一小部分可以适应给定频率。 如果数据帧仅包含一个粒度,则返回时间戳而不是字典。
例外
has_dominant_frequency
确定数据集是否符合 dominant_frequency。
注意:在此快速测试中,我们仅测试数据集能否根据给定的时间增量符合此频率,但这一点无法保证,对大部分数据点是否在频率网格中的实际检查应该在之后进行。 :param timedeltas:来自单个序列的时间增量。 :param delta_mode:系列中最常见的时间增量。 :param frequency:检测到的要进行测试的主导频率。 :param tolerance:预期时间增量中允许的异常值百分比。 :returns:如果数据集可以在此频率网格中,则返回 True;否则为 False。
has_dominant_frequency(timedeltas: pandas.core.series.Series, delta_mode: pandas._libs.tslibs.timedeltas.Timedelta, dominant_frequency: pandas._libs.tslibs.offsets.DateOffset, tolerance: float) -> bool
参数
- timedeltas
- delta_mode
- dominant_frequency
- tolerance
improved_infer_freq_one_grain
改进了可应用于一种粒度的频率推理版本。
在此算法中,我们首先尝试在频率检测时使用 infer_freq 机制,生成相应的频率网格;如果不适合网格的数据百分比在 FREQUENCY_REJECT_TOLERANCE 内,则返回给定粒度的此频率和开始日期。 如果 infer_freq 机制在网格外部留下许多数据点,我们将估计数据点之间的时间增量,并采用这些值的模式。 然后,此模式用于重新构造频率。 如果具有相同时间增量的点组由其他时间间隔分隔,则我们认为它是不同的数据网格。 我们构造多个网格,并选择一个主导网格,其中具有的非拟合点百分比在 FREQUENCY_REJECT_TOLERANCE 内。 我们还返回用于网格生成的起点。 如果时间增量提醒月份、年份或季度,我们会尝试这些 DateOffset,看看是否适合大多数数据点。 如果两个网格都不够好,我们会从 infer_freq 机制返回以前的频率。 :param df_grain:表示一种粒度的数据帧。 :p freq_offset:由 infer_freq 机制确定的频率。 :param grain:给定粒度的名称。 :param user_frequency:用户设置的频率。 :p custom_freq_reject_tolerance:新检测到的频率必须涵盖的点的比例
,以选择它。
improved_infer_freq_one_grain(df_grain: azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet, freq_offset: pandas._libs.tslibs.offsets.DateOffset, grain: Union[Tuple[str], str, List[str]], user_frequency: Optional[pandas._libs.tslibs.offsets.DateOffset] = None, custom_freq_reject_tolerance: float = 0.9) -> pandas.core.series.Series
参数
- df_grain
- freq_offset
- grain
- user_frequency
- custom_freq_reject_tolerance
返回
具有频率和开始日期的序列。 示例:pd.Series{freq=<Days * 7>, start='2019-01-01'}
str_to_offset_safe
安全地调用 pandas to_offset 函数来控制日期偏移。
str_to_offset_safe(freq: Optional[str], ref_code: Optional[str] = None) -> pandas._libs.tslibs.offsets.DateOffset
参数
- freq
要转换为 pd.DateOffset 的频率的字符串表示形式。
- ref_code
引发异常时要使用的参考代码。
返回
与字符串对应的频率。
例外
反馈
提交和查看相关反馈