2017-02-20 3 views
0

Ich mache eine SVR und SVC-Optimierungen durch GridSearchCV mit Parellierung n_jobs = -1, die in meinem Fall 8 ist, ist meine Frage, warum die ersten Passungen sehr schnell laufen im Vergleich zu den letzten passt? Wie auf dem Foto 10212 dauerte die Anpassung 23,7 Sekunden, aber die volle Anzahl der Anpassungen 106764 benötigte 20,7 Minuten, was nur 4,2 Minuten betragen sollte, wenn eine lineare Extrapolation angenommen wird.GridSeachCV Optimierung Verlangsamung

hier ist ein Beispiel für den Code:

opt = GridSearchCV(SVR(tol=tol),param_grid=param_grid,scoring=scoring,n_jobs=n_jobs,cv=cv,verbose=verbose) 
opt.fit(allr_sets_nor[:,:2],allr_sets_nor[:,2]) 

und dies ist der Bildschirm-Log:

enter image description here

+1

Bitte senden Sie einen Code, um das Problem zu duplizieren –

Antwort

1

Unterstützung-Vector-Maschine Lernen auf den gegebenen Parametern abhängig ist.

Parameter wie C haben Konsequenzen auf die Anzahl der Stützvektoren und daher werden Instanzen mit vielen Stützvektoren (indirekt von C gesteuert) viel langsamer trainiert.

Dies ist eine grundlegende Einschränkung von GridSearches.

(Eine andere etwas vollständigere nehmen auf diesem here by user lejlot)

Die Lernalgorithmen sind auch auf Heuristiken basieren, die einige zusätzliche kaum vorhersagbare Faktor diesem hinzufügen.

+0

Okey, Danke. Ich dachte, es könnte ein Problem mit der Parallelisierung sein. –

+0

@AhmadSultan Diese Art der Parallelisierung ist viel einfacher als andere granulare Ansätze. Natürlich kann etwas schiefgehen, aber oft ist eine lineare Beschleunigung kein Problem. – sascha

Verwandte Themen