微软NNI-业内最亲民的AutoML工具学习笔记(1):AutoFeatureENG
01 AutoML概述
记得若干年前的某次周会上,我说“AutoML不光是调参,应该包含自动特征工程。”当时得到了大佬们的嘲讽,说我不懂技术瞎说。今天回过头来看AutoML是一个系统化的体系,包含3个要素:
自动特征工程AutoFeatureEng
自动调参AutoTuning
自动神经网络探索NAS
02 NNI概述
NNI(NerualNetworkIntelligence)是微软发起的一个AutoML开源工具,覆盖了上文提到的3要素,地址:
https://github.com/SpongebBob/tabular_automl_NNI
我目前只学习了自动特征工程这一个模块,总体看微软的工具都有一个比较大的特点,技术可能不一定多新颖,但是设计都非常赞。NNI的AutoFeatureENG基本包含了用户对于AutoFeatureENG的一切幻想。在微软做PD应该挺幸福吧,底层的这些个框架的设计都极为合理。
03 细说NNI-AutoFeatureENG
使用是非常简单的,安装下文件中的require,然后
pip install NNI
NNI把AutoFeatureENG拆分成exploration和selection两个模块。exploration主要是特征衍生和交叉,selection讲的是如何做特征筛选。
04 特征Exploration
在特征衍生方面,微软教科书般的把特征衍生分成以下一些方式:
count:传统的统计,统计一些数据的出现频率
target:特征和目标列的一些映射特征
embedding:把特征看成句子,用word2vector的方式制作向量
crosscount:特征间除法,有点类似CTR
aggregete:特征的min/max/var/mean
nunique、histstat::这两个没太看懂
具体特征怎么交叉,哪一列和哪一列交叉,每一列特征用什么方式衍生呢?可以通过search_space.json这个文件控制。
Exploration的目的就是长生出新的特征。在代码里可以用get parameter的方式获取tuning的参数:
RECEIVED_PARAMS = nni.get_next_parameter()
05 特征Selection
为了避免特征泛滥的情况,避免过拟合,一定要有Selection的机制挑选特征。这里微软同学用了个小心机,在特征筛选的时候主推了同样是他们自己开源的算法lightGBM,
了解xgboost或者GBDT算法同学应该知道,这种树形结构的算法是很容易计算出每个特征对于结果的影响的。所以使用lightGBM可以天然的进行特征筛选。弊病就是,如果下游是个LR这种线性算法,筛选出来的特征是否具备普适性。跑通后产出的结果包含了每个特征的value以及属性。
06 总结
NNI的AutoFeature模块是给整个行业制定了一个教科书般的标准,告诉大家这个东西要怎么做,有哪些模块,使用起来非常方便。但是如果只是基于这样简单的模式,不一定能达到很好的效果。我觉得在Exploration方面可以引用一些DNN的特征组合方式,提取更高维度的特征。在Selection方面可以有更多的智能化方案,比如可以基于下游的算法自动选择Selection机制。
总之NNI在设计曾给了我一些启发,还是一个挺好的开源项目,推荐给大家~大家用的时候如果是Mac电脑可能会遇到gcc的问题,因为开源项目自带的脚本是基于gcc7编译的,可以用下面的方法绕过去。
brew install libomp
微软NNI-业内最亲民的AutoML工具学习笔记(1):AutoFeatureENG相关推荐
- Postman接口测试工具学习笔记(二)Postman进阶实践:获取天气预报实例
Postman接口测试工具学习笔记(一) 入门及基本概念 https://blog.csdn.net/sevensolo/article/details/87208546 Postman进阶实践:获取 ...
- Postman接口测试工具学习笔记(一)接口测试概念及Postman入门
(下文照搬@Storm啊老师博文,留下记录为了方便学习和理解.大家可以去看看原文地址:https://blog.csdn.net/duzilonglove/article/details/786454 ...
- Design Compiler工具学习笔记(7)
目录 引言 背景知识 多时钟设计 DC 输出文件分析 实际操作 设计源码 综合脚本 综合网表 SDF文件 SDC文件 REPORT文件 引言 本篇继续学习 DC的基本使用.本篇主要学习 DC 综合之后 ...
- Design Compiler工具学习笔记(5)
目录 引言 知识储备 代码风格 DFT 实际操作 引言 本篇继续学习 DC的基本使用.本篇主要学习 DC 工作机理和工作过程 以及简单介绍 DFT. 前文链接: Design Compiler工具学习 ...
- Design Compiler工具学习笔记(6)
目录 引言 知识储备 实际操作 设计源码 仿真源码 VCS执行仿真 DC 综合 TCL编程练习 引言 本篇继续学习 DC的基本使用.本篇主要学习 DC 综合之后的效果分析,重点在时序分析. 前文链接: ...
- locust工具学习笔记(三)-Tasks属性、tag修饰符、TaskSet类
locust工具学习笔记(三) 虚拟用户数分配和权重的关系 1.一个场景文件中如果定义多个用户类,用来对不同用户行为进行压测时,可以用weight属性来控制用户行为执行权重 2.当用户权重不足1人时, ...
- VCS工具学习笔记(4)
目录 引言 VCD文件及生成 实际操作 makefile 编译仿真 打开波形文件 其他 1.$vcdpluson() 参数更改 2. $vcdplusmemon() 3.__FILE__ , __L ...
- VCS工具学习笔记(3)
目录 引言 技术文档 DVE介绍 实践 使用技巧总结 调用光标 局部区域放大 全局查看 进制切换 信号分组 数据查找 信号比较 单步调试 设置总线 PLI/DPI 引言 按照视频的讲解进度,继续学习 ...
- GDB调式工具学习笔记---断点
GDB调式工具学习笔记---断点 2.断点 2.1 示例代码 2.2 常用命令 2.2.1 display和undisplay 2.2.2 break(b) 2.2.3 continue(c) 2.2 ...
最新文章
- rstudio怎么安装ggplot2_如何基于ggplot2构建相关系数矩阵热图
- windbg-!process显示进程
- python自动测试p-python自动化测试_8
- netty+mina 区别概要
- linux 安装软件_Linux:其它软件安装方式
- 吴忠军 - 如何理解马云所说的月入两三万,三四万的人最幸福?
- SparkStreaming窗口入门
- clr20r3 程序终止的几种解决方案_IT外包桌面解决方案——不慌,蓝屏而已
- PHPStorm常用快捷方式
- wap jsp 开发
- 用VB制作自己的IE网页浏览器
- Deepin - 装机必备软件记录
- CAD制图初学入门:CAD软件中如何进行弧长标注?
- XML Explorer(简单易用的XML中文编辑器)
- web前端几个小知识点笔记
- 记录看到的crash相关的好网页
- 卫生人才网计算机考试,国家医学考试:2017医师资格考试计算机化考试系统体验操作步骤...
- comsol学习中心:网格划分基础操作
- 传世单机 设置GM账号
- QTranslate国际化及多语言切换
热门文章
- PAT甲级1022 Digital Library (30分):[C++题解]结构体、排序、查询
- C++STL之next_permutation使用
- 扫描仪图标无法显示计算机,win7“我的电脑”中不显示扫描仪和摄像头的原因和解决方法...
- springboot第十一讲
- mybatis第一讲:初探mybatis实现简单的查询
- 每次执行java命令 都要source_跟着平台混了四年,现在要单飞了!
- 为什么计算机桌面图标不见了,电脑桌面图标都没了,详细教您电脑桌面图标都没了怎么恢复...
- 主板19针接口_【新品上市】D4双通道还能组RAID!华南B365D4主板6/7/8/9代全兼容!...
- as3 访问远程计算机,Flash AS3中数据发送与接收
- android导出excel文件名称,android 导出数据到excel表格文件