def METHOD_NAME(  # type: ignore
    scenario: Scenario,
    *,
    n_trees: int = 10,
    ratio_features: float = 5.0 / 6.0,
    min_samples_split: int = 3,
    min_samples_leaf: int = 3,
    max_depth: int = 20,
    bootstrapping: bool = True,
    pca_components: int = 4,
) -> RandomForest:
    """Returns a random forest as surrogate model.
    Parameters
    ----------
    n_trees : int, defaults to 10
        The number of trees in the random forest.
    ratio_features : float, defaults to 5.0 / 6.0
        The ratio of features that are considered for splitting.
    min_samples_split : int, defaults to 3
        The minimum number of data points to perform a split.
    min_samples_leaf : int, defaults to 3
        The minimum number of data points in a leaf.
    max_depth : int, defaults to 20
        The maximum depth of a single tree.
    bootstrapping : bool, defaults to True
        Enables bootstrapping.
    pca_components : float, defaults to 4
        Number of components to keep when using PCA to reduce dimensionality of instance features.
    """
    return RandomForest(
        configspace=scenario.configspace,
        n_trees=n_trees,
        ratio_features=ratio_features,
        min_samples_split=min_samples_split,
        min_samples_leaf=min_samples_leaf,
        max_depth=max_depth,
        bootstrapping=bootstrapping,
        log_y=False,
        instance_features=scenario.instance_features,
        pca_components=pca_components,
        seed=scenario.seed,
    )