吳學(xué)亮,婁 莉
(西安石油大學(xué) 計算機學(xué)院,西安 710000)
近年來,隨著經(jīng)濟社會的發(fā)展,員工流失問題是追求持續(xù)增長企業(yè)面臨的重大挑戰(zhàn)。這是一個在研究和實踐中都受到廣泛關(guān)注的問題。為了留住員工,并利用員工的知識促進(jìn)公司的成長,人力資源部門利用機器學(xué)習(xí)算法預(yù)測員工是否有離職傾向解決此問題。
在現(xiàn)實生活中,數(shù)據(jù)普遍呈不平衡分布特征,其帶來的問題也越加明顯。隨著分類問題研究的發(fā)展,越來越多的研究者開始研究不平衡數(shù)據(jù)集的極端不平衡分布特征,不平衡數(shù)據(jù)集的分類算法也越來越全面。針對上述問題,本文對SMOTE、SMOTETOMEK、ADASYN、SMOTEENN和Borderline-SMOTE 5種樣本均衡方法進(jìn)行了研究與分析。
在應(yīng)用機器學(xué)習(xí)的過程中,樣本數(shù)據(jù)的特征通常差異很大,其中可能包含不相關(guān)的特征或存在緊密依賴的特征。綜上所述,本文的貢獻(xiàn)如下:
(1)提出了基于LightGBM(Light Gradient Boosting Machine)的員工離職傾向預(yù)測模型,可根據(jù)給出的信息,評估員工是否有離職傾向并給出建議。
(2)實驗過程中,對樣本數(shù)據(jù)進(jìn)行了詳細(xì)的特征工程,包括:數(shù)據(jù)標(biāo)準(zhǔn)化、樣本均衡和特征選擇。
(3)利用Data Castle提供的數(shù)據(jù)集,評估了LightGBM方法。實驗表明,使用樣本均衡和特征選擇后再使用LightGBM方法,優(yōu)于直接使用LightGBM方法。
數(shù)據(jù)采用不同的度量單位,可能導(dǎo)致不同的數(shù)據(jù)分析結(jié)果。通常,用較小度量單位表示的屬性值,將導(dǎo)致該屬性具有較大的值域,該屬性往往具有較大的影響或“權(quán)重”。為了避免數(shù)據(jù)分析結(jié)果對度量單位選擇的依賴性,需要對樣本數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化或規(guī)范化,使之落入較小的共同區(qū)間(如:[0,1]或[-1,1])。
對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化不僅可以規(guī)避數(shù)據(jù)分析結(jié)果對度量單位選擇的依賴性,有效提高結(jié)果精度;也可以簡化計算,提升模型的訓(xùn)練和收斂速度。常用數(shù)據(jù)標(biāo)準(zhǔn)化(Data Normalization,DN)方法有:最小-最大值標(biāo)準(zhǔn)化、z分?jǐn)?shù)標(biāo)準(zhǔn)化和小數(shù)定標(biāo)標(biāo)準(zhǔn)化。
本文采用z分?jǐn)?shù)標(biāo)準(zhǔn)化,經(jīng)過處理后的數(shù)據(jù)符合標(biāo)準(zhǔn)正態(tài)分布,即均值為0,標(biāo)準(zhǔn)差為1。轉(zhuǎn)化函數(shù)定義如式(1):
在現(xiàn)實生活中,為了更好地理解數(shù)據(jù)集類不平衡問題,本文從二分類問題的角度進(jìn)行分析。設(shè):br、、χ分別表示樣本的失衡率、少數(shù)類和多數(shù)類。一般情況下,如果關(guān)注的是少數(shù)類的樣本數(shù)據(jù)且br≤0.2(本文數(shù)據(jù)集br<0.2),就需要考慮對樣本進(jìn)行均衡處理,如式(2):
目前,已有多種方法用來克服類不平衡問題。其中,最常用的技術(shù)是采樣方法,用于實現(xiàn)從數(shù)據(jù)集類的不平衡分布到平衡分布。采樣方法可分為兩種:欠采樣和過采樣技術(shù)。欠采樣技術(shù)是指去除多數(shù)類中的少數(shù)數(shù)據(jù)點,而過采樣方法是生成屬于少數(shù)類的合成數(shù)據(jù)點,以獲得所需的平衡比率。本文重點介紹過采樣技術(shù),主要包括:SMOTE、ADASYN、SMOTETOMEK、SMOTEENN、Borderline-SMOTE。
特征選擇可以消除不相關(guān)或冗余的特征,從而減少特征數(shù)量,提高模型的準(zhǔn)確性,或減少運行時間。此外,選擇具有真實相關(guān)特征的簡化模型,可以使研究人員更容易理解數(shù)據(jù)生成的過程。常見的特征選擇方法可以分為3類:過濾、包裝和嵌入方法。本文在LightGBM算法的基礎(chǔ)上,考慮特征的互補性,對特征進(jìn)行選擇和剔除。
對于包裝方法,其主要組成部分是搜索策略和學(xué)習(xí)算法。包裝模型中的搜索策略可以分為全搜索、啟發(fā)式搜索和隨機搜索。由于計算成本,完全搜索會耗盡所有可能的子集并找到最佳子集。與完全搜索不同,啟發(fā)式搜索策略將會權(quán)衡搜索效率的最優(yōu)性。順序后向選擇(Sequential backward selection,SBS)和順序前向選擇(sequential forward selection,SFS)是兩種最常用的啟發(fā)式搜索打包方法。但是,這兩種方法都有一個單調(diào)的假設(shè),即添加的特征不能被刪除,并且被刪除的特征不能再次添加,這使其易陷入局部最小值。隨機搜索總是使用進(jìn)化方法作為其眾所周知的全局搜索能力。與確定性算法相比,進(jìn)化搜索方法不僅能有效捕捉特征冗余和交互作用,而且不受單調(diào)假設(shè)條件的限制。進(jìn)化搜索方法,可以避免陷入局部最優(yōu),并且可以找到小部分特征。然而,基于隨機搜索的打包方法存在計算量大的缺點。
遺傳算法(Genetic Algorithm,GA)是受自然進(jìn)化過程啟發(fā)而開發(fā)的一種啟發(fā)式優(yōu)化技術(shù),其種群的成員以基因序列的染色體形式表示。在特征選擇問題中,每個基因用0或1來表示,對應(yīng)問題空間的一個屬性或參數(shù)。本文選擇基于LightGBM算法進(jìn)行員工離職傾向預(yù)測,其結(jié)果的準(zhǔn)確率作為適應(yīng)度函數(shù)評估指標(biāo)。遺傳算法的基本思想是適者生存理論。每個新種群生成的算法,可通過選擇、交叉和變異等3個主要步驟達(dá)到更高的適應(yīng)度水平。
LightGBM是在傳統(tǒng)的梯度提升樹(GBDT)上使用直方圖算法(histogram-based algorithm),在一個待分裂的結(jié)點上,為每一個特征構(gòu)建直方圖。具體實現(xiàn)過程是:先對特征值進(jìn)行分箱處理,然后根據(jù)分箱值構(gòu)造一個直方圖;遍歷結(jié)點中的每一個樣本,在直方圖中累積每個的樣本數(shù)和樣本梯度之和;當(dāng)一次數(shù)據(jù)遍歷完成后,直方圖就累積了需要的統(tǒng)計量。
對于每個特征,根據(jù)構(gòu)建的直方圖,遍歷每一個值從而尋找最優(yōu)分裂特征及值。同時使用帶深度限制的Leaf-wise葉子生長策略,經(jīng)過一次數(shù)據(jù)可以同時分裂同一層的葉子,具有易進(jìn)行多線程優(yōu)化、易控制模型復(fù)雜度、不易過擬合的特點。
為了更準(zhǔn)確的殘值建模和預(yù)測,LightGBM算法在基于直方圖的GBDT算法中引入了基于梯度的單邊采樣(Gradient-based One-Side Sampling,GOSS)和獨占功能捆綁(Exclusive Feature Bundling,EFB)兩種技術(shù)。其中,GOSS方法可在小樣本情況下實現(xiàn)高精度預(yù)測,可減少計算成本,性能優(yōu)于隨機抽樣方法且不會損失太多的訓(xùn)練精度。而EFB可將互斥的特征捆綁在一起解決高維特征的降維問題。
在GBDT算法中,信息增益由方差增益計算獲得。而LightGBM算法采用的是GOSS算法,根據(jù)訓(xùn)練實例的梯度絕對值降序,對訓(xùn)練實例進(jìn)行排序,并且生成3個特征子集:、A和。其中,特征子集由前100%的實例與較大的梯度得到,特征子集A由(1-a)×100%組成的實例與較小的梯度得到;特征子集是進(jìn)一步隨機采樣b×|A|得到。估計方差增益V()定義如式(3):
為了驗證5種樣本均衡方法和遺傳算法對數(shù)據(jù)進(jìn)行處理的有效性,在配置為Intel Corei7、SSD128 G、HDD 1TB、RAM 24 GB、Windows操作系統(tǒng)的環(huán)境中進(jìn)行了相關(guān)實驗。實現(xiàn)代碼工具利用Conda 4.11.0完成;GA種群規(guī)模為100,迭代次數(shù)是50,交叉率是0.5,變異率是0.4;LightGBM算法參數(shù)為默認(rèn)值。本文實驗使用scikit-learn版本為0.24.1、LightGBM版本為3.3.0。
本文數(shù)據(jù)取自Data Castle平臺發(fā)布的數(shù)據(jù)集,從中選取1 100條數(shù)據(jù)用于實驗。其中,在職記錄922條,離職記錄178條。樣本的失衡率即離職率為:0.161 8。原始數(shù)據(jù)中有31個條件屬性,1個決策屬性。通過業(yè)務(wù)選擇過濾了3個條件屬性,利用已有的條件屬性構(gòu)造出了6個新的條件屬性。
本實驗采用準(zhǔn)確率、精確率、召回率和值作為評價指標(biāo)。準(zhǔn)確率()是指對于給定測試數(shù)據(jù)集,分類器正確分類的樣本數(shù)與總樣本數(shù)之比;精確率()是預(yù)測的正例結(jié)果中,確實是正例的比例;召回率()是所有正例的樣本中,被找出的比例;1值是綜合評價指標(biāo),1值越接近1,表明模型預(yù)測越準(zhǔn)確。準(zhǔn)確率、精確率、召回率和1值是由混淆矩陣計算得到。分類結(jié)果混淆矩陣見表2。準(zhǔn)確率、精度率、召回率和值的計算方法如公式(4)公式(7)所示。
表1 分類結(jié)果混淆矩陣Tab.1 Confusion matrix of classification results
為了達(dá)到驗證的目的,在驗證數(shù)據(jù)集時使用了分層(10)折交叉驗證。每個數(shù)據(jù)集被隨機分成折,其中1折為訓(xùn)練集,剩余的為測試集。分層折交叉驗證是評估建模結(jié)果最有效和廣泛使用的驗證和能力評估技術(shù)之一。通過分層折交叉驗證獲得了不同樣本均衡算法和是否使用遺傳算法進(jìn)行特征選擇的最佳評價指標(biāo)。實驗結(jié)果見表2與圖1所示。
圖1 實驗運行結(jié)果對比Fig.1 Comparison of experimental results
由表2可知,樣本處理方法為“SMOTEENN+GA”時,效果最好,其準(zhǔn)確率達(dá)到95.82%、精確率達(dá)到97.42%、召回率達(dá)到96.28%、值達(dá)到96.66%。實踐證明,采用樣本均衡和遺傳算法的特征選擇,可以有效提高模型的性能。
表2 樣本采用不同處理方法性能對比結(jié)果 Tab.2 The performance comparison of different processing methods %
本文描述了研究預(yù)測員工離職的必要性,并在構(gòu)建模型時使用了樣本平衡、特征選擇和機器學(xué)習(xí)算法,強調(diào)樣本均衡和特征選擇算法的重要性。模型選用SMOTEENN、遺傳算法和LightGBM的組合,與單獨的LightGBM分類器給出的結(jié)果相比,該模型提供了更優(yōu)越的性能。