Как оптимизируется случайный лес
Случайный лес можно оптимизировать несколькими способами:
-
Количество деревьев (
n_estimators) – больше деревьев улучшают качество, но увеличивают время обучения. Обычно 100-500 деревьев достаточно. -
Глубина деревьев (
max_depth) – ограничение глубины предотвращает переобучение. Можно использоватьNone(без ограничений) или подбирать через кросс-валидацию.
-
Минимальное число образцов для разделения (
min_samples_split) – увеличение этого параметра уменьшает переобучение (по умолчанию 2). -
Минимальное число образцов в листе (
min_samples_leaf) – аналогично, но для листьев (по умолчанию 1). -
Число признаков для разделения (
max_features) – обычноsqrt(n_features)для классификации иn_featuresдля регрессии.
Пример подбора параметров с GridSearchCV:
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
param_grid = {
'n_estimators': [100, 200],
'max_depth': [None, 10, 20],
'min_samples_split': [2, 5]
}
rf = RandomForestClassifier()
grid_search = GridSearchCV(rf, param_grid, cv=5)
grid_search.fit(X_train, y_train)
офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру