ML之FE:基于BigMartSales数据集利用Featuretools工具(1个dataframe表结构切为2个Entity表结构)实现自动特征工程之详细攻略
ML之FE:基于BigMartSales數據集利用Featuretools工具(1個dataframe表結構切為2個Entity表結構)實現自動特征工程之詳細攻略
?
?
?
目錄
基于BigMartSales數據集利用Featuretools工具(1個dataframe表結構切為2個Entity表結構)實現自動特征工程之詳細攻略
設計思路
輸出結果
1、結果輸出
2、FE后的字段
3、衍生字段案例具體實現過程
T1、選擇的基字段(1個)
(1)、生成的所有衍生字段
(2)、父衍生字段—outlet.COUNT(bigmart)
(3)、子衍生字段的具體字段分析
T2、選擇的基字段(2個)
核心代碼
?
?
相關文章
ML之FE:基于BigMartSales數據集利用Featuretools工具(1個dataframe表結構切為2個Entity表結構)實現自動特征工程之詳細攻略
ML之FE:基于BigMartSales數據集利用Featuretools工具(1個dataframe表結構切為2個Entity表結構)實現自動特征工程之詳細攻略實現
?
基于BigMartSales數據集利用Featuretools工具(1個dataframe表結構切為2個Entity表結構)實現自動特征工程之詳細攻略
設計思路
?
?
?
輸出結果
1、結果輸出
?
2、FE后的字段
| Item_Identifier | Item_Weight | Item_Fat_Content | Item_Visibility | Item_Type | Item_MRP |
| Outlet_Identifier | Outlet_Establishment_Year | Outlet_Size | Outlet_Location_Type | Outlet_Type | id |
?
?
3、衍生字段案例具體實現過程
T1、選擇的基字段(1個)
['id','Item_Identifier','Item_Weight','Outlet_Identifier','Outlet_Establishment_Year', 'Outlet_Size']
?
(1)、生成的所有衍生字段
| id | Item_Identifier | Item_Weight | ? |
| ? | Outlet_Identifier | outlet.Outlet_Establishment_Year | outlet.Outlet_Size |
| outlet.COUNT(bigmart) | outlet.MODE(bigmart.Item_Identifier) | outlet.NUM_UNIQUE(bigmart.Item_Identifier) | ? |
| ? | outlet.MAX(bigmart.Item_Weight) | outlet.MEAN(bigmart.Item_Weight) | outlet.MIN(bigmart.Item_Weight) |
| ? | outlet.SKEW(bigmart.Item_Weight) | outlet.STD(bigmart.Item_Weight) | outlet.SUM(bigmart.Item_Weight) |
?
?
(2)、父衍生字段—outlet.COUNT(bigmart)
outlet.COUNT(bigmart)字段意義:是根據Outlet_Identifier字段內10個子類別的整體個數,分別進行填充設計。
outlet.COUNT(bigmart)字段內容:根據該字段的下拉列表可知,標記為1550的個數有4650個,是因為在Outlet_Identifier字段內,OUT035、OUT046、OUT049三個子類別均有1550個,所以,以上結果比較巧。
?
(3)、子衍生字段的具體字段分析
outlet.MODE(bigmart.Item_Identifier)?? ?字段的分析過程
?
?
T2、選擇的基字段(2個)
['Item_Identifier','Item_Weight','Item_Fat_Content','Outlet_Identifier','Outlet_Establishment_Year', 'Outlet_Size']
| id | Item_Identifier | Item_Weight | Item_Fat_Content | ? | ? |
| ? | Outlet_Identifier | outlet.Outlet_Establishment_Year | outlet.Outlet_Size | ? | ? |
| outlet.COUNT(bigmart) | outlet.MODE(bigmart.Item_Identifier) | outlet.NUM_UNIQUE(bigmart.Item_Identifier) | ? | ? | ? |
| outlet.MAX(bigmart.Item_Fat_Content) | outlet.MEAN(bigmart.Item_Fat_Content) | outlet.MIN(bigmart.Item_Fat_Content) | outlet.SKEW(bigmart.Item_Fat_Content) | outlet.STD(bigmart.Item_Fat_Content) | outlet.SUM(bigmart.Item_Fat_Content) |
| outlet.MAX(bigmart.Item_Weight) | outlet.MEAN(bigmart.Item_Weight) | outlet.MIN(bigmart.Item_Weight) | outlet.SKEW(bigmart.Item_Weight) | outlet.STD(bigmart.Item_Weight) | outlet.SUM(bigmart.Item_Weight) |
?
?
核心代碼
#2.2、特征衍生 #(1)、創建一個實體集EntitySet:實體集是一種包含多個數據幀及其之間關系的結構。 ftES = ft.EntitySet(id = 'sales') #(2)、規范化實體集: ftES.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',])#(3)、利用dfs函數自動創建新特征并輸出 feature_matrix, feature_names = ft.dfs(entityset=ftES,target_entity = 'bigmart', max_depth = 2, # verbose = 1, n_jobs = -1,) print('feature_names: \n',len(feature_names),feature_names) print('feature_matrix:',feature_matrix.shape,type(feature_matrix),'\n',feature_matrix.iloc[:,:10].head()) feature_matrix.to_csv('%sfeature_matrix.csv'%date)feature_matrix = feature_matrix.reindex(index=data_all['id']) # reindex()函數,重新把列/行根據columns/index參數指定字段順序整理一遍 feature_matrix = feature_matrix.reset_index() # reset_index()函數,重新設置dataframe的index,范圍為0~len(df) feature_matrix.to_csv('%sfeature_matrix2reset_index01.csv'%date)?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的ML之FE:基于BigMartSales数据集利用Featuretools工具(1个dataframe表结构切为2个Entity表结构)实现自动特征工程之详细攻略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成功解决KeyError: “Passi
- 下一篇: 成功解决_catboost.CatBoo