卞蓓蕾, 翁?hào)|雷, 王露民, 莫建國, 楊東東
(1.國網(wǎng)浙江省電力有限公司寧波供電公司,浙江,寧波 315000; 2.寧波市電力設(shè)計(jì)院有限公司,浙江,寧波 315000)
近年來,Auto ML被學(xué)術(shù)界和工業(yè)界廣泛關(guān)注,其目標(biāo)是自動(dòng)完成數(shù)據(jù)預(yù)處理、特征工程、模型選擇、超參調(diào)優(yōu)和模型訓(xùn)練的全部或部分工作,降低機(jī)器學(xué)習(xí)的使用門檻,節(jié)省算法的開發(fā)時(shí)間,Auto ML工具[1]的出現(xiàn)讓機(jī)器學(xué)習(xí)變得簡單易用。機(jī)器學(xué)習(xí)模型的精度取決于數(shù)據(jù)特征的質(zhì)量[2],使用未經(jīng)加工的特征往往不能訓(xùn)練出高精度的模型,數(shù)據(jù)輸入算法之前,需要進(jìn)行特征工程。特征工程是指對(duì)原始特征進(jìn)行變換,變換特征空間或衍生新的特征,是為了更好地表達(dá)數(shù)據(jù)。特征工程至關(guān)重要卻耗時(shí)費(fèi)力,且需要專家知識(shí)和數(shù)據(jù)處理能力,針對(duì)這一現(xiàn)象,自動(dòng)化特征工程(Auto FE)[3]應(yīng)運(yùn)而生。自動(dòng)化特征工程不僅要考慮對(duì)單列特征的變換,更要自動(dòng)組合不同特征之間的信息,生成低階和高階的特征,作為增強(qiáng)多種機(jī)器學(xué)習(xí)模型訓(xùn)練的基礎(chǔ)。由于無法像人類那樣有針對(duì)性地選擇特征空間和特征工程方法,自動(dòng)化的特征生成可能導(dǎo)致產(chǎn)生過多的新特征而使特征空間爆炸。因此,現(xiàn)有的Auto ML工具如AutoGluon[4]、Auto-Sklearn[5]、mljar等均沒有包含衍生低階和高階特征的功能。
特征生成主要通過特征交互來實(shí)現(xiàn),生成方式可分為顯式、半顯式和隱式[6]。顯式特征的生成方法包括笛卡爾積、四則運(yùn)算、聚合運(yùn)算等,其優(yōu)勢(shì)在于具備可解釋性,可以幫助理解數(shù)據(jù)之間的潛在關(guān)系。
本文設(shè)計(jì)一個(gè)新的自動(dòng)特征交互的框架AutoFi,如圖1所示。不同于現(xiàn)有Auto FE框架只能對(duì)數(shù)值或類別型特征做交叉變換,AutoFi實(shí)現(xiàn)了類別與數(shù)值型特征的交互,可同時(shí)生成顯式的低階聚合特征和隱式的高階交叉特征,與原始的特征相結(jié)合,可用于增強(qiáng)不同的機(jī)器學(xué)習(xí)算法[7]。

圖1 自動(dòng)特征交互框架AutoFi
真實(shí)的表格數(shù)據(jù)可能含有多種數(shù)據(jù)類型,如數(shù)值、類別、時(shí)間、文本等類型,通過格式轉(zhuǎn)換、文本處理等特定的數(shù)據(jù)預(yù)處理方法,可以將時(shí)間和文本轉(zhuǎn)換為數(shù)值,所以本文僅考慮類別和數(shù)值這兩種類型的特征。
對(duì)整個(gè)特征空間做聚合運(yùn)算會(huì)衍生大量的特征,容易造成特征空間過大、引起內(nèi)存不足或計(jì)算速度過慢。為了縮小特征空間,可基于相關(guān)系數(shù)對(duì)數(shù)值型特征進(jìn)行篩選,對(duì)一些低階數(shù)據(jù)類別特征進(jìn)行過濾,生成候選特征集。
AutoFi通過GBDT來自動(dòng)生成特征向量,得到半顯式高階特征。GBDT模型構(gòu)建兩棵樹,第一棵樹有3個(gè)葉子節(jié)點(diǎn),第二棵樹有2個(gè)葉子節(jié)點(diǎn),最終的特征即五維的向量,如圖2所示。如一個(gè)樣本落在第一棵樹的第二個(gè)葉子,將它編碼成[0,1,0]。在第二棵樹落到第一個(gè)葉子,編碼成[0,1]。由此,GBDT模型變換生成的特征向量就是[0,1,0,0,1]。當(dāng)樹的數(shù)量和葉子節(jié)點(diǎn)增多時(shí),生成的特征向量維度也相應(yīng)地增大,在設(shè)計(jì)框架中,樹的數(shù)量和葉子數(shù)是可以調(diào)節(jié)的超參數(shù)。

