def _fit(self, X, y, parameter_iterable): """Actual fitting, performing the search over parameters.""" estimator = self.estimator cv = self.cv n_samples = _num_samples(X) X, y = check_arrays(X, y, allow_lists=True, sparse_format='csr') if y is not None: if len(y) != n_samples: raise ValueError('Target variable (y) has a different number ' 'of samples (%i) than data (X: %i samples)' % (len(y), n_samples)) y = np.asarray(y) cv = check_cv(cv, X, y, classifier=is_classifier(estimator)) if not self.dataset_filenames: self.save_dataset_filename(X, y, cv) dataset_filenames = self.dataset_filenames client = Client() lb_view = client.load_balanced_view() if self.verbose > 0: print("Number of CPU core %d" % len(client.ids())) self.tasks = [([lb_view.apply(evaluate, estimator, dataset_filename, params) for dataset_filename in dataset_filenames], params) for params in parameter_iterable] if self.sync: self.wait() self.set_grid_scores() self.set_best_score_params() if self.refit: self.set_best_estimator(estimator) return self