'Run fit on the estimator with randomly drawn parameters.
Parameters
X : array-like, shape = [n_samples, n_features]
Training vector, where n_samples in the number of samples and
n_features is the number of features.
y : array-like, shape = [n_samples] or [n_samples, n_output], optional
Target relative to X for classification or regression;
None for unsupervised learning.'

def fit(self, X, y=None):

    sampled_params = ParameterSampler(self.param_distributions, self.n_iter, random_state=self.random_state)
    return self._fit(X, y, sampled_params)
