simpleml.pipelines.validation_split_mixins

Module for different split methods for cross validation

  1. No Split – Just use all the data

  2. Explicit Split – dataset class defines the split

  3. Percentage – random split support for train, validation, test

  4. Chronological – time based split support for train, validation, test

  5. KFold

Module Contents

Classes

ChronologicalSplitMixin

ExplicitSplitMixin

KFoldSplitMixin

TBD on how to implement this. KFold requires K models and unique datasets

NoSplitMixin

RandomSplitMixin

Class to randomly split dataset into different sets

Split

Container class for splits

SplitContainer

Explicit instantiation of a defaultdict returning split objects

SplitMixin

simpleml.pipelines.validation_split_mixins.__author__ = Elisha Yadgaran[source]
class simpleml.pipelines.validation_split_mixins.ChronologicalSplitMixin(**kwargs)[source]

Bases: simpleml.pipelines.validation_split_mixins.SplitMixin

class simpleml.pipelines.validation_split_mixins.ExplicitSplitMixin[source]

Bases: simpleml.pipelines.validation_split_mixins.SplitMixin

split_dataset(self)[source]

Method to split the dataframe into different sets. Assumes dataset explicitly delineates between train, validation, and test

class simpleml.pipelines.validation_split_mixins.KFoldSplitMixin[source]

Bases: simpleml.pipelines.validation_split_mixins.SplitMixin

TBD on how to implement this. KFold requires K models and unique datasets so may be easier to wrap a parallelized implementation that internally creates K new Pipeline and Model objects

class simpleml.pipelines.validation_split_mixins.NoSplitMixin[source]

Bases: simpleml.pipelines.validation_split_mixins.SplitMixin

split_dataset(self)[source]

Non-split mixin class. Returns full dataset for any split name

class simpleml.pipelines.validation_split_mixins.RandomSplitMixin(train_size, test_size=None, validation_size=0.0, random_state=123, shuffle=True, **kwargs)[source]

Bases: simpleml.pipelines.validation_split_mixins.SplitMixin

Class to randomly split dataset into different sets

Set splitting params: By default validation is 0.0 because it is only used for hyperparameter tuning

split_dataset(self)[source]

Overwrite method to split by percentage

class simpleml.pipelines.validation_split_mixins.Split[source]

Bases: dict

Container class for splits

Initialize self. See help(type(self)) for accurate signature.

__getattr__(self, attr)[source]

Default attribute processor (Used in combination with __getitem__ to enable ** syntax)

static is_null_type(obj)[source]

Helper to check for nulls - useful to not pass “empty” attributes so defaults of None will get returned downstream instead ex: **split -> all non null named params

squeeze(self)[source]

Helper method to clear up any null-type keys

class simpleml.pipelines.validation_split_mixins.SplitContainer(default_factory=Split, **kwargs)[source]

Bases: collections.defaultdict

Explicit instantiation of a defaultdict returning split objects

Initialize self. See help(type(self)) for accurate signature.

class simpleml.pipelines.validation_split_mixins.SplitMixin[source]

Bases: future.utils.with_metaclass()

containerize_split(self, split_dict)[source]
get_split_names(self)[source]
abstract split_dataset(self)[source]

Set the split criteria

Must set self._dataset_splits