感慨于FeatureTools的强大功能,由于目前FeatureTools文档较少,在此对FeatureTools的原理进行梳理。
首先理解两个重要的概念:实体和实体集
对于机器学习任务的建模过程(包括一些线上比赛或者工业领域的推荐系统等等),通常是将多张表拼凑成一张表,然后进行数据清洗,特征提取等等,而FeatureTools将实体作为对象,而实体就类似于表。实体集就可以理解为一组实体,以及实体之间存在的关系。例如:对于预测用户的点击行为,提供的数据集包括用户的基本信息表,用户的订单行为表,产品信息表等等。
FeatureTools采用Deep Feature Synthesis算法,其主要合成三种新的特征:Entity Feature,Direct Feature,Relational Feature
- Entity Feature表示基于实体自身衍生出来的新特征(比如用户基本信息表,利用用户的体重和身高衍生出体重指数的特征)
- Direct Feature和Relational Feature都是基于实体之间的关系衍生出新特征
为了说明如何衍生Direct Feature和Relational Feature,论文中给出了forward和backward的概念(主要用于描述relationship)。
forward:表示实体E1中的实例关于实体E2中的实例存在唯一的对应关系,即多对一的关系和一对一的关系;如一笔订单只属于一个用户或者多笔订单属于一个用户
backward:表示实体E1中的实例与实体E2中的多个实例(论文中给出的是“