Я выполняю относительно большую работу, которая включает в себя выполнение рандомизированного поиска сетки на наборе данных, который (с небольшим n_iter_search) уже занимает много времени.Как я могу получить рандомизированный поиск сетки, чтобы быть более подробным? (кажется, остановлен, но не может диагностировать)
Я запускаю его на 64-ядерном компьютере, и в течение примерно 2 часов он поддерживал 2000 потоков, работающих над первым сгибом. Затем он прекратил полностью сообщать об этом. Был последний отчёт: [Parallel(n_jobs=-1)]: Done 4 out of 60 | elapsed: 84.7min remaining: 1185.8min
Я заметил на htop, что почти все ядра находятся на 0%, чего не было бы при тренировке случайных лесов. Никакой обратной связи или ошибок из программы, если бы не для htop, я бы предположил, что это еще тренировка. Это произошло раньше, так что это повторяющаяся проблема. Машина отлично реагирует, и процесс кажется живым.
У меня уже есть подробные = 10. Любые мысли о том, как я могу диагностировать, что происходит внутри RandomizedSearchCV?
поиска сетки я делаю:
гк = RandomForestClassifier (n_jobs = -1)
param_grid = { 'n_estimators': sp_randint (100, 5000), 'max_features' : [ 'авто', Отсутствует], 'min_samples_split': sp_randint (2, 6) }
n_iter_search = 20
CV_rfc = RandomizedSearchCV (оценка = гк, param_distributions = param_grid, n_iter = n_iter_search, многословным = 10, n_jobs = -1)
Не совсем ответ на ваш вопрос, но вы, вероятно, не должны искать сетку n_estimators: больше всегда лучше. Поэтому, если 100 оценок являются приемлемым для вас значением, я предлагаю придерживаться его для процесса поиска. В противном случае сэмплированные параметры с более высокими n_estimators получат несправедливое преимущество. – ldirer
Очень справедливо, я должен был использовать для этого кривые обучения. Можете (любопытно) решить проблему, если основной проблемой будет часть ядер, занимающих слишком много памяти. –