Оптимизация гиперпараметров классификатора Склеарн МЛП (RandomizedSearchCV) - PullRequest
0 голосов
/ 26 августа 2018

У меня настроены следующие параметры:

parameter_space = {
    'hidden_layer_sizes': [(sp_randint(100,600),sp_randint(100,600),), (sp_randint(100,600),)],
    'activation': ['tanh', 'relu', 'logistic'],
    'solver': ['sgd', 'adam', 'lbfgs'],
    'alpha': stats.uniform(0.0001, 0.9),
    'learning_rate': ['constant','adaptive']}

Все параметры, кроме hidden_layer_sizes, работают должным образом.Однако подгонка этой модели RandomizedSearchCV и отображение ее подробного текста показывает, что она обрабатывает hidden_layer_sizes как:

hidden_layer_sizes=(<scipy.stats._distn_infrastructure.rv_frozen object и продолжает выбрасывать: TypeError: '<=' not supported between instances of 'rv_frozen' and 'int'

Этот результат получается вместо ожидаемого1 или 2-слойная MLP со скрытыми слоями нейронов от 100 до 600. Любые идеи / другие связанные советы?

1 Ответ

0 голосов
/ 26 августа 2018

sp_randint возвращает экземпляр объекта rv_discrete class / a randint, чтобы генерировать случайные числа, правильный синтаксис должен быть sp_randint.rvs(low, high, size).Чтобы это работало, вам нужно определить parameter_space как показано ниже:

parameter_space = { 'hidden_layer_sizes': [(sp_randint.rvs(100,600,1),sp_randint.rvs(100,600,1),), (sp_randint.rvs(100,600,1),)], 'activation': ['tanh', 'relu', 'logistic'], 'solver': ['sgd', 'adam', 'lbfgs'], 'alpha': uniform(0.0001, 0.9), 'learning_rate': ['constant','adaptive']}

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