paddlets.models.ml_model_wrapper
- class MLModelBaseWrapper(model_class: Type, in_chunk_len: int, out_chunk_len: int = 1, skip_chunk_len: int = 0, sampling_stride: int = 1, model_init_params: Optional[Dict[str, Any]] = None, fit_params: Optional[Dict[str, Any]] = None, predict_params: Optional[Dict[str, Any]] = None)[源代码]
基类:
MLBaseModel用于将第三方模型封装为时序模型的基类。
- 参数
model_class (Type) – 第三方模型类的类型。
in_chunk_len (int) – 模型输入的时间序列长度。
out_chunk_len (int) – 模型输出的时间序列长度。
skip_chunk_len (int, optional) – 输入序列与输出序列之间跳过的序列长度, 既不作为特征也不作为序测目标使用, 默认值为0。
sampling_stride (int, optional) – 在第i条样本和第i+1条样本之间跨越的时间步数。 具体来说,令 t 为target时序数据的时间索引,t[i] 为第i条样本的起始时间,t[i+1]`为第i+1条样本的起始时间, 则`sampling_stride`代表 `t[i+1] - t[i] 的计算结果,即2条相邻的样本之间相差的时间点的数量。
model_init_params (Dict[str, Any]) – 用于初始化第三方模型的所有参数。
fit_params (Dict[str, Any], optional) – 第三方模型的fit接口接收的所有参数,训练集数据除外。
predict_params (Dict[str, Any], optional) – 第三方模型的predict接口接收的所有参数,待预测数据除外。
- class SklearnModelWrapper(model_class: Type, in_chunk_len: int, out_chunk_len: int, skip_chunk_len: int = 0, sampling_stride: int = 1, model_init_params: Optional[Dict[str, Any]] = None, fit_params: Optional[Dict[str, Any]] = None, predict_params: Optional[Dict[str, Any]] = None, udf_ml_dataloader_to_fit_ndarray: Optional[Callable] = None, udf_ml_dataloader_to_predict_ndarray: Optional[Callable] = None)[源代码]
-
用于将sklearn第三方模型封装为时序模型的基类。
- 参数
model_class (Type) – 第三方模型类的类型。
in_chunk_len (int) – 模型输入的时间序列长度。
out_chunk_len (int) – 模型输出的时间序列长度。
skip_chunk_len (int, optional) – 输入序列与输出序列之间跳过的序列长度, 既不作为特征也不作为序测目标使用, 默认值为0。
sampling_stride (int, optional) – 在第i条样本和第i+1条样本之间跨越的时间步数。 具体来说,令 t 为target时序数据的时间索引,t[i] 为第i条样本的起始时间,t[i+1]`为第i+1条样本的起始时间, 则`sampling_stride`代表 `t[i+1] - t[i] 的计算结果,即2条相邻的样本之间相差的时间点的数量。
model_init_params (Dict[str, Any]) – 用于初始化第三方模型的所有参数。
fit_params (Dict[str, Any], optional) – 第三方模型的fit接口接收的所有参数,训练集数据除外。
predict_params (Dict[str, Any], optional) – 第三方模型的predict接口接收的所有参数,待预测数据除外。
udf_ml_dataloader_to_fit_ndarray (Callable, optional) – 用户自定义函数,用于将一个 MLDataLoader 对象转换为第三方模型的`fit`接口可接收的 numpy.ndarray 类型数据。
udf_ml_dataloader_to_predict_ndarray (Callable, optional) – 用户自定义函数,用于将一个 MLDataLoader 对象转换为第三方模型的`predict`接口可接收的 numpy.ndarray 类型数据。
- default_sklearn_ml_dataloader_to_fit_ndarray(ml_dataloader: MLDataLoader, model_init_params: Dict[str, Any], in_chunk_len: int, skip_chunk_len: int, out_chunk_len: int) Tuple[ndarray, Optional[ndarray]][源代码]
默认的转换函数,用于将一个 MLDataLoader 对象转换为sklearn第三方模型`fit`接口可接收的 numpy.ndarray 类型数据。
- 参数
ml_dataloader (MLDataLoader) – 待转换的 MLDataLoader 对象。
model_init_params (Dict) – 初始化sklearn模型时需要提供的参数。在数据转换时可能会用到。
in_chunk_len (int) – 模型输入的时间序列长度。在数据转换时可能会用到。
skip_chunk_len (int, optional) – 输入序列与输出序列之间跳过的序列长度, 既不作为特征也不作为序测目标使用, 默认值为0。转换期间可能会用到。
out_chunk_len (int) – 模型输出的时间序列长度。在数据转换时可能会用到。
- 返回
转换得到的 numpy array 数据。元组的第一、第二个元素分别代表x_train 和 y_train。
- 返回类型
Tuple[np.ndarray, Optional[np.ndarray]]
- default_sklearn_ml_dataloader_to_predict_ndarray(ml_dataloader: MLDataLoader, model_init_params: Dict[str, Any], in_chunk_len: int, skip_chunk_len: int, out_chunk_len: int) Tuple[ndarray, Optional[ndarray]][源代码]
默认的转换函数,用于将一个 MLDataLoader 对象转换为sklearn第三方模型`predict`接口可接收的 numpy.ndarray 类型数据。
- 参数
ml_dataloader (MLDataLoader) – 待转换的 MLDataLoader 对象。
model_init_params (Dict) – 初始化sklearn模型时需要提供的参数。在数据转换时可能会用到。
in_chunk_len (int) – 模型输入的时间序列长度。在数据转换时可能会用到。
skip_chunk_len (int, optional) – 输入序列与输出序列之间跳过的序列长度, 既不作为特征也不作为序测目标使用, 默认值为0。转换期间可能会用到。
out_chunk_len (int) – 模型输出的时间序列长度。在数据转换时可能会用到。
- 返回
转换得到的 numpy array 数据。元组的第一、第二个元素分别代表 x 和 y,其中 y 可能为None。
- 返回类型
Tuple[np.ndarray, Optional[np.ndarray]]
- class PyodModelWrapper(model_class: Type, in_chunk_len: int, sampling_stride: int = 1, model_init_params: Optional[Dict[str, Any]] = None, predict_params: Optional[Dict[str, Any]] = None, udf_ml_dataloader_to_fit_ndarray: Optional[Callable] = None, udf_ml_dataloader_to_predict_ndarray: Optional[Callable] = None)[源代码]
-
用于将pyod第三方模型封装为时序模型的基类。
- 参数
model_class (Type) – 第三方模型类的类型。
in_chunk_len (int) – 模型输入的时间序列长度。
sampling_stride (int, optional) – 在第i条样本和第i+1条样本之间跨越的时间步数。 具体来说,令 t 为target时序数据的时间索引,t[i] 为第i条样本的起始时间,t[i+1]`为第i+1条样本的起始时间, 则`sampling_stride`代表 `t[i+1] - t[i] 的计算结果,即2条相邻的样本之间相差的时间点的数量。
model_init_params (Dict[str, Any]) – 用于初始化第三方模型的所有参数。
predict_params (Dict[str, Any], optional) – 第三方模型的predict接口接收的所有参数,待预测数据除外。
udf_ml_dataloader_to_fit_ndarray (Callable, optional) – 用户自定义函数,用于将一个 MLDataLoader 对象转换为第三方模型的`fit`接口可接收的 numpy.ndarray 类型数据。
udf_ml_dataloader_to_predict_ndarray (Callable, optional) – 用户自定义函数,用于将一个 MLDataLoader 对象转换为第三方模型的`predict`接口可接收的 numpy.ndarray 类型数据。
- predict_score(tsdataset: TSDataset) ndarray[源代码]
使用训练完成的模型对输入的时序数据集预测得到原始的异常分数,高分预测结果将会被标记为异常点。
- 参数
tsdataset (TSDataset) – 待计算的输入样本。
- 返回
一个shape为 (n_samples, )的numpy向量,代表数据样本的异常分数。
- 返回类型
np.ndarray
- default_pyod_ml_dataloader_to_fit_ndarray(ml_dataloader: MLDataLoader, model_init_params: Dict[str, Any], in_chunk_len: int) Tuple[ndarray, Optional[ndarray]][源代码]
默认的转换函数,用于将一个 MLDataLoader 对象转换为pyod第三方模型`fit`接口可接收的 numpy.ndarray 类型数据。
该方法中会移除输入数据的 in_chunk_len 维度。原因是所有pyod三方模型要求X维度必须为 (n_samples, n_features),其中n_samples、n_features分别与PaddleTS中的batch_size、observed_cov_col_num概念相同。但是PaddleTS构建的样本是一个三维的ndarray向量,其shape为(batch_size, in_chunk_len, observed_cov_col_num),因此需要将第一维(即 batch_size)打平,使其变为2维特征。
- 参数
ml_dataloader (MLDataLoader) – 待转换的 MLDataLoader 对象。
model_init_params (Dict) – 初始化sklearn模型时需要提供的参数。在数据转换时可能会用到。
in_chunk_len (int) – 模型输入的时间序列长度。在数据转换时可能会用到。
- 返回
转换得到的 numpy array 数据。元组的第一、第二个元素分别代表x_train 和 y_train。
- 返回类型
Tuple[np.ndarray, Optional[np.ndarray]]
- default_pyod_ml_dataloader_to_predict_ndarray(ml_dataloader: MLDataLoader, model_init_params: Dict[str, Any], in_chunk_len: int) Tuple[ndarray, Optional[ndarray]][源代码]
默认的转换函数,用于将一个 MLDataLoader 对象转换为pyod第三方模型`predict`接口可接收的 numpy.ndarray 类型数据。
- 参数
ml_dataloader (MLDataLoader) – 待转换的 MLDataLoader 对象。
model_init_params (Dict) – 初始化sklearn模型时需要提供的参数。在数据转换时可能会用到。
in_chunk_len (int) – 模型输入的时间序列长度。在数据转换时可能会用到。
- 返回
转换得到的 numpy array 数据。元组的第一、第二个元素分别代表 x 和 y,其中 y 可能为None。
- 返回类型
Tuple[np.ndarray, Optional[np.ndarray]]
- make_ml_model(model_class: Type, in_chunk_len: int, out_chunk_len: int = 1, skip_chunk_len: int = 0, sampling_stride: int = 1, model_init_params: Optional[Dict[str, Any]] = None, fit_params: Optional[Dict[str, Any]] = None, predict_params: Optional[Dict[str, Any]] = None, udf_ml_dataloader_to_fit_ndarray: Optional[Callable] = None, udf_ml_dataloader_to_predict_ndarray: Optional[Callable] = None) MLModelBaseWrapper[源代码]
基于第三方模型,构建时序模型。
- 参数
model_class (Type) – 第三方模型类的类型。
in_chunk_len (int) – 模型输入的时间序列长度。
out_chunk_len (int) – 模型输出的时间序列长度。
skip_chunk_len (int, optional) – 输入序列与输出序列之间跳过的序列长度, 既不作为特征也不作为序测目标使用, 默认值为0。
sampling_stride (int, optional) – 在第i条样本和第i+1条样本之间跨越的时间步数。 具体来说,令 t 为target时序数据的时间索引,t[i] 为第i条样本的起始时间,t[i+1]`为第i+1条样本的起始时间, 则`sampling_stride`代表 `t[i+1] - t[i] 的计算结果,即2条相邻的样本之间相差的时间点的数量。
model_init_params (Dict[str, Any]) – 用于初始化第三方模型的所有参数。
fit_params (Dict[str, Any], optional) – 第三方模型的fit接口接收的所有参数,训练集数据除外。
predict_params (Dict[str, Any], optional) – 第三方模型的predict接口接收的所有参数,待预测数据除外。
udf_ml_dataloader_to_fit_ndarray (Callable, optional) – 用户自定义函数,用于将一个 MLDataLoader 对象转换为第三方模型的`fit`接口可接收的 numpy.ndarray 类型数据。任何第三方模型的fit接口如果可以接收 numpy array 作为输入,则可以使用该函数构建训练数据。
udf_ml_dataloader_to_predict_ndarray (Callable, optional) – 用户自定义函数,用于将一个 MLDataLoader 对象转换为第三方模型的`fit`接口可接收的 numpy.ndarray 类型数据。任何第三方模型的fit接口如果可以接收 numpy array 作为输入,则可以使用该函数构建训练数据。
- 返回
封装完成的时序模型对象, 目前支持 SklearnModelWrapper 和 PyodModelWrapper。
- 返回类型