深度特征合成
深度特征合成(Deep Feature Synthesis, DFS)是一种用于对关系和时间数据执行特征工程的自动化方法。
输入数据
DFS需要结构化的数据集才能执行特征工程。以下演示使用的是模拟客户交易数据集。
运行DFS
通常,没有自动化特征工程的情况下,数据科学家会编写代码以汇总客户的数据,并应用不同的统计功能,从而产生量化客户行为的功能。在此示例中,专家可能对一下特征感兴趣:sessions的总数/customer注册的月份。
将target_entity指定为customer并且将“count”和“month”指定为原语primitives时,DFS可以生成这些功能。
上例中,“count”是一个聚合原语(aggregation primitive),因为它基于与一个customer相关的许多sessions来计算单个值。“month”是一个转换原语(transform primitive),因为它将一个customer的一个值转换为另一个。
创建“深度特征”
DFS的名称源于该算法能够堆叠原语以生成更复杂特征的能力。每次堆叠原语时,都会增加特征的“深度”。max_depth参数控制DFS返回功能的最大深度。
选择其中一个深度为2的生成特征了解一下:
该特征为每一个customer:(1)计算每个session的所有交易金额,得到每个session的总金额;(2)然后将均值应用于多个sessions的总金额,以确定每个session花费的平均金额。
举例:为每个customer计算他们开始session时 最常见的时间
改变目标实体
DFE功能强大,可以为数据集中任何实体创建特征矩阵。将目标实体切换为session,那么可以为每个session综合功能。
上例中,DFS也可以对父实体构建深度特征。比如:计算session的customer的平均交易额。
参考官方链接:Deep Feature Synthesis