Featuretools介绍
Featuretools的介绍
1、简要介绍
Featuretools是一个执行自动特征工程的框架。它擅长于为深度学习把互相关联的数据集转换为特征矩阵。
2、快速开始
下面是一个使用DFS(深度特征综合体 Deep Feature Synthesis)来实施自动化特征工程的例子。在这个例子中,我们应用DFS到一个由时间戳客户事务组成的多维表数据集。
##导入Featuretools
In [1]: import featuretools as ft
##加载mock data
In [2]: data = ft.demo.load_mock_customer()
准备数据
在这个玩家数据集上,有3个表。在Featuretools里每个表成为entity
customers: 拥有会话的唯一客户
sessions: 唯一会话及关联属性
transactions: 会话的事件列表
In [3]: customers_df = data["customers"]
In [4]: customers_df
Out[4]:
customer_id zip_code join_date
0 1 60091 2008-01-01
1 2 02139 2008-02-20
2 3 02139 2008-04-10
3 4 60091 2008-05-30
4 5 02139 2008-07-19
In [5]: sessions_df = data["sessions"]
In [6]: sessions_df.sample(5)
Out[6]:
session_id customer_id device session_start
16 17 4 mobile 2014-01-01 04:02:40
34 35 1 desktop 2014-01-01 08:45:25
4 5 2 tablet 2014-01-01 01:10:25
0 1 1 desktop 2014-01-01 00:00:00
29 30 4 desktop 2014-01-01 07:29:35
In [8]: transactions_df.sample(5)
Out[8]:
transaction_id session_id transaction_time product_id amount
481 441 34 2014-01-01 08:41:05 1 81.15
418 84 30 2014-01-01 07:32:50 4 149.02
19 85 2 2014-01-01 00:20:35 4 148.14
132 377 9 2014-01-01 02:23:00 4 112.07
148 109 10 2014-01-01 02:40:20 4 18.40
...: "customers" : (customers_df, "customer_id"),
...: "sessions" : (sessions_df, "session_id", "session_start"),
...: "transactions" : (transactions_df, "transaction_id", "transaction_time")
...: }
...:
....: ("customers", "customer_id", "sessions", "customer_id")]
....:
对DFS的最小输入是entity集合,关系列表,计算特征的target_entity。DFS的输出是特征矩阵,特征定义的对应列表。
首先为数据里的每个客户创建一个特征矩阵。
In [11]: feature_matrix_customers, features_defs = ft.dfs(entities=entities,
....: relationships=relationships,
....: target_entity="customers")
....:
In [12]: feature_matrix_customers
Out[12]:
zip_code COUNT(transactions) COUNT(sessions) SUM(transactions.amount) MODE(sessions.device) MIN(transactions.amount) MAX (transactions.amount) YEAR(join_date) SKEW(transactions.amount) DAY(join_date) ... SUM(sessions.MIN(transactions.amount)) MAX(sessions.SKEW(transactions.amount)) MAX(sessions.MIN(transactions.amount)) SUM(sessions.MEAN(transactions.amount)) STD(sessions.SUM(transactions.amount)) STD(sessions.MEAN(transactions.amount)) SKEW(sessions.MEAN(transactions.amount)) STD(sessions.MAX(transactions.amount)) NUM_UNIQUE(sessions.DAY(session_start)) MIN(sessions.SKEW(transactions.amount))
customer_id ...
1 60091 131 10 10236.77 desktop 5.60 149.95 2008 0.070041 1 ... 169.77 0.610052 41.95 791.976505 175.939423 9.299023 -0.377150 5.857976 1 -0.395358
2 02139 122 8 9118.81 mobile 5.81 149.15 2008 0.028647 20 ... 114.85 0.492531 42.96 596.243506 230.333502 10.925037 0.962350 7.420480 1 -0.470007
3 02139 78 5 5758.24 desktop 6.78 147.73 2008 0.070814 10 ... 64.98 0.645728 21.77 369.770121 471.048551 9.819148 -0.244976 12.537259 1 -0.630425
4 60091 111 8 8205.28 desktop 5.73 149.56 2008 0.087986 30 ... 83.53 0.516262 17.27 584.673126 322.883448 13.065436 -0.548969 12.738488 1 -0.497169
5 02139 58 4 4571.37 tablet 5.91 148.17 2008 0.085883 19 ... 73.09 0.830112 27.46 313.448942 198.522508 8.950528 0.098885 5.599228 1 -0.396571
[5 rows x 69 columns]
现在我们有了许多描述客户的行为的新特征。
改变target entity
DFS强大的原因之一是它能创建特征矩阵,为数据里的任何entity。
In [13]: feature_matrix_sessions, features_defs = ft.dfs(entities=entities,
....: relationships=relationships,
....: target_entity="sessions")
....:
In [14]: feature_matrix_sessions.head(5)
Out[14]:
customer_id device WEEKDAY(session_start) MONTH(session_start) MODE(transactions.product_id) MEAN(transactions.amount) customers.zip_code DAY(session_start) MIN(transactions.amount) NUM_UNIQUE(transactions.product_id) ... customers.MODE(sessions.device) customers.WEEKDAY(join_date) MODE(transactions.MONTH(transaction_time)) customers.COUNT(transactions) customers.MAX(transactions.amount) customers.MIN(transactions.amount) MODE(transactions.YEAR(transaction_time)) MODE(transactions.WEEKDAY(transaction_time)) NUM_UNIQUE(transactions.MONTH(transaction_time)) NUM_UNIQUE(transactions.DAY(transaction_time))
session_id ...
1 1 desktop 2 1 2 77.846250 60091 1 5.60 5 ... desktop 1 1 131 149.95 5.60 2014 2 1 1
2 1 desktop 2 1 3 89.533000 60091 1 8.67 4 ... desktop 1 1 131 149.95 5.60 2014 2 1 1
3 5 mobile 2 1 5 67.130000 02139 1 20.91 5 ... tablet 5 1 58 148.17 5.91 2014 2 1 1
4 3 mobile 2 1 1 82.172800 02139 1 8.70 5 ... desktop 3 1 78 147.73 6.78 2014 2 1 1
5 2 tablet 2 1 1 65.031818 02139 1 6.29 5 ... mobile 2 1 122 149.15 5.81 2014 2 1 1
[5 rows x 40 columns]
后续更新。
Featuretools介绍相关推荐
- 特征工程之自动特征生成(自动特征衍生)工具Featuretools介绍
源文件地址:https://docs.featuretools.com/ 参考内容:https://blog.csdn.net/q337100/article/details/80804887 Fea ...
- Featuretools快速使用指南--看这一篇就够了
Featuretools简单攻略 Featuretools介绍 Featuretools快速开始 Featuretools介绍 人工特性工程是一项冗长乏味的任务,并且受到人类想象力的限制--我们可以思 ...
- 手把手教你用Python实现自动特征工程
任何参与过机器学习比赛的人,都能深深体会特征工程在构建机器学习模型中的重要性,它决定了你在比赛排行榜中的位置. 特征工程具有强大的潜力,但是手动操作是个缓慢且艰巨的过程.Prateek Joshi,是 ...
- python特征工程插件_手把手教你用Python实现自动特征工程
任何参与过机器学习比赛的人,都能深深体会特征工程在构建机器学习模型中的重要性,它决定了你在比赛排行榜中的位置. 特征工程具有强大的潜力,但是手动操作是个缓慢且艰巨的过程.Prateek Joshi,是 ...
- 【特征工程】特征衍生+案例
问:特征衍生上千.万的变量,是怎么做的? 问:大家是如何衍生出成千上万个变量的?衍生变量是怎么生成的? 研习社-上海-桂浩: 请教一个问题,大家是如何衍生出成千上万个变量的?衍生变量是怎么生成的 云何 ...
- 独家 | 用Python Featuretools库实现自动化特征工程(附链接)
作者:Prateek Joshi 翻译:张玲 校对:李润嘉 本文约4000字,建议阅读10分钟. 本文简要介绍特征工程的基本组成部分,并用直观的示例理解它们,最后给出使用Python Featuret ...
- 机器学习实战 | 自动化特征工程工具Featuretools应用
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/41 本文地址:https://www.showmeai.tech/article-d ...
- 简单介绍互联网领域选择与营销方法
在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...
- 常用开源协议介绍以及开源软件规范列表
1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...
最新文章
- python爬虫——随机生成headers
- Rundll32.exe文件详解(显示我的电脑 取消自动登录)
- 如何制作cab包(解决不能注册的问题)
- [:zh]<界面编程>任务二 用户注册界面设计[:]2018-01-24
- 如何通过DBLINK取REMOTE DB的DDL
- 专业音频如何把电平转换成dbu_谭俊峰|录课、买麦,你应该了解的音频常识
- CF935D Fafa and Ancient Alphabet 概率dp(递推)
- IDEA使用PlantUML构建类图,时序图等
- 2019年老电脑E5450+硬改775 无故死机故障排除记录
- Java核心技术 基础知识网盘下载
- 盖洛普Q12测评法(转载)
- sys matlab,matlab中sys什么意思
- Android studio 分渠道打包,引用不同的moudle
- 金融行业网络架构与技术探讨
- OWASP WebGoat---安全测试学习笔记(一)
- 万象网管重启计算机,万象网管客户端改了密码没用?重启就不对了?
- 关于汽车隔音和音响改装,难听,但确是实话
- 1-1 MySQL数据库的基本操作 【增删改查】
- 《人工智能原理》读书笔记:第2章 体系论
- 基于过程的软件测试全景图 (2)