def METHOD_NAME(data, shuffle, cats=[], seed=None):
    # Gather real features
    train_features = [f for f in data if f not in [target] + cols2ignore]
    # Shuffle target if required
    y = data[target].copy()
    if shuffle:
        y = data[target].copy().sample(frac=1.0, random_state=seed + 4)
    from h2oaicore.lightgbm_dynamic import import_lightgbm
    lgbm = import_lightgbm()
    import lightgbm as lgbm
    if is_regression:
        model = lgbm.LGBMRegressor(
            random_state=seed, importance_type=importance, **lgbm_params
        )
    else:
        model = lgbm.LGBMClassifier(
            random_state=seed, importance_type=importance, **lgbm_params
        )
        y = LabelEncoder().fit_transform(y)
    # Fit LightGBM in RF mode, yes it's quicker than sklearn RandomForest
    model.fit(data[train_features], y, categorical_feature=cats)
    # Get feature importances
    imp_df = pd.DataFrame()
    imp_df["feature"] = list(train_features)
    imp_df["importance"] = model.feature_importances_
    return imp_df