8000 JoblibException thrown when passing "fit_params={'sample_weights': weights}" to RandomizedSearchCV with RandomForestClassifier · Issue #8062 · scikit-learn/scikit-learn · GitHub
[go: up one dir, main page]

Skip to content
JoblibException thrown when passing "fit_params={'sample_weights': weights}" to RandomizedSearchCV with RandomForestClassifier #8062
Closed
@ianlcassidy

Description

@ianlcassidy

Description

JoblibException thrown when passing fit_params={'sample_weights': weights} to RandomizedSearchCV with RandomForestClassifier as the base classifier. This error does not occur when ExtraTreesClassifier is the base classifier.

Steps/Code to Reproduce

def tune_rf(X_train, Y_train, cv, n_iter=25,
            scoring='accuracy', weights=None, n_jobs=-1):
    # instantiate classifier
    clf = RandomForestClassifier(n_jobs=n_jobs, random_state=42)

    # specify parameters and distributions to sample from
    param_dist = {'n_estimators': randint(25, 1000),
                  'min_samples_split': randint(2, 10),
                  'min_samples_leaf': randint(1, 10),
                  'max_depth': randint(1, 10),
                  'criterion': ['entropy', 'gini'],
                  'max_features': ['sqrt', 'log2']}

    # run randomized search
    if weights is None:
        random_search = RandomizedSearchCV(clf,
                                           param_distributions=param_dist,
                                           n_iter=n_iter,
                                           scoring=scoring,
                                           n_jobs=n_jobs,
                                           cv=cv)
    else:
        random_search = RandomizedSearchCV(clf,
                                           param_distributions=param_dist,
                                           n_iter=n_iter,
                                           scoring=scoring,
                                           n_jobs=n_jobs,
                                           cv=cv,
                                           fit_params={'sample_weight': weights})
    random_search.fit(X_train, Y_train)
    return random_search

Expected Results

No error is thrown.

Actual Results

---------------------------------------------------------------------------
JoblibException                           Traceback (most recent call last)
<ipython-input-10-020f007024f9> in <module>()
      2 # random_search_rf = tune_rf(X_train, Y_train, cv, n_iter=n_iter_search, scoring=scoring)
      3 random_search_rf = tune_rf(X_train, Y_train, cv, n_iter=n_iter_search, n_jobs=-1,
----> 4                            scoring=scoring, weights=train_weights)
      5 print('RandomizedSearchCV took %.2f seconds for %d candidates'
      6       ' parameter settings.' % ((time() - start), n_iter_search))

/Users/icassidy/Desktop/mackbet/model/helper_functions.py in tune_rf(X_train, Y_train, cv, n_iter, scoring, weights, n_jobs)
    186                                            cv=cv,
    187                                            fit_params={'sample_weight': weights})
--> 188     random_search.fit(X_train, Y_train)
    189     return random_search
    190 

/Users/icassidy/Documents/Development/venv/lib/python2.7/site-packages/sklearn/model_selection/_search.pyc in fit(self, X, y, groups)
   1183                                           self.n_iter,
   1184                                           random_state=self.random_state)
-> 1185         return self._fit(X, y, groups, sampled_params)

/Users/icassidy/Documents/Development/venv/lib/python2.7/site-packages/sklearn/model_selection/_search.pyc in _fit(self, X, y, groups, parameter_iterable)
    560                                   return_times=True, return_parameters=True,
    561                                   error_score=self.error_score)
--> 562           for parameters in parameter_iterable
    563           for train, test in cv.split(X, y, groups))
    564 

/Users/icassidy/Documents/Development/venv/lib/python2.7/site-packages/sklearn/externals/joblib/parallel.pyc in __call__(self, iterable)
    766                 # consumption.
    767                 self._iterating = False
--> 768             self.retrieve()
    769             # Make sure that we get a last message telling us we are done
    770             elapsed_time = time.time() - self._start_time

/Users/icassidy/Documents/Development/venv/lib/python2.7/site-packages/sklearn/externals/joblib/parallel.pyc in retrieve(self)
    717                     ensure_ready = self._managed_backend
    718                     backend.abort_everything(ensure_ready=ensure_ready)
--> 719                 raise exception
    720 
    721     def __call__(self, iterable):

JoblibException: JoblibException
___________________________________________________________________________
Multiprocessing exception:
...........................................................................
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py in _run_module_as_main(mod_name='ipykernel.__main__', alter_argv=1)
    157     pkg_name = mod_name.rpartition('.')[0]
    158     main_globals = sys.modules["__main__"].__dict__
    159     if alter_argv:
    160         sys.argv[0] = fname
    161     return _run_code(code, main_globals, None,
--> 162                      "__main__", fname, loader, pkg_name)
        fname = '/Users/icassidy/Documents/Development/venv/lib/python2.7/site-packages/ipykernel/__main__.py'
        loader = <pkgutil.ImpLoader instance>
        pkg_name = 'ipykernel'

...there's a lot more stuff printed after this

Versions

Darwin-15.6.0-x86_64-i386-64bit
('Python', '2.7.10 (default, Oct 23 2015, 19:19:21) \n[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)]')
('NumPy', '1.11.2')
('SciPy', '0.18.1')
('Scikit-Learn', '0.18')

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugEasyWell-defined and straightforward way to resolve

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0