2022年Python顶级自动化特征工程框架?


2022年Python顶级自动化特征工程框架?

文章插图
作者:韩信子@ShowMeAI 机器学习实战系列:https://www.showmeai.tech/tutorials/41 本文地址:https://www.showmeai.tech/article-detail/328 声明:版权所有,转载请联系平台与作者并注明出处 收藏ShowMeAI查看更多精彩内容

2022年Python顶级自动化特征工程框架?

文章插图
特征工程(feature engineering)指的是:利用领域知识和现有数据,创造出新的特征,用于机器学习算法 。
  • 特征:数据中抽取出来的对结果预测有用的信息 。
  • 特征工程:使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程 。
【2022年Python顶级自动化特征工程框架?】在业界有一个很流行的说法:数据与特征工程决定了模型的上限 , 改进算法只不过是逼近这个上限而已 。
特征工程的目的是提高机器学习模型的整体性能 , 以及生成最适合用于机器学习的算法的输入数据集 。
关于特征工程的各种方法详解,欢迎大家阅读 ShowMeAI 整理的特征工程解读教程 。
  • 机器学习实战 | 机器学习特征工程全面解读
自动化特征工程在很多生产项目中,特征工程都是手动完成的,而且它依赖于先验领域知识、直观判断和数据操作 。整个过程是非常耗时的,并且场景或数据变换后又需要重新完成整个过程 。而『自动化特征工程』希望对数据集处理自动生成大量候选特征来帮助数据科学家和工程师们 , 可以选择这些特征中最有用的进行进一步加工和训练 。
自动化特征工程是很有意义的一项技术,它能使数据科学家将更多时间花在机器学习的其他环节上,从而提高工作效率和效果 。
2022年Python顶级自动化特征工程框架?

文章插图
在本篇内容中,ShowMeAI将总结数据科学家在 2022 年必须了解的 Python 中最流行的自动化特征工程框架 。
  • Feature Tools
  • TSFresh
  • Featurewiz
  • PyCaret
Feature Tools简介Featuretools是一个用于执行自动化特征工程的开源库 。ShowMeAI在文章 机器学习实战 | 自动化特征工程工具Featuretools应用 中也对它做了介绍 。
2022年Python顶级自动化特征工程框架?

文章插图
要了解 Featuretools,我们需要了解以下三个主要部分:
  • Entities
  • Deep Feature Synthesis (DFS)
  • Feature primitives
在 Featuretools 中 , 我们用 Entity 来囊括原本 Pandas DataFrame 的内容,而 EntitySet 由不同的 Entity 组合而成 。
Featuretools 的核心是 Deep Feature Synthesis(DFS)  , 它实际上是一种特征工程方法,它能从单个或多个 DataFrame中构建新的特征 。
DFS 通过 EntitySet 上指定的 Feature primitives 创建特征 。例如 , primitives中的mean函数将对变量在聚合时进行均值计算 。
使用示例① 数据与预处理以下示例转载自 官方快速入门 。
# 安装# pip install featuretoolsimport featuretools as ftdata = https://www.huyubaike.com/biancheng/ft.demo.load_mock_customer()# 载入数据集customers_df = data["customers"]customers_df
2022年Python顶级自动化特征工程框架?

文章插图
sessions_df = data["sessions"]sessions_df.sample(5)
2022年Python顶级自动化特征工程框架?

文章插图
transactions_df = data["transactions"]transactions_df.sample(5)
2022年Python顶级自动化特征工程框架?

文章插图
下面我们指定一个包含数据集中每个 DataFrame 的字典,如果数据集有索引index列,我们会和 DataFrames 一起传递 , 如下图所示 。
dataframes = {"customers": (customers_df, "customer_id"),"sessions": (sessions_df, "session_id", "session_start"),"transactions": (transactions_df, "transaction_id", "transaction_time"),}接下来我们定义 DataFrame 之间的连接 。在这个例子中,我们有两个关系:
relationships = [("sessions", "session_id", "transactions", "session_id"),("customers", "customer_id", "sessions", "customer_id"),]② 深度特征合成接下来我们可以通过DFS生成特征了,它需要『DataFrame 的字典』、『Dataframe关系列表』和『目标 DataFrame 名称』3个基本输入 。
feature_matrix_customers, features_defs = ft.dfs(dataframes=dataframes,relationships=relationships,target_dataframe_name="customers",)feature_matrix_customers

推荐阅读