原论文标题及链接:Deep Feature Synthesis: Towards Automating Data Science Endeavors
说明:本文只会介绍论文中博主觉得重要的部分,想要了解更多内容的,建议阅读原论文哦!
1. INTRODUCTION
数据科学包含从数据中观察洞见,总结知识,以及导出预测模型。从原始数据中总结特征很大程度上依赖人,因为这常常是需要直觉的。最近深度学习应用于图形,文本,语音领域。对于这种类型的数据,它能自动提取有效的特征。但是对于关系型和用户行为式的数据的建模,其过程依然是不断迭代的,人类直觉驱动的,并且具有挑战性的。
所以论文针对关系型或用户行为式的数据中的特征提取问题,提出了Deep Feature Synthesis
算法,它可以自动生成能够表达丰富特征空间的特征。并且开发了端到端的软件Data Science Machine
,它能够:
- 使用
Deep Feature Synthesis
算法自动地生成特征; - 自动从合成的特征中调节和提取最有效的特征;
- 提交结果到在线的数据科学竞赛;
实验表明,我们开发的工具可以在数据科学竞赛中达到人类水平。
2. DEEP FEATURE SYNTHESIS
2.1 Abstractions
Deep Feature Synthesis
是一个能够从关系型数据库自动生成特征的算法。本质上,该算法遵循数据中基本字段的关系链路,然后沿该路径依次地应用数学函数以创建最终特征。(下面我们重点看看作者是如何把具体问题一般化和抽象化的,一旦我们能够从众多现实问题中抽象出一个它们共有的特性,或者说抽象出一个具有某些特性的概念,然后着手去解决这个抽象问题,就能实现现实中这一类问题的解决。而往往具有难度的就是抽象,抽象的工具之一就是数学化的形式表达)
算法的输入是交叉相连的实体(关系表示)以及和它有关的数据表
。每个实体的每一个实例都有唯一标识。例如,一个实体可以使用相关实体的唯一标识找到与其相关的实体的实例。某个实体的实例的某个特征类型可能是:连续数值,离散类别,时间戳,文本。
实体: E 1... K E^{1...K} E1...K,每个实体表有 1... J 1...J 1...J个特征, x i , j k x_{i,j}^k xi,jk表示第 k k k个实体中的第 i i i个实例的第 j j j个特征的值。我们将定义的多种数学函数应用于两种不同的级别:实体级和关系级。
我们首先考虑的是实体特征 Entity features (efeat)
,它由实体中每个值
x
i
,
j
计
算
一
个
新
的
值
导
出
新
的
特
征
x_{i,j}计算一个新的值导出新的特征
xi,j计算一个新的值导出新的特征。这些计算函数包括将某个特征转化成另外一个特征,还包括将函数应用于一列值
x
:
,
j
x_{:,j}
x:,j和
x
i
,
j
x_{i,j}
xi,j,表示如下:
x
i
,
j
′
=
e
f
e
a
t
(
x
:
,
j
,
i
)
x_{i,j'}=efeat(x_{:,j},i)
xi,j′=efeat(x:,j,i)
其次,还有一类特征由联合分析两个相关的实体
E
l
,
E
k
E^l,E^k
El,Ek 来推导出。这两个实体以两种方式相互关联:forward
或 backward
。forward
,在
E
l
E^l
El中的实例
m
m
m与
E
k
E^k
Ek中单个的实例
i
i
i之间存在一个前向关系,
E
l
E^l
El中的每个实例都能在
E
K
E^K
EK中找到唯一一个相关的实例。 backward
,后向关系是从
E
k
E^k
Ek中的实例
i
i
i到
E
l
E^l
El中所有实例m之间的关系。(订单表和顾客表之间存在一个前向关系,即多对一;顾客表和订单表之间存在一个后向关系,即一对多)
Direct Features (dfeat)
,直接特征特征被应用在前向关系中(多对一的关系),简单地讲就是依照字典表
E
l
E^l
El,在
E
k
E^k
Ek中直接转换得到新的特征。
Relational Features (rfeat)
,关系型特征被应用在后向关系中(一对多的关系)。简单地讲就是从
E
l
E^l
El中进行groupby = col A in El
,得到
E
k
E^k
Ek中的新的一列数据(
E
k
E^k
Ek中 A 列无重复数值)。
x
i
,
j
′
k
=
r
f
e
a
t
(
x
:
,
j
∣
e
k
=
i
l
)
x_{i,j'}^k=rfeat(x_{:,j|e^k=i}^l)
xi,j′k=rfeat(x:,j∣ek=il)
2.2 Algorithm
给定实体
E
1...
K
E^{1...K}
E1...K,Deep Feature Synthesis
算法的目的就是为实体
E
k
E^k
Ek 提取生成新的rfeat
, dfeat
和efeat
特征。同时,和
E
k
E^k
Ek具有前向关系的表称为
E
F
E_F
EF(多对一,可以进行dfeat
),具有后向关系的表称为
E
B
E_B
EB(一对多,可以进行rfeat
)。
下面给出的流程图和算法伪代码描述可以很清晰地给出Deep Feature Synthesis
算法是如何合成新的特征的了,这里就不在赘述。值得注意的是,该算法是递归式地生成特征,所以算法名称中就有了Deep
这个词。
E
V
E_V
EV 记录的是已经访问过的实体集。