王煜,方偉,王亮,薛冰
(1.中國鐵道科學研究院集團有限公司 電子計算技術研究所,北京 100081;2.中國國家鐵路集團有限公司,北京 100844)
近年來,動臥列車已成為高鐵旅客運輸中頗受歡迎的一種運輸產(chǎn)品[1],培育了一批“忠實”的旅客群體,整體客座率較好。隨著鐵路運輸企業(yè)逐漸向市場化運營靠攏,實施了更加靈活多變、有針對性的開行方案和票價方案[2-3],對動臥列車客座率進行預測便成為鐵路運輸企業(yè)優(yōu)化運輸資源配置、提升運輸效率、實現(xiàn)更大經(jīng)濟效益的必然要求和重要支撐。因此,動臥列車客座率預測具有較強的實際指導意義。
目前,對高鐵動車組列車客座率預測研究較多,不同學者采用多種模型方法進行預測,如多元回歸模型、時間序列模型[4-5]、神經(jīng)網(wǎng)絡模型[6]、決策樹模型、灰色理論模型[7-8]、集成學習算法模型等[9]。每種模型各有優(yōu)點,但也存在一定局限性:多元回歸模型和時間序列模型以統(tǒng)計學理論的線性算法為基礎,對樣本數(shù)量和質量要求較高,對非線性數(shù)據(jù)預測結果較差;神經(jīng)網(wǎng)絡模型較復雜,容易陷入局部極值,當樣本量過小時很難提高訓練準確率;單一使用決策樹模型在小樣本情況下容易產(chǎn)生欠擬合,且剪枝條件等參數(shù)較難確定。綜合考慮以上因素,采用Adaboost集成學習算法對CART模型進行優(yōu)化,建立Adaboost-CART模型,克服單一CART模型在數(shù)據(jù)樣本過小情況下精度不足的問題,提高單一CART模型的準確性,并應用于動臥列車客座率預測。
決策樹模型是通過一系列規(guī)則對數(shù)據(jù)進行分類或回歸的過程,判斷依據(jù)是樣本數(shù)據(jù)的特征值,如果不考慮效率等因素,樣本所有特征的判斷終會將某個樣本分到一個類上。實際上,樣本所有特征中有一些特征在分類時起到?jīng)Q定性作用,決策樹的構造過程就是找到這些具有決定性作用的特征,根據(jù)其決定性程度構造1個倒立的樹,決定性作用最大的那個特征作為根節(jié)點,然后遞歸找到各分支下子數(shù)據(jù)集中次大的決定性特征,直至子數(shù)據(jù)集中所有數(shù)據(jù)都屬于同一類。
CART模型屬于決策樹模型的一種,在信息熵(ID3)、信息增益比(C4.5)等傳統(tǒng)特征切分準則基礎上,采用基尼系數(shù)(Gini系數(shù))來選取合適的特征作為切分節(jié)點,通過二元遞歸分割的方式形成一個優(yōu)化的二叉樹,進而實現(xiàn)分類或回歸。Gini系數(shù)是對當前特征不純性的度量,該特征包含的類別雜亂度越低,Gini系數(shù)就越小,優(yōu)先選擇Gini系數(shù)小的特征作為分類特征。假設有K個類別,第k個類別的概率為pk,則Gini系數(shù)表達式為:
為簡化計算,CART模型每次僅對某個特征的值進行二分,而不是多分,這樣建立的是二叉樹,相應Gini系數(shù)表達式為:
CART分類樹輸出結果為離散值,當使用CART模型輸出樣本為連續(xù)值時,便是CART回歸樹,此時采用方差的方式選擇特征和特征值劃分點。CART回歸樹中任意劃分特征A,對應任意劃分點s兩邊劃分的數(shù)據(jù)集為D1和D2,求出使D1、D2集合的方差和最小時的特征和特征值劃分點,表達式為:
式中:c1為D1數(shù)據(jù)集的樣本輸出均值;c2為D2數(shù)據(jù)集的樣本輸出均值;A為任意特征;s是特征A的一個劃分點;xi為樣本值;yi為模型輸出值。
CART模型具有很強的泛化能力,受到異常數(shù)據(jù)影響較小,但與所有大樣本統(tǒng)計方法相同,當樣本量較小時模型不穩(wěn)定。使用Adaboost集成學習算法能夠使CART模型重復使用樣本數(shù)據(jù),并通過集成多個CART模型做出最終預測,不僅提高了準確率,還增強了CART模型處理小樣本數(shù)據(jù)的穩(wěn)定性,從而改進預測效果。以CART模型作為弱學習器,利用Adaboost集成學習算法對多個CART模型進行集成,最終組合成一個強學習器,并利用該強學習器預測動臥列車客座率。
Adaboost集成學習算法是Boosting算法的一個分支,先訓練出1個弱學習器,根據(jù)結果誤差率更新樣本的權重,增加誤差率高的樣本的權重,根據(jù)調(diào)整權重后的樣本訓練出第2個弱學習器,如此迭代循環(huán),直到訓練出T個弱學習器,最終通過集合策略將這T個弱學習器進行整合,成為一個強學習器。主要步驟為:
(1)假設有樣本集T={(X1,Y1),(X2,Y2),…,(Xm,Ym)},弱學習器G(x),將樣本集T帶入G(x)訓練,迭代次數(shù)為K。
(2)初始化樣本集權重D1=(W11,W12,W13,...,W1m)。
(3)使用具有權重Dk的樣本集進行訓練,得到弱學習器Gk(x)。
(4)計算訓練集的最大誤差Ek=max| yi- Gk(xi)|,i=1,2,…,m。
式中Zk為規(guī)范化因子,
(9)重復上述過程,設定迭代次數(shù)閾值,最終組合成強學習器,該學習器為f(x)=∑akGk(x)。
旅客列車客座率的影響因素主要有季節(jié)周期、旅客需求變化、價格需求彈性、宏觀經(jīng)濟影響等。目前,
我國動臥列車開行區(qū)間主要為京滬、京廣(深)、滬深、滬西、京昆等[10],運行距離較長,主要競爭對手為同區(qū)間的航空客運。短期來看,航空票價水平直接影響動臥列車的客座率。航空票價隨預售期、航班種類、機型、附加服務等的不同而動態(tài)調(diào)整。選取某個固定的價格指標或某個時點的價格指標作為參考基準代表性較差,通過大量跟蹤統(tǒng)計發(fā)現(xiàn),經(jīng)濟艙比其他艙位更具有價格代表性,可以反映航空票價的整體水平。
因此,在整個預售期內(nèi),每隔固定時間對所有航班經(jīng)濟艙最低票價進行一次記錄,并計算出記錄時刻對應始發(fā)日期的經(jīng)濟艙最低票價的平均數(shù)、中位數(shù)、眾數(shù)3個指標。最后,將最終時刻(選取始發(fā)日期的前一天)的經(jīng)濟艙票價平均數(shù)、中位數(shù)、眾數(shù)和當日動臥列車票價水平確定為Adaboost-CART模型的4個特征指標。將選取的樣本數(shù)據(jù)輸入CART模型,按照均方差最小的原則對上述4個特征指標進行連續(xù)二分,最后形成1個倒立的二叉樹模型,即CART回歸模型。此時CART回歸模型是一個弱學習器,容易導致過擬合,因而預測精度不高。按照Adaboost集成學習算法原理,對該CART回歸模型進行迭代優(yōu)化,每次迭代時通過增加誤差較大的樣本的權重,產(chǎn)生一組新的訓練樣本,將新的訓練樣本輸入CART模型重新訓練,產(chǎn)生新的學習器,最后綜合考慮迭代次數(shù)和誤差率,將所有學習器按照權重組合為一個強學習器,并對動臥列車客座率進行最終預測。
樣本數(shù)據(jù)方面,選取116 d的數(shù)據(jù)(116組數(shù)據(jù))作為研究對象,形成116×5的數(shù)據(jù)矩陣,其中,前4列為每個樣本對應的4個特征指標,最后1列為對應的動臥列車客座率(以京滬動臥列車為例)。京滬動臥列車日客座率分布見圖1,可看出動臥列車日客座率主要集中在60%~80%,其次為40%~60%。動臥列車客座率最低為16.9%、最高為95.3%,中位數(shù)為66.3%,平均值為65.3%。
圖1 京滬動臥列車日客座率分布
利用前100組樣本數(shù)據(jù)訓練Adaboost-CART模型,后16組樣本數(shù)據(jù)進行模型檢驗。通過參數(shù)的反復調(diào)整,確定迭代次數(shù)為500、學習率為0.5時達到相對誤差最小的目標。前100組樣本數(shù)據(jù)擬合結果與實際值對比見圖2。
圖2 前100組樣本數(shù)據(jù)擬合值與實際值對比
利用訓練好的模型對后16組樣本數(shù)據(jù)進行預測,并比較預測值與實際值(見圖3)。為便于比較和分析,同時采用單一CART模型和多元回歸模型進行預測,結果見表1。其中每個樣本的預測誤差由|預測值-實際值|/實際值×100%計算得出,誤差平均值為16個樣本預測誤差的算術平均值。
圖3 Adaboost-CART模型預測值與實際值對比
表1 不同模型預測結果 %
由圖3和表1可知,基于Adaboost-CART模型對京滬動臥列車客座率預測的誤差平均值為6.0%,顯著小于單一CART模型的11.8%和多元回歸模型的13.6%,說明Adaboost-CART模型有較高的準確率。
Adaboost集成學習算法的核心是通過不停的迭代優(yōu)化弱學習器,將幾個弱學習器最終組合成一個強學習器。為了研究迭代次數(shù)對模型預測精度的影響,進行了20次試驗。在學習率為0.5的基礎上,第一次試驗迭代次數(shù)為50次,第二次試驗迭代次數(shù)為100次,以此類推,最后一次試驗迭代次數(shù)為1 000次。計算每次試驗的誤差率(見圖4),可知,隨著迭代次數(shù)的增加,預測結果的誤差率迅速下降,在迭代次數(shù)為500次時達到最小,同時,迭代次數(shù)超過200次后,預測結果誤差率基本穩(wěn)定在一個范圍內(nèi),上下波動。由此也進一步驗證,Adaboost-CART模型比單一CART模型在預測精度上有優(yōu)勢。
圖4 迭代次數(shù)與誤差率關系
迭代次數(shù)的增加也意味著模型變得更復雜,需要消耗更大的計算能力。因此,需要根據(jù)實際情況合理確定迭代次數(shù),實現(xiàn)計算復雜度和精度的平衡。
以CART模型作為弱學習器,采用Adaboost集成學習算法進行集成,通過調(diào)整樣本數(shù)據(jù)權重和不斷迭代,對弱學習器持續(xù)改進,最終訓練出一個強學習器。
按照固定的時間間隔對京滬區(qū)間航空經(jīng)濟艙最低票價進行統(tǒng)計,計算出對應每個始發(fā)日期航空經(jīng)濟艙最低票價的平均數(shù)、中位數(shù)、眾數(shù),并與京滬動臥列車票價一同作為特征值輸入訓練后的模型,對動臥列車客座率進行預測。結果表明:采用Adaboost-CART模型能夠較好地對動臥列車客座率進行預測,且預測效果相比單一CART模型、多元回歸模型有較大提升,驗證了所提出模型的有效性和可靠性。
隨著迭代次數(shù)的增加,模型預測誤差率快速下降,但達到一定迭代次數(shù)后,誤差率穩(wěn)定在一個區(qū)間范圍內(nèi),上下波動。隨著迭代次數(shù)的增加,模型的復雜程度和所需的計算量也相應增長,如何選擇迭代次數(shù)與模型精度的平衡點需要進一步研究。