def METHOD_NAME(cls, X: DataFrame, keep: Union[str, bool] = "first"):
    X_columns = list(X.columns)
    feature_sum_map = defaultdict(list)
    for feature in X_columns:
        feature_sum_map[round(X[feature].sum(), 2)].append(feature)
    features_to_remove = []
    for key in feature_sum_map:
        if len(feature_sum_map[key]) <= 1:
            continue
        features_to_keep = set(X[feature_sum_map[key]].T.drop_duplicates(keep=keep).T.columns)
        features_to_remove += [feature for feature in feature_sum_map[key] if feature not in features_to_keep]
    return features_to_remove