陳靜杰 崔金成
(中國民航大學電子信息與自動化學院 天津 300300)
飛機在爬升的過程中,影響飛行燃油消耗的特征眾多,為了分析不同飛行特征對油耗的影響,需要根據影響爬升段油耗的主要飛行特征對飛行油耗數據進行分類[1]。由于收集的數據具有隨機性,致使油耗區間樣本分布不平衡。因此,本文以爬升段油耗為研究對象,并在數據層面處理不平衡性,以改善爬升段油耗分類結果。
針對數據不平衡的分類問題,國內外許多學者在算法層面和數據層面進行了大量的研究。其中,基于算法層面的有代價敏感學習、集成算法等。文獻[2]采用改進的隨機森林算法,對構成森林的每棵樹進行篩選,以方便分析高維空間中數據分布的不平衡問題。文獻[3]提出了權重采樣算法,即boosting中權重更新機制保持不變,弱學習器在采樣后的權重分布下學習,以提高分類器性能。文獻[4]提出了一種動態調整閾值的ε-KSVM分類器,在利用KSVM對待測樣本進行分類前,采用遺傳算法尋找最優閾值ε。而基于數據層面主要有過采樣、欠采樣和混合采樣技術。文獻[5]采用改進的SMOTE算法構造少數類樣本,充分利用異類近鄰的分布信息,對構造的偽樣本的質量和數量進行控制,用來提高分類準確率。文獻[6]針對數據樣本分布不平衡,提出一種基于概率分布的過采樣技術構造偽樣本,然后使用隨機森林進行分類。文獻[7]采用SMOTE算法對少數類樣本進行過采樣,和欠采樣對多數類樣本進行去重,構造更清晰的分類界面。
飛機飛行過程是一個復雜的非線性過程,極易受飛行環境影響,致使收集的樣本數據分布不平衡。根據少數類樣本在爬升段油耗上的分布,本文利用k-medoids對少數類樣本聚類,并使用SMOTE對聚類的簇構造偽樣本。不僅能保證在很大程度上不破壞原始數據分布,還能有效提升數據集的質量。另外,文中采用隨機森林作為爬升段油耗分類器,森林在建樹的過程中,訓練樣本采用隨機有放回的采樣,在一定程度上消除了數據不平衡對分類器的影響。
傳統的SMOTE算法從少數類樣本中隨機構造偽樣本,對所有少數類樣本一視同仁,導致原始數據分布的改變。另一方面,如果構造的偽樣本位于少數類與多數類的區間邊界,甚至向多數類靠攏,加大了誤分類的概率[8-9]。針對以上兩點,本文提出一種基于k-medoids聚類的改進SMOTE算法。KMSMOTE的基本思想是將少數類樣本進行聚類,記錄每一個聚類簇的中心值(簇心),之后SMOTE利用簇心對少數類進行插值構造偽樣本。KMSMOTE算法具體計算過程如下:
(1) 確定需要聚類的個數k。
(2) 在少數類樣本集合中選取k個點作為各個聚簇的中心點。
(3) 計算其余所有點到k個中心點的距離,并把每個點到k個中心點最短的距離作為自己所屬的聚簇。
(4) 在每個聚簇中按照順序依次選取點,計算該點到當前聚簇中所有點距離之和,最終距離之和最小的點,則視為新的簇中心點。
(5) 重復步驟2、步驟3,直到各個聚簇的中心點不再改變。設最終各個類的簇心分別為{c1,c2,…,ck}。
(6) 選擇k-medoids聚類得到的簇心及其近鄰構造偽樣本,對每一個簇心等概率的構造偽樣本。使用改進的公式構造樣本,公式如下:
xnew=ci+rand(0,1)×(xj-ci)i=1,2,…,k
(1)
式中:xnew為新構造的樣本點;ci為簇心;xj是以ci為簇心的聚類簇里的樣本;rand(0,1)表示0到1之間的隨機數。
針對爬升油耗數據分布不平衡問題,文中主要從數據層面入手,使用改進的SMOTE算法對少數類樣本進行插值處理,使其達到與多數類相同的樣本數。平衡樣本數據后,利用隨機森林的優勢構建爬升段油耗分類器[10-11]。隨機森林從訓練集中隨機有放回的選取樣本,訓練得到ntree棵CART決策樹,作為基分類器。將生成的多棵決策樹組成隨機森林,對于分類任務,得到ntree個基分類器投出最多票數的類別為最終類別?;贙MSMOTE和隨機森林的分類算法,具體步驟如下:
(1) 從QAR數據中提取爬升段油耗及飛行特征,并對油耗數據進行離散化,得到不同飛行特征對應的油耗類別。
(2) 利用KMSMOTE對少數類樣本進行插值構造偽樣本,使其與多數類擁有相同的數據規模。
(3) 隨機森林分類。將原始數據訓練集進行平衡化處理之后,使用隨機森林對平衡后數據進行訓練和預測。其中,由于飛行特征多為連續特征,所以采用CART決策樹構成隨機森林。
(4) 分類模型KMSMOTE-RF的訓練與驗證。
采用準確率,精確率和召回率三個性能指標,評價分類器性能。這些評價指標的計算都需要用到如表1所示的三分類的混淆矩陣[12-13]。混淆矩陣的主對角元素(v11,v22,v33)為被分到正確類別的樣本數,對角線以外的元素為隨機森林分類相對于樣本真實類別的誤分類數。其中,V1、V2和V3表示分類的類別。

