ML之FE:基于load_mock_customer数据集(模拟客户)利用featuretools工具实现自动特征生成/特征衍生

简介: ML之FE:基于load_mock_customer数据集(模拟客户)利用featuretools工具实现自动特征生成/特征衍生

设计思路

image.png



输出结果


image.png



  customer_id zip_code           join_date date_of_birth

0            1    60091 2011-04-17 10:48:33    1994-07-18

1            2    13244 2012-04-15 23:31:04    1986-08-18

2            3    13244 2011-08-13 15:42:34    2003-11-21

3            4    60091 2011-04-08 20:08:14    2006-08-15

4            5    60091 2010-07-17 05:27:50    1984-07-28

   session_id  customer_id   device       session_start

13          14            1   tablet 2014-01-01 03:28:00

6            7            3   tablet 2014-01-01 01:39:40

1            2            5   mobile 2014-01-01 00:17:20

28          29            1   mobile 2014-01-01 07:10:05

24          25            3  desktop 2014-01-01 05:59:40

    transaction_id  session_id    transaction_time product_id  amount

74              232           5 2014-01-01 01:20:10          1  139.20

231              27          17 2014-01-01 04:10:15          2   90.79

434              36          31 2014-01-01 07:50:10          3   62.35

420              56          30 2014-01-01 07:35:00          3   72.70

54              444           4 2014-01-01 00:58:30          4   43.59

           zip_code  ...  NUM_UNIQUE(transactions.sessions.device)

customer_id           ...                                          

1              60091  ...                                         3

2              13244  ...                                         3

3              13244  ...                                         3

4              60091  ...                                         3

5              60091  ...                                         3

[5 rows x 77 columns]

           customer_id  ... customers.YEAR(join_date)

session_id               ...                          

1                     2  ...                      2012

2                     5  ...                      2010

3                     4  ...                      2011

4                     1  ...                      2011

5                     4  ...                      2011

[5 rows x 44 columns]

<Feature: MODE(transactions.WEEKDAY(transaction_time))>

The most frequently occurring value of the day of the week of the "transaction_time" of all instances of "transactions" for each "session_id" in "sessions".




实现代码


import featuretools as ft

# 1、定义数据集

data = ft.demo.load_mock_customer()

'''

在这个玩具数据集中,有3个表。每个表在Featuretools中称为一个实体。

customers:拥有会话的独特客户

sessions:唯一的会话和相关属性

transactions:此会话中的事件列表

'''

customers_df = data["customers"]

sessions_df = data["sessions"]

transactions_df = data["transactions"]

print(customers_df)

print(sessions_df.sample(5))

print(transactions_df.sample(5))

# 2、DFS设计

# (1)、指定一个包含数据集中所有实体的字典

entities = {"customers" : (customers_df, "customer_id"),

           "sessions" : (sessions_df, "session_id", "session_start"),

           "transactions" : (transactions_df, "transaction_id", "transaction_time")

           }

# (2)、指定实体间如何关联:当两个实体有一对多关系时,我们称之为“one”实体,即“parent entity”。

# 父类和子类之间的关系是这样定义的:

# (parent_entity, parent_variable, child_entity, child_variable)

# 在这个数据集中,我们有两个关系

relationships = [("sessions", "session_id", "transactions", "session_id"),

                ("customers", "customer_id", "sessions", "customer_id")]

# 为了管理实体和关系的设置,我们建议使用EntitySet类,它为管理这样的数据提供了方便的api

# (3)、运行深度特征合成

'''

DFS的最小输入是一组实体、一组关系和计算特性的“target_entity”。DFS的输出是一个特征矩阵和相应的特征定义列表。

让我们首先为数据中的每个客户创建一个特性矩阵,那么现在有几十个新特性来描述客户的行为。

'''

feature_matrix_customers, features_defs = ft.dfs(entities=entities,

                                                relationships=relationships,

                                                target_entity="customers")

print(feature_matrix_customers)

# (4)、改变目标的实体

# DFS如此强大的原因之一是它可以为我们的数据中的任何实体创建一个特征矩阵。例如,如果我们想为会话构建特性

feature_matrix_sessions, features_defs = ft.dfs(entities=entities,

                                               relationships=relationships,

                                               target_entity="sessions")

print(feature_matrix_sessions.head(5))

# (5)、理解特征输出

'''

一般来说,Featuretools通过特性名称引用生成的特性。

为了让特性更容易理解,Featuretools提供了两个额外的工具,Featuretools .graph_feature()和Featuretools .describe_feature(),

来帮助解释什么是特性以及Featuretools生成特性的步骤。

'''

