Настройка гиперпараметров случайного леса scikit-learn с использованием GridSearchCV

Я пытаюсь использовать случайный лес для своей проблемы (ниже приведен пример кода для наборов данных Boston, а не для моих данных). Я планирую использовать GridSearchCV для настройки гиперпараметров, но каков должен быть диапазон значений для разных параметров? Как я узнаю, что выбранный мной диапазон правильный?

Я читал об этом в Интернете, и кто-то предложил попробовать "увеличить" оптимальное значение во втором поиске по сетке (например, если было 10, попробуйте [5, 20, 50]).

Это правильный подход? Должен ли я использовать этот подход для ВСЕХ параметров, необходимых для случайного леса? Такой подход может упустить «хорошую» комбинацию, не так ли?

import numpy as np
from sklearn.grid_search import GridSearchCV
from sklearn.datasets import load_digits
from sklearn.ensemble import RandomForestRegressor
digits = load_boston()
X, y = dataset.data, dataset.target
model = RandomForestRegressor(random_state=30)
param_grid = { "n_estimators"      : [250, 300],
           "criterion"         : ["gini", "entropy"],
           "max_features"      : [3, 5],
           "max_depth"         : [10, 20],
           "min_samples_split" : [2, 4] ,
           "bootstrap": [True, False]}
grid_search = GridSearchCV(clf, param_grid, n_jobs=-1, cv=2)
grid_search.fit(X, y)
print grid_search.best_params_

person Muhammad    schedule 02.02.2016    source источник


Ответы (1)


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

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

Я предлагаю вам начать с этого, потому что он реализует разные схемы для получения лучших параметров:

Случайный поиск

Дерево оценщиков Парзена (TPE)

Отжиг

Дерево

Гауссовское дерево процессов

РЕДАКТИРОВАТЬ:

В случае регрессии вам все равно нужно утверждать, верны ли ваши прогнозы на тестовом наборе.

В любом случае, подход от грубого к точному по-прежнему актуален и применим для любого оценщика.

person Kirell    schedule 02.02.2016
comment
Это не поддерживает регрессию и многие алгоритмы, не так ли? На самом деле моя проблема - это регрессия, а не классификация. Я отредактировал свой вопрос. - person Muhammad; 03.02.2016
comment
Я отредактировал свой вопрос, извините за недоразумение. - person Muhammad; 03.02.2016