圖2 GBDT生成特征向量
除了基于GBDT生成半顯式高階特征,本文框架還實(shí)現(xiàn)了基于神經(jīng)網(wǎng)絡(luò)的隱式高階特征生成方法,通過一系列的線性組合和非線性函數(shù)激活,將數(shù)據(jù)映射到一個(gè)高維空間,由此生成的高維特征向量可作為隱式高階特征并入原始數(shù)據(jù)中,用于增強(qiáng)其他機(jī)器學(xué)習(xí)算法的訓(xùn)練。
在本文框架中,Embedding的具體實(shí)現(xiàn)方式如下:
(1) 對(duì)類別特征做獨(dú)熱編碼,得到高維稀疏向量;
(2) 定義Embedding層作為全連接神經(jīng)網(wǎng)絡(luò)的一部分,其輸入高維稀疏向量,輸出是低維稠密向量,通過有監(jiān)督方法更新權(quán)重,如圖3所示。

圖3 生成隱式高階特征的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
本文設(shè)計(jì)的框架可以自動(dòng)生成大量特征,與原始數(shù)據(jù)集合并可以形成新的數(shù)據(jù)集D′={F0,F1,F2,F3,Y},其中,F0為原始數(shù)據(jù)的特征,F1、F2、F3分別為聚合運(yùn)算、GBDT和神經(jīng)網(wǎng)絡(luò)生成的特征。并非所有特征都有利于增強(qiáng)機(jī)器學(xué)習(xí)訓(xùn)練,有些特征與標(biāo)簽無關(guān),不僅會(huì)占用大量內(nèi)存,降低訓(xùn)練速度,而且會(huì)影響模型的精度,增加過擬合的風(fēng)險(xiǎn),所以特征選擇是必要的。在AutoFi中實(shí)現(xiàn)了自動(dòng)化特征選擇功能,通過特征重要性篩選特征,具體過程如下。

(3) 按照重要性得分從高到低對(duì)特征排序,保留排名前K個(gè)特征列。

經(jīng)過特征選擇,AutoFi只會(huì)保留對(duì)模型重要的特征,過濾部分無用的特征,有效縮小特征空間,加速模型訓(xùn)練。
為了對(duì)提出的自動(dòng)特征交互框架AutoFi進(jìn)行實(shí)驗(yàn)驗(yàn)證,實(shí)驗(yàn)采用6個(gè)公開的數(shù)據(jù)集,其中,Adult和Bank數(shù)據(jù)集來源于UCI,Credit、Shelter和House Price數(shù)據(jù)集來源于kaggle數(shù)據(jù)競賽網(wǎng)站,ETTm1數(shù)據(jù)集來自論文Informer,如表1所示。表1展示了數(shù)據(jù)集的屬性,包含數(shù)據(jù)集名稱、任務(wù)類型、行數(shù)、列數(shù)、類別型特征列的數(shù)量和數(shù)值型特征列的數(shù)量。從表1可以看出,選取的數(shù)據(jù)集包含二分類、多分類、回歸等3種任務(wù)類型。

表1 5個(gè)公開數(shù)據(jù)集的屬性
對(duì)所有的數(shù)據(jù)集按照8∶2的準(zhǔn)則進(jìn)行劃分,80%的數(shù)據(jù)劃分為訓(xùn)練集,20%的數(shù)據(jù)劃分為實(shí)驗(yàn)集,并在測(cè)試集上測(cè)試模型最終性能。由于數(shù)據(jù)集中可能存在缺失值和時(shí)間變量,所以在自動(dòng)特征交互之前,需要對(duì)數(shù)據(jù)集進(jìn)行簡單的預(yù)處理。將類別型特征的缺失值按照最大頻數(shù)填充,數(shù)值型特征的缺失值按照均值填充,提取時(shí)間變量的年、月、日、時(shí)、分、秒等信息,將類別型的標(biāo)簽信息轉(zhuǎn)變?yōu)閿?shù)值型。
為證明AutoFi中的3種生成特征的方法均有利于提升模型效果,在Adult數(shù)據(jù)集上進(jìn)行比較實(shí)驗(yàn)。LR(base)表示僅使用原始的特征訓(xùn)練邏輯回歸(LR)模型;Explicit+LR、SemiExplict+LR和Implict+LR分別表示利用框架中的顯式、半顯式和隱式特征生成方法生成特征,用于訓(xùn)練邏輯回歸模型;AutoFi+LR表示用AutoFi框架最終生成的特征進(jìn)行訓(xùn)練。為定量比較不同方法的效果,采用準(zhǔn)確率和AUC兩個(gè)指標(biāo)分別表示精度和ROC曲線下的面積,實(shí)驗(yàn)結(jié)果如表2所示。

