Auto ML自动特征工程
Auto ML自动特征工程
特征工程是在做机器学习训练的过程中必不可少的环节,特征工程就是找出对模型结果有益的特征交叉关系,通常特征工程需要耗费算法工程师大量的精力去尝试。针对这样的场景,PAI推出智能特征交叉组件,基于该组件可以帮助您锁定哪些特征的交叉是有意义的。本文介绍智能特征交叉组件的使用方法。
流程图
智能特征交叉基于深度学习框架TensorFlow开发,底层有大量并行化计算的工作,需要使用GPU。目前只有北京和上海两个区域支持该功能。
总流程图:

说明 使用首页的模板列表创建项目时,需要修改智能特征交叉组件的模型输出路径为您自己账号的OSS地址。
1.开通GPU和OSS访问权限
- 登录PAI控制台。
- 单击左侧导航栏设置,在基本设置处开通GPU和OSS访问权限。
2.数据分桶
目前智能特征交叉组件只支持BIGINT型的数据交叉,考虑到平时业务中的原始数据通常是如下图所示的Double类型:

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

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

执行如下SQL语句获取最大值。
selectmax(feature)fromtable;
在本实验样例数据中,所有分桶完的特征的最大值均为4。

于是智能特征交叉的特征长度范围要写成如下图样式。其中5表示开区间[0,5),包含4。

4.生成训练和测试数据
本实验使用的训练数据和测试数据是相同的表,实际使用中也可以把测试数据替换成跟训练数据字段相同的不同表。
5.智能特征交叉
- 字段设置
输入桩左侧是训练数据,右侧是测试数据。

- 交叉特征字段选择:选择需要交叉验证的特征字段。
- 是否为稀疏数据:默认不选中。表示稠密数据。
- 目标列:选择目标列字段。
- 模型输出路径:生成的模型存于OSS中。
- 参数设置

- 遍历次数:迭代次数。
- 特征阶数:指特征交叉阶数。如3,表示结果最多计算出3个特征之间的交叉。
PAI命令:
PAI -name fives_ext -project algo_public
-DlabelColName="ifhealth"//目标列
-Dmetric_file="metric_log.log"//日志
-Dfeature_meta="[5,5,5,5,5,5,5,5,5,5,5,5,5]"
-DtrainTable="odps://项目名/tables/表名"
-Dbuckets="oss://{oss_bucket}/"
-Dthreshold="0.5"
-Dk="3"
-DossHost="oss-cn-beijing-internal.aliyuncs.com"//区域
-Demb_dims="16"
-DenableSparse="0"
-Dtemp_anneal_steps="30000"
-DfeatureColName="sex,cp,fbs,restecg,exang,slop,thal,age,trestbps,chol,thalach,oldpeak,ca"//特征
-DtestTable="odps://项目名/tables/表名"
-Darn="acs:ram::********:role/aliyunodpspaidefaultrole"//rolearn
-Depochs="1500"
-DcheckpointDir="oss://{oss_bucket}/{path}/";
结果查询
在OSS根目录下,亦即Dbuckets路径下找到interactions.json文件。
文件显示的是各种组合的关系:

