前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >featuretools,可自动构造机器学习特征的Python库

featuretools,可自动构造机器学习特征的Python库

作者头像
机器学习AI算法工程
发布2019-10-28 17:05:45
6420
发布2019-10-28 17:05:45
举报
目前,很多机器学习项目的模型选择开始转向自动化,而特征工程仍然主要以人工为主。这个过程的重要性可能比模型选择更重要,人工得到的特征总带有一定的局限性。在本文中作者将为我们介绍如何使用 Feature Tools Python 库实现特征工程自动化,项目已开源。

AI项目体验地址 https://loveai.tech

机器学习模型只能从我们给定的数据中学习,所以构造一个和任务相关的特征是至关重要的。

然而,人工特性工程是一项冗长乏味的任务,并且受到人类想象力的限制——我们可以思考创建的特性只有这么多,而且随着时间的推移,创建新特性需要大量的时间。理想情况下,应该有一个客观的方法来创建一系列不同的候选新特性,然后我们可以将这些特性用于机器学习任务。这个过程的目的不是替换数据科学家,而是使她的工作更容易,并允许她使用自动工作流补充领域知识。

5分钟快速开始

下面是使用深度特征合成(DFS)执行自动化特征工程的示例。在本例中,我们将DFS应用于一个由多个表组成的带有时间戳的客户交易数据集。

准备数据

本示例使用的数据集包含三张表。在Featuretools中将表称之为entity。本示例包含的三个entity如下所示:

  • customers:由不同的客户记录组成,一个客户可以有多个session
  • sessions:由不同的session记录组成,一个session记录包括多个属性
  • transactions:由不同的交易记录组成,一个session可以包括多个交易事件

首先,我们用数据集中的所有实体指定一个字典。

其次,我们指定实体的关联方式。当两个实体有一对多关系时,即为父子实体关系。父实体的一条记录对应子实体中的多条记录。例如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的输出是一个特征矩阵和相应的特征定义列表。

从上述结果可以看出,我们得到了描述客户行为的几十个特征。

修改target entity

DFS如此强大的原因之一是它可以为数据中的任何实体创建一个特征矩阵。例如,我们同样可以为session构建特征:


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 5分钟快速开始
    • 准备数据
      • 运行深度特征合成
        • 修改target entity
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档