paddlets.datasets.splitter

class SplitterBase(skip_size: int = 0, verbose: bool = True)[源代码]

基类:object

所有Splitter的基类

参数
  • skip_size (int) – 在训练集和测试集之间需要跳过的数据,默认为0,如果使用backtest进行数据效果验证的话这里不用设置

  • verbose (bool) – 是否开启日志打印,默认开启

返回

None

引发

None

split(dataset: TSDataset, return_index: bool = False) Union[TSDataset, DatetimeIndex, RangeIndex][源代码]

切割TSdataset

参数
  • dataset (TS) – 待切割的数据

  • return_index (bool) – 返回index或者返回TSDataset,默认返回TSdataset

返回

TSDataset|pd.DatetimeIndex|pd.RangeIndex

引发

ValueError

class HoldoutSplitter(test_size: Union[int, float], skip_size: int = 0, verbose: bool = True)[源代码]

基类:SplitterBase

Holdout切割

TSDataset切分成一个特定的训练集和测试集

参数
  • test_size (int|float) – 测试集大小,可以是int或者float,作为int时代表测试集的长度,作为float时代表切分比例

  • skip_size (int) – 在训练集和测试集之间需要跳过的数据,默认为0

  • verbose (bool) – 是否开启日志打印,默认开启

返回

None

示例

1)举例,如果 test_size = 5, 其他参数设置为默认值,下面展示了这种情况下的切割例子:

I * * * * * * * x x x x xI

* = 训练集, x = 测试集

2)举例,如果 test_size = 0.5, 其他参数设置为默认值,下面展示了这种情况下的切割例子:

I * * * * * * x x x x x xI

* = 训练集, x = 测试集

class ExpandingWindowSplitter(n_splits: int = 5, test_size: Optional[int] = None, skip_size: int = 0, max_train_size: Optional[int] = None, verbose: bool = True)[源代码]

基类:SplitterBase

扩大窗口切分

以固定测试集,不断扩张训练集长度的方式切割数据

参数
  • n_splits – folds的数量,默认为5,不能为None

  • test_size (int|float|None) – 测试集长度,如果不设置默认为n_samples // (n_splits+1)

  • skip_size (int) – 在训练集和测试集之间需要跳过的数据,默认为0

  • max_train_size (int) – 训练集的最大长度

  • verbose (bool) – 是否开启日志打印,默认开启

返回

None

引发

None

示例

1)举例,如果 n_splits = 5, 其他参数设置为默认值,训练集长度= n_samples // (n_splits+1) = 12//(5+1) = 2,下面展示了这种情况下的切割例子:

I * * x x - - - - - - - -I
I * * * * x x - - - - - -I
I * * * * * * x x - - - -I
I * * * * * * * * x x - -I
I * * * * * * * * * * x xI

* = 训练集, x = 测试集

2)举例,如果 n_splits = 5, test_size = 1, 其他参数设置为默认值,下面展示了这种情况下的切割例子:

I * * * * * * * x - - - -I
I * * * * * * * * x - - -I
I * * * * * * * * * x - -I
I * * * * * * * * * * x -I
I * * * * * * * * * * * xI

* = 训练集, x = 测试集

3)举例,如果 n_splits = 5, test_size = 1, skip_size = 1, 其他参数设置为默认值,下面展示了这种情况下的切割例子:

I * * * * * * - x - - - -I
I * * * * * * * - x - - -I
I * * * * * * * * - x - -I
I * * * * * * * * * - x -I
I * * * * * * * * * * - xI

* = 训练集, x = 测试集

4)举例,如果 n_splits = 5, test_size = 1, skip_size = 1, max_train_size = 5, 其他参数设置为默认值,下面展示了这种情况下的切割例子:

I * * * * * - - x - - - -I
I * * * * * - - - x - - -I
I * * * * * - - - - x - -I
I * * * * * - - - - - x -I
I * * * * * - - - - - - xI

* = 训练集, x = 测试集

property get_n_splits: int

Get n_splits

参数

None

返回

n_splits

返回类型

int

引发

None

class SlideWindowSplitter(train_size: int, test_size: int, step_size: Optional[int] = None, skip_size: int = 0, verbose: bool = True)[源代码]

基类:SplitterBase

滑动窗口切割

固定训练集和测试集长度,以窗口滑动的方式去切割数据

参数
  • train_size (int) – 训练集长度,不能为None

  • test_size (int|float|None) – 测试集的长度,不能为None

  • step_size – 两个切割之间的窗口滑动步长,默认等于测试集长度

  • skip_size (int) – 在训练集和测试集之间需要跳过的数据,默认为0

  • verbose (bool) – 是否开启日志打印,默认开启

返回

None

引发

ValuError

示例

1)举例,如果 train_size = 5, test_size = 2, 其他参数设置为默认值,下面展示了这种情况下的切割例子:

I * * * * * x x - - - - -I
I - - * * * * * x x - - -I
I - - - - * * * * * x x -I

* = 训练集, x = 测试集

2)举例,如果 train_size = 5, test_size = 2, step_size = 1, 其他参数设置为默认值,下面展示了这种情况下的切割例子:

I * * * * * x x - - - - -I
I - * * * * * x x - - - -I
I - - * * * * * x x - - -I
I - - - * * * * * x x - -I
I - - - - * * * * * x x -I
I - - - - - * * * * * x xI

* = 训练集, x = 测试集

3)举例,如果 train_size = 5, test_size = 2, skip_size = 1, 其他参数设置为默认值,下面展示了这种情况下的切割例子:

I * * * * * - x x - - - -I
I - - * * * * * - x x - -I
I - - - - * * * * * - x xI

* = 训练集, x = 测试集