method_to_transform¶
-
gtda.mapper.utils.decorators.
method_to_transform
(cls, method_name)[source]¶ Wrap a class to add a
transform
method as an alias to an existing method.An example of use is for classes possessing a
score
method such as kernel density estimators and anomaly/novelty detection estimators, to allow for these estimators are to be used as steps in a pipeline.- Parameters
cls (object) – Class to be wrapped. If method_name is not one of its methods,
transform
always returnsNone
.method_name (str) – Name of the method in cls to which
transform
will be an alias. The fist argument of this method becomes the X input fortransform
.
- Returns
wrapped_cls – New class inheriting from
sklearn.base.TransformerMixin
, so that afit_transform
is also available. Its name is the name of cls prepended with'Extended'
.- Return type
object
Examples
>>> import numpy as np >>> from numpy.testing import assert_almost_equal >>> from sklearn.neighbors import KernelDensity >>> from gtda.mapper import method_to_transform >>> X = np.random.random((100, 2)) >>> kde = KernelDensity() >>> kde_extended = method_to_transform( ... KernelDensity, 'score_samples')() >>> Xt = kde.fit(X).score_samples(X) >>> Xt_extended = kde_extended.fit_transform(X) >>> assert_almost_equal(Xt, Xt_extended) True