AI项目体验地址 https://loveai.tech
机器学习模型只能从我们给定的数据中学习,所以构造一个和任务相关的特征是至关重要的。
然而,人工特性工程是一项冗长乏味的任务,并且受到人类想象力的限制——我们可以思考创建的特性只有这么多,而且随着时间的推移,创建新特性需要大量的时间。理想情况下,应该有一个客观的方法来创建一系列不同的候选新特性,然后我们可以将这些特性用于机器学习任务。这个过程的目的不是替换数据科学家,而是使她的工作更容易,并允许她使用自动工作流补充领域知识。
下面是使用深度特征合成(DFS)执行自动化特征工程的示例。在本例中,我们将DFS应用于一个由多个表组成的带有时间戳的客户交易数据集。
本示例使用的数据集包含三张表。在Featuretools中将表称之为entity。本示例包含的三个entity如下所示:
首先,我们用数据集中的所有实体指定一个字典。
其次,我们指定实体的关联方式。当两个实体有一对多关系时,即为父子实体关系。父实体的一条记录对应子实体中的多条记录。例如Customer Entity(customer_id zip_code join_date date_of_birth)与session Entity(session_id customer_id device session_start),一个客户可以有多条会话记录。定义父子关系的语句如下所示:
DFS的最小输入包括一组entity,一组关系以及要计算特征的target_entity。DFS的输出是一个特征矩阵和相应的特征定义列表。
从上述结果可以看出,我们得到了描述客户行为的几十个特征。
DFS如此强大的原因之一是它可以为数据中的任何实体创建一个特征矩阵。例如,我们同样可以为session构建特征: