该内容主要是记录自己在学习Featuretools工具过程中的一些小的知识点记录。详细信息来源于github上关于featuretools工具使用的案例讲解Predicting Loan Repayment with Automated Feature Engineering in Featuretools
笔记如下:
- 实体(二维表):每个实体必须要有一个唯一的索引,若没有索引,则需要设置 make_index=True参数。
- time index/时间索引:表示该行数据(该条记录)的信息被记录(知晓)的时间。
- 创建实体集,需要设置一个实体集的id
- 变量类型,Variable Types:ft会根据变量的不同类型施加不同的特征衍生操作,虽然ft 可以推测变量类型,但是有时(如boolean型)的变量,最好还是指明变量类型,以避免特征衍生过程中出现对boolean变量的求平均值,最大最小值等无意义的合成特征。
- 对于无意义的变量(如子表中的ID),需要先删除这些字段,以避免在根据这些无实际意义的变量(字段)生成更多无意义的新的特征。
- 在创建实体之间关系时候,若存在多种可以使用的关联关系(键),一定要根据数据表之间的实际业务逻辑场景关系确定合适的连接方案,特别是涉及到三级表之间的关联时候:A-B-C(A为B的父表,B为C的父表,A也可以与C通过特定的键联系),这一点非常重要非常关键。对于最终确定的表之间联系的逻辑图后,最好可以化表之间的关系,防止混乱。同时,需要将表C中没有使用的键(没有实际业务意义),需要做删除处理,对应上文第5条所解释的要求。
- Feature Primitives:特征基元:一个FP是对张表或者是表的一组子集进行的一个操作,目的是创建一个新的特征。这些操作本质也非常简单,但是这些简单的操作可以相互叠加,进而创造出非常复杂的特征。特征基元主要分类两类:
| 聚合 | 对于每一张父表,对子表的数据进行统计量的计算,如min,max, mean,std,var等|
|转换|计算单一一张表中的一列或者列。如计算两列之间的差值等|
查看特征基元的方法:ft.list_primitives() - 自制基元,感兴趣的值(interesting values),seed features。
- 保存和代入特征计算逻辑:ft.save_features, ft.load_features,feature_matrix = ft.calculate_feature_matrix(saved_features, es_test)。
上述内容,暂时记录到此。下一篇关于基于Dask来进行DFS