Как выбрать только действительные параметры в Scikit Learn LinearSVC для RandomizedSearchCV - PullRequest
1 голос
/ 03 ноября 2019

Я продолжаю страдать из-за сбоя моей программы из-за различных недопустимых комбинаций гиперпарамов для LinearSVC в sklearn. В документации подробно не указано, какие гиперпарамы работают вместе, а какие нет. Я выполняю произвольный поиск гиперпарамов, чтобы оптимизировать их, но функция продолжает работать с ошибками о несовместимых комбинациях.

Как бы это исправить?

    losses = ["hinge", "squared_hinge"]
    duals = [False, True]
    learning_rates = [1e-15, 1e-8, 1e-4, 1e-2, 1e-1, 1]
    penalties = ["l1", "l2"]
    max_iters = [1000, 5000, 10000, 20000, 50000, 150000]


    random_grid = {
        "C": learning_rates,
        "penalty": penalties,
        "max_iter": max_iters,
        "loss": losses,
        "dual": duals
    }

    svc = LinearSVC()

    n_iter = 50
    svc_random = RandomizedSearchCV(estimator=svc, param_distributions=random_grid, n_iter=n_iter,
                                    cv=3, verbose=0, n_jobs=-1)
    svc_random.fit(X, Y)
    best_params = svc_random.best_params_

Пример ошибок

ValueError: Unsupported set of arguments: The combination of penalty='l2' and loss='hinge' are not supported when dual=False, Parameters: penalty='l2', loss='hinge', dual=False

ValueError: Unsupported set of arguments: The combination of penalty='l1' and loss='hinge' is not supported, Parameters: penalty='l1', loss='hinge', dual=True

Если бы я реализовал это сам, я мог бы поймать исключения и продолжить. Но так как здесь я звоню RandomizedSearchCV, и внутри него ничего не получается, я ничего не могу сделать ... Причина, по которой я сам не реализую это, заключается в том, что RandomizedSearchCV хорошо распараллелено.

Какие у меня варианты?

1 Ответ

0 голосов
/ 03 ноября 2019

Я думаю, что нашел решение, установка error_score=np.NINF в аргументах RandomizedSearchCV, кажется, помогает!

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