@classmethod
def from_operator_name(cls, name: str, **kwargs) ->'DiffusionMaps':
    """Instantiate new model to approximate operator (to be selected by name).

        Parameters
        ----------
        name
            "laplace_beltrami", "fokker_plank", "graph_laplacian" or "rbf".

        **kwargs
            All parameters in :py:class:`DiffusionMaps` but ``alpha``.

        Returns
        -------
        DiffusionMaps
            self
        """
    if name == 'laplace_beltrami':
        eigfunc_interp = cls.laplace_beltrami(**kwargs)
    elif name == 'fokker_planck':
        eigfunc_interp = cls.fokker_planck(**kwargs)
    elif name == 'graph_laplacian':
        eigfunc_interp = cls.graph_laplacian(**kwargs)
    elif name == 'rbf':
        eigfunc_interp = cls.rbf_kernel(**kwargs)
    else:
        raise ValueError(
            f"name='{name}' not known. Choose from {cls._cls_valid_operator_names}"
            )
    if name not in cls._cls_valid_operator_names:
        raise NotImplementedError(
            f'This is a bug. name={name} each name has to be listed in VALID_OPERATOR_NAMES'
            )
    return eigfunc_interp
