孔海朋 刘韶庆
摘 要: 通过主成分分析方法,给出了高速动车组车载数据的降维过程。基于第三方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.