def get_params(cls, instance, ignore=None):
    """ Retrieve the initialization parameters corresponding to a class

    This helper function retrieves the parameters of function __init__ for
    class 'cls' and returns the value for these parameters in object
    'instance'. When using a composition pattern (e.g. with a NiftiMasker
    class), it is useful to forward parameters from one instance to another.

    Parameters
    ----------
    cls: class
        The class that gives us the list of parameters we are interested
        in

    instance: object, instance of BaseEstimator
        The object that gives us the values of the parameters

    ignore: None or list of strings
        Names of the parameters that are not returned.

    Returns
    -------
    params: dict
        The dict of parameters
    """
    _ignore = set(('memory', 'memory_level', 'verbose', 'copy', 'n_jobs'))
    if ignore is not None:
        _ignore.update(ignore)
    param_names = cls._get_param_names()
    params = dict()
    for param_name in param_names:
        if param_name in _ignore:
            continue
        if hasattr(instance, param_name):
            params[param_name] = getattr(instance, param_name)
    return params
