全部产品
云市场

AutoML自动特征工程使用说明

更新时间:2020-03-17 11:35:18

概述

特征工程是在做机器学习训练的过程中必不可少的环节,特征工程就是找出对模型结果有益的特征交叉关系,通常特征工程需要耗费算法工程师大量的精力去人肉尝试。的针对这样的场景,PAI推出了智能特征交叉组件,基于这个组件可以帮助用户锁定哪些特征的交叉是有意义的。接下来介绍下智能特征交叉组件的使用方法。

使用流程

智能特征交叉是基于深度学习框架TensorFlow开发,底层有大量并行化计算的工作,需要用到GPU。所以目前只有北京和上海两个区域支持该功能。

总体流程图:

注:使用首页模板创建项目的用户,需要修改“智能特征交叉”组件中的模型输出路径为自己账号的OSS地址才可以正常运行

1.开通GPU和OSS访问权限

需要主账号在设置中开通GPU和OSS的访问权限

2.数据分桶

目前智能特征交叉组件只支持BIGINT型的数据交叉,但是平时业务中的原始数据通常是如下图所示这样的Double类型:

所以要用SQL组件或Onehot组件将字符型数据转为BIGINT型,另外需要使用特征离散组件进行特征分桶,将不同区间的特征按照分布的不同划分到不同的数据桶之中。数据经过分桶之后变为以下形态:

3.确定特征范围

因为特征交叉的基本原理是将特征先按照向量空间展开,然后做特征间的相互交叉验证,最终挑选出合理的特征组合方式。最计算之前需要知道每个特征的空间的最大值,比如下面这组数据,thalach的特征最大值为4,oldpeak的最大值为3,ca的最大值为4。

获取最大值可以通过以下sql的方式获取,

  1. select max(feature) from table

在本实验样例数据中,所有分桶完的特征的最大值都是4,

于是智能特征交叉的”特征长度范围要写成如下图样式,因为这个5是开区间[0,5)的意思,为了包含4

4.生成训练和测试数据

本案例使用的训练数据和测试数据是相同的表,实际使用中也可以把测试数据替换成跟训练数据字段相同的不同表。

5.智能特征交叉

输入桩左侧是训练数据,右侧是测试数据。

  • 交叉特征字段选择:选择需要交叉验证的特征
  • 是否为稀疏数据:默认是稠密数据不勾选
  • 目标列:label
  • 模型输出路径:最终生成的模型可以存在用户的oss中,如果当前文件夹下存在模型默认当成已经有了模型,并且做finetune
  • 特征长度范围:见上文解释

  • 遍历次数:epoch的次数
  • 特征阶数:指特征交叉阶数,比如写3,意味着结果最多计算出3个特征之间的交叉

PAI命令:

  1. PAI -name fives_ext -project algo_public
  2. -DlabelColName="ifhealth" //目标列
  3. -Dmetric_file="metric_log.log" //日志
  4. -Dfeature_meta="[5,5,5,5,5,5,5,5,5,5,5,5,5]"
  5. -DtrainTable="odps://项目名/tables/表名"
  6. -Dbuckets="oss://{oss_bucket}/"
  7. -Dthreshold="0.5"
  8. -Dk="3"
  9. -DossHost="oss-cn-beijing-internal.aliyuncs.com" //区域
  10. -Demb_dims="16"
  11. -DenableSparse="0"
  12. -Dtemp_anneal_steps="30000"
  13. -DfeatureColName="sex,cp,fbs,restecg,exang,slop,thal,age,
  14. trestbps,chol,thalach,oldpeak,ca" //特征
  15. -DtestTable="odps://项目名/tables/表名"
  16. -Darn="acs:ram::********:role/aliyunodpspaidefaultrole" //rolearn
  17. -Depochs="1500"
  18. -DcheckpointDir="oss://{oss_bucket}/{path}/";

结果查询

在oss的根目录下,也就是Dbuckets路径下面找到interactions.json文件。

文件显示的是各种组合的关系,

结果显示的是一些启发性的特征交叉组合方式,用户可以按照这里面的特征对自己进行特征的组合。

比如[0,1]代表着第一个特征和第二个特征组合会有效果,特征顺序跟输入表的特征顺序一致。

[8, 6, 5]代表一个三阶特征组合关系,第七个、第五个、第四个这三个特征组合起来会有效果。