Какова сложность обучения Sklearn GridSearch? - PullRequest
0 голосов
/ 28 сентября 2018
gs_clf = GridSearchCV(SVC(probability=False, class_weight='balanced', max_iter=100, random_state=2018, tol=1e-10),
                          param_grid={'C': [2, 5, 10] , 'kernel': 'linear'},
                          n_jobs=1,
                          refit=False,
                          cv=2,
                          scoring='f1_weighted',
                          verbose=1)
gs_clf.fit(X, y)

Так я использовал Gridsearch с SVC для подгонки данных.По сути, я настраиваю количество строк точек данных и количество меток на случайные обучающие данные и записываю потребление времени.Теоретически, кажется, SVC (не linearSVC) с linear ядром использует мультиклассовую реализацию OVO, а сложность вычислений составляет O (#samples * #class * iter).

Вот мои два вопроса.наткнулся:

  1. Кажется, Gridsearch проводит внутреннюю оптимизацию для классификации нескольких классов.Время обучения увеличивается линейно до log(#label) (примерно).В отличие от одиночной тренировки SVC, время увеличивается линейно до #label.Что Gridsearch делает именно под капотом?

Training Complexity against numbers of labels (Rows are fixed)

Время обучения линейно увеличивается как функция max_iter, когда количество меток мало, например, #label=2.Но это не тот случай, когда #label большой.Когда #label=40, time(max_iter=200) не так сильно отличается от time(max_iter=400).Это происходит не только в gridsearch, но и в SVC.Я установил tol очень маленьким, надеясь, что подгонка всегда достигает максимума итераций, но, похоже, это не работаетКакой механизм стоит за этим?

Я использую sklearn == 0.18.1.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...