Auto ML自动特征工程
Auto ML自動(dòng)特征工程
特征工程是在做機(jī)器學(xué)習(xí)訓(xùn)練的過(guò)程中必不可少的環(huán)節(jié),特征工程就是找出對(duì)模型結(jié)果有益的特征交叉關(guān)系,通常特征工程需要耗費(fèi)算法工程師大量的精力去嘗試。針對(duì)這樣的場(chǎng)景,PAI推出智能特征交叉組件,基于該組件可以幫助您鎖定哪些特征的交叉是有意義的。本文介紹智能特征交叉組件的使用方法。
流程圖
智能特征交叉基于深度學(xué)習(xí)框架TensorFlow開(kāi)發(fā),底層有大量并行化計(jì)算的工作,需要使用GPU。目前只有北京和上海兩個(gè)區(qū)域支持該功能。
總流程圖:
說(shuō)明 使用首頁(yè)的模板列表創(chuàng)建項(xiàng)目時(shí),需要修改智能特征交叉組件的模型輸出路徑為您自己賬號(hào)的OSS地址。
1.開(kāi)通GPU和OSS訪問(wèn)權(quán)限
- 登錄PAI控制臺(tái)。
- 單擊左側(cè)導(dǎo)航欄設(shè)置,在基本設(shè)置處開(kāi)通GPU和OSS訪問(wèn)權(quán)限。
2.數(shù)據(jù)分桶
目前智能特征交叉組件只支持BIGINT型的數(shù)據(jù)交叉,考慮到平時(shí)業(yè)務(wù)中的原始數(shù)據(jù)通常是如下圖所示的Double類型:
所以使用SQL組件或Onehot組件將字符型數(shù)據(jù)轉(zhuǎn)為BIGINT型,另外需要使用特征離散組件進(jìn)行特征分桶,將不同區(qū)間的特征按照分布的不同劃分到不同的數(shù)據(jù)桶之中。數(shù)據(jù)經(jīng)過(guò)分桶之后變?yōu)槿缦滦螒B(tài):
3.確定特征范圍
特征交叉的基本原理是將特征先按照向量空間展開(kāi),然后做特征間的相互交叉驗(yàn)證,最終挑選出合理的特征組合方式。在計(jì)算之前需要知道每個(gè)特征的空間的最大值,如下面這組數(shù)據(jù):
? thalach的特征最大值為4
? oldpeak的特征最大值為3
? ca的特征最大值為4
執(zhí)行如下SQL語(yǔ)句獲取最大值。
select max(feature) from table;
在本實(shí)驗(yàn)樣例數(shù)據(jù)中,所有分桶完的特征的最大值均為4。
于是智能特征交叉的特征長(zhǎng)度范圍要寫成如下圖樣式。其中5表示開(kāi)區(qū)間[0,5),包含4。
4.生成訓(xùn)練和測(cè)試數(shù)據(jù)
本實(shí)驗(yàn)使用的訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)是相同的表,實(shí)際使用中也可以把測(cè)試數(shù)據(jù)替換成跟訓(xùn)練數(shù)據(jù)字段相同的不同表。
5.智能特征交叉
? 字段設(shè)置
輸入樁左側(cè)是訓(xùn)練數(shù)據(jù),右側(cè)是測(cè)試數(shù)據(jù)。
o 交叉特征字段選擇:選擇需要交叉驗(yàn)證的特征字段。
o 是否為稀疏數(shù)據(jù):默認(rèn)不選中。表示稠密數(shù)據(jù)。
o 目標(biāo)列:選擇目標(biāo)列字段。
o 模型輸出路徑:生成的模型存于OSS中。
? 參數(shù)設(shè)置
o 遍歷次數(shù):迭代次數(shù)。
o 特征階數(shù):指特征交叉階數(shù)。如3,表示結(jié)果最多計(jì)算出3個(gè)特征之間的交叉。
PAI命令:
PAI -name fives_ext -project algo_public
-DlabelColName=“ifhealth” //目標(biāo)列
-Dmetric_file=“metric_log.log” //日志
-Dfeature_meta="[5,5,5,5,5,5,5,5,5,5,5,5,5]"
-DtrainTable=“odps://項(xiàng)目名/tables/表名”
-Dbuckets=“oss://{oss_bucket}/”
-Dthreshold=“0.5”
-Dk=“3”
-DossHost=“oss-cn-beijing-internal.aliyuncs.com” //區(qū)域
-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://項(xiàng)目名/tables/表名”
-Darn=“acs🐏😗*******:role/aliyunodpspaidefaultrole” //rolearn
-Depochs=“1500”
-DcheckpointDir=“oss://{oss_bucket}/{path}/”;
結(jié)果查詢
在OSS根目錄下,亦即Dbuckets路徑下找到interactions.json文件。
文件顯示的是各種組合的關(guān)系:
結(jié)果顯示的是一些啟發(fā)性的特征交叉組合方式,您可以按照該特征進(jìn)行特征組合,舉例如下:
? [0,1]代表著第一個(gè)特征和第二個(gè)特征組合會(huì)有效果,特征順序跟輸入表的特征順序一致。
? [8, 6, 5]代表一個(gè)三階特征組合關(guān)系。第七個(gè)、第五個(gè)、第四個(gè)這三個(gè)特征組合起來(lái)會(huì)有效果。
總結(jié)
以上是生活随笔為你收集整理的Auto ML自动特征工程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Auto ML自动调参
- 下一篇: 机器学习PAI