RandomSearchCV очень медленный - устранение проблем с улучшением производительности - PullRequest
1 голос
/ 21 июня 2019

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

Кто-нибудь мог бы предложить улучшение скорости / производительности, которое я мог бы сделать?

Заранее спасибо!

forest_start_time = time.time()

model = RandomForestClassifier()
param_grid = {
    'bootstrap': [True, False],
    'max_depth': [80, 90, 100, 110],
    'max_features': [2, 3],
    'min_samples_leaf': [3, 4, 5],
    'min_samples_split': [8, 10, 12],
    'n_estimators': [200, 300, 500, 1000]
}

bestforest = RandomizedSearchCV(estimator = model, 
                                param_distributions = param_grid, 
                                cv = 3, n_iter = 10, 
                                n_jobs = available_processor_count)

bestforest.fit(train_features, train_labels.ravel())
forest_score = bestforest.score(test_features, test_labels.ravel())
print(forest_score)
forest_end_time = time.time()
forest_duration = forest_start_time-forest_end_time

1 Ответ

1 голос
/ 22 июня 2019

Единственный способ ускорить это - это 1) уменьшить количество функций и / или использовать больше ядер ЦП n_jobs = -1:

bestforest = RandomizedSearchCV(estimator = model, 
                                param_distributions = param_grid, 
                                cv = 3, n_iter = 10, 
                                n_jobs = -1)
...