@keyword_only<EOL><INDENT>def __init__(self, sklearnEstimator=None, keyCols=["<STR_LIT:key>"], xCol="<STR_LIT>",<EOL>outputCol="<STR_LIT>", yCol=None, estimatorType=None):<DEDENT>
if sklearnEstimator is None:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>if not isinstance(sklearnEstimator, sklearn.base.BaseEstimator):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>if len(keyCols) == <NUM_LIT:0>:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>if "<STR_LIT>" in keyCols + [xCol, yCol]:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>for paramName, paramSpec in KeyedEstimator._paramSpecs.items():<EOL><INDENT>setattr(self, paramName, Param(Params._dummy(), paramName, paramSpec["<STR_LIT>"]))<EOL><DEDENT>super(KeyedEstimator, self).__init__()<EOL>self._setDefault(**{paramName: paramSpec["<STR_LIT:default>"]<EOL>for paramName, paramSpec in KeyedEstimator._paramSpecs.items()<EOL>if "<STR_LIT:default>" in paramSpec})<EOL>kwargs = KeyedEstimator._inferredParams(sklearnEstimator, self._input_kwargs)<EOL>self._set(**kwargs)<EOL>self._verifyEstimatorType()<EOL>
For all instances, the ordered list of ``keyCols`` determine the set of groups which each
        ``sklearnEstimator`` is applied to.

        For every unique ``keyCols`` value, the remaining columns are aggregated and used to train
        the scikit-learn estimator.

        ``estimatorType`` inference is conducted as follows: if ``yCol`` is specified, then this is
        assumed to be of ``"predictor"`` type, else a ``"transformer"`` or a ``"clusterer"``,
        depending on the estimator having the ``transform()`` or ``fit_predict()`` attributes, with
        ``"clusterer"`` being chosen in case both attributes are present.

        :param sklearnEstimator: An instance of a scikit-learn estimator, with parameters configured
                                 as desired for each user.
        :param keyCols: Key column names list used to group data to which models are applied, where
                        order implies lexicographical importance.
        :param xCol: Name of column of input features used for training and
                     transformation/prediction.
        :param yCol: Specifies name of label column for regression or classification pipelines.
                     Required for predictors, must be unspecified or ``None`` for transformers.
        :param estimatorType: Identifies the type of scikit-learn estimator being used, which
                              changes the interface the ``sklearnEstimator`` is expected to have.
                              This parameter's value is inferred using reflection by default,
                              but may be manually overriden.

        :raise ValueError: if ``sklearnEstimator`` is ``None``.
        :raise ValueError: if ``sklearnEstimator`` does not derive from
                           ``sklearn.base.BaseEstimator``.
        :raise ValueError: if ``keyCols`` is empty.
        :raise ValueError: if any column has the name ``"estimator"``
        :raise AttributeError: if reflection checks indicate that parameter estimator is not equipped
                               with a ``fit()`` method.