Strategy 2: Random Search
Idea: Don't try everything - randomly sample combinations
from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint
param_dist = {
'n_estimators': randint(50, 500),
'max_depth': randint(3, 30),
'min_samples_split': randint(2, 20)
}
random_search = RandomizedSearchCV(
RandomForestClassifier(),
param_dist,
n_iter=20,
cv=5
)
random_search.fit(X, y)
Surprisingly effective! Often finds good solutions faster than grid search.