2016-10-11 6 views
0

Sklearns LogisticRegression-Modell verweigert die parallele Ausführung. Ich habe n_jobs = -1 gesetzt und auch n_jobs = 4 versucht. Kein Glück - nur ein Kern ist engagiert. Ich habe andere Sklearn-Modelle parallel ausgeführt, z. B. RandomForestClassifier und XGBoostClassifier.Wie aktiviert man Multicore-Verarbeitung mit sklearn LogisticRegression?

Ich benutze Python 2.7.12 mit sklearn 0.18 auf Ubuntu 14.04.

Andere Leute haben die gleiche Frage gestellt (z. B. here), bisher ohne vielversprechende Antworten zu erhalten. Ich hoffe, dass mein Glück besser wird.

+0

Was möchten Sie ausführen? AFAIK 'LogisticRegression' unterstützt keine Parallelität – maxymoo

+0

Es gibt viele mögliche Gründe. Aber zum Glück ist es nicht so wichtig. In allen normalen ml-Aufgaben würden Sie Kreuzvalidierung verwenden, und sklearns [LogisticRegressionCV] (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegressionCV.html) ist leicht parallel. – sascha

+0

@sascha, das ist ein großer Aufruf, oft ist eine einzelne zeitgetrennte Teilung geeigneter als eine n-fache Kreuzvalidierung, und in Produktionsanwendungen müssen Sie das Modell möglicherweise nur so schnell wie möglich trainieren. – maxymoo

Antwort

2

Vom doco für LogisticRegresssion es wie der n_jobs Parameter sieht nur für separate Kreuzvalidierung Falten (im Gegensatz zu dem Fall für RandomForestClassifier, wo die einzelnen Bäume parallel berechnet werden) verwendet.

n_jobs: int, default: 1

Anzahl der CPU-Kerne während der Kreuzvalidierung Schleife verwendet. Wenn ein Wert von -1 angegeben wird, werden alle Kerne verwendet.

+0

Danke, Maxymoo. Und Sascha auch. Ich hatte nicht erkannt, dass der Parameter n_jobs auf die Kreuzvalidierung (und vermutlich auch auf die Rastersuche) beschränkt war. Ich machte eine Erkundung und war an keinem dieser Dinge interessiert. Ich hatte gehofft, nur den Trainingsprozess für ein einzelnes Modell zu beschleunigen. Naja! –

Verwandte Themen