表2 不同特征生成方法在Adult數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
為了驗(yàn)證AutoFi生成的特征有利于增強(qiáng)訓(xùn)練不同機(jī)器學(xué)習(xí)模型,分別用原始特征和AutoFi生成的特征訓(xùn)練邏輯回歸、隨機(jī)森林、XGBoost和TabNet模型。由于邏輯回歸算法只適用于分類問題,所以在回歸任務(wù)上采用嶺回歸算法代替邏輯回歸進(jìn)行實(shí)驗(yàn)。對(duì)不同的任務(wù)類型使用不同的指標(biāo)來衡量模型效果,對(duì)二分類任務(wù)應(yīng)用AUC指標(biāo),多分類任務(wù)采用準(zhǔn)確率指標(biāo),回歸任務(wù)則采用R2來衡量,時(shí)間序列預(yù)測(cè)任務(wù)采用MSE和MAE。
為了保證實(shí)驗(yàn)的公平性,對(duì)同一數(shù)據(jù)集的所有實(shí)驗(yàn)采用相同的測(cè)試集進(jìn)行測(cè)試。在機(jī)器學(xué)習(xí)算法的對(duì)比試驗(yàn)中,僅改變所使用的特征,而不調(diào)整算法的超參數(shù)。所有實(shí)驗(yàn)均在同一計(jì)算環(huán)境下運(yùn)行,計(jì)算資源包含16 G內(nèi)存、8核CPU和一塊8 G GeForce RTX 2060 GPU。
在Adult數(shù)據(jù)集上應(yīng)用AutoFi框架中包含的3種特征生成方法以及綜合的AutoFi來構(gòu)造特征,增強(qiáng)邏輯回歸模型的訓(xùn)練效果。如表2所示,僅使用原有特征進(jìn)行訓(xùn)練時(shí),邏輯回歸模型在Adult數(shù)據(jù)集上的準(zhǔn)確率為0.797,AUC為0.619,而AutoFI框架中包含的顯式、半顯式和隱式特征生成方法都能不同程度提升準(zhǔn)確率和AUC,而且將這3種方法有機(jī)融合之后的AutoFI性能可以進(jìn)一步提升。不同特征生成方法對(duì)LR算法的提升效果,與其他方法相比,AutoFi對(duì)LR模型的準(zhǔn)確率和AUC均能實(shí)現(xiàn)更大的提升,其中準(zhǔn)確率和AUC分別提升0.07和0.31。
在Adult、Bank和Credit等3個(gè)二分類數(shù)據(jù)集上,分別對(duì)原始特征和經(jīng)由AutoFi進(jìn)行特征變換的數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。如表3所示,分別訓(xùn)練了邏輯回歸、隨機(jī)森林、XGBoost和TabNet模型,其中XGBoost具備更高的表現(xiàn)力。從AutoFi在3個(gè)二分類數(shù)據(jù)集上對(duì)不同模型的AUC提升程度可以看出,AutoFi在每個(gè)數(shù)據(jù)集上均能提升不同模型的AUC,尤其是對(duì)LR模型的提升,如圖4所示。

表3 不同方法在二分類數(shù)據(jù)集上的AUC

表4 不同方法在時(shí)間序列數(shù)據(jù)集上的MSE

圖4 AutoFi在二分類數(shù)據(jù)集上對(duì)不同模型的AUC提升
同樣地,在時(shí)間序列數(shù)據(jù)集ETTm1上,基于兩年的歷史數(shù)據(jù),包括天氣、溫度、油溫等變量,預(yù)測(cè)了電力變壓器的負(fù)載能力。使用不同模型的MSE的大小可以觀察到,機(jī)器學(xué)習(xí)算法在經(jīng)過AutoFi處理之后對(duì)不同模型都能降低誤差,記錄結(jié)果如表1所示。
通過在公開數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),結(jié)果證明,本文提出的AutoFi框架能夠應(yīng)用于二分類、多分類、回歸、時(shí)間序列預(yù)測(cè)等任務(wù)場景,能夠自動(dòng)生成特征,用于增強(qiáng)訓(xùn)練不同的機(jī)器學(xué)習(xí)模型,并且能夠顯著提升模型的性能。
本文構(gòu)建了一種自動(dòng)化特征交互工具箱AutoFi,并結(jié)合LR、RandomForest、XGBoost、TabNet等模型以及電力負(fù)荷預(yù)測(cè)的時(shí)間序列模型RNN、LSTM、Transformer進(jìn)行實(shí)驗(yàn)驗(yàn)證。AutoFi能夠非常高效地將類別型特征和數(shù)值型特征進(jìn)行有效地交互,并且可以與任一機(jī)器學(xué)習(xí)模型相結(jié)合,增強(qiáng)機(jī)器學(xué)習(xí)算法的性能。實(shí)驗(yàn)結(jié)果表明,利用該工具生成的數(shù)據(jù)特征非常高效,能夠顯著提升邏輯回歸、隨機(jī)森林、XGBoost、TabNet等模型的性能。AutoFi有機(jī)地將顯式、半顯式、隱式特征相結(jié)合,并且通過構(gòu)建候選子集和特征選擇方法,有效降低了特征生成過程中維度爆炸的風(fēng)險(xiǎn),降低了其他方法在特征交互過程中的不可控性。在接下來的研究中,設(shè)計(jì)將在更多的數(shù)據(jù)集上優(yōu)化特征生成和特征交互算法,使得該方法更具解釋性和泛化性,并且在AutoFi中增加對(duì)時(shí)間序列數(shù)據(jù)的特征交互方法,拓寬AutoFi在表格數(shù)據(jù)挖掘中的應(yīng)用范圍。