Ich laufe auf das Problem, dass die Hyperparameter meines svm.SVC()
zu breit sind, so dass die GridSearchCV()
nie abgeschlossen wird! Eine Idee ist es stattdessen RandomizedSearchCV()
zu verwenden. Aber wiederum ist mein Datensatz relativ groß, so dass 500 Iterationen etwa 1 Stunde dauern!Was ist ein guter Wertebereich für die svm.SVC() - Hyperparameter, die über GridSearchCV() erkundet werden sollen?
Meine Frage ist, was ist eine gute Einrichtung (in Bezug auf den Bereich der Werte für jeden Hyperparameter) in GridSearchCV (oder RandomizedSearchCV), um die Verschwendung von Ressourcen zu stoppen?
Mit anderen Worten, wie zu entscheiden, ob z. C
Werte über 100 Sinn machen und/oder Schritt 1 ist weder groß noch klein? Jede Hilfe wird sehr geschätzt. Dies ist das Set-up ist derzeit mit:
parameters = {
'C': np.arange(1, 100+1, 1).tolist(),
'kernel': ['linear', 'rbf'], # precomputed,'poly', 'sigmoid'
'degree': np.arange(0, 100+0, 1).tolist(),
'gamma': np.arange(0.0, 10.0+0.0, 0.1).tolist(),
'coef0': np.arange(0.0, 10.0+0.0, 0.1).tolist(),
'shrinking': [True],
'probability': [False],
'tol': np.arange(0.001, 0.01+0.001, 0.001).tolist(),
'cache_size': [2000],
'class_weight': [None],
'verbose': [False],
'max_iter': [-1],
'random_state': [None],
}
model = grid_search.RandomizedSearchCV(n_iter = 500,
estimator = svm.SVC(),
param_distributions = parameters,
n_jobs = 4,
iid = True,
refit = True,
cv = 5,
verbose = 1,
pre_dispatch = '2*n_jobs'
) # scoring = 'accuracy'
model.fit(train_X, train_Y)
print(model.best_estimator_)
print(model.best_score_)
print(model.best_params_)
schlagen Sie hier vor, dass es unklug ist, kontinuierliche und diskrete Parameter in einer zufälligen Suche zu mischen? Warum ist das so und wie suchen Sie normalerweise nach Parametern, wenn sie für einen einzelnen Algorithmus gemischt sind? –
Das war nicht was ich meinte. Ich rate davon ab, Listen für Parameter zu verwenden, die tatsächlich fortlaufend sind, siehe das Papier: https://encrypted.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CB4QFjAA&url=http% 3A% 2F% 2Fwww.jmlr.org% 2Fpapers% 2FVolume13% 2Fbergstra12a% 2Fbergstra12a.pdf & ei = -bpkVf839bWxBJ_Lg4gJ & usg = AFQjCNFKAQbDd5l0Q7WH36ejee4ahKlZQg & sig2 = ftE5PnFHyIvTKvIGGTS4xw & bvm = bv.93990622, d.cWc Mischen kontinuierlich und diskret ist in Ordnung. –
Sie können auch den mittleren Abschnitt meines Vortrags hier einsehen: https://www.youtube.com/watch?v=0wUF_Ov8b0A –