from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier

# define parameter grid
param_grid = {
    'n_estimators': [100, 500],
    'max_depth': [3, 5, 7],
    'min_samples_leaf': [1, 2, 4]
}

# create Random Forest classifier
rf_clf = RandomForestClassifier()

# create GridSearchCV object
grid_search = GridSearchCV(estimator=rf_clf, param_grid=param_grid, cv=5, n_jobs=-1)

# fit GridSearchCV object to training data
grid_search.fit(X_train, y_train)

# print best hyperparameters
print("Best hyperparameters:", grid_search.best_params_)