2016-10-11 7 views
0

Модель LogisticRegression от Sklearn отказывается работать параллельно. Я установил n_jobs = -1, а также попытался n_jobs = 4. Не повезло - занято только одно ядро. Я запускаю другие модели sklearn параллельно, например, RandomForestClassifier и XGBoostClassifier.Как включить многоядерную обработку с помощью sklearn LogisticRegression?

Я запускаю Python 2.7.12 с sklearn 0.18 на Ubuntu 14.04.

Другие люди задали один и тот же вопрос (например, here), до сих пор не получая никаких многообещающих ответов. Я надеюсь, что моя удача будет лучше.

+0

что вы пытаетесь запустить? AFAIK 'LogisticRegression' не поддерживает параллелизм – maxymoo

+0

Существует много возможных причин. Но, к счастью, это не так важно. Во всех разумных ml-задачах вы будете использовать перекрестную проверку, а sklearns [LogisticRegressionCV] (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegressionCV.html) легко параллельны. – sascha

+0

@sascha - это большой вызов, часто один разделенный по времени раздробление более уместен, чем перекрестная проверка n-кратной, а в производственных приложениях вам просто нужно как можно быстрее обучить модель. – maxymoo

ответ

2

Из DOCO для LogisticRegresssion это выглядит как параметр n_jobs используется только для отдельной перекрестной проверки складок (в отличие от случая для RandomForestClassifier, где отдельные деревья вычисляются параллельно).

n_jobs: Int, по умолчанию: 1

Количество ядер процессора, используемых во время цикла перекрестной проверки. Если задано значение -1, используются все ядра.

+0

Спасибо, Максиму. И Саша тоже. Я не понял, что параметр n_jobs был ограничен перекрестной проверкой (и, предположительно, сетчатым поиском). Я занимался разведкой и не интересовался ни тем, ни другим. Я надеялся только ускорить процесс обучения для одной модели. Ну что ж! –