ML之FE:基于BigMartSales数据集利用Featuretools工具实现自动特征工程之详细攻略daiding

简介: ML之FE:基于BigMartSales数据集利用Featuretools工具实现自动特征工程之详细攻略daiding

基于BigMartSales数据集利用Featuretools工具实现自动特征工程


设计思路


更新……





输出结果


train.shape: (500, 12)

test.shape: (200, 11)

after drop, train.shape: (500, 11)

data_all.shape: (700, 11)

-------------------data_all_CountNull: Item_Identifier                0

Item_Weight                  136

Item_Fat_Content               0

Item_Visibility                0

Item_Type                      0

Item_MRP                       0

Outlet_Identifier              0

Outlet_Establishment_Year      0

Outlet_Size                  202

Outlet_Location_Type           0

Outlet_Type                    0

dtype: int64

-------------------after fillna,data_all_CountNull:

Item_Identifier              0

Item_Weight                  0

Item_Fat_Content             0

Item_Visibility              0

Item_Type                    0

Item_MRP                     0

Outlet_Identifier            0

Outlet_Establishment_Year    0

Outlet_Size                  0

Outlet_Location_Type         0

Outlet_Type                  0

dtype: int64

-------------------Item_Fat_Content feature value_count:

Low Fat    436

Regular    221

LF          23

low fat     12

reg          8

Name: Item_Fat_Content, dtype: int64

----------data_all.shape: (700, 11)

Entityset: sales

 Entities:

   bigmart [Rows: 700, Columns: 7]

   outlet [Rows: 10, Columns: 5]

 Relationships:

   bigmart.Outlet_Identifier -> outlet.Outlet_Identifier


核心代码


#2、利用Featuretools工具实现自动特征工程

#(1)、创建一个实体集EntitySet:实体集是一种包含多个数据帧及其之间关系的结构。

es = ft.EntitySet(id = 'sales')

es.entity_from_dataframe(entity_id = 'bigmart', dataframe = data_all, index = 'id')   # adding a dataframe

#(2)、规范化实体集:数据中包含两个级别的信息,即 item商品级别和 outlet门店级别。

#Featuretools能把一个数据集拆分成多个表格。我们根据outlet ID Outlet_Identifier从BigMart表中创建一个新表“outlet”。

es.normalize_entity(base_entity_id='bigmart',

                   new_entity_id='outlet',

                   index = 'Outlet_Identifier',

                   additional_variables =  

                   ['Outlet_Establishment_Year', 'Outlet_Size',  

                    'Outlet_Location_Type', 'Outlet_Type'])

print(es)  

'''

输出实体集EntitySet的组成

它包含两个实体,为bigmart和outlet。这两个表之间也形成了一种关系,用Outlet_Identifier连接。

这种关系将在生成新特征中发挥关键作用。

'''

#(3)、使用DFS来自动创建新特征:DFS使用特征基元和实体集中给出的多个表来创建特征。

'''

target_entity只是创建新特征的实体ID,这种情况下为实体“bigmart”。

参数max_depth控制着通过堆叠基元生成的要素复杂性。

参数n_jobs通过使用多个内核来辅助并行特征计算。

这就是使用Featuretools的过程,它已经产生了许多新特征。

'''

feature_matrix, feature_names = ft.dfs(entityset=es,target_entity = 'bigmart',

                                      max_depth = 2,verbose = 1, n_jobs = -1)

print(feature_matrix.columns)

print(feature_matrix.head())


相关文章
|
17天前
|
人工智能 API 数据库
基于 LangGraph 的对话式 RAG 系统实现:多轮检索与自适应查询优化
本文介绍如何使用 LangGraph 构建一个具备实用性的RAG系统,突破传统“检索-生成”模式的局限。系统支持对话上下文理解、问题重写、相关性过滤、查询优化与智能路由,能处理追问、拒答无关问题,并在无结果时自动迭代,结合记忆机制实现更智能的问答体验。
110 4
|
5月前
|
SQL JSON Java
|
1月前
|
人工智能 程序员
注意力隧道效应与 Burnout:专注的双刃剑
最让人投入的状态,也可能埋下倦怠的种子。对我们每个人而言,关键在于认识到 ‘心流不是一个可持续的常态,而是一个需要精心准备的峰值状态。 专注让我们效率倍增,却也可能悄悄消耗我们的精力。本文以“注意力隧道效应”为切入点,探讨如何在深度专注与倦怠之间找到平衡,让工作更高效而不透支自己。
326 8
|
12月前
|
负载均衡 网络协议 安全
slb多站点或多域名部署
slb多站点或多域名部署
363 4
|
Kubernetes 网络协议 druid
一文详解长连接黑洞重现和分析
本文先通过重现在不同业务线反复出现的问题,详细描述了从业务、数据库、OS等不同的角度来分析如何解决它。
人员排班【数学规划的应用(含代码)】阿里达摩院MindOpt
本文介绍了使用阿里巴巴达摩院的MindOpt工具解决人员排班的数学规划问题。人员排班在多个行业中至关重要,如制造业、医疗、餐饮和零售等。问题涉及多种约束,包括工作需求、员工能力、工作时间限制、连续工作天数及公平性。通过MindOpt云建模平台和建模语言MindOpt APL,建立数学模型并编写代码来解决最小化总上班班次的问题。案例中展示了如何声明集合、参数、变量和约束,并给出了部分代码示例。最后,通过MindOpt求解器得到最优解,并将结果输出到CSV文件中。
|
Java Android开发
IDEA设置项目编码格式【修改为GBK 或 UTF-8】
这篇文章介绍了在IntelliJ IDEA中如何设置项目编码格式,包括将项目编码修改为GBK或UTF-8的详细步骤和图解。
20541 12
IDEA设置项目编码格式【修改为GBK 或 UTF-8】
|
人工智能 前端开发 Java
一名全栈工程师的技术实践之路
本文比较系统的介绍了什么是全栈以及全栈开发的具体步骤和实践,最后分享了作者做全栈的心得体会。
46162 45
|
Linux 网络安全
|
新零售 存储 供应链
案例酷 | 九阳股份:小家电,大数据,精准营销圈粉新生代
编者按: 在数字经济蓬勃发展的当下,千行百业都在紧抓时代机遇转型升级。在小家电领域,数智化转型成为家电行业的热词,家电业的头部企业也纷纷走上数智化“花路”。其中,作为小家电领导品牌之一,九阳从单品类起家,通过一路披荆斩棘,不断超越自己走到小家电领先地位,秉承健康和创新的核心DNA,九阳积极引领厨房小家电升级换代,创新营销玩法,推动数智化转型,品牌转型取得明显成效。 全文约4812字,建议阅读时间14分钟。
684 0