You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取无聚合的深度特征合成输出并与原始连接数据对比?

在Featuretools中获取无聚合的多行DFS输出方案

要实现不做聚合、得到每个客户对应多行的结果,确实不能直接给agg_primitives=[]并以customers为目标——因为DFS的核心逻辑就是为每个目标实体实例生成一行特征,当目标是customers时,关联的子实体(比如订单、交易)数据必须通过聚合原语压缩到客户维度,空聚合原语自然无法生成任何特征,所以会触发报错。

不过有两种方法可以满足你的需求:

方法1:切换目标实体到子实体,关联父实体信息

把目标设为与customers关联的子实体(比如orders),并开启include_entities=True参数,这样就能得到每行对应子实体实例、同时包含所属客户信息的结果,也就是每个客户对应多行(对应他们的子实体记录数)。

示例代码:

fm, features = ft.dfs(
    entityset=es,
    target_dataframe_name="orders",  # 切换为子实体作为目标
    agg_primitives=[],
    trans_primitives=[],
    include_entities=True  # 包含关联的父实体(customers)的字段
)
fm.head()

这个结果里,每个客户会对应其所有订单的行,同时带上客户的原始属性,和你要的“处理后输出与原始连接数据对比”的需求匹配。

方法2:直接获取实体集的原始连接数据

如果只是需要和原始连接数据对比,也可以跳过DFS,直接用Featuretools实体集的merge_dataframes方法生成合并后的原始数据:

merged_raw_df = es.merge_dataframes(dataframes=["customers", "orders"])

这样得到的就是未经过DFS处理的原始连接结果,和方法1的输出对比更直观。

内容的提问来源于stack exchange,提问作者jmatsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:10:28