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

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

 

 

 

目录

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

设计思路

输出结果

核心代码


 

 

 

 

基于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())

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

一个处女座的程序猿 CSDN认证博客专家 华为杯研电赛一等 华为研数模一等奖 国内外AI竞十
人工智能硕博生,目前兼职国内外多家头部人工智能公司的AI技术顾问。拥有十多项发明专利(6项)和软件著作权(9项),多个国家级证书(2个国三级、3个国四级),先后获得国内外“人工智能算法”竞赛(包括国家级、省市级等,一等奖5项、二等奖4项、三等奖2项)相关证书十多个,以上均以第一作者身份,并拥有省市校级个人荣誉证书十多项。正在撰写《人工智算法最新实战》一书,目前已37万字。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 29.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值