feature = features_defs[18]

print(feature)

# (6)、特征谱系图

#特征谱系图可视地遍历功能生成过程。从基本数据开始,它们一步一步地展示应用的原语和生成的中间特征,以创建最终特征。

import matplotlib.pyplot as plt

ft.graph_feature(feature)

plt.show()

# (7)、特征描述

'''

功能工具还可以自动生成功能的英文句子描述。特性描述有助于解释什么是特性,并且可以通过包含手动定义的自定义来进一步改进。

有关如何自定义自动生成的特性描述的详细信息,请参见生成特性描述。

'''

print(ft.describe_feature(feature))




相关文章
ML之FE:基于load_mock_customer数据集(模拟客户)利用featuretools工具实现自动特征生成/特征衍生
ML之FE:基于load_mock_customer数据集(模拟客户)利用featuretools工具实现自动特征生成/特征衍生
ML之FE:基于load_mock_customer数据集(模拟客户)利用featuretools工具实现自动特征生成/特征衍生
ML之FE:基于load_mock_customer数据集(模拟客户,单个DataFrame)利用featuretools工具实现自动特征生成/特征衍生
ML之FE:基于load_mock_customer数据集(模拟客户,单个DataFrame)利用featuretools工具实现自动特征生成/特征衍生
ML之FE:基于load_mock_customer数据集(模拟客户,单个DataFrame)利用featuretools工具实现自动特征生成/特征衍生
ML之FE:基于单个csv文件数据集(自动切分为两个dataframe表)利用featuretools工具实现自动特征生成/特征衍生
ML之FE:基于单个csv文件数据集(自动切分为两个dataframe表)利用featuretools工具实现自动特征生成/特征衍生
|
机器学习/深度学习 缓存 JSON
快速入门DVC(六):指标跟踪、更新训练参数以及可视化模型表现
在上一篇文章快速入门DVC(五):数据流水线中,讲述了如何完成一个机器学习模型训练流水线,以及如何重现机器学习模型。本文接下来将讲述 DVC 如何进行模型指标跟踪、修改训练参数重新训练以及使用图表可视化模型表现。
|
数据挖掘 算法 数据处理
数据分析之可重复与独立样本的T-Test分析
数据分析之独立样本的T-Test分析 比较两个独立样本数据之间是否有显著性差异,将实验数据与标准数据对比,查看 实验结果是否符合预期。T-Test在生物数据分析,实验数据效果验证中很常见的数 据处理方法。
771 0
|
5月前
|
机器学习/深度学习 人工智能 数据可视化
【网安AIGC专题10.19】论文4:大模型(CODEX 、CodeGen 、INCODER )+自动生成代码评估:改进自动化测试方法、创建测试输入生成器、探索新的评估数据集扩充方法
【网安AIGC专题10.19】论文4:大模型(CODEX 、CodeGen 、INCODER )+自动生成代码评估:改进自动化测试方法、创建测试输入生成器、探索新的评估数据集扩充方法
285 1
|
1月前
|
机器学习/深度学习 数据采集 运维
高效处理异常值的算法:One-class SVM模型的自动化方案
高效处理异常值的算法:One-class SVM模型的自动化方案
36 1
|
存储 JSON 自然语言处理
multi-class分类模型评估指标的定义、原理及其Python实现
本文介绍multi-class分类任务中的模型评估指标及其使用Python的实现方式(包括使用sklearn进行实现,以及使用原生Python函数进行实现的操作)。 本文使用的示例是在英文多标签文本分类数据集AAPD数据集上,使用fastText包运算得到的多标签分类结果,与真实标签之间计算对应的指标结果(原则上使用one-label标签应该也能这么算,我就不另写了)。本文第一节将介绍相应数据的处理方式,第二节及其后是各指标的原理和计算方式。
multi-class分类模型评估指标的定义、原理及其Python实现
|
8天前
|
数据可视化
R语言建立和可视化混合效应模型mixed effect model
R语言建立和可视化混合效应模型mixed effect model
13 0
|
机器学习/深度学习 算法 数据处理
ML之FE:数据处理—特征工程之稀疏特征的简介、如何处理、案例应用之详细攻略
ML之FE:数据处理—特征工程之稀疏特征的简介、如何处理、案例应用之详细攻略
ML之FE:数据处理—特征工程之稀疏特征的简介、如何处理、案例应用之详细攻略