Search code examples
pythongrid-search

Grid search error


I've been trying to perform a grid search, but something seems to be off. My code is:

grid_search_0 = GridSearchCV(estimator=Pipeline([('vectorizer', CountVectorizer()), ('tfidf', TfidfTransformer()), ('clf', LinearSVC())]),
             param_grid={'C': 3**np.arange(-3, 3, dtype='float'),
                         'gamma': 3**np.arange(-6, 0, dtype='float'), },
             cv=10,
             scoring=make_scorer(roc_auc_score, needs_threshold=True),
             verbose=1,
             n_jobs=-1,)

and I get the error

ImportError: [joblib] Attempting to do parallel computing without protecting your import on a system that does not support forking. To use parallel-computing in a script, you must protect your main loop using "if __name__ == '__main__'". Please see the joblib documentation on Parallel for more information

Has anyone encountered and solved this before? What am I doing wrong?


Solution

  • This is what the error message suggests doing, does this work for you?

    if __name__ == '__main__':
    
        grid_search_0 = GridSearchCV(estimator=Pipeline([('vectorizer', CountVectorizer()), ('tfidf', TfidfTransformer()), ('clf', LinearSVC())]),
                 param_grid={'C': 3**np.arange(-3, 3, dtype='float'),
                             'gamma': 3**np.arange(-6, 0, dtype='float'), },
                 cv=10,
                 scoring=make_scorer(roc_auc_score, needs_threshold=True),
                 verbose=1,
                 n_jobs=-1)
    

    for more on why this is important, see this Stack Overflow question/answer