孔海朋 劉韶慶



摘 ?要: 通過主成分分析方法,給出了高速動車組車載數據的降維過程。基于第三方numpy庫和機器學習sklearn庫,分別通過Python代碼實現了基于主成分分析的降維過程。通過對某高速動車組數據的降維分析,兩種實現方式所得到的結果一致,都能夠實現對高速動車組車載數據的降維。
關鍵詞: 主成分分析;機器學習;降維
中圖分類號: TP3 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.01.024
本文著錄格式:孔海朋,劉韶慶. 基于Python的高速動車組車載數據降維方法實現[J]. 軟件,2020,41(01):114117
【Abstract】: The paper puts forward dimension reduction process of on-board data of high-speed EMU based on principal component analysis method. Based on the third-party numpy library and machine learning sklearner library, it realizes dimension reduction process based on principal component analysis through Python code. Through dimension reduction analysis of high-speed EMU data, results of two methods are identical, which can both achieve dimension reduction of the on-board data of high-speed EMU.
【Key words】: Principal component analysis; Machine learning; Dimension reduction
0 ?引言
隨著中國高速鐵路“八縱八橫”偉業的快速發展,馳騁在中國大地上的高速動車組也越來越多,極大地改善了人們的出行方式,但也給高速動車組的運維帶來了挑戰。為確保高速動車組運行的安全性、經濟性,大量的數據需要被采集,實時監控列車的運行狀態。由于高速動車組系統設計復雜,需要采集和檢測的數據量大,維度大。對于實時和離線分析工作帶來了維度災難,有可能導致計算量的劇增,并且無法收斂。因此,通過一種有效的方法,即能反映數據之間關聯性的特征,又能將多維度的數據進行降維,輔助高速動車組運行狀態在線和離線分析具有很重要的意義。
實現數據降維的方法種類眾多,文獻[1]對目前主流的數據降維方法進行了分類,包括:(1)線性、非線性方法;(2)監督、非監督方法;(3)全局、局部方法[1]。但目前主流的降維方法主要由三種[2]:
(1)主成分分析法(Principal Component Ana?lysis,PCA):能夠反映數據特征的數據往往表現出較大的方差。因此PCA的本質就是查找數據集中方差較大的特征數據,忽略方差變化微小的數據。通過坐標系變換,新坐標軸的選擇基于方差的大小順序選擇,最終選擇能夠體現大部分方差的新坐標系,從而實現數據的降維。
(2)因子分析(Factor Analysis,FA):被測試的數據集中往往包含某些觀察不到的隱變量(Latent Variable),但這些隱變量往往和要分析的特征數據具有線性或非線性的關系。并且隱變量的數目一般會少于數據集的維度。因此可以通過分析隱變量實現數據的降維。
(3)獨立成分分析(Independent Component Ana?lysis,ICA):該方法假設數據集是由相互獨立的多個數據源生成,而數據集的維度遠遠大于數據源的數目,類似因子分析,同樣可以實現數據的降維。
三種主流的降維方法中,PCA方法通用性強,并且對數據集的要求較少,應用最為廣泛。孫平安和王備戰介紹了主成分分析法的數據轉換原理,并詳細分析了PCA降維的處理過程以及維度選擇方法。并成功在ORL(Olivetti Research Laboratory人臉數據庫,誕生于英國劍橋Olivetti實驗室)人臉圖樣本庫中實現了人臉識別準確度分析[1]。王梓杰等提出了一種故障趨勢預測方法,首先基于PCA實現原始軸承數據的特征降維,基于主成分時間序列數據,通過隨機森林算法實現了故障趨勢預測[3]。劉帆洨等基于PCA對旅客購票行為的特征屬性進行降維分析,并通過聚類方法分析了高鐵旅客購票行為的特征研究[4]。張曉濤和唐力偉等提出了一種基于半監督PCA-LPP流行學習算法的故障降維辨識方法[5]。文獻[6-10]都利用了PCA對數據進行了降維,大大提高了數據分析效率,并成功應用于越來越多的領域。
本文的組織結構如下:首先給出了數據降維在高速動車組數據分析中的作用和意義,并分析了目前主流的數據降維方法。第二節給出了PCA的具體實現步驟。第三節對比和分析了基于Python的兩種PCA實現方法。第四節給出了兩種PCA方法的具體應用實例。最后對本文進行了總結。
1 ?主成分分析降維流程
主成分分析法, 是一種數據壓縮方法,是機器學習中主流的降維方法[1,2]。PCA的本質是通過協方差分析數據維度之間的關系。
在概率論和統計學中,衡量兩個變量的總體誤差是通過協方差來實現。其定義如下:
其中, 和 分別為變量X和Y的期望。 為他們的協方差。協方差為正時,X和Y為正相關關系。反之,為負代表負相關。協方差矩陣由各個維度之間的協方差組成的矩陣。可知,協方差矩陣為方陣,且維度是樣本的維度。
3 ?運行實例分析
由于動車組與運行安全息息相關,需對所有車軸、牽引電機等旋轉部件進行速度采集監測。但所采集的速度信號相關性較高,在對車輛故障診斷時,需對其進行降維處理。本節基于第三節所述的PCA降維方法,針對高速動車組車載速度信號,進行降維分析。選取某列高速動車組車載速度信號,部分數據如表1所示。
3.1 ?按照主成分占比進行降維
分別采用第三節所述方法,選取貢獻率占比99%以上的主成分進行降維。結果如圖2所示。
基于運行結果,兩種方法所得到的降維后的主成分貢獻率相同。如表2所示。第一維主成分方差值為1.838819,第二維方差值為0.020056。前兩個維度的貢獻率占比99.18%。
3.2 ?按照指定維度進行降維
按照貢獻率占比進行降維可以發現,第一維貢獻率遠遠高于第二維。因此,以降維維度為參數,重新調用兩種降維方法進行分析。結果如下表所示。
通過降維結果可以看出,無論以貢獻率或降維維度為輸入,兩種方法運行結果相同,都能實現PCA降維。
4 ?結論
本文基于主成分分析法實現對高速動車組車載數據的降維。利用Python代碼,分別通過第三方numpy庫和機器學習sklearn庫實現了主成分分析的降維過程。基于某列高速動車組所采集的車載速度數據進行降維分析,兩種方式所得到的結果一致。通過numpy庫的實現方式,更便于理解PCA的實現過程。通過sklearn機器學習庫的實現方式,代碼更簡易。無論采用哪種方式,都可以實現對數據的降維。
參考文獻
[1] 孫平安, 王備戰. 機器學習中的PCA降維方法研究及其應用[J]. 湖南工業大學學報, 2019, 33(01): 80-85.
[2] Peter Harrington. Machine Learning in Action[M]. Manning, 2012
[3] 王梓杰, 周新志, 寧芊. 基于PCA和隨機森林的故障趨勢預測方法研究[J]. 計算機測量與控制, 2018, 26(02): 21-23+26.
[4] 劉帆洨, 彭其淵, 梁宏斌, 傅志堅, 張斌. 基于PCA-聚類分析的高鐵旅客購票行為特性研究[J]. 交通運輸系統工程與信息, 2017, 17(06): 126-132.
[5] 侯秀峰. 高速公路瀝青路面使用性能評價[J]. 中國公路, 2017(12): 90-91.
[6] 劉鴻斌, 李祥宇, 楊沖. 基于PCA降維模型的造紙廢水處理過程軟測量建模[J]. 中國造紙學報, 2018, 33(04): 50-57.
[7] 姜健. 基于改進PCA算法的航空發動機狀態診斷模型[J]. 燃氣渦輪試驗與研究, 2017, 30(02): 32-36.
[8] 王磊, 鄧曉剛, 徐瑩, 鐘娜. 基于變量子域PCA的故障檢測方法[J]. 化工學報, 2016, 67(10): 4300-4308.
[9] 姜健. 基于改進PCA算法的航空發動機狀態診斷模型[J]. 燃氣渦輪試驗與研究, 2017, 30(02): 32-36.
[10] 譚念, 孫一丹, 王學順, 黃安民, 謝冰峰. 基于主成分分析和支持向量機的木材近紅外光譜樹種識別研究[J]. 光譜學與光譜分析, 2017, 37(11): 3370-3374.