Source code for mlinsights.sklapi.sklearn_parameters

import textwrap


[docs] class SkException(Exception): """ custom exception """
[docs] class SkLearnParameters: """ Defines a class to store parameters of a *learner* or a *transform*. """ def __init__(self, **kwargs): """ Stores parameters as members of the class itself. """ self._keys = list(kwargs.keys()) for k, v in kwargs.items(): self.validate(k, v) setattr(self, k, v)
[docs] def validate(self, name, value): """ Verifies a parameter and its value. :param name: name :param value: value :raise: raises :class:`SkException` if error """ if name.startswith("_") or name.endswith("_"): raise SkException(f"Parameter name must not start by '_': '{name}'")
@property def Keys(self): """ Returns parameter names. """ return self._keys def __repr__(self): """ usual """ def fmt(v): "formatting function" if isinstance(v, str): return f"'{v}'" return repr(v) text = ", ".join(f"{k}={fmt(getattr(self, k))}" for k in sorted(self.Keys)) return "\n".join(textwrap.wrap(text, subsequent_indent=" "))
[docs] def to_dict(self): """ Returns parameters as a dictionary. @return dict """ return {k: getattr(self, k) for k in self.Keys}