表1 三分類混淆矩陣
準確率:指對于給定的測試數據集,分類器正確分類的樣本數與總樣本數的比值,反映了分類器對整個測試集樣本的判定能力,計算公式如下:
(2)
精確率:指被分類器預測的樣本中預測結果正確的比重,公式如下:
(3)
召回率:指被分類器正確預測的樣本占真實類別樣本的比重,公式如下:
(4)
飛機的飛行一般包括起飛、爬升、巡航、下降和著陸五個階段。滑跑段和著路段情況復雜且油耗占比較少,文中只對爬升段油耗進行分析,巡航段和下降段油耗分析方法與爬升段類似。根據QAR數據和相關文獻[14-15],分析出4個影響爬升段油耗的主要飛行特征:(1) 爬升距離,即爬升段實飛距離,根據QAR數據里的經緯度求出每秒大圓距離,累加可得。(2) 爬升時間,指爬升段所用的總時間。(3) 平均爬升率,即每分鐘飛機上升的高度。(4) 初始爬升重量,由飛機起飛前總重量減去滑跑段油耗量。另外,目標變量為爬升油耗,即爬升段平均油耗,根據飛機爬升期間,左發動機和右發動機燃油流量相加,對時間取平均值得出。
本文選取飛行航線為北京飛大連,機型為空客A331,共560個QAR航班數據為實驗樣本。同一航線、同一機型多個航班的爬升油耗是一個在區間內隨機取值的連續性變量,首先需要將油耗數據進行離散化處理,本文采用等間距法將其劃分為三個互不相交的小區間,劃分結果如圖1所示。每個區間由一個類別標簽表示,分別為最小油耗區間V1、平均油耗區間V2和最大油耗區間V3。由圖2可以看出不同類別的樣本量極度不平衡,即類別之間的比例失調,致使預測結果會偏向較多樣本的類。

圖1 爬升油耗區間劃分
由圖1可得,對于V2而言,區間V2和V3都屬于少數類,約是多數類的三分之一。爬升段油耗分布比較離散,不同區間的差值也比較大。尤其最大值與最小值油耗相差近1 500 kg燃油,這為調節航空燃油提供了充足的優化空間。
隨機選取總樣本量的80%作為訓練集,剩下20%樣本作為驗證模型的測試集。在對爬升段油耗分類過程中,聚類個數k值和構成森林樹的個數ntree會對分類算法產生一定的影響。故使用準確率指標,測試了ntree和k值對本文所提方法分類性能的影響。在測試森林規模時,特征指標不變,取k值為一固定值,僅改變森林規模在10到500棵樹之間,每增加10棵樹運行10次算法,求其準確率均值,結果如圖2所示。

圖2 不同森林規模的分類準確率
根據圖2可以看出,隨機森林規模在70棵樹的時候,分類準確率最高,達到91.3%。隨著森林規模的增加,預測準確率呈衰減狀態,最后趨于平穩。這是因為隨著森林規模的增加,后面的樹可解釋性變差。
測試聚類個數k值時,保持森林規模ntree等于200,聚類個數分別從3到10,每個k值運行10次,以準確率均值作為評價指標,結果如圖3所示。

圖3 不同k值的分類準確率
由圖3可得,當聚類個數k值等于7時,最大分類平均準確率為90.3%。所以,本文在使用KMSMOTE-RF方法做實驗時,均基于k-medoids聚類個數設置為7,隨機森林規模ntree設置為200。
采用對比試驗,使用隨機森林、傳統SMOTE-RF和文中所提方法分別進行了實驗。為保證結果的精確度,每個實驗獨立運行10次,最后取性能指標的平均值。平均分類性能如表2所示。

表2 分類模型性能評價指標
由表2可以得出以下結論:
(1) 單獨使用隨機森林進行分類時,從少數類召回率明顯低于多數類的召回率,在分類過程中仍然存在樣本不平衡問題。
(2) 加入SMOTE算法對原始數據進行處理后,分類準確率有所提高。類別V1的精確率由88.6%減小到79.8%,而召回率由60.1%增大到80.5%,說明分類器對少數類樣本的識別能力提高了。
(3) 使用改進的KMSMOTE與隨機森林相結合,不僅在分類準確率上有所提高,且還降低了多數類與少數類的精確率與召回率之間的差值,使分類結果不在偏向多數類。
在航空業節能減排的趨勢下,文中從爬升段油耗的數據不平衡著手,基于KMSMOTE的隨機森林分類器處理油耗數據的不平衡問題。一方面,該算法對從數據層面分析數據的不平衡性,并對傳統的過采樣技術SMOTE進行改進,以此提高分類器的性能。另一方面,由于隨機森林的集成思想的優勢,構成森林的每一棵決策樹訓練和分類過程都是獨立的,可以通過并行處理降低程序的運行時間,本文的不足之處在于油耗區間劃分過硬,對油耗數據區間劃分未與飛行特征聯系起來,這是下一步需要研究的方向。