在任何数据科学竞赛中获胜的解决方案的核心都离不开特征工程。它已成为区分解决方案与竞争对手的标准选择。然而,从给定的数据集中工程化新特征往往是一个耗时且耗能的过程。Feature Labs公司开发的Featuretools工具集在这里发挥了作用。Featuretools是一个开源框架,用于自动化特征工程。该公司通过一种称为深度特征合成(DFS)的过程开发了这个框架。根据Feature Labs的首席执行官Max Kanter的说法,DFS能够从原始的关系型和事务型数据集中创建特征,例如网站访问或购物车遗弃项目,并自动理解并将其转换为预测信号。上面的图像给出了工具工作方式的一般概念。
# 假设有一个DataFrame 'df',可以使用Featuretools来自动化特征工程
import featuretools as ft
# 初始化一个实体集
es = ft.EntitySet(id='main')
# 添加数据
es = es.add_dataframe(
dataframe_name='transactions',
dataframe=df,
index='transaction_id'
)
# 定义关系
es.normalize_entity(
base_entity_id='main',
entity_id='customers',
new_entity_id='transactions',
index='customer_id',
make_index=True
)
# 特征工程
feature_matrix, feature_defs = ft.dfs(entityset=es,
target_dataframe_name='transactions',
trans_primitives=[],
max_depth=2)