J'optimise certains paramètres pour un SVC dans sklearn, et le plus gros problème ici est d'attendre 30 minutes avant d'essayer d'autres plages de paramètres. Pire encore, j'aimerais essayer plus de valeurs pour c et gamma dans la même gamme (donc je peux créer un tracé de surface plus lisse) mais je sais que ça prendra juste plus de temps ... Quand je l'ai couru aujourd'hui J'ai changé le cache_size de 200 à 600 (sans vraiment savoir ce qu'il fait) pour voir si cela a fait une différence. Le temps a diminué d'environ une minute.Existe-t-il un moyen plus rapide d'exécuter GridsearchCV
Est-ce que c'est quelque chose que je peux vous aider? Ou est-ce que je vais devoir faire face à très longtemps?
clf = svm.SVC(kernel="rbf" , probability = True, cache_size = 600)
gamma_range = [1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1e0,1e1]
c_range = [1e-3,1e-2,1e-1,1e0,1e1,1e2,1e3,1e4,1e5]
param_grid = dict(gamma = gamma_range, C = c_range)
grid = GridSearchCV(clf, param_grid, cv= 10, scoring="accuracy")
%time grid.fit(X_norm, y)
retours:
Wall time: 32min 59s
GridSearchCV(cv=10, error_score='raise',
estimator=SVC(C=1.0, cache_size=600, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
kernel='rbf', max_iter=-1, probability=True, random_state=None,
shrinking=True, tol=0.001, verbose=False),
fit_params={}, iid=True, loss_func=None, n_jobs=1,
param_grid={'C': [0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0], 'gamma': [1e-07, 1e-06, 1e-05, 0.0001, 0.001, 0.01, 0.1, 1.0, 10.0]},
pre_dispatch='2*n_jobs', refit=True, score_func=None,
scoring='accuracy', verbose=0)
Réglage njobs -1 va créer 1 emploi par cœur automatiquement. Selon votre modèle, la mémoire peut alors devenir un problème, mais généralement pas! –