结果显示的是一些启发性的特征交叉组合方式,您可以按照该特征进行特征组合,举例如下:
- [0,1]代表着第一个特征和第二个特征组合会有效果,特征顺序跟输入表的特征顺序一致。
- [8, 6, 5]代表一个三阶特征组合关系。第七个、第五个、第四个这三个特征组合起来会有效果。
Auto ML自动特征工程的更多相关文章
- python 机器学习库 —— featuretools(自动特征工程)
文档:https://docs.featuretools.com/#minute-quick-start 所谓自动特征工程,即是将人工特征工程的过程自动化.以 featuretools 为代表的自动特 ...
- 手把手教你用Python实现自动特征工程
任何参与过机器学习比赛的人,都能深深体会特征工程在构建机器学习模型中的重要性,它决定了你在比赛排行榜中的位置. 特征工程具有强大的潜力,但是手动操作是个缓慢且艰巨的过程.Prateek Joshi,是 ...
- Auto ML自动调参
Auto ML自动调参 本文介绍Auto ML自动调参的算法介绍及操作流程. 操作步骤 登录PAI控制台. 单击左侧导航栏的实验并选择某个实验. 本文以雾霾天气预测实验为例. 在实验画布区,单击左上角 ...
- 【转】浅谈自动特征构造工具Featuretools
转自https://www.cnblogs.com/dogecheng/p/12659605.html 简介 特征工程在机器学习中具有重要意义,但是通过手动创造特征是一个缓慢且艰巨的过程.Python ...
- 浅谈自动特征构造工具Featuretools
简介 特征工程在机器学习中具有重要意义,但是通过手动创造特征是一个缓慢且艰巨的过程.Python的特征工程库featuretools可以帮助我们简化这一过程.Featuretools是执行自动化特征工 ...
- 谷歌大规模机器学习:模型训练、特征工程和算法选择 (32PPT下载)
本文转自:http://mp.weixin.qq.com/s/Xe3g2OSkE3BpIC2wdt5J-A 谷歌大规模机器学习:模型训练.特征工程和算法选择 (32PPT下载) 2017-01-26 ...
- Auto-ML之自动化特征工程
1. 引言 个人以为,机器学习是朝着更高的易用性.更低的技术门槛.更敏捷的开发成本的方向去发展,且Auto-ML或者Auto-DL的发展无疑是最好的证明.因此花费一些时间学习了解了Auto-ML领域的 ...
- <转>特征工程(二)
出处: http://blog.csdn.net/longxinchen_ml/article/details/50493845, http://blog.csdn.net/han_xiaoyang/ ...
- 想搞机器学习,不会特征工程?你TM逗我那!
原文:http://dataunion.org/20276.html 作者:JasonDing1354 引言 在之前学习机器学习技术中,很少关注特征工程(Feature Engineering),然而 ...
随机推荐
- 展开说说,Spring Bean IOC、AOP 循环依赖
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 延迟满足能给你带来什么? 大学有四年时间,但几乎所有人都是临近毕业才发现找一份好工作 ...
- 1. Robot Framework入门
RF定义: 通用型的 自动测试框架, 绝大部分的软件的的自动化系统都可以采用它. 特点: 测试数据文件(Test Data)对应一个个的测试用例.测试数据文件里面使用的功能小模块叫关键字,由测试库(T ...
- hdu3715 二分+2sat+建图
题意: 给你一个递归公式,每多一层就多一个限制,问你最多能递归多少层. 思路: 先分析每一层的限制 x[a[i]] + x[b[i]] != c[i],这里面x[] = 0,1, ...
- POJ3080方法很多(暴力,KMP,后缀数组,DP)
题意: 给n个串(n>=2&&n<=10),每个串长度都是60,然后问所有串的最长公共子串,如果答案不唯一输出字典序最小的. 思路:直接暴力,枚举+KMP,后缀 ...
- POJ1325二分匹配或者DINIC(最小路径覆盖)
题意: 有k个任务,两个机器,第一个机器有n个模式,第二个机器有m个模式,每个任务要么在第一个机器的一个模式下工作,要么在第二个机器的一个模式下工作,机器每切换一个模式需要重启一次,两个 ...
- 5.IA-32寄存器
寄存器(Register)是CPU内部用来存放数据的一些小型存储区域,它与RAM(Random Access Memory,随机存储器.内存)略有不同.CPU访问(Access)RAM中的数据时要经过 ...
- Jetbrains系列产品License key is in legacy format
原文链接: https://zhile.io/2018/08/25/jetbrains-license-server-crack.html
- Spring事务明明开启了,为什么没起作用???
一.事务的特性(ACID) 1.原子性(Atomicity):事务是一个原子操作,由一系列动作组成.事务的原子性确保动作要么全部完成,要么完全不起作用. 2.一致性(Consistency):执行事务 ...
- 消息队列RabbitMQ(五):死信队列与延迟队列
死信队列 引言 死信队列,英文缩写:DLX .Dead Letter Exchange(死信交换机),其实应该叫做死信交换机才更恰当. 当消息成为Dead message后,可以被重新发送到另一个交换 ...
- 服务器开发基础-Tcp/Ip网络模型—完成端口(Completion Port)模型
本文对于初学网络编程的极为友好,文中所有代码全部基于C语言实现,文中见解仅限于作者对于完成端口的初步认识,由于作者才疏学浅,出现的错误和纰漏,麻烦您一定要指出来,咱们共同进步.谢谢!!! 完成端口(c ...
