Source code for simpleml.transformers.base_transformer

from sklearn.base import TransformerMixin as SklearnTransformerMixin


__author__ = 'Elisha Yadgaran'


[docs]class TransformerMixin(SklearnTransformerMixin): ''' Base Transformer class that implements all the necessary methods Default behavior is to do nothing - overwrite later '''
[docs] def fit(self, X, y=None, **kwargs): return self
[docs] def transform(self, X, y=None, **kwargs): return X
[docs] def get_params(self, **kwargs): ''' Should only return seeding parameters, not fit ones (ie params of unfit object should be identical to fit object) ''' return {}
[docs] def set_params(self, **kwargs): pass
[docs] def get_feature_names(self, input_feature_names): return input_feature_names
[docs]class Transformer(TransformerMixin): ''' Base Transformer class with param management - Can interfere with mro if used as a mixin - Use `TransformerMixin` in that case ''' def __init__(self, **kwargs): ''' Assumes only seeding kwargs passed - will affect hash otherwise if random unused parameters are passed ''' self.params = kwargs
[docs] def get(self, param): return self.params.get(param)
[docs] def get_params(self, **kwargs): ''' Should only return seeding parameters, not fit ones (ie params of unfit object should be identical to fit object) ''' return self.params
[docs] def set_params(self, **kwargs): self.params.update(kwargs)