顧靚 談子楠 榮靜
關(guān)鍵詞:Pearson;五折交叉驗證;Optuna;LightGBM;正則化
0 引言(Introduction)
機器學(xué)習(xí)模型相對于傳統(tǒng)模型來說,其學(xué)習(xí)能力和泛化能力更強,占用的內(nèi)存更低,訓(xùn)練速度更快而且效率也更高。隨著機器學(xué)習(xí)的興起,大量學(xué)者嘗試建立相關(guān)的機器學(xué)習(xí)模型預(yù)測各種類型的數(shù)據(jù),達(dá)到節(jié)約時間和經(jīng)費的目的。與依賴于已知模式推導(dǎo)的線性回歸等傳統(tǒng)模型不同,機器學(xué)習(xí)模型不需要推導(dǎo)參數(shù)化詳細(xì)的模型方程[1]。
本文以五折交叉驗證、Optuna超參數(shù)優(yōu)化和LightGBM回歸預(yù)測模型為基礎(chǔ),建立LightGBM 混合模型,命名為5CVOptuna-LightGBM 回歸預(yù)測模型。為探討5CV-Optuna-LightGBM回歸預(yù)測模型的適用性,本文采用影響二手車價格的因素數(shù)據(jù)集對二手車價格進行預(yù)測。對比常用的5CVLightGBM回歸預(yù)測模型和最優(yōu)尺度回歸模型,本文采用的5CV-Optuna-LightGBM回歸預(yù)測模型占用的內(nèi)存更低、預(yù)測值更加準(zhǔn)確、建模效率更高及擬合度更高。
1 預(yù)備知識(Preliminary knowledge)
LightGBM 是一種機器學(xué)習(xí)算法,自2017年被首次提出以來,得到了廣泛的研究和應(yīng)用。KE等[2]提出了一種高效的基于決策樹的梯度提升算法,采用多種優(yōu)化技術(shù)提高了算法效率和泛化性能;SHEHADEH 等[3]建議使用修正決策樹(MDT)、LightGBM 和XGBoost回歸模型預(yù)測建筑設(shè)備的殘值,提高了準(zhǔn)確性并激發(fā)機器學(xué)習(xí)的潛力。除此之外,SRINIVAS等[4]利用優(yōu)化的XGBoost分類器,使用超參數(shù)優(yōu)化技術(shù)(OPTUNA)對超參數(shù)進行適當(dāng)?shù)恼{(diào)整,并使用五種指標(biāo)評估系統(tǒng)的效率,證明該模型的預(yù)測結(jié)果更好。
1.1LightGBM 回歸預(yù)測模型
1.1.1LightGBM 算法
LightGBM是一個實現(xiàn)梯度提升決策樹(Gradient BoostingDecision Tree, GBDT)算法的框架[5],基于直方圖的決策樹算法,通過基于梯度的單邊采樣算法GOSS(Gradient-based One-Side Sampling)和互斥特征捆綁算法EFB(Exclusive FeatureBundling)改進,支持高效率并行訓(xùn)練,具有速度快、節(jié)省內(nèi)存、泛化能力較好等優(yōu)點[6]。直方圖算法把連續(xù)的浮點特征值離散化成k 個整數(shù),由此尋找最優(yōu)切分點并取得最大增益,k 越小,其擬合準(zhǔn)確度越低。利用直方圖可以進行差分加速提高運算速度。在此基礎(chǔ)上,LightGBM 使用按葉生長(Leaf-Wise)的算法[7]降低了模型損失。此外,LightGBM 需要設(shè)置一個決策樹的最大深度用于分裂增益最大的結(jié)點,避免分裂的次數(shù)增加而發(fā)生過擬合的情況。在優(yōu)化改進中,LightGBM 采用GOSS算法保留大梯度樣本,對小梯度樣本隨機采樣,減少訓(xùn)練誤差;采用EFB算法將互斥特征進行合并,降低特征維度。
LightGBM中最重要的是模型訓(xùn)練。模型訓(xùn)練主要通過以下幾個步驟進行參數(shù)設(shè)置[8]。(1)數(shù)據(jù)收集:收集影響二手車價格的因素數(shù)據(jù);(2)特征工程:尋找能最大限度地反映因變量本質(zhì)的自變量分類原始數(shù)據(jù);(3)模型訓(xùn)練:不斷訓(xùn)練數(shù)據(jù),只有達(dá)到規(guī)定的迭代次數(shù)或者迭代過程,收斂才能停止;(4)交叉驗證和模型評估:待LightGBM 模型達(dá)到最優(yōu)后,通過模型評測對樣本集和測試集進行模型檢驗,觀察預(yù)測結(jié)果是否符合真實值。若數(shù)據(jù)不符合,則重新分類原始數(shù)據(jù),重復(fù)上述步驟直到得出預(yù)期結(jié)果。
1.1.2L1正則化
LightGBM 在每次迭代時,會根據(jù)結(jié)果對樣本進行權(quán)重調(diào)整,隨著迭代次數(shù)的增加,模型偏差不斷降低,導(dǎo)致模型對噪聲越來越敏感。L1正則項將回歸模型(regression_L1)作為目標(biāo)函數(shù)(objective),通過參數(shù)稀疏化進行特征選擇、降低噪聲。隨著正則項不斷增大,相應(yīng)變量系數(shù)不斷縮減,直至為0。剔除零值特征,減少LightGBM 預(yù)測誤差,損失函數(shù)達(dá)到全局最小值。損失函數(shù)L 的計算公式如下:
其中,L1正則項為μ‖w‖1,即權(quán)重向量中各元素的絕對值之和。在L1正則項回歸模型中,μ 直接決定進入模型的變量個數(shù),影響模型回歸的準(zhǔn)確性。
1.2 五折交叉驗證
模型應(yīng)用于驗證數(shù)據(jù)中的評估常用的是交叉驗證,又稱循環(huán)驗證[9]。特征交叉通過合成特征在多維特征數(shù)據(jù)集上進行非線性特征擬合,從而提高模型的準(zhǔn)確性,防止過擬合。原始數(shù)據(jù)分成k 組不相交的子集,每個子集數(shù)據(jù)抽出m 個訓(xùn)練樣例。在訓(xùn)練樣例中隨機抽取1組子集作為一次驗證集,剩下的k-1組子集數(shù)據(jù)作為訓(xùn)練集,每組子集都經(jīng)過一次驗證,得到k 個模型。
假設(shè)數(shù)據(jù)集有特征x1 和x2,那么引入交叉特征值x3,使x3=x1x2,最終表達(dá)式如下:
1.3 Optuna超參數(shù)自動優(yōu)化
Optuna是一種自動化軟件框架,能對模型超參數(shù)進行優(yōu)化[10]。Optuna可以通過選擇多種優(yōu)化方式確定最佳超參數(shù),例如網(wǎng)格搜索、隨機搜索和貝葉斯優(yōu)化等。在Optuna的優(yōu)化程序中,三個核心的概念分別為目標(biāo)函數(shù)(objective)、單次試驗(trial)和研究(study)。在機器學(xué)習(xí)中,為了找到最優(yōu)的模型參數(shù),研究人員需要定義一個待優(yōu)化的函數(shù)objective,這個函數(shù)的輸入是模型參數(shù)(也就是參/超參數(shù)),輸出是針對這些模型參數(shù)的模型效果評估指標(biāo)。對于每組參數(shù),研究人員需要進行一次trial,通過貝葉斯優(yōu)化或網(wǎng)格搜索等優(yōu)化算法,探索參/超參數(shù)的范圍。優(yōu)化算法需要study對象進行管理和控制試驗的次數(shù)、參數(shù)的探索范圍等并記錄下來,從而確定最優(yōu)的模型參數(shù)組合。在優(yōu)化過程中,Optuna利用修剪算法刪除對分類作用小的過程,并通過反復(fù)調(diào)用和評估不同參數(shù)值的目標(biāo)函數(shù)降低過擬合概率,獲得最優(yōu)解,降低誤差。
2 數(shù)據(jù)處理(Data processing)
本文實驗選取影響二手車價格的因素數(shù)據(jù)集,數(shù)據(jù)集樣本共有30 000個。為方便處理數(shù)據(jù),需要進行如下操作:提取tradeTime、registerDate、licenseDate等日期指標(biāo)的年月日數(shù)值;anonymousFeature11數(shù)據(jù)表現(xiàn)為1+2、2+3等六種字符串,按順序用數(shù)字1~6對這六種字符串?dāng)?shù)據(jù)進行標(biāo)簽編碼。對其他數(shù)據(jù)按照本文2.1至2.4章節(jié)的步驟進行處理。
2.1 填補缺失值
條形密度圖(圖1)顯示主要特征的缺失率,圖中的空白越多,代表缺失的數(shù)據(jù)越多。部分二手車價格數(shù)據(jù)變量缺失率高于80%,直接去除會造成數(shù)據(jù)的嚴(yán)重浪費等問題。對高于80%的部分特征,如匿名特征(anonymousFeature4)等,則直接刪除;余下的缺失率低于80%的部分特征,如cityid(車輛所在城市id)等,根據(jù)樣本之間的相似性進行眾數(shù)填充[11]。
2.2 長尾特征處理
長尾是指某個或某幾個連續(xù)變量的數(shù)值分布差別很大,呈現(xiàn)長尾圖樣式(圖2)
對數(shù)變換的目標(biāo)是幫助穩(wěn)定方差,始終保持?jǐn)?shù)據(jù)分布接近于正態(tài)分布,使得數(shù)據(jù)與分布的平均值無關(guān)。通過對數(shù)變換對cityid(車輛所在城市id)、oiltype(燃油類型)、newprice(新車價)等長尾特征進行處理[12]。
2.3 去除異常值
為了確保后續(xù)預(yù)測結(jié)果的準(zhǔn)確性,訓(xùn)練數(shù)據(jù)必須符合實際情況。通過matplotlib(2D繪圖庫)的箱線圖(圖3)分析指標(biāo),去除數(shù)值大于或小于其整體數(shù)值(超出箱線圖邊距)的異常變量中的數(shù)據(jù)。
2.4 相關(guān)性分析
通過Pearson相關(guān)系數(shù)對時間特征進行相關(guān)性分析。Pearson相關(guān)系數(shù)是描述兩個定距變量間聯(lián)系的緊密程度和線性相關(guān)關(guān)系的參數(shù)[13]。通過Pearson相關(guān)系數(shù)可探求影響二手車價格變量之間的相關(guān)性,其計算公式如下:
其中:N 表示變量個數(shù),x、y 表示變量的觀測值。相關(guān)系數(shù)r的絕對值越大,其相關(guān)性越強;當(dāng)r∈(0,1]時,表示x 與y 呈正相關(guān),當(dāng)r∈[-1,0)時,表示x 與y 呈負(fù)相關(guān),當(dāng)r=0時,x與y 無線性關(guān)系。
通過公式(3)對指標(biāo)進行相關(guān)性計算,得到二手車價格指標(biāo)熱力圖(圖4),可知carid(車輛id)和model、brand(品牌id)和anonymousFeature5(匿名特征)、modelyear(年款)和registerDate_year(注冊日期)等變量之間的相關(guān)系數(shù)均大于0.8,說明這些指標(biāo)之間高度正相關(guān),可以用其中一個指標(biāo)代替其他指標(biāo)[14]。
35CV-Optuna-LightGBM 回歸預(yù)測模型(5CVOptuna-LightGBM regression prediction model)
為了提升預(yù)測結(jié)果的精度,本文在原始LightGBM 回歸預(yù)測模型的基礎(chǔ)上引入五折交叉驗證和Optuna超參數(shù)自動優(yōu)化,形成5CV-Optuna-LightGBM回歸預(yù)測模型。
3.1 模型訓(xùn)練及參數(shù)優(yōu)化
為提高LightGBM模型在默認(rèn)參數(shù)下的診斷準(zhǔn)確率,本文采用split方法將訓(xùn)練集和測試集劃分為5份,每次迭代隨機選取4份數(shù)據(jù)作為訓(xùn)練集,并對LighGBM模型中的10個特定超參數(shù)進行尋優(yōu),參數(shù)值在給定范圍內(nèi)隨機生成,迭代1 000 000次。其中:參數(shù)num_leaves代表葉子節(jié)點數(shù);參數(shù)max_depth代表樹的深度,合適的樹深度在一定程度上可以避免過擬合;參數(shù)feature_fraction代表子特征處理列采樣;參數(shù)bagging_fraction代表建樹的采樣比例,具有泛化數(shù)據(jù)的能力;參數(shù)bagging_freq代表每k 次迭代進行子采樣;參數(shù)learning_rate代表學(xué)習(xí)率,如果設(shè)定過小,會導(dǎo)致梯度下降很慢,而設(shè)定過大又會跨過最優(yōu)值,產(chǎn)生振蕩;參數(shù)min_child_weight代表葉子節(jié)點中樣本數(shù)目;參數(shù)min_child_samples代表葉子節(jié)點最小記錄數(shù);參數(shù)seed代表指定隨機種子數(shù)。Optuna高緯度參數(shù)關(guān)系圖如圖5所示。
3.2 交叉驗證ROC 曲線
將訓(xùn)練集中price指標(biāo)中低于10萬元的標(biāo)為0,高于10萬元的標(biāo)為1,利用受試者工作特征曲線ROC (ReceiverOperating Characteristic)判斷交叉驗證擬合度。其中,真陽性率(所有實際為陽性的樣本被正確地判斷為陽性的個數(shù)與所有實際為陽性的樣本個數(shù)之比)為縱坐標(biāo),假陽性率(所有實際為陰性的樣本被錯誤地判斷為陽性的個數(shù)與所有實際為陰性的樣本個數(shù)之比)為橫坐標(biāo)繪制的曲線,曲線越靠近左上方,則代表擬合程度越高。同時,二手車樣本的檢測數(shù)據(jù)變化較大,使用ROC 曲線可以使數(shù)據(jù)分析更加穩(wěn)定,交叉驗證ROC 如圖6所示。
通過ROC 曲線分析,表明交叉驗證下ROC 均大于0.99,模型性能優(yōu)良。
3.3 評價指標(biāo)
本文所采用的模型評價指標(biāo)有平均絕對百分誤差(MAPE)、對稱平均絕對百分誤差(SMAPE)、平均絕對值誤差(MAE)、均方誤差(MSE)、均方根誤差(RMSE)和準(zhǔn)確率(Accuracy),代表對樣本的整體預(yù)測的準(zhǔn)確程度,其中真實值y=(y1,y2,…,ym ),模型預(yù)測為^y=(^y1,^y2,…,^ym ),其計算公式分別如下:
Accuracy 采用相對誤差在5%以內(nèi)[count(Ape≤0.05)]的樣本數(shù)量,其中Ape 為相對誤差。
3.4 模型性能對比
利用公式(4)至公式(9)分別求出5CV-Optuna-LightGBM回歸預(yù)測模型、5CV-LightGBM 回歸預(yù)測模型、Optuna-LightGBM回歸預(yù)測模型和最優(yōu)尺度回歸預(yù)測模型的評價指標(biāo),并進行模型對比,模型對比結(jié)果如表1所示。
對比四個模型的準(zhǔn)確率、平均決定值誤差等誤差指標(biāo)和花費時間可以看出(表1),5CV-Optuna-LighGBM 回歸預(yù)測模型的準(zhǔn)確率最高,達(dá)到了99.433%。在預(yù)測值和實際值之間的差距方面,5CV-Optuna-LighGBM回歸預(yù)測模型的MAE 等誤差指標(biāo)最小,預(yù)測最準(zhǔn)確。在建模效率方面,5CV-Optuna-LightGBM回歸預(yù)測模型花費的時間最少、效率最高。
4 預(yù)測結(jié)果(Predicted results
對二手車價格的預(yù)測值和真實值進行三次實驗,提高結(jié)果的可靠性和泛化性,5CV-Optuna-LightGBM 回歸預(yù)測模型預(yù)測值和真實值三次實驗對比結(jié)果如圖7所示。對比二手車價格的預(yù)測值和真實值分析得到數(shù)據(jù)基本一致,進一步驗證模型的準(zhǔn)確性。
利用5CV-Optuna-LightGBM回歸預(yù)測模型求出二手車價格預(yù)測結(jié)果,二手車價格預(yù)測密集圖如圖8所示。
圖8中,預(yù)測價格在10萬元左右的二手車成交頻率最高,意味著大多數(shù)二手車的里程適中、座位數(shù)較少、車齡較老。通常,一些熱門品牌和車型的二手車比較保價,而其他二手車的價格可能較低。10萬元左右的二手車大多為中檔車型或一些比較受歡迎的品牌,主要分布在二線和三線城市。此外,過戶次數(shù)、車輛生產(chǎn)國家、排量等因素也在一定程度上影響二手車價格。
5 結(jié)論(Conclusion)
本文在影響二手車價格因素數(shù)據(jù)集上研究5CV-Optuna-LightGBM回歸預(yù)測模型對于預(yù)測類問題的優(yōu)勢,并對該模型進行有效性檢驗。從實驗結(jié)果來看,基于5CV-Optuna-LightGBM回歸預(yù)測模型可將預(yù)測精度提高到99.433%,而預(yù)測時間降低到15 s,平均絕對值誤差(MAE )、均方誤差(MSE)、均方根誤差(RMSE)、平均絕對百分誤差(MAPE)、對稱平均絕對百分誤差(SMAPE)分別減少到0.005、0.000、0.011、0.003、0.003,預(yù)測結(jié)果更準(zhǔn)確。此模型可以在其他經(jīng)濟市場中為產(chǎn)品估價提供一定參考意見。
但是,本研究仍存在一些不足。數(shù)據(jù)處理解釋了可能的誤差來源,總體誤差是可控的,但即使對幾種方法的結(jié)果進行了比較,誤差也依然存在。每種方法都有其優(yōu)缺點,因此在不同的背景下,評估哪種方法是適宜的,具有一定的挑戰(zhàn)性。此外,相關(guān)擬合方法仍有改進和完善的空間,可以添加擬合方法進行擬合度對比,獲取更高的擬合度。今后,值得探索的一個領(lǐng)域是研究多組平行對照組。