For having a general solution that works for many other use cases also, and not just a transformer, we can write your own decorator if there is a state-free function that do not implement fit.
Refer to the code below for an example:
class TransformerWrapper(sklearn.base.BaseEstimator):
def __init__(self, func):
self._func = func
def fit(self, *args, **kwargs):
return self
def transform(self, X, *args, **kwargs):
return self._func(X, *args, **kwargs)
And after this you can do the following
@TransformerWrapper
def foo(x):
return x*2
Which is similar to
def foo(x):
return x*2
foo = TransformerWrapper(foo)
And that is what sklearn.preprocessing.FunctionTransformer is doing .
You can also use sklearn function by
from sklearn.preprocessing import FunctionTransformer
@FunctionTransformer
def foo(x):
return x*2
If you wish to learn about scikit learn then visit this Scikit Learn Tutorial.
Thinking of getting a master's degree in Data Science? Enroll in the MSc in Data Science in USA!