GridSearchCV очень медленно оценивает мою модель - PullRequest
0 голосов
/ 29 февраля 2020

Я использую GridSearchCV для классификатора MLP, это мой код ...

normalized_features.shape # (50000,784)
len(labels)               #  50000
X_train, X_test, Y_train, Y_test = train_test_split(normalized_features, labels, test_size=0.2)
mlp = MLPClassifier(max_iter=100)
parameter_space = {
    'hidden_layer_sizes': [(50,50,50), (50,100,50), (100,)],
    'activation': ['tanh', 'relu'],
    'solver': ['sgd', 'adam'],
    'alpha': [0.0001, 0.05],
    'learning_rate': ['constant','adaptive'],
}

Это этап, на котором меня поразили. два часа и до сих пор продолжает загружаться и выдает предупреждения

clf = GridSearchCV(mlp, parameter_space, n_jobs=-1, cv=10)
clf.fit(X_train, Y_train)

Предупреждения:

/ usr / local / lib / python3 .6 / dist-packages / joblib / externals / loky / process_executor.py: 706: Предупреждение пользователя: Рабочий остановился, когда исполнителю были переданы некоторые задания. Это может быть вызвано слишком коротким рабочим таймаутом или утечкой памяти. "Тайм-аут или утечка памяти.", UserWarning

Может кто-нибудь, пожалуйста, помогите мне с этим и дайте мне знать, где я go не так! Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 29 февраля 2020

Как упомянул @mujjiga, Gridsearch будет пытаться 72 различную комбинацию параметров для каждого фолда, и если у вас 10 фолд, общее количество моделей, которые будут обучаться, составляет 720.

Возможно, вы Вы хотите использовать RandomizedSearch, который даст вам аналогичный результат с методом GridSearch с меньшим количеством эксперимента. Таким образом, вы можете сократить время обучения.

Вы можете найти randomizedsearch реализацию в scikit-learn .

Также вы можете прочитать сравнение между gridsearch и randomizedsearch по этой ссылке с более подробной информацией.

0 голосов
/ 29 февраля 2020

Вы тренируетесь (обучаете и проверяете) на 50000 выборках 784 функций в пространстве параметров 3 x 2 x 2 x 2 x 3 = 72 с CV 10, что означает, что вы тренируетесь 10 модель каждый 72 раз , Запустите его один раз с одним набором параметров, и вы сможете приблизительно экстраполировать, сколько времени потребуется для вашей настройки. Это займет время наверняка.

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