featuretools,可自动构造机器学习特征的Python库
向AI转型的程序员都关注了这个号????????????
机器学习AI算法工程 公众号:datayx
目前,很多机器学习项目的模型选择开始转向自动化,而特征工程仍然主要以人工为主。这个过程的重要性可能比模型选择更重要,人工得到的特征总带有一定的局限性。在本文中作者将为我们介绍如何使用 Feature Tools Python 库实现特征工程自动化,项目已开源。
项目下载地址
关注微信公众号 datayx 然后回复 特征工程 即可获取。
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构建特征:
阅读过本文的人还看了以下:
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
长按图片,识别二维码,点关注
AI项目体验
https://loveai.tech