[Python] How to apply featuretools to output of featuretools?

Discussão em 'Python' iniciado por Stack, Março 31, 2025.

  1. Stack

    Stack Membro Participativo

    I want to create complex features like [(a-b)/c or (a-b)/a]
    This can be achieved by running feature tools multiple times so that first one creates features like a-b or a+b or a/b and then next run would create more complex features. As I try to do this using the following code samples:

    import featuretools as ft

    def multi_level_feature_creation(X, trans_primitives_per_level):
    feature_matrix = X


    for i,trans_primitives in enumerate(trans_primitives_per_level):
    print("Level: ", i)
    print("Columns: ", feature_matrix.columns)

    es = ft.EntitySet(id = 'dataset')

    dataframe_name = "data" + str(i)

    es = es.add_dataframe(
    dataframe_name=dataframe_name,
    dataframe=feature_matrix,
    index="index" + str(i)
    )

    feature_matrix, feature_defs = ft.dfs(entityset = es, target_dataframe_name = dataframe_name,
    trans_primitives = trans_primitives)


    return feature_matrix, feature_defs





    X = df.drop(["target"], axis=1)
    y = df["target"]


    features_per_level = [
    ['add_numeric', 'multiply_numeric', 'subtract_numeric', 'divide_numeric', 'multiply_numeric_scalar'],
    ['add_numeric', 'multiply_numeric', 'subtract_numeric', 'divide_numeric', 'multiply_numeric_scalar'],
    # ['add_numeric', 'multiply_numeric', 'subtract_numeric', 'divide_numeric', 'multiply_numeric_scalar']


    ]



    feature_matrix, feature_defs = multi_level_feature_creation(X, features_per_level)

    print(type(feature_matrix))
    feature_matrix.head()


    When I run it with single level it works fine. The issue occurs when running on more than one levels:

    ValueError: Cannot add a Woodwork DataFrame to EntitySet without a name


    How to handle that?

    Continue reading...

Compartilhe esta Página