Neural Network Intelligence (NNI) | 自动特征工程AutoFE示例程序
一、安装NNI和依赖
pip install nni
pip install sklearn
- 不建议在Win10下面装NNI,因为需要c++14.0很麻烦。
- 另外 nni==2.2
二、数据集
- 下载地址:https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary/rcv1_train.binary.bz2
- 下载好了之后改名为 train.bz2 和项目代码放一起。
- 数据集介绍:
- 2000年,路透社提供了大量的路透新闻报道作为语料,用于研究和开发自然语言处理、信息检索和机器学习系统。 这个被称为“路透社语料库”(Volume 1)或文本分类语料库RCV1,语料库显着大于使用的较老的着名的Reuters-21578语料库。
- 这个数据集格式采用libsvm格式,libsvm使用的训练数据和检验数据文件格式如下: [label] [index1]:[value1] [index2]:[value2] …
label 目标值,就是说class(属于哪一类),就是你要分类的种类,通常是一些整数。
index 是有顺序的索引,通常是连续的整数。就是指特征编号,必须按照升序排列
value 就是特征值,用来train的数据,通常是一堆实数组成。
第一条数据:1 440:0.033906222568727 730:0.0424739279722748 1523:0.0773048148348295 1893:0.0433930684646909 1897:0.0693077934377529 2120:0.0500434655722085 2152:0.0379679538790946 ... 41223:0.0342446433523316 41709:0.0563111582566908 42277:0.0501888700990041 42362:0.0326486741382873 42706:0.122234412472576 42841:0.0375664880419366 42906:0.109509410770845 43205:0.0610532846234059 43636:0.056725029701754 44009:0.120520739490107 44381:0.0976587689376341 44439:0.0575502822534226 44599:0.0405391139806316 44882:0.10476728440413 44947:0.0651191808876015 46200:0.0641547693610176 46545:0.0253966925710639 46694:0.027156420977038 47148:0.0933512261048991
三、代码
# 文件原名叫sklearn_test.py 包含在nni/examples/feature_engineering/fradient_feature_selector/sklearn)test.py
# 现在nni升级到了2.2版本一些函数存在变化,我将示例代码做了如下修改,且删掉了sklearn部分的自动特征工程代码
import bz2
import urllib.request
import numpy as npfrom sklearn.datasets import load_svmlight_file
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.linear_model import LogisticRegression
# 新版引用
from nni.algorithms.feature_engineering.gradient_selector import FeatureGradientSelectordef test():f_svm = open('train.svm', 'wt')with bz2.open('train.bz2', 'rb') as f_zip:data = f_zip.read()f_svm.write(data.decode('utf-8'))f_svm.close()# 读取svm格式数据集X, y = load_svmlight_file('train.svm')# 划分训练集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)# n_epochs来着官方说明的表格(下面有),这个数据集全部特征共计47236个,全用上会是准确率最高的,verbose以最详细的显示训练过程,device可以使用显卡,会快上不少,不过依旧需要好几个小时pipeline = make_pipeline(FeatureGradientSelector(n_epochs=20242, n_features=47236, verbose=2, device="cuda"), LogisticRegression())pipeline.fit(X_train, y_train)print("Pipeline Score: ", pipeline.score(X_train, y_train))if __name__ == "__main__":test()
四、附加资料
Baseline
表示没有进行特征选择,直接将数据传入 LogisticRegression。 此基准测试中,仅用了 10% 的训练数据作为测试数据。 对于 GradientFeatureSelector,仅使用了前 20 个特征。 下列指标是在给定测试数据和标签上的平均精度。
数据集
所有特征 + LR (acc, time, memory)
GradientFeatureSelector + LR (acc, time, memory)
TreeBasedClassifier + LR (acc, time, memory)
#训练次数
#特征数量
colon-cancer
0.7547, 890ms, 348MiB
0.7368, 363ms, 286MiB
0.7223, 171ms, 1171 MiB
62
2,000
gisette
0.9725, 215ms, 584MiB
0.89416, 446ms, 397MiB
0.9792, 911ms, 234MiB
6,000
5,000
avazu
0.8834, N/A, N/A
N/A, N/A, N/A
N/A, N/A, N/A
40,428,967
1,000,000
rcv1
0.9644, 557ms, 241MiB
0.7333, 401ms, 281MiB
0.9615, 752ms, 284MiB
20,242
47,236
news20.binary
0.9208, 707ms, 361MiB
0.6870, 565ms, 371MiB
0.9070, 904ms, 364MiB
19,996
1,355,191
real-sim
0.9681, 433ms, 274MiB
0.7969, 251ms, 274MiB
0.9591, 643ms, 367MiB
72,309
20,958
五、训练结果
.........
[Minibatch: 263138/ Epoch: 18795/ t: 0.101 s] Loss: 0.099
[Minibatch: 263140/ Epoch: 18795/ t: 0.105 s] Loss: 0.098
[Minibatch: 263142/ Epoch: 18795/ t: 0.107 s] Loss: 0.101
[Minibatch: 263144/ Epoch: 18796/ t: 0.101 s] Loss: 0.094
[Minibatch: 263146/ Epoch: 18796/ t: 0.103 s] Loss: 0.097
Pipeline Score: 0.9786167231971685
因为官方只用了前20个特征,所以准确率高很多也是正常的~
Neural Network Intelligence (NNI) | 自动特征工程AutoFE示例程序相关推荐
- Neural Network Intelligence (NNI) | PyTorch-CiFar10 项目示例+常用pytorch版本模型全家福
一.环境 NNI version: 2.1 Python version: 3.8.3 Pytorch version: 1.6.0 二.代码 1.main.py '''Train CIFAR10 w ...
- 自动特征工程、NAS、超参调优和模型压缩,微软开源的NNI一库搞定!
点击我爱计算机视觉标星,更快获取CVML新技术 2018年9月,微软亚洲研究院发布了第一版 NNI (Neural Network Intelligence) ,目前已在 GitHub 上获得 3.8 ...
- 自动特征工程在推荐系统中的研究
在先荐推荐系统学院 | 第1期的分享中,第四范式资深研究员罗远飞针对推荐系统中的高维稀疏数据,介绍了如何在指数级搜索空间中,高效地自动生成特征和选择算法:以及如何结合大规模分布式机器学习系统,在显著降 ...
- 特征工程与自动特征工程
目录 1. 什么是特征工程 2. 什么是自动特征工程 2.1 自动方法有哪些 3. 文献说明 4.参考文献 1. 什么是特征工程 特征工程,是指用一系列工程化的方式从原始数据中提取出更好的数据特征,以 ...
- 罗远飞:自动特征工程在推荐系统中的研究
第四范式资深研究员罗远飞针对推荐系统中的高维稀疏数据,介绍了如何在指数级搜索空间中,高效地自动生成特征和选择算法:以及如何结合大规模分布式机器学习系统,在显著降低计算.存储和通信代价的情况下,从数据中 ...
- 手把手教你用Python实现自动特征工程
任何参与过机器学习比赛的人,都能深深体会特征工程在构建机器学习模型中的重要性,它决定了你在比赛排行榜中的位置. 特征工程具有强大的潜力,但是手动操作是个缓慢且艰巨的过程.Prateek Joshi,是 ...
- Auto ML自动特征工程
Auto ML自动特征工程 特征工程是在做机器学习训练的过程中必不可少的环节,特征工程就是找出对模型结果有益的特征交叉关系,通常特征工程需要耗费算法工程师大量的精力去尝试.针对这样的场景,PAI推出智 ...
- 手动特征工程已经OUT了!自动特征工程才是改进机器学习的方式
作者 | William Koehrsen 译者 | linstancy 编辑 | Jane 出品 | AI科技大本营 [导读]近年来,我们在自动模型选择和超参数调优方面取得了进展,但机器学习流程中最 ...
- 基于Python的自动特征工程——教你如何自动创建机器学习特征
作者 | William Koehrsen 译者 | 王天宇 编辑 | Jane 出品 | AI科技大本营 [导读]如今机器学习正在从人工设计模型更多地转移到自动优化工作流中,如 H20.TPOT 和 ...
最新文章
- Open***+AD+Google authenticator 安装、配置
- java axis2小实例_java webservice axis2简单开发实例
- 一文弄懂什么是Istio
- 区块链矿池(pool)汇总(不定期更新,欢迎评论区留言)
- swagger如何屏蔽某些接口,不对外公开--使用@ApiIgnore
- monkeytest方法-20171113
- 如何把RAR文件改成ZIP格式
- python二手房课程设计_基于python爬取链家二手房信息代码示例
- 经纬财富:开封如何炒现货白银
- centos8修改主机名称
- Heterogeneous Treatment Effect
- Web用户控件开发--分页控件
- Vite 使用TSX/JSX
- 百度paddlepaddle入门讲解第一周内容
- 使用redis实现缓存_用下一个js实现一个简单的redis缓存
- 好嗨游戏:LPL春季赛决赛在即,黑8传奇JDG迎战S8冠军IG
- ubuntu安装与卸载搜狗输入法
- mysql_connect()不支持解决方法
- Android 4.1 (Jelly Bean) 源码编译过程总结
- 免费的档案管理系统介绍