FeatureTools 原理整理

感慨于FeatureTools的强大功能,由于目前FeatureTools文档较少,在此对FeatureTools的原理进行梳理。

首先理解两个重要的概念:实体实体集

对于机器学习任务的建模过程(包括一些线上比赛或者工业领域的推荐系统等等),通常是将多张表拼凑成一张表,然后进行数据清洗,特征提取等等,而FeatureTools将实体作为对象,而实体就类似于表。实体集就可以理解为一组实体,以及实体之间存在的关系。例如:对于预测用户的点击行为,提供的数据集包括用户的基本信息表,用户的订单行为表,产品信息表等等。

FeatureTools采用Deep Feature Synthesis算法,其主要合成三种新的特征:Entity Feature,Direct Feature,Relational Feature

  1. Entity Feature表示基于实体自身衍生出来的新特征(比如用户基本信息表,利用用户的体重和身高衍生出体重指数的特征)
  2. Direct Feature和Relational Feature都是基于实体之间的关系衍生出新特征

为了说明如何衍生Direct Feature和Relational Feature,论文中给出了forward和backward的概念(主要用于描述relationship)。

forward:表示实体E1中的实例关于实体E2中的实例存在唯一的对应关系,即多对一的关系和一对一的关系;如一笔订单只属于一个用户或者多笔订单属于一个用户

backward:表示实体E1中的实例与实体E2中的多个实例(论文中给出的是“所有实例”,但其实不好理解“所有实例”的概念)存在对应关系;即一对多的关系;如一个用户对应多笔消费行为

(注:关于forward关系和backward关系的理解,在特征衍生时,往往会基于特征之间的领域关系去进行衍生,而Deep Feature Systhesis算法正是借助这种思想;如用户A在1月份有10笔消费,用户信息和消费信息分别在用户基本信息表和消费信息表中,而要衍生出用户A在1月份的总消费额,便需要将两张表联合起来进行特征衍生)。

在理解上述概念之后,我们分析Deep Feature Synthesis algorithm的算法过程:

目的:为实体E^{^{k}}自动生成特征

E_{_{B}}表示与E^{^{k}}具有backward关系的实体组成的实体集合;E_{_{F}}表示与E^{^{k}}具有forward关系的实体组成的实体集合;

FeatureTools 原理整理_第1张图片

上图是FeatureTools特征衍生的过程,先生成RFEAT(Realtional Feature)和DFEAT(Direct Feature),最后生成EFEAT(Entity Feature);为什么最后生成Entity Feature,因为Entity Feature是基于特征自身进行衍生。

FeatureTools 原理整理_第2张图片

上述是算法伪代码,递归迭代进行特征衍生。

 

 

你可能感兴趣的:(外文翻译)